commit e8720b872926c7fd2ffb8ed2c86c031807319985 Author: Stroeva Date: Thu Apr 6 13:43:26 2023 +0400 create paper diff --git a/SourceCodeAndAST.png b/SourceCodeAndAST.png new file mode 100644 index 0000000..11fc7d3 Binary files /dev/null and b/SourceCodeAndAST.png differ diff --git a/fig1-eps-converted-to.pdf b/fig1-eps-converted-to.pdf new file mode 100644 index 0000000..5d31404 Binary files /dev/null and b/fig1-eps-converted-to.pdf 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/history.txt b/history.txt new file mode 100644 index 0000000..0e51fd8 --- /dev/null +++ b/history.txt @@ -0,0 +1,148 @@ +Version history for the LLNCS LaTeX2e class + + date filename version action/reason/acknowledgements +---------------------------------------------------------------------------- + 29.5.96 letter.txt beta naming problems (subject index file) + thanks to Dr. Martin Held, Salzburg, AT + + subjindx.ind renamed to subjidx.ind as required + by llncs.dem + + history.txt introducing this file + + 30.5.96 llncs.cls incompatibility with new article.cls of + 1995/12/20 v1.3q Standard LaTeX document class, + \if@openbib is no longer defined, + reported by Ralf Heckmann and Graham Gough + solution by David Carlisle + + 10.6.96 llncs.cls problems with fragile commands in \author field + reported by Michael Gschwind, TU Wien + + 25.7.96 llncs.cls revision a corrects: + wrong size of text area, floats not \small, + some LaTeX generated texts + reported by Michael Sperber, Uni Tuebingen + + 16.4.97 all files 2.1 leaving beta state, + raising version counter to 2.1 + + 8.6.97 llncs.cls 2.1a revision a corrects: + unbreakable citation lists, reported by + Sergio Antoy of Portland State University + +11.12.97 llncs.cls 2.2 "general" headings centered; two new elements + for the article header: \email and \homedir; + complete revision of special environments: + \newtheorem replaced with \spnewtheorem, + introduced the theopargself environment; + two column parts made with multicol package; + add ons to work with the hyperref package + +07.01.98 llncs.cls 2.2 changed \email to simply switch to \tt + +25.03.98 llncs.cls 2.3 new class option "oribibl" to suppress + changes to the thebibliograpy environment + and retain pure LaTeX codes - useful + for most BibTeX applications + +16.04.98 llncs.cls 2.3 if option "oribibl" is given, extend the + thebibliograpy hook with "\small", suggested + by Clemens Ballarin, University of Cambridge + +20.11.98 llncs.cls 2.4 pagestyle "titlepage" - useful for + compilation of whole LNCS volumes + +12.01.99 llncs.cls 2.5 counters of orthogonal numbered special + environments are reset each new contribution + +27.04.99 llncs.cls 2.6 new command \thisbottomragged for the + actual page; indention of the footnote + made variable with \fnindent (default 1em); + new command \url that copys its argument + + 2.03.00 llncs.cls 2.7 \figurename and \tablename made compatible + to babel, suggested by Jo Hereth, TU Darmstadt; + definition of \url moved \AtBeginDocument + (allows for url package of Donald Arseneau), + suggested by Manfred Hauswirth, TU of Vienna; + \large for part entries in the TOC + +16.04.00 llncs.cls 2.8 new option "orivec" to preserve the original + vector definition, read "arrow" accent + +17.01.01 llncs.cls 2.9 hardwired texts made polyglot, + available languages: english (default), + french, german - all are "babel-proof" + +20.06.01 splncs.bst public release of a BibTeX style for LNCS, + nobly provided by Jason Noble + +14.08.01 llncs.cls 2.10 TOC: authors flushleft, + entries without hyphenation; suggested + by Wiro Niessen, Imaging Center - Utrecht + +23.01.02 llncs.cls 2.11 fixed footnote number confusion with + \thanks, numbered institutes, and normal + footnote entries; error reported by + Saverio Cittadini, Istituto Tecnico + Industriale "Tito Sarrocchi" - Siena + +28.01.02 llncs.cls 2.12 fixed footnote fix; error reported by + Chris Mesterharm, CS Dept. Rutgers - NJ + +28.01.02 llncs.cls 2.13 fixed the fix (programmer needs vacation) + +17.08.04 llncs.cls 2.14 TOC: authors indented, smart \and handling + for the TOC suggested by Thomas Gabel + University of Osnabrueck + +07.03.06 splncs.bst fix for BibTeX entries without year; patch + provided by Jerry James, Utah State University + +14.06.06 splncs_srt.bst a sorting BibTeX style for LNCS, feature + provided by Tobias Heindel, FMI Uni-Stuttgart + +16.10.06 llncs.dem 2.3 removed affiliations from \tocauthor demo + +11.12.07 llncs.doc note on online visibility of given e-mail address + +15.06.09 splncs03.bst new BibTeX style compliant with the current + requirements, provided by Maurizio "Titto" + Patrignani of Universita' Roma Tre + +30.03.10 llncs.cls 2.15 fixed broken hyperref interoperability; + patch provided by Sven Koehler, + Hamburg University of Technology + +15.04.10 llncs.cls 2.16 fixed hyperref warning for informatory TOC entries; + introduced \keywords command - finally; + blank removed from \keywordname, flaw reported + by Armin B. Wagner, IGW TU Vienna + +15.04.10 llncs.cls 2.17 fixed missing switch "openright" used by \backmatter; + flaw reported by Tobias Pape, University of Potsdam + +27.09.13 llncs.cls 2.18 fixed "ngerman" incompatibility; solution provided + by Bastian Pfleging, University of Stuttgart + +04.09.17 llncs.cls 2.19 introduced \orcidID command + +10.03.18 llncs.cls 2.20 adjusted \doi according to CrossRef requirements; + TOC: removed affiliation numbers + + splncs04.bst added doi field; + bold journal numbers + + samplepaper.tex new sample paper + + llncsdoc.pdf new LaTeX class documentation + +12.01.22 llncs.cls 2.21 fixed German and French \maketitle, bug reported by + Alexander Malkis, Technical University of Munich; + use detokenized argument in the definition of \doi + to allow underscores in DOIs + +05.09.22 llncs.cls 2.22 robust redefinition of \vec (bold italics), bug + reported by Alexander Malkis, TUM + diff --git a/llncs.cls b/llncs.cls new file mode 100644 index 0000000..de80a15 --- /dev/null +++ b/llncs.cls @@ -0,0 +1,1218 @@ +% LLNCS DOCUMENT CLASS -- version 2.22 (05-Sep-2022) +% 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}[2022/09/05 v2.22 +^^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{Acknowledgement.} +\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\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\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\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 +} + +\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. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\@thmcountersep{} +\def\@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}}} + +\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}}} + +\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}}} + +\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}% + \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 divers 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/llncsdoc.pdf b/llncsdoc.pdf new file mode 100644 index 0000000..e2f638a Binary files /dev/null and b/llncsdoc.pdf differ diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..32f7aec --- /dev/null +++ b/readme.txt @@ -0,0 +1,20 @@ +Dear llncs user, + +The files in this directory belong to the LaTeX2e package +for Springer's Lecture Notes in Computer Science (LNCS) and +other proceedings book series. + +It consists of the following files: + + readme.txt this file + + history.txt the version history of the package + + llncs.cls the LaTeX2e document class + + samplepaper.tex a sample paper + fig1.eps a figure used in the sample paper + + llncsdoc.pdf the documentation of the class (PDF version) + + splncs04.bst current LNCS BibTeX style with alphabetic sorting diff --git a/samplepaper.aux b/samplepaper.aux new file mode 100644 index 0000000..f24201f --- /dev/null +++ b/samplepaper.aux @@ -0,0 +1,38 @@ +\relax +\@writefile{toc}{\contentsline {title}{Search for Structurally Similar Projects of Software Systems}{1}{}\protected@file@percent } +\@writefile{toc}{\authcount {2}} +\@writefile{toc}{\contentsline {author}{Aleksey Filippov \and Julia Stroeva}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{}\protected@file@percent } +\citation{nguyen2018crosssim} +\citation{aleksey2020approach,beniwal2021npmrec,nadezhda2019approach,nguyen2018crosssim,nguyen2020automated} +\citation{ali2011overview} +\citation{chae2013software} +\@writefile{toc}{\contentsline {section}{\numberline {2}State of the art}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}The Proposed Algorithm for Analyzing the Structure of the Source Code}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}The Proposed Algorithm for Determining the Structural Similarity of Software Projects}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}State of the art}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}A Subsection Sample}{3}{}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Sample source code and its AST.}}{4}{}\protected@file@percent } +\newlabel{fig1}{{1}{4}} +\@writefile{toc}{\contentsline {subsubsection}{Sample Heading (Third Level)}{4}{}\protected@file@percent } +\@writefile{toc}{\contentsline {paragraph}{Sample Heading (Fourth Level)}{4}{}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Table captions should be placed above the tables.}}{4}{}\protected@file@percent } +\newlabel{tab1}{{1}{4}} +\citation{Reviewer-Recommender} +\citation{ref_lncs1} +\citation{ref_book1} +\citation{ref_proc1} +\citation{ref_url1} +\citation{ref_article1,ref_lncs1,ref_book1} +\citation{ref_article1,ref_book1,ref_proc1,ref_url1} +\bibstyle{splncs04} +\bibdata{samplepaper} +\bibcite{aleksey2020approach}{1} +\bibcite{ali2011overview}{2} +\bibcite{beniwal2021npmrec}{3} +\bibcite{chae2013software}{4} +\bibcite{nadezhda2019approach}{5} +\bibcite{nguyen2018crosssim}{6} +\bibcite{nguyen2020automated}{7} +\@writefile{toc}{\contentsline {subsubsection}{Acknowledgements}{5}{}\protected@file@percent } +\gdef \@abspage@last{5} diff --git a/samplepaper.bbl b/samplepaper.bbl new file mode 100644 index 0000000..bd14624 --- /dev/null +++ b/samplepaper.bbl @@ -0,0 +1,47 @@ +\begin{thebibliography}{1} +\providecommand{\url}[1]{\texttt{#1}} +\providecommand{\urlprefix}{URL } +\providecommand{\doi}[1]{https://doi.org/#1} + +\bibitem{aleksey2020approach} +Aleksey~Alekundrovich, F., Yurevich, G.G., Aleksey~Michailovich, N., + Nudezhda~Glebovna, Y.: Approach to the search for software projects similar + in structure and semantics based on the knowledge extracted from existed + projects. In: Computational Science and Its Applications--ICCSA 2020: 20th + International Conference, Cagliari, Italy, July 1--4, 2020, Proceedings, Part + I. pp. 718--733. Springer (2020) + +\bibitem{ali2011overview} +Ali, A.M.E.T., Abdulla, H.M.D., Snasel, V.: Overview and comparison of + plagiarism detection tools. In: Dateso. pp. 161--172 (2011) + +\bibitem{beniwal2021npmrec} +Beniwal, R., Dahiya, S., Kumar, D., Yadav, D., Pal, D.: Npmrec: Npm packages + and similar projects recommendation system. In: Data Analytics and + Management: Proceedings of ICDAM. pp. 701--710. Springer (2021) + +\bibitem{chae2013software} +Chae, D.K., Ha, J., Kim, S.W., Kang, B., Im, E.G.: Software plagiarism + detection: a graph-based approach. In: Proceedings of the 22nd ACM + international conference on Information \& Knowledge Management. pp. + 1577--1580 (2013) + +\bibitem{nadezhda2019approach} +Nadezhda, Y., Gleb, G., Pavel, D., Vladimir, S.: An approach to similar + software projects searching and architecture analysis based on artificial + intelligence methods. In: Proceedings of the Third International Scientific + Conference “Intelligent Information Technologies for Industry”(IITI’18) + Volume 1 3. pp. 341--352. Springer (2019) + +\bibitem{nguyen2018crosssim} +Nguyen, P.T., Di~Rocco, J., Rubei, R., Di~Ruscio, D.: Crosssim: exploiting + mutual relationships to detect similar oss projects. In: 2018 44th Euromicro + conference on software engineering and advanced applications (SEAA). pp. + 388--395. IEEE (2018) + +\bibitem{nguyen2020automated} +Nguyen, P.T., Di~Rocco, J., Rubei, R., Di~Ruscio, D.: An automated approach to + assess the similarity of github repositories. Software Quality Journal + \textbf{28}, 595--631 (2020) + +\end{thebibliography} diff --git a/samplepaper.bib b/samplepaper.bib new file mode 100644 index 0000000..703be6c --- /dev/null +++ b/samplepaper.bib @@ -0,0 +1,55 @@ +@inproceedings{nguyen2018crosssim, + title={CrossSim: exploiting mutual relationships to detect similar OSS projects}, + author={Nguyen, Phuong T and Di Rocco, Juri and Rubei, Riccardo and Di Ruscio, Davide}, + booktitle={2018 44th Euromicro conference on software engineering and advanced applications (SEAA)}, + pages={388--395}, + year={2018}, + organization={IEEE} +} +@article{nguyen2020automated, + title={An automated approach to assess the similarity of GitHub repositories}, + author={Nguyen, Phuong T and Di Rocco, Juri and Rubei, Riccardo and Di Ruscio, Davide}, + journal={Software Quality Journal}, + volume={28}, + pages={595--631}, + year={2020}, + publisher={Springer} +} +@inproceedings{nadezhda2019approach, + title={An approach to similar software projects searching and architecture analysis based on artificial intelligence methods}, + author={Nadezhda, Yarushkina and Gleb, Guskov and Pavel, Dudarin and Vladimir, Stuchebnikov}, + booktitle={Proceedings of the Third International Scientific Conference “Intelligent Information Technologies for Industry”(IITI’18) Volume 1 3}, + pages={341--352}, + year={2019}, + organization={Springer} +} +@inproceedings{beniwal2021npmrec, + title={NPMREC: NPM Packages and Similar Projects Recommendation System}, + author={Beniwal, Rohit and Dahiya, Sonika and Kumar, Deepak and Yadav, Deepak and Pal, Deepanshu}, + booktitle={Data Analytics and Management: Proceedings of ICDAM}, + pages={701--710}, + year={2021}, + organization={Springer} +} +@inproceedings{aleksey2020approach, + title={Approach to the Search for Software Projects Similar in Structure and Semantics Based on the Knowledge Extracted from Existed Projects}, + author={Aleksey Alekundrovich, Filippov and Yurevich, Guskov Gleb and Aleksey Michailovich, Namestnikov and Nudezhda Glebovna, Yarushkina}, + booktitle={Computational Science and Its Applications--ICCSA 2020: 20th International Conference, Cagliari, Italy, July 1--4, 2020, Proceedings, Part I}, + pages={718--733}, + year={2020}, + organization={Springer} +} +@inproceedings{ali2011overview, + title={Overview and comparison of plagiarism detection tools.}, + author={Ali, Asim M El Tahir and Abdulla, Hussam M Dahwa and Snasel, Vaclav}, + booktitle={Dateso}, + pages={161--172}, + year={2011} +} +@inproceedings{chae2013software, + title={Software plagiarism detection: a graph-based approach}, + author={Chae, Dong-Kyu and Ha, Jiwoon and Kim, Sang-Wook and Kang, BooJoong and Im, Eul Gyu}, + booktitle={Proceedings of the 22nd ACM international conference on Information \& Knowledge Management}, + pages={1577--1580}, + year={2013} +} \ No newline at end of file diff --git a/samplepaper.blg b/samplepaper.blg new file mode 100644 index 0000000..5160a8a --- /dev/null +++ b/samplepaper.blg @@ -0,0 +1,53 @@ +This is BibTeX, Version 0.99d (TeX Live 2022) +Capacity: max_strings=200000, hash_size=200000, hash_prime=170003 +The top-level auxiliary file: samplepaper.aux +The style file: splncs04.bst +Database file #1: samplepaper.bib +Warning--I didn't find a database entry for "Reviewer-Recommender" +Warning--I didn't find a database entry for "ref_lncs1" +Warning--I didn't find a database entry for "ref_book1" +Warning--I didn't find a database entry for "ref_proc1" +Warning--I didn't find a database entry for "ref_url1" +Warning--I didn't find a database entry for "ref_article1" +You've used 7 entries, + 2850 wiz_defined-function locations, + 643 strings with 6417 characters, +and the built_in function-call counts, 5015 in all, are: += -- 449 +> -- 159 +< -- 8 ++ -- 67 +- -- 58 +* -- 307 +:= -- 625 +add.period$ -- 17 +call.type$ -- 7 +change.case$ -- 62 +chr.to.int$ -- 0 +cite$ -- 7 +duplicate$ -- 414 +empty$ -- 438 +format.name$ -- 65 +if$ -- 1126 +int.to.chr$ -- 0 +int.to.str$ -- 7 +missing$ -- 79 +newline$ -- 27 +num.names$ -- 14 +pop$ -- 162 +preamble$ -- 1 +purify$ -- 43 +quote$ -- 0 +skip$ -- 152 +stack$ -- 0 +substring$ -- 325 +swap$ -- 231 +text.length$ -- 8 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 28 +warning$ -- 0 +while$ -- 42 +width$ -- 8 +write$ -- 79 +(There were 6 warnings) diff --git a/samplepaper.fdb_latexmk b/samplepaper.fdb_latexmk new file mode 100644 index 0000000..5ef311b --- /dev/null +++ b/samplepaper.fdb_latexmk @@ -0,0 +1,82 @@ +# Fdb version 3 +["bibtex samplepaper"] 1680773656 "samplepaper.aux" "samplepaper.bbl" "samplepaper" 1680773658 + "./splncs04.bst" 1521100946 33694 ee21ae2a29028dc8ad842a97200982c7 "" + "samplepaper.aux" 1680773658 2362 f6a538eedc01c74f2e62733fa0a53b0d "pdflatex" + "samplepaper.bib" 1680767232 2675 31c6b7eaccded9d7e7d5c4199d50efdd "" + (generated) + "samplepaper.bbl" + "samplepaper.blg" +["pdflatex"] 1680773656 "c:/Users/stroe/OneDrive/Рабочий стол/LaTeX2e+Proceedings+Templates+download/samplepaper.tex" "samplepaper.pdf" "samplepaper" 1680773658 + "SourceCodeAndAST.png" 1680769603 156139 73b1e5b62e24ad3398c87dc0df5e0729 "" + "c:/Users/stroe/OneDrive/Рабочий стол/LaTeX2e+Proceedings+Templates+download/samplepaper.tex" 1680773652 13721 9831202aaf982ccd469fe22c6f5a08fb "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1674061660 2971 def0b6c1f0b107b3b936def894055589 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc" 1674061660 2900 1537cc8184ad1792082cd229ecc269f4 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map" 1674062587 3524 cb3e574dea2d1052e39280babc910dc8 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx0900.tfm" 1674062266 3584 1a7de6c99457381c64abc1a7c545505f "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1000.tfm" 1674062266 3584 2d666ecf6d466d8b007246bc2f94d9da "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1674062266 3584 402da0b29eafbad07963b1224b222f18 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm" 1674062266 3584 13049b61b922a28b158a38aeff75ee9b "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0500.tfm" 1674062266 3584 178baad7ffca7f5d3428a83bd7cc64c3 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0700.tfm" 1674062266 3584 cf973739aac7ab6247f9150296af7954 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0900.tfm" 1674062266 3584 d3d8ac8b25ca19c0a40b86a5db1e8ccc "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1674062266 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm" 1674062266 3584 f80ddd985bd00e29e9a6047ebd9d4781 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1440.tfm" 1674062266 3584 3169d30142b88a27d4ab0e3468e963a2 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecti0900.tfm" 1674062266 3072 a603fa6d934ebc72197ed1c389943d86 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecti1000.tfm" 1674062266 3072 3bce340d4c075dffe6d4ec732b4c32fe "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/tcrm0900.tfm" 1674062267 1536 c4f439db76ef96a9c53bc437f35ffe20 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1674061115 1004 54797486969f23fa377b128694d548df "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex9.tfm" 1674061115 996 a18840b13b499c08ac2de96a99eda4bc "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1674061646 1512 f21f83efb36853c0b70002322c1ab3ad "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi9.tfm" 1674061646 1524 d89e2d087a9828407a196f428428ef4a "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr6.tfm" 1674061646 1300 b62933e007d01cfd073f79b963c01526 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr9.tfm" 1674061646 1292 6b21b9c2c7bebb38aa2273f7ca0fb3af "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm" 1674061646 1116 933a60c408fc0a863a92debe84b2d294 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy9.tfm" 1674061646 1116 25a7bf822c58caf309a702ef79f4afbb "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb" 1674061115 30251 6afa5cb1d0204815a708a080681d4674 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1674061115 36299 5f9df58c2139e7edcf37c8fca4bd384d "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb" 1674061115 36281 c355509802a035cadc5f15869451dcee "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1674061116 35752 024fb6c41858982481f6968b5fc26508 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb" 1674061116 32762 7fee39e011c23b3589931effd97b9702 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1674061116 32569 5e5ddc8df908dea60932f3c484a54c0d "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb" 1674061116 32716 08e384dc442464e7285e891af9f45947 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx0900.pfb" 1674061660 143961 fe73b0de40bc9eebafe5b31a39c455e0 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb" 1674061660 145408 bcd327f112f643a875638eafb48d1d8b "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb" 1674061660 140176 d0f50dba675c56d445f84a32c1f93a79 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb" 1674061660 135942 aecb5af344df420d6ec421db27dedf62 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm0900.pfb" 1674061660 149037 59d73c34fca02636f548728608edd111 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb" 1674061660 138258 6525c253f16cededa14c7fd0da7f67b2 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfti0900.pfb" 1674061660 183673 ea5e125e12bf9824c40173f585331662 "" + "c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb" 1674061660 186554 2eb6bd25fc5e008c37b6575e4923fdc7 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1674063819 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1674061119 2222 da905dc1db75412efd2d8f67739f0596 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty" 1674061119 4173 bc0410bcccdff806d6132d3c1ef35481 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty" 1674061119 87648 07fbb6e9169e00cb2a2f40b31b2dbf3c "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty" 1674061119 4128 8eea906621b6639f7ba476a472036bbe "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty" 1674061119 2444 926f379cc60fcf0c6e3fee2223b4370d "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls" 1674063230 20144 8a7de377ae7a11ee924a7499611f5a9d "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty" 1674063230 4946 461cc78f6f26901410d9f1d725079cc6 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/size10.clo" 1674063230 8448 96f18c76bf608a36ee6fbf021ac1dd32 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1674062358 13886 d1306dcf79a944f6988e688c1785f9ce "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1674062770 1224 978390e9c2234eab29404bc21b268d1e "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def" 1674062771 19103 48d29b6e2a64cb717117ef65f107b404 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty" 1674062769 18399 7e40f80366dffb22c0e7b70517db5cb4 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty" 1674062769 7996 a8fb260d598dcaf305a7ae7b9c3e3229 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty" 1674062769 2671 4de6781a30211fe0ea4c672e4a2a8166 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty" 1674062769 4009 187ea2dc3194cd5a76cd99a8d7a6c4d0 "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1674063204 29921 d0acc05a38bd4aa3af2017f0b7c137ce "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1674063295 678 4792914a8f45be57bb98413425e4c7af "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty" 1674064020 2652 813491e2bc95c1dafbb39cd7c54b380b "" + "c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty" 1674064981 32262 2bb622a0aa56c4a7a5cbdfe9d122c15a "" + "c:/texlive-2022/texlive/2022/texmf-dist/web2c/texmf.cnf" 1674061022 40171 cdab547de63d26590bebb3baff566530 "" + "c:/texlive-2022/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1674065277 4448432 3180f7519c4fd37c9114c15734e7ca46 "" + "c:/texlive-2022/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt" 1674065407 2826488 83ea1af50f0b64fc3d7a33cfebec34f5 "" + "c:/texlive-2022/texlive/2022/texmf.cnf" 1674065251 835 15d98ed9a7362f0ac2a0fb81928d01a3 "" + "llncs.cls" 1662359260 43530 5c930e3a884976fbd3796e3ab18cc1af "" + "samplepaper.aux" 1680773658 2362 f6a538eedc01c74f2e62733fa0a53b0d "pdflatex" + "samplepaper.bbl" 1680773656 2152 390c6e65c8c1107b79dc586b5fafd8ee "bibtex samplepaper" + "samplepaper.tex" 1680773652 13721 9831202aaf982ccd469fe22c6f5a08fb "" + (generated) + "samplepaper.aux" + "samplepaper.log" + "samplepaper.pdf" diff --git a/samplepaper.fls b/samplepaper.fls new file mode 100644 index 0000000..a425cdf --- /dev/null +++ b/samplepaper.fls @@ -0,0 +1,263 @@ +PWD c:/Users/stroe/OneDrive/Рабочий стол/LaTeX2e+Proceedings+Templates+download +INPUT c:/texlive-2022/texlive/2022/texmf.cnf +INPUT c:/texlive-2022/texlive/2022/texmf-dist/web2c/texmf.cnf +INPUT c:/texlive-2022/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt +INPUT c:/Users/stroe/OneDrive/Рабочий стол/LaTeX2e+Proceedings+Templates+download/samplepaper.tex +OUTPUT samplepaper.log +INPUT ./llncs.cls +INPUT ./llncs.cls +INPUT llncs.cls +INPUT ./llncs.cls +INPUT ./llncs.cls +INPUT ./llncs.cls +INPUT ./llncs.cls +INPUT ./llncs.cls +INPUT llncs.cls +INPUT ./llncs.cls +INPUT llncs.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/size10.clo +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/size10.clo +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/size10.clo +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/size10.clo +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT ./samplepaper.aux +INPUT samplepaper.aux +INPUT samplepaper.aux +OUTPUT samplepaper.aux +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1440.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0900.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx0900.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/tcrm0900.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecti1000.tfm +OUTPUT samplepaper.pdf +INPUT c:/texlive-2022/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0700.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0500.tfm +INPUT ./SourceCodeAndAST.png +INPUT ./SourceCodeAndAST.png +INPUT SourceCodeAndAST.png +INPUT ./SourceCodeAndAST.png +INPUT ./SourceCodeAndAST.png +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecbx1000.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr9.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr6.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi9.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy9.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmsy6.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex9.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecti0900.tfm +INPUT ./samplepaper.bbl +INPUT samplepaper.bbl +INPUT ./samplepaper.bbl +INPUT samplepaper.bbl +INPUT samplepaper.aux +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx0900.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm0900.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfti0900.pfb +INPUT c:/texlive-2022/texlive/2022/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb diff --git a/samplepaper.log b/samplepaper.log new file mode 100644 index 0000000..b3a4a05 --- /dev/null +++ b/samplepaper.log @@ -0,0 +1,338 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2023.1.18) 6 APR 2023 13:34 +entering extended mode + restricted \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**"c:/Users/stroe/OneDrive/Рабочий стол/LaTeX2e+Proceedings+Templates+download/samplepaper.tex" +(c:/Users/stroe/OneDrive/Рабочий стол/LaTeX2e+Proceedings+Templates+download/samplepaper.tex +LaTeX2e <2021-11-15> patch level 1 +L3 programming layer <2022-02-24> (./llncs.cls +Document Class: llncs 2022/09/05 v2.22 + LaTeX document class for Lecture Notes in Computer Science +(c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/article.cls +Document Class: article 2021/10/04 v1.4n Standard LaTeX document class +(c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2021/10/04 v1.4n Standard LaTeX file (size option) +) +\c@part=\count185 +\c@section=\count186 +\c@subsection=\count187 +\c@subsubsection=\count188 +\c@paragraph=\count189 +\c@subparagraph=\count190 +\c@figure=\count191 +\c@table=\count192 +\abovecaptionskip=\skip47 +\belowcaptionskip=\skip48 +\bibindent=\dimen138 +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/tools/multicol.sty +Package: multicol 2021/10/28 v1.9b multicolumn formatting (FMi) +\c@tracingmulticols=\count193 +\mult@box=\box50 +\multicol@leftmargin=\dimen139 +\c@unbalance=\count194 +\c@collectmore=\count195 +\doublecol@number=\count196 +\multicoltolerance=\count197 +\multicolpretolerance=\count198 +\full@width=\dimen140 +\page@free=\dimen141 +\premulticols=\dimen142 +\postmulticols=\dimen143 +\multicolsep=\skip49 +\multicolbaselineskip=\skip50 +\partial@page=\box51 +\last@line=\box52 +\maxbalancingoverflow=\dimen144 +\mult@rightbox=\box53 +\mult@grightbox=\box54 +\mult@firstbox=\box55 +\mult@gfirstbox=\box56 +\@tempa=\box57 +\@tempa=\box58 +\@tempa=\box59 +\@tempa=\box60 +\@tempa=\box61 +\@tempa=\box62 +\@tempa=\box63 +\@tempa=\box64 +\@tempa=\box65 +\@tempa=\box66 +\@tempa=\box67 +\@tempa=\box68 +\@tempa=\box69 +\@tempa=\box70 +\@tempa=\box71 +\@tempa=\box72 +\@tempa=\box73 +\@tempa=\box74 +\@tempa=\box75 +\@tempa=\box76 +\@tempa=\box77 +\@tempa=\box78 +\@tempa=\box79 +\@tempa=\box80 +\@tempa=\box81 +\@tempa=\box82 +\@tempa=\box83 +\@tempa=\box84 +\@tempa=\box85 +\@tempa=\box86 +\@tempa=\box87 +\@tempa=\box88 +\@tempa=\box89 +\@tempa=\box90 +\@tempa=\box91 +\@tempa=\box92 +\c@minrows=\count199 +\c@columnbadness=\count266 +\c@finalcolumnbadness=\count267 +\last@try=\dimen145 +\multicolovershoot=\dimen146 +\multicolundershoot=\dimen147 +\mult@nat@firstbox=\box93 +\colbreak@box=\box94 +\mc@col@check@num=\count268 +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/oberdiek/aliascnt.sty +Package: aliascnt 2018/09/07 v1.5 Alias counters (HO) +) +\c@chapter=\count269 +LaTeX Font Info: Redeclaring math symbol \Gamma on input line 362. +LaTeX Font Info: Redeclaring math symbol \Delta on input line 363. +LaTeX Font Info: Redeclaring math symbol \Theta on input line 364. +LaTeX Font Info: Redeclaring math symbol \Lambda on input line 365. +LaTeX Font Info: Redeclaring math symbol \Xi on input line 366. +LaTeX Font Info: Redeclaring math symbol \Pi on input line 367. +LaTeX Font Info: Redeclaring math symbol \Sigma on input line 368. +LaTeX Font Info: Redeclaring math symbol \Upsilon on input line 369. +LaTeX Font Info: Redeclaring math symbol \Phi on input line 370. +LaTeX Font Info: Redeclaring math symbol \Psi on input line 371. +LaTeX Font Info: Redeclaring math symbol \Omega on input line 372. +LaTeX Info: Redefining \vec on input line 377. +\tocchpnum=\dimen148 +\tocsecnum=\dimen149 +\tocsectotal=\dimen150 +\tocsubsecnum=\dimen151 +\tocsubsectotal=\dimen152 +\tocsubsubsecnum=\dimen153 +\tocsubsubsectotal=\dimen154 +\tocparanum=\dimen155 +\tocparatotal=\dimen156 +\tocsubparanum=\dimen157 +\@tempcntc=\count270 +\fnindent=\dimen158 +\c@@inst=\count271 +\c@@auth=\count272 +\c@auco=\count273 +\instindent=\dimen159 +\authrun=\box95 +\authorrunning=\toks16 +\tocauthor=\toks17 +\titrun=\box96 +\titlerunning=\toks18 +\toctitle=\toks19 +\c@theorem=\count274 +\c@case=\count275 +\c@conjecture=\count276 +\c@corollary=\count277 +\c@definition=\count278 +\c@example=\count279 +\c@exercise=\count280 +\c@lemma=\count281 +\c@note=\count282 +\c@problem=\count283 +\c@property=\count284 +\c@proposition=\count285 +\c@question=\count286 +\c@solution=\count287 +\c@remark=\count288 +\headlineindent=\dimen160 +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2021/10/15 v2.17l AMS math features +\@mathmargin=\skip51 + +For additional information on amsmath, use the `?' option. +(c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2021/08/26 v2.01 AMS text + (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks20 +\ex@=\dimen161 +)) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen162 +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2021/08/26 v2.02 operator names +) +\inf@bad=\count289 +LaTeX Info: Redefining \frac on input line 234. +\uproot@=\count290 +\leftroot@=\count291 +LaTeX Info: Redefining \overline on input line 399. +\classnum@=\count292 +\DOTSCASE@=\count293 +LaTeX Info: Redefining \ldots on input line 496. +LaTeX Info: Redefining \dots on input line 499. +LaTeX Info: Redefining \cdots on input line 620. +\Mathstrutbox@=\box97 +\strutbox@=\box98 +\big@size=\dimen163 +LaTeX Font Info: Redeclaring font encoding OML on input line 743. +LaTeX Font Info: Redeclaring font encoding OMS on input line 744. + + +Package amsmath Warning: Unable to redefine math accent \vec. + +\macc@depth=\count294 +\c@MaxMatrixCols=\count295 +\dotsspace@=\muskip16 +\c@parentequation=\count296 +\dspbrk@lvl=\count297 +\tag@help=\toks21 +\row@=\count298 +\column@=\count299 +\maxfields@=\count300 +\andhelp@=\toks22 +\eqnshift@=\dimen164 +\alignsep@=\dimen165 +\tagshift@=\dimen166 +\tagwidth@=\dimen167 +\totwidth@=\dimen168 +\lineht@=\dimen169 +\@envbody=\toks23 +\multlinegap=\skip52 +\multlinetaggap=\skip53 +\mathdisplay@stack=\toks24 +LaTeX Info: Redefining \[ on input line 2938. +LaTeX Info: Redefining \] on input line 2939. +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) + (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks25 +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR) + (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2021/08/11 v1.11 sin cos tan (DPC) +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 107. + (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen170 +\Gin@req@width=\dimen171 +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2022-02-07 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count301 +\l__pdf_internal_box=\box99 +) (./samplepaper.aux) +\openout1 = `samplepaper.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 22. +LaTeX Font Info: ... okay on input line 22. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 22. +LaTeX Font Info: ... okay on input line 22. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 22. +LaTeX Font Info: ... okay on input line 22. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 22. +LaTeX Font Info: ... okay on input line 22. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 22. +LaTeX Font Info: ... okay on input line 22. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 22. +LaTeX Font Info: ... okay on input line 22. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 22. +LaTeX Font Info: ... okay on input line 22. + (c:/texlive-2022/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count302 +\scratchdimen=\dimen172 +\scratchbox=\box100 +\nofMPsegments=\count303 +\nofMParguments=\count304 +\everyMPshowfont=\toks26 +\MPscratchCnt=\count305 +\MPscratchDim=\dimen173 +\MPnumerator=\count306 +\makeMPintoPDFobject=\count307 +\everyMPtoPDFconversion=\toks27 +) (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 485. + (c:/texlive-2022/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live +)) +Overfull \hbox (3.35585pt too wide) in paragraph at lines 49--50 +\T1/cmr/bx/n/9 Keywords:\T1/cmr/m/n/9 source code \TS1/cmr/m/n/9 \T1/cmr/m/n/9 struc-ture anal-y-sis \TS1/cmr/m/n/9 \T1/cmr/m/n/9 struc-turally sim-i-lar projects + [] + +[1 + +{c:/texlive-2022/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2] + +File: SourceCodeAndAST.png Graphic file (type png) + +Package pdftex.def Info: SourceCodeAndAST.png used on input line 128. +(pdftex.def) Requested size: 347.12354pt x 162.8448pt. + [3] [4 <./SourceCodeAndAST.png>] + +LaTeX Warning: Citation `Reviewer-Recommender' on page 5 undefined on input line 224. + + +LaTeX Warning: Citation `ref_lncs1' on page 5 undefined on input line 224. + + +LaTeX Warning: Citation `ref_book1' on page 5 undefined on input line 225. + + +LaTeX Warning: Citation `ref_proc1' on page 5 undefined on input line 225. + + +LaTeX Warning: Citation `ref_url1' on page 5 undefined on input line 226. + + +LaTeX Warning: Citation `ref_article1' on page 5 undefined on input line 227. + + +LaTeX Warning: Citation `ref_lncs1' on page 5 undefined on input line 227. + + +LaTeX Warning: Citation `ref_book1' on page 5 undefined on input line 227. + + +LaTeX Warning: Citation `ref_article1' on page 5 undefined on input line 228. + + +LaTeX Warning: Citation `ref_book1' on page 5 undefined on input line 228. + + +LaTeX Warning: Citation `ref_proc1' on page 5 undefined on input line 228. + + +LaTeX Warning: Citation `ref_url1' on page 5 undefined on input line 228. + +(./samplepaper.bbl +Underfull \hbox (badness 10000) in paragraph at lines 7--13 +[]\T1/cmr/m/n/9 Aleksey Alekun-drovich, F., Yure-vich, G.G., Alek-sey Michailovich, N., + [] + +) [5] (./samplepaper.aux) ) +Here is how much of TeX's memory you used: + 2704 strings out of 478268 + 39779 string characters out of 5847850 + 344383 words of memory out of 5000000 + 20902 multiletter control sequences out of 15000+600000 + 481394 words of font info for 51 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 55i,9n,62p,738b,257s stack positions out of 10000i,1000n,20000p,200000b,200000s +{c:/texlive-2022/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc}{c:/texlive-2022/texlive/2022/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc} +Output written on samplepaper.pdf (5 pages, 385429 bytes). +PDF statistics: + 103 PDF objects out of 1000 (max. 8388607) + 62 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 6 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/samplepaper.pdf b/samplepaper.pdf new file mode 100644 index 0000000..e1fff07 Binary files /dev/null and b/samplepaper.pdf differ diff --git a/samplepaper.synctex.gz b/samplepaper.synctex.gz new file mode 100644 index 0000000..90d5ee0 Binary files /dev/null and b/samplepaper.synctex.gz differ diff --git a/samplepaper.tex b/samplepaper.tex new file mode 100644 index 0000000..7d66286 --- /dev/null +++ b/samplepaper.tex @@ -0,0 +1,264 @@ +% This is samplepaper.tex, a sample chapter demonstrating the +% LLNCS macro package for Springer Computer Science proceedings; +% Version 2.21 of 2022/01/12 +% +\documentclass[runningheads]{llncs} +% +\usepackage[T1]{fontenc} +% T1 fonts will be used to generate the final print and online PDFs, +% so please use T1 fonts in your manuscript whenever possible. +% Other font encondings may result in incorrect characters. +% +\usepackage{amsmath} +\usepackage{graphicx} +% Used for displaying a sample figure. If possible, figure files should +% be included in EPS format. +% +% If you use the hyperref package, please uncomment the following two lines +% to display URLs in blue roman font according to Springer's eBook style: +%\usepackage{color} +%\renewcommand\UrlFont{\color{blue}\rmfamily} +% +\begin{document} +% +\title{Search for Structurally Similar Projects of Software Systems} +% +%\titlerunning{Abbreviated paper title} +% If the paper title is too long for the running head, you can set +% an abbreviated paper title here +% +\author{Aleksey Filippov\inst{1}\orcidID{0000-0003-0008-5035} \and +Julia Stroeva\inst{1}\orcidID{0009-0003-8026-235X}} +% +\authorrunning{A. Filippov, J. Stroeva} +% First names are abbreviated in the running head. +% If there are more than two authors, 'et al.' is used. +% +\institute{Department of Information Systems, Ulyanovsk State +Technical University, 32 Severny Venetz Street, 432027 Ulyanovsk, Russia} +% +\maketitle % typeset the header of the contribution +% +\begin{abstract} + The authors have developed an approach to the search for structurally similar projects of software systems. Teachers can use the proposed approach to search for borrowings in the works of students. The concept behind this proposal is that it can to locate projects that students have used as parts of a current project. + + The authors propose a new algorithm for determining the similarity between the structures of software projects. The proposed algorithm is based on finding similar structural elements in the source code of the program in an abstract syntax trees analyzing. + + The authors developed a software system to evaluate the proposed algorithm. The current version of the system only supports Java programs. However, the system operates with its own representation of the abstract syntax tree, which allows you to add support for new programming languages. + +\keywords{source code \and structure analysis \and structurally similar projects \and hashing.} +\end{abstract} +% +% +% +\section{Introduction} +Currently, the most practical work of students in information technology includes laboratory and coursework. These classes help students understand the theoretical information from their lectures. + +Typically, student work is a small program that solves typical problems. In most cases, these works contain few files or a few lines of code. The architecture and algorithms of such programs are also simple. + +The teacher needs to spend many time to check all the work. The teacher usually notices when the student has borrowed a program source code. Students in such cases do not change the structure of the borrowed source code, but rename variables or change types of loops (from \textit{for} to \textit{while}), etc. + +The software system proposed in this article allows you to analyze the structure of projects and provide information about their structural similarity. The indicator of the uniqueness of the current project structure is used to evaluate the uniqueness of the project in comparison with other projects. + +\section{State of the art} + +There are no universal methods for analyzing the source code of software systems at the moment. Certain methods of analysis are used to solve various problems. + +There is a group of methods for analyzing source code, which is based on obtaining and analyzing abstract syntax trees (AST). An AST is an abstract representation of the grammatical structure of a source code. It expresses the structure of a program in some programming language as a tree structure. Each AST node is an operator or a set of operators of the analyzed source code. The compiler generates an AST because of the parsing step. Unlike a parse tree, an AST does not have nodes or edges for syntax rules that do not affect the semantics of the program (for example, grouping brackets). + +It can also analyze projects using call graph generation tools, such as \textit{CodeViz} or \textit{Egypt}. It is possible to use some functions of reverse engineering tools, such as IDA Pro. + +AST-based approaches can find structurally similar projects. However, such approaches have high computational complexity \cite{nguyen2018crosssim}. Many existing approaches analyze a larger number of parameters than is necessary to solve the problem of this study \cite{aleksey2020approach,beniwal2021npmrec,nadezhda2019approach,nguyen2018crosssim,nguyen2020automated}: project dependencies, the number of stars in the repository, the contents of the documentation, etc. + +The paper \cite{ali2011overview} presents an analysis of approaches and software tools for searching for borrowings in the text and source code. However, there is no mention of software tools for searching for borrowings in the source code. + +In the article \cite{chae2013software}, the authors analyze borrowings in the source code according to the sequences of using external programming interfaces and the frequency of such calls. This method is not suitable for solving the problem of this study because of the educational orientation of the analyzed source code. + +Thus, it is necessary to develop an approach to the search for structurally similar projects, which are focused on working with simple software systems and with a high speed of analysis. + +\section{The Proposed Algorithm for Analyzing the Structure of the Source Code} + +The source code of the software system in the proposed algorithm is the main source of data for identifying structural features. + +We formed an AST to analyze the source code. There are various libraries and tools for all existing programming languages for the formation of AST. Thus, using your own representation of the AST allows you to add support for new programming languages to the system without changing the analysis algorithms. + +We will use the following AST model: + +\begin{equation*} + AST = \langle N,R \rangle, +\end{equation*} + +where $N = \lbrace N_{1}, N_{2},\ldots, N_{n}\rbrace$ is the set of nodes AST; + +$N_{i} = \langle name, data \rangle$ is an i-th AST node containing the node name, node data; + +R is the set of relations between AST nodes. + +We developed an algorithm to highlight the structure of the project in analyzing the source code, which comprises the following steps: + +\begin{enumerate} + \item Form an ASD for the project. + \item Select nodes with type “Class”: + \begin{equation*} + N^{Class} = \lbrace N_{i} \in N | F \left( N_{i}.data \right) = \text{'Class'} \rbrace, + \end{equation*} + \item Find nodes with the “Class field” type in the found classes: + \begin{equation*} + N^{Vars} = \lbrace N_{i}^{Class} \in N^{Class} | F \left( N_{i}^{Class}.data \right) = \text{'Field'} \rbrace, + \end{equation*} + \item Find nodes with the “Methods” type in the found classes: + \begin{equation*} + N^{Methods} = \lbrace N_{i}^{Class} \in N^{Class} | F \left( N_{i}^{Class}.data \right) = \text{'Method'} \rbrace, + \end{equation*} + \item Find nodes with type “Method Argument” in the found methods: + \begin{equation*} + N^{MethodsArgs} = \lbrace N_{i}^{Methods} \in N^{Methods} | F \left( N_{i}^{Methods}.data \right) = \text{'Arg'} \rbrace, + \end{equation*} + \item Find nodes with the type “Operator” in the found methods: + \begin{equation*} + N^{MethodsOps} = \lbrace N_{i}^{Methods} \in N^{Methods} | F \left( N_{i}^{Methods}.data \right) = \text{'Operator'} \rbrace, + \end{equation*} + \item Create based on previously got sets of AST for the analyzed source code, considering the set of relations R. + \item Save the resulting AST in a graph database (GDB) to facilitate data handling. +\end{enumerate} + +Figure \ref{fig1} shows an example of the source code and the ASD got for it. + +\begin{figure} + \includegraphics[width=\textwidth]{SourceCodeAndAST.png} + \caption{Sample source code and its AST.} \label{fig1} +\end{figure} + +GDB is a non-relational type of database based on the topographic structure of the network. Graphs represent sets of data as nodes, edges, and properties. Relational databases provide a structured approach to data. GDBs are more flexible and focused on fast data acquisition, considering various types of links between them. + +We used Neo4j as the GDB, since this system has a high speed of operation even with a large amount of stored data. + +\section{The Proposed Algorithm for Determining the Structural Similarity of Software Projects} + + + +% ----------------------------------------- +% ----------------------------------------- +% ----------------------------------------- +% ----------------------------------------- +% ----------------------------------------- +% ----------------------------------------- +% ----------------------------------------- +% ----------------------------------------- + +\section{State of the art} +\subsection{A Subsection Sample} +Please note that the first paragraph of a section or subsection is +not indented. The first paragraph that follows a table, figure, +equation etc. does not need an indent, either. + +Subsequent paragraphs, however, are indented. + +\subsubsection{Sample Heading (Third Level)} Only two levels of +headings should be numbered. Lower level headings remain unnumbered; +they are formatted as run-in headings. + +\paragraph{Sample Heading (Fourth Level)} +The contribution should contain no more than four levels of +headings. Table~\ref{tab1} gives a summary of all heading levels. + +% \begin{figure} + +% \end{figure} + +\begin{table} +\caption{Table captions should be placed above the +tables.}\label{tab1} +\begin{tabular}{|l|l|l|} +\hline +Heading level & Example & Font size and style\\ +\hline +Title (centered) & {\Large\bfseries Lecture Notes} & 14 point, bold\\ +1st-level heading & {\large\bfseries 1 Introduction} & 12 point, bold\\ +2nd-level heading & {\bfseries 2.1 Printing Area} & 10 point, bold\\ +3rd-level heading & {\bfseries Run-in Heading in Bold.} Text follows & 10 point, bold\\ +4th-level heading & {\itshape Lowest Level Heading.} Text follows & 10 point, italic\\ +\hline +\end{tabular} +\end{table} + +\begin{itemize} + \item +\end{itemize} + +\begin{enumerate} + \item +\end{enumerate} + + +\noindent Displayed equations are centered and set on a separate +line. +\begin{equation*} +N^{Class} = \lbrace N_{i} \in N | F \left( N_{i}.data \right) = \text{'Class'} \rbrace, +\end{equation*} +Please try to avoid rasterized images for line-art diagrams and +schemas. Whenever possible, use vector graphics instead (see +Fig.~\ref{fig1}). + +% \begin{figure} +% \includegraphics[width=\textwidth]{fig1.eps} +% \caption{A figure caption is always placed below the illustration. +% Please note that short captions are centered, while long ones are +% justified by the macro package automatically.} \label{fig1} +% \end{figure} + +\begin{theorem} +This is a sample theorem. The run-in heading is set in bold, while +the following text appears in italics. Definitions, lemmas, +propositions, and corollaries are styled the same way. +\end{theorem} +% +% the environments 'definition', 'lemma', 'proposition', 'corollary', +% 'remark', and 'example' are defined in the LLNCS documentclass as well. +% +\begin{proof} +Proofs, examples, and remarks have the initial word in italics, +while the following text appears in normal font. +\end{proof} +For citations of references, we prefer the use of square brackets and consecutive numbers. Citations using labels or the author/year convention are also acceptable. The following bibliography provides a sample reference list with entries for journal +articles~\cite{Reviewer-Recommender}, an LNCS chapter~\cite{ref_lncs1}, a +book~\cite{ref_book1}, proceedings without editors~\cite{ref_proc1}, +and a homepage~\cite{ref_url1}. Multiple citations are grouped +\cite{ref_article1,ref_lncs1,ref_book1}, +\cite{ref_article1,ref_book1,ref_proc1,ref_url1}. + +\subsubsection{Acknowledgements} Please place your acknowledgments at +the end of the paper, preceded by an unnumbered run-in heading (i.e. +3rd-level heading). + +% +% ---- Bibliography ---- +% +% BibTeX users should specify bibliography style 'splncs04'. +% References will then be sorted and formatted in the correct style. +% +\bibliographystyle{splncs04} +\bibliography{samplepaper} +% +% \begin{thebibliography}{8} +% \bibitem{ref_article1} +% Author, F.: Article title. Journal \textbf{2}(5), 99--110 (2016) + +% \bibitem{ref_lncs1} +% Author, F., Author, S.: Title of a proceedings paper. In: Editor, +% F., Editor, S. (eds.) CONFERENCE 2016, LNCS, vol. 9999, pp. 1--13. +% Springer, Heidelberg (2016). \doi{10.10007/1234567890} + +% \bibitem{ref_book1} +% Author, F., Author, S., Author, T.: Book title. 2nd edn. Publisher, +% Location (1999) + +% \bibitem{ref_proc1} +% Author, A.-B.: Contribution title. In: 9th International Proceedings +% on Proceedings, pp. 1--2. Publisher, Location (2010) + +% \bibitem{ref_url1} +% LNCS Homepage, \url{http://www.springer.com/lncs}. Last accessed 4 +% Oct 2017 +% \end{thebibliography} +\end{document} diff --git a/splncs04.bst b/splncs04.bst new file mode 100644 index 0000000..3be8de3 --- /dev/null +++ b/splncs04.bst @@ -0,0 +1,1548 @@ +%% BibTeX bibliography style `splncs03' +%% +%% 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{splncs03}, 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'.