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