Typos
[latex2e.git] / trunk / base / letter.dtx
blobc2ec9791b234fe6d9e83a0c244bd845ea274b367
1 % \iffalse meta-comment
3 % Copyright 1993-2016
4 % The LaTeX3 Project and any individual authors listed elsewhere
5 % in this file.
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
22 % information.
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.
28 % \fi
31 % \iffalse
32 % \section{Identification}
35 %    This document class can only be used with \LaTeXe, so we make
36 %    sure that an appropriate message is displayed when another \TeX{}
37 %    format is used.
38 %    \begin{macrocode}
39 %<+letter>\NeedsTeXFormat{LaTeX2e}[1996/06/01]
40 %    \end{macrocode}
42 %    Announce the Class name and its version.
43 %    \begin{macrocode}
44 %<+letter>\ProvidesClass{letter}
45 %<*driver>
46        \ProvidesFile{letter.drv}
47 %</driver>
48               [2014/09/29 v1.2z
49 %<+letter>               Standard LaTeX document class]
50 %    \end{macrocode}
52 % \section{The documentation driver file}
54 %    We have our own document class to format the \LaTeXe{}
55 %    documentation.
56 % \fi
57 % \changes{v1.0}{1993/12/07}{Use class ltxdoc document class}
58 % \iffalse
59 %    \begin{macrocode}
60 %<*driver>
62 \documentclass{ltxdoc}
63 %    \end{macrocode}
65 %    We don't want everything to appear in the index.
66 %    \begin{macrocode}
67 \DoNotIndex{\@Alph,\@alph,\@arabic,\@badmath}
68 \DoNotIndex{\@centercr}
69 \DoNotIndex{\@empty,\@ignoretrue}
70 \DoNotIndex{\@ixpt}
71 \DoNotIndex{\@M,\@minus,\@ne,\@plus}
72 \DoNotIndex{\\,\addtolength}
73 \DoNotIndex{\advance}
74 \DoNotIndex{\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
75 \DoNotIndex{\bullet}
76 \DoNotIndex{\cdot,\cr,\day,\DeclareOption}
77 \DoNotIndex{\def,\DocInput,\documentclass}
78 \DoNotIndex{\DoNotIndex,\egroup,\ifx,\else,\fi,\endtrivlist}
79 \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
80 \DoNotIndex{\endlist,\everycr,\ExecuteOptions}
81 \DoNotIndex{\filedate,\filename,\fileversion}
82 \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
83 \DoNotIndex{\hsize,\hskip,\hspace,\hss,\ifcase,\or,\fi}
84 \DoNotIndex{\ifvmode,\fi,\ifnum,\fi,\input}
85 \DoNotIndex{\kern,\leavevmode,\let,\leftmark}
86 \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark}
87 \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
88 \DoNotIndex{\NeedsTeXFormat,\newdimen}
89 \DoNotIndex{\newpage,\nobreak,\noindent,\number}
90 \DoNotIndex{\p@}
91 \DoNotIndex{\pagestyle,\par}
92 \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
93 \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
94 \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font}
95 \DoNotIndex{\rightmargin,\rlap,\rmfamily}
96 \DoNotIndex{\setbox,\setcounter,\setlength}
97 \DoNotIndex{\skip,\slshape,\space}
98 \DoNotIndex{\trivlist,\typeout,\tw@}
99 \DoNotIndex{\vskip,\vspace,\year,\z@}
101 \CodelineNumbered
102 \CodelineIndex
103 \EnableCrossrefs
104 \RecordChanges
105 %    \end{macrocode}
106 %    We use so many \file{docstrip} modules that we set the
107 %    \texttt{StandardModuleDepth} counter to 1.
108 %    \begin{macrocode}
109 \setcounter{StandardModuleDepth}{1}
110 %    \end{macrocode}
111 %    The following command retrieves the date and version information
112 %    from the file.
113 %    \begin{macrocode}
114 \GetFileInfo{letter.drv}
115 %    \end{macrocode}
116 %    Some commonly used abbreviations
117 %    \begin{macrocode}
118 \newcommand*{\Lopt}[1]{\textsf {#1}}
119 \newcommand*{\file}[1]{\texttt {#1}}
120 \newcommand*{\Lcount}[1]{\textsl {\small#1}}
121 \newcommand*{\pstyle}[1]{\textsl {#1}}
122 %    \end{macrocode}
123 %    We also want the full details.
124 %    \begin{macrocode}
125 \begin{document}
126 \DocInput{letter.dtx}
127 \PrintIndex
128 % ^^A\PrintChanges
129 \end{document}
130 %</driver>
131 %    \end{macrocode}
132 % \fi
134 % \changes{v1.1}{1993/12/18}{Changes to make it work with
135 %    compatibility mode.}
136 % \changes{v1.1a}{1993/12/19}{Removed float parms}
138 % \changes{v1.1c}{1994/01/17}{Moved definition of \cs{@textop} to
139 %    initialization section, to counteract setting of \cs{@texttop} in
140 %    \cs{raggedbottom}.}
142 % \changes{v1.1d}{1994/01/20}{Corrected margins: Now computed from
143 %    \cs{paperwidth} and \cs{textwidth}, so that the text is
144 %    horizontally centered.}
145 % \changes{v1.1e}{1994/02/03}{Corrected checksum}
147 % \changes{v1.2a}{1994/02/12}{Removed onecolumn and twocolumn options.}
148 % \changes{v1.2a}{1994/02/12}{Changed label producing commands in .aux
149 %    file.}
151 % \changes{v1.2b}{1994/02/28}{Moved driver further up.}
153 % \changes{v1.2c}{1994/03/08}{Always write .aux file.}
154 % \changes{v1.2f}{1994/04/29}{Use LaTeX instead of LaTeX2e in messages}
155 % \changes{v1.2f}{1994/04/29}{Removed \cs{typeout} message}
156 % \changes{v1.2g}{1994/05/01}{Removed the use of \cs{fileversion}
157 %    c.s.}
158 % \changes{v1.2j}{1994/06/01}{Corrected driver code.}
159 % \changes{v1.2k}{1994/06/17}{Various documentation enhancements}
160 % \changes{v1.2p}{1994/12/11}{Use \cs{newcommand*} to define
161 %    user-level commands that take an argument}
162 % \changes{v1.2q}{1995/05/17}{cleaned up \cs{changes entries}}
163 % \changes{v1.2q}{1995/05/18}{replaced \cs{hbox to} by \cs{hb@xt@}}
164 % \changes{v1.2r}{1995/05/23}{removed a superfluous brace}
166 % \iffalse
167 % Copyright (C) 1994 LaTeX3 project, Frank Mittelbach
168 % and Rainer Sch\"opf, all rights reserved.
169 % \fi
171 % \author{Leslie Lamport and Frank Mittelbach and Rainer Sch\"opf}
173 % \title{Standard Letter Document Class for \LaTeX{} version 2e}
176 % \MaintainedByLaTeXTeam{latex}
177 % \maketitle
178 % \tableofcontents
180 % \StopEventually
183 % \section{Initial Code}
185 %    In this part we define a few commands that are used later on.
187 % \begin{macro}{\@ptsize}
188 %    This control sequence is used to store the second digit of the
189 %    pointsize we are typesetting in. So, normally, it's value is one
190 %    of 0, 1 or 2.
191 %    \begin{macrocode}
192 %<*letter>
193 \newcommand\@ptsize{}
194 %    \end{macrocode}
195 % \end{macro}
199 % \subsection{Setting Paper Sizes}
201 %    The variables |\paperwidth| and |\paperheight| should reflect the
202 %    physical paper size after trimming. For desk printer output this
203 %    is usually the real paper size since there is no post-processing.
204 % \changes{v1.0a}{1993/12/14}{Corrected typo, A4 is not 279 mm high}
205 %    \begin{macrocode}
206 \DeclareOption{a4paper}
207    {\setlength\paperheight {297mm}%
208     \setlength\paperwidth  {210mm}}
209 \DeclareOption{a5paper}
210    {\setlength\paperheight {210mm}%
211     \setlength\paperwidth  {148mm}}
212 \DeclareOption{b5paper}
213    {\setlength\paperheight {250mm}%
214     \setlength\paperwidth  {176mm}}
215 \DeclareOption{letterpaper}
216    {\setlength\paperheight {11in}%
217     \setlength\paperwidth  {8.5in}}
218 \DeclareOption{legalpaper}
219    {\setlength\paperheight {14in}%
220     \setlength\paperwidth  {8.5in}}
221 \DeclareOption{executivepaper}
222    {\setlength\paperheight {10.5in}%
223     \setlength\paperwidth  {7.25in}}
224 %    \end{macrocode}
226 % \changes{v1.2o}{1994/08/26}{Added the option \textsf{landscape}}
227 %    The option \Lopt{landscape} switches the values of |\paperheight|
228 %    and |\paperwidth|, assuming the dimensions were given for portrait
229 %    paper.
230 %    \begin{macrocode}
231 \DeclareOption{landscape}
232    {\setlength\@tempdima   {\paperheight}%
233     \setlength\paperheight {\paperwidth}%
234     \setlength\paperwidth  {\@tempdima}}
235 %    \end{macrocode}
237 % \subsection{Choosing the type size}
239 %    The type size options are handled by defining |\@ptsize| to
240 %    contain the last digit of the size in question and branching on
241 %    |\ifcase| statements. This is done for historical reasons to stay
242 %    compatible with other packages that use the |\@ptsize| variable
243 %    to select special actions. It makes the declarations of size
244 %    options less than 10pt difficult, although one can probably use
245 %    \texttt{9} and \texttt{8} assuming that a class wont define both
246 %    \Lopt{8pt} and \Lopt{18pt} options.
248 %    \begin{macrocode}
249 \DeclareOption{10pt}{\renewcommand\@ptsize{0}}
250 \DeclareOption{11pt}{\renewcommand\@ptsize{1}}
251 \DeclareOption{12pt}{\renewcommand\@ptsize{2}}
252 %    \end{macrocode}
255 %  \subsection{Two-side or one-side printing}
257 %    Two-sided printing was not supported in the \LaTeX~2.09 version
258 %    of this document class.
259 % \changes{v1.2e}{1994/04/28}{Added oneside option and twoside option
260 %    in native mode}
261 %    \begin{macrocode}
262 \if@compatibility
263   \DeclareOption{twoside}{\@latexerr{No `twoside' layout for letters}%
264                                    \@eha}
265 \else
266   \DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
268 %    \end{macrocode}
271 %    \begin{macrocode}
272 \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
273 %    \end{macrocode}
275 %  \subsection{Draft option}
277 %    If the user requests \Lopt{draft} we show any overfull boxes.
278 %    We could probably add some more interesting stuff to this option.
279 %    \begin{macrocode}
280 \DeclareOption{draft}{\setlength\overfullrule{5pt}}
281 \DeclareOption{final}{\setlength\overfullrule{0pt}}
282 %    \end{macrocode}
285 %  \subsection{Equation numbering on the left}
287 %    The option \Lopt{leqno} can be used to get the equation numbers
288 %    on the left side of the equation.
289 % \changes{v1.1c}{1994/01/17}{Option leqno now read from
290 %    \file{leqno.clo}.}
291 %    \begin{macrocode}
292 \DeclareOption{leqno}{\input{leqno.clo}}
293 %    \end{macrocode}
295 %  \subsection{Flush left displays}
297 %    The option \Lopt{fleqn} redefines the displayed math environments
298 %    in such a way that they come out flush left, with an indentation
299 %    of |\mathindent| from the prevailing left margin.
300 % \changes{v1.1}{1993/12/18}{Corrected typo in \cs{renewcommand},
301 %    doubled hash marks.}
302 % \changes{v1.1c}{1994/01/17}{Option fleqn now read from
303 %    \file{fleqn.clo}.}
304 %    \begin{macrocode}
305 \DeclareOption{fleqn}{\input{fleqn.clo}}
306 %    \end{macrocode}
309 % \section{Executing Options}
311 %    Here we execute the default options to initialize certain
312 %    variables.
313 % \changes{v1.2e}{1994/04/28}{Added execution of `oneside' option}
314 %    \begin{macrocode}
315 \ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final}
316 %    \end{macrocode}
318 %    The |\ProcessOptions| command causes the execution of the code
319 %    for every option \Lopt{foo} which is declared and for which the
320 %    user typed the \Lopt{foo} option in his |\documentclass| command.
321 %    For every option \Lopt{bar} he typed, which is not declared, the
322 %    option is assumed to be a global option.  All options will be
323 %    passed as document options to any |\usepackage| command in the
324 %    document preamble.
325 %    \begin{macrocode}
326 \ProcessOptions
327 %    \end{macrocode}
328 %    Now that all the options have been executed we can load the
329 %    chosen class option file that contains all size dependent code.
330 %    \begin{macrocode}
331 \input{size1\@ptsize.clo}
332 %    \end{macrocode}
335 %  \section{Loading Packages}
337 %  The standard class files do not load additional packages.
340 % \section{Document Layout}
341 % \label{sec:maincode}
343 %  In this section we are finally dealing with the nasty typographical
344 %  details.
346 % \subsection{Paragraphing}
348 % \begin{macro}{\lineskip}
349 % \begin{macro}{\normallineskip}
350 %    These parameters control \TeX's behavior when two lines tend to
351 %    come too close together.
352 %    \begin{macrocode}
353 \setlength\lineskip{1\p@}
354 \setlength\normallineskip{1\p@}
355 %    \end{macrocode}
356 % \end{macro}
357 % \end{macro}
359 % \begin{macro}{\baselinestretch}
360 %    This is used as a multiplier for |\baselineskip|. The default is
361 %    to {\em not\/} stretch the baselines.
362 %    \begin{macrocode}
363 \renewcommand\baselinestretch{}
364 %    \end{macrocode}
365 % \end{macro}
367 % \begin{macro}{\parskip}
368 % \begin{macro}{\parindent}
369 %    |\parskip| gives extra vertical space between paragraphs and
370 %    |\parindent| is the width of the paragraph indentation.
371 %    Letters are typeset without paragraph indentation.
372 %    \begin{macrocode}
373 \setlength\parskip{0.7em}
374 \setlength\parindent{0\p@}
375 %    \end{macrocode}
376 % \end{macro}
377 % \end{macro}
379 % \begin{macro}{\@lowpenalty}
380 % \begin{macro}{\@medpenalty}
381 % \begin{macro}{\@highpenalty}
382 %    The commands |\nopagebreak| and |\nolinebreak| put in penalties
383 %    to discourage these breaks at the point they are put in.
384 %    They use |\@lowpenalty|, |\@medpenalty| or |\@highpenalty|,
385 %    dependent on their argument.
386 %    \begin{macrocode}
387 \@lowpenalty   51
388 \@medpenalty  151
389 \@highpenalty 301
390 %    \end{macrocode}
391 % \end{macro}
392 % \end{macro}
393 % \end{macro}
395 % \begin{macro}{\clubpenalty}
396 % \begin{macro}{\widowpenalty}
397 %    These penalties are used to discourage club and widow lines.
398 %    Because we use their default values we only show them here,
399 %    commented out.
400 %    \begin{macrocode}
401 % \clubpenalty  150
402 % \widowpenalty 150
403 %    \end{macrocode}
404 % \end{macro}
405 % \end{macro}
407 % \begin{macro}{\displaywidowpenalty}
408 % \begin{macro}{\predisplaypenalty}
409 % \begin{macro}{\postdisplaypenalty}
410 %    Discourage (but not so much) widows in front of a math display
411 %    and forbid breaking directly in front of a display. Allow break
412 %    after a display without a penalty. Again the default values are
413 %    used, therefore we only show them here.
414 %    \begin{macrocode}
415 % \displaywidowpenalty 50
416 % \predisplaypenalty   10000
417 % \postdisplaypenalty  0
418 %    \end{macrocode}
419 % \end{macro}
420 % \end{macro}
421 % \end{macro}
423 % \begin{macro}{\interlinepenalty}
424 %    Allow the breaking of a page in the middle of a paragraph.
425 %    \begin{macrocode}
426 % \interlinepenalty 0
427 %    \end{macrocode}
428 % \end{macro}
431 % \begin{macro}{\brokenpenalty}
432 %    We allow the breaking of a page after a hyphenated line.
433 %    \begin{macrocode}
434 % \brokenpenalty 0
435 %    \end{macrocode}
436 % \end{macro}
439 % \subsection{Page Layout}
441 %    All margin dimensions are measured from a point one inch from the
442 %    top and lefthand side of the page.
444 % \subsubsection{Vertical spacing}
446 % \begin{macro}{\headheight}
447 % \begin{macro}{\headsep}
448 %    The |\headheight| is the height of the box that will contain the
449 %    running head. The |\headsep| is the distance between the bottom
450 %    of the running head and the top of the text. |\topskip| is the
451 %    |\baselineskip| for the first line on a page, its value depends
452 %    on the size option that was specified. Therefore it is
453 %    initialized in one of the \file{size1x.clo} files.
454 %    \begin{macrocode}
455 \setlength\headheight{12\p@}
456 \setlength\headsep   {45\p@}
457 %    \end{macrocode}
458 % \end{macro}
459 % \end{macro}
461 % \begin{macro}{\footskip}
462 %    The distance from the baseline of the box which contains the
463 %    running footer to the baseline of last line of text is controlled
464 %    by the |\footskip|.
465 %    Bottom of page:
466 %    \begin{macrocode}
467 \setlength\footskip{25\p@}
468 %    \end{macrocode}
469 % \end{macro}
471 % \changes{v1.2n}{1994/07/13}{Setting of \cs{maxdepth} and
472 %    \cs{@maxdepth} already happens in the size.. files, removed
473 %    here}
475 % \subsubsection{The dimension of text}
477 % \begin{macro}{\textwidth}
478 %    When we are in compatibility mode we have to make sure that the
479 %    dimensions of the printed area are not different from what the
480 %    user was used to see.
482 % \changes{v1.2n}{1994/07/13}{Setting \cs{textwidth} to a fixed value
483 %    should only happen in compatibility mode}
484 %    \begin{macrocode}
485 \if@compatibility
486   \setlength\textwidth{365\p@}
487 %    \end{macrocode}
488 % \end{macro}
490 % \begin{macro}{\textheight}
491 %    Now that we have computed the width of the text, we have to take
492 %    care of the height. The |\textheight| is the height of text
493 %    (including footnotes and figures, excluding running head and
494 %    foot).
495 % \changes{v1.2n}{1994/07/13}{Setting \cs{textheight} to a fixed value
496 %    should only happen in compatibility mode}
497 %    \begin{macrocode}
498   \setlength\textheight{505\p@}
500 %    \end{macrocode}
501 %    In native mode we use the dimensions as they were computed by one
502 %    of the \Lopt{xxpt} options, together with one of the
503 %    \Lopt{..paper} options.
504 % \end{macro}
506 % \subsubsection{Margins}
508 % \begin{macro}{\oddsidemargin}
509 % \begin{macro}{\evensidemargin}
510 % \begin{macro}{\marginparwidth}
511 % \changes{v1.1d}{1994/01/20}{Corrected margins: Now computed from
512 %    \cs{paperwidth} and \cs{textwidth}.}  The values of
513 %    |\oddsidemargin| and |\evensidemargin| are computed from those of
514 %    |\paperwidth| and |\textwidth|.
515 % \changes{v1.2n}{1994/07/13}{Added fixed values for these parameters
516 %    in compatibility mode}
517 %    \begin{macrocode}
518 \if@compatibility
519   \setlength\oddsidemargin{53pt}
520   \setlength\evensidemargin{53pt}
521   \setlength\marginparwidth{90pt}
522 \else
523   \setlength\@tempdima{\paperwidth}
524   \addtolength\@tempdima{-2in}
525   \addtolength\@tempdima{-\textwidth}
526   \setlength\oddsidemargin   {.5\@tempdima}
527   \setlength\evensidemargin  {\oddsidemargin}
528   \setlength\marginparwidth  {90\p@}
530 %    \end{macrocode}
531 % \end{macro}
532 % \end{macro}
533 % \end{macro}
535 % \begin{macro}{\marginparsep}
536 % \begin{macro}{\marginparpush}
537 %    The horizontal space between the main text and marginal notes is
538 %    determined by |\marginparsep|, the minimum vertical separation
539 %    between two marginal notes is controlled by |\marginparpush|.
540 %    \begin{macrocode}
541 \setlength\marginparsep {11\p@}
542 \setlength\marginparpush{5\p@}
543 %    \end{macrocode}
544 % \end{macro}
545 % \end{macro}
547 % \begin{macro}{\topmargin}
548 %    The |\topmargin| is the distance between the top of `the
549 %    printable area' --which is 1 inch below the top of the paper--
550 %    and the top of the box which contains the running head.
552 %    It can now be computed from the values set above.
553 %    \begin{macrocode}
554 \setlength\topmargin{27pt}
555 %    \end{macrocode}
556 % \end{macro}
559 % \subsubsection{Footnotes}
561 % \begin{macro}{\footnotesep}
562 %    |\footnotesep| is the height of the strut placed at the beginning
563 %    of every footnote. It equals the  height of a normal
564 %    |\footnotesize| strut in this
565 %    class, thus no extra space occurs between footnotes.
566 %    \begin{macrocode}
567 \setlength\footnotesep{12\p@}
568 %    \end{macrocode}
569 % \end{macro}
571 % \begin{macro}{\footins}
572 %    |\skip\footins| is the space between the last line of the main
573 %    text and the top of the first footnote.
574 %    \begin{macrocode}
575 \setlength{\skip\footins}{10\p@ \@plus 2\p@ \@minus 4\p@}
576 %    \end{macrocode}
577 % \end{macro}
580 % \subsection{Page Styles}
582 %    The page style \pstyle{foo} is defined by defining the command
583 %    |\ps@foo|.   This command should make only local definitions.
584 %    There should be no stray spaces in the definition, since they
585 %    could lead to mysterious extra spaces in the output (well, that's
586 %    something that should be always avoided).
588 % \begin{macro}{\@evenhead}
589 % \begin{macro}{\@oddhead}
590 % \begin{macro}{\@evenfoot}
591 % \begin{macro}{\@oddfoot}
592 %    The |\ps@...| command defines the macros |\@oddhead|,
593 %    |\@oddfoot|, |\@evenhead|, and |\@evenfoot| to define the running
594 %    heads and feet---e.g., |\@oddhead| is the macro to produce the
595 %    contents of the heading box for odd-numbered pages.  It is called
596 %    inside an |\hbox| of width |\textwidth|.
597 % \end{macro}
598 % \end{macro}
599 % \end{macro}
600 % \end{macro}
602 % \subsubsection{Marking conventions}
604 %    To make headings determined by the sectioning commands, the page
605 %    style defines the commands |\chaptermark|, |\sectionmark|,
606 %    \ldots, where |\chaptermark{|\meta{text}|}| is called by
607 %    |\chapter| to set a mark, and so on.
609 %    The |\...mark| commands and the |\...head| macros are defined
610 %    with the help of the following macros.  (All the |\...mark|
611 %    commands should be initialized to no-ops.)
613 %    \LaTeX{} extends \TeX's |\mark| facility by producing two kinds
614 %    of marks, a `left' and a `right' mark, using the following
615 %    commands:
616 %    \begin{flushleft}
617 %     |\markboth{|\meta{left}|}{|\meta{right}|}|: Adds both marks.
619 %     |\markright{|\meta{right}|}|: Adds a `right' mark.
621 %     |\leftmark|: Used in the |\@oddhead|, |\@oddfoot|, |\@evenhead|
622 %                  or |\@evenfoot| macros, it gets the current `left'
623 %                  mark.  |\leftmark| works like \TeX's |\botmark|
624 %                  command.
626 %     |\rightmark|: Used in the |\@oddhead|, |\@oddfoot|, |\@evenhead|
627 %                   or  |\@evenfoot| macros, it gets the current
628 %                   `right' mark. |\rightmark| works like \TeX's
629 %                   |\firstmark| command.
630 %    \end{flushleft}
632 %    The marking commands work reasonably well for right marks
633 %    `numbered within' left marks--e.g., the left mark is changed by a
634 %    |\chapter| command and the right mark is changed by a |\section|
635 %    command.  However, it does produce somewhat anomalous results if
636 %    two |\markboth|'s occur on the same page.
639 %    Commands like |\tableofcontents| that should set the marks in some
640 %    page styles use a |\@mkboth| command, which is |\let| by the
641 %    pagestyle command (|\ps@...|)  to |\markboth| for setting the
642 %    heading or to |\@gobbletwo| to do nothing.
645 % \subsubsection{Defining the page styles}
646 % \label{sec:pagestyle}
648 %    The pagestyles \pstyle{empty} and \pstyle{plain} are defined in
649 %    the \LaTeX{} kernel (\file{ltpage.dtx}), but these definitions
650 %    are changed to a simpler version for this document class.
652 % \begin{macro}{\ps@headings}
653 %    The definition of the page style \pstyle{headings} has to be
654 %    different for two sided printing than it is for one sided
655 %    printing.
657 % \changes{v1.2e}{1994/04/28}{Added twoside support}
658 %    \begin{macrocode}
659 \if@twoside
660   \def\ps@headings{%
661 %    \end{macrocode}
662 %    The running feet are empty in this page style.
663 %    \begin{macrocode}
664       \let\@oddfoot\@empty\let\@evenfoot\@empty
665 %    \end{macrocode}
666 %    The running head contains some information about this letter. The
667 %    head is the same for even and odd pages.
668 % \changes{v1.2i}{1994/05/12}{Made running heads the same on odd and
669 %    even pages}
670 % \changes{v1.2k}{1994/06/17}{Added a missing brace}
671 %    \begin{macrocode}
672       \def\@oddhead{\slshape\headtoname{} \ignorespaces\toname
673                     \hfil \@date
674                     \hfil \pagename{} \thepage}%
675       \let\@evenhead\@oddhead}
676 %    \end{macrocode}
677 %    For one sided printing we don't need to define |\@evenhead| so
678 %    the definition is somewhat simpler.
679 %    \begin{macrocode}
680 \else
681   \def\ps@headings{%
682       \let\@oddfoot\@empty
683       \def\@oddhead{\slshape\headtoname{} \ignorespaces\toname
684                     \hfil \@date
685                     \hfil \pagename{} \thepage}}
687 %    \end{macrocode}
688 % \end{macro}
691 % \begin{macro}{\ps@empty}
692 %    The definition of the page style \pstyle{empty} is simple:
693 %    No running head or foot at all.
694 % \changes{v1.2e}{1994/04/28}{Also make even feet and head empty}
695 %    \begin{macrocode}
696 \def\ps@empty{%
697       \let\@oddfoot\@empty\let\@oddhead\@empty
698       \let\@evenfoot\@empty\let\@evenhead\@empty}
699 %    \end{macrocode}
700 % \end{macro}
702 % \begin{macro}{\ps@firstpage}
703 %    The page style \pstyle{firstpage} puts the telephone number
704 %    in the proper place for the letterhead. It should be adapted
705 %    to site conventions. The size of the number is determined
706 %    depending on the main size.
707 %    \begin{macrocode}
708 \def\ps@firstpage{%
709      \let\@oddhead\@empty
710      \def\@oddfoot{\raisebox{-45\p@}[\z@]{%
711         \hb@xt@\textwidth{\hspace*{100\p@}%
712           \ifcase \@ptsize\relax
713              \normalsize
714           \or
715              \small
716           \or
717              \footnotesize
718           \fi
719         \fromlocation \hfill \telephonenum}}\hss}}
720 %    \end{macrocode}
721 % \end{macro}
723 % \begin{macro}{\ps@plain}
724 %    The definition of the page style \pstyle{plain} is again simple.
725 % \changes{v1.2e}{1994/04/28}{Added definition of \cs{@evenfoot}
726 %    because of twoside option}
727 % \changes{v1.2s}{1995/05/25}{replace \cs{rmfamily} with
728 %    \cs{normalfont} (PR 1578)}
729 %    \begin{macrocode}
730 \def\ps@plain{%
731       \let\@oddhead\@empty
732       \def\@oddfoot{\normalfont\hfil\thepage\hfil}%
733       \def\@evenfoot{\normalfont\hfil\thepage\hfil}}
734 %    \end{macrocode}
735 % \end{macro}
739 % \section{Document Markup}
741 % \subsection{Global Declarations}
743 % \begin{macro}{\name}
744 % \begin{macro}{\signature}
745 % \begin{macro}{\address}
746 % \begin{macro}{\location}
747 % \begin{macro}{\telephone}
748 % The following declarations, shown with examples, give information
749 % about the sender:
750 % \begin{itemize}
751 %   \item |\name{Dr. L. User}| : to be used for the return address on
752 %          the envelope.
753 %    \begin{macrocode}
754 \newcommand*{\name}[1]{\def\fromname{#1}}
755 %    \end{macrocode}
756 %   \item |\signature{Larry User}| : goes after the closing.
757 %    \begin{macrocode}
758 \newcommand*{\signature}[1]{\def\fromsig{#1}}
759 %    \end{macrocode}
760 %   \item |\address{3245 Foo St.\\Gnu York}| : used as the return
761 %          address in the
762 %          letter and on the envelope.  If not declared, then an
763 %          institutional standard address is used.
764 %    \begin{macrocode}
765 \newcommand*{\address}[1]{\def\fromaddress{#1}}
766 %    \end{macrocode}
767 %   \item |\location{Room 374}| : Acts as modifier to the standard
768 %          institutional address.
769 %    \begin{macrocode}
770 \newcommand*{\location}[1]{\def\fromlocation{#1}}
771 %    \end{macrocode}
772 %   \item |\telephone{(415)123-4567}| : Just in case some style puts it
773 %          on the letter.
774 % \changes{v1.2m}{1994/06/23}{Removed typo (\#[] instead of [1])}
775 %    \begin{macrocode}
776 \newcommand*{\telephone}[1]{\def\telephonenum{#1}}
777 %    \end{macrocode}
778 % \end{itemize}
779 % \end{macro}
780 % \end{macro}
781 % \end{macro}
782 % \end{macro}
783 % \end{macro}
785 % \begin{macro}{\fromname}
786 % \begin{macro}{\fromsig}
787 % \begin{macro}{\fromaddress}
788 % \begin{macro}{\fromlocation}
789 % \begin{macro}{\telephonenum}
790 %    We make sure that the internal control sequences that are used to
791 %    store the information exist and are empty.
792 %    \begin{macrocode}
793 \name{}
794 \signature{}
795 \address{}
796 \location{}
797 \telephone{}
798 %    \end{macrocode}
799 % \end{macro}
800 % \end{macro}
801 % \end{macro}
802 % \end{macro}
803 % \end{macro}
805 % \begin{macro}{\makelabels}
806 %     The |\makelabels| declaration causes mailing labels to be made.
807 %    \begin{macrocode}
808 \newcommand*{\makelabels}{%
809 %    \end{macrocode}
810 %    At the beginning of the document, we need to activate the
811 %    |\@mlabel| and |\@startlabels| commands, as well as  write
812 %    |\@startlabels| to the |.aux| file.
813 %    \begin{macrocode}
814   \AtBeginDocument{%
815      \let\@startlabels\startlabels
816      \let\@mlabel\mlabel
817      \if@filesw
818        \immediate\write\@mainaux{\string\@startlabels}\fi}%
819 %    \end{macrocode}
820 %    At the end of the document we need to write |\clearpage| to the
821 %    |.aux| file.
822 %    \begin{macrocode}
823   \AtEndDocument{%
824      \if@filesw\immediate\write\@mainaux{\string\clearpage}\fi}}
825 %    \end{macrocode}
826 %    |\makelabels| is allowed only before the |\begin{document}|
827 %    command.
828 %    \begin{macrocode}
829 \@onlypreamble\makelabels
830 %    \end{macrocode}
831 % \end{macro}
833 % \subsection{The generic letter commands}
835 % \begin{environment}{letter}
836 %     The letter environment creates a new letter, starting from page
837 %     $1$, with footnotes starting from $1$ as well.
838 %     (The first page is unnumbered.) It has a single argument, which
839 %     is the addressee and his address, as in
840 %\begin{verbatim}
841 %  \begin{letter}{Sam Jones \\
842 %                 Institute for Retarded Study\\
843 %                 Princeton, N.J.}
844 %\end{verbatim}
845 %     Local declarations, such as |\address|, can follow the
846 %     |\begin{letter}|.
847 % \changes{v1.2e}{1994/04/28}{When printing twosided a new letter
848 %    shouldn't start on the back of the previous one. Added insertion
849 %    of a blank page when necessary.}
850 % \changes{v1.2z}{1999/04/29}{Reset footnote counter to 0, (PR 2957).}
851 %    \begin{macrocode}
852 \newenvironment{letter}[1]
853   {\newpage
854     \if@twoside \ifodd\c@page
855                 \else\thispagestyle{empty}\null\newpage\fi
856     \fi
857     \c@page \@ne
858     \c@footnote \z@
859     \interlinepenalty=200 % smaller than the TeXbook value
860 %    \end{macrocode}
861 %    The |\leavevmode| and |\ignorespaces| commands are there for
862 %    protecting against an empty argument.
863 %    \begin{macrocode}
864     \@processto{\leavevmode\ignorespaces #1}}
865 %    \end{macrocode}
866 %    The end of the environment possibly writes the address
867 %    information on the \file{.aux} file.
868 % \changes{v1.2p}{1994/12/11}{No longer redefine \cs{protect} but use
869 %    one of the available settings}
870 %    \begin{macrocode}
871   {\stopletter\@@par\pagebreak\@@par
872     \if@filesw
873       \begingroup
874         \let\\=\relax
875         \let\protect\@unexpandable@protect
876         \immediate\write\@auxout{%
877           \string\@mlabel{\returnaddress}{\toname\\\toaddress}}%
878       \endgroup
879     \fi}
880 %    \end{macrocode}
881 % \end{environment}
884 % \begin{macro}{\@processto}
885 % \begin{macro}{\@xproc}
886 % \begin{macro}{\@yproc}
887 %    |\@processto| gets the |\toname| and |\toaddress| from the letter
888 %    environment's macro argument. |\@xproc| and |\@yproc| are auxiliary
889 %    macros.
890 %    \begin{macrocode}
891 \long\def\@processto#1{%
892   \@xproc #1\\@@@%
893   \ifx\toaddress\@empty
894   \else
895     \@yproc #1@@@%
896   \fi}
897 %    \end{macrocode}
899 %    \begin{macrocode}
900 \long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
901 %    \end{macrocode}
903 %    \begin{macrocode}
904 \long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
905 %    \end{macrocode}
906 % \end{macro}
907 % \end{macro}
908 % \end{macro}
911 % \subsubsection{Page breaking control}
913 % \begin{macro}{\stopbreaks}
914 %    When the command |\stopbreaks| is issued no page breaks should
915 %    occur until |\startbreaks| is called.
916 %    \begin{macrocode}
917 \newcommand*{\stopbreaks}{%
918   \interlinepenalty\@M
919   \def\par{\@@par\nobreak}%
920   \let\\\@nobreakcr
921   \let\vspace\@nobreakvspace}
922 %    \end{macrocode}
923 % \end{macro}
925 % \begin{macro}{\nobreakvspace}
926 % \changes{v1.2t}{1996/01/20}{Made robust pr/2049}
927 % \begin{macro}{\@nobreakvspacex}
928 % \begin{macro}{\@nobreakcr}
929 %    These are needed by |\stopbreaks|
930 %    \begin{macrocode}
931 \DeclareRobustCommand\@nobreakvspace
932    {\@ifstar\@nobreakvspacex\@nobreakvspacex}
933 %    \end{macrocode}
935 %    \begin{macrocode}
936 \def\@nobreakvspacex#1{%
937   \ifvmode
938     \nobreak\vskip #1\relax
939   \else
940     \@bsphack\vadjust{\nobreak\vskip #1}\@esphack
941   \fi}
942 %    \end{macrocode}
944 % \changes{v1.2w}{1997/01/07}
945 %     {Simplify definition, for ltspace 1.2u. /2341}
946 %    \begin{macrocode}
947 \def\@nobreakcr{\@ifstar{\@normalcr*}{\@normalcr*}}
948 %    \end{macrocode}
949 % \end{macro}
950 % \end{macro}
951 % \end{macro}
953 % \begin{macro}{\startbreaks}
954 %    This cancels the effect of |\stopbreaks|.
955 %    \begin{macrocode}
956 \newcommand*{\startbreaks}{%
957   \let\\\@normalcr
958   \interlinepenalty 200%
959   \def\par{\@@par\penalty 200\relax}}
960 %    \end{macrocode}
961 % \end{macro}
964 % \begin{macro}{\longindentation}
965 %    The size of the indent to use before the closing of the letter.
966 %    \begin{macrocode}
967 \newdimen\longindentation
968 \longindentation=.5\textwidth
969 %    \end{macrocode}
970 % \end{macro}
972 % \begin{macro}{\indentedwidth}
973 %    The width of the closing of the letter.
974 %    \begin{macrocode}
975 \newdimen\indentedwidth
976 \indentedwidth=\textwidth
977 \advance\indentedwidth -\longindentation
978 %    \end{macrocode}
979 % \end{macro}
981 % \begin{macro}{\opening}
982 %     Text is begun with the |\opening| command, whose argument
983 %     generates the salutation, as in
984 %\begin{verbatim}
985 %      \opening{Dear Henry,}
986 %\end{verbatim}
987 %    This should produce everything up to and including the
988 %    `Dear Henry,' and a |\par| command that follows.
989 %    Since there's a |\vfil| at the bottom of every page,
990 %    it can add vertical fill to position a short letter.
991 %    It should use the following commands:
992 %   \begin{itemize}
993 %   \item |\toname| : name part of `to' address.
994 %                     Will be one line long.
995 %   \item |\toaddress| : address part of `to' address.
996 %                        The lines separated by |\\|.
997 %   \item |\fromname| : name of sender.
998 %   \item |\fromaddress| : argument of current |\address|
999 %     declaration-- null if none.  Should use standard institutional
1000 %     address if null.
1001 %   \item |\fromlocation| : argument of current |\location|
1002 %     declaration--null if none.
1003 %   \item |\telephonenum| : argument of current |\telephone|
1004 %     declaration--null if none.
1005 %    \end{itemize}
1006 %    \begin{macrocode}
1007 \newcommand*{\opening}[1]{\ifx\@empty\fromaddress
1008   \thispagestyle{firstpage}%
1009     {\raggedleft\@date\par}%
1010   \else  % home address
1011     \thispagestyle{empty}%
1012 %    \end{macrocode}
1013 % \changes{v1.2y}{1998/05/10}{Avoid space at right of tabular
1014 %    (pr2794)}
1015 %    \begin{macrocode}
1016     {\raggedleft\begin{tabular}{l@{}}\ignorespaces
1017       \fromaddress \\*[2\parskip]%
1018       \@date \end{tabular}\par}%
1019   \fi
1020   \vspace{2\parskip}%
1021   {\raggedright \toname \\ \toaddress \par}%
1022   \vspace{2\parskip}%
1023   #1\par\nobreak}
1024 %    \end{macrocode}
1025 % \end{macro}
1027 % \begin{macro}{\closing}
1028 %     The body of the letter follows, ended by a |\closing| command,
1029 %     as in
1030 %\begin{verbatim}
1031 %            \closing{Yours truly,}
1032 %\end{verbatim}
1033 %     This command generates the closing matter, and the signature.
1034 %     An obvious thing to do is to use a |\parbox| for the closing
1035 %     and the signature.  Should use the following:
1036 %    \begin{itemize}
1037 %      \item |\fromsig| : argument of current |\signature| declaration
1038 %                   or, if null, the |\fromname|.
1039 %      \item |\stopbreaks| : a macro that inhibits page breaking.
1040 %    \end{itemize}
1041 %    \begin{macrocode}
1042 \newcommand{\closing}[1]{\par\nobreak\vspace{\parskip}%
1043   \stopbreaks
1044   \noindent
1045   \ifx\@empty\fromaddress\else
1046   \hspace*{\longindentation}\fi
1047   \parbox{\indentedwidth}{\raggedright
1048        \ignorespaces #1\\[6\medskipamount]%
1049        \ifx\@empty\fromsig
1050            \fromname
1051        \else \fromsig \fi\strut}%
1052    \par}
1053 %    \end{macrocode}
1054 % \end{macro}
1056 % \begin{macro}{\smallskipamount}
1057 % \begin{macro}{\medskipamount}
1058 % \begin{macro}{\bigskipamount}
1059 %   Of these three, only |\medskipmount| is actually used above.
1060 %    \begin{macrocode}
1061 %\smallskipamount=.5\parskip
1062 \medskipamount=\parskip
1063 %\bigskipamount=2\parskip
1064 %    \end{macrocode}
1065 % \end{macro}
1066 % \end{macro}
1067 % \end{macro}
1069 % \begin{macro}{\cc}
1070 % \begin{macro}{\encl}
1071 % \begin{macro}{\ps}
1072 %    After the |\closing| you can put arbitrary stuff, which is typeset
1073 %    with zero |\parindent| and no page breaking.  Commands designed
1074 %    for use after the closing are:
1075 %    \begin{verbatim}
1076 %  \cc{Tinker\\Evers\\Chance}
1077 %\end{verbatim}
1078 %    which produces:\\
1079 %    \begin{tabular}{ll}
1080 %        cc: & Tinker\\
1081 %            & Evers\\
1082 %            & Chance
1083 %    \end{tabular}\\
1084 %    Note the obvious use of |\parbox|.
1085 % \changes{v1.2s}{1995/05/25}{replace \cs{reset@font} with
1086 %    \cs{normalfont}; remove \cs{rm}}
1087 %    \begin{macrocode}
1088 \newcommand*{\cc}[1]{%
1089   \par\noindent
1090   \parbox[t]{\textwidth}{%
1091     \@hangfrom{\normalfont\ccname: }%
1092     \ignorespaces #1\strut}\par}
1093 %    \end{macrocode}
1094 %\begin{verbatim}
1095 %  \encl{Foo(2)\\Bar}
1096 %\end{verbatim}
1097 %    which produces:\\
1098 %    \begin{tabular}{ll}
1099 %        encl: & Foo(2)\\
1100 %              & Bar
1101 %    \end{tabular}
1102 %    \begin{macrocode}
1103 \newcommand*{\encl}[1]{%
1104   \par\noindent
1105   \parbox[t]{\textwidth}{%
1106     \@hangfrom{\normalfont\enclname: }%
1107     \ignorespaces #1\strut}\par}
1108 %    \end{macrocode}
1110 %    The only thing |\ps| needs to do is call |\startbreaks|,
1111 %        which allows page breaking again.
1112 %    \begin{macrocode}
1113 \newcommand*{\ps}{\par\startbreaks}
1114 %    \end{macrocode}
1115 % \end{macro}
1116 % \end{macro}
1117 % \end{macro}
1120 % \begin{macro}{\stopletter}
1121 %     The |\stopletter| command is called by |\endletter| to do the
1122 %     following:
1123 %    \begin{itemize}
1124 %     \item Add any desired  fill  or other material at the end of the
1125 %       letter.
1126 %     \item Define |\returnaddress| to be the return address for the
1127 %       mailing label.
1128 %       More precisely, it is the first argument of the |\mlabel|
1129 %       command described below. It should be defined to null if the
1130 %       return address doesn't appear on the labels.  Any command,
1131 %       other than |\\|, that should not be expanded until the |\mlabel|
1132 %       command is actually executed must be preceded by |\protect|.
1133 %       Whenever possible, |\protect| commands in the definition of
1134 %       |\returnaddress|---it's much more efficient that way.  In
1135 %       particular, when the standard return address is used, you
1136 %       should define |\returnaddress| to something like
1137 %       |\protect\standardreturnaddress|.
1138 %    \end{itemize}
1139 %    \begin{macrocode}
1140 \newcommand*{\stopletter}{}
1141 %    \end{macrocode}
1142 % \end{macro}
1144 % \subsection{Customizing the labels}
1146 %    Commands for generating the labels are put on the \file{.aux} file,
1147 %    which is read in and processed by the |\end{document}| command.
1148 %    You have to define the following two commands:
1149 %    \begin{itemize}
1150 %    \item |\startlabels| : Should reset the page layout parameters if
1151 %      necessary.
1152 %    \item |\mlabel|\marg{return address}\marg{to address} : Command to
1153 %      generate a single label.
1154 %    \end{itemize}
1158 % \begin{macro}{\returnaddress}
1159 %    The return address for the mailing labels can be stored in this
1160 %    macro.
1161 %    \begin{macrocode}
1162 \newcommand*{\returnaddress}{}
1163 %    \end{macrocode}
1164 % \end{macro}
1166 % \begin{macro}{\labelcount}
1167 %    A register to count the labels
1168 %    \begin{macrocode}
1169 \newcount\labelcount
1170 %    \end{macrocode}
1171 % \end{macro}
1173 % \begin{macro}{\startlabels}
1174 %     The following |\startlabels| command sets things up for
1175 %     producing labels in two columns of five 2" $\times$ 4-1/4"
1176 %     labels each, suitable for reproducing onto Avery brand number
1177 %     5352 address labels.
1178 % \changes{v1.2q}{1995/03/14}{changed value of \cs{columnsep} by 1pt}
1179 %    \begin{macrocode}
1180 \newcommand*{\startlabels}{\labelcount\z@
1181   \pagestyle{empty}%
1182   \let\@texttop\relax
1183   \topmargin -50\p@
1184   \headsep \z@
1185   \oddsidemargin -35\p@
1186   \evensidemargin -35\p@
1187   \textheight 10in
1188   \@colht\textheight  \@colroom\textheight \vsize\textheight
1189   \textwidth 550\p@
1190   \columnsep 26\p@
1191   \ifcase \@ptsize\relax
1192     \normalsize
1193   \or
1194     \small
1195   \or
1196     \footnotesize
1197   \fi
1198   \baselineskip \z@
1199   \lineskip \z@
1200   \boxmaxdepth \z@
1201   \parindent \z@
1202   \twocolumn\relax}
1203 %    \end{macrocode}
1204 % \end{macro}
1206 % \begin{macro}{\@startlabels}
1207 %    |\@startlabels| is the command name that is written to the |.aux|
1208 %    file. It is a no-op at first, and defined to be the same as
1209 %    |\startlabels| in the |\begin{document}| hook.
1210 %    \begin{macrocode}
1211 \let\@startlabels=\relax
1212 %    \end{macrocode}
1213 % \end{macro}
1215 % \begin{macro}{\mlabel}
1216 %    This command prints an address label; it is used when the user
1217 %    specified |\makelabels| in the preamble of his document. The
1218 %    command |\mlabel| takes two arguments; the second argument is
1219 %    supposed to be the address; the first argument can be used to
1220 %    print a return address. In this document class we ignore the
1221 %    first argument. Also the labels are supposed to be 2~inch high
1222 %    and 3.6~inch wide. When your address labels have a different you
1223 %    will have to define your own |\mlabel| command.
1224 % \changes{v1.2p}{1994/12/11}{Redefined \cs{mlabel} to not use the
1225 %    \cs{setbox} primitive}
1226 % \changes{v1.2q}{1995/03/14}{changed width of the labels slightly to
1227 %    prevent \LaTeX\ stuffing two on each line}
1228 %    \begin{macrocode}
1229 \newcommand*{\mlabel}[2]{%
1230   \parbox[b][2in][c]{262\p@}{\strut\ignorespaces #2}%
1231   }
1232 %    \end{macrocode}
1233 % \end{macro}
1235 % \begin{macro}{\@mlabel}
1236 %    The macro |\@mlabel| is written to the \file{.aux} file instead
1237 %    of |\mlabel|.  This allows us to make it a no-op by default,
1238 %    and then activate it in the |\begin{document}| hook.
1239 %    \begin{macrocode}
1240 \let\@mlabel=\@gobbletwo
1241 %    \end{macrocode}
1242 % \end{macro}
1245 % \subsection{Lists}
1247 % \subsubsection{General List Parameters}
1249 %    The following commands are used to set the default values for the
1250 %    list environment's parameters. See the \LaTeX{} manual for an
1251 %    explanation of the meanings of the parameters.  Defaults for the
1252 %    list environment are set as follows.  First, |\rightmargin|,
1253 %    |\listparindent| and |\itemindent| are set to 0pt.  Then, for a
1254 %    \texttt{K}th level list, the command |\@listK| is called, where
1255 %    `\texttt{K}' denotes `\texttt{i}', `\texttt{ii}', ... ,
1256 %    `\texttt{vi}'.  (I.e., |\@listiii| is called for a third-level
1257 %    list.)  By convention, |\@listK| should set |\leftmargin| to
1258 %    |\leftmarginK|.
1260 % \begin{macro}{\leftmargin}
1261 % \begin{macro}{\leftmargini}
1262 % \begin{macro}{\leftmarginii}
1263 % \begin{macro}{\leftmarginiii}
1264 % \begin{macro}{\leftmarginiv}
1265 % \begin{macro}{\leftmarginv}
1266 % \begin{macro}{\leftmarginvi}
1267 % For efficiency, level-one list's values are defined at top level, and
1268 % |\@listi| is defined to set only |\leftmargin|.
1269 %    \begin{macrocode}
1270 \setlength\leftmargini  {2.5em}
1271 %    \end{macrocode}
1272 %    The following three are calculated so  that they are larger than
1273 %    the sum of |\labelsep| and the width of the default labels (which
1274 %    are `(m)', `vii.' and `M.').
1275 %    \begin{macrocode}
1276 \setlength\leftmarginii  {2.2em}
1277 \setlength\leftmarginiii {1.87em}
1278 \setlength\leftmarginiv  {1.7em}
1279 \setlength\leftmarginv  {1em}
1280 \setlength\leftmarginvi {1em}
1281 %    \end{macrocode}
1282 %    Here we set the top level leftmargin.
1283 %    \begin{macrocode}
1284 \setlength\leftmargin    {\leftmargini}
1285 %    \end{macrocode}
1286 % \end{macro}
1287 % \end{macro}
1288 % \end{macro}
1289 % \end{macro}
1290 % \end{macro}
1291 % \end{macro}
1292 % \end{macro}
1294 % \begin{macro}{\labelsep}
1295 % \begin{macro}{\labelwidth}
1296 %    |\labelsep| is the distance between the label and the text of an
1297 %    item; |\labelwidth| is the width of the label.
1298 %    \begin{macrocode}
1299 \setlength  \labelsep  {5\p@}
1300 \setlength  \labelwidth{\leftmargini}
1301 \addtolength\labelwidth{-\labelsep}
1302 %    \end{macrocode}
1303 % \end{macro}
1304 % \end{macro}
1306 % \begin{macro}{\partopsep}
1307 %    When the user leaves a blank line before the environment an extra
1308 %    vertical space of |\partopsep| is inserted, in addition to
1309 %    |\parskip| and |\topsep|.
1310 %    \begin{macrocode}
1311 \setlength\partopsep{0\p@}
1312 %    \end{macrocode}
1313 % \end{macro}
1315 % \begin{macro}{\@beginparpenalty}
1316 % \begin{macro}{\@endparpenalty}
1317 %    These penalties are inserted before and after a list or paragraph
1318 %    environment. They are set to a bonus value to encourage page
1319 %    breaking at these points.
1320 % \begin{macro}{\@itempenalty}
1321 %    This penalty is inserted between list items.
1322 %    \begin{macrocode}
1323 \@beginparpenalty -\@lowpenalty
1324 \@endparpenalty   -\@lowpenalty
1325 \@itempenalty     -\@lowpenalty
1326 %    \end{macrocode}
1327 % \end{macro}
1328 % \end{macro}
1329 % \end{macro}
1331 % \begin{macro}{\@listI}
1332 % \begin{macro}{\@listi}
1333 % |\@listI| defines top level and |\@listi| values of
1334 % |\leftmargin|, |\parsep|, |\topsep|, and |\itemsep|
1336 %    \begin{macrocode}
1337 \def\@listI{\setlength\leftmargin{\leftmargini}%
1338             \setlength\parsep {0\p@}%
1339             \setlength\topsep {.4em}%
1340             \setlength\itemsep{.4em}}
1341 \let\@listi\@listI
1342 %    \end{macrocode}
1343 %    We have to initialize these parameters.
1344 %    \begin{macrocode}
1345 \@listi
1346 %    \end{macrocode}
1347 % \end{macro}
1348 % \end{macro}
1350 % \begin{macro}{\@listii}
1351 % \begin{macro}{\@listiii}
1352 % \begin{macro}{\@listiv}
1353 % \begin{macro}{\@listv}
1354 % \begin{macro}{\@listvi}
1355 %    Here are the same macros for the higher level lists.
1356 %    \begin{macrocode}
1357 \def\@listii {\setlength  \leftmargin{\leftmarginii}%
1358               \setlength  \labelwidth{\leftmarginii}%
1359               \addtolength\labelwidth{-\labelsep}}
1360 \def\@listiii{\setlength  \leftmargin{\leftmarginiii}%
1361               \setlength  \labelwidth{\leftmarginiii}%
1362               \addtolength\labelwidth{-\labelsep}%
1363               \setlength  \topsep    {.2em}%
1364               \setlength  \itemsep   {\topsep}}
1365 \def\@listiv {\setlength  \leftmargin{\leftmarginiv}%
1366               \setlength  \labelwidth{\leftmarginiv}%
1367               \addtolength\labelwidth{-\labelsep}}
1368 \def\@listv  {\setlength  \leftmargin{\leftmarginv}%
1369               \setlength  \labelwidth{\leftmarginv}%
1370               \addtolength\labelwidth{-\labelsep}}
1371 \def\@listvi {\setlength  \leftmargin{\leftmarginvi}%
1372               \setlength  \labelwidth{\leftmarginvi}%
1373               \addtolength\labelwidth{-\labelsep}}
1374 %    \end{macrocode}
1375 % \end{macro}
1376 % \end{macro}
1377 % \end{macro}
1378 % \end{macro}
1379 % \end{macro}
1381 % \subsubsection{Enumerate}
1383 %    The enumerate environment uses  four counters: \Lcount{enumi},
1384 %    \Lcount{enumii}, \Lcount{enumiii} and \Lcount{enumiv}, where
1385 %    \Lcount{enumN} controls the numbering of the Nth level
1386 %    enumeration.
1388 % \begin{macro}{\theenumi}
1389 % \begin{macro}{\theenumii}
1390 % \begin{macro}{\theenumiii}
1391 % \begin{macro}{\theenumiv}
1392 %    The counters are already defined in the \LaTeX{} kernel
1393 %    (\file{ltlists.dtx}), but their representation is changed here.
1395 %    \begin{macrocode}
1396 \renewcommand\theenumi{\@arabic\c@enumi}
1397 \renewcommand\theenumii{\@alph\c@enumii}
1398 \renewcommand\theenumiii{\@roman\c@enumiii}
1399 \renewcommand\theenumiv{\@Alph\c@enumiv}
1400 %    \end{macrocode}
1401 % \end{macro}
1402 % \end{macro}
1403 % \end{macro}
1404 % \end{macro}
1406 % \begin{macro}{\labelenumi}
1407 % \begin{macro}{\labelenumii}
1408 % \begin{macro}{\labelenumiii}
1409 % \begin{macro}{\labelenumiv}
1410 %    The commands |\labelenumi| ... |\labelenumiv| generate the label
1411 %    for each item.
1412 %    \begin{macrocode}
1413 \newcommand\labelenumi{\theenumi.}
1414 \newcommand\labelenumii{(\theenumii)}
1415 \newcommand\labelenumiii{\theenumiii.}
1416 \newcommand\labelenumiv{\theenumiv.}
1417 %    \end{macrocode}
1418 % \end{macro}
1419 % \end{macro}
1420 % \end{macro}
1421 % \end{macro}
1423 % \begin{macro}{\p@enumii}
1424 % \begin{macro}{\p@enumiii}
1425 % \begin{macro}{\p@enumiv}
1426 %    The expansion of |\p@enumN||\theenumN| defines the output of a
1427 %    |\ref| command when referencing an item of the Nth level of an
1428 %    enumerated list.
1429 %    \begin{macrocode}
1430 \renewcommand\p@enumii{\theenumi}
1431 \renewcommand\p@enumiii{\theenumi(\theenumii)}
1432 \renewcommand\p@enumiv{\p@enumiii\theenumiii}
1433 %    \end{macrocode}
1434 % \end{macro}
1435 % \end{macro}
1436 % \end{macro}
1438 % \subsubsection{Itemize}
1440 % \begin{macro}{\labelitemi}
1441 % \begin{macro}{\labelitemii}
1442 % \changes{v1.2h}{1994/05/06}{Inserted \cs{normalfont}}
1443 % \changes{v1.2u}{1996/08/25}{replaced -{}- with \cs{textendash}}
1444 % \begin{macro}{\labelitemiii}
1445 % \begin{macro}{\labelitemiv}
1446 % Itemization is controlled by  |\labelitemi|,
1447 % |\labelitemii|, |\labelitemiii|, and |\labelitemiv|, which define
1448 % the labels of the various itemization levels: the symbols used are
1449 % bullet, bold en-dash, asterisk and centered dot.
1451 % \changes{v1.2n}{1994/07/11}{renamed \cs{labelitemiiii} to
1452 %    \cs{labelitemiii}}
1453 % \changes{v1.2x}{1997/04/16}{Changed to \cs{textbullet},
1454 %                 \cs{textasteriskcentered} and \cs{textperiodcentered}}
1455 %    \begin{macrocode}
1456 \newcommand\labelitemi{\textbullet}
1457 \newcommand\labelitemii{\normalfont\bfseries \textendash}
1458 \newcommand\labelitemiii{\textasteriskcentered}
1459 \newcommand\labelitemiv{\textperiodcentered}
1460 %    \end{macrocode}
1461 % \end{macro}
1462 % \end{macro}
1463 % \end{macro}
1464 % \end{macro}
1466 % \subsubsection{Description}
1468 % \begin{environment}{description}
1469 %    The description environment is defined here -- while the itemize
1470 %    and enumerate environments are defined in the \LaTeX{} kernel
1471 %    (\file{ltlists.dtx}).
1473 %    \begin{macrocode}
1474 \newenvironment{description}
1475                {\list{}{\labelwidth\z@ \itemindent-\leftmargin
1476                         \let\makelabel\descriptionlabel}}
1477                {\endlist}
1478 %    \end{macrocode}
1479 % \end{environment}
1481 % \begin{macro}{\descriptionlabel}
1482 %    To change the formatting of the label, you must redefine
1483 %    |\descriptionlabel|.
1485 % \changes{v1.2q}{1995/03/14}{made command short}
1486 %    \begin{macrocode}
1487 \newcommand*{\descriptionlabel}[1]{\hspace\labelsep
1488                                 \normalfont\bfseries #1}
1489 %    \end{macrocode}
1490 % \end{macro}
1492 % \subsection{Defining new environments}
1494 % \subsubsection{Verse}
1496 % \begin{environment}{verse}
1497 %   The verse environment is defined by making clever use of the
1498 %   list environment's parameters.  The user types |\\| to end a line.
1499 %   This is implemented by |\let|'ing |\\| equal |\@centercr|.
1501 %    \begin{macrocode}
1502 \newenvironment{verse}
1503                {\let\\=\@centercr
1504                 \list{}{\setlength\itemsep{\z@}%
1505                         \setlength\itemindent{-15\p@}%
1506                         \setlength\listparindent{\itemindent}%
1507                         \setlength\rightmargin{\leftmargin}%
1508                         \addtolength\leftmargin{15\p@}}%
1509                 \item[]}
1510                {\endlist}
1511 %    \end{macrocode}
1512 % \end{environment}
1514 % \subsubsection{Quotation}
1516 % \begin{environment}{quotation}
1517 %   The quotation environment is also defined by making clever use of
1518 %   the list environment's parameters. The lines in the environment
1519 %   are set smaller than |\textwidth|. The first line of a paragraph
1520 %   inside this environment is indented.
1522 %    \begin{macrocode}
1523 \newenvironment{quotation}
1524                {\list{}{\setlength\listparindent{1.5em}%
1525                         \setlength\itemindent{\listparindent}%
1526                         \setlength\rightmargin{\leftmargin}}%
1527                 \item[]}
1528                {\endlist}
1529 %    \end{macrocode}
1530 % \end{environment}
1532 % \subsubsection{Quote}
1534 % \begin{environment}{quote}
1535 %   The quote environment is like the quotation environment except
1536 %   that paragraphs are not indented.
1538 %    \begin{macrocode}
1539 \newenvironment{quote}
1540                {\list{}{\setlength\rightmargin{\leftmargin}}%
1541                 \item[]}
1542                {\endlist}
1543 %    \end{macrocode}
1544 % \end{environment}
1546 % \subsubsection{Theorem}
1548 %    This document class does not define it's own theorem environments,
1549 %    the defaults, supplied by the \LaTeX{} kernel (\file{ltthm.dtx})
1550 %    are available.
1553 % \subsection{Setting parameters for existing environments}
1555 % \subsubsection{Array and tabular}
1557 % \begin{macro}{\arraycolsep}
1558 %    The columns in an array environment are separated by
1559 %    2|\arraycolsep|.
1560 %    \begin{macrocode}
1561 \setlength\arraycolsep{5\p@}
1562 %    \end{macrocode}
1563 % \end{macro}
1565 % \begin{macro}{\tabcolsep}
1566 %    The columns in an tabular environment are separated by
1567 %    2|\tabcolsep|.
1568 %    \begin{macrocode}
1569 \setlength\tabcolsep{6\p@}
1570 %    \end{macrocode}
1571 % \end{macro}
1573 % \begin{macro}{\arrayrulewidth}
1574 %    The width of vertical rules in the array and tabular environments
1575 %    is given by |\arrayrulewidth|.
1576 %    \begin{macrocode}
1577 \setlength\arrayrulewidth{.4\p@}
1578 %    \end{macrocode}
1579 % \end{macro}
1581 % \begin{macro}{\doublerulesep}
1582 %    The space between adjacent rules in the array and tabular
1583 %    environments is given by |\doublerulesep|.
1584 %    \begin{macrocode}
1585 \setlength\doublerulesep{2\p@}
1586 %    \end{macrocode}
1587 % \end{macro}
1589 % \subsubsection{Tabbing}
1591 % \begin{macro}{\tabbingsep}
1592 %    This controls the space that the |\'| command puts in. (See
1593 %    \LaTeX{} manual for an explanation.)
1594 %    \begin{macrocode}
1595 \setlength\tabbingsep{\labelsep}
1596 %    \end{macrocode}
1597 % \end{macro}
1599 % \subsubsection{Minipage}
1601 % \begin{macro}{\@minipagerestore}
1602 %    The macro |\@minipagerestore| is called upon entry to a minipage
1603 %    environment to set up things that are to be handled differently
1604 %    inside a minipage environment. In the current styles, it does
1605 %    nothing.
1606 % \end{macro}
1608 % \begin{macro}{\@mpfootins}
1609 %    Minipages have their own footnotes; |\skip||\@mpfootins| plays
1610 %    same r\^ole for footnotes in a minipage as |\skip||\footins| does
1611 %    for ordinary footnotes.
1613 %    \begin{macrocode}
1614 \skip\@mpfootins = \skip\footins
1615 %    \end{macrocode}
1616 % \end{macro}
1618 % \subsubsection{Framed boxes}
1620 % \begin{macro}{\fboxsep}
1621 %    The space left by |\fbox| and |\framebox| between the box and the
1622 %    text in it.
1623 % \begin{macro}{\fboxrule}
1624 %    The width of the rules in the box made by |\fbox| and |\framebox|.
1625 %    \begin{macrocode}
1626 \setlength\fboxsep{3\p@}
1627 \setlength\fboxrule{.4\p@}
1628 %    \end{macrocode}
1629 % \end{macro}
1630 % \end{macro}
1632 % \subsubsection{Equation and eqnarray}
1634 % \begin{macro}{\theequation}
1635 %    The equation counter will be typeset using arabic numbers.
1636 %    \begin{macrocode}
1637 \renewcommand\theequation{\@arabic\c@equation}
1638 %    \end{macrocode}
1639 % \end{macro}
1641 % \begin{macro}{\jot}
1642 %    |\jot| is the extra space added between lines of an eqnarray
1643 %    environment. The default value is used.
1644 %    \begin{macrocode}
1645 % \setlength\jot{3pt}
1646 %    \end{macrocode}
1647 % \end{macro}
1649 % \begin{macro}{\@eqnnum}
1650 %    The macro |\@eqnnum| defines how equation numbers are to appear in
1651 %    equations. Again the default is used.
1653 %    \begin{macrocode}
1654 % \def\@eqnnum{(\theequation)}
1655 %    \end{macrocode}
1656 % \end{macro}
1658 % \subsection{Font changing}
1660 %    Here we supply the declarative font changing commands that were
1661 %    common in \LaTeX\ version 2.09 and earlier. These commands work
1662 %    in text mode \emph{and} in math mode. They are provided for
1663 %    compatibility, but one should start using the |\text...| and
1664 %    |\math...| commands instead. These commands are redefined using
1665 %    |\@renewfontswitch|, a command with three arguments: the user
1666 %    command to be defined; \LaTeX\ commands to execute in text mode
1667 %    and \LaTeX\ commands to execute in math mode.
1669 %  \begin{macro}{\rm}
1670 %  \begin{macro}{\tt}
1671 %  \begin{macro}{\sf}
1672 %    The commands to change the family.
1673 % \changes{v1.0a}{1993/12/14}{Added compatibility mode support.}
1674 % \changes{v1.1}{1993/12/18}{Changed \cs{@newfontswitch} to
1675 %    \cs{@renewfontswitch}, removed switch.}
1676 % \changes{v1.2d}{1994/04/14}{\cs{@renewfontswitch} has become
1677 %    \cs{DeclareOldFontCommand}}
1678 %    \begin{macrocode}
1679 \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
1680 \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
1681 \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
1682 %    \end{macrocode}
1683 %  \end{macro}
1684 %  \end{macro}
1685 %  \end{macro}
1687 %  \begin{macro}{\bf}
1688 %    The command to change to the bold series. One should use
1689 %    |\mdseries| to explicitly switch back to medium series.
1690 % \changes{v1.0a}{1993/12/14}{Added compatibility mode support.}
1691 % \changes{v1.1}{1993/12/18}{Changed \cs{@newfontswitch} to
1692 %    \cs{@renewfontswitch}, removed switch.}
1693 %    \begin{macrocode}
1694 \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
1695 %    \end{macrocode}
1696 %  \end{macro}
1698 %  \begin{macro}{\sl}
1699 %  \begin{macro}{\it}
1700 %  \begin{macro}{\sc}
1702 %    And the commands to change the shape of the font. The slanted and
1703 %    small caps shapes are not available by default as math alphabets,
1704 %    so those changes do nothing in math mode. One should use
1705 %    |\upshape| to explicitly change back to the upright shape.
1706 % \changes{v1.0a}{1993/12/14}{Added compatibility mode support.}
1707 % \changes{v1.1}{1993/12/18}{Changed \cs{@newfontswitch} to
1708 %    \cs{@renewfontswitch}, removed switch.}
1709 % \changes{v1.1b}{1993/12/20}{Added forgotten re.}
1710 %    \begin{macrocode}
1711 \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
1712 \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\relax}
1713 \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\relax}
1714 %    \end{macrocode}
1715 %  \end{macro}
1716 %  \end{macro}
1717 %  \end{macro}
1719 % \begin{macro}{\cal}
1720 % \changes{v1.0a}{1993/12/14}{Macro added}
1721 % \begin{macro}{\mit}
1722 % \changes{v1.0a}{1993/12/14}{Macro added}
1724 %    The commands |\cal| and |\mit| should only be used in math mode,
1725 %    outside math mode they have no effect. Currently the New Font
1726 %    Selection Scheme defines these commands to generate warning
1727 %    messages. Therefore we have to define them `by hand'.
1728 % \changes{v1.2p}{1994/12/11}{Now define \cs{cal} and \cs{mit} using
1729 %    \cs{DeclareRobustCommand*}}
1730 %    \begin{macrocode}
1731 \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
1732 \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
1733 %    \end{macrocode}
1734 %  \end{macro}
1735 %  \end{macro}
1737 % \subsection{Footnotes}
1739 % \begin{macro}{\footnoterule}
1740 %    Usually, footnotes are separated from the main body of the text
1741 %    by a small rule. This rule is drawn by the macro |\footnoterule|.
1742 %    We have to make sure that the rule takes no vertical space (see
1743 %    \file{plain.tex}) so we compensate for the natural height of the
1744 %    rule of 0.4pt by adding the right amount of vertical skip.
1746 %    To prevent the rule from colliding with the footnote we first add
1747 %    a little negative vertical skip, then we put the rule and make
1748 %    sure we end up at the same point where we begun this operation.
1749 %    \begin{macrocode}
1750 \renewcommand\footnoterule{%
1751   \kern-\p@
1752   \hrule \@width .4\columnwidth
1753   \kern .6\p@}
1754 %    \end{macrocode}
1755 % \end{macro}
1757 % \begin{macro}{\c@footnote}
1758 %    A counter for footnotes.
1759 %    \begin{macrocode}
1760 % \newcounter{footnote}
1761 %    \end{macrocode}
1762 % \end{macro}
1764 % \begin{macro}{\@makefntext}
1765 % \changes{v1.2c}{1994/03/08}{Always call \cs{@makefnmark}.}
1766 %    The footnote mechanism of \LaTeX{} calls the macro |\@makefntext|
1767 %    to produce the actual footnote. The macro gets the text of the
1768 %    footnote as its argument and should use |\@makefnmark| to produce
1769 %    the mark of the footnote. The macro |\@makefntext| is called when
1770 %    effectively inside a |\parbox| of width |\columnwidth| (i.e.,
1771 %    with |\hsize| = |\columnwidth|).
1773 %   An example of what can be achieved is given by the following piece
1774 %   of \TeX\ code.
1775 % \begin{verbatim}
1776 %          \long\def\@makefntext#1{%
1777 %             \@setpar{\@@par
1778 %                      \@tempdima = \hsize
1779 %                      \advance\@tempdima-10pt
1780 %                      \parshape \@ne 10pt \@tempdima}%
1781 %             \par
1782 %             \parindent 1em\noindent
1783 %             \hb@xt@\z@{\hss\@makefnmark}#1}
1784 % \end{verbatim}
1785 %    The effect of this definition is that all lines of the footnote
1786 %    are indented by 10pt, while the first line of a new paragraph is
1787 %    indented by 1em. To change these dimensions, just substitute the
1788 %    desired value for `10pt' (in both places) or `1em'.  The mark is
1789 %    flush right against the footnote.
1791 %    In this document class we use a simpler macro, in which the
1792 %    footnote text is set like an ordinary text paragraph, with no
1793 %    indentation except on the first line of a paragraph, and the
1794 %    first line of the footnote. Thus, all the macro must do is set
1795 %    |\parindent| to the appropriate value for succeeding paragraphs
1796 %    and put the proper indentation before the mark.
1798 %    \begin{macrocode}
1799 \long\def\@makefntext#1{%
1800     \noindent
1801     \hangindent 5\p@
1802     \hb@xt@5\p@{\hss\@makefnmark}#1}
1803 %    \end{macrocode}
1804 % \end{macro}
1806 % \begin{macro}{\@makefnmark}
1807 %    The footnote markers that are printed in the text to point to the
1808 %    footnotes should be produced by the macro |\@makefnmark|. We use
1809 %    the default definition for it.
1810 %    \begin{macrocode}
1811 %\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
1812 %    \end{macrocode}
1813 % \end{macro}
1815 % \subsection{Words}
1817 % \begin{macro}{\ccname}
1818 % \begin{macro}{\enclname}
1819 % \begin{macro}{\pagename}
1820 % \begin{macro}{\headtoname}
1821 %     This document class is for documents prepared in the English
1822 %     language. To prepare a version for another language, various
1823 %     English words must be replaced.  All the English words that
1824 %     require replacement are  defined below in command names.
1825 %    \begin{macrocode}
1826 \newcommand*{\ccname}{cc}
1827 \newcommand*{\enclname}{encl}
1828 \newcommand*{\pagename}{Page}
1829 \newcommand*{\headtoname}{To}
1830 %    \end{macrocode}
1831 % \end{macro}
1832 % \end{macro}
1833 % \end{macro}
1834 % \end{macro}
1836 % \subsection{Date}
1838 % \begin{macro}{\today}
1839 %    This macro uses the \TeX\ primitives |\month|, |\day| and |\year|
1840 %    to provide the date of the \LaTeX-run.
1841 %    \begin{macrocode}
1842 \newcommand*{\today}{\ifcase\month\or
1843   January\or February\or March\or April\or May\or June\or
1844   July\or August\or September\or October\or November\or December\fi
1845   \space\number\day, \number\year}
1846 %    \end{macrocode}
1847 % \end{macro}
1849 % \subsection{Two column mode}
1851 % \begin{macro}{\columnsep}
1852 %    This gives the distance between two columns in two column mode.
1853 %    \begin{macrocode}
1854 \setlength\columnsep{10\p@}
1855 %    \end{macrocode}
1856 % \end{macro}
1858 % \begin{macro}{\columnseprule}
1859 %    This gives the width of the rule between two columns in two
1860 %    column mode. We have no visible rule.
1861 %    \begin{macrocode}
1862 \setlength\columnseprule{0\p@}
1863 %    \end{macrocode}
1864 % \end{macro}
1866 % \subsection{The page style}
1867 %    We have \pstyle{plain} pages in this document class by
1868 %    default. We use arabic page numbers.
1869 %    \begin{macrocode}
1870 \pagestyle{plain}
1871 \pagenumbering{arabic}
1872 %    \end{macrocode}
1874 % \subsection{Single or double sided printing}
1876 %    We don't try to make each page as long as all the others.
1877 %    \begin{macrocode}
1878 \raggedbottom
1879 %    \end{macrocode}
1881 % \begin{macro}{\@texttop}
1882 %    The document class letter sets |\@texttop| to |\vskip| 0pt
1883 %    \texttt{plus} .00006fil on the first page of a letter, which
1884 %    centers a short letter on the page. This fil value may have to be
1885 %    changed for other letterheads.  This setting has to be done after
1886 %    |\raggedbottom| is executed, since the latter sets |\@texttop| to
1887 %    |\relax|.
1888 %    \begin{macrocode}
1889 \def\@texttop{\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi}
1890 %    \end{macrocode}
1891 % \end{macro}
1893 %    We always start in one column mode.
1894 %    \begin{macrocode}
1895 \onecolumn
1896 %</letter>
1897 %    \end{macrocode}
1901 % \Finale
1903 \endinput