diff --git a/TIforWildFJ.tex b/TIforWildFJ.tex index 39f9ff5..828f937 100644 --- a/TIforWildFJ.tex +++ b/TIforWildFJ.tex @@ -1,5 +1,5 @@ -\documentclass[a4paper,UKenglish,cleveref, autoref, thm-restate]{lipics-v2021} +\documentclass{llncs} %This is a template for producing LIPIcs articles. %See lipics-v2021-authors-guidelines.pdf for further information. %for A4 paper format use option "a4paper", for US-letter use option "letterpaper" @@ -40,6 +40,7 @@ \input{prolog} +\begin{document} \bibliographystyle{plainurl}% the mandatory bibstyle \title{Global Type Inference for Featherweight Java with Wildcards} %TODO Please add @@ -54,16 +55,16 @@ \authorrunning{A. Stadelmeier and M. Plümicke and P. Thiemann} %TODO mandatory. First: Use abbreviated first/middle names. Second (only in severe cases): Use first author plus 'et al.' -\Copyright{Andreas Stadelmeier and Martin Plümicke and Peter Thiemann} %TODO mandatory, please use full first names. LIPIcs license is "CC-BY"; http://creativecommons.org/licenses/by/3.0/ +%\Copyright{Andreas Stadelmeier and Martin Plümicke and Peter Thiemann} %TODO mandatory, please use full first names. LIPIcs license is "CC-BY"; http://creativecommons.org/licenses/by/3.0/ -\ccsdesc[500]{Software and its engineering~Language features} +%\ccsdesc[500]{Software and its engineering~Language features} %\ccsdesc[300]{Software and its engineering~Syntax} \keywords{type inference, Java, subtyping, generics} %TODO mandatory; please add comma-separated list of keywords -\category{} %optional, e.g. invited paper +%\category{} %optional, e.g. invited paper -\relatedversion{} %optional, e.g. full version hosted on arXiv, HAL, or other respository/website +%\relatedversion{} %optional, e.g. full version hosted on arXiv, HAL, or other respository/website %\relatedversiondetails[linktext={opt. text shown instead of the URL}, cite=DBLP:books/mk/GrayR93]{Classification (e.g. Full Version, Extended Version, Previous Version}{URL to related version} %linktext and cite are optional %\supplement{}%optional, e.g. related research data, source code, ... hosted on a repository like zenodo, figshare, GitHub, ... @@ -77,21 +78,20 @@ -%Editor-only macros:: begin (do not touch as author)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\EventEditors{John Q. Open and Joan R. Access} -\EventNoEds{2} -\EventLongTitle{42nd Conference on Very Important Topics (CVIT 2016)} -\EventShortTitle{CVIT 2016} -\EventAcronym{CVIT} -\EventYear{2016} -\EventDate{December 24--27, 2016} -\EventLocation{Little Whinging, United Kingdom} -\EventLogo{} -\SeriesVolume{42} -\ArticleNo{23} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %Editor-only macros:: begin (do not touch as author)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \EventEditors{John Q. Open and Joan R. Access} +% \EventNoEds{2} +% \EventLongTitle{42nd Conference on Very Important Topics (CVIT 2016)} +% \EventShortTitle{CVIT 2016} +% \EventAcronym{CVIT} +% \EventYear{2016} +% \EventDate{December 24--27, 2016} +% \EventLocation{Little Whinging, United Kingdom} +% \EventLogo{} +% \SeriesVolume{42} +% \ArticleNo{23} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{document} \maketitle diff --git a/cc-by.pdf b/cc-by.pdf deleted file mode 100644 index 3b7aba1..0000000 Binary files a/cc-by.pdf and /dev/null differ diff --git a/fig1.eps b/fig1.eps new file mode 100644 index 0000000..715b480 Binary files /dev/null and b/fig1.eps differ diff --git a/lipics-logo-bw.pdf b/lipics-logo-bw.pdf deleted file mode 100644 index 26b83d6..0000000 Binary files a/lipics-logo-bw.pdf and /dev/null differ diff --git a/lipics-v2021.cls b/lipics-v2021.cls deleted file mode 100644 index 9107039..0000000 --- a/lipics-v2021.cls +++ /dev/null @@ -1,1260 +0,0 @@ -%% -%% This is file `lipics-v2021.cls'. -%% -%% ----------------------------------------------------------------- -%% Author: Dagstuhl Publishing & le-tex publishing services -%% -%% This file is part of the lipics package for preparing -%% LIPICS articles. -%% -%% Copyright (C) 2021 Schloss Dagstuhl -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is -%% Schloss Dagstuhl (publishing@dagstuhl.de). -%% ----------------------------------------------------------------- -%% -\ProvidesClass{lipics-v2021} - [2023/05/12 v3.1.3 LIPIcs articles] -\NeedsTeXFormat{LaTeX2e}[2015/01/01] -\emergencystretch1em -\advance\hoffset-1in -\advance\voffset-1in -\advance\hoffset2.95mm -\newif\if@nobotseplist \@nobotseplistfalse -\def\@endparenv{% - \addpenalty\@endparpenalty\if@nobotseplist\else\addvspace\@topsepadd\fi\@endpetrue} -\def\@doendpe{% - \@endpetrue - \def\par{\@restorepar - \everypar{}% - \par - \if@nobotseplist - \addvspace\topsep - \addvspace\partopsep - \global\@nobotseplistfalse - \fi - \@endpefalse}% - \everypar{{\setbox\z@\lastbox}% - \everypar{}% - \if@nobotseplist\global\@nobotseplistfalse\fi - \@endpefalse}} -\def\enumerate{% - \ifnum \@enumdepth >\thr@@\@toodeep\else - \advance\@enumdepth\@ne - \edef\@enumctr{enum\romannumeral\the\@enumdepth}% - \expandafter - \list - \csname label\@enumctr\endcsname - {\advance\partopsep\topsep - \topsep\z@\@plus\p@ - \ifnum\@listdepth=\@ne - \labelsep0.72em - \else - \ifnum\@listdepth=\tw@ - \labelsep0.3em - \else - \labelsep0.5em - \fi - \fi - \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% - \fi} -\def\endenumerate{\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} -\def\itemize{% - \ifnum \@itemdepth >\thr@@\@toodeep\else - \advance\@itemdepth\@ne - \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% - \expandafter - \list - \csname\@itemitem\endcsname - {\advance\partopsep\topsep - \topsep\z@\@plus\p@ - \ifnum\@listdepth=\@ne - \labelsep0.83em - \else - \ifnum\@listdepth=\tw@ - \labelsep0.75em - \else - \labelsep0.5em - \fi - \fi - \def\makelabel##1{\hss\llap{##1}}}% - \fi} -\def\enditemize{\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} -\def\@title{\textcolor{red}{Author: Please provide a title}} -\let\@subtitle\@empty -\def\subtitle#1{\gdef\@subtitle{#1}} -\def\subtitleseperator{: } -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \ifdim \@tempskipa>\z@ - \begingroup - #6{% - \@hangfrom{\hskip #3\relax - \ifnum #2=1 - \colorbox{lipicsYellow}{\kern0.15em\@svsec\kern0.15em}\quad - \else - \@svsec\quad - \fi}% - \interlinepenalty \@M #8\@@par}% - \endgroup - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}% - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8}% - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}}% - \fi - \@xsect{#5}} -\def\@seccntformat#1{\csname the#1\endcsname} -\def\@biblabel#1{\textcolor{lipicsGray}{\sffamily\bfseries#1}} -\def\EventLogoHeight{25} -\def\copyrightline{% - \ifx\@hideLIPIcs\@undefined - \ifx\@EventLogo\@empty - \else - \setbox\@tempboxa\hbox{\includegraphics[height=\EventLogoHeight\p@]{\@EventLogo}}% - \rlap{\hspace\textwidth\hspace{-\wd\@tempboxa}\hspace{\z@}% - \vtop to\z@{\vskip-0mm\unhbox\@tempboxa\vss}}% - \fi - \scriptsize - \vtop{\hsize\textwidth - \nobreakspace\par - \@Copyright - \ifx\@EventLongTitle\@empty\else\@EventLongTitle.\\\fi - \ifx\@EventEditors\@empty\else - \@Eds: \@EventEditors - ; Article~No.\,\@ArticleNo; pp.\,\@ArticleNo:\thepage--\@ArticleNo:\number\numexpr\getpagerefnumber{TotPages}% - \\ - \fi - \setbox\@tempboxa\hbox{\IfFileExists{lipics-logo-bw.pdf}{\includegraphics[height=14\p@,trim=0 15 0 0]{lipics-logo-bw}}{\includegraphics[height=14\p@, width=62pt]{example-image-plain}}}% - \hspace*{\wd\@tempboxa}\enskip - \href{https://www.dagstuhl.de/lipics/}% - {Leibniz International Proceedings in Informatics}\\ - \smash{\unhbox\@tempboxa}\enskip - \href{https://www.dagstuhl.de}% - {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik, Dagstuhl Publishing, Germany}}% - \fi} -\def\ps@plain{\let\@mkboth\@gobbletwo - \let\@oddhead\@empty - \let\@evenhead\@empty - \let\@evenfoot\copyrightline - \let\@oddfoot\copyrightline} -\def\lipics@opterrshort{Option "\CurrentOption" not supported} -\def\lipics@opterrlong{The option "\CurrentOption" from article.cls is not supported by lipics.cls.} -\DeclareOption{a5paper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{b5paper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{legalpaper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{executivepaper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{landscape}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{10pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{11pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{12pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{oneside}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{twoside}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{titlepage}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{notitlepage}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{onecolumn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{twocolumn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{fleqn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{openbib}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} -\DeclareOption{a4paper}{\PassOptionsToClass{\CurrentOption}{article} - \advance\hoffset-2.95mm - \advance\voffset8.8mm} -\DeclareOption{numberwithinsect}{\let\numberwithinsect\relax} -\DeclareOption{cleveref}{\let\usecleveref\relax} -\DeclareOption{autoref}{\let\useautoref\relax} -\DeclareOption{anonymous}{\let\authoranonymous\relax} -\DeclareOption{thm-restate}{\let\usethmrestate\relax} -\DeclareOption{authorcolumns}{\let\authorcolumns\relax} -\let\compactauthor\relax -\DeclareOption{oldauthorstyle}{\let\compactauthor\@empty} -\DeclareOption{compactauthor}{\let\compactauthor\relax} -\DeclareOption{pdfa}{\let\pdfa\relax} -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} -\ProcessOptions -\LoadClass[twoside,notitlepage,fleqn]{article} -\renewcommand\normalsize{% - \@setfontsize\normalsize\@xpt{13}% - \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ - \belowdisplayskip \abovedisplayskip - \let\@listi\@listI} -\normalsize -\renewcommand\small{% - \@setfontsize\small\@ixpt{11.5}% - \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 4\p@ \@plus2\p@ \@minus2\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% - \belowdisplayskip \abovedisplayskip -} -\renewcommand\footnotesize{% - \@setfontsize\footnotesize{8.5}{9.5}% - \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus\p@ - \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 3\p@ \@plus\p@ \@minus\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% - \belowdisplayskip \abovedisplayskip -} -\renewcommand\large{\@setfontsize\large{10.5}{13}} -\renewcommand\Large{\@setfontsize\Large{12}{14}} -\setlength\parindent{1.5em} -\setlength\headheight{3mm} -\setlength\headsep {10mm} -\setlength\footskip{3mm} -\setlength\textwidth{140mm} -\setlength\textheight{222mm} -\setlength\oddsidemargin{32mm} -\setlength\evensidemargin{38mm} -\setlength\marginparwidth{25mm} -\setlength\topmargin{13mm} -\setlength{\skip\footins}{2\baselineskip \@plus 4\p@ \@minus 2\p@} -\def\@listi{\leftmargin\leftmargini - \parsep\z@ \@plus\p@ - \topsep 8\p@ \@plus2\p@ \@minus4\p@ - \itemsep \parsep} -\let\@listI\@listi -\@listi -\def\@listii {\leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth-\labelsep - \topsep 4\p@ \@plus2\p@ \@minus\p@ - \parsep\z@ \@plus\p@ - \itemsep \parsep} -\def\@listiii{\leftmargin\leftmarginiii - \labelwidth\leftmarginiii - \advance\labelwidth-\labelsep - \topsep 2\p@ \@plus\p@\@minus\p@ - \parsep \z@ - \partopsep \p@ \@plus\z@ \@minus\p@ - \itemsep \z@ \@plus\p@} -\def\ps@headings{% - \def\@evenhead{\large\sffamily\bfseries - \llap{\hbox to0.5\oddsidemargin{ \ifx\@hideLIPIcs\@undefined\ifx\@ArticleNo\@empty\textcolor{red}{XX}\else\@ArticleNo\fi:\fi\thepage\hss}}\leftmark\hfil}% - \def\@oddhead{\large\sffamily\bfseries\rightmark\hfil - \rlap{\hbox to0.5\oddsidemargin{\hss \ifx\@hideLIPIcs\@undefined\ifx\@ArticleNo\@empty\textcolor{red}{XX}\else\@ArticleNo\fi:\fi\thepage}}}% - \def\@oddfoot{\hfil - \rlap{% - \vtop{% - \vskip10mm - \colorbox{lipicsYellow} - {\@tempdima\evensidemargin - \advance\@tempdima1in - \advance\@tempdima\hoffset - \hb@xt@\@tempdima{% - \ifx\@hideLIPIcs\@undefined - \textcolor{lipicsGray}{\normalsize\sffamily - \bfseries\quad - \expandafter\textsolittle - \expandafter{\@EventShortTitle}}% - \fi - \strut\hss}}}}} - \let\@evenfoot\@empty - \let\@mkboth\markboth - \let\sectionmark\@gobble - \let\subsectionmark\@gobble} -\pagestyle{headings} -\renewcommand\maketitle{\par - \begingroup - \thispagestyle{plain} - \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \if@twocolumn - \ifnum \col@number=\@ne - \@maketitle - \else - \twocolumn[\@maketitle]% - \fi - \else - \newpage - \global\@topnum\z@ % Prevents figures from going at top of page. - \@maketitle - \fi - \thispagestyle{plain}\@thanks - \endgroup - \global\let\thanks\relax - \global\let\maketitle\relax - \global\let\@maketitle\relax - \global\let\@thanks\@empty - \global\let\@author\@empty - \global\let\@date\@empty - \global\let\@title\@empty - \global\let\@subtitle\@empty - \global\let\title\relax - \global\let\author\relax - \global\let\date\relax - \global\let\and\relax -} -\newwrite\tocfile -\def\@maketitle{% - \newpage - \null\vskip-\baselineskip - \vskip-\headsep - \@titlerunning - \@authorrunning - %%\let \footnote \thanks - \parindent\z@ \raggedright - \if!\@title!\def\@title{\textcolor{red}{Author: Please fill in a title}}\fi - {\LARGE\sffamily\bfseries\mathversion{bold}\@title \if!\@subtitle!\else{\\\Large\sffamily\bfseries\mathversion{bold}\@subtitle}\fi \par}% - \vskip 1em - \ifx\@author\orig@author - \textcolor{red}{Author: Please provide author information}% - \else - {\def\thefootnote{\@arabic\c@footnote}% - \setcounter{footnote}{0}% - \fontsize{9.5}{12}\selectfont\@author}% - \fi - \bgroup - \immediate\openout\tocfile=\jobname.vtc - \protected@write\tocfile{ - \let\footnote\@gobble - \let\thanks\@gobble - \def\footnotemark{} - \def\and{and }% - \def\,{ } - \def\\{ } - }{% - \string\contitem - \string\title{\@title \if!\@subtitle!\else\subtitleseperator \@subtitle\fi}% - \string\author{\@authorsfortoc}% - \string\page{\@ArticleNo:\thepage--\@ArticleNo:\number\numexpr\getpagerefnumber{TotPages}}}% - \closeout\tocfile - \egroup - \par} -\renewcommand\tableofcontents{% - \section*{\contentsname}% - \@starttoc{toc}} -\setcounter{secnumdepth}{4} -\renewcommand\section{\@startsection {section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\sffamily\Large\bfseries\raggedright}} -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\sffamily\Large\bfseries\raggedright}} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {-3.25ex\@plus -1ex \@minus -.2ex}% - {1.5ex \@plus .2ex}% - {\sffamily\Large\bfseries\raggedright}} -\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {-3.25ex \@plus-1ex \@minus-.2ex}% - {1.5ex \@plus .2ex}% - {\sffamily\large\bfseries\raggedright}} -\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% - {3.25ex \@plus1ex \@minus .2ex}% - {-1em}% - {\sffamily\normalsize\bfseries}} -\newcommand{\proofsubparagraph}{\@startsection{subparagraph}{5}{\z@}% - {3.25ex \@plus1ex \@minus .2ex}% - {-1em}% - {\color{lipicsGray}\sffamily\normalsize\bfseries}} -\setlength\leftmargini \parindent -\setlength\leftmarginii {1.2em} -\setlength\leftmarginiii{1.2em} -\setlength\leftmarginiv {1.2em} -\setlength\leftmarginv {1.2em} -\setlength\leftmarginvi {1.2em} -\renewcommand\labelenumi{% - \textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\theenumi.}} -\renewcommand\labelenumii{% - \textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\theenumii.}} -\renewcommand\labelenumiii{% - \textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\theenumiii.}} -\renewcommand\labelenumiv{% - \textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\theenumiv.}} -\renewcommand\labelitemi{% - \textcolor{lipicsBulletGray}{\ifnum\@listdepth=\@ne - \rule{0.67em}{0.33em}% - \else - \rule{0.45em}{0.225em}% - \fi}} -\renewcommand\labelitemii{% - \textcolor{lipicsBulletGray}{\rule{0.45em}{0.225em}}} -\renewcommand\labelitemiii{% - \textcolor{lipicsBulletGray}{\sffamily\bfseries\textasteriskcentered}} -\renewcommand\labelitemiv{% - \textcolor{lipicsBulletGray}{\sffamily\bfseries\textperiodcentered}} -\renewenvironment{description} - {\list{}{\advance\partopsep\topsep\topsep\z@\@plus\p@ - \labelwidth\z@ \itemindent-\leftmargin - \let\makelabel\descriptionlabel}} - {\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} -\renewcommand*\descriptionlabel[1]{% - \hspace\labelsep\textcolor{lipicsGray}{\sffamily\bfseries\mathversion{bold}#1}} -\def\topmattervskip{0.7} -\renewenvironment{abstract}{% - \vskip\topmattervskip\bigskipamount - \noindent - \rlap{\color{lipicsLineGray}\vrule\@width\textwidth\@height1\p@}% - \hspace*{7mm}\fboxsep1.5mm\colorbox[rgb]{1,1,1}{\raisebox{-0.4ex}{% - \large\selectfont\sffamily\bfseries\abstractname}}% - \vskip3\p@ - \fontsize{9}{12}\selectfont - \noindent\ignorespaces} - {\vskip\topmattervskip\baselineskip\noindent - \subjclassHeading - \ifx\@ccsdescString\@empty - \textcolor{red}{Author: Please fill in 1 or more \string\ccsdesc\space macro}% - \else - \@ccsdescString - \fi - \vskip\topmattervskip\baselineskip - \noindent\keywordsHeading - \ifx\@keywords\@empty - \textcolor{red}{Author: Please fill in \string\keywords\space macro}% - \else - \@keywords - \fi - \ifx\@hideLIPIcs\@undefined - \ifx\@DOIPrefix\@empty\else - \vskip\topmattervskip\baselineskip\noindent - \doiHeading\href{https://doi.org/\@lipicsdoi}{\@lipicsdoi}% - \fi - \fi - \ifx\@category\@empty\else - \vskip\topmattervskip\baselineskip\noindent - \categoryHeading\@category - \fi - \ifx\@relatedversion\@empty\else - \vskip\topmattervskip\baselineskip\noindent - \relatedversionHeading\ifx\authoranonymous\relax\textcolor{red}{Anonymous related version(s)}\else\@relatedversion\fi - \fi - \ifx\@supplement\@empty\else - \vskip\topmattervskip\baselineskip\noindent - \supplementHeading\ifx\authoranonymous\relax\textcolor{red}{Anonymous supplementary material}\else\@supplement\fi - \fi - \ifx\@funding\@empty\else - \vskip\topmattervskip\baselineskip\noindent - \fundingHeading\ifx\authoranonymous\relax\textcolor{red}{Anonymous funding}\else\@funding\fi - \fi - \ifx\@acknowledgements\@empty\else - \vskip\topmattervskip\baselineskip\noindent - \acknowledgementsHeading\ifx\authoranonymous\relax\textcolor{red}{Anonymous acknowledgements} \else\@acknowledgements\fi - \fi - \protected@write\@auxout{}{\string\gdef\string\@pageNumberEndAbstract{\thepage}}% - }% end abstract -\renewenvironment{thebibliography}[1] - {\if@noskipsec \leavevmode \fi - \par - \@tempskipa-3.5ex \@plus -1ex \@minus -.2ex\relax - \@afterindenttrue - \@tempskipa -\@tempskipa \@afterindentfalse - \if@nobreak - \everypar{}% - \else - \addpenalty\@secpenalty\addvspace\@tempskipa - \fi - \noindent - \rlap{\color{lipicsLineGray}\vrule\@width\textwidth\@height1\p@}% - \hspace*{7mm}\fboxsep1.5mm\colorbox[rgb]{1,1,1}{\raisebox{-0.4ex}{% - \normalsize\sffamily\bfseries\refname}}% - \@xsect{1ex \@plus.2ex}% - \list{\@biblabel{\@arabic\c@enumiv}}% - {\leftmargin8.5mm - \labelsep\leftmargin - \settowidth\labelwidth{\@biblabel{#1}}% - \advance\labelsep-\labelwidth - \usecounter{enumiv}% - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}}% - \fontsize{9}{12}\selectfont - \sloppy - \clubpenalty4000 - \@clubpenalty \clubpenalty - \widowpenalty4000% - \sfcode`\.\@m\protected@write\@auxout{}{\string\gdef\string\@pageNumberStartBibliography{\thepage}}} - {\def\@noitemerr - {\@latex@warning{Empty `thebibliography' environment}}% - \protected@write\@auxout{}{\string\gdef\string\@pageNumberEndBibliography{\thepage}}% - \endlist} -\g@addto@macro\appendix{\immediate\write\@auxout{\string\gdef\string\@pageNumberStartAppendix{\thepage}}}% -\renewcommand\footnoterule{% - \kern-8\p@ - {\color{lipicsBulletGray}\hrule\@width40mm\@height1\p@}% - \kern6.6\p@} -\renewcommand\@makefntext[1]{% - \parindent\z@\hangindent1em - \leavevmode - \hb@xt@1em{\@makefnmark\hss}#1} -\usepackage{microtype} -\usepackage[utf8]{inputenc} -\ifx\pdfa\relax% - \IfFileExists{glyphtounicode.tex}{ - \input glyphtounicode - \pdfgentounicode=1 - }{}% -\fi -\IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{} -\IfFileExists{fontawesome5.sty}{% -\RequirePackage{fontawesome5}% -\IfFileExists{orcid.pdf}{% -\def\orcidsymbol{\includegraphics[height=9\p@]{orcid}} -}{ -\def\orcidsymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries \faOrcid}}% -} -\def\mailsymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries \faIcon[regular]{envelope}}}% -\def\homesymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries \faHome}}% -}{% -\ClassWarning{Package fontawesome5 not installed}{Please install package fontawesome5} -\def\orcidsymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries ORCID}} -\def\mailsymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries @}}% -\def\homesymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries H}}% -}% -\RequirePackage[T1]{fontenc} -\RequirePackage{textcomp} -\RequirePackage[mathscr]{eucal} -\RequirePackage{amssymb} -\PassOptionsToPackage{retainmissing}{MnSymbol} -\AtBeginDocument{\@ifpackageloaded{MnSymbol}% - {\expandafter\let\csname ver@amssymb.sty\endcsname\relax - \let\complement\@undefined - \RequirePackage{amssymb}}{}} -\RequirePackage{soul} -\sodef\textsolittle{}{.12em}{.5em\@plus.08em\@minus.06em}% - {.4em\@plus.275em\@minus.183em} -\RequirePackage{color} %kept for backward compatibility -\AtBeginDocument{ - \@ifpackageloaded{xcolor}{ - }{ - \RequirePackage{xcolor} - } - \definecolor{darkgray}{rgb}{0.31,0.31,0.33} - \definecolor[named]{lipicsGray}{rgb}{0.31,0.31,0.33} - \definecolor[named]{lipicsBulletGray}{rgb}{0.60,0.60,0.61} - \definecolor[named]{lipicsLineGray}{rgb}{0.51,0.50,0.52} - \definecolor[named]{lipicsLightGray}{rgb}{0.85,0.85,0.86} - \definecolor[named]{lipicsYellow}{rgb}{0.99,0.78,0.07} -} -\RequirePackage{babel} -\RequirePackage[tbtags,fleqn]{amsmath} -\AtBeginDocument{ - \@ifpackageloaded{enumitem}{\ClassWarning{Package 'enumitem' incompatible}{Don't use package 'enumitem'; Package enumerate preloaded!}}{} - \@ifpackageloaded{paralist}{\ClassWarning{Package 'paralist' incompatible}{Don't use package 'paralist'; Package enumerate preloaded!}}{} -} -\RequirePackage{enumerate} -\def\@enum@{\list{\textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\csname label\@enumctr\endcsname}}% - {\advance\partopsep\topsep - \topsep\z@\@plus\p@ - \usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}}} -\def\romanenumerate{\enumerate[(i)]} -\let\endromanenumerate\endenumerate -\def\alphaenumerate{\enumerate[(a)]} -\let\endalphaenumerate\endenumerate -\def\bracketenumerate{\enumerate[(1)]} -\let\endbracketenumerate\endenumerate -\RequirePackage{graphicx} -\RequirePackage{array} -\let\@classzold\@classz -\def\@classz{% - \expandafter\ifx\d@llarbegin\begingroup - \toks \count@ = - \expandafter{\expandafter\small\the\toks\count@}% - \fi - \@classzold} -\RequirePackage{multirow} -\RequirePackage{tabularx} -\RequirePackage[online]{threeparttable} -\def\TPTtagStyle#1{#1)} -\def\tablenotes{\small\TPT@defaults - \@ifnextchar[\TPT@setuptnotes\TPTdoTablenotes} % ] -\RequirePackage{listings} -\lstset{basicstyle=\small\ttfamily,% - backgroundcolor=\color{lipicsLightGray},% - frame=single,framerule=0pt,xleftmargin=\fboxsep,xrightmargin=\fboxsep} -\RequirePackage[left,mathlines]{lineno} -\linenumbers -\renewcommand\linenumberfont{\normalfont\tiny\sffamily} -%%%% patch to cope with amsmath -%%%% http://phaseportrait.blogspot.de/2007/08/lineno-and-amsmath-compatibility.html -\newcommand*\patchAmsMathEnvironmentForLineno[1]{% - \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname - \expandafter\let\csname oldend#1\expandafter\endcsname\csname end#1\endcsname - \renewenvironment{#1}% - {\linenomath\csname old#1\endcsname}% - {\csname oldend#1\endcsname\endlinenomath}}% -\newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{% - \patchAmsMathEnvironmentForLineno{#1}% - \patchAmsMathEnvironmentForLineno{#1*}}% -\AtBeginDocument{% - \patchBothAmsMathEnvironmentsForLineno{equation}% - \patchBothAmsMathEnvironmentsForLineno{align}% - \patchBothAmsMathEnvironmentsForLineno{flalign}% - \patchBothAmsMathEnvironmentsForLineno{alignat}% - \patchBothAmsMathEnvironmentsForLineno{gather}% - \patchBothAmsMathEnvironmentsForLineno{multline}} -\ifx\pdfa\relax% - \RequirePackage[pdfa,unicode]{hyperref}% -\else% - \RequirePackage[unicode]{hyperref}% -\fi% -\let\usehyperxmp\@empty% -\ifx\pdfa\relax% - \IfFileExists{hyperxmp.sty}{% - \RequirePackage{hyperxmp}% - \@ifpackagelater{hyperxmp}{2019/04/05}{% - \let\usehyperxmp\relax% - }{% - \ClassWarning{Package hyperxmp outdated}{You are using an outdated version of the package hyperxmp. Please update!}% - }}{}% -\fi% -\IfFileExists{totpages.sty}{ - \RequirePackage{totpages} -}{ - \ClassWarning{Package totpages not installed}{Please install package totpages} - \newcounter{TotPages} - \setcounter{TotPages}{99} -} -\let\C\relax% -\let\G\relax% -\let\F\relax% -\let\U\relax% -\pdfstringdefDisableCommands{% - \let\thanks\@gobble% - \let\footnote\@gobble% - \def\footnotemark{}% - \def\cs#1{\textbackslash #1}% - \let\normalfont\@empty% - \let\scshape\@empty% - \def\and{and }% - \def\,{ }% - \def\textrightarrow{ -> }% - \let\mathsf\@empty% -}% -\hypersetup{ - breaklinks=true, - pdfencoding=unicode, - bookmarksnumbered, - pdfborder={0 0 0}, - pdfauthor={ } -}% -\AtBeginDocument{ -\ifx\usehyperxmp\relax -\hypersetup{ -pdftitle={\@title \if!\@subtitle!\else\subtitleseperator \@subtitle\fi}, -pdfauthor={\ifx\authoranonymous\relax Anonymous author(s) \else \@authorsforpdf \fi}, -pdfkeywords={\@keywords}, -pdfproducer={LaTeX with lipics-v2021.cls}, -pdfsubject={LIPIcs, Vol.\@SeriesVolume, \@EventShortTitle}, -pdfcopyright = { Copyright (C) \ifx\authoranonymous\relax Anonymous author(s) \else \@copyrightholder; \fi licensed under Creative Commons License CC-BY 4.0}, -pdflang={en}, -pdfmetalang={en}, -pdfpublisher={Schloss Dagstuhl -- Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany}, -pdflicenseurl={https://creativecommons.org/licenses/by/4.0/}, -pdfpubtype={LIPIcs}, -pdfvolumenum={\@SeriesVolume}, -pdfpagerange={\@ArticleNo:\thepage-\@ArticleNo:\theTotPages}, -pdfdoi={\@lipicsdoi}, -pdfapart=3, -pdfaconformance=B -} -\else% -\hypersetup{ -pdftitle={\@title \if!\@subtitle!\else\subtitleseperator \@subtitle\fi}, -pdfauthor={\ifx\authoranonymous\relax Anonymous author(s) \else \@authorsforpdf \fi}, -pdfkeywords={\@keywords}, -pdfcreator={LaTeX with lipics-v2021.cls}, -pdfsubject={LIPIcs, Vol.\@SeriesVolume, \@EventShortTitle; Copyright (C) \ifx\authoranonymous\relax Anonymous author(s) \else \@copyrightholder; \fi licensed under Creative Commons License CC-BY 4.0} -}% -\fi % -} -\ifx\usehyperxmp\relax -\pdfobjcompresslevel=0 -\pdfinclusioncopyfonts=1 -\IfFileExists{colorprofiles.tex}{ -\RequirePackage{colorprofiles}% -\IfFileExists{sRGB.icc}{ -\immediate\pdfobj stream attr{/N 3} file{sRGB.icc} -\pdfcatalog{% -/OutputIntents [ -<< -/Type /OutputIntent -/S /GTS_PDFA1 -/DestOutputProfile \the\pdflastobj\space 0 R -/OutputConditionIdentifier (sRGB) -/Info (sRGB) ->> -] -}}{} -}{\ClassWarning{Package colorprofiles not installed}{Please install package colorprofiles}} -\fi -\RequirePackage[labelsep=space,singlelinecheck=false,% - font={up,small},labelfont={sf,bf},% - listof=false]{caption}%"listof" instead of "list" for backward compatibility -\@ifpackagelater{hyperref}{2009/12/09} - {\captionsetup{compatibility=false}}%cf. http://groups.google.de/group/comp.text.tex/browse_thread/thread/db9310eb540fbbd8/42e30f3b7b3aa17a?lnk=raot - {} -\DeclareCaptionLabelFormat{boxed}{% - \kern0.05em{\color[rgb]{0.99,0.78,0.07}\rule{0.73em}{0.73em}}% - \hspace*{0.67em}\bothIfFirst{#1}{~}#2} -\captionsetup{labelformat=boxed} -\captionsetup[table]{position=top} -\RequirePackage[figuresright]{rotating} -\caption@AtBeginDocument{\@ifpackageloaded{subfig}{\ClassError{lipics}{% - Do not load the subfig package}{The more recent subcaption package is already loaded}}{}} -\RequirePackage{subcaption} -\def\titlerunning#1{\gdef\@titlerunning{{\let\footnote\@gobble\markboth{#1}{#1}}}} -\def\authorrunning#1{% - \gdef\@authorrunning{\markright{\ifx\authoranonymous\relax\textcolor{red}{Anonymous author(s)} \else\if!#1!\textcolor{red}{Author: Please fill in the \string\authorrunning\space macro}\else#1\fi\fi}}} -\titlerunning{\@title \if!\@subtitle!\else\subtitleseperator \@subtitle\fi} -\authorrunning{\textcolor{red}{Author: Please use the \string\authorrunning\space macro}} -\def\EventLongTitle#1{\gdef\@EventLongTitle{#1}} -\EventLongTitle{} -\def\EventShortTitle#1{\gdef\@EventShortTitle{#1}} -\EventShortTitle{} -\def\EventEditors#1{\gdef\@EventEditors{#1}} -\EventEditors{} -\def\EventNoEds#1{\gdef\@EventNoEds{#1}\xdef\@Eds{Editor\ifnum#1>1s\fi}} -\EventNoEds{1} -\def\EventLogo#1{\gdef\@EventLogo{#1}} -\EventLogo{} -\def\EventAcronym#1{\gdef\@EventAcronym{#1}} -\EventAcronym{} -\def\EventYear#1{\gdef\@EventYear{#1}} -\EventYear{} -\def\EventDate#1{\gdef\@EventDate{#1}} -\EventDate{} -\def\EventLocation#1{\gdef\@EventLocation{#1}} -\EventLocation{} -\def\SeriesVolume#1{\gdef\@SeriesVolume{#1}} -\SeriesVolume{} -\def\ArticleNo#1{\gdef\@ArticleNo{#1}} -\ArticleNo{} -\def\DOIPrefix#1{\gdef\@DOIPrefix{#1}} -\DOIPrefix{10.4230/LIPIcs} -\def\@lipicsdoi{\@DOIPrefix.\@EventAcronym.\@EventYear.\@ArticleNo} -\def\and{\newline} -\let\orig@author\@author -\let\@authorsfortoc\@empty -\let\@authorsforpdf\@empty -\newcount\c@author -\newcounter{currentauthor} -\def\authorcolumnsMin{6} -\def\@authornum{0} -\def\author#1#2#3#4#5{% - \ifx\@author\orig@author\let\@author\@empty\fi - \g@addto@macro\@author{% - \noexpandarg\StrBehind{#2}{\and \url}[\homepageTemp]\IfSubStr{#2}{\and \url}{\StrBefore{#2}{\and \url}[\affiliation]}{\def\affiliation{#2}}% - \expandarg\exploregroups\StrRemoveBraces{\homepageTemp}[\homepage]% - \ifx\authorcolumns\relax - \ifnum\c@author>\authorcolumnsMin - \stepcounter{currentauthor} - \ifodd\value{currentauthor} - \begin{minipage}[t]{\textwidth} - \begin{minipage}[t]{0.49\textwidth} - \else - \hfill \begin{minipage}[t]{0.49\textwidth} - \fi - \else - \ClassWarning{Option 'authorcolumns' only applicable for > 6 authors}{Option 'authorcolumns' only applicable for >6 authors!} - \addvspace{0.5\baselineskip} - \fi - \else - \addvspace{0.5\baselineskip} - \fi - {\Large\bfseries - \if!#1! - \textcolor{red}{Author: Please enter author name}% - \else - \ifx\authoranonymous\relax - \textcolor{red}{Anonymous author} - \else - #1\,% - \ifx\compactauthor\relax\if!#3!\else{\,\href{mailto:#3}{\mailsymbol}}\fi% - \ifx\homepage\@empty\else{\,\href{\homepage}{\homesymbol}}\fi\fi% - \if!#4!\else{\,\href{#4}{\orcidsymbol}}\fi% - \if!#5!\else - \ifx\@funding\@empty - \expandafter\g@addto@macro\expandafter\@funding{\textit{\expandafter{\let\footnote\@gobble #1}}:\space{#5}} - \else - \expandafter\g@addto@macro\expandafter\@funding{\\\textit{\expandafter{\let\footnote\@gobble #1}}:\space{#5}} - \fi - \fi - \fi - \fi - } - {\small - \if!#2!\textcolor{red}{Author: Please enter affiliation as second parameter of the author macro}\else{\\* \ifx\authoranonymous\relax\textcolor{red}{Anonymous affiliation}\else\ifx\compactauthor\relax \affiliation \else#2\fi\fi}\fi - \ifx\compactauthor\relax\else\if!#3!\else{\ifx\authoranonymous\relax\else\\*\href{mailto:#3}{#3}\fi}\fi\fi - }\par - \ifx\authorcolumns\relax - \ifnum\c@author>\authorcolumnsMin - \end{minipage} - \ifnum\c@author=\value{currentauthor} - \end{minipage} - \else - \ifodd\value{currentauthor} - \else - \end{minipage}% - \medskip - \fi - \fi - \fi - \fi}% - \global\advance\c@author\@ne - \protected@write\@auxout{}{\string\gdef\string\@authornum{\the\c@author}} - \ifnum\c@author=\@ne - \gdef\@authorsfortoc{#1}% - \gdef\@authorsforpdf{#1} - \else - \expandafter\g@addto@macro\expandafter\@authorsforpdf\expandafter{, #1} - \expandafter\g@addto@macro\expandafter\@authorsfortoc\expandafter{\expandafter\csname\the\c@author authand\endcsname#1}% - \@namedef{\the\c@author authand}{,\space}% - \AtBeginDocument{% - \expandafter\ifnum\@authornum=2 - \@namedef{2authand}{\space and\space}% - \else - \@namedef{\@authornum authand}{,\space and\space}% - \fi} - \fi} -\newcommand*\affil[2][]{% - \ClassError{lipics} - {\string\affil\space deprecated: Please enter affiliation as second parameter of the author macro} - {Since 2017, \string\affil\space is obsolete in lipics.}} -\newcommand*\Copyright[1]{% - \def\@copyrightholder{#1} - \def\@Copyright{% - \setbox\@tempboxa\hbox{\IfFileExists{cc-by.pdf}{\includegraphics[height=14\p@,clip]{cc-by}}{\includegraphics[height=14\p@, width=40pt]{example-image-plain}}}% - \@rightskip\@flushglue \rightskip\@rightskip - \hangindent\dimexpr\wd\@tempboxa+0.5em\relax - \href{https://creativecommons.org/licenses/by/4.0/}% - {\smash{\lower\baselineskip\hbox{\unhcopy\@tempboxa}}}\enskip - \textcopyright\ % - \ifx!#1!\textcolor{red}{Author: Please fill in the \string\Copyright\space macro}\else\ifx\authoranonymous\relax\textcolor{red}{Anonymous author(s)}\else#1\fi\fi - ;\\% - licensed under Creative Commons License CC-BY 4.0\ifx!#1!\\\null\fi\par}} -\Copyright{\textcolor{red}{Author: Please provide a copyright holder}} -\let\@copyrightholder\@empty -\def\hideLIPIcs{\let\@hideLIPIcs\relax} -\usepackage{xstring} -\def\keywords#1{\def\@keywords{#1}} -\let\@keywords\@empty -\def\keywordsHeading{% - \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries - Keywords and phrases\enskip}} -\RequirePackage{comment} -\excludecomment{CCSXML} -% inspired by https://tex.stackexchange.com/questions/12810/how-do-i-split-a-string -\global\newcommand\ccsdesc[2][100]{\@ccsdesc#1~#2~~\relax} -\let\orig@ccsdesc\@ccsdesc -\let\@ccsdesc\@empty -\let\@ccsdescString\@empty -\gdef\@ccsdesc#1~#2~#3~{ - \ifx\@ccsdesc\orig@ccsdesc\let\@ccsdesc\@empty\fi - \ifx!#3! - \ifx\@ccsdescString\@empty - \g@addto@macro\@ccsdescString{{#2}} - \else - \g@addto@macro\@ccsdescString{; {#2}} - \fi - \else - \ifx\@ccsdescString\@empty - \g@addto@macro\@ccsdescString{{#2} $\rightarrow$ {#3}} - \else - \g@addto@macro\@ccsdescString{; {#2} $\rightarrow$ {#3}} - \fi - \fi -\ccsdescEnd -} -\def\ccsdescEnd#1\relax{} -\def\subjclass#1{ - \ClassError{lipics} - {\string\subjclass\space deprecated: Please enter subject classification in 1 or more ccsdesc macros} - {Since 2019, \string\subjclass\space is obsolete in lipics.}} -\let\@subjclass\@empty -\def\subjclassHeading{% - \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries - 2012 ACM Subject Classification\enskip}} -\def\doiHeading{% - \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries - Digital Object Identifier\enskip}} -\def\category#1{\def\@category{#1}} -\let\@category\@empty -\def\categoryHeading{% - \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries - Category\enskip}} -\def\relatedversion#1{\def\@relatedversion{#1}} -\let\@relatedversion\@empty -\define@key{relatedversiondetails}{linktext}{\def\relatedversiondetails@linktext{#1}} -\define@key{relatedversiondetails}{cite}{\def\relatedversiondetails@cite{#1}} -\newcommand*\addtorelatedversionmacro[2]{% - \ifx\@relatedversion\@empty% - \g@addto@macro\@relatedversion{#1}% - \else% - \g@addto@macro\@relatedversion{\\#1}% - \fi% -}% -\newcommand{\relatedversiondetails}[3][]{% - \begingroup% - \let\relatedversiondetails@linktext\@empty - \let\relatedversiondetails@cite\@empty - \setkeys{relatedversiondetails}{#1}% - \ifx\relatedversiondetails@linktext\@empty% - \protected@edef\tmp{\textit{#2}:\space{\url{#3}}}% - \else% - \protected@edef\tmp{\textit{#2}:\space{\href{#3}{\texttt{\relatedversiondetails@linktext}}}}% - \fi% - \ifx\relatedversiondetails@cite\@empty% - \else% - \protected@edef\tmp{\tmp\nobreakspace\cite{\relatedversiondetails@cite}}% - \fi% - \expandafter\addtorelatedversionmacro\expandafter{\tmp}{#1}% - \endgroup% -}% -\def\relatedversionHeading{% - \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries - Related Version\enskip}} -\def\supplement#1{\def\@supplement{#1}} -\let\@supplement\@empty -\define@key{supplementdetails}{linktext}{\def\supplementdetails@linktext{#1}} -\define@key{supplementdetails}{cite}{\def\supplementdetails@cite{#1}} -\define@key{supplementdetails}{subcategory}{\def\supplementdetails@subcategory{#1}} -\define@key{supplementdetails}{swhlinktext}{\def\supplementdetails@swhlinktext{#1}} -\let\supplementdetails@swhlinktext\@empty -\define@key{supplementdetails}{swhid}{ - \ifx\supplementdetails@swhlinktext\@empty% - \StrBefore{#1}{;}[\supplementdetails@swhlinktext]% - \fi% - \def\supplementdetails@swhid{#1}% -} - -\define@key{supplementdetails}{swhdelimiter}{\def\supplementdetails@swhdelimiter{#1}} -\def\supplementdetails@swhdelimiter{\\ \hspace*{1.2em}} -\newcommand*\addtosupplementmacro[2]{% - \ifx\@supplement\@empty% - \g@addto@macro\@supplement{#1}% - \else% - \g@addto@macro\@supplement{\\#1}% - \fi% -}% -\newcommand{\supplementdetails}[3][]{% - \begingroup% - \let\supplementdetails@linktext\@empty - \let\supplementdetails@cite\@empty - \let\supplementdetails@subcategory\@empty - \let\supplementdetails@swhid\@empty - \setkeys{supplementdetails}{#1}% - \ifx\supplementdetails@subcategory\@empty% - \protected@edef\tmp{\textit{#2}} - \else - \protected@edef\tmp{\textit{#2\,\,(\supplementdetails@subcategory)}}% - \fi - \ifx\supplementdetails@linktext\@empty% - \protected@edef\tmp{\tmp:\space{\url{#3}}}% - \else% - \protected@edef\tmp{\tmp:\space{\href{#3}{\texttt{\supplementdetails@linktext}}}}% - \fi% - \ifx\supplementdetails@cite\@empty% - \else% - \protected@edef\tmp{\tmp\nobreakspace\cite{\supplementdetails@cite}}% - \fi - \ifx\supplementdetails@swhid\@empty% - \else% - \ifx\supplementdetails@swhlinktext\@empty% - \protected@edef\tmp{\tmp \supplementdetails@swhdelimiter{} archived at % - \href{https://archive.softwareheritage.org/\supplementdetails@swhid}{\nolinkurl{\supplementdetails@swhid}}}% - \else% - \protected@edef\tmp{\tmp \supplementdetails@swhdelimiter{} archived at % - \href{https://archive.softwareheritage.org/\supplementdetails@swhid}{\nolinkurl{\supplementdetails@swhlinktext}}}% - \fi% - \fi% - \expandafter\addtosupplementmacro\expandafter{\tmp}{#1}% - \endgroup% -}% -\def\supplementHeading{% - \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries - Supplementary Material\enskip}} -\newcommand\flag[2][0.9cm]{% - \leavevmode\marginpar{% - \raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}% - [\dimexpr\ht\strutbox+3mm][\dp\strutbox]{\expandafter\includegraphics[width=#1]{#2}}% -}} -\def\funding#1{\def\@funding{#1}} -\let\@funding\@empty -\def\fundingHeading{% - \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries - Funding\enskip}} -\def\acknowledgements#1{\def\@acknowledgements{#1}} -\let\@acknowledgements\@empty -\def\acknowledgementsHeading{% - \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries - Acknowledgements\enskip}} -\RequirePackage{amsthm} -\ifx\usethmrestate\relax - \RequirePackage{thm-restate} -\fi -\thm@headfont{% - \textcolor{lipicsGray}{$\blacktriangleright$}\nobreakspace\sffamily\bfseries} -\def\th@remark{% - \thm@headfont{% - \textcolor{lipicsGray}{$\blacktriangleright$}\nobreakspace\sffamily}% - \normalfont % body font - \thm@preskip\topsep \divide\thm@preskip\tw@ - \thm@postskip\thm@preskip -} -\def\@endtheorem{\endtrivlist}%\@endpefalse -\renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\blacktriangleleft}}} -\renewenvironment{proof}[1][\proofname]{\par - \pushQED{\qed}% - \normalfont \topsep6\p@\@plus6\p@\relax - \trivlist - \item[\hskip\labelsep - \color{lipicsGray}\sffamily\bfseries - #1\@addpunct{.}]\ignorespaces -}{% - \popQED\endtrivlist%\@endpefalse -} -\newcommand{\claimqedhere}{\renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\vartriangleleft}}}% -\qedhere% -\renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\blacktriangleleft}}}} -\newenvironment{claimproof}[1][\proofname]{ - \pushQED{\qed}% - \normalfont \topsep6\p@\@plus6\p@\relax - \trivlist - \item[\hskip\labelsep - \color{lipicsGray}\sffamily - #1\@addpunct{.}]\ignorespaces -}{% - \renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\vartriangleleft}}} - \popQED\endtrivlist%\@endpefalse - \renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\blacktriangleleft}}} -} -% inspired by qed of amsthm class -\DeclareRobustCommand{\lipicsEnd}{% - \leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill - \quad\hbox{$\lrcorner$}% -} -\AtBeginDocument{ - \@ifpackageloaded{algorithm2e}{ - \@ifpackagelater{algorithm2e}{2009/11/17}{ - \renewcommand{\algorithmcfname}{\sffamily\bfseries{}Algorithm}% - \renewcommand{\@algocf@procname}{\sffamily\bfseries{}Procedure}% - \SetAlgoCaptionSeparator{~} - \SetAlCapHSkip{0pt} - \renewcommand{\algocf@captiontext}[2]{% - \kern0.05em{\color{lipicsYellow}\rule{0.73em}{0.73em}}% - \hspace*{0.67em}\small #1\algocf@capseparator\nobreakspace#2} - \renewcommand{\algocf@makecaption}[2]{% - \parbox[t]{\textwidth}{\algocf@captiontext{#1}{#2}}% - }% - \renewcommand{\algocf@captionproctext}[2]{% - {% - \kern0.05em{\color{lipicsYellow}\rule{0.73em}{0.73em}}% - \hspace*{0.67em}\small% -\ProcSty{\ProcFnt\algocf@procname\ifthenelse{\boolean{algocf@procnumbered}}{\nobreakspace\thealgocf\algocf@typo\algocf@capseparator}{\relax}}% - \nobreakspace\ProcNameSty{\ProcNameFnt\algocf@captname #2@}% Name of the procedure in ProcName Style. - \ifthenelse{\equal{\algocf@captparam #2@}{\arg@e}}{}{% if no argument, write nothing - \ProcNameSty{\ProcNameFnt(}\ProcArgSty{\ProcArgFnt\algocf@captparam #2@}\ProcNameSty{\ProcNameFnt)}%else put arguments in ProcArgSty: - }% endif - \algocf@captother #2@% - }% -}% - \renewcommand{\@algocf@capt@boxed}{above} - \renewcommand{\@algocf@capt@ruled}{above} - \setlength\algotitleheightrule{0pt} - }{\ClassWarning{% - Package algorithm2e outdated}{You are using an outdated version of the package algorithm2e. Please update!}} - }{} - \@ifpackageloaded{algorithm}{ - \captionsetup[algorithm]{name=Algorithm, labelformat=boxed, position=top} - \newcommand\fs@ruled@notop{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled - \def\@fs@pre{}% - \def\@fs@post{\kern2pt\hrule\relax}% - \def\@fs@mid{\kern2pt\hrule\kern2pt}% - \let\@fs@iftopcapt\iftrue} - \@ifundefined{fst@algorithm}{}{ - \renewcommand\fst@algorithm{\fs@ruled@notop} - } - }{} - \ifx\usecleveref\relax\else - \@ifpackageloaded{cleveref}{\ClassWarning{Use document option 'cleveref' instead}{Use document option 'cleveref' instead directly loading package 'cleveref'}}{} - \fi - \ifx\usethmrestate\relax\else - \@ifpackageloaded{thm-restate}{\ClassWarning{Use document option 'thm-restate' instead}{Use document option 'thm-restate' instead directly loading package 'thm-restate'}}{} - \fi - \ifx\useautoref\relax - \@ifundefined{algorithmautorefname}{\newcommand{\algorithmautorefname}{Algorithm}}{\renewcommand{\algorithmautorefname}{Algorithm}}% - \fi -} - -\ifx\usecleveref\relax - \RequirePackage[capitalise, noabbrev]{cleveref} - \crefname{algocf}{Algorithm}{Algorithms} - \Crefname{algocf}{Algorithm}{Algorithms} - \newcommand{\crefrangeconjunction}{--} - \newcommand{\creflastconjunction}{, and\nobreakspace} -\fi -\ifx\useautoref\relax - \RequirePackage{aliascnt} -\fi -\newtheoremstyle{claimstyle}{\topsep}{\topsep}{}{0pt}{\sffamily}{. }{5pt plus 1pt minus 1pt}% - {$\vartriangleright$ \thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}} -\theoremstyle{plain} -\newtheorem{theorem}{Theorem} -\ifx\numberwithinsect\relax - \numberwithin{theorem}{section} -\fi -\ifx\useautoref\relax - \addto\extrasenglish{% - \def\chapterautorefname{Chapter}% - \def\sectionautorefname{Section}% - \def\subsectionautorefname{Subsection}% - \def\subsubsectionautorefname{Subsubsection}% - \def\paragraphautorefname{Paragraph}% - \def\subparagraphautorefname{Subparagraph}% - } - \addto\extrasUKenglish{% - \def\chapterautorefname{Chapter}% - \def\sectionautorefname{Section}% - \def\subsectionautorefname{Subsection}% - \def\subsubsectionautorefname{Subsubsection}% - \def\paragraphautorefname{Paragraph}% - \def\subparagraphautorefname{Subparagraph}% - } - \addto\extrasUSenglish{% - \def\chapterautorefname{Chapter}% - \def\sectionautorefname{Section}% - \def\subsectionautorefname{Subsection}% - \def\subsubsectionautorefname{Subsubsection}% - \def\paragraphautorefname{Paragraph}% - \def\subparagraphautorefname{Subparagraph}% - } - \ifx\usethmrestate\relax - \newtheorem{lemma}[theorem]{Lemma} - \newtheorem{corollary}[theorem]{Corollary} - \newtheorem{proposition}[theorem]{Proposition} - \newtheorem{exercise}[theorem]{Exercise} - \newtheorem{definition}[theorem]{Definition} - \newtheorem{conjecture}[theorem]{Conjecture} - \newtheorem{observation}[theorem]{Observation} - \theoremstyle{definition} - \newtheorem{example}[theorem]{Example} - \theoremstyle{remark} - \newtheorem{note}[theorem]{Note} - \newtheorem*{note*}{Note} - \newtheorem{remark}[theorem]{Remark} - \newtheorem*{remark*}{Remark} - \theoremstyle{claimstyle} - \newtheorem{claim}[theorem]{Claim} - \newtheorem*{claim*}{Claim} - \else - \newaliascnt{lemma}{theorem} - \newtheorem{lemma}[lemma]{Lemma} - \aliascntresetthe{lemma} - \newcommand{\lemmaautorefname}{Lemma} - \newaliascnt{corollary}{theorem} - \newtheorem{corollary}[corollary]{Corollary} - \aliascntresetthe{corollary} - \newcommand{\corollaryautorefname}{Corollary} - \newaliascnt{proposition}{theorem} - \newtheorem{proposition}[proposition]{Proposition} - \aliascntresetthe{proposition} - \newcommand{\propositionautorefname}{Proposition} - \newaliascnt{exercise}{theorem} - \newtheorem{exercise}[exercise]{Exercise} - \aliascntresetthe{exercise} - \newcommand{\exerciseautorefname}{Exercise} - \newaliascnt{definition}{theorem} - \newtheorem{definition}[definition]{Definition} - \aliascntresetthe{definition} - \newcommand{\definitionautorefname}{Definition} - \newaliascnt{conjecture}{theorem} - \newtheorem{conjecture}[conjecture]{Conjecture} - \aliascntresetthe{conjecture} - \newcommand{\conjectureautorefname}{Conjecture} - \newaliascnt{observation}{theorem} - \newtheorem{observation}[observation]{Observation} - \aliascntresetthe{observation} - \newcommand{\observationautorefname}{Observation} - \theoremstyle{definition} - \newaliascnt{example}{theorem} - \newtheorem{example}[example]{Example} - \aliascntresetthe{example} - \newcommand{\exampleautorefname}{Example} - \theoremstyle{remark} - \newaliascnt{note}{theorem} - \newtheorem{note}[note]{Note} - \aliascntresetthe{note} - \newcommand{\noteautorefname}{Note} - \newtheorem*{note*}{Note} - \newaliascnt{remark}{theorem} - \newtheorem{remark}[remark]{Remark} - \aliascntresetthe{remark} - \newcommand{\remarkautorefname}{Remark} - \newtheorem*{remark*}{Remark} - \theoremstyle{claimstyle} - \newaliascnt{claim}{theorem} - \newtheorem{claim}[claim]{Claim} - \aliascntresetthe{claim} - \newcommand{\claimautorefname}{Claim} - \newtheorem*{claim*}{Claim} - \ifx\numberwithinsect\relax - \numberwithin{theorem}{section} - \numberwithin{lemma}{section} - \numberwithin{corollary}{section} - \numberwithin{proposition}{section} - \numberwithin{exercise}{section} - \numberwithin{definition}{section} - \numberwithin{conjecture}{section} - \numberwithin{observation}{section} - \numberwithin{example}{section} - \numberwithin{note}{section} - \numberwithin{remark}{section} - \numberwithin{claim}{section} - \fi - \fi -\else - \newtheorem{lemma}[theorem]{Lemma} - \newtheorem{corollary}[theorem]{Corollary} - \newtheorem{proposition}[theorem]{Proposition} - \newtheorem{exercise}[theorem]{Exercise} - \newtheorem{definition}[theorem]{Definition} - \newtheorem{conjecture}[theorem]{Conjecture} - \newtheorem{observation}[theorem]{Observation} - \theoremstyle{definition} - \newtheorem{example}[theorem]{Example} - \theoremstyle{remark} - \newtheorem{note}[theorem]{Note} - \newtheorem*{note*}{Note} - \newtheorem{remark}[theorem]{Remark} - \newtheorem*{remark*}{Remark} - \theoremstyle{claimstyle} - \newtheorem{claim}[theorem]{Claim} - \newtheorem*{claim*}{Claim} -\fi -\theoremstyle{plain} -\endinput -%% -%% End of file `lipics-v2021.cls'. diff --git a/llncs.cls b/llncs.cls new file mode 100644 index 0000000..ea17bb3 --- /dev/null +++ b/llncs.cls @@ -0,0 +1,1244 @@ +% LLNCS DOCUMENT CLASS -- version 2.24 (29-Jan-2024) +% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science +% +%% +%% \CharacterTable +%% {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 +%% 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 +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{llncs}[2024/01/29 v2.24 +^^J LaTeX document class for Lecture Notes in Computer Science] +% Options +\let\if@envcntreset\iffalse +\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} +\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} +\DeclareOption{oribibl}{\let\oribibl=Y} +\let\if@custvec\iftrue +\DeclareOption{orivec}{\let\if@custvec\iffalse} +\let\if@envcntsame\iffalse +\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue} +\let\if@envcntsect\iffalse +\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} +\let\if@runhead\iffalse +\DeclareOption{runningheads}{\let\if@runhead\iftrue} + +\let\if@openright\iftrue +\let\if@openbib\iffalse +\DeclareOption{openbib}{\let\if@openbib\iftrue} + +% languages +\let\switcht@@therlang\relax +\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}} +\def\ds@francais{\def\switcht@@therlang{\switcht@francais}} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} + +\ProcessOptions + +\LoadClass[twoside]{article} +\RequirePackage{multicol} % needed for the list of participants, index +\RequirePackage{aliascnt} + +\setlength{\textwidth}{12.2cm} +\setlength{\textheight}{19.3cm} +\renewcommand\@pnumwidth{2em} +\renewcommand\@tocrmarg{3.5em} +% +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima #3\relax + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \par}% + \fi} +% +\def\switcht@albion{% +\def\abstractname{Abstract.} +\def\ackname{Acknowledgments.} +\def\andname{and} +\def\lastandname{\unskip, and} +\def\appendixname{Appendix} +\def\chaptername{Chapter} +\def\claimname{Claim} +\def\conjecturename{Conjecture} +\def\contentsname{Table of Contents} +\def\corollaryname{Corollary} +\def\definitionname{Definition} +\def\discintname{Disclosure of Interests.} +\def\examplename{Example} +\def\exercisename{Exercise} +\def\figurename{Fig.} +\def\keywordname{{\bf Keywords:}} +\def\indexname{Index} +\def\lemmaname{Lemma} +\def\contriblistname{List of Contributors} +\def\listfigurename{List of Figures} +\def\listtablename{List of Tables} +\def\mailname{{\it Correspondence to\/}:} +\def\noteaddname{Note added in proof} +\def\notename{Note} +\def\partname{Part} +\def\problemname{Problem} +\def\proofname{Proof} +\def\propertyname{Property} +\def\propositionname{Proposition} +\def\questionname{Question} +\def\remarkname{Remark} +\def\seename{see} +\def\solutionname{Solution} +\def\subclassname{{\it Subject Classifications\/}:} +\def\tablename{Table} +\def\theoremname{Theorem}} +\switcht@albion +% Names of theorem like environments are already defined +% but must be translated if another language is chosen +% +% French section +\def\switcht@francais{%\typeout{On parle francais.}% + \def\abstractname{R\'esum\'e.}% + \def\ackname{Remerciements.}% + \def\andname{et}% + \def\lastandname{ et}% + \def\appendixname{Appendice}% + \def\chaptername{Chapitre}% + \def\claimname{Pr\'etention}% + \def\conjecturename{Hypoth\`ese}% + \def\contentsname{Table des mati\`eres}% + \def\corollaryname{Corollaire}% + \def\definitionname{D\'efinition}% + \def\discintname{Mention des Int\'{e}r\^{e}ts.} + \def\examplename{Exemple}% + \def\exercisename{Exercice}% + \def\figurename{Fig.}% + \def\keywordname{{\bf Mots-cl\'e:}}% + \def\indexname{Index}% + \def\lemmaname{Lemme}% + \def\contriblistname{Liste des contributeurs}% + \def\listfigurename{Liste des figures}% + \def\listtablename{Liste des tables}% + \def\mailname{{\it Correspondence to\/}:}% + \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% + \def\notename{Remarque}% + \def\partname{Partie}% + \def\problemname{Probl\`eme}% + \def\proofname{Preuve}% + \def\propertyname{Caract\'eristique}% +%\def\propositionname{Proposition}% + \def\questionname{Question}% + \def\remarkname{Remarque}% + \def\seename{voir}% + \def\solutionname{Solution}% + \def\subclassname{{\it Subject Classifications\/}:}% + \def\tablename{Tableau}% + \def\theoremname{Th\'eor\`eme}% +} +% +% German section +\def\switcht@deutsch{%\typeout{Man spricht deutsch.}% + \def\abstractname{Zusammenfassung.}% + \def\ackname{Danksagung.}% + \def\andname{und}% + \def\lastandname{ und}% + \def\appendixname{Anhang}% + \def\chaptername{Kapitel}% + \def\claimname{Behauptung}% + \def\conjecturename{Hypothese}% + \def\contentsname{Inhaltsverzeichnis}% + \def\corollaryname{Korollar}% +%\def\definitionname{Definition}% + \def\discintname{Offenlegung von Interessen.} + \def\examplename{Beispiel}% + \def\exercisename{\"Ubung}% + \def\figurename{Abb.}% + \def\keywordname{{\bf Schl\"usselw\"orter:}}% + \def\indexname{Index}% +%\def\lemmaname{Lemma}% + \def\contriblistname{Mitarbeiter}% + \def\listfigurename{Abbildungsverzeichnis}% + \def\listtablename{Tabellenverzeichnis}% + \def\mailname{{\it Correspondence to\/}:}% + \def\noteaddname{Nachtrag}% + \def\notename{Anmerkung}% + \def\partname{Teil}% +%\def\problemname{Problem}% + \def\proofname{Beweis}% + \def\propertyname{Eigenschaft}% +%\def\propositionname{Proposition}% + \def\questionname{Frage}% + \def\remarkname{Anmerkung}% + \def\seename{siehe}% + \def\solutionname{L\"osung}% + \def\subclassname{{\it Subject Classifications\/}:}% + \def\tablename{Tabelle}% +%\def\theoremname{Theorem}% +} + +% Ragged bottom for the actual page +\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil +\global\let\@textbottom\relax}} + +\renewcommand\small{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \parsep 0\p@ \@plus1\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep0\p@}% + \belowdisplayskip \abovedisplayskip +} + +% Switch to small font size for the credits at the end of the paper +% (i.e. Acknowlegments and Disclosure of Interests) +\newenvironment{credits}{% +\begingroup\small% +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-12\p@ \@plus -4\p@ \@minus -4\p@}% + {-0.5em \@plus -0.22em \@minus -0.1em}% + {\normalfont\small\bfseries\boldmath}} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {-8\p@ \@plus -4\p@ \@minus -4\p@}% + {-0.5em \@plus -0.22em \@minus -0.1em}% + {\normalfont\small\itshape}}% +}{\endgroup} + +\frenchspacing +\widowpenalty=10000 +\clubpenalty=10000 + +\setlength\oddsidemargin {63\p@} +\setlength\evensidemargin {63\p@} +\setlength\marginparwidth {90\p@} + +\setlength\headsep {16\p@} + +\setlength\footnotesep{7.7\p@} +\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {8mm\@plus 2\p@ \@minus 2\p@} + +\setcounter{secnumdepth}{2} + +\newcounter {chapter} +\renewcommand\thechapter {\@arabic\c@chapter} + +\newif\if@mainmatter \@mainmattertrue +\newcommand\frontmatter{\cleardoublepage + \@mainmatterfalse\pagenumbering{Roman}} +\newcommand\mainmatter{\cleardoublepage + \@mainmattertrue\pagenumbering{arabic}} +\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi + \@mainmatterfalse} + +\renewcommand\part{\cleardoublepage + \thispagestyle{empty}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \null\vfil + \secdef\@part\@spart} + +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries \partname~\thepart + \par + \vskip 20\p@ + \fi + \Huge \bfseries #2\par}% + \@endpart} +\def\@spart#1{% + {\centering + \interlinepenalty \@M + \normalfont + \Huge \bfseries #1\par}% + \@endpart} +\def\@endpart{\vfil\newpage + \if@twoside + \null + \thispagestyle{empty}% + \newpage + \fi + \if@tempswa + \twocolumn + \fi} + +\newcommand\chapter{\clearpage + \thispagestyle{empty}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi} +\def\@makechapterhead#1{% +% \vspace*{50\p@}% + {\centering + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \large\bfseries \@chapapp{} \thechapter + \par\nobreak + \vskip 20\p@ + \fi + \fi + \interlinepenalty\@M + \Large \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\def\@schapter#1{\if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi} +\def\@makeschapterhead#1{% +% \vspace*{50\p@}% + {\centering + \normalfont + \interlinepenalty\@M + \Large \bfseries #1\par\nobreak + \vskip 40\p@ + }} + +\renewcommand\section{\@startsection{section}{1}{\z@}% + {-18\p@ \@plus -4\p@ \@minus -4\p@}% + {12\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\large\bfseries\boldmath + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-18\p@ \@plus -4\p@ \@minus -4\p@}% + {8\p@ \@plus 4\p@ \@minus 4\p@}% + {\normalfont\normalsize\bfseries\boldmath + \rightskip=\z@ \@plus 8em\pretolerance=10000 }} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-18\p@ \@plus -4\p@ \@minus -4\p@}% + {-0.5em \@plus -0.22em \@minus -0.1em}% + {\normalfont\normalsize\bfseries\boldmath}} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {-12\p@ \@plus -4\p@ \@minus -4\p@}% + {-0.5em \@plus -0.22em \@minus -0.1em}% + {\normalfont\normalsize\itshape}} +\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use + \string\subparagraph\space with this class}\vskip0.5cm +You should not use \verb|\subparagraph| with this class.\vskip0.5cm} + +\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00} +\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01} +\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02} +\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03} +\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04} +\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05} +\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06} +\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07} +\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08} +\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09} +\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A} + +\let\footnotesize\small + +\if@custvec +\DeclareRobustCommand\vec[1]{\mathchoice{\mbox{\boldmath$\displaystyle#1$}} +{\mbox{\boldmath$\textstyle#1$}} +{\mbox{\boldmath$\scriptstyle#1$}} +{\mbox{\boldmath$\scriptscriptstyle#1$}}} +\fi + +\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}} +\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil +\penalty50\hskip1em\null\nobreak\hfil\squareforqed +\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi} + +\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr\gets\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets +\cr\to\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +\gets\cr\to\cr}}}}} +\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr +\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr +\noalign{\vskip1pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +<\cr +\noalign{\vskip0.9pt}=\cr}}}}} +\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr +\noalign{\vskip1.2pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr +\noalign{\vskip1pt}=\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr +\noalign{\vskip0.9pt}=\cr}}}}} +\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip +\halign{\hfil +$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr +>\cr\noalign{\vskip-1pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.8pt}<\cr}}} +{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr +>\cr\noalign{\vskip-0.3pt}<\cr}}}}} +\def\bbbr{{\rm I\!R}} %reelle Zahlen +\def\bbbm{{\rm I\!M}} +\def\bbbn{{\rm I\!N}} %natuerliche Zahlen +\def\bbbf{{\rm I\!F}} +\def\bbbh{{\rm I\!H}} +\def\bbbk{{\rm I\!K}} +\def\bbbp{{\rm I\!P}} +\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l} +{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}} +\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox +to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}} +\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise +0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}} +\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm +T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox +to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}} +\def\bbbs{{\mathchoice +{\setbox0=\hbox{$\displaystyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\textstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox +to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptstyle \rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox +to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}} +{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox +to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox +to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} +\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} +{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}} +{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}} +{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}} + +\let\ts\, + +\setlength\leftmargini {17\p@} +\setlength\leftmargin {\leftmargini} +\setlength\leftmarginii {\leftmargini} +\setlength\leftmarginiii {\leftmargini} +\setlength\leftmarginiv {\leftmargini} +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} + +\def\@listI{\leftmargin\leftmargini + \parsep 0\p@ \@plus1\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep0\p@} +\let\@listi\@listI +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 0\p@ \@plus2\p@ \@minus\p@} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 0\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@} + +\renewcommand\labelitemi{\normalfont\bfseries --} +\renewcommand\labelitemii{$\m@th\bullet$} + +\setlength\arraycolsep{1.4\p@} +\setlength\tabcolsep{1.4\p@} + +\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}% + {{\contentsname}}} + \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}} + \def\lastand{\ifnum\value{auco}=2\relax + \unskip{} \andname\ + \else + \unskip \lastandname\ + \fi}% + \def\and{\stepcounter{@auth}\relax + \ifnum\value{@auth}=\value{auco}% + \lastand + \else + \unskip, + \fi}% + \@starttoc{toc}\if@restonecol\twocolumn\fi} + +\def\l@part#1#2{\addpenalty{\@secpenalty}% + \addvspace{2em plus\p@}% % space above part line + \begingroup + \parindent \z@ + \rightskip \z@ plus 5em + \hrule\vskip5pt + \large % same size as for a contribution heading + \bfseries\boldmath % set line in boldface + \leavevmode % TeX command to enter horizontal mode. + #1\par + \vskip5pt + \hrule + \vskip1pt + \nobreak % Never break after part entry + \endgroup} + +\def\@dotsep{2} + +\let\phantomsection=\relax + +\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else +{}\fi} + +\def\addnumcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline + {\thechapter}#3}{\thepage}\hyperhrefextend}}% +\def\addcontentsmark#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}% +\def\addcontentsmarkwop#1#2#3{% +\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}% + +\def\@adcmk[#1]{\ifcase #1 \or +\def\@gtempa{\addnumcontentsmark}% + \or \def\@gtempa{\addcontentsmark}% + \or \def\@gtempa{\addcontentsmarkwop}% + \fi\@gtempa{toc}{chapter}% +} +\def\addtocmark{% +\phantomsection +\@ifnextchar[{\@adcmk}{\@adcmk[3]}% +} + +\def\l@chapter#1#2{\addpenalty{-\@highpenalty} + \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup + \parindent \z@ \rightskip \@tocrmarg + \advance\rightskip by 0pt plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip + {\large\bfseries\boldmath#1}\ifx0#2\hfil\null + \else + \nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern + \@dotsep mu$}\hfill + \nobreak\hbox to\@pnumwidth{\hss #2}% + \fi\par + \penalty\@highpenalty \endgroup} + +\def\l@title#1#2{\addpenalty{-\@highpenalty} + \addvspace{8pt plus 1pt} + \@tempdima \z@ + \begingroup + \parindent \z@ \rightskip \@tocrmarg + \advance\rightskip by 0pt plus 2cm + \parfillskip -\rightskip \pretolerance=10000 + \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip + #1\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern + \@dotsep mu$}\hfill + \nobreak\hbox to\@pnumwidth{\hss #2}\par + \penalty\@highpenalty \endgroup} + +\def\l@author#1#2{\addpenalty{\@highpenalty} + \@tempdima=15\p@ %\z@ + \begingroup + \parindent \z@ \rightskip \@tocrmarg + \advance\rightskip by 0pt plus 2cm + \pretolerance=10000 + \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip + \textit{#1}\par + \penalty\@highpenalty \endgroup} + +\setcounter{tocdepth}{0} +\newdimen\tocchpnum +\newdimen\tocsecnum +\newdimen\tocsectotal +\newdimen\tocsubsecnum +\newdimen\tocsubsectotal +\newdimen\tocsubsubsecnum +\newdimen\tocsubsubsectotal +\newdimen\tocparanum +\newdimen\tocparatotal +\newdimen\tocsubparanum +\tocchpnum=\z@ % no chapter numbers +\tocsecnum=15\p@ % section 88. plus 2.222pt +\tocsubsecnum=23\p@ % subsection 88.8 plus 2.222pt +\tocsubsubsecnum=27\p@ % subsubsection 88.8.8 plus 1.444pt +\tocparanum=35\p@ % paragraph 88.8.8.8 plus 1.666pt +\tocsubparanum=43\p@ % subparagraph 88.8.8.8.8 plus 1.888pt +\def\calctocindent{% +\tocsectotal=\tocchpnum +\advance\tocsectotal by\tocsecnum +\tocsubsectotal=\tocsectotal +\advance\tocsubsectotal by\tocsubsecnum +\tocsubsubsectotal=\tocsubsectotal +\advance\tocsubsubsectotal by\tocsubsubsecnum +\tocparatotal=\tocsubsubsectotal +\advance\tocparatotal by\tocparanum} +\calctocindent + +\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}} +\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}} +\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}} +\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}} +\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}} + +\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}} + \@starttoc{lof}\if@restonecol\twocolumn\fi} +\def\l@figure{\@dottedtocline{1}{0em}{1.5em}} + +\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}} + \@starttoc{lot}\if@restonecol\twocolumn\fi} +\let\l@table\l@figure + +\renewcommand\listoffigures{% + \section*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% + } + +\renewcommand\listoftables{% + \section*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% + } + +\ifx\oribibl\undefined +\ifx\citeauthoryear\undefined +\renewenvironment{thebibliography}[1] + {\section*{\refname} + \def\@biblabel##1{##1.} + \small + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \if@openbib + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + \fi + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \if@openbib + \renewcommand\newblock{\par}% + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw + {\let\protect\noexpand\immediate + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} +\newcount\@tempcntc +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi + \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do + {\@ifundefined + {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries + ?}\@warning + {Citation `\@citeb' on page \thepage \space undefined}}% + {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}% + \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne + \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}% + \else + \advance\@tempcntb\@ne + \ifnum\@tempcntb=\@tempcntc + \else\advance\@tempcntb\m@ne\@citeo + \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}} +\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else + \@citea\def\@citea{,\,\hskip\z@skip}% + \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else + {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else + \def\@citea{--}\fi + \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi} +\else +\renewenvironment{thebibliography}[1] + {\section*{\refname} + \small + \list{}% + {\settowidth\labelwidth{}% + \leftmargin\parindent + \itemindent=-\parindent + \labelsep=\z@ + \if@openbib + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + \fi + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{}}% + \if@openbib + \renewcommand\newblock{\par}% + \else + \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}% + \fi + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.=\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + \def\@cite#1{#1}% + \def\@lbibitem[#1]#2{\item[]\if@filesw + {\def\protect##1{\string ##1\space}\immediate + \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} + \fi +\else +\@cons\@openbib@code{\noexpand\small} +\fi + +\def\idxquad{\hskip 10\p@}% space that divides entry from number + +\def\@idxitem{\par\hangindent 10\p@} + +\def\subitem{\par\setbox0=\hbox{--\enspace}% second order + \noindent\hangindent\wd0\box0}% index entry + +\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third + \noindent\hangindent\wd0\box0}% order index entry + +\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax} + +\renewenvironment{theindex} + {\@mkboth{\indexname}{\indexname}% + \thispagestyle{empty}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\par + \def\,{\relax\ifmmode\mskip\thinmuskip + \else\hskip0.2em\ignorespaces\fi}% + \normalfont\small + \begin{multicols}{2}[\@makeschapterhead{\indexname}]% + } + {\end{multicols}} + +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width 2truecm + \kern2.6\p@} + \newdimen\fnindent + \fnindent1em +\long\def\@makefntext#1{% + \parindent \fnindent% + \leftskip \fnindent% + \noindent + \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} + +\long\def\@makecaption#1#2{% + \small + \vskip\abovecaptionskip + \sbox\@tempboxa{{\bfseries #1.} #2}% + \ifdim \wd\@tempboxa >\hsize + {\bfseries #1.} #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} + +\def\fps@figure{htbp} +\def\fnum@figure{\figurename\thinspace\thefigure} +\def \@floatboxreset {% + \reset@font + \small + \@setnobreak + \@setminipage +} +\def\fps@table{htbp} +\def\fnum@table{\tablename~\thetable} +\renewenvironment{table} + {\setlength\abovecaptionskip{0\p@}% + \setlength\belowcaptionskip{10\p@}% + \@float{table}} + {\end@float} +\renewenvironment{table*} + {\setlength\abovecaptionskip{0\p@}% + \setlength\belowcaptionskip{10\p@}% + \@dblfloat{table}} + {\end@dblfloat} + +\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname + ext@#1\endcsname}{#1}{\protect\numberline{\csname + the#1\endcsname}{\ignorespaces #2}}\begingroup + \@parboxrestore + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} + +% LaTeX does not provide a command to enter the authors institute +% addresses. The \institute command is defined here. + +\newcounter{@inst} +\newcounter{@auth} +\newcounter{auco} +\newdimen\instindent +\newbox\authrun +\newtoks\authorrunning +\newtoks\tocauthor +\newbox\titrun +\newtoks\titlerunning +\newtoks\toctitle + +\def\clearheadinfo{\gdef\@author{No Author Given}% + \gdef\@title{No Title Given}% + \gdef\@subtitle{}% + \gdef\@institute{No Institute Given}% + \gdef\@thanks{}% + \global\titlerunning={}\global\authorrunning={}% + \global\toctitle={}\global\tocauthor={}} + +\def\institute#1{\gdef\@institute{#1}} + +\def\institutename{\par + \begingroup + \parskip=\z@ + \parindent=\z@ + \setcounter{@inst}{1}% + \def\and{\par\stepcounter{@inst}% + \noindent$^{\the@inst}$\enspace\ignorespaces}% + \setbox0=\vbox{\def\thanks##1{}\@institute}% + \ifnum\c@@inst=1\relax + \gdef\fnnstart{0}% + \else + \xdef\fnnstart{\c@@inst}% + \setcounter{@inst}{1}% + \noindent$^{\the@inst}$\enspace + \fi + \ignorespaces + \@institute\par + \endgroup} + +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or + {\star\star\star}\or \dagger\or \ddagger\or + \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger + \or \ddagger\ddagger \else\@ctrerr\fi}} + +\def\inst#1{\unskip$^{#1}$} +\def\orcidID#1{\unskip$^{[#1]}$} % added MR 2018-03-10 +\def\fnmsep{\unskip$^,$} +\def\email#1{{\tt#1}} + +\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}% +\@ifpackageloaded{babel}{% +\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% +\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% +\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% +\@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}% +}{\switcht@@therlang}% +\providecommand{\keywords}[1]{\def\and{{\textperiodcentered} }% +\par\addvspace\baselineskip +\noindent\keywordname\enspace\ignorespaces#1}% +\@ifpackageloaded{hyperref}{% +\def\doi#1{\href{https://doi.org/\detokenize{#1}}{\url{https://doi.org/#1}}}}{ +\def\doi#1{https://doi.org/\detokenize{#1}}} +} +\def\homedir{\~{ }} + +\def\subtitle#1{\gdef\@subtitle{#1}} +\clearheadinfo +% +%%% to avoid hyperref warnings +\providecommand*{\toclevel@author}{999} +%%% to make title-entry parent of section-entries +\providecommand*{\toclevel@title}{0} +% +\renewcommand\maketitle{\newpage +\phantomsection + \refstepcounter{chapter}% + \stepcounter{section}% + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \setcounter{figure}{0} + \setcounter{table}{0} + \setcounter{equation}{0} + \setcounter{footnote}{0}% + \begingroup + \parindent=\z@ + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{empty}\@thanks +% + \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% + \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% + \instindent=\hsize + \advance\instindent by-\headlineindent + \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else + \addcontentsline{toc}{title}{\the\toctitle}\fi + \if@runhead + \if!\the\titlerunning!\else + \edef\@title{\the\titlerunning}% + \fi + \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% + \ifdim\wd\titrun>\instindent + \typeout{Title too long for running head. Please supply}% + \typeout{a shorter form with \string\titlerunning\space prior to + \string\maketitle}% + \global\setbox\titrun=\hbox{\small\rm + Title Suppressed Due to Excessive Length}% + \fi + \xdef\@title{\copy\titrun}% + \fi +% + \if!\the\tocauthor!\relax + {\def\and{\noexpand\protect\noexpand\and}% + \def\inst##1{}% added MR 2017-09-20 to remove inst numbers from the TOC + \def\orcidID##1{}% added MR 2017-09-20 to remove ORCID ids from the TOC + \protected@xdef\toc@uthor{\@author}}% + \else + \def\\{\noexpand\protect\noexpand\newline}% + \protected@xdef\scratch{\the\tocauthor}% + \protected@xdef\toc@uthor{\scratch}% + \fi + \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}% + \addcontentsline{toc}{author}{\toc@uthor}% + \if@runhead + \if!\the\authorrunning! + \value{@inst}=\value{@auth}% + \setcounter{@auth}{1}% + \else + \edef\@author{\the\authorrunning}% + \fi + \global\setbox\authrun=\hbox{\def\inst##1{}% added MR 2017-09-20 to remove inst numbers from the runninghead + \def\orcidID##1{}% added MR 2017-09-20 to remove ORCID ids from the runninghead + \small\unboldmath\@author\unskip}% + \ifdim\wd\authrun>\instindent + \typeout{Names of authors too long for running head. Please supply}% + \typeout{a shorter form with \string\authorrunning\space prior to + \string\maketitle}% + \global\setbox\authrun=\hbox{\small\rm + Authors Suppressed Due to Excessive Length}% + \fi + \xdef\@author{\copy\authrun}% + \markboth{\@author}{\@title}% + \fi + \endgroup + \setcounter{footnote}{\fnnstart}% + \clearheadinfo} +% +\def\@maketitle{\newpage + \markboth{}{}% + \def\lastand{\ifnum\value{@inst}=2\relax + \unskip{} \andname\ + \else + \unskip \lastandname\ + \fi}% + \def\and{\stepcounter{@auth}\relax + \ifnum\value{@auth}=\value{@inst}% + \lastand + \else + \unskip, + \fi}% + \begin{center}% + \let\newline\\ + {\Large \bfseries\boldmath + \pretolerance=10000 + \@title \par}\vskip .8cm +\if!\@subtitle!\else {\large \bfseries\boldmath + \vskip -.65cm + \pretolerance=10000 + \@subtitle \par}\vskip .8cm\fi + \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}% + \def\thanks##1{}\@author}% + \global\value{@inst}=\value{@auth}% + \global\value{auco}=\value{@auth}% + \setcounter{@auth}{1}% +{\lineskip .5em +\noindent\ignorespaces +\@author\vskip.35cm} + {\small\institutename} + \end{center}% + } + +% definition of the "\spnewtheorem" command. +% +% Usage: +% +% \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font} +% or \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font} +% or \spnewtheorem*{env_nam}{caption}{cap_font}{body_font} +% +% New is "cap_font" and "body_font". It stands for +% fontdefinition of the caption and the text itself. +% +% "\spnewtheorem*" gives a theorem without number. +% +% A defined spnewthoerem environment is used as described +% by Lamport. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\edef\@thmcountersep{} +\edef\@thmcounterend{.} + +\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}} + +% definition of \spnewtheorem with number + +\def\@spnthm#1#2{\@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}} +\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}} + +% theorem-like environment with standard counter +\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}% + \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}% + \global\@namedef{end#1}{\@endtheorem}}} + +% theorem-like environment with section-wise counter (envcountsect) +\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname + {\@definecounter{#1}\@addtoreset{#1}{#3}% + \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% + \global\@namedef{end#1}{\@endtheorem}}} + +% theorem-like environment with shared counter (envcountsame) +\def\@spothm#1[#2]#3#4#5{% + \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% + {\expandafter\@ifdefinable\csname #1\endcsname + {\newaliascnt{#1}{#2}% + \expandafter\xdef\csname #1name\endcsname{#3}% + \if@envcntsect + % the following line, introduced in v2.24, fixes incorrect hypertexnames + % when envcountsect is used in combination with envcountsame + \@addtoreset{#1}{section} + \fi + \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% + \global\@namedef{end#1}{\@endtheorem}}}} + + + +\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ +\refstepcounter{#1}% +\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} + +\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}% + \ignorespaces} + +\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname + the#1\endcsname}{#5}{#3}{#4}\ignorespaces} + +\def\@spbegintheorem#1#2#3#4{\trivlist + \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4} + +\def\@spopargbegintheorem#1#2#3#4#5{\trivlist + \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5} + +% definition of \spnewtheorem* without number + +\def\@sthm#1#2{\@Ynthm{#1}{#2}} + +\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}% + \expandafter\xdef\csname #1name\endcsname{#2}% + \global\@namedef{end#1}{\@endtheorem}}} + +\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@ +\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}} + +\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces} + +\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1} + {#4}{#2}{#3}\ignorespaces} + +\def\@Begintheorem#1#2#3{#3\trivlist + \item[\hskip\labelsep{#2#1\@thmcounterend}]} + +\def\@Opargbegintheorem#1#2#3#4{#4\trivlist + \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }} + +\if@envcntsect + \def\@thmcountersep{.} + \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape} +\else + \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape} + \if@envcntreset + \@addtoreset{theorem}{section} + \else + \@addtoreset{theorem}{chapter} + \fi +\fi + +%definition of various theorem environments +\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily} +\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily} +\if@envcntsame % alle Umgebungen wie Theorem. + \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}} +\else % alle Umgebungen mit eigenem Zaehler + \if@envcntsect % mit section numeriert + \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}} + \else % nicht mit section numeriert + \if@envcntreset + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} + \@addtoreset{#1}{section}} + \else + \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4} + \@addtoreset{#1}{chapter}}% + \fi + \fi +\fi +\spn@wtheorem{case}{Case}{\itshape}{\rmfamily} +\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily} +\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape} +\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape} +\spn@wtheorem{example}{Example}{\itshape}{\rmfamily} +\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily} +\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape} +\spn@wtheorem{note}{Note}{\itshape}{\rmfamily} +\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily} +\spn@wtheorem{property}{Property}{\itshape}{\rmfamily} +\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape} +\spn@wtheorem{question}{Question}{\itshape}{\rmfamily} +\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily} +\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily} + +\def\@takefromreset#1#2{% + \def\@tempa{#1}% + \let\@tempd\@elt + \def\@elt##1{% + \def\@tempb{##1}% + \ifx\@tempa\@tempb\else + \@addtoreset{##1}{#2}% + \fi}% + \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname + \expandafter\def\csname cl@#2\endcsname{}% + \@tempc + \let\@elt\@tempd} + +\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist + \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5} + \def\@Opargbegintheorem##1##2##3##4{##4\trivlist + \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }} + } + +\renewenvironment{abstract}{% + \list{}{\advance\topsep by0.35cm\relax\small + \leftmargin=1cm + \labelwidth=\z@ + \listparindent=\z@ + \itemindent\listparindent + \rightmargin\leftmargin}\item[\hskip\labelsep + \bfseries\abstractname]} + {\endlist} + +\newdimen\headlineindent % dimension for space between +\headlineindent=1.166cm % number and text of headings. + +\def\ps@headings{\let\@mkboth\@gobbletwo + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% + \leftmark\hfil} + \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}% + \llap{\thepage}} + \def\chaptermark##1{}% + \def\sectionmark##1{}% + \def\subsectionmark##1{}} + +\def\ps@titlepage{\let\@mkboth\@gobbletwo + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}% + \hfil} + \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}% + \llap{\thepage}} + \def\chaptermark##1{}% + \def\sectionmark##1{}% + \def\subsectionmark##1{}} + +\if@runhead\ps@headings\else +\ps@empty\fi + +\setlength\arraycolsep{1.4\p@} +\setlength\tabcolsep{1.4\p@} + +\endinput +%end of file llncs.cls diff --git a/orcid.pdf b/orcid.pdf deleted file mode 100644 index c31b039..0000000 Binary files a/orcid.pdf and /dev/null differ diff --git a/splncs04.bst b/splncs04.bst new file mode 100644 index 0000000..7d63c49 --- /dev/null +++ b/splncs04.bst @@ -0,0 +1,1548 @@ +%% BibTeX bibliography style `splncs04' +%% +%% BibTeX bibliography style for use with numbered references in +%% Springer Verlag's "Lecture Notes in Computer Science" series. +%% (See Springer's documentation for llncs.cls for +%% more details of the suggested reference format.) Note that this +%% file will not work for author-year style citations. +%% +%% Use \documentclass{llncs} and \bibliographystyle{splncs04}, and cite +%% a reference with (e.g.) \cite{smith77} to get a "[1]" in the text. +%% +%% This file comes to you courtesy of Maurizio "Titto" Patrignani of +%% Dipartimento di Informatica e Automazione Universita' Roma Tre +%% +%% ================================================================================================ +%% This was file `titto-lncs-02.bst' produced on Wed Apr 1, 2009 +%% Edited by hand by titto based on `titto-lncs-01.bst' (see below) +%% +%% CHANGES (with respect to titto-lncs-01.bst): +%% - Removed the call to \urlprefix (thus no "URL" string is added to the output) +%% ================================================================================================ +%% This was file `titto-lncs-01.bst' produced on Fri Aug 22, 2008 +%% Edited by hand by titto based on `titto.bst' (see below) +%% +%% CHANGES (with respect to titto.bst): +%% - Removed the "capitalize" command for editors string "(eds.)" and "(ed.)" +%% - Introduced the functions titto.bbl.pages and titto.bbl.page for journal pages (without "pp.") +%% - Added a new.sentence command to separate with a dot booktitle and series in the inproceedings +%% - Commented all new.block commands before urls and notes (to separate them with a comma) +%% - Introduced the functions titto.bbl.volume for handling journal volumes (without "vol." label) +%% - Used for editors the same name conventions used for authors (see function format.in.ed.booktitle) +%% - Removed a \newblock to avoid long spaces between title and "In: ..." +%% - Added function titto.space.prefix to add a space instead of "~" after the (removed) "vol." label +%% - Added doi +%% ================================================================================================ +%% This was file `titto.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `vonx,nm-rvvc,yr-par,jttl-rm,volp-com,jwdpg,jwdvol,numser,ser-vol,jnm-x,btit-rm,bt-rm,edparxc,bkedcap,au-col,in-col,fin-bare,pp,ed,abr,mth-bare,xedn,jabr,and-com,and-com-ed,xand,url,url-blk,em-x,nfss,') +%% ---------------------------------------- +%% *** Tentative .bst file for Springer LNCS *** +%% +%% Copyright 1994-2007 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is a numerical citation style, and as such is standard LaTeX. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [#] + % \cite[chap. 2]{key} ==>> [#, chap. 2] + % where # is a number determined by the ordering in the reference list. + % The order in the reference list is alphabetical by authors. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + doi + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ +% newline$ +% "\newblock " write$ % removed for titto-lncs-01 + " " write$ % to avoid long spaces between title and "In: ..." + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + + +FUNCTION {add.colon} +{ duplicate$ empty$ + 'skip$ + { ":" * add.blank } + if$ +} + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +STRINGS {z} +FUNCTION {remove.dots} +{ 'z := + "" + { z empty$ not } + { z #1 #1 substring$ + z #2 global.max$ substring$ 'z := + duplicate$ "." = 'pop$ + { * } + if$ + } + while$ +} +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ skip$ } + +FUNCTION {embolden} +{ duplicate$ empty$ +{ pop$ "" } +{ "\textbf{" swap$ * "}" * } +if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #5 < + { "~" } + { " " } + if$ + swap$ +} +FUNCTION {titto.space.prefix} % always introduce a space +{ duplicate$ text.length$ #3 < + { " " } + { " " } + if$ + swap$ +} + + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {titto.bbl.volume} % for handling journals +{ "" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {titto.bbl.pages} % for journals +{ "" } + +FUNCTION {titto.bbl.page} % for journals +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Software Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput. Aid. Des."} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphic."} + +MACRO {toms} {"ACM Trans. Math. Software"} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {format.url} +{ url empty$ + { "" } +% { "\urlprefix\url{" url * "}" * } + { "\url{" url * "}" * } % changed in titto-lncs-02.bst + if$ +} + +FUNCTION {format.doi} % added in splncs04.bst +{ doi empty$ + { "" } + { after.block 'output.state := + "\doi{" doi * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + + +STRINGS { bibinfo} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f{.}.}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + "," * + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f{.}.~}{vv~}{ll}{ jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + "," * + t "others" = + { + + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor +% capitalize + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ + month "month" bibinfo.check + duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + remove.dots + } + if$ + duplicate$ empty$ + 'skip$ + { + before.all 'output.state := + " (" swap$ * ")" * + } + if$ +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + pages multi.page.check + 'titto.bbl.pages + 'titto.bbl.page + if$ + swap$ tie.or.space.prefix + "pages" bibinfo.check + * * + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} % this function is used only for journal entries +{ volume field.or.null embolden + duplicate$ empty$ 'skip$ + { +% bbl.volume swap$ tie.or.space.prefix + titto.bbl.volume swap$ titto.space.prefix +% rationale for the change above: for journals you don't want "vol." label +% hence it does not make sense to attach the journal number to the label when +% it is short + "volume" bibinfo.check + * * + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { +% editor "editor" format.names.ed duplicate$ empty$ 'pop$ % changed by titto + editor "editor" format.names duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor +% capitalize + "(" swap$ * ") " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + key duplicate$ empty$ + { pop$ + journal duplicate$ empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } + { "journal" bibinfo.check emphasize word.in swap$ * } + if$ + } + { word.in swap$ * " " *} + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + "editor" bibinfo.check + editor num.names$ duplicate$ + #2 > + { pop$ + "editor" bibinfo.check + " " * bbl.etal + * + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + "editor" bibinfo.check + " " * bbl.etal + * + } + { + bbl.and space.word + * editor #2 "{vv~}{ll}" format.name$ + "editor" bibinfo.check + * + } + if$ + } + if$ + } + if$ +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { format.booktitle duplicate$ empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + } + { word.in swap$ * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + "journal" output.check + add.blank + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + new.sentence + format.number.series output + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + add.colon + new.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date output +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.colon + } + { format.authors output.nonnull + add.colon + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + new.sentence + format.number.series output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.chapter.pages output + new.sentence + format.number.series output + format.publisher.address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence % added by titto + format.bvolume output + format.pages output + new.sentence + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization "organization" bibinfo.check + duplicate$ empty$ 'pop$ + { output + address "address" bibinfo.check output + } + if$ + } + { format.authors output.nonnull } + if$ + add.colon + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address "address" bibinfo.check output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + } + if$ + format.edition output + format.date output +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + add.colon + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished "howpublished" bibinfo.check output + format.date output +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry + empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization "organization" bibinfo.check output + } + { format.editors output.nonnull } + if$ + add.colon + new.block + format.btitle "title" output.check + format.bvolume output + editor empty$ + { publisher empty$ + { format.number.series output } + { + new.sentence + format.number.series output + format.publisher.address output + } + if$ + } + { publisher empty$ + { + new.sentence + format.number.series output + format.organization.address output } + { + new.sentence + format.number.series output + organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + if$ + format.date "year" output.check +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check +% new.block + format.doi output + format.url output +% new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + add.colon + new.block + format.title "title" output.check + format.date output +% new.block + format.url output +% new.block + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} +SORT +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\urlprefix}{URL }" + write$ newline$ + "\providecommand{\doi}[1]{https://doi.org/#1}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `titto.bst'.