1% LLNCS DOCUMENT CLASS -- version 2.6
2% for LaTeX2e
3%
4\NeedsTeXFormat{LaTeX2e}[1995/12/01]
5\ProvidesClass{llncs}[1999/04/27 v2.6
6^^JLaTeX document class for Lecture Notes in Computer Science]
7% Options
8\let\if@envcntreset\iffalse
9\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue}
10\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y}
11\DeclareOption{oribibl}{\let\oribibl=Y}
12\let\if@envcntsame\iffalse
13\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue}
14\let\if@envcntsect\iffalse
15\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue}
16\let\if@runhead\iffalse
17\DeclareOption{runningheads}{\let\if@runhead\iftrue}
18
19\let\if@openbib\iffalse
20\DeclareOption{openbib}{\let\if@openbib\iftrue}
21
22\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
23
24\ProcessOptions
25
26\LoadClass[twoside]{article}
27\RequirePackage{multicol} % needed for the list of participants, index
28
29\setlength{\textwidth}{12.2cm}
30\setlength{\textheight}{19.3cm}
31
32% Ragged bottom for the actual page
33\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
34\global\let\@textbottom\relax}}
35
36\renewcommand\small{%
37   \@setfontsize\small\@ixpt{11}%
38   \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
39   \abovedisplayshortskip \z@ \@plus2\p@
40   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
41   \def\@listi{\leftmargin\leftmargini
42               \parsep 0\p@ \@plus1\p@ \@minus\p@
43               \topsep 8\p@ \@plus2\p@ \@minus4\p@
44               \itemsep0\p@}%
45   \belowdisplayskip \abovedisplayskip
46}
47
48\frenchspacing
49\widowpenalty=10000
50\clubpenalty=10000
51
52\setlength\oddsidemargin   {63\p@}
53\setlength\evensidemargin  {63\p@}
54\setlength\marginparwidth  {90\p@}
55
56\setlength\headsep   {16\p@}
57
58\setlength\footnotesep{7.7\p@}
59\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@}
60\setlength\intextsep   {8mm\@plus 2\p@ \@minus 2\p@}
61
62\setcounter{secnumdepth}{2}
63
64\newcounter {chapter}
65\renewcommand\thechapter      {\@arabic\c@chapter}
66
67\newif\if@mainmatter \@mainmattertrue
68\newcommand\frontmatter{\cleardoublepage
69            \@mainmatterfalse\pagenumbering{Roman}}
70\newcommand\mainmatter{\cleardoublepage
71       \@mainmattertrue\pagenumbering{arabic}}
72\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi
73      \@mainmatterfalse}
74
75\renewcommand\part{\cleardoublepage
76                 \thispagestyle{empty}%
77                 \if@twocolumn
78                     \onecolumn
79                     \@tempswatrue
80                   \else
81                     \@tempswafalse
82                 \fi
83                 \null\vfil
84                 \secdef\@part\@spart}
85
86\def\@part[#1]#2{%
87    \ifnum \c@secnumdepth >-2\relax
88      \refstepcounter{part}%
89      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
90    \else
91      \addcontentsline{toc}{part}{#1}%
92    \fi
93    \markboth{}{}%
94    {\centering
95     \interlinepenalty \@M
96     \normalfont
97     \ifnum \c@secnumdepth >-2\relax
98       \huge\bfseries \partname~\thepart
99       \par
100       \vskip 20\p@
101     \fi
102     \Huge \bfseries #2\par}%
103    \@endpart}
104\def\@spart#1{%
105    {\centering
106     \interlinepenalty \@M
107     \normalfont
108     \Huge \bfseries #1\par}%
109    \@endpart}
110\def\@endpart{\vfil\newpage
111              \if@twoside
112                \null
113                \thispagestyle{empty}%
114                \newpage
115              \fi
116              \if@tempswa
117                \twocolumn
118              \fi}
119
120\newcommand\chapter{\clearpage
121                    \thispagestyle{empty}%
122                    \global\@topnum\z@
123                    \@afterindentfalse
124                    \secdef\@chapter\@schapter}
125\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
126                       \if@mainmatter
127                         \refstepcounter{chapter}%
128                         \typeout{\@chapapp\space\thechapter.}%
129                         \addcontentsline{toc}{chapter}%
130                                  {\protect\numberline{\thechapter}#1}%
131                       \else
132                         \addcontentsline{toc}{chapter}{#1}%
133                       \fi
134                    \else
135                      \addcontentsline{toc}{chapter}{#1}%
136                    \fi
137                    \chaptermark{#1}%
138                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
139                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
140                    \if@twocolumn
141                      \@topnewpage[\@makechapterhead{#2}]%
142                    \else
143                      \@makechapterhead{#2}%
144                      \@afterheading
145                    \fi}
146\def\@makechapterhead#1{%
147% \vspace*{50\p@}%
148  {\centering
149    \ifnum \c@secnumdepth >\m@ne
150      \if@mainmatter
151        \large\bfseries \@chapapp{} \thechapter
152        \par\nobreak
153        \vskip 20\p@
154      \fi
155    \fi
156    \interlinepenalty\@M
157    \Large \bfseries #1\par\nobreak
158    \vskip 40\p@
159  }}
160\def\@schapter#1{\if@twocolumn
161                   \@topnewpage[\@makeschapterhead{#1}]%
162                 \else
163                   \@makeschapterhead{#1}%
164                   \@afterheading
165                 \fi}
166\def\@makeschapterhead#1{%
167% \vspace*{50\p@}%
168  {\centering
169    \normalfont
170    \interlinepenalty\@M
171    \Large \bfseries  #1\par\nobreak
172    \vskip 40\p@
173  }}
174
175\renewcommand\section{\@startsection{section}{1}{\z@}%
176                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%
177                       {12\p@ \@plus 4\p@ \@minus 4\p@}%
178                       {\normalfont\large\bfseries\boldmath
179                        \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
180\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
181                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%
182                       {8\p@ \@plus 4\p@ \@minus 4\p@}%
183                       {\normalfont\normalsize\bfseries\boldmath
184                        \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
185\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
186                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%
187                       {-0.5em \@plus -0.22em \@minus -0.1em}%
188                       {\normalfont\normalsize\bfseries\boldmath}}
189\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
190                       {-12\p@ \@plus -4\p@ \@minus -4\p@}%
191                       {-0.5em \@plus -0.22em \@minus -0.1em}%
192                       {\normalfont\normalsize\itshape}}
193\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use
194                  \string\subparagraph\space with this class}\vskip0.5cm
195You should not use \verb|\subparagraph| with this class.\vskip0.5cm}
196
197\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00}
198\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01}
199\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02}
200\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03}
201\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04}
202\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05}
203\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06}
204\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
205\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08}
206\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09}
207\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
208
209\let\footnotesize\small
210
211\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}
212{\mbox{\boldmath$\textstyle#1$}}
213{\mbox{\boldmath$\scriptstyle#1$}}
214{\mbox{\boldmath$\scriptscriptstyle#1$}}}
215
216\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}
217\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil
218\penalty50\hskip1em\null\nobreak\hfil\squareforqed
219\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}
220
221\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip
222\halign{\hfil
223$\displaystyle##$\hfil\cr\gets\cr\to\cr}}}
224{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets
225\cr\to\cr}}}
226{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets
227\cr\to\cr}}}
228{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
229\gets\cr\to\cr}}}}}
230\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
231$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}
232{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr
233\noalign{\vskip1.2pt}=\cr}}}
234{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr
235\noalign{\vskip1pt}=\cr}}}
236{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
237<\cr
238\noalign{\vskip0.9pt}=\cr}}}}}
239\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
240$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}
241{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr
242\noalign{\vskip1.2pt}=\cr}}}
243{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr
244\noalign{\vskip1pt}=\cr}}}
245{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
246>\cr
247\noalign{\vskip0.9pt}=\cr}}}}}
248\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip
249\halign{\hfil
250$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}}
251{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
252>\cr\noalign{\vskip-1pt}<\cr}}}
253{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
254>\cr\noalign{\vskip-0.8pt}<\cr}}}
255{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
256>\cr\noalign{\vskip-0.3pt}<\cr}}}}}
257\def\bbbr{{\rm I\!R}} %reelle Zahlen
258\def\bbbm{{\rm I\!M}}
259\def\bbbn{{\rm I\!N}} %natuerliche Zahlen
260\def\bbbf{{\rm I\!F}}
261\def\bbbh{{\rm I\!H}}
262\def\bbbk{{\rm I\!K}}
263\def\bbbp{{\rm I\!P}}
264\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
265{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
266\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox
267to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
268{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
269to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
270{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
271to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
272{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
273to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
274\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
275Q$}\hbox{\raise
2760.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
277{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
2780.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
279{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
2800.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
281{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
2820.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
283\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
284T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
285{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
286to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
287{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
288to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
289{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
290to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
291\def\bbbs{{\mathchoice
292{\setbox0=\hbox{$\displaystyle     \rm S$}\hbox{\raise0.5\ht0\hbox
293to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
294to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
295{\setbox0=\hbox{$\textstyle        \rm S$}\hbox{\raise0.5\ht0\hbox
296to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
297to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
298{\setbox0=\hbox{$\scriptstyle      \rm S$}\hbox{\raise0.5\ht0\hbox
299to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
300to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
301{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox
302to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
303to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
304\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
305{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
306{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}}
307{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}}
308
309\let\ts\,
310
311\setlength\leftmargini  {17\p@}
312\setlength\leftmargin    {\leftmargini}
313\setlength\leftmarginii  {\leftmargini}
314\setlength\leftmarginiii {\leftmargini}
315\setlength\leftmarginiv  {\leftmargini}
316\setlength  \labelsep  {.5em}
317\setlength  \labelwidth{\leftmargini}
318\addtolength\labelwidth{-\labelsep}
319
320\def\@listI{\leftmargin\leftmargini
321            \parsep 0\p@ \@plus1\p@ \@minus\p@
322            \topsep 8\p@ \@plus2\p@ \@minus4\p@
323            \itemsep0\p@}
324\let\@listi\@listI
325\@listi
326\def\@listii {\leftmargin\leftmarginii
327              \labelwidth\leftmarginii
328              \advance\labelwidth-\labelsep
329              \topsep    0\p@ \@plus2\p@ \@minus\p@}
330\def\@listiii{\leftmargin\leftmarginiii
331              \labelwidth\leftmarginiii
332              \advance\labelwidth-\labelsep
333              \topsep    0\p@ \@plus\p@\@minus\p@
334              \parsep    \z@
335              \partopsep \p@ \@plus\z@ \@minus\p@}
336
337\renewcommand\labelitemi{\normalfont\bfseries --}
338\renewcommand\labelitemii{$\m@th\bullet$}
339
340\setlength\arraycolsep{1.4\p@}
341\setlength\tabcolsep{1.4\p@}
342
343\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}%
344                                                    {{\contentsname}}}
345 \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}}
346 \def\lastand{\ifnum\value{auco}=2\relax
347                 \unskip{} \andname\
348              \else
349                 \unskip \lastandname\
350              \fi}%
351 \def\and{\stepcounter{@auth}\relax
352          \ifnum\value{@auth}=\value{auco}%
353             \lastand
354          \else
355             \unskip,
356          \fi}%
357 \@starttoc{toc}\if@restonecol\twocolumn\fi}
358
359\def\l@part#1#2{\addpenalty{\@secpenalty}%
360   \addvspace{2em plus\p@}%  % space above part line
361   \begingroup
362     \parindent \z@
363     \rightskip \z@ plus 5em
364     \hrule\vskip5pt
365     \bfseries\boldmath   % set line in boldface
366     \leavevmode          % TeX command to enter horizontal mode.
367     #1\par
368     \vskip5pt
369     \hrule
370     \vskip1pt
371     \nobreak             % Never break after part entry
372   \endgroup}
373
374\def\@dotsep{2}
375
376\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else
377{chapter.\thechapter}\fi}
378
379\def\addnumcontentsmark#1#2#3{%
380\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline
381                     {\thechapter}#3}{\thepage}\hyperhrefextend}}
382\def\addcontentsmark#1#2#3{%
383\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}
384\def\addcontentsmarkwop#1#2#3{%
385\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}
386
387\def\@adcmk[#1]{\ifcase #1 \or
388\def\@gtempa{\addnumcontentsmark}%
389  \or    \def\@gtempa{\addcontentsmark}%
390  \or    \def\@gtempa{\addcontentsmarkwop}%
391  \fi\@gtempa{toc}{chapter}}
392\def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}}
393
394\def\l@chapter#1#2{\addpenalty{-\@highpenalty}
395 \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup
396 \parindent \z@ \rightskip \@pnumwidth
397 \parfillskip -\@pnumwidth
398 \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
399 {\large\bfseries\boldmath#1}\ifx0#2\hfil\null
400 \else
401      \nobreak
402      \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
403      \@dotsep mu$}\hfill
404      \nobreak\hbox to\@pnumwidth{\hss #2}%
405 \fi\par
406 \penalty\@highpenalty \endgroup}
407
408\def\l@title#1#2{\addpenalty{-\@highpenalty}
409 \addvspace{8pt plus 1pt}
410 \@tempdima \z@
411 \begingroup
412 \parindent \z@ \rightskip \@tocrmarg
413 \parfillskip -\@tocrmarg
414 \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
415 #1\nobreak
416 \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
417 \@dotsep mu$}\hfill
418 \nobreak\hbox to\@pnumwidth{\hss #2}\par
419 \penalty\@highpenalty \endgroup}
420
421\setcounter{tocdepth}{0}
422\newdimen\tocchpnum
423\newdimen\tocsecnum
424\newdimen\tocsectotal
425\newdimen\tocsubsecnum
426\newdimen\tocsubsectotal
427\newdimen\tocsubsubsecnum
428\newdimen\tocsubsubsectotal
429\newdimen\tocparanum
430\newdimen\tocparatotal
431\newdimen\tocsubparanum
432\tocchpnum=\z@            % no chapter numbers
433\tocsecnum=15\p@          % section 88. plus 2.222pt
434\tocsubsecnum=23\p@       % subsection 88.8 plus 2.222pt
435\tocsubsubsecnum=27\p@    % subsubsection 88.8.8 plus 1.444pt
436\tocparanum=35\p@         % paragraph 88.8.8.8 plus 1.666pt
437\tocsubparanum=43\p@      % subparagraph 88.8.8.8.8 plus 1.888pt
438\def\calctocindent{%
439\tocsectotal=\tocchpnum
440\advance\tocsectotal by\tocsecnum
441\tocsubsectotal=\tocsectotal
442\advance\tocsubsectotal by\tocsubsecnum
443\tocsubsubsectotal=\tocsubsectotal
444\advance\tocsubsubsectotal by\tocsubsubsecnum
445\tocparatotal=\tocsubsubsectotal
446\advance\tocparatotal by\tocparanum}
447\calctocindent
448
449\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}}
450\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}}
451\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}}
452\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}}
453\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}}
454
455\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
456 \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}}
457 \@starttoc{lof}\if@restonecol\twocolumn\fi}
458\def\l@figure{\@dottedtocline{1}{0em}{1.5em}}
459
460\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
461 \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}}
462 \@starttoc{lot}\if@restonecol\twocolumn\fi}
463\let\l@table\l@figure
464
465\renewcommand\listoffigures{%
466    \section*{\listfigurename
467      \@mkboth{\listfigurename}{\listfigurename}}%
468    \@starttoc{lof}%
469    }
470
471\renewcommand\listoftables{%
472    \section*{\listtablename
473      \@mkboth{\listtablename}{\listtablename}}%
474    \@starttoc{lot}%
475    }
476
477\ifx\oribibl\undefined
478\ifx\citeauthoryear\undefined
479\renewenvironment{thebibliography}[1]
480     {\section*{\refname}
481      \def\@biblabel##1{##1.}
482      \small
483      \list{\@biblabel{\@arabic\c@enumiv}}%
484           {\settowidth\labelwidth{\@biblabel{#1}}%
485            \leftmargin\labelwidth
486            \advance\leftmargin\labelsep
487            \if@openbib
488              \advance\leftmargin\bibindent
489              \itemindent -\bibindent
490              \listparindent \itemindent
491              \parsep \z@
492            \fi
493            \usecounter{enumiv}%
494            \let\p@enumiv\@empty
495            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
496      \if@openbib
497        \renewcommand\newblock{\par}%
498      \else
499        \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
500      \fi
501      \sloppy\clubpenalty4000\widowpenalty4000%
502      \sfcode`\.=\@m}
503     {\def\@noitemerr
504       {\@latex@warning{Empty `thebibliography' environment}}%
505      \endlist}
506\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw
507     {\let\protect\noexpand\immediate
508     \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
509\newcount\@tempcntc
510\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
511  \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do
512    {\@ifundefined
513       {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries
514        ?}\@warning
515       {Citation `\@citeb' on page \thepage \space undefined}}%
516    {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%
517     \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne
518       \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%
519     \else
520      \advance\@tempcntb\@ne
521      \ifnum\@tempcntb=\@tempcntc
522      \else\advance\@tempcntb\m@ne\@citeo
523      \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}
524\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else
525               \@citea\def\@citea{,\,\hskip\z@skip}%
526               \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else
527               {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else
528                \def\@citea{--}\fi
529      \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}
530\else
531\renewenvironment{thebibliography}[1]
532     {\section*{\refname}
533      \small
534      \list{}%
535           {\settowidth\labelwidth{}%
536            \leftmargin\parindent
537            \itemindent=-\parindent
538            \labelsep=\z@
539            \if@openbib
540              \advance\leftmargin\bibindent
541              \itemindent -\bibindent
542              \listparindent \itemindent
543              \parsep \z@
544            \fi
545            \usecounter{enumiv}%
546            \let\p@enumiv\@empty
547            \renewcommand\theenumiv{}}%
548      \if@openbib
549        \renewcommand\newblock{\par}%
550      \else
551        \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
552      \fi
553      \sloppy\clubpenalty4000\widowpenalty4000%
554      \sfcode`\.=\@m}
555     {\def\@noitemerr
556       {\@latex@warning{Empty `thebibliography' environment}}%
557      \endlist}
558      \def\@cite#1{#1}%
559      \def\@lbibitem[#1]#2{\item[]\if@filesw
560        {\def\protect##1{\string ##1\space}\immediate
561      \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
562   \fi
563\else
564\@cons\@openbib@code{\noexpand\small}
565\fi
566
567\def\idxquad{\hskip 10\p@}% space that divides entry from number
568
569\def\@idxitem{\par\hangindent 10\p@}
570
571\def\subitem{\par\setbox0=\hbox{--\enspace}% second order
572                \noindent\hangindent\wd0\box0}% index entry
573
574\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third
575                \noindent\hangindent\wd0\box0}% order index entry
576
577\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}
578
579\renewenvironment{theindex}
580               {\@mkboth{\indexname}{\indexname}%
581                \thispagestyle{empty}\parindent\z@
582                \parskip\z@ \@plus .3\p@\relax
583                \let\item\par
584                \def\,{\relax\ifmmode\mskip\thinmuskip
585                             \else\hskip0.2em\ignorespaces\fi}%
586                \normalfont\small
587                \begin{multicols}{2}[\@makeschapterhead{\indexname}]%
588                }
589                {\end{multicols}}
590
591\renewcommand\footnoterule{%
592  \kern-3\p@
593  \hrule\@width 2truecm
594  \kern2.6\p@}
595  \newdimen\fnindent
596  \fnindent1em
597\long\def\@makefntext#1{%
598    \parindent \fnindent%
599    \leftskip \fnindent%
600    \noindent
601    \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1}
602
603\long\def\@makecaption#1#2{%
604  \vskip\abovecaptionskip
605  \sbox\@tempboxa{{\bfseries #1.} #2}%
606  \ifdim \wd\@tempboxa >\hsize
607    {\bfseries #1.} #2\par
608  \else
609    \global \@minipagefalse
610    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
611  \fi
612  \vskip\belowcaptionskip}
613
614\def\fps@figure{htbp}
615\def\fnum@figure{\figurename\thefigure}
616\def \@floatboxreset {%
617        \reset@font
618        \small
619        \@setnobreak
620        \@setminipage
621}
622\def\fps@table{htbp}
623\def\fnum@table{\tablename\thetable}
624\renewenvironment{table}
625               {\setlength\abovecaptionskip{0\p@}%
626                \setlength\belowcaptionskip{10\p@}%
627                \@float{table}}
628               {\end@float}
629\renewenvironment{table*}
630               {\setlength\abovecaptionskip{0\p@}%
631                \setlength\belowcaptionskip{10\p@}%
632                \@dblfloat{table}}
633               {\end@dblfloat}
634
635\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
636  ext@#1\endcsname}{#1}{\protect\numberline{\csname
637  the#1\endcsname}{\ignorespaces #2}}\begingroup
638    \@parboxrestore
639    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
640  \endgroup}
641
642% LaTeX does not provide a command to enter the authors institute
643% addresses. The \institute command is defined here.
644
645\newcounter{@inst}
646\newcounter{@auth}
647\newcounter{auco}
648\def\andname{and}
649\def\lastandname{\unskip, and}
650\newdimen\instindent
651\newbox\authrun
652\newtoks\authorrunning
653\newtoks\tocauthor
654\newbox\titrun
655\newtoks\titlerunning
656\newtoks\toctitle
657
658\def\clearheadinfo{\gdef\@author{No Author Given}%
659                   \gdef\@title{No Title Given}%
660                   \gdef\@subtitle{}%
661                   \gdef\@institute{No Institute Given}%
662                   \gdef\@thanks{}%
663                   \global\titlerunning={}\global\authorrunning={}%
664                   \global\toctitle={}\global\tocauthor={}}
665
666\def\institute#1{\gdef\@institute{#1}}
667
668\def\institutename{\par
669 \begingroup
670 \parskip=\z@
671 \parindent=\z@
672 \setcounter{@inst}{1}%
673 \def\and{\par\stepcounter{@inst}%
674 \noindent$^{\the@inst}$\enspace\ignorespaces}%
675 \setbox0=\vbox{\def\thanks##1{}\@institute}%
676 \ifnum\c@@inst=1\relax
677 \else
678   \setcounter{footnote}{\c@@inst}%
679   \setcounter{@inst}{1}%
680   \noindent$^{\the@inst}$\enspace
681 \fi
682 \ignorespaces
683 \@institute\par
684 \endgroup}
685
686\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or
687   {\star\star\star}\or \dagger\or \ddagger\or
688   \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
689   \or \ddagger\ddagger \else\@ctrerr\fi}}
690
691\def\inst#1{\unskip$^{#1}$}
692\def\fnmsep{\unskip$^,$}
693\def\email#1{{\tt#1}}
694\def\url#1{#1}
695\def\homedir{\~{ }}
696
697\def\subtitle#1{\gdef\@subtitle{#1}}
698\clearheadinfo
699
700\renewcommand\maketitle{\newpage
701  \refstepcounter{chapter}%
702  \stepcounter{section}%
703  \setcounter{section}{0}%
704  \setcounter{subsection}{0}%
705  \setcounter{figure}{0}
706  \setcounter{table}{0}
707  \setcounter{equation}{0}
708  \setcounter{footnote}{0}%
709  \begingroup
710    \parindent=\z@
711    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
712    \if@twocolumn
713      \ifnum \col@number=\@ne
714        \@maketitle
715      \else
716        \twocolumn[\@maketitle]%
717      \fi
718    \else
719      \newpage
720      \global\@topnum\z@   % Prevents figures from going at top of page.
721      \@maketitle
722    \fi
723    \thispagestyle{empty}\@thanks
724%
725    \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}%
726    \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}%
727    \instindent=\hsize
728    \advance\instindent by-\headlineindent
729    \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else
730       \addcontentsline{toc}{title}{\the\toctitle}\fi
731    \if@runhead
732       \if!\the\titlerunning!\else
733         \edef\@title{\the\titlerunning}%
734       \fi
735       \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}%
736       \ifdim\wd\titrun>\instindent
737          \typeout{Title too long for running head. Please supply}%
738          \typeout{a shorter form with \string\titlerunning\space prior to
739                   \string\maketitle}%
740          \global\setbox\titrun=\hbox{\small\rm
741          Title Suppressed Due to Excessive Length}%
742       \fi
743       \xdef\@title{\copy\titrun}%
744    \fi
745%
746    \if!\the\tocauthor!\relax
747      {\def\and{\noexpand\protect\noexpand\and}%
748      \protected@xdef\toc@uthor{\@author}}%
749    \else
750      \def\\{\noexpand\protect\noexpand\newline}%
751      \protected@xdef\scratch{\the\tocauthor}%
752      \protected@xdef\toc@uthor{\scratch}%
753    \fi
754    \addtocontents{toc}{{\protect\raggedright\protect\leftskip15\p@
755    \protect\rightskip\@tocrmarg
756    \protect\itshape\toc@uthor\protect\endgraf}}%
757    \if@runhead
758       \if!\the\authorrunning!
759         \value{@inst}=\value{@auth}%
760         \setcounter{@auth}{1}%
761       \else
762         \edef\@author{\the\authorrunning}%
763       \fi
764       \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%
765       \ifdim\wd\authrun>\instindent
766          \typeout{Names of authors too long for running head. Please supply}%
767          \typeout{a shorter form with \string\authorrunning\space prior to
768                   \string\maketitle}%
769          \global\setbox\authrun=\hbox{\small\rm
770          Authors Suppressed Due to Excessive Length}%
771       \fi
772       \xdef\@author{\copy\authrun}%
773       \markboth{\@author}{\@title}%
774     \fi
775  \endgroup
776  \setcounter{footnote}{0}%
777  \clearheadinfo}
778%
779\def\@maketitle{\newpage
780 \markboth{}{}%
781 \def\lastand{\ifnum\value{@inst}=2\relax
782                 \unskip{} \andname\
783              \else
784                 \unskip \lastandname\
785              \fi}%
786 \def\and{\stepcounter{@auth}\relax
787          \ifnum\value{@auth}=\value{@inst}%
788             \lastand
789          \else
790             \unskip,
791          \fi}%
792 \begin{center}%
793 {\Large \bfseries\boldmath
794  \pretolerance=10000
795  \@title \par}\vskip .8cm
796\if!\@subtitle!\else {\large \bfseries\boldmath
797  \vskip -.65cm
798  \pretolerance=10000
799  \@subtitle \par}\vskip .8cm\fi
800 \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}%
801 \def\thanks##1{}\@author}%
802 \global\value{@inst}=\value{@auth}%
803 \global\value{auco}=\value{@auth}%
804 \setcounter{@auth}{1}%
805{\lineskip .5em
806\noindent\ignorespaces
807\@author\vskip.35cm}
808 {\small\institutename}
809 \end{center}%
810 }
811
812% definition of the "\spnewtheorem" command.
813%
814% Usage:
815%
816%     \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font}
817% or  \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font}
818% or  \spnewtheorem*{env_nam}{caption}{cap_font}{body_font}
819%
820% New is "cap_font" and "body_font". It stands for
821% fontdefinition of the caption and the text itself.
822%
823% "\spnewtheorem*" gives a theorem without number.
824%
825% A defined spnewthoerem environment is used as described
826% by Lamport.
827%
828%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
829
830\def\@thmcountersep{}
831\def\@thmcounterend{.}
832
833\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}}
834
835% definition of \spnewtheorem with number
836
837\def\@spnthm#1#2{%
838  \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}}
839\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}}
840
841\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname
842   {\@definecounter{#1}\@addtoreset{#1}{#3}%
843   \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
844     \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}%
845   \expandafter\xdef\csname #1name\endcsname{#2}%
846   \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
847                              \global\@namedef{end#1}{\@endtheorem}}}
848
849\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
850   {\@definecounter{#1}%
851   \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
852   \expandafter\xdef\csname #1name\endcsname{#2}%
853   \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}%
854                               \global\@namedef{end#1}{\@endtheorem}}}
855
856\def\@spothm#1[#2]#3#4#5{%
857  \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}%
858  {\expandafter\@ifdefinable\csname #1\endcsname
859  {\global\@namedef{the#1}{\@nameuse{the#2}}%
860  \expandafter\xdef\csname #1name\endcsname{#3}%
861  \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}%
862  \global\@namedef{end#1}{\@endtheorem}}}}
863
864\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@
865\refstepcounter{#1}%
866\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}
867
868\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%
869                    \ignorespaces}
870
871\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname
872       the#1\endcsname}{#5}{#3}{#4}\ignorespaces}
873
874\def\@spbegintheorem#1#2#3#4{\trivlist
875                 \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4}
876
877\def\@spopargbegintheorem#1#2#3#4#5{\trivlist
878      \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5}
879
880% definition of \spnewtheorem* without number
881
882\def\@sthm#1#2{\@Ynthm{#1}{#2}}
883
884\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
885   {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}%
886    \expandafter\xdef\csname #1name\endcsname{#2}%
887    \global\@namedef{end#1}{\@endtheorem}}}
888
889\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@
890\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}}
891
892\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces}
893
894\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1}
895       {#4}{#2}{#3}\ignorespaces}
896
897\def\@Begintheorem#1#2#3{#3\trivlist
898                           \item[\hskip\labelsep{#2#1\@thmcounterend}]}
899
900\def\@Opargbegintheorem#1#2#3#4{#4\trivlist
901      \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }}
902
903\if@envcntsect
904   \def\@thmcountersep{.}
905   \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape}
906\else
907   \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape}
908   \if@envcntreset
909      \@addtoreset{theorem}{section}
910   \else
911      \@addtoreset{theorem}{chapter}
912   \fi
913\fi
914
915%definition of divers theorem environments
916\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily}
917\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily}
918\if@envcntsame % alle Umgebungen wie Theorem.
919   \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}}
920\else % alle Umgebungen mit eigenem Zaehler
921   \if@envcntsect % mit section numeriert
922      \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}}
923   \else % nicht mit section numeriert
924      \if@envcntreset
925         \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
926                                   \@addtoreset{#1}{section}}
927      \else
928         \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
929                                   \@addtoreset{#1}{chapter}}%
930      \fi
931   \fi
932\fi
933\spn@wtheorem{case}{Case}{\itshape}{\rmfamily}
934\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily}
935\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape}
936\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape}
937\spn@wtheorem{example}{Example}{\itshape}{\rmfamily}
938\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily}
939\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape}
940\spn@wtheorem{note}{Note}{\itshape}{\rmfamily}
941\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily}
942\spn@wtheorem{property}{Property}{\itshape}{\rmfamily}
943\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape}
944\spn@wtheorem{question}{Question}{\itshape}{\rmfamily}
945\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily}
946\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily}
947
948\def\@takefromreset#1#2{%
949    \def\@tempa{#1}%
950    \let\@tempd\@elt
951    \def\@elt##1{%
952        \def\@tempb{##1}%
953        \ifx\@tempa\@tempb\else
954            \@addtoreset{##1}{#2}%
955        \fi}%
956    \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname
957    \expandafter\def\csname cl@#2\endcsname{}%
958    \@tempc
959    \let\@elt\@tempd}
960
961\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist
962      \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5}
963                  \def\@Opargbegintheorem##1##2##3##4{##4\trivlist
964      \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}
965      }
966
967\renewenvironment{abstract}{%
968      \list{}{\advance\topsep by0.35cm\relax\small
969      \leftmargin=1cm
970      \labelwidth=\z@
971      \listparindent=\z@
972      \itemindent\listparindent
973      \rightmargin\leftmargin}\item[\hskip\labelsep
974                                    \bfseries\abstractname]}
975    {\endlist}
976\renewcommand{\abstractname}{Abstract.}
977\renewcommand{\contentsname}{Table of Contents}
978\renewcommand{\figurename}{Fig.\thinspace}
979\renewcommand{\tablename}{Table~}
980
981\newdimen\headlineindent             % dimension for space between
982\headlineindent=1.166cm              % number and text of headings.
983
984\def\ps@headings{\let\@mkboth\@gobbletwo
985   \let\@oddfoot\@empty\let\@evenfoot\@empty
986   \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
987                  \leftmark\hfil}
988   \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}%
989                 \llap{\thepage}}
990   \def\chaptermark##1{}%
991   \def\sectionmark##1{}%
992   \def\subsectionmark##1{}}
993
994\def\ps@titlepage{\let\@mkboth\@gobbletwo
995   \let\@oddfoot\@empty\let\@evenfoot\@empty
996   \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
997                  \hfil}
998   \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}%
999                 \llap{\thepage}}
1000   \def\chaptermark##1{}%
1001   \def\sectionmark##1{}%
1002   \def\subsectionmark##1{}}
1003
1004\if@runhead\ps@headings\else
1005\ps@empty\fi
1006
1007\setlength\arraycolsep{1.4\p@}
1008\setlength\tabcolsep{1.4\p@}
1009
1010\endinput
1011