% \iffalse % % Copyright (C) 1994 -- 2023 by Nederlandstalige TeX Gebruikersgroep. % Based on classes.dtx % Copyright (C) 1999 LaTeX3 project, all rights reserved. % % This file is part of the NTG document classes distribution % ---------------------------------------------------------- % % It may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2008 or later. % % This work has the LPPL maintenance status "maintained". % % The Current Maintainer of this work is Johannes Braams. % % The list of all files belonging to the NTG document classes % distribution is given in the file `manifest.txt. % % The list of derived (unpacked) files belonging to the distribution % and covered by LPPL is defined by the unpacking scripts (with % extension .ins) which are part of the distribution. % % \fi % \CheckSum{3793} %\iffalse % \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} %\NeedsTeXFormat{LaTeX2e}[1995/12/01] % \end{macrocode} % % Announce the Class name and its version: % \begin{macrocode} %<*artikel> %\ProvidesClass{artikel1}% %\ProvidesClass{artikel2}% %\ProvidesClass{artikel3}% % %<*rapport> %\ProvidesClass{rapport1}% %\ProvidesClass{rapport3}% % %<*boek> %\ProvidesClass{boek}% %\ProvidesClass{boek3}% % %<10pt>\ProvidesFile{ntg10.clo} %<11pt>\ProvidesFile{ntg11.clo} %<12pt>\ProvidesFile{ntg12.clo} %<*driver> \ProvidesFile{ntgclass.drv} % [2023-01-10 v2.1f % 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} % % \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} % \changes{v2.1c}{2020/02/18}{Update to synchronize with classes.dtx} % \changes{v2.1c}{2020/02/18}{Various commands made robust} % \changes{v2.1d}{2020/02/20}{Upped version number for new upload to CTAN} % % \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-2023 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 %\@titlepagefalse %\@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} %\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} %\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} %\newif\if@titlecentered %\@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} %\DeclareOption{openright}{\@openrighttrue} %\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} %\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} %\DeclareOption{mctitle}{\@allcapsfalse} %\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} % %<*rapport> \ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,uctitle,openany} % %<*boek> \ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,uctitle,openright} % % \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} % % \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@ % %<*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@ % %<*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@ % % \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} % We use |\MakeRobust| instead of |\DeclareRobustCommand| above to % avoid a log entry for the redefinition. % But if we are running in a rollback situation % (prior to 2015) we don't touch it. % \changes{v2.1c}{2020/02/18}{Roll back handling (gh/201)} % \begin{macrocode} \ifx\MakeRobust\@undefined \else \MakeRobust\normalsize \fi % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\small} % \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|. % \changes{v2.1c}{2020/02/18}{Use \cs{DeclareRobustCommand} instead of % \cs{newcommand*}} % \begin{macrocode} \DeclareRobustCommand\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@ % %<*11pt> \@setfontsize\small\@xpt\@xiipt \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ % %<*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@ % \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} \DeclareRobustCommand\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@ % %<*11pt> \@setfontsize\footnotesize\@ixpt{11}% \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus\p@ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ % %<*12pt> \@setfontsize\footnotesize\@xpt\@xiipt \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ % \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> \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vpt\@vipt} \DeclareRobustCommand\large{\@setfontsize\large\@xiipt{14}} \DeclareRobustCommand\Large{\@setfontsize\Large\@xivpt{18}} \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xviipt{22}} \DeclareRobustCommand\huge{\@setfontsize\huge\@xxpt{25}} \DeclareRobustCommand\Huge{\@setfontsize\Huge\@xxvpt{30}} % %<*11pt> \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vipt\@viipt} \DeclareRobustCommand\large{\@setfontsize\large\@xiipt{14}} \DeclareRobustCommand\Large{\@setfontsize\Large\@xivpt{18}} \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xviipt{22}} \DeclareRobustCommand\huge{\@setfontsize\huge\@xxpt{25}} \DeclareRobustCommand\Huge{\@setfontsize\Huge\@xxvpt{30}} % %<*12pt> \DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} \DeclareRobustCommand\tiny{\@setfontsize\tiny\@vipt\@viipt} \DeclareRobustCommand\large{\@setfontsize\large\@xivpt{18}} \DeclareRobustCommand\Large{\@setfontsize\Large\@xviipt{22}} \DeclareRobustCommand\LARGE{\@setfontsize\LARGE\@xxpt{25}} \DeclareRobustCommand\huge{\@setfontsize\huge\@xxvpt{30}} \let\Huge=\huge % % % \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} % % \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{% % \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} % % \end{macrocode} % % In the document class \file{artikel2} the width of |\unitindent| % is fixed and related to |\othermargin|. % \begin{macrocode} %\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} % %<*type3> \setlength\parskip{.5\baselineskip \@plus .1\baselineskip \@minus .1\baselineskip} \setlength\parindent{\z@} % % \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 % % \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@} % % \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} % % \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@} % %<*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@} % %<*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@} % % \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@} % %<*11pt> \setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} \setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} % %<*12pt> \setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} \setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} % % \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} % %<*11pt> \setlength\@fptop{0\p@ \@plus 1fil} \setlength\@fpsep{8\p@ \@plus 2fil} \setlength\@fpbot{0\p@ \@plus 1fil} % %<*12pt> \setlength\@fptop{0\p@ \@plus 1fil} \setlength\@fpsep{10\p@ \@plus 2fil} \setlength\@fpbot{0\p@ \@plus 1fil} % % \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} % %<*11pt> \setlength\@dblfptop{0\p@ \@plus 1fil} \setlength\@dblfpsep{8\p@ \@plus 2fil} \setlength\@dblfpbot{0\p@ \@plus 1fil} % %<*12pt> \setlength\@dblfptop{0\p@ \@plus 1fil} \setlength\@dblfpsep{10\p@ \@plus 2fil} \setlength\@dblfpbot{0\p@ \@plus 1fil} % %<*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 heads 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}}} % % \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 % \if@mainmatter \@chapapp\ \thechapter. \ % % \fi \fi ##1}}{}}% \def\sectionmark##1{% \markright {\MakeUppercase{\ifnum \c@secnumdepth >\z@ \thesection. \ \fi ##1}}}} % % \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}}}} % % \end{macrocode} % % \begin{macrocode} %<*rapport|boek> \def\chaptermark##1{% \markright {\MakeUppercase{% \ifnum \c@secnumdepth >\m@ne % \if@mainmatter \@chapapp\ \thechapter. \ % % \fi \fi ##1}}}} % \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 % \let\chaptermark\@gobble \let\sectionmark\@gobble % \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} %\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}% % \def\@makefnmark{\rlap{% % \@textsuperscript{\normalfont\@thefnmark}}}% % \long\def\@makefntext{\@xmakefntext{% % \@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} % % \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% %\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 % \par \vskip 1.5em} \fi % % \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 % % \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|. % \changes{v2.1b}{2004/08/14}{No longer pass \cs{toc@font} through the % \texttt{.aux} file as this upsets pdf\LaTeX} % \begin{macrocode} #6{% %<*type1|type3> \@hangfrom{\hskip #3\relax\@svsec}\head@style #8\endgraf}% % %<*type2> \@hangfrom{\hskip #3} \head@style\@svsec \hskip.3em\relax #8\endgraf} % \endgroup \csname #1mark\endcsname{#7}% \addcontentsline{toc}{#1}{% \ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}% \fi #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 #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{% % \hb@xt@\unitindent{\csname the#1\endcsname \hfil}% % \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} %\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} %\setcounter{secnumdepth}{3} %\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} %\newcounter {section} %<*rapport|boek> \newcounter {chapter} \newcounter {section}[chapter] % \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} %\renewcommand\thesection{\@arabic\c@section} %<*rapport|boek> \renewcommand*\thechapter{\@arabic\c@chapter} \renewcommand*\thesection{\thechapter.\@arabic\c@section} % \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} %\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} % % \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}% % \@afterindentfalse % \@afterindenttrue \secdef\@part\@spart} % % \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} % % \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}} % \changes{v2.1b}{2004/08/16}{use \cs{numberline} instead of a fixed % space of \texttt{1 em}} % \begin{macrocode} %<*artikel> \def\@part[#1]#2{% \ifnum \c@secnumdepth >\m@ne \refstepcounter{part}% \addcontentsline{toc}{part}{\protect\numberline{\thepart}#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 % \Large\PartFont\noindent \partname\nobreakspace\thepart % \Large\PartFont\indent \partname\nobreakspace\thepart \par\nobreak \fi % \Large \PartFont \noindent #2% % \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} % % \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. % \changes{v2.1b}{2004/08/16}{use \cs{numberline} instead of a fixed % space of \texttt{1 em}} % \begin{macrocode} %<*rapport|boek> \def\@part[#1]#2{% \ifnum \c@secnumdepth >-2\relax \refstepcounter{part}% \addcontentsline{toc}{part}{\protect\numberline{\thepart}{#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 % |\MakeUppercase| on the contents of |\partname|. % \changes{v2.1c}{2020/02/22}{Use \cs{MakeUppercase} instead of % \cs{uppercase}} % \begin{macrocode} \ifnum \c@secnumdepth >-2\relax \Large\PartFont \edef\@tempa{\noexpand\MakeUppercase{\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 \MakeUppercase{#2}\par}% \@endpart} % % \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 % \Large \PartFont \noindent #1\par}% % \Large \PartFont \indent #1\par}% \nobreak \vskip 3ex \@afterheading} % % \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} % \if@twoside \if@openright \null \thispagestyle{empty}% \newpage \fi % \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} % % \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} % \changes{v2.1b}{2004/08/14}{No longer pass \cs{toc@font} through the % \texttt{.aux} file as this upsets pdf\LaTeX} % \begin{macrocode} \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne % \if@mainmatter \refstepcounter{chapter}% \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}% {\protect\numberline{\thechapter}#1}% %<*boek> \else \addcontentsline{toc}{chapter}{#1}% \fi % \else \addcontentsline{toc}{chapter}{#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{% % \vspace*{50\p@ \@plus 5\p@}% % \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 % \if@mainmatter \Large\ChapFont \@chapapp{} \thechapter \par\nobreak \vskip 20\p@ % \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{% % \vspace*{50\p@\@plus 5\p@}% % \vspace*{50\p@\@plus 20\p@}% {\setlength\parindent{\z@}% \setlength\parskip{\z@}% \head@style \normalfont \Large \ChapFont #1\par \nobreak \vskip 40\p@ }} % % \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}% % %<*type2> \@startsection {section}{1}{\unitindent}% {2\baselineskip\@plus \baselineskip \@minus .5\baselineskip}% % % {.5\baselineskip}% % {.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}% % %<*type2> \@startsection{subsection}{2}{\unitindent}% {1\baselineskip\@plus .5\baselineskip \@minus .25\baselineskip}% % % {.25\baselineskip}% % {.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}% % %<*type2> \@startsection{subsubsection}{3}{\unitindent}% {1\baselineskip plus .5\baselineskip minus .25\baselineskip}% % % {.25\baselineskip}% % {.01\baselineskip}% {\normalfont\normalsize\SSSectFont}} % \end{macrocode} % % \begin{macro}{\SSSectFont} % The font used to typeset the subsubsections is stored in this maro. % \begin{macrocode} %\newcommand*\SSSectFont{\rmfamily} %\newcommand*\SSSectFont{\scshape} %\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{% % \@startsection{paragraph}{4}{\z@}% % \@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} %\newcommand*\ParaFont{\slshape} %\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{% % \@startsection{subparagraph}{5}{\parindent}% % \@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}} % %<*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}} % % \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} %\setlength\leftmargini {\unitindent} %\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{% % \leftmargin\unitindent % \leftmargin\leftmargini % \labelsep.5em% % \labelsep.45em% \labelwidth\leftmargin \advance\labelwidth-\labelsep \parsep \z@ % \topsep 0\p@ \@plus\p@ % \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 % \labelsep .5em% % \labelsep .3em% \labelwidth\leftmarginii \advance\labelwidth-\labelsep % \topsep 0\p@ \@plus\p@ % \topsep -.5\parskip\@plus\p@ \parsep \z@ \itemsep \z@ \@plus\p@} \def\@listiii{\leftmargin\leftmarginiii % \labelsep .5em% % \labelsep .3em% \labelwidth\leftmarginiii \advance\labelwidth-\labelsep % \topsep 0\p@ \@plus\p@ % \topsep -.5\parskip\@plus\p@ \parsep \z@ \partopsep \z@ \@plus\p@ \itemsep \z@ \@plus\p@} \def\@listiv {\leftmargin\leftmarginiv % \labelsep .5em% % \labelsep .3em% \labelwidth\leftmarginiv% \advance\labelwidth-\labelsep % \topsep 0\p@ \@plus\p@ % \topsep -.5\parskip\@plus\p@ \parsep \z@ \itemsep \z@ \@plus\p@} \def\@listv {\leftmargin\leftmarginv % \labelsep .5em% % \labelsep .3em% \labelwidth\leftmarginv \advance\labelwidth-\labelsep% % \topsep 0\p@ \@plus\p@ % \topsep -.5\parskip\@plus\p@ \parsep \z@ \itemsep \z@ \@plus\p@} \def\@listvi {\leftmargin\leftmarginvi % \labelsep .5em % \labelsep .3em \labelwidth\leftmarginvi \advance\labelwidth{-\labelsep}% % \topsep 0\p@ \@plus\p@ % \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. % \changes{v2.1c}{2020/02/21}{Use \cs{thr@@}} % \begin{macrocode} \renewenvironment{enumerate}{% \ifnum \@enumdepth >\thr@@ \@toodeep \else \advance\@enumdepth \@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% % \end{macrocode} % \changes{v2.1c}{2020/02/21}{Use \cs{expandafter}} % \begin{macrocode} \expandafter \list \csname label\@enumctr\endcsname {\usecounter{\@enumctr}% % \ifnum \@listdepth=1 %<*type1|type3> \if@revlabel \def\makelabel##1{\hskip .5\unitindent{##1\hfil}}% \else % \def\makelabel##1{\hfil##1} % \def\makelabel##1{##1\hfil} \fi % % \else % \def\makelabel##1{##1\hfil}% % \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}} % \changes{v2.1c}{2020/02/18}{Use \cs{labelitemfont}} % \begin{macrocode} \newcommand\labelitemi {\labelitemfont \textbullet} \newcommand\labelitemii {\labelitemfont \bfseries \textendash} \newcommand\labelitemiii{\labelitemfont \textasteriskcentered} \newcommand\labelitemiv {\labelitemfont \textperiodcentered} % \end{macrocode} % % \begin{macro}{\labelitemfont} % The default definition for \cs{labelitemfont} is to reset the % font to \cs{normalfont} so that always the same symbol is % produced regardless of surrounding conditions. % % \changes{v2.1c}{2020/02/18}{Normalize label fonts} % A possible alternative would be %\begin{verbatim} %\renewcommand\labelitemfont{% % \fontseries\seriesdefault % \fontshape\shapedefault\selectfont} %\end{verbatim} % which resets series and shape doesn't touch the family. % \begin{macrocode} \newcommand\labelitemfont{\normalfont} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \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. % \changes{v2.1c}{2020/02/21}{Use \cs{thr@@}} % \begin{macrocode} \renewenvironment{itemize}{% \ifnum \@itemdepth >\thr@@ \@toodeep \else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% % \end{macrocode} % \changes{v2.1c}{2020/02/21}{Use \cs{expandafter}} % \begin{macrocode} \expandafter \list \csname\@itemitem\endcsname {% % \ifnum \@listdepth=1\relax %<*type1|type3> \if@revlabel \def\makelabel##1{\hskip .5\unitindent{##1\hfil}}\else % \def\makelabel##1{\hfil##1} % \def\makelabel##1{##1\hfil} \fi % % \else % \def\makelabel##1{##1\hfil} % \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|. % % \changes{v2.1c}{2020/02/18}{Inserted \cs{normalfont}} % \begin{macrocode} \newcommand*\descriptionlabel[1]{\hspace\labelsep \normalfont\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 % % \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 % % \leftskip\unitindent % \leftskip\z@ %<*type3> \topsep=-.5\parskip \@verbatim % \frenchspacing\@vobeyspaces \@xverbatim} %\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} % \changes{v2.1c}{2020/02/18}{Added setting of \cs{beginparpenalty} % to discourage page break before abstract heading and setting of % \cs{@endparpenalty} to avoid page break after abstract heading.} % \begin{macrocode} %\if@titlepage \newenvironment{abstract}{% \titlepage \null\vfil \@beginparpenalty\@lowpenalty \hbox{\SectFont \abstractname}% \@endparpenalty\@M \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 % % \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[]% % \fi} % \end{macrocode} % Which implies that the definition of |\end{abstract}| is also % different. % \begin{macrocode} % {\if@twocolumn\else\par\egroup\fi} % {\if@twocolumn\else\par\endlist\fi} \fi % % \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{}{% % \listparindent\z@ % \listparindent\unitindent % \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} { % \cleardoublepage \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse\newpage \fi \thispagestyle{empty}% \if@compatibility \setcounter{page}\z@ %<*artikel|rapport> \else \setcounter{page}\@ne % \fi} {\if@restonecol\twocolumn \else \newpage \fi % \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}} % % \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}} % % \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} %\def\@minipagerestore{\parindent\unitindent} %<*type3> \def\@minipagerestore{% \parskip=.5\baselineskip \@plus .1\baselineskip \@minus .1\baselineskip} % % \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} %\renewcommand*\theequation{\@arabic\c@equation} %<*rapport|boek> \@addtoreset{equation}{chapter} \renewcommand*\theequation{% \ifnum \c@chapter>\z@ \thechapter.\fi\@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{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} % %<*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} % % \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} % %<*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} % % \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} %\setcounter{tocdepth}{3} %\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)} % \changes{v2.1c}{2020/02/18}{Explain why \cs{@mkboth} is inside the heading % arg for \cs{tableofcontents} (\LaTeX{} pr/3285 and pr/3984)} % \begin{macrocode} \chapter*{\contentsname}% % % \section*{\contentsname}% % \end{macrocode} % The code for |\@mkboth| is placed inside the heading to avoid any % influence on vertical spacing after the heading (in some cases). For % other commands, such as |\listoffigures| below this has been changed from % the \LaTeX{}2.09 version as it will produce a serious bug if used in % two-column mode (see, \LaTeX{} pr/3285). However % |\tableofcontents| is always % typeset in one-column mode in these classes, therefore the somewhat % inconsistent setting has been retained for compatibility reasons. % \begin{macrocode} \@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}% % \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 % \end{macrocode} % % \changes{v2.1c}{2020/02/21}{Remove \cs{global} before % \cs{@nobreakfalse} as was done in \LaTeX} % \begin{macrocode} \fi \@nobreakfalse \endgroup} % % \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|. % \changes{v2.1b}{2004/08/14}{\cs{toc@font} is no longer passed % throughthe \texttt{.aux}-file, we set it here directly} % \changes{v2.1b}{2004/08/16}{\cs{toc@case} is no longer passed % through the \texttt{.aux} file, set it directly} % \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 % \advance\@tempdima by \othermargin \parindent\z@ \leavevmode \hbox{}\hskip -\leftskip\relax \ifnum#1<0\toc@case{#2}\else \toc@font#1 #2\fi\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} %\def\numberline#1{\hb@xt@\@tempdima{\hfil#1\hskip.3em}} % \end{macrocode} % \end{macro} % % \begin{macro}{\toc@font} % \begin{macro}{\toc@fontsel} % 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|. % \changes{v2.1b}{2004/08/16}{We want this font change to only affect % the section title, \emph{not} the section number, therefor we % need to push it behind \cs{numberline} and its argument} % \begin{macrocode} \if@oldtoc \newcommand*\toc@font[1]{\relax} \else % \end{macrocode} % A line of the table of contents contains |\numberline| and the % section number as its first two elements. We don't want to set % the section number using |\toc@font|, therefor we give it two % additional arguments and pass them on first, \emph{before} % changing the font. Note that we need to re-insert the braces % around the second argument. % \changes{v2.1b}{2004/08/16}{Introduce a separarte macro % \cs{toc@fontsel}} % \changes{v2.1c}{2020/02/22}{We need to jump another token, so we % need 4 arguments to accomplish that} % \changes{v2.1f}{2023-01-10}{The fix in 2.1c was buggy without % hyperref; aply proposal by Piet van Oostrum to explicitly test % for hyperref} % \begin{macrocode} \newcommand*\toc@font[4]{% \ifx\Hy@toclinkstart#2% \def\@next{#2\toc@font#1#3#4}% \else \def\@next{#2{#3}\toc@fontsel#1#4}% \expandafter\fi\@next} \newcommand*\toc@fontsel[1]{% %<*artikel> \ifcase#1\relax % \Large\bfseries \or\bfseries \or\slshape \or\rmfamily % %<*rapport|boek> \ifcase#1\relax \bfseries \or\slshape \or\rmfamily % \fi} % \end{macrocode} % \changes{v2.1b}{2004/08/16}{Take \textsf{hyperref} into account} % When the user wants to produce a hyper-document using % \textsf{hyperref} we need to take special precautions to make it % work for the table of contents. We check for the existence of % |\hyper@linkstart| to detect this situation at % |\begin{document}|. % % \textsf{Hyperref} injects extra tokens % (|\hyper@linkstart{link}{Hy@tocdestname}|) % into the stream in front of thde real contentsline. The command % |\hyper@linkstart| and its arguments need to be protected from % expanding too early or being ``upperccased'' themselves. % % \begin{macrocode} \AtBeginDocument{% \ifx\hyper@linkstart\undefined \else % \end{macrocode} % In the contentslines for chapters, sections etc., the command % selection of the appropriate font needs to come after the code % that \textsf{hyperref} injects. we do this with some argument % shuffling. % \changes{v2.1c}{2020/02/21}{removed the space between \#1 and \#5} % \begin{macrocode} \let\ORG@hyper@linkstart\hyper@linkstart \protected\def\hyper@linkstart#1#2{% \lowercase{\ORG@hyper@linkstart{#1}{#2}}} \fi} \fi % \end{macrocode} % \end{macro} % \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 % \addpenalty\@secpenalty % \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% % \end{macrocode} % % \changes{v2.1c}{2020/02/18}{Prevent protrusion % (\url{https://tex.stackexchange.com/q/172785/10109})} % \begin{macrocode} \kern-\p@\kern\p@}}\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 % \if@compatibility \global\@nobreaktrue \everypar{\global\@nobreakfalse\everypar{}}% % \fi \endgroup \fi} % \end{macrocode} % Then we can introduce our new definition. % \changes{v2.1b}{2004/08/16}{Use \cs{l@@part} to prevent the \cs{fi} % from intervening} % \begin{macrocode} \else \newcommand*\l@part{% \ifnum \c@tocdepth >-2\let\l@@part\relax % \addpenalty\@secpenalty % \addpenalty{-\@highpenalty}% \addvspace{2.25em \@plus \p@}% \def\l@@part{\@regtocline{-1}}% \fi\l@@part} \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% % \end{macrocode} % % \changes{v2.1b}{2020/02/17}{Prevent protrusion % (\url{https://tex.stackexchange.com/q/172785/10109})} % \begin{macrocode} \kern-\p@\kern\p@}\par \penalty\@highpenalty \endgroup} % \end{macrocode} % Then we present our new definition. % \begin{macrocode} \else \newcommand*\l@chapter{\@regtocline{0}} \fi % % \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% % \end{macrocode} % % \changes{v2.1b}{2020/02/18}{Prevent protrusion % (\url{https://tex.stackexchange.com/q/172785/10109})} % \changes{v2.1e}{2020-11-17}{removed a superfluous closing brace} % \begin{macrocode} \kern-\p@\kern\p@}\par \endgroup} % \end{macrocode} % The new definition: % \begin{macrocode} \else \newcommand*\l@section{\@regtocline{1}} \fi % % \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 % % \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}} % %<*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}} % \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}% % % \section*{\listfigurename}% \@mkboth{\MakeUppercase{\listfigurename}}% {\MakeUppercase{\listfigurename}}% \@starttoc{lof}% % \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}% % % \section*{\listtablename}% \@mkboth{\MakeUppercase{\listtablename}}% {\MakeUppercase{\listtablename}}% \@starttoc{lot}% % \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> {\chapter*{\bibname}% \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}% % \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 % \twocolumn[\section*{\indexname}]% % \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 % %<*type2> \hrule\@width 3\unitindent \kern 2.6\p@ % } % \end{macrocode} % \end{macro} % % \begin{macro}{\c@footnote} % Footnotes are numbered within chapters in the rapport and boek % document styles. % \begin{macrocode} % \newcounter{footnote} %\@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{% % % \parindent=.5\unitindent % % \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}} % % \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} % % \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} %\newcommand*\refname{References} %\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} %\newcommand*\chaptername{Chapter} \newcommand*\appendixname{Appendix} %\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} %\pagestyle{plain} %\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 % % \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 % % \end{macrocode} % \end{macro} % % \Finale % \endinput %