0% found this document useful (0 votes)
2 views

brief

The NTG Document Class brief for LaTeX version 2e provides an overview of the document class designed for letter formatting, detailing commands and options for customization. It includes sections on initial code, paper sizes, type sizes, and various document layout features. The document serves as a comprehensive guide for users to effectively utilize the NTG document class for letter writing in LaTeX.

Uploaded by

my runtime
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

brief

The NTG Document Class brief for LaTeX version 2e provides an overview of the document class designed for letter formatting, detailing commands and options for customization. It includes sections on initial code, paper sizes, type sizes, and various document layout features. The document serves as a comprehensive guide for users to effectively utilize the NTG document class for letter writing in LaTeX.

Uploaded by

my runtime
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

NTG Document Class brief for LATEX version 2e

Victor Eijkhout Johannes Braams


January 10, 2023

Contents
1 Introduction 2

2 Initial Code 2
2.1 Setting Paper Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Choosing the type size . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Two-side or one-side printing . . . . . . . . . . . . . . . . . . . . . 4
2.4 Draft option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 Equation numbering on the left . . . . . . . . . . . . . . . . . . . . 4
2.6 Flush left displays . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7 Typewriter alignment . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.8 Folding lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.9 Address placement . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.10 Support for different languages . . . . . . . . . . . . . . . . . . . . 5

3 Executing Options 5

4 Loading Packages 8

5 Document Layout 8
5.1 Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.2 Paragraphing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.3 Page Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3.1 Vertical spacing . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3.2 The dimension of text . . . . . . . . . . . . . . . . . . . . . 10
5.3.3 Margins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3.4 The address field . . . . . . . . . . . . . . . . . . . . . . . . 11
5.3.5 Changing head and text heights . . . . . . . . . . . . . . . 11
5.3.6 Information in the foot . . . . . . . . . . . . . . . . . . . . 12
5.3.7 Footnotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.4 Page Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.4.1 Marking conventions . . . . . . . . . . . . . . . . . . . . . . 12
5.4.2 Defining the page styles . . . . . . . . . . . . . . . . . . . . 13

1
6 Document Markup 14
6.1 Global Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.2 The generic letter commands . . . . . . . . . . . . . . . . . . . . . 15
6.2.1 The address window . . . . . . . . . . . . . . . . . . . . . . 17
6.2.2 The reference line . . . . . . . . . . . . . . . . . . . . . . . 18
6.2.3 The headers and footers . . . . . . . . . . . . . . . . . . . . 19
6.2.4 The little rules . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.2.5 Page breaking control . . . . . . . . . . . . . . . . . . . . . 21
6.3 Customizing the labels . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.4 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.4.1 General List Parameters . . . . . . . . . . . . . . . . . . . . 25
6.4.2 Enumerate . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.4.3 Itemize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.4.4 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.5 Defining new environments . . . . . . . . . . . . . . . . . . . . . . 29
6.5.1 Verse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.5.2 Quotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.5.3 Quote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.5.4 Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.6 Setting parameters for existing environments . . . . . . . . . . . . 29
6.6.1 Array and tabular . . . . . . . . . . . . . . . . . . . . . . . 29
6.6.2 Tabbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.6.3 Minipage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.6.4 Framed boxes . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.6.5 Equation and eqnarray . . . . . . . . . . . . . . . . . . . . . 30
6.7 Font changing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.8 Footnotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.9 Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.10 Two column mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.11 The page style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.12 Single or double sided printing . . . . . . . . . . . . . . . . . . . . 35

1 Introduction
This file contains the document class brief that was made available by Working
Group 13 of the NTG (Nederlandstalige TEX Gebruikersgroep). It defines more
commands than the standard document class letter, but a letter made with the
letter document class is still processable with this document class.

2 Initial Code
In this part we define a few comands that are used later on.

2
\@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.
1 ⟨∗brief⟩
2 \newcommand*\@ptsize{}

\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.
3 \newif\if@typhulp

\if@streepjes A switch to indicate if the ‘folding lines’ should be printed


4 \newif\if@streepjes

\if@adresrechts This switch indicates if the addressing information is to be set on the left or on
the right side of the letter.
5 \newif\if@adresrechts

\if@elfinch A switch to remember whether we are using A4 or letter paper. (possibly obsolete)
6 \newif\if@elfinch

2.1 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.
7 \DeclareOption{a4paper}
8 {\setlength\paperheight {297mm}%
9 \setlength\paperwidth {210mm}\@elfinchfalse}
10 \DeclareOption{a5paper}
11 {\ClassWarning{brief}{Paper size A5 not supported, using A4}%
12 \setlength\paperheight {297mm}%
13 \setlength\paperwidth {210mm}\@elfinchfalse}
14 \DeclareOption{b5paper}
15 {\ClassWarning{brief}{Paper size B5 not supported, using A4}%
16 \setlength\paperheight {297mm}%
17 \setlength\paperwidth {210mm}\@elfinchfalse}
18 \DeclareOption{letterpaper}
19 {\setlength\paperheight {11in}%
20 \setlength\paperwidth {8.5in}\@elfinchtrue}
21 \DeclareOption{USletter}
22 {\setlength\paperheight {11in}%
23 \setlength\paperwidth {8.5in}\@elfinchtrue}
24 \DeclareOption{legalpaper}
25 {\ClassWarning{brief}
26 {Paper size ‘legal’ not supported, using ‘letter’}%
27 \setlength\paperheight {14in}%
28 \setlength\paperwidth {8.5in}\@elfinchtrue}
29 \DeclareOption{executivepaper}
30 {\ClassWarning{brief}

3
31 {Paper size ‘executive’ not supported, using ‘letter’}%
32 \setlength\paperheight {10.5in}%
33 \setlength\paperwidth {7.25in}\@elfinchtrue}

2.2 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 9 and 8 assuming that a class
wont define both 8pt and 18pt options.
34 \DeclareOption{10pt}{\renewcommand*\@ptsize{0}}
35 \DeclareOption{11pt}{\renewcommand*\@ptsize{1}}
36 \DeclareOption{12pt}{\renewcommand*\@ptsize{2}}

2.3 Two-side or one-side printing


Two-sided printing was not supported in the LATEX 2.09 version of this document-
class.
37 \if@compatibility
38 \DeclareOption{twoside}{\@latexerr{No ’twoside’ layout for letters}%
39 \@eha}
40 \else
41 \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
42 \fi

43 \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}

2.4 Draft option


If the user requests draft we show any overfull boxes. We could probably add some
more interesting stuff to this option.
44 \DeclareOption{draft}{\setlength\overfullrule{5pt}}
45 \DeclareOption{final}{\setlength\overfullrule{0pt}}

2.5 Equation numbering on the left


The option leqno can be used to get the equation numbers on the left side of the
equation.
46 \DeclareOption{leqno}{\input{leqno.clo}}

2.6 Flush left displays


The option 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.
47 \DeclareOption{fleqn}{\input{fleqn.clo}}

4
2.7 Typewriter alignment
48 \DeclareOption{typhulp}{\@typhulptrue}
49 \DeclareOption{geentyphulp}{\@typhulpfalse}

2.8 Folding lines


It is possible to print ‘folding lines’ on the far right side of the paper.
50 \DeclareOption{streepjes}{\@streepjestrue}
51 \DeclareOption{geenstreepjes}{\@streepjesfalse}

2.9 Address placement


The address information can be put either on the left or on the right side of the
letter
52 \DeclareOption{adreslinks}{\@adresrechtsfalse}
53 \DeclareOption{adresrechts}{\@adresrechtstrue}

2.10 Support for different languages


In the original document style 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,
54 \DeclareOption{nederlands}{\AtEndOfClass{\dutchbrief}}
55 \DeclareOption{dutch} {\AtEndOfClass{\dutchbrief}}
then British English,
56 \DeclareOption{engels} {\AtEndOfClass{\englishbrief}}
57 \DeclareOption{english} {\AtEndOfClass{\englishbrief}}
American English,
58 \DeclareOption{USengels} {\AtEndOfClass{\americanbrief}}
59 \DeclareOption{american} {\AtEndOfClass{\americanbrief}}
German
60 \DeclareOption{duits} {\AtEndOfClass{\germanbrief}}
61 \DeclareOption{german} {\AtEndOfClass{\germanbrief}}
and finally french.
62 \DeclareOption{frans} {\AtEndOfClass{\frenchbrief}}
63 \DeclareOption{french} {\AtEndOfClass{\frenchbrief}}
64 \DeclareOption{francais} {\AtEndOfClass{\frenchbrief}}

3 Executing Options
Here we execute the default options to initialize certain variables.
65 \ExecuteOptions{a4paper,11pt,oneside,onecolumn,final,%

5
66 geentyphulp,geenstreepjes,adreslinks,%
67 nederlands}
The \ProcessOptions command causes the execution of the code for every
option FOO which is declared and for which the user typed the FOO option in
his \documentclass command. For every option 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.
68 \ProcessOptions\relax
Now that all the options have been executed we can define the user-level size
changing commands. Their definition depends on which of the 10pt, 11pt or 12pt
options was specified.

\normalsize The user level command for the main size is \normalsize. Internally LATEX uses
\@normalsize \@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
69 \ifcase\@ptsize
70 \renewcommand*\normalsize{%
71 \@setfontsize\normalsize\@xpt\@xiipt
72 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
73 \abovedisplayshortskip \z@ \@plus3\p@
74 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
75 \belowdisplayskip \abovedisplayskip
76 \let\@listi\@listI}
77 \or
78 \renewcommand*\normalsize{%
79 \@setfontsize\normalsize\@xipt{13.6}%
80 \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
81 \abovedisplayshortskip \z@ \@plus3\p@
82 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
83 \belowdisplayskip \abovedisplayskip
84 \let\@listi\@listI}
85 \or
86 \renewcommand*\normalsize{%
87 \@setfontsize\normalsize\@xiipt{15}%
88 \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
89 \abovedisplayshortskip \z@ \@plus3\p@
90 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
91 \belowdisplayskip \abovedisplayskip
92 \let\@listi\@listI}
93 \fi

Make \@normalsize a synonymn for \normalsize.


94 \let\@normalsize\normalsize

6
We initially choose the normalsize font.
95 \normalsize
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.
96 \ifx\MakeRobust\@undefined \else
97 \MakeRobust\normalsize
98 \fi

\small This is similar to \normalsize.


99 \ifcase\@ptsize
100 \DeclareRobustCommand\small{%
101 \@setfontsize\small\@ixpt{11}%
102 \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
103 \abovedisplayshortskip \z@ \@plus2\p@
104 \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
105 \belowdisplayskip \abovedisplayskip}
106 \or
107 \DeclareRobustCommand\small{%
108 \@setfontsize\small\@xpt\@xiipt
109 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
110 \abovedisplayshortskip \z@ \@plus3\p@
111 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
112 \belowdisplayskip \abovedisplayskip}
113 \or
114 \DeclareRobustCommand\small{%
115 \@setfontsize\small\@xipt{13.6}%
116 \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
117 \abovedisplayshortskip \z@ \@plus3\p@
118 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
119 \belowdisplayskip \abovedisplayskip}
120 \fi

\footnotesize This is similar to \normalsize.


121 \ifcase\@ptsize
122 \DeclareRobustCommand\footnotesize{%
123 \@setfontsize\footnotesize\@viiipt{9.5}%
124 \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
125 \abovedisplayshortskip \z@ \@plus\p@
126 \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
127 \belowdisplayskip \abovedisplayskip}
128 \or
129 \DeclareRobustCommand\footnotesize{%
130 \@setfontsize\footnotesize\@ixpt{11}%
131 \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
132 \abovedisplayshortskip \z@ \@plus\p@
133 \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
134 \belowdisplayskip \abovedisplayskip}
135 \or

7
136 \DeclareRobustCommand\footnotesize{%
137 \@setfontsize\footnotesize\@xpt\@xiipt
138 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
139 \abovedisplayshortskip \z@ \@plus3\p@
140 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
141 \belowdisplayskip \abovedisplayskip}
142 \fi

\scriptsize These are all much simpler than the previous macros, they just select a new
\tiny fontsize, but leave the parameters for displays and lists alone.
\large 143 \ifcase\@ptsize
\Large 144 \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
\LARGE 145 \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
\huge 146 \DeclareRobustCommand\large{\@setfontsize\large\@xiipt{14}}
\Huge 147 \DeclareRobustCommand\Large{\@setfontsize\Large\@xivpt{18}}
148 \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
149 \DeclareRobustCommand\huge{\@setfontsize\huge\@xxpt{25}}
150 \DeclareRobustCommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
151 \or
152 \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
153 \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
154 \DeclareRobustCommand\large{\@setfontsize\large\@xiipt{14}}
155 \DeclareRobustCommand\Large{\@setfontsize\Large\@xivpt{18}}
156 \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
157 \DeclareRobustCommand\huge{\@setfontsize\huge\@xxpt{25}}
158 \DeclareRobustCommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
159 \or
160 \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
161 \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
162 \DeclareRobustCommand\large{\@setfontsize\large\@xivpt{18}}
163 \DeclareRobustCommand\Large{\@setfontsize\Large\@xviipt{22}}
164 \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xxpt{25}}
165 \DeclareRobustCommand\huge{\@setfontsize\huge\@xxvpt{30}}
166 \let\Huge=\huge
167 \fi

4 Loading Packages
This class file does not load additional packages.

5 Document Layout
In this section we are finally dealing with the nasty typographical details.

5.1 Fonts
We use two fixed fonts in these letters.

8
168 \newfont\refkopfont{cmssq8}
169 \DeclareFixedFont\kleinvet{\encodingdefault}%
170 {\rmdefault}%
171 {\bfdefault}%
172 {\shapedefault}%
173 {7}

5.2 Paragraphing
\lineskip These parameters control TEX’s behaviour when two lines tend to come too close
\normallineskip together.
174 \setlength\lineskip{1\p@}
175 \setlength\normallineskip{1\p@}

\baselinestretch This is used as a multiplier for \baselineskip. The default is to not stretch the
baselines.
176 \renewcommand*\baselinestretch{}

\parskip \parskip gives extra vertical space between paragraphs and \parindent is the
\parindent width of the paragraph indentation. Letters are typeset without paragraph inden-
tation.
177 \setlength\parskip{0.7em \@plus .3em \@minus .2em}
178 \setlength\parindent{0\p@}

\@lowpenalty The commands \nopagebreak and \nolinebreak put in penalties to discourage


\@medpenalty these breaks at the point they are put in. They use \@lowpenalty, \@medpenalty
\@highpenalty or \@highpenalty, dependant on their argument.
179 \@lowpenalty 51
180 \@medpenalty 151
181 \@highpenalty 301

\clubpenalty These penalties are use to discourage club and widow lines. Because we use their
\widowpenalty default values we only show them here, commented out.
182 % \clubpenalty 150
183 % \widowpenalty 150

\displaywidowpenalty Discourage (but not so much) widows in front of a math display and forbid break-
\predisplaypenalty ing directly in front of a display. Allow break after a display without a penalty.
\postdisplaypenalty Again the default values are used, therefore we only show them here.
184 % \displaywidowpenalty 50
185 % \predisplaypenalty 10000
186 % \postdisplaypenalty 0

\interlinepenalty Allow the breaking of a page in the middle of a paragraph.


187 % \interlinepenalty 0

\brokenpenalty We allow the breaking of a page after a hyphenated line.


188 % \brokenpenalty 0

9
5.3 Page Layout
All margin dimensions are measured from a point one inch from the top and
lefthand side of the page.

5.3.1 Vertical spacing


\headheight The \headheight is the height of the box that will contain the running head. The
\headsep \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.
189 \setlength\headheight{37mm}
190 \setlength\headsep {0mm}

\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:
191 \setlength\footskip{25\p@}

\maxdepth The TEX primitive register \maxdepth has a function that is similar to that of
\@maxdepth \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 4pt; in native
LATEX2e mode we let the value depend on the typesize. We set it so that \maxdepth
+ \topskip = typesize ×1.5. As it happens, in these classes \topskip is equal
to the typesize, therefor we set \maxdepth to half the value of \topskip.
192 \if@compatibility
193 \setlength\maxdepth{4\p@}
194 \else
195 \setlength\maxdepth{.5\topskip}
196 \fi
197 \setlength\@maxdepth\maxdepth

5.3.2 The dimension of text


\textwidth The dimensions of the text are fixed; they are defined in the nen norm which this
\textheight class implements.
198 \setlength\textwidth{144mm}
199 \setlength\textheight{197mm}
200 \if@elfinch \addtolength\textheight{-17.6mm} \fi

\rightskip
\@rightskip 201 \setlength\@rightskip{0cm \@plus 5cm}
202 \setlength\rightskip{\@rightskip}

5.3.3 Margins
\oddsidemargin Again, these dimensions are based on the nen norm.
\evensidemargin 203 \setlength\@tempdima{\paperwidth}
\marginparwidth 204 \addtolength\@tempdima{-2in}
205 \addtolength\@tempdima{-\textwidth}

10
206 \setlength\oddsidemargin {7.6mm}
207 \setlength\evensidemargin {\oddsidemargin}
208 \setlength\marginparwidth {0\p@}

\marginparsep The horizontal space between the main text and marginal notes is determined by
\marginparpush \marginparsep, the minimum vertical separation between two marginal notes is
controlled by \marginparpush.
209 \setlength\marginparsep {0\p@}
210 \setlength\marginparpush{0\p@}

\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.
211 \setlength\topmargin{-12.4mm}

5.3.4 The address field


The address information has to be put on a specific place.

\vensterskip
\@vensterskip 212 \newdimen\vensterskip
213 \setlength\vensterskip{50mm}
214 \newdimen\@vensterskip

5.3.5 Changing head and text heights


This class has a much higher head on the first page of a letter than on subsequent
pages.

\@firstheadheight
\@otherheadheight 215 \newdimen\@firstheadheight
\@othertextheight 216 \newdimen\@otherheadheight
\@otherheadsep 217 \newdimen\@othertextheight
\@vervolgsep 218 \newdimen\@otherheadsep
219 \newdimen\@vervolgsep
220 \setlength\@otherheadsep{2mm}

\@prepareerhoofden
221 \def\@prepareerhoofden{%
222 \setlength\@vensterskip{\vensterskip}%
223 \addtolength\@vensterskip{-50mm}%
224 \setlength\@firstheadheight{\headheight}%
225 \setlength\@otherheadheight{\headheight}%
226 \setlength\@othertextheight{\textheight}%
227 }

11
5.3.6 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.

\footsep The distance between the text and this foot information
228 \newdimen\footsep
229 \setlength\footsep{15mm}

5.3.7 Footnotes
\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.
230 \setlength\footnotesep{12\p@}

\footins \skip\footins is the space between the last line of the main text and the top of
the first footnote.
231 \setlength{\skip\footins}{10\p@ \@plus 2\p@ \@minus 4\p@}

5.4 Page Styles


The page style foo is defined by defining the command \ps@foo. This command
should make only local definitions. There should be no stray spaces in the defini-
tion, since they could lead to mysterious extra spaces in the output (well, that’s
something that should be always avoided).

\@evenhead The \ps@... command defines the macros \@oddhead, \@oddfoot, \@evenhead,
\@oddhead and \@evenfoot to define the running heads and feet—e.g., \@oddhead is the
\@evenfoot macro to produce the contents of the heading box for odd-numbered pages. It is
\@oddfoot called inside an \hbox of width \textwidth.

5.4.1 Marking conventions


To make headings determined by the sectioning commands, the page style defines
the commands \chaptermark, \sectionmark, . . . , where \chaptermark{⟨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:
\markboth{⟨LEFT ⟩}{⟨RIGHT ⟩}: Adds both marks.
\markright{⟨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.

12
\rightmark: Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
macros, it gets the current ‘right’ mark. \rightmark works like TEX’s
\firstmark command.
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.
232 % %%%\mark{{}{}} % Initializes TeX’s marks <--- can vanish

5.4.2 Defining the page styles


The pagestyles empty and plain are defined in the LATEX kernel (ltpage.dtx),
but these definitions are changed to a simpler version for this document class.

\ps@headings The definition of the page style headings has to be different for two sided printing
than it is for one sided printing.
233 \if@twoside
234 \def\ps@headings{%
The running feet contain some information about the sender of the letter. The
feet aer the same for even and odd pages.
235 \def\@oddfoot{\voetregel\hss}%
236 \let\@evenfoot\@oddfoot
The running head contains some information about this letter. The head is the
same for even and odd pages.
237 \def\@oddhead{%
238 \vbox to \@otherheadheight
239 {\vervolghoofd\vfil
240 \if@streepjes\streepjes{\@firstheadheight}\fi}\hss}
241 \let\@evenhead\@oddhead}
For one sided printing we don’t need to define \@evenhead so the definition is
somewhat simpler.
242 \else
243 \def\ps@headings{%
244 \def\@oddfoot{\voetregel\hss}%
245 \def\@oddhead{%
246 \vbox to \@otherheadheight
247 {\vervolghoofd\vfil
248 \if@streepjes\streepjes{\@otherheadheight}\fi}\hss}}
249 \fi

\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.

13
250 \def\ps@firstpage{%
251 \global\headheight=\@otherheadheight
252 \global\textheight=\@othertextheight %?? werkt dit ??
253 \global\headsep=\@otherheadsep
254 \def\@oddhead{\vbox to \@firstheadheight
255 {\briefhoofd\vfil
256 \if@streepjes\streepjes{\@firstheadheight}\fi}%
257 \hss}
258 \def\@evenhead{}
259 \def\@oddfoot{\voetregel\hss} \let\@evenfoot\@oddfoot}

\ps@empty The definition of the page style empty is simple: No running head or foot at all.
260 \def\ps@empty{%
261 \let\@oddfoot\@empty\let\@oddhead\@empty
262 \let\@evenfoot\@empty\let\@evenhead\@empty}

\ps@plain The definition of the page style plain is again simple.


263 \def\ps@plain{%
264 \let\@oddhead\@empty
265 \def\@oddfoot{\normalfont\hfil\thepage}%
266 \def\@evenfoot{\normalfont\hfil\thepage}}

6 Document Markup
6.1 Global Declarations
The following declarations, shown with examples, give information about the
sender:
• \name{Dr. L. User} : to be used for the return address on the envelope.
• \signature{Larry User} : goes after the closing.
• \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.
• \location{Room 374} : Acts as modifier to the standard institutional ad-
dress.
• \telephone{(415)123-4567} : Just in case some style puts it on the letter.
\name
\fromname 267 \newcommand*\name[1]{\def\fromname{#1}}
268 \def\fromname{}

\ondertekening This macro stores the signature.


\signature 269 \newcommand*\ondertekening[1]{\def\fromsig{#1}}
\fromsig 270 \def\fromsig{}
271 \let\signature\ondertekening

14
\address
272 \newcommand*\address[1]{\maakbriefhoofd*{}{#1}}

\location
\fromlocation 273 \newcommand*\location[1]{\def\fromlocation{#1}}
274 \def\fromlocation{}

\telephone
\telephonenum 275 \newcommand*\telephone[1]{\def\telephonenum{#1}}
276 \def\telephonenum{}

\makelabels The \makelabels declaration causes mailing labels to be made.


277 \newcommand*\makelabels{%
At the beginning of the document, we need to activate the \@mlabel and
\@startlabels commands, as well as write \@startlabels to the .aux file.
278 \AtBeginDocument{%
279 \let\@startlabels\startlabels
280 \let\@mlabel\mlabel
281 \if@filesw
282 \immediate\write\@mainaux{\string\@startlabels}\fi}%
At the end of the document we need to write \clearpage to the .aux file.
283 \AtEndDocument{%
284 \if@filesw\immediate\write\@mainaux{\string\clearpage}\fi}}
\makelabels is allowed only before the \begin{document} command.
285 \@onlypreamble\makelabels

6.2 The generic letter commands


brief The 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{brief}{Sam Jones \\
Institute for Retarded Study\\
Princeton, N.J.}

Local declarations, such as \address, can follow the \begin{brief}.


286 \newenvironment{brief}[1]
287 {\newpage
288 \if@twoside \ifodd\c@page
289 \else\thispagestyle{empty} \hbox{}\newpage\fi
290 \fi
291 \c@page\@ne
292 \interlinepenalty=200 % smaller than the TeXbook value
The \leavevmode and \ignorespaces commands are there for protecting against
an empty argument.
293 \@processto{\leavevmode\ignorespaces #1}%

15
Now we can start filling in the various fields in the references line. First the
adressee.
294 \@defrefveld{\@Ad}{\geadresseerdetekst}{\toname}
Then the date. When nothing was specified we use \vandaag.
295 \ifdim\wd\@Dt=0cm \@defrefveld{\@Dt}{\datumtekst}{\vandaag}\fi
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’.
296 \@prepareerhoofden
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.
297 {\setbox\@tempboxa\vervolghoofd
298 \@tempdima\ht\@tempboxa
299 \advance\@tempdima by -\@otherheadheight
300 \ifdim\@tempdima>0\p@
301 \global\advance\@otherheadheight by \@tempdima
302 \global\advance\@othertextheight by -\@tempdima
303 \fi}
We have to do the same for the foot of the letter.
304 {\setbox\@tempboxa=\vbox{\voetregel}
305 \global\footskip=\ht\@tempboxa
306 \global\advance\footskip by \footsep}%
307 }
The end of the environment possibly writes the address information on the .aux
file.
308 {\stopletter\@@par\pagebreak\@@par
309 \if@filesw
310 \begingroup
311 \let\\=\relax
312 \let\protect\@unexpandable@protect
313 \immediate\write\@auxout
314 {\string\@mlabel{\returnaddress}{\toname\\\toaddress}}%
315 \endgroup
316 \fi}

letter The letter environment is a synonime for the brief environment, to provide com-
patibility with the standard letter document class.
317 \let\letter\brief
318 \let\endletter\endbrief

\@processto \@processto gets the \toname and \toaddress from the letter environment’s
\@xproc macro argument. \@xproc and \@yproc are auxiliary macros.
\@yproc 319 \long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty
320 \else \@yproc #1@@@\fi}
321 \long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
322 \long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}

16
\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.
323 \newif\if@antwoordadres
324 \newcommand*\antwoordadres[1]{%
325 \@antwoordadrestrue\renewcommand*\@antwoordadres{#1}}
326 \newcommand*\@antwoordadres{}
327 \let\replyaddress\antwoordadres

6.2.1 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.
\adresveldbreedte The width of the address window.
328 \newdimen\adresveldbreedte

\adresveld This command formats the address window.


329 \newcommand*\adresveld{%
330 \hbox{}\kern-\topskip
331 \kern\@vensterskip
332 \begingroup
Compute the width of the address window
333 \if@adresrechts
334 \setlength\adresveldbreedte{4\refveldbreedte}%
335 \addtolength\adresveldbreedte{-76mm}%
336 \def\@tempa{\moveright 76mm}%
337 \else
338 \let\@tempa\relax
339 \setlength\adresveldbreedte{83mm}%
340 \fi
Store the address in a box.
341 \setbox\@tempboxa\vtop{%
342 \hsize\adresveldbreedte
343 \@normalsize
344 \parindent\z@\parskip\z@
345 \rightskip0\p@\@plus\adresveldbreedte
346 \let\\\@nobreakcr \toname \\ \toaddress}
Format the return address if one was given.
347 {\baselineskip\z@\lineskip\z@
348 \if@antwoordadres
349 \@tempa\vbox to \z@{%
350 \hb@xt@\adresveldbreedte{%
351 \kleinvet
352 \def\\{\unskip\enspace{\textbullet}\enspace\ignorespaces}%
353 \@antwoordadres\hfil}
354 \kern2\p@\hrule \vss}
355 \fi

17
Print a small rule as typing aid if required.
356 \if@typhulp
357 \@tempa\llap{\vbox to \z@{\vskip9mm\streepje\vss}}
358 \fi
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.
359 \kern9mm \kern-\ht\@tempboxa \@tempdima=\dp\@tempboxa
360 \@tempa\box\@tempboxa \kern-\@tempdima
361 \vskip31mm}\endgroup}

6.2.2 The reference line


\refveldbreedte The width of the various fields in this line. It is determined in nen 3516
362 \newdimen\refveldbreedte
363 \setlength\refveldbreedte{38mm}

\@defrefveld A macro to help in defining the various fields.


364 \def\@defrefveld#1#2#3{\setbox#1\@refveld{#2}{#3}}

\@refveld The macro \@refveld stores the formatted field in a box.


365 \def\@refveld#1#2{%
366 \vtop{\hsize\refveldbreedte
367 \parskip\z@\parindent\z@
368 \everypar{}%
369 \lineskiplimit\z@\baselineskip12\p@
370 \lineskip\z@
371 \rightskip0\p@ \@plus \refveldbreedte \@minus .5\refveldbreedte
372 \vbox{\refkopfont\baselineskip10\p@#1\@@par}
373 \kern2\p@
374 \strut #2}}

\@UB We allocate four box registers to store the four fields in


\@UK 375 \newbox\@UB \newbox\@UK \newbox\@OK \newbox\@Dt
\@OK
\uwbriefvan
\@Dt The command\uwbriefvan can be used to show the date of the letter to which
your letter is an answer
376 \newcommand*\uwbriefvan[1]{\@defrefveld{\@UB}{\uwbrieftekst}{#1}}
377 \let\yourletterof\uwbriefvan

\uwkenmerk The command \uwkenmerk can be used to show the reference of the letter to which
your letter is an answer
378 \newcommand*\uwkenmerk[1]{\@defrefveld{\@UK}{\uwkenmerktekst}{#1}}
379 \let\yourreference\uwkenmerk

\onskenmerk Store our reference in a box register.


380 \newcommand*\onskenmerk[1]{\@defrefveld{\@OK}{\onskenmerktekst}{#1}}

18
\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.
381 \newcommand*\datum[1]{\def\@tempa{}\def\@tempb{#1}%
382 \ifx\@tempa\@tempb
383 \setbox\@Dt\hbox{ }%
384 \else
385 \@defrefveld{\@Dt}{\datumtekst}{#1}%
386 \fi}
387 \let\date\datum

\referentieregel This collects all the information for the reference line.
388 \def\referentieregel{\hbox
389 {\hb@xt@\refveldbreedte{\copy\@UB\hfil}%
390 \hb@xt@\refveldbreedte{\copy\@UK\hfil}%
391 \hb@xt@\refveldbreedte{\copy\@OK\hfil}%
392 \hb@xt@\refveldbreedte{\copy\@Dt\hfil}\hss}}

\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.
\@Ad For this purpose we need to allocate another box register.
393 \newbox\@Ad

394 \def\vervolgreferentieregel{%
395 \hbox{%
396 \hb@xt@\refveldbreedte{\copy\@Ad\hfil}%
397 \hskip\refveldbreedte
398 \hb@xt@\refveldbreedte{\copy\@Dt\hfil}%
399 \@refveld{\bladnummertekst}{\thepage}\hss}}

6.2.3 The headers and footers


\briefhoofd The headings are empty by default.
\vervolghoofd 400 \newcommand*\briefhoofd{}
401 \newcommand*\vervolghoofd{\vbox{}}

\maakbriefhoofd The usage of this command creates non-empty headers.


402 \newcommand*\maakbriefhoofd
403 {\@ifstar {\@kortvervolgbriefhoofd}{\@langvervolgbriefhoofd}}
404 \let\makeheader\maakbriefhoofd

\@kortvervolgbriefhoofd This creates a shortened heading for following pages


405 \newcommand*\@kortvervolgbriefhoofd[2]{%
406 \@maakbriefhoofd{#1}{#2}
407 \def\vervolghoofd{%
408 \vbox{\hsize=4\refveldbreedte
409 \hb@xt@\hsize{\Large \normalfont\sffamily #1\strut\hfil}
410 \hrule \kern2mm \vervolgreferentieregel}}}

19
\@langvervolgbriefhoofd This creates a long heading for following pages by just using \briefhoofd.
411 \newcommand*\@langvervolgbriefhoofd[2]{
412 \@maakbriefhoofd{#1}{#2}
413 \def\vervolghoofd{%
414 \vbox{\briefhoofd\vskip2mm
415 \vervolgreferentieregel
416 \vbox{}}}}

\@maakbriefhoofd This was used in the two preceding macros; it defines \briefhoofd.
417 \newcommand*\@maakbriefhoofd[2]{\def\briefhoofd{%
418 \vbox{\hsize=4\refveldbreedte
419 \hb@xt@\hsize{\Large \normalfont\sffamily #1\strut\hfil}
420 \hrule
421 \moveright 3\refveldbreedte\@refveld{\strut #2}{}
422 \vbox{}}}}

\@voetruimte A box to store the footer in.


423 \newbox\@voetruimte
424 \setbox\@voetruimte=\hbox{}

\@voetteller We need to know how many items are placed in the footer.
425 \newcount\@voetteller

\voetregel \voetregel just copies the box \@voetruimte.


426 \newcommand*\voetregel{\copy\@voetruimte}

\voetitem A command to add an information field to the footer.


427 \newcommand*\voetitem[2]{%
428 \advance\@voetteller by 1
429 \setbox\@voetruimte\hb@xt@4\refveldbreedte{%
430 \unhbox\@voetruimte
431 \ifcase\@voetteller \relax \or \relax \or \hfil \else \hfill
432 \fi
433 \@refveld{#1}{#2}\hskip0\p@ \@plus 3\refveldbreedte}}
434 \let\footitem\voetitem

6.2.4 The little rules


\streepje A shorthand for one little rule.
435 \newcommand*\streepje{\hb@xt@2mm{\rule{2mm}{.1pt}}}

\streepjes This prints the folding rules


436 \newcommand*\streepjes[1]{%
437 \vbox to \z@{%
We have to backup to a position 13mm below the edge of the paper.
438 \kern-#1\relax
439 \hb@xt@\textwidth{%

20
Then we can print a rule on the left side of the paper, half way down to align for
a perforator.
440 \llap{\perfstreepje\kern24mm}\hfill
The folding rules are printed on the right hand side of the paper.
441 \rlap{\kern24mm\vouwstreepjes}}
442 \vss}}

\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.
443 \newcommand*\perfstreepje{\vtop{\kern\z@ \kern 135mm \streepje}}

\vouwstreepjes This prints two folding rules.


444 \newcommand*\vouwstreepjes{%
445 \vtop{\kern\z@
446 \kern 95mm %% 108-13
447 \streepje %% denk maar dat dit geen dikte heeft
448 \kern 45mm %% 155-150
449 \streepje}}

6.2.5 Page breaking control


\stopbreaks
450 \newcommand*\stopbreaks{\interlinepenalty \@M
451 \def\par{\@@par\nobreak}\let\\=\@nobreakcr
452 \let\vspace\@nobreakvspace}

\@nobreakvspace
\@nobreakvspacex 453 \DeclareRobustCommand\@nobreakvspace
\@nobreakcr 454 {\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
455 \def\@nobreakvspacex#1{%
456 \ifvmode
457 \nobreak\vskip #1\relax
458 \else
459 \@bsphack\vadjust{\nobreak\vskip #1}\@esphack
460 \fi}

461 \def\@nobreakcr{%
462 \let\reserved@e\relax
463 \let\reserved@f\relax
464 \vadjust{\nobreak}\@ifstar{\@xnewline}{\@xnewline}}

\startbreaks
465 \def\startbreaks{\let\\=\@normalcr
466 \interlinepenalty 200\def\par{\@@par\penalty 200\relax}}

\opening Text is begun with the \opening command, whose argument generates the salu-
tation, as in
\opening{Dear Henry,}

21
This should produce everything up to and including the ‘Dear Henry,’ and a
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:
• \toname : name part of ’to’ address. Will be one line long.
• \toaddress : address part of ’to’ address. The lines separated by \\.
• \fromname : name of sender.
• \fromaddress : argument of current \address declaration– null if none.
Should use standard institutional address if null.
• \fromlocation : argument of current \location declaration–null if none.
• \telephonenum : argument of current \telephone declaration–null if none.
467 \newcommand*\opening[1]{%
468 \thispagestyle{firstpage}%
469 \adresveld
470 \prevdepth=-1000\p@ \vskip-2\p@ %% ????
471 \referentieregel
472 \@dosubject #1\par\nobreak}

\@dosubject This prints the subject of the letter if one was specified.
473 \def\@dosubject{%
474 \ifx\@empty\@subject
475 \else
476 \par\noindent
477 \parbox[t]{\textwidth}
478 {\@hangfrom{\refkopfont \betrefttekst \enspace}%
479 \normalfont\rmfamily\ignorespaces \@subject\strut}%
480 \par
481 \fi}

\afsluiting The body of the letter follows, ended by a \afsluiting command, as in


\closing
\afsluiting{Yours truly,}

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:
• \fromsig : argument of current \signature declaration or, if null, the
\fromname.
• \stopbreaks : a macro that inhibits page breaking.

482 \newcommand*\afsluiting[1]{\par\nobreak\vspace{\parskip}%
483 \stopbreaks
484 \ifx\@empty\fromsig
485 \def\ondertekening##1{\def\fromsig{##1}\@afsluiting{#1}}%

22
486 \else
487 \@afsluiting{#1}%
488 \fi}
489 \let\closing\afsluiting
490 \def\open@af{\vtop\bgroup\hsize.3\textwidth \raggedright}

The internal command \@afsluiting takes care of printing the closing text.
491 \newcommand*\@afsluiting[1]{%
492 \def\en{\strut\egroup\open@af}%
493 \let\and\en
494 \noindent
495 \parbox{.5\textwidth}{%
496 \raggedright \ignorespaces #1\\[6\medskipamount]%

497 \leavevmode\open@af \fromsig \strut\egroup}}

\smallskipamount Of these three, only \medskipmount is actually used above.


\mdeskipamount 498 %\smallskipamount=.5\parskip
\bigskipamount 499 \medskipamount=\parskip
500 %\bigskipamount=2\parskip

\betreft The command \betreft (\re) stores the subject of the letter.
\re 501 \newcommand*\betreft[1]{\def\@subject{#1}}
502 \let\onderwerp\betreft
503 \let\subject\betreft
504 \def\@subject{}
505 \let\re\betreft

\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 clos-
ing are:
\cc{Tinker\\Evers\\Chance}

which produces:
cc: Tinker
Evers
Chance
Note the obvious use of \parbox.
506 \newcommand*{\cc}[1]{\par\noindent
507 \parbox[t]{\textwidth}{\@hangfrom{\normalfont\ccname: }%
508 \ignorespaces #1\strut}\par}

\bijlage \bijlagen{Foo(2)\\Bar}
\bijlagen which produces:
\encl bijlagen: Foo(2)
Bar
509 \newcommand*\bijlage[1]{%
510 \par\noindent
511 \parbox[t]{\textwidth}{\@hangfrom{\normalfont\bijlagetekst\ }%

23
512 \ignorespaces #1\strut}\par}
513 \newcommand*\bijlagen[1]{%
514 \par\noindent
515 \parbox[t]{\textwidth}{\@hangfrom{\normalfont\bijlagentekst\ }%
516 \ignorespaces #1\strut}\par}
517 \let\encl\bijlagen

\ps The only thing \ps needs to do is call \startbreaks, which allows page breaking
again.
518 \newcommand*\ps{\par\startbreaks}

\stopletter The \stopletter command is called by \endletter to do the following:


• Add any desired fil or other material at the end of the letter.
• Define \returnaddress to be the return address for the mailing label. More
precisely, it is the first argument of the \mlabel command described be-
low. 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.
519 \newcommand*\stopletter{}

6.3 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:
• \startlabels : Should reset the page layout parameters if necessary.
• \mlabel{⟨return address⟩}{⟨to adress⟩} : Command to generate a single
label.

\returnaddress
520 \newcommand*\returnaddress{}

\labelcount
521 \newcount\labelcount

\startlabels The following \startlabels command sets things up for producing labels in two
columns of five 2” × 4-1/4” labels each, suitable for reproducing onto Avery brand
number 5352 address labels.
522 \newcommand*\startlabels{\labelcount\z@
523 \pagestyle{empty}%

24
524 \let\@texttop\relax
525 \topmargin -50\p@
526 \headsep \z@
527 \oddsidemargin -35\p@
528 \evensidemargin -35\p@
529 \textheight 10in
530 \@colht\textheight \@colroom\textheight \vsize\textheight
531 \textwidth 550\p@
532 \columnsep 26\p@
533 \ifcase \@ptsize\relax
534 \normalsize
535 \or
536 \small
537 \or
538 \footnotesize
539 \fi
540 \baselineskip \z@
541 \lineskip \z@
542 \boxmaxdepth \z@
543 \parindent \z@
544 \twocolumn\relax}

\@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.
545 \let\@startlabels=\relax

\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 ar-
gument 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.
546 \newcommand*\mlabel[2]{%
547 \parbox[b][2in][c]{262\p@}{\strut\ignorespaces #2}%
548 }

\@mlabel \@mlabel is written to the .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.
549 \let\@mlabel=\@gobbletwo

6.4 Lists
6.4.1 General List Parameters
The following commands are used to set the default values for the list environ-
ment’s parameters. See the LATEX manual for an explanation of the meanings

25
of the parameters. Defaults for the list environment are set as follows. First,
\rightmargin, \listparindent and \itemindent are set to 0pt. Then, for a Kth
level list, the command \@listK is called, where ‘K’ denotes ‘i’, ‘ii’, ... , ‘vi’.
(I.e., \@listiii is called for a third-level list.) By convention, \@listK should
set \leftmargin to \leftmarginK.

\leftmargin For efficiency, level-one list’s values are defined at top level, and \@listi is defined
\leftmargini to set only \leftmargin.
\leftmarginii 550 \setlength\leftmargini {2.5em}
\leftmarginiii
The following three are calculated so that they are larger than the sum of
\leftmarginiv
\labelsep and the width of the default labels (which are ‘(m)’, ‘vii.’ and ‘M.’).
\leftmarginv
551 \setlength\leftmarginii {2.2em}
\leftmarginvi
552 \setlength\leftmarginiii {1.87em}
553 \setlength\leftmarginiv {1.7em}
554 \setlength\leftmarginv {1em}
555 \setlength\leftmarginvi {1em}

Here we set the top level leftmargin.


556 \setlength\leftmargin {\leftmargini}

\labelsep \labelsep is the distance between the label and the text of an item; \labelwidth
\labelwidth is the width of the label.
557 \setlength \labelsep {5\p@}
558 \setlength \labelwidth{\leftmargini}
559 \addtolength\labelwidth{-\labelsep}

\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.
560 \setlength\partopsep{0\p@}

\topsep Extra vertical space, in addition to \parskip, added above and below list and
paragraphing environments.
561 \setlength\topsep{.4em}

\@beginparpenalty These penalties are inserted before and after a list or paragraph environment.
\@endparpenalty They are set to a bonus value to encourage page breaking at these points.
\@itempenalty This penalty is inserted between list items.
562 \@beginparpenalty -\@lowpenalty
563 \@endparpenalty -\@lowpenalty
564 \@itempenalty -\@lowpenalty

\@listI \@listI defines top level and \@listi values of \leftmargin, \parsep, \topsep,
\@listi and \itemsep
These values have been taken from the ones in the document class artikel3.
565 \def\@listI{\leftmargin\leftmargini
566 \labelsep.5em%
567 \labelwidth\leftmargin

26
568 \advance\labelwidth-\labelsep
569 \topsep .5\parskip \@plus \p@
570 \parsep \z@
571 \itemsep\parsep}
572 \let\@listi\@listI

We have to initialise these parameters.


573 \@listi

\@listii Here are the same macros for the higher level lists.
\@listiii 574 \def\@listii {\leftmargin\leftmarginii
\@listiv 575 \labelsep .5em%
\@listv 576 \labelwidth\leftmarginii
\@listvi 577 \advance\labelwidth-\labelsep
578 \topsep -.5\parskip \@plus \p@
579 \parsep \z@
580 \itemsep\parsep}
581 \def\@listiii{\leftmargin\leftmarginiii
582 \labelsep .5em%
583 \labelwidth\leftmarginiii
584 \advance\labelwidth-\labelsep
585 \topsep -.5\parskip \@plus \p@
586 \parsep \z@
587 \partopsep \z@
588 \itemsep \topsep}
589 \def\@listiv {\leftmargin\leftmarginiv
590 \labelsep .5em%
591 \labelwidth\leftmarginiv
592 \advance\labelwidth-\labelsep
593 \topsep -.5\parskip \@plus \p@}
594 \def\@listv {\leftmargin\leftmarginv
595 \labelsep .5em%
596 \labelwidth\leftmarginv
597 \advance\labelwidth-\labelsep
598 \topsep -.5\parskip \@plus \p@}
599 \def\@listvi {\leftmargin\leftmarginvi
600 \labelsep .5em%
601 \labelwidth\leftmarginvi
602 \advance\labelwidth-\labelsep
603 \topsep -.5\parskip \@plus \p@}

6.4.2 Enumerate
The enumerate environment uses four counters: enumi, enumii, enumiii and enumiv,
where enumN controls the numbering of the Nth level enumeration.

\theenumi The counters are already defined in in the LATEX kernel (ltlists.dtx), but their
\theenumii representation is changed here.
\theenumiii 604 \renewcommand*\theenumi {\@arabic\c@enumi}
\theenumiv 605 \renewcommand*\theenumii {\@alph\c@enumii}

27
606 \renewcommand*\theenumiii{\@roman\c@enumiii}
607 \renewcommand*\theenumiv {\@Alph\c@enumiv}

\labelenumi The label for each item is generated by the commands \labelenumi ... \labelenumiv.
\labelenumii 608 \newcommand*\labelenumi {\theenumi.}
\labelenumiii 609 \newcommand*\labelenumii {(\theenumii)}
\labelenumiv 610 \newcommand*\labelenumiii{\theenumiii.}
611 \newcommand*\labelenumiv {\theenumiv.}

\p@enumii The expansion of \p@enumN\theenumN defines the output of a \ref command


\p@enumiii when referencing an item of the Nth level of an enumerated list.
\p@enumiv 612 \renewcommand*\p@enumii {\theenumi}
613 \renewcommand*\p@enumiii{\theenumi(\theenumii)}
614 \renewcommand*\p@enumiv {\p@enumiii\theenumiii}

6.4.3 Itemize
\labelitemi Itemization is controlled by \labelitemi, \labelitemii, \labelitemiii, and
\labelitemii \labelitemiv, which define the labels of the various itemization levels: the sym-
\labelitemiii bols used are bullet, bold en-dash, asterisk and centred dot.
\labelitemiv 615 \newcommand*\labelitemi {\labelitemfont \textbullet}
616 \newcommand*\labelitemii {\labelitemfont \bfseries \textendash}
617 \newcommand*\labelitemiii{\labelitemfont \textasteriskcentered}
618 \newcommand*\labelitemiv {\labelitemfont \textperiodcentered}

\labelitemfont The default definition for \labelitemfont is to reset the font to \normalfont so
that always the same symbol is produced regardless of surrounding conditions.
A possible alternative would be
\renewcommand\labelitemfont{%
\fontseries\seriesdefault
\fontshape\shapedefault\selectfont}

which resets series and shape doesn’t touch the family.


619 \newcommand\labelitemfont{\normalfont}

6.4.4 Description
description The description environment is defined here – while the itemize and enumerate
environments are defined in the LATEX kernel (ltlists.dtx).
620 \newenvironment{description}
621 {\list{}{\labelwidth\z@ \itemindent-\leftmargin
622 \let\makelabel\descriptionlabel}}
623 {\endlist}

\descriptionlabel To change the formatting of the label, you must redefine \descriptionlabel.
624 \newcommand*\descriptionlabel[1]{\hspace\labelsep
625 \normalfont\bfseries #1}

28
6.5 Defining new environments
6.5.1 Verse
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.
626 \newenvironment{verse}
627 {\let\\=\@centercr
628 \list{}{\setlength\itemsep{\z@}%
629 \setlength\itemindent{-15\p@}%
630 \setlength\listparindent{\itemindent}%
631 \setlength\rightmargin{\leftmargin}%
632 \addtolength\leftmargin{15\p@}}%
633 \item[]}
634 {\endlist}

6.5.2 Quotation
quotation The quotation environment is also defined by making clever use of the list environ-
ment’s parameters. The lines in the environment are set smaller than \textwidth.
The first line of a paragraph inside this environment is indented.
635 \newenvironment{quotation}
636 {\list{}{\setlength\listparindent{1.5em}%
637 \setlength\itemindent{\listparindent}%
638 \setlength\rightmargin{\leftmargin}}%
639 \item[]}
640 {\endlist}

6.5.3 Quote
quote The quote environment is like the quotation environment except that paragraphs
are not indented.
641 \newenvironment{quote}
642 {\list{}{\setlength\rightmargin{\leftmargin}}%
643 \item[]}
644 {\endlist}

6.5.4 Theorem
This document class does not define it’s own theorem environemts, the defaults,
supplied by LATEX kernel (ltthm.dtx) are available.

6.6 Setting parameters for existing environments


6.6.1 Array and tabular
\arraycolsep The columns in an array environment are separated by 2\arraycolsep.
645 \setlength\arraycolsep{5\p@}

29
\tabcolsep The columns in an tabular environment are separated by 2\tabcolsep.
646 \setlength\tabcolsep{6\p@}

\arrayrulewidth The width of vertical rules in the array and tabular environments is given by
\arrayrulewidth.
647 \setlength\arrayrulewidth{.4\p@}

\doublerulesep The space between adjacent rules in the array and tabular environments is given
by \doublerulesep.
648 \setlength\doublerulesep{2\p@}

6.6.2 Tabbing
\tabbingsep This controls the space that the \’ command puts in. (See LATEX manual for an
explanation.)
649 \setlength\tabbingsep{\labelsep}

6.6.3 Minipage
\@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.

\@mpfootins Minipages have their own footnotes; \skip\@mpfootins plays same rôle for foot-
notes in a minipage as \skip\footins does for ordinary footnotes.
650 \skip\@mpfootins = \skip\footins

6.6.4 Framed boxes


\fboxsep The space left by \fbox and \framebox between the box and the text in it.
\fboxrule The width of the rules in the box made by \fbox and \framebox.
651 \setlength\fboxsep{3\p@}
652 \setlength\fboxrule{.4\p@}

6.6.5 Equation and eqnarray


\theequation The equation counter will be typeset using arabic numbers.
653 \renewcommand*\theequation{\@arabic\c@equation}

\jot \jot is the extra space added between lines of an eqnarray environment. The
default value is used.
654 % \setlength\jot{3pt}

\@eqnnum The macro \@eqnnum defines how equation numbers are to appear in equations.
Again the default is used.
655 % \def\@eqnnum{(\theequation)}

30
6.7 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 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.

\rm The commands to change the family.


\tt 656 \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\sf 657 \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
658 \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}

\bf The command to change to the bold series. One should use \mdseries to explicitly
switch back to medium series.
659 \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}

\sl And the commands to change the shape of the font. The slanted and small caps
\it shapes are not available by default as math alphabets, so those changes do nothing
\sc in math mode. One should use \upshape to explicitly change back to the upright
shape.
660 \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
661 \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\relax}
662 \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\relax}

\cal The commands \cal and \mit should only be used in math mode, outside math
\mit 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’.
663 \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
664 \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}

6.8 Footnotes
\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 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.
665 \renewcommand*\footnoterule{%
666 \kern-\p@
667 \hrule \@width .4\columnwidth
668 \kern .6\p@}

31
\c@footnote Footnotes are numbered within chapters in the report and book document styles.
669 % \newcounter{footnote}

\@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.
\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}

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.
670 \long\def\@makefntext#1{%
671 \noindent\hb@xt@\leftmargini{\normalfont\@thefnmark.\hfil}#1}

\@makefnmark The footnote markers that are printed in the text to point to the footnotes should
be produced by the macro \@makefnmark.
672 % \def\@makefnmark{\hb@xt@\leftmargini{\normalfont\@thefnmark.\hfil}}

6.9 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.

\dutchbrief This stores dutch strings.


673 \newcommand*\dutchbrief{%
674 \def\uwbrieftekst{Uw brief van}
675 \def\uwkenmerktekst{Uw kenmerk}
676 \def\onskenmerktekst{Ons kenmerk}

32
677 \def\datumtekst{Datum}
678 \def\geadresseerdetekst{Geadresseerde}
679 \def\bladnummertekst{Bladnummer}
680 \def\vandaag{\number\day~\ifcase\month\or
681 januari\or februari\or maart\or april\or mei\or juni\or juli\or
682 augustus\or september\or oktober\or november\or december\fi
683 \space \number\year}
684 \def\betrefttekst{Onderwerp:}
685 \def\ccname{cc}
686 \def\bijlagetekst{Bijlage:}
687 \def\bijlagentekst{Bijlagen:}
688 \def\telefoontekst{telefoon}}

\englishbrief This stores English strings.


689 \newcommand*\englishbrief{%
690 \def\uwbrieftekst{Your letter of}
691 \def\uwkenmerktekst{Your reference}
692 \def\onskenmerktekst{Our reference}
693 \def\datumtekst{Date}
694 \def\geadresseerdetekst{To}
695 \def\bladnummertekst{Page}
696 \def\vandaag{\ifcase\day\or
697 1st\or 2nd\or 3rd\or 4th\or 5th\or
698 6th\or 7th\or 8th\or 9th\or 10th\or
699 11th\or 12th\or 13th\or 14th\or 15th\or
700 16th\or 17th\or 18th\or 19th\or 20th\or
701 21st\or 22nd\or 23rd\or 24th\or 25th\or
702 26th\or 27th\or 28th\or 29th\or 30th\or
703 31st\fi~\ifcase\month\or
704 January\or February\or March\or April\or May\or June\or
705 July\or August\or September\or October\or November\or December\fi
706 \space \number\year}
707 \def\betrefttekst{Re:}
708 \def\ccname{cc}
709 \def\bijlagetekst{Enclosure:}
710 \def\bijlagentekst{Enclosures:}
711 \def\telefoontekst{telephone}}

\americanbrief This stores American english strings


712 \newcommand*\americanbrief{%
713 \def\uwbrieftekst{Your letter of}
714 \def\uwkenmerktekst{Your reference}
715 \def\onskenmerktekst{Our reference}
716 \def\datumtekst{Date}
717 \def\geadresseerdetekst{To}
718 \def\bladnummertekst{Page}
719 \def\vandaag{\ifcase\month\or
720 January\or February\or March\or April\or May\or June\or
721 July\or August\or September\or October\or November\or December\fi
722 \space\number\day, \number\year}

33
723 \def\betrefttekst{Re:}
724 \def\ccname{cc}
725 \def\bijlagetekst{Enclosure:}
726 \def\bijlagentekst{Enclosures:}
727 \def\telefoontekst{telephone}}

\germanbrief This stores the German versions of the strings.


728 \newcommand*\germanbrief{%
729 \def\uwbrieftekst{Ihr Brief vom}
730 \def\uwkenmerktekst{Ihr Zeichen}
731 \def\onskenmerktekst{Unser Zeichen}
732 \def\datumtekst{Datum}
733 \def\geadresseerdetekst{An}
734 \def\bladnummertekst{Seite}
735 \def\vandaag{\number\day.~\ifcase\month\or
736 Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
737 Juli\or August\or September\or Oktober\or November\or Dezember\fi
738 \space\number\year}
739 \def\betrefttekst{Betrifft:}
740 \def\ccname{Kopien an}
741 \def\bijlagetekst{Anlage:}
742 \def\bijlagentekst{Anlagen:}
743 \def\telefoontekst{Telefon}}

\frenchbrief And finally to store the french strings


744 \newcommand*\frenchbrief{%
745 \def\uwbrieftekst{Votre lettre du}
746 \def\uwkenmerktekst{Vos r\’ef\’erences:}
747 \def\onskenmerktekst{Nos r\’ef\’erences:}
748 \def\datumtekst{Date:}
749 \def\geadresseerdetekst{\‘A l’attention de}
750 \def\bladnummertekst{Page}
751 \def\vandaag{\number\day\ifnum\day=1$^{er}$\fi
752 ~\ifcase\month\or janvier\or
753 f\’evrier\or mars\or avril\or mai\or juin\or
754 juillet\or ao\^ut\or septembre\or octobre\or
755 novembre\or d\’ecembre\fi \space \number\year}
756 \def\betrefttekst{Objet:}
757 \def\ccname{Copie \‘a}
758 \def\bijlagetekst{Pi\‘ece jointe:}
759 \def\bijlagentekst{Pi\‘eces jointes:}
760 \def\telefoontekst{T\’el\’ephone:}}

6.10 Two column mode


\columnsep This gives the distance between two columns in two column mode.
761 \setlength\columnsep{10\p@}

\columnseprule This gives the width of the rule between two columns in two column mode. We
have no visible rule.

34
762 \setlength\columnseprule{0\p@}

6.11 The page style


We have headings pages in this document class by default. We use arabic pa-
genumbers.
763 \pagestyle{headings}
764 \pagenumbering{arabic}

6.12 Single or double sided printing


We don’t try to make each page as long as all the others.
765 \raggedbottom

\@texttop The document class letter sets \@texttop to \vskip 0pt 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.
766 \let\@texttop\relax

We always start in one column mode.


767 \onecolumn
768 ⟨/brief⟩

Change History

v2.0b General: Use \newcommand* instead


\fromsig: Can’t use of \newcommand in most places . 1
(re)newcommand for \fromsig brief: No longer redefine
as that breaks the test against \protect but use one of the
\@empty . . . . . . . . . . . . . . . . 14 available settings . . . . . . . . . . 16
\re: Can’t use (re)newcommand v2.0h
for \@subject as that breaks General: Added a \relax to
the test against \@empty . . . . 23 prevent an incomplete \ifcase
v2.0d error . . . . . . . . . . . . . . . . . . . 6
\labelitemiv: renamed v2.0i
\labelitemiiii to \englishbrief: Repaired typo . . 33
\labelitemiii . . . . . . . . . . . 28 v2.0j
v2.0e \closing: Don’t put an \hbox of
\ps@headings: Removed a typo \textwidth inside a \parbox of
(\othertheadheight) . . . . . . 13 .5\textwidth . . . . . . . . . . . . 23
v2.0g v2.0k
\mit: Now define \cal and \mit \closing: inserted the \noindent
using which was removed from
\DeclareRobustCommand* . . . 31 \afsluiting . . . . . . . . . . . . . 23
\mlabel: Redefined \mlabel to not removed a \noindent which
use the \setbox primitive . . . 25 caused an anomalous space to

35
appear in the output . . . . . . . 22 as this is now needed for LATEX. 21
v2.0l \labelitemiv: Now also
\@makefnmark: No longer use \textasteriskcentered . . . . 28
hidden math . . . . . . . . . . . . . 32 v2.0q
\cc: replace \reset@font with \@makefnmark: Use the default
\normalfont; remove \rm . . . 23 definition for \@makefnmark . . 32
\encl: replace \reset@font with \@makefntext: As we want to have
\normalfont; remove \rm . . . 23 different appearances of the
\mlabel: changed width of the footnotemarker in the text and
labels slightly to prevent LATEX in the footnotes, we can’t use
stuffing two on each line . . . . 25 \@makefnmark here . . . . . . . . 32
\ps@plain: replace \rmfamily \adresveld: Put \textbullet in a
with \normalfont (PR 1578) . 14 group to keep the font change
\startlabels: changed value of local . . . . . . . . . . . . . . . . . . . 17
\columnsep by 1pt . . . . . . . . 24 \closing: Added \leavevmode to
General: Use \hb@xt@ instead of get the signatures on one line 23
\hbox to . . . . . . . . . . . . . . . . 1 \streepje: Make the ‘streepje’s a
v2.0m little smaller . . . . . . . . . . . . . 20
\@refveld: Also set \parindent to \vouwstreepjes: Change the
zero . . . . . . . . . . . . . . . . . . . 18 positioning of the ‘streepje’s a
\adresveld: Set both \parskip little . . . . . . . . . . . . . . . . . . . 21
and \parindent to zero in General: Added a few more
\adresveld . . . . . . . . . . . . . 17 synonimes for commands . . . . . 1
v2.0n v2.0s
\adresveld: Repaired a typo \@nobreakvspace: Made robust
(\parksip) . . . . . . . . . . . . . . 17 (LATEX pr/2049) . . . . . . . . . . 21
v2.0o \@normalsize: Roll back handling
\labelitemiv: Changed -- to (gh/201) . . . . . . . . . . . . . . . . . 7
\textendash following \labelitemfont: Normalize label
classes.dtx . . . . . . . . . . . . . 28 fonts . . . . . . . . . . . . . . . . . . 28
Did similar for the bullet and \small: Use
centered dot. . . . . . . . . . . . . 28 \DeclareRobustCommand
v2.0p instead of \newcommand* . . . . . 7
\@nobreakcr: Added setting of General: Synchronised with the
\reserved@e and \reserved@f standard document classes . . . . 1

Change History

v2.0b \labelitemiiii to
\fromsig: Can’t use \labelitemiii . . . . . . . . . . . 28
(re)newcommand for \fromsig v2.0e
as that breaks the test against \ps@headings: Removed a typo
\@empty . . . . . . . . . . . . . . . . 14 (\othertheadheight) . . . . . . 13
\re: Can’t use (re)newcommand v2.0g
for \@subject as that breaks \mit: Now define \cal and \mit
the test against \@empty . . . . 23 using
v2.0d \DeclareRobustCommand* . . . 31
\labelitemiv: renamed \mlabel: Redefined \mlabel to not

36
use the \setbox primitive . . . 25 v2.0n
General: Use \newcommand* instead \adresveld: Repaired a typo
of \newcommand in most places . 1 (\parksip) . . . . . . . . . . . . . . 17
brief: No longer redefine v2.0o
\protect but use one of the \labelitemiv: Changed -- to
available settings . . . . . . . . . . 16 \textendash following
v2.0h classes.dtx . . . . . . . . . . . . . 28
General: Added a \relax to Did similar for the bullet and
prevent an incomplete \ifcase centered dot. . . . . . . . . . . . . 28
error . . . . . . . . . . . . . . . . . . . 6 v2.0p
\@nobreakcr: Added setting of
v2.0i
\reserved@e and \reserved@f
\englishbrief: Repaired typo . . 33
as this is now needed for LATEX. 21
v2.0j \labelitemiv: Now also
\closing: Don’t put an \hbox of \textasteriskcentered . . . . 28
\textwidth inside a \parbox of v2.0q
.5\textwidth . . . . . . . . . . . . 23 \@makefnmark: Use the default
v2.0k definition for \@makefnmark . . 32
\closing: inserted the \noindent \@makefntext: As we want to have
which was removed from different appearances of the
\afsluiting . . . . . . . . . . . . . 23 footnotemarker in the text and
removed a \noindent which in the footnotes, we can’t use
caused an anomalous space to \@makefnmark here . . . . . . . . 32
appear in the output . . . . . . . 22 \adresveld: Put \textbullet in a
v2.0l group to keep the font change
\@makefnmark: No longer use local . . . . . . . . . . . . . . . . . . . 17
hidden math . . . . . . . . . . . . . 32 \closing: Added \leavevmode to
\cc: replace \reset@font with get the signatures on one line 23
\normalfont; remove \rm . . . 23 \streepje: Make the ‘streepje’s a
\encl: replace \reset@font with little smaller . . . . . . . . . . . . . 20
\normalfont; remove \rm . . . 23 \vouwstreepjes: Change the
positioning of the ‘streepje’s a
\mlabel: changed width of the
little . . . . . . . . . . . . . . . . . . . 21
labels slightly to prevent LATEX
General: Added a few more
stuffing two on each line . . . . 25
synonimes for commands . . . . . 1
\ps@plain: replace \rmfamily
v2.0s
with \normalfont (PR 1578) . 14
\@nobreakvspace: Made robust
\startlabels: changed value of (LATEX pr/2049) . . . . . . . . . . 21
\columnsep by 1pt . . . . . . . . 24 \@normalsize: Roll back handling
General: Use \hb@xt@ instead of (gh/201) . . . . . . . . . . . . . . . . . 7
\hbox to . . . . . . . . . . . . . . . . 1 \labelitemfont: Normalize label
v2.0m fonts . . . . . . . . . . . . . . . . . . 28
\@refveld: Also set \parindent to \small: Use
zero . . . . . . . . . . . . . . . . . . . 18 \DeclareRobustCommand
\adresveld: Set both \parskip instead of \newcommand* . . . . . 7
and \parindent to zero in General: Synchronised with the
\adresveld . . . . . . . . . . . . . 17 standard document classes . . . . 1

37

You might also like