summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ntgclass
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ntgclass
Initial commit
Diffstat (limited to 'macros/latex/contrib/ntgclass')
-rw-r--r--macros/latex/contrib/ntgclass/00readme.txt30
-rw-r--r--macros/latex/contrib/ntgclass/a4.dtx618
-rw-r--r--macros/latex/contrib/ntgclass/a4.ins84
-rw-r--r--macros/latex/contrib/ntgclass/a4.pdfbin0 -> 149067 bytes
-rw-r--r--macros/latex/contrib/ntgclass/artdoc.pdfbin0 -> 146448 bytes
-rw-r--r--macros/latex/contrib/ntgclass/artdoc.tex682
-rw-r--r--macros/latex/contrib/ntgclass/brief.dtx2723
-rw-r--r--macros/latex/contrib/ntgclass/brief.pdfbin0 -> 198831 bytes
-rw-r--r--macros/latex/contrib/ntgclass/brief.tex229
-rw-r--r--macros/latex/contrib/ntgclass/briefdoc.pdfbin0 -> 81879 bytes
-rw-r--r--macros/latex/contrib/ntgclass/briefdoc.tex306
-rw-r--r--macros/latex/contrib/ntgclass/catalog.txt25
-rw-r--r--macros/latex/contrib/ntgclass/changes.txt5
-rw-r--r--macros/latex/contrib/ntgclass/classdoc.pdfbin0 -> 69777 bytes
-rw-r--r--macros/latex/contrib/ntgclass/classdoc.tex164
-rw-r--r--macros/latex/contrib/ntgclass/manifest.txt47
-rw-r--r--macros/latex/contrib/ntgclass/ntgclass.dtx5273
-rw-r--r--macros/latex/contrib/ntgclass/ntgclass.ins101
-rw-r--r--macros/latex/contrib/ntgclass/ntgclass.pdfbin0 -> 376559 bytes
-rw-r--r--macros/latex/contrib/ntgclass/rapdoc.pdfbin0 -> 138589 bytes
-rw-r--r--macros/latex/contrib/ntgclass/rapdoc.tex710
21 files changed, 10997 insertions, 0 deletions
diff --git a/macros/latex/contrib/ntgclass/00readme.txt b/macros/latex/contrib/ntgclass/00readme.txt
new file mode 100644
index 0000000000..be1dcc6ad3
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/00readme.txt
@@ -0,0 +1,30 @@
+ NTG document classes distribution
+
+ 20 February 2004
+
+This file contains the distribution guide for the new version
+of the NTG document classes and the A4 package.
+The classes are maintained by NTG Working Group 13
+
+This distribution is described in the files ending with .txt.
+
+ * 00readme.txt is this file.
+
+ * manifest.txt lists all the files in the distribution.
+
+For more information about the document classes see the file
+ntgclass.tex.
+
+These files 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.
+
+Please do not request updates from us. Distribution is done only
+through mail servers and TeX organisations.
+
+
+--- Copyright 1994-2004 NTG. All rights reserved ---
diff --git a/macros/latex/contrib/ntgclass/a4.dtx b/macros/latex/contrib/ntgclass/a4.dtx
new file mode 100644
index 0000000000..4b58747e6d
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/a4.dtx
@@ -0,0 +1,618 @@
+% \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
+% \CheckSum{153}
+%
+%\iffalse
+%% Style option `A4' to be used with LaTeX V2.09
+%% Copyright (C) 1990-2004 Johannes Braams, Nico Poppelier.
+%% All rights reserved.
+%%
+% We begin by identifying the version of this file on the terminal and
+% in the transcript file.
+%<*package>
+\ifx\ProvidesPackage\undefined
+ \def\ProvidesPackage#1[#2 #3 #4]{%
+ \wlog{LaTeX Package `#1' #3 <#2> #4}}
+\fi
+%</package>
+%<*dtx>
+\ProvidesFile{a4.dtx}
+%</dtx>
+%<package>\ProvidesPackage{a4}
+ [2004/04/15 v1.2g A4 based page layout]
+%
+% Copying of this file is authorized only if either
+% (1) you make absolutely no changes to your copy, including name, or
+% (2) if you do make changes, you name it something other than
+% A4.doc or A4.sty.
+% This restriction helps ensure that all files developed By NTG WG13
+% are identical.
+%
+% Error reports for UNCHANGED versions please to:
+% J.L. Braams
+% TeXniek at braams.cistron.nl
+% or: N.A.F.M. Poppelier
+% N.Poppelier at elsevier.nl
+%
+%
+%\fi
+%
+% \GetFileInfo{a4.dtx}
+%
+% \changes{1.0}{10 Jan 90}{Changed the margins for one-sided printing}
+% \changes{1.1}{23 Jan 90}{Added \cs{WideMargins} macros}
+% \changes{1.2}{26 Feb 90}{Consolidated setting of
+% \cs{marginparwidth}}
+% \changes{1.2a}{30 Nov 90}{replaced \cs{typeout} with \cs{wlog}}
+% \changes{1.2b}{1994/02/28}{Update for \LaTeXe}
+% \changes{1.2b}{1994/02/28}{Removed some ltugboat remnants}
+% \changes{1.2c}{1994/03/15}{Provide package a4 instead of A4}
+% \changes{1.2c}{1994/03/15}{Added \cs{ProcessOptions}}
+% \changes{1.2c}{1994/03/15}{Moved \cs{wlog} to the \LaTeX2.09 case}
+% \changes{1.2c}{1994/03/15}{Moved execution of \cs{ProcessOptions} to
+% end of file}
+% \changes{v1.2d}{1995/08/11}{Moved identification part to the top of
+% the file}
+%
+% \title{A style option to adapt the standard \LaTeX\ document
+% styles to A4 paper\thanks{This file
+% has version number \fileversion --
+% last revision \filedate.}}
+%
+% \author{Nico Poppelier\\
+% \TeX nique \\
+% Washingtondreef 153\\
+% 3564 KD Utrecht\\
+% \texttt{Poppelier@elsevier.nl}\\
+% \and
+% Johannes Braams\\
+% \TeX niek\\
+% Kooienswater 62\\
+% 2715 AJ Zoetermeer\\
+% \texttt{JLBraams@cistron.nl}}
+%
+% \date{Printed \today}
+%
+% \maketitle
+%
+% \begin{abstract}
+% This article describes a new style option that can be used with the
+% document styles that are distributed with the \LaTeX\ distributions.
+% It modifies the page layout to conform to the paper format most
+% commonly used in Europe, portrait A4.
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% This file is based on the document style options \file{A4.sty}
+% and \file{A4wide.sty}, which can be found in the Rochester style
+% archive. The original style option \file{A4.sty} we started from
+% was written by John Pavel, and is dated May 1987. This option
+% only changes the vertical size of the text somewhat, by
+% increasing the number of lines on a page. The style option
+% \file{A4wide.sty} was written by Jean-Francois Lamy, and is dated
+% July 1986. This option only increases the width of the text.
+%
+% \section{Goals and design decisions}
+%
+% As many people before us, we found the page layout as implemented
+% in the standard \LaTeX\ document styles too much geared towards
+% the American-sized paper, which is somewhat wider than A4 paper,
+% but also noticeably less high.
+%
+% Our goal was to get a page layout that was suitable for A4 paper,
+% and produced legible texts. There are a number of layout
+% parameters that influence the legibility of a text. A parameter
+% of major importance is the number of words (or characters) on a
+% line. The maximum number of words per line is ten to twelve for
+% optimal legibility, a rule-of-thumb that can be found in
+% typographic literature (we used~\cite{treebus}). This results in
+% a number of characters per line which lies somewhere between
+% sixty and seventy.
+%
+% Another important parameter is the amount of white space
+% surrounding the text. Here we have to distinguish between texts
+% that are printed one-sided and texts that are printed two-sided
+% (back to back). In the first case the margins on odd and even
+% pages should be equal; in the latter case care should be taken
+% that the texts on both sides of the paper overlap. Also a printed
+% document is likely to be bound some way or another, so there
+% should be enough white space in the `inner' margin\footnote{For
+% two-sided printing, this is the left margin on odd-numbered pages
+% and the right margin on even-numbered ones; for one-sided
+% printing, this is always the left margin.} of the text to allow
+% this.
+%
+% There is yet one more thing to take into account when designing a
+% page layout. \LaTeX\ offers the possibility of using marginal
+% notes and if someone wants to use marginal notes, they should of
+% course fit on the paper.
+%
+% So, we have the following goals:
+% \begin{enumerate}
+% \item Choose the text width such that there will be sixty to
+% seventy characters on a line;
+% \item See to it that in documents that are printed two-sided, the
+% texts which end up on two sides of one sheet of paper overlap;
+% \item Leave enough white space in the `inner' margin to allow for
+% the binding of the document;
+% \item Leave enough white space in the `outer' margin for marginal
+% notes if they are going to be used.
+% \end{enumerate}
+%
+% \section{Update for \LaTeXe}
+%
+% With the new document classes this package may not be needed much
+% longer, because A4 paper is now supported through the standard
+% option \Lopt{a4paper}. Yet this package additional functionality,
+% not available in the standard document classes. With \LaTeXe, you
+% can now use this package with the command:
+% \begin{verbatim}
+% \usepacke[widemargins]{a4}
+% \end{verbatim}
+% The option \Lopt{widemargins} executes the |\WideMargins|
+% command.
+%
+% \section{The implementation}
+%
+% \subsection{The starting point}
+%
+% Thus we set out to modify some of the design decisions in the
+% standard document styles. Because we knew that we were not the
+% first to tackle the problem, we started by having a look at what
+% was already available. We came up with the two options mentioned
+% earlier, which are publicly available. Undoubtedly there will
+% exist many more such files, some of them maybe modifications of
+% those two files.
+%
+% We had a look at the layout produced by both options and were not
+% satisfied with it. For one thing, both of the original options
+% \Lopt{a4} and \Lopt{A4wide} modify only one aspect of the page
+% layout. The first thing to do was to put these two files
+% together. This resulted in a layout which was still
+% unsatisfactory, since for the 10-point and 11-point options lines
+% in the text contained on the average eighty characters or more.
+%
+% \subsection{What else?}
+%
+% \DescribeMacro\textwidth
+% \DescribeMacro\marginparwidth
+% Because the result so far gave us lines that contained too many
+% characters, we decreased the |\textwidth| to get lines that
+% contain about sixty to seventy characters for all three size
+% options. Still more work had to be done. As it turned out, using
+% our new \file{A4.sty} together with the option |twosided| had a
+% drawback: when the document was printed two-sided the texts on
+% both side of one piece of paper overlapped only partly, which
+% does not look good. We solved this by modifying the width of the
+% margins for two-sided printing. At the same time we modified the
+% |\marginparwidth| so that if someone uses a marginal note it
+% would completely fit on the paper instead of falling off the
+% page, which obviously would render the note unreadable.
+%
+% \DescribeMacro\WideMargins
+% The decisions described above allow for marginal notes to be printed
+% along with the normal text, but if someone makes heavy use of
+% marginal notes, the resultant layout will not be very
+% satisfactory, because if the full width of the marginal notes is
+% used, they will take up too much space in the `outer' margin. For
+% this case we provide the macro |\WideMargins|. This macro
+% modifies the page-layout parameters in such a way that the width
+% reserved for marginal notes becomes 1.5 inches. To achieve this
+% the width of the main body of the text is decreased. This macro
+% is meant to be used only in the preamble of the document.
+%
+%\StopEventually{
+% \section{Conclusion}
+%
+% We have presented a new approach to adapt the page layout of the
+% document styles that are part of the standard \LaTeX\
+% distributions to the dimensions of A4 paper. The width of
+% marginal notes has been taken into account and a means to get
+% wider marginal notes at the cost of shorter lines in the main
+% body of the text has been provided.
+%
+% \begin{thebibliography}{9}
+% \bibitem{treebus} K.F. Treebus.
+% \emph{Tekstwijzer, een gids voor het grafisch verwerken van tekst.}
+% SDU Uitgeverij ('s-Gravenhage, 1988). A Dutch book on layout
+% design and typography.
+% \end{thebibliography}
+% }
+%
+%
+% \subsection{The \textsc{docstrip} modules}
+%
+% The following modules are used in the implementation to direct
+% \textsc{docstrip} in generating the external files:
+% \begin{center}
+% \begin{tabular}{ll}
+% driver & produce a documentation driver file \\
+% package & produce a package file \\
+% \end{tabular}
+% \end{center}
+%
+% \subsection{Producing the documentation}
+%
+% A short driver is provided that can be extracted if necessary by
+% the \textsc{docstrip} program provided with \LaTeXe.
+% \begin{macrocode}
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\documentclass{ltxdoc}
+\DisableCrossrefs
+
+\CodelineIndex
+
+\MakeShortVerb{\|}
+\newcommand\Lopt[1]{\textsf{#1}}
+\newcommand\file[1]{\texttt{#1}}
+\begin{document}
+
+\DocInput{a4.dtx}
+
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \subsection{The code}
+%
+% Declare the option \Lopt{widemargins}.
+% \begin{macrocode}
+%<*package>
+\ifx\documentclass\undefined
+\else
+ \DeclareOption{widemargins}{\WideMargins}
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\topmargin}
+
+% First, we redefine the |\textheight| and |\topmargin|. The
+% |\topmargin| is the distance from the reference point on the page
+% to the top of the page of text. In most cases extra white space
+% is not necessary since one inch of white space at the top of the
+% page suffices.
+% \begin{macrocode}
+\topmargin 0pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textheight}
+% The dimension parameter |\textheight| gives the total height of
+% the text, including footnotes and figures, excluding the running
+% head and foot. This height is given as an integral number times
+% the |\baselineskip|, which results in an integral number of lines
+% on a page.
+%
+% We have to include definitions of all relevant dimension
+% parameters for each of the cases 10-point, 11-point and
+% 12-point. We do this with a case statement:
+%
+% \begin{macrocode}
+\ifcase \@ptsize
+ \textheight 53\baselineskip
+% \end{macrocode}
+% which modifies the height of the text for texts to be produced
+% with the ten-point typeface:
+% \begin{macrocode}
+\or
+ \textheight 46\baselineskip
+% \end{macrocode}
+% the same for eleven point:
+% \begin{macrocode}
+\or
+ \textheight 42\baselineskip
+% \end{macrocode}
+% and for twelve point. Finally we close the |\ifcase| statement:
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% The only thing left to be done is to add the |\topskip| to the
+% |\textheight|. The value of |\topskip| appears always to be 10pt.
+%
+% \begin{macrocode}
+\advance\textheight by \topskip
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textwidth}
+% \begin{macro}{\oddsidemargin}
+% \begin{macro}{\evensidemargin}
+% That was the `vertical part' of the work. Now we have some work
+% to do to get things right horizontally. Again we have to
+% distinguish between the various character sizes because sixty
+% eleven-point characters take up more space than sixty ten-point
+% characters. But there's more to take into account. If documents
+% are printed two-sided, the texts on both sides of the paper
+% should overlap completely. This can be done be assigning
+% appropriate values to |\oddsidemargin| and |\evensidemargin|, the
+% parameters that define the left margins on odd and even pages
+% respectively.
+%
+% First we start a case statement to distinguish between the
+% various typeface sizes.
+% \begin{macrocode}
+\ifcase \@ptsize
+% \end{macrocode}
+% Then we specify the width of the text.
+% \begin{macrocode}
+ \textwidth 5.00in
+% \end{macrocode}
+% Also specify the width of marginal notes. They must have a
+% reasonable width to be of any use, and this should be the same
+% for either one-sided or two-sided printing.
+% \begin{macrocode}
+ \marginparwidth 1.00in
+% \end{macrocode}
+% Here we need an if statement to test whether the option
+% |twosided| has been specified.
+% \begin{macrocode}
+ \if@twoside
+% \end{macrocode}
+% If it was, assign appropriate values to the margin parameters
+% \begin{macrocode}
+ \oddsidemargin 0.55in
+ \evensidemargin 0.75in
+ \else
+% \end{macrocode}
+% If the option |twosided| was not used, both margin parameters
+% must have the same value, for texts on consecutive pages have to
+% be put in the same place on the paper.
+% \begin{macrocode}
+ \oddsidemargin 0.55in
+ \evensidemargin 0.55in
+% \end{macrocode}
+% Now we close the if statement.
+% \begin{macrocode}
+ \fi
+% \end{macrocode}
+% We are ready with the modifications for the ten-point typeface
+% size, so now we do something similar for the eleven-point
+% typeface.
+% \begin{macrocode}
+\or
+ \textwidth 5.20in
+ \marginparwidth 1.00in
+ \if@twoside
+ \oddsidemargin 0.45in
+ \evensidemargin 0.65in
+ \else
+ \oddsidemargin 0.45in
+ \evensidemargin 0.45in
+ \fi
+% \end{macrocode}
+% One more time, now for the twelve-point typeface.
+% \begin{macrocode}
+\or
+ \textwidth 5.70in
+ \marginparwidth 0.80in
+ \if@twoside
+ \oddsidemargin 0.20in
+ \evensidemargin 0.40in
+ \else
+ \oddsidemargin 0.20in
+ \evensidemargin 0.20in
+ \fi
+% \end{macrocode}
+% Finally we close the case statement.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\WideMargins}
+% This macro is somewhat tricky: it has to find out
+% which typeface size is used, whether the document should be printed
+% two-sided, and whether the |\reversemarginpar| is in effect.
+% |\reversemarginpar| makes the marginal notes appear in the
+% margin on the opposite side of the normal placement.
+% \begin{macrocode}
+\def\WideMargins{%
+% \end{macrocode}
+% \noindent
+% Because for each typeface size the changes to the parameters that
+% need to be made are similar, the macro |\WideMargins|
+% uses an internal macro |\@widemargins|.
+%
+% \begin{macro}{\ExtraWidth}
+% In order to store the amount of extra width needed for the marginal
+% notes an extra dimension parameter is defined.
+%
+% \begin{macrocode}
+ \newdimen\ExtraWidth
+% \end{macrocode}
+% \end{macro}
+%
+% \noindent
+% First find out about the point size, then call |\@widemargins| to
+% modify the margin widths by the amount given in |\ExtraWidth|.
+% \begin{macrocode}
+ \ifcase \@ptsize
+% \end{macrocode}
+%
+% \noindent
+% For both 10-point and 11-point texts the width for marginal notes is
+% already 1 inch, so we increase it by half an inch. We subtract half an
+% inch from the text width and modify the margins appropriately.
+%
+% \begin{macrocode}
+ \ExtraWidth = 0.5in
+ \@widemargins
+ \or
+ \ExtraWidth = 0.5in
+ \@widemargins
+ \or
+% \end{macrocode}
+%
+% \noindent
+% For 12-point texts the marginal notes are only 0.8 inch wide, so
+% now we have to add 0.7 inch to get them 1.5 inch wide.
+%
+% \begin{macrocode}
+ \ExtraWidth = 0.7in
+ \@widemargins
+% \end{macrocode}
+%
+% \noindent
+% This macro should only be called once, during the preamble of a
+% document, so we |\let| it be equal to |\relax| as soon
+% as the work is done.
+% \begin{macrocode}
+ \fi\let\WideMargins\relax\let\@widemargins\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@preamblecmds}
+% We add |\WideMargins| to |\@preamblecmds|, which is a
+% list of commands to be used only in the preamble of a document.
+%
+% \begin{macrocode}
+{\def\do{\noexpand\do\noexpand}
+ \xdef\@preamblecmds{\@preamblecmds \do\WideMargins}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@widemargins}
+% This macro modifies the margin parameters. To do this it uses
+% the dimension variable |\ExtraWidth|, which was defined by
+% |\WideMargins|.
+%
+% \noindent
+% First the |\ExtraWidth| is subtracted from the |\textwidth|
+% and added to the |\marginparwidth|.
+% \begin{macrocode}
+\def\@widemargins{%
+ \global\advance\textwidth by -\ExtraWidth
+ \global\advance\marginparwidth by \ExtraWidth
+% \end{macrocode}
+%
+% \noindent
+% Then we modify the margins, but the value of the switch
+% |\if@twoside| has to be taken into account. Because
+% we have to test another switch (|\if@reversemargin|)
+% we add another level of macros to modify the margin parameters%
+%
+% \begin{macrocode}
+ \if@twoside
+ \tw@sidedwidemargins
+ \else
+ \@nesidedwidemargins
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tw@sidedwidemargins}
+% Normally the marginal notes are printed in the `outer' margins, so
+% we have to increase the |\evensidemargin| to keep the text
+% balanced on both sides of the paper, but if |\reversemarginpar|
+% is in effect we have to increase the |\oddsidemargin| and
+% decrease the |\evensidemargin| accordingly.
+%
+% \begin{macrocode}
+\def\tw@sidedwidemargins{%
+ \if@reversemargin
+% \end{macrocode}
+%
+% \noindent
+% Notice that for documents printed two-sided, the
+% |\evensidemargin| is wider than the |\oddsidemargin|;
+% this difference in width is transferred to the other margin.
+%
+% \begin{macrocode}
+ \@tempdima=\evensidemargin
+ \advance\@tempdima by -\oddsidemargin
+ \advance\oddsidemargin by \ExtraWidth
+ \advance\oddsidemargin by \@tempdima
+ \advance\evensidemargin by -\@tempdima
+ \else
+% \end{macrocode}
+%
+% \noindent
+% If the marginal notes go on the normal side of the paper, only the
+% |\evensidemargin| has to be increased.
+%
+% \begin{macrocode}
+ \advance\evensidemargin by \ExtraWidth
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@nesidedwidemargins}
+% For documents that are printed one-sided, both margins have the same
+% width. The default placement for the marginal notes is in the right
+% margin, so if |\reversemarginpar| is \emph{not} in effect the
+% margin parameters need not be modified. If it is in effect, both the
+% |\oddsidemargin| and the |\evensidemargin| need to be
+% increased.
+%
+% \begin{macrocode}
+\def\@nesidedwidemargins{%
+ \if@reversemargin
+ \advance\oddsidemargin by \ExtraWidth
+ \advance\evensidemargin by \ExtraWidth
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% The command |\ProcessOptions| can only be executed \emph{after}
+% |\WideMargins| has been defined. Defering the execution of
+% |\WideMargins| with |\AtBeginDocument| doesn't work, the changing
+% of |\textwidth| then comes too late because of the time when the
+% |\@begindocumenthook| gets executed by |\begin{document|.
+% \begin{macrocode}
+\ifx\documentclass\undefined
+\else
+ \ProcessOptions
+\fi
+%</package>
+% \end{macrocode}
+%
+% \Finale
+%
+%% \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 \~}
+%%
+\endinput
diff --git a/macros/latex/contrib/ntgclass/a4.ins b/macros/latex/contrib/ntgclass/a4.ins
new file mode 100644
index 0000000000..e512961050
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/a4.ins
@@ -0,0 +1,84 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright (C) 1990-1999 Nederlandstalige TeX Gebruikersgroep.
+%%
+%% 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\input docstrip.tex % ignored in distribution
+
+\preamble
+This is a generated file.
+
+Copyright (C) 1990-2004 Nederlandstalige TeX Gebruikersgroep.
+All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the NTG
+document classes distribution. You may however distribute the NTG
+document classes distribution without such generated files.
+
+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.
+\endpreamble
+
+\keepsilent
+
+\usedir{tex/latex/ntgclass}
+\generateFile{a4.sty}{t}{\from{a4.dtx}{package}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space a4.sty}
+\Msg{*}
+\Msg{* To produce the documentation run `a4.dtx' through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+
+\endinput
diff --git a/macros/latex/contrib/ntgclass/a4.pdf b/macros/latex/contrib/ntgclass/a4.pdf
new file mode 100644
index 0000000000..fb63ff89f6
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/a4.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/artdoc.pdf b/macros/latex/contrib/ntgclass/artdoc.pdf
new file mode 100644
index 0000000000..c52fa417ef
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/artdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/artdoc.tex b/macros/latex/contrib/ntgclass/artdoc.tex
new file mode 100644
index 0000000000..b581d23529
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/artdoc.tex
@@ -0,0 +1,682 @@
+% \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
+\documentclass[a4paper]{artikel1} %ja,ja, onze eigen documentstijl!
+\usepackage[dutch]{babel}
+
+\begin{document}
+\date{3 september 1989 / 3 juni 1994}
+\title{Documentstijlen Artikel$x$\\
+ Verantwoording}
+\author{Victor Eijkhout}
+\maketitle
+
+\begin{abstract}
+ Dit is de verantwoording voor de documentstijlen `Artikel1',
+ `Artikel2', en~`Artikel3'. Deze stijlen zijn bedoeld als een
+ \emph{mogelijke} vervanging van de stijl `article'. In dit verhaal
+ zijn beschreven
+\begin{enumerate}
+\item de redenen waarom bepaalde veranderingen zijn aangebracht;
+\item de parameters en commando's die op de veranderingen betrekking
+ hebben; en
+\item de wijze waarop de veranderingen zijn ge"implementeerd.
+\end{enumerate}
+Tegelijk is dit document een uitprobeerobject voor de nieuwe
+stijlen\footnote{De hoeveelheid gebruikte \LaTeX-constructies is
+ derhalve aan de ruime kant. De lezer wordt vriendelijk gevraagd zich
+ hieraan niet te ergeren.}.
+\end{abstract}
+
+
+\part{Algemeen}
+
+\section{Verantwoording}
+
+De documentstijlen `Artikel$x$' zijn bedoeld als verbetering van de
+standaard \LaTeX-document\-stijl `Article'. De meeste macros zijn
+derhalve modificaties van constructies uit `article.sty' of
+`latex.tex'.
+
+Bij het ontwerpen van de opmaak heb ik advies gehad van Inge
+Eijkhout~\cite{Inge}. Het boek `Tekstwijzer'~\cite{Karel} van Karel
+Treebus was verder een hulp (de opmaak van de inhoudsopgave in
+`Artikel1' is daar zelfs compleet uit overgenomen). Ook erken ik de
+invloed van John Miles' `Ontwerpen voor Desktop
+Publishing'~\cite{Miles}. Nico Poppelier heeft met raad en daad ter
+zijde gestaan. Wat er fout is aan deze stijlen blijft natuurlijk voor
+mijn rekening komen.
+
+\section{Overzicht}\label{overzicht:sectie}
+
+De documentstijlen `Artikel$x$' zijn geheel compatibel met `Article':
+er zijn geen commando's toegevoegd of weggelaten. De veranderingen
+ten opzichte van `Article' betreffen enkel de opmaak. In het
+bijzonder is er gesleuteld aan:
+\begin{enumerate}
+\item witregels rond koppen van secties, subsecties en subsubsecties
+ (van nu af aan `sectiekoppen' genoemd),
+\item verdere veranderingen aan de opmaak van deze koppen,
+\item de hoeveelheid inspringing bij lijststructuren (gegenereerd met
+ het \LaTeX\ \verb.\@list. commando), in het bijzonder `itemize',
+ `enumerate', en (specifiek voor `article') `description', en
+\item verdere opmaak van lijststructuren,
+\item verdere opmaak van sectiekoppen, en
+\item de inhoudsopgave.
+\end{enumerate}
+Over het algemeen is het de bedoeling geweest een strakke opmaak te
+krijgen (de standaard stijlen van \LaTeX\ `zwemmen' over de pagina).
+
+\section{Exportkwaliteit documentstijlen}
+
+De documentstijlen `Artikel$x$' kunnen zowel gebruik maken van de
+stijloptie `Dutch' (auteur: Johannes Braams) als van `German' (auteur:
+Hubert Partl), als van elke andere optie die de door Partl in `German'
+gesuggereerde parametrisaties doorvoert. Deze opties zijn een
+reparatie voor het euvel dat de meeste taalspecifieke termen in de
+stijlen van de heer Lamport niet geparametriseerd zijn.
+
+In `Dutch' worden definities uit `Article' en dergelijke overreden
+door geparametriseerde versies\footnote{Een listige truc laat `Dutch'
+ achterhalen door welke stijl hij aangeroepen is; de `Artikel'
+ stijlen zijn een onbekende stijl voor `Dutch'}, die op verschillende
+talen ingesteld kunnen worden. Deze definities hadden natuurlijk al
+in de stijlen van heer Lamport geparametriseerd moeten zijn.
+
+De optie `German' is minder drastisch dan `Dutch': deze gaat ervan uit
+dat hij door geparametriseerde stijlbestanden opgeroepen wordt, en zet
+zelf alleen de parameters. De `Artikel' stijlen zijn geparametriseerd
+volgens de suggestie van Partl.
+
+\subsection{Kanttekening}De stijl `Dutch' parametriseert
+onder andere het commando `abstract'. Aangezien ik dit commando om
+opmaaktechnische redenen al herdefinieer, kan `Dutch' niet op
+`Artikel' losgelaten worden alsof het gewoon `Article' was. Momenteel
+is `Artikel' dus een `onbekende documentstijl' waar het `Dutch'
+betreft, en wordt er geen gebruik gemaakt van het feit dat een aantal
+definities zich ook in `Dutch' bevinden.
+
+\subsection{Een steek onder water}
+Hoewel het mij tegen de borst stuit het Engels een voorkeurspositie te
+geven onder de wereldtalen --~zeker in een voor het Nederlands
+bedoelde stijl~-- heb ik besloten de Engelse parameterwaarden uit
+`Dutch' als verstekwaarde in de `Artikel'-stijlen op te nemen. Een
+belangrijk argument hiervoor is dat dit de stijlen geheel gelijk maakt
+aan `Article' op commando\-nivo: zonder extra opties worden er Engelse
+teksten geleverd, en voor Nederlands of Duits in een optiebestand
+nodig.
+
+Een minstens zo belangrijk argument\footnote{mij door Nico Poppelier
+ aan de hand gedaan} hiervoor is dat de `Artikel'-stijlen zo een
+steek onder water naar Leslie Lamport vormen. Ze zeggen als het ware
+`\emph{Look here buster,} zo had het van begin af aan moeten zijn'.
+
+\part{Mechanismen; veranderingen in Artikel1}
+
+In de nu volgende subsecties worden de veranderingen ten opzichte van
+de oude artikelstijl besproken in volgorde van oplopende
+moeilijkheidsgraad van implementatie. De algemene mechanismen worden
+besproken, alsmede hun concrete realisatie in~`Artikel1'.
+
+\section{Trivialiteiten}
+
+In de `article'-stijl staat `raggedbottom' aan voor enkelzijdige
+documenten. Dit moet uit. `Frenchspacing' dient altijd aan te staan.
+
+\subsection{Paginanummers}
+De gebruiker kan met \verb.\pagestyle{STIJL}. een stijl van kop- en
+voetregels opgeven. De `Article' stijl definieert `plain'
+(gecentreerde voetregels), en `headings' en `myheadings'
+(asymmetrische kopregels). Als een gebruiker een stijl specificeert,
+resulteert dat in de aanroep van een commando \verb.\ps@STIJL..
+
+Omdat ik paginanummers wil hebben die rechts staan voor enkelzijdige
+documenten, en links/rechts voor tweezijdige documenten heb ik het
+commando \verb.\ps@plain., de verstekwaarde, omgebouwd.
+
+\subsection{De samenvatting in `Artikel1'}
+In `Artikel1' heb ik de samenvatting tegen de linker kantlijn aan
+getrokken. Het is nu enkel een groep waarbinnen de korpsgrootte
+`small' gebruikt wordt.
+
+\section{Makkelijke veranderingen: witregels}
+
+De \LaTeX\ artikelstijl wordt gekenmerkt door een overmaat aan
+witregels. Hierin is stevig gesnoeid.
+
+\subsection{Witregels rond koppen}
+
+De `article'-stijl maak zowel het wit boven als onder koppen rekbaar.
+Gevoegd bij het feit dat de `natuurlijke lengte' van dit wit al aan de
+ruime kant is, maakt dit het paginabeeld erg los. Witregels moeten
+kleiner worden, en mogen tussen kop en de eerste regel van de tekst
+niet rekbaar zijn. Verder verdient het aanbeveling de witruimte in
+termen van het regeltransport aan te geven.
+
+\subsubsection{Relevante concepten}
+Het wit onder en boven koppen wordt bepaald door parameters 4~en~5 van
+\verb.\@start.\-\verb.section., hetwelk commando in `art1$x$.sty'
+gebruikt wordt om de sectiekopcommando's te defini"eren. Parameter~4
+dient (in ons geval) het negatieve van de gewenste skip te
+specificeren.
+
+\newpage
+\subsubsection{Implementatie van de veranderingen}
+De volgende waarden voor de verticale witruimte zijn gebruikt
+\begin{table}[ht]
+ \begin{center}
+ \begin{tabular}{|l|r|r|} \hline
+ \emph{kop} & \emph{wit boven kop}&\emph{wit onder kop}\\ \hline
+ section & -2-1+.5 & .5\\
+ subsection & -1-.5+.25 & .25\\
+ subsubsection& -1-.5+.25 & .25\\ \hline
+ \end{tabular}
+ \end{center}
+ \caption{Hoeveelheid vertikaal wit in termen van
+ `normalbaselineskip'}
+\end{table}
+(in eerste instantie waren mij hogere waarden gesuggereerd, na
+inspectie bleken deze waarden beter te voldoen).
+
+De hoeveelheid wit boven koppen steekt niet zo nauw. Die eronder wel.
+In het bijzonder is het een merkwaardig idee het wit onder koppen
+rekbaar te hebben. De grootte van dit wit draagt aanzienlijk bij aan
+het ritme van de pagina.
+
+
+Opmerking: Aangezien alle skips in termen van de `baselineskip'
+gegeven worden, kunnen deze definities opgetild worden van het
+optiebestand naar het stijlbestand.
+
+
+\subsection{Witregels rond lijststructuren}
+
+Witregels rond de items van een lijststructuur maken het paginabeeld
+onrustiger, en zijn vaak niet functioneel: een `itemize'-structuur is
+meestal \'e\'en doorlopend betoog waarin witregels ongewenst zijn. Er
+valt iets voor te zeggen rondom `description'-structuren wel witregels
+toe te staan, aangezien de beschrijvende termen in feite een kopje
+vormen.
+
+De eerste tekstregel na een lijststructuur dient niet ingesprongen te
+worden, ongeacht of de gebruiker een regel open gelaten heeft achter
+de lijst (bij voorbeeld om zijn invoer overzichtelijker te maken).
+
+
+\subsubsection{Inventaris van relevante concepten}
+\LaTeX\ bestuurt witregels rond en in lijststructuren met de
+parameters `topsep', `partopsep', `itemsep', `parsep'.
+\begin{figure}[hb]
+ \begin{center}
+ \begin{tabular}{ll}
+ topsep & ruimte boven een lijst\\
+ partopsep & extra als de lijst een nieuwe paragraaf opent\\
+ itemsep & ruimte tussen items\\
+ parsep & ruimte tussen paragrafen.\\
+ \end{tabular}
+ \end{center}
+ \caption{Parameters in tabel-omgeving}
+\end{figure}
+Deze parameters worden gezet in `art1$x$.sty' in het commando
+\begin{verbatim}
+@list\romannumeral\the\@listdepth
+\end{verbatim}
+hetgeen ge`eval'd wordt in \verb.\@list..
+
+Spaties na een lijststructuur kunnen onderdrukt worden door
+\verb.\if@ignoretrue. toe te voegen aan `enditemize'
+en~`endenumerate'. Het is nog niet duidelijk of voorkomen kan worden
+dat er ingesprongen wordt als de gebruiker een lege regel ingeeft.
+
+
+\subsubsection{Implementatie van de veranderingen}
+Voor de gebruikte lijststructuren (met mogelijke uitzondering van
+`description') dienen al deze parameters nul te zijn.
+
+Opmerking: als voor de `labelwidth' en de `labelsep' een oplossing in
+termen van fontparameters gevonden wordt, kunnen de `listi' en
+dergelijke commando's opgetild worden van het stijloptiebestand naar
+het stijlbestand zelf.
+
+
+\subsection{Verdere witregels}
+Het wit rond lijststructuren wordt bestuurd door de locale `topsep',
+die we boven nul gemaakt hebben, en door de globale `topsep'. Voor
+een strakke opmaak is het wenselijk die nul te maken, echter hiermee
+verdwijnt ook het wit op een plaats waar dat wel wenselijk is: rond
+`verbatim' delen van het document. De oplossing zou kunnen zijn het
+invoegen van een `topsep' in het \verb.\verbatim. commando.
+
+De witregel tussen voetnoten wordt bestuurd door de `footnotesep'. Ik
+zou niet weten waarom die anders dan nul zou moeten zijn.
+
+
+\section{Ook niet moeilijk: fonts}
+
+Er moet wat met fonts gerommeld worden. Voornamelijk moeten ze
+kleiner, en het cursief moet vervangen worden door wat in Nederlandse
+terminologie `gecursiveerd' heet; wij \TeX ies kennen dit als
+`slanted'.
+
+\subsection{Fonts in sectiekoppen}
+
+De fonts gebruikt in tussenkopjes zijn proefondervindelijk tot stand
+gekomen, en waarschijnlijk nog aan mutatie onderhevig. De
+oorspronkelijk idee"en komen uit de `Sober'-stijl van Nico Poppelier.
+Daarna is het `italic' vervangen door `slanted'. Kwestie van smaak.
+Ik hou niet van de~\mbox{\emph{cmti}}. Verder is het klein kapitalen
+font als `\dots~en hopeloos ouderwets'~\cite{Inge} de laan
+uitgestuurd.
+
+\subsection{Theorems en het `emphasize' font}
+
+Om tekst te beklemtonen gebruikt \LaTeX\ het cursieve font
+\texttt{cmti}. Dit vin' ik niet mooi. Binnen de Nederlandse stijlen
+wordt er dus beklemtoond met \texttt{cmsl}. Ook in de `theorem'
+omgevingen is deze vervanging doorgevoerd.
+
+
+\section{Moeilijke veranderingen: eenheidsinspringing}
+
+Ten einde een strakke paginaopmaak te verkrijgen, verdient het
+aanbeveling het aantal (impliciete) kantlijnen tot een minimum te
+beperken. De radicaalste oplossing voor dit probleem bestaat uit
+
+\begin{enumerate}
+\item alle labels in lijststructuren tegen de linkerkantlijn aan te
+ plaatsen (dit is niet zo mooi als er ver ingesprongen wordt),
+\item voetnoten niet te laten inspringen (ingesprongen voetnoten zien
+ er alleen goed uit als ze meer dan \'e\'en regel lang zijn), en
+\item een eenheidsinspringing in te voeren voor
+ \begin{itemize}
+ \item alinea's,
+ \item teksten van koppen op alle nivo's, en
+ \item de ingesprongen tekst in lijststructuren.
+ \end{itemize}
+\end{enumerate}
+Laten we er voorlopig dus vanuit gaan dat er een parameter
+`unitindent' is. De berekening van deze grootheid komt verderop aan de
+orde.
+
+\subsection{Inspring bij lijststructuren}
+
+Labels voor items in een lijst defini"eren gemakkelijk een tweede
+kantlijn. Het kan dus gewenst zijn ze tegen de linkerkantlijn van de
+omringende tekst aan te plaatsen.
+
+\subsubsection{Inventaris van relevante concepten}
+Een lijst op het eerste nivo springt in over `leftmargini'. Het label
+wordt van de tekst gescheiden door `labelsep', en heeft breedte
+`labelwidth', tenzij de natuurlijke breedte groter is. De linkerkant
+van het label staat echter altijd op `labelwidth' plus `labelsep' van
+de ingesprongen kantlijn. De inhoud van het label wordt in de
+omringende box geplaatst door het commando `makelabel'.
+
+Al deze begrippen worden ingevuld in de commando's `list$x$'.
+
+\subsubsection{Implementatie van de veranderingen}
+Het zetten van parameters kan mooi in de `list$x$' commando's
+gebeuren:
+\begin{verbatim}
+\def\@listi{\leftmargin=\unitindent
+ \labelsep=\enspace
+ \labelwidth=\leftmargin
+ \advance\labelwidth by -\labelsep}}
+\end{verbatim}
+Als de `unitindent' door fontparameters bepaald wordt, hoeft deze
+definitie niet meer in het optiebestand te staan, maar kan naar de
+stijldefinitie opgetild worden.
+
+Het veranderen van de definitie van `makelabel' is lastiger: dit moet
+in het tweede argument van `list' gebeuren. We zullen dus `itemize' en
+`enumerate' moeten herdefini"eren met een nieuwe definitie van
+`makelabel'.
+
+\subsubsection{Speciale behandeling eerste nivo}
+
+Omdat de `unitindent' tamelijk groot uitvalt, heb ik ervoor gekozen
+labels op het eerste nivo rechts aan te lijnen (waardoor ze dus in
+bescheiden mate een nieuwe kantlijn definieren), andere labels lijnen
+links.
+
+Dit is ge"implementeerd door in het `commands' argument van
+\verb.\@list. de definitie van `makelabel' afhankelijk te maken van de
+\verb.\@listdepth..
+
+
+
+\subsection{Inspring bij koppen}
+
+De plaatsing van de tekst van koppen (achter het sectienummer) is in
+\LaTeX\ ogenschijnlijk willekeurig, en draagt hiermee (zeker als twee
+koppen onder elkaar staan) bij tot een onrustig paginabeeld. Dit kan
+aanmerkelijk verbeterd worden door voor het sectienummer en de erop
+volgende spatie een eenheidsbreedte te nemen.
+
+\subsubsection{Inventaris van relevante concepten}
+In het commando \verb.\@sect. wordt een commando \verb.\@svsec.
+ge`edef't dat het sectie nummer afdrukt, gevolgd door
+`1~em'\footnote{Ter herinnering:
+ \begin{itemize}
+ \item Er zijn 5 nivo's van sectiekoppen: `section', `subsection',
+ `subsubsection', `paragraph', en `subparagraph'.
+ \item De eerste 3 nivo's zijn genummerd.
+ \item De laatste twee nivo's geven een kop die in de tekst is
+ ingebed.
+ \end{itemize}}\footnote{Aangezien de definitie van 'em' met het
+ gebruikte font meeverandert, geeft het gebruik van twee of drie
+ koppen onder elkaar een merkwaardig visueel effect.}.
+
+\subsubsection{Implementatie van de veranderingen}
+Er moet een nieuwe versie van \verb.\@sect. komen die een verbeterde
+\verb.\@svsec. bevat:
+\begin{verbatim}
+\edef\@svsec{\hbox to \unitindent
+ {\csname the#1\endcsname\hfil}}
+\end{verbatim}
+In plaats van `unitindent' kan als breedte ook een verdere
+parametrisatie met
+\begin{verbatim}\csname #1labelwidth\endcsname
+\end{verbatim}
+gekozen worden. De `unitindent' kan als volgt gegenereerd worden:
+\begin{verbatim}
+\newdimen\unitindent
+{\setbox0\hbox{\normalsize\bf 2.2.2\ }
+ \global\unitindent=\wd0}
+\parindent=\unitindent
+\leftmargini=\unitindent
+\end{verbatim}
+
+Dit is helaas nog niet voldoende. Als een gebruiker erg veel van
+secties en subsecties houdt, kunnen de nummers een grotere breedte dan
+die van `2.2.2' krijgen. Daarom wordt het label iedere keer bij een
+nieuw kopje opgemeten, en zonodig wordt de `unitindent' bijgesteld.
+Bij het afsluiten van het document wordt dan de definitieve waarde
+(die misschien de oude is, en misschien veel meer) naar het
+\texttt{.aux}-bestand geschreven. Dat wil zeggen: er wordt een
+toewijzing van die waarde aan de unitindent weggeschreven.
+
+Adders en voetangels te over: hiervoor moet het commando `enddocument'
+herschreven worden.
+
+
+\section{Verdere moeilijke veranderingen: de opmaak van
+ lange koppen. Zoals deze dus. Reeds. Antidisestablishmentarianism.
+ Hottentottententententoonstelling.}
+
+\LaTeX\ zet koppen als ingesprongen paragrafen. Het is echter niet
+gewoon dat een meerregelige kop zo behandeld wordt: beter is het vrije
+regelval te gebruiken en vooral woordafbreking (zelfs in samengestelde
+woorden) te verbieden.
+
+\subsection{Inventaris van relevante concepten}
+Binnen het commando \verb.\@sect. wordt de kop van de sectie gezet als
+\begin{verbatim}
+{\interlinepenalty\@M #8\par}
+\end{verbatim}
+
+\subsection{Implementatie van de veranderingen}
+Aan de zetcommando's voor de sectiekoppen dient een aanroep van
+`headstyle' toegevoegd te worden, waar
+\begin{verbatim}
+\def\headstyle{\nohyphenation \rightskip=0cm plus 3cm}
+\end{verbatim}
+of zoiets. Het commando `nohyphenation' kan op verschillende manieren
+bereikt worden, ik heb gekozen voor \verb+\hyphenpenalty=10000+, en
+idem zo voor de `exhyphenpenalty'.
+
+\section{Opties}
+
+De stijlen `Artikel1' en `Artikel3' hebben een door de gebruiker te
+kiezen optie. Hiermee kan de gebruiker de opmaak naar eigen
+goeddunken varieren. Misschien dat er nog wel meer van dat soort
+opties komen.
+
+\subsection{Hoe werken opties}
+Een door de gebruiker gespecificeerde stijloptie wordt soms
+gerealiseerd door een commando in het stijlbestand, en soms door een
+in te laden optiebestand. Het mechanisme dat dit bewerkstelligt is
+het volgende.
+
+Ergens bovenin het stijlbestand worden commando's \verb.\ds@OPTION.
+gedefinieerd. Als de gebruiker de betreffende optie meegegeven heeft,
+wordt dit commando uitgevoerd door \verb.\@options., dat ook ergens
+bovenin het stijlbestand staat. Voor die opties waarvoor geen
+\verb.\ds@OPTION. macro gedefinieerd is, wordt na de verwerking van
+het stijlbestand door \LaTeX\ een bestand \verb.OPTION.STY. geladen.
+
+\section{De inhoudsopgave}
+
+\subsection{Beschrijving}
+\subsubsection{Inventaris van kwalen}
+Treebus vindt het zogenaamde `uitpunten' van een inhoudsopgave een
+minder geslaagd idee. Ook over het steeds verder inspringen van kopjes
+in de inhoudsopgave is hij niet te spreken. Laat dit nu precies zijn
+wat \LaTeX\ doet.
+
+Wat mij dan nog stoort zijn de grote verschillen in zetwijze
+van kopjes op verschillende nivo's.
+
+\subsubsection{Remedie}
+
+\paragraph{Kantlijnen}
+Alle nummers worden tegen de linker kantlijn getrokken, en de kopjes
+staan dan (allemaal) op `unitindent' van de linker kantlijn. Dit
+levert geen problemen op omdat er net zoveel nivo's nummering in
+kopjes als in de inhoudsopgave voorkomen.
+
+\paragraph{Fonts}
+Kopjes worden in drie verschillende fonts gezet om de hierarchie uit
+te doen komen. Ik heb gekozen voor `bf', `sl', en `rm' in
+`normalsize'. Er valt over te twisten of dit misschien gewoon de fonts
+van de koppen zelf moeten zijn.
+
+\paragraph{Verdere zetwijze}
+Er wordt vrije regelval gebruikt. Het paginanummer verschijnt direct
+achter het kopje (met een vaste hoeveelheid wit).
+
+\subsection{Implementatie}
+
+Ten eerste is er een commando \verb+\toc@font+ gekomen dat het font
+bepaalt waarmee een kop in de inhoudsopgave gaat verschijnen. Deze
+bepaling gebeurt in \verb+\@sect+, die daartoe verder is aangepast.
+
+Ten tweede is er, als vervanging van \verb+\@dottedtocline+,
+een commando\\ \verb+\@regtocline+ dat de opmaak van de kop regelt.
+De merkwaardige sequentie
+\begin{verbatim}
+\@tempdima=\unitindent
+\end{verbatim}
+zorgt ervoor dat het nummer (dat in \verb+\@sect+ in een `numberline'
+gestopt is) op de goede breedte gezet wordt.
+
+De \verb+\l@TYPE+ commando's (waar `type' is `section' en dergelijke)
+zijn omgezet zodat ze \verb+\@regtocline+ gebruiken. Uitzondering:
+\verb+\l@part+. Daar kom ik nog wel een keer aan toe.
+
+
+
+\part{Veranderingen in Artikel2}
+
+In de documentstijl `Artikel2' is voor veel zaken een geheel andere
+keuze gemaakt dan in~`Artikel1'. Vaak betekende dit dat, gegeven de
+moeite die in `Artikel1' geinvesteerd was, slechts een paar parameters
+veranderd hoefden te worden. In enkele gevallen, echter, moest een
+geheel nieuwe aanpak gevolgd worden.
+
+\section{Variaties}
+
+De beide hier beschreven documentstijlen hebben als voornaamste
+verbetering ten opzichte van `Article' een nadrukkelijk aanwezige
+tweede kantlijn. In `Artikel1' wordt deze kantlijn gebruikt door al
+het eenmaal ingesprongen materiaal. In~`Artikel2' wordt deze kantlijn
+minder radicaal gevolgd:
+\begin{itemize}
+\item`verbatim' omgevingen worden weer gewoon tegen de linkerkantlijn
+ geplaatst;
+\item de eerste kantlijn voor lijststructuren bedraagt de helft van de
+ paragraafinspinging; en
+\item de labelbreedte van voetnoten is hieraan gelijk gemaakt.
+\end{itemize}
+Alles bij elkaar wordt het gewicht van de pagina verder tegen de
+linkerkantlijn geplaatst.
+
+Van een andere kant bekeken is de tweede kantlijn (zeg dat die door de
+`parindent' bepaald wordt) in de stijl~`Artikel2' juist nadrukkelijker
+aanwezig:
+\begin{itemize}
+\item alle tussenkopjes springen in over de `parindent, en
+\item de eerste regel na een kopje springt ook in.
+\end{itemize}
+
+
+\section{Behandeling van koppen}
+\subsection{Sectie, subsectie, subsubsectie}
+\subsubsection{Elementaria}
+
+Het laten inspringen van koppen gaat door een positieve waarde voor de
+derde parameter van \verb.\@startsection. te specificeren. Door de
+vierde parameter positief te maken springt de eerste regel na de kop
+ook in.
+
+Omdat de tekst van de kopjes nu geen verdere kantlijn definieert hoeft
+er niet zo'n moeite gedaan te worden om die te plaatsen als
+in~`Artikel1'. Ik heb de normale \LaTeX-constructie van een vaste
+`skip' weer in ere hersteld; op drie-tiende `em' deze keer.
+
+\subsubsection{Complicaties}
+
+Om te voorkomen dat bij lange koppen de tekst alsnog een tweede
+kantlijn gaat defini"eren moest de \verb.\@hangfrom. die dit
+bewerkstelligt verwijderd worden. Bij volledig verwijderen, echter,
+zal de tweede regel van de kop tegen de linker kantlijn geplaatst
+worden. Ook niet de bedoeling.
+
+In de aanpak die ik gevolgd heb hangt de tekst nu aan de inspringing;
+het commando \verb.\@svsec. dat het nummer zet is gewoon in de tekst
+geplaatst.
+
+
+\subsection{Part}
+
+Het zou leuk zijn als de eerste regel na een `part'-kop ook insprong.
+Het al dan niet inspringen van deze regel wordt bestuurd door de
+schakelaar \verb.\@ifafterindent. waarop getest wordt in
+\verb.\@afterheading.. Normaal wordt inspringen voorkomen door deze
+schakelaar in `part' op onwaar te zetten.
+
+Het zal de perceptieve lezer duidelijk zijn wat ik gedaan heb om
+inspringen van de eerste regel na een `part' af te dwingen.
+
+\section{De samenvatting}
+
+In `Article' (maar niet in `Artikel1') wordt de samenvatting gezet
+door middel van de `quotation' omgeving. Dit, op zijn beurt, is een
+`list' met slechts een item, in dit geval de tekst van de
+samenvatting. Net als in~`Article' zou ik de samenvatting ingesprongen
+willen zien over de alineainspring. Dit lukt niet meer als de
+samenvatting als een `quotation' gezet wordt, aangezien de
+lijstinspringing (op het eerste nivo) de helft van de
+alineainspringing bedraagt.
+
+Ik heb er derhalve voor gekozen de samenvatting expliciet als een
+lijst te zetten, waarbij in het tweede argument van `list' (het
+argument waarin commando's meegegeven kunnen worden) de `leftmargin'
+op `unitindent' gezet wordt.
+
+\section{De inhoudsopgave}
+
+De inhoudsopgave wordt in `Artikel2' net zo gezet als in~`Artikel1',
+met het verschil dat de sectienummers nu niet links maar rechts
+lijnen. Dit in het kader van het beklemtonen van de tweede kantlijn.
+Hiertoe moest het commando `numberline' uit `LaTeX.tex' overgenomen en
+aangepast worden.
+
+Overigens is de tweede kantlijn in de inhoudsopgave verder naar rechts
+dan in de rest van het document. De inhoudsopgave dient dus liever
+niet op een tekstpagina te beginnen.
+
+Dat de tweede kantlijn verder naar rechts staat betekent overigens dat
+het woord `inhoudsopgave', dat als een sectiekop gezet wordt,
+voorafgegaan moet worden door een `skip' ter breedte van het verschil.
+
+
+
+\part{Veranderingen in Artikel3}
+
+Uitgaande van `Artikel1' was het kinderspel een stijl te maken die net
+zo strak links lijnend oogde, maar die bovendien geen
+alinea\-inspringing heeft en dit compenseert met een `parskip'.
+\begin{itemize}
+\item Er is gekozen voor een `parskip' ter grootte van de helft van de
+ `baselineskip'.
+\item De `topsep' in lijststructuren --~de witruimte boven en onder de
+ gehele lijst~-- is \emph{minus} de halve `parskip'; netto effect is
+ dat hier de helft van de witruimte komt die zich tussen alineas
+ bevindt.
+\item De grootte van de `unitindent' kon ongewijzigd blijven,
+ aangezien kopjes nog steeds op dezelfde wijze gezet worden.
+\item Het wit onder kopjes is op nul gezet. Dit betekent niet dat er
+ geen wit staat, want de `parskip' krijg je hoe dan ook kado.
+\end{itemize}
+Het geheel oogt wel aardig.
+
+\begin{thebibliography}{9}
+
+\bibitem{Inge}Inge Eijkhout, Gesprekken en correspondentie, 1989.
+
+\bibitem{Leslie}Leslie Lamport, \emph{\LaTeX, a document preparation
+ system}, Addison-Wesley, 1986.
+
+\bibitem{Miles}John Miles, \emph{Ontwerpen voor Desktop
+ Publishing\footnote{De Nederlandse uitgave is goedkoper dan de
+ Engelse, maar doet een zware aanslag op je ogen, door het soort
+ zetfout dat in \TeX\ onmogelijk zou kunnen voorkomen.}, Alles
+ over layout en typografie op de personal computer}, Uitgeverij
+ Mingus, Baarn~1988.
+
+\bibitem{Karel}Karel Treebus, \emph{Tekstwijzer, een gids voor het
+ grafisch verwerken van tekst}, SDU~uitgeverij, 1988.
+
+\end{thebibliography}
+
+
+\newpage
+\tableofcontents
+\listoftables
+\listoffigures
+
+\end{document}
+
+
+
+
+
+
diff --git a/macros/latex/contrib/ntgclass/brief.dtx b/macros/latex/contrib/ntgclass/brief.dtx
new file mode 100644
index 0000000000..96a1525bf0
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/brief.dtx
@@ -0,0 +1,2723 @@
+% \iffalse meta-comment
+%
+% % \iffalse meta-comment
+% %
+% % Copyright (C) 1990-2004 Nederlandstalige TeX Gebruikersgroep.
+% % All rights reserved.
+% %
+% % This file is part of the NTG document classes distribution
+% % ----------------------------------------------------------
+% %
+% % It may be distributed and/or modified under the
+% % conditions of the LaTeX Project Public License, either version 1.3
+% % of this license or (at your option) any later version.
+% % The latest version of this license is in
+% % http://www.latex-project.org/lppl.txt
+% % and version 1.3 or later is part of all distributions of LaTeX
+% % version 2003/12/01 or later.
+% %
+% % This work has the LPPL maintenance status "maintained".
+% %
+% % The Current Maintainer of this work is Johannes Braams.
+% %
+% % The list of all files belonging to the NTG document classes
+% % distribution is given in the file `manifest.txt.
+% %
+% % The list of derived (unpacked) files belonging to the distribution
+% % and covered by LPPL is defined by the unpacking scripts (with
+% % extension .ins) which are part of the distribution.
+% % \fi
+% \fi
+% \CheckSum{2200}
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+% \iffalse
+%% Copyright (C) 1994 -- 1999 by Victor Eijkhout \and Johannes Braams
+%% Based on letter.dtx version 1.2i
+%% Copyright (C) 1994 LaTeX3 project, Frank Mittelbach
+%% and Rainer Sch\"opf, all rights reserved.
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+%%
+% \section{Identification}
+%
+%
+% This document class can only be used with \LaTeXe, so we make
+% sure that an appropriate message is displayed when another \TeX{}
+% format is used.
+% \begin{macrocode}
+%<+brief>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+% \end{macrocode}
+%
+% Announce the Class name and its version.
+% \begin{macrocode}
+%<+brief>\ProvidesClass{brief}
+%<*driver>
+\ProvidesFile{brief.drv}
+%</driver>
+ [1999/03/03 v2.0r
+%<+brief> NTG LaTeX document class]
+% \end{macrocode}
+%
+% \section{The documentation driver file}
+%
+% We use the document class \cls{ltxdoc} which is also used to
+% format the \LaTeXe\ documentation.
+% \begin{macrocode}
+%<*driver>
+]
+\documentclass{ltxdoc}
+% \end{macrocode}
+%
+% We don't want everything to appear in the index.
+% \changes{v2.0c}{1994/06/15}{Reordered DoNotIndex list}
+% \changes{v2.0f}{1994/10/04}{Added a missing comma}
+% \begin{macrocode}
+\DoNotIndex{\@Alph,\@alph,\@arabic,\@badmath}
+\DoNotIndex{\@centercr}
+\DoNotIndex{\@empty,\@ignoretrue}
+\DoNotIndex{\@ixpt}
+\DoNotIndex{\@M,\@minus,\@ne,\@plus}
+\DoNotIndex{\\,\addtolength}
+\DoNotIndex{\advance}
+\DoNotIndex{\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
+\DoNotIndex{\bullet}
+\DoNotIndex{\cdot,\cr,\day,\DeclareOption}
+\DoNotIndex{\def,\DocInput,\documentclass}
+\DoNotIndex{\DoNotIndex,\egroup,\ifx,\else,\fi,\endtrivlist}
+\DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
+\DoNotIndex{\endlist,\everycr,\ExecuteOptions}
+\DoNotIndex{\filedate,\filename,\fileversion}
+\DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
+\DoNotIndex{\hsize,\hskip,\hspace,\hss,\ifcase,\or,\fi}
+\DoNotIndex{\ifvmode,\ifnum,\fi,\fi,\input}
+\DoNotIndex{\kern,\leavevmode,\let,\leftmark}
+\DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark}
+\DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
+\DoNotIndex{\NeedsTeXFormat,\newdimen}
+\DoNotIndex{\newpage,\nobreak,\noindent,\number}
+\DoNotIndex{\p@}
+\DoNotIndex{\pagestyle,\par}
+\DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
+\DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
+\DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font}
+\DoNotIndex{\rightmargin,\rlap,\rmfamily}
+\DoNotIndex{\roman,\setbox,\setcounter,\setlength}
+\DoNotIndex{\skip,\slshape,\space}
+\DoNotIndex{\trivlist,\typeout,\tw@}
+\DoNotIndex{\vskip,\vspace,\year,\z@}
+% \end{macrocode}
+% Produce a listing of the changes.
+% \begin{macrocode}
+\RecordChanges
+% \end{macrocode}
+% We use so many \file{docstrip} modules that we set the
+% \texttt{StandardModuleDepth} counter to 1.
+% \begin{macrocode}
+\setcounter{StandardModuleDepth}{1}
+% \end{macrocode}
+% The following command retrieves the date and version information
+% from the file.
+% \changes{v2.0c}{1994/06/15}{Removed remnant from \file{letter.dtx},
+% now get the file info from \file{bief.dtx}}
+% \begin{macrocode}
+\GetFileInfo{brief.drv}
+% \end{macrocode}
+% Some commonly used abbreviations
+% \begin{macrocode}
+\newcommand*{\Lopt}[1]{\textsf{#1}}
+\newcommand*{\Lenv}[1]{\textsf{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\cls}[1]{\texttt{#1}}
+\newcommand*{\Lcount}[1]{\textsl{\small#1}}
+\newcommand*{\pstyle}[1]{\textsl{#1}}
+% \end{macrocode}
+% We also want the full details.
+% \changes{v2.0c}{1994/06/15}{Removed another remnant of
+% \file{letter.dtx}}
+% \begin{macrocode}
+\begin{document}
+\DocInput{brief.dtx}
+\PrintIndex
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+% \changes{v2.0g}{1994/12/23}{Use \cs{newcommand*} instead of
+% \cs{newcommand} in most places}
+% \changes{v2.0l}{1995/08/10}{Use \cs{hb@xt@} instead of \cs{hbox}
+% \texttt{to}}
+% \changes{v2.0q}{1997/09/09}{Added a few more synonimes for commands}
+%
+%
+% \author{Victor Eijkhout \and Johannes Braams}
+%
+% \title{NTG Document Class \texttt{brief} for \LaTeX{} version 2e}
+%
+%
+% \maketitle
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% This file contains the document class \cls{brief} that was made
+% available by Working Group 13 of the NTG (Nederlandstalige \TeX\
+% Gebruikersgroep). It defines more commands than the standard
+% document class \cls{letter}, but a letter made with the
+% \cls{letter} document class is still processable with this
+% document class.
+%
+% \StopEventually
+%
+% \section{Initial Code}
+%
+% In this part we define a few comands that are used later on.
+%
+% \begin{macro}{\@ptsize}
+% This control sequence is used to store the second digit of the
+% pointsize we are typesetting in. So, normally, it's value is one
+% of 0, 1 or 2.
+% \begin{macrocode}
+%<*brief>
+\newcommand*\@ptsize{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@typhulp}
+% This switch is used to decide whether or not to put a small line
+% on the paper that is used to align the paper in a typewriter.
+% \begin{macrocode}
+\newif\if@typhulp
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@streepjes}
+% A switch to indicate if the `folding lines' should be printed
+% \begin{macrocode}
+\newif\if@streepjes
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@adresrechts}
+% This switch indicates if the addressing information is to be set
+% on the left or on the right side of the letter.
+% \begin{macrocode}
+\newif\if@adresrechts
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@elfinch}
+% A switch to remember whether we are using A4 or letter
+% paper. (possibly obsolete)
+% \begin{macrocode}
+\newif\if@elfinch
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Setting Paper Sizes}
+%
+% The variables |\paperwidth| and |\paperheight| should reflect the
+% physical paper size after trimming. For desk printer output this
+% is usually the real paper size since there is no post-processing.
+% \begin{macrocode}
+\DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}\@elfinchfalse}
+\DeclareOption{a5paper}
+ {\ClassWarning{brief}{Paper size A5 not supported, using A4}%
+ \setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}\@elfinchfalse}
+\DeclareOption{b5paper}
+ {\ClassWarning{brief}{Paper size B5 not supported, using A4}%
+ \setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}\@elfinchfalse}
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}\@elfinchtrue}
+\DeclareOption{USletter}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}\@elfinchtrue}
+\DeclareOption{legalpaper}
+ {\ClassWarning{brief}
+ {Paper size `legal' not supported, using `letter'}%
+ \setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}\@elfinchtrue}
+\DeclareOption{executivepaper}
+ {\ClassWarning{brief}
+ {Paper size `executive' not supported, using `letter'}%
+ \setlength\paperheight {10.5in}%
+ \setlength\paperwidth {7.25in}\@elfinchtrue}
+% \end{macrocode}
+%
+%
+% \subsection{Choosing the type size}
+%
+% The type size options are handled by defining |\@ptsize| to
+% contain the last digit of the size in question and branching on
+% |\ifcase| statements. This is done for historical reasons to stay
+% compatible with other packages that use the |\@ptsize| variable
+% to select special actions. It makes the declarations of size
+% options less than 10pt difficult, although one can probably use
+% \texttt{9} and \texttt{8} assuming that a class wont define both
+% \Lopt{8pt} and \Lopt{18pt} options.
+%
+% \begin{macrocode}
+\DeclareOption{10pt}{\renewcommand*\@ptsize{0}}
+\DeclareOption{11pt}{\renewcommand*\@ptsize{1}}
+\DeclareOption{12pt}{\renewcommand*\@ptsize{2}}
+% \end{macrocode}
+%
+%
+% \subsection{Two-side or one-side printing}
+%
+% Two-sided printing was not supported in the \LaTeX~2.09 version
+% of this documentclass.
+% \begin{macrocode}
+\if@compatibility
+ \DeclareOption{twoside}{\@latexerr{No 'twoside' layout for letters}%
+ \@eha}
+\else
+ \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+\fi
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+% \end{macrocode}
+%
+% \subsection{Draft option}
+%
+% If the user requests \Lopt{draft} we show any overfull boxes.
+% We could probably add some more interesting stuff to this option.
+% \begin{macrocode}
+\DeclareOption{draft}{\setlength\overfullrule{5pt}}
+\DeclareOption{final}{\setlength\overfullrule{0pt}}
+% \end{macrocode}
+%
+%
+% \subsection{Equation numbering on the left}
+%
+% The option \Lopt{leqno} can be used to get the equation numbers
+% on the left side of the equation.
+% \begin{macrocode}
+\DeclareOption{leqno}{\input{leqno.clo}}
+% \end{macrocode}
+%
+% \subsection{Flush left displays}
+%
+% The option \Lopt{fleqn} redefines the displayed math environmens
+% in such a way that they come out flush left, with an indentation
+% of |\mathindent| from the prevailing left margin.
+% \begin{macrocode}
+\DeclareOption{fleqn}{\input{fleqn.clo}}
+% \end{macrocode}
+%
+% \subsection{Typewriter alignment}
+%
+% \begin{macrocode}
+\DeclareOption{typhulp}{\@typhulptrue}
+\DeclareOption{geentyphulp}{\@typhulpfalse}
+% \end{macrocode}
+% \subsection{Folding lines}
+% It is possible to print `folding lines' on the far right side of
+% the paper.
+%
+% \begin{macrocode}
+\DeclareOption{streepjes}{\@streepjestrue}
+\DeclareOption{geenstreepjes}{\@streepjesfalse}
+% \end{macrocode}
+%
+% \subsection{Address placement}
+% The address information can be put either on the left or on the
+% right side of the letter
+%
+% \begin{macrocode}
+\DeclareOption{adreslinks}{\@adresrechtsfalse}
+\DeclareOption{adresrechts}{\@adresrechtstrue}
+% \end{macrocode}
+%
+% \subsection{Support for different languages}
+%
+% In the original document style \cls{brief} the options to support
+% the various languages were all dutch words. To be compatible with
+% both the old version of the document class and with the
+% recommended set of language options we have at least two options
+% for each language.
+%
+% First Dutch,
+% \begin{macrocode}
+\DeclareOption{nederlands}{\AtEndOfClass{\dutchbrief}}
+\DeclareOption{dutch} {\AtEndOfClass{\dutchbrief}}
+% \end{macrocode}
+% then British English,
+% \begin{macrocode}
+\DeclareOption{engels} {\AtEndOfClass{\englishbrief}}
+\DeclareOption{english} {\AtEndOfClass{\englishbrief}}
+% \end{macrocode}
+% American English,
+% \begin{macrocode}
+\DeclareOption{USengels} {\AtEndOfClass{\americanbrief}}
+\DeclareOption{american} {\AtEndOfClass{\americanbrief}}
+% \end{macrocode}
+% German
+% \begin{macrocode}
+\DeclareOption{duits} {\AtEndOfClass{\germanbrief}}
+\DeclareOption{german} {\AtEndOfClass{\germanbrief}}
+% \end{macrocode}
+% and finally french.
+% \begin{macrocode}
+\DeclareOption{frans} {\AtEndOfClass{\frenchbrief}}
+\DeclareOption{french} {\AtEndOfClass{\frenchbrief}}
+\DeclareOption{francais} {\AtEndOfClass{\frenchbrief}}
+% \end{macrocode}
+%
+% \section{Executing Options}
+%
+% Here we execute the default options to initialize certain
+% variables.
+% \begin{macrocode}
+\ExecuteOptions{a4paper,11pt,oneside,onecolumn,final,%
+ geentyphulp,geenstreepjes,adreslinks,%
+ nederlands}
+% \end{macrocode}
+%
+% The |\ProcessOptions| command causes the execution of the code
+% for every option \Lopt{FOO}
+% which is declared and for which the user typed
+% the \Lopt{FOO} option in his
+% |\documentclass| command. For every option \Lopt{BAR} he typed,
+% which is not declared, the option is assumed to be a global option.
+% All options will be passed as document options to any
+% |\usepackage| command in the document preamble.
+% \changes{v2.0h}{1994/12/30}{Added a \cs{relax} to prevent an
+% incomplete \cs{ifcase} error}
+% \begin{macrocode}
+\ProcessOptions\relax
+% \end{macrocode}
+% Now that all the options have been executed we can define the
+% user-level size changing commands. Their definition depends on
+% which of the \Lopt{10pt}, \Lopt{11pt} or \Lopt{12pt} options was
+% specified.
+%
+% \begin{macro}{\normalsize}
+% \begin{macro}{\@normalsize}
+%
+% The user level command for the main size is |\normalsize|.
+% Internally \LaTeX{} uses |\@normalsize| when it refers to the
+% main size. |\@normalsize| will be defined to work like
+% |\normalsize| if the latter is redefined from its default
+% definition (that just issues an error message). Otherwise
+% |\@normalsize| simply selects a 10pt/12pt size.
+%
+% The |\normalsize| macro also sets new values for\\
+% |\abovedisplayskip|, |\abovedisplayshortskip| and
+%
+% \begin{macrocode}
+\ifcase\@ptsize
+ \renewcommand*\normalsize{%
+ \@setfontsize\normalsize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\or
+ \renewcommand*\normalsize{%
+ \@setfontsize\normalsize\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\or
+ \renewcommand*\normalsize{%
+ \@setfontsize\normalsize\@xiipt{15}%
+ \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\fi
+% \end{macrocode}
+% Make |\@normalsize| a synonymn for |\normalsize|.
+% \begin{macrocode}
+\let\@normalsize\normalsize
+% \end{macrocode}
+%
+% We initially choose the normalsize font.
+% \begin{macrocode}
+\normalsize
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\small}
+%
+% This is similar to |\normalsize|.
+% \begin{macrocode}
+\ifcase\@ptsize
+ \newcommand*\small{%
+ \@setfontsize\small\@ixpt{11}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \belowdisplayskip \abovedisplayskip}
+\or
+ \newcommand*\small{%
+ \@setfontsize\small\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip}
+\or
+ \newcommand*\small{%
+ \@setfontsize\small\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footnotesize}
+%
+% This is similar to |\normalsize|.
+% \begin{macrocode}
+\ifcase\@ptsize
+ \newcommand*\footnotesize{%
+ \@setfontsize\footnotesize\@viiipt{9.5}%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \belowdisplayskip \abovedisplayskip}
+\or
+ \newcommand*\footnotesize{%
+ \@setfontsize\footnotesize\@ixpt{11}%
+ \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \belowdisplayskip \abovedisplayskip}
+\or
+ \newcommand*\footnotesize{%
+ \@setfontsize\footnotesize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scriptsize}
+% \begin{macro}{\tiny}
+% \begin{macro}{\large}
+% \begin{macro}{\Large}
+% \begin{macro}{\LARGE}
+% \begin{macro}{\huge}
+% \begin{macro}{\Huge}
+% These are all much simpler than the previous macros, they just
+% select a new fontsize, but leave the parameters for displays and
+% lists alone.
+% \begin{macrocode}
+\ifcase\@ptsize
+ \newcommand*\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+ \newcommand*\tiny{\@setfontsize\tiny\@vpt\@vipt}
+ \newcommand*\large{\@setfontsize\large\@xiipt{14}}
+ \newcommand*\Large{\@setfontsize\Large\@xivpt{18}}
+ \newcommand*\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+ \newcommand*\huge{\@setfontsize\huge\@xxpt{25}}
+ \newcommand*\Huge{\@setfontsize\Huge\@xxvpt{30}}
+\or
+ \newcommand*\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+ \newcommand*\tiny{\@setfontsize\tiny\@vipt\@viipt}
+ \newcommand*\large{\@setfontsize\large\@xiipt{14}}
+ \newcommand*\Large{\@setfontsize\Large\@xivpt{18}}
+ \newcommand*\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+ \newcommand*\huge{\@setfontsize\huge\@xxpt{25}}
+ \newcommand*\Huge{\@setfontsize\Huge\@xxvpt{30}}
+\or
+ \newcommand*\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+ \newcommand*\tiny{\@setfontsize\tiny\@vipt\@viipt}
+ \newcommand*\large{\@setfontsize\large\@xivpt{18}}
+ \newcommand*\Large{\@setfontsize\Large\@xviipt{22}}
+ \newcommand*\LARGE{\@setfontsize\LARGE\@xxpt{25}}
+ \newcommand*\huge{\@setfontsize\huge\@xxvpt{30}}
+ \let\Huge=\huge
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \section{Loading Packages}
+%
+% This class file does not load additional packages.
+%
+%
+% \section{Document Layout}
+% \label{sec:maincode}
+%
+% In this section we are finally dealing with the nasty typographical
+% details.
+%
+% \subsection{Fonts}
+%
+% We use two fixed fonts in these letters.
+%^^A possibly need to update for DC fonts in future?
+% \begin{macrocode}
+\newfont\refkopfont{cmssq8}
+\DeclareFixedFont\kleinvet{\encodingdefault}%
+ {\rmdefault}%
+ {\bfdefault}%
+ {\shapedefault}%
+ {7}
+% \end{macrocode}
+% \subsection{Paragraphing}
+%
+% \begin{macro}{\lineskip}
+% \begin{macro}{\normallineskip}
+% These parameters control \TeX's behaviour when two lines tend to
+% come too close together.
+% \begin{macrocode}
+\setlength\lineskip{1\p@}
+\setlength\normallineskip{1\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\baselinestretch}
+% This is used as a multiplier for |\baselineskip|. The default is
+% to {\em not\/} stretch the baselines.
+% \begin{macrocode}
+\renewcommand*\baselinestretch{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\parskip}
+% \begin{macro}{\parindent}
+% |\parskip| gives extra vertical space between paragraphs and
+% |\parindent| is the width of the paragraph indentation.
+% Letters are typeset without paragraph indentation.
+% \begin{macrocode}
+\setlength\parskip{0.7em \@plus .3em \@minus .2em}
+\setlength\parindent{0\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@lowpenalty}
+% \begin{macro}{\@medpenalty}
+% \begin{macro}{\@highpenalty}
+% The commands |\nopagebreak| and |\nolinebreak| put in penalties
+% to discourage these breaks at the point they are put in.
+% They use |\@lowpenalty|, |\@medpenalty| or |\@highpenalty|,
+% dependant on their argument.
+% \begin{macrocode}
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\clubpenalty}
+% \begin{macro}{\widowpenalty}
+% These penalties are use to discourage club and widow lines.
+% Because we use their default values we only show them here,
+% commented out.
+% \begin{macrocode}
+% \clubpenalty 150
+% \widowpenalty 150
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\displaywidowpenalty}
+% \begin{macro}{\predisplaypenalty}
+% \begin{macro}{\postdisplaypenalty}
+% Discourage (but not so much) widows in front of a math display
+% and forbid breaking directly in front of a display. Allow break
+% after a display without a penalty. Again the default values are
+% used, therefore we only show them here.
+% \begin{macrocode}
+% \displaywidowpenalty 50
+% \predisplaypenalty 10000
+% \postdisplaypenalty 0
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\interlinepenalty}
+% Allow the breaking of a page in the middle of a paragraph.
+% \begin{macrocode}
+% \interlinepenalty 0
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\brokenpenalty}
+% We allow the breaking of a page after a hyphenated line.
+% \begin{macrocode}
+% \brokenpenalty 0
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Page Layout}
+%
+% All margin dimensions are measured from a point one inch from the
+% top and lefthand side of the page.
+%
+% \subsubsection{Vertical spacing}
+%
+% \begin{macro}{\headheight}
+% \begin{macro}{\headsep}
+% The |\headheight| is the height of the box that will contain the
+% running head. The |\headsep| is the distance between the bottom
+% of the running head and the top of the text. |\topskip| is the
+% |\baselineskip| for the first line on a page.
+% \begin{macrocode}
+\setlength\headheight{37mm}
+\setlength\headsep {0mm}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\footskip}
+% The distance from the baseline of the box which contains the
+% running footer to the baseline of last line of text is controlled
+% by the |\footskip|.
+% Bottom of page:
+% \begin{macrocode}
+\setlength\footskip{25\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maxdepth}
+% \begin{macro}{\@maxdepth}
+% The \TeX\ primitive register |\maxdepth| has a function that is
+% similar to that of |\topskip|. The register |\@maxdepth| should
+% always contain a copy of |\maxdepth|. In both plain \TeX\ and
+% \LaTeX~2.09 |\maxdepth| had a fixed value of \texttt{4pt}; in
+% native \LaTeX2e\ mode we let the value depend on the typesize. We
+% set it so that |\maxdepth| $+$ |\topskip| $=$ typesize $\times
+% 1.5$. As it happens, in these classes |\topskip| is equal to the
+% typesize, therefor we set |\maxdepth| to half the value of
+% |\topskip|.
+% \begin{macrocode}
+\if@compatibility
+ \setlength\maxdepth{4\p@}
+\else
+ \setlength\maxdepth{.5\topskip}
+\fi
+\setlength\@maxdepth\maxdepth
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{The dimension of text}
+%
+% \begin{macro}{\textwidth}
+% \begin{macro}{\textheight}
+% The dimensions of the text are fixed; they are defined in the
+% \textsc{nen} norm which this class implements.
+%
+% \begin{macrocode}
+\setlength\textwidth{144mm}
+\setlength\textheight{197mm}
+\if@elfinch \addtolength\textheight{-17.6mm} \fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\rightskip}
+% \begin{macro}{\@rightskip}
+%
+% \begin{macrocode}
+\setlength\@rightskip{0cm \@plus 5cm}
+\setlength\rightskip{\@rightskip}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Margins}
+%
+% \begin{macro}{\oddsidemargin}
+% \begin{macro}{\evensidemargin}
+% \begin{macro}{\marginparwidth}
+% Again, these dimensions are based on the \textsc{nen} norm.
+% \begin{macrocode}
+\setlength\@tempdima{\paperwidth}
+\addtolength\@tempdima{-2in}
+\addtolength\@tempdima{-\textwidth}
+\setlength\oddsidemargin {7.6mm}
+\setlength\evensidemargin {\oddsidemargin}
+\setlength\marginparwidth {0\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\marginparsep}
+% \begin{macro}{\marginparpush}
+% The horizontal space between the main text and marginal notes is
+% determined by |\marginparsep|, the minimum vertical separation
+% between two marginal notes is controlled by |\marginparpush|.
+% \begin{macrocode}
+\setlength\marginparsep {0\p@}
+\setlength\marginparpush{0\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\topmargin}
+% The |\topmargin| is the distance between the top of `the
+% printable area' --which is 1 inch below the top of the paper--
+% and the top of the box which contains the running head.
+%
+% \begin{macrocode}
+\setlength\topmargin{-12.4mm}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The address field}
+%
+% The address information has to be put on a specific place.
+%
+% \begin{macro}{\vensterskip}
+% \begin{macro}{\@vensterskip}
+%
+% \begin{macrocode}
+\newdimen\vensterskip
+\setlength\vensterskip{50mm}
+\newdimen\@vensterskip
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Changing head and text heights}
+%
+% This class has a much higher head on the first page of a letter
+% than on subsequent pages.
+%
+% \begin{macro}{\@firstheadheight}
+% \begin{macro}{\@otherheadheight}
+% \begin{macro}{\@othertextheight}
+% \begin{macro}{\@otherheadsep}
+% \begin{macro}{\@vervolgsep}
+%
+% \begin{macrocode}
+\newdimen\@firstheadheight
+\newdimen\@otherheadheight
+\newdimen\@othertextheight
+\newdimen\@otherheadsep
+\newdimen\@vervolgsep
+\setlength\@otherheadsep{2mm}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@prepareerhoofden}
+%
+% \begin{macrocode}
+\def\@prepareerhoofden{%
+ \setlength\@vensterskip{\vensterskip}%
+ \addtolength\@vensterskip{-50mm}%
+ \setlength\@firstheadheight{\headheight}%
+ \setlength\@otherheadheight{\headheight}%
+ \setlength\@othertextheight{\textheight}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Information in the foot}
+%
+% We also reserve some space at the bottom of the paper to print
+% some information about the sender of the letter.
+%
+% \begin{macro}{\footsep}
+% The distance between the text and this foot information
+% \begin{macrocode}
+\newdimen\footsep
+\setlength\footsep{15mm}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Footnotes}
+%
+% \begin{macro}{\footnotesep}
+% |\footnotesep| is the height of the strut placed at the beginning
+% of every footnote. It equals the height of a normal
+% |\footnotesize| strut in this
+% class, thus no extra space occurs between footnotes.
+% \begin{macrocode}
+\setlength\footnotesep{12\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footins}
+% |\skip\footins| is the space between the last line of the main
+% text and the top of the first footnote.
+% \begin{macrocode}
+\setlength{\skip\footins}{10\p@ \@plus 2\p@ \@minus 4\p@}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Page Styles}
+%
+% The page style \pstyle{foo} is defined by defining the command
+% |\ps@foo|. This command should make only local definitions.
+% There should be no stray spaces in the definition, since they
+% could lead to mysterious extra spaces in the output (well, that's
+% something that should be always avoided).
+%
+% \begin{macro}{\@evenhead}
+% \begin{macro}{\@oddhead}
+% \begin{macro}{\@evenfoot}
+% \begin{macro}{\@oddfoot}
+% The |\ps@...| command defines the macros |\@oddhead|,
+% |\@oddfoot|, |\@evenhead|, and |\@evenfoot| to define the running
+% heads and feet---e.g., |\@oddhead| is the macro to produce the
+% contents of the heading box for odd-numbered pages. It is called
+% inside an |\hbox| of width |\textwidth|.
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Marking conventions}
+%
+% To make headings determined by the sectioning commands, the page
+% style defines the commands |\chaptermark|, |\sectionmark|,
+% \ldots, where |\chaptermark{|\meta{TEXT}|}| is called by
+% |\chapter| to set a mark, and so on.
+%
+% The |\...mark| commands and the |\...head| macros are defined
+% with the help of the following macros. (All the |\...mark|
+% commands should be initialized to no-ops.)
+%
+% \LaTeX{} extends \TeX's |\mark| facility by producing two kinds
+% of marks, a `left' and a `right' mark, using the following
+% commands:
+% \begin{flushleft}
+% |\markboth{|\meta{LEFT}|}{|\meta{RIGHT}|}|: Adds both marks.
+%
+% |\markright{|\meta{RIGHT}|}|: Adds a `right' mark.
+%
+% |\leftmark|: Used in the |\@oddhead|, |\@oddfoot|, |\@evenhead|
+% or |\@evenfoot| macros, it gets the current `left'
+% mark. |\leftmark| works like \TeX's |\botmark|
+% command.
+%
+% |\rightmark|: Used in the |\@oddhead|, |\@oddfoot|, |\@evenhead|
+% or |\@evenfoot| macros, it gets the current
+% `right' mark. |\rightmark| works like \TeX's
+% |\firstmark| command.
+% \end{flushleft}
+%
+% The marking commands work reasonably well for right marks
+% `numbered within' left marks--e.g., the left mark is changed by a
+% |\chapter| command and the right mark is changed by a |\section|
+% command. However, it does produce somewhat anomalous results if
+% two |\markboth|'s occur on the same page.
+%
+%
+% Commands like |\tableofcontents| that should set the marks in some
+% page styles use a |\@mkboth| command, which is |\let| by the
+% pagestyle command (|\ps@...|) to |\markboth| for setting the
+% heading or to |\@gobbletwo| to do nothing.
+%
+%
+% \begin{macrocode}
+% %%%\mark{{}{}} % Initializes TeX's marks <--- can vanish
+% \end{macrocode}
+%
+% \subsubsection{Defining the page styles}
+% \label{sec:pagestyle}
+%
+% The pagestyles \pstyle{empty} and \pstyle{plain} are defined in
+% the \LaTeX{} kernel (\file{ltpage.dtx}), but these definitions
+% are changed to a simpler version for this document class.
+%
+% \begin{macro}{\ps@headings}
+% The definition of the page style \pstyle{headings} has to be
+% different for two sided printing than it is for one sided
+% printing.
+%
+% \begin{macrocode}
+\if@twoside
+ \def\ps@headings{%
+% \end{macrocode}
+% The running feet contain some information about the sender of the
+% letter. The feet aer the same for even and odd pages.
+% \begin{macrocode}
+ \def\@oddfoot{\voetregel\hss}%
+ \let\@evenfoot\@oddfoot
+% \end{macrocode}
+% The running head contains some information about this letter. The
+% head is the same for even and odd pages.
+% \begin{macrocode}
+ \def\@oddhead{%
+ \vbox to \@otherheadheight
+ {\vervolghoofd\vfil
+ \if@streepjes\streepjes{\@firstheadheight}\fi}\hss}
+ \let\@evenhead\@oddhead}
+% \end{macrocode}
+% For one sided printing we don't need to define |\@evenhead| so
+% the definition is somewhat simpler.
+% \changes{v2.0e}{1994/07/12}{Removed a typo (\cs{othertheadheight})}
+% \begin{macrocode}
+\else
+ \def\ps@headings{%
+ \def\@oddfoot{\voetregel\hss}%
+ \def\@oddhead{%
+ \vbox to \@otherheadheight
+ {\vervolghoofd\vfil
+ \if@streepjes\streepjes{\@otherheadheight}\fi}\hss}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\ps@firstpage}
+% On the first page the head contains much more than on other
+% pages, therefore the height of the head and text need to be
+% adapted.
+% \begin{macrocode}
+\def\ps@firstpage{%
+ \global\headheight=\@otherheadheight
+ \global\textheight=\@othertextheight %?? werkt dit ??
+ \global\headsep=\@otherheadsep
+ \def\@oddhead{\vbox to \@firstheadheight
+ {\briefhoofd\vfil
+ \if@streepjes\streepjes{\@firstheadheight}\fi}%
+ \hss}
+ \def\@evenhead{}
+ \def\@oddfoot{\voetregel\hss} \let\@evenfoot\@oddfoot}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@empty}
+% The definition of the page style \pstyle{empty} is simple:
+% No running head or foot at all.
+% \begin{macrocode}
+\def\ps@empty{%
+ \let\@oddfoot\@empty\let\@oddhead\@empty
+ \let\@evenfoot\@empty\let\@evenhead\@empty}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@plain}
+% The definition of the page style \pstyle{plain} is again simple.
+% \changes{v2.0l}{1995/08/10}{replace \cs{rmfamily} with
+% \cs{normalfont} (PR 1578)}
+% \begin{macrocode}
+\def\ps@plain{%
+ \let\@oddhead\@empty
+ \def\@oddfoot{\normalfont\hfil\thepage}%
+ \def\@evenfoot{\normalfont\hfil\thepage}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Document Markup}
+%
+% \subsection{Global Declarations}
+%
+% The following declarations, shown with examples, give information
+% about the sender:
+% \begin{itemize}
+% \item |\name{Dr. L. User}| : to be used for the return address on
+% the envelope.
+% \item |\signature{Larry User}| : goes after the closing.
+% \item |\address{3245 Foo St.\\Gnu York}| : used as the return
+% address in the
+% letter and on the envelope. If not declared, then an
+% institutional standard address is used.
+% \item |\location{Room 374}| : Acts as modifier to the standard
+% institutional address.
+% \item |\telephone{(415)123-4567}| : Just in case some style puts it
+% on the letter.
+% \end{itemize}
+%
+% \begin{macro}{\name}
+% \begin{macro}{\fromname}
+% \begin{macrocode}
+\def\name#1{\def\fromname{#1}}
+\def\fromname{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ondertekening}
+% \begin{macro}{\signature}
+% \begin{macro}{\fromsig}
+% This macro stores the signature.
+% \changes{v2.0b}{1994/06/05}{Can't use (re)newcommand for
+% \cs{fromsig} as that breaks the test against \cs{@empty}}
+% \begin{macrocode}
+\newcommand*\ondertekening[1]{\def\fromsig{#1}}
+\def\fromsig{}
+\let\signature\ondertekening
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\address}
+% \begin{macrocode}
+\newcommand*\address[1]{\maakbriefhoofd*{}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\location}
+% \begin{macro}{\fromlocation}
+% \begin{macrocode}
+\newcommand*{\location}[1]{\def\fromlocation{#1}}
+\def\fromlocation{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\telephone}
+% \begin{macro}{\telephonenum}
+% \begin{macrocode}
+\newcommand*{\telephone}[1]{\def\telephonenum{#1}}
+\def\telephonenum{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\makelabels}
+% The |\makelabels| declaration causes mailing labels to be made.
+% \begin{macrocode}
+\newcommand*{\makelabels}{%
+% \end{macrocode}
+% At the beginning of the document, we need to activate the
+% |\@mlabel| and |\@startlabels| commands, as well as write
+% |\@startlabels| to the |.aux| file.
+% \begin{macrocode}
+ \AtBeginDocument{%
+ \let\@startlabels\startlabels
+ \let\@mlabel\mlabel
+ \if@filesw
+ \immediate\write\@mainaux{\string\@startlabels}\fi}%
+% \end{macrocode}
+% At the end of the document we need to write |\clearpage| to the
+% |.aux| file.
+% \begin{macrocode}
+ \AtEndDocument{%
+ \if@filesw\immediate\write\@mainaux{\string\clearpage}\fi}}
+% \end{macrocode}
+% |\makelabels| is allowed only before the |\begin{document}|
+% command.
+% \begin{macrocode}
+\@onlypreamble\makelabels
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{The generic letter commands}
+%
+% \begin{environment}{brief}
+% The \Lenv{brief} environment creates a new letter, starting from
+% page 1. (The first page is unnumbered.) It has a single
+% argument, which is the adressee and his address, as in
+%\begin{verbatim}
+% \begin{brief}{Sam Jones \\
+% Institute for Retarded Study\\
+% Princeton, N.J.}
+%\end{verbatim}
+% Local declarations, such as |\address|, can follow the
+% |\begin{brief}|.
+% \begin{macrocode}
+\newenvironment{brief}[1]
+ {\newpage
+ \if@twoside \ifodd\c@page
+ \else\thispagestyle{empty} \hbox{}\newpage\fi
+ \fi
+ \c@page\@ne
+ \interlinepenalty=200 % smaller than the TeXbook value
+% \end{macrocode}
+% The |\leavevmode| and |\ignorespaces| commands are there for
+% protecting against an empty argument.
+% \begin{macrocode}
+ \@processto{\leavevmode\ignorespaces #1}%
+% \end{macrocode}
+% Now we can start filling in the various fields in the references
+% line. First the adressee.
+% \begin{macrocode}
+ \@defrefveld{\@Ad}{\geadresseerdetekst}{\toname}
+% \end{macrocode}
+% Then the date. When nothing was specified we use |\vandaag|.
+% \begin{macrocode}
+ \ifdim\wd\@Dt=0cm \@defrefveld{\@Dt}{\datumtekst}{\vandaag}\fi
+% \end{macrocode}
+% Now we can prepare the letterheads. It couldn't be done earlier
+% because the user can specify that he uses a different kind of
+% `window envelope'.
+% \begin{macrocode}
+ \@prepareerhoofden
+% \end{macrocode}
+% We may need to adapt the height of the head and the text body on
+% the following pages. Therefore we measure the height of the head
+% on those pages.
+% \begin{macrocode}
+ {\setbox\@tempboxa\vervolghoofd
+ \@tempdima\ht\@tempboxa
+ \advance\@tempdima by -\@otherheadheight
+ \ifdim\@tempdima>0\p@
+ \global\advance\@otherheadheight by \@tempdima
+ \global\advance\@othertextheight by -\@tempdima
+ \fi}
+% \end{macrocode}
+% We have to do the same for the foot of the letter.
+% \begin{macrocode}
+ {\setbox\@tempboxa=\vbox{\voetregel}
+ \global\footskip=\ht\@tempboxa
+ \global\advance\footskip by \footsep}%
+ }
+% \end{macrocode}
+% The end of the environment possibly writes the address
+% information on the \file{.aux} file.
+% \changes{v2.0g}{1994/12/23}{No longer redefine \cs{protect} but use
+% one of the available settings}
+% \begin{macrocode}
+ {\stopletter\@@par\pagebreak\@@par
+ \if@filesw
+ \begingroup
+ \let\\=\relax
+ \let\protect\@unexpandable@protect
+ \immediate\write\@auxout
+ {\string\@mlabel{\returnaddress}{\toname\\\toaddress}}%
+ \endgroup
+ \fi}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{letter}
+% The \Lenv{letter} environment is a synonime for the \Lenv{brief}
+% environment, to provide compatibility with the standard
+% \file{letter} document class.
+% \begin{macrocode}
+\let\letter\brief
+\let\endletter\endbrief
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\@processto}
+% \begin{macro}{\@xproc}
+% \begin{macro}{\@yproc}
+% |\@processto| gets the |\toname| and |\toaddress| from the letter
+% environment's macro argument. |\@xproc| and |\@yproc| are auxiliary
+% macros.
+% \begin{macrocode}
+\long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty
+ \else \@yproc #1@@@\fi}
+\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
+\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\antwoordadres}
+% The command |\antwoordadres| takes the return address as an
+% argument. The various parts of the address should be separated by
+% |\\|, which will be turned into bullets.
+% \begin{macrocode}
+\newif\if@antwoordadres
+\newcommand*\antwoordadres[1]{%
+ \@antwoordadrestrue\renewcommand*\@antwoordadres{#1}}
+\newcommand*\@antwoordadres{}
+\let\replyaddress\antwoordadres
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The address window}
+%
+% The address for the letter will be placed in such a way that a
+% `window envelope' can be used to send the letter.
+%
+% \begin{macro}{\adresveldbreedte}
+% The width of the address window.
+% \begin{macrocode}
+\newdimen\adresveldbreedte
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\adresveld}
+% This command formats the address window.
+% \begin{macrocode}
+\newcommand*{\adresveld}{%
+ \hbox{}\kern-\topskip
+ \kern\@vensterskip
+ \begingroup
+% \end{macrocode}
+% Compute the width of the address window
+% \begin{macrocode}
+ \if@adresrechts
+ \setlength\adresveldbreedte{4\refveldbreedte}%
+ \addtolength\adresveldbreedte{-76mm}%
+ \def\@tempa{\moveright 76mm}%
+ \else
+ \let\@tempa\relax
+ \setlength\adresveldbreedte{83mm}%
+ \fi
+% \end{macrocode}
+% Store the address in a box.
+% \changes{v2.0m}{1995/11/29}{Set both \cs{parskip} and \cs{parindent}
+% to zero in \cs{adresveld}}
+% \changes{v2.0n}{1996/04/01}{Repaired a typo (\cs{parksip})}
+% \begin{macrocode}
+ \setbox\@tempboxa\vtop{%
+ \hsize\adresveldbreedte
+ \@normalsize
+ \parindent\z@\parskip\z@
+ \rightskip0\p@\@plus\adresveldbreedte
+ \let\\\@nobreakcr \toname \\ \toaddress}
+% \end{macrocode}
+% Format the return address if one was given.
+% \changes{v2.0q}{1997/09/08}{Put \cs{textbullet} in a group to keep
+% the font change local}
+% \begin{macrocode}
+ {\baselineskip\z@\lineskip\z@
+ \if@antwoordadres
+ \@tempa\vbox to \z@{%
+ \hb@xt@\adresveldbreedte{%
+ \kleinvet
+ \def\\{\unskip\enspace{\textbullet}\enspace\ignorespaces}%
+ \@antwoordadres\hfil}
+ \kern2\p@\hrule \vss}
+ \fi
+% \end{macrocode}
+% Print a small rule as typing aid if required.
+% \begin{macrocode}
+ \if@typhulp
+ \@tempa\llap{\vbox to \z@{\vskip9mm\streepje\vss}}
+ \fi
+% \end{macrocode}
+% And finally print the address information. Note that this way of
+% position the box which contains the address information has the
+% advantage that no matter how high or deep the box is, the
+% following information will always be printed in the same spot on
+% the paper.
+% \begin{macrocode}
+ \kern9mm \kern-\ht\@tempboxa \@tempdima=\dp\@tempboxa
+ \@tempa\box\@tempboxa \kern-\@tempdima
+ \vskip31mm}\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The reference line}
+%
+% \begin{macro}{\refveldbreedte}
+% The width of the various fields in this line. It is determined in
+% \textsc{nen}~\oldstylenums{3516}
+% \begin{macrocode}
+\newdimen\refveldbreedte
+\setlength\refveldbreedte{38mm}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@defrefveld}
+% A macro to help in defining the various fields.
+% \begin{macrocode}
+\def\@defrefveld#1#2#3{\setbox#1\@refveld{#2}{#3}}
+% \end{macrocode}
+% \begin{macro}{\@refveld}
+% The macro |\@refveld| stores the formatted field in a box.
+% \changes{v2.0m}{1995/11/29}{Also set \cs{parindent} to zero}
+% \begin{macrocode}
+\def\@refveld#1#2{%
+ \vtop{\hsize\refveldbreedte
+ \parskip\z@\parindent\z@
+ \everypar{}%
+ \lineskiplimit\z@\baselineskip12\p@
+ \lineskip\z@
+ \rightskip0\p@ \@plus \refveldbreedte \@minus .5\refveldbreedte
+ \vbox{\refkopfont\baselineskip10\p@#1\@@par}
+ \kern2\p@
+ \strut #2}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@UB}
+% \begin{macro}{\@UK}
+% \begin{macro}{\@OK}
+% \begin{macro}{\@Dt}
+% We allocate four box registers to store the four fields in
+% \begin{macrocode}
+\newbox\@UB \newbox\@UK \newbox\@OK \newbox\@Dt
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\uwbriefvan}
+% The command|\uwbriefvan| can be used to show the date of the
+% letter to which your letter is an answer
+% \begin{macrocode}
+\newcommand*\uwbriefvan[1]{\@defrefveld{\@UB}{\uwbrieftekst}{#1}}
+\let\yourletterof\uwbriefvan
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\uwkenmerk}
+% The command |\uwkenmerk| can be used to show the reference of the
+% letter to which your letter is an answer
+% \begin{macrocode}
+\newcommand*\uwkenmerk[1]{\@defrefveld{\@UK}{\uwkenmerktekst}{#1}}
+\let\yourreference\uwkenmerk
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\onskenmerk}
+% Store our reference in a box register.
+% \begin{macrocode}
+\newcommand*\onskenmerk[1]{\@defrefveld{\@OK}{\onskenmerktekst}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\datum}
+% To store the date in a box register. When the user gives an empty
+% argument no date will be printed. When he doesn't use |\datum| he
+% will get today's date.
+% \begin{macrocode}
+\newcommand*\datum[1]{\def\@tempa{}\def\@tempb{#1}%
+ \ifx\@tempa\@tempb
+ \setbox\@Dt\hbox{ }%
+ \else
+ \@defrefveld{\@Dt}{\datumtekst}{#1}%
+ \fi}
+\let\date\datum
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\referentieregel}
+% This collects all the information for the reference line.
+% \begin{macrocode}
+\def\referentieregel{\hbox
+ {\hb@xt@\refveldbreedte{\copy\@UB\hfil}%
+ \hb@xt@\refveldbreedte{\copy\@UK\hfil}%
+ \hb@xt@\refveldbreedte{\copy\@OK\hfil}%
+ \hb@xt@\refveldbreedte{\copy\@Dt\hfil}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vervolgreferentieregel}
+% On the second and following pages a simple reference line can be
+% printed. It contains the address information, the date and the
+% page number.
+% \begin{macro}{\@Ad}
+% For this purpose we need to allocate another box register.
+% \begin{macrocode}
+\newbox\@Ad
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\def\vervolgreferentieregel{%
+ \hbox{%
+ \hb@xt@\refveldbreedte{\copy\@Ad\hfil}%
+ \hskip\refveldbreedte
+ \hb@xt@\refveldbreedte{\copy\@Dt\hfil}%
+ \@refveld{\bladnummertekst}{\thepage}\hss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The headers and footers}
+%
+% \begin{macro}{\briefhoofd}
+% \begin{macro}{\vervolghoofd}
+% The headings are empty by default.
+% \begin{macrocode}
+\newcommand*\briefhoofd{}
+\newcommand*\vervolghoofd{\vbox{}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\maakbriefhoofd}
+% The usage of this command creates non-empty headers.
+% \begin{macrocode}
+\newcommand*\maakbriefhoofd
+ {\@ifstar {\@kortvervolgbriefhoofd}{\@langvervolgbriefhoofd}}
+\let\makeheader\maakbriefhoofd
+% \end{macrocode}
+%
+% \begin{macro}{\@kortvervolgbriefhoofd}
+% This creates a shortened heading for following pages
+% \begin{macrocode}
+\newcommand*\@kortvervolgbriefhoofd[2]{%
+ \@maakbriefhoofd{#1}{#2}
+ \def\vervolghoofd{%
+ \vbox{\hsize=4\refveldbreedte
+ \hb@xt@\hsize{\Large \normalfont\sffamily #1\strut\hfil}
+ \hrule \kern2mm \vervolgreferentieregel}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@langvervolgbriefhoofd}
+% This creates a long heading for following pages by just using
+% |\briefhoofd|.
+% \begin{macrocode}
+\newcommand*\@langvervolgbriefhoofd[2]{
+ \@maakbriefhoofd{#1}{#2}
+ \def\vervolghoofd{%
+ \vbox{\briefhoofd\vskip2mm
+ \vervolgreferentieregel
+ \vbox{}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@maakbriefhoofd}
+% This was used in the two preceding macros; it defines
+% |\briefhoofd|.
+% \begin{macrocode}
+\newcommand*\@maakbriefhoofd[2]{\def\briefhoofd{%
+ \vbox{\hsize=4\refveldbreedte
+ \hb@xt@\hsize{\Large \normalfont\sffamily #1\strut\hfil}
+ \hrule
+ \moveright 3\refveldbreedte\@refveld{\strut #2}{}
+ \vbox{}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@voetruimte}
+% A box to store the footer in.
+% \begin{macrocode}
+\newbox\@voetruimte
+\setbox\@voetruimte=\hbox{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@voetteller}
+% We need to know how many items are placed in the footer.
+% \begin{macrocode}
+\newcount\@voetteller
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\voetregel}
+% |\voetregel| just copies the box |\@voetruimte|.
+% \begin{macrocode}
+\newcommand*\voetregel{\copy\@voetruimte}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\voetitem}
+% A command to add an information field to the footer.
+% \begin{macrocode}
+\newcommand*\voetitem[2]{%
+ \advance\@voetteller by 1
+ \setbox\@voetruimte\hb@xt@4\refveldbreedte{%
+ \unhbox\@voetruimte
+ \ifcase\@voetteller \relax \or \relax \or \hfil \else \hfill
+ \fi
+ \@refveld{#1}{#2}\hskip0\p@ \@plus 3\refveldbreedte}}
+\let\footitem\voetitem
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The little rules}
+%
+% \begin{macro}{\streepje}
+% A shorthand for one little rule.
+% \changes{v2.0q}{1997/09/09}{Make the `streepje's a little smaller}
+% \begin{macrocode}
+\newcommand*\streepje{\hb@xt@2mm{\rule{2mm}{.1pt}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\streepjes}
+% This prints the folding rules
+% \begin{macrocode}
+\newcommand*\streepjes[1]{%
+ \vbox to \z@{%
+% \end{macrocode}
+% We have to backup to a position 13mm below the edge of the paper.
+% \begin{macrocode}
+ \kern-#1\relax
+ \hb@xt@\textwidth{%
+% \end{macrocode}
+% Then we can print a rule on the left side of the paper, half way
+% down to align for a perforator.
+% \begin{macrocode}
+ \llap{\perfstreepje\kern24mm}\hfill
+% \end{macrocode}
+% The folding rules are printed on the right hand side of the paper.
+% \begin{macrocode}
+ \rlap{\kern24mm\vouwstreepjes}}
+ \vss}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\perfstreepje}
+% Prints a |\streepje| halfway down the paper. A4 paper is 297 mm
+% high; we start from a position 13mm below the edge of the paper.
+% Hence the |\kern 135mm|.
+% \begin{macrocode}
+\newcommand*\perfstreepje{\vtop{\kern\z@ \kern 135mm \streepje}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vouwstreepjes}
+% This prints two folding rules.
+% \changes{v2.0q}{1997/09/09}{Change the positioning of the
+% `streepje's a little}
+% \begin{macrocode}
+\newcommand*\vouwstreepjes{%
+ \vtop{\kern\z@
+ \kern 95mm %% 108-13
+ \streepje %% denk maar dat dit geen dikte heeft
+ \kern 45mm %% 155-150
+ \streepje}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Page breaking control}
+%
+% \begin{macro}{\stopbreaks}
+% \begin{macrocode}
+\def\stopbreaks{\interlinepenalty \@M
+ \def\par{\@@par\nobreak}\let\\=\@nobreakcr
+ \let\vspace\@nobreakvspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\nobreakvspace}
+% \begin{macro}{\nobreakvspacex}
+% \begin{macro}{\nobreakcr}
+% \begin{macrocode}
+\def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
+
+\def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else
+ \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
+% \end{macrocode}
+%
+% \changes{v2.0p}{1997/03/02}{Added setting of \cs{reserved@e} and
+% \cs{reserved@f} as this is now needed for \LaTeX.}
+% \begin{macrocode}
+\def\@nobreakcr{%
+ \let\reserved@e\relax
+ \let\reserved@f\relax
+ \vadjust{\nobreak}\@ifstar{\@xnewline}{\@xnewline}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\startbreaks}
+% \begin{macrocode}
+\def\startbreaks{\let\\=\@normalcr
+ \interlinepenalty 200\def\par{\@@par\penalty 200\relax}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\opening}
+% Text is begun with the |\opening| command, whose argument
+% generates the salutation, as in
+%\begin{verbatim}
+% \opening{Dear Henry,}
+%\end{verbatim}
+% This should produce everything up to and including the `Dear Henry,'
+% and a \par command that follows. Since there's a |\vfil| at the
+% bottom of every page, it can add vertical fil to position a
+% short letter. It should use the following commands:
+% \begin{itemize}
+% \item |\toname| : name part of 'to' address.
+% Will be one line long.
+% \item |\toaddress| : address part of 'to' address.
+% The lines separated by |\\|.
+% \item |\fromname| : name of sender.
+% \item |\fromaddress| : argument of current |\address|
+% declaration--
+% null if none. Should use standard institutional
+% address if null.
+% \item |\fromlocation| : argument of current |\location|
+% declaration--null if none.
+% \item |\telephonenum| : argument of current |\telephone|
+% declaration--null if none.
+% \end{itemize}
+% \begin{macrocode}
+\newcommand*\opening[1]{%
+ \thispagestyle{firstpage}%
+ \adresveld
+ \prevdepth=-1000\p@ \vskip-2\p@ %% ????
+ \referentieregel
+ \@dosubject #1\par\nobreak}
+% \end{macrocode}
+%
+% \begin{macro}{\@dosubject}
+% This prints the subject of the letter if one was specified.
+% \begin{macrocode}
+\def\@dosubject{%
+ \ifx\@empty\@subject
+ \else
+ \par\noindent
+ \parbox[t]{\textwidth}
+ {\@hangfrom{\refkopfont \betrefttekst \enspace}%
+ \normalfont\rmfamily\ignorespaces \@subject\strut}%
+ \par
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\afsluiting}
+% \begin{macro}{\closing}
+% The body of the letter follows, ended by a |\afsluiting| command,
+% as in
+%\begin{verbatim}
+% \afsluiting{Yours truly,}
+%\end{verbatim}
+% This commands generates the closing matter, and the signature.
+% An obvious thing to do is to use a |\parbox| for the closing
+% and the signature. Should use the following:
+% \begin{itemize}
+% \item |\fromsig| : argument of current |\signature| declaration
+% or, if null, the |\fromname|.
+% \item |\stopbreaks| : a macro that inhibits page breaking.
+% \end{itemize}
+% \changes{v2.0k}{1995/06/01}{removed a \cs{noindent} which caused an
+% anomalous space to appear in the output}
+% \begin{macrocode}
+\newcommand*\afsluiting[1]{\par\nobreak\vspace{\parskip}%
+ \stopbreaks
+ \ifx\@empty\fromsig
+ \def\ondertekening##1{\def\fromsig{##1}\@afsluiting{#1}}%
+ \else
+ \@afsluiting{#1}%
+ \fi}
+\let\closing\afsluiting
+\def\open@af{\vtop\bgroup\hsize.3\textwidth \raggedright}
+% \end{macrocode}
+% The internal command |\@afsluiting| takes care of printing the
+% closing text.
+% \changes{v2.0j}{1994/12/31}{Don't put an \cs{hbox} of \cs{textwidth}
+% inside a \cs{parbox} of .5\cs{textwidth}}
+% \changes{v2.0k}{1995/06/02}{inserted the \cs{noindent} which was
+% removed from \cs{afsluiting}}
+% \begin{macrocode}
+\newcommand*\@afsluiting[1]{%
+ \def\en{\strut\egroup\open@af}%
+ \let\and\en
+ \noindent
+ \parbox{.5\textwidth}{%
+ \raggedright \ignorespaces #1\\[6\medskipamount]%
+% \end{macrocode}
+% \changes{v2.0q}{1997/09/09}{Added \cs{leavevmode} to get the
+% signatures on one line}
+% \begin{macrocode}
+ \leavevmode\open@af \fromsig \strut\egroup}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\smallskipamount}
+% \begin{macro}{\mdeskipamount}
+% \begin{macro}{\bigskipamount}
+% Of these three, only |\medskipmount| is actually used above.
+% \begin{macrocode}
+%\smallskipamount=.5\parskip
+\medskipamount=\parskip
+%\bigskipamount=2\parskip
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\betreft}
+% \begin{macro}{\re}
+% The command |\betreft| (|\re|) stores the subject of the letter.
+% \changes{v2.0b}{1994/06/05}{Can't use (re)newcommand for
+% \cs{@subject} as that breaks the test against \cs{@empty}}
+% \begin{macrocode}
+\newcommand*\betreft[1]{\def\@subject{#1}}
+\let\onderwerp\betreft
+\let\subject\betreft
+\def\@subject{}
+\let\re\betreft
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cc}
+% After the |\closing| you can put arbitrary stuff, which is typeset
+% with zero |\parindent| and no page breaking. Commands designed
+% for use after the closing are:
+% \begin{verbatim}
+% \cc{Tinker\\Evers\\Chance}
+%\end{verbatim}
+% which produces:\\
+% \begin{tabular}{ll}
+% cc: & Tinker\\
+% & Evers\\
+% & Chance
+% \end{tabular}\\
+% Note the obvious use of |\parbox|.
+% \changes{v2.0l}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}; remove \cs{rm}}
+% \begin{macrocode}
+\newcommand*{\cc}[1]{\par\noindent
+ \parbox[t]{\textwidth}{\@hangfrom{\normalfont\ccname: }%
+ \ignorespaces #1\strut}\par}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bijlage}
+% \begin{macro}{\bijlagen}
+% \begin{macro}{\encl}
+%\begin{verbatim}
+% \bijlagen{Foo(2)\\Bar}
+%\end{verbatim}
+% which produces:\\
+% \begin{tabular}{ll}
+% bijlagen: & Foo(2)\\
+% & Bar
+% \end{tabular}
+% \changes{v2.0l}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}; remove \cs{rm}}
+% \begin{macrocode}
+\newcommand*{\bijlage}[1]{%
+ \par\noindent
+ \parbox[t]{\textwidth}{\@hangfrom{\normalfont\bijlagetekst\ }%
+ \ignorespaces #1\strut}\par}
+\newcommand*{\bijlagen}[1]{%
+ \par\noindent
+ \parbox[t]{\textwidth}{\@hangfrom{\normalfont\bijlagentekst\ }%
+ \ignorespaces #1\strut}\par}
+\let\encl\bijlagen
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ps}
+% The only thing |\ps| needs to do is call |\startbreaks|,
+% which allows page breaking again.
+% \begin{macrocode}
+\def\ps{\par\startbreaks}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\stopletter}
+% The |\stopletter| command is called by |\endletter| to do the
+% following:
+% \begin{itemize}
+% \item Add any desired fil or other material at the end of the
+% letter.
+% \item Define |\returnaddress| to be the return address for the
+% mailing label.
+% More precisely, it is the first argument of the |\mlabel|
+% command described below. It should be defined to null if the
+% return address doesn't appear on the labels. Any command,
+% other than |\\|, that should not be expanded until the |\mlabel|
+% command is actually executed must be preceded by |\protect|.
+% Whenever possible, |\protect| commands in the definition of
+% |\returnaddress|---it's much more efficient that way. In
+% particular, when the standard return address is used, you
+% should define |\returnaddress| to something like
+% |\protect\standardreturnaddress|.
+% \end{itemize}
+% \begin{macrocode}
+\def\stopletter{}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Customizing the labels}
+%
+% Commands for generating the labels are put on the .AUX file, which is
+% read in and processed by the |\end{document}| command. You have to
+% define the following two commands:
+% \begin{itemize}
+% \item
+% |\startlabels| : Should reset the page layout parameters if
+% necessary.
+% \item
+% |\mlabel|\marg{return address}\marg{to adress} : Command to
+% generate a single label.
+% \end{itemize}
+%
+%
+%
+% \begin{macro}{\returnaddress}
+% \begin{macrocode}
+\def\returnaddress{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\labelcount}
+% \begin{macrocode}
+\newcount\labelcount
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\startlabels}
+% The following |\startlabels| command sets things up for producing
+% labels in two columns of five 2" $\times$ 4-1/4" labels each,
+% suitable for reproducing onto Avery brand number 5352 address
+% labels.
+% \changes{v2.0l}{1995/08/10}{changed value of \cs{columnsep} by 1pt}
+% \begin{macrocode}
+\newcommand*{\startlabels}{\labelcount\z@
+ \pagestyle{empty}%
+ \let\@texttop\relax
+ \topmargin -50\p@
+ \headsep \z@
+ \oddsidemargin -35\p@
+ \evensidemargin -35\p@
+ \textheight 10in
+ \@colht\textheight \@colroom\textheight \vsize\textheight
+ \textwidth 550\p@
+ \columnsep 26\p@
+ \ifcase \@ptsize\relax
+ \normalsize
+ \or
+ \small
+ \or
+ \footnotesize
+ \fi
+ \baselineskip \z@
+ \lineskip \z@
+ \boxmaxdepth \z@
+ \parindent \z@
+ \twocolumn\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@startlabels}
+% |\@startlabels| is the command name that is written to the |.aux|
+% file. It is a no-op at first, and defined to be the same as
+% |\startlabels| in the |\begin{document}| hook.
+% \begin{macrocode}
+\let\@startlabels=\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mlabel}
+% This command prints an address label; it is used when the user
+% specified |\makelabels| in the preamble of his document. The
+% command |\mlabel| takes two arguments; the second argument is
+% supposed to be the address; the first argument can be used to
+% print a return address. In this document class we ignore the
+% first argument. Also the labels are supposed to be 2~inch high
+% and 3.6~inch wide. When your address labels have a different
+% width you will have to defined your own |\mlabel| command.
+% \changes{v2.0g}{1994/12/23}{Redefined \cs{mlabel} to not use the
+% \cs{setbox} primitive}
+% \changes{v2.0l}{1995/08/10}{changed width of the labels slightly to
+% prevent \LaTeX\ stuffing two on each line}
+% \begin{macrocode}
+\newcommand*{\mlabel}[2]{%
+ \parbox[b][2in][c]{262\p@}{\strut\ignorespaces #2}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@mlabel}
+% |\@mlabel| is written to the \file{.aux} file in place of
+% |\mlabel|. That allows to define it as a no-op per default, and
+% activate it in the |\begin{document}| hook.
+% \begin{macrocode}
+\let\@mlabel=\@gobbletwo
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Lists}
+%
+% \subsubsection{General List Parameters}
+%
+% The following commands are used to set the default values for the
+% list environment's parameters. See the \LaTeX{} manual for an
+% explanation of the meanings of the parameters. Defaults for the
+% list environment are set as follows. First, |\rightmargin|,
+% |\listparindent| and |\itemindent| are set to 0pt. Then, for a
+% \texttt{K}th level list, the command |\@listK| is called, where
+% `\texttt{K'} denotes `\texttt{i}', `\texttt{ii}', ... ,
+% `\texttt{vi}'. (I.e., |\@listiii| is called for a third-level
+% list.) By convention, |\@listK| should set |\leftmargin| to
+% |\leftmarginK|.
+%
+% \begin{macro}{\leftmargin}
+% \begin{macro}{\leftmargini}
+% \begin{macro}{\leftmarginii}
+% \begin{macro}{\leftmarginiii}
+% \begin{macro}{\leftmarginiv}
+% \begin{macro}{\leftmarginv}
+% \begin{macro}{\leftmarginvi}
+% For efficiency, level-one list's values are defined at top level,
+% and |\@listi| is defined to set only |\leftmargin|.
+% \begin{macrocode}
+\setlength\leftmargini {2.5em}
+% \end{macrocode}
+% The following three are calculated so that they are larger than
+% the sum of |\labelsep| and the width of the default labels (which
+% are `(m)', `vii.' and `M.').
+% \begin{macrocode}
+\setlength\leftmarginii {2.2em}
+\setlength\leftmarginiii {1.87em}
+\setlength\leftmarginiv {1.7em}
+\setlength\leftmarginv {1em}
+\setlength\leftmarginvi {1em}
+% \end{macrocode}
+% Here we set the top level leftmargin.
+% \begin{macrocode}
+\setlength\leftmargin {\leftmargini}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\labelsep}
+% \begin{macro}{\labelwidth}
+% |\labelsep| is the distance between the label and the text of an
+% item; |\labelwidth| is the width of the label.
+% \begin{macrocode}
+\setlength \labelsep {5\p@}
+\setlength \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\partopsep}
+% When the user leaves a blank line before the environment an extra
+% vertical space of |\partopsep| is inserted, in addition to
+% |\parskip| and |\topsep|.
+% \begin{macrocode}
+\setlength\partopsep{0\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\topsep}
+% Extra vertical space, in addition to |\parskip|, added above and
+% below list and paragraphing environments.
+% \begin{macrocode}
+\setlength\topsep{.4em}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@beginparpenalty}
+% \begin{macro}{\@endparpenalty}
+% These penalties are inserted before and after a list or paragraph
+% environment. They are set to a bonus value to encourage page
+% breaking at these points.
+% \begin{macro}{\@itempenalty}
+% This penalty is inserted between list items.
+% \begin{macrocode}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@listI}
+% \begin{macro}{\@listi}
+% |\@listI| defines top level and |\@listi| values of
+% |\leftmargin|, |\parsep|, |\topsep|, and |\itemsep|
+%
+% These values have been taken from the ones in the document class
+% \cls{artikel3}.
+% \begin{macrocode}
+\def\@listI{\leftmargin\leftmargini
+ \labelsep.5em%
+ \labelwidth\leftmargin
+ \advance\labelwidth-\labelsep
+ \topsep .5\parskip \@plus \p@
+ \parsep \z@
+ \itemsep\parsep}
+\let\@listi\@listI
+% \end{macrocode}
+% We have to initialise these parameters.
+% \begin{macrocode}
+\@listi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@listii}
+% \begin{macro}{\@listiii}
+% \begin{macro}{\@listiv}
+% \begin{macro}{\@listv}
+% \begin{macro}{\@listvi}
+% Here are the same macros for the higher level lists.
+% \begin{macrocode}
+\def\@listii {\leftmargin\leftmarginii
+ \labelsep .5em%
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@
+ \parsep \z@
+ \itemsep\parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelsep .5em%
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@
+ \parsep \z@
+ \partopsep \z@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelsep .5em%
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@}
+\def\@listv {\leftmargin\leftmarginv
+ \labelsep .5em%
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelsep .5em%
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep
+ \topsep -.5\parskip \@plus \p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Enumerate}
+%
+% The enumerate environment uses four counters: \Lcount{enumi},
+% \Lcount{enumii}, \Lcount{enumiii} and \Lcount{enumiv}, where
+% \Lcount{enumN} controls the numbering of the Nth level
+% enumeration.
+%
+% \begin{macro}{\theenumi}
+% \begin{macro}{\theenumii}
+% \begin{macro}{\theenumiii}
+% \begin{macro}{\theenumiv}
+% The counters are already defined in in the \LaTeX{} kernel
+% (\file{ltlists.dtx}), but their representation is changed here.
+%
+% \begin{macrocode}
+\renewcommand*{\theenumi}{\@arabic\c@enumi}
+\renewcommand*{\theenumii}{\@alph\c@enumii}
+\renewcommand*{\theenumiii}{\@roman\c@enumiii}
+\renewcommand*{\theenumiv}{\@Alph\c@enumiv}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\labelenumi}
+% \begin{macro}{\labelenumii}
+% \begin{macro}{\labelenumiii}
+% \begin{macro}{\labelenumiv}
+% The label for each item is generated by the commands
+% |\labelenumi| ... |\labelenumiv|.
+% \begin{macrocode}
+\newcommand*{\labelenumi}{\theenumi.}
+\newcommand*{\labelenumii}{(\theenumii)}
+\newcommand*{\labelenumiii}{\theenumiii.}
+\newcommand*{\labelenumiv}{\theenumiv.}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\p@enumii}
+% \begin{macro}{\p@enumiii}
+% \begin{macro}{\p@enumiv}
+% The expansion of |\p@enumN||\theenumN| defines the output of a
+% |\ref| command when referencing an item of the Nth level of an
+% enumerated list.
+% \begin{macrocode}
+\renewcommand*{\p@enumii}{\theenumi}
+\renewcommand*{\p@enumiii}{\theenumi(\theenumii)}
+\renewcommand*{\p@enumiv}{\p@enumiii\theenumiii}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Itemize}
+%
+% \begin{macro}{\labelitemi}
+% \begin{macro}{\labelitemii}
+% \begin{macro}{\labelitemiii}
+% \begin{macro}{\labelitemiv}
+% Itemization is controlled by |\labelitemi|, |\labelitemii|,
+% |\labelitemiii|, and |\labelitemiv|, which define the labels of
+% the various itemization levels: the symbols used are bullet, bold
+% en-dash, asterisk and centred dot.
+%
+% \changes{v2.0d}{1994/07/11}{renamed \cs{labelitemiiii} to
+% \cs{labelitemiii}}
+% \changes{v2.0o}{1996/09/23}{Changed \texttt{-{}-} to \cs{textendash}
+% following \file{classes.dtx}}
+% \changes{v2.0o}{1996/09/23}{Did similar for the bullet and centered
+% dot.}
+% \changes{v2.0p}{1997/03/02}{Now also \cs{textasteriskcentered}}
+% \begin{macrocode}
+\newcommand*{\labelitemi}{\textbullet}
+\newcommand*{\labelitemii}{\normalfont\bfseries \textendash}
+\newcommand*{\labelitemiii}{\textasteriskcentered}
+\newcommand*{\labelitemiv}{\textperiodcentered}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Description}
+%
+% \begin{environment}{description}
+% The description environment is defined here -- while the itemize
+% and enumerate environments are defined in the \LaTeX{} kernel
+% (\file{ltlists.dtx}).
+%
+% \begin{macrocode}
+\newenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\descriptionlabel}
+% To change the formatting of the label, you must redefine
+% |\descriptionlabel|.
+%
+% \begin{macrocode}
+\newcommand*\descriptionlabel[1]{\hspace\labelsep
+ \normalfont\bfseries #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Defining new environments}
+%
+% \subsubsection{Verse}
+%
+% \begin{environment}{verse}
+% The verse environment is defined by making clever use of the
+% list environment's parameters. The user types |\\| to end a line.
+% This is implemented by |\let|'ing |\\| equal |\@centercr|.
+%
+% \begin{macrocode}
+\newenvironment{verse}
+ {\let\\=\@centercr
+ \list{}{\setlength\itemsep{\z@}%
+ \setlength\itemindent{-15\p@}%
+ \setlength\listparindent{\itemindent}%
+ \setlength\rightmargin{\leftmargin}%
+ \addtolength\leftmargin{15\p@}}%
+ \item[]}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Quotation}
+%
+% \begin{environment}{quotation}
+% The quotation environment is also defined by making clever use of
+% the list environment's parameters. The lines in the environment
+% are set smaller than |\textwidth|. The first line of a paragraph
+% inside this environment is indented.
+%
+% \begin{macrocode}
+\newenvironment{quotation}
+ {\list{}{\setlength\listparindent{1.5em}%
+ \setlength\itemindent{\listparindent}%
+ \setlength\rightmargin{\leftmargin}}%
+ \item[]}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Quote}
+%
+% \begin{environment}{quote}
+% The quote environment is like the quotation environment except
+% that paragraphs are not indented.
+%
+% \begin{macrocode}
+\newenvironment{quote}
+ {\list{}{\setlength\rightmargin{\leftmargin}}%
+ \item[]}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Theorem}
+%
+% This document class does not define it's own theorem environemts,
+% the defaults, supplied by \LaTeX{} kernel (\file{ltthm.dtx}) are
+% available.
+%
+% \subsection{Setting parameters for existing environments}
+%
+% \subsubsection{Array and tabular}
+%
+% \begin{macro}{\arraycolsep}
+% The columns in an array environment are separated by
+% 2|\arraycolsep|.
+% \begin{macrocode}
+\setlength\arraycolsep{5\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tabcolsep}
+% The columns in an tabular environment are separated by
+% 2|\tabcolsep|.
+% \begin{macrocode}
+\setlength\tabcolsep{6\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\arrayrulewidth}
+% The width of vertical rules in the array and tabular environments
+% is given by |\arrayrulewidth|.
+% \begin{macrocode}
+\setlength\arrayrulewidth{.4\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\doublerulesep}
+% The space between adjacent rules in the array and tabular
+% environments is given by |\doublerulesep|.
+% \begin{macrocode}
+\setlength\doublerulesep{2\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Tabbing}
+%
+% \begin{macro}{\tabbingsep}
+% This controls the space that the |\'| command puts in. (See
+% \LaTeX{} manual for an explanation.)
+% \begin{macrocode}
+\setlength\tabbingsep{\labelsep}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Minipage}
+%
+% \begin{macro}{\@minipagerestore}
+% The macro |\@minipagerestore| is called upon entry to a minipage
+% environment to set up things that are to be handled differently
+% inside a minipage environment. In the current styles, it does
+% nothing.
+% \end{macro}
+%
+% \begin{macro}{\@mpfootins}
+% Minipages have their own footnotes; |\skip||\@mpfootins| plays
+% same r\^ole for footnotes in a minipage as |\skip||\footins| does
+% for ordinary footnotes.
+%
+% \begin{macrocode}
+\skip\@mpfootins = \skip\footins
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Framed boxes}
+%
+% \begin{macro}{\fboxsep}
+% The space left by |\fbox| and |\framebox| between the box and the
+% text in it.
+% \begin{macro}{\fboxrule}
+% The width of the rules in the box made by |\fbox| and |\framebox|.
+% \begin{macrocode}
+\setlength\fboxsep{3\p@}
+\setlength\fboxrule{.4\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Equation and eqnarray}
+%
+% \begin{macro}{\theequation}
+% The equation counter will be typeset using arabic numbers.
+% \begin{macrocode}
+\renewcommand*{\theequation}{\@arabic\c@equation}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\jot}
+% |\jot| is the extra space added between lines of an eqnarray
+% environment. The default value is used.
+% \begin{macrocode}
+% \setlength\jot{3pt}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@eqnnum}
+% The macro |\@eqnnum| defines how equation numbers are to appear in
+% equations. Again the default is used.
+%
+% \begin{macrocode}
+% \def\@eqnnum{(\theequation)}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Font changing}
+%
+% Here we supply the declarative font changing commands that were
+% common in \LaTeX\ version 2.09 and earlier. These commands work
+% in text mode \emph{and} in math mode. They are provided for
+% compatiblity, but one should start using the |\text...| and
+% |\math...| commands instead. These commands are redefined using
+% |\@renewfontswitch|, a command with three arguments: the user
+% command to be defined; \LaTeX\ commands to execute in text mode
+% and \LaTeX\ commands to execute in math mode.
+%
+% \begin{macro}{\rm}
+% \begin{macro}{\tt}
+% \begin{macro}{\sf}
+% The commands to change the family.
+% \begin{macrocode}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\bf}
+% The command to change to the bold series. One should use
+% |\mdseries| to explicitly switch back to medium series.
+% \begin{macrocode}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sl}
+% \begin{macro}{\it}
+% \begin{macro}{\sc}
+%
+% And the commands to change the shape of the font. The slanted and
+% small caps shapes are not available by default as math alphabets,
+% so those changes do nothing in math mode. One should use
+% |\upshape| to explicitly change back to the upright shape.
+% \begin{macrocode}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\relax}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cal}
+% \begin{macro}{\mit}
+%
+% The commands |\cal| and |\mit| should only be used in math mode,
+% outside math mode they have no effect. Currently the New Font
+% Selection Scheme defines these commands to generate warning
+% messages. Therefore we have to define them `by hand'.
+% \changes{v2.0g}{1994/12/23}{Now define \cs{cal} and \cs{mit} using
+% \cs{DeclareRobustCommand*}}
+% \begin{macrocode}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Footnotes}
+%
+% \begin{macro}{\footnoterule}
+% Usually, footnotes are separated from the main body of the text
+% by a small rule. This rule is drawn by the macro |\footnoterule|.
+% We have to make sure that the rule takes no vertical space (see
+% \file{plain.tex}) so we compensate for the natural heigth of the
+% rule of 0.4pt by adding the right amount of vertical skip.
+%
+% To prevent the rule from colliding with the footnote we first add
+% a little negative vertical skip, then we put the rule and make
+% sure we end up at the same point where we begun this operation.
+% \begin{macrocode}
+\renewcommand*{\footnoterule}{%
+ \kern-\p@
+ \hrule \@width .4\columnwidth
+ \kern .6\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@footnote}
+% Footnotes are numbered within chapters in the report and book
+% document styles.
+% \begin{macrocode}
+% \newcounter{footnote}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makefntext}
+% The footnote mechanism of \LaTeX{} calls the macro |\@makefntext|
+% to produce the actual footnote. The macro gets the text of the
+% footnote as its argument and should use |\@makefnmark| to produce
+% the mark of the footnote. The macro |\@makefntext| is called when
+% effectively inside a |\parbox| of width |\columnwidth| (i.e.,
+% with |\hsize| = |\columnwidth|).
+%
+% An example of what can be achieved is given by the following piece
+% of \TeX\ code.
+% \begin{verbatim}
+% \long\def\@makefntext#1{%
+% \@setpar{\@@par
+% \@tempdima = \hsize
+% \advance\@tempdima-10pt
+% \parshape \@ne 10pt \@tempdima}%
+% \par
+% \parindent 1em\noindent
+% \hb@xt@\z@{\hss\@makefnmark}#1}
+% \end{verbatim}
+% The effect of this definition is that all lines of the footnote
+% are indented by 10pt, while the first line of a new paragraph is
+% indented by 1em. To change these dimensions, just substitute the
+% desired value for `10pt' (in both places) or `1em'. The mark is
+% flushright against the footnote.
+%
+% In these document classes we use a simpler macro, in which the
+% footnote text is set like an ordinary text paragraph, with no
+% indentation except on the first line of a paragraph, and the
+% first line of the footnote. Thus, all the macro must do is set
+% |\parindent| to the appropriate value for succeeding paragraphs
+% and put the proper indentation before the mark.
+%
+% \changes{v2.0q}{1997/09/08}{As we want to have different appearances
+% of the footnotemarker in the text and in the footnotes, we can't
+% use \cs{@makefnmark} here}
+% \begin{macrocode}
+\long\def\@makefntext#1{%
+ \noindent\hb@xt@\leftmargini{\normalfont\@thefnmark.\hfil}#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makefnmark}
+% The footnote markers that are printed in the text to point to the
+% footnotes should be produced by the macro |\@makefnmark|.
+% \changes{v2.0l}{1995/08/10}{No longer use hidden math}
+% \changes{v2.0q}{1997/09/08}{Use the default definition for
+% \cs{@makefnmark}}
+% \begin{macrocode}
+% \def\@makefnmark{\hb@xt@\leftmargini{\normalfont\@thefnmark.\hfil}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Words}
+%
+% This document class supports a number of languages. All words
+% that will be printed byu the class code are stored in commands
+% which can be redefined if you want to use a different language.
+%
+% \begin{macro}{\dutchbrief}
+% This stores dutch strings.
+% \begin{macrocode}
+\newcommand*{\dutchbrief}{%
+ \def\uwbrieftekst{Uw brief van}
+ \def\uwkenmerktekst{Uw kenmerk}
+ \def\onskenmerktekst{Ons kenmerk}
+ \def\datumtekst{Datum}
+ \def\geadresseerdetekst{Geadresseerde}
+ \def\bladnummertekst{Bladnummer}
+ \def\vandaag{\number\day~\ifcase\month\or
+ januari\or februari\or maart\or april\or mei\or juni\or juli\or
+ augustus\or september\or oktober\or november\or december\fi
+ \space \number\year}
+ \def\betrefttekst{Onderwerp:}
+ \def\ccname{cc}
+ \def\bijlagetekst{Bijlage:}
+ \def\bijlagentekst{Bijlagen:}
+ \def\telefoontekst{telefoon}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\englishbrief}
+% This stores English strings.
+% \changes{v2.0i}{1994/12/30}{Repaired typo}
+% \begin{macrocode}
+\newcommand*{\englishbrief}{%
+ \def\uwbrieftekst{Your letter of}
+ \def\uwkenmerktekst{Your reference}
+ \def\onskenmerktekst{Our reference}
+ \def\datumtekst{Date}
+ \def\geadresseerdetekst{To}
+ \def\bladnummertekst{Page}
+ \def\vandaag{\ifcase\day\or
+ 1st\or 2nd\or 3rd\or 4th\or 5th\or
+ 6th\or 7th\or 8th\or 9th\or 10th\or
+ 11th\or 12th\or 13th\or 14th\or 15th\or
+ 16th\or 17th\or 18th\or 19th\or 20th\or
+ 21st\or 22nd\or 23rd\or 24th\or 25th\or
+ 26th\or 27th\or 28th\or 29th\or 30th\or
+ 31st\fi~\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space \number\year}
+ \def\betrefttekst{Re:}
+ \def\ccname{cc}
+ \def\bijlagetekst{Enclosure:}
+ \def\bijlagentekst{Enclosures:}
+ \def\telefoontekst{telephone}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\americanbrief}
+% This stores American english strings
+% \begin{macrocode}
+\newcommand*{\americanbrief}{%
+ \def\uwbrieftekst{Your letter of}
+ \def\uwkenmerktekst{Your reference}
+ \def\onskenmerktekst{Our reference}
+ \def\datumtekst{Date}
+ \def\geadresseerdetekst{To}
+ \def\bladnummertekst{Page}
+ \def\vandaag{\ifcase\month\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day, \number\year}
+ \def\betrefttekst{Re:}
+ \def\ccname{cc}
+ \def\bijlagetekst{Enclosure:}
+ \def\bijlagentekst{Enclosures:}
+ \def\telefoontekst{telephone}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\germanbrief}
+% This stores the German versions of the strings.
+% \begin{macrocode}
+\newcommand*{\germanbrief}{%
+ \def\uwbrieftekst{Ihr Brief vom}
+ \def\uwkenmerktekst{Ihr Zeichen}
+ \def\onskenmerktekst{Unser Zeichen}
+ \def\datumtekst{Datum}
+ \def\geadresseerdetekst{An}
+ \def\bladnummertekst{Seite}
+ \def\vandaag{\number\day.~\ifcase\month\or
+ Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
+ Juli\or August\or September\or Oktober\or November\or Dezember\fi
+ \space\number\year}
+ \def\betrefttekst{Betrifft:}
+ \def\ccname{Kopien an}
+ \def\bijlagetekst{Anlage:}
+ \def\bijlagentekst{Anlagen:}
+ \def\telefoontekst{Telefon}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\frenchbrief}
+% And finally to store the french strings
+% \begin{macrocode}
+\newcommand*{\frenchbrief}{%
+ \def\uwbrieftekst{Votre lettre du}
+ \def\uwkenmerktekst{Vos r\'ef\'erences:}
+ \def\onskenmerktekst{Nos r\'ef\'erences:}
+ \def\datumtekst{Date:}
+ \def\geadresseerdetekst{\`A l'attention de}
+ \def\bladnummertekst{Page}
+ \def\vandaag{\number\day\ifnum\day=1$^{er}$\fi
+ ~\ifcase\month\or janvier\or
+ f\'evrier\or mars\or avril\or mai\or juin\or
+ juillet\or ao\^ut\or septembre\or octobre\or
+ novembre\or d\'ecembre\fi \space \number\year}
+ \def\betrefttekst{Objet:}
+ \def\ccname{Copie \`a}
+ \def\bijlagetekst{Pi\`ece jointe:}
+ \def\bijlagentekst{Pi\`eces jointes:}
+ \def\telefoontekst{T\'el\'ephone:}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Two column mode}
+%
+% \begin{macro}{\columnsep}
+% This gives the distance between two columns in two column mode.
+% \begin{macrocode}
+\setlength\columnsep{10\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\columnseprule}
+% This gives the width of the rule between two columns in two
+% column mode. We have no visible rule.
+% \begin{macrocode}
+\setlength\columnseprule{0\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{The page style}
+% We have \pstyle{headings} pages in this document class by
+% default. We use arabic pagenumbers.
+% \begin{macrocode}
+\pagestyle{headings}
+\pagenumbering{arabic}
+% \end{macrocode}
+%
+% \subsection{Single or double sided printing}
+%
+% We don't try to make each page as long as all the others.
+% \begin{macrocode}
+\raggedbottom
+% \end{macrocode}
+%
+% \begin{macro}{\@texttop}
+% The document class \cls{letter} sets |\@texttop| to |\vskip| 0pt
+% \texttt{plus} .00006fil on the first page of a letter, which
+% centers a short letter on the page. This class however doesn't
+% want the letter to be centered on the page.
+% \begin{macrocode}
+\let\@texttop\relax
+% \end{macrocode}
+% \end{macro}
+%
+% We always start in one column mode.
+% \begin{macrocode}
+\onecolumn
+%</brief>
+% \end{macrocode}
+%
+%
+%
+% \Finale
+%
+\endinput
diff --git a/macros/latex/contrib/ntgclass/brief.pdf b/macros/latex/contrib/ntgclass/brief.pdf
new file mode 100644
index 0000000000..2237d5783a
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/brief.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/brief.tex b/macros/latex/contrib/ntgclass/brief.tex
new file mode 100644
index 0000000000..e05f3445a0
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/brief.tex
@@ -0,0 +1,229 @@
+% \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
+\documentclass{brief} %% er is een optie 'adresrechts'
+
+%\maaketiketten %% werkt nog niet naar behoren
+
+\begin{document}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%% briefhoofd %%%%%%%%%%%%%%%%%%%%%%%%%%
+% De gebruiker wordt geacht zijn eigen \briefhoofd te definieren,
+% of voorgedrukt briefpapier te gebruiken,
+% maar hij kan een redelijk standaard hoofd aangemeten krijgen
+% door \maakbriefhoofd.
+\maakbriefhoofd{WG 13}{Werkgroep 13\\ de De Facto Standaard
+ \\ in Nederlandse \TeX pertise}
+
+% De PTT staat toe dat boven in het venster klein (5 a 6 punt)
+% een antwoordadres gedrukt wordt. Het hoeft natuurlijk niet.
+% En svp alleen voor binnenlands gebruik.
+\antwoordadres{Toernooiveld 5, \\ 6525 ED Nijmegen}
+
+%%%%%%%%%%%%%%%%%%% de referentieregel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\uwbriefvan{13 januari 1988} % vier gegevens in de referentieregels
+\datum{8 october 1989} % hier mist alleen de 'uwkenmerk'
+\onskenmerk{VE-NTG 002} % volgorde en plaatsing ligt vast
+% datum wordt automatisch ingevuld wanneer niet gespecificeerd
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%% voetregel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% maximaal vier gegevens, de gebruiker specificeert zowel het
+% kopje, als wat er onder komt. Gegevens worden geplaatst in de
+% opgegeven volgorde.
+\voetitem{fax:}{12345 abc}
+\voetitem{telefoon:}{080-613169}
+\voetitem{telefoon \\ priv\'e:}{080-448664}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% de brief zelf %%%%%%%%%%%%%%%%%%%%%%%%%%
+% bijna zoals in 'letter.sty', alleen zijn de commando's
+% nu in de nederlandse taal.
+\begin{brief}{Werkgroep 13\\Nederlandse \TeX\ groep\\Nederland}
+
+\betreft{nieuwe briefstijl}
+\opening{Hallo volkjes,}
+
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+
+
+
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+Dit is een test om te zien hoe ver ik gevorderd ben met het
+autentieke Nederlandse briefontwerp.
+Het zal waarschijnlijk nog wel een tijdje duren voor er
+echt iets moois uitkomt. Sprak hij bescheiden.
+
+\ondertekening{Victor Eijkhout \\ co\"ordinator \en Johannes Braams \\ lid
+ \en Nico Poppelier \\ lid}
+\afsluiting{Hoogachtend,\\ Werkgroep 13}
+
+\bijlagen{De broncode van deze brief}
+\cc{Stichting `de Kettingbrief'}
+\ps{PS: panta rei}
+
+
+\end{brief}
+
+%\end{document} %% hier stoppen, behalve als je 'maaketiketten'
+ %% wil testen.
+
+\onskenmerk{VE-JD1}
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\onskenmerk{VE-JD2}
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\end{document}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\begin{brief}{Jan Doedel\\ klinkhamerdreef 37\\ Duckstad}
+\opening{Hallo,} daar ben ik dan \ondertekening{Victor}\afsluiting{doei}
+\end{brief}
+
+\end{document}
diff --git a/macros/latex/contrib/ntgclass/briefdoc.pdf b/macros/latex/contrib/ntgclass/briefdoc.pdf
new file mode 100644
index 0000000000..558ce17b42
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/briefdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/briefdoc.tex b/macros/latex/contrib/ntgclass/briefdoc.tex
new file mode 100644
index 0000000000..bf1c38be08
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/briefdoc.tex
@@ -0,0 +1,306 @@
+% \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
+\documentclass[a4paper,10pt]{artikel1}
+\usepackage[dutch]{babel}
+
+\begin{document}
+\title{De Nederlandse Briefstijl}
+\author{Victor Eijkhout}
+\date{4 december 1991}
+\maketitle
+
+\begin{abstract}
+ Een bescheiden handleiding voor de Nederlandse briefstijl, met
+ opmerkingen over het wat, hoe en waarom.
+\end{abstract}
+
+\section{Verantwoording}
+
+De Nederlandse \LaTeX-stijl `brief' conformeert zich aan
+NEN-normen\footnote{Mijn zeer grote dank aan Jan Grootenhuis die mijn
+ aandacht vestigde op het bestaan van de normbladen.} 1026 voor
+briefpapier, 3162 voor het indelen van documenten, 1025 voor
+enveloppen, en 3516 voor het ontwerp van formulieren.
+
+Briefontwerp is controversieel. Iedereen heeft een smaak, en met name
+bij briefpapier is die vaak zeer uitgesproken. Ik wil beklemtonen dat
+ik bij de implementatie van de briefstijl bijna nergens mijn smaak
+nodig heb gehad. Dankzij de NEN-normen is het ontwerp van briefpapier
+een zaak van exacte wetenschap, niet van schone kunsten.
+
+Deze stijl is redelijk incompatibel met de \LaTeX\ `letter' stijl.
+Hij is in bescheiden mate met opties in te stellen, en de
+sleutelwoorden kunnen uit een aantal talen gekozen worden. Alle
+teksten zijn verder geparametriseerd. Het is dus goed mogelijk
+stijlopties te maken om deze stijl aan een specifieke omgeving aan te
+passen.
+
+Als de gebruiker geen gebruik maakt van een voorgedrukt briefhoofd,
+kan hij zijn eigen briefhoofd in \LaTeX\ implementeren, of door de
+stijl een briefhoofd geleverd krijgen. Het ontwerp van dit briefhoofd
+is de enige plaats waar mijn smaak zich heeft doen gelden, maar zelfs
+dit ontwerp heb ik gejat uit een NEN-norm.
+
+Opmerking: zeker bij het gebruik van vensterenveloppen is het voor de
+briefstijl van cruciaal belang dat de gebruikte printer goed afgesteld
+staat. Dit valt te controleren aan de hand van het adres: dit dient op
+33mm van de linker kantlijn te staan, terwijl de `baseline' van de
+eerste regel zich 59mm onder de bovenrand van het papier dient te
+bevinden.
+
+\section{Velden van het briefpapier}
+
+Deze sectie behandelt de indeling van brieven aan de hand van
+NEN-norm~1026.
+
+\subsection{Marges}
+
+Alle marges conformeren zich aan NEN-1026, behalve de rechtermarge die
+ik voor een evenwichtiger bladverdeling gelijk gemaakt heb aan de
+linkermarge. Met een gezette brief ziet dit er beduidend beter uit.
+
+De linkermarge is 33 millimeter; er zijn nog geen voorzieningen voor
+de versmalde marge van 20 millimeter, die voor facturen beter is. Dit
+zal misschien ooit een optie worden.
+
+Om aan te sluiten by traditionele getypte briefopmaak is `raggedright'
+bij verstek ingeschakeld. Aangezien briefhoofd, referentieregels, en
+voetregel de brief vrij breed kunnen maken, is de corpsgrootte bij
+verstek 11-punt. 10~en~12 zijn opties.
+
+\subsection{Briefhoofd}
+
+Het moeilijkste deel van een brief, en de voornaamste plek waar de
+ontwerper van briefpapier zijn creativiteit kwijt kan is het
+briefhoofd. In de huidige stijl heeft de gebruiker drie
+mogelijkheden.
+
+Een. Hij gebruikt voorgedrukt briefpapier. Als dit zich een beetje aan
+NEN-normen houdt is er verder niets aan de hand.
+
+Twee. De gebruiker kan zelf een macro \verb.\briefhoofd. schrijven.
+Als dit binnen de hoogte van \verb.\@headheight. blijft, is er niets
+aan de hand; voorkeursbreedte is \verb.4\refveldbreedte., dat wil
+zeggen, de breedte van de referentieregel.
+
+Drie. Er is een macro van twee argumenten, `maakbriefhoofd', die een
+briefhoofd levert dat ge"inspireerd is op de voorbeeldbrief in
+NEN-1026. Voorbeeld:
+\begin{verbatim}
+\maakbriefhoofd{WG13}{Werkgroep 13 \\
+ Mathematisch Instituut \\
+ Toernooiveld 5 \\
+ 6525 ED Nijmegen}
+\end{verbatim}
+Het eerste argument levert een tekst op die links boven een verticale
+lijn gezet wordt. Het links aanlijnen gebeurt met \verb.\hfil., dus
+met een \verb.\hfill. in het argument kan een deel van het hoofd naar
+rechts worden geschoven.
+
+Het tweede argument van `maakbriefhoofd' wordt als een blokje tekst
+rechts onder de lijn in het briefhoofd gehangen. In principe is dit
+argument er voor het adres van de afzender. Er is echter een
+mogelijkheid het antwoordadres in het adresveld op te nemen, zie hier
+onder. In het briefhoofd kan dan een omschrijving als `adviesburo
+voor gespecialiseerde algemeenheden' staan.
+
+Het tekstblok in het tweede argument lijnt links met de datum en het
+vierde voetitem (zie onder), en blijft idealiter binnen de marge van
+de pagina. Er worden echter geen `overfull box' meldingen gegeven als
+de tekst te breed is.
+
+Er is een `sterretje'-versie van `maakbriefhoofd'; deze geeft op de
+vervolgbladen alleen het eerste argument plus de streep. Dat maakt de
+kop van de pagina wat minder zwaar.
+
+\subsection{Adresveld}
+
+Het adresveld wordt zodanig geplaatst dat het in het venster van een
+vensterenvelop zichtbaar is als het venster 5cm onder de bovenrand van
+de envelop begint. Omdat er zowel vensterenveloppen zijn met het
+venster links als rechts, is er een optie \texttt{adresrechts} die het
+adresveld rechts plaatst. De voorkeurspositie is echter links; er
+blijft dan namelijk rechts een `ontvangerruimte' waar de geadresseerde
+stempels (`binnen gekomen dd.') en dergelijke kan zetten.
+
+Het adresveld komt op dezelfde manier tot stand als in de oude
+`letter' stijl: de gebruiker geeft
+\begin{verbatim}
+\begin{brief}{Jan \TeX er\\
+ Overfullplein 10000 \\
+ Baselinestad}
+\end{verbatim}
+in, en hieruit destilleert \LaTeX\ de naam en het verdere adres van de
+geadresseerde. De naam komt nog voor op de vervolgbladen.
+
+Het schijnt van de PTT te mogen dat er (helemaal boven) in het ruitje
+van de vensterenvelop een antwoordadres wordt opgenomen, als dat maar
+gebeurt zodanig dat het geen verwarring schept met het adres. Er is
+een commando \verb.\antwoordadres. dat een adres als argument
+accepteert, met de regels gescheiden door~\verb.\\.. Voorbeeld:
+\begin{verbatim}
+\maakbriefhoofd{WG13}{De de facto standaard \\
+ in Vaderlandse \\
+ \TeX verwerking}
+\antwoordadres{Mathematisch Instituut \\
+ Toernooiveld 5 \\
+ 6525 ED Nijmegen}
+\end{verbatim}
+
+
+\subsection{De Referentieregels}
+
+Direct onder het adresveld volgt ruimte voor gegevens van de
+geadresseerde, `Uw brief van' en `Uw kenmerk', en van afzender, `Ons
+kenmerk' en `Datum'.
+
+Voor deze referentiegegevens staan de gebruiker de commando's
+\verb.\uwbriefvan., \verb.\uwkenmerk., \verb.\onskenmerk., en
+\verb.\datum. ter beschikking. Deze macro's hebben elk \'e\'en
+argument tussen accolades. De datum wordt automatisch ingevuld; niet
+ingevulde gegevens worden niet opgenomen.
+
+De teksten die hier in de kopjes staan worden in eerste instantie door
+de taalopties bepaald. Verstekwaarde is natuurlijk `nederlands', maar
+er zijn `engels', `amerikaans', en `duits' beschikbaar. Ik houd me
+aanbevolen voor correcte terminologie in andere talen; enkele fouten
+in de Duitse termen zijn op aanwijzing van Marc van Woerkom verbeterd.
+Wie geeft me de Franse termen?
+
+De teksten in de referentieregel zijn waardes van de macros\\
+\verb.\uwbriefvantekst., \verb.\uwkenmerktekst.,
+\verb.\onskenmerktekst., en \verb.\datumtekst.. Het is dus mogelijk
+`doorkiesnummer' in plaats van `ons kenmerk' te krijgen door deze
+tekst als `onskernmerktekst' te declareren, bij voorbeeld met
+\verb.\renewcommand. in het preamble.
+
+
+\subsection{De tekst van de brief}
+
+Hier hoeft op deze plaats niets over gezegd te worden, anders dan dat
+de aanhef, net als in de `letter' stijl met \verb.\opening. gebeurt.
+Er is een `betreft' commando.
+
+Ook de afsluiting staat in het \LaTeX-boek beschreven, maar de
+commandonamen zijn Nederlands geworden: `ondertekening' (was
+`signature'), `afsluiting' (was `closing'), `ps', en `cc' Dit is
+Engels, maar bijna niemand weet wat het betekent. Verder is er zowel
+een `bijlage' als `bijlagen' (was~`encl').
+
+\subsection{Ondertekening}
+
+Hier is iets meer vrijheid dan in de standaard briefstijl. Commando's
+`ondertekening' en `afsluiting' kunnen in willekeurig welke volgorde
+gegeven worden.
+
+Meervoudige auteurs in de ondertekening zijn mogelijk:
+\begin{verbatim}
+\ondertekening{Ik \\ directeur \en
+ Jij \\ adjunct \\ (oprichter)}
+\end{verbatim}
+geeft twee naast elkaar geplaatste handtekeningen.
+
+\subsection{Voetruimte}
+
+`In de voetruimte' (ik citeer NEN-1026) `komen die gegevens van de
+afzender die niet reeds in het briefhoofd zijn vermeld'. De keuze
+hiervan wordt aan de gebruiker overgelaten. Enkele suggesties zijn:
+kantooradres, telefoonnummer van de centrale, faxnummer,
+inschrijvingsnummer en -plaats in het handelsregister.
+
+Er kunnen maximaal vier voetitems zijn. Items verschijnen op de
+pagina in de volgorder waarin de gebruiker ze gedeclareerd heeft. Bij
+twee items of meer is het laatste rechtsgeplaatst. Goeie truc.
+
+Omdat hier beduidend meer keuze is dan bij de referentieregel, moet de
+gebruiker zelf het hoofdje en de daaronder geplaatste tekst van items
+in de voetregel voorschrijven. De macro van twee argumenten
+\verb.\voetitem. staat hem/haar daartoe ter beschikking. Elke van de
+argumenten kan meer dan \'e\'en regel lang zijn, gebruik~\verb.\\..
+Voorbeeld:
+\begin{verbatim}
+\voetitem{fax:}{12345 Winat nl}
+\voetitem{telefoon:}{080-613169\\ bgg: 612986}
+\voetitem{telefoon\\ priv\'e:}{080-448664}
+\end{verbatim}
+
+\subsection{Hulplijntjes; vouwstreepjes}
+
+Door een optie `streepjes' in te schakelen, is het briefpapier van
+hulpstreepjes te voorzien.
+
+Volgens NEN-1026 heeft briefpapier een instelstreepje halverwege, niet
+voor vouwen in twee"en zoals hele volksstammen denken, maar voor het
+aanlijnen van de perforator. Aan de rechterzijde van het blad zijn
+twee vouwstreepjes, een voor vouwen in drie"en, en een voor vouwen in
+twee"en. Geen van beide bevindt zich op de helft of een-derde van de
+papierhoogte. Omdat enveloppen hoger zijn dan een A4-tje gedeeld door
+2 of~3 zou dat ook niet kunnen. Vensters, weet U wel?
+
+Ik ben uitgegaan van envelopformaten EN-C5 ($162\times229$mm voor een
+A4 in twee"en) en EN-DL ($110\times220$ voor een A4 in drie"en)
+volgens NEN-1025 en ISO 269-1979. Vouwstreepjes bevinden zich op
+105mm en 155mm onder de bovenrand van het papier.
+
+
+\section{Vervolgbladen}
+
+Boven elk vervolgblad komt het briefhoofd (mogelijk verkort, zie
+boven) en een verkorte vorm van de referentieregel; deze regel bevat
+het bladnummer.
+
+Als het briefhoofd met daaronder de `vervolgreferentieregel' (galgje!
+galgje!) te veel ruimte innemen, gaat de extra ruimte af van de
+teksthoogte. Voor dit mechanisme durf ik niet voor de volle
+achtien-en-een-half procent in te staan. Het lijkt in ieder geval te
+werken.
+
+
+\section{Opties}
+
+De optie `adresrechts' is boven al genoemd, evenals `streepjes';
+verder is er nog een optie `typhulp' die een hulplijntje voor het
+aanlijnen van het adres zet. Misschien leuk als je deze stijl gebruikt
+voor briefpapier dat daarna voor de typmachine gebruikt wordt.
+
+Belangrijker zijn natuurlijk de taalopties.
+
+Voor mensen met te goede of slechte ogen zijn er de 10- en 12-punts
+opties. Let op: de kopjes in de referentie- en voetregel blijven in
+\texttt{cmssq8} staan.
+
+Puur voor het genoegen van de implementator van de briefstijl is er de
+optie `USletter' die het papier 19.7 millimeter korter maakt.
+
+\section{Labels}
+
+Pijnlijk punt. Dit moet nog gedaan worden.
+\end{document}
diff --git a/macros/latex/contrib/ntgclass/catalog.txt b/macros/latex/contrib/ntgclass/catalog.txt
new file mode 100644
index 0000000000..abe4c3330c
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/catalog.txt
@@ -0,0 +1,25 @@
+Name: ntgclass
+Problems-To: JLBraams@cistron.nl
+Author: J.L. Braams and V. Eijkhout
+Version: 2.2-patch level 3
+
+Description:
+
+The ntgclass bundle provides a number of document classes that
+implement alternative layouts for the standard LaTeX document classes.
+These classes were originally developped by Victor Eijkhout and the
+NTG WG13.
+The classes provided are:
+artikel1, artikel2, artikel3; rapport1, rapport3; boek, boek3; brief.
+This bundle also includes the a4 package, originally written for
+LaTeX209 to support printing on A4 paper.
+
+Keywords: latex, document classes
+
+See-Also:
+
+Address:
+J.L. Braams
+Kooienswater 62
+2715 AJ Zoetermeer
+The Netherlands
diff --git a/macros/latex/contrib/ntgclass/changes.txt b/macros/latex/contrib/ntgclass/changes.txt
new file mode 100644
index 0000000000..afedf7a879
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/changes.txt
@@ -0,0 +1,5 @@
+
+This file lists changes to the NTG files in reverse chronological order.
+========================================================================
+
+
diff --git a/macros/latex/contrib/ntgclass/classdoc.pdf b/macros/latex/contrib/ntgclass/classdoc.pdf
new file mode 100644
index 0000000000..8e16c04cc5
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/classdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/classdoc.tex b/macros/latex/contrib/ntgclass/classdoc.tex
new file mode 100644
index 0000000000..94e0cb8665
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/classdoc.tex
@@ -0,0 +1,164 @@
+% \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
+\documentclass[a4paper,10pt]{artikel1} % or just 'article'
+\usepackage{shortvrb}
+\newcommand\Lopt[1]{\textsf{#1}}
+\newcommand\file[1]{\texttt{#1}}
+
+\begin{document}
+
+\title{An introduction to the Dutch \LaTeX\ document
+ classes\thanks{Updated for \LaTeXe\ by Johannes Braams, 6 february
+ 1994}}
+\author{Victor Eijkhout}
+\date{3 September 1989}
+\maketitle
+
+\section{Background}
+
+The Dutch \LaTeX\ document classes are an attempt to provide \LaTeX\
+users with facilities of the standard distribution document classes
+`article' and `report', but coupled to typography that is geared
+towards Dutch usage. In order to ensure interchangeability, the new
+styles implemented the commands of the distribution styles. In
+principle, then, no manual for these styles would be needed. There
+are a few points, however, that can't go without comment.
+
+Table 1 lists all files connected with the Dutch document classes.
+These files can be found on the \texttt{tex-nl} fileserver
+on the \texttt{hearn} node of Bitnet/Earn and on the \textsc{ctan}.
+Not all of them are necessary, the ones with extension \file{.tex}
+contain just blah.
+
+Remark: there exists a Dutch version of `letter', which is so
+specifically Dutch that I decided not to include it in this list.
+
+\begin{table}[hbtp]
+ \begin{center}
+ \begin{tabular}{|@{\tt\hspace{1em}}r|l|}
+ \hline
+ ntgclass.tex & The \LaTeXe\ source for this text\\
+ ntgclass.dtx & The source for all the class files\\
+ ntgclass.dst & A \textsf{docstrip} program to produce\\
+ & the class files from the source.\\
+ artikel1.cls & article compatible, design 1, straightforward \\
+ artikel2.cls & article compatible, design 2, rather different \\
+ artikel3.cls & article compatible, design 3,
+ parskip instead of indent\\
+ rapport1.cls & report compatible, design 1 \\
+ rapport3.cls & report compatible, design 3 \\
+ book.cls & book compatible, design 1\\
+ ntg10.clo & 10 point option for all styles \\
+ ntg11.clo & 11 point option for all styles \\
+ ntg12.clo & 12 point option for all styles \\
+ artdoc.tex & the genesis of the `artikel' classes, in Dutch \\
+ briefdoc.tex & the genesis of the `brief class, also in Dutch \\
+ rapdoc.tex & the genesis of the `rapport' classes, also in
+ Dutch.\\
+ \hline
+ \end{tabular}
+ \end{center}
+ \caption{List of files}
+\end{table}
+
+
+\section{Languages}
+
+These styles have been developed bearing in mind suggestions of Hubert
+Partl for making the language of styles switchable. Thus, on their
+own these styles will produce English captions like `chapter' and
+`table of contents', but specifying the options `dutch' or `german',
+or any language option that follows the directions of Partl, will
+switch these to the language of the option.
+
+\MakeShortVerb{\|}
+
+\section{Design}
+
+At the moment there are styles compatible with `article' and with
+`report'. The Dutch names for these are `artikel' and `rapport'. In
+contrast to the standard styles, however, the user can now choose from
+different visual designs. Names of the styles are formed by appending
+their number to the name, for instance `rapport3'.
+\begin{enumerate}
+\item Design one is meant to be a universally acceptable style. It
+ has been kept as uncontroversial as possible. Under heavy protests
+ of the implementer (me) the one point that has turned out to be
+ controversial, the table of contents, has been made subject to a
+ switch that can restore the old \LaTeX\ layout. Explanation of this
+ follows.
+\item Design two will probably never be heavily used. It is more
+ something of a heroic attempt to be different. At the moment only
+ available in `artikel' form.
+\item Design three meets the wishes of people who like a zero
+ |\parindent| and a positive |\parskip|. As just setting these
+ parameters within for instance `artikel1' will give some unwanted
+ side effects, I~decided to repair these in a separate style.
+\end{enumerate}
+Credits for the visual design go to one real-life designer and a
+couple of books by designers I consulted. The full story can be found
+elsewhere.
+
+\subsection{User options}
+
+As was mentioned above, the new layout of the table of contents has
+turned out to be somewhat controversial. So, in order to ensure wider
+acceptance of these styles I~have incorporated a switch that will
+restore the old layout. Just specify the \Lopt{oldtoc} option. This is
+available in designs 1 and~3. Number~2 really insists on being
+different.
+
+%I~do no page sizing, so kindly use an option like \texttt{a4}.
+%There is a nice one on the server, which is not the one
+%by John Pavel.
+
+\subsection{Option files}
+
+Like in the standard styles there exist option files for $10/11/12$
+point layout. Until now, however, I~have managed to get away with
+using the same option files for both the `artikel' `rapport', and
+`boek' styles. The option files then have to have some neutral names.
+Which are at the moment \file{ntg10}, \file{ntg11},
+and~\file{ntg12}. `NTG', of course, stands for Nederlandse \TeX\
+Gebruikersgroep, i.e., Dutch \TeX\ Users Group.
+
+When doing the `rapport' styles, I~needed to modify the `\file{titlepag}'
+option file. Thus there is a Dutch version of that, bearing the name
+of `voorwerk' (literal translation: `frontwork'). Probably the
+majority of Dutch \LaTeX\ users don't even know that this is the
+correct term. You're never too old to learn.
+
+With the \LaTeXe\ version of thes classes the file \file{voorwerk.sty}
+has disappeared. It has been turned into the internal option
+\Lopt{voorwerk}, just like \file{titlpage.sty} has disappeared into
+the internal option \Lopt{titlepage}.
+\end{document}
+
diff --git a/macros/latex/contrib/ntgclass/manifest.txt b/macros/latex/contrib/ntgclass/manifest.txt
new file mode 100644
index 0000000000..43d088f2db
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/manifest.txt
@@ -0,0 +1,47 @@
+%
+% CONTENTS OF THE NTG DOCUMENT CLASSES DISTRIBUTION
+% =================================================
+%
+% Documentation:
+% --------------
+%
+% 00readme.txt -- The distribution guide.
+% manifest.txt -- This file.
+% changes.txt -- List of changes in reverse chronological order.
+% catalog.txt -- A short description for the macro catalog.
+%
+% artdoc.tex -- A description of the artikel classes, in dutch
+% artdoc.pdf
+% briefdoc.tex -- A description of the brief class, in dutch
+% briefdoc.pdf
+% rapdoc.tex -- A description of the rapport classes, in dutch
+% rapdoc.pdf
+% classdoc.tex -- A description of the document classes, in english
+% classdoc.pdf
+%
+% Classes:
+% --------
+%
+% ntgclass.dtx -- NTG document classes artikel1,2,3/boek,boek3/rapport1,3.
+% ntgclass.pdf
+% brief.dtx -- NTG document class brief
+% brief.pdf
+%
+% Classes:
+% --------
+%
+% a4.dtx -- The package a4 from NTG/WG13 (Braams, Poppelier)
+% a4.pdf
+%
+% Installation script for the various parts:
+% -------------------------------------------
+%
+% a4.ins -- installation script for the a4 package
+% ntgclass.ins -- NTG document classes installation script
+%
+%
+% Support files:
+% --------------
+%
+% brief.tex -- A sample file with three letters
+%
diff --git a/macros/latex/contrib/ntgclass/ntgclass.dtx b/macros/latex/contrib/ntgclass/ntgclass.dtx
new file mode 100644
index 0000000000..53b1064b11
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/ntgclass.dtx
@@ -0,0 +1,5273 @@
+% \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{3726}
+% \iffalse
+%% Copyright (C) 1994 -- 2004 by Victor Eijkhout and Johannes Braams
+%% Based on classes.dtx
+%% Copyright (C) 1999 LaTeX3 project, all rights reserved.
+%%
+%% \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 \~}
+%
+% \section{Identification}
+%
+% These document classes can only be used with \LaTeXe, so we make
+% sure that an appropriate message is displayed when another \TeX{}
+% format is used.
+% \begin{macrocode}
+%<artikel|rapport|boek>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+% \end{macrocode}
+%
+% Announce the Class name and its version:
+% \begin{macrocode}
+%<*artikel>
+%<type1>\ProvidesClass{artikel1}%
+%<type2>\ProvidesClass{artikel2}%
+%<type3>\ProvidesClass{artikel3}%
+%</artikel>
+%<*rapport>
+%<type1>\ProvidesClass{rapport1}%
+%<type3>\ProvidesClass{rapport3}%
+%</rapport>
+%<*boek>
+%<type1>\ProvidesClass{boek}%
+%<type3>\ProvidesClass{boek3}%
+%</boek>
+%<10pt>\ProvidesFile{ntg10.clo}
+%<11pt>\ProvidesFile{ntg11.clo}
+%<12pt>\ProvidesFile{ntg12.clo}
+%<*driver>
+\ProvidesFile{ntgclass.drv}
+%</driver>
+ [2004/06/07 v2.1a
+%<artikel|rapport|boek> NTG LaTeX document class]
+%<10pt|11pt|12pt> NTG LaTeX file (size option)]
+% \end{macrocode}
+% \changes{v2.0e}{1994/03/20}{removed the typeout statements they are
+% no longer needed separately}
+%
+% \section{The documentation driver file}
+%
+% We use the document class provided by the \LaTeXe distribution
+% for producing the documentation.
+% \changes{v2.0e}{1994/03/20}{moved the driver code in order not to
+% need a separate driver}
+% \begin{macrocode}
+%<*driver>
+]
+\documentclass{ltxdoc}
+% \end{macrocode}
+%
+% We don't want everything to appear in the index
+% \begin{macrocode}
+\DoNotIndex{\',\.,\@M,\@@input,\@Alph,\@alph,\@addtoreset,\@arabic}
+\DoNotIndex{\@badmath,\@centercr,\@cite}
+\DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
+\DoNotIndex{\@input,\@ixpt,\@m,\@minus,\@mkboth}
+\DoNotIndex{\@ne,\@nil,\@nomath,\@plus,\@set@topoint}
+\DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
+\DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
+\DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
+\DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
+\DoNotIndex{\advance,\Alph,\alph}
+\DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
+\DoNotIndex{\bullet}
+\DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
+\DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
+\DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
+\DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
+\DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
+\DoNotIndex{\fbox}
+\DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
+\DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
+\DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi}
+\DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
+\DoNotIndex{\input}
+\DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
+\DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
+\DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
+\DoNotIndex{\NeedsTeXFormat,\newdimen}
+\DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
+\DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
+\DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
+\DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
+\DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
+\DoNotIndex{\refstepcounter,\relax,\renewcommand}
+\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily}
+\DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength}
+\DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
+\DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
+\DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
+\DoNotIndex{\viipt,\vipt,\vskip,\vspace}
+\DoNotIndex{\wd,\xiipt,\year,\z@}
+% \end{macrocode}
+% We do want an index, using linenumbers
+% \changes{v2.0t}{1996/03/31}{Added \cs{CodelineIndex} to make sure a
+% \texttt{.idx} file is produced}
+% \begin{macrocode}
+\EnableCrossrefs
+\CodelineIndex
+% \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.
+% \begin{macrocode}
+\GetFileInfo{ntgclass.drv}
+% \end{macrocode}
+% Some commonly used abbreviations
+% \begin{macrocode}
+\newcommand*\Lopt[1]{\textsf {#1}}
+\newcommand*\file[1]{\texttt {#1}}
+\newcommand*\Lcount[1]{\textsl {\small#1}}
+\newcommand*\pstyle[1]{\textsl {#1}}
+\newcommand*\Lenv[1]{\textsf {#1}}
+% \end{macrocode}
+% We also want the full details.
+% \begin{macrocode}
+\begin{document}
+\DocInput{ntgclass.dtx}
+\PrintIndex
+% ^^A\PrintChanges
+\end{document}
+%</driver>
+% \end{macrocode}
+% \fi
+%
+%
+%
+% \changes{v2.0b}{1994/02/02}{Removed typos that were found in
+% classes.dtx, synced with that file}
+% \changes{v2.0d}{1994/02/23}{Fixed some errors in the documentation}
+% \changes{v2.0f}{1994/04/18}{Sync'ed with classes.dtx}
+% \changes{v2.0g}{1994/06/01}{Moved the identification section up
+% front; removed the use of \cs{fileversion} c.s.}
+% \changes{v2.0g}{1994/06/01}{Added the 'v' to \cs{changes}}
+% \changes{v2.0m}{1994/12/20}{Use \cs{newcommand*} instead of
+% \cs{newcommand} in most places}
+% \changes{v2.0m}{1994/12/23}{Made the oneside option work for the
+% book class}
+% \changes{v2.0p}{1995/08/09}{Use \cs{cs} instead of \cs{cmd} in
+% \cs{changes} entries}
+% \changes{v2.0p}{1995/08/10}{use \cs{hb@xt@} instead of \cs{hbox}
+% \texttt{to}}
+% \changes{v2.0x}{1997/09/08}{Repaired a few documentation bugs}
+%
+% \title{NTG Document Classes for \LaTeX{} version 2e\thanks{This file
+% has version number \fileversion, last revised \filedate.}}
+%
+% \author{%
+% Copyright (C) 1992 by Leslie Lamport \and
+% Copyright (C) 1994,1999 by Victor Eijkhout \and Johannes Braams
+% }
+% \date{\filedate}
+%
+% \maketitle
+% \tableofcontents
+%
+% \StopEventually{} ^^A
+%
+% \section{Introduction}
+%
+% This file contains the set of document classes that were made
+% available by Working Group 13 of the NTG (Nederlandstalige \TeX\
+% Gebruikersgroep). They are compatible with the standard \LaTeX2e
+% document classes, but implement different layouts.
+%
+% \section{The {\sc docstrip} modules}
+%
+% The following modules are used in the implementation to direct
+% {\sc docstrip} in generating the external files:
+% \begin{center}
+% \begin{tabular}{ll}
+% artikel & produce the documentclasses artikel?\\
+% rapport & produce the documentclasses rapport?\\
+% 10pt & produce the class option for 10pt\\
+% 11pt & produce the class option for 11pt\\
+% 12pt & produce the class option for 12pt\\
+% boek & produce the documentclasses boek?\\
+% type1 & produce the `1' variants of the classes\\
+% type2 & produce the `2' variants of the classes\\
+% type3 & produce the `3' variants of the classes\\
+% driver & produce a documentation driver file \\
+% \end{tabular}
+% \end{center}
+%
+% \section{Initial Code}
+%
+% In this part we define a few commands 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}
+%<*artikel|rapport|boek>
+\newcommand*\@ptsize{}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@restonecol}
+% When the document has to printed in two columns, we sometimes
+% have to temporarily switch to one column. This switch is used to
+% remember to switch back.
+% \begin{macrocode}
+\newif\if@restonecol
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@titlepage}
+% A switch to indicate if a titlepage has to be produced. For the
+% artikel document class the default is not to make a seperate
+% titlepage.
+% \begin{macrocode}
+\newif\if@titlepage
+%<artikel>\@titlepagefalse
+%<!artikel>\@titlepagetrue
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@openright}
+% \changes{v2.0f}{1994/04/18}{Macro added}
+% A switch to indicate if chapters must start on a right-hand page.
+% The default for the report class is no; for the book class it's
+% yes.
+% \begin{macrocode}
+%<!artikel>\newif\if@openright
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.0r}{1995/10/05}{Macro \cs{if@openbib} removed}
+%
+% \begin{macro}{\if@mainmatter}
+% \changes{v2.0m}{1994/12/23}{Moved the allocation of
+% \cs{if@mainmatter} here}
+%
+% The switch |\if@mainmatter|, only available in the document class
+% book, indicates whether we are processing the main material in
+% the book.
+% \begin{macrocode}
+%<boek>\newif\if@mainmatter \@mainmattertrue
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@oldtoc}
+% A switch to indicate if `old' layout of the table of contents
+% should be produced. These document classes normally produce a
+% table of contents that looks quite different from what the
+% standard classes produce.
+% \begin{macrocode}
+\newif\if@oldtoc
+\@oldtocfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@allcaps}
+% By default the text on the titlepage is set in capital letters.
+% This can be disabled by the option \Lopt{mctitle}, which sets the
+% switch |\if@allcaps| to false.
+% \begin{macrocode}
+\newif\if@allcaps
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@titlecentered}
+% In the document classes \file{artikel3} and \file{rapport3} the
+% default placement of the title that is produced by |\maketitle|
+% is flushleft. This can be changed by the switch
+% |\if@titlecentered|.
+% \begin{macrocode}
+%<type3>\newif\if@titlecentered
+%<type3>\@titlecenteredfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@revlabel}
+% These document classes need to be able to change the positioning
+% of the label in labeled lists. This switch is used for that
+% purpose.
+% \begin{macrocode}
+\newif\if@revlabel
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Declaration of Options}
+%
+%
+% \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.
+% Classes for real book production will probably add other paper
+% sizes and additionally the production of crop marks for trimming.
+% \changes{v1.0.7}{1993/12/09}{Removed typo, A4 is not 279 mm high}
+% \begin{macrocode}
+\DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}}
+\DeclareOption{a5paper}
+ {\setlength\paperheight {210mm}%
+ \setlength\paperwidth {148mm}}
+\DeclareOption{b5paper}
+ {\setlength\paperheight {250mm}%
+ \setlength\paperwidth {176mm}}
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{legalpaper}
+ {\setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{executivepaper}
+ {\setlength\paperheight {10.5in}%
+ \setlength\paperwidth {7.25in}}
+% \end{macrocode}
+%
+% The option \Lopt{landscape} switches the values of |\paperheight|
+% and |\paperwidth|, assuming the dimensions wer given for portrait
+% paper.
+% \begin{macrocode}
+\DeclareOption{landscape}
+ {\setlength\@tempdima {\paperheight}%
+ \setlength\paperheight {\paperwidth}%
+ \setlength\paperwidth {\@tempdima}}
+% \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}
+%
+% For two-sided printing we use the switch |\if@twoside|. In
+% addition we have to set the |\if@mparswitch| to get any margin
+% paragraphs into the outside margin.
+% \begin{macrocode}
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+% \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{Titlepage option}
+% An article usually has no separate titlepage, but the user can
+% request one.
+% \begin{macrocode}
+\DeclareOption{titlepage}{\@titlepagetrue}
+\DeclareOption{notitlepage}{\@titlepagefalse}
+% \end{macrocode}
+%
+% \subsection{openright option}
+% \changes{v2.0f}{1994/04/18}{Option openright and openany added}
+% This option determines whether or not a chapter must start on
+% a right-hand page
+% request one.
+% \begin{macrocode}
+%<!artikel>\DeclareOption{openright}{\@openrighttrue}
+%<!artikel>\DeclareOption{openany}{\@openrightfalse}
+% \end{macrocode}
+%
+% For these document classes there used to be a file
+% \file{voorwerk.sty} which was a replacement for
+% \file{titlepag.sty}. Therefore we also have the option
+% \Lopt{voorwerk}.
+% \begin{macrocode}
+\DeclareOption{voorwerk}{\@titlepagetrue}
+\DeclareOption{geenvoorwerk}{\@titlepagefalse}
+% \end{macrocode}
+%
+%
+% \subsection{Table of contents formatting}
+%
+% This document class uses a new layout for the table of contents,
+% but in order to maintain compatibility with the standard \LaTeXe
+% document classes we supply an extra option: \Lopt{oldtoc}. If
+% this option is specified the switch |\if@oldtoc| will be set
+% true.
+% \begin{macrocode}
+\DeclareOption{oldtoc}{\@oldtoctrue}
+% \end{macrocode}
+%
+% \subsection{Formatting of the title}
+%
+% The option \Lopt{titlecentered} changes the behaviour of the
+% |\maketitle| command. It then produces a title like it does for
+% the \file{artikel1} document class.
+% \begin{macrocode}
+%<type3>\DeclareOption{titlecentered}{\@titlecenteredtrue}
+% \end{macrocode}
+%
+% In the \file{rapport} and \file{boek} document styles the
+% titlepage uses all capital letters. The option \Lopt{mctitle}
+% (for `mixed case') prevents this.
+% \begin{macrocode}
+%<rapport|boek>\DeclareOption{mctitle}{\@allcapsfalse}
+%<rapport|boek>\DeclareOption{uctitle}{\@allcapstrue}
+% \end{macrocode}
+%
+% \subsection{Twocolumn printing}
+%
+% Two-column and one-column printing is again realized via a switch.
+% \begin{macrocode}
+\DeclareOption{onecolumn}{\@twocolumnfalse}
+\DeclareOption{twocolumn}{\@twocolumntrue}
+% \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. It loads code which is generated
+% automatically from the kernel files when the format is built.
+% If the equation number does get a special formatting then instead
+% of using the kernel file the class would need to provide the code
+% explicitly.
+% \begin{macrocode}
+\DeclareOption{leqno}{\input{leqno.clo}}
+% \end{macrocode}
+%
+% \subsection{Flush left displays}
+%
+% The option \Lopt{fleqn} redefines the displayed math environments
+% in such a way that they come out flush left, with an indentation
+% of |\mathindent| from the prevailing left margin. It loads code
+% which is generated automatically from the kernel files when the
+% format is built.
+% \changes{v1.0.8}{1993/12/18}{Corrected some typos. ASAJ.}
+% \begin{macrocode}
+\DeclareOption{fleqn}{\input{fleqn.clo}}
+% \end{macrocode}
+%
+% \subsection{Open bibliography}
+%
+% The option \Lopt{openbib} produces the ``open'' bibliography
+% style, in which each block starts on a new line, and succeeding
+% lines in a block are indented by |\bibindent|.
+% \changes{v2.0r}{1995/10/05}{openbib option reimplemented}
+% \begin{macrocode}
+\DeclareOption{openbib}{%
+% \end{macrocode}
+% First some hook into the bibliography environment is filled.
+% \begin{macrocode}
+ \AtEndOfPackage{%
+ \renewcommand\@openbib@code{%
+ \advance\leftmargin\bibindent
+ \itemindent -\bibindent
+ \listparindent \itemindent
+ \parsep \z@
+ }%
+% \end{macrocode}
+% In addition the definition of |\newblock| is overwritten.
+% \begin{macrocode}
+ \renewcommand\newblock{\par}}%
+}
+% \end{macrocode}
+%
+% \section{Executing Options}
+%
+% Here we execute the default options to initialize certain
+% variables. Note that the document class `boek' always uses two
+% sided printing.
+% \begin{macrocode}
+%<*artikel>
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,uctitle}
+%</artikel>
+%<*rapport>
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,uctitle,openany}
+%</rapport>
+%<*boek>
+\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,uctitle,openright}
+%</boek>
+% \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.
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+% Now that all the options have been executed we can load the
+% chosen class option file that contains all size dependent code.
+% \begin{macrocode}
+\input{ntg1\@ptsize.clo}
+%</artikel|rapport|boek>
+% \end{macrocode}
+%
+% \section{Loading Packages}
+%
+% These class files do not load additional packages.
+%
+%
+% \section{Document Layout}
+% \label{sec:maincode}
+%
+% In this section we are finally dealing with the nasty typographical
+% details.
+%
+% \subsection{Fonts}
+%
+% \LaTeX\ offers the user commands to change the size of the font,
+% relative to the `main' size. Each relative size changing command
+% |\size| executes the command
+% |\@setfontsize||\size|\meta{font-size}\meta{baselineskip} where:
+%
+% \begin{description}
+% \item[\meta{font-size}] The absolute size of the font to use from
+% now on.
+%
+% \item[\meta{baselineskip}] The normal value of |\baselineskip|
+% for the size of the font selected. (The actual value will be
+% |\baselinestretch| * \meta{baselineskip}.)
+% \end{description}
+%
+% A number of commands, defined in the \LaTeX{} kernel, shorten the
+% following definitions and are used throughout. They are:
+% \begin{center}
+% \begin{tabular}{ll@{\qquad}ll@{\qquad}ll}
+% \verb=\@vpt= & 5 & \verb=\@vipt= & 6 & \verb=\@viipt= & 7 \\
+% \verb=\@viiipt= & 8 & \verb=\@ixpt= & 9 & \verb=\@xpt= & 10 \\
+% \verb=\@xipt= & 10.95 & \verb=\@xiipt= & 12 & \verb=\@xivpt= & 14.4\\
+% ...
+% \end{tabular}
+% \end{center}
+%
+% \begin{macro}{\normalsize}
+% \begin{macro}{\@normalsize}
+% \changes{v2.0b}{1994/02/02}{\cs{@normalsize} now defined in the
+% kernel}
+%
+% 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
+%
+% \changes{v1.0.5}{1993/12/07}{\cs{normalsize} doesn't exist, so use
+% \cs{newcommand}}
+% \changes{v1.0.8}{1993/12/18}{\cs{normalsize} is now defined in the
+% kernel, so use \cs{renewcommand}. ASAJ.}
+% \begin{macrocode}
+%<*10pt|11pt|12pt>
+\renewcommand\normalsize{%
+%<*10pt>
+ \@setfontsize\normalsize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+%</10pt>
+%<*11pt>
+ \@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@
+%</11pt>
+%<*12pt>
+ \@setfontsize\normalsize\@xiipt{14.5}%
+ \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+%</12pt>
+% \end{macrocode}
+% The |\belowdisplayskip| is always equal to the
+% |\abovedisplayskip|. The parameters of the first level list are
+% always given by |\@listI|.
+% \begin{macrocode}
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+% \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}
+% \changes{v2.0f}{1994/04/18}{Use \cs{newcommand} instead of
+% \cs{renewcommand} because of change in the \LaTeX kernel}
+% This is similar to |\normalsize|.
+% \begin{macrocode}
+\newcommand*\small{%
+%<*10pt>
+ \@setfontsize\small\@ixpt{11}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+%</10pt>
+%<*11pt>
+ \@setfontsize\small\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+%</11pt>
+%<*12pt>
+ \@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@
+%</12pt>
+ \belowdisplayskip \abovedisplayskip
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\footnotesize}
+% \changes{v2.0f}{1994/04/18}{Use \cs{newcommand} instead of
+% \cs{renewcommand} because of change in the \LaTeX kernel}
+% This is similar to |\normalsize|.
+% \begin{macrocode}
+\newcommand*\footnotesize{%
+%<*10pt>
+ \@setfontsize\footnotesize\@viiipt{9.5}%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+%</10pt>
+%<*11pt>
+ \@setfontsize\footnotesize\@ixpt{11}%
+ \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+%</11pt>
+%<*12pt>
+ \@setfontsize\footnotesize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+%</12pt>
+ \belowdisplayskip \abovedisplayskip
+}
+% \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}
+% \changes{v2.0f}{1994/04/18}{Use \cs{newcommand} instead of
+% \cs{renewcommand} because of change in the \LaTeX kernel}
+% 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}
+%<*10pt>
+\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}}
+%</10pt>
+%<*11pt>
+\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}}
+%</11pt>
+%<*12pt>
+\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
+%</12pt>
+%</10pt|11pt|12pt>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \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}
+%<*artikel|rapport|boek>
+\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 \emph{not} stretch the baselines. Note that if this command
+% doesn't resolve to ``empty'' any \texttt{plus} or \texttt{minus}
+% part in the specification of |\baselineskip| is ignored.
+% \begin{macrocode}
+\renewcommand\baselinestretch{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\unitindent}
+% These document classes all use a single dimension for a number of
+% layout parameters:
+% \begin{itemize}
+% \item the label width in section heading,
+% \item the |\parindent|
+% \item the footnote label indent (= half |\unitindent|)
+% \item listindent on the first level
+% \end{itemize}
+% \begin{macrocode}
+\newdimen\unitindent
+% \end{macrocode}
+% The default setting accomodates three levels of single digit
+% section numbering.
+% \begin{macrocode}
+%<*type1|type3>
+{\setbox0\hbox{\normalsize\rmfamily 2.2.2\hskip.5em}
+ \global\unitindent=\wd0}
+%</type1|type3>
+% \end{macrocode}
+%
+% \begin{macro}{\othermargin}
+% Other indentations are maximal label width plus white space.
+% \changes{v2.0l}{1994/07/11}{\cs{othermargin} is also used in type2
+% document classes; changed docstrip guards accordingly}
+% \begin{macrocode}
+\newdimen\othermargin
+{\setbox0\hbox{\normalsize (m)\hskip.6em}\global\othermargin=\wd0}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{if@needwriteindent}
+% If this is not enough, a new width is calculated, set, and the
+% file{.aux} file contains an instruction that will set
+% |\unitindent| on the next run.
+%
+% For this we need a switch
+% \begin{macrocode}
+%<*type1|type3>
+\newif\if@needwriteindent
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@indentset}
+% And a command that sets the various parameters.
+% \begin{macrocode}
+\newcommand*\@indentset{%
+%<!type3> \global\parindent=\unitindent
+ \global\leftmargini=\unitindent
+ \global\@needwriteindenttrue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@writeindent}
+% The |\end{document}| command will call |\@writeindent| to write
+% the final width of |\unitindent| on the \file{.aux} file. Also a
+% command is written to set |\unitindent|. To be compatible with
+% other document classes a check is written to the \file{.aux} file
+% for the existence of |\unitindent|. This prevents nasty errors
+% when another document class is used.
+% \begin{macrocode}
+\newcommand*\@writeindent[1]{\immediate\write\@mainaux
+ {\string\@ifundefined{unitindent}{\string\newdimen\string\unitindent
+ \let\string\@indentset\relax}{}}
+ \immediate\write\@mainaux{\global\string\unitindent=#1\string\relax
+ \string\@indentset \string\relax}}
+% \end{macrocode}
+% \end{macro}
+%
+% We need to use the hook into |\end{document}| to write the final
+% value of |\unitindent| om the file{.aux} file for the next run.
+% \begin{macrocode}
+\AtEndDocument{%
+ \if@filesw
+ \if@needwriteindent
+ \@writeindent{\the\unitindent}
+ \fi
+ \fi}
+%</type1|type3>
+% \end{macrocode}
+%
+% In the document class \file{artikel2} the width of |\unitindent|
+% is fixed and related to |\othermargin|.
+% \begin{macrocode}
+%<type2>\unitindent=2\othermargin
+% \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. The value
+% of |\parindent| depends on whether we are in two column mode.
+% \begin{macrocode}
+%<*type1>
+\setlength\parskip{0\p@}
+\setlength\parindent{\unitindent}
+%</type1>
+%<*type3>
+\setlength\parskip{.5\baselineskip \@plus .1\baselineskip
+ \@minus .1\baselineskip}
+\setlength\parindent{\z@}
+%</type3>
+% \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|,
+% dependent 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 discourrage 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}
+% Discourrage (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
+%</artikel|rapport|boek>
+% \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}
+% \begin{macro}{\topskip}
+% 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}
+%<*10pt|11pt|12pt>
+\setlength\headheight{12\p@}
+\setlength\headsep {25\p@}
+%<10pt>\setlength\topskip {10\p@}
+%<11pt>\setlength\topskip {11\p@}
+%<12pt>\setlength\topskip {12\p@}
+% \end{macrocode}
+% \end{macro}
+% \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{30\p@} %
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maxdepth}
+% \changes{v2.0r}{1995/10/05}{Added setting of \cs{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
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The dimension of text}
+%
+% \begin{macro}{\textwidth}
+% When we are in compatibility mode we have to make sure that the
+% dimensions of the printed area are not different from what the
+% user was used to see.
+%
+% \begin{macrocode}
+\if@compatibility
+ \if@twocolumn
+ \setlength\textwidth{410\p@}
+ \else
+%<10pt> \setlength\textwidth{345\p@}
+%<11pt> \setlength\textwidth{360\p@}
+%<12pt> \setlength\textwidth{390\p@}
+ \fi
+% \end{macrocode}
+% When we are not in compatibility mode we can set some of the
+% dimensions differently, taking into account the paper size for
+% instance.
+% \begin{macrocode}
+\else
+% \end{macrocode}
+% First, we calculate the maximum textwidth, which will we will
+% allow on the selected paper and store it in |\@tempdima|. Then we
+% store the length of a line with approximately 60 -- 70 characters
+% in |\@tempdimb|. The values given are taken from the file
+% \texttt{a4.sty} by Johannes Braams and Nico Poppelier and are
+% more or less suitable when Computer Modern fonts are used.
+% \begin{macrocode}
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+%<10pt> \setlength\@tempdimb{361\p@}
+%<11pt> \setlength\@tempdimb{376\p@}
+%<12pt> \setlength\@tempdimb{412\p@}
+% \end{macrocode}
+%
+% Now we can set the |\textwidth|, depending on whether we will be
+% setting one or two columns.
+%
+% In two column mode each \emph{column} shouldn't be wider than
+% |\@tempdimb| (which could happen on \textsc{a3} paper for
+% instance).
+% \begin{macrocode}
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+% \end{macrocode}
+
+% In one column mode the text should not be wider than the minimum
+% of the paperwidth (minus 2 inches for the margins) and the
+% maximum length of a line as defined by the number of characters.
+% \begin{macrocode}
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+\fi
+% \end{macrocode}
+%
+% Here we modify the width of the text a little to be a whole
+% number of points.
+% \begin{macrocode}
+\if@compatibility
+\else
+ \@settopoint\textwidth
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textheight}
+% Now that we have computed the width of the text, we have to take
+% care of the height. The |\textheight| is the height of text
+% (including footnotes and figures, excluding running head and
+% foot).
+%
+% First make sure that the compatibility mode gets the same
+% dimensions as we had with \LaTeX2.09. The number of lines was
+% calculated as the floor of the old |\textheight| minus
+% |\topskip|, divided by |\baselineskip| for |\normalsize|. The
+% old value of |\textheight| was 528pt.
+%
+% \begin{macrocode}
+\if@compatibility
+%<10pt> \setlength\textheight{43\baselineskip}
+%<11pt> \setlength\textheight{38\baselineskip}
+%<12pt> \setlength\textheight{36\baselineskip}
+% \end{macrocode}
+%
+% Again we compute this, depending on the papersize and depending
+% on the baselineskip that is used, in order to have a whole number
+% of lines on the page.
+% \begin{macrocode}
+\else
+ \setlength\@tempdima{\paperheight}
+% \end{macrocode}
+%
+% We leave at least a 1 inch margin on the top and the bottom of
+% the page.
+% \begin{macrocode}
+ \addtolength\@tempdima{-2in}
+% \end{macrocode}
+%
+% We also have to leave room for the running headers and footers.
+% \begin{macrocode}
+ \addtolength\@tempdima{-1.5in}
+% \end{macrocode}
+%
+% Then we divide the result by the current |\baselineskip| and
+% store this in the count register |\@tempcnta|, which then
+% contains the number of lines that fit on this page.
+% \begin{macrocode}
+ \divide\@tempdima\baselineskip
+ \@tempcnta=\@tempdima
+% \end{macrocode}
+%
+% From this we can calculate the height of the text.
+% \begin{macrocode}
+ \setlength\textheight{\@tempcnta\baselineskip}
+\fi
+% \end{macrocode}
+%
+% The first line on the page has a height of |\topskip|.
+% \begin{macrocode}
+\advance\textheight by \topskip
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Margins}
+%
+% Most of the values of these parameters are now calculated, based
+% on the papersize in use. In the calculations the |\marginparsep|
+% needs to be taken into account so we give it its value first.
+%
+% \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}
+\if@twocolumn
+ \setlength\marginparsep {10\p@}
+\else
+%<10pt> \setlength\marginparsep{11\p@}
+%<11pt> \setlength\marginparsep{10\p@}
+%<12pt> \setlength\marginparsep{10\p@}
+\fi
+%<10pt|11pt>\setlength\marginparpush{5\p@}
+%<12pt>\setlength\marginparpush{7\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Now we can give the values for the other margin parameters. For
+% native \LaTeXe, these are calculated.
+% \begin{macro}{\oddsidemargin}
+% \begin{macro}{\evensidemargin}
+% \begin{macro}{\marginparwidth}
+% First we give the values for the compatibility mode.
+%
+% Values for two-sided printing:
+% \begin{macrocode}
+\if@compatibility
+ \if@twoside
+%<10pt> \setlength\oddsidemargin {44\p@}
+%<11pt> \setlength\oddsidemargin {36\p@}
+%<12pt> \setlength\oddsidemargin {21\p@}
+%<10pt> \setlength\evensidemargin {82\p@}
+%<11pt> \setlength\evensidemargin {74\p@}
+%<12pt> \setlength\evensidemargin {59\p@}
+%<10pt> \setlength\marginparwidth {107\p@}
+%<11pt> \setlength\marginparwidth {100\p@}
+%<12pt> \setlength\marginparwidth {85\p@}
+% \end{macrocode}
+% Values for one-sided printing:
+% \begin{macrocode}
+ \else
+%<10pt> \setlength\oddsidemargin {63\p@}
+%<11pt> \setlength\oddsidemargin {54\p@}
+%<12pt> \setlength\oddsidemargin {39.5\p@}
+%<10pt> \setlength\evensidemargin {63\p@}
+%<11pt> \setlength\evensidemargin {54\p@}
+%<12pt> \setlength\evensidemargin {39.5\p@}
+%<10pt> \setlength\marginparwidth {90\p@}
+%<11pt> \setlength\marginparwidth {83\p@}
+%<12pt> \setlength\marginparwidth {68\p@}
+ \fi
+% \end{macrocode}
+% And values for two column mode:
+% \begin{macrocode}
+ \if@twocolumn
+ \setlength\oddsidemargin {30\p@}
+ \setlength\evensidemargin {30\p@}
+ \setlength\marginparwidth {48\p@}
+ \fi
+% \end{macrocode}
+%
+% When we are not in compatibility mode we can take the dimensions
+% of the selected paper into account.
+%
+% The values for |\oddsidemargin| and |\marginparwidth| will be set
+% depending on the status of the |\if@twoside|.
+%
+% If |@twoside| is true (which is always the case for boek) we make
+% the inner margin smaller than the outer one.
+% \changes{v2.0f}{1994/04/18}{New algorithm for \cs{oddsidemargin}}
+% \begin{macrocode}
+\else
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+% \end{macrocode}
+% The width of the margin for text is set to the remainder of the
+% width except for a `real margin' of white space of width 0.4in.
+% A check should perhaps be built in to ensure that the (text)
+% margin width does not get too small!
+%
+% \changes{v2.0f}{1994/04/18}{New algorithm for \cs{marginparwidth}}
+% \changes{v2.0p}{1995/08/09}{Also take \cs{marginparsep} into account
+% here}
+% \begin{macrocode}
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+% \end{macrocode}
+% For one-sided printing we center the text on the page, by
+% calculating the difference between |textwidth| and
+% |\paperwidth|. Half of that difference is than used for
+% the margin (thus |\oddsidemargin| is |1in| less).
+% \begin{macrocode}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+% \end{macrocode}
+% With the above algorithm the |\marginparwidth| can come out quite
+% large which we may not want.
+% \begin{macrocode}
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+% \end{macrocode}
+% Having done these calculations we make them pt values.
+% \begin{macrocode}
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+% \end{macrocode}
+%
+% The |\evensidemargin| can now be computed from the values set
+% above.
+% \begin{macrocode}
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+% \end{macrocode}
+% Setting |\evensidemargin| to a full point value may produce a
+% small error. However it will lie within the error range a
+% doublesided printer of todays technology can accuratly print.
+% \begin{macrocode}
+ \@settopoint\evensidemargin
+\fi
+% \end{macrocode}
+% \end{macro}
+% \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.
+%
+% It can now be computed from the values set above.
+% \begin{macrocode}
+\if@compatibility
+ \setlength\topmargin{27pt}
+\else
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip} % this might be wrong!
+% \end{macrocode}
+% By changing the factor in the next line the complete page
+% can be shifted vertically.
+% \changes{v2.0m}{1994/07/13}{Moved rounding of \cs{topmargin} to
+% native mode}
+% \begin{macrocode}
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+\fi
+% \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}
+%<10pt>\setlength\footnotesep{6.65\p@}
+%<11pt>\setlength\footnotesep{7.7\p@}
+%<12pt>\setlength\footnotesep{8.4\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}
+%<10pt>\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}
+%<11pt>\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@}
+%<12pt>\setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@}
+%</10pt|11pt|12pt>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Float placement parameters}
+%
+% All float parameters are given default values in the \LaTeXe{}
+% kernel. For this reason parameters that are not counters
+% need to be set with |\renewcommand|.
+%
+% \paragraph{Limits for the placement of floating objects}
+%
+% \begin{macro}{\c@topnumber}
+% The \Lcount{topnumber} counter holds the maximum number of
+% floats that can appear on the top of a text page.
+% \begin{macrocode}
+%<*artikel|rapport|boek>
+\setcounter{topnumber}{2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\topfraction}
+% This indicates the maximum part of a text page that can be
+% occupied by floats at the top.
+% \changes{v1.0.8}{1993/12/18}{Replaced \cs{newcommand} with
+% \cs{renewcommand}. ASAJ.}
+% \begin{macrocode}
+\renewcommand\topfraction{.7}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@bottomnumber}
+% The \Lcount{bottomnumber} counter holds the maximum number of
+% floats that can appear on the bottom of a text page.
+% \begin{macrocode}
+\setcounter{bottomnumber}{1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bottomfraction}
+% This indicates the maximum part of a text page that can be
+% occupied by floats at the bottom.
+% \changes{v1.0.8}{1993/12/18}{Replaced \cs{newcommand} with
+% \cs{renewcommand}. ASAJ.}
+% \begin{macrocode}
+\renewcommand\bottomfraction{.3}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@totalnumber}
+% This indicates the maximum number of floats that can appear on
+% any text page.
+% \begin{macrocode}
+\setcounter{totalnumber}{3}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textfraction}
+% This indicates the minimum part of a text page that has to be
+% occupied by text.
+% \changes{v1.0.8}{1993/12/18}{Replaced \cs{newcommand} with
+% \cs{renewcommand}. ASAJ.}
+% \begin{macrocode}
+\renewcommand\textfraction{.2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\floatpagefraction}
+% This indicates the minimum part of a page that has to be
+% occupied by floating objects before a `float page' is produced.
+% \changes{v1.0.8}{1993/12/18}{Replaced \cs{newcommand} with
+% \cs{renewcommand}. ASAJ.}
+% \begin{macrocode}
+\renewcommand\floatpagefraction{.5}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@dbltopnumber}
+% The \Lcount{dbltopnumber} counter holds the maximum number of
+% two column floats that can appear on the top of a two column text
+% page.
+% \begin{macrocode}
+\setcounter{dbltopnumber}{2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbltopfraction}
+% This indicates the maximum part of a two column text page that
+% can be occupied by two column floats at the top.
+% \changes{v1.0.8}{1993/12/18}{Replaced \cs{newcommand} with
+% \cs{renewcommand}. ASAJ.}
+% \begin{macrocode}
+\renewcommand\dbltopfraction{.7}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dblfloatpagefraction}
+% This indicates the minimum part of a page that has to be
+% occupied by two column wide floating objects before a `float
+% page' is produced.
+% \changes{v1.0.8}{1993/12/18}{Replaced \cs{newcommand} with
+% \cs{renewcommand}. ASAJ.}
+% \begin{macrocode}
+\renewcommand\dblfloatpagefraction{.5}
+%</artikel|rapport|boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \paragraph{Floats on a text page}
+%
+% \begin{macro}{\floatsep}
+% \begin{macro}{\textfloatsep}
+% \begin{macro}{\intextsep}
+% When a floating object is placed on a page with text, these
+% parameters control the seperation between the float and the other
+% objects on the page. These parameters are used for both
+% one-column mode and single-column floats in two-column mode.
+%
+% |\floatsep| is the space between adjacent floats that are moved
+% to the top or bottom of the text page.
+%
+% |\textfloatsep| is the space between the main text and floats
+% at the top or bottom of the page.
+%
+% |\intextsep| is the space between in-text floats and the text.
+% \begin{macrocode}
+%<*10pt>
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+%</10pt>
+%<*11pt>
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+%</11pt>
+%<*12pt>
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@}
+%</12pt>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dblfloatsep}
+% \begin{macro}{\dbltextfloatsep}
+% When floating objects that span the whole |\textwidth| are placed
+% on a text page when we are in twocolumn mode the separation
+% between the float and the text is controlled by |\dblfloatsep|
+% and |\dbltextfloatsep|.
+%
+% |\dblfloatsep| is the space between adjacent floats that are moved
+% to the top or bottom of the text page.
+%
+% |\dbltextfloatsep| is the space between the main text and floats
+% at the top or bottom of the page.
+%
+% \begin{macrocode}
+%<*10pt>
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+%</10pt>
+%<*11pt>
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+%</11pt>
+%<*12pt>
+\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+%</12pt>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \paragraph{Floats on their own page or column}
+%
+% \begin{macro}{\@fptop}
+% \begin{macro}{\@fpsep}
+% \begin{macro}{\@fpbot}
+% When floating objects are placed on seperate pages the layout of
+% such pages is controlled by these parameters. At the top of the
+% page |\@fptop| amount of stretchable whitespace is inserted, at
+% the bottom of the page we get an |\@fpbot| amount of stretchable
+% whitespace. Between adjacent floats the |\@fpsep| is inserted.
+%
+% These paramaters are used for the placement of floating objects
+% in one column mode, or in single column floats in two column
+% mode.
+%
+% Note that at least one of the two parameters |\@fptop| and
+% |\@fpbot| should contain a |plus ...fil| to allow filling the
+% remaining empty space.
+% \begin{macrocode}
+%<*10pt>
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{8\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+%</10pt>
+%<*11pt>
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{8\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+%</11pt>
+%<*12pt>
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{10\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+%</12pt>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@dblfptop}
+% \begin{macro}{\@dblfpsep}
+% \begin{macro}{\@dblfpbot}
+% Double column floats in two column mode are handled with similar
+% parameters.
+% \begin{macrocode}
+%<*10pt>
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{8\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+%</10pt>
+%<*11pt>
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{8\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+%</11pt>
+%<*12pt>
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{10\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+%</12pt>
+%<*artikel|rapport|boek>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \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}
+%
+% \begin{macro}{\thispagestyle}
+% Several commands (|\index|, |\maketitle|) give a
+% |\thispagestyle{plain}| command, which will overrule a
+% |\pagestyle{empty}| command. This situation is almost always
+% unwanted. Therefore we provide a more careful definition.
+%
+% First save the original definition.
+% \begin{macrocode}
+\let\Thispagestyle\thispagestyle
+% \end{macrocode}
+% Then we provide the new definition, for which we must also adapt
+% |\pagestyle| a little.
+% \begin{macrocode}
+\newcommand*\@emptypagestyle{empty}
+\renewcommand*\pagestyle[1]{\@nameuse{ps@#1}\def\@currentpagestyle{#1}}
+\renewcommand*\thispagestyle[1]{%
+ \ifx\@currentpagestyle\@emptypagestyle
+ \else
+ \global\@specialpagetrue
+ \gdef\@specialstyle{#1}%
+ \fi}
+% \end{macrocode}
+% \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.
+%
+% \subsubsection{Defining the page styles}
+% \label{sec:pagestyle}
+%
+% The pagestyle \pstyle{empty} is defined in \file{latex.dtx}, but
+% the pagestyle \pstyle{plain} is slightly altered here. The
+% difference is that the page numbers are set flush right in
+% onesided and flush left and right in the twosided style.
+%
+% \begin{macro}{\ps@plain}
+%
+% \begin{macrocode}
+\renewcommand*\ps@plain{%
+% \end{macrocode}
+% The running head are empty in this pagestyle, the page number
+% appears in the running foot.
+% \begin{macrocode}
+ \let\@oddhead\@empty\let\@evenhead\@empty
+ \def\@oddfoot{\hfil\PageFont\thepage}%
+ \if@twoside
+ \def\@evenfoot{\PageFont\thepage\hfil}%
+ \else
+ \let\@evenfoot\@oddfoot
+ \fi
+% \end{macrocode}
+% Because the running heads should be empty we |let| |\@mkboth| to
+% |\@gobbletwo|, thus disabling the mark commands.
+% \begin{macrocode}
+ \let\@mkboth\@gobbletwo}
+% \end{macrocode}
+% \end{macro}
+%
+% \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 are empty in this page style, the running head
+% contains the page number and one of the marks.
+% \begin{macrocode}
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{{\PageFont\thepage}\hfil\MarkFont\leftmark}%
+ \def\@oddhead{{\MarkFont\rightmark}\hfil\PageFont\thepage}%
+% \end{macrocode}
+%
+% When using this page style, the contents of the running head is
+% determined by the chapter and section titles. So we |\let|
+% |\@mkboth| to |\markboth|.
+% \begin{macrocode}
+ \let\@mkboth\markboth
+% \end{macrocode}
+%
+% For the artikel document classes we define |\sectionmark| to clear
+% the right mark and put the number of the section (when it is
+% numbered) and its title in the left mark. The rightmark is set by
+% |\subsectionmark| to contain the subsection titles.
+%
+% Note the use of |##1| for the parameter of the |\sectionmark|
+% command, which will be defined when |\ps@headings| is executed.
+%
+% \changes{v2.0p}{1995/08/09}{Removed extra dot after \cs{thesection}
+% (PR 1519)}
+% \changes{v2.0p}{1995/08/09}{Replace \cs{hskip} \texttt{1em}\cs{relax}
+% with \cs{quad}}
+% \changes{v2.0p}{1995/08/10}{Use \cs{MakeUppercase} instead of
+% \cs{uppercase}}
+% \begin{macrocode}
+%<*artikel>
+ \def\sectionmark##1{%
+ \markboth {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection\quad
+ \fi
+ ##1}}{}}%
+ \def\subsectionmark##1{%
+ \markright {%
+ \ifnum \c@secnumdepth >\@ne
+ \thesubsection\quad
+ \fi
+ ##1}}}
+%</artikel>
+% \end{macrocode}
+%
+% In the rapport and boek document classes we use the |\chaptermark|
+% and |\sectionmark| macros to fill the running heads.
+%
+% Note the use of |##1| for the parameter of the |\chaptermark|
+% command, which will be defined when |\ps@headings| is executed.
+%
+% \begin{macrocode}
+%<*rapport|boek>
+ \def\chaptermark##1{%
+ \markboth {\MakeUppercase{\ifnum \c@secnumdepth >\m@ne
+%<boek> \if@mainmatter
+ \@chapapp\ \thechapter. \ %
+%<boek> \fi
+ \fi
+ ##1}}{}}%
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{\ifnum \c@secnumdepth >\z@
+ \thesection. \ \fi
+ ##1}}}}
+%</rapport|boek>
+% \end{macrocode}
+%
+% The definition of |\ps@headings| for one sided printing can be
+% much simpler, because we treat even and odd pages the same.
+% Therefore we don't need to define |\@even...|.
+% \begin{macrocode}
+\else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\MarkFont\rightmark}\hfil\PageFont\thepage}%
+ \let\@mkboth\markboth
+% \end{macrocode}
+% We use |\markright| now instead of |\markboth| as we did for two
+% sided printing.
+% \begin{macrocode}
+%<*artikel>
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \thesection\quad
+ \fi
+ ##1}}}}
+%</artikel>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*rapport|boek>
+ \def\chaptermark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+%<boek> \if@mainmatter
+ \@chapapp\ \thechapter. \ %
+%<boek> \fi
+ \fi
+ ##1}}}}
+%</rapport|boek>
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@myheadings}
+% The definition of the page style \pstyle{myheadings} is fairly
+% simple because the user determines the contents of the running
+% head himself by using the |\markboth| and |\markright| commands.
+%
+% \begin{macrocode}
+\def\ps@myheadings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{{\PageFont\thepage}\hfil\MarkFont\leftmark}%
+ \def\@oddhead{{\MarkFont\rightmark}\hfil\PageFont\thepage}%
+% \end{macrocode}
+%
+% We have to make sure that the marking commands that are used by
+% the chapter and section headings are disabled. We do this
+% |\let|ting them to a macro that gobbles its argument(s).
+% \begin{macrocode}
+ \let\@mkboth\@gobbletwo
+%<!artikel> \let\chaptermark\@gobble
+ \let\sectionmark\@gobble
+%<artikel> \let\subsectionmark\@gobble
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\PageFont}
+% \begin{macro}{\MarkFont}
+% These macros are use to store the fonts that are used to typeset
+% the pagenumber (|\PageFont|) and the marks (|\MarkFont|) in the
+% running head and feet.
+% \begin{macrocode}
+\newcommand*\PageFont{\rmfamily}
+\newcommand*\MarkFont{\slshape}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\RunningFonts}
+% Use this macro to change the fonts that are used in the running
+% heads.
+% \begin{macrocode}
+\newcommand*\RunningFonts[2]{%
+ \renewcommand*\PageFont{#1}\renewcommand*\MarkFont{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Document Markup}
+%
+% \subsection{The title}
+%
+% \begin{macro}{\title}
+% \begin{macro}{\author}
+% \begin{macro}{\date}
+% These three macros are provided by \file{latex.dtx} to provide
+% information about the title, author(s) and date of the document.
+% The information is stored away in internal control sequences.
+% It is the task of the |\maketitle| command to use the
+% information provided. The definitions of these macros are shown
+% here for information.
+% \begin{macrocode}
+% \newcommand*\title[1]{\gdef\@title{#1}}
+% \newcommand*\author[1]{\gdef\@author{#1}}
+% \newcommand*\date[1]{\gdef\@date{#1}}
+% \end{macrocode}
+% The |\date| macro gets today's date by default.
+% \begin{macrocode}
+% \gdef\@date{\today}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\TitleFont}
+% \changes{v2.0d}{1994/02/23}{Macro added}
+% This selects the font to use in the title of the document.
+% \begin{macrocode}
+\newcommand*\TitleFont{\bfseries}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maketitle}
+% The definition of |\maketitle| depends on whether a seperate
+% title page is made. This is the default for the rapport and boek
+% document classes, but for the artikel classes it is optional.
+% Note that the title, author and date information is printed in
+% capital letters by default. This can be changed by the option
+% \Lopt{mctitle}.
+%
+% When we are making a title page, we locally redefine
+% |\footnotesize| and |\footnoterule| to change the appearance of
+% the footnotes that are produced by the |\thanks| command.
+% \changes{v2.0z}{2004/02/20}{Make \cs{footnote} work in the title}
+% \begin{macrocode}
+%<!boek>\if@titlepage
+\renewcommand*\TitleFont{\rmfamily}
+\newcommand*\maketitle{%
+ \begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \let \footnote \thanks
+% \end{macrocode}
+% Footnotes on the titlepage, generated by the use of |\thanks|,
+% use symbols in these document classes.
+% \changes{v2.0v}{1997/03/02}{Use \cs{textendash} instead of
+% \texttt{-{}-}}
+% \begin{macrocode}
+ \long\def\@makefntext##1{\parindent\z@
+ \def\labelitemi{\textendash}\@revlabeltrue
+ \leavevmode\@textsuperscript{\@thefnmark}\kern1em\relax ##1}
+ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
+% \end{macrocode}
+% We center the entire title vertically; the centering is set off a
+% little by adding a |\vskip|. In compatibility mode the pagenumber
+% is set to 0 to keep the behaviour of \LaTeX\ 2.09 style files
+% \begin{macrocode}
+ \if@compatibility\setcounter{page}{0}\fi
+ \null\vfil
+ \vskip 60\p@
+% \end{macrocode}
+% Then we set the title, in a |\LARGE| font; leave a little space
+% and set the author(s) in a |\large| font. We do this inside a
+% tabular environment to get them in a single column.
+% Before the date we leave a little whitespace again.
+% \changes{v2.0d}{1994/02/23}{Added selection of font by
+% \cs{TitleFont}}
+% \begin{macrocode}
+ \begin{center}%
+ \TitleFont
+ {\LARGE \def\\{\penalty -\@M}
+ \if@allcaps
+ \expandafter\uc@nothanks\@title\thanks\relax
+ \else
+ \@title
+ \fi\par}%
+ \vskip 3em%
+ {\large
+ \lineskip .75em \parindent\z@
+ \begin{tabular}[t]{c}%
+ \if@allcaps
+ \expandafter\uc@authornothanks\@author\and\relax
+ \else
+ \@author
+ \fi
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\large
+ \if@allcaps
+ \uppercase\expandafter{\@date}%
+ \else
+ \@date
+ \fi\par}%
+ \end{center}\par
+% \end{macrocode}
+% Then we call |\@thanks| to print the information that goes into
+% the footnote and finish the page.
+% \begin{macrocode}
+ \@thanks
+ \vfil\null
+ \end{titlepage}%
+% \end{macrocode}
+% We reset the \Lcount{footnote} counter, disable |\thanks| and
+% |\maketitle| and save some storage space by emptying the internal
+% information macros.
+% \changes{v2.0r}{1995/10/05}{use \cs{let} to save space, empty
+% \cs{@date} as well}
+% \begin{macrocode}
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@title\@empty
+ \global\let\@date\@empty
+% \end{macrocode}
+% After the title is set the declaration commands |\title|, etc.\
+% can vanish.
+% The definition of |\and| makes only sense within the argument of
+% |\author| so this can go as well.
+% \changes{v2.0r}{1995/10/05}{Disable \cs{title} and similar decls}
+% \begin{macrocode}
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+% \end{macrocode}
+%
+% We want to have the title, author and date information in
+% uppercase, but we have to be very carefull not to put too much
+% text in uppercase. The macros that perform the filtering of texts
+% that shouldn't be in uppercase were developped with th help of
+% Howard Trickey.
+%
+% \begin{macro}{\uc@nothanks}
+% This macro takes all the text up to the first use of |\thanks|
+% and passes it to |\uppercase|. The use of |\futurelet| will store
+% the token \emph{after} the |\thanks| in |\@tempa|. The macro
+% |\u@tx| uses that information to determine what to do next.
+% \begin{macrocode}
+\def\uc@nothanks#1\thanks{\uppercase{#1}\futurelet\@tempa\uc@tx}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\uc@authornothanks}
+% A document can have more than one author. Usually they are
+% seperated with |\and|. For each author a footnote --using
+% |\thanks| can be present. Therefore this macro takes all the text
+% up to the first use of |\and|, thus picking up all the
+% information for one author. This is than passsed to
+% |\uc@nothanks|, which checks for the presence of |\thanks|. For
+% this to work the argument of |\uc@nothanks| has to be delimited
+% by |\thanks\relax|.
+% \begin{macrocode}
+\def\uc@authornothanks#1\and{\uc@nothanks#1\thanks\relax
+% \end{macrocode}
+% Then we have to check whether the |\and| we ound earlier was put
+% in by the user, in which case information for another user will
+% follow, or by the call from another macro, in which case the
+% |\and| will be followed by a |\relax| token. The |\futurelet|
+% contstruct stores the first token \emph{after} the |\and| in
+% |\@tempa| to be inspected by |\u@ax|.
+% \begin{macrocode}
+ \futurelet\@tempa\uc@ax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\uc@ax}
+% When |\@tempa| contains a |\relax| token nothing needs to be
+% done, when it doesn't we put in a linebreak |\\| the word `and'
+% (stored in |\andname| so that this control sequence can be
+% redeined for other languages), another linebreak and we call
+% |\uc@authornothanks| to continue processing. The |\expandafter|
+% lets \TeX\ see the |\fi| first.
+% \begin{macrocode}
+\def\uc@ax{%
+ \ifx\@tempa\relax
+ \else
+ \\ \andname \\ \expandafter\uc@authornothanks
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\uc@tx}
+% This macro simply checks whether |\@tempa| contains a |\relax|
+% token. When it doesn't further processing is performed by
+% |\u@ty|.
+% \begin{macrocode}
+\def\uc@tx{\ifx\@tempa\relax
+ \else \expandafter\uc@ty \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\uc@ty}
+% The macro |\uc@ty| gets executed when the |\thanks| that
+% delimited text earlier on in the processing had a real argument.
+% In that case it was a |\thanks| put in by the user, \emph{not} by
+% these macros. Therefore the argument is now passed to |\thanks|
+% and processing continues by calling |\uc@nothanks|.
+% \begin{macrocode}
+\def\uc@ty#1{\thanks{#1}\uc@nothanks}
+% \end{macrocode}
+% \end{macro}
+%
+% When the title is not on a page of its own, the layout of the
+% title is a little different. We use symbols to mark the footnotes
+% and we have to deal with two column documents.
+%
+% Therefore we first start a new group to keep changes local. Then
+% we redefine |\thefootnote| to use |\fnsymbol|; and change
+% |\@makefnmark| so that footnotemarks have zero width (to make the
+% centering of the author names look better). We also want raised
+% footnotemarkers in the footnotes here.
+% \changes{v2.0p}{1995/08/10}{Now use \cs{@textsuperscript} in the
+% definition of footnotes}
+% \begin{macrocode}
+%<*!boek>
+\else
+\newcommand*\maketitle{\par
+ \begingroup
+ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
+%<!type2> \def\@makefnmark{\rlap{%
+%<!type2> \@textsuperscript{\normalfont\@thefnmark}}}%
+%<!type2> \long\def\@makefntext{\@xmakefntext{%
+%<!type2> \@textsuperscript{\normalfont\@thefnmark}}}%
+%<*type2>
+% \end{macrocode}
+% \changes{v2.0v}{1997/03/02}{Use \cs{textendash} instead of
+% \texttt{-{}-}}
+% \begin{macrocode}
+ \long\def\@makefntext##1{\parindent\z@
+ \def\labelitemi{\textendash}%
+ \leavevmode\hb@xt@.5\unitindent{%
+ \@textsuperscript{\normalfont\@thefnmark}\hfil}##1}
+%</type2>
+% \end{macrocode}
+% If this is a twocolumn document we start a new page in twocolumn
+% mode, with the title set to the full width of the text. The
+% actual printing of the title information is left to
+% |\@maketitle|.
+% \changes{v2.0h}{1994/06/02}{Added check on number of columns in use
+% locally}
+% \begin{macrocode}
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+% \end{macrocode}
+% When this is not a twocolumn document we just start a new page,
+% prevent floating objects from appearing on the top of this page
+% and print the title information.
+% \begin{macrocode}
+ \newpage
+ \global\@topnum\z@
+ \@maketitle
+ \fi
+% \end{macrocode}
+% This page gets a \pstyle{plain} layout. We call |\@thanks| to
+% produce the footnotes.
+% \begin{macrocode}
+ \thispagestyle{plain}\@thanks
+% \end{macrocode}
+% Now we can close the group, reset the \Lcount{footnote} counter,
+% disable |\thanks|, |\maketitle| and |\@maketitle| and save some
+% storage space by emptying the internal information macros.
+% \changes{v2.0r}{1995/10/05}{use \cs{let} to save space, disable
+% \cs{title} and similar decls an empty \cs{@date} as well}
+% \begin{macrocode}
+ \endgroup
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@title\@empty
+ \global\let\@date\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+ }
+% \end{macrocode}
+%
+% \begin{macro}{\@maketitle}
+% This macro takes care of formatting the title information when we
+% have no seperate title page.
+%
+% We always start a new page, leave some white space and center the
+% information. The title is set in a |\LARGE| font, the author
+% names and the in a |\large| font.
+% \changes{v2.0d}{1994/02/23}{Added slection of font by \cs{TitleFont}}
+% \changes{v2.0z}{2004/02/20}{Make \cs{footnote} work}
+% \begin{macrocode}
+\def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+%<type3>\if@titlecentered
+ \begin{center}%
+ \let \footnote \thanks
+ {\LARGE \TitleFont \@title \par}%
+ \vskip 1.5em%
+ {\large \TitleFont
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \TitleFont \@date}%
+ \end{center}%
+%<*type3>
+ \else
+ {\LARGE \TitleFont \head@style \@title \par} \vskip 1.5em
+ {\large \TitleFont \lineskip .5em \tabcolsep\z@
+ \def\and{%%% \begin{tabular} has already started
+ \end{tabular}\hskip 1em plus .17fil
+ \begin{tabular}[t]{l}}%% \end{tabular} will come
+ \begin{tabular}[t]{l}\@author\end{tabular}\par}
+ \vskip 1em {\large \TitleFont \@date}
+ \fi
+%</type3>
+ \par
+ \vskip 1.5em}
+\fi
+%</!boek>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Chapters and Sections}
+%
+% \subsubsection{Building blocks}
+% The definitions in this part of the class file make use of two
+% macros, |\@startsection| and |\secdef|, which are defined by
+% \file{latex.dtx}. To understand what is going on here, we
+% describe their syntax.
+%
+% The macro |\@startsection| has 6 required arguments, optionally
+% followed by a $*$, an optional argument and a required argument:
+%
+% |\@startsection|\meta{name}\meta{level}\meta{indent}^^A
+% \meta{beforeskip}\meta{afterskip}\meta{style}
+% optional *\\
+% \null\hphantom{\bslash @startsection}^^A
+% |[|\meta{altheading}|]|\meta{heading}
+%
+% It is a generic command to start a section, the arguments have
+% the following meaning:
+%
+% \begin{description}
+% \item[\meta{name}] The name of the user level command, e.g.,
+% `section'.
+% \item[\meta{level}] A number, denoting the depth of the section
+% -- e.g., chapter=1, section = 2, etc. A section number
+% will be printed if and only if \meta{level} $<=$ the value
+% of the \Lcount{secnumdepth} counter.
+% \item[\meta{indent}] The indentation of the heading from the left
+% margin
+% \item[\meta{beforeskip}] The absolute value of this argument
+% gives the skip to leave above the heading. If it is
+% negative, then the paragraph indent of the text following
+% the heading is suppressed.
+% \item[\meta{afterskip}] If positive, this gives the skip to leave
+% below the heading, else it gives the skip to leave to the
+% right of a run-in heading.
+% \item[\meta{style}] Commands to set the style of the
+% heading. Since the June 1996 release of \LaTeX\ the
+% \emph{last} command in this argument may be a command such
+% as |\MakeUppercase| or |\fbox| that takes an argument. The
+% section heading will be supplied as the argument to this
+% command. So setting |#6| to, say, |\bfseries\MakeUppercase|
+% would produce bold, uppercase headings.
+% \item[$*$] When this is missing the heading is numbered and the
+% corresponding counter is incremented.
+% \item[\meta{altheading}] Gives an alternative heading to use in
+% the table of contents and in the running heads. This should
+% be not present when the $*$ form is used.
+% \item[\meta{heading}] The heading of the new section.
+% \end{description}
+% A sectioning command is normally defined to |\@startsection| and
+% its first six arguments.
+%
+% The macro |\secdef| can be used when a sectioning command is
+% defined without using |\@startsection|. It has two arguments:
+%
+% |\secdef|\meta{unstarcmds}\meta{starcmds}
+%
+% \begin{description}
+% \item[\meta{unstarcmds}] Used for the normal form of the
+% sectioning command.
+% \item[\meta{starcmds}] Used for the $*$-form of the
+% sectioning command.
+% \end{description}
+%
+% You can use |\secdef| as follows:
+% \begin{verbatim}
+% \def\chapter { ... \secdef \CMDA \CMDB }
+% \def\CMDA [#1]#2{ ... } % Command to define
+% % \chapter[...]{...}
+% \def\CMDB #1{ ... } % Command to define
+% % \chapter*{...}
+% \end{verbatim}
+%
+% \begin{macro}{\head@style}
+% In the definition of chapter and section commands a number of
+% settings frequently occur. Therefore we store them in a control
+% sequence.
+%
+% Section headings are to be set extremely raggedright, with no
+% hyphenations, not even at explicit hyphens.
+%
+% \begin{macrocode}
+\newcommand*\head@style{%
+ \interlinepenalty \@M
+ \hyphenpenalty=\@M \exhyphenpenalty=\@M
+ \rightskip=0cm plus .7\hsize\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@sect}
+% The definition of this macro from \file{latex.dtx} needs to be
+% repeated here because we want to modify its behaviour with
+% respect to:
+% \begin{enumerate}
+% \item the width of the number, which is fixed;
+% \item checking the value of |\unitindent|;
+% \item formatting the section title ragged right;
+% \item changing the argument of |\contentsline|.
+% \end{enumerate}
+% \begin{macrocode}
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+% \end{macrocode}
+% The following code (within the group) checks the value of
+% |\unitindent|. If the sectionnumber is wider than |\unitindent|
+% its value is adapted and a flag is set to rememeber to store the
+% new value in the \file{.aux}-file.
+% \begin{macrocode}
+%<*type1|type3>
+ \begingroup
+ \setbox\@tempboxa=\hbox{#6\relax
+ \csname the#1\endcsname
+ \hskip.5em}
+ \ifdim\wd\@tempboxa>\unitindent
+ \global\unitindent=\wd\@tempboxa
+ \@indentset
+ \fi
+ \endgroup
+%</type1|type3>
+% \end{macrocode}
+% Since |\@seccntformat| might end with an improper |\hskip| which
+% is scanning forward for |plus| or |minus| we end the definition
+% of |\@svsec| with |\relax| as a precaution.
+% \changes{v2.0n}{1995/01/06}{No longer redefine \cs{protect} but use
+% one of the available settings}
+% \changes{v2.0o}{1995/05/07}{Added \cs{relax} to prevent problems
+% with a section starting with plus or minus}
+% \begin{macrocode}
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+% \end{macrocode}
+% \changes{v2.0u}{1996/09/23}{Moved brace to allow commands like
+% \cs{MakeUppercase} in 6th argument. Changed \cs{par} to
+% \cs{endgraf} to allow non-long commands. This follows a change in
+% \LaTeX.}
+% This |{| used to be after the argument to |\@hangfrom| but was
+% moved here to allow commands such as |\MakeUppercase| to be used
+% at the end of |#6|.
+% \begin{macrocode}
+ #6{%
+%<*type1|type3>
+ \@hangfrom{\hskip #3\relax\@svsec}\head@style #8\endgraf}%
+%</type1|type3>
+%<*type2>
+ \@hangfrom{\hskip #3}
+ \head@style\@svsec \hskip.3em\relax #8\endgraf}
+%</type2>
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth
+ \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ \toc@font#2 #7}%
+ \else
+ \def\@svsechd{#6\hskip #3\relax
+ \@svsec #8\csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth
+ \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ \toc@font#2 #7}}%
+ \fi
+ \@xsect{#5}}
+% \end{macrocode}
+% This macro was introduced in \LaTeXe, its definition is changed
+% here to get the fixed with of the section number.
+% \changes{v2.0o}{1995/05/07}{added \cs{relax} in the type2 case}
+% \begin{macrocode}
+\def\@seccntformat#1{%
+%<!type2> \hb@xt@\unitindent{\csname the#1\endcsname \hfil}%
+%<type2> \csname the#1\endcsname\hskip.3em\relax
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ssect}
+% Similar changes need to be made to the definition of |\@ssect|,
+% which is used in `starred' sections.
+% \begin{macrocode}
+\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+% \end{macrocode}
+% \changes{v2.0u}{1996/09/23}{Moved brace to allow commands like
+% \cs{MakeUppercase} in 4th argument. Changed \cs{par} to
+% \cs{endgraf} to allow non-long commands. This follows a change in
+% \LaTeX.}
+% This |{| used to be after the argument to |\@hangfrom| but was
+% moved here to allow commands such as |\MakeUppercase| to be used
+% at the end of |#6|.
+% \begin{macrocode}
+ #4{%
+ \@hangfrom{\hskip #1}\head@style #5\endgraf}%
+ \endgroup
+ \else
+ \def\@svsechd{#4\hskip #1\relax #5}%
+ \fi
+ \@xsect{#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Mark commands}
+%
+% \begin{macro}{\chaptermark}
+% \begin{macro}{\sectionmark}
+% \begin{macro}{\subsectionmark}
+% \begin{macro}{\subsubsectionmark}
+% \begin{macro}{\paragraphmark}
+% \begin{macro}{\subparagraphmark}
+% Default initializations of |\...mark| commands. These commands
+% are used in the definition of the page styles (see
+% section~\ref{sec:pagestyle}) Most of them are already defined by
+% \file{latex.tex}, so they are only shown here.
+%
+% \begin{macrocode}
+%<!artikel>\newcommand*\chaptermark[1]{}
+% \newcommand*\sectionmark[1]{}
+% \newcommand*\subsectionmark[1]{}
+% \newcommand*\subsubsectionmark[1]{}
+% \newcommand*\paragraphmark[1]{}
+% \newcommand*\subparagraphmark[1]{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Define Counters}
+%
+% \begin{macro}{\c@secnumdepth}
+% The value of the counter \Lcount{secnumdepth} gives the depth of
+% the highest-level sectioning command that is to produce section
+% numbers.
+% \begin{macrocode}
+%<artikel>\setcounter{secnumdepth}{3}
+%<!artikel>\setcounter{secnumdepth}{2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@part}
+% \begin{macro}{\c@chapter}
+% \begin{macro}{\c@section}
+% \begin{macro}{\c@subsection}
+% \begin{macro}{\c@subsubsection}
+% \begin{macro}{\c@paragraph}
+% \begin{macro}{\c@subparagraph}
+% These counters are used for the section numbers. The macro\\
+% |\newcounter{|\meta{newctr}|}[|\meta{oldctr}|]|\\
+% defines \meta{newctr} to be a counter, which is reset to zero when
+% counter \meta{oldctr} is stepped. Counter \meta{oldctr} must
+% already be defined.
+%
+% \begin{macrocode}
+\newcounter {part}
+%<artikel>\newcounter {section}
+%<*rapport|boek>
+\newcounter {chapter}
+\newcounter {section}[chapter]
+%</rapport|boek>
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\thepart}
+% \begin{macro}{\thechapter}
+% \begin{macro}{\thesection}
+% \begin{macro}{\thesubsection}
+% \begin{macro}{\thesubsubsection}
+% \begin{macro}{\theparagraph}
+% \begin{macro}{\thesubparagraph}
+% For any counter \Lcount{CTR}, |\theCTR| is a macro that defines
+% the printed version of counter \Lcount{CTR}. It is defined in
+% terms of the following macros:
+%
+% |\arabic{|\Lcount{COUNTER}|}| prints the value of
+% \Lcount{COUNTER} as an arabic numeral.
+%
+% |\roman{|\Lcount{COUNTER}|}| prints the value of
+% \Lcount{COUNTER} as a lowercase roman numberal.
+%
+% |\Roman{|\Lcount{COUNTER}|}| prints the value of
+% \Lcount{COUNTER} as an uppercase roman numberal.
+%
+% |\alph{|\Lcount{COUNTER}|}| prints the value of \Lcount{COUNTER}
+% as a lowercase letter: $1 =$~a, $2 =$~ b, etc.
+%
+% |\Alph{|\Lcount{COUNTER}|}| prints the value of \Lcount{COUNTER}
+% as an uppercase letter: $1 =$~A, $2 =$~B, etc.
+%
+% Actually to save space the internal counter repesentations
+% and the commands operating on those are used.
+% \begin{macrocode}
+\renewcommand*\thepart{\@Roman\c@part}
+%<artikel>\renewcommand\thesection{\@arabic\c@section}
+%<*rapport|boek>
+\renewcommand*\thechapter{\@arabic\c@chapter}
+\renewcommand*\thesection{\thechapter.\@arabic\c@section}
+%</rapport|boek>
+\renewcommand*\thesubsection{\thesection.\@arabic\c@subsection}
+\renewcommand*\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}
+\renewcommand*\theparagraph{\thesubsubsection.\@arabic\c@paragraph}
+\renewcommand*\thesubparagraph{\theparagraph.\@arabic\c@subparagraph}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@chapapp}
+% |\@chapapp| is initially defined to be `|\chaptername|'. The
+% |\appendix| command redefines it to be `|\appendixname|'.
+%
+% \begin{macrocode}
+%<rapport|boek>\newcommand*\@chapapp{\chaptername}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Front Matter, Main Matter, and Back Matter}
+%
+% \changes{v2.0f}{1994/04/18}{Added LL's additions to the book class to
+% the boek class}
+%
+% A boek contains these three sections. First, we define the
+% switch |\@mainmatter| that is true iff we are processing Main
+% Matter. When this switch is false, the |\chapter| command does
+% not print chapter numbers.
+%
+% Here we define the commands that start these sections.
+% \begin{macro}{\frontmatter}
+% This command starts Roman page numbering and turns off chapter
+% numbering.
+% \begin{macrocode}
+%<*boek>
+\newcommand*\frontmatter{%
+ \cleardoublepage
+ \@mainmatterfalse
+ \pagenumbering{roman}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mainmatter}
+% This command clears the page, starts arabic page numbering and
+% turns on chapter numbering.
+% \begin{macrocode}
+\newcommand*\mainmatter{%
+ \cleardoublepage
+ \@mainmattertrue
+ \pagenumbering{arabic}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\backmatter}
+% This clears the page, turns off chapter numbering and leaves page
+% numbering unchanged.
+% \begin{macrocode}
+\newcommand*\backmatter{%
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \@mainmatterfalse}
+%</boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Parts}
+%
+% \begin{macro}{\part}
+% The command to start a new part of our document.
+%
+% In the artikel classes the definition of |\part| is rather simple;
+% we start a new paragraph, add a little white space, suppress the
+% indentation of the first paragraph (not for the \file{artikel2}
+% document class) and make use of |\@secdef|.
+% \changes{v2.0z}{2004/02/20}{Check \texttt{@noskipsec} switch and
+% possibly force horizontal mode; see \LaTeX{} PR/2889.}
+% \begin{macrocode}
+%<*artikel>
+\newcommand*\part{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \addvspace{4ex}%
+%<!type2> \@afterindentfalse
+%<type2> \@afterindenttrue
+ \secdef\@part\@spart}
+%</artikel>
+% \end{macrocode}
+%
+% For the rapport and boek classes we things a bit different.
+%
+% We start a new (righthand) page and use the \pstyle{empty}
+% pagestyle.
+% \begin{macrocode}
+%<*rapport|boek>
+\newcommand*\part{%
+ \cleardoublepage
+ \thispagestyle{empty}%
+% \end{macrocode}
+% When we are making a two column document, this will be a one
+% column page. We use |@tempswa| to remember to switch back to two
+% columns.
+% \begin{macrocode}
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+% \end{macrocode}
+% We need an empty box to prevent the fil glue from disappearing.
+% \changes{v2.0r}{1995/10/05}{Replace \cs{hbox} by \cs{null}}
+% \begin{macrocode}
+ \null\vfil
+% \end{macrocode}
+% Here we use |\secdef| to indicate which commands to use to make
+% the actual heading.
+% \begin{macrocode}
+ \secdef\@part\@spart}
+%</rapport|boek>
+% \end{macrocode}
+%
+% \begin{macro}{\@part}
+% This macro does the actual formatting of the title of the part.
+% Again the macro is differently defined for the artikel document
+% classes than for the document classes rapport and boek.
+%
+% \begin{macro}{\PartFont}
+% The font used to typeset the part is stored in this maro.
+% \begin{macrocode}
+\newcommand*\PartFont{\bfseries}
+% \end{macrocode}
+% \end{macro}
+%
+% When \Lcount{secnumdepth} is larger than $-1$ for the
+% artikel document classes, we have a numbered
+% part, otherwise it is unnumbered.
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+%<*artikel>
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+% \end{macrocode}
+% We print the title flush left in the artikel classes.
+% Also we prevent breaking between lines and reset the font.
+% \begin{macrocode}
+ {\head@style
+ \parindent\unitindent
+ \normalfont
+% \end{macrocode}
+% When this is a numbered part we have to print the number and the
+% title. The |\nobreak| should prevent a page break here.
+% \changes{v2.0z}{2004/02/20}{Replaced tilde with \cs{nobreakspace},
+% see \LaTeX{} (pr/3310)}
+% \begin{macrocode}
+ \ifnum \c@secnumdepth >\m@ne
+%<!type2> \Large\PartFont\noindent \partname\nobreakspace\thepart
+%<type2> \Large\PartFont\indent \partname\nobreakspace\thepart
+ \par\nobreak
+ \fi
+%<!type2> \Large \PartFont \noindent #2%
+%<type2> \Large \PartFont #2%
+% \end{macrocode}
+% Then we empty the mark registers, leave some white space and call
+% |\@afterheading| to takes care of suppressing the indentation.
+% \begin{macrocode}
+ \markboth{}{}\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}
+%</artikel>
+% \end{macrocode}
+%
+% When \Lcount{secnumdepth} is larger than $-2$ for the
+% document class rapport and boek, we have a numbered
+% part, otherwise it is unnumbered.
+% \begin{macrocode}
+%<*rapport|boek>
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}\toc@case{#1}}%
+ \else
+ \addcontentsline{toc}{part}{\toc@case{#1}}%
+ \fi
+% \end{macrocode}
+% We empty the mark registers and center the title on the page in the
+% rapport and boek document classes.
+% Also we prevent breaking between lines and reset the font.
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \changes{v2.0r}{1995/10/05}{Added missing percent}
+% \begin{macrocode}
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+% \end{macrocode}
+% When this is a numbered part we have to print the number. We have
+% to expand |\partname| before |\uppercase| is called, therefore we
+% use a temporary control sequence that, when called will execute
+% |\uppercase| on the contents of |\partname|.
+% \begin{macrocode}
+ \ifnum \c@secnumdepth >-2\relax
+ \Large\PartFont
+ \edef\@tempa{\noexpand\uppercase{\partname}}\@tempa
+ \nobreakspace\thepart
+ \par
+% \end{macrocode}
+% We leave some space before we print the title and leave the
+% finishing up to |\@endpart|.
+% \begin{macrocode}
+ \vskip 20\p@
+ \fi
+ \Large \PartFont \uppercase{#2}\par}%
+ \@endpart}
+%</rapport|boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@spart}
+% This macro does the actual formatting of the title of the part
+% when the star form of the user command was used. In this case we
+% \emph{never} print a number. Otherwise the formatting is the same.
+%
+% The differences between the definition of this macro in the
+% artikel document classes and in the rapport and boek document
+% classes are similar as they were for |\@part|.
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+%<*artikel>
+\def\@spart#1{%
+ {\parindent \z@
+ \head@style
+ \normalfont
+%<!type2> \Large \PartFont \noindent #1\par}%
+%<type2> \Large \PartFont \indent #1\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}
+%</artikel>
+% \end{macrocode}
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+%<*rapport|boek>
+\def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Large \PartFont #1\par}%
+ \@endpart}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@endpart}
+% \changes{v2.0r}{1995/10/05}{move docstrip guard to avoid defining
+% \cs{@endpart} in artikelx}
+% This macro finishes the part page, for both |\@part| and
+% |\@spart|.
+%
+% First we fill the current page.
+% \begin{macrocode}
+\def\@endpart{\vfil\newpage
+% \end{macrocode}
+% Then, when we are in twosided mode and chapters are supposed to
+% be on right hand sides, we produce a completely blank
+% page.
+% \changes{v2.0z}{2004/02/20}{Only add empty page after part if
+% twoside and openright (\LaTeX{} pr/3155)}
+% \begin{macrocode}
+%<!boek> \if@twoside
+ \if@openright
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+%<!boek> \fi
+% \end{macrocode}
+% When this was a two column document we have to switch back to two
+% column mode.
+% \begin{macrocode}
+ \if@tempswa
+ \twocolumn
+ \fi}
+%</rapport|boek>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Chapters}
+%
+% \begin{macro}{\chapter}
+% A chapter should always start on a new page therefore we start by
+% calling |\clearpage| and setting the pagestyle for this page to
+% \pstyle{plain}.
+% \changes{v2.0f}{1994/04/18}{Make \cs{chapter} listen to the openright
+% and openany options}
+% \begin{macrocode}
+%<*rapport|boek>
+\newcommand*\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}%
+% \end{macrocode}
+% Then we prevent floats from appearing at the top of this page
+% because it looks weird to see a floating object above a chapter
+% title.
+% \begin{macrocode}
+ \global\@topnum\z@
+% \end{macrocode}
+% Then we suppress the indentation of the first paragraph by
+% setting the switch |\@afterindent| to |false|. We use |\secdef|
+% to specify the macros to use for actually setting the chapter
+% title.
+% \begin{macrocode}
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+% \end{macrocode}
+%
+% \begin{macro}{\@chapter}
+% This macro is called when we have a numbered chapter. When
+% \Lcount{secnumdepth} is larger than $-1$ and, in the boek class,
+% |\@mainmatter| is true, we display the chapter number. We also
+% inform the user that a new chapter is about to be typeset by
+% writing a message to the terminal.
+% \changes{v2.0k}{1994/06/08}{Removed carriage return behind +boek}
+% \begin{macrocode}
+\def\@chapter[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne
+%<boek> \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}\toc@font0 #1}%
+%<*boek>
+ \else
+ \addcontentsline{toc}{chapter}{\toc@font0 #1}%
+ \fi
+%</boek>
+ \else
+ \addcontentsline{toc}{chapter}{\toc@font0 #1}%
+ \fi
+% \end{macrocode}
+% After having written an entry to the table of contents we store
+% the (alternative) title of this chapter with |\chaptermark| and
+% add some white space to the lists of figures and tables.
+% \begin{macrocode}
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+% \end{macrocode}
+% Then we call upon |\@makechapterhead| to format the actual
+% chapter title. We have to do this in a special way when we are in
+% twocolumn mode in order to have the chapter title use the entire
+% |\textwidth|. In one column mode we call |\@afterheading| which
+% takes care of suppressing the indentation.
+% \begin{macrocode}
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+% \end{macrocode}
+%
+% \begin{macro}{\ChapFont}
+% The font used to typeset the chapters is stored in this maro.
+% \begin{macrocode}
+\newcommand*\ChapFont{\bfseries}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makechapterhead}
+% The macro above uses |\@makechapterhead|\meta{text} to format the
+% heading of the chapter.
+%
+% We begin by leaving some white space. The we open a group in
+% which we have a paragraph indent of 0pt, and in which we have the
+% text set ragged right. We also reset the font.
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+\def\@makechapterhead#1{%
+%<!boek> \vspace*{50\p@ \@plus 5\p@}%
+%<boek> \vspace*{50\p@ \@plus 20\p@}%
+ {\setlength\parindent{\z@}%
+ \setlength\parskip {\z@}%
+ \head@style \normalfont
+% \end{macrocode}
+% Then we check whether the number of the chapter has to be printed.
+% If so we leave some whitespace between the chapternumber and its
+% title.
+% \changes{v2.0j}{1994/06/03}{Removed carriage return behind +boek}
+% \changes{v2.0m}{1994/12/20}{Added a \cs{nobreak} to prevent a
+% pagebreak between the chapternumber and the chaptertitle}
+% \begin{macrocode}
+ \ifnum \c@secnumdepth >\m@ne
+%<boek> \if@mainmatter
+ \Large\ChapFont \@chapapp{} \thechapter
+ \par\nobreak
+ \vskip 20\p@
+%<boek> \fi
+ \fi
+% \end{macrocode}
+% Now we set the title in a large bold font. We prevent a pagebreak
+% at this point and leave some whitespace before the text begins.
+% \begin{macrocode}
+ \Large \ChapFont #1\par
+ \nobreak
+ \vskip 40\p@
+ }}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@schapter}
+% This macro is called when we have an unnumbered chapter. It is
+% much simpler than |\@chapter| because it only needs to typeset
+% the chapter title.
+% \begin{macrocode}
+\def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}
+% \end{macrocode}
+%
+% \begin{macro}{\@makeschapterhead}
+% The macro above uses |\@makeschapterhead|\meta{text}to format
+% the heading of the chapter. It is similar to |\@makechapterhead|
+% except that it never has to print a chapter number.
+%
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+\def\@makeschapterhead#1{%
+%<!boek> \vspace*{50\p@\@plus 5\p@}%
+%<boek> \vspace*{50\p@\@plus 20\p@}%
+ {\setlength\parindent{\z@}%
+ \setlength\parskip{\z@}%
+ \head@style
+ \normalfont
+ \Large \ChapFont #1\par
+ \nobreak
+ \vskip 40\p@
+ }}
+%</rapport|boek>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Lower level headings}
+%
+% These commands all make use of |\@startsection|.
+% \begin{macro}{\section}
+% This gives a normal heading with white space above the heading
+% (the whitespace below the heading will be generated by the
+% |\parskip| that is inserted at the start of the first paragraph),
+% the title set in |\large\bfseries|, and no indentation on the
+% first paragraph.
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+\newcommand*\section{%
+%<*type1|type3>
+ \@startsection {section}{1}{\z@}%
+ {-2\baselineskip\@plus -1\baselineskip \@minus -.5\baselineskip}%
+%</type1|type3>
+%<*type2>
+ \@startsection {section}{1}{\unitindent}%
+ {2\baselineskip\@plus \baselineskip \@minus .5\baselineskip}%
+%</type2>
+%<type1> {.5\baselineskip}%
+%<type2|type3> {.01\baselineskip}%
+ {\normalfont\large\SectFont}}
+% \end{macrocode}
+%
+% \begin{macro}{\SectFont}
+% The font used to typeset the sections is stored in this maro.
+% \begin{macrocode}
+\newcommand*\SectFont{\bfseries}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subsection}
+% This gives a normal heading with white space above the heading,
+% the title set in |\normalsize\bfseries|, and no indentation on
+% the first paragraph.
+% \changes{v2.0n}{1995/01/06}{Use 1\cs{baselineskip} instead of
+% \cs{baselineskip} for artikel2}
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+\newcommand*\subsection{%
+%<*type1|type3>
+ \@startsection{subsection}{2}{\z@}%
+ {-1\baselineskip\@plus -.5\baselineskip \@minus -.25\baselineskip}%
+%</type1|type3>
+%<*type2>
+ \@startsection{subsection}{2}{\unitindent}%
+ {1\baselineskip\@plus .5\baselineskip \@minus .25\baselineskip}%
+%</type2>
+%<type1> {.25\baselineskip}%
+%<type2|type3> {.01\baselineskip}%
+ {\normalfont\normalsize\SSectFont}}
+% \end{macrocode}
+%
+% \begin{macro}{\SSectFont}
+% The font used to typeset the subsections is stored in this maro.
+% \begin{macrocode}
+\newcommand*\SSectFont{\bfseries}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subsubsection}
+% This gives a normal heading with white space above the heading,
+% the title set in |\normalsize\tm|, and no indentation on the
+% first paragraph.
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+\newcommand*\subsubsection{%
+%<*type1|type3>
+ \@startsection{subsubsection}{3}{\z@}%
+ {-1\baselineskip plus -.5\baselineskip minus -.25\baselineskip}%
+%</type1|type3>
+%<*type2>
+ \@startsection{subsubsection}{3}{\unitindent}%
+ {1\baselineskip plus .5\baselineskip minus .25\baselineskip}%
+%</type2>
+%<type1> {.25\baselineskip}%
+%<type2|type3> {.01\baselineskip}%
+ {\normalfont\normalsize\SSSectFont}}
+% \end{macrocode}
+%
+% \begin{macro}{\SSSectFont}
+% The font used to typeset the subsubsections is stored in this maro.
+% \begin{macrocode}
+%<artikel&(type1|type3)>\newcommand*\SSSectFont{\rmfamily}
+%<type2>\newcommand*\SSSectFont{\scshape}
+%<rapport|boek>\newcommand*\SSSectFont{\slshape}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\paragraph}
+% This gives a run-in heading with white space above and to the
+% right of the heading, the title set in |\normalsize\slshape|.
+% \changes{v2.0d}{1994/02/23}{Forgot to change \cs{slshape} into
+% \cs{ParaFont}}
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+\newcommand*\paragraph{%
+%<!type2> \@startsection{paragraph}{4}{\z@}%
+%<type2> \@startsection{paragraph}{4}{\unitindent}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\ParaFont}}
+% \end{macrocode}
+%
+% \begin{macro}{\ParaFont}
+% The font used to typeset the paragraphs is stored in this maro.
+% \begin{macrocode}
+%<!type2>\newcommand*\ParaFont{\slshape}
+%<type2>\newcommand*\ParaFont{\scshape}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\subparagraph}
+% This gives an indented run-in heading with white space above and
+% to the right of the heading, the title set in
+% |\normalsize\slshape|.
+% \changes{v2.0p}{1995/08/10}{replace \cs{reset@font} with
+% \cs{normalfont}}
+% \begin{macrocode}
+\newcommand*\subparagraph{%
+%<!type2> \@startsection{subparagraph}{5}{\parindent}%
+%<type2> \@startsection{subparagraph}{5}{\unitindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\SParaFont}}
+% \end{macrocode}
+%
+% \begin{macro}{\SParaFont}
+% The font used to typeset the subparagraphs is stored in this maro.
+% \begin{macrocode}
+\newcommand*\SParaFont{\slshape}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Headingfonts}
+% To change the fonts that are used to typeset the title,part,
+% chapter and section headings this macro can be used.
+% \changes{v2.0d}{1994/02/23}{Added \cs{TitleFont}}
+% \begin{macrocode}
+%<*artikel>
+\newcommand*\HeadingFonts[7]{%
+ \renewcommand*\TitleFont{#1}%
+ \renewcommand*\PartFont{#2}%
+ \renewcommand*\SectFont{#3}%
+ \renewcommand*\SSectFont{#4}%
+ \renewcommand*\SSSectFont{#5}%
+ \renewcommand*\ParaFont{#6}%
+ \renewcommand*\SParaFont{#7}}
+%</artikel>
+%<*rapport|boek>
+\newcommand*\HeadingFonts[8]{%
+ \renewcommand*\TitleFont{#1}%
+ \renewcommand*\PartFont{#2}%
+ \renewcommand*\ChapFont{#3}%
+ \renewcommand*\SectFont{#4}%
+ \renewcommand*\SSectFont{#5}%
+ \renewcommand*\SSSectFont{#6}%
+ \renewcommand*\ParaFont{#7}%
+ \renewcommand*\SParaFont{#8}}
+%</rapport|boek>
+% \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 Kth
+% level list, the command |\@listK| is called, where `K' denotes `i',
+% '`i', ... , `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}
+%<!type2>\setlength\leftmargini {\unitindent}
+%<type2>\setlength\leftmargini {\othermargin}
+\setlength\leftmarginii {\othermargin}
+\setlength\leftmarginiii{\othermargin}
+\setlength\leftmarginiv {\othermargin}
+\setlength\leftmarginv {\othermargin}
+\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{\z@}
+% \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{\z@}
+% \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 values of
+% |\leftmargin|, |\parsep|, |\topsep|, and |\itemsep|, etc.\ for the
+% lists that appear on top-level. Its definition is modified by the
+% font-size commands (eg within |\small| the list parameters get
+% ``smaller'' values).
+%
+% For this reason \@listI is defined to hold a saved copy of \@listi
+% so that |\normalsize| can switch all parameters back.
+%
+% \begin{macrocode}
+\def\@listi{%
+%<!type2> \leftmargin\unitindent
+%<type2> \leftmargin\leftmargini
+%<!type2> \labelsep.5em%
+%<type2> \labelsep.45em%
+ \labelwidth\leftmargin
+ \advance\labelwidth-\labelsep
+ \parsep \z@
+%<!type3> \topsep 0\p@ \@plus\p@
+%<type3> \topsep -.5\parskip \@plus\p@
+ \itemsep 0\p@ \@plus1\p@}
+\let\@listI\@listi
+% \end{macrocode}
+% We initialise these parameters although strictly speaking that
+% is not necessary.
+% \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. Note that
+% they don't have saved versions and are not modified by the font
+% size commands. In other words this class assumes that nested
+% lists only appear in |\normalsize|, i.e.\ the main document size.
+% \begin{macrocode}
+\def\@listii {\leftmargin\leftmarginii
+%<!type2> \labelsep .5em%
+%<type2> \labelsep .3em%
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+%<!type3> \topsep 0\p@ \@plus\p@
+%<type3> \topsep -.5\parskip\@plus\p@
+ \parsep \z@
+ \itemsep \z@ \@plus\p@}
+\def\@listiii{\leftmargin\leftmarginiii
+%<!type2> \labelsep .5em%
+%<type2> \labelsep .3em%
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+%<!type3> \topsep 0\p@ \@plus\p@
+%<type3> \topsep -.5\parskip\@plus\p@
+ \parsep \z@
+ \partopsep \z@ \@plus\p@
+ \itemsep \z@ \@plus\p@}
+\def\@listiv {\leftmargin\leftmarginiv
+%<!type2> \labelsep .5em%
+%<type2> \labelsep .3em%
+ \labelwidth\leftmarginiv%
+ \advance\labelwidth-\labelsep
+%<!type3> \topsep 0\p@ \@plus\p@
+%<type3> \topsep -.5\parskip\@plus\p@
+ \parsep \z@
+ \itemsep \z@ \@plus\p@}
+\def\@listv {\leftmargin\leftmarginv
+%<!type2> \labelsep .5em%
+%<type2> \labelsep .3em%
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep%
+%<!type3> \topsep 0\p@ \@plus\p@
+%<type3> \topsep -.5\parskip\@plus\p@
+ \parsep \z@
+ \itemsep \z@ \@plus\p@}
+\def\@listvi {\leftmargin\leftmarginvi
+%<!type2> \labelsep .5em
+%<type2> \labelsep .3em
+ \labelwidth\leftmarginvi
+ \advance\labelwidth{-\labelsep}%
+%<!type3> \topsep 0\p@ \@plus\p@
+%<type3> \topsep -.5\parskip\@plus\p@
+ \parsep \z@
+ \itemsep \z@ \@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 \file{latex.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}
+%
+%
+% \begin{environment}{enumerate}
+% We want to have different label positioning on different levels of
+% list. To acheive this we have to redefine the \Lenv{enumerate}
+% environment.
+%
+% \begin{macrocode}
+\renewenvironment{enumerate}{%
+ \ifnum \@enumdepth >3
+ \@toodeep
+ \else
+ \advance\@enumdepth \@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \list{\csname label\@enumctr\endcsname}
+ {\usecounter{\@enumctr}%
+%<type1> \ifnum \@listdepth=1
+%<*type1|type3>
+ \if@revlabel
+ \def\makelabel##1{\hskip .5\unitindent{##1\hfil}}%
+ \else
+%<!type3> \def\makelabel##1{\hfil##1}
+%<type3> \def\makelabel##1{##1\hfil}
+ \fi
+%</type1|type3>
+%<type1> \else
+%<type1|type2> \def\makelabel##1{##1\hfil}%
+%<type1> \fi
+ }%
+ \fi}
+% \end{macrocode}
+% We try to suppress spaces after these list constructs.
+% \begin{macrocode}
+ {\global\@ignoretrue \endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Itemize}
+%
+% \begin{macro}{\labelitemi}
+% \begin{macro}{\labelitemii}
+% \begin{macro}{\labelitemiii}
+% \begin{macro}{\labelitemiv}
+% Itemization is controlled by four commands: |\labelitemi|,
+% |\labelitemii|, |\labelitemiii|, and |\labelitemiv|, which define
+% the labels of thevarious itemization levels: the symbols used are
+% bullet, bold en-dash, asterisk and centred dot.
+%
+% \changes{v2.0u}{1996/09/23}{Changed \texttt{--} to \cs{textendash}
+% following \file{classes.dtx}}
+% \changes{v2.0u}{1996/09/23}{Did similar for the bullet and centered
+% dot.}
+% \changes{v2.0v}{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}
+%
+% \begin{environment}{itemize}
+% We want to have differen label positioning on different levels of
+% list. To acheive this we have to redefine the \Lenv{itemize}
+% environment.
+% \begin{macrocode}
+\renewenvironment{itemize}{%
+ \ifnum \@itemdepth >3
+ \@toodeep
+ \else
+ \advance\@itemdepth \@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \list{\csname\@itemitem\endcsname}%
+ {%
+%<type1> \ifnum \@listdepth=1\relax
+%<*type1|type3>
+ \if@revlabel
+ \def\makelabel##1{\hskip .5\unitindent{##1\hfil}}\else
+%<type1> \def\makelabel##1{\hfil##1}
+%<type3> \def\makelabel##1{##1\hfil}
+ \fi
+%</type1|type3>
+%<type1> \else
+%<type1|type2> \def\makelabel##1{##1\hfil}
+%<type1> \fi
+ }%
+ \fi}
+% \end{macrocode}
+% We try to suppress spaces after these list constructs.
+% \begin{macrocode}
+ {\global\@ignoretrue \endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Description}
+%
+% \begin{environment}{description}
+% The description environment is defined here -- while the itemize
+% and enumerate environments are defined in \file{latex.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 \bfseries #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Adapting existing environments}
+%
+% Because we globally set |\topsep| to zero, we need to modify the
+% definitions of a number of environments slightly to get a litle
+% whitespace around them in the document classes \file{artikel1}
+% and \file{rapport1}.
+%
+% \begin{environment}{center}
+% Add a litle surrounding whitespace.
+% \begin{macrocode}
+%<*type1>
+\def\center
+ {\topsep=.25\baselineskip \@plus .1\baselineskip
+ \@minus .1\baselineskip
+ \trivlist \centering\item[]}
+\let\endcenter\endtrivlist
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{flushleft}
+% Add a litle surrounding whitespace.
+% \begin{macrocode}
+\def\flushleft
+ {\topsep=.25\baselineskip \@plus .1\baselineskip
+ \@minus .1\baselineskip
+ \trivlist \raggedright\item[]}
+\let\endflushleft=\endtrivlist
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{flushright}
+% Add a litle surrounding whitespace.
+% \begin{macrocode}
+\def\flushright
+ {\topsep=.25\baselineskip \@plus .1\baselineskip
+ \@minus .1\baselineskip
+ \trivlist \raggedleft\item[]}
+\let\endflushright=\endtrivlist
+%</type1>
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{verbatim}
+% In \Lenv{verbatim} we add a little surrounding whitespace,
+% --which for \file{artikel3} and \file{rapport3} is negative to
+% compensate for the positive |\parskip|-- but also an indent for
+% the \file{artikel1} and \file{rapport1} document classess.
+% \begin{macrocode}
+\def\verbatim{%
+%<*type1|type2>
+ \topsep=.25\baselineskip \@plus .1\baselineskip
+ \@minus .1\baselineskip
+ \@verbatim
+%</type1|type2>
+%<type1> \leftskip\unitindent
+%<type2> \leftskip\z@
+%<*type3>
+ \topsep=-.5\parskip
+ \@verbatim
+%</type3>
+ \frenchspacing\@vobeyspaces \@xverbatim}
+%<type1>\def\endverbatim{\if@newlist \leavevmode\fi\endtrivlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsection{Defining new environments}
+%
+% \subsubsection{Abstract}
+%
+% \begin{environment}{abstract}
+% When we are producing a separate titlepage we also put the
+% abstract on a page of its own. It will be centred vertically on
+% the page.
+%
+% Note that this environment is not defined for boeks.
+% \changes{v2.0e}{1994/03/19}{Use \cs{SectFont} for the abstract title}
+% \begin{macrocode}
+%<!boek>\if@titlepage
+ \newenvironment{abstract}{%
+ \titlepage
+ \null\vfil
+ \hbox{\SectFont \abstractname}
+ \noindent\ignorespaces}
+ {\par\vfil\null\endtitlepage}
+% \end{macrocode}
+% When we are not making a seperate titlepage --the default for the
+% artikel document classes-- we have to check if we are in twocolumn
+% mode. In that case the abstract is set as a |\section*|,
+% otherwise the abstract is typeset flushleft, an amount
+% |\unitindent| smaller as the normal text.
+% \begin{macrocode}
+%<*artikel|rapport>
+\else
+ \newenvironment{abstract}{%
+ \if@twocolumn
+ \section*{\abstractname}%
+ \else
+ \small
+%<*type1|type3>
+ \bgroup\rightskip=\unitindent
+ \hbox{\SectFont \abstractname}%
+ \noindent\ignorespaces
+%</type1|type3>
+% \end{macrocode}
+% As always, the \file{artikel2} document class has a
+% different implementation.
+% \changes{v2.0m}{1994/12/30}{Removed superfluous closing brace}
+% \begin{macrocode}
+%<*type2>
+ \hbox{\hskip\unitindent\SectFont \abstractname}%
+ \list{}{\setlength\listparindent{\unitindent}%
+ \setlength\parindent {\z@}%
+ \setlength\leftmargin {\unitindent}%
+ \setlength\rightmargin {\unitindent}%
+ \setlength\parsep {\z@}}%
+ \item[]%
+%</type2>
+ \fi}
+% \end{macrocode}
+% Which implies that the definition of |\end{abstract}| is also
+% different.
+% \begin{macrocode}
+%<!type2> {\if@twocolumn\else\par\egroup\fi}
+%<type2> {\if@twocolumn\else\par\endlist\fi}
+\fi
+%</artikel|rapport>
+% \end{macrocode}
+% \end{environment}
+%
+% \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|.
+%
+% \changes{v2.0r}{1995/10/05}{stop \cs{item} scanning for [ with
+% \cs{relax}}
+% \begin{macrocode}
+\newenvironment{verse}
+ {\let\\\@centercr
+ \list{}{\itemsep\z@
+ \itemindent-1.5em%
+ \listparindent\itemindent
+ \rightmargin\leftmargin
+ \advance\leftmargin1.5em}%
+ \item\relax}
+ {\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.
+%
+% \changes{v2.0r}{1995/10/05}{stop \cs{item} scanning for [ with
+% \cs{relax}}
+% \begin{macrocode}
+\newenvironment{quotation}
+ {\list{}{%
+%<!type2> \listparindent\z@
+%<type2> \listparindent\unitindent
+%<boek> \listparindent1.5em%
+ \itemindent\listparindent
+ \rightmargin\leftmargin
+ \parsep\z@ \@plus\p@}%
+ \item\relax}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Quote}
+%
+% \begin{environment}{quote}
+% The quote environment is like the quotation environment except
+% that paragraphs are not indented.
+%
+% \changes{v2.0r}{1995/10/05}{stop \cs{item} scanning for [ with
+% \cs{relax}}
+% \begin{macrocode}
+\newenvironment{quote}
+ {\list{}{\rightmargin\leftmargin}%
+ \item\relax}
+ {\endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Theorem}
+%
+% \begin{macro}{\@begintheorem}
+% \begin{macro}{\@opargbegintheorem}
+% \begin{macro}{\@endtheorem}
+% These document classes have a slightly modified \Lenv{theorem}
+% environment style. Surrounding whitespace is added and an
+% initialisation of |\labelsep|. Finally a slanted font instead of
+% an italic font is used.
+% \begin{macrocode}
+\def\@begintheorem#1#2{%
+ \vskip\baselineskip \labelsep=.5em%
+ \trivlist
+ \item[\hskip \labelsep{\bfseries #1\ #2}]\slshape}
+\def\@opargbegintheorem#1#2#3{%
+ \vskip\baselineskip \labelsep=.5em%
+ \trivlist
+ \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\slshape}
+\def\@endtheorem{\endtrivlist \vskip\baselineskip}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Titlepage}
+%
+% \begin{environment}{titlepage}
+% In the normal environments, the titlepage environment does
+% nothing but start and end a page, and inhibit page numbers. It
+% also resets the page number to zero. This is incorrect since it
+% results in using the page parameters for a right-hand page but it
+% is the way it was. In two-column style, it still makes a
+% one-column page.
+%
+% \changes{v1.0.7}{1993/12/09}{Moved the setting of
+% \cs{@restonecolfalse}}
+% \changes{v2.0f}{1994/04/18}{Incorporated LL's changes to this
+% environment}
+% \begin{macrocode}
+\newenvironment{titlepage}
+ {
+%<boek> \cleardoublepage
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+ \if@compatibility
+ \setcounter{page}\z@
+%<*artikel|rapport>
+ \else
+ \setcounter{page}\@ne
+%</artikel|rapport>
+ \fi}
+ {\if@restonecol\twocolumn \else \newpage \fi
+%<artikel|rapport> \setcounter{page}\@ne
+ }
+% \end{macrocode}
+% \end{environment}
+%
+% \subsubsection{Appendix}
+%
+% \begin{macro}{\appendix}
+%
+% The |\appendix| command is not really an environment, it is a
+% macro that makes some changes in the way things are done.
+%
+% In the artikel document classes the |\appendix| command must do the
+% following:
+% \begin{itemize}
+% \item reset the section and subsection counters to zero,
+% \item redefine |\thesection| to produce alphabetic appendix
+% numbers.
+% \end{itemize}
+%
+% \changes{v2.0z}{2004/02/20}{Redefine \cs{thesection} globally
+% (\LaTeX{} pr/2862)}
+% \begin{macrocode}
+%<*artikel>
+\newcommand*\appendix{\par
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \gdef\thesection{\@Alph\c@section}}
+%</artikel>
+% \end{macrocode}
+%
+% In the rapport and boek document classes the |\appendix| command
+% must do the following:
+% \begin{itemize}
+% \item reset the chapter and section counters to zero,
+% \item set |\@chapapp| to |\appendixname| (for messages),
+% \item redefine the chapter counter to produce appendix numbers,
+% \item possibly redefine the |\chapter| command if appendix titles
+% and headings are to look different from chapter titles and
+% headings.
+% \end{itemize}
+%
+% \changes{v2.0z}{2004/02/20}{Redefine \cs{thechapter} and
+% \cs{@chapapp} globally (\LaTeX{} pr/2862)}
+% \begin{macrocode}
+%<*rapport|boek>
+\newcommand*\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@Alph\c@chapter}}
+%</rapport|boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \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 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.
+%
+% \begin{macrocode}
+%<type1>\def\@minipagerestore{\parindent\unitindent}
+%<*type3>
+\def\@minipagerestore{%
+ \parskip=.5\baselineskip \@plus .1\baselineskip
+ \@minus .1\baselineskip}
+%</type3>
+% \end{macrocode}
+% \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}
+% When within chapters, the equation counter will be reset at
+% beginning of a new chapter and the equation number will be
+% prefixed by the chapter number.
+%
+% This code must follow the |\chapter| definition, or more exactly
+% the definition of the chapter counter.
+% \changes{v2.0v}{1997/03/02}{Added test for non-zero chapter number}
+% \begin{macrocode}
+%<artikel>\renewcommand*\theequation{\@arabic\c@equation}
+%<*rapport|boek>
+\@addtoreset{equation}{chapter}
+\renewcommand*\theequation{%
+ \ifnum \c@chapter>\z@ \thechapter.\fi\@arabic\c@equation}
+%</rapport|boek>
+% \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{Floating objects}
+%
+% The file \file{latex.dtx} only defines a number of tools with
+% which floating objects can be defined. This is done in the
+% document class. It needs to define the following macros for each
+% floating object of type \texttt{TYPE} (e.g., \texttt{TYPE} =
+% figure).
+%
+% \begin{description}
+% \item[\texttt{\bslash fps@TYPE}]
+% The default placement specifier for floats of type
+% \texttt{TYPE}.
+%
+% \item[\texttt{\bslash ftype@TYPE}]
+% The type number for floats of type \texttt{TYPE}. Each
+% \texttt{TYPE} has associated a unique positive {\texttt
+% TYPE} number, which is a power of two. E.g., figures might
+% have type number 1, tables type number 2, programs type
+% number 4, etc.
+%
+% \item[\texttt{\bslash ext@TYPE}]
+% The file extension indicating the file on which the contents
+% list for float type \texttt{TYPE} is stored. For example,
+% |\ext@figure| = `lof'.
+%
+% \item[\texttt{\bslash fnum@TYPE}]
+% A macro to generate the figure number for a caption. For
+% example, |\fnum@TYPE| == `Figure |\thefigure|'.
+%
+% \item[\texttt{\bslash @makecaption{\meta{num}}{\meta{text}}}]
+% A macro to make a caption, with \meta{num} the value produced
+% by |\fnum@...| and \meta{text} the text of the caption. It
+% can assume it's in a |\parbox| of the appropriate width.
+% This will be used for \emph{all} floating objects.
+%
+% \end{description}
+%
+% The actual environment that implements a floating object such as
+% a figure is defined using the macros |\@float| and |\end@float|,
+% which are defined in \file{latex.dtx}.
+%
+% An environment that implements a single column floating object is
+% started with |\@float{|\texttt{TYPE}|}[|\meta{placement}|]| of type
+% \texttt{TYPE} with \meta{placement} as the placement specifier.
+% The default value of \meta{PLACEMENT} is defined by |\fps@TYPE|.
+%
+% The environment is ended by |\end@float|. E.g., |\figure| ==
+% |\@float|{figure}, |\endfigure| == |\end@float|.
+%
+% \subsubsection{Figure}
+%
+% Here is the implementation of the figure environment.
+%
+% \begin{macro}{\c@figure}
+% First we have to allocate a counter to number the figures. In the
+% rapport and boek document classes the figures are numbered per
+% chapter.
+% \begin{macrocode}
+%<*artikel>
+\newcounter{figure}
+\renewcommand*\thefigure{\@arabic\c@figure}
+%</artikel>
+%<*rapport|boek>
+% \end{macrocode}
+% \changes{v2.0v}{1997/03/02}{Added test for non-zero chapter number}
+% \begin{macrocode}
+\newcounter{figure}[chapter]
+\renewcommand*\thefigure{%
+ \ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@figure}
+%</rapport|boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fps@figure}
+% \begin{macro}{\ftype@figure}
+% \begin{macro}{\ext@figure}
+% \begin{macro}{\num@figure}
+% Here are the parameters for the floating objects of type `figure'.
+% \changes{v2.0z}{2004/02/20}{Replaced tilde with \cs{nobreakspace}
+% (\LaTeX{} pr/3310)}
+% \begin{macrocode}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{\figurename\nobreakspace\thefigure}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{environment}{figure}
+% \begin{environment}{figure*}
+% And the definition of the actual environment. The form with the
+% |*| is used for double column figures.
+% \begin{macrocode}
+\newenvironment{figure}
+ {\@float{figure}}
+ {\end@float}
+\newenvironment{figure*}
+ {\@dblfloat{figure}}
+ {\end@dblfloat}
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \subsubsection{Table}
+%
+% Here is the implementation of the table environment. It is very
+% much the same as the figure environment.
+%
+% \begin{macro}{\c@table}
+% First we have to allocate a counter to number the tables. In the
+% rapport and boek document classes the tables are numbered per
+% chapter.
+% \begin{macrocode}
+%<*artikel>
+\newcounter{table}
+\renewcommand*\thetable{\@arabic\c@table}
+%</artikel>
+%<*rapport|boek>
+% \end{macrocode}
+% \changes{v2.0v}{1997/03/02}{Added test for non-zero chapter number}
+% \begin{macrocode}
+\newcounter{table}[chapter]
+\renewcommand*\thetable{%
+ \ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@table}
+%</rapport|boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fps@table}
+% \begin{macro}{\ftype@table}
+% \begin{macro}{\ext@table}
+% \begin{macro}{\num@table}
+% Here are the parameters for the floating objects of type `table'.
+% \changes{v2.0z}{2004/02/20}{Replaced tilde with \cs{nobreakspace}
+% (\LaTeX{} pr/3310)}
+% \begin{macrocode}
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{\tablename\nobreakspace\thetable}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{environment}{table}
+% \begin{environment}{table*}
+% And the definition of the actual environment. The form with the
+% |*| is used for double column tables.
+% \begin{macrocode}
+\newenvironment{table}
+ {\@float{table}}
+ {\end@float}
+\newenvironment{table*}
+ {\@dblfloat{table}}
+ {\end@dblfloat}
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+% \subsubsection{Captions}
+%
+% \begin{macro}{\@makecaption}
+% The |\caption| command calls |\@makecaption| to format the
+% caption of floating objects. It gets two arguments,
+% \meta{number}, the number of the floating object and \meta{text},
+% the text of the caption. Usually \meta{number} contains a string
+% such as `Figure 3.2'. The macro can assume it is called inside a
+% |\parbox| of right width, with |\normalsize|.
+%
+% \begin{macro}{\abovecaptionskip}
+% \begin{macro}{\belowcaptionskip}
+% These lengths contain the amount of white space to leave above
+% and below the caption.
+% \begin{macrocode}
+\newlength\abovecaptionskip
+\newlength\belowcaptionskip
+\setlength\abovecaptionskip{10\p@}
+\setlength\belowcaptionskip{0\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The definition of this macro is |\long| in order to allow more
+% then one paragraph in a caption.
+% \changes{v2.0d}{1994/02/23}{Introduced \cs{CaptionLabelFont} and
+% \cs{CaptionTextFont}}
+% \changes{v2.0e}{1994/03/19}{\cs{CaptionLabelFont} shouldn't
+% influence the font for the caption text}
+% \begin{macrocode}
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+% \end{macrocode}
+% We want to see if the caption fits on one line on the page,
+% therefore we first typeset it in a temporary box.
+% \changes{vv2.0g}{1994/06/01}{Use \cs{sbox}\cs{@tempboxa} instead of
+% \cs{setbox}\cs{@tempboxa}\cs{hbox} to make this colour safe}
+% \begin{macrocode}
+ \sbox\@tempboxa{{\CaptionLabelFont#1:} \CaptionTextFont#2}%
+% \end{macrocode}
+% We can the measure its width. It that is larger than the current
+% |\hsize| we typeset the caption as an ordinary paragraph.
+% \begin{macrocode}
+ \ifdim \wd\@tempboxa >\hsize
+ {\CaptionLabelFont#1:} \CaptionTextFont#2\par
+% \end{macrocode}
+% If the caption fits, we center it. Because this uses an |\hbox|
+% directly in vertical mode, it does not execute the |\everypar|
+% tokens; the only thing that could be needed here is resetting the
+% `minipage flag' so we do this explicitly.
+% \changes{v2.0m}{1994/12/20}{Due to a change in the way floats are
+% handled we need to set the \cs{if@minipage} switch to false}
+% \begin{macrocode}
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CaptionLabelFont}
+% \begin{macro}{\CaptionTextFont}
+% These macros can contain the fonts used for typesetting captions.
+% By default they do nothing.
+% \begin{macrocode}
+\newcommand*\CaptionLabelFont{\relax}
+\newcommand*\CaptionTextFont{\relax}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\CaptionFonts}
+% To change the fonts that are used to typeset captions
+% this macro can be used.
+% \begin{macrocode}
+\newcommand*\CaptionFonts[2]{%
+ \renewcommand*\CaptionLabelFont{#1}%
+ \renewcommand*\CaptionTextFont{#2}%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Font changing}
+%
+% \changes{v2.0f}{1994/04/18}{\cs{@newfontswitch} and
+% \cs{@renewfontswitch} have become \cs{DeclareOldFontCommand}}
+%
+% 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
+% compatibility, but one should start using the |\text...| and
+% |\math...| commands instead. These commands are defined using
+% |\DeclareOldFontCommand|, 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.
+%
+% \changes{v1.0.7}{1993/12/12}{Distinguished between compatibility and
+% `normal' mode for the font changing commands.}
+% \changes{v1.0.8}{1993/12/18}{These are now defined in the kernel,
+% so use \cs{@renewfontswitch}. Compatibility mode defines
+% \cs{@renewfontswitch} to do nothing, so we don't need to check for
+% compatibility mode any more.}
+% \changes{v1.0.10}{1993/12/20}{Added \cs{normalfont} back in the
+% definitions of \cs{rm} etc. as this should be the default
+% behaviour}
+% \begin{macro}{\rm}
+% \changes{v1.0.6}{1993/12/08}{Macro added}
+% \begin{macro}{\tt}
+% \changes{v1.0.6}{1993/12/08}{Macro added}
+% \begin{macro}{\sf}
+% \changes{v1.0.6}{1993/12/08}{Macro added}
+%
+% The commands to change the family. When in compatibility mode we
+% select the `default' font first, to get \LaTeX2.09 behviour.
+% \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}
+% \changes{v1.0.6}{1993/12/08}{Macro added}
+% 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}
+% \changes{v1.0.6}{1993/12/08}{Macro added}
+% \begin{macro}{\it}
+% \changes{v1.0.6}{1993/12/08}{Macro added}
+% \begin{macro}{\sc}
+% \changes{v1.0.6}{1993/12/08}{Macro added}
+%
+% 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}
+% \changes{v1.0.7}{1993/12/12}{Macro added}
+% \begin{macro}{\mit}
+% \changes{v1.0.7}{1993/12/12}{Macro added}
+%
+% 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.0m}{1994/12/20}{Now define \cs{cal} and \cs{mit} using
+% \cs{DeclareRobustCommand*}}
+% \changes{v2.0t}{1996/04/01}{Repaired a couple of typos}
+% \begin{macrocode}
+\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
+\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\em}
+% The definition of \verb*|\em| is changed here to have slanted
+% instead of italic fonts.
+% \changes{v2.0s}{1995/11/28}{Now redefine \cs*{em} instead of \cs{pem}}
+% \begin{macrocode}
+\DeclareRobustCommand*\em{%
+ \@nomath\em
+ \ifdim\fontdimen\@ne\font>\z@
+ \upshape
+ \else
+ \slshape
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Cross Referencing}
+% \subsection{Table of Contents, etc.}
+%
+% A |\section| command writes a
+% |\contentsline{section}{|\meta{title}|}{|\meta{page}|}| command
+% on the \file{.toc} file, where \meta{title} contains the
+% contents of the entry and \meta{page} is the page number. If
+% sections are being numbered, then \meta{title} will be of the
+% form |\numberline{|\meta{num}|}{|\meta{heading}|}| where
+% \meta{num} is the number produced by |\thesection|. Other
+% sectioning commands work similarly.
+%
+% A |\caption| command in a `figure' environment writes
+%
+% |\contentsline{figure}{\numberline{|\meta{num}|}{|%
+% \meta{caption}|}}{|\meta{page}|}|
+%
+% on the .\file{lof} file, where \meta{num} is the number produced
+% by |\thefigure| and \meta{caption} is the figure caption. It
+% works similarly for a `table' environment.
+%
+% The command |\contentsline{|\meta{name}|}| expands to
+% |\l@|\meta{name}. So, to specify the table of contents, we must
+% define |\l@chapter|, |\l@section|, |\l@subsection|, ... ; to
+% specify the list of figures, we must define |\l@figure|; and so
+% on. Most of these can be defined with either the
+% |\@dottedtocline| or the |\@regtocline| command, which work as
+% follows.
+%
+% |\@dottedtocline{|\meta{level}|}{|\meta{indent}|}{|^^A
+% \meta{numwidth}|}{|^^A
+% \meta{title}|}{|\meta{page}|}|
+%
+% |\@regtocline{|\meta{level}|}{|\meta{title}|}{|\meta{page}|}|
+%
+% \begin{description}
+% \item[\meta{level}] An entry is produced only if\meta{ level}
+% $<=$ value of the \Lcount{tocdepth} counter. Note,
+% |\chapter| is level 0, |\section| is level 1, etc.
+% \item[\meta{indent}] The indentation from the outer left margin
+% of the start of the contents line.
+% \item[\meta{numwidth}] The width of a box in which the section
+% number is to go, if \meta{title} includes a |\numberline|
+% command.
+% \end{description}
+%
+% \begin{macro}{\@pnumwidth}
+% \begin{macro}{\@tocrmarg}
+% \begin{macro}{\@dotsep}
+% This command uses the following three parameters, which are set
+% with a |\newcommand| (so em's can be used to make them depend upon
+% the font).
+% \begin{description}
+% \item[\texttt{\bslash @pnumwidth}] The width of a box in which the
+% page number is put.
+% \changes{v2.0m}{1994/12/20}{Changed documentation from > or = to
+% $\ge$}
+% \item[\texttt{\bslash @tocrmarg}] The right margin for multiple
+% line entries. One wants |\@tocrmarg| $\ge$ |\@pnumwidth|
+% \item[\texttt{\bslash @dotsep}] Separation between dots, in mu
+% units. Should be defined as a number like 2 or 1.7
+% \end{description}
+%
+% \begin{macrocode}
+\newcommand*\@pnumwidth{1.55em}
+\newcommand*\@tocrmarg {2.55em}
+\newcommand*\@dotsep{4.5}
+%<artikel>\setcounter{tocdepth}{3}
+%<!artikel>\setcounter{tocdepth}{2}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Table of Contents}
+%
+% \begin{macro}{\tableofcontents}
+% This macro is used to request that \LaTeX{} produces a table of
+% contents. In the rapport and boek document classes the tables of
+% contents, figures etc. are always set in single-column style.
+%
+% \changes{v1.0.7}{1993/12/09}{Moved the setting of
+% \cs{@restonecolfalse}}
+% \begin{macrocode}
+\newcommand*\tableofcontents{%
+%<*rapport|boek>
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+% \end{macrocode}
+% The title is set using the |\chapter*| command, making sure that
+% the running head --if one is required-- contains the right
+% information.
+% \changes{v2.1a}{2004/06/07}{Moved \cs{@mkboth} out of heading arg
+% (\LaTeX{} pr/3285)}
+% \begin{macrocode}
+ \chapter*{\contentsname}%
+%</rapport|boek>
+%<artikel> \section*{\contentsname}%
+ \@mkboth{\MakeUppercase{\contentsname}}%
+ {\MakeUppercase{\contentsname}}%
+% \end{macrocode}
+% The the actual table of contents is made by calling
+% |\@starttoc{toc}|. After that we restore twocolumn mode if
+% necessary.
+% \begin{macrocode}
+ \@starttoc{toc}%
+%<!artikel> \if@restonecol\twocolumn\fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@starttoc}
+% The internal \LaTeXe macro |\@starttoc| needs to be adapted for
+% the \file{artikel3} and \file{rapport3} document classes,in order
+% to deal with a the fact that for these document classes the
+% |\parskip| is normally non-zero. We don't want that in the table
+% of contents.
+% \begin{macrocode}
+%<*type3>
+\def\@starttoc#1{\begingroup
+ \makeatletter
+ \parskip\z@
+ \@input{\jobname.#1}%
+ \if@filesw
+ \expandafter\newwrite\csname tf@#1\endcsname
+ \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+ \fi \global\@nobreakfalse \endgroup}
+%</type3>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@regtocline}
+% These document classes use a different format for the table of
+% contents than the standard classes from which they were
+% developped. In order to acheive this different format we defined
+% the macro |\@regtocline|.
+% \begin{macrocode}
+\newcommand*\@regtocline[3]{%
+ \ifnum #1>\c@tocdepth
+ \else
+ \vskip\z@\@plus.2\p@
+ {\hangindent\z@ \@afterindenttrue \interlinepenalty\@M
+ \leftskip\unitindent
+ \rightskip\unitindent\@plus 1fil
+ \parfillskip\z@
+ \@tempdima\unitindent
+%<type2> \advance\@tempdima by \othermargin
+ \parindent\z@
+ \leavevmode
+ \hbox{}\hskip -\leftskip\relax#2\nobreak
+ \hskip 1em \nobreak{\slshape #3}\par
+ }%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\numberline}
+% This internal macro is redefined for the \file{artikel2} document
+% class.
+% \begin{macrocode}
+%<type2>\def\numberline#1{\hb@xt@\@tempdima{\hfil#1\hskip.3em}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\toc@font}
+% The changed definition of |\@sect| that we use, selects a
+% different font for the table of contents for the various header
+% levels. It does this using |\toc@font|.
+% \begin{macrocode}
+\if@oldtoc
+ \newcommand*\toc@font[1]{\relax}
+\else
+ \newcommand*\toc@font[1]{%
+%<*artikel>
+ \ifcase#1\relax
+%<type2> \Large\bfseries
+ \or\bfseries
+ \or\slshape
+ \or\rmfamily
+%</artikel>
+%<*rapport|boek>
+ \ifcase#1\relax
+ \bfseries
+ \or\slshape
+ \or\rmfamily
+%</rapport|boek>
+ \fi}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\toc@case}
+% In the \file{rapport} and \file{boek} document classes, the
+% entries for parts are typeset in capital letters in the new style
+% of the table of contents. In the old style this isn't done. The
+% macro |\toc@case| is used to switch this.
+% \begin{macrocode}
+\if@oldtoc
+ \newcommand*\toc@case{\relax}
+\else
+ \newcommand*\toc@case{\MakeUppercase}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@part}
+% Each sectioning command needs an additional macro to format its
+% entry in the table of contents, as described above. The macro for
+% the entry for parts is defined in a special way.
+%
+% First we make sure that if a pagebreak should occur, it occurs
+% \emph{before} this entry. Also a little whitespace is added and a
+% group begun to keep changes local.
+% \changes{v1.0.8}{1993/12/18}{Replaced -\cs{@secpenalty} by
+% \cs{@secpenalty}. ASAJ.}
+%
+% First we have the definition from the standard classes.
+% \changes{v2.0q}{1995/08/22}{Don't print a toc line when the tocdepth
+% counter is less then -1; Added missing braces around argument to
+% \cs{addpenalty}.}
+% \begin{macrocode}
+\if@oldtoc
+\newcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >-2\relax
+%<artikel> \addpenalty\@secpenalty
+%<!artikel> \addpenalty{-\@highpenalty}%
+ \addvspace{2.25em \@plus\p@}%
+ \begingroup
+% \end{macrocode}
+% The macro |\numberline| requires that the width of the box that
+% holds the part number is stored in \LaTeX's scratch register
+% |\@tempdima|. Therefore we put it there.
+% \begin{macrocode}
+ \setlength\@tempdima{3em}%
+% \end{macrocode}
+% The we set |\parindent| to 0pt and use |\rightskip| to leave
+% enough room for the pagenumbers. To prevent overfull box messages
+% the |\parfillskip| is set to a negative value.
+% \begin{macrocode}
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+% \end{macrocode}
+% Now we can set the entry, in a large bold font. We make sure to
+% leave vertical mode, set the part title and add the pagenumber,
+% set flush right.
+% \begin{macrocode}
+ {\leavevmode
+ \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
+% \end{macrocode}
+% Prevent a pagebreak immediately after this entry, but use
+% |\everypar| to reset the |\if@nobreak| switch. Finally we close
+% the group.
+% \changes{v2.0r}{1995/10/05}{Added missing percent}
+% \begin{macrocode}
+ \nobreak
+%<artikel> \if@compatibility
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+%<artikel> \fi
+ \endgroup
+ \fi}
+% \end{macrocode}
+% Then we can introduce our new definition.
+% \begin{macrocode}
+\else
+ \newcommand*\l@part{%
+ \ifnum \c@tocdepth >-2\relax
+%<artikel> \addpenalty\@secpenalty
+%<!artikel> \addpenalty{-\@highpenalty}%
+ \addvspace{2.25em \@plus \p@}%
+ \@regtocline{0}%
+ \fi}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@chapter}
+% This macro formats the entries in the table of contents for
+% chapters. It is very similar to |\l@part|
+%
+% First we make sure that if a pagebreak should occur, it occurs
+% \emph{before} this entry. Also a little whitespace is added and a
+% group begun to keep changes local.
+%
+% Again we first present the `standard' definition
+% \changes{v2.0q}{1995/08/22}{Added missing braces around argument to
+% \cs{addpenalty}.}
+% \begin{macrocode}
+%<*rapport|boek>
+\if@oldtoc
+\newcommand*\l@chapter[2]{%
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+% \end{macrocode}
+%
+% The macro |\numberline| requires that the width of the box that
+% holds the part number is stored in \LaTeX's scratch register
+% |\@tempdima|. Therefore we put it there. We begin a group, and
+% change some of the paragraph parameters.
+% \begin{macrocode}
+ \setlength\@tempdima{1.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+% \end{macrocode}
+% Then we leave vertical mode and switch to a bold font.
+% \begin{macrocode}
+ \leavevmode \bfseries
+% \end{macrocode}
+% Because we do not use |\numberline| here, we have do some fine
+% tuning `by hand', before we can set the entry. We discourage but
+% not disallow a pagebreak immediately after a chapter entry.
+% \begin{macrocode}
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup}
+% \end{macrocode}
+% Then we present our new definition.
+% \begin{macrocode}
+\else
+ \newcommand*\l@chapter{\@regtocline{0}}
+\fi
+%</rapport|boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@section}
+% In the artikel document classes the entry in the table of contents
+% for sections looks much like the chapter entries for the rapport
+% and boek document classes.
+%
+% First we make sure that if a pagebreak should occur, it occurs
+% \emph{before} this entry. Also a little whitespace is added and a
+% group begun to keep changes local.
+% \changes{v1.0.8}{1993/12/18}{Replaced -\cs{@secpenalty} by
+% \cs{@secpenalty}. ASAJ.}
+% \begin{macrocode}
+%<*artikel>
+\if@oldtoc
+\newcommand*\l@section[2]{%
+ \addpenalty\@secpenalty
+ \addvspace{1.0em \@plus\p@}%
+% \end{macrocode}
+%
+% The macro |\numberline| requires that the width of the box that
+% holds the part number is stored in \LaTeX's scratch register
+% |\@tempdima|. Therefore we put it there. We begin a group, and
+% change some of the paragraph paramters.
+% \begin{macrocode}
+ \setlength\@tempdima{1.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+% \end{macrocode}
+% Then we leave vertical mode and switch to a bold font.
+% \begin{macrocode}
+ \leavevmode \bfseries
+% \end{macrocode}
+% Because we do not use |\numberline| here, we have do some fine
+% tuning `by hand', before we can set the entry. We discourage but
+% not disallow a pagebreak immediately after a chapter entry.
+% \begin{macrocode}
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \endgroup}
+% \end{macrocode}
+% The new definition:
+% \begin{macrocode}
+\else
+ \newcommand*\l@section{\@regtocline{1}}
+\fi
+%</artikel>
+% \end{macrocode}
+% In the rapport and boek document classes the definition for
+% |\l@section| is much simpler.
+% \changes{v2.0g}{1994/06/01}{Added a missing backslash}
+% \begin{macrocode}
+%<*rapport|boek>
+\if@oldtoc
+ \newcommand*\l@section {\@dottedtocline{1}{1.5em}{2.3em}}
+\else
+ \newcommand*\l@section {\@regtocline{1}}
+\fi
+%</rapport|boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@subsection}
+% \begin{macro}{\l@subsubsection}
+% \begin{macro}{\l@paragraph}
+% \begin{macro}{\l@subparagraph}
+% All lower level entries are defined using the macro
+% |\@dottedtocline| or |\@regtocline| (see above).
+% \begin{macrocode}
+\if@oldtoc
+%<*artikel>
+ \newcommand*\l@subsection {\@dottedtocline{2}{1.5em}{2.3em}}
+ \newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
+ \newcommand*\l@paragraph {\@dottedtocline{4}{7.0em}{4.1em}}
+ \newcommand*\l@subparagraph {\@dottedtocline{5}{10em}{5em}}
+%</artikel>
+%<*rapport|boek>
+ \newcommand*\l@subsection {\@dottedtocline{2}{3.8em}{3.2em}}
+ \newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
+ \newcommand*\l@paragraph {\@dottedtocline{4}{10em}{5em}}
+ \newcommand*\l@subparagraph {\@dottedtocline{5}{12em}{6em}}
+%</rapport|boek>
+\else
+ \newcommand*\l@subsection {\@regtocline{2}}
+ \newcommand*\l@subsubsection{\@regtocline{3}}
+ \newcommand*\l@paragraph {\@regtocline{4}}
+ \newcommand*\l@subparagraph {\@regtocline{5}}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{List of figures}
+%
+% \begin{macro}{\listoffigures}
+% This macro is used to request that \LaTeX{} produces a list of
+% figures. It is very similar to |\tableofcontents|.
+%
+% \changes{v1.0.7}{1993/12/09}{Moved the setting of
+% \cs{@restonecolfalse}}
+% \changes{v2.0z}{2004/02/20}{Moved \cs{@mkboth} out of heading arg
+% (\LaTeX{} pr/3285)}
+% \changes{v2.1a}{2004/06/07}{Added a missing closing brace}
+% \begin{macrocode}
+\newcommand*\listoffigures{%
+%<*rapport|boek>
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listfigurename}%
+%</rapport|boek>
+%<artikel> \section*{\listfigurename}%
+ \@mkboth{\MakeUppercase{\listfigurename}}%
+ {\MakeUppercase{\listfigurename}}%
+ \@starttoc{lof}%
+%<rapport|boek> \if@restonecol\twocolumn\fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@figure}
+% This macro produces an entry in the list of figures.
+% \begin{macrocode}
+\if@oldtoc
+ \newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+\else
+ \newcommand*\l@figure{\@regtocline{1}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{List of tables}
+%
+% \begin{macro}{\listoftables}
+% This macro is used to request that \LaTeX{} produces a list of
+% tables. It is very similar to |\tableofcontents|.
+%
+% \changes{v1.0.7}{1993/12/09}{Moved the setting of \cs{@restonecolfalse}}
+% \changes{v2.0z}{2004/02/20}{Moved \cs{@mkboth} out of heading arg
+% (\LaTeX{} pr/3285)}
+% \changes{v2.1a}{2004/06/07}{Added a missing closing brace}
+% \begin{macrocode}
+\newcommand*\listoftables{%
+%<*rapport|boek>
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listtablename}%
+%</rapport|boek>
+%<artikel> \section*{\listtablename}%
+ \@mkboth{\MakeUppercase{\listtablename}}%
+ {\MakeUppercase{\listtablename}}%
+ \@starttoc{lot}%
+%<rapport|boek> \if@restonecol\twocolumn\fi
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@table}
+% This macro produces an entry in the list of tables.
+% \begin{macrocode}
+\let\l@table\l@figure
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Bibliography}
+%
+% \begin{macro}{\bibindent}
+% The ``open'' bibliography format uses an indentation of
+% |\bibindent|.
+% \begin{macrocode}
+\newdimen\bibindent
+\setlength\bibindent{1.5em}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newblock}
+% This is a dummy definition for this macro which is used in the
+% \textsf{thebibliography} environment.
+% \begin{macrocode}
+\newcommand*\newblock{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{thebibliography}
+% The `thebibliography' environment executes the following
+% commands:
+%
+% |\renewcommand\newblock{\hskip .11em \@plus .33em \@minus .07em}|
+% -- Defines the ``closed'' format, where the blocks (major units
+% of information) of an entry run together.
+%
+% |\sloppy| -- Used because it's rather hard to do line breaks in
+% bibliographies,
+%
+% |\sfcode`\.=1000\relax| --
+% Causes a `.' (period) not to produce an end-of-sentence space.
+%
+% The implementation of this environment is based on the generic
+% list environment. It uses the \Lcount{enumiv} counter internally
+% to generate the labels of the list.
+%
+% When an empty `thebibliography' environment is found, a warning
+% is issued.
+%
+% \changes{v1.0.9}{1993/12/19}{Corrected definition of thebibliography
+% for artikel}
+% \changes{v2.0r}{1995/10/05}{Removed unneeded braces}
+% \changes{v2.0z}{2004/02/20}{Moved \cs{@mkboth} out of heading arg
+% (\LaTeX{} pr/3285)}
+% \begin{macrocode}
+\newenvironment{thebibliography}[1]
+%<*artikel>
+ {\section*{\refname}%
+ \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
+%</artikel>
+%<*!artikel>
+ {\chapter*{\bibname}%
+ \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
+%</!artikel>
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand*\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\newblock}
+% The default definition for |\newblock| is to produce a small space.
+% \begin{macrocode}
+% \changes{v2.0t}{1996/04/01}{use \cs{renewcommand} instead of
+% \cs{newcommand}}
+\renewcommand\newblock{\hskip.11em\@plus.33em\@minus.07em}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@openbib@code}
+% The default definition for |\@openbib@code| is to do nothing.
+% It will be changed by the \Lopt{openbib} option.
+% \changes{v2.0r}{1995/10/05}{Macro added}
+% \begin{macrocode}
+\let\@openbib@code\@empty
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@biblabel}
+% The label for a |\bibitem[...]| command is produced by this
+% macro. The default from \file{latex.dtx} is used.
+% \begin{macrocode}
+% \renewcommand*\@biblabel[1]{[#1]\hfill}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@cite}
+% The output of the |\cite| command is produced by this macro. The
+% default from \file{latex.dtx} is used.
+% \begin{macrocode}
+% \renewcommand*\@cite[1]{[#1]}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{The index}
+%
+% \begin{environment}{theindex}
+% The environment `theindex' can be used for indices. It makes an
+% index with two columns, with each entry a seperate paragraph. At
+% the user level the commands |\item|, |\subitem| and |\subsubitem|
+% are used to produce index entries of various levels. When a new
+% letter of the alphabet is encountered an amount of |\indexspace|
+% white space can be added.
+%
+%
+% \changes{v1.0.7}{1993/12/09}{Moved the setting of
+% \cs{@restonecoltrue}}
+% \begin{macrocode}
+\newenvironment{theindex}{%
+ \if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+%<artikel> \twocolumn[\section*{\indexname}]%
+%<!artikel> \twocolumn[\@makeschapterhead{\indexname}]%
+ \@mkboth{\MakeUppercase{\indexname}}{\MakeUppercase{\indexname}}%
+ \thispagestyle{plain}\parindent\z@
+% \end{macrocode}
+% Parameter changes to |\columnseprule| and |\columnsep| have to be
+% done after |\twocolumn| has acted. Otherwise they can affect the
+% last page before the index.
+% \changes{v2.0z}{2004/02/20}{Moved setting of \cs{columnsep} and
+% \cs{columnseprule} later to avoid affecting the wrong page (cf
+% \LaTeX{} pr/3616)}
+% \begin{macrocode}
+ \columnseprule \z@
+ \columnsep 35\p@
+ \parskip\z@ \@plus .3\p@\relax
+ \let\item\@idxitem
+ }{%
+% \end{macrocode}
+% When the document continues after the index and it was a one
+% column document we have to switch back to one column after the
+% index.
+% \begin{macrocode}
+ \if@restonecol\onecolumn\else\clearpage\fi}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\@idxitem}
+% \begin{macro}{\subitem}
+% \begin{macro}{\subsubitem}
+% Thsee macros are used to format the entries in the index.
+% \begin{macrocode}
+\newcommand*\@idxitem {\par\hangindent 40\p@}
+\newcommand*\subitem {\@idxitem\hspace*{20\p@}}
+\newcommand*\subsubitem{\@idxitem\hspace*{30\p@}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\indexspace}
+% The amount of white space that is inserted between `letter
+% blocks' in the index.
+% \begin{macrocode}
+\newcommand*\indexspace{\par\vskip10\p@\@plus5\p@\@minus3\p@\relax}
+% \end{macrocode}
+% \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|.
+% The standard \LaTeX\ document classes make sure that the rule
+% takes no vertical space (see \file{plain.tex}) and compensate for
+% the natural heigth of the rule of 0.4pt by adding the right
+% amount of vertical skip. For the \file{artikel2} document class
+% this is still true, but for the others the amount of whitespace
+% between the last line of the text and the start of the footnotes
+% is increased by giving |\footnoterule| a positive
+% height\footnote{This should perhaps have been done by increasing
+% the value of \cs{skip}\cs{footins}, but changing that now would
+% mean changing the formatting of existing
+% documents. (\small\texttt{JLB, 08/09/1997})}.
+%
+% To prevent the rule from colliding with the footnote we first add
+% a little negative vertical skip, then we put the rule and add
+% some positive vertical skip.
+% \begin{macrocode}
+\renewcommand*\footnoterule{%
+ \kern-3\p@
+%<*type1|type3>
+ \kern.5\baselineskip
+ \hrule\@width\unitindent
+ \kern.4\baselineskip
+%</type1|type3>
+%<*type2>
+ \hrule\@width 3\unitindent
+ \kern 2.6\p@
+%</type2>
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\c@footnote}
+% Footnotes are numbered within chapters in the rapport and boek
+% document styles.
+% \begin{macrocode}
+% \newcounter{footnote}
+%<!artikel>\@addtoreset{footnote}{chapter}
+% \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 |\@thefnmark| as 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.
+% \changes{v2.0c}{1994/02/21}{Adapted example to artikel style.}
+% \begin{verbatim}
+% \long\def\@xmakefntext#1#2{%
+% %<!type3> \parindent=.5\unitindent
+% %<type3> \parindent=\z@\parskip=.5\baselineskip
+% \def\labelitemi{--}\@revlabeltrue
+% {\setbox0=\hbox {#1\hskip.5em plus 1fil}%
+% \dimen0=2\wd0
+% \ifdim\dimen0>\unitindent
+% \global\unitindent=\dimen0
+% \@indentset
+% \fi}%
+% \@setpar{\@@par
+% \@tempdima \hsize
+% \advance\@tempdima-.5\unitindent
+% \parshape \@ne .5\unitindent \@tempdima}%
+% \par
+% \noindent\llap{\hb@xt@.5\unitindent{#1\hfil}}#2}
+% \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 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. We change the label of itemized lists inside footnotes
+% and need to check that the |\unitindent| is large enough for our
+% purposes.
+%
+% For most of the document classes produced from this file we need
+% a slightly modified |\@makefntext| on the title page, so we
+% introduce an extra macro, |\@xmakefntext|.
+% \changes{v2.0l}{1994/07/11}{Moved `.' from within \cs{@xmakefntext}
+% to \cs{@makefntext}}
+% \changes{v2.0t}{1996/04/01}{Repaired a typo}
+% \changes{v2.0u}{1996/09/23}{Changed \texttt{--} to \cs{textendash}
+% following \file{classes.dtx}}
+% \begin{macrocode}
+%<*type1|type3>
+\newcommand*\@makefntext{\@xmakefntext{\normalfont\@thefnmark.}}
+\newcommand*\@xmakefntext[1]{%
+ \parindent\z@
+ \def\labelitemi{\textendash}\@revlabeltrue
+ {\setbox0\hbox {#1\hskip.5em plus 1fil}
+ \dimen0=2\wd0\relax
+ \ifdim\dimen0>\unitindent
+ \global\unitindent\dimen0\relax
+ \@indentset
+ \fi}
+ \leavevmode\hb@xt@.5\unitindent{#1\hfil}}
+%</type1|type3>
+% \end{macrocode}
+% For the \file{artikel2} document class we have a simpler
+% definition of |\@makefntext|.
+% \changes{v2.0m}{1994/12/30}{Added missing parameter}
+% \changes{v2.0w}{1997/04/01}{Mixed \cs{def} and \cs{newcommand} syntax}
+% \begin{macrocode}
+%<*type2>
+\newcommand\@makefntext[1]{%
+ \parindent\othermargin
+ \noindent\hb@xt@\othermargin{\normalfont\@thefnmark\hfil\relax}#1}
+%</type2>
+% \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|. We use
+% the default definition for it.
+% \begin{macrocode}
+%\renewcommand\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Initialization}
+%
+% \subsection{Words}
+%
+% \begin{macro}{\contentsname}
+% \begin{macro}{\listfigurename}
+% \begin{macro}{\listtablename}
+% This document class is for documents prepared in the English language.
+% To prepare a version for another language, various English words must
+% be replaced. All the English words that require replacement are
+% defined below in command names.
+% \begin{macrocode}
+\newcommand*\contentsname{Contents}
+\newcommand*\listfigurename{List of Figures}
+\newcommand*\listtablename{List of Tables}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\refname}
+% \begin{macro}{\bibname}
+% \begin{macro}{\indexname}
+% \begin{macrocode}
+%<artikel>\newcommand*\refname{References}
+%<rapport|boek>\newcommand*\bibname{Bibliography}
+\newcommand*\indexname{Index}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\figurename}
+% \begin{macro}{\tablename}
+% \begin{macrocode}
+\newcommand*\figurename{Figure}
+\newcommand*\tablename{Table}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\partname}
+% \begin{macro}{\chaptername}
+% \begin{macro}{\appendixname}
+% \begin{macro}{\abstractname}
+% \begin{macro}{\seename}
+% \begin{macro}{\andname}
+% \begin{macrocode}
+\newcommand*\partname{Part}
+%<rapport|boek>\newcommand*\chaptername{Chapter}
+\newcommand*\appendixname{Appendix}
+%<!boek>\newcommand*\abstractname{Abstract}
+\newcommand*\seename{see}
+\newcommand*\andname{and}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Date}
+%
+% \begin{macro}{\today}
+% This macro uses the \TeX\ primitives |\month|, |\day| and |\year|
+% to provide the date of the \LaTeX-run.
+% \begin{macrocode}
+\newcommand*\today{}
+% \end{macrocode}
+% To save space we define |\today| in a way that it is expanded
+% when the class file is read in. This means that low-level changes
+% to the internal \TeX{} registers that are happening later on
+% (e.g.\ if some packages goes |\month=5|) are not reflected in
+% |\today|.
+% \changes{v2.0r}{1995/10/05}{use \cs{edef} to save a lot of space}
+% \changes{v2.0z}{2004/02/20}{use \cs{def} again, latex/2620}
+% \begin{macrocode}
+\def\today{\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}
+% \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{plain} pages in the document classes
+% \file{artikel} and \file{rapport} unless the user specified
+% otherwise. In the \file{boek} document class we use the page
+% style \pstyle{headings} by default. We use arabic pagenumbers.
+% \begin{macrocode}
+%<!boek>\pagestyle{plain}
+%<boek>\pagestyle{headings}
+\pagenumbering{arabic} % Arabic page numbers
+% \end{macrocode}
+%
+% \subsection{Single or double sided printing}
+%
+% \changes{v2.0m}{1994/12/20}{removed typo}
+% When the \Lopt{twoside} option wasn't specified, we don't try to
+% make each page as long as all the others.
+% \begin{macrocode}
+%<*artikel>
+\if@twoside
+\else
+ \raggedbottom
+\fi
+%</artikel>
+% \end{macrocode}
+% When the \Lopt{twocolumn} option was specified we call
+% |\twocolumn| to activate this mode. We try to make each column as
+% long as the others, but call |sloppy| to make our life easier.
+% \begin{macrocode}
+\if@twocolumn
+ \twocolumn
+ \sloppy
+ \flushbottom
+% \end{macrocode}
+% Normally we call |\onecolumn| to initiate typesetting in one
+% column.
+% \begin{macrocode}
+\else
+ \onecolumn
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\frenchspacing}
+% Controls the amount of space after a punctuation mark.
+% \begin{macrocode}
+\frenchspacing
+%</artikel|rapport|boek>
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+%
+\endinput
+%
diff --git a/macros/latex/contrib/ntgclass/ntgclass.ins b/macros/latex/contrib/ntgclass/ntgclass.ins
new file mode 100644
index 0000000000..c0b15021c9
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/ntgclass.ins
@@ -0,0 +1,101 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright (C) 1990-1999 Nederlandstalige TeX Gebruikersgroep.
+%%
+%% 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.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\input docstrip.tex % ignored in distribution
+
+\preamble
+This is a generated file.
+
+Copyright (C) 1990-2004 Nederlandstalige TeX Gebruikersgroep.
+All rights reserved.
+
+This file was generated from file(s) 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.
+
+This file may only be distributed together with a copy of the NTG
+document classes distribution. You may however distribute the NTG
+document classes distribution without such generated files.
+
+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.
+\endpreamble
+
+\keepsilent
+\askonceonly
+
+\usedir{tex/latex/ntgclass}
+\Msg{*** Generating the files ***}
+
+\generate{\file{artikel1.cls}{\from{ntgclass.dtx}{artikel,type1}}
+ \file{artikel2.cls}{\from{ntgclass.dtx}{artikel,type2}}
+ \file{artikel3.cls}{\from{ntgclass.dtx}{artikel,type3}}
+ \file{rapport1.cls}{\from{ntgclass.dtx}{rapport,type1}}
+ \file{rapport3.cls}{\from{ntgclass.dtx}{rapport,type3}}
+ \file{boek.cls}{\from{ntgclass.dtx}{boek,type1}}
+ \file{boek3.cls}{\from{ntgclass.dtx}{boek,type3}}
+ \file{brief.cls}{\from{brief.dtx}{brief}}
+ \file{ntg10.clo}{\from{ntgclass.dtx}{10pt}}
+ \file{ntg11.clo}{\from{ntgclass.dtx}{11pt}}
+ \file{ntg12.clo}{\from{ntgclass.dtx}{12pt}}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move all the files}
+\Msg{* with names ending in .cls into a directory searched by TeX}
+\Msg{*}
+\Msg{* To produce source listings you can run files with names}
+\Msg{* ending in .dtx through LaTeX}
+\Msg{*}
+\Msg{* To produce the complete source listing MakeIndex needs to be}
+\Msg{* able to find the following files}
+\Msg{* \space\space bbind.ist}
+\Msg{* \space\space bbglo.ist}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+
+\endinput
diff --git a/macros/latex/contrib/ntgclass/ntgclass.pdf b/macros/latex/contrib/ntgclass/ntgclass.pdf
new file mode 100644
index 0000000000..d743d45d68
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/ntgclass.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/rapdoc.pdf b/macros/latex/contrib/ntgclass/rapdoc.pdf
new file mode 100644
index 0000000000..b129c6d24c
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/rapdoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntgclass/rapdoc.tex b/macros/latex/contrib/ntgclass/rapdoc.tex
new file mode 100644
index 0000000000..c241b5f665
--- /dev/null
+++ b/macros/latex/contrib/ntgclass/rapdoc.tex
@@ -0,0 +1,710 @@
+% \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
+\documentclass[oldtoc,a4paper,10pt]{rapport3}
+\usepackage[dutch]{babel}
+
+
+\begin{document}
+\date{3 september 1989 / 3 juni 1994}
+\title{Documentstijlen RAPPORT$x$\\
+ Verantwoording}
+\author{Victor Eijkhout}
+\maketitle
+
+\begin{abstract}
+ Dit is de verantwoording voor de documentstijlen `Rapport$x$'. Deze
+ stijlen zijn bedoeld als een mogelijke vervanging van de stijl
+ `Report'. In dit verhaal zijn beschreven
+\begin{enumerate}
+\item de redenen waarom bepaalde veranderingen zijn aangebracht;
+\item de parameters en commando's die op de veranderingen betrekking
+ hebben; en
+\item de wijze waarop de veranderingen zijn ge"implementeerd.
+\end{enumerate}
+Tegelijk is dit document een uitprobeerobject voor de nieuwe
+stijlen\footnote{De hoeveelheid gebruikte \LaTeX-constructies is
+ derhalve aan de ruime kant. De lezer wordt vriendelijk gevraagd zich
+ hieraan niet te ergeren.}.
+\end{abstract}
+
+\tableofcontents
+\listoftables
+\listoffigures
+
+\part{Algemeen}
+
+\chapter{Verantwoording}
+
+De documentstijlen `Rapport$x$' zijn bedoeld als verbetering van de
+standaard \LaTeX-document\-stijl `report'. De meeste macros zijn
+derhalve modificaties van constructies uit `report.sty' of
+`latex.tex'. Ook zijn deze stijlen te beschouwen als opwerking van
+`Artikel1' en `Artikel2' (`Article'-compatibel) tot `Report'-status.
+
+Bij het ontwerpen van de opmaak heb ik het advies van Inge
+Eijkhout~\cite{Inge} dat ik kreeg bij het ontwerpen van de `Artikel1'
+stijl onverminderd kunnen gebruiken. Evenzo vermeld ik wederom de
+`Tekstwijzer'~\cite{Treebus} van Karel Treebus en John Miles'
+`Ontwerpen voor Desktop Publishing'~\cite{Miles}. Voor het ontwerp
+van het zogenaamde `voorwerk' ben ik te rade gegaan bij Stanley
+Morison~\cite{Morison}. Wat er fout is aan deze stijlen blijft
+natuurlijk voor mijn rekening komen.
+
+
+\section{Overzicht}
+
+De documentstijlen `Rapport1' en `Rapport2' zijn geheel compatibel met
+`report': er zijn geen commando's toegevoegd of weggelaten. De
+veranderingen ten opzichte van `report' betreffen enkel de opmaak. In
+het bijzonder is er gesleuteld aan:
+\begin{enumerate}
+\item witregels rond koppen van secties, subsecties en subsubsecties
+ (van nu af aan `sectiekoppen' genoemd),
+\item verdere veranderingen aan de opmaak van deze koppen,
+\item de hoeveelheid inspringing bij lijststructuren (gegenereerd met
+ het \LaTeX\ \verb.\@list. commando), in het bijzonder `itemize',
+ `enumerate', en (specifiek voor `report') `description', en
+\item verdere opmaak van lijststructuren,
+\item verdere opmaak van sectiekoppen, en
+\item de inhoudsopgave.
+\end{enumerate}
+Over het algemeen is het de bedoeling geweest een strakke opmaak te
+krijgen (de standaard stijlen van \LaTeX\ `zwemmen' over de pagina).
+
+
+
+\chapter{Exportkwaliteit documentstijlen}
+
+De documentstijlen `Rapport$x$' kunnen zowel gebruik maken van de
+stijloptie `Dutch' (auteur: Johannes Braams) als van `German' (auteur:
+Hubert Partl), als van elke andere optie die de door Partl in `German'
+gesuggereerde parametrisaties doorvoert. Deze opties zijn een
+reparatie voor het euvel dat de meeste taalspecifieke termen in de
+stijlen van de heer Lamport niet geparametriseerd zijn.
+
+In `Dutch' worden definities uit `Article' en dergelijke overreden
+door geparametriseerde versies\footnote{Een listige truc laat `Dutch'
+ achterhalen door welke stijl hij aangeroepen is; de `Artikel'
+ stijlen zijn een onbekende stijl voor `Dutch'}, die op verschillende
+talen ingesteld kunnen worden. Deze definities hadden natuurlijk al
+in de stijlen van heer Lamport geparametriseerd moeten zijn.
+
+
+De optie `German' is minder drastisch dan `Dutch': deze gaat ervan uit
+dat hij door geparametriseerde stijlbestanden opgeroepen wordt, en zet
+zelf alleen de parameters. De `Artikel' stijlen zijn geparametriseerd
+volgens de suggestie van Partl.
+
+\section{Kanttekeningen}
+De stijl `Dutch' parametriseert onder andere het commando `abstract'.
+Aangezien ik dit commando om opmaaktechnische redenen al herdefinieer,
+kan `Dutch' niet op `Artikel' losgelaten worden alsof het gewoon
+`Article' was. Momenteel is `Artikel' dus een `onbekende
+documentstijl' waar het `Dutch' betreft, en wordt er geen gebruik
+gemaakt van het feit dat een aantal definities zich ook in `Dutch'
+bevinden.
+
+\section{Een steek onder water}
+Hoewel het mij tegen de borst stuit het Engels een voorkeurspositie te
+geven onder de wereldtalen --~zeker in een voor het Nederlands
+bedoelde stijl~-- heb ik besloten de Engelse parameterwaarden uit
+`Dutch' als verstekwaarde in de `Artikel'-stijlen op te nemen. Een
+belangrijk argument hiervoor is dat dit de stijlen geheel gelijk maakt
+aan `Article' op commando\-nivo: zonder extra opties worden er Engelse
+teksten geleverd, en voor Nederlands of Duits in een optiebestand
+nodig.
+
+Een minstens zo belangrijk argument\footnote{mij door Nico Poppelier
+ aan de hand gedaan} hiervoor is dat de `Artikel'-stijlen zo een
+steek onder water naar Leslie Lamport vormen. Ze zeggen als het ware
+`\emph{Look here buster,} zo had het van begin af aan moeten zijn'.
+
+
+\part{Specifiek}
+
+\chapter{Mechanismen; veranderingen in Rapport1}
+
+In de nu volgende subsecties worden de veranderingen ten opzichte van
+de oude artikelstijl besproken in volgorde van oplopende
+moeilijkheidsgraad van implementatie. De algemene mechanismen worden
+besproken, alsmede hun concrete realisatie in~`Rapport1'.
+
+\section{Trivialiteiten}
+
+In de `report'-stijl staat `raggedbottom' aan voor enkelzijdige
+documenten. Dit moet uit. `Frenchspacing' dient altijd aan te staan.
+
+\subsection{Paginanummers}
+De gebruiker kan met \verb.\pagestyle{STIJL}. een stijl van kop- en
+voetregels opgeven. De `Article' stijl definieert `plain'
+(gecentreerde voetregels), en `headings' en `myheadings'
+(asymmetrische kopregels). Als een gebruiker een stijl specificeert,
+resulteert dat in de aanroep van een commando \verb.\ps@STIJL..
+
+Omdat ik paginanummers wil hebben die rechts staan voor enkelzijdige
+documenten, en links/rechts voor tweezijdige documenten heb ik het
+commando \verb.\ps@plain., de verstekwaarde, omgebouwd.
+
+
+\section{Makkelijke veranderingen: witregels}
+
+De \LaTeX\ artikelstijl wordt gekenmerkt door een overmaat aan
+witregels. Hierin is stevig gesnoeid.
+
+\subsection{Witregels rond koppen}
+
+De `report'-stijl maak zowel het wit boven als onder koppen rekbaar.
+Gevoegd bij het feit dat de `natuurlijke lengte' van dit wit al aan de
+ruime kant is, maakt dit het paginabeeld erg los. Witregels moeten
+kleiner worden, en mogen tussen kop en de eerste regel van de tekst
+niet rekbaar zijn. Verder verdient het aanbeveling de witruimte in
+termen van het regeltransport aan te geven.
+
+\subsubsection{Relevante concepten}
+Het wit onder en boven koppen wordt bepaald door parameters 4~en~5 van
+\verb.\@start.\-\verb.section., hetwelk commando in `art1$x$.sty'
+gebruikt wordt om de sectiekopcommando's te defini"eren. Parameter~4
+dient (in ons geval) het negatieve van de gewenste skip te
+specificeren.
+
+\subsubsection{Implementatie van de veranderingen}
+De volgende waarden voor de verticale witruimte zijn gebruikt
+\begin{table}[h]
+ \begin{center}
+ \begin{tabular}{|l|r|r|}
+ \hline
+ \emph{kop} & \emph{wit boven kop}&\emph{wit onder kop}\\
+ \hline
+ section & -2-1+.5 & .5\\
+ subsection & -1-.5+.25 & .25\\
+ subsubsection& -1-.5+.25 & .25\\
+ \hline
+ \end{tabular}
+ \end{center}
+ \caption{Hoeveelheid vertikaal wit in termen van
+ `normalbaselineskip'}
+\end{table}
+(in eerste instantie waren mij hogere waarden gesuggereerd, na
+inspectie bleken deze waarden beter te voldoen).
+
+De hoeveelheid wit boven koppen steekt niet zo nauw. Die eronder wel.
+In het bijzonder is het een merkwaardig idee het wit onder koppen
+rekbaar te hebben. De grootte van dit wit draagt aanzienlijk bij aan
+het ritme van de pagina.
+
+
+
+\noindent Opmerking: Aangezien alle skips in termen van de
+`baselineskip' gegeven worden, kunnen deze definities opgetild worden
+van het optiebestand naar het stijlbestand.
+
+
+\subsection{Witregels rond lijststructuren}
+
+Witregels rond de items van een lijststructuur maken het paginabeeld
+onrustiger, en zijn vaak niet functioneel: een `itemize'-structuur is
+meestal \'e\'en doorlopend betoog waarin witregels ongewenst zijn. Er
+valt iets voor te zeggen rondom `description'-structuren wel witregels
+toe te staan, aangezien de beschrijvende termen in feite een kopje
+vormen.
+
+De eerste tekstregel na een lijststructuur dient niet ingesprongen te
+worden, ongeacht of de gebruiker een regel open gelaten heeft achter
+de lijst (bij voorbeeld om zijn invoer overzichtelijker te maken).
+
+
+\subsubsection{Inventaris van relevante concepten}
+\LaTeX\ bestuurt witregels rond en in lijststructuren met de
+parameters uit figuur~1.
+
+\begin{figure}
+ \begin{center}
+ \begin{tabular}{ll}
+ topsep & ruimte boven een lijst\\
+ partopsep & extra als de lijst een nieuwe paragraaf opent\\
+ itemsep & ruimte tussen items\\
+ parsep & ruimte tussen paragrafen.\\
+ \end{tabular}
+ \end{center}
+ \caption{witregelparameters in lijsten.}
+\end{figure}
+
+
+\noindent Deze parameters worden gezet in `art1$x$.sty' in het
+commando
+\begin{verbatim}
+@list\romannumeral\the\@listdepth
+\end{verbatim}
+hetgeen ge`eval'd wordt in \verb.\@list..
+
+Spaties na een lijststructuur kunnen onderdrukt worden door
+\verb.\if@ignoretrue. toe te voegen aan `enditemize'
+en~`endenumerate'. Het is nog niet duidelijk of voorkomen kan worden
+dat er ingesprongen wordt als de gebruiker een lege regel ingeeft.
+
+
+\subsubsection{Implementatie van de veranderingen}
+Voor de gebruikte lijststructuren (met mogelijke uitzondering van
+`description') dienen al deze parameters nul te zijn.
+
+Opmerking: als voor de `labelwidth' en de `labelsep' een oplossing in
+termen van fontparameters gevonden wordt, kunnen de `listi' en
+dergelijke commando's opgetild worden van het stijloptiebestand naar
+het stijlbestand zelf.
+
+
+\subsection{Verdere witregels}
+Het wit rond lijststructuren wordt bestuurd door de locale `topsep',
+die we boven nul gemaakt hebben, en door de globale `topsep'. Voor
+een strakke opmaak is het wenselijk die nul te maken, echter hiermee
+verdwijnt ook het wit op een plaats waar dat wel wenselijk is: rond
+`verbatim' delen van het document. De oplossing zou kunnen zijn het
+invoegen van een `topsep' in het \verb.\verbatim. commando.
+
+De witregel tussen voetnoten wordt bestuurd door de `footnotesep'. Ik
+zou niet weten waarom die anders dan nul zou moeten zijn.
+
+
+\section{Ook niet moeilijk: fonts}
+
+Er moet wat met fonts gerommeld worden. Voornamelijk moeten ze
+kleiner, en het cursief moet vervangen worden door wat in Nederlandse
+terminologie `gecursiveerd' heet; wij \TeX ies kennen dit als
+`slanted'.
+
+\subsection{Fonts in sectiekoppen}
+
+De fonts gebruikt in tussenkopjes zijn proefondervindelijk tot stand
+gekomen, en waarschijnlijk nog aan mutatie onderhevig. De
+oorspronkelijk idee"en komen uit de `Sober'-stijl van Nico Poppelier.
+Daarna is het `italic' vervangen door `slanted'. Kwestie van smaak.
+Ik hou niet van de~\mbox{\emph{cmti}}. Verder is het klein kapitalen
+font als `\dots~en hopeloos ouderwets'~\cite{Inge} de laan
+uitgestuurd.
+
+\subsection{Theorems en het `emphasize' font}
+
+Om tekst te beklemtonen gebruikt \LaTeX\ het cursieve font
+\texttt{cmti}. Dit vin' ik niet mooi. Binnen de Nederlandse stijlen
+wordt er dus beklemtoond met \texttt{cmsl}. Ook in de `theorem'
+omgevingen is deze vervanging doorgevoerd.
+
+
+\section{Moeilijke veranderingen: eenheidsinspringing}
+
+Ten einde een strakke paginaopmaak te verkrijgen, verdient het
+aanbeveling het aantal (impliciete) kantlijnen tot een minimum te
+beperken. De radicaalste oplossing voor dit probleem bestaat uit
+
+\begin{enumerate}
+\item alle labels in lijststructuren tegen de linkerkantlijn aan te
+ plaatsen (dit is niet zo mooi als er ver ingesprongen wordt),
+\item voetnoten niet te laten inspringen (ingesprongen voetnoten zien
+ er alleen goed uit als ze meer dan \'e\'en regel lang zijn), en
+\item een eenheidsinspringing in te voeren voor
+ \begin{itemize}
+ \item alinea's,
+ \item teksten van koppen op alle nivo's, en
+ \item de ingesprongen tekst in lijststructuren.
+ \end{itemize}
+\end{enumerate}
+Laten we er voorlopig dus vanuit gaan dat er een parameter
+`unitindent' is. De berekening van deze grootheid komt verderop aan de
+orde.
+
+\subsection{Inspring bij lijststructuren}
+
+Labels voor items in een lijst defini"eren gemakkelijk een tweede
+kantlijn. Het kan dus gewenst zijn ze tegen de linkerkantlijn van de
+omringende tekst aan te plaatsen.
+
+\subsubsection{Inventaris van relevante concepten}
+Een lijst op het eerste nivo springt in over `leftmargini'. Het label
+wordt van de tekst gescheiden door `labelsep', en heeft breedte
+`labelwidth', tenzij de natuurlijke breedte groter is. De linkerkant
+van het label staat echter altijd op `labelwidth' plus `labelsep' van
+de ingesprongen kantlijn. De inhoud van het label wordt in de
+omringende box geplaatst door het commando `makelabel'.
+
+Al deze begrippen worden ingevuld in de commando's `list$x$'.
+
+\subsubsection{Implementatie van de veranderingen}
+Het zetten van parameters kan mooi in de `list$x$' commando's
+gebeuren:
+\begin{verbatim}
+\def\@listi{\leftmargin=\unitindent
+ \labelsep=\enspace
+ \labelwidth=\leftmargin
+ \advance\labelwidth by -\labelsep}}
+\end{verbatim}
+Als de `unitindent' door fontparameters bepaald wordt, hoeft deze
+definitie niet meer in het optiebestand te staan, maar kan naar de
+stijldefinitie opgetild worden.
+
+Het veranderen van de definitie van `makelabel' is lastiger: dit moet
+in het tweede argument van `list' gebeuren. We zullen dus `itemize' en
+`enumerate' moeten herdefini"eren met een nieuwe definitie van
+`makelabel'.
+
+Omdat de `unitindent' tamelijk groot uitvalt, heb ik ervoor gekozen
+labels op het eerste nivo rechts aan te lijnen (waardoor ze dus in
+bescheiden mate een nieuwe kantlijn definieren), andere labels lijnen
+links.
+
+
+
+\subsection{Inspring bij koppen}
+
+De plaatsing van de tekst van koppen (achter het sectienummer) is in
+\LaTeX\ ogenschijnlijk willekeurig, en draagt hiermee (zeker als twee
+koppen onder elkaar staan) bij tot een onrustig paginabeeld. Dit kan
+aanmerkelijk verbeterd worden door voor het sectienummer en de erop
+volgende spatie een eenheidsbreedte te nemen.
+
+\subsubsection{Inventaris van relevante concepten}
+In het commando \verb.\@sect. wordt een commando \verb.\@svsec.
+ge`edef't dat het sectie nummer afdrukt, gevolgd door
+`1~em'\footnote{Ter herinnering:
+ \begin{enumerate}
+ \item Er zijn 5 nivo's van sectiekoppen: `section', `subsection',
+ `subsubsection', `paragraph', en `subparagraph'.
+ \item De eerste 3 nivo's zijn genummerd.
+ \item De laatste twee nivo's geven een kop die in de tekst is
+ ingebed.
+ \end{enumerate}}\footnote{Aangezien de definitie van 'em' met het
+ gebruikte font meeverandert, geeft het gebruik van twee of drie
+ koppen onder elkaar een merkwaardig visueel effect.}.
+
+\subsubsection{Implementatie van de veranderingen}
+Er moet een nieuwe versie van \verb.\@sect. komen die een verbeterde
+\verb.\@svsec. bevat:
+\begin{verbatim}
+\edef\@svsec{\hbox to \unitindent
+ {\csname the#1\endcsname\hfil}}
+\end{verbatim}
+In plaats van `unitindent' kan als breedte ook een verdere
+parametrisatie met
+\begin{verbatim}
+\csname #1labelwidth\endcsname
+\end{verbatim}
+gekozen worden. De `unitindent' kan als volgt gegenereerd worden:
+\begin{verbatim}
+\newdimen\unitindent
+{\setbox0\hbox{\normalsize\bf 2.2.2\ }
+ \global\unitindent=\wd0}
+\parindent=\unitindent
+\leftmargini=\unitindent
+\end{verbatim}
+
+Dit is helaas nog niet voldoende. Als een gebruiker erg veel van
+secties en subsecties houdt, kunnen de nummers een grotere breedte dan
+die van `2.2.2' krijgen. Daarom wordt het label iedere keer bij een
+nieuw kopje opgemeten, en zonodig wordt de `unitindent' bijgesteld.
+Bij het afsluiten van het document wordt dan de definitieve waarde
+(die misschien de oude is, en misschien veel meer) naar het
+\texttt{.aux}-bestand geschreven. Dat wil zeggen: er wordt een
+toewijzing van die waarde aan de unitindent weggeschreven.
+
+Adders en voetangels te over: hiervoor moet het commando
+`enddocument' herschreven worden.
+
+
+
+\section{Verdere moeilijke veranderingen: de opmaak van
+ lange koppen. Zoals deze dus. Reeds. Antidisestablishmentarianism.
+ Hottentottententententoonstelling.}
+
+\LaTeX\ zet koppen als ingesprongen paragrafen. Het is echter niet
+gewoon dat een meerregelige kop zo behandeld wordt: beter is het vrije
+regelval te gebruiken en vooral woordafbreking (zelfs in samengestelde
+woorden) te verbieden.
+
+\subsection{Inventaris van relevante concepten}
+Binnen het commando \verb.\@sect. wordt de kop van de sectie gezet als
+\begin{verbatim}
+{\interlinepenalty\@M #8\par}
+\end{verbatim}
+
+\subsection{Implementatie van de veranderingen}
+Aan de zetcommando's voor de sectiekoppen dient een aanroep van
+`headstyle' toegevoegd te worden, waar
+\begin{verbatim}
+\def\headstyle{\nohyphenation \rightskip=0cm plus 3cm}
+\end{verbatim}
+of zoiets. Het commando `nohyphenation' kan op verschillende manieren
+bereikt worden, ik heb gekozen voor \verb+\hyphenpenalty=10000+, en
+idem zo voor de `exhyphenpenalty'.
+
+
+\section{Opties}
+
+De stijlen `Rapport1' en `Rapport3' hebben een door de gebruiker te
+kiezen optie. Hiermee kan de gebruiker de opmaak naar eigen
+goeddunken varieren. Misschien dat er nog wel meer van dat soort
+opties komen.
+
+
+\subsection{Hoe werken opties}
+Een door de gebruiker gespecificeerde stijloptie wordt soms
+gerealiseerd door een commando in het stijlbestand, en soms door een
+in te laden optiebestand. Het mechanisme dat dit bewerkstelligt is
+het volgende.
+
+Ergens bovenin het stijlbestand worden commando's \verb.\ds@OPTION.
+gedefinieerd. Als de gebruiker de betreffende optie meegegeven heeft,
+wordt dit commando uitgevoerd door \verb.\@options., dat ook ergens
+bovenin het stijlbestand staat. Voor die opties waarvoor geen
+\verb.\ds@OPTION. macro gedefinieerd is, wordt na de verwerking van
+het stijlbestand door \LaTeX\ een bestand \verb.OPTION.STY. geladen.
+
+\subsection{De `oldtoc' optie}
+Sommige mensen houden nogal van uitgepunte inhoudsopgaves. Ik niet,
+vandaar dat een inhoudsopgave analoog aan die van de `Tekstwijzer'
+standaard is. Met de optie `oldtoc' kan de oude \LaTeX\ inhoudsopgave
+verkregen worden.
+
+
+\subsection{Het `Voorwerk' optiebestand}
+Een essentieel verschil tussen `Rapport' en `Artikel' is dat de eerste
+een heus voorwerk heeft: een titelpagina, een afzonderlijke pagina
+voor de samenvatting, en losse pagina's voor de titels van de delen.
+Met in het achterhoofd een citaat van Stanley Morison~\cite{Morison}
+over de opbouw van de titelpagina:
+\begin{quotation}
+ Daar onderkast een noodzakelijk kwaad is, dat we in de hand moeten
+ houden als we het niet kunnen uitroeien, moet het gebruik daarvan
+ worden vermeden daar waar dat het minst logisch en het
+ onaantrekkelijkst is: in grote corpsen. De belangrijkste regel moet
+ uit kapitalen worden gezet~[\dots]. En wat er ook nog met de rest
+ van de pagina moge gebeuren, de naam van de schrijver moet, zoals
+ alle met nadruk gepresenteerde eigennamen, uit kapitalen worden
+ gezet.
+\end{quotation}
+heb ik de `Titlepage.sty' vervangen door een `Voorwerk' stijloptie,
+die titel en schrijversnaam in kapitalen zet.
+
+
+\section{De inhoudsopgave}
+
+\subsection{Beschrijving}
+\subsubsection{Inventaris van kwalen}
+Treebus vindt het zogenaamde `uitpunten' van een inhoudsopgave een
+minder geslaagd idee. Ook over het steeds verder inspringen van kopjes
+in de inhoudsopgave is hij niet te spreken. Laat dit nu precies zijn
+wat \LaTeX\ doet.
+
+Wat mij dan nog stoort zijn de grote verschillen in zetwijze van
+kopjes op verschillende nivo's.
+
+\subsubsection{Remedie}
+
+\paragraph{Kantlijnen}
+Alle nummers worden tegen de linker kantlijn getrokken, en de kopjes
+staan dan (allemaal) op `unitindent' van de linker kantlijn. Dit
+levert geen problemen op omdat er net zoveel nivo's nummering in
+kopjes als in de inhoudsopgave voorkomen.
+
+\paragraph{Fonts}
+Kopjes worden in drie verschillende fonts gezet om de hierarchie uit
+te doen komen. Ik heb gekozen voor `bf', `sl', en `rm' in
+`normalsize'. Er valt over te twisten of dit misschien gewoon de fonts
+van de koppen zelf moeten zijn.
+
+\paragraph{Verdere zetwijze}
+Er wordt vrije regelval gebruikt. Het paginanummer verschijnt direct
+achter het kopje (met een vaste hoeveelheid wit).
+
+\subsection{Implementatie}
+
+Ten eerste is er een commando \verb+\toc@font+ gekomen dat het font
+bepaalt waarmee een kop in de inhoudsopgave gaat verschijnen. Deze
+bepaling gebeurt in \verb+\@sect+, die daartoe verder is aangepast.
+
+Ten tweede is er, als vervanging van \verb+\@dottedtocline+, een
+commando \verb+\@regtocline+\\ dat de opmaak van de kop regelt. De
+merkwaardige sequentie
+\begin{verbatim}
+\@tempdima=\unitindent
+\end{verbatim}
+zorgt ervoor dat het nummer (dat in \verb+\@sect+ in een `numberline'
+gestopt is) op de goede breedte gezet wordt.
+
+De \verb+\l@TYPE+ commando's (waar `type' is `section' en dergelijke)
+zijn omgezet zodat ze \verb+\@regtocline+ gebruiken. Uitzondering:
+\verb+\l@part+. Daar kom ik nog wel een keer aan toe.
+
+
+
+\chapter{Veranderingen in Rapport2}
+
+In de documentstijl `Rapport2' is voor veel zaken een geheel andere
+keuze gemaakt dan in~`Rapport1'. Vaak betekende dit dat, gegeven de
+moeite die in `Rapport1' geinvesteerd was, slechts een paar parameters
+veranderd hoefden te worden. In enkele gevallen, echter, moest een
+geheel nieuwe aanpak gevolgd worden.
+
+\section{Variaties}
+
+De beide hier beschreven documentstijlen hebben als voornaamste
+verbetering ten opzichte van `report' een nadrukkelijk aanwezige
+tweede kantlijn. In `Rapport1' wordt deze kantlijn gebruikt door al
+het eenmaal ingesprongen materiaal. In~`Rapport2' wordt deze kantlijn
+minder radicaal gevolgd:
+\begin{itemize}
+\item`verbatim' omgevingen worden weer gewoon tegen de linkerkantlijn
+ geplaatst;
+\item de eerste kantlijn voor lijststructuren bedraagt de helft van de
+ paragraafinspinging; en
+\item de labelbreedte van voetnoten is hieraan gelijk gemaakt.
+\end{itemize}
+Alles bij elkaar wordt het gewicht van de pagina verder tegen de
+linkerkantlijn geplaatst.
+
+Van een andere kant bekeken is de tweede kantlijn (zeg dat die door de
+`parindent' bepaald wordt) in de stijl~`Rapport2' juist nadrukkelijker
+aanwezig:
+\begin{itemize}
+\item alle tussenkopjes springen in over de `parindent, en
+\item de eerste regel na een kopje springt ook in.
+\end{itemize}
+
+
+\section{Behandeling van koppen}
+\subsection{Sectie, subsectie, subsubsectie}
+\subsubsection{Elementaria}
+
+Het laten inspringen van koppen gaat door een positieve waarde voor de
+derde parameter van \verb.\@startsection. te specificeren. Door de
+vierde parameter positief te maken springt de eerste regel na de kop
+ook in.
+
+Omdat de tekst van de kopjes nu geen verdere kantlijn definieert hoeft
+er niet zo'n moeite gedaan te worden om die te plaatsen als
+in~`Rapport1'. Ik heb de normale \LaTeX-constructie van een vaste
+`skip' weer in ere hersteld; op drie-tiende `em' deze keer.
+
+\subsubsection{Complicaties}
+
+Om te voorkomen dat bij lange koppen de tekst alsnog een tweede
+kantlijn gaat defini"eren moest de \verb.\@hangfrom. die dit
+bewerkstelligt verwijderd worden. Bij volledig verwijderen, echter,
+zal de tweede regel van de kop tegen de linker kantlijn geplaatst
+worden. Ook niet de bedoeling.
+
+In de aanpak die ik gevolgd heb hangt de tekst nu aan de inspringing;
+het commando \verb.\@svsec. dat het nummer zet is gewoon in de tekst
+geplaatst.
+
+
+\subsection{Part}
+
+Het zou leuk zijn als de eerste regel na een `part'-kop ook insprong.
+Het al dan niet inspringen van deze regel wordt bestuurd door de
+schakelaar \verb.\@ifafterindent. waarop getest wordt in
+\verb.\@afterheading.. Normaal wordt inspringen voorkomen door deze
+schakelaar in `part' op onwaar te zetten.
+
+Het zal de perceptieve lezer duidelijk zijn wat ik gedaan heb om
+inspringen van de eerste regel na een `part' af te dwingen.
+
+\section{De inhoudsopgave}
+
+De inhoudsopgave wordt in `Rapport2' net zo gezet als in~`Rapport1',
+met het verschil dat de sectienummers nu niet links maar rechts
+lijnen. Dit in het kader van het beklemtonen van de tweede kantlijn.
+Hiertoe moest het commando `numberline' uit `LaTeX.tex' overgenomen en
+aangepast worden.
+
+Overigens is de tweede kantlijn in de inhoudsopgave verder naar rechts
+dan in de rest van het document. De inhoudsopgave dient dus liever
+niet op een tekstpagina te beginnen.
+
+Dat de tweede kantlijn verder naar rechts staat betekent overigens dat
+het woord `inhoudsopgave', dat als een sectiekop gezet wordt,
+voorafgegaan moet worden door een `skip' ter breedte van het verschil.
+
+
+\part{Veranderingen in Rapport3}
+
+Uitgaande van `Rapport1' was het kinderspel een stijl te maken die net
+zo strak links lijnend oogde, maar die bovendien geen
+alinea\-inspringing heeft en dit compenseert met een `parskip'.
+\begin{itemize}
+\item Er is gekozen voor een `parskip' ter grootte van de helft van de
+ `baselineskip'.
+\item De `topsep' in lijststructuren --~de witruimte boven en onder de
+ gehele lijst~-- is \emph{minus} de halve `parskip'; netto effect is
+ dat hier de helft van de witruimte komt die zich tussen alineas
+ bevindt.
+\item De grootte van de `unitindent' kon ongewijzigd blijven,
+ aangezien kopjes nog steeds op dezelfde wijze gezet worden.
+\item Het wit onder kopjes is op nul gezet. Dit betekent niet dat er
+ geen wit staat, want de `parskip' krijg je hoe dan ook kado.
+\end{itemize}
+Het geheel oogt wel aardig.
+
+
+\begin{thebibliography}{9}
+
+\bibitem{Inge}Inge Eijkhout, \emph{Gesprekken en correspondentie},
+ 1989.
+
+\bibitem{Leslie}Leslie Lamport, \emph{\LaTeX, a document preparation
+ system}, Addison-Wesley, 1986.
+
+\bibitem{Miles}John Miles, \emph{Ontwerpen voor Desktop
+ Publishing\footnote{De Nederlandse uitgave is goedkoper dan de
+ Engelse, maar doet een zware aanslag op je ogen, door het soort
+ zetfout dat in \TeX\ onmogelijk zou kunnen voorkomen.}, Alles
+ over layout en typografie op de personal computer}, Uitgeverij
+ Mingus, Baarn~1988.
+
+\bibitem{Morison}Stanley Morison, \emph{Grondbeginselen der
+ Typografie}, (vertaling uit het Engels door Huib van Krimpen)
+ Uitgeverij de Buitenkant, Amsterdam 1987.
+
+\bibitem{Treebus}Karel Treebus, \emph{Tekstwijzer, een gids voor het
+ grafisch verwerken van tekst}, SDU~uitgeverij, 1988.
+
+\end{thebibliography}
+
+
+%\vfill\eject
+%\tableofcontents
+
+
+\end{document}
+
+
+
+
+
+