Change "\," to just "," in function signatures.  This is easier to maintain,
works better with LaTeX2HTML, and allows some simplification of the python.sty
macros.
diff --git a/Doc/mac/libctb.tex b/Doc/mac/libctb.tex
index 36d1289..cd8c72c 100644
--- a/Doc/mac/libctb.tex
+++ b/Doc/mac/libctb.tex
@@ -34,7 +34,7 @@
 Return 1 if the communication toolbox is available, zero otherwise.
 \end{funcdesc}
 
-\begin{funcdesc}{CMNew}{name\, sizes}
+\begin{funcdesc}{CMNew}{name, sizes}
 Create a connection object using the connection tool named
 \var{name}. \var{sizes} is a 6-tuple given buffer sizes for data in,
 data out, control in, control out, attention in and attention out.
@@ -77,21 +77,21 @@
 \var{Listen} returned.
 \end{funcdesc}
 
-\begin{funcdesc}{Close}{timeout\, now}
+\begin{funcdesc}{Close}{timeout, now}
 Close a connection. When \var{now} is zero, the close is orderly
 (i.e.\ outstanding output is flushed, etc.)\ with a timeout of
 \var{timeout} seconds. When \var{now} is non-zero the close is
 immediate, discarding output.
 \end{funcdesc}
 
-\begin{funcdesc}{Read}{len\, chan\, timeout}
+\begin{funcdesc}{Read}{len, chan, timeout}
 Read \var{len} bytes, or until \var{timeout} seconds have passed, from
 the channel \var{chan} (which is one of \var{cmData}, \var{cmCntl} or
 \var{cmAttn}). Return a 2-tuple:\ the data read and the end-of-message
 flag.
 \end{funcdesc}
 
-\begin{funcdesc}{Write}{buf\, chan\, timeout\, eom}
+\begin{funcdesc}{Write}{buf, chan, timeout, eom}
 Write \var{buf} to channel \var{chan}, aborting after \var{timeout}
 seconds. When \var{eom} has the value \var{cmFlagsEOM} an
 end-of-message indicator will be written after the data (if this
diff --git a/Doc/mac/libframework.tex b/Doc/mac/libframework.tex
index 012b8c5..6b8c5fa 100644
--- a/Doc/mac/libframework.tex
+++ b/Doc/mac/libframework.tex
@@ -31,14 +31,14 @@
 by the user.
 \end{funcdesc}
 
-\begin{funcdesc}{Menu}{bar\, title\optional{\, after}}
+\begin{funcdesc}{Menu}{bar, title\optional{, after}}
 An object representing a menu. Upon creation you pass the
 \code{MenuBar} the menu appears in, the \var{title} string and a
 position (1-based) \var{after} where the menu should appear (default:
 at the end).
 \end{funcdesc}
 
-\begin{funcdesc}{MenuItem}{menu\, title\optional{\, shortcut\, callback}}
+\begin{funcdesc}{MenuItem}{menu, title\optional{, shortcut, callback}}
 Create a menu item object. The arguments are the menu to crate the
 item it, the item title string and optionally the keyboard shortcut
 and a callback routine. The callback is called with the arguments
@@ -58,7 +58,7 @@
 Add a separator to the end of a menu.
 \end{funcdesc}
 
-\begin{funcdesc}{SubMenu}{menu\, label}
+\begin{funcdesc}{SubMenu}{menu, label}
 Create a submenu named \var{label} under menu \var{menu}. The menu
 object is returned.
 \end{funcdesc}
@@ -72,7 +72,7 @@
 Creates a modeless dialog window.
 \end{funcdesc}
 
-\begin{funcdesc}{windowbounds}{width\, height}
+\begin{funcdesc}{windowbounds}{width, height}
 Return a \code{(left, top, right, bottom)} tuple suitable for creation
 of a window of given width and height. The window will be staggered
 with respect to previous windows, and an attempt is made to keep the
@@ -104,7 +104,7 @@
 more elaborate about messages.
 \end{funcdesc}
 
-\begin{funcdesc}{mainloop}{\optional{mask\, wait}}
+\begin{funcdesc}{mainloop}{\optional{mask, wait}}
 This routine is the main event loop, call it to set your application
 rolling. \var{Mask} is the mask of events you want to handle,
 \var{wait} is the number of ticks you want to leave to other
@@ -145,7 +145,7 @@
 Terminate the event \code{mainloop} at the next convenient moment.
 \end{funcdesc}
 
-\begin{funcdesc}{do_char}{c\, event}
+\begin{funcdesc}{do_char}{c, event}
 The user typed character \var{c}. The complete details of the event
 can be found in the \var{event} structure. This method can also be
 provided in a \code{Window} object, which overrides the
@@ -181,22 +181,22 @@
 close. Call \code{self.do_postclose} to cleanup the parent state.
 \end{funcdesc}
 
-\begin{funcdesc}{do_postresize}{width\, height\, macoswindowid}
+\begin{funcdesc}{do_postresize}{width, height, macoswindowid}
 Called after the window is resized. Override if more needs to be done
 than calling \code{InvalRect}.
 \end{funcdesc}
 
-\begin{funcdesc}{do_contentclick}{local\, modifiers\, event}
+\begin{funcdesc}{do_contentclick}{local, modifiers, event}
 The user clicked in the content part of a window. The arguments are
 the coordinates (window-relative), the key modifiers and the raw
 event.
 \end{funcdesc}
 
-\begin{funcdesc}{do_update}{macoswindowid\, event}
+\begin{funcdesc}{do_update}{macoswindowid, event}
 An update event for the window was received. Redraw the window.
 \end{funcdesc}
 
-\begin{funcdesc}{do_activate}{activate\, event}
+\begin{funcdesc}{do_activate}{activate, event}
 The window was activated (\code{activate==1}) or deactivated
 (\code{activate==0}). Handle things like focus highlighting, etc.
 \end{funcdesc}
@@ -208,7 +208,7 @@
 
 \setindexsubitem{(ControlsWindow method)}
 
-\begin{funcdesc}{do_controlhit}{window\, control\, pcode\, event}
+\begin{funcdesc}{do_controlhit}{window, control, pcode, event}
 Part \code{pcode} of control \code{control} was hit by the
 user. Tracking and such has already been taken care of.
 \end{funcdesc}
@@ -220,7 +220,7 @@
 
 \setindexsubitem{(ScrolledWindow method)}
 
-\begin{funcdesc}{scrollbars}{\optional{wantx\, wanty}}
+\begin{funcdesc}{scrollbars}{\optional{wantx, wanty}}
 Create (or destroy) horizontal and vertical scrollbars. The arguments
 specify which you want (default: both). The scrollbars always have
 minimum \code{0} and maximum \code{32767}.
@@ -238,32 +238,32 @@
 \code{getscrollbarvalues} and update the scrollbars.
 \end{funcdesc}
 
-\begin{funcdesc}{scrollbar_callback}{which\, what\, value}
+\begin{funcdesc}{scrollbar_callback}{which, what, value}
 Supplied by you and called after user interaction. \code{Which} will
 be \code{'x'} or \code{'y'}, \code{what} will be \code{'-'},
 \code{'--'}, \code{'set'}, \code{'++'} or \code{'+'}. For
 \code{'set'}, \code{value} will contain the new scrollbar position.
 \end{funcdesc}
 
-\begin{funcdesc}{scalebarvalues}{absmin\, absmax\, curmin\, curmax}
+\begin{funcdesc}{scalebarvalues}{absmin, absmax, curmin, curmax}
 Auxiliary method to help you calculate values to return from
 \code{getscrollbarvalues}. You pass document minimum and maximum value
 and topmost (leftmost) and bottommost (rightmost) visible values and
 it returns the correct number or \code{None}.
 \end{funcdesc}
 
-\begin{funcdesc}{do_activate}{onoff\, event}
+\begin{funcdesc}{do_activate}{onoff, event}
 Takes care of dimming/highlighting scrollbars when a window becomes
 frontmost vv. If you override this method call this one at the end of
 your method.
 \end{funcdesc}
 
-\begin{funcdesc}{do_postresize}{width\, height\, window}
+\begin{funcdesc}{do_postresize}{width, height, window}
 Moves scrollbars to the correct position. Call this method initially
 if you override it.
 \end{funcdesc}
 
-\begin{funcdesc}{do_controlhit}{window\, control\, pcode\, event}
+\begin{funcdesc}{do_controlhit}{window, control, pcode, event}
 Handles scrollbar interaction. If you override it call this method
 first, a nonzero return value indicates the hit was in the scrollbars
 and has been handled.
@@ -281,7 +281,7 @@
 \var{resid}. The dialog object is stored in \code{self.wid}.
 \end{funcdesc}
 
-\begin{funcdesc}{do_itemhit}{item\, event}
+\begin{funcdesc}{do_itemhit}{item, event}
 Item number \var{item} was hit. You are responsible for redrawing
 toggle buttons, etc.
 \end{funcdesc}
diff --git a/Doc/mac/libmacconsole.tex b/Doc/mac/libmacconsole.tex
index bd601b9..1916025 100644
--- a/Doc/mac/libmacconsole.tex
+++ b/Doc/mac/libmacconsole.tex
@@ -95,7 +95,7 @@
 non-\ASCII{} character set).
 \end{funcdesc}
 
-\begin{funcdesc}{gotoxy}{x\, y}
+\begin{funcdesc}{gotoxy}{x, y}
 Set the cursor to position \code{(\var{x}, \var{y})}.
 \end{funcdesc}
 
diff --git a/Doc/mac/libmacfs.tex b/Doc/mac/libmacfs.tex
index 647e004..5373d31 100644
--- a/Doc/mac/libmacfs.tex
+++ b/Doc/mac/libmacfs.tex
@@ -2,16 +2,16 @@
 \label{module-macfs}
 \bimodindex{macfs}
 
-\setindexsubitem{(in module macfs)}
 
-This module provides access to macintosh FSSpec handling, the Alias
+This module provides access to Macintosh FSSpec handling, the Alias
 Manager, finder aliases and the Standard File package.
 
 Whenever a function or method expects a \var{file} argument, this
 argument can be one of three things:\ (1) a full or partial Macintosh
-pathname, (2) an FSSpec object or (3) a 3-tuple \code{(wdRefNum,
-parID, name)} as described in Inside Mac VI\@. A description of aliases
-and the standard file package can also be found there.
+pathname, (2) an FSSpec object or (3) a 3-tuple \code{(\var{wdRefNum},
+\var{parID}, \var{name})} as described in \emph{Inside Macintosh
+VI}\@. A description of aliases and the standard file package can also
+be found there.
 
 \begin{funcdesc}{FSSpec}{file}
 Create an FSSpec object for the specified file.
@@ -41,7 +41,7 @@
 (otherwise the FSSpec object for the file itself is returned).
 \end{funcdesc}
 
-\begin{funcdesc}{StandardGetFile}{\optional{type\, ...}}
+\begin{funcdesc}{StandardGetFile}{\optional{type, ...}}
 Present the user with a standard ``open input file''
 dialog. Optionally, you can pass up to four 4-char file types to limit
 the files the user can choose from. The function returns an FSSpec
@@ -49,11 +49,11 @@
 without cancelling.
 \end{funcdesc}
 
-\begin{funcdesc}{PromptGetFile}{prompt\optional{\, type\, ...}}
+\begin{funcdesc}{PromptGetFile}{prompt\optional{, type, ...}}
 Similar to \var{StandardGetFile} but allows you to specify a prompt.
 \end{funcdesc}
 
-\begin{funcdesc}{StandardPutFile}{prompt\, \optional{default}}
+\begin{funcdesc}{StandardPutFile}{prompt, \optional{default}}
 Present the user with a standard ``open output file''
 dialog. \var{prompt} is the prompt string, and the optional
 \var{default} argument initializes the output file name. The function
@@ -79,7 +79,7 @@
 this call inoperative.
 \end{funcdesc}
 
-\begin{funcdesc}{FindFolder}{where\, which\, create}
+\begin{funcdesc}{FindFolder}{where, which, create}
 Locates one of the ``special'' folders that MacOS knows about, such as
 the trash or the Preferences folder. \var{Where} is the disk to
 search, \var{which} is the 4-char string specifying which folder to
@@ -133,7 +133,7 @@
 Return the 4-char creator and type of the file.
 \end{funcdesc}
 
-\begin{funcdesc}{SetCreatorType}{creator\, type}
+\begin{funcdesc}{SetCreatorType}{creator, type}
 Set the 4-char creator and type of the file.
 \end{funcdesc}
 
@@ -151,7 +151,7 @@
 creation date, modification date and backup date of the file.
 \end{funcdesc}
 
-\begin{funcdesc}{SetDates}{crdate\, moddate\, backupdate}
+\begin{funcdesc}{SetDates}{crdate, moddate, backupdate}
 Set the creation, modification and backup date of the file. The values
 are in the standard floating point format used for times throughout
 Python.
@@ -179,7 +179,7 @@
 An interface to the C routine \code{GetAliasInfo()}.
 \end{funcdesc}
 
-\begin{funcdesc}{Update}{file\, \optional{file2}}
+\begin{funcdesc}{Update}{file, \optional{file2}}
 Update the alias to point to the \var{file} given. If \var{file2} is
 present a relative alias will be created.
 \end{funcdesc}
diff --git a/Doc/mac/libmacostools.tex b/Doc/mac/libmacostools.tex
index 1553b11..c4c5842 100644
--- a/Doc/mac/libmacostools.tex
+++ b/Doc/mac/libmacostools.tex
@@ -9,7 +9,7 @@
 
 \setindexsubitem{(in module macostools)}
 
-\begin{funcdesc}{copy}{src\, dst\optional{\, createpath, copytimes}}
+\begin{funcdesc}{copy}{src, dst\optional{, createpath, copytimes}}
 Copy file \var{src} to \var{dst}. The files can be specified as
 pathnames or \code{FSSpec} objects. If \var{createpath} is non-zero
 \var{dst} must be a pathname and the folders leading to the
@@ -22,13 +22,13 @@
 copied, not the aliasfile.
 \end{funcdesc}
 
-\begin{funcdesc}{copytree}{src\, dst}
+\begin{funcdesc}{copytree}{src, dst}
 Recursively copy a file tree from \var{src} to \var{dst}, creating
 folders as needed. \var{Src} and \var{dst} should be specified as
 pathnames.
 \end{funcdesc}
 
-\begin{funcdesc}{mkalias}{src\, dst}
+\begin{funcdesc}{mkalias}{src, dst}
 Create a finder alias \var{dst} pointing to \var{src}. Both may be
 specified as pathnames or \var{FSSpec} objects.
 \end{funcdesc}
diff --git a/Doc/mac/libmactcp.tex b/Doc/mac/libmactcp.tex
index f041280..122aa5b 100644
--- a/Doc/mac/libmactcp.tex
+++ b/Doc/mac/libmactcp.tex
@@ -78,13 +78,13 @@
 \code{(host, port)}, both integers.
 \end{funcdesc}
 
-\begin{funcdesc}{ActiveOpen}{lport\, host\, rport}
+\begin{funcdesc}{ActiveOpen}{lport, host, rport}
 Open an outgoing connection to TCP address \code{(\var{host}, \var{rport})}. Use
 local port \var{lport} (zero makes the system pick a free port). This
 call blocks until the connection has been established.
 \end{funcdesc}
 
-\begin{funcdesc}{Send}{buf\, push\, urgent}
+\begin{funcdesc}{Send}{buf, push, urgent}
 Send data \var{buf} over the connection. \var{Push} and \var{urgent}
 are flags as specified by the TCP standard.
 \end{funcdesc}
@@ -168,7 +168,7 @@
 infinite).  Return the data.
 \end{funcdesc}
 
-\begin{funcdesc}{Write}{host\, port\, buf}
+\begin{funcdesc}{Write}{host, port, buf}
 Send \var{buf} as a datagram to IP-address \var{host}, port
 \var{port}.
 \end{funcdesc}
diff --git a/Doc/mac/libmacui.tex b/Doc/mac/libmacui.tex
index 546065f..bf8a30f 100644
--- a/Doc/mac/libmacui.tex
+++ b/Doc/mac/libmacui.tex
@@ -18,7 +18,7 @@
 user clicks ``OK''.
 \end{funcdesc}
 
-\begin{funcdesc}{AskString}{prompt\optional{\, default}}
+\begin{funcdesc}{AskString}{prompt\optional{, default}}
 Ask the user to input a string value, in a modal dialog. \var{Prompt}
 is the promt message, the optional \var{default} arg is the initial
 value for the string. All strings can be at most 255 bytes
@@ -26,7 +26,7 @@
 case the user cancelled.
 \end{funcdesc}
 
-\begin{funcdesc}{AskYesNoCancel}{question\optional{\, default}}
+\begin{funcdesc}{AskYesNoCancel}{question\optional{, default}}
 Present a dialog with text \var{question} and three buttons labelled
 ``yes'', ``no'' and ``cancel''. Return \code{1} for yes, \code{0} for
 no and \code{-1} for cancel. The default return value chosen by
@@ -34,7 +34,7 @@
 \var{default} argument.
 \end{funcdesc}
 
-\begin{funcdesc}{ProgressBar}{\optional{label\, maxval}}
+\begin{funcdesc}{ProgressBar}{\optional{label, maxval}}
 Display a modeless progress dialog with a thermometer bar. \var{Label}
 is the textstring displayed (default ``Working...''), \var{maxval} is
 the value at which progress is complete (default 100). The returned
diff --git a/Doc/mac/libminiae.tex b/Doc/mac/libminiae.tex
index 00666fa..d898551 100644
--- a/Doc/mac/libminiae.tex
+++ b/Doc/mac/libminiae.tex
@@ -36,14 +36,14 @@
 
 \setindexsubitem{(AEServer method)}
 
-\begin{funcdesc}{installaehandler}{classe\, type\, callback}
+\begin{funcdesc}{installaehandler}{classe, type, callback}
 Installs an AppleEvent handler. \code{Classe} and \code{type} are the
 four-char OSA Class and Type designators, \code{'****'} wildcards are
 allowed. When a matching AppleEvent is received the parameters are
 decoded and your callback is invoked.
 \end{funcdesc}
 
-\begin{funcdesc}{callback}{_object\, **kwargs}
+\begin{funcdesc}{callback}{_object, **kwargs}
 Your callback is called with the OSA Direct Object as first positional
 parameter. The other parameters are passed as keyword arguments, with
 the 4-char designator as name. Three extra keyword parameters are