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