1 % LLNCS DOCUMENT CLASS -- version 2.8
4 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
5 \ProvidesClass{llncs}[2000/05/16 v2.8
6 ^^JLaTeX document class for Lecture Notes in Computer Science]
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@custvec\iftrue
13 \DeclareOption{orivec}{\let\if@custvec\iffalse}
14 \let\if@envcntsame\iffalse
15 \DeclareOption{envcountsame}{\let\if@envcntsame\iftrue}
16 \let\if@envcntsect\iffalse
17 \DeclareOption{envcountsect}{\let\if@envcntsect\iftrue}
18 \let\if@runhead\iffalse
19 \DeclareOption{runningheads}{\let\if@runhead\iftrue}
21 \let\if@openbib\iffalse
22 \DeclareOption{openbib}{\let\if@openbib\iftrue}
24 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
28 \LoadClass[twoside]{article}
29 \RequirePackage{multicol} % needed for the list of participants, index
31 \setlength{\textwidth}{12.2cm}
32 \setlength{\textheight}{19.3cm}
34 % Ragged bottom for the actual page
35 \def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
36 \global\let\@textbottom\relax}}
39 \@setfontsize\small\@ixpt{11}%
40 \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
41 \abovedisplayshortskip \z@ \@plus2\p@
42 \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
43 \def\@listi{\leftmargin\leftmargini
44 \parsep 0\p@ \@plus1\p@ \@minus\p@
45 \topsep 8\p@ \@plus2\p@ \@minus4\p@
47 \belowdisplayskip \abovedisplayskip
54 \setlength\oddsidemargin {63\p@}
55 \setlength\evensidemargin {63\p@}
56 \setlength\marginparwidth {90\p@}
58 \setlength\headsep {16\p@}
60 \setlength\footnotesep{7.7\p@}
61 \setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@}
62 \setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@}
64 \setcounter{secnumdepth}{2}
67 \renewcommand\thechapter {\@arabic\c@chapter}
69 \newif\if@mainmatter \@mainmattertrue
70 \newcommand\frontmatter{\cleardoublepage
71 \@mainmatterfalse\pagenumbering{Roman}}
72 \newcommand\mainmatter{\cleardoublepage
73 \@mainmattertrue\pagenumbering{arabic}}
74 \newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi
77 \renewcommand\part{\cleardoublepage
78 \thispagestyle{empty}%
89 \ifnum \c@secnumdepth >-2\relax
90 \refstepcounter{part}%
91 \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
93 \addcontentsline{toc}{part}{#1}%
99 \ifnum \c@secnumdepth >-2\relax
100 \huge\bfseries \partname~\thepart
104 \Huge \bfseries #2\par}%
108 \interlinepenalty \@M
110 \Huge \bfseries #1\par}%
112 \def\@endpart{\vfil\newpage
115 \thispagestyle{empty}%
122 \newcommand\chapter{\clearpage
123 \thispagestyle{empty}%
126 \secdef\@chapter\@schapter}
127 \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
129 \refstepcounter{chapter}%
130 \typeout{\@chapapp\space\thechapter.}%
131 \addcontentsline{toc}{chapter}%
132 {\protect\numberline{\thechapter}#1}%
134 \addcontentsline{toc}{chapter}{#1}%
137 \addcontentsline{toc}{chapter}{#1}%
140 \addtocontents{lof}{\protect\addvspace{10\p@}}%
141 \addtocontents{lot}{\protect\addvspace{10\p@}}%
143 \@topnewpage[\@makechapterhead{#2}]%
145 \@makechapterhead{#2}%
148 \def\@makechapterhead#1{%
151 \ifnum \c@secnumdepth >\m@ne
153 \large\bfseries \@chapapp{} \thechapter
159 \Large \bfseries #1\par\nobreak
162 \def\@schapter#1{\if@twocolumn
163 \@topnewpage[\@makeschapterhead{#1}]%
165 \@makeschapterhead{#1}%
168 \def\@makeschapterhead#1{%
173 \Large \bfseries #1\par\nobreak
177 \renewcommand\section{\@startsection{section}{1}{\z@}%
178 {-18\p@ \@plus -4\p@ \@minus -4\p@}%
179 {12\p@ \@plus 4\p@ \@minus 4\p@}%
180 {\normalfont\large\bfseries\boldmath
181 \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
182 \renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
183 {-18\p@ \@plus -4\p@ \@minus -4\p@}%
184 {8\p@ \@plus 4\p@ \@minus 4\p@}%
185 {\normalfont\normalsize\bfseries\boldmath
186 \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
187 \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
188 {-18\p@ \@plus -4\p@ \@minus -4\p@}%
189 {-0.5em \@plus -0.22em \@minus -0.1em}%
190 {\normalfont\normalsize\bfseries\boldmath}}
191 \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
192 {-12\p@ \@plus -4\p@ \@minus -4\p@}%
193 {-0.5em \@plus -0.22em \@minus -0.1em}%
194 {\normalfont\normalsize\itshape}}
195 \renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use
196 \string\subparagraph\space with this class}\vskip0.5cm
197 You should not use \verb|\subparagraph| with this class.\vskip0.5cm}
199 \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00}
200 \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01}
201 \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02}
202 \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03}
203 \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04}
204 \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05}
205 \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06}
206 \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
207 \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08}
208 \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09}
209 \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
211 \let\footnotesize\small
214 \def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}
215 {\mbox{\boldmath$\textstyle#1$}}
216 {\mbox{\boldmath$\scriptstyle#1$}}
217 {\mbox{\boldmath$\scriptscriptstyle#1$}}}
220 \def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}
221 \def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil
222 \penalty50\hskip1em\null\nobreak\hfil\squareforqed
223 \parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}
225 \def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip
227 $\displaystyle##$\hfil\cr\gets\cr\to\cr}}}
228 {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets
230 {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets
232 {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
234 \def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
235 $\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}
236 {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr
237 \noalign{\vskip1.2pt}=\cr}}}
238 {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr
239 \noalign{\vskip1pt}=\cr}}}
240 {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
242 \noalign{\vskip0.9pt}=\cr}}}}}
243 \def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
244 $\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}
245 {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr
246 \noalign{\vskip1.2pt}=\cr}}}
247 {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr
248 \noalign{\vskip1pt}=\cr}}}
249 {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
251 \noalign{\vskip0.9pt}=\cr}}}}}
252 \def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip
254 $\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}}
255 {\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
256 >\cr\noalign{\vskip-1pt}<\cr}}}
257 {\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
258 >\cr\noalign{\vskip-0.8pt}<\cr}}}
259 {\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
260 >\cr\noalign{\vskip-0.3pt}<\cr}}}}}
261 \def\bbbr{{\rm I\!R}} %reelle Zahlen
262 \def\bbbm{{\rm I\!M}}
263 \def\bbbn{{\rm I\!N}} %natuerliche Zahlen
264 \def\bbbf{{\rm I\!F}}
265 \def\bbbh{{\rm I\!H}}
266 \def\bbbk{{\rm I\!K}}
267 \def\bbbp{{\rm I\!P}}
268 \def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
269 {\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
270 \def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox
271 to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
272 {\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
273 to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
274 {\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
275 to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
276 {\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
277 to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
278 \def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
280 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
281 {\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
282 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
283 {\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
284 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
285 {\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
286 0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
287 \def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
288 T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
289 {\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
290 to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
291 {\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
292 to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
293 {\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
294 to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
295 \def\bbbs{{\mathchoice
296 {\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox
297 to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
298 to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
299 {\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox
300 to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
301 to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
302 {\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox
303 to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
304 to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
305 {\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox
306 to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
307 to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
308 \def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
309 {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
310 {\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}}
311 {\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}}
315 \setlength\leftmargini {17\p@}
316 \setlength\leftmargin {\leftmargini}
317 \setlength\leftmarginii {\leftmargini}
318 \setlength\leftmarginiii {\leftmargini}
319 \setlength\leftmarginiv {\leftmargini}
320 \setlength \labelsep {.5em}
321 \setlength \labelwidth{\leftmargini}
322 \addtolength\labelwidth{-\labelsep}
324 \def\@listI{\leftmargin\leftmargini
325 \parsep 0\p@ \@plus1\p@ \@minus\p@
326 \topsep 8\p@ \@plus2\p@ \@minus4\p@
330 \def\@listii {\leftmargin\leftmarginii
331 \labelwidth\leftmarginii
332 \advance\labelwidth-\labelsep
333 \topsep 0\p@ \@plus2\p@ \@minus\p@}
334 \def\@listiii{\leftmargin\leftmarginiii
335 \labelwidth\leftmarginiii
336 \advance\labelwidth-\labelsep
337 \topsep 0\p@ \@plus\p@\@minus\p@
339 \partopsep \p@ \@plus\z@ \@minus\p@}
341 \renewcommand\labelitemi{\normalfont\bfseries --}
342 \renewcommand\labelitemii{$\m@th\bullet$}
344 \setlength\arraycolsep{1.4\p@}
345 \setlength\tabcolsep{1.4\p@}
347 \def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}%
349 \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}}
350 \def\lastand{\ifnum\value{auco}=2\relax
353 \unskip \lastandname\
355 \def\and{\stepcounter{@auth}\relax
356 \ifnum\value{@auth}=\value{auco}%
361 \@starttoc{toc}\if@restonecol\twocolumn\fi}
363 \def\l@part#1#2{\addpenalty{\@secpenalty}%
364 \addvspace{2em plus\p@}% % space above part line
367 \rightskip \z@ plus 5em
369 \large % same size as for a contribution heading
370 \bfseries\boldmath % set line in boldface
371 \leavevmode % TeX command to enter horizontal mode.
376 \nobreak % Never break after part entry
381 \def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else
382 {chapter.\thechapter}\fi}
384 \def\addnumcontentsmark#1#2#3{%
385 \addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline
386 {\thechapter}#3}{\thepage}\hyperhrefextend}}
387 \def\addcontentsmark#1#2#3{%
388 \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}
389 \def\addcontentsmarkwop#1#2#3{%
390 \addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}
392 \def\@adcmk[#1]{\ifcase #1 \or
393 \def\@gtempa{\addnumcontentsmark}%
394 \or \def\@gtempa{\addcontentsmark}%
395 \or \def\@gtempa{\addcontentsmarkwop}%
396 \fi\@gtempa{toc}{chapter}}
397 \def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}}
399 \def\l@chapter#1#2{\addpenalty{-\@highpenalty}
400 \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup
401 \parindent \z@ \rightskip \@pnumwidth
402 \parfillskip -\@pnumwidth
403 \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
404 {\large\bfseries\boldmath#1}\ifx0#2\hfil\null
407 \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
409 \nobreak\hbox to\@pnumwidth{\hss #2}%
411 \penalty\@highpenalty \endgroup}
413 \def\l@title#1#2{\addpenalty{-\@highpenalty}
414 \addvspace{8pt plus 1pt}
417 \parindent \z@ \rightskip \@tocrmarg
418 \parfillskip -\@tocrmarg
419 \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
421 \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
423 \nobreak\hbox to\@pnumwidth{\hss #2}\par
424 \penalty\@highpenalty \endgroup}
426 \setcounter{tocdepth}{0}
429 \newdimen\tocsectotal
430 \newdimen\tocsubsecnum
431 \newdimen\tocsubsectotal
432 \newdimen\tocsubsubsecnum
433 \newdimen\tocsubsubsectotal
435 \newdimen\tocparatotal
436 \newdimen\tocsubparanum
437 \tocchpnum=\z@ % no chapter numbers
438 \tocsecnum=15\p@ % section 88. plus 2.222pt
439 \tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt
440 \tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt
441 \tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt
442 \tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt
444 \tocsectotal=\tocchpnum
445 \advance\tocsectotal by\tocsecnum
446 \tocsubsectotal=\tocsectotal
447 \advance\tocsubsectotal by\tocsubsecnum
448 \tocsubsubsectotal=\tocsubsectotal
449 \advance\tocsubsubsectotal by\tocsubsubsecnum
450 \tocparatotal=\tocsubsubsectotal
451 \advance\tocparatotal by\tocparanum}
454 \def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}}
455 \def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}}
456 \def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}}
457 \def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}}
458 \def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}}
460 \def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
461 \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}}
462 \@starttoc{lof}\if@restonecol\twocolumn\fi}
463 \def\l@figure{\@dottedtocline{1}{0em}{1.5em}}
465 \def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
466 \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}}
467 \@starttoc{lot}\if@restonecol\twocolumn\fi}
468 \let\l@table\l@figure
470 \renewcommand\listoffigures{%
471 \section*{\listfigurename
472 \@mkboth{\listfigurename}{\listfigurename}}%
476 \renewcommand\listoftables{%
477 \section*{\listtablename
478 \@mkboth{\listtablename}{\listtablename}}%
482 \ifx\oribibl\undefined
483 \ifx\citeauthoryear\undefined
484 \renewenvironment{thebibliography}[1]
486 \def\@biblabel##1{##1.}
488 \list{\@biblabel{\@arabic\c@enumiv}}%
489 {\settowidth\labelwidth{\@biblabel{#1}}%
490 \leftmargin\labelwidth
491 \advance\leftmargin\labelsep
493 \advance\leftmargin\bibindent
494 \itemindent -\bibindent
495 \listparindent \itemindent
500 \renewcommand\theenumiv{\@arabic\c@enumiv}}%
502 \renewcommand\newblock{\par}%
504 \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
506 \sloppy\clubpenalty4000\widowpenalty4000%
509 {\@latex@warning{Empty `thebibliography' environment}}%
511 \def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw
512 {\let\protect\noexpand\immediate
513 \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
515 \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
516 \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do
518 {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries
520 {Citation `\@citeb' on page \thepage \space undefined}}%
521 {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%
522 \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne
523 \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%
525 \advance\@tempcntb\@ne
526 \ifnum\@tempcntb=\@tempcntc
527 \else\advance\@tempcntb\m@ne\@citeo
528 \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}
529 \def\@citeo{\ifnum\@tempcnta>\@tempcntb\else
530 \@citea\def\@citea{,\,\hskip\z@skip}%
531 \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else
532 {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else
534 \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}
536 \renewenvironment{thebibliography}[1]
540 {\settowidth\labelwidth{}%
541 \leftmargin\parindent
542 \itemindent=-\parindent
545 \advance\leftmargin\bibindent
546 \itemindent -\bibindent
547 \listparindent \itemindent
552 \renewcommand\theenumiv{}}%
554 \renewcommand\newblock{\par}%
556 \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
558 \sloppy\clubpenalty4000\widowpenalty4000%
561 {\@latex@warning{Empty `thebibliography' environment}}%
564 \def\@lbibitem[#1]#2{\item[]\if@filesw
565 {\def\protect##1{\string ##1\space}\immediate
566 \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
569 \@cons\@openbib@code{\noexpand\small}
572 \def\idxquad{\hskip 10\p@}% space that divides entry from number
574 \def\@idxitem{\par\hangindent 10\p@}
576 \def\subitem{\par\setbox0=\hbox{--\enspace}% second order
577 \noindent\hangindent\wd0\box0}% index entry
579 \def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third
580 \noindent\hangindent\wd0\box0}% order index entry
582 \def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}
584 \renewenvironment{theindex}
585 {\@mkboth{\indexname}{\indexname}%
586 \thispagestyle{empty}\parindent\z@
587 \parskip\z@ \@plus .3\p@\relax
589 \def\,{\relax\ifmmode\mskip\thinmuskip
590 \else\hskip0.2em\ignorespaces\fi}%
592 \begin{multicols}{2}[\@makeschapterhead{\indexname}]%
596 \renewcommand\footnoterule{%
598 \hrule\@width 2truecm
602 \long\def\@makefntext#1{%
603 \parindent \fnindent%
606 \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1}
608 \long\def\@makecaption#1#2{%
609 \vskip\abovecaptionskip
610 \sbox\@tempboxa{{\bfseries #1.} #2}%
611 \ifdim \wd\@tempboxa >\hsize
612 {\bfseries #1.} #2\par
614 \global \@minipagefalse
615 \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
617 \vskip\belowcaptionskip}
619 \def\fps@figure{htbp}
620 \def\fnum@figure{\figurename\thinspace\thefigure}
621 \def \@floatboxreset {%
628 \def\fnum@table{\tablename~\thetable}
629 \renewenvironment{table}
630 {\setlength\abovecaptionskip{0\p@}%
631 \setlength\belowcaptionskip{10\p@}%
634 \renewenvironment{table*}
635 {\setlength\abovecaptionskip{0\p@}%
636 \setlength\belowcaptionskip{10\p@}%
640 \long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
641 ext@#1\endcsname}{#1}{\protect\numberline{\csname
642 the#1\endcsname}{\ignorespaces #2}}\begingroup
644 \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
647 % LaTeX does not provide a command to enter the authors institute
648 % addresses. The \institute command is defined here.
654 \def\lastandname{\unskip, and}
657 \newtoks\authorrunning
660 \newtoks\titlerunning
663 \def\clearheadinfo{\gdef\@author{No Author Given}%
664 \gdef\@title{No Title Given}%
666 \gdef\@institute{No Institute Given}%
668 \global\titlerunning={}\global\authorrunning={}%
669 \global\toctitle={}\global\tocauthor={}}
671 \def\institute#1{\gdef\@institute{#1}}
673 \def\institutename{\par
677 \setcounter{@inst}{1}%
678 \def\and{\par\stepcounter{@inst}%
679 \noindent$^{\the@inst}$\enspace\ignorespaces}%
680 \setbox0=\vbox{\def\thanks##1{}\@institute}%
681 \ifnum\c@@inst=1\relax
683 \setcounter{footnote}{\c@@inst}%
684 \setcounter{@inst}{1}%
685 \noindent$^{\the@inst}$\enspace
691 \def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or
692 {\star\star\star}\or \dagger\or \ddagger\or
693 \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
694 \or \ddagger\ddagger \else\@ctrerr\fi}}
696 \def\inst#1{\unskip$^{#1}$}
697 \def\fnmsep{\unskip$^,$}
698 \def\email#1{{\tt#1}}
699 \AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}}
702 \def\subtitle#1{\gdef\@subtitle{#1}}
705 \renewcommand\maketitle{\newpage
706 \refstepcounter{chapter}%
707 \stepcounter{section}%
708 \setcounter{section}{0}%
709 \setcounter{subsection}{0}%
710 \setcounter{figure}{0}
711 \setcounter{table}{0}
712 \setcounter{equation}{0}
713 \setcounter{footnote}{0}%
716 \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
718 \ifnum \col@number=\@ne
721 \twocolumn[\@maketitle]%
725 \global\@topnum\z@ % Prevents figures from going at top of page.
728 \thispagestyle{empty}\@thanks
730 \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}%
731 \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}%
733 \advance\instindent by-\headlineindent
734 \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else
735 \addcontentsline{toc}{title}{\the\toctitle}\fi
737 \if!\the\titlerunning!\else
738 \edef\@title{\the\titlerunning}%
740 \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}%
741 \ifdim\wd\titrun>\instindent
742 \typeout{Title too long for running head. Please supply}%
743 \typeout{a shorter form with \string\titlerunning\space prior to
745 \global\setbox\titrun=\hbox{\small\rm
746 Title Suppressed Due to Excessive Length}%
748 \xdef\@title{\copy\titrun}%
751 \if!\the\tocauthor!\relax
752 {\def\and{\noexpand\protect\noexpand\and}%
753 \protected@xdef\toc@uthor{\@author}}%
755 \def\\{\noexpand\protect\noexpand\newline}%
756 \protected@xdef\scratch{\the\tocauthor}%
757 \protected@xdef\toc@uthor{\scratch}%
759 \addtocontents{toc}{{\protect\raggedright\protect\leftskip15\p@
760 \protect\rightskip\@tocrmarg
761 \protect\itshape\toc@uthor\protect\endgraf}}%
763 \if!\the\authorrunning!
764 \value{@inst}=\value{@auth}%
765 \setcounter{@auth}{1}%
767 \edef\@author{\the\authorrunning}%
769 \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%
770 \ifdim\wd\authrun>\instindent
771 \typeout{Names of authors too long for running head. Please supply}%
772 \typeout{a shorter form with \string\authorrunning\space prior to
774 \global\setbox\authrun=\hbox{\small\rm
775 Authors Suppressed Due to Excessive Length}%
777 \xdef\@author{\copy\authrun}%
778 \markboth{\@author}{\@title}%
781 \setcounter{footnote}{0}%
784 \def\@maketitle{\newpage
786 \def\lastand{\ifnum\value{@inst}=2\relax
789 \unskip \lastandname\
791 \def\and{\stepcounter{@auth}\relax
792 \ifnum\value{@auth}=\value{@inst}%
798 {\Large \bfseries\boldmath
800 \@title \par}\vskip .8cm
801 \if!\@subtitle!\else {\large \bfseries\boldmath
804 \@subtitle \par}\vskip .8cm\fi
805 \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}%
806 \def\thanks##1{}\@author}%
807 \global\value{@inst}=\value{@auth}%
808 \global\value{auco}=\value{@auth}%
809 \setcounter{@auth}{1}%
811 \noindent\ignorespaces
813 {\small\institutename}
817 % definition of the "\spnewtheorem" command.
821 % \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font}
822 % or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font}
823 % or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font}
825 % New is "cap_font" and "body_font". It stands for
826 % fontdefinition of the caption and the text itself.
828 % "\spnewtheorem*" gives a theorem without number.
830 % A defined spnewthoerem environment is used as described
833 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
835 \def\@thmcountersep{}
836 \def\@thmcounterend{.}
838 \def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}}
840 % definition of \spnewtheorem with number
843 \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}}
844 \def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}}
846 \def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname
847 {\@definecounter{#1}\@addtoreset{#1}{#3}%
848 \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
849 \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}%
850 \expandafter\xdef\csname #1name\endcsname{#2}%
851 \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
852 \global\@namedef{end#1}{\@endtheorem}}}
854 \def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
855 {\@definecounter{#1}%
856 \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
857 \expandafter\xdef\csname #1name\endcsname{#2}%
858 \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}%
859 \global\@namedef{end#1}{\@endtheorem}}}
861 \def\@spothm#1[#2]#3#4#5{%
862 \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}%
863 {\expandafter\@ifdefinable\csname #1\endcsname
864 {\global\@namedef{the#1}{\@nameuse{the#2}}%
865 \expandafter\xdef\csname #1name\endcsname{#3}%
866 \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}%
867 \global\@namedef{end#1}{\@endtheorem}}}}
869 \def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@
871 \@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}
873 \def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%
876 \def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname
877 the#1\endcsname}{#5}{#3}{#4}\ignorespaces}
879 \def\@spbegintheorem#1#2#3#4{\trivlist
880 \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4}
882 \def\@spopargbegintheorem#1#2#3#4#5{\trivlist
883 \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5}
885 % definition of \spnewtheorem* without number
887 \def\@sthm#1#2{\@Ynthm{#1}{#2}}
889 \def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
890 {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}%
891 \expandafter\xdef\csname #1name\endcsname{#2}%
892 \global\@namedef{end#1}{\@endtheorem}}}
894 \def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@
895 \@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}}
897 \def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces}
899 \def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1}
900 {#4}{#2}{#3}\ignorespaces}
902 \def\@Begintheorem#1#2#3{#3\trivlist
903 \item[\hskip\labelsep{#2#1\@thmcounterend}]}
905 \def\@Opargbegintheorem#1#2#3#4{#4\trivlist
906 \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }}
909 \def\@thmcountersep{.}
910 \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape}
912 \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape}
914 \@addtoreset{theorem}{section}
916 \@addtoreset{theorem}{chapter}
920 %definition of divers theorem environments
921 \spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily}
922 \spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily}
923 \if@envcntsame % alle Umgebungen wie Theorem.
924 \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}}
925 \else % alle Umgebungen mit eigenem Zaehler
926 \if@envcntsect % mit section numeriert
927 \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}}
928 \else % nicht mit section numeriert
930 \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
931 \@addtoreset{#1}{section}}
933 \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
934 \@addtoreset{#1}{chapter}}%
938 \spn@wtheorem{case}{Case}{\itshape}{\rmfamily}
939 \spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily}
940 \spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape}
941 \spn@wtheorem{definition}{Definition}{\bfseries}{\itshape}
942 \spn@wtheorem{example}{Example}{\itshape}{\rmfamily}
943 \spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily}
944 \spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape}
945 \spn@wtheorem{note}{Note}{\itshape}{\rmfamily}
946 \spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily}
947 \spn@wtheorem{property}{Property}{\itshape}{\rmfamily}
948 \spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape}
949 \spn@wtheorem{question}{Question}{\itshape}{\rmfamily}
950 \spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily}
951 \spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily}
953 \def\@takefromreset#1#2{%
958 \ifx\@tempa\@tempb\else
959 \@addtoreset{##1}{#2}%
961 \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname
962 \expandafter\def\csname cl@#2\endcsname{}%
966 \def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist
967 \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5}
968 \def\@Opargbegintheorem##1##2##3##4{##4\trivlist
969 \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}
972 \renewenvironment{abstract}{%
973 \list{}{\advance\topsep by0.35cm\relax\small
977 \itemindent\listparindent
978 \rightmargin\leftmargin}\item[\hskip\labelsep
979 \bfseries\abstractname]}
981 \renewcommand{\abstractname}{Abstract.}
982 \renewcommand{\contentsname}{Table of Contents}
983 \renewcommand{\figurename}{Fig.}
984 \renewcommand{\tablename}{Table}
986 \newdimen\headlineindent % dimension for space between
987 \headlineindent=1.166cm % number and text of headings.
989 \def\ps@headings{\let\@mkboth\@gobbletwo
990 \let\@oddfoot\@empty\let\@evenfoot\@empty
991 \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
993 \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}%
995 \def\chaptermark##1{}%
996 \def\sectionmark##1{}%
997 \def\subsectionmark##1{}}
999 \def\ps@titlepage{\let\@mkboth\@gobbletwo
1000 \let\@oddfoot\@empty\let\@evenfoot\@empty
1001 \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
1003 \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}%
1005 \def\chaptermark##1{}%
1006 \def\sectionmark##1{}%
1007 \def\subsectionmark##1{}}
1009 \if@runhead\ps@headings\else
1012 \setlength\arraycolsep{1.4\p@}
1013 \setlength\tabcolsep{1.4\p@}