You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1219 lines
42KB

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