% \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} % [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} % % \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 % % \end{macrocode} % % % % \Finale % \endinput