diff --git a/Doc/lib/tkinter.tex b/Doc/lib/tkinter.tex
index 78c359d..edc971a 100644
--- a/Doc/lib/tkinter.tex
+++ b/Doc/lib/tkinter.tex
@@ -30,11 +30,8 @@
 \localmoduletable
 
 
-\section{Tkinter \label{tkinter}}
-\index{Tkinter}
-\sectionauthor{Fredrik Lundh}{fredrik@effbot.org}
-
-\index{Tkinter}
+\section{\module{Tkinter} ---
+         Python interface to Tcl/Tk}
 
 \declaremodule{standard}{Tkinter}
 \modulesynopsis{Interface to Tcl/Tk for graphical user interfaces}
@@ -109,6 +106,23 @@
 % \modulesynopsis{Constants used by Tkinter}
 % FIXME 
 
+\item[\module{tkColorChooser}]
+Dialog to let the user choose a color.
+
+\item[\module{tkCommonDialog}]
+
+\item[\module{tkFileDialog}]
+Common dialogs to allow the user to specify a file to open or save.
+
+\item[\module{tkFont}]
+Utilities to help work with fonts.
+
+\item[\module{tkMessageBox}]
+Access to standard Tk dialog boxes.
+
+\item[\module{tkSimpleDialog}]
+Basic dialogs and convenience functions.
+
 \item[\module{Tkdnd}]
 Drag-and-drop support for \refmodule{Tkinter}.
 This is experimental and should become deprecated when it is replaced 
@@ -120,7 +134,8 @@
 \end{description}
 
 \subsection{Tkinter Life Preserver}
-\index{Tkinter}
+\sectionauthor{Matt Conway}{}
+% Converted to LaTeX by Mike Clarkson.
 
 This section is not designed to be an exhaustive tutorial on either
 Tk or Tkinter.  Rather, it is intended as a stop gap, providing some
@@ -280,7 +295,7 @@
 explicitly, the system creates one whenever any of the other classes
 are instantiated.
 \item    The Widget class is not meant to be instantiated, it
-is meant only for subclassing to make ``real'' widgets. (in C++, this
+is meant only for subclassing to make ``real'' widgets. (in \Cpp, this
 is called an `abstract class')
 \end{itemize}
 \fi
@@ -337,7 +352,7 @@
 Once created, the pathname to the widget becomes a new command.  This
 new \var{widget command} is the programmer's handle for getting the new
 widget to perform some \var{action}.  In C, you'd express this as
-someAction(fred, someOptions), in C++, you would express this as
+someAction(fred, someOptions), in \Cpp, you would express this as
 fred.someAction(someOptions), and in Tk, you say: 
 
 \begin{verbatim}
@@ -888,14 +903,15 @@
 \end{description}
 
 
-\section{Tix \label{tix-widgets}}
-
-\index{Tix}
+\section{\module{Tix} ---
+         Extension widgets for Tk}
 
 \declaremodule{standard}{Tix}
 \modulesynopsis{Tk Extension Widgets for Tkinter}
 \sectionauthor{Mike Clarkson}{mikeclarkson@users.sourceforge.net}
 
+\index{Tix}
+
 The \module{Tix} (Tk Interface Extension) module provides an
 additional rich set of widgets. Although the standard Tk library has
 many useful widgets, they are far from complete. The \module{Tix}
@@ -986,66 +1002,67 @@
 
 \subsubsection{Basic Widgets}
 
-\index{Balloon widget}
 \begin{classdesc}{Balloon}{}
 A \ulink{Balloon}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixBalloon.htm} that pops
-up over a widget to provide help.  When the user moves the cursor
-inside a widget to which a Balloon widget has been bound, a small
-pop-up window with a descriptive message will be shown on the screen.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixBalloon.htm}
+that pops up over a widget to provide help.  When the user moves the
+cursor inside a widget to which a Balloon widget has been bound, a
+small pop-up window with a descriptive message will be shown on the
+screen.
 \end{classdesc}
 
-% Python Demo of: \ulink{ Balloon}{http://tix.sourceforge.net/dist/current/demos/samples/Balloon.tcl}
+% Python Demo of:
+% \ulink{Balloon}{http://tix.sourceforge.net/dist/current/demos/samples/Balloon.tcl}
 
-\index{ButtonBox widget}
 \begin{classdesc}{ButtonBox}{}
 The \ulink{ButtonBox}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixButtonBox.htm} widget
-creates a box of buttons, such as is commonly used for \code{Ok Cancel}.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixButtonBox.htm}
+widget creates a box of buttons, such as is commonly used for \code{Ok
+Cancel}.
 \end{classdesc}
 
-% Python Demo of: \ulink{ ButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/BtnBox.tcl}
+% Python Demo of:
+% \ulink{ButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/BtnBox.tcl}
 
-\index{ComboBox widget}
 \begin{classdesc}{ComboBox}{}
 The \ulink{ComboBox}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixComboBox.htm} widget is
-similar to the combo box control in MS Windows. The user can select a
-choice by either typing in the entry subwdget or selecting from the
-listbox subwidget.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixComboBox.htm}
+widget is similar to the combo box control in MS Windows. The user can
+select a choice by either typing in the entry subwdget or selecting
+from the listbox subwidget.
 \end{classdesc}
 
-% Python Demo of: \ulink{ ComboBox}{http://tix.sourceforge.net/dist/current/demos/samples/ComboBox.tcl}
+% Python Demo of:
+% \ulink{ComboBox}{http://tix.sourceforge.net/dist/current/demos/samples/ComboBox.tcl}
 
-\index{Control widget}
 \begin{classdesc}{Control}{}
 The \ulink{Control}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixControl.htm} widget is
-also known as the \class{SpinBox} widget. The user can adjust the value
-by pressing the two arrow buttons or by entering the value directly
-into the entry. The new value will be checked against the user-defined
-upper and lower limits.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixControl.htm}
+widget is also known as the \class{SpinBox} widget. The user can
+adjust the value by pressing the two arrow buttons or by entering the
+value directly into the entry. The new value will be checked against
+the user-defined upper and lower limits.
 \end{classdesc}
 
-% Python Demo of: \ulink{ Control}{http://tix.sourceforge.net/dist/current/demos/samples/Control.tcl}
+% Python Demo of:
+% \ulink{Control}{http://tix.sourceforge.net/dist/current/demos/samples/Control.tcl}
 
-\index{LabelEntry widget}
 \begin{classdesc}{LabelEntry}{}
 The \ulink{LabelEntry}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixLabelEntry.htm} widget
-packages an entry widget and a label into one mega widget. It can be
-used be used to simplify the creation of ``entry-form'' type of interface.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixLabelEntry.htm}
+widget packages an entry widget and a label into one mega widget. It
+can be used be used to simplify the creation of ``entry-form'' type of
+interface.
 \end{classdesc}
 
 % Python Demo of:
 % \ulink{LabelEntry}{http://tix.sourceforge.net/dist/current/demos/samples/LabEntry.tcl}
 
-\index{LabelFrame widget}
 \begin{classdesc}{LabelFrame}{}
 The \ulink{LabelFrame}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixLabelFrame.htm} widget
-packages a frame widget and a label into one mega widget. To create
-widgets inside a LabelFrame widget, one creates the new widgets
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixLabelFrame.htm}
+widget packages a frame widget and a label into one mega widget.  To
+create widgets inside a LabelFrame widget, one creates the new widgets
 relative to the \member{frame} subwidget and manage them inside the
 \member{frame} subwidget.
 \end{classdesc}
@@ -1053,60 +1070,58 @@
 % Python Demo of:
 % \ulink{LabelFrame}{http://tix.sourceforge.net/dist/current/demos/samples/LabFrame.tcl}
 
-\index{Meter widget}
 \begin{classdesc}{Meter}{}
 The \ulink{Meter}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixMeter.htm} widget can
-be used to show the progress of a background job which may take a long
-time to execute.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixMeter.htm}
+widget can be used to show the progress of a background job which may
+take a long time to execute.
 \end{classdesc}
 
 % Python Demo of:
 % \ulink{Meter}{http://tix.sourceforge.net/dist/current/demos/samples/Meter.tcl}
 
-\index{OptionMenu widget}
 \begin{classdesc}{OptionMenu}{}
 The \ulink{OptionMenu}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixOptionMenu.htm} creates a
-menu button of options.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixOptionMenu.htm}
+creates a menu button of options.
 \end{classdesc}
 
-% Python Demo of: \ulink{ OptionMenu}{http://tix.sourceforge.net/dist/current/demos/samples/OptMenu.tcl}
+% Python Demo of:
+% \ulink{OptionMenu}{http://tix.sourceforge.net/dist/current/demos/samples/OptMenu.tcl}
 
-\index{PopupMenu widget}
 \begin{classdesc}{PopupMenu}{}
 The \ulink{PopupMenu}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixPopupMenu.htm} widget can
-be used as a replacement of the \code{tk_popup} command. The advantage
-of the \refmodule{Tix} PopupMenu widget is it requires less application
-code to manipulate.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixPopupMenu.htm}
+widget can be used as a replacement of the \code{tk_popup}
+command. The advantage of the \refmodule{Tix} \class{PopupMenu} widget
+is it requires less application code to manipulate.
 \end{classdesc}
 
-% Python Demo of: \ulink{ PopupMenu}{http://tix.sourceforge.net/dist/current/demos/samples/PopMenu.tcl}
+% Python Demo of:
+% \ulink{PopupMenu}{http://tix.sourceforge.net/dist/current/demos/samples/PopMenu.tcl}
 
-\index{Select widget}
 \begin{classdesc}{Select}{}
 The \ulink{Select}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixSelect.htm} widget is a
-container of button subwidgets. It can be used to provide radio-box or
-check-box style of selection options for the user.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixSelect.htm}
+widget is a container of button subwidgets. It can be used to provide
+radio-box or check-box style of selection options for the user.
 \end{classdesc}
 
-% Python Demo of: \ulink{ Select}{http://tix.sourceforge.net/dist/current/demos/samples/Select.tcl}
+% Python Demo of:
+% \ulink{Select}{http://tix.sourceforge.net/dist/current/demos/samples/Select.tcl}
 
-\index{StdButtonBox widget}
 \begin{classdesc}{StdButtonBox}{}
 The \ulink{StdButtonBox}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixStdButtonBox.htm} widget is a
-group of Standard buttons for Motif-like dialog boxes.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixStdButtonBox.htm}
+widget is a group of standard buttons for Motif-like dialog boxes.
 \end{classdesc}
 
-% Python Demo of: \ulink{ StdButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/StdBBox.tcl}
+% Python Demo of:
+% \ulink{StdButtonBox}{http://tix.sourceforge.net/dist/current/demos/samples/StdBBox.tcl}
 
 
 \subsubsection{File Selectors}
 
-\index{DirList widget}
 \begin{classdesc}{DirList}{}
 The \ulink{DirList}
 {http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixDirList.htm} widget
@@ -1115,31 +1130,31 @@
 in the list or change to another directory.
 \end{classdesc}
 
-% Python Demo of: \ulink{ DirList}{http://tix.sourceforge.net/dist/current/demos/samples/DirList.tcl}
+% Python Demo of:
+% \ulink{DirList}{http://tix.sourceforge.net/dist/current/demos/samples/DirList.tcl}
 
-\index{DirTree widget}
 \begin{classdesc}{DirTree}{}
 The \ulink{DirTree}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixDirTree.htm} widget
-displays a tree view of a directory, its previous directories and its
-sub-directories. The user can choose one of the directories displayed
-in the list or change to another directory.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixDirTree.htm}
+widget displays a tree view of a directory, its previous directories
+and its sub-directories. The user can choose one of the directories
+displayed in the list or change to another directory.
 \end{classdesc}
 
-% Python Demo of: \ulink{ DirTree}{http://tix.sourceforge.net/dist/current/demos/samples/DirTree.tcl}
+% Python Demo of:
+% \ulink{DirTree}{http://tix.sourceforge.net/dist/current/demos/samples/DirTree.tcl}
 
-\index{DirSelectDialog widget}
 \begin{classdesc}{DirSelectDialog}{}
 The \ulink{DirSelectDialog}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixDirSelectDialog.htm} widget
-presents the directories in the file system in a dialog window. The
-user can use this dialog window to navigate through the file system to
-select the desired directory.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixDirSelectDialog.htm}
+widget presents the directories in the file system in a dialog
+window.  The user can use this dialog window to navigate through the
+file system to select the desired directory.
 \end{classdesc}
 
-% Python Demo of: \ulink{ DirSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/DirDlg.tcl}
+% Python Demo of:
+% \ulink{DirSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/DirDlg.tcl}
 
-\index{DirSelectBox widget}
 \begin{classdesc}{DirSelectBox}{}
 The \class{DirSelectBox} is similar
 to the standard Motif(TM) directory-selection box. It is generally used for
@@ -1148,151 +1163,167 @@
 selected again.
 \end{classdesc}
 
-\index{ExFileSelectBox widget}
 \begin{classdesc}{ExFileSelectBox}{}
 The \ulink{ExFileSelectBox}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixExFileSelectBox.htm} widget is
-usually embedded in a tixExFileSelectDialog widget. It provides an
-convenient method for the user to select files. The style of the
-ExFileSelectBox widget is very similar to the standard file dialog in
-MS Windows 3.1.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixExFileSelectBox.htm}
+widget is usually embedded in a tixExFileSelectDialog widget. It
+provides an convenient method for the user to select files. The style
+of the \class{ExFileSelectBox} widget is very similar to the standard
+file dialog on MS Windows 3.1.
 \end{classdesc}
 
-% Python Demo of: \ulink{ ExFileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/EFileDlg.tcl}
+% Python Demo of:
+%\ulink{ExFileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/EFileDlg.tcl}
 
-\index{FileSelectBox widget}
 \begin{classdesc}{FileSelectBox}{}
 The \ulink{FileSelectBox}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixFileSelectBox.htm} is similar
-to the standard Motif(TM) file-selection box. It is generally used for
-the user to choose a file. FileSelectBox stores the files mostly
-recently selected into a ComboBox widget so that they can be quickly
-selected again.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixFileSelectBox.htm}
+is similar to the standard Motif(TM) file-selection box. It is
+generally used for the user to choose a file. FileSelectBox stores the
+files mostly recently selected into a \class{ComboBox} widget so that
+they can be quickly selected again.
 \end{classdesc}
 
-% Python Demo of: \ulink{ FileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/FileDlg.tcl}
+% Python Demo of:
+% \ulink{FileSelectDialog}{http://tix.sourceforge.net/dist/current/demos/samples/FileDlg.tcl}
 
-\index{FileEntry widget}
 \begin{classdesc}{FileEntry}{}
 The \ulink{FileEntry}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixFileEntry.htm} widget can
-be used to input a filename. The user can type in the filename
-manually. Alternatively, the user can press the button widget that
-sits next to the entry, which will bring up a file selection dialog.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixFileEntry.htm}
+widget can be used to input a filename. The user can type in the
+filename manually. Alternatively, the user can press the button widget
+that sits next to the entry, which will bring up a file selection
+dialog.
 \end{classdesc}
 
-% Python Demo of: \ulink{ FileEntry}{http://tix.sourceforge.net/dist/current/demos/samples/FileEnt.tcl}
+% Python Demo of:
+% \ulink{FileEntry}{http://tix.sourceforge.net/dist/current/demos/samples/FileEnt.tcl}
 
 
 \subsubsection{Hierachical ListBox}
 
-\index{HList widget}
 \begin{classdesc}{HList}{}
 The \ulink{HList}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixHList.htm} widget can be
-used to display any data that have a hierarchical structure, for
-example, file system directory trees. The list entries are indented
-and connected by branch lines according to their places in the hierachy.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixHList.htm}
+widget can be used to display any data that have a hierarchical
+structure, for example, file system directory trees. The list entries
+are indented and connected by branch lines according to their places
+in the hierachy.
 \end{classdesc}
 
-% Python Demo of: \ulink{ HList}{http://tix.sourceforge.net/dist/current/demos/samples/HList1.tcl}
+% Python Demo of:
+% \ulink{HList}{http://tix.sourceforge.net/dist/current/demos/samples/HList1.tcl}
 
-\index{CheckList widget}
 \begin{classdesc}{CheckList}{}
 The \ulink{CheckList}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixCheckList.htm} widget
-displays a list of items to be selected by the user. CheckList acts
-similarly to the Tk checkbutton or radiobutton widgets, except it is
-capable of handling many more items than checkbuttons or radiobuttons.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixCheckList.htm}
+widget displays a list of items to be selected by the user. CheckList
+acts similarly to the Tk checkbutton or radiobutton widgets, except it
+is capable of handling many more items than checkbuttons or
+radiobuttons.
 \end{classdesc}
 
-% Python Demo of: \ulink{ CheckList}{http://tix.sourceforge.net/dist/current/demos/samples/ChkList.tcl}
-% Python Demo of: \ulink{ScrolledHList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList.tcl}
-% Python Demo of: \ulink{ScrolledHList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList2.tcl}
+% Python Demo of:
+% \ulink{ CheckList}{http://tix.sourceforge.net/dist/current/demos/samples/ChkList.tcl}
+% Python Demo of:
+% \ulink{ScrolledHList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList.tcl}
+% Python Demo of:
+% \ulink{ScrolledHList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/SHList2.tcl}
 
-
-\index{Tree widget}
 \begin{classdesc}{Tree}{}
 The \ulink{Tree}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixTree.htm} widget can be
-used to display hierachical data in a tree form. The user can adjust
-the view of the tree by opening or closing parts of the tree.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixTree.htm}
+widget can be used to display hierachical data in a tree form. The
+user can adjust the view of the tree by opening or closing parts of
+the tree.
 \end{classdesc}
 
-% Python Demo of: \ulink{ Tree}{http://tix.sourceforge.net/dist/current/demos/samples/Tree.tcl}
+% Python Demo of:
+% \ulink{Tree}{http://tix.sourceforge.net/dist/current/demos/samples/Tree.tcl}
 
-% Python Demo of: \ulink{Tree (Dynamic)}{http://tix.sourceforge.net/dist/current/demos/samples/DynTree.tcl}
+% Python Demo of:
+% \ulink{Tree (Dynamic)}{http://tix.sourceforge.net/dist/current/demos/samples/DynTree.tcl}
 
 
 \subsubsection{Tabular ListBox}
 
-\index{TList widget}
 \begin{classdesc}{TList}{}
 The \ulink{TList}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixTList.htm} widget can be
-used to display data in a tabular format. The list entries of a TList
-widget are similar to the entries in the Tk listbox widget. The main
-differences are (1) the TList widget can display the list entries in a
-two dimensional format and (2) you can use graphical images as well as
-multiple colors and fonts for the list entries.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixTList.htm}
+widget can be used to display data in a tabular format. The list
+entries of a \class{TList} widget are similar to the entries in the Tk
+listbox widget.  The main differences are (1) the \class{TList} widget
+can display the list entries in a two dimensional format and (2) you
+can use graphical images as well as multiple colors and fonts for the
+list entries.
 \end{classdesc}
 
-% Python Demo of: \ulink{ScrolledTList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/STList1.tcl}
-% Python Demo of: \ulink{ScrolledTList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/STList2.tcl}
+% Python Demo of:
+% \ulink{ScrolledTList (1)}{http://tix.sourceforge.net/dist/current/demos/samples/STList1.tcl}
+% Python Demo of:
+% \ulink{ScrolledTList (2)}{http://tix.sourceforge.net/dist/current/demos/samples/STList2.tcl}
 
 % Grid has yet to be added to Python
 % \subsubsection{Grid Widget}
-% % Python Demo of: \ulink{Simple Grid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid0.tcl}
-% % Python Demo of: \ulink{ScrolledGrid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid1.tcl}
-% % Python Demo of: \ulink{Editable Grid}{http://tix.sourceforge.net/dist/current/demos/samples/EditGrid.tcl}
+% Python Demo of:
+% \ulink{Simple Grid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid0.tcl}
+% Python Demo of:
+% \ulink{ScrolledGrid}{http://tix.sourceforge.net/dist/current/demos/samples/SGrid1.tcl}
+% Python Demo of:
+% \ulink{Editable Grid}{http://tix.sourceforge.net/dist/current/demos/samples/EditGrid.tcl}
 
 
 \subsubsection{Manager Widgets}
 
-\index{PanedWindow widget}
 \begin{classdesc}{PanedWindow}{}
 The \ulink{PanedWindow}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixPanedWindow.htm} widget
-allows the user to interactively manipulate the sizes of several
-panes. The panes can be arranged either vertically or horizontally.The
-user changes the sizes of the panes by dragging the resize handle
-between two panes.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixPanedWindow.htm}
+widget allows the user to interactively manipulate the sizes of
+several panes.  The panes can be arranged either vertically or
+horizontally.  The user changes the sizes of the panes by dragging the
+resize handle between two panes.
 \end{classdesc}
 
-% Python Demo of: \ulink{ PanedWindow}{http://tix.sourceforge.net/dist/current/demos/samples/PanedWin.tcl}
+% Python Demo of:
+% \ulink{PanedWindow}{http://tix.sourceforge.net/dist/current/demos/samples/PanedWin.tcl}
 
-\index{ListNoteBook widget}
 \begin{classdesc}{ListNoteBook}{}
 The \ulink{ListNoteBook}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixListNoteBook.htm} widget is
-very similar to the TixNoteBook widget: it can be used to display many
-windows in a limited space using a notebook metaphor. The notebook is
-divided into a stack of pages (windows). At one time only one of these
-pages can be shown. The user can navigate through these pages by
-choosing the name of the desired page in the \member{hlist} subwidget.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixListNoteBook.htm}
+widget is very similar to the \class{TixNoteBook} widget: it can be
+used to display many windows in a limited space using a notebook
+metaphor. The notebook is divided into a stack of pages (windows). At
+one time only one of these pages can be shown. The user can navigate
+through these pages by choosing the name of the desired page in the
+\member{hlist} subwidget.
 \end{classdesc}
 
-% Python Demo of: \ulink{ ListNoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/ListNBK.tcl}
+% Python Demo of:
+% \ulink{ListNoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/ListNBK.tcl}
 
-
-\index{NoteBook widget}
 \begin{classdesc}{NoteBook}{}
 The \ulink{NoteBook}
-{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixNoteBook.htm} widget can
-be used to display many windows in a limited space using a notebook
-metaphor. The notebook is divided into a stack of pages. At one time
-only one of these pages can be shown. The user can navigate through
-these pages by choosing the visual ``tabs'' at the top of the NoteBook widget.
+{http://tix.sourceforge.net/dist/current/man/html/TixCmd/tixNoteBook.htm}
+widget can be used to display many windows in a limited space using a
+notebook metaphor. The notebook is divided into a stack of pages. At
+one time only one of these pages can be shown. The user can navigate
+through these pages by choosing the visual ``tabs'' at the top of the
+NoteBook widget.
 \end{classdesc}
 
-% Python Demo of: \ulink{ NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/NoteBook.tcl}
+% Python Demo of:
+% \ulink{NoteBook}{http://tix.sourceforge.net/dist/current/demos/samples/NoteBook.tcl}
 
 
 % \subsubsection{Scrolled Widgets}
-% Python Demo of: \ulink{ ScrolledListBox}{http://tix.sourceforge.net/dist/current/demos/samples/SListBox.tcl}
-% Python Demo of: \ulink{ ScrolledText}{http://tix.sourceforge.net/dist/current/demos/samples/SText.tcl}
-% Python Demo of: \ulink{ ScrolledWindow}{http://tix.sourceforge.net/dist/current/demos/samples/SWindow.tcl}
-% Python Demo of: \ulink{Canvas Object View}{http://tix.sourceforge.net/dist/current/demos/samples/CObjView.tcl}
+% Python Demo of:
+% \ulink{ScrolledListBox}{http://tix.sourceforge.net/dist/current/demos/samples/SListBox.tcl}
+% Python Demo of:
+% \ulink{ScrolledText}{http://tix.sourceforge.net/dist/current/demos/samples/SText.tcl}
+% Python Demo of:
+% \ulink{ScrolledWindow}{http://tix.sourceforge.net/dist/current/demos/samples/SWindow.tcl}
+% Python Demo of:
+% \ulink{Canvas Object View}{http://tix.sourceforge.net/dist/current/demos/samples/CObjView.tcl}
 
 
 \subsubsection{Image Types}
@@ -1360,91 +1391,7 @@
 %end{latexonly}
 
 
-\section{Other User Interface Modules and Packages
-         \label{other-gui-modules}}
-
-
-There are an number of extension widget sets to \refmodule{Tkinter}.
-
-\begin{seealso}
-\seetitle[http://pmw.sourceforge.net/]{Python megawidgets}{is a
-toolkit for building high-level compound widgets in Python using the
-\refmodule{Tkinter} module.  It consists of a set of base classes and
-a library of flexible and extensible megawidgets built on this
-foundation. These megawidgets include notebooks, comboboxes, selection
-widgets, paned widgets, scrolled widgets, dialog windows, etc.  Also,
-with the Pmw.Blt interface to BLT, the busy, graph, stripchart, tabset
-and vector commands are be available.
-
-The initial ideas for Pmw were taken from the Tk \code{itcl}
-extensions \code{[incr Tk]} by Michael McLennan and \code{[incr
-Widgets]} by Mark Ulferts. Several of the megawidgets are direct
-translations from the itcl to Python. It offers most of the range of
-widgets that \code{[incr Widgets]} does, and is almost as complete as
-Tix, lacking however Tix's fast \class{HList} widget for drawing trees.
-}
-\seetitle[http://tkinter.effbot.org]{Tkinter3000}{
-is a Widget Construction Kit that allows you to write new Tkinter
-widgets in Python using Mixins. It is built on top of Tkinter,
-and does not offer the extended range of widgets that \refmodule{Tix} does,
-but does allow a form of  building mega-widgets. The project is
-still in the early stages.
-}
-\end{seealso}
-
-
-\refmodule{Tkinter} is not the only GUI for Python, but is however the
-most commonly used one.
-
-\begin{seealso}
-\seetitle[http://www.wxwindows.org]{wxWindows}{
-is a GUI toolkit that combines the most attractive attributes of Qt,
-Tk, Motif, and GTK+ in one powerful and efficient package. It is
-implemented in C++. wxWindows supports two flavors of Unix
-implementation: GTK+ and Motif, and under Windows, it has a standard
-Microsoft Foundation Classes (MFC) appearance, because it uses Win32
-widgets.  There is a Python class wrapper, independent of Tkinter.
-
-wxWindows is much richer in widgets than \refmodule{Tkinter}, with its
-help system, sophisticated HTML and image viewers, and other
-specialized widgets, extensive documentation, and printing capabilities.
-}
-\seetitle[http://www.thekompany.com]{PyKDE}{
-PyKDE is a SIP wrapped interface to the Qt toolkit.
-The Qt C++ toolkit lies at the heart of the KDE desktop, and the
-Qt toolkit allows very tight integration with KDE, and also Windows
-portability. SIP is a tool for generating bindings for \Cpp{} libraries
-as Python classes, and is specifically designed for Python.
-}
-\seetitle[http://fxpy.sourceforge.net/]{FXPy}{
-is a Python extension module which provides an interface to the 
-\citetitle[http://www.cfdrc.com/FOX/fox.html]{FOX} GUI.
-FOX is a C++ based Toolkit for developing Graphical User Interfaces
-easily and effectively. It offers a wide, and growing, collection of
-Controls, and provides state of the art facilities such as drag and
-drop, selection, as well as OpenGL widgets for 3D graphical
-manipulation.  FOX also implements icons, images, and user-convenience
-features such as status line help, and tooltips.  
-
-Even though FOX offers a large collection of Controls already, FOX
-leverages C++ to allow programmers to easily build additional Controls
-and GUI elements, simply by taking existing controls, and creating a
-derived class which simply adds or redefines the desired behavior.
-}
-\seetitle[http://www.daa.com.au/\~james/pygtk/]{PyGTK}{
-is a set of bindings for the \ulink{GTK}{http://www.gtk.org/} widget set.
-It provides an object oriented interface that is slightly higher
-level than the C one. It automatically does all the type casting and
-reference counting that you would have to do normally with the C
-API. There are also \ulink{bindings}{http://www.daa.com.au/\~james/gnome/}
-to  \ulink{GNOME}{http://www.gnome.org}, and a 
-\ulink{tutorial}
-{http://laguna.fmedic.unam.mx/\~daniel/pygtutorial/pygtutorial/index.html}
-is available.
-}
-\end{seealso}
-
-% XXX Reference URLs that compare the different UI packages
+\input{libturtle}
 
 
 \section{Idle \label{idle}}
@@ -1672,3 +1619,90 @@
         session is started; the arguments are still available in
         \code{sys.argv}.
 \end{enumerate}
+
+
+\section{Other Graphical User Interface Packages
+         \label{other-gui-packages}}
+
+
+There are an number of extension widget sets to \refmodule{Tkinter}.
+
+\begin{seealso}
+\seetitle[http://pmw.sourceforge.net/]{Python megawidgets}{is a
+toolkit for building high-level compound widgets in Python using the
+\refmodule{Tkinter} module.  It consists of a set of base classes and
+a library of flexible and extensible megawidgets built on this
+foundation. These megawidgets include notebooks, comboboxes, selection
+widgets, paned widgets, scrolled widgets, dialog windows, etc.  Also,
+with the Pmw.Blt interface to BLT, the busy, graph, stripchart, tabset
+and vector commands are be available.
+
+The initial ideas for Pmw were taken from the Tk \code{itcl}
+extensions \code{[incr Tk]} by Michael McLennan and \code{[incr
+Widgets]} by Mark Ulferts. Several of the megawidgets are direct
+translations from the itcl to Python. It offers most of the range of
+widgets that \code{[incr Widgets]} does, and is almost as complete as
+Tix, lacking however Tix's fast \class{HList} widget for drawing trees.
+}
+\seetitle[http://tkinter.effbot.org]{Tkinter3000}{
+is a Widget Construction Kit that allows you to write new Tkinter
+widgets in Python using Mixins. It is built on top of Tkinter,
+and does not offer the extended range of widgets that \refmodule{Tix} does,
+but does allow a form of  building mega-widgets. The project is
+still in the early stages.
+}
+\end{seealso}
+
+
+\refmodule{Tkinter} is not the only GUI for Python, but is however the
+most commonly used one.
+
+\begin{seealso}
+\seetitle[http://www.wxwindows.org]{wxWindows}{
+is a GUI toolkit that combines the most attractive attributes of Qt,
+Tk, Motif, and GTK+ in one powerful and efficient package. It is
+implemented in \Cpp. wxWindows supports two flavors of Unix
+implementation: GTK+ and Motif, and under Windows, it has a standard
+Microsoft Foundation Classes (MFC) appearance, because it uses Win32
+widgets.  There is a Python class wrapper, independent of Tkinter.
+
+wxWindows is much richer in widgets than \refmodule{Tkinter}, with its
+help system, sophisticated HTML and image viewers, and other
+specialized widgets, extensive documentation, and printing capabilities.
+}
+\seetitle[http://www.thekompany.com]{PyKDE}{
+PyKDE is a SIP wrapped interface to the Qt toolkit.
+The Qt \Cpp{} toolkit lies at the heart of the KDE desktop, and the
+Qt toolkit allows very tight integration with KDE, and also Windows
+portability. SIP is a tool for generating bindings for \Cpp{} libraries
+as Python classes, and is specifically designed for Python.
+}
+\seetitle[http://fxpy.sourceforge.net/]{FXPy}{
+is a Python extension module which provides an interface to the 
+\citetitle[http://www.cfdrc.com/FOX/fox.html]{FOX} GUI.
+FOX is a \Cpp{} based Toolkit for developing Graphical User Interfaces
+easily and effectively. It offers a wide, and growing, collection of
+Controls, and provides state of the art facilities such as drag and
+drop, selection, as well as OpenGL widgets for 3D graphical
+manipulation.  FOX also implements icons, images, and user-convenience
+features such as status line help, and tooltips.  
+
+Even though FOX offers a large collection of controls already, FOX
+leverages \Cpp{} to allow programmers to easily build additional Controls
+and GUI elements, simply by taking existing controls, and creating a
+derived class which simply adds or redefines the desired behavior.
+}
+\seetitle[http://www.daa.com.au/\~james/pygtk/]{PyGTK}{
+is a set of bindings for the \ulink{GTK}{http://www.gtk.org/} widget set.
+It provides an object oriented interface that is slightly higher
+level than the C one. It automatically does all the type casting and
+reference counting that you would have to do normally with the C
+API. There are also \ulink{bindings}{http://www.daa.com.au/\~james/gnome/}
+to  \ulink{GNOME}{http://www.gnome.org}, and a 
+\ulink{tutorial}
+{http://laguna.fmedic.unam.mx/\~daniel/pygtutorial/pygtutorial/index.html}
+is available.
+}
+\end{seealso}
+
+% XXX Reference URLs that compare the different UI packages
