diff --git a/src/docs/cmu-user/aliens.tex b/src/docs/cmu-user/aliens.tex
index 8b26030d2ac15c00f9243882987f3993dfe4ff99..34ac3176df2c8985a58e2887af9040c13ad7a585 100644
--- a/src/docs/cmu-user/aliens.tex
+++ b/src/docs/cmu-user/aliens.tex
@@ -295,7 +295,7 @@ This section describes the basic operations on Alien values.
 
 \subsection{Alien Access Operations}
 
-\begin{defun}{alien:}{deref}{\args{\var{pointer-or-array} \amprest \var{indices}}}
+\begin{defun}{alien:}{deref}{\args{\var{pointer-or-array} \amprest{} \var{indices}}}
   
   This function returns the value pointed to by an Alien pointer or
   the value of an Alien array element.  If a pointer, an optional
@@ -766,7 +766,7 @@ and two return values (\var{a} and \var{i}).
 macro:
 
 \begin{defmac}{alien:}{def-callback}{\var{name} (\var{return-type}
-    \mstar{(arg-name arg-type)}) \ampbody\ body}
+    \mstar{(arg-name arg-type)}) \ampbody{} \var{body}}
   This macro defines a Lisp function that can be called from C and a
   Lisp variable.  The arguments to the function must be alien types,
   and the return type must also be an alien type.  This Lisp function
@@ -789,7 +789,7 @@ macro:
   \code{def-callback} macro.
 \end{defmac}
 
-\begin{defmac}{alien:}{callback-funcall}{\var{callback-name} \amprest
+\begin{defmac}{alien:}{callback-funcall}{\var{callback-name} \amprest{}
     \var{args}}
   This macro does the necessary stuff to call the callback named
   \var{callback-name} with the given arguments.
diff --git a/src/docs/cmu-user/cross-referencing.tex b/src/docs/cmu-user/cross-referencing.tex
index c7bb399ca09872ee80a3399193cc289fef5cdaa0..e72023798ed2cd7182471c29f48d4736b2279bc1 100644
--- a/src/docs/cmu-user/cross-referencing.tex
+++ b/src/docs/cmu-user/cross-referencing.tex
@@ -142,7 +142,7 @@ source file), and so is identified by the XREF facility by a string.
 \end{defun}
 
 
-\begin{defun}{xref:}{xref-context-file}{context}
+\begin{defun}{xref:}{xref-context-file}{\var{context}}
   Return the truename (in the sense of the variable
    \vindexed{compile-file-truename}) of the source file from which the
    referencing forms were compiled. This slot will be \nil{} if the
@@ -150,7 +150,7 @@ source file), and so is identified by the XREF facility by a string.
    listener.
 \end{defun}
 
-\begin{defun}{xref:}{xref-context-source-path}{context}
+\begin{defun}{xref:}{xref-context-source-path}{\var{context}}
   Return a list of positive integers identifying the form that
   contains the cross-reference. The first integer in the source-path
   is the number of the top-level form containing the cross-reference
diff --git a/src/docs/cmu-user/extensions.tex b/src/docs/cmu-user/extensions.tex
index b5bbfff251abf74288129f5caa1a54b4e50e486b..39c3b39a08467070b12061f72a16365102bad050 100644
--- a/src/docs/cmu-user/extensions.tex
+++ b/src/docs/cmu-user/extensions.tex
@@ -267,7 +267,7 @@ These functions can be used to modify or read the floating point modes:
 To make handling control of floating-point exceptions, the following
 macro is useful.
 
-\begin{defmac}{ext:}{with-float-traps-masked}{traps \ampbody\ body}
+\begin{defmac}{ext:}{with-float-traps-masked}{\var{traps} \ampbody\ \var{body}}
   \code{body} is executed with the selected floating-point exceptions
   given by \code{traps} masked out (disabled).  \code{traps} should be
   a list of possible floating-point exceptions that should be ignored.
@@ -839,7 +839,7 @@ finalization is used to close the underlying file descriptor.
 
 \section{Describe}
 
-\begin{defun}{}{describe}{ \args{\var{object} \&optional{} \var{stream}}}
+\begin{defun}{}{describe}{ \args{\var{object} \ampoptional{} \var{stream}}}
   
   The \code{describe} function prints useful information about
   \var{object} on \var{stream}, which defaults to
@@ -1947,7 +1947,8 @@ way to browse the library.
 
 \section{Generalized Function Names}
 
-\begin{defmac}{ext:}{define-function-name-syntax}{name (var) \ampbody\ body}
+\begin{defmac}{ext:}{define-function-name-syntax}{%
+    \var{name} (\var{var}) \ampbody\ \var{body}}
   Define lists starting with the symbol \code{name} as a new extended
   function name syntax.
   
@@ -1969,7 +1970,7 @@ way to browse the library.
   user-defined package.
 \end{defmac}
 
-\begin{defun}{ext:}{valid-function-name-p}{name}
+\begin{defun}{ext:}{valid-function-name-p}{\var{name}}
   Returns two values:
 
   \begin{itemize}
@@ -1999,7 +2000,7 @@ function is called and
   standardized method combinations like \code{progn}, \code{and}, etc.
 \end{itemize}
 
-\begin{defgeneric}[-generic]{pcl:}{no-primary-method}{gf \&rest args}
+\begin{defgeneric}[-generic]{pcl:}{no-primary-method}{\var{gf} \amprest{} \var{args}}
   In \cmucl, this generic function is called in the above erroneous
   cases.  The parameter \code{gf} is the generic function being
   called, and \code{args} is a list of actual arguments in the generic
@@ -2007,7 +2008,7 @@ function is called and
 \end{defgeneric}
 
 \begin{defmethod}[-standard]{pcl:}{no-primary-method}{%
-    (gf standard-generic-function) \&rest args}
+    (\var{gf} \argtype{standard-generic-function}) \amprest{} \var{args}}
   This method signals a continuable error of type
   \code{pcl:no-primary-method-error}.
 \end{defmethod}
@@ -2292,7 +2293,7 @@ methods, as it would be the case when a function is inlined somewhere
 else.  Because of this, the function \code{pcl:flush-emf-cache} is
 provided for forcing such an update of effective methods.
 
-\begin{defun}{pcl:}{flush-emf-cache}{\&optional gf}
+\begin{defun}{pcl:}{flush-emf-cache}{\ampoptional{} \var{gf}}
   Flush cached effective method functions.  If \code{gf} is supplied,
   it should be a generic function metaobject or the name of a generic
   function, and this function flushes all cached effective methods for
@@ -2341,7 +2342,7 @@ when the generic function is called depending on the value of
 Support for sealing classes and generic functions have been
 implemented.  Please note that this interface is subject to change.
 
-\begin{defmac}{pcl:}{seal}{name (var) \amprest\ specifiers}
+\begin{defmac}{pcl:}{seal}{\var{name} (\var{var}) \amprest{} \var{specifiers}}
   Seal \code{name} with respect to the given specifiers; \code{name}
   can be the name of a class or generic-function.
 
@@ -2352,7 +2353,7 @@ implemented.  Please note that this interface is subject to change.
   Sealing violations signal an error of type \code{pcl:sealed-error}.
 \end{defmac}
 
-\begin{defun}{pcl:}{unseal}{name-or-object}
+\begin{defun}{pcl:}{unseal}{\var{name-or-object}}
   Remove seals from \code{name-or-object}.
 \end{defun}
 
@@ -2438,8 +2439,8 @@ extensions.
 
 \subsection{Extensions}
 
-\begin{defun}{}{constantly}{value \&optional val1 val2 \&rest
-    more-values}
+\begin{defun}{}{constantly}{%
+    \var{value} \ampoptional{} \var{val1} \var{val2} \amprest{} \var{more-values}}
   As an extension, \cmucl{} allows \code{constantly} to accept more
   than one value which are returned as multiple values.
 \end{defun}
@@ -2502,7 +2503,7 @@ innermost fwrapper object.  Likewise, if a function is fwrapped,
 \code{(setf fdefinition)} will set the primary function in the
 innermost fwrapper.
 
-\begin{defmac}{fwrappers:}{define-fwrapper}{name lambda-list \ampbody{} body}
+\begin{defmac}{fwrappers:}{define-fwrapper}{\var{name} \var{lambda-list} \ampbody{} \var{body}}
   This macro is like \code{defun}, but defines a function named
   \var{name} that can be used as an fwrapper definition.
   
@@ -2518,8 +2519,8 @@ innermost fwrapper.
   arguments.
 \end{defmac}
 
-\begin{defun}{fwrappers:}{fwrap}{function-name fwrapper \&key type
-    user-data}
+\begin{defun}{fwrappers:}{fwrap}{\var{function-name} \var{fwrapper} %
+    \keys{\kwd{type} \kwd{user-data}}}
   This function wraps function \code{function-name} in an fwrapper
   \var{fwrapper} which was defined with \code{define-fwrapper}.
 
@@ -2534,58 +2535,58 @@ innermost fwrapper.
   Value is the fwrapper object created.
 \end{defun}
 
-\begin{defun}{fwrappers:}{funwrap}{function-name \&key type test}
+\begin{defun}{fwrappers:}{funwrap}{\var{function-name} \keys{\kwd{type} \kwd{test}}}
   Remove fwrappers from the function named \var{function-name}.  If
   \var{type} is supplied, remove fwrappers whose type is \code{equal}
   to \var{type}.  If \var{test} is supplied, remove fwrappers
   satisfying \var{test}.
 \end{defun}
 
-\begin{defun}{fwrappers:}{find-fwrapper}{function-name \&key type test}
+\begin{defun}{fwrappers:}{find-fwrapper}{\var{function-name} \keys{\kwd{type} \kwd{test}}}
   Find an fwrapper of \var{function-name}.  If \var{type} is supplied,
   find an fwrapper whose type is \code{equal} to \var{type}.  If
   \var{test} is supplied, find an fwrapper satisfying \var{test}.
 \end{defun}
 
-\begin{defun}{fwrappers:}{update-fwrapper}{fwrapper}
+\begin{defun}{fwrappers:}{update-fwrapper}{\var{fwrapper}}
   Update the funcallable instance function of the fwrapper object
   \var{fwrapper} from the definition of its function that was 
   defined with \code{define-fwrapper}.  This can be used to update
   fwrappers after changing a \code{define-fwrapper}.
 \end{defun}
 
-\begin{defun}{fwrappers:}{update-fwrappers}{function-name \&key type test}
+\begin{defun}{fwrappers:}{update-fwrappers}{\var{function-name} \keys{\kwd{type} \kwd{test}}}
   Update fwrappers of \var{function-name}; see \code{update-fwrapper}.
   If \var{type} is supplied, update fwrappers whose type is
   \code{equal} to \var{type}.  If \var{test} is supplied, update fwrappers
   satisfying \var{test}.
 \end{defun}
 
-\begin{defun}{fwrappers:}{set-fwrappers}{function-name fwrappers}
+\begin{defun}{fwrappers:}{set-fwrappers}{\var{function-name} \var{fwrappers}}
   Set \var{function-names}'s fwrappers to elements of the list
   \var{fwrappers}, which is assumed to be ordered from outermost to
   innermost.  \var{fwrappers} null means remove all fwrappers.
 \end{defun}
 
-\begin{defun}{fwrappers:}{list-fwrappers}{function-name}
+\begin{defun}{fwrappers:}{list-fwrappers}{\var{function-name}}
   Return a list of all fwrappers of \var{function-name}, ordered
   from outermost to innermost.
 \end{defun}
 
-\begin{defun}{fwrappers:}{push-fwrapper}{fwrapper function-name}
+\begin{defun}{fwrappers:}{push-fwrapper}{\var{fwrapper} \var{function-name}}
   Prepend fwrapper \var{fwrapper} to the definition of
   \var{function-name}.  Signal an error if \var{function-name} is an
   undefined function.
 \end{defun}
 
-\begin{defun}{fwrappers:}{delete-fwrapper}{fwrapper function-name}
+\begin{defun}{fwrappers:}{delete-fwrapper}{\var{fwrapper} \var{function-name}}
   Remove fwrapper \var{fwrapper} from the definition of
   \var{function-name}.  Signal an error if \var{function-name} is an
   undefined function.
 \end{defun}
 
-\begin{defmac}{fwrappers:}{do-fwrappers}{(var fdefn \ampoptional{}
-  result) \ampbody{} body}
+\begin{defmac}{fwrappers:}{do-fwrappers}{(\var{var} \var{fdefn} \ampoptional{}
+  \var{result}) \ampbody{} \var{body}}
   Evaluate \var{body} with \var{var} bound to consecutive fwrappers of
   \var{fdefn}.  Return \var{result} at the end.  Note that \var{fdefn}
   must be an \code{fdefn} object.  You can use
@@ -2772,18 +2773,18 @@ that order.
   beginning of this list.
 \end{defvar}
 
-\begin{defmac}{ext:}{defmodule}{name \amprest{} files}
+\begin{defmac}{ext:}{defmodule}{\var{name} \amprest{} \var{files}}
   Defines a module by registering the files that need to be loaded
   when the module is required.  If \var{name} is a symbol, its print
   name is used after downcasing it.
 \end{defmac}
 
-\begin{defun}{ext:}{module-provide-cmucl-defmodule}{module-name}
+\begin{defun}{ext:}{module-provide-cmucl-defmodule}{\var{module-name}}
   This function is the module-provider for modules registered by a
   \code{ext:defmodule} form.  
 \end{defun}
 
-\begin{defun}{ext:}{module-provide-cmucl-library}{module-name}
+\begin{defun}{ext:}{module-provide-cmucl-library}{\var{module-name}}
   This function is the module-provider for \cmucl's libraries,
   including Gray streams, simple streams, CLX, CLM, Hemlock,
   \emph{etc}.
@@ -2830,7 +2831,7 @@ recording of strings, call \code{intl:translation-enable}.
   Disablle recording of translatable strings.
 \end{defun}
 
-\begin{defun}{intl:}{setlocale}{\ampoptional{} locale}
+\begin{defun}{intl:}{setlocale}{\ampoptional{} \var{locale}}
   Sets the locale to the locale specified by \var{locale}.  If
   \var{locale} is not give or is \nil, the locale is determined by
   look at the environment variables \code{LANGUAGE}, \code{LC\_ALL},
@@ -2840,19 +2841,19 @@ recording of strings, call \code{intl:translation-enable}.
   The default locale is ``C''.
 \end{defun}
 
-\begin{defun}{intl:}{textdomain}{domain}
+\begin{defun}{intl:}{textdomain}{\var{domain}}
   Set the default domain to the domain specified by \var{domain}.
   Typically,  this only needs to be done at the top of each source
   file.  This is used to \code{gettext} and \code{ngettext} to set the
   domain for the message string.
 \end{defun}
 
-\begin{defmac}{intl:}{gettext}{string}
+\begin{defmac}{intl:}{gettext}{\var{string}}
   Look up the specified string, \var{string}, in the current message
   domain and return its translation.
 \end{defmac}
 
-\begin{defun}{intl:}{dgettext}{domain string}
+\begin{defun}{intl:}{dgettext}{\var{domain} \var{string}}
   Look up the specified string, \var{string}, in the message domain,
   \var{domain}.  The translation is returned.
 
@@ -2861,14 +2862,14 @@ recording of strings, call \code{intl:translation-enable}.
   \code{intl::dump-pot-files}.) 
 \end{defun}
 
-\begin{defmac}{intl:}{ngettext}{singular plural n}
+\begin{defmac}{intl:}{ngettext}{\var{singular} \var{plural} \var{n}}
   Look up the singular or plural form of a message in the default
   domain.  The singular form is \var{singular}; the plural is
   \var{plural}.  The number of items is specified by \var{n} in case
   the correct translation depends on the actual number of items.
 \end{defmac}
 
-\begin{defun}{intl:}{dngettext}{domain singular plural n}
+\begin{defun}{intl:}{dngettext}{\var{domain} \var{singular} \var{plural} \var{n}}
   Look up the singular or plural form of a message in the specified
   domain, \var{domain}.  The singular form is \var{singular}; the
   plural is \var{plural}.  The number of items is specified by \var{n}
@@ -2880,8 +2881,7 @@ recording of strings, call \code{intl:translation-enable}.
   created.  (See \code{intl::dump-pot-files}.)
 \end{defun}
 
-\begin{defun}{intl::}{dump-pot-files}{\keys copyright
-    output-directory}
+\begin{defun}{intl::}{dump-pot-files}{\keys{\kwd{copyright} \kwd{output-directory}}}
   Dumps the translatable strings recorded by \code{dgettext} and
   \code{dngettext}.  The message template file (pot file) is written
   to a file in the directory specified by \var{output-directory}, and
@@ -2895,7 +2895,7 @@ recording of strings, call \code{intl:translation-enable}.
   This is a list of directory pathnames where the translations can be found.
 \end{defvar}  
 
-\begin{defun}{intl:}{install}{\ampoptional{} (rt *readtable*)}
+\begin{defun}{intl:}{install}{\ampoptional{} (\var{rt} \var{*readtable*})}
   Installs reader macros and comment reader into the specified
   readtable as explained below.  The readtable defaults to
   \var{*readtable*}.
diff --git a/src/docs/cmu-user/ipc.tex b/src/docs/cmu-user/ipc.tex
index 06befd606c3277104f245f388273d85eec1ec7ce..6becab088d419e0eca1642080bda64b18bde7aca 100644
--- a/src/docs/cmu-user/ipc.tex
+++ b/src/docs/cmu-user/ipc.tex
@@ -161,7 +161,7 @@ could use \code{prin1-to-string} locally, send the string, and use
 \end{defmac}
 
 \begin{defmac}{wire:}{remote-value-bind}{%
-    \args{\var{wire} (\mstar{variable}) remote-form
+    \args{\var{wire} (\mstar{variable}) \var{remote-form}
       \mstar{local-forms}}}
   
   \code{remote-value-bind} is similar to \code{multiple-value-bind}
diff --git a/src/docs/cmu-user/unicode.tex b/src/docs/cmu-user/unicode.tex
index cab4c599bee27737d132023a13849ca9507b41e1..faaf12abcb1c5863f841566290a26d3d78585e22 100644
--- a/src/docs/cmu-user/unicode.tex
+++ b/src/docs/cmu-user/unicode.tex
@@ -443,7 +443,7 @@ The Unicode data base is stored in compressed form in the file
 \file{ext-formats:unidata.bin}.  If this file is not found, Unicode
 support is severely reduced; you can only use ASCII characters.
 
-\begin{defun}{}{open}{\args \var{filename} \amprest \var{options}
+\begin{defun}{}{open}{\args \var{filename} \amprest{} \var{options}
     \keys{\kwd{direction} \kwd{element-type} \kwd{if-exists}
       \kwd{if-does-not-exist} \morekeys \kwd{class} \kwd{mapped}
       \kwd{input-handle} \kwd{output-handle}
@@ -497,7 +497,7 @@ support is severely reduced; you can only use ASCII characters.
   formats and composing external formats.
 \end{defun}
 
-\begin{defun}{extensions:}{describe-external-format}{external-format}
+\begin{defun}{extensions:}{describe-external-format}{\var{external-format}}
   Print a description of the given \var{external-format}.  This may
   cause the external format to be loaded (silently) if it is not
   already loaded.
@@ -627,12 +627,12 @@ An external format basically needs two functions:
 external format is defined using the macro
 \code{stream::define-external-format}.
 
-\begin{defmac}[base]{stream:}{define-external-format}{\args \var{name}
-    (\keys{\var{base} \var{min} \var{max} \var{size}
-      \var{documentation}})
+% tricky
+\begin{defmac}[base]{stream::}{define-external-format}{\args \var{name}
+    (\keys{\kwd{base} \kwd{min} \kwd{max} \kwd{size} \kwd{documentation}})
     (\amprest{} \var{slots})
-    \morekeys{\var{octets-to-code} \var{code-to-octets}
-              \var{flush-state} \var{copy-state}}}
+    \\
+    \= \ampoptional{} \var{octets-to-code} \var{code-to-octets} \var{flush-state} \var{copy-state}}
 
 
   If \kwd{base} is not given, this defines a new external format of
@@ -726,7 +726,7 @@ external format is defined using the macro
 \subsection{Composing External Formats}
 
 \begin{defmac}{stream:}{define-composing-external-format}{\args \var{name}
-    (\keys{\var{min} \var{max} \var{size} \var{documentation}}) \var{input}
+    (\keys{\kwd{min} \kwd{max} \kwd{size} \kwd{documentation}}) \var{input}
     \var{output}}
   This is the same as \code{define-external-format}, except that a
   composing external format is created.