summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ntgclass/brief.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/ntgclass/brief.dtx')
-rw-r--r--macros/latex/contrib/ntgclass/brief.dtx2723
1 files changed, 2723 insertions, 0 deletions
diff --git a/macros/latex/contrib/ntgclass/brief.dtx b/macros/latex/contrib/ntgclass/brief.dtx
new file mode 100644
index 0000000000..96a1525bf0
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/brief.dtx
@@ -0,0 +1,2723 @@
+% \iffalse meta-comment
+%
+% % \iffalse meta-comment
+% %
+% % Copyright (C) 1990-2004 Nederlandstalige TeX Gebruikersgroep.
+% % All rights reserved.
+% %
+% % This file is part of the NTG document classes distribution
+% % ----------------------------------------------------------
+% %
+% % It may be distributed and/or modified under the
+% % conditions of the LaTeX Project Public License, either version 1.3
+% % of this license or (at your option) any later version.
+% % The latest version of this license is in
+% % http://www.latex-project.org/lppl.txt
+% % and version 1.3 or later is part of all distributions of LaTeX
+% % version 2003/12/01 or later.
+% %
+% % This work has the LPPL maintenance status "maintained".
+% %
+% % The Current Maintainer of this work is Johannes Braams.
+% %
+% % The list of all files belonging to the NTG document classes
+% % distribution is given in the file `manifest.txt.
+% %
+% % The list of derived (unpacked) files belonging to the distribution
+% % and covered by LPPL is defined by the unpacking scripts (with
+% % extension .ins) which are part of the distribution.
+% % \fi
+% \fi
+% \CheckSum{2200}
+%% \CharacterTable
+%% {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
+%% 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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \iffalse
+%% Copyright (C) 1994 -- 1999 by Victor Eijkhout \and Johannes Braams
+%% Based on letter.dtx version 1.2i
+%% Copyright (C) 1994 LaTeX3 project, Frank Mittelbach
+%% and Rainer Sch\"opf, all rights reserved.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+%%
+% \section{Identification}
+%
+%
+% This document class can only be used with \LaTeXe, so we make
+% sure that an appropriate message is displayed when another \TeX{}
+% format is used.
+% \begin{macrocode}
+%<+brief>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+% \end{macrocode}
+%
+% Announce the Class name and its version.
+% \begin{macrocode}
+%<+brief>\ProvidesClass{brief}
+%<*driver>
+\ProvidesFile{brief.drv}
+%</driver>
+ [1999/03/03 v2.0r
+%<+brief> NTG LaTeX document class]
+% \end{macrocode}
+%
+% \section{The documentation driver file}
+%
+% We use the document class \cls{ltxdoc} which is also used to
+% format the \LaTeXe\ documentation.
+% \begin{macrocode}
+%<*driver>
+]
+\documentclass{ltxdoc}
+% \end{macrocode}
+%
+% We don't want everything to appear in the index.
+% \changes{v2.0c}{1994/06/15}{Reordered DoNotIndex list}
+% \changes{v2.0f}{1994/10/04}{Added a missing comma}
+% \begin{macrocode}
+\DoNotIndex{\@Alph,\@alph,\@arabic,\@badmath}
+\DoNotIndex{\@centercr}
+\DoNotIndex{\@empty,\@ignoretrue}
+\DoNotIndex{\@ixpt}
+\DoNotIndex{\@M,\@minus,\@ne,\@plus}
+\DoNotIndex{\\,\addtolength}
+\DoNotIndex{\advance}
+\DoNotIndex{\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
+\DoNotIndex{\bullet}
+\DoNotIndex{\cdot,\cr,\day,\DeclareOption}
+\DoNotIndex{\def,\DocInput,\documentclass}
+\DoNotIndex{\DoNotIndex,\egroup,\ifx,\else,\fi,\endtrivlist}
+\DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
+\DoNotIndex{\endlist,\everycr,\ExecuteOptions}
+\DoNotIndex{\filedate,\filename,\fileversion}
+\DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
+\DoNotIndex{\hsize,\hskip,\hspace,\hss,\ifcase,\or,\fi}
+\DoNotIndex{\ifvmode,\ifnum,\fi,\fi,\input}
+\DoNotIndex{\kern,\leavevmode,\let,\leftmark}
+\DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark}
+\DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
+\DoNotIndex{\NeedsTeXFormat,\newdimen}
+\DoNotIndex{\newpage,\nobreak,\noindent,\number}
+\DoNotIndex{\p@}
+\DoNotIndex{\pagestyle,\par}
+\DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
+\DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
+\DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font}
+\DoNotIndex{\rightmargin,\rlap,\rmfamily}
+\DoNotIndex{\roman,\setbox,\setcounter,\setlength}
+\DoNotIndex{\skip,\slshape,\space}
+\DoNotIndex{\trivlist,\typeout,\tw@}
+\DoNotIndex{\vskip,\vspace,\year,\z@}
+% \end{macrocode}
+% Produce a listing of the changes.
+% \begin{macrocode}
+\RecordChanges
+% \end{macrocode}
+% We use so many \file{docstrip} modules that we set the
+% \texttt{StandardModuleDepth} counter to 1.
+% \begin{macrocode}
+\setcounter{StandardModuleDepth}{1}
+% \end{macrocode}
+% The following command retrieves the date and version information
+% from the file.
+% \changes{v2.0c}{1994/06/15}{Removed remnant from \file{letter.dtx},
+% now get the file info from \file{bief.dtx}}
+% \begin{macrocode}
+\GetFileInfo{brief.drv}
+% \end{macrocode}
+% Some commonly used abbreviations
+% \begin{macrocode}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\Lenv}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\cls}[1]{\texttt{#1}}
+\newcommand*{\Lcount}[1]{\textsl{\small#1}}
+\newcommand*{\pstyle}[1]{\textsl{#1}}
+% \end{macrocode}
+% We also want the full details.
+% \changes{v2.0c}{1994/06/15}{Removed another remnant of
+% \file{letter.dtx}}
+% \begin{macrocode}
+\begin{document}
+\DocInput{brief.dtx}
+\PrintIndex
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% \changes{v2.0g}{1994/12/23}{Use \cs{newcommand*} instead of
+% \cs{newcommand} in most places}
+% \changes{v2.0l}{1995/08/10}{Use \cs{hb@xt@} instead of \cs{hbox}
+% \texttt{to}}
+% \changes{v2.0q}{1997/09/09}{Added a few more synonimes for commands}
+%
+%
+% \author{Victor Eijkhout \and Johannes Braams}
+%
+% \title{NTG Document Class \texttt{brief} for \LaTeX{} version 2e}
+%
+%
+% \maketitle
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% This file contains the document class \cls{brief} that was made
+% available by Working Group 13 of the NTG (Nederlandstalige \TeX\
+% Gebruikersgroep). It defines more commands than the standard
+% document class \cls{letter}, but a letter made with the
+% \cls{letter} document class is still processable with this
+% document class.
+%
+% \StopEventually
+%
+% \section{Initial Code}
+%
+% In this part we define a few comands that are used later on.
+%
+% \begin{macro}{\@ptsize}
+% This control sequence is used to store the second digit of the
+% pointsize we are typesetting in. So, normally, it's value is one
+% of 0, 1 or 2.
+% \begin{macrocode}
+%<*brief>
+\newcommand*\@ptsize{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@typhulp}
+% This switch is used to decide whether or not to put a small line
+% on the paper that is used to align the paper in a typewriter.
+% \begin{macrocode}
+\newif\if@typhulp
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@streepjes}
+% A switch to indicate if the `folding lines' should be printed
+% \begin{macrocode}
+\newif\if@streepjes
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@adresrechts}
+% This switch indicates if the addressing information is to be set
+% on the left or on the right side of the letter.
+% \begin{macrocode}
+\newif\if@adresrechts
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@elfinch}
+% A switch to remember whether we are using A4 or letter
+% paper. (possibly obsolete)
+% \begin{macrocode}
+\newif\if@elfinch
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Setting Paper Sizes}
+%
+% The variables |\paperwidth| and |\paperheight| should reflect the
+% physical paper size after trimming. For desk printer output this
+% is usually the real paper size since there is no post-processing.
+% \begin{macrocode}
+\DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}\@elfinchfalse}
+\DeclareOption{a5paper}
+ {\ClassWarning{brief}{Paper size A5 not supported, using A4}%
+ \setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}\@elfinchfalse}
+\DeclareOption{b5paper}
+ {\ClassWarning{brief}{Paper size B5 not supported, using A4}%
+ \setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}\@elfinchfalse}
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}\@elfinchtrue}
+\DeclareOption{USletter}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}\@elfinchtrue}
+\DeclareOption{legalpaper}
+ {\ClassWarning{brief}
+ {Paper size `legal' not supported, using `letter'}%
+ \setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}\@elfinchtrue}
+\DeclareOption{executivepaper}
+ {\ClassWarning{brief}
+ {Paper size `executive' not supported, using `letter'}%
+ \setlength\paperheight {10.5in}%
+ \setlength\paperwidth {7.25in}\@elfinchtrue}
+% \end{macrocode}
+%
+%
+% \subsection{Choosing the type size}
+%
+% The type size options are handled by defining |\@ptsize| to
+% contain the last digit of the size in question and branching on
+% |\ifcase| statements. This is done for historical reasons to stay
+% compatible with other packages that use the |\@ptsize| variable
+% to select special actions. It makes the declarations of size
+% options less than 10pt difficult, although one can probably use
+% \texttt{9} and \texttt{8} assuming that a class wont define both
+% \Lopt{8pt} and \Lopt{18pt} options.
+%
+% \begin{macrocode}
+\DeclareOption{10pt}{\renewcommand*\@ptsize{0}}
+\DeclareOption{11pt}{\renewcommand*\@ptsize{1}}
+\DeclareOption{12pt}{\renewcommand*\@ptsize{2}}
+% \end{macrocode}
+%
+%
+% \subsection{Two-side or one-side printing}
+%
+% Two-sided printing was not supported in the \LaTeX~2.09 version
+% of this documentclass.
+% \begin{macrocode}
+\if@compatibility
+ \DeclareOption{twoside}{\@latexerr{No 'twoside' layout for letters}%
+ \@eha}
+\else
+ \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+\fi
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+% \end{macrocode}
+%
+% \subsection{Draft option}
+%
+% If the user requests \Lopt{draft} we show any overfull boxes.
+% We could probably add some more interesting stuff to this option.
+% \begin{macrocode}
+\DeclareOption{draft}{\setlength\overfullrule{5pt}}
+\DeclareOption{final}{\setlength\overfullrule{0pt}}
+% \end{macrocode}
+%
+%
+% \subsection{Equation numbering on the left}
+%
+% The option \Lopt{leqno} can be used to get the equation numbers
+% on the left side of the equation.
+% \begin{macrocode}
+\DeclareOption{leqno}{\input{leqno.clo}}
+% \end{macrocode}
+%
+% \subsection{Flush left displays}
+%
+% The option \Lopt{fleqn} redefines the displayed math environmens
+% in such a way that they come out flush left, with an indentation
+% of |\mathindent| from the prevailing left margin.
+% \begin{macrocode}
+\DeclareOption{fleqn}{\input{fleqn.clo}}
+% \end{macrocode}
+%
+% \subsection{Typewriter alignment}
+%
+% \begin{macrocode}
+\DeclareOption{typhulp}{\@typhulptrue}
+\DeclareOption{geentyphulp}{\@typhulpfalse}
+% \end{macrocode}
+% \subsection{Folding lines}
+% It is possible to print `folding lines' on the far right side of
+% the paper.
+%
+% \begin{macrocode}
+\DeclareOption{streepjes}{\@streepjestrue}
+\DeclareOption{geenstreepjes}{\@streepjesfalse}
+% \end{macrocode}
+%
+% \subsection{Address placement}
+% The address information can be put either on the left or on the
+% right side of the letter
+%
+% \begin{macrocode}
+\DeclareOption{adreslinks}{\@adresrechtsfalse}
+\DeclareOption{adresrechts}{\@adresrechtstrue}
+% \end{macrocode}
+%
+% \subsection{Support for different languages}
+%
+% In the original document style \cls{brief} the options to support
+% the various languages were all dutch words. To be compatible with
+% both the old version of the document class and with the
+% recommended set of language options we have at least two options
+% for each language.
+%
+% First Dutch,
+% \begin{macrocode}
+\DeclareOption{nederlands}{\AtEndOfClass{\dutchbrief}}
+\DeclareOption{dutch} {\AtEndOfClass{\dutchbrief}}
+% \end{macrocode}
+% then British English,
+% \begin{macrocode}
+\DeclareOption{engels} {\AtEndOfClass{\englishbrief}}
+\DeclareOption{english} {\AtEndOfClass{\englishbrief}}
+% \end{macrocode}
+% American English,
+% \begin{macrocode}
+\DeclareOption{USengels} {\AtEndOfClass{\americanbrief}}
+\DeclareOption{american} {\AtEndOfClass{\americanbrief}}
+% \end{macrocode}
+% German
+% \begin{macrocode}
+\DeclareOption{duits} {\AtEndOfClass{\germanbrief}}
+\DeclareOption{german} {\AtEndOfClass{\germanbrief}}
+% \end{macrocode}
+% and finally french.
+% \begin{macrocode}
+\DeclareOption{frans} {\AtEndOfClass{\frenchbrief}}
+\DeclareOption{french} {\AtEndOfClass{\frenchbrief}}
+\DeclareOption{francais} {\AtEndOfClass{\frenchbrief}}
+% \end{macrocode}
+%
+% \section{Executing Options}
+%
+% Here we execute the default options to initialize certain
+% variables.
+% \begin{macrocode}
+\ExecuteOptions{a4paper,11pt,oneside,onecolumn,final,%
+ geentyphulp,geenstreepjes,adreslinks,%
+ nederlands}
+% \end{macrocode}
+%
+% The |\ProcessOptions| command causes the execution of the code
+% for every option \Lopt{FOO}
+% which is declared and for which the user typed
+% the \Lopt{FOO} option in his
+% |\documentclass| command. For every option \Lopt{BAR} he typed,
+% which is not declared, the option is assumed to be a global option.
+% All options will be passed as document options to any
+% |\usepackage| command in the document preamble.
+% \changes{v2.0h}{1994/12/30}{Added a \cs{relax} to prevent an
+% incomplete \cs{ifcase} error}
+% \begin{macrocode}
+\ProcessOptions\relax
+% \end{macrocode}
+% Now that all the options have been executed we can define the
+% user-level size changing commands. Their definition depends on
+% which of the \Lopt{10pt}, \Lopt{11pt} or \Lopt{12pt} options was
+% specified.
+%
+% \begin{macro}{\normalsize}
+% \begin{macro}{\@normalsize}
+%
+% The user level command for the main size is |\normalsize|.
+% Internally \LaTeX{} uses |\@normalsize| when it refers to the
+% main size. |\@normalsize| will be defined to work like
+% |\normalsize| if the latter is redefined from its default
+% definition (that just issues an error message). Otherwise
+% |\@normalsize| simply selects a 10pt/12pt size.
+%
+% The |\normalsize| macro also sets new values for\\
+% |\abovedisplayskip|, |\abovedisplayshortskip| and
+%
+% \begin{macrocode}
+\ifcase\@ptsize
+ \renewcommand*\normalsize{%
+ \@setfontsize\normalsize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\or
+ \renewcommand*\normalsize{%
+ \@setfontsize\normalsize\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\or
+ \renewcommand*\normalsize{%
+ \@setfontsize\normalsize\@xiipt{15}%
+ \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\fi
+% \end{macrocode}
+% Make |\@normalsize| a synonymn for |\normalsize|.
+% \begin{macrocode}
+\let\@normalsize\normalsize
+% \end{macrocode}
+%
+% We initially choose the normalsize font.
+% \begin{macrocode}
+\normalsize
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\small}
+%
+% This is similar to |\normalsize|.
+% \begin{macrocode}
+\ifcase\@ptsize
+ \newcommand*\small{%
+ \@setfontsize\small\@ixpt{11}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \belowdisplayskip \abovedisplayskip}
+\or
+ \newcommand*\small{%
+ \@setfontsize\small\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip}
+\or
+ \newcommand*\small{%
+ \@setfontsize\small\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footnotesize}
+%
+% This is similar to |\normalsize|.
+% \begin{macrocode}
+\ifcase\@ptsize
+ \newcommand*\footnotesize{%
+ \@setfontsize\footnotesize\@viiipt{9.5}%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \belowdisplayskip \abovedisplayskip}
+\or
+ \newcommand*\footnotesize{%
+ \@setfontsize\footnotesize\@ixpt{11}%
+ \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \belowdisplayskip \abovedisplayskip}
+\or
+ \newcommand*\footnotesize{%
+ \@setfontsize\footnotesize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scriptsize}
+% \begin{macro}{\tiny}
+% \begin{macro}{\large}
+% \begin{macro}{\Large}
+% \begin{macro}{\LARGE}
+% \begin{macro}{\huge}
+% \begin{macro}{\Huge}
+% These are all much simpler than the previous macros, they just
+% select a new fontsize, but leave the parameters for displays and
+% lists alone.
+% \begin{macrocode}
+\ifcase\@ptsize
+ \newcommand*\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+ \newcommand*\tiny{\@setfontsize\tiny\@vpt\@vipt}
+ \newcommand*\large{\@setfontsize\large\@xiipt{14}}
+ \newcommand*\Large{\@setfontsize\Large\@xivpt{18}}
+ \newcommand*\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+ \newcommand*\huge{\@setfontsize\huge\@xxpt{25}}
+ \newcommand*\Huge{\@setfontsize\Huge\@xxvpt{30}}
+\or
+ \newcommand*\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+ \newcommand*\tiny{\@setfontsize\tiny\@vipt\@viipt}
+ \newcommand*\large{\@setfontsize\large\@xiipt{14}}
+ \newcommand*\Large{\@setfontsize\Large\@xivpt{18}}
+ \newcommand*\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+ \newcommand*\huge{\@setfontsize\huge\@xxpt{25}}
+ \newcommand*\Huge{\@setfontsize\Huge\@xxvpt{30}}
+\or
+ \newcommand*\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+ \newcommand*\tiny{\@setfontsize\tiny\@vipt\@viipt}
+ \newcommand*\large{\@setfontsize\large\@xivpt{18}}
+ \newcommand*\Large{\@setfontsize\Large\@xviipt{22}}
+ \newcommand*\LARGE{\@setfontsize\LARGE\@xxpt{25}}
+ \newcommand*\huge{\@setfontsize\huge\@xxvpt{30}}
+ \let\Huge=\huge
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Loading Packages}
+%
+% This class file does not load additional packages.
+%
+%
+% \section{Document Layout}
+% \label{sec:maincode}
+%
+% In this section we are finally dealing with the nasty typographical
+% details.
+%
+% \subsection{Fonts}
+%
+% We use two fixed fonts in these letters.
+%^^A possibly need to update for DC fonts in future?
+% \begin{macrocode}
+\newfont\refkopfont{cmssq8}
+\DeclareFixedFont\kleinvet{\encodingdefault}%
+ {\rmdefault}%
+ {\bfdefault}%
+ {\shapedefault}%
+ {7}
+% \end{macrocode}
+% \subsection{Paragraphing}
+%
+% \begin{macro}{\lineskip}
+% \begin{macro}{\normallineskip}
+% These parameters control \TeX's behaviour when two lines tend to
+% come too close together.
+% \begin{macrocode}
+\setlength\lineskip{1\p@}
+\setlength\normallineskip{1\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\baselinestretch}
+% This is used as a multiplier for |\baselineskip|. The default is
+% to {\em not\/} stretch the baselines.
+% \begin{macrocode}
+\renewcommand*\baselinestretch{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\parskip}
+% \begin{macro}{\parindent}
+% |\parskip| gives extra vertical space between paragraphs and
+% |\parindent| is the width of the paragraph indentation.
+% Letters are typeset without paragraph indentation.
+% \begin{macrocode}
+\setlength\parskip{0.7em \@plus .3em \@minus .2em}
+\setlength\parindent{0\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@lowpenalty}
+% \begin{macro}{\@medpenalty}
+% \begin{macro}{\@highpenalty}
+% The commands |\nopagebreak| and |\nolinebreak| put in penalties
+% to discourage these breaks at the point they are put in.
+% They use |\@lowpenalty|, |\@medpenalty| or |\@highpenalty|,
+% dependant on their argument.
+% \begin{macrocode}
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\clubpenalty}
+% \begin{macro}{\widowpenalty}
+% These penalties are use to discourage club and widow lines.
+% Because we use their default values we only show them here,
+% commented out.
+% \begin{macrocode}
+% \clubpenalty 150
+% \widowpenalty 150
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\displaywidowpenalty}
+% \begin{macro}{\predisplaypenalty}
+% \begin{macro}{\postdisplaypenalty}
+% Discourage (but not so much) widows in front of a math display
+% and forbid breaking directly in front of a display. Allow break
+% after a display without a penalty. Again the default values are
+% used, therefore we only show them here.
+% \begin{macrocode}
+% \displaywidowpenalty 50
+% \predisplaypenalty 10000
+% \postdisplaypenalty 0
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\interlinepenalty}
+% Allow the breaking of a page in the middle of a paragraph.
+% \begin{macrocode}
+% \interlinepenalty 0
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\brokenpenalty}
+% We allow the breaking of a page after a hyphenated line.
+% \begin{macrocode}
+% \brokenpenalty 0
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Page Layout}
+%
+% All margin dimensions are measured from a point one inch from the
+% top and lefthand side of the page.
+%
+% \subsubsection{Vertical spacing}
+%
+% \begin{macro}{\headheight}
+% \begin{macro}{\headsep}
+% The |\headheight| is the height of the box that will contain the
+% running head. The |\headsep| is the distance between the bottom
+% of the running head and the top of the text. |\topskip| is the
+% |\baselineskip| for the first line on a page.
+% \begin{macrocode}
+\setlength\headheight{37mm}
+\setlength\headsep {0mm}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\footskip}
+% The distance from the baseline of the box which contains the
+% running footer to the baseline of last line of text is controlled
+% by the |\footskip|.
+% Bottom of page:
+% \begin{macrocode}
+\setlength\footskip{25\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maxdepth}
+% \begin{macro}{\@maxdepth}
+% The \TeX\ primitive register |\maxdepth| has a function that is
+% similar to that of |\topskip|. The register |\@maxdepth| should
+% always contain a copy of |\maxdepth|. In both plain \TeX\ and
+% \LaTeX~2.09 |\maxdepth| had a fixed value of \texttt{4pt}; in
+% native \LaTeX2e\ mode we let the value depend on the typesize. We
+% set it so that |\maxdepth| $+$ |\topskip| $=$ typesize $\times
+% 1.5$. As it happens, in these classes |\topskip| is equal to the
+% typesize, therefor we set |\maxdepth| to half the value of
+% |\topskip|.
+% \begin{macrocode}
+\if@compatibility
+ \setlength\maxdepth{4\p@}
+\else
+ \setlength\maxdepth{.5\topskip}
+\fi
+\setlength\@maxdepth\maxdepth
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{The dimension of text}
+%
+% \begin{macro}{\textwidth}
+% \begin{macro}{\textheight}
+% The dimensions of the text are fixed; they are defined in the
+% \textsc{nen} norm which this class implements.
+%
+% \begin{macrocode}
+\setlength\textwidth{144mm}
+\setlength\textheight{197mm}
+\if@elfinch \addtolength\textheight{-17.6mm} \fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\rightskip}
+% \begin{macro}{\@rightskip}
+%
+% \begin{macrocode}
+\setlength\@rightskip{0cm \@plus 5cm}
+\setlength\rightskip{\@rightskip}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Margins}
+%
+% \begin{macro}{\oddsidemargin}
+% \begin{macro}{\evensidemargin}
+% \begin{macro}{\marginparwidth}
+% Again, these dimensions are based on the \textsc{nen} norm.
+% \begin{macrocode}
+\setlength\@tempdima{\paperwidth}
+\addtolength\@tempdima{-2in}
+\addtolength\@tempdima{-\textwidth}
+\setlength\oddsidemargin {7.6mm}
+\setlength\evensidemargin {\oddsidemargin}
+\setlength\marginparwidth {0\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\marginparsep}
+% \begin{macro}{\marginparpush}
+% The horizontal space between the main text and marginal notes is
+% determined by |\marginparsep|, the minimum vertical separation
+% between two marginal notes is controlled by |\marginparpush|.
+% \begin{macrocode}
+\setlength\marginparsep {0\p@}
+\setlength\marginparpush{0\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\topmargin}
+% The |\topmargin| is the distance between the top of `the
+% printable area' --which is 1 inch below the top of the paper--
+% and the top of the box which contains the running head.
+%
+% \begin{macrocode}
+\setlength\topmargin{-12.4mm}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The address field}
+%
+% The address information has to be put on a specific place.
+%
+% \begin{macro}{\vensterskip}
+% \begin{macro}{\@vensterskip}
+%
+% \begin{macrocode}
+\newdimen\vensterskip
+\setlength\vensterskip{50mm}
+\newdimen\@vensterskip
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Changing head and text heights}
+%
+% This class has a much higher head on the first page of a letter
+% than on subsequent pages.
+%
+% \begin{macro}{\@firstheadheight}
+% \begin{macro}{\@otherheadheight}
+% \begin{macro}{\@othertextheight}
+% \begin{macro}{\@otherheadsep}
+% \begin{macro}{\@vervolgsep}
+%
+% \begin{macrocode}
+\newdimen\@firstheadheight
+\newdimen\@otherheadheight
+\newdimen\@othertextheight
+\newdimen\@otherheadsep
+\newdimen\@vervolgsep
+\setlength\@otherheadsep{2mm}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@prepareerhoofden}
+%
+% \begin{macrocode}
+\def\@prepareerhoofden{%
+ \setlength\@vensterskip{\vensterskip}%
+ \addtolength\@vensterskip{-50mm}%
+ \setlength\@firstheadheight{\headheight}%
+ \setlength\@otherheadheight{\headheight}%
+ \setlength\@othertextheight{\textheight}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Information in the foot}
+%
+% We also reserve some space at the bottom of the paper to print
+% some information about the sender of the letter.
+%
+% \begin{macro}{\footsep}
+% The distance between the text and this foot information
+% \begin{macrocode}
+\newdimen\footsep
+\setlength\footsep{15mm}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Footnotes}
+%
+% \begin{macro}{\footnotesep}
+% |\footnotesep| is the height of the strut placed at the beginning
+% of every footnote. It equals the height of a normal
+% |\footnotesize| strut in this
+% class, thus no extra space occurs between footnotes.
+% \begin{macrocode}
+\setlength\footnotesep{12\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footins}
+% |\skip\footins| is the space between the last line of the main
+% text and the top of the first footnote.
+% \begin{macrocode}
+\setlength{\skip\footins}{10\p@ \@plus 2\p@ \@minus 4\p@}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Page Styles}
+%
+% The page style \pstyle{foo} is defined by defining the command
+% |\ps@foo|. This command should make only local definitions.
+% There should be no stray spaces in the definition, since they
+% could lead to mysterious extra spaces in the output (well, that's
+% something that should be always avoided).
+%
+% \begin{macro}{\@evenhead}
+% \begin{macro}{\@oddhead}
+% \begin{macro}{\@evenfoot}
+% \begin{macro}{\@oddfoot}
+% The |\ps@...| command defines the macros |\@oddhead|,
+% |\@oddfoot|, |\@evenhead|, and |\@evenfoot| to define the running
+% heads and feet---e.g., |\@oddhead| is the macro to produce the
+% contents of the heading box for odd-numbered pages. It is called
+% inside an |\hbox| of width |\textwidth|.
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Marking conventions}
+%
+% To make headings determined by the sectioning commands, the page
+% style defines the commands |\chaptermark|, |\sectionmark|,
+% \ldots, where |\chaptermark{|\meta{TEXT}|}| is called by
+% |\chapter| to set a mark, and so on.
+%
+% The |\...mark| commands and the |\...head| macros are defined
+% with the help of the following macros. (All the |\...mark|
+% commands should be initialized to no-ops.)
+%
+% \LaTeX{} extends \TeX's |\mark| facility by producing two kinds
+% of marks, a `left' and a `right' mark, using the following
+% commands:
+% \begin{flushleft}
+% |\markboth{|\meta{LEFT}|}{|\meta{RIGHT}|}|: Adds both marks.
+%
+% |\markright{|\meta{RIGHT}|}|: Adds a `right' mark.
+%
+% |\leftmark|: Used in the |\@oddhead|, |\@oddfoot|, |\@evenhead|
+% or |\@evenfoot| macros, it gets the current `left'
+% mark. |\leftmark| works like \TeX's |\botmark|
+% command.
+%
+% |\rightmark|: Used in the |\@oddhead|, |\@oddfoot|, |\@evenhead|
+% or |\@evenfoot| macros, it gets the current
+% `right' mark. |\rightmark| works like \TeX's
+% |\firstmark| command.
+% \end{flushleft}
+%
+% The marking commands work reasonably well for right marks
+% `numbered within' left marks--e.g., the left mark is changed by a
+% |\chapter| command and the right mark is changed by a |\section|
+% command. However, it does produce somewhat anomalous results if
+% two |\markboth|'s occur on the same page.
+%
+%
+% Commands like |\tableofcontents| that should set the marks in some
+% page styles use a |\@mkboth| command, which is |\let| by the
+% pagestyle command (|\ps@...|) to |\markboth| for setting the
+% heading or to |\@gobbletwo| to do nothing.
+%
+%
+% \begin{macrocode}
+% %%%\mark{{}{}} % Initializes TeX's marks <--- can vanish
+% \end{macrocode}
+%
+% \subsubsection{Defining the page styles}
+% \label{sec:pagestyle}
+%
+% The pagestyles \pstyle{empty} and \pstyle{plain} are defined in
+% the \LaTeX{} kernel (\file{ltpage.dtx}), but these definitions
+% are changed to a simpler version for this document class.
+%
+% \begin{macro}{\ps@headings}
+% The definition of the page style \pstyle{headings} has to be
+% different for two sided printing than it is for one sided
+% printing.
+%
+% \begin{macrocode}
+\if@twoside
+ \def\ps@headings{%
+% \end{macrocode}
+% The running feet contain some information about the sender of the
+% letter. The feet aer the same for even and odd pages.
+% \begin{macrocode}
+ \def\@oddfoot{\voetregel\hss}%
+ \let\@evenfoot\@oddfoot
+% \end{macrocode}
+% The running head contains some information about this letter. The
+% head is the same for even and odd pages.
+% \begin{macrocode}
+ \def\@oddhead{%
+ \vbox to \@otherheadheight
+ {\vervolghoofd\vfil
+ \if@streepjes\streepjes{\@firstheadheight}\fi}\hss}
+ \let\@evenhead\@oddhead}
+% \end{macrocode}
+% For one sided printing we don't need to define |\@evenhead| so
+% the definition is somewhat simpler.
+% \changes{v2.0e}{1994/07/12}{Removed a typo (\cs{othertheadheight})}
+% \begin{macrocode}
+\else
+ \def\ps@headings{%
+ \def\@oddfoot{\voetregel\hss}%
+ \def\@oddhead{%
+ \vbox to \@otherheadheight
+ {\vervolghoofd\vfil
+ \if@streepjes\streepjes{\@otherheadheight}\fi}\hss}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\ps@firstpage}
+% On the first page the head contains much more than on other
+% pages, therefore the height of the head and text need to be
+% adapted.
+% \begin{macrocode}
+\def\ps@firstpage{%
+ \global\headheight=\@otherheadheight
+ \global\textheight=\@othertextheight %?? werkt dit ??
+ \global\headsep=\@otherheadsep
+ \def\@oddhead{\vbox to \@firstheadheight
+ {\briefhoofd\vfil
+ \if@streepjes\streepjes{\@firstheadheight}\fi}%
+ \hss}
+ \def\@evenhead{}
+ \def\@oddfoot{\voetregel\hss} \let\@evenfoot\@oddfoot}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@empty}
+% The definition of the page style \pstyle{empty} is simple:
+% No running head or foot at all.
+% \begin{macrocode}
+\def\ps@empty{%
+ \let\@oddfoot\@empty\let\@oddhead\@empty
+ \let\@evenfoot\@empty\let\@evenhead\@empty}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@plain}
+% The definition of the page style \pstyle{plain} is again simple.
+% \changes{v2.0l}{1995/08/10}{replace \cs{rmfamily} with
+% \cs{normalfont} (PR 1578)}
+% \begin{macrocode}
+\def\ps@plain{%
+ \let\@oddhead\@empty
+ \def\@oddfoot{\normalfont\hfil\thepage}%
+ \def\@evenfoot{\normalfont\hfil\thepage}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Document Markup}
+%
+% \subsection{Global Declarations}
+%
+% The following declarations, shown with examples, give information
+% about the sender:
+% \begin{itemize}
+% \item |\name{Dr. L. User}| : to be used for the return address on
+% the envelope.
+% \item |\signature{Larry User}| : goes after the closing.
+% \item |\address{3245 Foo St.\\Gnu York}| : used as the return
+% address in the
+% letter and on the envelope. If not declared, then an
+% institutional standard address is used.
+% \item |\location{Room 374}| : Acts as modifier to the standard
+% institutional address.
+% \item |\telephone{(415)123-4567}| : Just in case some style puts it
+% on the letter.
+% \end{itemize}
+%
+% \begin{macro}{\name}
+% \begin{macro}{\fromname}
+% \begin{macrocode}
+\def\name#1{\def\fromname{#1}}
+\def\fromname{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ondertekening}
+% \begin{macro}{\signature}
+% \begin{macro}{\fromsig}
+% This macro stores the signature.
+% \changes{v2.0b}{1994/06/05}{Can't use (re)newcommand for
+% \cs{fromsig} as that breaks the test against \cs{@empty}}
+% \begin{macrocode}
+\newcommand*\ondertekening[1]{\def\fromsig{#1}}
+\def\fromsig{}
+\let\signature\ondertekening
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\address}
+% \begin{macrocode}
+\newcommand*\address[1]{\maakbriefhoofd*{}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\location}
+% \begin{macro}{\fromlocation}
+% \begin{macrocode}
+\newcommand*{\location}[1]{\def\fromlocation{#1}}
+\def\fromlocation{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\telephone}
+% \begin{macro}{\telephonenum}
+% \begin{macrocode}
+\newcommand*{\telephone}[1]{\def\telephonenum{#1}}
+\def\telephonenum{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\makelabels}
+% The |\makelabels| declaration causes mailing labels to be made.
+% \begin{macrocode}
+\newcommand*{\makelabels}{%
+% \end{macrocode}
+% At the beginning of the document, we need to activate the
+% |\@mlabel| and |\@startlabels| commands, as well as write
+% |\@startlabels| to the |.aux| file.
+% \begin{macrocode}
+ \AtBeginDocument{%
+ \let\@startlabels\startlabels
+ \let\@mlabel\mlabel
+ \if@filesw
+ \immediate\write\@mainaux{\string\@startlabels}\fi}%
+% \end{macrocode}
+% At the end of the document we need to write |\clearpage| to the
+% |.aux| file.
+% \begin{macrocode}
+ \AtEndDocument{%
+ \if@filesw\immediate\write\@mainaux{\string\clearpage}\fi}}
+% \end{macrocode}
+% |\makelabels| is allowed only before the |\begin{document}|
+% command.
+% \begin{macrocode}
+\@onlypreamble\makelabels
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{The generic letter commands}
+%
+% \begin{environment}{brief}
+% The \Lenv{brief} environment creates a new letter, starting from
+% page 1. (The first page is unnumbered.) It has a single
+% argument, which is the adressee and his address, as in
+%\begin{verbatim}
+% \begin{brief}{Sam Jones \\
+% Institute for Retarded Study\\
+% Princeton, N.J.}
+%\end{verbatim}
+% Local declarations, such as |\address|, can follow the
+% |\begin{brief}|.
+% \begin{macrocode}
+\newenvironment{brief}[1]
+ {\newpage
+ \if@twoside \ifodd\c@page
+ \else\thispagestyle{empty} \hbox{}\newpage\fi
+ \fi
+ \c@page\@ne
+ \interlinepenalty=200 % smaller than the TeXbook value
+% \end{macrocode}
+% The |\leavevmode| and |\ignorespaces| commands are there for
+% protecting against an empty argument.
+% \begin{macrocode}
+ \@processto{\leavevmode\ignorespaces #1}%
+% \end{macrocode}
+% Now we can start filling in the various fields in the references
+% line. First the adressee.
+% \begin{macrocode}
+ \@defrefveld{\@Ad}{\geadresseerdetekst}{\toname}
+% \end{macrocode}
+% Then the date. When nothing was specified we use |\vandaag|.
+% \begin{macrocode}
+ \ifdim\wd\@Dt=0cm \@defrefveld{\@Dt}{\datumtekst}{\vandaag}\fi
+% \end{macrocode}
+% Now we can prepare the letterheads. It couldn't be done earlier
+% because the user can specify that he uses a different kind of
+% `window envelope'.
+% \begin{macrocode}
+ \@prepareerhoofden
+% \end{macrocode}
+% We may need to adapt the height of the head and the text body on
+% the following pages. Therefore we measure the height of the head
+% on those pages.
+% \begin{macrocode}
+ {\setbox\@tempboxa\vervolghoofd
+ \@tempdima\ht\@tempboxa
+ \advance\@tempdima by -\@otherheadheight
+ \ifdim\@tempdima>0\p@
+ \global\advance\@otherheadheight by \@tempdima
+ \global\advance\@othertextheight by -\@tempdima
+ \fi}
+% \end{macrocode}
+% We have to do the same for the foot of the letter.
+% \begin{macrocode}
+ {\setbox\@tempboxa=\vbox{\voetregel}
+ \global\footskip=\ht\@tempboxa
+ \global\advance\footskip by \footsep}%
+ }
+% \end{macrocode}
+% The end of the environment possibly writes the address
+% information on the \file{.aux} file.
+% \changes{v2.0g}{1994/12/23}{No longer redefine \cs{protect} but use
+% one of the available settings}
+% \begin{macrocode}
+ {\stopletter\@@par\pagebreak\@@par
+ \if@filesw
+ \begingroup
+ \let\\=\relax
+ \let\protect\@unexpandable@protect
+ \immediate\write\@auxout
+ {\string\@mlabel{\returnaddress}{\toname\\\toaddress}}%
+ \endgroup
+ \fi}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{letter}
+% The \Lenv{letter} environment is a synonime for the \Lenv{brief}
+% environment, to provide compatibility with the standard
+% \file{letter} document class.
+% \begin{macrocode}
+\let\letter\brief
+\let\endletter\endbrief
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\@processto}
+% \begin{macro}{\@xproc}
+% \begin{macro}{\@yproc}
+% |\@processto| gets the |\toname| and |\toaddress| from the letter
+% environment's macro argument. |\@xproc| and |\@yproc| are auxiliary
+% macros.
+% \begin{macrocode}
+\long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty
+ \else \@yproc #1@@@\fi}
+\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
+\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\antwoordadres}
+% The command |\antwoordadres| takes the return address as an
+% argument. The various parts of the address should be separated by
+% |\\|, which will be turned into bullets.
+% \begin{macrocode}
+\newif\if@antwoordadres
+\newcommand*\antwoordadres[1]{%
+ \@antwoordadrestrue\renewcommand*\@antwoordadres{#1}}
+\newcommand*\@antwoordadres{}
+\let\replyaddress\antwoordadres
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The address window}
+%
+% The address for the letter will be placed in such a way that a
+% `window envelope' can be used to send the letter.
+%
+% \begin{macro}{\adresveldbreedte}
+% The width of the address window.
+% \begin{macrocode}
+\newdimen\adresveldbreedte
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\adresveld}
+% This command formats the address window.
+% \begin{macrocode}
+\newcommand*{\adresveld}{%
+ \hbox{}\kern-\topskip
+ \kern\@vensterskip
+ \begingroup
+% \end{macrocode}
+% Compute the width of the address window
+% \begin{macrocode}
+ \if@adresrechts
+ \setlength\adresveldbreedte{4\refveldbreedte}%
+ \addtolength\adresveldbreedte{-76mm}%
+ \def\@tempa{\moveright 76mm}%
+ \else
+ \let\@tempa\relax
+ \setlength\adresveldbreedte{83mm}%
+ \fi
+% \end{macrocode}
+% Store the address in a box.
+% \changes{v2.0m}{1995/11/29}{Set both \cs{parskip} and \cs{parindent}
+% to zero in \cs{adresveld}}
+% \changes{v2.0n}{1996/04/01}{Repaired a typo (\cs{parksip})}
+% \begin{macrocode}
+ \setbox\@tempboxa\vtop{%
+ \hsize\adresveldbreedte
+ \@normalsize
+ \parindent\z@\parskip\z@
+ \rightskip0\p@\@plus\adresveldbreedte
+ \let\\\@nobreakcr \toname \\ \toaddress}
+% \end{macrocode}
+% Format the return address if one was given.
+% \changes{v2.0q}{1997/09/08}{Put \cs{textbullet} in a group to keep
+% the font change local}
+% \begin{macrocode}
+ {\baselineskip\z@\lineskip\z@
+ \if@antwoordadres
+ \@tempa\vbox to \z@{%
+ \hb@xt@\adresveldbreedte{%
+ \kleinvet
+ \def\\{\unskip\enspace{\textbullet}\enspace\ignorespaces}%
+ \@antwoordadres\hfil}
+ \kern2\p@\hrule \vss}
+ \fi
+% \end{macrocode}
+% Print a small rule as typing aid if required.
+% \begin{macrocode}
+ \if@typhulp
+ \@tempa\llap{\vbox to \z@{\vskip9mm\streepje\vss}}
+ \fi
+% \end{macrocode}
+% And finally print the address information. Note that this way of
+% position the box which contains the address information has the
+% advantage that no matter how high or deep the box is, the
+% following information will always be printed in the same spot on
+% the paper.
+% \begin{macrocode}
+ \kern9mm \kern-\ht\@tempboxa \@tempdima=\dp\@tempboxa
+ \@tempa\box\@tempboxa \kern-\@tempdima
+ \vskip31mm}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The reference line}
+%
+% \begin{macro}{\refveldbreedte}
+% The width of the various fields in this line. It is determined in
+% \textsc{nen}~\oldstylenums{3516}
+% \begin{macrocode}
+\newdimen\refveldbreedte
+\setlength\refveldbreedte{38mm}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@defrefveld}
+% A macro to help in defining the various fields.
+% \begin{macrocode}
+\def\@defrefveld#1#2#3{\setbox#1\@refveld{#2}{#3}}
+% \end{macrocode}
+% \begin{macro}{\@refveld}
+% The macro |\@refveld| stores the formatted field in a box.
+% \changes{v2.0m}{1995/11/29}{Also set \cs{parindent} to zero}
+% \begin{macrocode}
+\def\@refveld#1#2{%
+ \vtop{\hsize\refveldbreedte
+ \parskip\z@\parindent\z@
+ \everypar{}%
+ \lineskiplimit\z@\baselineskip12\p@
+ \lineskip\z@
+ \rightskip0\p@ \@plus \refveldbreedte \@minus .5\refveldbreedte
+ \vbox{\refkopfont\baselineskip10\p@#1\@@par}
+ \kern2\p@
+ \strut #2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@UB}
+% \begin{macro}{\@UK}
+% \begin{macro}{\@OK}
+% \begin{macro}{\@Dt}
+% We allocate four box registers to store the four fields in
+% \begin{macrocode}
+\newbox\@UB \newbox\@UK \newbox\@OK \newbox\@Dt
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\uwbriefvan}
+% The command|\uwbriefvan| can be used to show the date of the
+% letter to which your letter is an answer
+% \begin{macrocode}
+\newcommand*\uwbriefvan[1]{\@defrefveld{\@UB}{\uwbrieftekst}{#1}}
+\let\yourletterof\uwbriefvan
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\uwkenmerk}
+% The command |\uwkenmerk| can be used to show the reference of the
+% letter to which your letter is an answer
+% \begin{macrocode}
+\newcommand*\uwkenmerk[1]{\@defrefveld{\@UK}{\uwkenmerktekst}{#1}}
+\let\yourreference\uwkenmerk
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\onskenmerk}
+% Store our reference in a box register.
+% \begin{macrocode}
+\newcommand*\onskenmerk[1]{\@defrefveld{\@OK}{\onskenmerktekst}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datum}
+% To store the date in a box register. When the user gives an empty
+% argument no date will be printed. When he doesn't use |\datum| he
+% will get today's date.
+% \begin{macrocode}
+\newcommand*\datum[1]{\def\@tempa{}\def\@tempb{#1}%
+ \ifx\@tempa\@tempb
+ \setbox\@Dt\hbox{ }%
+ \else
+ \@defrefveld{\@Dt}{\datumtekst}{#1}%
+ \fi}
+\let\date\datum
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\referentieregel}
+% This collects all the information for the reference line.
+% \begin{macrocode}
+\def\referentieregel{\hbox
+ {\hb@xt@\refveldbreedte{\copy\@UB\hfil}%
+ \hb@xt@\refveldbreedte{\copy\@UK\hfil}%
+ \hb@xt@\refveldbreedte{\copy\@OK\hfil}%
+ \hb@xt@\refveldbreedte{\copy\@Dt\hfil}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vervolgreferentieregel}
+% On the second and following pages a simple reference line can be
+% printed. It contains the address information, the date and the
+% page number.
+% \begin{macro}{\@Ad}
+% For this purpose we need to allocate another box register.
+% \begin{macrocode}
+\newbox\@Ad
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\def\vervolgreferentieregel{%
+ \hbox{%
+ \hb@xt@\refveldbreedte{\copy\@Ad\hfil}%
+ \hskip\refveldbreedte
+ \hb@xt@\refveldbreedte{\copy\@Dt\hfil}%
+ \@refveld{\bladnummertekst}{\thepage}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The headers and footers}
+%
+% \begin{macro}{\briefhoofd}
+% \begin{macro}{\vervolghoofd}
+% The headings are empty by default.
+% \begin{macrocode}
+\newcommand*\briefhoofd{}
+\newcommand*\vervolghoofd{\vbox{}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\maakbriefhoofd}
+% The usage of this command creates non-empty headers.
+% \begin{macrocode}
+\newcommand*\maakbriefhoofd
+ {\@ifstar {\@kortvervolgbriefhoofd}{\@langvervolgbriefhoofd}}
+\let\makeheader\maakbriefhoofd
+% \end{macrocode}
+%
+% \begin{macro}{\@kortvervolgbriefhoofd}
+% This creates a shortened heading for following pages
+% \begin{macrocode}
+\newcommand*\@kortvervolgbriefhoofd[2]{%
+ \@maakbriefhoofd{#1}{#2}
+ \def\vervolghoofd{%
+ \vbox{\hsize=4\refveldbreedte
+ \hb@xt@\hsize{\Large \normalfont\sffamily #1\strut\hfil}
+ \hrule \kern2mm \vervolgreferentieregel}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@langvervolgbriefhoofd}
+% This creates a long heading for following pages by just using
+% |\briefhoofd|.
+% \begin{macrocode}
+\newcommand*\@langvervolgbriefhoofd[2]{
+ \@maakbriefhoofd{#1}{#2}
+ \def\vervolghoofd{%
+ \vbox{\briefhoofd\vskip2mm
+ \vervolgreferentieregel
+ \vbox{}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@maakbriefhoofd}
+% This was used in the two preceding macros; it defines
+% |\briefhoofd|.
+% \begin{macrocode}
+\newcommand*\@maakbriefhoofd[2]{\def\briefhoofd{%
+ \vbox{\hsize=4\refveldbreedte
+ \hb@xt@\hsize{\Large \normalfont\sffamily #1\strut\hfil}
+ \hrule
+ \moveright 3\refveldbreedte\@refveld{\strut #2}{}
+ \vbox{}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@voetruimte}
+% A box to store the footer in.
+% \begin{macrocode}
+\newbox\@voetruimte
+\setbox\@voetruimte=\hbox{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@voetteller}
+% We need to know how many items are placed in the footer.
+% \begin{macrocode}
+\newcount\@voetteller
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\voetregel}
+% |\voetregel| just copies the box |\@voetruimte|.
+% \begin{macrocode}
+\newcommand*\voetregel{\copy\@voetruimte}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\voetitem}
+% A command to add an information field to the footer.
+% \begin{macrocode}
+\newcommand*\voetitem[2]{%
+ \advance\@voetteller by 1
+ \setbox\@voetruimte\hb@xt@4\refveldbreedte{%
+ \unhbox\@voetruimte
+ \ifcase\@voetteller \relax \or \relax \or \hfil \else \hfill
+ \fi
+ \@refveld{#1}{#2}\hskip0\p@ \@plus 3\refveldbreedte}}
+\let\footitem\voetitem
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The little rules}
+%
+% \begin{macro}{\streepje}
+% A shorthand for one little rule.
+% \changes{v2.0q}{1997/09/09}{Make the `streepje's a little smaller}
+% \begin{macrocode}
+\newcommand*\streepje{\hb@xt@2mm{\rule{2mm}{.1pt}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\streepjes}
+% This prints the folding rules
+% \begin{macrocode}
+\newcommand*\streepjes[1]{%
+ \vbox to \z@{%
+% \end{macrocode}
+% We have to backup to a position 13mm below the edge of the paper.
+% \begin{macrocode}
+ \kern-#1\relax
+ \hb@xt@\textwidth{%
+% \end{macrocode}
+% Then we can print a rule on the left side of the paper, half way
+% down to align for a perforator.
+% \begin{macrocode}
+ \llap{\perfstreepje\kern24mm}\hfill
+% \end{macrocode}
+% The folding rules are printed on the right hand side of the paper.
+% \begin{macrocode}
+ \rlap{\kern24mm\vouwstreepjes}}
+ \vss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\perfstreepje}
+% Prints a |\streepje| halfway down the paper. A4 paper is 297 mm
+% high; we start from a position 13mm below the edge of the paper.
+% Hence the |\kern 135mm|.
+% \begin{macrocode}
+\newcommand*\perfstreepje{\vtop{\kern\z@ \kern 135mm \streepje}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vouwstreepjes}
+% This prints two folding rules.
+% \changes{v2.0q}{1997/09/09}{Change the positioning of the
+% `streepje's a little}
+% \begin{macrocode}
+\newcommand*\vouwstreepjes{%
+ \vtop{\kern\z@
+ \kern 95mm %% 108-13
+ \streepje %% denk maar dat dit geen dikte heeft
+ \kern 45mm %% 155-150
+ \streepje}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Page breaking control}
+%
+% \begin{macro}{\stopbreaks}
+% \begin{macrocode}
+\def\stopbreaks{\interlinepenalty \@M
+ \def\par{\@@par\nobreak}\let\\=\@nobreakcr
+ \let\vspace\@nobreakvspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\nobreakvspace}
+% \begin{macro}{\nobreakvspacex}
+% \begin{macro}{\nobreakcr}
+% \begin{macrocode}
+\def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
+
+\def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else
+ \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
+% \end{macrocode}
+%
+% \changes{v2.0p}{1997/03/02}{Added setting of \cs{reserved@e} and
+% \cs{reserved@f} as this is now needed for \LaTeX.}
+% \begin{macrocode}
+\def\@nobreakcr{%
+ \let\reserved@e\relax
+ \let\reserved@f\relax
+ \vadjust{\nobreak}\@ifstar{\@xnewline}{\@xnewline}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\startbreaks}
+% \begin{macrocode}
+\def\startbreaks{\let\\=\@normalcr
+ \interlinepenalty 200\def\par{\@@par\penalty 200\relax}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\opening}
+% Text is begun with the |\opening| command, whose argument
+% generates the salutation, as in
+%\begin{verbatim}
+% \opening{Dear Henry,}
+%\end{verbatim}
+% This should produce everything up to and including the `Dear Henry,'
+% and a \par command that follows. Since there's a |\vfil| at the
+% bottom of every page, it can add vertical fil to position a
+% short letter. It should use the following commands:
+% \begin{itemize}
+% \item |\toname| : name part of 'to' address.
+% Will be one line long.
+% \item |\toaddress| : address part of 'to' address.
+% The lines separated by |\\|.
+% \item |\fromname| : name of sender.
+% \item |\fromaddress| : argument of current |\address|
+% declaration--
+% null if none. Should use standard institutional
+% address if null.
+% \item |\fromlocation| : argument of current |\location|
+% declaration--null if none.
+% \item |\telephonenum| : argument of current |\telephone|
+% declaration--null if none.
+% \end{itemize}
+% \begin{macrocode}
+\newcommand*\opening[1]{%
+ \thispagestyle{firstpage}%
+ \adresveld
+ \prevdepth=-1000\p@ \vskip-2\p@ %% ????
+ \referentieregel
+ \@dosubject #1\par\nobreak}
+% \end{macrocode}
+%
+% \begin{macro}{\@dosubject}
+% This prints the subject of the letter if one was specified.
+% \begin{macrocode}
+\def\@dosubject{%
+ \ifx\@empty\@subject
+ \else
+ \par\noindent
+ \parbox[t]{\textwidth}
+ {\@hangfrom{\refkopfont \betrefttekst \enspace}%
+ \normalfont\rmfamily\ignorespaces \@subject\strut}%
+ \par
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\afsluiting}
+% \begin{macro}{\closing}
+% The body of the letter follows, ended by a |\afsluiting| command,
+% as in
+%\begin{verbatim}
+% \afsluiting{Yours truly,}
+%\end{verbatim}
+% This commands generates the closing matter, and the signature.
+% An obvious thing to do is to use a |\parbox| for the closing
+% and the signature. Should use the following:
+% \begin{itemize}
+% \item |\fromsig| : argument of current |\signature| declaration
+% or, if null, the |\fromname|.
+% \item |\stopbreaks| : a macro that inhibits page breaking.
+% \end{itemize}
+% \changes{v2.0k}{1995/06/01}{removed a \cs{noindent} which caused an
+% anomalous space to appear in the output}
+% \begin{macrocode}
+\newcommand*\afsluiting[1]{\par\nobreak\vspace{\parskip}%
+ \stopbreaks
+ \ifx\@empty\fromsig
+ \def\ondertekening##1{\def\fromsig{##1}\@afsluiting{#1}}%
+ \else
+ \@afsluiting{#1}%
+ \fi}
+\let\closing\afsluiting
+\def\open@af{\vtop\bgroup\hsize.3\textwidth \raggedright}
+% \end{macrocode}
+% The internal command |\@afsluiting| takes care of printing the
+% closing text.
+% \changes{v2.0j}{1994/12/31}{Don't put an \cs{hbox} of \cs{textwidth}
+% inside a \cs{parbox} of .5\cs{textwidth}}
+% \changes{v2.0k}{1995/06/02}{inserted the \cs{noindent} which was
+% removed from \cs{afsluiting}}
+% \begin{macrocode}
+\newcommand*\@afsluiting[1]{%
+ \def\en{\strut\egroup\open@af}%
+ \let\and\en
+ \noindent
+ \parbox{.5\textwidth}{%
+ \raggedright \ignorespaces #1\\[6\medskipamount]%
+% \end{macrocode}
+% \changes{v2.0q}{1997/09/09}{Added \cs{leavevmode} to get the
+% signatures on one line}
+% \begin{macrocode}
+ \leavevmode\open@af \fromsig \strut\egroup}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\smallskipamount}
+% \begin{macro}{\mdeskipamount}
+% \begin{macro}{\bigskipamount}
+% Of these three, only |\medskipmount| is actually used above.
+% \begin{macrocode}
+%\smallskipamount=.5\parskip
+\medskipamount=\parskip
+%\bigskipamount=2\parskip
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\betreft}
+% \begin{macro}{\re}
+% The command |\betreft| (|\re|) stores the subject of the letter.
+% \changes{v2.0b}{1994/06/05}{Can't use (re)newcommand for
+% \cs{@subject} as that breaks the test against \cs{@empty}}
+% \begin{macrocode}
+\newcommand*\betreft[1]{\def\@subject{#1}}
+\let\onderwerp\betreft
+\let\subject\betreft
+\def\@subject{}
+\let\re\betreft
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cc}
+% After the |\closing| you can put arbitrary stuff, which is typeset
+% with zero |\parindent| and no page breaking. Commands designed
+% for use after the closing are:
+% \begin{verbatim}
+% \cc{Tinker\\Evers\\Chance}
+%\end{verbatim}
+% which produces:\\
+% \begin{tabular}{ll}
+% cc: & Tinker\\
+% & Evers\\
+% & Chance
+% \end{tabular}\\
+% Note the obvious use of |\parbox|.
+% \changes{v2.0l}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}; remove \cs{rm}}
+% \begin{macrocode}
+\newcommand*{\cc}[1]{\par\noindent
+ \parbox[t]{\textwidth}{\@hangfrom{\normalfont\ccname: }%
+ \ignorespaces #1\strut}\par}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bijlage}
+% \begin{macro}{\bijlagen}
+% \begin{macro}{\encl}
+%\begin{verbatim}
+% \bijlagen{Foo(2)\\Bar}
+%\end{verbatim}
+% which produces:\\
+% \begin{tabular}{ll}
+% bijlagen: & Foo(2)\\
+% & Bar
+% \end{tabular}
+% \changes{v2.0l}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}; remove \cs{rm}}
+% \begin{macrocode}
+\newcommand*{\bijlage}[1]{%
+ \par\noindent
+ \parbox[t]{\textwidth}{\@hangfrom{\normalfont\bijlagetekst\ }%
+ \ignorespaces #1\strut}\par}
+\newcommand*{\bijlagen}[1]{%
+ \par\noindent
+ \parbox[t]{\textwidth}{\@hangfrom{\normalfont\bijlagentekst\ }%
+ \ignorespaces #1\strut}\par}
+\let\encl\bijlagen
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ps}
+% The only thing |\ps| needs to do is call |\startbreaks|,
+% which allows page breaking again.
+% \begin{macrocode}
+\def\ps{\par\startbreaks}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\stopletter}
+% The |\stopletter| command is called by |\endletter| to do the
+% following:
+% \begin{itemize}
+% \item Add any desired fil or other material at the end of the
+% letter.
+% \item Define |\returnaddress| to be the return address for the
+% mailing label.
+% More precisely, it is the first argument of the |\mlabel|
+% command described below. It should be defined to null if the
+% return address doesn't appear on the labels. Any command,
+% other than |\\|, that should not be expanded until the |\mlabel|
+% command is actually executed must be preceded by |\protect|.
+% Whenever possible, |\protect| commands in the definition of
+% |\returnaddress|---it's much more efficient that way. In
+% particular, when the standard return address is used, you
+% should define |\returnaddress| to something like
+% |\protect\standardreturnaddress|.
+% \end{itemize}
+% \begin{macrocode}
+\def\stopletter{}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Customizing the labels}
+%
+% Commands for generating the labels are put on the .AUX file, which is
+% read in and processed by the |\end{document}| command. You have to
+% define the following two commands:
+% \begin{itemize}
+% \item
+% |\startlabels| : Should reset the page layout parameters if
+% necessary.
+% \item
+% |\mlabel|\marg{return address}\marg{to adress} : Command to
+% generate a single label.
+% \end{itemize}
+%
+%
+%
+% \begin{macro}{\returnaddress}
+% \begin{macrocode}
+\def\returnaddress{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\labelcount}
+% \begin{macrocode}
+\newcount\labelcount
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\startlabels}
+% The following |\startlabels| command sets things up for producing
+% labels in two columns of five 2" $\times$ 4-1/4" labels each,
+% suitable for reproducing onto Avery brand number 5352 address
+% labels.
+% \changes{v2.0l}{1995/08/10}{changed value of \cs{columnsep} by 1pt}
+% \begin{macrocode}
+\newcommand*{\startlabels}{\labelcount\z@
+ \pagestyle{empty}%
+ \let\@texttop\relax
+ \topmargin -50\p@
+ \headsep \z@
+ \oddsidemargin -35\p@
+ \evensidemargin -35\p@
+ \textheight 10in
+ \@colht\textheight \@colroom\textheight \vsize\textheight
+ \textwidth 550\p@
+ \columnsep 26\p@
+ \ifcase \@ptsize\relax
+ \normalsize
+ \or
+ \small
+ \or
+ \footnotesize
+ \fi
+ \baselineskip \z@
+ \lineskip \z@
+ \boxmaxdepth \z@
+ \parindent \z@
+ \twocolumn\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@startlabels}
+% |\@startlabels| is the command name that is written to the |.aux|
+% file. It is a no-op at first, and defined to be the same as
+% |\startlabels| in the |\begin{document}| hook.
+% \begin{macrocode}
+\let\@startlabels=\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mlabel}
+% This command prints an address label; it is used when the user
+% specified |\makelabels| in the preamble of his document. The
+% command |\mlabel| takes two arguments; the second argument is
+% supposed to be the address; the first argument can be used to
+% print a return address. In this document class we ignore the
+% first argument. Also the labels are supposed to be 2~inch high
+% and 3.6~inch wide. When your address labels have a different
+% width you will have to defined your own |\mlabel| command.
+% \changes{v2.0g}{1994/12/23}{Redefined \cs{mlabel} to not use the
+% \cs{setbox} primitive}
+% \changes{v2.0l}{1995/08/10}{changed width of the labels slightly to
+% prevent \LaTeX\ stuffing two on each line}
+% \begin{macrocode}
+\newcommand*{\mlabel}[2]{%
+ \parbox[b][2in][c]{262\p@}{\strut\ignorespaces #2}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@mlabel}
+% |\@mlabel| is written to the \file{.aux} file in place of
+% |\mlabel|. That allows to define it as a no-op per default, and
+% activate it in the |\begin{document}| hook.
+% \begin{macrocode}
+\let\@mlabel=\@gobbletwo
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Lists}
+%
+% \subsubsection{General List Parameters}
+%
+% The following commands are used to set the default values for the
+% list environment's parameters. See the \LaTeX{} manual for an
+% explanation of the meanings of the parameters. Defaults for the
+% list environment are set as follows. First, |\rightmargin|,
+% |\listparindent| and |\itemindent| are set to 0pt. Then, for a
+% \texttt{K}th level list, the command |\@listK| is called, where
+% `\texttt{K'} denotes `\texttt{i}', `\texttt{ii}', ... ,
+% `\texttt{vi}'. (I.e., |\@listiii| is called for a third-level
+% list.) By convention, |\@listK| should set |\leftmargin| to
+% |\leftmarginK|.
+%
+% \begin{macro}{\leftmargin}
+% \begin{macro}{\leftmargini}
+% \begin{macro}{\leftmarginii}
+% \begin{macro}{\leftmarginiii}
+% \begin{macro}{\leftmarginiv}
+% \begin{macro}{\leftmarginv}
+% \begin{macro}{\leftmarginvi}
+% For efficiency, level-one list's values are defined at top level,
+% and |\@listi| is defined to set only |\leftmargin|.
+% \begin{macrocode}
+\setlength\leftmargini {2.5em}
+% \end{macrocode}
+% The following three are calculated so that they are larger than
+% the sum of |\labelsep| and the width of the default labels (which
+% are `(m)', `vii.' and `M.').
+% \begin{macrocode}
+\setlength\leftmarginii {2.2em}
+\setlength\leftmarginiii {1.87em}
+\setlength\leftmarginiv {1.7em}
+\setlength\leftmarginv {1em}
+\setlength\leftmarginvi {1em}
+% \end{macrocode}
+% Here we set the top level leftmargin.
+% \begin{macrocode}
+\setlength\leftmargin {\leftmargini}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\labelsep}
+% \begin{macro}{\labelwidth}
+% |\labelsep| is the distance between the label and the text of an
+% item; |\labelwidth| is the width of the label.
+% \begin{macrocode}
+\setlength \labelsep {5\p@}
+\setlength \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\partopsep}
+% When the user leaves a blank line before the environment an extra
+% vertical space of |\partopsep| is inserted, in addition to
+% |\parskip| and |\topsep|.
+% \begin{macrocode}
+\setlength\partopsep{0\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\topsep}
+% Extra vertical space, in addition to |\parskip|, added above and
+% below list and paragraphing environments.
+% \begin{macrocode}
+\setlength\topsep{.4em}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@beginparpenalty}
+% \begin{macro}{\@endparpenalty}
+% These penalties are inserted before and after a list or paragraph
+% environment. They are set to a bonus value to encourage page
+% breaking at these points.
+% \begin{macro}{\@itempenalty}
+% This penalty is inserted between list items.
+% \begin{macrocode}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@listI}
+% \begin{macro}{\@listi}
+% |\@listI| defines top level and |\@listi| values of
+% |\leftmargin|, |\parsep|, |\topsep|, and |\itemsep|
+%
+% These values have been taken from the ones in the document class
+% \cls{artikel3}.
+% \begin{macrocode}
+\def\@listI{\leftmargin\leftmargini
+ \labelsep.5em%
+ \labelwidth\leftmargin
+ \advance\labelwidth-\labelsep
+ \topsep .5\parskip \@plus \p@
+ \parsep \z@
+ \itemsep\parsep}
+\let\@listi\@listI
+% \end{macrocode}
+% We have to initialise these parameters.
+% \begin{macrocode}
+\@listi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@listii}
+% \begin{macro}{\@listiii}
+% \begin{macro}{\@listiv}
+% \begin{macro}{\@listv}
+% \begin{macro}{\@listvi}
+% Here are the same macros for the higher level lists.
+% \begin{macrocode}
+\def\@listii {\leftmargin\leftmarginii
+ \labelsep .5em%
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@
+ \parsep \z@
+ \itemsep\parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelsep .5em%
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@
+ \parsep \z@
+ \partopsep \z@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelsep .5em%
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@}
+\def\@listv {\leftmargin\leftmarginv
+ \labelsep .5em%
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelsep .5em%
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Enumerate}
+%
+% The enumerate environment uses four counters: \Lcount{enumi},
+% \Lcount{enumii}, \Lcount{enumiii} and \Lcount{enumiv}, where
+% \Lcount{enumN} controls the numbering of the Nth level
+% enumeration.
+%
+% \begin{macro}{\theenumi}
+% \begin{macro}{\theenumii}
+% \begin{macro}{\theenumiii}
+% \begin{macro}{\theenumiv}
+% The counters are already defined in in the \LaTeX{} kernel
+% (\file{ltlists.dtx}), but their representation is changed here.
+%
+% \begin{macrocode}
+\renewcommand*{\theenumi}{\@arabic\c@enumi}
+\renewcommand*{\theenumii}{\@alph\c@enumii}
+\renewcommand*{\theenumiii}{\@roman\c@enumiii}
+\renewcommand*{\theenumiv}{\@Alph\c@enumiv}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\labelenumi}
+% \begin{macro}{\labelenumii}
+% \begin{macro}{\labelenumiii}
+% \begin{macro}{\labelenumiv}
+% The label for each item is generated by the commands
+% |\labelenumi| ... |\labelenumiv|.
+% \begin{macrocode}
+\newcommand*{\labelenumi}{\theenumi.}
+\newcommand*{\labelenumii}{(\theenumii)}
+\newcommand*{\labelenumiii}{\theenumiii.}
+\newcommand*{\labelenumiv}{\theenumiv.}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\p@enumii}
+% \begin{macro}{\p@enumiii}
+% \begin{macro}{\p@enumiv}
+% The expansion of |\p@enumN||\theenumN| defines the output of a
+% |\ref| command when referencing an item of the Nth level of an
+% enumerated list.
+% \begin{macrocode}
+\renewcommand*{\p@enumii}{\theenumi}
+\renewcommand*{\p@enumiii}{\theenumi(\theenumii)}
+\renewcommand*{\p@enumiv}{\p@enumiii\theenumiii}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Itemize}
+%
+% \begin{macro}{\labelitemi}
+% \begin{macro}{\labelitemii}
+% \begin{macro}{\labelitemiii}
+% \begin{macro}{\labelitemiv}
+% Itemization is controlled by |\labelitemi|, |\labelitemii|,
+% |\labelitemiii|, and |\labelitemiv|, which define the labels of
+% the various itemization levels: the symbols used are bullet, bold
+% en-dash, asterisk and centred dot.
+%
+% \changes{v2.0d}{1994/07/11}{renamed \cs{labelitemiiii} to
+% \cs{labelitemiii}}
+% \changes{v2.0o}{1996/09/23}{Changed \texttt{-{}-} to \cs{textendash}
+% following \file{classes.dtx}}
+% \changes{v2.0o}{1996/09/23}{Did similar for the bullet and centered
+% dot.}
+% \changes{v2.0p}{1997/03/02}{Now also \cs{textasteriskcentered}}
+% \begin{macrocode}
+\newcommand*{\labelitemi}{\textbullet}
+\newcommand*{\labelitemii}{\normalfont\bfseries \textendash}
+\newcommand*{\labelitemiii}{\textasteriskcentered}
+\newcommand*{\labelitemiv}{\textperiodcentered}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Description}
+%
+% \begin{environment}{description}
+% The description environment is defined here -- while the itemize
+% and enumerate environments are defined in the \LaTeX{} kernel
+% (\file{ltlists.dtx}).
+%
+% \begin{macrocode}
+\newenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\descriptionlabel}
+% To change the formatting of the label, you must redefine
+% |\descriptionlabel|.
+%
+% \begin{macrocode}
+\newcommand*\descriptionlabel[1]{\hspace\labelsep
+ \normalfont\bfseries #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Defining new environments}
+%
+% \subsubsection{Verse}
+%
+% \begin{environment}{verse}
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types |\\| to end a line.
+% This is implemented by |\let|'ing |\\| equal |\@centercr|.
+%
+% \begin{macrocode}
+\newenvironment{verse}
+ {\let\\=\@centercr
+ \list{}{\setlength\itemsep{\z@}%
+ \setlength\itemindent{-15\p@}%
+ \setlength\listparindent{\itemindent}%
+ \setlength\rightmargin{\leftmargin}%
+ \addtolength\leftmargin{15\p@}}%
+ \item[]}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Quotation}
+%
+% \begin{environment}{quotation}
+% The quotation environment is also defined by making clever use of
+% the list environment's parameters. The lines in the environment
+% are set smaller than |\textwidth|. The first line of a paragraph
+% inside this environment is indented.
+%
+% \begin{macrocode}
+\newenvironment{quotation}
+ {\list{}{\setlength\listparindent{1.5em}%
+ \setlength\itemindent{\listparindent}%
+ \setlength\rightmargin{\leftmargin}}%
+ \item[]}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Quote}
+%
+% \begin{environment}{quote}
+% The quote environment is like the quotation environment except
+% that paragraphs are not indented.
+%
+% \begin{macrocode}
+\newenvironment{quote}
+ {\list{}{\setlength\rightmargin{\leftmargin}}%
+ \item[]}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Theorem}
+%
+% This document class does not define it's own theorem environemts,
+% the defaults, supplied by \LaTeX{} kernel (\file{ltthm.dtx}) are
+% available.
+%
+% \subsection{Setting parameters for existing environments}
+%
+% \subsubsection{Array and tabular}
+%
+% \begin{macro}{\arraycolsep}
+% The columns in an array environment are separated by
+% 2|\arraycolsep|.
+% \begin{macrocode}
+\setlength\arraycolsep{5\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tabcolsep}
+% The columns in an tabular environment are separated by
+% 2|\tabcolsep|.
+% \begin{macrocode}
+\setlength\tabcolsep{6\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\arrayrulewidth}
+% The width of vertical rules in the array and tabular environments
+% is given by |\arrayrulewidth|.
+% \begin{macrocode}
+\setlength\arrayrulewidth{.4\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\doublerulesep}
+% The space between adjacent rules in the array and tabular
+% environments is given by |\doublerulesep|.
+% \begin{macrocode}
+\setlength\doublerulesep{2\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Tabbing}
+%
+% \begin{macro}{\tabbingsep}
+% This controls the space that the |\'| command puts in. (See
+% \LaTeX{} manual for an explanation.)
+% \begin{macrocode}
+\setlength\tabbingsep{\labelsep}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Minipage}
+%
+% \begin{macro}{\@minipagerestore}
+% The macro |\@minipagerestore| is called upon entry to a minipage
+% environment to set up things that are to be handled differently
+% inside a minipage environment. In the current styles, it does
+% nothing.
+% \end{macro}
+%
+% \begin{macro}{\@mpfootins}
+% Minipages have their own footnotes; |\skip||\@mpfootins| plays
+% same r\^ole for footnotes in a minipage as |\skip||\footins| does
+% for ordinary footnotes.
+%
+% \begin{macrocode}
+\skip\@mpfootins = \skip\footins
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Framed boxes}
+%
+% \begin{macro}{\fboxsep}
+% The space left by |\fbox| and |\framebox| between the box and the
+% text in it.
+% \begin{macro}{\fboxrule}
+% The width of the rules in the box made by |\fbox| and |\framebox|.
+% \begin{macrocode}
+\setlength\fboxsep{3\p@}
+\setlength\fboxrule{.4\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Equation and eqnarray}
+%
+% \begin{macro}{\theequation}
+% The equation counter will be typeset using arabic numbers.
+% \begin{macrocode}
+\renewcommand*{\theequation}{\@arabic\c@equation}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\jot}
+% |\jot| is the extra space added between lines of an eqnarray
+% environment. The default value is used.
+% \begin{macrocode}
+% \setlength\jot{3pt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@eqnnum}
+% The macro |\@eqnnum| defines how equation numbers are to appear in
+% equations. Again the default is used.
+%
+% \begin{macrocode}
+% \def\@eqnnum{(\theequation)}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Font changing}
+%
+% Here we supply the declarative font changing commands that were
+% common in \LaTeX\ version 2.09 and earlier. These commands work
+% in text mode \emph{and} in math mode. They are provided for
+% compatiblity, but one should start using the |\text...| and
+% |\math...| commands instead. These commands are redefined using
+% |\@renewfontswitch|, a command with three arguments: the user
+% command to be defined; \LaTeX\ commands to execute in text mode
+% and \LaTeX\ commands to execute in math mode.
+%
+% \begin{macro}{\rm}
+% \begin{macro}{\tt}
+% \begin{macro}{\sf}
+% The commands to change the family.
+% \begin{macrocode}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bf}
+% The command to change to the bold series. One should use
+% |\mdseries| to explicitly switch back to medium series.
+% \begin{macrocode}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sl}
+% \begin{macro}{\it}
+% \begin{macro}{\sc}
+%
+% And the commands to change the shape of the font. The slanted and
+% small caps shapes are not available by default as math alphabets,
+% so those changes do nothing in math mode. One should use
+% |\upshape| to explicitly change back to the upright shape.
+% \begin{macrocode}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\relax}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cal}
+% \begin{macro}{\mit}
+%
+% The commands |\cal| and |\mit| should only be used in math mode,
+% outside math mode they have no effect. Currently the New Font
+% Selection Scheme defines these commands to generate warning
+% messages. Therefore we have to define them `by hand'.
+% \changes{v2.0g}{1994/12/23}{Now define \cs{cal} and \cs{mit} using
+% \cs{DeclareRobustCommand*}}
+% \begin{macrocode}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Footnotes}
+%
+% \begin{macro}{\footnoterule}
+% Usually, footnotes are separated from the main body of the text
+% by a small rule. This rule is drawn by the macro |\footnoterule|.
+% We have to make sure that the rule takes no vertical space (see
+% \file{plain.tex}) so we compensate for the natural heigth of the
+% rule of 0.4pt by adding the right amount of vertical skip.
+%
+% To prevent the rule from colliding with the footnote we first add
+% a little negative vertical skip, then we put the rule and make
+% sure we end up at the same point where we begun this operation.
+% \begin{macrocode}
+\renewcommand*{\footnoterule}{%
+ \kern-\p@
+ \hrule \@width .4\columnwidth
+ \kern .6\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@footnote}
+% Footnotes are numbered within chapters in the report and book
+% document styles.
+% \begin{macrocode}
+% \newcounter{footnote}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makefntext}
+% The footnote mechanism of \LaTeX{} calls the macro |\@makefntext|
+% to produce the actual footnote. The macro gets the text of the
+% footnote as its argument and should use |\@makefnmark| to produce
+% the mark of the footnote. The macro |\@makefntext| is called when
+% effectively inside a |\parbox| of width |\columnwidth| (i.e.,
+% with |\hsize| = |\columnwidth|).
+%
+% An example of what can be achieved is given by the following piece
+% of \TeX\ code.
+% \begin{verbatim}
+% \long\def\@makefntext#1{%
+% \@setpar{\@@par
+% \@tempdima = \hsize
+% \advance\@tempdima-10pt
+% \parshape \@ne 10pt \@tempdima}%
+% \par
+% \parindent 1em\noindent
+% \hb@xt@\z@{\hss\@makefnmark}#1}
+% \end{verbatim}
+% The effect of this definition is that all lines of the footnote
+% are indented by 10pt, while the first line of a new paragraph is
+% indented by 1em. To change these dimensions, just substitute the
+% desired value for `10pt' (in both places) or `1em'. The mark is
+% flushright against the footnote.
+%
+% In these document classes we use a simpler macro, in which the
+% footnote text is set like an ordinary text paragraph, with no
+% indentation except on the first line of a paragraph, and the
+% first line of the footnote. Thus, all the macro must do is set
+% |\parindent| to the appropriate value for succeeding paragraphs
+% and put the proper indentation before the mark.
+%
+% \changes{v2.0q}{1997/09/08}{As we want to have different appearances
+% of the footnotemarker in the text and in the footnotes, we can't
+% use \cs{@makefnmark} here}
+% \begin{macrocode}
+\long\def\@makefntext#1{%
+ \noindent\hb@xt@\leftmargini{\normalfont\@thefnmark.\hfil}#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makefnmark}
+% The footnote markers that are printed in the text to point to the
+% footnotes should be produced by the macro |\@makefnmark|.
+% \changes{v2.0l}{1995/08/10}{No longer use hidden math}
+% \changes{v2.0q}{1997/09/08}{Use the default definition for
+% \cs{@makefnmark}}
+% \begin{macrocode}
+% \def\@makefnmark{\hb@xt@\leftmargini{\normalfont\@thefnmark.\hfil}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Words}
+%
+% This document class supports a number of languages. All words
+% that will be printed byu the class code are stored in commands
+% which can be redefined if you want to use a different language.
+%
+% \begin{macro}{\dutchbrief}
+% This stores dutch strings.
+% \begin{macrocode}
+\newcommand*{\dutchbrief}{%
+ \def\uwbrieftekst{Uw brief van}
+ \def\uwkenmerktekst{Uw kenmerk}
+ \def\onskenmerktekst{Ons kenmerk}
+ \def\datumtekst{Datum}
+ \def\geadresseerdetekst{Geadresseerde}
+ \def\bladnummertekst{Bladnummer}
+ \def\vandaag{\number\day~\ifcase\month\or
+ januari\or februari\or maart\or april\or mei\or juni\or juli\or
+ augustus\or september\or oktober\or november\or december\fi
+ \space \number\year}
+ \def\betrefttekst{Onderwerp:}
+ \def\ccname{cc}
+ \def\bijlagetekst{Bijlage:}
+ \def\bijlagentekst{Bijlagen:}
+ \def\telefoontekst{telefoon}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\englishbrief}
+% This stores English strings.
+% \changes{v2.0i}{1994/12/30}{Repaired typo}
+% \begin{macrocode}
+\newcommand*{\englishbrief}{%
+ \def\uwbrieftekst{Your letter of}
+ \def\uwkenmerktekst{Your reference}
+ \def\onskenmerktekst{Our reference}
+ \def\datumtekst{Date}
+ \def\geadresseerdetekst{To}
+ \def\bladnummertekst{Page}
+ \def\vandaag{\ifcase\day\or
+ 1st\or 2nd\or 3rd\or 4th\or 5th\or
+ 6th\or 7th\or 8th\or 9th\or 10th\or
+ 11th\or 12th\or 13th\or 14th\or 15th\or
+ 16th\or 17th\or 18th\or 19th\or 20th\or
+ 21st\or 22nd\or 23rd\or 24th\or 25th\or
+ 26th\or 27th\or 28th\or 29th\or 30th\or
+ 31st\fi~\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space \number\year}
+ \def\betrefttekst{Re:}
+ \def\ccname{cc}
+ \def\bijlagetekst{Enclosure:}
+ \def\bijlagentekst{Enclosures:}
+ \def\telefoontekst{telephone}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\americanbrief}
+% This stores American english strings
+% \begin{macrocode}
+\newcommand*{\americanbrief}{%
+ \def\uwbrieftekst{Your letter of}
+ \def\uwkenmerktekst{Your reference}
+ \def\onskenmerktekst{Our reference}
+ \def\datumtekst{Date}
+ \def\geadresseerdetekst{To}
+ \def\bladnummertekst{Page}
+ \def\vandaag{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+ \def\betrefttekst{Re:}
+ \def\ccname{cc}
+ \def\bijlagetekst{Enclosure:}
+ \def\bijlagentekst{Enclosures:}
+ \def\telefoontekst{telephone}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\germanbrief}
+% This stores the German versions of the strings.
+% \begin{macrocode}
+\newcommand*{\germanbrief}{%
+ \def\uwbrieftekst{Ihr Brief vom}
+ \def\uwkenmerktekst{Ihr Zeichen}
+ \def\onskenmerktekst{Unser Zeichen}
+ \def\datumtekst{Datum}
+ \def\geadresseerdetekst{An}
+ \def\bladnummertekst{Seite}
+ \def\vandaag{\number\day.~\ifcase\month\or
+ Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
+ Juli\or August\or September\or Oktober\or November\or Dezember\fi
+ \space\number\year}
+ \def\betrefttekst{Betrifft:}
+ \def\ccname{Kopien an}
+ \def\bijlagetekst{Anlage:}
+ \def\bijlagentekst{Anlagen:}
+ \def\telefoontekst{Telefon}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\frenchbrief}
+% And finally to store the french strings
+% \begin{macrocode}
+\newcommand*{\frenchbrief}{%
+ \def\uwbrieftekst{Votre lettre du}
+ \def\uwkenmerktekst{Vos r\'ef\'erences:}
+ \def\onskenmerktekst{Nos r\'ef\'erences:}
+ \def\datumtekst{Date:}
+ \def\geadresseerdetekst{\`A l'attention de}
+ \def\bladnummertekst{Page}
+ \def\vandaag{\number\day\ifnum\day=1$^{er}$\fi
+ ~\ifcase\month\or janvier\or
+ f\'evrier\or mars\or avril\or mai\or juin\or
+ juillet\or ao\^ut\or septembre\or octobre\or
+ novembre\or d\'ecembre\fi \space \number\year}
+ \def\betrefttekst{Objet:}
+ \def\ccname{Copie \`a}
+ \def\bijlagetekst{Pi\`ece jointe:}
+ \def\bijlagentekst{Pi\`eces jointes:}
+ \def\telefoontekst{T\'el\'ephone:}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Two column mode}
+%
+% \begin{macro}{\columnsep}
+% This gives the distance between two columns in two column mode.
+% \begin{macrocode}
+\setlength\columnsep{10\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\columnseprule}
+% This gives the width of the rule between two columns in two
+% column mode. We have no visible rule.
+% \begin{macrocode}
+\setlength\columnseprule{0\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{The page style}
+% We have \pstyle{headings} pages in this document class by
+% default. We use arabic pagenumbers.
+% \begin{macrocode}
+\pagestyle{headings}
+\pagenumbering{arabic}
+% \end{macrocode}
+%
+% \subsection{Single or double sided printing}
+%
+% We don't try to make each page as long as all the others.
+% \begin{macrocode}
+\raggedbottom
+% \end{macrocode}
+%
+% \begin{macro}{\@texttop}
+% The document class \cls{letter} sets |\@texttop| to |\vskip| 0pt
+% \texttt{plus} .00006fil on the first page of a letter, which
+% centers a short letter on the page. This class however doesn't
+% want the letter to be centered on the page.
+% \begin{macrocode}
+\let\@texttop\relax
+% \end{macrocode}
+% \end{macro}
+%
+% We always start in one column mode.
+% \begin{macrocode}
+\onecolumn
+%</brief>
+% \end{macrocode}
+%
+%
+%
+% \Finale
+%
+\endinput