% layman.tex  User Manual for layouts.sty
%% Copyright 1998 --- 2004  Peter R. Wilson
%% All rights reserved
%% 

\documentclass[11pt]{article}
\usepackage{layouts}

% pdfetex (which might become the base system) defines \pdfoutput
% Thomas Esser (of teTeX fame) asked for the following to be removed (2004/04/03)
%\newif\ifpdf
%\makeatletter
%\@ifundefined{pdfoutput}{\pdffalse}{\pdftrue}
%\makeatother
%\ifpdf
%  \pdfoutput=1
%\fi


\setlength{\textheight}{8.0in}
\setlength{\textwidth}{6.0in}
\setlength{\oddsidemargin}{0.25in}
\setlength{\evensidemargin}{0.25in}
\setlength{\marginparwidth}{0.6in}
\setlength{\parskip}{5pt}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}

\setlength{\columnsep}{30pt}

\setcounter{topnumber}{2}
\setcounter{bottomnumber}{2}
\setcounter{totalnumber}{4}
\renewcommand{\topfraction}{0.9}
\renewcommand{\bottomfraction}{0.6}
\renewcommand{\textfraction}{0.1}


\newlength{\figrulesep}
\setlength{\figrulesep}{0.5\textfloatsep}

\newcommand{\topfigrule}{\vspace*{-1pt}%
  \noindent\rule[-\figrulesep]{\columnwidth}{1pt}}

\newcommand{\botfigrule}{\vspace*{-2pt}%
  \noindent\rule[\figrulesep]{\columnwidth}{2pt}}

\makeatletter

\renewcommand{\subsubsection}{\@startsection%
  {subsubsection}%
  {3}%
  {0mm}%
  {-\baselineskip}%
  {0.5\baselineskip}%
  {\large\itshape}}


\newcommand{\fref}[1]{Figure~\ref{#1}}
\newcommand{\tref}[1]{Table~\ref{#1}}
\newcommand{\T}{\texttt{true}}
\newcommand{\F}{\texttt{false}}
\newcommand{\TF}{\textit{true/false}}


%%%% the \meta command
\begingroup
\obeyspaces%
\catcode`\^^M\active%
\gdef\meta{\begingroup\obeyspaces\catcode`\^^M\active%
\let^^M\do@space\let \do@space%
\def\-{\egroup\discretionary{-}{}{}\hbox\bgroup\it}%
\m@ta}%
\endgroup
\def\m@ta#1{\leavevmode\hbox\bgroup$\langle$\it#1\/$\rangle$\egroup
  \endgroup}
\def\do@space{\egroup\space
    \hbox\bgroup\it\futurelet\next\sp@ce}
\def\sp@ce{\ifx\next\do@space\expandafter\sp@@ce\fi}
\def\sp@@ce#1{\futurelet\next\sp@ce}

\newcommand{\marg}[1]{\texttt{\{}\meta{#1}\texttt{\}}}

\newcommand{\file}[1]{\textsf{#1}}
%%%%%% indexing commands
%\@ifundefined{bs}{\newcommand{\bs}{\textbackslash}}%
%  {\renewcommand{\bs}{\textbackslash}}
\@ifundefined{bs}{\newcommand{\bs}{\char '134}}%
  {\renewcommand{\bs}{\char '134}}
\newcommand{\tat}{@}

\newcommand{\ixcom}[1]{\index{#1/ @\texttt{\protect\bs #1}}} % command
\newcommand{\pixcom}[1]{\texttt{\bs #1}\index{#1/ @\texttt{\protect\bs #1}}}
\newcommand{\ixatcom}[1]{\index{?#1/ @\texttt{\protect\bs\protect\tat #1}}}
\newcommand{\pixatcom}[1]{\texttt{\bs\tat #1}\index{?#1/ @\texttt{\protect\bs\protect\tat #1}}}
\newcommand{\ixenv}[1]{\index{#1 @\texttt{#1} (environment)}}
\newcommand{\pixenv}[1]{\texttt{#1}\index{#1 @\texttt{#1} (environment)}}
\newcommand{\ixpack}[1]{\index{#1 @\file{#1} (package)}}
\newcommand{\pcom}[1]{\texttt{\bs #1}}
\newcommand{\pixfile}[1]{\file{#1}\index{#1 @{\file{#1} (file)}}}
\newcommand{\pixcount}[1]{\texttt{#1}\index{#1 @\texttt{#1} (counter)}}
\newcommand{\ixsbox}[1]{\index{#1 @\texttt{#1} (save box)}}

\providecommand{\indexfill}{}
\providecommand{\sindexfill}{}
\providecommand{\ssindexfill}{}
\providecommand{\otherindexspace}[1]{}
\providecommand{\alphaindexspace}[1]{\indexspace{\bfseries #1}}

%%% \setlength{\parindent}{-4em}
\makeatother

\title{The \file{layouts} package: User manual}
\author{Peter R. Wilson \\
        Herries Press \\
        (\texttt{herries.press@earthlink.net}) }
\date{October 2004\thanks{Previous versions were dated 
      November 2003, July 2002, March 2002, November 2001, July 2001 and January 1999.}}

 \makeindex

\begin{document}
%%% \setuplayouts
\bibliographystyle{alpha}
\pagenumbering{roman}
\maketitle
\begin{abstract}
    The \LaTeX{} \file{layouts} package enables the display of various 
elements of a document's layout. The elements include the positioning
of text on a page, the disposition of floats on a page, the geometrical
layout of lists and footnotes, the design of section headers and their
display in a table of contents. It also enables document designers to
experiment with potential layout designs.
\end{abstract}
\tableofcontents
\listoftables
\listoffigures
\clearpage
\pagenumbering{arabic}


\section{Introduction}

    \LaTeX{} has several pre-defined styles for the layout of typeset
documents~\cite{LAMPORT94}. Authors using \LaTeX{} sometimes wish to
understand how these layouts are parameterised (or controlled). The
\texttt{layouts} package enables the display of certain of these 
parameterised layouts, showing what the parameters control. It also
provides facilities for experimenting with different values of the
typesetting parameters, showing the results graphically.

     The \file{layouts} package was developed as an aid to the author
when he was developing a new \LaTeX{} class for typsetting ISO standards.
The development of the package has benefitted from
Kent McPherson's \pixfile{layout.sty}~\cite{MCPHERSON88}.

\subsection{Command types}

    The majority of the commands provided fall into one of several categories.
\begin{description}
\item[Drawing] Commands of the form \pcom{draw}\textit{L}, 
    \pcom{}\textit{L}\texttt{diagram}, and
    \pcom{}\textit{L}\texttt{design}
    generate a \LaTeX{} \texttt{picture} of the layout \textit{L}.

\item[Current layout] Commands of the form \pcom{current}\textit{L} collect,
    as far as possible, the values of the layout parameters for the current
    \textit{L} layout environment for use by the corresponding
    \pcom{draw}\textit{L} command. If a parameter value is not directly
    accessible, then a typical value is provided.

\item[Layout values] Commands of the form \pcom{}\textit{L}\texttt{values}
   produce a tabular listing of the current values of the parameters 
   controlling
   the layout \textit{L}. As far as possible these are the actual values.
   In some cases the values are hard-wired in the body of a macro, and in these
   cases reasonable guesstimates are made of a `typical' value. 
   In the printed
   table, guesstimates are indicated by appending two question marks (??)
   to the printed value. Note that the tabular listing produced by a 
   \pcom{}\textit{L}\texttt{values} command is not the same as a listing
   that might be produced by the corresponding \pcom{draw}\textit{L} command.
   The appearance of the table may be controlled as follows.
 \begin{itemize}
 \item The declaration \pixcom{printheadingstrue} will cause a short title
       to be placed above the tabular; the tabular is untitled when 
       \pixcom{printheadingsfalse} is in effect.
 \item The font size used for the table is specified via the 
       \pixcom{setvaluestextsize}\marg{fontsize} macro, where
       \meta{fontsize} is one of LaTeX's font size commands (e.g.,
       \pixcom{footnotesize}, which is the default value.).
 \end{itemize}

\item[User-specified parameter values] Commands of the form 
    \pcom{try}\textit{P} can be used to change the value of the layout
    parameter \textit{P}. Note that these commands do \emph{not} affect the
    the layout of the document, they only modify the values used in
    displaying a layout.

\item[Control] Commands of the form \verb|\|\textit{C}\texttt{true} or
    \verb|\|\textit{C}\texttt{false} control certain aspects of the kinds of
    layouts pictured.

\end{description}

\subsection{General facilities}

    In order to initialize the \file{layouts} package correctly for your
document, the command \pixcom{setuplayouts} 
must be issued immediately
after the \verb|\begin{document}|, or at least before any following command
that changes font sizes or suchlike. Fortunately you don't have to concern
youself with this as it is called automatically by the \file{layouts}
package. However, you may call it yourself at some later point in the
document to pick up the current value of the \pixcom{baselineskip}
or \pixcom{parskip} if these have been modified. The \pixcom{setuplayouts}
command also sets the \pixcom{setlayoutscale} to its default value of
$0.5$.

\subsubsection{Scaling}

    A few layout pictures are drawn full size. Most are drawn less than
full size, typically to half-scale. To make the pictures fit your
document neatly, you may wish to change the scale. The command
\verb|\setlayoutscale{|\meta{frac}\verb|}|,\ixcom{setlayoutscale}
where \meta{frac} is a decimal number (e.g., $0.75$) sets the scaling.
For example, \verb|\setlayoutscale{0.5}| will produce pictures at
half full size, and \verb|\setlayoutscale{1.0}| will make the pictures
full size.

\subsubsection{Layout types}

    In general, two kinds of layout pictures can be produced. 

\begin{enumerate}
\item A picture showing a generic layout and its controlling parameters
   is produced by a command of the form \pcom{}\textit{L}\texttt{diagram}.
   The same effect may be achieved by using a \pcom{draw}\textit{L} after
   the declaration \pixcom{drawparameterstrue}.
\item A picture showing an `actual' layout is produced by a command
   of the form \pcom{}\textit{L}\texttt{design}.
   The same effect may be achieved by using a \pcom{draw}\textit{L} after
   the declaration \\
   \pixcom{drawparametersfalse}.

\begin{quote}
\textbf{Warning:} If an actual layout differs too much
  from a `normal' layout then LaTeX may hiccup a time or two. The
  typical problem is when a dimension that is expected to be positive
  is actually negative; LaTeX will respond 
  with an error message like `Bad \pcom{line} or \pcom{vector} argument'.
\end{quote}

\end{enumerate}

\begin{quote}
    \textbf{Note:} The \pcom{}\textit{L}\texttt{diagram} and
\pcom{}\textit{L}\texttt{design} commands were introduced in version 2.5 of
the package. The previous method of generating pictures (via \pcom{draw}\textit{L} 
and \verb?\drawparameters...?) is mainly retained for compatibility reasons.
\end{quote}

    Examples of both kinds of layout are shown later.

    Some aspects of the appearance of the pictures can be controlled.
The following apply to both generic and actual layouts.
\begin{itemize}
\item The size of the font used for displaying the parameters is specified
  via the command: \\
 \pixcom{setparameterstextsize}\marg{size}, 
  where \meta{size} is
 one of LaTeX's font size commands. \\
 The initial setting is
 \verb|\setparameterstextsize{\footnotesize}|.

\item Some parts of the layouts are labelled, for example the footer area
 in the page layout is labelled `footer'. The macro
 \pixcom{setlabelfont}\marg{font} can be used to control the font used for
 typesetting these labels. The default is \verb|\setlabelfont{\normalsize}|,
 but can be, for example, \verb|\setlabelfont{\large\itshape}| to use
 a large italic font instead. Note that \meta{font} must be specified as
 a declaration(s).
\end{itemize}

    The following controls only apply to actual layouts (i.e.,
when using \pcom{}\textit{L}\texttt{design}, or the earlier
 \pixcom{drawparametersfalse} \pcom{draw}\textit{L} pairing is in effect).
\begin{itemize}
\item Some layouts have some explanatory header text. Putting
  \pixcom{printheadingsfalse} prohibits these while 
  \pixcom{printheadingstrue} lets them be printed.

\item In the generic layouts, the lengths controlled by the various
  parameters are indicated by dimension lines; these are not
  normally shown in actual layouts. Using \pixcom{drawdimensionstrue}
  will let these be shown in actual layouts.  The default
  setting is \pixcom{drawdimensionsfalse}.

\begin{quote}
\textbf{Warning:} If you draw actual layouts with \pixcom{drawdimensionstrue}
  the drawings may be overburdened and if the layout differs too much
  from a `normal' layout then LaTeX may hiccup a time or two (typically
  with an error message like `Bad \pcom{line} or \pcom{vector} argument').
\end{quote}

\item When \pixcom{printparameterstrue} is in effect, a table of the parameter
  values will be printed below the layout. Unsurprisingly,
  \pixcom{printparametersfalse} prohibits the table. The default is
  \pixcom{printparameterstrue}.

\end{itemize}

\subsubsection{Length units}

    The tabular listings of the parameter length values produced by
the \pcom{}\textit{L}\texttt{values} macros give the lengths in TeX
points by default. The length units may be set by the 
\pixcom{printinunitsof}\marg{unit} command. The \meta{unit} argument
may be any of TeX's length units, except for scaled point. That is, the
allowable values are \texttt{pt}, \texttt{pc}, \texttt{in}, \texttt{mm}, 
\texttt{cm}, \texttt{bp}, \texttt{dd}, or \texttt{cc}; an unkown unit is
treated as though it were \texttt{pt}. When printing in pt units any
stretch or shrink values are printed as well; using \texttt{PT} instead
of \texttt{pt} eliminates these `rubber' values. The initial setting
is \verb|\printinunitsof{pt}|.

    The macro \pixcom{prntlen}\marg{length} prints the value of
\meta{length}, where \meta{length} is a LaTeX length, using the units
specified by \pixcom{printinunitsof}. For example, the following code
\begin{verbatim}
The textwidth is \printinunitsof{pt}\prntlen{\textwidth} which is also 
\printinunitsof{in}\prntlen{\textwidth} or 
\printinunitsof{mm}\prntlen{\textwidth}.
\end{verbatim}
prints out: \\
\begingroup
The textwidth is \printinunitsof{pt}\prntlen{\textwidth} which is also 
\printinunitsof{in}\prntlen{\textwidth} or
\printinunitsof{mm}\prntlen{\textwidth}.
\endgroup

\subsection{Usage}

    The drawing commands (i.e., \verb|\...diagram|, \verb|\...design|
and \verb|\draw...|)
are typically used within a 
\pixenv{figure} environment, although they can be used in
running text. Internally they generate a \pixenv{picture}
and \pixenv{tabular} environment, both enclosed in their
own \pixenv{center} environments.

    The \pixcom{setlayoutscale} command can be used anywhere in a document
after the initial \pixcom{setuplayouts} command. Used in running text it
will alter the scale factor for all succeeding drawing commands.
However, if \pixcom{setlayoutscale} is called within an environment, such
as the \pixenv{figure} environment, it will only affect
the scale factors for succeeding drawing commands in that
environment.

    The \file{layouts} package uses many \LaTeX{} counters and lengths.
If it is used with too many other packages, the available number of
counters and lengths may be exhausted. Essentially, the \file{layouts}
package is intended to be used in short documents as an exploratory tool
when designing the typesetting rules to be embodied in a new package or 
class file.

\section{Page spread}
\suppressfloats[t]

    Book designers often start by determining the proportions of a page,
the proportions of the text block, and the position of the text block on
the page. Often the width of a page is taken as the starting point.

    In the following let $w$ be the width of a single page; that is, 
the distance from the
spine to the outside of the fore edge. I also use the other symbols given in
\tref{tab:spread}.
\begin{table}
\centering
\caption{Page spread symbols} \label{tab:spread}
\begin{tabular}{|c|l|} \hline
Symbol & Meaning \\ \hline
$w$ & Page width \\
$P$ & Ratio of page height to width \\
$T$ & Ratio of text block height to width \\
$S$ & Ratio of spine width to page width \\
$H$ & Ratio of top margin height to spine width \\
$E$ & Ratio of fore edge margin width to spine width \\
$F$ & Ratio of bottom margin height to spine width \\
$G$ & Ratio of width of two-column gutter to spine width \\ \hline
\end{tabular}
\end{table}

    Given values for $w$, $P$, $T$, $S$, and any two of $H$, $E$ and $F$, it
is possible to calculate the page size, the text block size and the position
of the text. The command \\
\verb|\drawaspread[|\meta{F}\verb|]{|%
    \meta{w}\verb|}{|%
    \meta{P}\verb|}{|%
    \meta{T}\verb|}{|%
    \meta{S}\verb|}{|%
    \meta{H}\verb|}{|%
    \meta{E}\verb|}{|%
    \meta{G}\verb|}|\ixcom{drawaspread} \\
where the first parameter is optional, draws a two page spread with the given
page width and proportions. If the optional \meta{F} is not provided, then the
bottom margin is calculated from the values of other parameters. If \meta{G}
is zero or negative, then a single column layout is shown, otherwise a double
column layout is presented.

\newlength{\pwlayi}
\setlength{\pwlayi}{0.4375\textwidth}
\newlength{\pwlayii}
\setlength{\pwlayii}{0.5\pwlayi}

\begin{figure}
\centering
\begin{minipage}[b]{\pwlayi}
\drawaspread{\pwlayii}{1.294}{1.618}{0.176}{1.037}{1.685}{0}
\end{minipage}
\hfill
\begin{minipage}[b]{\pwlayi}
\drawaspread{\pwlayii}{1.5}{1.5}{0.111}{1.5}{2.0}{0}
\end{minipage}
\caption{(Left) The \LaTeX{} book spread; 
         (Right) Spread for many of Gutenberg's books} 
\label{fig:spread}
\end{figure}


    Figure~\ref{fig:spread} shows two different spreads. This was produced 
from the code below:
\begin{verbatim}
\newlength{\pwlayi}
\setlength{\pwlayi}{0.4375\textwidth}
\newlength{\pwlayii}
\setlength{\pwlayii}{0.5\pwlayi}

\begin{figure}
\centering
\begin{minipage}[b]{\pwlayi}
\drawaspread{\pwlayii}{1.294}{1.618}{0.176}{1.037}{1.685}{0}
\end{minipage}
\hfill
\begin{minipage}[b]{\pwlayi}
\drawaspread{\pwlayii}{1.5}{1.5}{0.111}{1.5}{2.0}{0}
\end{minipage}
\caption{(Left) The \LaTeX{} book spread; 
         (Right) Spread for many of Gutenberg's books} 
\label{fig:spread}
\end{figure}
\end{verbatim}

    The \pixcom{drawaspread} command does not scale via the 
\pixcom{setlayoutscale} command. The size of the illustration is controlled
by the value given for the width of the page.


%%%%%%%%%%%%%%%
\clearpage
\section{Page layout}
\suppressfloats[t]

%%\drawmarginparsfalse

%%%%%%%%%%%%%%%%%%%%%
%%\printheadingstrue
%\printheadingsfalse
%%\printparameterstrue
%\printparametersfalse
%\drawdimensionstrue
%%\drawdimensionsfalse
%%%%%%%%%%%%%%%%%%%%%

    The layout of a single page is produced by the 
\pixcom{pagediagram} or \pixcom{pagedesign} (or \pixcom{drawpage}) command. 
The kind of page drawn is
specified via three control commands\footnote{Remember that all drawing
commands of the form \pcom{draw...}, except for \pcom{drawaspread}, are also controlled
by the \pcom{drawparameters...} command.}.

    Right- or left-hand page layouts are specified by the commands
\pcom{oddpagelayout}\TF{} (\pixcom{oddpagelayouttrue}
for an odd-numbered (i.e., right-hand) page, or
\pixcom{oddpagelayoutfalse} for an even-numbered
(i.e., left-hand or verso) page). The default is
\pixcom{oddpagelayouttrue}.

    Double or single column layouts are controlled by the commands
\pcom{twocolumnlayout}\TF. 
Using \pixcom{twocolumnlayouttrue}
will result in a picture of a double column page layout and
using \pixcom{twocolumnlayoutfalse}
will result in a picture of a single column page layout. The default
is \pixcom{twocolumnlayoutfalse}.

   The display of marginal notes is controlled by the commands
\pcom{drawmarginpars}\TF.
Using \pixcom{drawmarginparstrue} rusults in representations of
marginal notes being drawn and using \pixcom{drawmarginparsfalse}
hides the marginal notes. The default is
\pixcom{drawmarginparstrue}.

   Normally \LaTeX{} places any marginal notes in the outside margin;
the standard \LaTeX{} command \pixcom{reversemarginpar} causes notes
to be placed in the opposite margin to the default one, and
\pixcom{normalmarginpar} causes the notes to be put in the default
margin. The package commands \pcom{reversemarginpar}\TF{} may be used
to control the marginal note locations in the pictures.
\pixcom{reversemarginpartrue} corresponds to \pixcom{reversemarginpar}
and \pixcom{reversemarginparfalse} corresponds to \pixcom{normalmarginpar}.
The package default is \pixcom{reversemarginparfalse}.

    A \LaTeX{} class may always place marginal notes into the same margin.
The package command \pcom{marginparswitch}\TF, is supplied to control
the placement in the diagrams. \pixcom{marginparswitchtrue} will place marginal notes
according to the class desires, while \pixcom{marginparswitchfalse} will
always draw marginal notes in one margin.


    As an example, \fref{fig:pplt} is produced by the following code.
\begin{verbatim}
\begin{figure}
\oddpagelayoutfalse
\twocolumnlayouttrue
\pagediagram
\caption{Left-hand two-column page layout parameters} \label{fig:pplt}
\end{figure}
\end{verbatim}

\begin{figure}
\oddpagelayoutfalse
\twocolumnlayouttrue
%\drawpage
\pagediagram
\caption{Left-hand two-column page layout parameters} \label{fig:pplt}
\end{figure}

    The two lines forming an inverted `L' represent the left-hand and
top of the printed sheet.
By default, \LaTeX{} makes all page layout measurements from a point
located one inch in from the left-hand side of the printed sheet and one
inch down from the top of the sheet. This point is marked with a circle.
The dashed lines correspond to the vertical and horizontal offsets from 
this point.


    The command \pixcom{currentpage} collects together the page parameter
settings for the current document for the page on which it is issued. 
For example, it determines whether the current page is odd or even and
in which margin any marginal notes would be placed.
\fref{fig:ptrs} shows the odd page
layout for the document you are now reading. It was produced by the
following commands:
\begin{verbatim}
\begin{figure}
\currentpage
\oddpagelayouttrue
\pagedesign
\caption{Odd page layout for this document} \label{fig:ptrs}
\end{figure}
\end{verbatim}
The resulting picture is correctly proportioned, both horizontally and 
vertically.

\begin{figure}
\currentpage
%\drawparametersfalse \drawpage
\pagedesign
\caption{Page layout for this document} \label{fig:ptrs}
\end{figure}

    When layouts are drawn with \verb|...diagram|\footnote{Or longhandedly
with \pcom{drawparametersfalse} and \pcom{draw...}.}
the actual values
of the parameters used to produce the layout are normally
listed at the bottom of the
picture. This can be used, as in \fref{fig:ptrs}, to find out what the
settings are for the current document.

    Among other parameters that are set by 
\pixcom{currentpage} are values for the page width and 
height. If these have been specified by the 
\pixcom{paperwidth} and \pixcom{paperheight} 
commands, these values are used. Otherwise the width and height are set to
the size of American letter paper, which is eight by eleven and a half inches.

\begin{table}
\centering
\caption{Commands for setting trial page parameters}\label{tab:tpage}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{trypaperwidth} & sets the \pixcom{paperwidth} value \\
\pixcom{trypaperheight} & sets the \pixcom{paperheight} value \\
\pixcom{tryhoffset} & sets the \pixcom{hoffset} value (usually 0pt) \\
\pixcom{tryvoffset} & sets the \pixcom{voffset} value (usually 0pt) \\
\pixcom{tryoddsidemargin} & sets the \pixcom{oddsidemargin} (usually 21--63pt) \\
\pixcom{tryevensidemargin} & sets the \pixcom{evensidemargin} value (usually 39--82pt) \\
\pixcom{trymarginparwidth} & sets the \pixcom{marginparwidth} value (usually 68--107pt) \\
\pixcom{trymarginparsep} & sets the \pixcom{marginparsep} value (usually 10--11pt) \\
\pixcom{trymarginparpush} & sets the \pixcom{marginparpush} value (usually 5--7pt) \\
\pixcom{trytopmargin} & sets the \pixcom{topmargin} value (usually 27pt) \\
\pixcom{tryheadheight} & sets the \pixcom{headheight} value (usually 12pt) \\
\pixcom{tryheadsep} & sets the \pixcom{headsep} value (usually 25pt) \\
\pixcom{tryfootskip} & sets the \pixcom{footskip} value (usually 30pt) \\
\pixcom{trytextheight} & sets the \pixcom{textheight} value (usually 36--43 times the \pixcom{baselineskip}) \\
\pixcom{trytextwidth} & sets the \pixcom{textwidth} value (usually 345--390pt) \\
\pixcom{trycolumnsep} & sets the \pixcom{columnsep} value (usually 10pt) \\
\pixcom{trycolumnseprule} & sets the \pixcom{columnseprule} value (usually 0pt) \\
\hline
\end{tabular}
\end{table}

    There are a set of commands for experimenting with the page layout
parameters. They are listed in \tref{tab:tpage}. Each of these commands
takes one argument which is a length value. There is, in addition, an odd
command, 
\pixcom{setfootbox}\verb|{|\meta{height}\verb|}{|\meta{depth}\verb|}|, 
which may be used
to specify the expected \meta{height} and \meta{depth} of the footer. Footers
are typically a single line but may require more space than that. Note that
there is no way to actually specify the vertical size of the footer in LaTeX,
which will use as much space as it needs. If a footer is given a \meta{depth}
then a dashed line is drawn at \pixcom{footskip} below the main text box.

    The following code provides an example of the use of some of these
commands when trying an experimental page layout. The result is shown
in \fref{fig:pudf}. Note that 
\pixcom{currentpage} is used to initialize all the appropriate
parameter values before setting any trial values.
\begin{verbatim}
\begin{figure}
\currentpage
\trypaperwidth{11in}
\trypaperheight{8.5in}
\trytextwidth{500pt}
\trycolumnsep{40pt}
\trycolumnseprule{3pt}
\tryhoffset{-0.5in}
\tryvoffset{0.5in}
\printheadingsfalse
\drawdimensionstrue
\twocolumnlayouttrue
\pagedesign
\caption{An experimental page layout}\label{fig:pudf}
\end{figure}
\end{verbatim}

\begin{figure}
\currentpage
\trypaperwidth{11in}
\trypaperheight{8.5in}
\trytextwidth{500pt}
\trycolumnsep{40pt}
\trycolumnseprule{3pt}
\tryhoffset{-0.5in}
\tryvoffset{0.5in}
\printheadingsfalse
\drawdimensionstrue
\twocolumnlayouttrue
%\drawparametersfalse \drawpage
\pagedesign
\caption{An experimental page layout}\label{fig:pudf}
\end{figure}

    As can be seen, the resulting layout runs off the bottom of the 
specified physical page; either because the page dimensions were incorrectly
set (the designer getting a landscape page when a portrait page was desired),
or because the text height and width parameters were set incorrectly
for the physical page (probably 
satisfactory for a portrait page but certainly wrong for the landscape page).

    Note that \pixcom{printheadingsfalse} was used to delete the 
explanatory heading text, and dimensions were drawn because of
\pixcom{drawdimensionstrue}.

\clearpage

\subsection{Changing the page layout in your document}

    You can only specify the page layout in a document's preamble. That is,
it is set by the class, or by a package or per document via code you write
in the preamble. To be on the safe side and avoid strange error messages 
like \texttt{You can't use `\bs spacefactor'\ixcom{spacefactor} 
in vertical mode}, enclose all
your preamble commands within the command pair \pixcom{makeatletter}
and \pixcom{makeatother}.

    The page layout parameters can all be changed using the \LaTeX{}
\pixcom{setlength} command. For example, to set the width of the text to
3~inches, put this into the preamble:
\begin{verbatim}
\makeatletter
\setlength{\textwidth}{3in}
\makeatother
\end{verbatim}


    The \pixcom{pagevalues} command can be used to produce a table, 
as shown here, of the values of the current document's page layout
parameters. This is the default tabulation.

\begin{verbatim}
\pagevalues
\end{verbatim}

\pagevalues

\begin{quote}
\textbf{Note:} Prior to version 2.5 the tabulations were set in a 
\pixenv{center} environment. 
Starting with version 2.5 there is no surrounding environment.
\end{quote}

%%%%%%%%%%%%%%%
\clearpage
\section{The \file{memoir} class page layout}
\suppressfloats[t]

%%\drawmarginparsfalse

    The \file{memoir} class~\cite{MEMOIR} provides a different set
of page layout parameters than the standard LaTeX classes.

    The layout of a single page for this class is produced by the 
\pixcom{stockdiagram} and \pixcom{stockdesign} (or \pixcom{drawstock})
commands. The kind of page drawn is
specified via the same control commands that are used by
the page drawing commands. That is: \\
\pcom{oddpagelayout}\TF, \\
\pcom{twocolumnlayout}\TF, \\ 
\pcom{drawmarginpars}\TF, \\
\pcom{reversemarginpar}\TF, and \\
\pcom{marginparswitch}\TF.

    Generally speaking, the commands for displaying and experimenting
with the layout of a \file{memoir}
class page are the same as, or analagous to, those for a standard page 
layout.

    As an example, \fref{fig:mempplt} is produced by the following code.
\begin{verbatim}
\begin{figure}
\oddpagelayouttrue
\twocolumnlayoutfalse
\stockdiagram
\caption{Right-hand page major layout parameters for 
         the \file{memoir} class} \label{fig:mempplt}
\end{figure}
\end{verbatim}

\begin{figure}
\oddpagelayouttrue
\twocolumnlayoutfalse
%\drawmarginparsfalse \drawstock
\stockdiagram
\caption{Right-hand page major layout parameters for 
         the \file{memoir} class} \label{fig:mempplt}
\end{figure}


    Like the \pixcom{currentpage} command, \pixcom{currentstock} collects 
together the page parameter
settings for the current \file{memoir} class document. 

    For information on how to design a page layout the class
documentation provides all the details~\cite{MEMOIR} (and uses the
\file{layouts} package to illustrate them). 

\begin{table}
\centering
\caption{Commands for setting trial \file{memoir} page parameters}\label{tab:tmempage}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{trystockwidth} & sets the \pixcom{stockwidth} value \\
\pixcom{trystockheight} & sets the \pixcom{stockheight} value \\
\pixcom{trypaperwidth} & sets the \pixcom{paperwidth} value \\
\pixcom{trypaperheight} & sets the \pixcom{paperheight} value \\
\pixcom{trytrimedge} & sets the \pixcom{trimedge} value \\
\pixcom{trytrimtop} & sets the \pixcom{trimtop} value \\
\pixcom{tryspinemargin} & sets the \pixcom{spinemargin} (usually 21--63pt) \\
\pixcom{trymarginparwidth} & sets the \pixcom{marginparwidth} value (usually 68--107pt) \\
\pixcom{trymarginparsep} & sets the \pixcom{marginparsep} value (usually 10--11pt) \\
\pixcom{trymarginparpush} & sets the \pixcom{marginparpush} value (usually 5--7pt) \\
\pixcom{tryuppermargin} & sets the \pixcom{uppermargin} value (usually 27pt) \\
\pixcom{tryheadheight} & sets the \pixcom{headheight} value (usually 12pt) \\
\pixcom{tryheadsep} & sets the \pixcom{headsep} value (usually 25pt) \\
\pixcom{tryfootskip} & sets the \pixcom{footskip} value (usually 30pt) \\
\pixcom{trytextheight} & sets the \pixcom{textheight} value (usually 36--43 times the \pixcom{baselineskip}) \\
\pixcom{trytextwidth} & sets the \pixcom{textwidth} value (usually 345--390pt) \\
\pixcom{trycolumnsep} & sets the \pixcom{columnsep} value (usually 10pt) \\
\pixcom{trycolumnseprule} & sets the \pixcom{columnseprule} value (usually 0pt) \\
\hline
\end{tabular}
\end{table}

    There are a set of commands for experimenting with the page layout
parameters. They are listed in \tref{tab:tmempage}. Each of these commands
takes one argument which is a length value. The \pixcom{setfootbox} command
may be used as well.

    The following code provides an example of the use of some of these
commands when trying an experimental page layout. The result is shown
in \fref{fig:pmemudf}. 
\begin{verbatim}
\begin{figure}
\currentstock
\trystockheight{11in}
\trystockwidth{8.5in}
\trytrimtop{1in}
\trytrimedge{1in}
\trypaperheight{10in}
\trypaperwidth{7.5in}
\tryspinemargin{0.75in}
\tryuppermargin{1.0in}
\tryheadheight{12pt}
\tryheadsep{24pt}
\trytextwidth{5in}
\trytextheight{7in}
\tryfootskip{24pt}
\setfootbox{50pt}{50pt}
\trymarginparsep{17pt}
\trymarginparwidth{62pt}
\trymarginparpush{12pt}
\setlabelfont{\small}
\stockdesign
\caption{An experimental \file{memoir} class page layout}\label{fig:pmemudf}
\end{figure}
\end{verbatim}

\begin{figure}
\currentstock
\trystockheight{11in}
\trystockwidth{8.5in}
\trytrimtop{1in}
\trytrimedge{1in}
\trypaperheight{10in}
\trypaperwidth{7.5in}
\tryspinemargin{0.75in}
\tryuppermargin{1.0in}
\tryheadheight{12pt}
\tryheadsep{24pt}
\trytextwidth{5in}
\trytextheight{7in}
\tryfootskip{24pt}
\setfootbox{50pt}{50pt}
\trymarginparsep{17pt}
\trymarginparwidth{62pt}
\trymarginparpush{12pt}
\printheadingsfalse
%%\twocolumnlayouttrue
%%\oddpagelayoutfalse
\setlabelfont{\small}
%\drawparametersfalse \drawstock
\stockdesign
\caption{An experimental \file{memoir} class page layout}\label{fig:pmemudf}
\end{figure}

    There is also a \pixcom{stockvalues} command to print a tabulation of the
current stock specifications. 
%  As this manual does not use the \file{memoir}
%  class, calling it would only result in errors.


%%%%%%%%%%
\clearpage
\section{Paragraph layout}
\suppressfloats[t]

    The commands \pixcom{paragraphdiagram} and \pixcom{paragraphdesign}
(or \pixcom{drawparagraph} )
can be used to visualize the parameters
that affect paragraphing. This is illustrated in \fref{fig:fpara} which
was produced by the following code:
\begin{verbatim}
\begin{figure}
\paragraphdiagram
\caption{Paragraph parameters}\label{fig:fpara}
\end{figure}
\end{verbatim}

\begin{figure}
%\drawparagraph
\paragraphdiagram
\caption{Paragraph parameters}\label{fig:fpara}
\end{figure}

    The command \verb|\currentparagraph|\ixcom{currentparagraph} sets the
drawing parameters to the settings for the current document. The commands
listed in \tref{tab:para} can be used to set trial values for the
relevant parameters. These commands take one argument which must be a length.

\begin{table}
\centering
\caption{Commands for setting trial paragraph parameters}\label{tab:para}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{tryparindent}  & sets the \pixcom{parindent} value \\
\pixcom{tryparskip}    & sets the \pixcom{parskip} value \\
\pixcom{tryparlinewidth} & sets the \pixcom{linewidth} value \\
\pixcom{tryparbaselineskip} & sets the \pixcom{baselineskip} value \\ \hline
\end{tabular}
\end{table}

    Figure~\ref{fig:dpara} shows the paragraphing as used in this document.
It was produced with this code:
\begin{verbatim}
\currentparagraph
\begin{figure}
\paragraphdesign
\caption{Paragraphs in this document}\label{fig:dpara}
\end{figure}
\end{verbatim}

\currentparagraph
\begin{figure}
%\drawparametersfalse \drawparagraph
\paragraphdesign
\caption{Paragraphs in this document}\label{fig:dpara}
\end{figure}

\currentparagraph
\begin{figure}
\tryparindent{-4em}
%\drawparametersfalse \drawparagraph
\paragraphdesign
\caption{An outset paragraph}\label{fig:mpara}
\end{figure}

    Interestingly, I found that \LaTeX{} is happy even if \pixcom{parindent}
is set to a negative value. It isn't demonstrated in this typescript but
you can see the effect in \fref{fig:mpara} which was produced from:
\begin{verbatim}
\currentparagraph
\begin{figure}
\tryparindent{-4em}
\paragraphdesign
\caption{An outset paragraph}\label{fig:mpara}
\end{figure}
\end{verbatim}

    The \pixcom{paragraphvalues} command can be used to produce a table, 
shown below, of the values of the current document's paragraph layout
parameters (as set at the time that the command is used). The tabulation
was typeset via
\begin{verbatim}
\begin{center}
\printinunitsof{mm}
\paragraphvalues
\end{center}
\end{verbatim}
Note the use of \pixcom{printinunitsof} to set millimetres as the unit of 
length.

\begin{center}
\printinunitsof{mm}
\paragraphvalues
\end{center}


%%%%%%%%%
\clearpage
\section{Float layouts}
\suppressfloats[t]

    Two sets of commands are provided for displaying the layouts of
\LaTeX{} floats (e.g., the \pixenv{figure} and \pixenv{table} environments).
One set is for a macro view of floats and the other is for a more
detailed view.

\subsection{Float and text page layout}

    This set of commands is for displaying the general parameters for
the location of floats on a page and proportioning the available space
between the floats and textual material.

    The commands \pixcom{floatpagediagram} and \pixcom{floatpagedesign}
(or \pixcom{drawfloatpage}) are used to visualize the general
parameters. These are illustrated in \fref{fig:fpp} which was produced
by the following code:
\begin{verbatim}
\begin{figure}
\floatpagediagram
\caption{Float and text page parameters}\label{fig:fpp}
\end{figure}
\end{verbatim}

\begin{figure}
%\drawfloatpage
\floatpagediagram
\caption{Float and text page parameters}\label{fig:fpp}
\end{figure}
 
    The command \pixcom{currentfloatpage} sets the drawing parameters to the
settings for the current document. The `standard' \LaTeX{} settings are
shown in \fref{fig:fpstd}, produced by the code below.
\begin{verbatim}
\begin{figure}
\currentfloatpage
\trytotalnumber{3}
\trytopnumber{2}
\trytopfraction{0.7}
\trytextfraction{0.2}
\trybottomfraction{0.3}
\trybottomnumber{1}
\setlayoutscale{0.25}
\floatpagedesign
\caption{The standard \LaTeX{} float and text page settings}
\label{fig:fpstd}
\end{figure}
\end{verbatim}

\begin{figure}
\currentfloatpage
\trytotalnumber{3}
\trytopnumber{2}
\trytopfraction{0.7}
\trytextfraction{0.2}
\trybottomfraction{0.3}
\trybottomnumber{1}
\setlayoutscale{0.25}
%\drawparametersfalse \drawfloatpage
\floatpagedesign
\caption{The standard \LaTeX{} float and text page settings}
\label{fig:fpstd}
\end{figure}

    The commands listed in \tref{tab:tfloatp} can be used to set trial values
for the relevant parameters. The commands take one argument, which is either 
an integer number or a decimal fraction, depending on the particular command.

\begin{table}
\centering
\caption{Commands for setting trial float page parameters}\label{tab:tfloatp}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{trytotalnumber} & (integer) sets the \pixcom{totalnumber} (usually 3) \\
\pixcom{trytopnumber} & (integer) sets the \pixcom{topnumber} (usually 2) \\
\pixcom{trytopfraction} & (decimal) sets the \pixcom{topfraction} (usually 0.7) \\
\pixcom{trytextfraction} & (decimal) sets the \pixcom{textfraction} (usually 0.2) \\
\pixcom{trybottomnumber} & (integer) sets the \pixcom{bottomnumber} (usually 1) \\
\pixcom{trybottomfraction} & (decimal) sets the \pixcom{bottomfraction} (usually 0.3) \\
\hline
\end{tabular}
\end{table}

\begin{figure}
\currentfloatpage
\trytotalnumber{4}
\trytopnumber{2}
\trytopfraction{0.9}
\trytextfraction{0.1}
\trybottomnumber{2}
\trybottomfraction{0.6}
\setlayoutscale{0.25}
%\drawparametersfalse \drawfloatpage
\floatpagedesign
\caption{Float page layout for decreasing likelihood of float-only pages}
\label{fig:fpudf}
\end{figure}

    Figure~\ref{fig:fpudf} illustrates float page settings that increase
the likelihood of a float remaining on a text page without being put on
a page by itself. The figure was produced from the following code:
\begin{verbatim}
\begin{figure}
\currentfloatpage
\trytotalnumber{4}
\trytopnumber{2}
\trytopfraction{0.9}
\trytextfraction{0.1}
\trybottomnumber{2}
\trybottomfraction{0.6}
\setlayoutscale{0.25}
\floatpagedesign
\caption{Float page layout for decreasing likelihood of float-only pages}
\label{fig:fpudf}
\end{figure}
\end{verbatim}


%%%%%%%%%
%%%%\clearpage
\subsection{Detailed float layout}
\suppressfloats[t]

    The other view of floats concentrates on the spacing between text and
floats on a page. The \pixcom{floatdiagram} and \pixcom{floatdesign}
(or \pixcom{drawfloat}) commands are used to visualize this
aspect.

    The relevant parameters are shown in \fref{fig:flp}, produced from the
following code:
\begin{verbatim}
\begin{figure}
\setlayoutscale{0.9}
\floatdiagram
\caption{Float parameters}\label{fig:flp}
\end{figure}
\end{verbatim}

\begin{figure}
\setlayoutscale{0.9}
%\drawfloat
\floatdiagram
\caption{Float parameters}\label{fig:flp}
\end{figure}

    As usual, the command \pixcom{currentfloat} sets the trial float parameters
to those in effect for the current document.

\begin{figure}
\currentfloat
\tryintextsep{\intextsep}
\trytopfigrule{0.5pt}
\trybotfigrule{1pt}
\setlayoutscale{0.9}
%\drawparametersfalse \drawfloat
\floatdesign
\caption{Float layout with rules}\label{fig:fludf}
\end{figure}

    The commands listed in \tref{tab:tfloat}, all of which take a length
argument, set trial values for the float parameters.

\begin{table}
\centering
\caption{Commands for setting trial float parameters}\label{tab:tfloat}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{trytextfloatsep} & sets the \pixcom{textfloatsep} value (usually 20pt) \\
\pixcom{tryfloatsep} & sets the \pixcom{floatsep} value (usually 12pt) \\
\pixcom{tryintextsep} & sets the \pixcom{intextsep} value (usually 12pt) \\
\pixcom{trytopfigrule} & sets the thickness of a \pixcom{topfigrule} (usually 0pt) \\
\pixcom{trybotfigrule} & sets the thickness of a \pixcom{botfigrule} (usually 0pt) \\
\hline
\end{tabular}
\end{table}

    The following code, used to produce \fref{fig:fludf}, shows the use of
some of these commands:
\begin{verbatim}
\begin{figure}
\currentfloat
\tryintextsep{\intextsep}
\trytopfigrule{0.5pt}
\trybotfigrule{1pt}
\setlayoutscale{0.9}
\floatdesign
\caption{Float layout with rules}\label{fig:fludf}
\end{figure}
\end{verbatim}

    The \pixcom{topfigrule} and \pixcom{botfigrule} are little known \LaTeX{}
commands; they are not discussed by Lamport~\cite{LAMPORT94}
but are described by Goossens \emph{et al}~\cite{GOOSSENS94}. They are
like the \pixcom{footnoterule} command in that they draw a rule, or other
decoration, below floats at the top of a page (\pixcom{topfigrule}) and
above floats at the bottom of a page (\pixcom{botfigrule}). Both these
commands have been defined in the preamble to this document as:
\begin{verbatim}
\makeatletter
\newlength{\figrulesep}
\setlength{\figrulesep}{0.5\textfloatsep}
\newcommand{\topfigrule}{\vspace*{-1pt}%
  \noindent\rule[-\figrulesep]{\columnwidth}{1pt}}
\newcommand{\botfigrule}{\vspace*{-2pt}%
  \noindent\rule[\figrulesep]{\columnwidth}{2pt}}
\makeatother
\end{verbatim}
Their effect can be seen throughout the printed result. The typical thickness
for a \pixcom{rule} is $0.4$pt; the thickness of these rules has been
exagerated in order to make them more noticeable. The \pixcom{topfigrule}
is drawn immediately after the top floats before the \pixcom{textfloatsep}
spacing is applied. Similarly the \pixcom{botfigrule} is drawn after
the \pixcom{textfloatsep} is applied for the bottom floats. Whatever is
drawn as a \texttt{...figrule} should take no vertical space, hence the 
use of negative vertical space in their definitions above. Note that the
rules have been given either positive or negative vertical offsets to ensure
some space between a float and the rule.

\subsection{Changing the float layout in your document}

    The \verb|\...number| commands are changed with the \LaTeX{}
\pixcom{setcounter} command, while the \verb|\...fraction| commands
have to be changed via the \pixcom{renewcommand}. For example, the preamble
to this document contains the following (enclosed within 
\pixcom{makeatletter} and \pixcom{makeatother} commands):
\begin{verbatim}
\setcounter{topnumber}{2}
\setcounter{bottomnumber}{2}
\setcounter{totalnumber}{4}
\renewcommand{\topfraction}{0.9}
\renewcommand{\bottomfraction}{0.6}
\renewcommand{\textfraction}{0.1}
\end{verbatim}

    Note that there are also the commands:
\begin{itemize}
\item \pixcom{dbltopnumber} for setting the maximum number of two-column 
      floats at the top of a two-column page (typically 2);
\item \pixcom{dbltopfraction} for setting the maximum fraction of a
      two column page that can be occupied by the top two-column floats
      (typically 0.7); and
\item  \pixcom{dblfloatpagefraction} for setting the minimum fraction of
      a page that has to be occupied by two-column floats before a `float
      only' page is produced (typically 0.5).
\end{itemize}

    The \verb|\...sep| commands are changed using the \pixcom{setlength}
command. The separation values should have a little bit of give in them,
that is, they should be rubber lengths.
A typical set of values might be specified as:
\begin{verbatim}
\setlength{\floatsep}{12pt plus 2pt minus 2pt}
\setlength{\textfloatsep}{20pt plus 2pt minus 4pt}
\setlength{\intextsep}{\floatsep}
\end{verbatim}
There are corresponding separation commands for two-column floats at the
top or bottom of a page. These are \pixcom{dblfloatsep} for inter-float 
separation and \pixcom{dbltextfloatsep} for spacing between a two-column
float and the text area.



\floatvalues

    The \pixcom{floatvalues} command can be used to produce a table, 
as shown here, of the values of the current document's float layout
parameters (as set at the time that the command is used). 


%%%%%%
\clearpage
\section{List layout}
\suppressfloats[t]

    The commands \pixcom{listdiagram} and \pixcom{listdesign} 
(or \pixcom{drawlist}), as their names suggest, display the layout
of list\ixenv{list} environments. 
The list parameters are shown in \fref{fig:lstp},
which was produced by the following code:
\begin{verbatim}
\begin{figure}
\listdiagram
\caption{List parameters} \label{fig:lstp}
\end{figure}
\end{verbatim}

    The list layout may be controlled by the \verb|\listaspara|\TF{} commands.
Use \pixcom{listasparatrue} for displaying the list when it is being 
treated as a paragraph,
otherwise use \pixcom{listasparafalse}. The default is \pixcom{listasparatrue}.

\begin{figure}
%\drawlist
\listdiagram
\caption{List parameters} \label{fig:lstp}
\end{figure}

    The command \pixcom{currentlist} extracts the list parameters from the
current environment for display via \pixcom{drawlist}. Figure~\ref{fig:lstenum}
graphically illustrates the layout for an \pixenv{enumerate}
 type list.
The figure was generated by the following code:
\begin{verbatim}
\begin{enumerate}
\item Figure~\ref{fig:lstenum} illustrates the layout of an 
      \texttt{enumerate} list.
  \currentlist
  \begin{figure}
  \listdesign
  \caption{Layout of an \texttt{enumerate} list} \label{fig:lstenum}
  \end{figure}
\end{enumerate}
\end{verbatim}

\begin{enumerate}
\item Figure~\ref{fig:lstenum} illustrates the layout of an
      \texttt{enumerate} list.
  \currentlist
  \begin{figure}
%  \drawparametersfalse \drawlist
  \listdesign
  \caption{Layout of an \texttt{enumerate} list} \label{fig:lstenum}
  \end{figure}
\end{enumerate}
    Note that \pixcom{currentlist} was called within the list environment in
order to pick up the desired parameter values.

    Table~\ref{tab:tlist} gives a listing of the commands that are provided
for experimenting with the list layout parameters. Each of these commands
takes a length as its argument.

\begin{table}
\centering
\caption{Commands for setting trial list parameters} \label{tab:tlist}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{tryitemindent} & sets the \pixcom{itemindent} value \\
\pixcom{trylabelwidth} & sets the \pixcom{labelwidth} value \\
\pixcom{trylabelsep} & sets the \pixcom{labelsep} value \\
\pixcom{tryleftmargin} & sets the \pixcom{leftmargin} value \\
\pixcom{tryrightmargin} & sets the \pixcom{rightmargin} value \\
\pixcom{trylistparindent} & sets the \pixcom{listparindent} value \\
\pixcom{trytopsep} & sets the \pixcom{topsep} value \\
\pixcom{tryparskip} & sets the \pixcom{parskip} value \\
\pixcom{trypartopsep} & sets the \pixcom{partopsep} value \\
\pixcom{tryparsep} & sets the \pixcom{parsep} value \\
\pixcom{tryitemsep} & sets the \pixcom{itemsep} value \\
\hline
\end{tabular}
\end{table}

\newenvironment{listX}%
  {\begin{list}{item}%
    {\setlength{\itemindent}{-30pt}%
     \setlength{\labelwidth}{80pt}%
     \setlength{\labelsep}{1em}%
     \setlength{\leftmargin}{170pt}%
     \setlength{\rightmargin}{-40pt}%
     \setlength{\listparindent}{80pt}%
     \setlength{\topsep}{3ex}%
     \setlength{\partopsep}{\topsep}%
     \setlength{\parsep}{\topsep}%
     \setlength{\itemsep}{\topsep}%
    }%
  }%
  {\end{list}}

    Figure~\ref{fig:lstudf} shows the layout of a user-defined list.
An example of the list as it would appear in a document is shown by the
list that follows this paragraph.

\begin{listX}
\item[ListX, first item:] This is an example of a user-defined list.
The appearance is somewhat different from that normally seen in \LaTeX{}
lists. Note that the text extends into the normal right-hand margin.
Also, the body of the list text is indented from the label.

    No claim is made that there is anything aesthetic about the design
of the list. In fact, I think that it is pretty awful. It is merely
provided as an example of a non-standard list and so that the
\pixcom{drawlist} command can be shown off.

\item[ListX, second item:] Now we will draw the layout of this list from
within itself (see \fref{fig:lstudf} for the result). The code used is:
\begin{verbatim}
\currentlist
\begin{figure}
\drawdimensionstrue
\listdesign
\caption{The layout of the \texttt{listX} environment}
\label{fig:lstudf}
\end{figure}
\end{verbatim}

\currentlist
\begin{figure}
\drawdimensionstrue
%\drawparametersfalse \drawlist
\listdesign
\caption{The layout of the \texttt{listX} environment}
\label{fig:lstudf}
\end{figure}

\item[ListX, third item:] The definition of this list environment is:
\begin{verbatim}
\newenvironment{listX}%
  {\begin{list}{item}%
    {\setlength{\itemindent}{-30pt}%
     \setlength{\labelwidth}{80pt}%
     \setlength{\labelsep}{1em}%
     \setlength{\leftmargin}{170pt}%
     \setlength{\rightmargin}{-40pt}%
     \setlength{\listparindent}{80pt}%
     \setlength{\topsep}{3ex}%
     \setlength{\partopsep}{\topsep}%
     \setlength{\parsep}{\topsep}%
     \setlength{\itemsep}{\topsep}%
    }%
  }%
  {\end{list}}
\end{verbatim}
\end{listX}

    In \LaTeX{} many display environments, such as the \pixenv{quotation} 
environment,
are defined in terms of the generic \pixenv{list} environment, so
the settings for these may also be explored with \pixcom{currentlist}.
    For example, the following code shows how to determine the `list'
settings for the \pixenv{thebibliography} 
environment (with apologies to Leslie Lamport).
\begin{verbatim}
\begin{thebibliography}{Dillo 83}
\bibitem[Knud 66]{kn:gnus} D. E. Knudson. \emph{1996 World Gnus Almanac.}
\currentlist
\begin{figure}
\listdesign
\caption{Bibliography list}
\end{figure}
\end{thebibliography}
\end{verbatim}
Running this code is left as an exercise for the reader.

\subsection{Changing lists}

    Many of \LaTeX's environments are defined in terms of lists, most 
noticeably the \pixenv{description}, \pixenv{enumerate} and \pixenv{itemize}
environments. To change any of LaTeX's predefined list environments 
it is probably best to examine their 
definitions in the appropriate class file (e.g., \pixfile{classes.dtx}) and
then put your modified definitions into a package file.

\begin{quote}
\printinunitsof{pc}
\listvalues
\end{quote}

    The \pixcom{listvalues} command can be used to produce a table, 
as shown here, of the values of the current document's list layout
parameters (as set at the time that the command is used). 
This table was produced by:
\begin{verbatim}
\begin{quote}
\printinunitsof{pc}
\listvalues
\end{quote}
\end{verbatim}



%%%%%%%%%%%%%%%%%%
\clearpage
\section{Sectional heading layout}
\suppressfloats[t]

    In \LaTeX{} a few headings, like \pixcom{part} and \pixcom{chapter} 
are defined using
special definition code. The majority, though, are defined via the internal
\LaTeX{} \pixatcom{startsection} 
command. This command takes 6 arguments: \\
\verb|\@startsection{|\meta{name}\verb|}{|%
\meta{level}\verb|}{|%
\meta{indent}\verb|}{|%
\meta{beforeskip}\verb|}{|%
\meta{afterskip}\verb|}{|%
\meta{font style}\verb|}|.

    The commands 
\verb|\headingdiagram{|\meta{font style}\verb|}|\ixcom{headingdiagram} and
\verb|\headingdesign{|\meta{font style}\verb|}|\ixcom{headingdesign}
(or \verb|\drawheading{|\meta{font style}\verb|}|\ixcom{drawheading})
draw a picture of the layout for sectional headings based on the
\pixatcom{startsection} command. Unlike the other
drawing commands it takes one parameter, which is the specification
of the size and/or font of the heading. For example, 
\verb|\drawheading{\large\itshape}|. For \pixcom{headingdiagram} (or
\pixcom{drawheading} with \pixcom{drawparameterstrue} is
in effect) the parameter has no effect.

    There are two kinds of headings:
\begin{enumerate}
\item Display headings, where the heading is set off from the text body, and
\item Run-in headings, where the text body starts on the same line as 
the heading.
\end{enumerate}
When \pixcom{headingdiagram} is called 
(or \pixcom{drawheading} with \pixcom{drawparameterstrue} in effect)
 the pair of commands \pixcom{runinheadtrue} and 
\pixcom{runinheadfalse} control whether a run-in head or a display head 
will be illustrated. The default is \pixcom{runinheadfalse}.

%%%%%%%%%%%%%%%%%%%%%%%
%%\drawdimensionsfalse
%%%%%%%%%%%%%%%%%%%%%%

    Figures~\ref{fig:hdp} and~\ref{fig:hrp} show the parameters of the two
kinds of headings. They were produced by the following code:
\begin{verbatim}
\begin{figure}
\setlayoutscale{1}
\headingdiagram{ }
\caption{Display heading parameters}\label{fig:hdp}
\end{figure}

\begin{figure}
\setlayoutscale{1}
\runinheadtrue
\headingdiagram{ }
\caption{Run-in heading parameters}\label{fig:hrp}
\end{figure}
\end{verbatim}

\begin{figure}
\setlayoutscale{1}
%\drawheading{ }
\headingdiagram{ }
\caption{Display heading parameters}\label{fig:hdp}
\end{figure}

\begin{figure}
\setlayoutscale{1}
\runinheadtrue
%\drawheading{ }
\headingdiagram{ }
\caption{Run-in heading parameters}\label{fig:hrp}
\end{figure}


    The command \pixcom{currentheading} sets up default parameter values for
the illustration of a heading. These values are based on guesstimates
of the values of the arguments of the \pixatcom{startsection}
command. The commands given in \tref{tab:thead}
can be used to explicitly set heading parameters. Each of these commands
takes a length for its parameter value.

\begin{table}
\centering
\caption{Commands for setting trial heading parameters}\label{tab:thead}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{trybeforeskip} & sets the \textit{beforeskip} value \\
\pixcom{tryafterskip} & sets the \textit{afterskip} value \\
\pixcom{tryindent} & sets the \textit{indent} value \\
\hline
\end{tabular}
\end{table}

    The regular reader of \LaTeX{} documents will have noticed that the
\pixcom{subsubsection} headings in this manual do not conform to the
usual \LaTeX{} style. In fact, the preamble to this document contains
the following definition:
\begin{verbatim}
\makeatletter
\renewcommand{\subsubsection}{\@startsection%
  {subsubsection}%       name
  {3}%                   level
  {0mm}%                 indent
  {-\baselineskip}%      beforeskip
  {0.5\baselineskip}%    afterskip
  {\large\itshape}}%     style
\makeatother
\end{verbatim}
Note that the \pixcom{makeatletter} and \pixcom{makeatother} commands
are required because of the use of the \tat{} character in the
name of the \pixatcom{startsection} command.

%%%%%%%%%%%%%%%%%%%%%%%%
%%\drawdimensionsfalse
%%%%%%%%%%%%%%%%%%%%%%%
\currentheading
\trybeforeskip{-\baselineskip}
\tryafterskip{0.5\baselineskip}
\tryindent{0mm}
\begin{figure}
\setlayoutscale{1}
%\drawparametersfalse \drawheading{\large\itshape}
\headingdesign{\large\itshape}
\caption{Subsubsection heading layout parameters for this document}
\label{fig:hdudf}
\end{figure}

    Figure~\ref{fig:hdudf} illustrates the layout for this heading, and was
produced by the code below.
\begin{verbatim}
\currentheading
\trybeforeskip{-\baselineskip}
\tryafterskip{0.5\baselineskip}
\tryindent{0mm}
\begin{figure}
\setlayoutscale{1}
\headingdesign{\large\itshape}
\caption{Subsubsection layout parameters for this document}
\label{fig:hdudf}
\end{figure}
\end{verbatim}

\currentheading
\trybeforeskip{-\baselineskip}
\tryafterskip{-0.5\baselineskip}
\tryindent{0mm}
\begin{figure}
\setlayoutscale{1}
%\drawparametersfalse \drawheading{\large\itshape}
\headingdesign{\large\itshape}
\caption{Subsubsection layout parameters for a run-in heading}
\label{fig:hrudf}
\end{figure}

    The same heading, but specified as a run-in heading by making the
value of \textit{afterskip} negative rather than positive, is illustrated
in \fref{fig:hrudf}.


   
%%%%%%%%%%%%%%%%
\clearpage
\section{Footnote layout}
\suppressfloats[t]

    Footnote layouts are produced by the commands
\pixcom{footnotediagram} and \pixcom{footnotedesign}
(or  \pixcom{drawfootnote}).
The relevant footnote parameters are shown in \fref{fig:fp}, which was
produced by the following code:
\begin{verbatim}
\begin{figure}
\setlayoutscale{0.4}
\setlabelfont{\huge\itshape}
\footnotediagram
\caption{The footnote parameter layout} \label{fig:fp}
\end{figure}
\end{verbatim}
Note the use of \pixcom{setlabelfont} to change the font used for labelling
(the `MAIN TEXT' in this case). 

\begin{figure}
\setlayoutscale{0.4}
\setlabelfont{\huge\itshape}
%\drawfootnote
\footnotediagram
\caption{The footnote parameter layout} \label{fig:fp}
\end{figure}

    Some of the current settings for the footnote parameters are set
by the \pixcom{currentfootnote} command. Guesstimates are provided
for the likely value of the \pixcom{baselineskip} that is used within
a footnote, and also for the dimension of the footnote rule.

    Figure~\ref{fig:ftry} shows the default footnote layout, and was produced
by the following code:
\begin{verbatim}
\begin{figure}
\currentfootnote
\setlayoutscale{0.4}
\footnotedesign
\caption{The current footnote layout}\label{fig:ftry}
\end{figure}
\end{verbatim}
The resulting picture has all vertical dimensions magnified by a factor
of 4 with respect to the horizontal dimensions.

\begin{figure}
\currentfootnote
\setlayoutscale{0.4}
%\drawparametersfalse \drawfootnote
\footnotedesign
\caption{A footnote layout}\label{fig:ftry}
\end{figure}

    Commands for individually setting trial values for footnote parameters
are given in \tref{tab:foot}. Except for \pixcom{tryfootrulefrac}, these all
take a length as their parameter. The parameter value for 
\pixcom{tryfootrulefrac} is a decimal number representing a fraction of
the \pixcom{textwidth}. The trial length of the footnote rule is set to
this fraction of the width of the text block.

\begin{table}
\centering
\caption{Commands for setting trial footnote parameter values}\label{tab:foot}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{tryfootins} & sets the \pixcom{skip}\pixcom{footins} value (usually 10pt) \\
\pixcom{tryfootnotesep} & sets the \pixcom{footnotesep} value (usually 7pt) \\
\pixcom{tryfootnotebaseline} & sets the footnote \pixcom{baselineskip} value \\
\pixcom{tryfootruleheight} & sets the \pixcom{footnoterule} height value (usually 0.4pt) \\
\pixcom{tryfootrulefrac} & sets the length of the \pixcom{footnoterule} \\
\hline
\end{tabular}
\end{table}

\begin{figure}
\currentfootnote
\tryfootins{10pt}
\tryfootnotesep{20pt}
\tryfootnotebaseline{15pt}
\tryfootruleheight{1pt}
\tryfootrulefrac{0.8}
\setlayoutscale{0.4}
%\drawparametersfalse \drawfootnote
\footnotedesign
\caption{A user-specified footnote layout}
\label{fig:fudf}
\end{figure}

    Figure~\ref{fig:fudf}, produced from the following code, shows an
experimental layout for footnotes.
\begin{verbatim}
\begin{figure}
\currentfootnote
\tryfootins{10pt}
\tryfootnotesep{20pt}
\tryfootnotebaseline{15pt}
\tryfootruleheight{1pt}
\tryfootrulefrac{0.8}
\setlayoutscale{0.4}
\footnotedesign
\caption{A user-specified footnote layout}
\label{fig:fudf}
\end{figure}
\end{verbatim}

\subsection{Changing the footnote layout}

   The value of \pixcom{footnotesep} is changed via the \pixcom{setlength}
command. Spacing between the bottom of the text area and the first footnote
is normally a rubber length. The following is a typical set of values:
\begin{verbatim}
\setlength{\footnotesep}{7pt}
\setlength{\skip\footins}{10pt plus 4pt minus 2pt}
\end{verbatim}

    For changing other values, see the documented class file 
\pixfile{classes.dtx}.

\footnotevalues

    The \pixcom{footnotevalues} command can be used to produce a table, 
as shown here, of the values of the current document's footnote layout
parameters (as set at the time that the command is used). 



%%%%%%%%%%%%%%%
\clearpage
\section{Table of Contents layout}
\suppressfloats[t]

    The format of an entry in the Table of Contents (ToC) is usually
specified by the internal \LaTeX{} \pixatcom{dottedtocline} command: \\
\verb|\@dottedtocline{|%
\meta{level}\verb|}{|%
\meta{indent}\verb|}{|%
\meta{numwidth}\verb|}| \\
where \meta{indent} and \meta{numwidth} relate to the formatting, and an
entry will be typeset only if \meta{level} is less than or equal to the
value of the \pixcount{tocdepth} counter.

    The \pixcom{tocdiagram} and \pixcom{tocdesign} (or \pixcom{drawtoc})
 commands are used for visualizing the layout of
section titles in a \textit{Table of Contents} listing based on the
\verb|\@dottedtocline| command, as shown in
\fref{fig:tocp}. This was produced by the following code:
\begin{verbatim}
\begin{figure}
\setlayoutscale{0.8}
\tocdiagram
\caption{Table of Contents entry parameters}\label{fig:tocp}
\end{figure}
\end{verbatim}

\begin{figure}
\setlayoutscale{0.8}
%\drawtoc
\tocdiagram
\caption{Table of Contents entry parameters}\label{fig:tocp}
\end{figure}

\begin{figure}
\setlayoutscale{0.8}
\currenttoc
%\drawparametersfalse \drawtoc
\tocdesign
\caption{Typical Table of Contents entry for this document} \label{fig:thistoc}
\end{figure}

   Figure~\ref{fig:thistoc} was produced by the following 
code:\footnote{The drawing of the dotted leader is not completely accurate
due to scaling and rounding within the drawing algorithm.}
\begin{verbatim}
\begin{figure}
\setlayoutscale{0.8}
\currenttoc
\tocdesign
\caption{Typical Table of Contents entry for this document} \label{fig:thistoc}
\end{figure}
\end{verbatim}


    The command \pixcom{currenttoc} sets values for the ToC parameters based
on those for the current document. The paramaters can all be individually
adjusted via the commands listed in \tref{tab:toc}. These commands all
require a length as their parameter, except for the \pixcom{trytocdotsep}
command which takes a number (integer or decimal) as its parameter value.
This sets the trial value for the separation between dots in the leader 
between the sectional title and the page number. The parameter is the
separation value in \emph{mu} (math units).\footnote{There are \emph{18mu}
units to \emph{1em} unit.}

\begin{table}
\centering
\caption{Commands for setting trial values for ToC parameters}\label{tab:toc}
\begin{tabular}{|l|l|} \hline
Command & Parameter \\ \hline
\pixcom{trytocindent} & sets the \textit{indent} value \\
\pixcom{trytocnumwidth} & sets the \textit{numwidth} value \\
\pixcom{trytoclinewidth} & sets the \pixcom{linewidth} value \\
\pixcom{trytocrmarg} & sets the \pixatcom{tocrmarg} value \\
\pixcom{trytocpnumwidth} & sets the \pixatcom{pnumwidth} value \\
\pixcom{trytocdotsep} & sets the \pixatcom{dotsep} value \\
\hline
\end{tabular}
\end{table}

\begin{figure}
\setlayoutscale{0.8}
\currenttoc
\trytocdotsep{1000}
%\drawparametersfalse \drawtoc
\tocdesign
\caption{Table of Contents entry with a large value for \texttt{\bs @dotsep}}
\label{fig:tocudf}
\end{figure}

    Figure~\ref{fig:tocudf}, which was produced by the following code,
shows that the effect of having a large value for \pixatcom{dotsep} is to
eliminate the dotted leader line between the title text and the page number.
\begin{verbatim}
\begin{figure}
\setlayoutscale{0.8}
\currenttoc
\trytocdotsep{1000}
\tocdesign
\caption{Table of Contents entry with a large value for \texttt{\bs @dotsep}}
\label{fig:tocudf}
\end{figure}
\end{verbatim}

\subsection{Changing the Table of Contents, etc}

    The methods of specifying the typesetting of the various entries in 
a Table of Contents or a List of Figures (or Tables) varies from one kind
of entry to another. For details consult
the documented class specification file \pixfile{classes.dtx}.

    However, the \pixatcom{dotsep}, \pixatcom{pnumwidth} and
\pixatcom{tocrmarg}
values can all be set with the \pixcom{renewcommand}. For example, in the
preamble:
\begin{verbatim}
\makeatletter
\renewcommand{\@dotsep}{4.5}
\renewcommand{\@pnumwidth}{1.55em}
\renewcommand{\@tocrmarg}{2.55em}
\makeatother
\end{verbatim}

    Typically, for figure and table captions, and for sectioning commands 
that are defined using the \pixatcom{startsection} command,
table entry typesetting is specified via an \verb|\l@X| command, where 
\verb|X| is \verb|figure|, \verb|table|, \verb|subsection|, etc., as
appropriate. In turn, these commands call the \pixatcom{dottedtocline} 
command. For example, to change the typesetting for a paragraph entry
in the Table of Contents, and for a table caption you should do something 
like (changing the lengths as appropriate):
\begin{verbatim}
\makeatletter
\renewcommand*{\l@paragraph}{\@dottedtocline{4}{7em}{4em}}
\renewcommand*{\l@table}{\@dottedtocline{1}{0em}{3.0em}}
\makeatother
\end{verbatim}


\tocvalues

    The \pixcom{tocvalues} command can be used to produce a table, 
as shown here, of the values of the current document's Table of Contents layout
parameters (as set at the time that the command is used). 

\clearpage
\section{Font boxing}

\setlength{\unitlength}{1pt}

    Sometimes it is useful to see the size of the box enclosing some text.
Two commands are provided for this purpose.

    The \verb|\drawfontframe{|\meta{text}\verb|}|\ixcom{drawfontframe}
 produces a drawing of
\meta{text} together with its surrounding box drawn. A bullet is placed
at the position of the reference point and a horizontal dotted line is drawn
along the baseline. The command can be used in normal mode 
or can
be \verb|\put| in a picture environment.
\drawfontframe{\Huge\textbf{g}}
The framed g was produced by the following code:
\begin{verbatim}
\drawfontframe{\Huge\textbf{g}}
\end{verbatim}
The command places the box inside a \texttt{picture} environment that is just
big enough to enclose the box.

    Sometimes it is useful to see the size of the box enclosing some text.
Two commands are provided for this purpose.





    The \verb|\drawfontframelabel{|\meta{text}\verb|}|\ixcom{drawfontframelabel}
 is similar, except
that it labels the reference point, and the width height and depth of the
box. The box is placed inside a picture environment that is just big enough
to enclose the box. This means that the labels extend beyond the 
\texttt{picture}. If \verb|\printparameterstrue| is set before issuing the
command, the actual values for the width, height and depth of the box
are printed in a \texttt{center} environment following the drawing. 

    Here is a simple example created by \verb|\drawfontframelabel{\Huge Q}|
with \verb|\printparametersfalse|.
\begin{center}
\printparametersfalse%
\drawfontframelabel{\Huge Q}
\end{center}

    This time with \verb|\printparameterstrue| and 
\verb|\drawfontframelabel{\Huge\textbf{tangling}}|
\begin{center}
\printparameterstrue%
\drawfontframelabel{\Huge\textbf{tangling}}
\end{center}

    If either of the \verb|\drawfont...| commands are used inside a
\texttt{picture} environment, then the \verb|\unitlength| must be set
to 1pt, as the drawings are meant to be exact size and the commands 
assume that all
drawing lengths are in terms of pts.

    Internally, the commands typeset their argument inside a `save box' called
\verb|\layoutsbox|\ixsbox{layoutsbox} and then perform the size 
measurements on 
\verb|\layoutsbox|. You can use \verb|\layoutsbox| for your own purposes, but if 
you do so any subsequent use of a \verb|\drawfont...| command will
overwrite anything that you might have saved in \verb|\layoutsbox|.


%%\bibliography{refs,prw}
\begin{thebibliography}{GMS94}

\bibitem[GMS94]{GOOSSENS94}
Michel Goossens, Frank Mittelbach, and Alexander Samarin.
\newblock \emph{The LaTeX Companion}.
\newblock Addison-Wesley Publishing Company, 1994.

\bibitem[Lam94]{LAMPORT94}
Leslie Lamport.
\newblock \emph{LaTeX: A Document Preparation System}.
\newblock Addison-Wesley Publishing Company, second edition, 1994.

\bibitem[McP88]{MCPHERSON88}
Kent McPherson.
\newblock `{Page Layout in LaTeX}'.
\newblock \emph{TUGboat}, 9(1):78--82, April 1988.

\bibitem[Wil02]{MEMOIR}
Peter Wilson.
\newblock \emph{The memoir class for configurable book typesetting}.
\newblock November, 2002.
\newblock (Available from CTAN in 
           \texttt{macros/latex/contrib/memoir})

\end{thebibliography}

\clearpage
%%%%%%%% THE INDEX
%\input{laymanidx}
%\end{document}

%  laymanidx.tex
%  Generated by GenIndex Version 1.1 from layman.idx
% 
\begin{theindex}



\otherindexspace{?}
% ????


\item \texttt  {\bs \tat dotsep}  \indexfill
   44--45
\item \texttt  {\bs \tat dottedtocline}  \indexfill
   43, 46
\item \texttt  {\bs \tat pnumwidth}  \indexfill
   44--45
\item \texttt  {\bs \tat startsection}  \indexfill
   35, 37, 46
\item \texttt  {\bs \tat tocrmarg}  \indexfill
   44--45

\alphaindexspace{B}
% BBBB


\item \texttt  {\bs baselineskip}  \indexfill
   2, 11, 16, 18, 39--40
\item \texttt  {\bs botfigrule}  \indexfill
   25, 27
\item \texttt  {\bs bottomfraction}  \indexfill
   22
\item \texttt  {\bs bottomnumber}  \indexfill
   22

\alphaindexspace{C}
% CCCC


\item \texttt  {center} (environment)  \indexfill
   4, 13
\item \texttt  {\bs chapter}  \indexfill
   35
\item {\textsf  {classes.dtx} (file)}  \indexfill
   34, 42, 45
\item \texttt  {\bs columnsep}  \indexfill
   11, 16
\item \texttt  {\bs columnseprule}  \indexfill
   11, 16
\item \texttt  {\bs currentfloat}  \indexfill
   24
\item \texttt  {\bs currentfloatpage}  \indexfill
   21
\item \texttt  {\bs currentfootnote}  \indexfill
   39
\item \texttt  {\bs currentheading}  \indexfill
   35
\item \texttt  {\bs currentlist}  \indexfill
   29, 34
\item \texttt  {\bs currentpage}  \indexfill
   9, 14
\item \texttt  {\bs currentparagraph}  \indexfill
   18
\item \texttt  {\bs currentstock}  \indexfill
   14
\item \texttt  {\bs currenttoc}  \indexfill
   44

\alphaindexspace{D}
% DDDD


\item \texttt  {\bs dblfloatpagefraction}  \indexfill
   28
\item \texttt  {\bs dblfloatsep}  \indexfill
   28
\item \texttt  {\bs dbltextfloatsep}  \indexfill
   28
\item \texttt  {\bs dbltopfraction}  \indexfill
   28
\item \texttt  {\bs dbltopnumber}  \indexfill
   28
\item \texttt  {description} (environment)  \indexfill
   34
\item \texttt  {\bs drawaspread}  \indexfill
   4, 6
\item \texttt  {\bs drawdimensionsfalse}  \indexfill
   3
\item \texttt  {\bs drawdimensionstrue}  \indexfill
   3, 11
\item \texttt  {\bs drawfloat}  \indexfill
   24
\item \texttt  {\bs drawfloatpage}  \indexfill
   21
\item \texttt  {\bs drawfontframe}  \indexfill
   47
\item \texttt  {\bs drawfontframelabel}  \indexfill
   47
\item \texttt  {\bs drawfootnote}  \indexfill
   39
\item \texttt  {\bs drawheading}  \indexfill
   35
\item \texttt  {\bs drawlist}  \indexfill
   29, 32
\item \texttt  {\bs drawmarginparsfalse}  \indexfill
   7
\item \texttt  {\bs drawmarginparstrue}  \indexfill
   7
\item \texttt  {\bs drawpage}  \indexfill
   7
\item \texttt  {\bs drawparagraph}  \indexfill
   18
\item \texttt  {\bs drawparametersfalse}  \indexfill
   2--3
\item \texttt  {\bs drawparameterstrue}  \indexfill
   2, 35
\item \texttt  {\bs drawstock}  \indexfill
   14
\item \texttt  {\bs drawtoc}  \indexfill
   43

\alphaindexspace{E}
% EEEE


\item \texttt  {enumerate} (environment)  \indexfill
   29, 34
\item \texttt  {\bs evensidemargin}  \indexfill
   11

\alphaindexspace{F}
% FFFF


\item \texttt  {figure} (environment)  \indexfill
   4, 21
\item \texttt  {\bs floatdesign}  \indexfill
   24
\item \texttt  {\bs floatdiagram}  \indexfill
   24
\item \texttt  {\bs floatpagedesign}  \indexfill
   21
\item \texttt  {\bs floatpagediagram}  \indexfill
   21
\item \texttt  {\bs floatsep}  \indexfill
   25
\item \texttt  {\bs floatvalues}  \indexfill
   28
\item \texttt  {\bs footins}  \indexfill
   40
\item \texttt  {\bs footnotedesign}  \indexfill
   39
\item \texttt  {\bs footnotediagram}  \indexfill
   39
\item \texttt  {\bs footnoterule}  \indexfill
   27, 40
\item \texttt  {\bs footnotesep}  \indexfill
   40--41
\item \texttt  {\bs footnotesize}  \indexfill
   1
\item \texttt  {\bs footnotevalues}  \indexfill
   42
\item \texttt  {\bs footskip}  \indexfill
   9, 11, 16

\alphaindexspace{H}
% HHHH


\item \texttt  {\bs headheight}  \indexfill
   11, 16
\item \texttt  {\bs headingdesign}  \indexfill
   35
\item \texttt  {\bs headingdiagram}  \indexfill
   35
\item \texttt  {\bs headsep}  \indexfill
   11, 16
\item \texttt  {\bs hoffset}  \indexfill
   11

\alphaindexspace{I}
% IIII


\item \texttt  {\bs intextsep}  \indexfill
   25
\item \texttt  {\bs itemindent}  \indexfill
   31
\item \texttt  {itemize} (environment)  \indexfill
   34
\item \texttt  {\bs itemsep}  \indexfill
   31

\alphaindexspace{L}
% LLLL


\item \texttt  {\bs labelsep}  \indexfill
   31
\item \texttt  {\bs labelwidth}  \indexfill
   31
\item {\textsf  {layout.sty} (file)}  \indexfill
   1
\item \texttt  {layoutsbox} (save box)  \indexfill
   47
\item \texttt  {\bs leftmargin}  \indexfill
   31
\item \texttt  {\bs linewidth}  \indexfill
   18, 44
\item \texttt  {list} (environment)  \indexfill
   29, 34
\item \texttt  {\bs listasparafalse}  \indexfill
   29
\item \texttt  {\bs listasparatrue}  \indexfill
   29
\item \texttt  {\bs listdesign}  \indexfill
   29
\item \texttt  {\bs listdiagram}  \indexfill
   29
\item \texttt  {\bs listparindent}  \indexfill
   31
\item \texttt  {\bs listvalues}  \indexfill
   34

\alphaindexspace{M}
% MMMM


\item \texttt  {\bs makeatletter}  \indexfill
   13, 27, 37
\item \texttt  {\bs makeatother}  \indexfill
   13, 27, 37
\item \texttt  {\bs marginparpush}  \indexfill
   11, 16
\item \texttt  {\bs marginparsep}  \indexfill
   11, 16
\item \texttt  {\bs marginparswitchfalse}  \indexfill
   7
\item \texttt  {\bs marginparswitchtrue}  \indexfill
   7
\item \texttt  {\bs marginparwidth}  \indexfill
   11, 16

\alphaindexspace{N}
% NNNN


\item \texttt  {\bs normalmarginpar}  \indexfill
   7

\alphaindexspace{O}
% OOOO


\item \texttt  {\bs oddpagelayoutfalse}  \indexfill
   7
\item \texttt  {\bs oddpagelayouttrue}  \indexfill
   7
\item \texttt  {\bs oddsidemargin}  \indexfill
   11

\alphaindexspace{P}
% PPPP


\item \texttt  {\bs pagedesign}  \indexfill
   7
\item \texttt  {\bs pagediagram}  \indexfill
   7
\item \texttt  {\bs pagevalues}  \indexfill
   13
\item \texttt  {\bs paperheight}  \indexfill
   9, 11, 16
\item \texttt  {\bs paperwidth}  \indexfill
   9, 11, 16
\item \texttt  {\bs paragraphdesign}  \indexfill
   18
\item \texttt  {\bs paragraphdiagram}  \indexfill
   18
\item \texttt  {\bs paragraphvalues}  \indexfill
   20
\item \texttt  {\bs parindent}  \indexfill
   18, 20
\item \texttt  {\bs parsep}  \indexfill
   31
\item \texttt  {\bs parskip}  \indexfill
   2, 18, 31
\item \texttt  {\bs part}  \indexfill
   35
\item \texttt  {\bs partopsep}  \indexfill
   31
\item \texttt  {picture} (environment)  \indexfill
   4
\item \texttt  {\bs printheadingsfalse}  \indexfill
   1, 3, 11
\item \texttt  {\bs printheadingstrue}  \indexfill
   1, 3
\item \texttt  {\bs printinunitsof}  \indexfill
   3, 20
\item \texttt  {\bs printparametersfalse}  \indexfill
   3
\item \texttt  {\bs printparameterstrue}  \indexfill
   3
\item \texttt  {\bs prntlen}  \indexfill
   3

\alphaindexspace{Q}
% QQQQ


\item \texttt  {quotation} (environment)  \indexfill
   34

\alphaindexspace{R}
% RRRR


\item \texttt  {\bs renewcommand}  \indexfill
   27, 45
\item \texttt  {\bs reversemarginpar}  \indexfill
   7
\item \texttt  {\bs reversemarginparfalse}  \indexfill
   7
\item \texttt  {\bs reversemarginpartrue}  \indexfill
   7
\item \texttt  {\bs rightmargin}  \indexfill
   31
\item \texttt  {\bs rule}  \indexfill
   27
\item \texttt  {\bs runinheadfalse}  \indexfill
   35
\item \texttt  {\bs runinheadtrue}  \indexfill
   35

\alphaindexspace{S}
% SSSS


\item \texttt  {\bs setcounter}  \indexfill
   27
\item \texttt  {\bs setfootbox}  \indexfill
   9, 14
\item \texttt  {\bs setlabelfont}  \indexfill
   3, 39
\item \texttt  {\bs setlayoutscale}  \indexfill
   2, 4, 6
\item \texttt  {\bs setlength}  \indexfill
   13, 28, 41
\item \texttt  {\bs setparameterstextsize}  \indexfill
   3
\item \texttt  {\bs setuplayouts}  \indexfill
   2, 4
\item \texttt  {\bs setvaluestextsize}  \indexfill
   1
\item \texttt  {\bs skip}  \indexfill
   40
\item \texttt  {\bs spacefactor}  \indexfill
   13
\item \texttt  {\bs spinemargin}  \indexfill
   16
\item \texttt  {\bs stockdesign}  \indexfill
   14
\item \texttt  {\bs stockdiagram}  \indexfill
   14
\item \texttt  {\bs stockheight}  \indexfill
   16
\item \texttt  {\bs stockvalues}  \indexfill
   16
\item \texttt  {\bs stockwidth}  \indexfill
   16
\item \texttt  {\bs subsubsection}  \indexfill
   37

\alphaindexspace{T}
% TTTT


\item \texttt  {table} (environment)  \indexfill
   21
\item \texttt  {tabular} (environment)  \indexfill
   4
\item \texttt  {\bs textfloatsep}  \indexfill
   25, 27
\item \texttt  {\bs textfraction}  \indexfill
   22
\item \texttt  {\bs textheight}  \indexfill
   11, 16
\item \texttt  {\bs textwidth}  \indexfill
   11, 16, 40
\item \texttt  {thebibliography} (environment)  \indexfill
   34
\item \texttt  {tocdepth} (counter)  \indexfill
   43
\item \texttt  {\bs tocdesign}  \indexfill
   43
\item \texttt  {\bs tocdiagram}  \indexfill
   43
\item \texttt  {\bs tocvalues}  \indexfill
   46
\item \texttt  {\bs topfigrule}  \indexfill
   25, 27
\item \texttt  {\bs topfraction}  \indexfill
   22
\item \texttt  {\bs topmargin}  \indexfill
   11
\item \texttt  {\bs topnumber}  \indexfill
   22
\item \texttt  {\bs topsep}  \indexfill
   31
\item \texttt  {\bs totalnumber}  \indexfill
   22
\item \texttt  {\bs trimedge}  \indexfill
   16
\item \texttt  {\bs trimtop}  \indexfill
   16
\item \texttt  {\bs tryafterskip}  \indexfill
   36
\item \texttt  {\bs trybeforeskip}  \indexfill
   36
\item \texttt  {\bs trybotfigrule}  \indexfill
   25
\item \texttt  {\bs trybottomfraction}  \indexfill
   22
\item \texttt  {\bs trybottomnumber}  \indexfill
   22
\item \texttt  {\bs trycolumnsep}  \indexfill
   11, 16
\item \texttt  {\bs trycolumnseprule}  \indexfill
   11, 16
\item \texttt  {\bs tryevensidemargin}  \indexfill
   11
\item \texttt  {\bs tryfloatsep}  \indexfill
   25
\item \texttt  {\bs tryfootins}  \indexfill
   40
\item \texttt  {\bs tryfootnotebaseline}  \indexfill
   40
\item \texttt  {\bs tryfootnotesep}  \indexfill
   40
\item \texttt  {\bs tryfootrulefrac}  \indexfill
   40
\item \texttt  {\bs tryfootruleheight}  \indexfill
   40
\item \texttt  {\bs tryfootskip}  \indexfill
   11, 16
\item \texttt  {\bs tryheadheight}  \indexfill
   11, 16
\item \texttt  {\bs tryheadsep}  \indexfill
   11, 16
\item \texttt  {\bs tryhoffset}  \indexfill
   11
\item \texttt  {\bs tryindent}  \indexfill
   36
\item \texttt  {\bs tryintextsep}  \indexfill
   25
\item \texttt  {\bs tryitemindent}  \indexfill
   31
\item \texttt  {\bs tryitemsep}  \indexfill
   31
\item \texttt  {\bs trylabelsep}  \indexfill
   31
\item \texttt  {\bs trylabelwidth}  \indexfill
   31
\item \texttt  {\bs tryleftmargin}  \indexfill
   31
\item \texttt  {\bs trylistparindent}  \indexfill
   31
\item \texttt  {\bs trymarginparpush}  \indexfill
   11, 16
\item \texttt  {\bs trymarginparsep}  \indexfill
   11, 16
\item \texttt  {\bs trymarginparwidth}  \indexfill
   11, 16
\item \texttt  {\bs tryoddsidemargin}  \indexfill
   11
\item \texttt  {\bs trypaperheight}  \indexfill
   11, 16
\item \texttt  {\bs trypaperwidth}  \indexfill
   11, 16
\item \texttt  {\bs tryparbaselineskip}  \indexfill
   18
\item \texttt  {\bs tryparindent}  \indexfill
   18
\item \texttt  {\bs tryparlinewidth}  \indexfill
   18
\item \texttt  {\bs tryparsep}  \indexfill
   31
\item \texttt  {\bs tryparskip}  \indexfill
   18, 31
\item \texttt  {\bs trypartopsep}  \indexfill
   31
\item \texttt  {\bs tryrightmargin}  \indexfill
   31
\item \texttt  {\bs tryspinemargin}  \indexfill
   16
\item \texttt  {\bs trystockheight}  \indexfill
   16
\item \texttt  {\bs trystockwidth}  \indexfill
   16
\item \texttt  {\bs trytextfloatsep}  \indexfill
   25
\item \texttt  {\bs trytextfraction}  \indexfill
   22
\item \texttt  {\bs trytextheight}  \indexfill
   11, 16
\item \texttt  {\bs trytextwidth}  \indexfill
   11, 16
\item \texttt  {\bs trytocdotsep}  \indexfill
   44
\item \texttt  {\bs trytocindent}  \indexfill
   44
\item \texttt  {\bs trytoclinewidth}  \indexfill
   44
\item \texttt  {\bs trytocnumwidth}  \indexfill
   44
\item \texttt  {\bs trytocpnumwidth}  \indexfill
   44
\item \texttt  {\bs trytocrmarg}  \indexfill
   44
\item \texttt  {\bs trytopfigrule}  \indexfill
   25
\item \texttt  {\bs trytopfraction}  \indexfill
   22
\item \texttt  {\bs trytopmargin}  \indexfill
   11
\item \texttt  {\bs trytopnumber}  \indexfill
   22
\item \texttt  {\bs trytopsep}  \indexfill
   31
\item \texttt  {\bs trytotalnumber}  \indexfill
   22
\item \texttt  {\bs trytrimedge}  \indexfill
   16
\item \texttt  {\bs trytrimtop}  \indexfill
   16
\item \texttt  {\bs tryuppermargin}  \indexfill
   16
\item \texttt  {\bs tryvoffset}  \indexfill
   11
\item \texttt  {\bs twocolumnlayoutfalse}  \indexfill
   7
\item \texttt  {\bs twocolumnlayouttrue}  \indexfill
   7

\alphaindexspace{U}
% UUUU


\item \texttt  {\bs uppermargin}  \indexfill
   16

\alphaindexspace{V}
% VVVV


\item \texttt  {\bs voffset}  \indexfill
   11

\end{theindex}


\end{document}

