diff --git a/Doc/lib/liboptparse.tex b/Doc/lib/liboptparse.tex
index 8b1b404..0cfbb9c 100644
--- a/Doc/lib/liboptparse.tex
+++ b/Doc/lib/liboptparse.tex
@@ -33,7 +33,7 @@
 \end{verbatim}
 
 With these few lines of code, users of your script can now do the
-"usual thing" on the command-line:
+``usual thing'' on the command-line:
 
 \begin{verbatim}
 $ <yourscript> -f outfile --quiet
@@ -188,7 +188,7 @@
 options whatsoever.  (Pick a random program from the \UNIX{} or GNU
 toolsets.  Can it run without any options at all and still make sense?
 The only exceptions I can think of are \program{find}, \program{tar},
-and \program{dd} --- all of which are mutant oddballs that have been
+and \program{dd}---all of which are mutant oddballs that have been
 rightly criticized for their non-standard syntax and confusing
 interfaces.)
 
@@ -228,18 +228,18 @@
 A good user interface should have as few absolute requirements as
 possible.  If your program requires 17 distinct pieces of information in
 order to run successfully, it doesn't much matter \emph{how} you get that
-information from the user --- most people will give up and walk away
+information from the user---most people will give up and walk away
 before they successfully run the program.  This applies whether the user
 interface is a command-line, a configuration file, a GUI, or whatever:
 if you make that many demands on your users, most of them will just give
 up.
 
 In short, try to minimize the amount of information that users are
-absolutely required to supply --- use sensible defaults whenever
+absolutely required to supply---use sensible defaults whenever
 possible.  Of course, you also want to make your programs reasonably
 flexible.  That's what options are for.  Again, it doesn't matter if
 they are entries in a config file, checkboxes in the ``Preferences''
-dialog of a GUI, or command-line options --- the more options you
+dialog of a GUI, or command-line options---the more options you
 implement, the more flexible your program is, and the more complicated
 its implementation becomes.  It's quite easy to overwhelm users (and
 yourself!) with too much flexibility, so be careful there.
@@ -281,7 +281,7 @@
 can put there: \var{action}, \var{type}, \var{dest} (destination), and
 \var{help}.
 
-\subsubsection{The "store" action\label{optparse-store-action}}
+\subsubsection{The \var{store} action\label{optparse-store-action}}
 
 The action tells \module{optparse} what to do when it sees one of the
 option strings for this option on the command-line.  For example, the
@@ -289,7 +289,7 @@
 the current argument), ensure that it is of the correct type, and
 store it to your chosen destination.
 
-For example, let's fill in the "..." of that last option:
+For example, let's fill in the ``...'' of that last option:
 
 \begin{verbatim}
 parser.add_option("-f", "--file",
@@ -308,7 +308,7 @@
 \function{parse_args()}, it automatically uses \var{sys.argv[1:]}.)
 
 When \module{optparse} sees the \programopt{-f}, it sucks in the next
-argument --- ``foo.txt'' --- and stores it in the \var{filename}
+argument---\code{foo.txt}---and stores it in the \var{filename}
 attribute of a special object.  That object is the first return value
 from \function{parse_args()}, so:
 
@@ -316,20 +316,20 @@
 print options.filename
 \end{verbatim}
 
-will print ``foo.txt''.
+will print \code{foo.txt}.
 
-Other option types supported by \module{optparse} are ``int'' and
-``float''.  Here's an option that expects an integer argument:
+Other option types supported by \module{optparse} are \code{int} and
+\code{float}.  Here's an option that expects an integer argument:
 
 \begin{verbatim}
 parser.add_option("-n", type="int", dest="num")
 \end{verbatim}
 
 Note that I didn't supply a long option, which is perfectly acceptable.
-I also didn't specify the action --- it defaults to ``store''.
+I also didn't specify the action---it defaults to ``store''.
   
 Let's parse another fake command-line.  This time, we'll jam the
-option argument right up against the option --- \programopt{-n42} (one
+option argument right up against the option---\programopt{-n42} (one
 argument) is equivalent to \programopt{-n 42} (two arguments). :
 
 \begin{verbatim}
@@ -359,10 +359,10 @@
 Adding types is fairly easy; please refer to
 section~\ref{optparse-adding-types}, ``Adding new types.''
 
-\subsubsection{Other "store_*" actions\label{optparse-other-store-actions}}
+\subsubsection{Other \var{store_*} actions\label{optparse-other-store-actions}}
 
-Flag options --- set a variable to true or false when a particular
-option is seen --- are quite common.  \module{optparse} supports them
+Flag options---set a variable to true or false when a particular
+option is seen---are quite common.  \module{optparse} supports them
 with two separate actions, ``store_true'' and ``store_false''.  For
 example, you might have a \var{verbose} flag that is turned on with
 \programopt{-v} and off with \programopt{-q}:
@@ -374,7 +374,7 @@
 
 Here we have two different options with the same destination, which is
 perfectly OK.  (It just means you have to be a bit careful when setting
-default values --- see below.)
+default values---see below.)
 
 When \module{optparse} sees \programopt{-v} on the command line, it
 sets the \var{verbose} attribute of the special {option values}
@@ -474,16 +474,16 @@
 usage = "usage: %prog [options] arg1 arg2"
 \end{verbatim}
 
-\module{optparse} expands "\%prog" in the usage string to the name of the
+\module{optparse} expands \samp{\%prog} in the usage string to the name of the
 current script, ie. \code{os.path.basename(sys.argv[0])}.  The
 expanded string is then printed before the detailed option help.
 
 If you don't supply a usage string, \module{optparse} uses a bland but
-sensible default: ``usage: \%prog [options]'', which is fine if your
+sensible default: \code{"usage: \%prog [options]"}, which is fine if your
 script doesn't take any positional arguments.
 
 \item every option defines a help string, and doesn't worry about 
-line-wrapping --- \module{optparse} takes care of wrapping lines and 
+line-wrapping---\module{optparse} takes care of wrapping lines and 
 making the help output look good.
 
 \item options that take a value indicate this fact in their
@@ -497,7 +497,7 @@
 that the user is expected to supply to
 \programopt{-m}/\longprogramopt{mode}.  By default, \module{optparse}
 converts the destination variable name to uppercase and uses that for
-the meta-variable.  Sometimes, that's not what you want --- for
+the meta-variable.  Sometimes, that's not what you want---for
 example, the \var{filename} option explicitly sets
 \code{metavar="FILE"}, resulting in this automatically-generated
 option description:
@@ -578,7 +578,7 @@
 
 The one thing you need to know for basic usage is how
 \module{optparse} behaves when it encounters an error on the
-command-line --- e.g. \programopt{-n4x} where \programopt{-n} is an
+command-line---e.g. \programopt{-n4x} where \programopt{-n} is an
 integer-valued option.  \module{optparse} prints your usage message to
 stderr, followed by a useful and human-readable error message.  Then
 it terminates (calls \function{sys.exit()}) with a non-zero exit
@@ -673,7 +673,7 @@
 
 This method makes it easier to track down exceptions raised by the
 \class{Option} constructor, which are common because of the complicated
-interdependencies among the various keyword arguments --- if you get it
+interdependencies among the various keyword arguments---if you get it
 wrong, \module{optparse} raises \exception{OptionError}.
 
 \method{add_option()} can be called in one of two ways:
@@ -1084,7 +1084,7 @@
 On the assumption that this is usually a mistake, \module{optparse}
 raises an exception (\exception{OptionConflictError}) by default when
 this happens.  Since this is an easily-fixed programming error, you
-shouldn't try to catch this exception --- fix your mistake and get on
+shouldn't try to catch this exception---fix your mistake and get on
 with life.
 
 Sometimes, you want newer options to deliberately replace the option
@@ -1185,7 +1185,7 @@
 parser.add_option("-c", callback=my_callback)
 \end{verbatim}
 
-Note that you supply a function object here --- so you must have
+Note that you supply a function object here---so you must have
 already defined a function \function{my_callback()} when you define
 the callback option.  In this simple case, \module{optparse} knows
 nothing about the arguments the \programopt{-c} option expects to
@@ -1237,7 +1237,7 @@
 \term{opt}
 is the option string seen on the command-line that's triggering the
 callback.  (If an abbreviated long option was used, \var{opt} will be
-the full, canonical option string --- e.g. if the user puts
+the full, canonical option string---e.g. if the user puts
 \longprogramopt{foo} on the command-line as an abbreviation for
 \longprogramopt{foobar}, then \var{opt} will be
 \longprogramopt{foobar}.)
@@ -1348,7 +1348,7 @@
 parser.add_option("-c", action="callback", callback=check_order, dest='c')
 \end{verbatim}
 
-Of course, you could put any condition in there --- you're not limited
+Of course, you could put any condition in there---you're not limited
 to checking the values of already-defined options.  For example, if
 you have options that should not be called when the moon is full, all
 you have to do is this:
@@ -1363,7 +1363,7 @@
                   action="callback", callback=check_moon, dest="foo")
 \end{verbatim}
 
-(The definition of is_full_moon() is left as an exercise for the
+(The definition of \code{is_full_moon()} is left as an exercise for the
 reader.)
 
 \strong{Fixed arguments}
@@ -1567,20 +1567,20 @@
 that \module{optparse} has a couple of classifications for actions:
 
 \begin{definitions}
-\term{"store" actions}
+\term{``store'' actions}
     actions that result in \module{optparse} storing a value to an attribute
-    of the OptionValues instance; these options require a 'dest'
+    of the OptionValues instance; these options require a \var{dest}
     attribute to be supplied to the Option constructor
-\term{"typed" actions}
+\term{``typed'' actions}
     actions that take a value from the command line and expect it to be
     of a certain type; or rather, a string that can be converted to a
-    certain type.  These options require a 'type' attribute to the
+    certain type.  These options require a \var{type} attribute to the
     Option constructor.
 \end{definitions}
 
-Some default ``store'' actions are ``store'', ``store_const'',
-``append'', and ``count''. The default ``typed'' actions are
-``store'', ``append'', and ``callback''.
+Some default ``store'' actions are \var{store}, \var{store_const},
+\var{append}, and \var{count}. The default ``typed'' actions are
+\var{store}, \var{append}, and \var{callback}.
 
 When you add an action, you need to decide if it's a ``store'' action,
 a ``typed'', neither, or both.  Three class attributes of
@@ -1590,10 +1590,10 @@
     All actions must be listed as strings in ACTIONS.
 \end{memberdesc}
 \begin{memberdesc}{STORE_ACTIONS}
-    "store" actions are additionally listed here.
+    ``store'' actions are additionally listed here.
 \end{memberdesc}
 \begin{memberdesc}{TYPED_ACTIONS}
-    "typed" actions are additionally listed here.
+    ``typed'' actions are additionally listed here.
 \end{memberdesc}
 
 In order to actually implement your new action, you must override
@@ -1688,8 +1688,8 @@
 
 \begin{enumerate}
 \item subclass OptionParser and override the error() method
-\item subclass Option and override the take_action() method --- you'll
-      need to provide your own handling of the "help" action that
+\item subclass Option and override the take_action() method---you'll
+      need to provide your own handling of the ``help'' action that
       doesn't call sys.exit()
 \end{enumerate}
 
