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