Die L^{A}TEX-Stile paper und journal

Wenzel Matiaske

1996/11/02

Abstract

The style files paper and journal are derived from the standard class article. In difference to the standard document class the layout can be changed via layout options (slanted, bold, sfbold) and font commands (\partfont{font},

\sectionfont{font} etc.).

The class paper defines a new environment called keywords and the commands \subtitle{text} and \institution{text} for the title section. Three commands allow a small table of contents (\smalltableofcontents), a small lists of figures

(\smalllistoffigures) or a small lists of tables (\smalllistoftables). These

commands are obsolete when using the journal style file. The format journal typically uses a master file which \include the articles. The command \journalofcontents produces a table of articles, revisions and parts of a journal. The new commands \shortauthor{text} and \shorttitle{text} are defined for head titles containing authors and titles. Head titles for the whole journal may be produced with the commands \oddrunhead{text} and

\evenrunhead{text}.

If you want to declare parts between the papers, you may use the command

\journalpart[option]{text} or \journalpart*{text}.

Two new commands are especially designed for revisions. The command \revison[option]{author}{title} takes the author and the title of the revisited book. It produces a subsection like headline and an entry for the table of contents. The optional argument is used to put also the author of the revision into the table of contents. This command is also defined in the form \revision*. The command \revauthor{text} may be useful to sign a revision. It allows the commands \and

and \thanks.

1 Einleitung

Die L^{A}TEX-Classes^{1} paper und journal basieren auf der Standard Class article und eignen sich zur Erstellung von Artikeln sowie einfacher Zeitschriften. Die wesentlichste Veränderung gegenüber dem Grundstil ist die Möglichkeit, das Layout mittels verschiedener Optionen variieren zu können. Diese Optionen entsprechen denen der Stilarten thesis bzw. thema . Im Unterschied zu diesen Formaten sind hier die Optionen sfbold, noupper und nocenter voreingestellt. Die Stilarten paper und journal weisen auch identische Funktionen bezüglich der Einstellungen von Schriftarten auf.

2 Zusätzliche Befehle der Stilart paper

Das Format paper stellt neben den oben erwähnten Stiloptionen einige weitere Befehle zur Verfügung. Sie dienen der Gestaltung des Titels, der Verzeichnisse und der Angabe von Deskriptoren.

\subtitle Die Kommandos \subtitle{text} und \institution{text} erweitern die \institution Titelei. Der Untertitel wird unterhalb der eigentlichen Titels in kleineren

Typen gesetzt. Die Institution wird ggf. als letzte Zeile der Titelei im Anschluß an den Autor ausgegeben. Mehrere Institutionen werden durch \and getrennt. In diesem Zusammenhang ist daraufhinzuweisen, daß die Ausgabe des Datums entfällt.

\smalltableofcontents Die Stilart paper beinhaltet drei zusätzliche Kommandos, die der Erzeu-

\smalllistoftables
\smalllistoffigures

gung von Verzeichnissen dienen. Der Befehl \smalltableofcontents entspricht dem üblichen \tableofcontents mit der Ausnahme, daß das Inhaltsverzeichnis in kleineren Typen gesetzt wird. Entsprechende Befehle sind für das Tabellen- (\smalltableofcontents) und das Abbildungsverzeichnis (\smalllistoffigures) definiert. Es ist darauf hinzuweisen, daß diese Befehle ebenso wie die regulären Verzeichnisbefehle in der Stilart journal nicht verfügbar sind.

keywords Die neue Umgebung keywords dient der Aufnahme von Deskriptoren. Die Schlagworte sind in die Struktur \begin{keywords} … \end{keywords} einzuschließen.

3 Die Stilart journal

Die Stilart journal stellt darüber hinaus einige Befehle zur Verfügung, die bei der Erstellung von Zeitschriften zweckdienlich sind. Die grundlegende Idee ist, mehrere Artikel zu einem Journal zu bündeln. Die Artikel werden in einer Formatierdatei mittels des Befehls \include{datei} eingelesen, wie das Anwendungsbeispiel in Abbildung 1 zeigt. Es ist möglich, mittels BibTEX für jeden Artikel ein gesondertes Literaturverzeichnis zu erstellen. Dies entspricht der Option cbib der Stilart thesis. Dieses Format stellt darüberhinaus einige Kommandos zu Verfügung, welche die Gestaltung bestimmter Teile einer Zeitschrift, des Inhaltsverzeichnisses, der Kopfzeilen und spezieller Beiträge wie Rezensionen erleichtert.

1Version 1.0k vom 1998/11/02. Dokumentation vom 1996/11/02.

\documentclass[12pt]{journal}
\usepackage{jourbib}
\begin{document}
\oddrunhead{G-Animal's Journal, Vol. 15}
\begin{titlepage} \begin{center}
 {\LARGE\sf G-Animal's Journal} \vfill
 {\Large 1983, Vol. 15, No. 4}  \vfill
 {\large\bf Fanstord University}
\end{center} \end{titlepage}
\journalcontents
\include{article1}
\include{article2}
\newpage\journalpart{Revisions}
\review[Masterly]{Larry Manmaker}{The Definitive Computer Manual}
Golden edition, 1993, Chips-R-Us: Silicon Valley.
\bigskip
The golden oldies \dots
\revauthor{\'{E}douard Masterly\\Stanford University}
\end{document}

Abbildung 1: Anwendungsbeispiel der Stilart journal

\journalcontents Zur Erstellung eines Inhaltsverzeichnisses ist ein neuer Befehl implementiert. Das Kommando \journalcontents produziert das Inhaltsverzeichnis einer Zeitschrift, welches die Autoren und Titel der Beiträge und ggf. bestimmte Teilüberschriften sowie Rezensionen enthält.

\journalpart Das Kommando \journalpart[option]{text} dient dem Zweck, bestimmte Teile einer Zeitschrift voneinander abzugrenzen. Im Unterschied zum üblichen Befehl \part wird diese Teilüberschrift in das Inhaltsverzeichnis der Zeitschrift übernommen und initialisiert die Kopfzeilenmarkierung neu. Ist die Aufnahme in das Inhaltsverzeichnis unerwünscht, so kann der Eintrag durch Spezifizierung der Sternform \journalpart*{text} unterdrückt werden.

\shorttitle In der Kopfzeile von Zeitschriften werden häufig die Autoren und der Titel

\shortauthor
\oddrunhead
\evenrunhead

des Beitrages aufgeführt. Dies ermöglichen die Befehle \shorttitle{text} und \shortauthor{text}. Bei einseitigem Druck werden beide Angaben in die Kopfzeile der Seite übernommen, bei zweiseitigem Druck werden die Autoren auf den geraden, die Titel auf den ungeraden Seiten mitgeführt. Die Kommandos sind für jeden Beitrag erneut zu spezifizieren. Soll in der Kopfzeile durchgängig ein anderer Text erscheinen, beispielsweise der Name der Zeitschrift, wird dies durch die Kommandos \oddrunhead{text} und \evenrunhead{text} ermöglicht, wie das Anwendungsbeispiel 1 zeigt. Die Kommandos überschreiben alle anderweitig eingestellten Markierungen. Wird lediglich eines der Kommandos benutzt, erscheinen im Zusammenhang mit den Befehlen \shorttitle{text} und \shortauthor{text} sowie zweiseitigem Druck Kurztitel und Autoren jeweils in der Kopfzeile der gegenüberliegenden Seite.

\review Der neue Befehl \review[optional]{autor}{titel} ist zur Abfassung von \revauthor Rezensionen konzipiert. Das Kommando übernimmt den Autor und den

Titel der zu besprechenden Arbeit. Diese werden wie ein \subsubsection gesetzt und in das Inhaltsverzeichnis aufgenommen. Optional kann ferner der Autor der Rezension spezifiziert werden, der dann ebenfalls im Inhaltsverzeichnis erscheint. Die Sternform \review* unterdrückt den Verzeichniseintrag vollständig. Das Kommando \revauthor ist nützlich, um eine Rezension zu zeichnen. Es ermöglicht wie der übliche Befehl \author mehrere, durch \and getrennte Autoren und das Kommando \thanks.

4 Implementation

Die Implementation enthält den Code für die Klassen paper und journal und die kompatibles Style-Files.

1 ⟨∗paper | paper.sty | journal | journal.sty⟩

 2 \NeedsTeXFormat{LaTeX2e}

3 ⟨/paper | paper.sty | journal | journal.sty⟩

Die kompatiblen Styles laden die zugehörige Klasse.

4 ⟨∗paper.sty⟩

 5 \@obsoletefile{paper.cls}{paper.sty}
 6 \LoadClass{paper}

7 ⟨/paper.sty⟩ 8 ⟨∗journal.sty⟩

 9 \@obsoletefile{journal.cls}{journal.sty}
10 \LoadClass{journal}

11 ⟨/journal.sty⟩ 12 %

13 %    Im Fall der Klasse \texttt{journal} wird eine
14 %    Startmeldung ausgegeben, die Optionen werden der zugeh\"origen
15 %    Klasse |paper| \"ubergeben und diese wird eingelesen.

17 %   \begin{macrocode}

18 ⟨∗journal⟩

19 \ProvidesClass{journal}[\filedate\space\fileversion\space%
20  LaTeX document class (wm).]
21 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{paper}}
22 \ProcessOptions
23 \LoadClass[journal]{paper}

24 ⟨/journal⟩

Die Implementation des Haupstils paper.cls beginnt mit der Startmeldung für die Klasse paper.cls.

25 ⟨∗paper⟩

26 \ProvidesClass{paper}[\filedate\space\fileversion\space%
27  LaTeX document class (wm).]

Es folgen weitere Definitionen und Initialisierungen, die den L^{A}TEX 2ε Standard Klassen entnommen sind. Kontrolliert die Schriftgröße.

28 \newcommand\@ptsize{}

Schalter um zwischen zwei- und einspaltigen Satz zu wechseln.

29 \newif\if@restonecol

Schalter, um die Erzeugung einer Titelseite anzuzeigen.

30 \newif\if@titlepage
31 \@titlepagefalse

Schalter für ”offenes“ oder ”geschlossenes“ Format der Bibliographie.

32 \newif\if@openbib
33 \@openbibfalse

Definitionen der Papierformate

34 \if@compatibility\else
35 \DeclareOption{a4paper}
36 {\setlength\paperheight {297mm}%
37  \setlength\paperwidth  {210mm}}
38 \DeclareOption{a5paper}
39 {\setlength\paperheight {210mm}%
40  \setlength\paperwidth  {148mm}}
41 \DeclareOption{b5paper}
42 {\setlength\paperheight {250mm}%
43  \setlength\paperwidth  {176mm}}
44 \DeclareOption{letterpaper}
45 {\setlength\paperheight {11in}%
46  \setlength\paperwidth  {8.5in}}
47 \DeclareOption{legalpaper}
48 {\setlength\paperheight {14in}%
49  \setlength\paperwidth  {8.5in}}
50 \DeclareOption{executivepaper}
51 {\setlength\paperheight {10.5in}%

52  \setlength\paperwidth  {7.25in}}

Die Option landscape tauscht die Werte für Seitenhöhe und Seitenbreite.

53 \DeclareOption{landscape}
54 {\setlength\@tempdima   {\paperheight}%
55  \setlength\paperheight {\paperwidth}%
56  \setlength\paperwidth  {\@tempdima}}
57 \fi

Optionen für Schriftgrößen.

58 \if@compatibility
59 \renewcommand\@ptsize{0}
60 \else
61 \DeclareOption{10pt}{\renewcommand\@ptsize{0}}
62 \DeclareOption{11pt}{\renewcommand\@ptsize{1}}
63 \DeclareOption{12pt}{\renewcommand\@ptsize{2}}
64 \fi

Zwei oder einseitiger Druck.

65 \if@compatibility\else
66 \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
67 \fi
68 \DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}

Definitionen für die draft Option. Die Makros \SetTime und \now sind aus tugboat.com übernommen. Diese werden in der draft Option zur Gestaltung der Kopfzeile benutzt. Ferner wird ein unmaskierter Schalter \iffinal definiert, der standardmäßig wahr, im Fall der Option draft dagegen falsch ist.

69 \newcount\hours \newcount\minutes
70 \def\SetTime{\hours=\time
71  \global\divide\hours by 60
72  \minutes=\hours
73  \multiply\minutes by 60
74  \advance\minutes by-\time
75  \global\multiply\minutes by-1 }
76 \def\now{\number\hours:\ifnum\minutes<10 0\fi\number\minutes}
77 \newif\iffinal \finaltrue
78 \DeclareOption{draft}{\setlength\overfullrule{5pt}\finalfalse \SetTime}
79 \if@compatibility\else
80 \DeclareOption{final}{\setlength\overfullrule{0pt}\finaltrue}
81 \fi

Definition des Schalters \if@journal. Der Zustand dieses Schalter ist von der Option der journal abhängig und steuert im folgenden die Auswahl der Makros.

82 \newif\if@journal
83 \@journalfalse
84 \DeclareOption{journal}{\@journaltrue}

Die Optionen initialisiert die Variable option@crosshair die abgefragt wird, um auf leeren Seiten ein Markierung des Seitenkopfs einzufügen.

85 \newif\if@crosshair \@crosshairfalse
86 \DeclareOption{crosshair}{\@crosshairtrue}

Die Optionen setzten den Schalter \@itemization der abgefragt wird, um die Staffelung der itemize Umgebung zu kontrollieren. In paper.cls standardmäßig true.

87 \newif\if@itemization \@itemizationtrue
88 \DeclareOption{itemize}{\@itemationtrue}
89 \DeclareOption{noitemize}{\@itemizationfalse}

Die Optionen setzten den Schalter \@enumeration der abgefragt wird, um die Numerierung der enumerate Umgebung Umgebung zu kontrollieren. In paper.cls standardmäßig alphanumerische Zählung.

90 \newif\if@enumeration \@enumerationtrue
91 \DeclareOption{enumerate}{\@enumerationtrue}
92 \DeclareOption{noenumerate}{\@enumerationfalse}

Die Optionen setzten den Schalter \@noind der im folgenden abgefragt wird, um Absatzabstände und Fußnotenstil zu modifizieren. Voreingestellt ist der Satz von Abschnitten und Fußnoten bei denen die erste Zeile eingerückt gesetzt wird.

93 \newif\if@noind \@noindfalse
94 \DeclareOption{indent}{\@noindfalse}
95 \DeclareOption{noindent}{\@noindtrue}

Die Optionen setzen den Schalter \@center der im folgenden abgefragt wird, um Überschriften, Kopfzeilen und bestimmte Einträge ins Inhaltsverzeichnis zu zentrieren. Standardmäßig werden diese in paper.cls rechtsbündig gesetzt.

96 \newif\if@center \@centerfalse
97 \DeclareOption{center}{\@centertrue}
98 \DeclareOption{nocenter}{\@centerfalse}

Die Optionen setzen den Schalter \@upper der im folgenden abgefragt wird, um Teilüberschriften in Großbuchstaben setzen. Standardmäßig benutzt paper.cls keine Großbuchstaben.

99 \newif\if@upper      \@upperfalse
100 \DeclareOption{upper}{\@uppertrue}
101 \DeclareOption{noupper}{\@upperfalse}

Die Optionen setzen den Schalter \@headline der abgefragt wird, um Kopfzeilen zu unterstreichen. Vereinstellung in paper.cls sind unterstrichene Kopfzeilen.

102 \newif\if@headline  \@headlinetrue
103 \DeclareOption{headline}{\@headlinetrue}
104 \DeclareOption{noheadline}{\@headlinefalse}

Die Optionen setzen den Schalter \@headcount der abgefragt wird, um ggf. Abschnittszähler in Kopfzeilen auszugeben. Standardmäßig wird in paper.cls der Zähler in der Kopfzeile ausgegeben.

105 \newif\if@headcount \@headcounttrue
106 \DeclareOption{headcount}{\@headcounttrue}
107 \DeclareOption{noheadcount}{\@headcountfalse}

Die Benutzerschnittstellen zur Definition der Schriftarten in Überschriften, Titelei, Kopfzeilen, Abbildungen etc. Die Voreinstellungen erfolgen in Optionen.

108 \def\partfont#1{\def\p@font{#1}}             \def\p@font{}
109 \def\sectionfont#1{\def\s@font{#1}}          \def\s@font{}
110 \def\subsectionfont#1{\def\ss@font{#1}}      \def\ss@font{}
111 \def\subsubsectionfont#1{\def\sss@font{#1}}  \def\sss@font{}
112 \def\paragraphfont#1{\def\pg@font{#1}}       \def\pg@font{}
113 \def\subparagraphfont#1{\def\spg@font{#1}}   \def\spg@font{}
114 \def\titlefont#1{\def\t@font{#1}}            \def\t@font{}
115 \def\subtitlefont#1{\def\st@font{#1}}        \def\st@font{}
116 \def\authorfont#1{\def\a@font{#1}}           \def\a@font{}
117 \def\institutionfont#1{\def\in@font{#1}}     \def\in@font{}
118 \def\theoremheaderfont#1{\def\thh@font{#1}}  \def\thh@font{}
119 \def\theorembodyfont#1{\def\thb@font{#1}}    \def\thb@font{}
120 \def\itemfont#1{\def\item@font{#1}}          \def\item@font{}
121 \def\examplefont#1{\def\ex@font{#1}}         \def\ex@font{}
122 \def\headingstextfont#1{\def\h@font{#1}}     \def\h@font{}
123 \def\pagenumberfont#1{\def\pn@font{#1}}      \def\pn@font{}
124 \def\captionheaderfont#1{\def\cph@font{#1}}  \def\cph@font{}
125 \def\captionbodyfont#1{\def\cpb@font{#1}}    \def\cpb@font{}
126 \def\figurefont#1{\def\fig@font{#1}}         \def\fig@font{}
127 \def\tablefont#1{\def\tab@font{#1}}          \def\tab@font{}

Die Option definiert die Schriften der slanted Variante. Gleichzeitig werden Großbuchstaben im Titel voreingestellt.

128 \DeclareOption{slanted}{
129  \partfont{\Large}
130  \sectionfont{\large\slshape}
131  \subsectionfont{\slshape}
132  \subsubsectionfont{\slshape}
133  \paragraphfont{\slshape}
134  \subparagraphfont{\slshape}
135  \titlefont{\Large}
136  \subtitlefont{\large}
137  \authorfont{\large}
138  \institutionfont{\slshape}
139  \theoremheaderfont{\upshape}
140  \theorembodyfont{}
141  \itemfont{\slshape}
142  \examplefont{}

143  \headingstextfont{\small\slshape}
144  \pagenumberfont{\small}
145  \captionheaderfont{\slshape\small}
146  \captionbodyfont{\small}
147  \figurefont{}
148  \tablefont{}
149 \@uppertrue}

Die Option für die Schriften der bold Variante. Diese ist im Fall des paper.cls voreingestellt.

150 \DeclareOption{bold}{%
151  \partfont{\LARGE\bfseries}
152  \sectionfont{\Large\bfseries}
153  \subsectionfont{\large\bfseries}
154  \subsubsectionfont{\bfseries}
155  \paragraphfont{\bfseries}
156  \subparagraphfont{\bfseries}
157  \titlefont{\LARGE\bfseries}
158  \subtitlefont{\large}
159  \authorfont{}
160  \institutionfont{\slshape}
161  \theoremheaderfont{\bfseries}
162  \theorembodyfont{\itshape}
163  \itemfont{\bfseries}
164  \examplefont{}
165  \headingstextfont{\small\bfseries}
166  \pagenumberfont{\small}
167  \captionheaderfont{\bfseries}
168  \captionbodyfont{}
169  \figurefont{}
170  \tablefont{}

171 }

Die Option für die Schriften der sfbold Variante.

172 \DeclareOption{sfbold}{%
173  \partfont{\LARGE\sffamily\bfseries}
174  \sectionfont{\large\sffamily\bfseries}
175  \subsectionfont{\large\sffamily\bfseries}
176  \subsubsectionfont{\sffamily\bfseries}
177  \paragraphfont{\sffamily\bfseries}
178  \subparagraphfont{\sffamily}
179  \titlefont{\LARGE\sffamily\bfseries}
180  \subtitlefont{\large\sffamily}
181  \authorfont{\Large\sffamily\slshape}
182  \institutionfont{\sffamily}
183  \theoremheaderfont{\sffamily}
184  \theorembodyfont{}
185  \itemfont{\sffamily}
186  \examplefont{}

187  \headingstextfont{\small\sffamily}
188  \pagenumberfont{\small\rmfamily}
189  \captionheaderfont{\sffamily}
190  \captionbodyfont{}
191  \figurefont{}
192  \tablefont{}

193 }

Option zur Erzeugung einer Titelseite.

194 \DeclareOption{titlepage}{\@titlepagetrue}
195 \if@compatibility\else
196 \DeclareOption{notitlepage}{\@titlepagefalse}
197 \fi

Option für zweispaltigen Satz.

198 \if@compatibility\else
199 \DeclareOption{onecolumn}{\@twocolumnfalse}
200 \fi
201 \DeclareOption{twocolumn}{\@twocolumntrue}

Numerierung der Formeln auf der linken Seite.

202 \DeclareOption{leqno}{\input{leqno.clo}}

Links ausgerichtete Mathematische Umgebungen.

203 \DeclareOption{fleqn}{\input{fleqn.clo}}

Offenes Bibliographie Format.

204 \DeclareOption{openbib}{%
205 \AtEndOfPackage{%
206 \renewcommand\@openbib@code{%
207  \advance\leftmargin\bibindent
208  \itemindent -\bibindent
209  \listparindent \itemindent
210  \parsep \z@

211 }%

212 \renewcommand\newblock{\par}}%

213 }

Ausführen der voreinstellten Optionen.

214 \ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final,sfbold}

Ausführen der benutzerspezifischen Optionen.

215 \ProcessOptions

Einlesen der Schriftgrößen.

216 \input{size1\@ptsize.clo}

Standardwerte beim Satz von Paragraphen (Zeilenabstände, Zeileneinzug Trennungen, etc.). Standardvorgaben der Document-Classes.

217 \setlength\lineskip{1\p@}
218 \setlength\normallineskip{1\p@}
219 \renewcommand\baselinestretch{}

220 \if@noind
221 \setlength\parskip{0.5\baselineskip
222  \@plus.1\baselineskip \@minus.1\baselineskip}
223 \setlength\parindent{\z@}
224 \def\noparskip{\par\vspace{-\parskip}}
225 \else
226 \setlength\parskip{0\p@ \@plus \p@}
227 \let\noparskip\relax
228 \fi
229 \@lowpenalty   51
230 \@medpenalty  151
231 \@highpenalty 301

Unveränderte Standardvorgaben zur Behandlung von Floats.

232 \setcounter{topnumber}{2}
233 \renewcommand\topfraction{.7}
234 \setcounter{bottomnumber}{1}
235 \renewcommand\bottomfraction{.3}
236 \setcounter{totalnumber}{3}
237 \renewcommand\textfraction{.2}
238 \renewcommand\floatpagefraction{.5}
239 \setcounter{dbltopnumber}{2}
240 \renewcommand\dbltopfraction{.7}
241 \renewcommand\dblfloatpagefraction{.5}

Variable Kopfzeilen, ggf. zentriert und unterstrichen. Im Fall eines journal

 sind die Befehle \sectionmark bzw. \subsectionmark leer.
242 \def\e@skip{\h@font{\phantom{y}}}
243 \if@twoside
244 \def\ps@headings{%
245  \let\@oddfoot\@empty\let\@evenfoot\@empty
246  \def\@evenhead{\vbox{\hsize=\textwidth
247  \hbox to \textwidth{%
248  {\pn@font\thepage}\hfill{\h@font\leftmark}\e@skip\if@center\hfill\fi}
249  \if@headline \vskip 1.5pt \hrule \fi}}%
250  \def\@oddhead{\vbox{\hsize=\textwidth
251  \hbox to \textwidth{%
252  \if@center\hfill\fi{\h@font\rightmark}\e@skip\hfill{\pn@font\thepage}}
253  \if@headline \vskip 1.5pt \hrule \fi}}%
254  \let\@mkboth\markboth
255  \def\sectionmark##1{\markboth{\ifnum \c@secnumdepth
256  >\z@ \if@headcount \thesection \ \fi \fi ##1}{}}
257  \def\subsectionmark##1{\markright{\ifnum \c@secnumdepth >\@ne
258  \if@headcount \thesubsection \ \fi \fi ##1}}}
259 \else
260 \def\ps@headings{%
261  \let\@oddfoot\@empty\let\@evenfoot\@empty
262  \def\@oddhead{\vbox{\hsize=\textwidth
263  \hbox to \textwidth{%
264  \if@center\hfill\fi{\h@font\rightmark}\e@skip\hfill{\pn@font\thepage}}

265  \if@headline \vskip 1.5pt \hrule \fi}}%
266  \def\sectionmark##1{\markright {\if@headcount
267  \ifnum \c@secnumdepth >\z@ \thesection \ \fi \fi ##1}}}
268 \fi

Variable Kopfzeilen, ggf. zentriert und unterstrichen.

269 \def\ps@myheadings{%
270  \let\@oddfoot\@empty\let\@evenfoot\@empty
271  \def\@oddhead{\vbox{\hsize=\textwidth
272  \hbox to \textwidth{%
273  \if@center\hfill\fi{\h@font\rightmark}\e@skip\hfill{\pn@font\thepage}}
274  \if@headline \vskip 1.5pt \hrule \fi}}%
275  \def\@evenhead{\vbox{\hsize=\textwidth
276  \hbox to \textwidth{%
277  {\pn@font\thepage}\hfill{\h@font\leftmark}\e@skip\if@center\hfill\fi}
278  \if@headline \vskip 1.5pt \hrule \fi}}%
279  \let\@mkboth\@gobbletwo
280  \let\sectionmark\@gobble
281  \let\subsectionmark\@gobble

282 }

Sind die Kopfzeilendefinition \@oddrunhead bzw. \@evenrunhead leer, werden den anderweitig vorgebebenen \markboth Kommandos in der Kopfzeile ausgegeben.

283 \if@journal
284 \def\evenrunhead#1{\gdef\@evenrunhead{#1}}    \def\@evenrunhead{}
285 \def\oddrunhead#1{\gdef\@oddrunhead{#1}}      \def\@oddrunhead{}
286 \def\ps@journal{%
287  \let\@oddfoot\@empty\let\@evenfoot\@empty
288  \def\@oddhead{\vbox{\hsize=\textwidth
289  \hbox to \textwidth{%
290  \if@center\hfill\fi{\h@font%
291  \ifx\@oddrunhead\@empty\rightmark\else\@oddrunhead\fi}
292  \e@skip\hfill{\pn@font\thepage}}
293  \if@headline \vskip 1.5pt \hrule \fi}}%
294  \def\@evenhead{\vbox{\hsize=\textwidth
295  \hbox to \textwidth{%
296  {\pn@font\thepage}\e@skip\hfill{\h@font%
297  \ifx\@evenrunhead\@empty\leftmark\else\@evenrunhead\fi}
298  \if@center\hfill\fi}
299  \if@headline \vskip 1.5pt \hrule \fi}}%
300  \let\@mkboth\@gobbletwo
301  \let\sectionmark\@gobble
302  \let\subsectionmark\@gobble

303 }

304 \fi

Kopfzeile für vorläufige Formatierungen im Zusammenhang mit der Option draft. Die Kopfzeile enthält Datum, Uhrzeit und Seitenzahl.

305 \def\ps@draft{%
306  \let\@oddfoot\@empty\let\@evenfoot\@empty
307  \def\@oddhead{\vbox{\hsize=\textwidth
308  \hbox to \textwidth{%
309  {\pn@font\today\ \now\ --- {\h@font \draftname: ``\jobname''}
310  \hfil\e@skip \thepage}} \if@headline \vskip 1.5pt \hrule \fi}}%
311  \def\@evenhead{\vbox{\hsize=\textwidth
312 \hbox to \textwidth{%
313  \pn@font\thepage\e@skip\hfil {\h@font \draftname: ``\jobname''} ---
314  \today\ \now\ } \if@headline \vskip 1.5pt \hrule \fi}}%
315  \let\@mkboth\@gobbletwo
316  \let\sectionmark\@gobble
317  \let\subsectionmark\@gobble

318 }

Leere Seiten erhalten eine Markierung am oberen Seitenrand. Dem Springer Makro ‘svma’ entliehen.

319 \@ifundefined{option@crosshair}{}{%
320 \def\clap#1{\hbox to 0pt{\hss#1\hss}} \newdimen\@crosshairrule
321 \@crosshairrule=.24pt \def\@crosshairs{\vbox to
322  0pt{\hsize=0pt\baselineskip=0pt\lineskip=0pt \vss \clap{\vrule
323  height .125in width \@crosshairrule depth 0pt} \clap{\vrule
324  width .25in height \@crosshairrule depth 0pt} \clap{\vrule
325  height .125in width \@crosshairrule depth 0pt} \vss}}
326 \def\ps@empty{%
327  \let\@oddfoot\@empty\let\@evenfoot\@empty
328  \def\@oddhead{\hfill\raise\headheight\@crosshairs}
329  \let\@evenhead\@oddhead}}

Es folgen die Definitionen der erweiterten Titelei. Der Titel enthält zwei zusätzliche Kommandos zur Aufnahme des Untertitels und der Institution. Diese werden ggf. unterhalb des Haupttitels bzw. des Autors in den eingestellten Schriftarten ausgeben. Da im \@maketitle Kommando zentrierter und linksbündiger Satz möglich ist, wird das Kommando \and neu definiert. Der Seitenstil ist empty, da Kopfzeilen voreingestellt sind. Im Fall eines journal werden Kurzautoren und Kurztitel ins Inhaltsverzeichnis desselben aufgenommen. Ferner werden in Abhängigkeit von Seitenstil die Kurznamen von Autoren und Titel in die Kopfzeile übernommen.

330 \def\@subtitle{}    \def\subtitle#1{\gdef\@subtitle{#1}}
331 \def\@institution{} \def\institution#1{\gdef\@institution{#1}}
332 \def\@shortauthor{} \def\shortauthor#1{\gdef\@shortauthor{#1}}
333 \def\@shorttitle{}  \def\shorttitle#1{\gdef\@shorttitle{#1}}
334 \def\and{\end{tabular}\hskip 1em plus.17fil
335 \if@center\begin{tabular}[t]{c}\else\begin{tabular}[t]{@{}l@{}}\fi}

Definition einer Titelseite mit den neuen Schriftvorgaben.

336 \if@titlepage
337 \newcommand\maketitle{\begin{titlepage}%

338 \let\footnotesize\small
339 \let\footnoterule\relax
340 \let\real@thanks\thanks
341 \DeclareRobustCommand\thanks{\real@thanks}
342 \let \footnote \thanks
343 \null\vfil
344 \vskip 60\p@
345 \if@center \begin{center} \else \begin{raggedright} \fi
346  {\t@font \if@upper \uppercase\expandafter{\@title} \else
347  \@title \fi \par}%
348  \vskip 3em%
349  {\ifx\@subtitle\@empty\else
350  \vskip.5em \st@font \@subtitle \par \fi}
351  \vskip 1.5em
352  {\a@font \lineskip .75em
353  \if@center\begin{tabular}[t]{c}\else\begin{tabular}[t]{@{}l@{}}\fi
354  \@institution \end{tabular} \par }
355  {\ifx\@institution\@empty\else\vskip.5em
356  \in@font\bf \lineskip .75em
357  \if@center\begin{tabular}[t]{c}\else\begin{tabular}[t]{@{}l@{}}\fi
358  \@institution \end{tabular} \par\fi}
359  \vskip 1.5em%
360  {\large \@date \par}%       % Set date in \large size.
361 \if@center \end{center} \else \end{raggedright} \fi
362 \vfil\null
363 \@thanks
364 \end{titlepage}%
365 \setcounter{footnote}{0}%
366 \let\thanks\relax\let\maketitle\relax
367 \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@institution{}
368 \gdef\@subtitle{}}

Definition der Danksagung und der Kopfzeilen im Fall eines Journals, wenn keine separate Titelseite angefordert wird.

369 \else
370 \newcommand\maketitle{%
371 \setcounter{footnote}{0}\par
372 \begingroup
373  \renewcommand\thefootnote{\fnsymbol{footnote}}%
374  \def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}%
375  \long\def\@makefntext##1{\parindent 1em\noindent
376  \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}%
377  \if@twocolumn
378  \ifnum \col@number=\@ne
379  \@maketitle
380  \else
381  \twocolumn[\@maketitle]%
382  \fi
383  \else

384  \newpage
385  \global\@topnum\z@
386  \@maketitle
387  \fi
388  \thispagestyle{plain}\@thanks
389 \endgroup
390 \setcounter{footnote}{0}%
391 \if@journal
392  \typeout{Article: \@shortauthor}
393  \setcounter{section}{0}%
394  \setcounter{subsection}{0}%
395  \setcounter{subsubsection}{0}%
396  \setcounter{paragraph}{0}%
397  \setcounter{subparagraph}{0}%
398  \setcounter{figure}{0}%
399  \setcounter{table}{0}%
400  \setcounter{equation}{0}%
401  \addcontentsline{jou}{titles}{%
402  {\sss@font\@shortauthor}\hfill\mbox{}\vskip\normallineskip%
403  \ifx\@shorttitle\@empty\@title\else\@shorttitle\fi}
404  \if@twoside
405  \ifx\@oddrunhead\@empty\ifx\@evenrunhead\@empty
406  \markboth{\@shortauthor}{\@shorttitle}\else
407  \markboth{}{\@shortauthor, \@shorttitle}\fi \else
408  \markboth{\@shortauthor, \@shorttitle}{}\fi
409  \else
410  \markright{\@shortauthor, \@shorttitle}
411  \fi
412 \else
413  \let\maketitle\relax \let\@maketitle\relax
414 \fi
415  \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\gdef\@institution{}
416  \gdef\@subtitle{}}

Wird keine seperate Titleseite angeforderte, übernimmt dieses Makro den Satz der Titelei. Der vertikale Vorschub vor dem Titel ist variable.

417 \newlength{\beforetitlespace} \setlength{\beforetitlespace}{2em}
418 \def\@maketitle{%
419 \cleardoublepage
420 \null
421 \vskip \beforetitlespace%
422 \if@center \begin{center} \else \begin{raggedright} \fi
423  {\t@font \if@upper \uppercase\expandafter{\@title} \else
424  \@title \fi \par}%
425  {\ifx\@subtitle\@empty\else
426  \vskip.5em \st@font \@subtitle \par \fi}
427  \vskip 1.5em
428  {\a@font \lineskip .5em
429  \if@center\begin{tabular}[t]{c}\else\begin{tabular}[t]{@{}l@{}}\fi

430  \@author \end{tabular} \par}
431  {\ifx\@institution\@empty\else\vskip.5em
432  \in@font\bf \lineskip .75em
433  \if@center\begin{tabular}[t]{c}\else\begin{tabular}[t]{@{}l@{}}\fi
434  \@institution \end{tabular} \par\fi}
435 \if@center \end{center} \else \end{raggedright} \fi
436 \par \vskip 1.5em

437 }

438 \fi

Es folgt die Definition der Gliederungsüberschriften. Zunächst wird die Gliederungstiefe festgelegt, bis zu welcher einer Numerierung erfolgt.

439 \setcounter{secnumdepth}{3}

Definition der Zähler für die Gliederungsnumerierung.

440 \newcounter {part}
441 \newcounter {section}
442 \newcounter {subsection}[section]
443 \newcounter {subsubsection}[subsection]
444 \newcounter {paragraph}[subsubsection]
445 \newcounter {subparagraph}[paragraph]

Definition der Ausgabeform dieser Zähler.

446 \renewcommand\thepart          {\Roman{part}}
447 \renewcommand\thesection       {\arabic{section}}
448 \renewcommand\thesubsection    {\thesection.\arabic{subsection}}
449 \renewcommand\thesubsubsection {\thesubsection.\arabic{subsubsection}}
450 \renewcommand\theparagraph     {\thesubsubsection.\arabic{paragraph}}
451 \renewcommand\thesubparagraph  {\theparagraph.\arabic{subparagraph}}

Der Satz einer Teilüberschrift erfolgt ggf. zentriert, in Großbuchstaben und der voreingestellten Schriftart. Im Fall eines journal wird die Kopfzeilenmarkierung nicht neu initialisiert.

452 \newcommand\part{\par
453 \addvspace{4ex}%
454 \@afterindentfalse
455 \secdef\@part\@spart}
456 \def\@part[#1]#2{%
457  \ifnum \c@secnumdepth >\m@ne
458  \refstepcounter{part}%
459  \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
460  \else
461  \addcontentsline{toc}{part}{#1}%
462  \fi
463  {\parindent \z@ \if@center\centering\else\raggedright\fi
464  \interlinepenalty \@M
465  \reset@font
466  \ifnum \c@secnumdepth >\m@ne

467  \p@font \partname~\thepart.\
468  \fi
469  \if@upper\uppercase{#2}\else#2\fi%
470  \if@journal\else\markboth{}{}\fi\par}%
471  \nobreak
472  \vskip 3ex
473  \@afterheading}
474 \def\@spart#1{%
475  {\parindent \z@
476  \if@center\centering\else\raggedright\fi
477  \interlinepenalty \@M
478  \reset@font
479  \p@font\if@upper\uppercase{#1}\else#1\fi\par}
480  \nobreak
481  \vskip 3ex
482  \@afterheading}
483 \def\@endpart{\vfil\newpage
484  \if@twoside
485  \hbox{}%
486  \thispagestyle{empty}%
487  \newpage
488  \fi
489  \if@tempswa
490  \twocolumn
491  \fi}

Äquivalente Definitionen eines Teil für die Klasse journal. Die Teilüberschrift wird in gleicher Höhe wie eine Titelüberschrift gesetzt, ins Inhaltsverzeichnis der Zeitschrift aufgenommen und der Titel in die Kopfzeile übernommen.

492 \if@journal
493 \newcommand\journalpart{\par
494 \addvspace{4ex}%
495 \@afterindentfalse
496 \secdef\@journalpart\@sjournalpart}
497 \def\@journalpart[#1]#2{\addcontentsline{jou}{part}{#1}
498 {\parindent \z@ \if@center\centering\else\raggedright\fi
499  \interlinepenalty \@M
500  \reset@font
501  \t@font
502  \if@upper\uppercase{#2}\else#2\fi%
503  \markboth{#1}{#1}\par}%
504  \nobreak
505  \vskip 3ex
506  \@afterheading}
507 \def\@sjournalpart#1{{\parindent \z@
508  \if@center\centering\else\raggedright\fi
509  \interlinepenalty \@M
510  \reset@font

511  \t@font\if@upper\uppercase{#1}\else#1\fi
512  \markboth{#1}{#1}\par}
513  \nobreak
514  \vskip 3ex
515  \@afterheading}
516 \def\@endjournalpart{\vfil\newpage
517  \if@twoside
518  \hbox{}%
519  \thispagestyle{empty}%
520  \newpage
521  \fi
522  \if@tempswa
523  \twocolumn
524  \fi}
525 \fi

Die folgenden Kommandos definieren Überschriften auf tieferer Gliederungsebene. Gegenüber den Standardklassen wurde jeweils die Möglichkeit zentrierter Überschriften eingeführt und es wurden die Schriftarten verändert.

526 \newcommand\section{\@startsection {section}{1}{\z@}%
527  {-3.5ex \@plus -1ex \@minus -.2ex}%
528  {2.3ex \@plus.2ex}%
529  {\if@center\centering\else\raggedright\fi
530  \reset@font\s@font}}
531 \newcommand\subsection{\@startsection{subsection}{2}{\z@}%
532  {-3.25ex\@plus -1ex \@minus -.2ex}%
533  {1.5ex \@plus .2ex}%
534  {\if@center\centering\else\raggedright\fi
535  \reset@font\ss@font}}
536 \newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
537  {-3.25ex\@plus -1ex \@minus -.2ex}%
538  {1.5ex \@plus .2ex}%
539  {\if@center\centering\else\raggedright\fi
540  \reset@font\sss@font}}
541 \newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
542  {3.25ex \@plus1ex \@minus.2ex}%
543  {-1em}%
544  {\reset@font\pg@font}}
545 \newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
546  {3.25ex \@plus1ex \@minus .2ex}%
547  {-1em}%
548  {\reset@font\spg@font}}

Es folgt die Definition verschiedener Listenumgebungen. Zunächst werden eine Reihe globaler Definitionen und Einstellungen übernommen.

549 \if@twocolumn
550 \setlength\leftmargini  {2em}
551 \else

552 \setlength\leftmargini  {2.5em}
553 \fi
554 \setlength\leftmarginii  {2.2em}
555 \setlength\leftmarginiii {1.87em}
556 \setlength\leftmarginiv  {1.7em}
557 \if@twocolumn
558 \setlength\leftmarginv  {.5em}
559 \setlength\leftmarginvi {.5em}
560 \else
561 \setlength\leftmarginv  {1em}
562 \setlength\leftmarginvi {1em}
563 \fi
564 \setlength\leftmargin    {\leftmargini}
565 \setlength  \labelsep  {.5em}
566 \setlength  \labelwidth{\leftmargini}
567 \addtolength\labelwidth{-\labelsep}
568 \@beginparpenalty -\@lowpenalty
569 \@endparpenalty   -\@lowpenalty
570 \@itempenalty     -\@lowpenalty

Definitionen der Listenumgebungen. Zunächst die Voreinstellungen für die Umgebung enumerate für Standard bzw. dekadische Numerierung.

571 \if@enumeration
572 \renewcommand\theenumi{\arabic{enumi}}
573 \renewcommand\theenumii{\alph{enumii}}
574 \renewcommand\theenumiii{\roman{enumiii}}
575 \renewcommand\theenumiv{\Alph{enumiv}}
576 \newcommand\labelenumi{\theenumi.}
577 \newcommand\labelenumii{(\theenumii)}
578 \newcommand\labelenumiii{\theenumiii.}
579 \newcommand\labelenumiv{\theenumiv.}
580 \renewcommand\p@enumii{\theenumi}
581 \renewcommand\p@enumiii{\theenumi(\theenumii)}
582 \renewcommand\p@enumiv{\p@enumiii\theenumiii}
583 \else
584 \renewcommand\theenumi{\arabic{enumi}}
585 \renewcommand\theenumii{\arabic{enumii}}
586 \renewcommand\theenumiii{\arabic{enumiii}}
587 \renewcommand\theenumiv{\arabic{enumiv}}
588 \newcommand\labelenumi{\theenumi.}
589 \newcommand\labelenumii{\theenumi.\theenumii.}
590 \newcommand\labelenumiii{\theenumi.\theenumii.\theenumiii.}
591 \newcommand\labelenumiv{\theenumi.\theenumii.\theenumiii.\theenumiv.}
592 \renewcommand\p@enumii{\theenumi}
593 \renewcommand\p@enumiii{\theenumi(\theenumii)}
594 \renewcommand\p@enumiv{\p@enumiii\theenumiii}
595 \fi

Die Definition neuer Umgebungen beginnt mit dem abstract und den

 keywords.
596 \if@titlepage
597 \newenvironment{keywords}{%
598  \titlepage
599  \null\vfil
600  \@beginparpenalty\@lowpenalty
601  \if@center\begin{center}\else\begin{raggedright}\fi%
602  {\sss@font  \keywordname}
603  \@endparpenalty\@M
604  \if@center\end{center}\else\end{raggedright}\fi}%
605  {\par\vfil\null\endtitlepage}
606 \newenvironment{abstract}{%
607  \titlepage
608  \null\vfil
609  \@beginparpenalty\@lowpenalty
610  \if@center\begin{center}\else\begin{raggedright}\fi%
611  {\sss@font  \abstractname}
612  \@endparpenalty\@M
613  \if@center\end{center}\else\end{raggedright}\fi}%
614  {\par\vfil\null\endtitlepage}
615 \else
616 \if@center
617  \def\abstract{%
618  \if@twocolumn
619  \small\subsubsection*{\abstractname}%
620  \else
621  \small
622  \begin{center}
623  {\sss@font \abstractname\vspace{-.5em}\vspace{\z@}}%
624  \end{center} \quotation
625  \fi}
626  \def\endabstract{\if@twocolumn\else\endquotation\fi}
627  \def\keywords{\small\paragraph*{\keywordname:}}
628  \let\endkeywords=\bigskip
629 \else
630  \def\abstract{\small\subsubsection*{\abstractname}}
631  \let\endabstract=\bigskip
632  \def\keywords{\small\paragraph*{\keywordname: }}
633  \let\endkeywords\endabstract
634 \fi
635 \fi

Definition itemize der Item-Markierungen. Entweder übliche Staffelung der Markierungen oder keine Hervorhebung der ”itemization“.

636 \if@itemization
637 \newcommand\labelitemi{$\m@th\bullet$}
638 \newcommand\labelitemii{\normalfont\bfseries --}
639 \newcommand\labelitemiii{$\m@th\ast$}

640 \newcommand\labelitemiv{$\m@th\cdot$}
641 \else
642 \newcommand\labelitemi{\bfseries --}
643 \newcommand\labelitemii{\bfseries --}
644 \newcommand\labelitemiii{\bfseries --}
645 \newcommand\labelitemiv{\bfseries --}
646 \fi

Die Labels der description Umgebung werden in der Schriftart \item@font gesetzt.

647 \newenvironment{description}
648  {\list{}{\labelwidth\z@ \itemindent-\leftmargin
649  \let\makelabel\descriptionlabel}}
650  {\endlist}
651 \newcommand\descriptionlabel[1]{\hspace\labelsep
652  \item@font #1}

Unveränderte Definition der verse Umgebung.

653 \newenvironment{verse}
654  {\let\\=\@centercr
655  \list{}{\itemsep      \z@
656  \itemindent   -1.5em%
657  \listparindent\itemindent
658  \rightmargin  \leftmargin
659  \advance\leftmargin 1.5em}%
660  \item[]}
661  {\endlist}

Unveränderte Definition der quotation Umgebung.

662 \newenvironment{quotation}
663  {\list{}{\listparindent 1.5em%
664  \itemindent    \listparindent
665  \rightmargin   \leftmargin
666  \parsep        \z@ \@plus\p@}%
667  \item[]}
668  {\endlist}

Unveränderte Definitionen derquote Umgebung.

669 \newenvironment{quote}
670  {\list{}{\rightmargin\leftmargin}%
671  \item[]}
672  {\endlist}

Die Bezeichnung einer theorem Umgebung wird in der Schriftart \thh@font gesetzt, der Text selbst in \thb@font.

673 \def\@begintheorem#1#2{\reset@font\thb@font\trivlist
674  \item[\hskip \labelsep{\reset@font\thh@font #1\ #2:}]}
675 \def\@opargbegintheorem#1#2#3{\reset@font\thb@font\trivlist
676  \item[\hskip \labelsep{\reset@font\thh@font #1\ #2\ (#3):}]}
677 \def\@endtheorem{\endtrivlist}

Die Umgebung zur Beschreibung von Beispielen.

678 \newlength{\exampleindent}    \setlength{\exampleindent}{\parindent}
679 \newenvironment{example}%
680 {\begin{list}{}{%
681  \setlength{\leftmargin}{\exampleindent}}
682  \ex@font \item[]}
683 {\end{list}}

Die Umgebung describe Umgebung. Das übergebene Argument dient zur Berechnung des breitesten Labels.

684 \newenvironment{describe}[1][\quad]%
685 {\begin{list}{}{%
686  \renewcommand{\makelabel}[1]{{\item@font ##1}\hfil}%
687  \settowidth{\labelwidth}{{\item@font #1}}%
688  \setlength{\leftmargin}{\labelwidth}%
689  \addtolength{\leftmargin}{\labelsep}}}%
690 {\end{list}}

Die Titelseite.

691 \newenvironment{titlepage}

692 {%

693  \if@twocolumn
694  \@restonecoltrue\onecolumn
695  \else
696  \@restonecolfalse\newpage
697  \fi
698  \thispagestyle{empty}%
699  \if@compatibility
700  \setcounter{page}{0}
701  \else
702  \setcounter{page}{1}%
703  \fi}%
704  {\if@restonecol\twocolumn \else \newpage \fi
705  \setcounter{page}{1}%

706 }

Das Makro \review ruft die Sternform oder die normale Form ggf. mit optionalem Parameter auf. Der vertikale Abstand entspricht einer \subsubsection, ein Eintrag ins Inhaltsverzeichnis wird vorgenommen.

707 \def\review{\@ifstar{\@sreview[]}{%
708  \@ifnextchar [{\@tempswatrue\@review}{\@tempswafalse\@review[]}}}
709 \def\@review[#1]#2#3{\setcounter{footnote}{0}
710  \vskip 3.25ex plus1ex minus.2ex \noindent
711  {\sss@font #2}\\\emph{#3.}\@afterheading
712  \if@journal
713  \addcontentsline{jou}{titles}{%
714  {\sss@font#2}\hfill\mbox{}\vskip\normallineskip#3
715  \if@tempswa (#1)\fi}

716  \fi}
717 \def\@sreview[#1]#2#3{\setcounter{footnote}{0}
718  \vskip 3.25ex plus1ex minus.2ex \noindent
719  {\sss@font #2}\\\emph{#3.} \@afterheading}

Das Makro \revauthor übernimmt den Autor und ruft \@makerevauthor. Entspricht dem Satz von \@author in der Titellei.

720 \def\revauthor#1{\setcounter{footnote}{0}
721  \def\thefootnote{\fnsymbol{footnote}}
722  \gdef\@revauthor{#1}\@makerevauthor}
723 \def\@makerevauthor{\hfill{\lineskip .5em
724  \if@center \begin{tabular}[t]{c} \else \begin{tabular}[t]{@{}l@{}} \fi
725  \@revauthor \end{tabular} \par}\@thanks\@afterheading
726  \setcounter{footnote}{0}\def\thefootnote{\arabic{footnote}}
727  \gdef\@thanks{}\gdef\@revauthor{}}

Unveränderte Definition eines Anhanges.

728 \newcommand\appendix{\par
729 \setcounter{section}{0}%
730 \setcounter{subsection}{0}%
731 \renewcommand\thesection{\Alph{section}}}

Unveränderte Voreinstellungen der array Umgebung.

732 \setlength\arraycolsep{5\p@}
733 \setlength\tabcolsep{6\p@}
734 \setlength\arrayrulewidth{.4\p@}
735 \setlength\doublerulesep{2\p@}
736 \setlength\tabbingsep{\labelsep}

Unveränderte Voreinstellungen der minipage Umgebung.

737 \skip\@mpfootins = \skip\footins

Unveränderte Voreinstellungen der fbox.

738 \setlength\fboxsep{3\p@}
739 \setlength\fboxrule{.4\p@}

Zähler zur Erzeugung von Gleichungsnummern.

740 \renewcommand{\theequation}{\arabic{equation}}

Die Definition einiger Kommandos zur Erzeugung von Randnotizen in Anlehnung an H. Partls \refman.sty. Im Unterschied zur dortigen Definition erscheinen die Notizen nicht nur am linken Seitenrand.

741 \def\marginlabel#1{\marginpar%
742 {\if@twoside
743  \ifodd\c@page
744  \raggedright
745  \else
746  \raggedleft

747  \fi
748  \else
749  \raggedright
750  \fi #1}}
751 \def\attention{\mbox{}%
752  \marginpar[\raggedleft\large\bf! $\rightarrow$]%
753  {\raggedright\large\bf $\leftarrow$ !}}
754 \def\seealso#1{\mbox{}%
755  \marginpar[\raggedleft$\rightarrow$ \small #1]%
756  {\raggedright\small  #1 $\leftarrow$}\ignorespaces}

Definition des Abbildungszählers.

757 \newcounter{figure}
758 \renewcommand\thefigure{\@arabic\c@figure}

Voreinstellungen der figure Umgebung. Im Makro \fnum@figure wird der Kurzname benutzt. Die ”Floats“ werden in der voreingestellten Schrift

 \fig@font gesetzt.
759 \def\fps@figure{tbp}
760 \def\ftype@figure{1}
761 \def\ext@figure{lof}
762 \def\fnum@figure{\figureshortname~\thefigure}
763 \newenvironment{figure}
764  {\fig@font\@float{figure}}
765  {\end@float}
766 \newenvironment{figure*}
767  {\fig@font\@dblfloat{figure}}
768  {\end@dblfloat}

Definition des Tabellenzählers.

769 \newcounter{table}
770 \renewcommand\thetable{\@arabic\c@table}

Voreinstellungen der table Umgebung. Im Makro \fnum@table wird der Kurzname benutzt. Die ”Floats“ werden in der voreingestellten Schrift

 \tab@font gesetzt.
771 \def\fps@table{tbp}
772 \def\ftype@table{2}
773 \def\ext@table{lot}
774 \def\fnum@table{\tableshortname~\thetable}
775 \newenvironment{table}
776  {\tab@font\@float{table}}
777  {\end@float}
778 \newenvironment{table*}
779  {\tab@font\@dblfloat{table}}
780  {\end@dblfloat}

Unveränderte Abstände.

781 \newlength\abovecaptionskip
782 \newlength\belowcaptionskip
783 \setlength\abovecaptionskip{10\p@}
784 \setlength\belowcaptionskip{0\p@}

Lange Figuren oder Tabellenbeschriftungen werden um Bezeichnung und Nummer eingerückt. Beschriftungen werden in den Fonts cph@font und

 \cpb@font gesetzt.
785 \long\def\@makecaption#1#2{%
786 \vskip\abovecaptionskip
787 \setbox\@tempboxa\hbox{{\cph@font #1:} {\cpb@font #2}}%
788 \ifdim \wd\@tempboxa >\hsize
789  \@hangfrom{\cph@font #1: }{\cpb@font #2\par}%
790 \else
791  \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
792 \fi
793 \vskip\belowcaptionskip}

Einfache Stütze zur Tabellenkonstruktion.

794 \def\rb#1{\raisebox{1.5ex}[-1.5ex]{#1}}

Einfache horizontale Linien in Tabellen. Die Definition der Makros entspricht der Konstruktion von \hline in latex.tex. Das von den Befehlen aufgerufene Makro \@xhline fügt einen zusätzlichen Vorschub ein,falls der Befehl wiederholt gegeben wird.

795 \def\tablerule{\noalign{\ifnum0=`}\fi
796 \hrule \@height \arrayrulewidth \vskip\doublerulesep
797 \futurelet \@tempa\@xhline}
798 \def\thicktablerule{\noalign{\ifnum0=`}\fi
799 \hrule \@height 2\arrayrulewidth \vskip\doublerulesep
800 \futurelet \@tempa\@xhline}
801 \def\doubletablerule{\noalign{\ifnum0=`}\fi
802 \hrule \@height \arrayrulewidth \vskip2\arrayrulewidth
803 \hrule \@height \arrayrulewidth \vskip\doublerulesep
804 \futurelet \@tempa\@xhline}

Definition stärkerer und doppelter \hline Varianten.

805 \def\thickhline{\noalign{\ifnum0=`}\fi
806 \hrule \@height 2\arrayrulewidth\futurelet \@tempa\@xhline}
807 \def\doublehline{\noalign{\ifnum0=`}\fi
808 \hrule \@height \arrayrulewidth\vskip2\arrayrulewidth
809 \hrule \@height \arrayrulewidth \futurelet \@tempa\@xhline}

Unveränderte Definition der L^{A}TEX 2.09 Schriftartenkommandos und der Kommandos für mathematische Zeichensätze.

810 \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
811 \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
812 \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}

813 \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
814 \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
815 \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
816 \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
817 \DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
818 \DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}

Definition von Abständen und Gliederungstiefe für das Inhaltsverzeichnis.

819 \newcommand\@pnumwidth{1.55em}
820 \newcommand\@tocrmarg {2.55em}
821 \newcommand\@dotsep{4.5}
822 \setcounter{tocdepth}{3}

Definitionen eines regulären und eines ”kleine“ Inhaltsverzeichnisses. Diese Umgebungen stehen im Fall des journal nicht zur Verfügung.

823 \if@journal
824 \let\tableofcontents\relax
825 \let\smalltableofcontents\relax
826 \def\journalcontents{\journalpart*{\contentsname}
827  \@starttoc{jou}}
828 \else
829 \newcommand\tableofcontents{%
830  \let\smalltableofcontents\relax
831  \section*{\contentsname
832  \@mkboth{\contentsname}{\contentsname}}%
833  \@starttoc{toc}%

834 }

835 \newcommand\smalltableofcontents{%
836  \let\tableofcontents\relax
837  \subsubsection*{\contentsname
838  \@mkboth{\contentsname}{\contentsname}}%
839  \begin{small}
840  \@starttoc{toc}%
841  \end{small}}
842 \fi

Nur der Titeleintrag, nicht aber die Seitenzahl wird hervorgehoben.

843 \newcommand\l@part[2]{%
844 \ifnum \c@tocdepth >-2\relax
845  \addpenalty{\@secpenalty}%
846  \addvspace{2.25em \@plus\p@}%
847  \begingroup
848  \setlength\@tempdima{3em}%
849  \parindent \z@ \rightskip \@pnumwidth
850  \parfillskip -\@pnumwidth
851  {\leavevmode
852  {\sss@font#1}\hfil \hbox to\@pnumwidth{\hss #2}}\par
853  \nobreak
854  \if@compatibility

855  \global\@nobreaktrue
856  \everypar{\global\@nobreakfalse\everypar{}}
857  \fi
858  \endgroup
859 \fi}

Titeleintrag in das Inhaltsverzeichnis eines journal.

860 \if@journal
861 \newcommand\l@titles[2]{%
862  \addpenalty{-\@highpenalty}%
863  \vskip 1.0em \@plus\p@
864  \begingroup
865  \parindent \z@ \rightskip \@pnumwidth
866  \parfillskip -\@pnumwidth
867  \leavevmode #1%
868  \nobreak\leaders\hbox{%
869  $\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}\hfill
870  \nobreak \hbox to\@pnumwidth{\hfil\rm #2}\par
871  \penalty\@highpenalty
872  \endgroup}
873 \fi

Auch der Eintrag für die \l@section erfolgt als \@dottedtocline.

874 \newcommand\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
875 \newcommand\l@subsection   {\@dottedtocline{2}{1.5em}{2.3em}}
876 \newcommand\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
877 \newcommand\l@paragraph    {\@dottedtocline{4}{7.0em}{4.1em}}
878 \newcommand\l@subparagraph {\@dottedtocline{5}{10em}{5em}}

Die Definition von Abbildungs- und Tabellenverzeichnis. Die Kopfzeilenmarkierungen werden nicht in Großbuchstaben umgewandelt.

879 \if@journal
880 \let\listoffigures\relax
881 \let\smalllistoffigures\relax
882 \let\listoftables\relax
883 \let\smalllistoftables\relax
884 \else
885 \newcommand\listoffigures{%
886  \let\smalllistoffigures\relax
887  \section*{\listfigurename
888  \@mkboth{\listfigurename}{\listfigurename}}%
889  \@starttoc{lof}%

890 }

891 \newcommand\smalllistoffigures{%
892  \let\listoffigures\relax
893  \subsubsection*{\listfigurename
894  \@mkboth{\listfigurename}{\listfigurename}}%
895  \begin{small}
896  \@starttoc{lof}%

897  \end{small}

898 }

899 \newcommand\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
900 \newcommand\listoftables{%
901  \let\smalllistoftables\relax
902  \section*{\listtablename
903  \@mkboth{\listtablename}{\listtablename}}%
904  \@starttoc{lot}%

905 }

906 \newcommand\smalllistoftables{%
907  \let\listoftables\relax
908  \subsubsection*{\listtablename
909  \@mkboth{\listtablename}{\listtablename}}%
910  \begin{small}
911  \@starttoc{lot}%
912  \end{small}

913 }

914 \let\l@table\l@figure
915 \fi

Die Definition des Literaturverzeichnisses. Die Kopfzeilenmarkierung wird nicht in Großbuchstaben umgewandelt.

916 \newdimen\bibindent
917 \setlength\bibindent{1.5em}
918 \newenvironment{thebibliography}[1]
919  {\section*{\refname
920  \@mkboth{\refname}{\refname}}%
921  \list{\@biblabel{\@arabic\c@enumiv}}%
922  {\settowidth\labelwidth{\@biblabel{#1}}%
923  \leftmargin\labelwidth
924  \advance\leftmargin\labelsep
925  \@openbib@code
926  \usecounter{enumiv}%
927  \let\p@enumiv\@empty
928  \renewcommand\theenumiv{\@arabic\c@enumiv}}%
929  \sloppy\clubpenalty4000\widowpenalty4000%
930  \sfcode`\.\@m}
931  {\def\@noitemerr
932  {\@latex@warning{Empty `thebibliography' environment}}%
933  \endlist}
934 \newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
935 \let\@openbib@code\@empty

Die folgenden Makros werden nur bei Verwendung der Variante journal aktiviert. Das Kommando \thebibliograpy liest nicht mehr \jobname.bbl, sondern @\bblfile. Das Makro \@include wird dahingehend geändert, daß \@bblfile auf den Namen der entsprechenden Include Datei initialisiert. Die Makros stammen von Joachim Schrodt `bibperinclude.sty' .

936 \if@journal
937 \def\@mainbblfile{\jobname.bbl}
938 \let\@bblfile=\@mainbblfile
939 \def\bibliography#1{%
940  \if@filesw\immediate\write\@auxout{\string\bibdata{#1}}\fi
941  \@input{\@bblfile}}
942 \def\@include#1 {\clearpage
943  \if@filesw \immediate\write\@mainaux{\string\@input{#1.aux}}\fi
944  \@tempswatrue
945  \if@partsw \@tempswafalse\edef\@tempb{#1}
946  \@for\@tempa:=\@partlist\do{\ifx\@tempa\@tempb\@tempswatrue\fi}
947  \fi
948  \if@tempswa
949  \if@filesw \let\@auxout=\@partaux
950  \immediate\openout\@partaux #1.aux
951  \immediate\write\@partaux{\relax}
952  \fi
953  \def\@bblfile{#1.bbl}\@input{#1.tex}
954  \let\@bblfile\@mainbblfile\clearpage
955  \@writeckpt{#1}
956  \if@filesw
957  \immediate\closeout\@partaux
958  \fi
959  \let\@auxout=\@mainaux\else\@nameuse{cp@#1}
960 \fi}
961 \fi

Definition des Index. Die Kopfzeilenmarkierung wird nicht in Großbuchstaben umgewandelt. Der Seitenstil ist standardmäßig empty, da Kopfzeilen voreingestellt sind.

962 \newenvironment{theindex}
963  {\if@twocolumn
964  \@restonecolfalse
965  \else
966  \@restonecoltrue
967  \fi
968  \columnseprule \z@
969  \columnsep 35\p@
970  \twocolumn[\section*{\indexname}]%
971  \@mkboth{\indexname}%
972  {\indexname}%
973  \thispagestyle{empty}\parindent\z@
974  \parskip\z@ \@plus .3\p@\relax
975  \let\item\@idxitem}
976  {\if@restonecol\onecolumn\else\clearpage\fi}
977 \newcommand\@idxitem  {\par\hangindent 40\p@}
978 \newcommand\subitem   {\par\hangindent 40\p@ \hspace*{20\p@}}
979 \newcommand\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}
980 \newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}

Unveränderte Definition der \footnoterule.

981 \renewcommand\footnoterule{%
982 \kern-3\p@
983 \hrule width .4\columnwidth
984 \kern 2.6\p@}

Der Satz von Fußnotenabsätzen variiert in Abhängigkeit von der Option par; ggf. werden Fußnoten ohne Einzug geblockt. In jedem Fall wird nach dem Fußnotenzeichen ein Zwischenraum von .25em eingefügt.

985 \if@noind
986 \long\def\@makefntext#1{%
987  \leftskip 2.0em%
988  \noindent
989  \hbox to 0em{\hss\@makefnmark\kern 0.25em}#1}
990 \else
991 \long\def\@makefntext#1{%
992  \parindent 1em%
993  \noindent
994  \hbox to 1.8em{\hss\@makefnmark\kern 0.25em}#1}
995 \fi

Definition der ”Captions“. Standardmäßig werden Kurznamen für Abbildungen und Tabellen benutzt, die im entsprechenden captionslanguage Makro des german.sty eingefügt werden sollten. Die Definitionen der deutsch und französischen Namen folgen im Anschluß an die Liste als Metakommentar.

996 \newcommand\contentsname{Contents}
997 \newcommand\listfigurename{List of Figures}
998 \newcommand\listtablename{List of Tables}
999 \newcommand\refname{References}
1000 \newcommand\indexname{Index}
1001 \newcommand\figurename{Figure}
1002 \newcommand\tablename{Table}
1003 \newcommand\partname{Part}
1004 \newcommand\appendixname{Appendix}
1005 \newcommand\abstractname{Abstract}
1006 \newcommand\figureshortname{Fig.}                      % <-- paper
1007 \newcommand\tableshortname{Tab.}                       % <-- paper
1008 \newcommand\keywordname{Keywords}                      % <-- paper
1009 \newcommand\draftname{preliminary draft}               % <-- paper

Definition des Datums und verschiedene Initialisierungen. Im Unterschied zum Standardstil article ist die Benutzung von Kopfzeilen voreingestellt.

1010 \newcommand\today{\ifcase\month\or
1011 January\or February\or March\or April\or May\or June\or
1012 July\or August\or September\or October\or November\or December\fi
1013 \space\number\day, \number\year}
1014 \setlength\columnsep{10\p@}

1015 \setlength\columnseprule{0\p@}
1016 \iffinal
1017 \if@journal
1018  \ps@journal
1019 \else
1020  \ps@headings

1021 \fi

1022 \else
1023 \ps@draft

1024 \fi

1025 \pagenumbering{arabic}
1026 \if@twoside
1027 \else
1028 \raggedbottom

1029 \fi

1030 \if@twocolumn
1031 \twocolumn
1032 \sloppy
1033 \flushbottom
1034 \else
1035 \onecolumn

1036 \fi

1037 ⟨/paper⟩

5 Treiber-Datei

Der letzte Abschnitt enthält die Treiberdatei zur Erstellung der Dokumentation.

1038 ⟨∗driver⟩

1039 \typeout{*******************************************************}
1040 \typeout{* Documentation for LaTeX styles `paper' & `journal'  *}
1041 \typeout{*******************************************************}

1042

1043 \documentclass[11pt]{ltxdoc}
1044 \usepackage{german}

1045

1046 \makeatletter
1047 \newif\ifsolodoc
1048 \@ifundefined{solo}{\solodoctrue}{\solodocfalse}
1049 \IndexPrologue{\section*{Index}%
1050  \markboth{Index}{Index}%
1051  Die kursiv gesetzten Seitenzahlen
1052  verweisen auf Beschreibungen der Makros,
1053  unterstrichene Programmzeilennummern
1054  auf deren Definitionen.}
1055 \GlossaryPrologue{\section*{Neuerungen}%
1056  \markboth{Neuerungen}{Neuerungen}}
1057 \def\saved@macroname{Neuerung}

1058 \renewenvironment{theglossary}{%
1059  \glossary@prologue%
1060  \GlossaryParms \let\item\@idxitem \ignorespaces}%

1061 {}

1062 \makeatother
1063 \setcounter{StandardModuleDepth}{1}
1064 %   \OnlyDescription
1065 %   \CodelineIndex
1066 \CodelineNumbered
1067 \RecordChanges
1068 \setlength{\parindent}{0pt}
1069 \begin{document}
1070 \DocInput{paper.dtx} \newpage \PrintChanges % \newpage \PrintIndex
1071 \end{document}
1072 \endinput

1073 ⟨/driver⟩