1 % \iffalse meta-comment
4 % The LaTeX3 Project and any individual authors listed elsewhere
7 % This file is part of the LaTeX base system.
8 % -------------------------------------------
10 % It may be distributed and/or modified under the
11 % conditions of the LaTeX Project Public License, either version 1.3c
12 % of this license or (at your option) any later version.
13 % The latest version of this license is in
14 % http://www.latex-project.org/lppl.txt
15 % and version 1.3c or later is part of all distributions of LaTeX
16 % version 2005/12/01 or later.
18 % This file has the LPPL maintenance status "maintained".
20 % The list of all files belonging to the LaTeX base distribution is
21 % given in the file `manifest.txt'. See also `legal.txt' for additional
24 % The list of derived (unpacked) files belonging to the distribution
25 % and covered by LPPL is defined by the unpacking scripts (with
26 % extension .ins) which are part of the distribution.
31 % \section{Identification}
33 % These document classes can only be used with \LaTeXe, so we make
34 % sure that an appropriate message is displayed when another \TeX{}
36 % \changes{v1.3p}{1995/11/30}{Added date of \LaTeX\ format to argument
37 % of \cs{NeedsTeXFormat}}
39 %<article|report|book>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
42 % Announce the Class name and its version:
44 %<article>\ProvidesClass{article}
45 %<report>\ProvidesClass{report}
46 %<book>\ProvidesClass{book}
47 %<10pt&!bk>\ProvidesFile{size10.clo}
48 %<11pt&!bk>\ProvidesFile{size11.clo}
49 %<12pt&!bk>\ProvidesFile{size12.clo}
50 %<10pt&bk>\ProvidesFile{bk10.clo}
51 %<11pt&bk>\ProvidesFile{bk11.clo}
52 %<12pt&bk>\ProvidesFile{bk12.clo}
54 \ProvidesFile{classes.drv}
57 %<article|report|book> Standard LaTeX document class]
58 %<10pt|11pt|12pt> Standard LaTeX file (size option)]
61 % \section{A driver for this document}
63 % The next bit of code contains the documentation driver file for
64 % \TeX{}, i.e., the file that will produce the documentation you are
65 % currently reading. It will be extracted from this file by the
66 % {\sc docstrip} program.
68 % \changes{1.0f}{1993/12/07}{Use class ltxdoc document class}
69 % \changes{1.0r}{1994/02/28}{Moved driver code in order not to need a
74 \documentclass{ltxdoc}
77 % We don't want everything to appear in the index
79 \DoNotIndex{\',\.,\@M,\@@input,\@Alph,\@alph,\@addtoreset,\@arabic}
80 \DoNotIndex{\@badmath,\@centercr,\@cite}
81 \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
82 \DoNotIndex{\@input,\@ixpt,\@m,\@minus,\@mkboth}
83 \DoNotIndex{\@ne,\@nil,\@nomath,\@plus,\roman,\@set@topoint}
84 \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
85 \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
86 \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
87 \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
88 \DoNotIndex{\advance,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
90 \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
91 \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
92 \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
93 \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
94 \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
96 \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
97 \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
98 \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi}
99 \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
101 \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
102 \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
103 \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
104 \DoNotIndex{\NeedsTeXFormat,\newdimen}
105 \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
106 \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
107 \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
108 \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
109 \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
110 \DoNotIndex{\refstepcounter,\relax,\renewcommand}
111 \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily}
112 \DoNotIndex{\secdef,\selectfont,\setbox,\setcounter,\setlength}
113 \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
114 \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
115 \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
116 \DoNotIndex{\viipt,\vipt,\vskip,\vspace}
117 \DoNotIndex{\wd,\xiipt,\year,\z@}
119 % We do want an index, using linenumbers
124 % We use so many \file{docstrip} modules that we set the
125 % \texttt{StandardModuleDepth} counter to 1.
127 \setcounter{StandardModuleDepth}{1}
129 % The following command retrieves the date and version information
132 \GetFileInfo{classes.drv}
134 % Some commonly used abbreviations
135 % \changes{v1.2w}{1994/12/01}{Use \cs{newcommand*}}
137 \newcommand*{\Lopt}[1]{\textsf {#1}}
138 \newcommand*{\file}[1]{\texttt {#1}}
139 \newcommand*{\Lcount}[1]{\textsl {\small#1}}
140 \newcommand*{\pstyle}[1]{\textsl {#1}}
142 % We also want the full details.
145 \DocInput{classes.dtx}
154 % \changes{v1.0d}{1993/11/30}{remove \cs{@in}, made option makeindex
155 % a synonym for option makeidx}
156 % \changes{v1.0d}{1993/11/30}{removed \cs{@minus}, \cs{@plus},
157 % \cs{@settopoint}, \cs{@setfontsize}; they are now in the
159 % \changes{v1.0d}{1993/11/30}{Added use of \cs{NeedsTeXFormat}}
160 % \changes{v1.0d}{1993/11/30}{Replaced \cs{bf} with \cs{bfseries};
161 % \cs{rm} with \cs{rmfamily}}
162 % \changes{v1.0d}{1993/11/30}{Made equation and eqnarray environments
163 % in the fleqn option up to date with latex.dtx}
164 % \changes{v1.0f}{1993/12/08}{Made all lines shorter than 72 characters}
165 % \changes{v1.0g}{1993/12/08}{Made change in eqnarray for the fleqn
166 % option, as suggested by Rainer.}
167 % \changes{v1.0h}{1993/12/18}{Made the definitions of the font- and
168 % size-changing commands use \cs{renew} rather than \cs{new}.
169 % Defined the float parameters with \cs{renewcommand} rather than
170 % \cs{newcommand}. Corrected some typos in the fleqn option.
171 % Replaced two occurrences of -\cs{@secpenalty} by
172 % \cs{@secpenalty}. ASAJ.}
173 % \changes{v1.0j}{1993/12/20}{Added \cs{ProvidesFile} to size files}
174 % \changes{v1.0j}{1993/12/10}{Use \cs{cmd} in change entries}
175 % \changes{v1.0k}{1994/01/09}{Removed some typos/bugs}
176 % \changes{v1.0l}{1994/01/11}{add the extension to the names of the
178 % \changes{v1.0l}{1994/01/10}{Changed version numbering; moved leqno
179 % and fleqn options to an external file.}
180 % \changes{v1.0n}{1994/01/19}{Removed code for makeidx option and made
181 % it a separate package; removed use of \cs{setlength} from list
183 % \changes{v1.0o}{1994/01/31}{Small documentation changes}
184 % \changes{v1.0q}{1994/02/16}{Small documentation changes}
185 % \changes{v1.1a}{1994/03/12}{Removed \cs{typeout} messages}
186 % \changes{v1.1f}{1994/04/15}{Inserted forgotten line break}
187 % \changes{v1.2a}{1994/03/17}{Added openright option. (LL)}
188 % \changes{v1.2b}{1994/03/17}{Added the \ldots{}matter commands. (LL)}
189 % \changes{v1.2c}{1994/03/17}{Fixed page numbering in titlepage
191 % \changes{v1.2d}{1994/04/11}{Checked the file for long lines and
192 % wrapped them when necessary; made a slight implementation
193 % modification to the openright and openany options.}
194 % \changes{v1.2i}{1994/04/28}{Use LaTeX instead of LaTeX2e in messages}
195 % \changes{v1.2j}{1994/05/01}{Removed the use of \cs{fileversion}
197 % \changes{v1.2l}{1994/05/11}{changed some \cs{changes} entries}
198 % \changes{v1.2m}{1994/05/12}{Forgot a few entries}
199 % \changes{v1.2o}{1994/05/24}{Changed file information}
200 % \changes{v1.2p}{1994/05/27}{Moved identification and driver to the
202 % \changes{v1.2t}{1994/06/22}{Refrased a few sentences to prevent
204 % \changes{v1.2v}{1994/12/01}{Made the oneside option work for the
206 % \changes{v1.2w}{1994/12/01}{Use \cs{newcommand*} for commands with
208 % \changes{v1.2z}{1995/05/16}{Always use \cs{cs} in \cs{changes}
210 % \changes{v1.3a}{1995/05/17}{Replaced all \cs{hbox to} by \cs{hb@xt@}}
211 % \changes{v1.3d}{1995/06/05}{Replaced all \cs{uppercase} by
212 % \cs{MakeUppercase}}
213 % \changes{v1.3l}{1995/10/20}{Disabled in compatibility mode all
214 % options that are new in \LaTeXe.}
215 % \changes{v1.3v}{1997/06/16}{Documentation fixes.}
218 % \title{Standard Document Classes for \LaTeX{} version 2e\thanks{This
219 % file has version number \fileversion, last revised \filedate.}}
222 % Copyright (C) 1992 by Leslie Lamport \and
223 % Copyright (C) 1994-97 by Frank Mittelbach \and Johannes Braams
226 % \MaintainedByLaTeXTeam{latex}
230 % \StopEventually{} ^^A
232 % \section{The {\sc docstrip} modules}
234 % The following modules are used in the implementation to direct
235 % {\sc docstrip} in generating the external files:
237 % \begin{tabular}{ll}
238 % article & produce the documentclass article\\
239 % report & produce the documentclass report\\
240 % size10 & produce the class option for 10pt\\
241 % size11 & produce the class option for 11pt\\
242 % size12 & produce the class option for 12pt\\
243 % book & produce the documentclass book\\
244 % bk10 & produce the book class option for 10pt\\
245 % bk11 & produce the book class option for 11pt\\
246 % bk12 & produce the book class option for 12pt\\
247 % driver & produce a documentation driver file \\
251 % \section{Initial Code}
253 % In this part we define a few commands that are used later on.
255 % \begin{macro}{\@ptsize}
256 % This control sequence is used to store the second digit of the
257 % pointsize we are typesetting in. So, normally, it's value is one
260 %<*article|report|book>
261 \newcommand\@ptsize{}
265 % \begin{macro}{\if@restonecol}
266 % When the document has to be printed in two columns, we sometimes
267 % have to temporarily switch to one column. This switch is used to
268 % remember to switch back.
274 % \begin{macro}{\if@titlepage}
275 % A switch to indicate if a titlepage has to be produced. For the
276 % article document class the default is not to make a separate
280 %<article>\@titlepagefalse
281 %<!article>\@titlepagetrue
285 % \begin{macro}{\if@openright}
286 % A switch to indicate if chapters must start on a right-hand page.
287 % The default for the report class is no; for the book class it's
290 %<!article>\newif\if@openright
294 % \changes{v1.3k}{1995/08/27}{Macro \cs{if@openbib} removed}
296 % \begin{macro}{\if@mainmatter}
297 % \changes{v1.2v}{1994/12/01}{Moved the allocation of
298 % \cs{if@mainmatter} here}
300 % The switch |\if@mainmatter|, only available in the document class
301 % book, indicates whether we are processing the main material in
304 %<book>\newif\if@mainmatter \@mainmattertrue
308 % \section{Declaration of Options}
311 % \subsection{Setting Paper Sizes}
313 % The variables |\paperwidth| and |\paperheight| should reflect the
314 % physical paper size after trimming. For desk printer output this
315 % is usually the real paper size since there is no post-processing.
316 % Classes for real book production will probably add other paper
317 % sizes and additionally the production of crop marks for trimming.
318 % In compatibility mode, these (and some of the subsequent) options
319 % are disabled, as they were not present in \LaTeX 2.09.
320 % \changes{v1.0g}{1993/12/09}{Removed typo, A4 is not 279 mm high}
322 \if@compatibility\else
323 \DeclareOption{a4paper}
324 {\setlength\paperheight {297mm}%
325 \setlength\paperwidth {210mm}}
326 \DeclareOption{a5paper}
327 {\setlength\paperheight {210mm}%
328 \setlength\paperwidth {148mm}}
329 \DeclareOption{b5paper}
330 {\setlength\paperheight {250mm}%
331 \setlength\paperwidth {176mm}}
332 \DeclareOption{letterpaper}
333 {\setlength\paperheight {11in}%
334 \setlength\paperwidth {8.5in}}
335 \DeclareOption{legalpaper}
336 {\setlength\paperheight {14in}%
337 \setlength\paperwidth {8.5in}}
338 \DeclareOption{executivepaper}
339 {\setlength\paperheight {10.5in}%
340 \setlength\paperwidth {7.25in}}
343 % The option \Lopt{landscape} switches the values of |\paperheight|
344 % and |\paperwidth|, assuming the dimensions were given for portrait
347 \DeclareOption{landscape}
348 {\setlength\@tempdima {\paperheight}%
349 \setlength\paperheight {\paperwidth}%
350 \setlength\paperwidth {\@tempdima}}
354 % \subsection{Choosing the type size}
356 % The type size options are handled by defining |\@ptsize| to contain
357 % the last digit of the size in question and branching on |\ifcase|
358 % statements. This is done for historical reasons to stay compatible
359 % with other packages that use the |\@ptsize| variable to select
360 % special actions. It makes the declarations of size options less
361 % than 10pt difficult, although one can probably use \texttt{9}
362 % and \texttt{8} assuming that a class wont define both
363 % \Lopt{8pt} and \Lopt{18pt} options.
367 \renewcommand\@ptsize{0}
369 \DeclareOption{10pt}{\renewcommand\@ptsize{0}}
371 \DeclareOption{11pt}{\renewcommand\@ptsize{1}}
372 \DeclareOption{12pt}{\renewcommand\@ptsize{2}}
376 % \subsection{Two-side or one-side printing}
378 % For two-sided printing we use the switch |\if@twoside|. In
379 % addition we have to set the |\if@mparswitch| to get any margin
380 % paragraphs into the outside margin.
382 \if@compatibility\else
383 \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
385 \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
389 % \subsection{Draft option}
391 % If the user requests \Lopt{draft} we show any overfull boxes.
392 % We could probably add some more interesting stuff to this option.
394 \DeclareOption{draft}{\setlength\overfullrule{5pt}}
395 \if@compatibility\else
396 \DeclareOption{final}{\setlength\overfullrule{0pt}}
400 % \subsection{Titlepage option}
401 % An article usually has no separate titlepage, but the user can
404 \DeclareOption{titlepage}{\@titlepagetrue}
405 \if@compatibility\else
406 \DeclareOption{notitlepage}{\@titlepagefalse}
410 % \subsection{openright option}
411 % This option determines whether or not a chapter must start on
415 %<!article>\if@compatibility
416 %<book>\@openrighttrue
418 %<!article>\DeclareOption{openright}{\@openrighttrue}
419 %<!article>\DeclareOption{openany}{\@openrightfalse}
423 % \subsection{Twocolumn printing}
425 % Two-column and one-column printing is again realized via a switch.
427 \if@compatibility\else
428 \DeclareOption{onecolumn}{\@twocolumnfalse}
430 \DeclareOption{twocolumn}{\@twocolumntrue}
433 % \subsection{Equation numbering on the left}
435 % The option \Lopt{leqno} can be used to get the equation numbers
436 % on the left side of the equation. It loads code which is generated
437 % automatically from the kernel files when the format is built.
438 % If the equation number does get a special formatting then instead
439 % of using the kernel file the class would need to provide the code
442 \DeclareOption{leqno}{\input{leqno.clo}}
445 % \subsection{Flush left displays}
447 % The option \Lopt{fleqn} redefines the displayed math environments
448 % in such a way that they come out flush left, with an indentation
449 % of |\mathindent| from the prevailing left margin. It loads
450 % code which is generated
451 % automatically from the kernel files when the format is built.
452 % \changes{v1.0h}{1993/12/18}{Corrected some typos. ASAJ.}
454 \DeclareOption{fleqn}{\input{fleqn.clo}}
457 % \subsection{Open bibliography}
459 % The option \Lopt{openbib} produces the ``open'' bibliography
460 % style, in which each block starts on a new line, and succeeding
461 % lines in a block are indented by |\bibindent|.
462 % \changes{v1.3k}{1995/08/27}{openbib option reimplemented}
464 \DeclareOption{openbib}{%
466 % First some hook into the bibliography environment is filled.
469 \renewcommand\@openbib@code{%
470 \advance\leftmargin\bibindent
471 \itemindent -\bibindent
472 \listparindent \itemindent
476 % In addition the definition of |\newblock| is overwritten.
478 \renewcommand\newblock{\par}}%
483 % \section{Executing Options}
485 % Here we execute the default options to initialize certain
486 % variables. Note that the document class `book' always uses two
490 \ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final}
493 \ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final,openany}
496 \ExecuteOptions{letterpaper,10pt,twoside,onecolumn,final,openright}
500 % The |\ProcessOptions| command causes the execution of the code
501 % for every option \Lopt{FOO}
502 % which is declared and for which the user typed
503 % the \Lopt{FOO} option in his
504 % |\documentclass| command. For every option \Lopt{BAR} he typed,
505 % which is not declared, the option is assumed to be a global option.
506 % All options will be passed as document options to any
507 % |\usepackage| command in the document preamble.
511 % Now that all the options have been executed we can load the
512 % chosen class option file that contains all size dependent code.
514 %<!book>\input{size1\@ptsize.clo}
515 %<book>\input{bk1\@ptsize.clo}
516 %</article|report|book>
519 % \section{Loading Packages}
521 % The standard class files do not load additional packages.
524 % \section{Document Layout}
525 % \label{sec:classes:maincode}
527 % In this section we are finally dealing with the nasty typographical
532 % \LaTeX\ offers the user commands to change the size of the font,
533 % relative to the `main' size. Each relative size changing command
534 % |\size| executes the command
535 % |\@setfontsize||\size|\meta{font-size}\meta{baselineskip} where:
537 % \begin{description}
538 % \item[\meta{font-size}] The absolute size of the font to use from
541 % \item[\meta{baselineskip}] The normal value of |\baselineskip|
542 % for the size of the font selected. (The actual value will be
543 % |\baselinestretch| * \meta{baselineskip}.)
546 % A number of commands, defined in the \LaTeX{} kernel, shorten the
547 % following definitions and are used throughout. They are:
549 % \begin{tabular}{ll@{\qquad}ll@{\qquad}ll}
550 % \verb=\@vpt= & 5 & \verb=\@vipt= & 6 & \verb=\@viipt= & 7 \\
551 % \verb=\@viiipt= & 8 & \verb=\@ixpt= & 9 & \verb=\@xpt= & 10 \\
552 % \verb=\@xipt= & 10.95 & \verb=\@xiipt= & 12 & \verb=\@xivpt= & 14.4\\
557 % \begin{macro}{\normalsize}
558 % \begin{macro}{\@normalsize}
559 % \changes{v1.0o}{1994/01/31}{\cs{@normalsize} now defined in the
562 % The user level command for the main size is |\normalsize|.
563 % Internally \LaTeX{} uses |\@normalsize| when it refers to the
564 % main size. |\@normalsize| will be defined to work like
565 % |\normalsize| if the latter is redefined from its default
566 % definition (that just issues an error message). Otherwise
567 % |\@normalsize| simply selects a 10pt/12pt size.
569 % The |\normalsize| macro also sets new values for\\
570 % |\abovedisplayskip|, |\abovedisplayshortskip| and
571 % |\belowdisplayshortskip|.
573 % \changes{v1.0e}{1993/12/07}{\cs{normalsize} doesn't exist, so use
575 % \changes{v1.0h}{1993/12/18}{\cs{normalsize} is now defined in the
576 % kernel, so use \cs{renewcommand}. ASAJ.}
579 \renewcommand\normalsize{%
581 \@setfontsize\normalsize\@xpt\@xiipt
582 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
583 \abovedisplayshortskip \z@ \@plus3\p@
584 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
587 \@setfontsize\normalsize\@xipt{13.6}%
588 \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
589 \abovedisplayshortskip \z@ \@plus3\p@
590 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
593 \@setfontsize\normalsize\@xiipt{14.5}%
594 \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
595 \abovedisplayshortskip \z@ \@plus3\p@
596 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
599 % The |\belowdisplayskip| is always equal to the
600 % |\abovedisplayskip|. The parameters of the first level list are
601 % always given by |\@listI|.
603 \belowdisplayskip \abovedisplayskip
607 % We initially choose the normalsize font.
614 % \begin{macro}{\small}
615 % This is similar to |\normalsize|.
616 % \changes{v1.0h}{1993/12/18}{\cs{small} is now defined in the kernel,
617 % so use \cs{renewcommand}. ASAJ.}
618 % \changes{v1.2e}{1994/04/14}{\cs{small} is no longer defined in the
619 % kernel; use \cs{newcommand}}
623 \@setfontsize\small\@ixpt{11}%
624 \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
625 \abovedisplayshortskip \z@ \@plus2\p@
626 \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
627 \def\@listi{\leftmargin\leftmargini
628 \topsep 4\p@ \@plus2\p@ \@minus2\p@
629 \parsep 2\p@ \@plus\p@ \@minus\p@
633 \@setfontsize\small\@xpt\@xiipt
634 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
635 \abovedisplayshortskip \z@ \@plus3\p@
636 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
637 \def\@listi{\leftmargin\leftmargini
638 \topsep 6\p@ \@plus2\p@ \@minus2\p@
639 \parsep 3\p@ \@plus2\p@ \@minus\p@
643 \@setfontsize\small\@xipt{13.6}%
644 \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
645 \abovedisplayshortskip \z@ \@plus3\p@
646 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
647 \def\@listi{\leftmargin\leftmargini
648 \topsep 9\p@ \@plus3\p@ \@minus5\p@
649 \parsep 4.5\p@ \@plus2\p@ \@minus\p@
652 \belowdisplayskip \abovedisplayskip
657 % \begin{macro}{\footnotesize}
658 % This is similar to |\normalsize|.
659 % \changes{v1.0h}{1993/12/18}{\cs{footnotesize} is now defined in the
660 % kernel, so use \cs{renewcommand}. ASAJ.}
661 % \changes{v1.2e}{1994/04/14}{use \cs{newcommand} again}
663 \newcommand\footnotesize{%
665 \@setfontsize\footnotesize\@viiipt{9.5}%
666 \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
667 \abovedisplayshortskip \z@ \@plus\p@
668 \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
669 \def\@listi{\leftmargin\leftmargini
670 \topsep 3\p@ \@plus\p@ \@minus\p@
671 \parsep 2\p@ \@plus\p@ \@minus\p@
675 \@setfontsize\footnotesize\@ixpt{11}%
676 \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
677 \abovedisplayshortskip \z@ \@plus\p@
678 \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
679 \def\@listi{\leftmargin\leftmargini
680 \topsep 4\p@ \@plus2\p@ \@minus2\p@
681 \parsep 2\p@ \@plus\p@ \@minus\p@
685 \@setfontsize\footnotesize\@xpt\@xiipt
686 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
687 \abovedisplayshortskip \z@ \@plus3\p@
688 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
689 \def\@listi{\leftmargin\leftmargini
690 \topsep 6\p@ \@plus2\p@ \@minus2\p@
691 \parsep 3\p@ \@plus2\p@ \@minus\p@
694 \belowdisplayskip \abovedisplayskip
700 % \begin{macro}{\scriptsize}
701 % \begin{macro}{\tiny}
702 % \begin{macro}{\large}
703 % \begin{macro}{\Large}
704 % \begin{macro}{\LARGE}
705 % \begin{macro}{\huge}
706 % \begin{macro}{\Huge}
707 % These are all much simpler than the previous macros, they just
708 % select a new fontsize, but leave the parameters for displays and
710 % \changes{v1.0h}{1993/12/18}{These are now defined in the kernel,
711 % so use \cs{renewcommand}. ASAJ.}
712 % \changes{v1.2e}{1994/04/14}{use \cs{newcommand} again}
715 \newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
716 \newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
717 \newcommand\large{\@setfontsize\large\@xiipt{14}}
718 \newcommand\Large{\@setfontsize\Large\@xivpt{18}}
719 \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
720 \newcommand\huge{\@setfontsize\huge\@xxpt{25}}
721 \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
724 \newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
725 \newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
726 \newcommand\large{\@setfontsize\large\@xiipt{14}}
727 \newcommand\Large{\@setfontsize\Large\@xivpt{18}}
728 \newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
729 \newcommand\huge{\@setfontsize\huge\@xxpt{25}}
730 \newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
733 \newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
734 \newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
735 \newcommand\large{\@setfontsize\large\@xivpt{18}}
736 \newcommand\Large{\@setfontsize\Large\@xviipt{22}}
737 \newcommand\LARGE{\@setfontsize\LARGE\@xxpt{25}}
738 \newcommand\huge{\@setfontsize\huge\@xxvpt{30}}
751 % \subsection{Paragraphing}
753 % \begin{macro}{\lineskip}
754 % \begin{macro}{\normallineskip}
755 % These parameters control \TeX's behaviour when two lines tend to
756 % come too close together.
758 %<*article|report|book>
759 \setlength\lineskip{1\p@}
760 \setlength\normallineskip{1\p@}
765 % \begin{macro}{\baselinestretch}
766 % This is used as a multiplier for |\baselineskip|. The default is
767 % to \emph{not} stretch the baselines. Note that if this command
768 % doesn't resolve to ``empty'' any \texttt{plus} or \texttt{minus}
769 % part in the specification of |\baselineskip| is ignored.
771 \renewcommand\baselinestretch{}
775 % \begin{macro}{\parskip}
776 % \begin{macro}{\parindent}
777 % |\parskip| gives extra vertical space between paragraphs and
778 % |\parindent| is the width of the paragraph indentation. The value
779 % of |\parindent| depends on whether we are in two column mode.
780 % \changes{v1.0m}{1994/01/12}{\cs{parindent} should be different,
781 % depending on the pointsize}
783 \setlength\parskip{0\p@ \@plus \p@}
784 %</article|report|book>
787 \setlength\parindent{1em}
789 %<10pt> \setlength\parindent{15\p@}
790 %<11pt> \setlength\parindent{17\p@}
791 %<12pt> \setlength\parindent{1.5em}
798 % \begin{macro}{\smallskipamount}
799 % \begin{macro}{\medskipamount}
800 % \begin{macro}{\bigskipamount}
801 % The values for these three parameters are set in the \LaTeX\
802 % kernel. They should perhaps vary, according to the size option
803 % specified. But as they have always had the same value regardless
804 % of the size option we do not change them to stay compatible with
805 % both \LaTeX~2.09 and older releases of \LaTeXe.
806 % \changes{v1.3n}{1995/10/29}{Added setting the values of
807 % \cs{...skipamount}}
810 \setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
811 \setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
812 \setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
819 % \begin{macro}{\@lowpenalty}
820 % \begin{macro}{\@medpenalty}
821 % \begin{macro}{\@highpenalty}%
822 % The commands |\nopagebreak| and |\nolinebreak| put in penalties
823 % to discourage these breaks at the point they are put in.
824 % They use |\@lowpenalty|, |\@medpenalty| or |\@highpenalty|,
825 % dependent on their argument.
827 %<*article|report|book>
836 % \begin{macro}{\clubpenalty}
837 % \begin{macro}{\widowpenalty}
838 % These penalties are use to discourage club and widow lines.
839 % Because we use their default values we only show them here,
848 % \begin{macro}{\displaywidowpenalty}
849 % \begin{macro}{\predisplaypenalty}
850 % \begin{macro}{\postdisplaypenalty}
851 % Discourage (but not so much) widows in front of a math display
852 % and forbid breaking directly in front of a display. Allow break
853 % after a display without a penalty. Again the default values are
854 % used, therefore we only show them here.
856 % \displaywidowpenalty 50
857 % \predisplaypenalty 10000
858 % \postdisplaypenalty 0
864 % \begin{macro}{\interlinepenalty}
865 % Allow the breaking of a page in the middle of a paragraph.
867 % \interlinepenalty 0
872 % \begin{macro}{\brokenpenalty}
873 % We allow the breaking of a page after a hyphenated line.
874 % \changes{v1.1a}{1994/03/12}{Show correct default which is 100}
877 %</article|report|book>
882 % \subsection{Page Layout}
884 % All margin dimensions are measured from a point one inch from the
885 % top and lefthand side of the page.
887 % \subsubsection{Vertical spacing}
889 % \begin{macro}{\headheight}
890 % \begin{macro}{\headsep}
891 % \begin{macro}{\topskip}
892 % The |\headheight| is the height of the box that will contain the
893 % running head. The |\headsep| is the distance between the bottom
894 % of the running head and the top of the text. The |\topskip| is
895 % the |\baselineskip| for the first line on a page; \LaTeX's output
896 % routine will not work properly if it has the value 0pt, so do not
900 \setlength\headheight{12\p@}
901 %<!bk>\setlength\headsep {25\p@}
902 %<10pt&bk>\setlength\headsep {.25in}
903 %<11pt&bk>\setlength\headsep {.275in}
904 %<12pt&bk>\setlength\headsep {.275in}
905 %<10pt>\setlength\topskip {10\p@}
906 %<11pt>\setlength\topskip {11\p@}
907 %<12pt>\setlength\topskip {12\p@}
913 % \begin{macro}{\footskip}
914 % The distance from the baseline of the box which contains the
915 % running footer to the baseline of last line of text is controlled
916 % by the |\footskip|.
918 %<!bk>\setlength\footskip{30\p@}
919 %<10pt&bk>\setlength\footskip{.35in}
920 %<11pt&bk>\setlength\footskip{.38in}
921 %<12pt&bk>\setlength\footskip{30\p@}
925 % \begin{macro}{\maxdepth}
926 % \changes{v1.2k}{1994/05/06}{Added setting of \cs{maxdepth} and
928 % \changes{v1.3j}{1995/08/16}{Take setting of
929 % \cs{@maxdepth} out again}
930 % The \TeX\ primitive register |\maxdepth| has a function that is
931 % similar to that of |\topskip|. The register |\@maxdepth| should
932 % always contain a copy of |\maxdepth|. This is achieved by setting
933 % it internally at |\begin{document}|. In both plain \TeX\ and
934 % \LaTeX~2.09 |\maxdepth| had a fixed value of \texttt{4pt}; in
935 % native \LaTeX2e\ mode we let the value depend on the typesize. We
936 % set it so that |\maxdepth| $+$ |\topskip| $=$ typesize $\times
937 % 1.5$. As it happens, in these classes |\topskip| is equal to the
938 % typesize, therefore we set |\maxdepth| to half the value of
941 \if@compatibility \setlength\maxdepth{4\p@} \else
942 \setlength\maxdepth{.5\topskip} \fi
946 % \subsubsection{The dimension of text}
948 % \begin{macro}{\textwidth}
949 % When we are in compatibility mode we have to make sure that the
950 % dimensions of the printed area are not different from what the
951 % user was used to see.
956 \setlength\textwidth{410\p@}
958 %<10pt&!bk> \setlength\textwidth{345\p@}
959 %<11pt&!bk> \setlength\textwidth{360\p@}
960 %<12pt&!bk> \setlength\textwidth{390\p@}
961 %<10pt&bk> \setlength\textwidth{4.5in}
962 %<11pt&bk> \setlength\textwidth{5in}
963 %<12pt&bk> \setlength\textwidth{5in}
966 % When we are not in compatibility mode we can set some of the
967 % dimensions differently, taking into account the paper size for
972 % First, we calculate the maximum |\textwidth|, which we will allow
973 % on the selected paper and store it in |\@tempdima|. Then we store
974 % the length of a line with approximately 60--70 characters in
975 % |\@tempdimb|. The values given are more or less suitable when
976 % Computer Modern fonts are used.
977 % \changes{v1.1a}{1994/03/12}{Have old values for width in native mode}
979 \setlength\@tempdima{\paperwidth}
980 \addtolength\@tempdima{-2in}
981 %<10pt> \setlength\@tempdimb{345\p@}
982 %<11pt> \setlength\@tempdimb{360\p@}
983 %<12pt> \setlength\@tempdimb{390\p@}
986 % Now we can set the |\textwidth|, depending on whether we will be
987 % setting one or two columns.
989 % In two column mode each \emph{column} shouldn't be wider than
990 % |\@tempdimb| (which could happen on \textsc{a3} paper for
994 \ifdim\@tempdima>2\@tempdimb\relax
995 \setlength\textwidth{2\@tempdimb}
997 \setlength\textwidth{\@tempdima}
1001 % In one column mode the text should not be wider than the minimum
1002 % of the paperwidth (minus 2 inches for the margins) and the
1003 % maximum length of a line as defined by the number of characters.
1006 \ifdim\@tempdima>\@tempdimb\relax
1007 \setlength\textwidth{\@tempdimb}
1009 \setlength\textwidth{\@tempdima}
1015 % Here we modify the width of the text a little to be a whole
1018 \if@compatibility\else
1019 \@settopoint\textwidth
1024 % \begin{macro}{\textheight}
1025 % Now that we have computed the width of the text, we have to take
1026 % care of the height. The |\textheight| is the height of text
1027 % (including footnotes and figures, excluding running head and
1030 % First make sure that the compatibility mode gets the same
1031 % dimensions as we had with \LaTeX2.09. The number of lines was
1032 % calculated as the floor of the old |\textheight| minus
1033 % |\topskip|, divided by |\baselineskip| for |\normalsize|. The
1034 % old value of |\textheight| was 528pt.
1038 %<10pt&!bk> \setlength\textheight{43\baselineskip}
1039 %<10pt&bk> \setlength\textheight{41\baselineskip}
1040 %<11pt> \setlength\textheight{38\baselineskip}
1041 %<12pt> \setlength\textheight{36\baselineskip}
1044 % Again we compute this, depending on the papersize and depending
1045 % on the baselineskip that is used, in order to have a whole number
1046 % of lines on the page.
1049 \setlength\@tempdima{\paperheight}
1052 % We leave at least a 1 inch margin on the top and the bottom of
1055 \addtolength\@tempdima{-2in}
1058 % We also have to leave room for the running headers and footers.
1060 \addtolength\@tempdima{-1.5in}
1063 % Then we divide the result by the current |\baselineskip| and
1064 % store this in the count register |\@tempcnta|, which then
1065 % contains the number of lines that fit on this page.
1067 \divide\@tempdima\baselineskip
1068 \@tempcnta=\@tempdima
1071 % From this we can calculate the height of the text.
1073 \setlength\textheight{\@tempcnta\baselineskip}
1077 % The first line on the page has a height of |\topskip|.
1079 \addtolength\textheight{\topskip}
1085 % \subsubsection{Margins}
1087 % Most of the values of these parameters are now calculated, based
1088 % on the papersize in use. In the calculations the |\marginparsep|
1089 % needs to be taken into account so we give it its value first.
1091 % \begin{macro}{\marginparsep}
1092 % \begin{macro}{\marginparpush}
1093 % The horizontal space between the main text and marginal notes is
1094 % determined by |\marginparsep|, the minimum vertical separation
1095 % between two marginal notes is controlled by |\marginparpush|.
1098 \setlength\marginparsep {10\p@}
1100 %<10pt&!bk> \setlength\marginparsep{11\p@}
1101 %<11pt&!bk> \setlength\marginparsep{10\p@}
1102 %<12pt&!bk> \setlength\marginparsep{10\p@}
1103 %<bk> \setlength\marginparsep{7\p@}
1105 %<10pt|11pt>\setlength\marginparpush{5\p@}
1106 %<12pt>\setlength\marginparpush{7\p@}
1111 % Now we can give the values for the other margin parameters. For
1112 % native \LaTeXe, these are calculated.
1113 % \begin{macro}{\oddsidemargin}
1114 % \begin{macro}{\evensidemargin}
1115 % \begin{macro}{\marginparwidth}
1116 % First we give the values for the compatibility mode.
1118 % Values for two-sided printing:
1122 %<10pt> \setlength\oddsidemargin {.5in}
1123 %<11pt> \setlength\oddsidemargin {.25in}
1124 %<12pt> \setlength\oddsidemargin {.25in}
1125 %<10pt> \setlength\evensidemargin {1.5in}
1126 %<11pt> \setlength\evensidemargin {1.25in}
1127 %<12pt> \setlength\evensidemargin {1.25in}
1128 %<10pt> \setlength\marginparwidth {.75in}
1129 %<11pt> \setlength\marginparwidth {1in}
1130 %<12pt> \setlength\marginparwidth {1in}
1134 %<10pt> \setlength\oddsidemargin {44\p@}
1135 %<11pt> \setlength\oddsidemargin {36\p@}
1136 %<12pt> \setlength\oddsidemargin {21\p@}
1137 %<10pt> \setlength\evensidemargin {82\p@}
1138 %<11pt> \setlength\evensidemargin {74\p@}
1139 %<12pt> \setlength\evensidemargin {59\p@}
1140 %<10pt> \setlength\marginparwidth {107\p@}
1141 %<11pt> \setlength\marginparwidth {100\p@}
1142 %<12pt> \setlength\marginparwidth {85\p@}
1144 % Values for one-sided printing:
1147 %<10pt> \setlength\oddsidemargin {63\p@}
1148 %<11pt> \setlength\oddsidemargin {54\p@}
1149 %<12pt> \setlength\oddsidemargin {39.5\p@}
1150 %<10pt> \setlength\evensidemargin {63\p@}
1151 %<11pt> \setlength\evensidemargin {54\p@}
1152 %<12pt> \setlength\evensidemargin {39.5\p@}
1153 %<10pt> \setlength\marginparwidth {90\p@}
1154 %<11pt> \setlength\marginparwidth {83\p@}
1155 %<12pt> \setlength\marginparwidth {68\p@}
1159 % And values for two column mode:
1162 \setlength\oddsidemargin {30\p@}
1163 \setlength\evensidemargin {30\p@}
1164 \setlength\marginparwidth {48\p@}
1168 % When we are not in compatibility mode we can take the dimensions
1169 % of the selected paper into account.
1171 % The values for |\oddsidemargin| and |\marginparwidth| will be set
1172 % depending on the status of the |\if@twoside|.
1174 % If |@twoside| is true (which is always the case for book) we make
1175 % the inner margin smaller than the outer one.
1179 \setlength\@tempdima {\paperwidth}
1180 \addtolength\@tempdima {-\textwidth}
1181 \setlength\oddsidemargin {.4\@tempdima}
1182 \addtolength\oddsidemargin {-1in}
1184 % The width of the margin for text is set to the remainder of the
1185 % width except for a `real margin' of white space of width 0.4in.
1186 % A check should perhaps be built in to ensure that the (text)
1187 % margin width does not get too small!
1189 % \changes{v1.1a}{1994/03/12}{New algorithm for \cs{oddsidemargin}}
1190 % \changes{v1.1a}{1994/03/12}{New algorithm for \cs{marginparwidth}}
1191 % \changes{v1.2z}{1995/04/14}{Also take \cs{marginparsep} into account
1194 \setlength\marginparwidth {.6\@tempdima}
1195 \addtolength\marginparwidth {-\marginparsep}
1196 \addtolength\marginparwidth {-0.4in}
1198 % For one-sided printing we center the text on the page, by
1199 % calculating the difference between |\textwidth| and
1200 % |\paperwidth|. Half of that difference is than used for
1201 % the margin (thus |\oddsidemargin| is |1in| less).
1204 \setlength\@tempdima {\paperwidth}
1205 \addtolength\@tempdima {-\textwidth}
1206 \setlength\oddsidemargin {.5\@tempdima}
1207 \addtolength\oddsidemargin {-1in}
1208 \setlength\marginparwidth {.5\@tempdima}
1209 \addtolength\marginparwidth {-\marginparsep}
1210 \addtolength\marginparwidth {-0.4in}
1211 \addtolength\marginparwidth {-.4in}
1214 % With the above algorithm the |\marginparwidth| can come out quite
1215 % large which we may not want.
1217 \ifdim \marginparwidth >2in
1218 \setlength\marginparwidth{2in}
1221 % Having done these calculations we make them pt values.
1223 \@settopoint\oddsidemargin
1224 \@settopoint\marginparwidth
1227 % The |\evensidemargin| can now be computed from the values set
1229 % \changes{v1.0l}{1994/01/11}{Computing of \cs{evensidemargin}
1230 % should only occur in compatibility mode}
1232 \setlength\evensidemargin {\paperwidth}
1233 \addtolength\evensidemargin{-2in}
1234 \addtolength\evensidemargin{-\textwidth}
1235 \addtolength\evensidemargin{-\oddsidemargin}
1237 % Setting |\evensidemargin| to a full point value may produce a
1238 % small error. However it will lie within the error range a
1239 % doublesided printer of today's technology can accurately print.
1241 \@settopoint\evensidemargin
1248 % \begin{macro}{\topmargin}
1249 % The |\topmargin| is the distance between the top of `the
1250 % printable area'---which is 1 inch below the top of the
1251 % paper--and the top of the box which contains the running head.
1253 % It can now be computed from the values set above.
1256 %<!bk> \setlength\topmargin{27pt}
1257 %<10pt&bk> \setlength\topmargin{.75in}
1258 %<11pt&bk> \setlength\topmargin{.73in}
1259 %<12pt&bk> \setlength\topmargin{.73in}
1261 \setlength\topmargin{\paperheight}
1262 \addtolength\topmargin{-2in}
1263 \addtolength\topmargin{-\headheight}
1264 \addtolength\topmargin{-\headsep}
1265 \addtolength\topmargin{-\textheight}
1266 \addtolength\topmargin{-\footskip} % this might be wrong!
1268 % By changing the factor in the next line the complete page
1269 % can be shifted vertically.
1270 % \changes{v1.2u}{1994/07/13}{Moved rounding of \cs{topmargin} to
1273 \addtolength\topmargin{-.5\topmargin}
1274 \@settopoint\topmargin
1280 % \subsubsection{Footnotes}
1282 % \begin{macro}{\footnotesep}
1283 % |\footnotesep| is the height of the strut placed at the beginning
1284 % of every footnote. It equals the height of a normal
1285 % |\footnotesize| strut in this
1286 % class, thus no extra space occurs between footnotes.
1288 %<10pt>\setlength\footnotesep{6.65\p@}
1289 %<11pt>\setlength\footnotesep{7.7\p@}
1290 %<12pt>\setlength\footnotesep{8.4\p@}
1294 % \begin{macro}{\footins}
1295 % |\skip\footins| is the space between the last line of the main
1296 % text and the top of the first footnote.
1298 %<10pt>\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}
1299 %<11pt>\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@}
1300 %<12pt>\setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@}
1305 % \subsubsection{Float placement parameters}
1307 % All float parameters are given default values in the \LaTeXe{}
1308 % kernel. For this reason parameters that are not counters
1309 % need to be set with |\renewcommand|.
1311 % \paragraph{Limits for the placement of floating objects}
1313 % \begin{macro}{\c@topnumber}
1314 % The \Lcount{topnumber} counter holds the maximum number of
1315 % floats that can appear on the top of a text page.
1317 %<*article|report|book>
1318 \setcounter{topnumber}{2}
1322 % \begin{macro}{\topfraction}
1323 % This indicates the maximum part of a text page that can be
1324 % occupied by floats at the top.
1325 % \changes{v1.0h}{1993/12/18}{Replaced \cs{newcommand} with
1326 % \cs{renewcommand}. ASAJ.}
1328 \renewcommand\topfraction{.7}
1332 % \begin{macro}{\c@bottomnumber}
1333 % The \Lcount{bottomnumber} counter holds the maximum number of
1334 % floats that can appear on the bottom of a text page.
1336 \setcounter{bottomnumber}{1}
1340 % \begin{macro}{\bottomfraction}
1341 % This indicates the maximum part of a text page that can be
1342 % occupied by floats at the bottom.
1343 % \changes{v1.0h}{1993/12/18}{Replaced \cs{newcommand} with
1344 % \cs{renewcommand}. ASAJ.}
1346 \renewcommand\bottomfraction{.3}
1350 % \begin{macro}{\c@totalnumber}
1351 % This indicates the maximum number of floats that can appear on
1354 \setcounter{totalnumber}{3}
1358 % \begin{macro}{\textfraction}
1359 % This indicates the minimum part of a text page that has to be
1361 % \changes{v1.0h}{1993/12/18}{Replaced \cs{newcommand} with
1362 % \cs{renewcommand}. ASAJ.}
1364 \renewcommand\textfraction{.2}
1368 % \begin{macro}{\floatpagefraction}
1369 % This indicates the minimum part of a page that has to be
1370 % occupied by floating objects before a `float page' is produced.
1371 % \changes{v1.0h}{1993/12/18}{Replaced \cs{newcommand} with
1372 % \cs{renewcommand}. ASAJ.}
1374 \renewcommand\floatpagefraction{.5}
1378 % \begin{macro}{\c@dbltopnumber}
1379 % The \Lcount{dbltopnumber} counter holds the maximum number of
1380 % two column floats that can appear on the top of a two column text
1383 \setcounter{dbltopnumber}{2}
1387 % \begin{macro}{\dbltopfraction}
1388 % This indicates the maximum part of a two column text page that
1389 % can be occupied by two column floats at the top.
1390 % \changes{v1.0h}{1993/12/18}{Replaced \cs{newcommand} with
1391 % \cs{renewcommand}. ASAJ.}
1393 \renewcommand\dbltopfraction{.7}
1397 % \begin{macro}{\dblfloatpagefraction}
1398 % This indicates the minimum part of a page that has to be
1399 % occupied by two column wide floating objects before a `float
1400 % page' is produced.
1401 % \changes{v1.0h}{1993/12/18}{Replaced \cs{newcommand} with
1402 % \cs{renewcommand}. ASAJ.}
1404 \renewcommand\dblfloatpagefraction{.5}
1405 %</article|report|book>
1409 % \paragraph{Floats on a text page}
1411 % \begin{macro}{\floatsep}
1412 % \begin{macro}{\textfloatsep}
1413 % \begin{macro}{\intextsep}
1414 % When a floating object is placed on a page with text, these
1415 % parameters control the separation between the float and the other
1416 % objects on the page. These parameters are used for both
1417 % one-column mode and single-column floats in two-column mode.
1419 % |\floatsep| is the space between adjacent floats that are moved
1420 % to the top or bottom of the text page.
1422 % |\textfloatsep| is the space between the main text and floats
1423 % at the top or bottom of the page.
1425 % |\intextsep| is the space between in-text floats and the text.
1428 \setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
1429 \setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
1430 \setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
1433 \setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
1434 \setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
1435 \setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
1438 \setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@}
1439 \setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
1440 \setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@}
1447 % \begin{macro}{\dblfloatsep}
1448 % \begin{macro}{\dbltextfloatsep}
1449 % When floating objects that span the whole |\textwidth| are placed
1450 % on a text page when we are in twocolumn mode the separation
1451 % between the float and the text is controlled by |\dblfloatsep|
1452 % and |\dbltextfloatsep|.
1454 % |\dblfloatsep| is the space between adjacent floats that are moved
1455 % to the top or bottom of the text page.
1457 % |\dbltextfloatsep| is the space between the main text and floats
1458 % at the top or bottom of the page.
1462 \setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
1463 \setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
1466 \setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
1467 \setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
1470 \setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@}
1471 \setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
1477 % \paragraph{Floats on their own page or column}
1479 % \begin{macro}{\@fptop}
1480 % \begin{macro}{\@fpsep}
1481 % \begin{macro}{\@fpbot}
1482 % When floating objects are placed on separate pages the layout of
1483 % such pages is controlled by these parameters. At the top of the
1484 % page |\@fptop| amount of stretchable whitespace is inserted, at
1485 % the bottom of the page we get an |\@fpbot| amount of stretchable
1486 % whitespace. Between adjacent floats the |\@fpsep| is inserted.
1488 % These parameters are used for the placement of floating objects
1489 % in one column mode, or in single column floats in two column
1492 % Note that at least one of the two parameters |\@fptop| and
1493 % |\@fpbot| should contain a |plus ...fil| to allow filling the
1494 % remaining empty space.
1497 \setlength\@fptop{0\p@ \@plus 1fil}
1498 \setlength\@fpsep{8\p@ \@plus 2fil}
1499 \setlength\@fpbot{0\p@ \@plus 1fil}
1502 \setlength\@fptop{0\p@ \@plus 1fil}
1503 \setlength\@fpsep{8\p@ \@plus 2fil}
1504 \setlength\@fpbot{0\p@ \@plus 1fil}
1507 \setlength\@fptop{0\p@ \@plus 1fil}
1508 \setlength\@fpsep{10\p@ \@plus 2fil}
1509 \setlength\@fpbot{0\p@ \@plus 1fil}
1516 % \begin{macro}{\@dblfptop}
1517 % \begin{macro}{\@dblfpsep}
1518 % \begin{macro}{\@dblfpbot}
1519 % Double column floats in two column mode are handled with similar
1523 \setlength\@dblfptop{0\p@ \@plus 1fil}
1524 \setlength\@dblfpsep{8\p@ \@plus 2fil}
1525 \setlength\@dblfpbot{0\p@ \@plus 1fil}
1528 \setlength\@dblfptop{0\p@ \@plus 1fil}
1529 \setlength\@dblfpsep{8\p@ \@plus 2fil}
1530 \setlength\@dblfpbot{0\p@ \@plus 1fil}
1533 \setlength\@dblfptop{0\p@ \@plus 1fil}
1534 \setlength\@dblfpsep{10\p@ \@plus 2fil}
1535 \setlength\@dblfpbot{0\p@ \@plus 1fil}
1537 %<*article|report|book>
1543 % \subsection{Page Styles}
1545 % The page style \pstyle{foo} is defined by defining the command
1546 % |\ps@foo|. This command should make only local definitions.
1547 % There should be no stray spaces in the definition, since they
1548 % could lead to mysterious extra spaces in the output (well, that's
1549 % something that should be always avoided).
1551 % \begin{macro}{\@evenhead}
1552 % \begin{macro}{\@oddhead}
1553 % \begin{macro}{\@evenfoot}
1554 % \begin{macro}{\@oddfoot}
1555 % The |\ps@...| command defines the macros |\@oddhead|,
1556 % |\@oddfoot|, |\@evenhead|, and |\@evenfoot| to define the running
1557 % heads and feet---e.g., |\@oddhead| is the macro to produce the
1558 % contents of the heading box for odd-numbered pages. It is called
1559 % inside an |\hbox| of width |\textwidth|.
1565 % \subsubsection{Marking conventions}
1567 % To make headings determined by the sectioning commands, the page
1568 % style defines the commands |\chaptermark|, |\sectionmark|,
1570 % where |\chaptermark{|\meta{TEXT}|}| is called by
1571 % |\chapter| to set a mark, and so on.
1573 % The |\...mark| commands and the |\...head| macros are defined
1574 % with the help of the following macros. (All the |\...mark|
1575 % commands should be initialized to no-ops.)
1577 % \LaTeX{} extends \TeX's |\mark| facility by producing two kinds
1578 % of marks, a `left' and a `right' mark, using the following
1581 % |\markboth{|\meta{LEFT}|}{|\meta{RIGHT}|}|: Adds both marks.
1583 % |\markright{|\meta{RIGHT}|}|: Adds a `right' mark.
1585 % |\leftmark|: Used in the |\@oddhead|, |\@oddfoot|, |\@evenhead|
1586 % or |\@evenfoot| macros, it gets the current `left'
1587 % mark. |\leftmark| works like \TeX's |\botmark|
1590 % |\rightmark|: Used in the |\@oddhead|, |\@oddfoot|, |\@evenhead|
1591 % or |\@evenfoot| macros, it gets the current
1592 % `right' mark. |\rightmark| works like \TeX's
1593 % |\firstmark| command.
1596 % The marking commands work reasonably well for right marks
1597 % `numbered within' left marks---e.g., the left mark is changed by a
1598 % |\chapter| command and the right mark is changed by a |\section|
1599 % command. However, it does produce somewhat anomalous results if
1600 % two |\markboth|'s occur on the same page.
1603 % Commands like |\tableofcontents| that should set the marks in some
1604 % page styles use a |\@mkboth| command, which is |\let| by the
1605 % pagestyle command (|\ps@...|) to |\markboth| for setting the
1606 % heading or to |\@gobbletwo| to do nothing.
1609 % \subsubsection{Defining the page styles}
1610 % \label{sec:classes:pagestyle}
1612 % The pagestyles \pstyle{empty} and \pstyle{plain} are defined in
1615 % \begin{macro}{\ps@headings}
1616 % The definition of the page style \pstyle{headings} has to be
1617 % different for two sided printing than it is for one sided
1624 % The running feet are empty in this page style, the running head
1625 % contains the page number and one of the marks.
1627 \let\@oddfoot\@empty\let\@evenfoot\@empty
1628 \def\@evenhead{\thepage\hfil\slshape\leftmark}%
1629 \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
1632 % When using this page style, the contents of the running head is
1633 % determined by the chapter and section titles. So we |\let|
1634 % |\@mkboth| to |\markboth|.
1636 \let\@mkboth\markboth
1639 % For the article document class we define |\sectionmark| to clear
1640 % the right mark and put the number of the section (when it is
1641 % numbered) and its title in the left mark. The rightmark is set by
1642 % |\subsectionmark| to contain the subsection titles.
1644 % Note the use of |##1| for the parameter of the |\sectionmark|
1645 % command, which will be defined when |\ps@headings| is executed.
1647 % \changes{v1.2z}{1995/04/03}{Removed extra dot after \cs{thesection}
1649 % \changes{v1.3c}{1995/05/25}{Replace \cs{hskip}
1650 % \texttt{1em}\cs{relax} with \cs{quad}}
1653 \def\sectionmark##1{%
1654 \markboth {\MakeUppercase{%
1655 \ifnum \c@secnumdepth >\z@
1659 \def\subsectionmark##1{%
1661 \ifnum \c@secnumdepth >\@ne
1668 % In the report and book document classes we use the |\chaptermark|
1669 % and |\sectionmark| macros to fill the running heads.
1671 % Note the use of |##1| for the parameter of the |\chaptermark|
1672 % command, which will be defined when |\ps@headings| is executed.
1676 \def\chaptermark##1{%
1677 \markboth {\MakeUppercase{%
1678 \ifnum \c@secnumdepth >\m@ne
1679 %<book> \if@mainmatter
1680 \@chapapp\ \thechapter. \ %
1684 \def\sectionmark##1{%
1685 \markright {\MakeUppercase{%
1686 \ifnum \c@secnumdepth >\z@
1693 % The definition of |\ps@headings| for one sided printing can be
1694 % much simpler, because we treat even and odd pages the same.
1695 % Therefore we don't need to define |\@even...|.
1699 \let\@oddfoot\@empty
1700 \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
1701 \let\@mkboth\markboth
1703 % We use |\markright| now instead of |\markboth| as we did for two
1707 \def\sectionmark##1{%
1708 \markright {\MakeUppercase{%
1709 \ifnum \c@secnumdepth >\m@ne
1718 \def\chaptermark##1{%
1719 \markright {\MakeUppercase{%
1720 \ifnum \c@secnumdepth >\m@ne
1721 %<book> \if@mainmatter
1722 \@chapapp\ \thechapter. \ %
1731 % \begin{macro}{\ps@myheadings}
1732 % The definition of the page style \pstyle{myheadings} is fairly
1733 % simple because the user determines the contents of the running
1734 % head himself by using the |\markboth| and |\markright| commands.
1737 \def\ps@myheadings{%
1738 \let\@oddfoot\@empty\let\@evenfoot\@empty
1739 \def\@evenhead{\thepage\hfil\slshape\leftmark}%
1740 \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
1743 % We have to make sure that the marking commands that are used by
1744 % the chapter and section headings are disabled. We do this
1745 % |\let|ting them to a macro that gobbles its argument(s).
1747 \let\@mkboth\@gobbletwo
1748 %<!article> \let\chaptermark\@gobble
1749 \let\sectionmark\@gobble
1750 %<article> \let\subsectionmark\@gobble
1755 % \section{Document Markup}
1757 % \subsection{The title}
1759 % \begin{macro}{\title}
1760 % \begin{macro}{\author}
1761 % \begin{macro}{\date}
1762 % These three macros are provided by \file{latex.dtx} to provide
1763 % information about the title, author(s) and date of the document.
1764 % The information is stored away in internal control sequences.
1765 % It is the task of the |\maketitle| command to use the
1766 % information provided. The definitions of these macros are shown
1767 % here for information.
1769 % \newcommand*{\title}[1]{\gdef\@title{#1}}
1770 % \newcommand*{\author}[1]{\gdef\@author{#1}}
1771 % \newcommand*{\date}[1]{\gdef\@date{#1}}
1773 % The |\date| macro gets today's date by default.
1781 % \begin{macro}{\maketitle}
1782 % The definition of |\maketitle| depends on whether a separate
1783 % title page is made. This is the default for the report and book
1784 % document classes, but for the article class it is optional.
1786 % When we are making a title page, we locally redefine
1787 % |\footnotesize| and |footnoterule| to change the appearance of
1788 % the footnotes that are produced by the |\thanks| command;
1789 % these changes affect all footnotes.
1790 % \changes{v1.3o}{1995/11/02}{(CAR) Make \cs{footnote} always work in
1794 \newcommand\maketitle{\begin{titlepage}%
1795 \let\footnotesize\small
1796 \let\footnoterule\relax
1797 \let \footnote \thanks
1799 % We center the entire title vertically; the centering is set off a
1800 % little by adding a |\vskip|. (In compatibility mode the pagenumber
1801 % is set to 0 by the titlepage environment to keep the behaviour
1802 % of \LaTeX\ 2.09 style files.)
1803 % \changes{v1.0g}{1993/12/09}{Removed the setting of the page number,
1804 % when not in compatibility mode}
1805 % \changes{v1.2c}{1994/03/17}{Removed setting of page number, now done
1806 % in titlepage environment}
1811 % Then we set the title, in a |\LARGE| font; leave a little space
1812 % and set the author(s) in a |\large| font. We do this inside a
1813 % tabular environment to get them in a single column.
1814 % Before the date we leave a little whitespace again.
1817 {\LARGE \@title \par}%
1821 \begin{tabular}[t]{c}%
1825 {\large \@date \par}% % Set date in \large size.
1828 % Then we call |\@thanks| to print the information that goes into
1829 % the footnote and finish the page.
1835 % We reset the \Lcount{footnote} counter, disable |\thanks| and
1836 % |\maketitle| and save some storage space by emptying the internal
1837 % information macros.
1838 % \changes{v1.3j}{1995/08/16}{use \cs{let} to save space}
1839 % \changes{v1.3n}{1995/10/29}{Empty \cs{@date} as well}
1841 \setcounter{footnote}{0}%
1842 \global\let\thanks\relax
1843 \global\let\maketitle\relax
1844 \global\let\@thanks\@empty
1845 \global\let\@author\@empty
1846 \global\let\@date\@empty
1847 \global\let\@title\@empty
1849 % After the title is set the declaration commands |\title|, etc.\
1851 % The definition of |\and| makes only sense within the argument of
1852 % |\author| so this can go as well.
1853 % \changes{v1.3k}{1995/08/27}{Disable \cs{title} and similar decls}
1855 \global\let\title\relax
1856 \global\let\author\relax
1857 \global\let\date\relax
1858 \global\let\and\relax
1861 % When the title is not on a page of its own, the layout of the
1862 % title is a little different. We use symbols to mark the footnotes
1863 % and we have to deal with two column documents.
1865 % Therefore we first start a new group to keep changes local. Then
1866 % we redefine |\thefootnote| to use |\fnsymbol|; and change
1867 % |\@makefnmark| so that footnotemarks have zero width (to make the
1868 % centering of the author names look better).
1869 % \changes{v1.2s}{1994/06/02}{Reset \cs{@makefntext}}
1870 % \changes{v1.3a}{1995/05/17}{Use \cs{@makefnmark} in definition of
1872 % \changes{v1.3g}{1995/06/26}{Fix definition of \cs{@makefnmark} and
1873 % \cs{@makefntext} to a) work and b) without using math}
1876 \newcommand\maketitle{\par
1878 \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
1879 \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
1880 \long\def\@makefntext##1{\parindent 1em\noindent
1882 \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
1884 % If this is a twocolumn document we start a new page in twocolumn
1885 % mode, with the title set to the full width of the text. The
1886 % actual printing of the title information is left to
1888 % \changes{v1.2k}{1994/05/06}{Added check on number of columns in use
1892 \ifnum \col@number=\@ne
1895 \twocolumn[\@maketitle]%
1899 % When this is not a twocolumn document we just start a new page,
1900 % prevent floating objects from appearing on the top of this page
1901 % and print the title information.
1904 \global\@topnum\z@ % Prevents figures from going at top of page.
1908 % This page gets a \pstyle{plain} layout. We call |\@thanks| to
1909 % produce the footnotes.
1911 \thispagestyle{plain}\@thanks
1913 % Now we can close the group, reset the \Lcount{footnote} counter,
1914 % disable |\thanks|, |\maketitle| and |\@maketitle| and save some
1915 % storage space by emptying the internal information macros.
1916 % \changes{v1.3j}{1995/08/16}{use \cs{let} to save space}
1917 % \changes{v1.3k}{1995/08/27}{Disable \cs{title} and similar decls}
1918 % \changes{v1.3n}{1995/10/29}{Empty \cs{@date} as well}
1921 \setcounter{footnote}{0}%
1922 \global\let\thanks\relax
1923 \global\let\maketitle\relax
1924 \global\let\@maketitle\relax
1925 \global\let\@thanks\@empty
1926 \global\let\@author\@empty
1927 \global\let\@date\@empty
1928 \global\let\@title\@empty
1929 \global\let\title\relax
1930 \global\let\author\relax
1931 \global\let\date\relax
1932 \global\let\and\relax
1937 % \begin{macro}{\@maketitle}
1938 % This macro takes care of formatting the title information when we
1939 % have no separate title page.
1941 % We always start a new page, leave some white space and center the
1942 % information. The title is set in a |\LARGE| font, the author
1943 % names and the date in a |\large| font.
1944 % \changes{v1.3o}{1995/11/02}{(CAR) Make \cs{footnote} always work in
1952 \let \footnote \thanks
1953 {\LARGE \@title \par}%
1957 \begin{tabular}[t]{c}%
1969 % \subsection{Chapters and Sections}
1971 % \subsubsection{Building blocks} The definitions in this part of the
1972 % class file make use of two internal macros, |\@startsection| and
1973 % |\secdef|. To understand
1974 % what is going on here, we describe their syntax.
1976 % The macro |\@startsection| has 6 required arguments, optionally
1977 % followed by a $*$, an optional argument and a required argument:
1979 % |\@startsection|\meta{name}\meta{level}\meta{indent}^^A
1980 % \meta{beforeskip}\meta{afterskip}\meta{style}
1982 % \null\hphantom{\bslash @startsection}^^A
1983 % |[|\meta{altheading}|]|\meta{heading}
1985 % It is a generic command to start a section, the arguments have
1986 % the following meaning:
1988 % \begin{description}
1989 % \item[\meta{name}] The name of the user level command, e.g.,
1991 % \item[\meta{level}] A number, denoting the depth of the section
1992 % -- e.g., chapter=1, section = 2, etc. A section number
1993 % will be printed if and only if \meta{level} $<=$ the value
1994 % of the \Lcount{secnumdepth} counter.
1995 % \item[\meta{indent}] The indentation of the heading from the left
1997 % \item[\meta{beforeskip}] The absolute value of this argument
1998 % gives the skip to leave above the heading. If it is
1999 % negative, then the paragraph indent of the text following
2000 % the heading is suppressed.
2001 % \item[\meta{afterskip}] If positive, this gives the skip to leave
2002 % below the heading, else it gives the skip to leave to the
2003 % right of a run-in heading.
2004 % \item[\meta{style}] Commands to set the style of the heading.
2005 % \item[$*$] When this is missing the heading is numbered and the
2006 % corresponding counter is incremented.
2007 % \item[\meta{altheading}] Gives an alternative heading to use in
2008 % the table of contents and in the running heads. This should
2009 % not be present when the $*$ form is used.
2010 % \item[\meta{heading}] The heading of the new section.
2012 % A sectioning command is normally defined to |\@startsection| and
2013 % its first six arguments.
2015 % The macro |\secdef| can be used when a sectioning command is
2016 % defined without using |\@startsection|. It has two arguments:
2018 % |\secdef|\meta{unstarcmds}\meta{starcmds}
2020 % \begin{description}
2021 % \item[\meta{unstarcmds}] Used for the normal form of the
2022 % sectioning command.
2023 % \item[\meta{starcmds}] Used for the $*$-form of the
2024 % sectioning command.
2027 % You can use |\secdef| as follows:
2029 % \def\chapter { ... \secdef \CMDA \CMDB }
2030 % \def\CMDA [#1]#2{ ... } % Command to define
2031 % % \chapter[...]{...}
2032 % \def\CMDB #1{ ... } % Command to define
2036 % \subsubsection{Mark commands}
2038 % \begin{macro}{\chaptermark}
2039 % \begin{macro}{\sectionmark}
2040 % \begin{macro}{\subsectionmark}
2041 % \begin{macro}{\subsubsectionmark}
2042 % \begin{macro}{\paragraphmark}
2043 % \begin{macro}{\subparagraphmark}
2044 % Default initializations of |\...mark| commands. These commands
2045 % are used in the definition of the page styles (see
2046 % section~\ref{sec:classes:pagestyle}) Most of them are already defined by
2047 % \file{latex.dtx}, so they are only shown here.
2050 %<!article>\newcommand*\chaptermark[1]{}
2051 % \newcommand*\sectionmark[1]{}
2052 % \newcommand*\subsectionmark[1]{}
2053 % \newcommand*\subsubsectionmark[1]{}
2054 % \newcommand*\paragraphmark[1]{}
2055 % \newcommand*\subparagraphmark[1]{}
2064 % \subsubsection{Define Counters}
2066 % \begin{macro}{\c@secnumdepth}
2067 % The value of the counter \Lcount{secnumdepth} gives the depth of
2068 % the highest-level sectioning command that is to produce section
2071 %<article>\setcounter{secnumdepth}{3}
2072 %<!article>\setcounter{secnumdepth}{2}
2076 % \begin{macro}{\c@part}
2077 % \begin{macro}{\c@chapter}
2078 % \begin{macro}{\c@section}
2079 % \begin{macro}{\c@subsection}
2080 % \begin{macro}{\c@subsubsection}
2081 % \begin{macro}{\c@paragraph}
2082 % \begin{macro}{\c@subparagraph}
2083 % These counters are used for the section numbers. The macro\\
2084 % |\newcounter{|\meta{newctr}|}[|\meta{oldctr}|]|\\
2085 % defines\meta{newctr} to be a counter, which is reset to zero when
2086 % counter \meta{oldctr} is stepped. Counter \meta{oldctr} must
2087 % already be defined.
2091 %<article>\newcounter {section}
2093 \newcounter {chapter}
2094 \newcounter {section}[chapter]
2096 \newcounter {subsection}[section]
2097 \newcounter {subsubsection}[subsection]
2098 \newcounter {paragraph}[subsubsection]
2099 \newcounter {subparagraph}[paragraph]
2109 % \begin{macro}{\thepart}
2110 % \begin{macro}{\thechapter}
2111 % \begin{macro}{\thesection}
2112 % \begin{macro}{\thesubsection}
2113 % \begin{macro}{\thesubsubsection}
2114 % \begin{macro}{\theparagraph}
2115 % \begin{macro}{\thesubparagraph}
2116 % For any counter \Lcount{CTR}, |\theCTR| is a macro that defines
2117 % the printed version of counter \Lcount{CTR}. It is defined in
2118 % terms of the following macros:
2120 % |\arabic{|\Lcount{COUNTER}|}| prints the value of
2121 % \Lcount{COUNTER} as an arabic numeral.
2123 % |\roman{|\Lcount{COUNTER}|}| prints the value of
2124 % \Lcount{COUNTER} as a lowercase roman numberal.
2126 % |\Roman{|\Lcount{COUNTER}|}| prints the value of
2127 % \Lcount{COUNTER} as an uppercase roman numberal.
2129 % |\alph{|\Lcount{COUNTER}|}| prints the value of \Lcount{COUNTER}
2130 % as a lowercase letter: $1 =$~a, $2 =$~ b, etc.
2132 % |\Alph{|\Lcount{COUNTER}|}| prints the value of \Lcount{COUNTER}
2133 % as an uppercase letter: $1 =$~A, $2 =$~B, etc.
2135 % Actually to save space the internal counter repesentations
2136 % and the commands operating on those are used.
2138 \renewcommand \thepart {\@Roman\c@part}
2139 %<article>\renewcommand \thesection {\@arabic\c@section}
2141 \renewcommand \thechapter {\@arabic\c@chapter}
2142 \renewcommand \thesection {\thechapter.\@arabic\c@section}
2144 \renewcommand\thesubsection {\thesection.\@arabic\c@subsection}
2145 \renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}
2146 \renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}
2147 \renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
2157 % \begin{macro}{\@chapapp}
2158 % |\@chapapp| is initially defined to be `|\chaptername|'. The
2159 % |\appendix| command redefines it to be `|\appendixname|'.
2162 %<report|book>\newcommand\@chapapp{\chaptername}
2166 % \subsubsection{Front Matter, Main Matter, and Back Matter}
2168 % A book contains these three (logical) sections. The switch
2169 % |\@mainmatter| is true iff we are processing Main Matter. When
2170 % this switch is false, the |\chapter| command does not print
2173 % Here we define the commands that start these sections.
2174 % \begin{macro}{\frontmatter}
2175 % This command starts Roman page numbering and turns off chapter
2176 % numbering. Since this restarts the page numbering from 1, it
2177 % should also ensure that a recto page is used.
2178 % \changes{v1.3r}{1996/05/26}{Make this command react to the option
2180 % \changes{v1.3y}{1998/05/05}{Two years on: Make this command not
2181 % react to the option \texttt{openany} as this makes the
2182 % verso/recto numbering wrong: see pr/2754 for discussion}
2185 \newcommand\frontmatter{%
2192 \pagenumbering{roman}}
2196 % \begin{macro}{\mainmatter}
2197 % This command clears the page, starts arabic page numbering and
2198 % turns on chapter numbering. Since this restarts the page numbering
2199 % from 1, it should also ensure that a recto page is used.
2200 % \changes{v1.3r}{1996/05/26}{Make this command react to the option
2202 % \changes{v1.3y}{1998/05/05}{Two years on: Make this command not
2203 % react to the option \texttt{openany} as this makes the
2204 % verso/recto numbering wrong: see pr/2754 for discussion}
2206 \newcommand\mainmatter{%
2213 \pagenumbering{arabic}}
2217 % \begin{macro}{\backmatter}
2218 % This clears the page, turns off chapter numbering and leaves page
2219 % numbering unchanged.
2221 \newcommand\backmatter{%
2232 % \subsubsection{Parts}
2234 % \begin{macro}{\part}
2235 % The command to start a new part of our document.
2237 % In the article class the definition of |\part| is rather simple;
2238 % we start a new paragraph, add a little white space, suppress the
2239 % indentation of the first paragraph and make use of |\secdef|.
2240 % As in other sectioning commands (cf.\ |\@startsection| in the
2241 % {\LaTeXe} kernel), we need to check the |@noskipsec| switch and
2242 % force horizontal mode if it is set.
2243 % \changes{v1.4a}{1999/01/07}{Check \texttt{@noskipsec} switch and
2244 % possibly force horizontal mode; see PR/2889.}
2248 \if@noskipsec \leavevmode \fi
2252 \secdef\@part\@spart}
2256 % For the report and book classes we things a bit different.
2258 % We start a new (righthand) page and use the \pstyle{plain}
2260 % \changes{v1.3r}{1996/05/26}{Make this command react to the option
2270 \thispagestyle{plain}%
2272 % When we are making a two column document, this will be a one
2273 % column page. We use |@tempswa| to remember to switch back to two
2283 % We need an empty box to prevent the fil glue from disappearing.
2284 % \changes{v1.3j}{1995/08/16}{Replace \cs{hbox} by \cs{null}}
2288 % Here we use |\secdef| to indicate which commands to use to make
2289 % the actual heading.
2291 \secdef\@part\@spart}
2295 % \begin{macro}{\@part}
2296 % This macro does the actual formatting of the title of the part.
2297 % Again the macro is differently defined for the article document
2298 % class than for the document classes report and book.
2300 % When \Lcount{secnumdepth} is larger than $-1$ for the
2301 % document class article, we have a numbered
2302 % part, otherwise it is unnumbered.
2306 \ifnum \c@secnumdepth >\m@ne
2307 \refstepcounter{part}%
2308 \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
2310 \addcontentsline{toc}{part}{#1}%
2313 % We print the title flush left in the article class.
2314 % Also we prevent breaking between lines and reset the font.
2315 % \changes{v1.3c}{1995/05/25}{replace \cs{reset@font} with
2318 {\parindent \z@ \raggedright
2319 \interlinepenalty \@M
2322 % When this is a numbered part we have to print the number and the
2323 % title. The |\nobreak| should prevent a page break here.
2324 % \changes{v1.4e}{2001/05/24}{Replaced tilde with \cs{nobreakspace}
2327 \ifnum \c@secnumdepth >\m@ne
2328 \Large\bfseries \partname\nobreakspace\thepart
2333 % Now we empty the mark registers, leave some white space and let
2334 % |\@afterheading| take care of suppressing the indentation.
2343 % When \Lcount{secnumdepth} is larger than $-2$ for the
2344 % document class report and book, we have a numbered
2345 % part, otherwise it is unnumbered.
2349 \ifnum \c@secnumdepth >-2\relax
2350 \refstepcounter{part}%
2351 \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
2353 \addcontentsline{toc}{part}{#1}%
2356 % We empty the mark registers and center the title on the page in the
2357 % report and book document classes.
2358 % Also we prevent breaking between lines and reset the font.
2359 % \changes{v1.3c}{1995/05/25}{replace \cs{reset@font} with
2361 % \changes{v1.3j}{1995/08/16}{add missing percent}
2365 \interlinepenalty \@M
2368 % When this is a numbered part we have to print the number.
2369 % \changes{v1.4e}{2001/05/24}{Replaced tilde with \cs{nobreakspace}
2372 \ifnum \c@secnumdepth >-2\relax
2373 \huge\bfseries \partname\nobreakspace\thepart
2376 % We leave some space before we print the title and leave the
2377 % finishing up to |\@endpart|.
2381 \Huge \bfseries #2\par}%
2387 % \begin{macro}{\@spart}
2388 % This macro does the actual formatting of the title of the part
2389 % when the star form of the user command was used. In this case we
2390 % \emph{never} print a number. Otherwise the formatting is the
2393 % The differences between the definition of this macro in the
2394 % article document class and in the report and book document
2395 % classes are similar as they were for |\@part|.
2396 % \changes{v1.3c}{1995/05/25}{replace \cs{reset@font} with
2401 {\parindent \z@ \raggedright
2402 \interlinepenalty \@M
2404 \huge \bfseries #1\par}%
2412 \interlinepenalty \@M
2414 \Huge \bfseries #1\par}%
2420 % \begin{macro}{\@endpart}
2421 % \changes{v1.3j}{1995/08/16}{move docstrip guard to avoid defining
2422 % \cs{@endpart} in article}
2423 % This macro finishes the part page, for both |\@part| and
2426 % First we fill the current page.
2429 \def\@endpart{\vfil\newpage
2431 % Then, when we are in twosided mode and chapters are supposed to
2432 % be on right hand sides, we produce a completely blank page.
2433 % \changes{v1.4b}{2000/05/19}{Only add empty page after part if
2434 % twoside and openright (pr/3155)}
2439 \thispagestyle{empty}%
2444 % When this was a two column document we have to switch back to two
2455 % \subsubsection{Chapters}
2457 % \begin{macro}{\chapter}
2458 % A chapter should always start on a new page therefore we start by
2459 % calling |\clearpage| and setting the pagestyle for this page to
2463 \newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
2464 \thispagestyle{plain}%
2466 % Then we prevent floats from appearing at the top of this page
2467 % because it looks weird to see a floating object above a chapter
2472 % Then we suppress the indentation of the first paragraph by
2473 % setting the switch |\@afterindent| to |false|. We use |\secdef|
2474 % to specify the macros to use for actually setting the chapter
2478 \secdef\@chapter\@schapter}
2481 % \begin{macro}{\@chapter}
2482 % This macro is called when we have a numbered chapter. When
2483 % \Lcount{secnumdepth} is larger than $-1$ and, in the book
2484 % class, |\@mainmatter| is true, we display the chapter
2485 % number. We also inform the user that a new chapter is about to be
2486 % typeset by writing a message to the terminal.
2488 \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
2489 %<book> \if@mainmatter
2490 \refstepcounter{chapter}%
2491 \typeout{\@chapapp\space\thechapter.}%
2492 \addcontentsline{toc}{chapter}%
2493 {\protect\numberline{\thechapter}#1}%
2496 \addcontentsline{toc}{chapter}{#1}%
2500 \addcontentsline{toc}{chapter}{#1}%
2503 % After having written an entry to the table of contents we store
2504 % the (alternative) title of this chapter with |\chaptermark| and
2505 % add some white space to the lists of figures and tables.
2508 \addtocontents{lof}{\protect\addvspace{10\p@}}%
2509 \addtocontents{lot}{\protect\addvspace{10\p@}}%
2511 % Then we call upon |\@makechapterhead| to format the actual
2512 % chapter title. We have to do this in a special way when we are in
2513 % twocolumn mode in order to have the chapter title use the entire
2514 % |\textwidth|. In one column mode we call |\@afterheading| which
2515 % takes care of suppressing the indentation.
2518 \@topnewpage[\@makechapterhead{#2}]%
2520 \@makechapterhead{#2}%
2525 % \begin{macro}{\@makechapterhead}
2526 % The macro above uses |\@makechapterhead|\meta{text} to format the
2527 % heading of the chapter.
2529 % We begin by leaving some white space. The we open a group in
2530 % which we have a paragraph indent of 0pt, and in which we have the
2531 % text set ragged right. We also reset the font.
2532 % \changes{v1.3c}{1995/05/25}{replace \cs{reset@font} with
2535 \def\@makechapterhead#1{%
2537 {\parindent \z@ \raggedright \normalfont
2539 % Then we check whether the number of the chapter has to be printed.
2540 % If so we leave some whitespace between the chapternumber and its
2542 % \changes{v1.2v}{1994/11/30}{Added a \cs{nobreak} to prevent a
2543 % pagebreak between the chapternumber and the chaptertitle}
2544 % \changes{v1.3j}{1995/08/16}{replace braces by \cs{space}}
2546 \ifnum \c@secnumdepth >\m@ne
2547 %<book> \if@mainmatter
2548 \huge\bfseries \@chapapp\space \thechapter
2554 % Now we set the title in a large bold font. We prevent a pagebreak
2555 % from occurring in the middle of or after the title. Finally we
2556 % leave some whitespace before the text begins.
2557 % \changes{v1.2v}{1994/11/30}{Added \cs{interlinepenalty}\cs{@M} to
2558 % prevent a pagebreak in the middle of a title}
2560 \interlinepenalty\@M
2561 \Huge \bfseries #1\par\nobreak
2568 % \begin{macro}{\@schapter}
2569 % This macro is called when we have an unnumbered chapter. It is
2570 % much simpler than |\@chapter| because it only needs to typeset
2571 % the chapter title.
2573 \def\@schapter#1{\if@twocolumn
2574 \@topnewpage[\@makeschapterhead{#1}]%
2576 \@makeschapterhead{#1}%
2581 % \begin{macro}{\@makeschapterhead}
2582 % The macro above uses |\@makeschapterhead|\meta{text}to format
2583 % the heading of the chapter. It is similar to |\@makechapterhead|
2584 % except that it never has to print a chapter number.
2586 % \changes{v1.2v}{1994/11/30}{Added \cs{interlinepenalty}\cs{@M} to
2587 % prevent a pagebreak in the middle of a title}
2588 % \changes{v1.3c}{1995/05/25}{replace \cs{reset@font} with
2591 \def\@makeschapterhead#1{%
2593 {\parindent \z@ \raggedright
2595 \interlinepenalty\@M
2596 \Huge \bfseries #1\par\nobreak
2606 % \subsubsection{Lower level headings}
2608 % These commands all make use of |\@startsection|.
2609 % \begin{macro}{\section}
2610 % This gives a normal heading with white space above and below the
2611 % heading, the title set in |\Large\bfseries|, and no indentation
2612 % on the first paragraph.
2613 % \changes{v1.3c}{1995/05/25}{replace \cs{reset@font} with
2616 \newcommand\section{\@startsection {section}{1}{\z@}%
2617 {-3.5ex \@plus -1ex \@minus -.2ex}%
2619 {\normalfont\Large\bfseries}}
2623 % \begin{macro}{\subsection}
2624 % This gives a normal heading with white space above and below the
2625 % heading, the title set in |\large\bfseries|, and no indentation
2626 % on the first paragraph.
2628 \newcommand\subsection{\@startsection{subsection}{2}{\z@}%
2629 {-3.25ex\@plus -1ex \@minus -.2ex}%
2630 {1.5ex \@plus .2ex}%
2631 {\normalfont\large\bfseries}}
2635 % \begin{macro}{\subsubsection}
2636 % This gives a normal heading with white space above and below the
2637 % heading, the title set in |\normalsize\bfseries|, and no
2638 % indentation on the first paragraph.
2640 \newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
2641 {-3.25ex\@plus -1ex \@minus -.2ex}%
2642 {1.5ex \@plus .2ex}%
2643 {\normalfont\normalsize\bfseries}}
2647 % \begin{macro}{\paragraph}
2648 % This gives a run-in heading with white space above and to the
2649 % right of the heading, the title set in |\normalsize\bfseries|.
2651 \newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
2652 {3.25ex \@plus1ex \@minus.2ex}%
2654 {\normalfont\normalsize\bfseries}}
2658 % \begin{macro}{\subparagraph}
2659 % This gives an indented run-in heading with white space above and
2660 % to the right of the heading, the title set in
2661 % |\normalsize\bfseries|.
2663 \newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
2664 {3.25ex \@plus1ex \@minus .2ex}%
2666 {\normalfont\normalsize\bfseries}}
2670 % \subsection{Lists}
2672 % \subsubsection{General List Parameters}
2674 % The following commands are used to set the default values for the list
2675 % environment's parameters. See the \LaTeX{} manual for an explanation
2676 % of the meanings of the parameters. Defaults for the list
2677 % environment are set as follows. First, |\rightmargin|,
2678 % |\listparindent| and |\itemindent| are set to 0pt. Then, for a Kth
2679 % level list, the command |\@listK| is called, where `K' denotes `i',
2680 % '`i', ... , `vi'. (I.e., |\@listiii| is called for a third-level
2681 % list.) By convention, |\@listK| should set |\leftmargin| to
2684 % \begin{macro}{\leftmargin}
2685 % \begin{macro}{\leftmargini}
2686 % \begin{macro}{\leftmarginii}
2687 % \begin{macro}{\leftmarginiii}
2688 % \begin{macro}{\leftmarginiv}
2689 % \begin{macro}{\leftmarginv}
2690 % \begin{macro}{\leftmarginvi}
2691 % \changes{v1.0m}{1994/01/12}{Use em instead of pt to remain
2692 % compatible with old styles}
2693 % \changes{v1.3q}{1995/12/20}{Temporary(?) fix: revert to setting
2694 % \cs{leftmargin} at outer level}
2696 % When we are in two column mode some of the margins are set somewhat
2700 \setlength\leftmargini {2em}
2702 \setlength\leftmargini {2.5em}
2705 % Until the whole of the parameter setting in these files is
2706 % rationalised, we need to set the value of |\leftmargin| at this
2709 \leftmargin \leftmargini
2711 % The following three are calculated so that they are larger than
2712 % the sum of |\labelsep| and the width of the default labels (which
2713 % are `(m)', `vii.' and `M.').
2715 \setlength\leftmarginii {2.2em}
2716 \setlength\leftmarginiii {1.87em}
2717 \setlength\leftmarginiv {1.7em}
2719 \setlength\leftmarginv {.5em}
2720 \setlength\leftmarginvi {.5em}
2722 \setlength\leftmarginv {1em}
2723 \setlength\leftmarginvi {1em}
2734 % \begin{macro}{\labelsep}
2735 % \begin{macro}{\labelwidth}
2736 % \changes{v1.0m}{1994/01/12}{Use em instead of pt to remain
2737 % compatible with old styles}
2738 % |\labelsep| is the distance between the label and the text of an
2739 % item; |\labelwidth| is the width of the label.
2741 \setlength \labelsep {.5em}
2742 \setlength \labelwidth{\leftmargini}
2743 \addtolength\labelwidth{-\labelsep}
2748 % \begin{macro}{\partopsep}
2749 % When the user leaves a blank line before the environment an extra
2750 % vertical space of |\partopsep| is inserted, in addition to
2751 % |\parskip| and |\topsep|.
2752 % \changes{v1.0m}{1994/01/12}{\cs{partopsep} should be different,
2753 % depending on the pointsize}
2755 %</article|report|book>
2756 %<10pt>\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@}
2757 %<11pt>\setlength\partopsep{3\p@ \@plus 1\p@ \@minus 1\p@}
2758 %<12pt>\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@}
2762 % \begin{macro}{\@beginparpenalty}
2763 % \begin{macro}{\@endparpenalty}
2764 % These penalties are inserted before and after a list or paragraph
2765 % environment. They are set to a bonus value to encourage page
2766 % breaking at these points.
2767 % \begin{macro}{\@itempenalty}
2768 % This penalty is inserted between list items.
2770 %<*article|report|book>
2771 \@beginparpenalty -\@lowpenalty
2772 \@endparpenalty -\@lowpenalty
2773 \@itempenalty -\@lowpenalty
2774 %</article|report|book>
2780 % \begin{macro}{\@listi}
2781 % \begin{macro}{\@listI}
2782 % |\@listi| defines the values of
2783 % |\leftmargin|, |\parsep|, |\topsep|, |\itemsep|, etc.\ for the
2784 % lists that appear on top-level. Its definition is modified by the
2785 % font-size commands (eg within |\small| the list parameters get
2786 % ``smaller'' values).
2788 % For this reason \@listI is defined to hold a saved copy of \@listi
2789 % so that |\normalsize| can switch all parameters back.
2793 \def\@listi{\leftmargin\leftmargini
2795 \parsep 4\p@ \@plus2\p@ \@minus\p@
2796 \topsep 8\p@ \@plus2\p@ \@minus4\p@
2797 \itemsep4\p@ \@plus2\p@ \@minus\p@}
2800 \parsep 4.5\p@ \@plus2\p@ \@minus\p@
2801 \topsep 9\p@ \@plus3\p@ \@minus5\p@
2802 \itemsep4.5\p@ \@plus2\p@ \@minus\p@}
2805 \parsep 5\p@ \@plus2.5\p@ \@minus\p@
2806 \topsep 10\p@ \@plus4\p@ \@minus6\p@
2807 \itemsep5\p@ \@plus2.5\p@ \@minus\p@}
2811 % We initialise the parameters although strictly speaking that
2819 % \begin{macro}{\@listii}
2820 % \begin{macro}{\@listiii}
2821 % \begin{macro}{\@listiv}
2822 % \begin{macro}{\@listv}
2823 % \begin{macro}{\@listvi}
2824 % Here are the same macros for the higher level lists. Note that
2825 % they don't have saved versions and are not modified by the font
2826 % size commands. In other words this class assumes that nested
2827 % lists only appear in |\normalsize|, i.e.\ the main document size.
2829 \def\@listii {\leftmargin\leftmarginii
2830 \labelwidth\leftmarginii
2831 \advance\labelwidth-\labelsep
2833 \topsep 4\p@ \@plus2\p@ \@minus\p@
2834 \parsep 2\p@ \@plus\p@ \@minus\p@
2837 \topsep 4.5\p@ \@plus2\p@ \@minus\p@
2838 \parsep 2\p@ \@plus\p@ \@minus\p@
2841 \topsep 5\p@ \@plus2.5\p@ \@minus\p@
2842 \parsep 2.5\p@ \@plus\p@ \@minus\p@
2845 \def\@listiii{\leftmargin\leftmarginiii
2846 \labelwidth\leftmarginiii
2847 \advance\labelwidth-\labelsep
2848 %<10pt> \topsep 2\p@ \@plus\p@\@minus\p@
2849 %<11pt> \topsep 2\p@ \@plus\p@\@minus\p@
2850 %<12pt> \topsep 2.5\p@\@plus\p@\@minus\p@
2852 \partopsep \p@ \@plus\z@ \@minus\p@
2854 \def\@listiv {\leftmargin\leftmarginiv
2855 \labelwidth\leftmarginiv
2856 \advance\labelwidth-\labelsep}
2857 \def\@listv {\leftmargin\leftmarginv
2858 \labelwidth\leftmarginv
2859 \advance\labelwidth-\labelsep}
2860 \def\@listvi {\leftmargin\leftmarginvi
2861 \labelwidth\leftmarginvi
2862 \advance\labelwidth-\labelsep}
2871 % \subsubsection{Enumerate}
2873 % The enumerate environment uses four counters: \Lcount{enumi},
2874 % \Lcount{enumii}, \Lcount{enumiii} and \Lcount{enumiv}, where
2875 % \Lcount{enumN} controls the numbering of the Nth level
2878 % \begin{macro}{\theenumi}
2879 % \begin{macro}{\theenumii}
2880 % \begin{macro}{\theenumiii}
2881 % \begin{macro}{\theenumiv}
2882 % The counters are already defined in \file{latex.dtx}, but their
2883 % representation is changed here.
2886 %<*article|report|book>
2887 \renewcommand\theenumi{\@arabic\c@enumi}
2888 \renewcommand\theenumii{\@alph\c@enumii}
2889 \renewcommand\theenumiii{\@roman\c@enumiii}
2890 \renewcommand\theenumiv{\@Alph\c@enumiv}
2897 % \begin{macro}{\labelenumi}
2898 % \begin{macro}{\labelenumii}
2899 % \begin{macro}{\labelenumiii}
2900 % \begin{macro}{\labelenumiv}
2901 % The label for each item is generated by the commands\\
2902 % |\labelenumi| \ldots\ |\labelenumiv|.
2904 \newcommand\labelenumi{\theenumi.}
2905 \newcommand\labelenumii{(\theenumii)}
2906 \newcommand\labelenumiii{\theenumiii.}
2907 \newcommand\labelenumiv{\theenumiv.}
2914 % \begin{macro}{\p@enumii}
2915 % \begin{macro}{\p@enumiii}
2916 % \begin{macro}{\p@enumiv}
2917 % The expansion of |\p@enumN||\theenumN| defines the output of a
2918 % |\ref| command when referencing an item of the Nth level of an
2921 \renewcommand\p@enumii{\theenumi}
2922 \renewcommand\p@enumiii{\theenumi(\theenumii)}
2923 \renewcommand\p@enumiv{\p@enumiii\theenumiii}
2929 % \subsubsection{Itemize}
2931 % \begin{macro}{\labelitemi}
2932 % \begin{macro}{\labelitemii}
2933 % \changes{v1.2k}{1994/05/06}{Inserted \cs{normalfont}}
2934 % \changes{v1.3s}{1996/08/24}{Replaced -{}- with \cs{textendash}}
2935 % \changes{v1.3u}{1996/10/31}{Changed to \cs{textbullet},
2936 % \cs{textasteriskcentered} and \cs{textperiodcentered}}
2937 % \begin{macro}{\labelitemiii}
2938 % \begin{macro}{\labelitemiv}
2939 % Itemization is controlled by four commands: |\labelitemi|,
2940 % |\labelitemii|, |\labelitemiii|, and |\labelitemiv|, which define
2941 % the labels of thevarious itemization levels: the symbols used are
2942 % bullet, bold en-dash, centered asterisk and centred dot.
2945 \newcommand\labelitemi{\textbullet}
2946 \newcommand\labelitemii{\normalfont\bfseries \textendash}
2947 \newcommand\labelitemiii{\textasteriskcentered}
2948 \newcommand\labelitemiv{\textperiodcentered}
2955 % \subsubsection{Description}
2957 % \begin{environment}{description}
2958 % The description environment is defined here -- while the itemize
2959 % and enumerate environments are defined in \file{latex.dtx}.
2962 \newenvironment{description}
2963 {\list{}{\labelwidth\z@ \itemindent-\leftmargin
2964 \let\makelabel\descriptionlabel}}
2969 % \begin{macro}{\descriptionlabel}
2970 % To change the formatting of the label, you must redefine
2971 % |\descriptionlabel|.
2973 % \changes{v1.2k}{1994/05/06}{Inserted \cs{normalfont}}
2974 % \changes{v1.2y}{1995/01/31}{made command short}
2976 \newcommand*\descriptionlabel[1]{\hspace\labelsep
2977 \normalfont\bfseries #1}
2981 % \subsection{Defining new environments}
2983 % \subsubsection{Abstract}
2985 % \begin{environment}{abstract}
2986 % When we are producing a separate titlepage we also put the
2987 % abstract on a page of its own. It will be centred vertically on
2990 % Note that this environment is not defined for books.
2991 % \changes{v1.3e}{1995/06/19}{Added setting of \cs{@endparpenalty}
2992 % to avoid page break after abstract heading.}
2994 % \changes{v1.3m}{1995/10/23}{Added setting of \cs{beginparpenalty} to
2995 % discourage page break before abstract heading.}
2998 \newenvironment{abstract}{%
3001 \@beginparpenalty\@lowpenalty
3003 \bfseries \abstractname
3006 {\par\vfil\null\endtitlepage}
3008 % When we are not making a separate titlepage --the default for the
3009 % article document class-- we have to check if we are in twocolumn
3010 % mode. In that case the abstract is as a |\section*|, otherwise
3011 % the quotation environment is used to typeset the abstract.
3014 \newenvironment{abstract}{%
3016 \section*{\abstractname}%
3020 {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
3024 {\if@twocolumn\else\endquotation\fi}
3030 % \subsubsection{Verse}
3032 % \begin{environment}{verse}
3033 % The verse environment is defined by making clever use of the
3034 % list environment's parameters. The user types |\\| to end a line.
3035 % This is implemented by |\let|'ing |\\| equal |\@centercr|.
3037 % \changes{v1.3j}{1995/08/16}{stop \cs{item} scanning for [ with
3040 \newenvironment{verse}
3042 \list{}{\itemsep \z@
3044 \listparindent\itemindent
3045 \rightmargin \leftmargin
3046 \advance\leftmargin 1.5em}%
3052 % \subsubsection{Quotation}
3054 % \begin{environment}{quotation}
3055 % The quotation environment is also defined by making clever use of
3056 % the list environment's parameters. The lines in the environment
3057 % are set smaller than |\textwidth|. The first line of a paragraph
3058 % inside this environment is indented.
3060 % \changes{v1.3j}{1995/08/16}{stop \cs{item} scanning for [ with
3063 \newenvironment{quotation}
3064 {\list{}{\listparindent 1.5em%
3065 \itemindent \listparindent
3066 \rightmargin \leftmargin
3067 \parsep \z@ \@plus\p@}%
3073 % \subsubsection{Quote}
3075 % \begin{environment}{quote}
3076 % The quote environment is like the quotation environment except
3077 % that paragraphs are not indented.
3079 % \changes{v1.3j}{1995/08/16}{stop \cs{item} scanning for [ with
3082 \newenvironment{quote}
3083 {\list{}{\rightmargin\leftmargin}%
3089 % \subsubsection{Theorem}
3091 % This document class does not define it's own theorem environments,
3092 % the defaults, supplied by \file{latex.dtx} are available.
3094 % \subsubsection{Titlepage}
3096 % \begin{environment}{titlepage}
3097 % In the normal environments, the titlepage environment does nothing
3098 % but start and end a page, and inhibit page numbers. In the report
3099 % style, it also resets the page number to one, and then sets it
3100 % back to one at the end. In compatibility mode, it sets the
3101 % page number to zero. This is incorrect since it results in using
3102 % the page parameters for a right-hand page but it is the way it was.
3103 % In two-column style, it still makes a
3106 % \changes{v1.0g}{1993/12/09}{Moved the setting of
3107 % \cs{@restonecolfalse}}
3108 % \changes{v1.2c}{1994/03/17}{page :!= 0 only in compatibility mode
3110 % \changes{v1.2d}{1994/04/11}{Moved \cs{cleardoublepage} inside
3111 % definition of titlepage environment}
3112 % \changes{v1.3i}{1995/08/08}{New implementation with support for
3113 % twoside and openright option}
3115 % First we do give the definition for compatibility mode.
3118 \newenvironment{titlepage}
3120 %<book> \cleardoublepage
3122 \@restonecoltrue\onecolumn
3124 \@restonecolfalse\newpage
3126 \thispagestyle{empty}%
3127 \setcounter{page}\z@
3129 {\if@restonecol\twocolumn \else \newpage \fi
3133 % And here is the one for native \LaTeXe{}.
3136 \newenvironment{titlepage}
3138 %<book> \cleardoublepage
3140 \@restonecoltrue\onecolumn
3142 \@restonecolfalse\newpage
3144 \thispagestyle{empty}%
3145 \setcounter{page}\@ne
3147 {\if@restonecol\twocolumn \else \newpage \fi
3149 % If we are not in two-side mode the first page after the title page
3150 % should also get page number 1.
3153 \setcounter{page}\@ne
3160 % \subsubsection{Appendix}
3162 % \begin{macro}{\appendix}
3164 % The |\appendix| command is not really an environment, it is a
3165 % macro that makes some changes in the way things are done.
3167 % In the article document class the |\appendix| command must do the
3170 % \item reset the section and subsection counters to zero,
3171 % \item redefine |\thesection| to produce alphabetic appendix
3172 % numbers. This redefinition is done globally to ensure that it
3173 % survives even if |\appendix| is issued within an environment such
3174 % as \texttt{multicols}.
3177 % \changes{1.3z}{1998/09/19}{Redefine \cs{thesection} globally (pr/2862)}
3180 \newcommand\appendix{\par
3181 \setcounter{section}{0}%
3182 \setcounter{subsection}{0}%
3183 \gdef\thesection{\@Alph\c@section}}
3187 % In the report and book document classes the |\appendix| command
3188 % must do the following:
3190 % \item reset the chapter and section counters to zero,
3191 % \item set |\@chapapp| to |\appendixname| (for messages),
3192 % \item redefine the chapter counter to produce appendix numbers,
3193 % \item possibly redefine the |\chapter| command if appendix titles
3194 % and headings are to look different from chapter titles and
3195 % headings. This redefinition is done globally to ensure that it
3196 % survives even if |\appendix| is issued within an environment such
3197 % as \texttt{multicols}.
3200 % \changes{1.3z}{1998/09/19}{Redefine \cs{thechapter} and
3201 % \cs{@chapapp} globally (pr/2862)}
3204 \newcommand\appendix{\par
3205 \setcounter{chapter}{0}%
3206 \setcounter{section}{0}%
3207 \gdef\@chapapp{\appendixname}%
3208 \gdef\thechapter{\@Alph\c@chapter}}
3213 % \subsection{Setting parameters for existing environments}
3215 % \subsubsection{Array and tabular}
3217 % \begin{macro}{\arraycolsep}
3218 % The columns in an array environment are separated by
3221 \setlength\arraycolsep{5\p@}
3225 % \begin{macro}{\tabcolsep}
3226 % The columns in an tabular environment are separated by
3229 \setlength\tabcolsep{6\p@}
3233 % \begin{macro}{\arrayrulewidth}
3234 % The width of rules in the array and tabular environments is given
3235 % by\\ |\arrayrulewidth|.
3237 \setlength\arrayrulewidth{.4\p@}
3241 % \begin{macro}{\doublerulesep}
3242 % The space between adjacent rules in the array and tabular
3243 % environments is given by |\doublerulesep|.
3245 \setlength\doublerulesep{2\p@}
3249 % \subsubsection{Tabbing}
3251 % \begin{macro}{\tabbingsep}
3252 % This controls the space that the |\'| command puts in. (See
3253 % \LaTeX{} manual for an explanation.)
3255 \setlength\tabbingsep{\labelsep}
3259 % \subsubsection{Minipage}
3261 % \begin{macro}{\@minipagerestore}
3262 % The macro |\@minipagerestore| is called upon entry to a minipage
3263 % environment to set up things that are to be handled differently
3264 % inside a minipage environment. In the current styles, it does
3268 % \begin{macro}{\@mpfootins}
3269 % Minipages have their own footnotes; |\skip||\@mpfootins| plays
3270 % same r\^ole for footnotes in a minipage as |\skip||\footins| does
3271 % for ordinary footnotes.
3274 \skip\@mpfootins = \skip\footins
3278 % \subsubsection{Framed boxes}
3280 % \begin{macro}{\fboxsep}
3281 % The space left by |\fbox| and |\framebox| between the box and the
3283 % \begin{macro}{\fboxrule}
3284 % The width of the rules in the box made by |\fbox| and |\framebox|.
3286 \setlength\fboxsep{3\p@}
3287 \setlength\fboxrule{.4\p@}
3292 % \subsubsection{Equation and eqnarray}
3294 % \begin{macro}{\theequation}
3295 % When within chapters, the equation counter will be reset at
3296 % the beginning of a new chapter and the equation number will
3297 % be prefixed by the chapter number.
3298 % \changes{v1.3u}{1996/10/31}{Added test for non-zero chapter number}
3300 % This code must follow the |\chapter| definition or, more exactly,
3301 % the definition of the chapter counter.
3303 %<article>\renewcommand \theequation {\@arabic\c@equation}
3305 \@addtoreset {equation}{chapter}
3306 \renewcommand\theequation
3307 {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation}
3312 % \begin{macro}{\jot}
3313 % |\jot| is the extra space added between lines of an eqnarray
3314 % environment. The default value is used.
3316 % \setlength\jot{3pt}
3320 % \begin{macro}{\@eqnnum}
3321 % The macro |\@eqnnum| defines how equation numbers are to appear in
3322 % equations. Again the default is used.
3325 % \def\@eqnnum{(\theequation)}
3329 % \subsection{Floating objects}
3331 % The file \file{latex.dtx} only defines a number of tools with
3332 % which floating objects can be defined. This is done in the
3333 % document class. It needs to define the following macros for each
3334 % floating object of type \texttt{TYPE} (e.g., \texttt{TYPE} =
3337 % \begin{description}
3338 % \item[\texttt{\bslash fps@TYPE}]
3339 % The default placement specifier for floats of type
3342 % \item[\texttt{\bslash ftype@TYPE}]
3343 % The type number for floats of type \texttt{TYPE}. Each
3344 % \texttt{TYPE} has associated a unique positive \texttt
3345 % {TYPE} number, which is a power of two. E.g., figures might
3346 % have type number 1, tables type number 2, programs type
3349 % \item[\texttt{\bslash ext@TYPE}]
3350 % The file extension indicating the file on which the contents
3351 % list for float type \texttt{TYPE} is stored. For example,
3352 % |\ext@figure| = `lof'.
3354 % \item[\texttt{\bslash fnum@TYPE}]
3355 % A macro to generate the figure number for a caption. For
3356 % example, |\fnum@TYPE| == `Figure |\thefigure|'.
3358 % \item[\texttt{\bslash @makecaption}{\meta{num}}{\meta{text}}]
3359 % A macro to make a caption, with \meta{num} the value produced
3360 % by |\fnum@...| and \meta{text} the text of the caption. It
3361 % can assume it's in a |\parbox| of the appropriate width.
3362 % This will be used for \emph{all} floating objects.
3366 % The actual environment that implements a floating object such as
3367 % a figure is defined using the macros |\@float| and |\end@float|,
3368 % which are defined in \file{latex.dtx}.
3370 % An environment that implements a single column floating object is
3371 % started with |\@float{|\texttt{TYPE}|}[|\meta{placement}|]| of type
3372 % \texttt{TYPE} with \meta{placement} as the placement specifier.
3373 % The default value of \meta{PLACEMENT} is defined by |\fps@TYPE|.
3375 % The environment is ended by |\end@float|. E.g., |\figure| ==
3376 % |\@float|{figure}, |\endfigure| == |\end@float|.
3378 % \subsubsection{Figure}
3380 % Here is the implementation of the figure environment.
3382 % \begin{macro}{\c@figure}
3383 % First we have to allocate a counter to number the figures.
3385 % In the report and book document classes figures within chapters are
3386 % numbered per chapter.
3387 % \changes{v1.3u}{1996/10/31}{Added test for non-zero chapter number}
3391 \renewcommand \thefigure {\@arabic\c@figure}
3394 \newcounter{figure}[chapter]
3395 \renewcommand \thefigure
3396 {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}
3401 % \begin{macro}{\fps@figure}
3402 % \begin{macro}{\ftype@figure}
3403 % \begin{macro}{\ext@figure}
3404 % \begin{macro}{\num@figure}
3405 % Here are the parameters for the floating objects of type `figure'.
3406 % \changes{v1.4e}{2001/05/24}{Replaced tilde with \cs{nobreakspace}
3409 \def\fps@figure{tbp}
3410 \def\ftype@figure{1}
3411 \def\ext@figure{lof}
3412 \def\fnum@figure{\figurename\nobreakspace\thefigure}
3419 % \begin{environment}{figure}
3420 % \begin{environment}{figure*}
3421 % And the definition of the actual environment. The form with the
3422 % |*| is used for double column figures.
3424 \newenvironment{figure}
3427 \newenvironment{figure*}
3428 {\@dblfloat{figure}}
3434 % \subsubsection{Table}
3436 % Here is the implementation of the table environment. It is very
3437 % much the same as the figure environment.
3439 % \begin{macro}{\c@table}
3440 % First we have to allocate a counter to number the tables.
3442 % In the report and book document classes tables within chapters are
3443 % numbered per chapter.
3444 % \changes{v1.3u}{1996/10/31}{Added test for non-zero chapter number}
3448 \renewcommand\thetable{\@arabic\c@table}
3451 \newcounter{table}[chapter]
3452 \renewcommand \thetable
3453 {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table}
3458 % \begin{macro}{\fps@table}
3459 % \begin{macro}{\ftype@table}
3460 % \begin{macro}{\ext@table}
3461 % \begin{macro}{\num@table}
3462 % Here are the parameters for the floating objects of type `table'.
3463 % \changes{v1.4e}{2001/05/24}{Replaced tilde with \cs{nobreakspace}
3469 \def\fnum@table{\tablename\nobreakspace\thetable}
3476 % \begin{environment}{table}
3477 % \begin{environment}{table*}
3478 % And the definition of the actual environment. The form with the
3479 % |*| is used for double column tables.
3481 \newenvironment{table}
3484 \newenvironment{table*}
3491 % \subsubsection{Captions}
3493 % \begin{macro}{\@makecaption}
3494 % The |\caption| command calls |\@makecaption| to format the
3495 % caption of floating objects. It gets two arguments,
3496 % \meta{number}, the number of the floating object and \meta{text},
3497 % the text of the caption. Usually \meta{number} contains a string
3498 % such as `Figure 3.2'. The macro can assume it is called inside a
3499 % |\parbox| of right width, with |\normalsize|.
3501 % \begin{macro}{\abovecaptionskip}
3502 % \begin{macro}{\belowcaptionskip}
3503 % These lengths contain the amount of white space to leave above
3504 % and below the caption.
3506 \newlength\abovecaptionskip
3507 \newlength\belowcaptionskip
3508 \setlength\abovecaptionskip{10\p@}
3509 \setlength\belowcaptionskip{0\p@}
3514 % The definition of this macro is |\long| in order to allow more
3515 % then one paragraph in a caption.
3517 \long\def\@makecaption#1#2{%
3518 \vskip\abovecaptionskip
3520 % We want to see if the caption fits on one line on the page,
3521 % therefore we first typeset it in a temporary box.
3522 % \changes{v1.2q}{1994/05/29}{Use \cs{sbox}\cs{@tempboxa} instead of
3523 % \cs{setbox}\cs{@tempboxa}\cs{hbox} to make this colour safe}
3525 \sbox\@tempboxa{#1: #2}%
3527 % We can the measure its width. It that is larger than the current
3528 % |\hsize| we typeset the caption as an ordinary paragraph.
3530 \ifdim \wd\@tempboxa >\hsize
3533 % If the caption fits, we center it. Because this uses an |\hbox|
3534 % directly in vertical mode, it does not execute the |\everypar|
3535 % tokens; the only thing that could be needed here is resetting the
3536 % `minipage flag' so we do this explicitly.
3537 % \changes{v1.2x}{1994/12/09}{Due to a change in the way floats are
3538 % handled we need to set the \cs{if@minipage} switch to false}
3541 \global \@minipagefalse
3542 \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
3544 \vskip\belowcaptionskip}
3548 % \subsection{Font changing}
3550 % Here we supply the declarative font changing commands that were
3551 % common in \LaTeX\ version 2.09 and earlier. These commands work
3552 % in text mode \emph{and} in math mode. They are provided for
3553 % compatibility, but one should start using the |\text...| and
3554 % |\math...| commands instead. These commands are defined using
3555 % |\DeclareTextFontCommand|, a command with three arguments: the
3556 % user command to be defined; \LaTeX\ commands to execute in text
3557 % mode and \LaTeX\ commands to execute in math mode.
3559 % \changes{v1.0g}{1993/12/12}{Distinguished between compatibility and
3560 % `normal' mode for the font changing commands.}
3561 % \changes{v1.0h}{1993/12/18}{These are now defined in the kernel, so
3562 % use \cs{@renewfontswitch}. Compatibility mode defines
3563 % \cs{@renewfontswitch} to do nothing, so we don't need to check
3564 % for compatibility mode any more.}
3565 % \changes{v1.0j}{1993/12/20}{Added \cs{normalfont} back in the
3566 % definitions of \cs{rm} etc. as this should be the default
3568 % \changes{v1.2e}{1994/04/14}{\cs{@renewfontswitch} has become
3569 % \cs{DeclareOldFontCommand}}
3571 % \begin{macro}{\rm}
3572 % \changes{v1.0f}{1993/12/08}{Macro added}
3573 % \begin{macro}{\tt}
3574 % \changes{v1.0f}{1993/12/08}{Macro added}
3575 % \begin{macro}{\sf}
3576 % \changes{v1.0f}{1993/12/08}{Macro added}
3578 % The commands to change the family. When in compatibility mode we
3579 % select the `default' font first, to get \LaTeX2.09 behaviour.
3581 \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
3582 \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
3583 \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
3589 % \begin{macro}{\bf}
3590 % \changes{v1.0f}{1993/12/08}{Macro added}
3591 % The command to change to the bold series. One should use
3592 % |\mdseries| to explicitly switch back to medium series.
3594 \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
3598 % \begin{macro}{\sl}
3599 % \changes{v1.0f}{1993/12/08}{Macro added}
3600 % \changes{v1.2g}{1994/04/24}{Added warning if used in math mode}
3601 % \begin{macro}{\it}
3602 % \changes{v1.0f}{1993/12/08}{Macro added}
3603 % \begin{macro}{\sc}
3604 % \changes{v1.0f}{1993/12/08}{Macro added}
3605 % \changes{v1.2g}{1994/04/24}{Added warning if used in math mode}
3607 % And the commands to change the shape of the font. The slanted and
3608 % small caps shapes are not available by default as math alphabets,
3609 % so those changes do nothing in math mode. However, we do warn the
3610 % user that the selection will not have any effect.One should use
3611 % |\upshape| to explicitly change back to the upright shape.
3613 \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
3614 \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
3615 \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
3621 % \begin{macro}{\cal}
3622 % \changes{v1.0g}{1993/12/12}{Macro added}
3623 % \begin{macro}{\mit}
3624 % \changes{v1.0g}{1993/12/12}{Macro added}
3626 % The commands |\cal| and |\mit| should only be used in math mode,
3627 % outside math mode they have no effect. Currently the New Font
3628 % Selection Scheme defines these commands to generate warning
3629 % messages. Therefore we have to define them `by hand'.
3630 % \changes{v1.2w}{1994/12/01}{Now define \cs{cal} and \cs{mit} using
3631 % \cs{DeclareRobustCommand*}}
3632 % \changes{v1.3j}{1995/08/16}{Remove surplus braces}
3634 \DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
3635 \DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
3640 % \section{Cross Referencing}
3641 % \subsection{Table of Contents, etc.}
3643 % A |\section| command writes a
3644 % |\contentsline{section}{|\meta{title}|}{|\meta{page}|}| command
3645 % on the \file{.toc} file, where \meta{title} contains the
3646 % contents of the entry and \meta{page} is the page number. If
3647 % sections are being numbered, then \meta{title} will be of the
3648 % form |\numberline{|\meta{num}|}{|\meta{heading}|}| where
3649 % \meta{num} is the number produced by |\thesection|. Other
3650 % sectioning commands work similarly.
3652 % A |\caption| command in a `figure' environment writes
3654 % |\contentsline{figure}{\numberline{|\meta{num}|}{|%
3655 % \meta{caption}|}}{|\meta{page}|}|
3657 % on the .\file{lof} file, where \meta{num} is the number produced
3658 % by |\thefigure| and \meta{caption} is the figure caption. It
3659 % works similarly for a `table' environment.
3661 % The command |\contentsline{|\meta{name}|}| expands to
3662 % |\l@|\meta{name}. So, to specify the table of contents, we must
3663 % define |\l@chapter|, |\l@section|, |\l@subsection|, ... ; to
3664 % specify the list of figures, we must define |\l@figure|; and so
3665 % on. Most of these can be defined with the |\@dottedtocline|
3666 % command, which works as follows.
3668 % |\@dottedtocline{|\meta{level}|}{|\meta{indent}|}{|^^A
3669 % \meta{numwidth}|}{|^^A
3670 % \meta{title}|}{|\meta{page}|}|
3672 % \begin{description}
3673 % \item[\meta{level}] An entry is produced only if\meta{ level}
3674 % $<=$ value of the \Lcount{tocdepth} counter. Note,
3675 % |\chapter| is level 0, |\section| is level 1, etc.
3676 % \item[\meta{indent}] The indentation from the outer left margin
3677 % of the start of the contents line.
3678 % \item[\meta{numwidth}] The width of a box in which the section
3679 % number is to go, if \meta{title} includes a |\numberline|
3683 % \begin{macro}{\@pnumwidth}
3684 % \begin{macro}{\@tocrmarg}
3685 % \begin{macro}{\@dotsep}
3686 % This command uses the following three parameters, which are set
3687 % with a |\newcommand| (so em's can be used to make them depend upon
3689 % \begin{description}
3690 % \item[\texttt{\bslash @pnumwidth}] The width of a box in which the
3691 % page number is put.
3692 % \changes{v1.2v}{1994/10/29}{Changed documentation from $!>$ or $!=$ to
3694 % \item[\texttt{\bslash @tocrmarg}] The right margin for multiple
3695 % line entries. One wants |\@tocrmarg| $\ge$ |\@pnumwidth|
3696 % \item[\texttt{\bslash @dotsep}] Separation between dots, in mu
3697 % units. Should be defined as a number like 2 or 1.7
3701 \newcommand\@pnumwidth{1.55em}
3702 \newcommand\@tocrmarg{2.55em}
3703 \newcommand\@dotsep{4.5}
3704 %<article>\setcounter{tocdepth}{3}
3705 %<!article>\setcounter{tocdepth}{2}
3711 % \subsubsection{Table of Contents}
3713 % \begin{macro}{\tableofcontents}
3714 % This macro is used to request that \LaTeX{} produces a table of
3715 % contents. In the report and book document classes the tables of
3716 % contents, figures etc. are always set in single-column style.
3718 % \changes{v1.0g}{1993/12/09}{Moved the setting of
3719 % \cs{@restonecolfalse}}
3720 % \changes{v1.4h}{2007/10/19}{Explain why \cs{@mkboth} is inside the heading
3721 % arg for \cs{tableofcontents} (pr/3285 and pr/3984)}
3723 \newcommand\tableofcontents{%
3726 \@restonecoltrue\onecolumn
3731 % The title is set using the |\chapter*| command, making sure that
3732 % the running head --if one is required-- contains the right
3735 \chapter*{\contentsname
3737 %<article> \section*{\contentsname
3739 % The code for |\@mkboth| is placed inside the heading to avoid any
3740 % influence on vertical spacing after the heading (in some cases). For
3741 % other commands, such as |\listoffigures| below this has been changed from
3742 % the \LaTeX{}2.09 version as it will produce a serious bug if used in
3743 % two-column mode (see, pr/3285). However |\tableofcontents| is always
3744 % typeset in one-column mode in these classes, therefore the somewhat
3745 % inconsistent setting has been retained for compatibility reasons.
3748 \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
3750 % The the actual table of contents is made by calling
3751 % |\@starttoc{toc}|. After that we restore twocolumn mode if
3755 %<!article> \if@restonecol\twocolumn\fi
3760 % \begin{macro}{\l@part}
3761 % Each sectioning command needs an additional macro to format its
3762 % entry in the table of contents, as described above. The macro for
3763 % the entry for parts is defined in a special way.
3765 % First we make sure that if a pagebreak should occur, it occurs
3766 % \emph{before} this entry. Also a little whitespace is added and a
3767 % group begun to keep changes local.
3768 % \changes{v1.0h}{1993/12/18}{Replaced -\cs{@secpenalty} by
3769 % \cs{@secpenalty}. ASAJ.}
3770 % \changes{v1.2i}{1994/04/28}{Don't print a toc line when the tocdepth
3771 % counter is less then -1}
3772 % \changes{v1.3b}{1995/05/23}{Added missing braces around argument
3773 % to \cs{addpenalty}.}
3774 % \changes{v1.3x}{1997/10/10}{Removed setting of \cs{@tempdima} as
3775 % this macro does not use \cs{numberline} to set the toc line.}
3776 % \changes{v1.4a}{1998/10/12}{we should use \cs{@tocrmarg}; see PR/2881.}
3778 \newcommand*\l@part[2]{%
3779 \ifnum \c@tocdepth >-2\relax
3780 %<article> \addpenalty\@secpenalty
3781 %<!article> \addpenalty{-\@highpenalty}%
3782 \addvspace{2.25em \@plus\p@}%
3784 % The macro |\numberline| requires that the width of the box that
3785 % holds the part number is stored in \LaTeX's scratch register
3786 % |\@tempdima|. Therefore we initialize it there even though we do
3787 % not use |\numberline| internally---the value used is quite large
3788 % so that something like |\numberline{VIII}| would still work.
3789 % \changes{v1.4d}{2001/04/21}{Initialize \cs{@tempdima} to some
3790 % sensible value (pr/3327)}
3792 \setlength\@tempdima{3em}%
3795 % We set |\parindent| to 0pt and use |\rightskip| to leave
3796 % enough room for the pagenumbers.\footnote{^^A
3797 % We should really set \cs{rightskip} to \cs{@tocrmarg} instead
3798 % of \cs{@pnumwidth} (no version of {\LaTeX} ever did this),
3799 % otherwise the \cs{rightskip} is too small.
3800 % Unfortunately this can't be changed in {\LaTeXe} as we don't
3801 % want to create different versions of {\LaTeXe} which produce
3802 % different typset output unless this is absolutely necessary;
3803 % instead we suspend it for \LaTeX3.}
3804 % To prevent overfull box messages the |\parfillskip| is set to a
3807 \parindent \z@ \rightskip \@pnumwidth
3808 \parfillskip -\@pnumwidth
3810 % Now we can set the entry, in a large bold font. We make sure to
3811 % leave vertical mode, set the part title and add the pagenumber,
3815 \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
3817 % Prevent a pagebreak immediately after this entry, but use
3818 % |\everypar| to reset the |\if@nobreak| switch. Finally we close
3820 % \changes{v1.3j}{1995/08/16}{Add missing percent}
3823 %<article> \if@compatibility
3824 \global\@nobreaktrue
3825 \everypar{\global\@nobreakfalse\everypar{}}%
3832 % \begin{macro}{\l@chapter}
3833 % This macro formats the entries in the table of contents for
3834 % chapters. It is very similar to |\l@part|
3836 % First we make sure that if a pagebreak should occur, it occurs
3837 % \emph{before} this entry. Also a little whitespace is added and a
3838 % group begun to keep changes local.
3839 % \changes{v1.2i}{1994/04/28}{Don't print a toc line when the tocdepth
3840 % counter is less than 0}
3841 % \changes{v1.3b}{1995/05/23}{Added missing braces around argument
3842 % to \cs{addpenalty}.}
3843 % \changes{v1.4a}{1998/10/12}{we should use \cs{@tocrmarg}; see PR/2881.}
3846 \newcommand*\l@chapter[2]{%
3847 \ifnum \c@tocdepth >\m@ne
3848 \addpenalty{-\@highpenalty}%
3849 \vskip 1.0em \@plus\p@
3852 % The macro |\numberline| requires that the width of the box that
3853 % holds the part number is stored in \LaTeX's scratch register
3854 % |\@tempdima|. Therefore we initialize it there even though we do
3855 % not use |\numberline| internally (the position as well as the
3856 % values seems questionable but can't be changed without producing
3857 % compatibility problems). We begin a group, and change
3858 % some of the paragraph parameters (see also the remark at
3859 % \cs{l@part} regarding \cs{rightskip}).
3861 \setlength\@tempdima{1.5em}%
3863 \parindent \z@ \rightskip \@pnumwidth
3864 \parfillskip -\@pnumwidth
3866 % Then we leave vertical mode and switch to a bold font.
3868 \leavevmode \bfseries
3870 % Because we do not use |\numberline| here, we have do some fine
3871 % tuning `by hand', before we can set the entry. We discourage but
3872 % not disallow a pagebreak immediately after a chapter entry.
3874 \advance\leftskip\@tempdima
3876 #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
3877 \penalty\@highpenalty
3884 % \begin{macro}{\l@section}
3885 % In the article document class the entry in the table of contents
3886 % for sections looks much like the chapter entries for the report
3887 % and book document classes.
3889 % First we make sure that if a pagebreak should occur, it occurs
3890 % \emph{before} this entry. Also a little whitespace is added and a
3891 % group begun to keep changes local.
3892 % \changes{v1.0h}{1993/12/18}{Replaced -\cs{@secpenalty} by
3893 % \cs{@secpenalty}. ASAJ.}
3894 % \changes{v1.2i}{1994/04/28}{Don't print a toc line when the tocdepth
3895 % counter is less than 1.}
3896 % \changes{v1.4a}{1998/10/12}{we should use \cs{@tocrmarg}; see PR/2881.}
3899 \newcommand*\l@section[2]{%
3900 \ifnum \c@tocdepth >\z@
3901 \addpenalty\@secpenalty
3902 \addvspace{1.0em \@plus\p@}%
3905 % The macro |\numberline| requires that the width of the box that
3906 % holds the part number is stored in \LaTeX's scratch register
3907 % |\@tempdima|. Therefore we put it there. We begin a group, and
3908 % change some of the paragraph parameters (see also the remark at
3909 % \cs{l@part} regarding \cs{rightskip}).
3911 \setlength\@tempdima{1.5em}%
3913 \parindent \z@ \rightskip \@pnumwidth
3914 \parfillskip -\@pnumwidth
3916 % Then we leave vertical mode and switch to a bold font.
3918 \leavevmode \bfseries
3920 % Because we do not use |\numberline| here, we have do some fine
3921 % tuning `by hand', before we can set the entry. We discourage but
3922 % not disallow a pagebreak immediately after a chapter entry.
3924 \advance\leftskip\@tempdima
3926 #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
3931 % In the report and book document classes the definition for
3932 % |\l@section| is much simpler.
3935 \newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
3940 % \begin{macro}{\l@subsection}
3941 % \begin{macro}{\l@subsubsection}
3942 % \begin{macro}{\l@paragraph}
3943 % \begin{macro}{\l@subparagraph}
3944 % All lower level entries are defined using the macro
3945 % |\@dottedtocline| (see above).
3948 \newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
3949 \newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
3950 \newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
3951 \newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
3954 \newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
3955 \newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
3956 \newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}}
3957 \newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
3965 % \subsubsection{List of figures}
3967 % \begin{macro}{\listoffigures}
3968 % This macro is used to request that \LaTeX{} produces a list of
3969 % figures. It is very similar to |\tableofcontents|.
3971 % \changes{v1.0g}{1993/12/09}{Moved the setting of
3972 % \cs{@restonecolfalse}}
3973 % \changes{v1.4c}{2001/01/06}{Moved \cs{@mkboth} out of heading
3976 \newcommand\listoffigures{%
3979 \@restonecoltrue\onecolumn
3983 \chapter*{\listfigurename}%
3985 %<article> \section*{\listfigurename}%
3986 \@mkboth{\MakeUppercase\listfigurename}%
3987 {\MakeUppercase\listfigurename}%
3989 %<report|book> \if@restonecol\twocolumn\fi
3994 % \begin{macro}{\l@figure}
3995 % This macro produces an entry in the list of figures.
3997 \newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
4001 % \subsubsection{List of tables}
4003 % \begin{macro}{\listoftables}
4004 % This macro is used to request that \LaTeX{} produces a list of
4005 % tables. It is very similar to |\tableofcontents|.
4007 % \changes{v1.0g}{1993/12/09}{Moved the setting of
4008 % \cs{@restonecolfalse}}
4009 % \changes{v1.4c}{2001/01/06}{Moved \cs{@mkboth} out of heading
4012 \newcommand\listoftables{%
4015 \@restonecoltrue\onecolumn
4019 \chapter*{\listtablename}%
4021 %<article> \section*{\listtablename}%
4023 \MakeUppercase\listtablename}%
4024 {\MakeUppercase\listtablename}%
4026 %<report|book> \if@restonecol\twocolumn\fi
4031 % \begin{macro}{\l@table}
4032 % This macro produces an entry in the list of tables.
4034 \let\l@table\l@figure
4038 % \subsection{Bibliography}
4040 % \begin{macro}{\bibindent}
4041 % The ``open'' bibliography format uses an indentation of
4045 \setlength\bibindent{1.5em}
4049 % \begin{environment}{thebibliography}
4050 % The `thebibliography' environment executes the following
4053 % |\renewcommand{\newblock}{\hskip.11em \@plus.33em \@minus.07em}|\\
4054 % --- Defines the ``closed'' format, where the blocks (major units
4055 % of information) of an entry run together.
4057 % |\sloppy| --- Used because it's rather hard to do line breaks in
4060 % |\sfcode`\.=1000\relax| ---
4061 % Causes a `.' (period) not to produce an end-of-sentence space.
4063 % The implementation of this environment is based on the generic
4064 % list environment. It uses the \Lcount{enumiv} counter internally
4065 % to generate the labels of the list.
4067 % When an empty `thebibliography' environment is found, a warning
4070 % \changes{v1.0i}{1993/12/19}{Corrected definition of thebibliography
4072 % \changes{v1.2z}{1995/05/09}{added a missing percent character}
4073 % \changes{v1.3b}{1995/05/23}{Added missing braces in definition
4074 % of thebibliography environment.}
4075 % \changes{v1.3j}{1995/08/16}{remove surplus spaces}
4076 % \changes{v1.3k}{1995/08/27}{Code for openbib changed}
4077 % \changes{v1.3t}{1996/10/05}{Added setting value of \cs{@clubpenalty}}
4079 \newenvironment{thebibliography}[1]
4081 {\section*{\refname}%
4083 % The |\@mkboth| was moved out of the heading argument since at
4084 % least in report and book (twocolumn option) there are definitions
4085 % for |\chapter| which would swallow it otherwise.
4086 % \changes{v1.4c}{2001/01/06}{Moved \cs{@mkboth} out of heading
4089 \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
4092 {\chapter*{\bibname}%
4093 \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
4095 \list{\@biblabel{\@arabic\c@enumiv}}%
4096 {\settowidth\labelwidth{\@biblabel{#1}}%
4097 \leftmargin\labelwidth
4098 \advance\leftmargin\labelsep
4100 \usecounter{enumiv}%
4101 \let\p@enumiv\@empty
4102 \renewcommand\theenumiv{\@arabic\c@enumiv}}%
4105 % This is setting the normal (non-infinite) value of
4106 % |\clubpenalty| for the whole of this environment,
4107 % so we must reset its stored value also. (Why is there a |%| after
4108 % the second 4000 below?)
4111 \@clubpenalty \clubpenalty
4115 {\@latex@warning{Empty `thebibliography' environment}}%
4120 % \begin{macro}{\newblock}
4121 % The default definition for |\newblock| is to produce a small space.
4122 % \changes{v1.3k}{1995/08/27}{Default changed.}
4124 \newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
4128 % \begin{macro}{\@openbib@code}
4129 % The default definition for |\@openbib@code| is to do nothing.
4130 % It will be changed by the \Lopt{openbib} option.
4131 % \changes{v1.3k}{1995/08/27}{Macro added}
4133 \let\@openbib@code\@empty
4137 % \begin{macro}{\@biblabel}
4138 % The label for a |\bibitem[...]| command is produced by this
4139 % macro. The default from \file{latex.dtx} is used.
4141 % \renewcommand*{\@biblabel}[1]{[#1]\hfill}
4145 % \begin{macro}{\@cite}
4146 % The output of the |\cite| command is produced by this macro. The
4147 % default from \file{latex.dtx} is used.
4149 % \renewcommand*{\@cite}[1]{[#1]}
4153 % \subsection{The index}
4155 % \begin{environment}{theindex}
4156 % The environment `theindex' can be used for indices. It makes an
4157 % index with two columns, with each entry a separate paragraph. At
4158 % the user level the commands |\item|, |\subitem| and |\subsubitem|
4159 % are used to produce index entries of various levels. When a new
4160 % letter of the alphabet is encountered an amount of |\indexspace|
4161 % white space can be added.
4164 % \changes{v1.0g}{1993/12/09}{Moved the setting of
4165 % \cs{@restonecoltrue}}
4167 \newenvironment{theindex}
4173 %<article> \twocolumn[\section*{\indexname}]%
4174 %<!article> \twocolumn[\@makeschapterhead{\indexname}]%
4175 \@mkboth{\MakeUppercase\indexname}%
4176 {\MakeUppercase\indexname}%
4177 \thispagestyle{plain}\parindent\z@
4179 % Parameter changes to |\columnseprule| and |\columnsep| have to be
4180 % done after |\twocolumn| has acted. Otherwise they can affect the
4181 % last page before the index.
4182 % \changes{ v1.4f}{2004/02/16}{Moved setting of \cs{columnsep} and
4183 % \cs{columnseprule} later to avoid affecting the wrong page (pr/3616)}
4185 \parskip\z@ \@plus .3\p@\relax
4190 % When the document continues after the index and it was a one
4191 % column document we have to switch back to one column after the
4194 {\if@restonecol\onecolumn\else\clearpage\fi}
4198 % \begin{macro}{\@idxitem}
4199 % \begin{macro}{\subitem}
4200 % \begin{macro}{\subsubitem}
4201 % These macros are used to format the entries in the index. ^^AA ???
4202 % \changes{v1.3f}{1995/06/23}{Corrected error in definition of
4204 % \changes{v1.3j}{1995/08/16}{use \cs{@idxitem} to save space}
4206 \newcommand\@idxitem{\par\hangindent 40\p@}
4207 \newcommand\subitem{\@idxitem \hspace*{20\p@}}
4208 \newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
4214 % \begin{macro}{\indexspace}
4215 % The amount of white space that is inserted between `letter
4216 % blocks' in the index.
4218 \newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
4222 % \subsection{Footnotes}
4224 % \begin{macro}{\footnoterule}
4225 % Usually, footnotes are separated from the main body of the text
4226 % by a small rule. This rule is drawn by the macro |\footnoterule|.
4227 % We have to make sure that the rule takes no vertical space (see
4228 % \file{plain.tex}) so we compensate for the natural height of the
4229 % rule of 0.4pt by adding the right amount of vertical skip.
4231 % To prevent the rule from colliding with the footnote we first add
4232 % a little negative vertical skip, then we put the rule and make
4233 % sure we end up at the same point where we begun this operation.
4234 % \changes{v1.3a}{1995/05/17}{use \cs{@width}}
4236 \renewcommand\footnoterule{%
4238 \hrule\@width.4\columnwidth
4243 % \begin{macro}{\c@footnote}
4244 % Footnotes are numbered within chapters in the report and book
4247 %<!article>\@addtoreset{footnote}{chapter}
4251 % \begin{macro}{\@makefntext}
4252 % The footnote mechanism of \LaTeX{} calls the macro |\@makefntext|
4253 % to produce the actual footnote. The macro gets the text of the
4254 % footnote as its argument and should use |\@thefnmark| as the mark
4255 % of the footnote. The macro |\@makefntext|is called when
4256 % effectively inside a |\parbox| of width |\columnwidth| (i.e.,
4257 % with |\hsize| = |\columnwidth|).
4259 % An example of what can be achieved is given by the following piece
4262 % \newcommand\@makefntext[1]{%
4264 % \@tempdima = \hsize
4265 % \advance\@tempdima-10pt
4266 % \parshape \@ne 10pt \@tempdima}%
4268 % \parindent 1em\noindent
4269 % \hbox to \z@{\hss\@makefnmark}#1}
4271 % The effect of this definition is that all lines of the footnote
4272 % are indented by 10pt, while the first line of a new paragraph is
4273 % indented by 1em. To change these dimensions, just substitute the
4274 % desired value for `10pt' (in both places) or `1em'. The mark is
4275 % flushright against the footnote.
4277 % In these document classes we use a simpler macro, in which the
4278 % footnote text is set like an ordinary text paragraph, with no
4279 % indentation except on the first line of a paragraph, and the
4280 % first line of the footnote. Thus, all the macro must do is set
4281 % |\parindent| to the appropriate value for succeeding paragraphs
4282 % and put the proper indentation before the mark.
4284 % \changes{v1.1a}{1994/03/13}{Use \cs{@makefnmark} to generate
4287 \newcommand\@makefntext[1]{%
4290 \hb@xt@1.8em{\hss\@makefnmark}#1}
4294 % \begin{macro}{\@makefnmark}
4295 % The footnote markers that are printed in the text to point to the
4296 % footnotes should be produced by the macro |\@makefnmark|. We use
4297 % the default definition for it.
4299 %\renewcommand\@makefnmark{\hbox{\@textsuperscript
4300 % {\normalfont\@thefnmark}}}
4304 % \section{Initialization}
4306 % \subsection{Words}
4308 % This document class is for documents prepared in the English language.
4309 % To prepare a version for another language, various English words must
4310 % be replaced. All the English words that require replacement are
4311 % defined below in command names. These commands may be redefined in
4312 % any class or package that is customising \LaTeX\ for use with
4313 % non-English languages.
4314 % \changes{v1.3h}{1995/07/20}{Split up to save save stack /1742}
4316 % \begin{macro}{\contentsname}
4317 % \begin{macro}{\listfigurename}
4318 % \begin{macro}{\listtablename}
4320 \newcommand\contentsname{Contents}
4321 \newcommand\listfigurename{List of Figures}
4322 \newcommand\listtablename{List of Tables}
4328 % \begin{macro}{\refname}
4329 % \begin{macro}{\bibname}
4330 % \begin{macro}{\indexname}
4332 %<article>\newcommand\refname{References}
4333 %<report|book>\newcommand\bibname{Bibliography}
4334 \newcommand\indexname{Index}
4340 % \begin{macro}{\figurename}
4341 % \begin{macro}{\tablename}
4343 \newcommand\figurename{Figure}
4344 \newcommand\tablename{Table}
4349 % \begin{macro}{\partname}
4350 % \begin{macro}{\chaptername}
4351 % \begin{macro}{\appendixname}
4352 % \begin{macro}{\abstractname}
4354 \newcommand\partname{Part}
4355 %<report|book>\newcommand\chaptername{Chapter}
4356 \newcommand\appendixname{Appendix}
4357 %<!book>\newcommand\abstractname{Abstract}
4366 % \begin{macro}{\today}
4367 % This macro uses the \TeX\ primitives |\month|, |\day| and |\year|
4368 % to provide the date of the \LaTeX-run.
4370 % At |\begin{document}| this definition will be optimised
4371 % so that the names of all the `wrong' months are not stored.
4372 % This optimisation is not done here as that would `freeze'
4373 % |\today| in any special purpose format made by loading the class
4374 % file into the format file.
4375 % \changes{v1.3j}{1995/08/16}{use \cs{edef} to save a lot of space}
4376 % \changes{v1.3w}{1997/10/06}{use \cs{def} again, latex/2620}
4378 \def\today{\ifcase\month\or
4379 January\or February\or March\or April\or May\or June\or
4380 July\or August\or September\or October\or November\or December\fi
4381 \space\number\day, \number\year}
4385 % \subsection{Two column mode}
4387 % \begin{macro}{\columnsep}
4388 % This gives the distance between two columns in two column mode.
4390 \setlength\columnsep{10\p@}
4394 % \begin{macro}{\columnseprule}
4395 % This gives the width of the rule between two columns in two
4396 % column mode. We have no visible rule.
4398 \setlength\columnseprule{0\p@}
4402 % \subsection{The page style}
4403 % We have \pstyle{plain} pages in the document classes article and
4404 % report unless the user specified otherwise. In the `book'
4405 % document class we use the page style \pstyle{headings} by
4406 % default. We use arabic pagenumbers.
4408 %<!book>\pagestyle{plain}
4409 %<book>\pagestyle{headings}
4410 \pagenumbering{arabic}
4413 % \subsection{Single or double sided printing}
4416 % \changes{v1.2v}{1994/11/10}{removed typo}
4417 % When the \Lopt{twoside} option wasn't specified, we don't try to
4418 % make each page as long as all the others.
4425 % When the \Lopt{twocolumn} option was specified we call
4426 % |\twocolumn| to activate this mode. We try to make each column as
4427 % long as the others, but call |sloppy| to make our life easier.
4434 % Normally we call |\onecolumn| to initiate typesetting in one
4440 %</article|report|book>
4443 % \changes{v1.3i}{1995/08/09}{Moved code for generic class options
4444 % leqno and fleqn to kernel file}