% \iffalse
%
% Copyright (C) 1994 -- 2023 by Nederlandstalige TeX Gebruikersgroep.
% Based on letter.dtx version 1.3a
%
% Copyright (C) 1994 LaTeX3 project, Frank Mittelbach
% and Rainer Sch\"opf, 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.3c
% 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.3c or later is part of all distributions of LaTeX
% version 2008 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
% \CheckSum{2213}
% \iffalse
%
% \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/12/01]
%    \end{macrocode}
%
%    Announce the Class name and its version.
%    \begin{macrocode}
%<+brief>\ProvidesClass{brief}
%<*driver>
\ProvidesFile{brief.drv}
%</driver>
              [2023/01/10 v2.0s
%<+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}
%    We do want an index, using linenumbers.
% \changes{v2.0s}{2020/02/18}{Added \cs{CodelineIndex} to make sure a
%    \texttt{.idx} file is produced}
%    \begin{macrocode}
\EnableCrossrefs
\CodelineIndex
%    \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
\PrintChanges
\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}
% \changes{v2.0s}{2020/02/18}{Synchronised with the standard document
%    classes} 
%    
%
% \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}
%    We use |\MakeRobust| instead of |\DeclareRobustCommand| above to
%    avoid a log entry for the redefinition.
%    But if we are running in a rollback situation
%    (prior to 2015) we don't touch it.
% \changes{v2.0s}{2020/02/18}{Roll back handling (gh/201)}
%    \begin{macrocode}
\ifx\MakeRobust\@undefined \else
    \MakeRobust\normalsize
\fi
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\small}
%    
%    This is similar to |\normalsize|.
% \changes{v2.0s}{2020/02/18}{Use \cs{DeclareRobustCommand} instead of
%    \cs{newcommand*}}
%    \begin{macrocode}
\ifcase\@ptsize
  \DeclareRobustCommand\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
  \DeclareRobustCommand\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
  \DeclareRobustCommand\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
  \DeclareRobustCommand\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
  \DeclareRobustCommand\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
  \DeclareRobustCommand\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
  \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
  \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
  \DeclareRobustCommand\large{\@setfontsize\large\@xiipt{14}}
  \DeclareRobustCommand\Large{\@setfontsize\Large\@xivpt{18}}
  \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
  \DeclareRobustCommand\huge{\@setfontsize\huge\@xxpt{25}}
  \DeclareRobustCommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
\or
  \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
  \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
  \DeclareRobustCommand\large{\@setfontsize\large\@xiipt{14}}
  \DeclareRobustCommand\Large{\@setfontsize\Large\@xivpt{18}}
  \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
  \DeclareRobustCommand\huge{\@setfontsize\huge\@xxpt{25}}
  \DeclareRobustCommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
\or
  \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
  \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
  \DeclareRobustCommand\large{\@setfontsize\large\@xivpt{18}}
  \DeclareRobustCommand\Large{\@setfontsize\Large\@xviipt{22}}
  \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xxpt{25}}
  \DeclareRobustCommand\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}
\newcommand*\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}
\newcommand*\stopbreaks{\interlinepenalty \@M
   \def\par{\@@par\nobreak}\let\\=\@nobreakcr
   \let\vspace\@nobreakvspace}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@nobreakvspace}
% \changes{v2.0s}{2020/02/18}{Made robust (\LaTeX{} pr/2049)}
% \begin{macro}{\@nobreakvspacex}
% \begin{macro}{\@nobreakcr}
%    \begin{macrocode}
\DeclareRobustCommand\@nobreakvspace
   {\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
%    \end{macrocode}
%
%    \begin{macrocode}
\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}
\newcommand*\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}
\newcommand*\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}
\newcommand*\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  {\labelitemfont \textbullet}
\newcommand*\labelitemii {\labelitemfont \bfseries \textendash}
\newcommand*\labelitemiii{\labelitemfont \textasteriskcentered}
\newcommand*\labelitemiv {\labelitemfont \textperiodcentered}
%    \end{macrocode}
%
% \begin{macro}{\labelitemfont}
%    The default definition for \cs{labelitemfont} is to reset the
%    font to \cs{normalfont} so that always the same symbol is
%    produced regardless of surrounding conditions.
%
% \changes{v2.0s}{2020/02/18}{Normalize label fonts}
%    A possible alternative would be
%\begin{verbatim}
%\renewcommand\labelitemfont{%
%   \fontseries\seriesdefault
%   \fontshape\shapedefault\selectfont}
%\end{verbatim}
%    which resets series and shape doesn't touch the family.
%    \begin{macrocode}
\newcommand\labelitemfont{\normalfont}
%    \end{macrocode}
% \end{macro}
% \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
