17 %% Right bracket \] Circumflex \^ Underscore \_ |
17 %% Right bracket \] Circumflex \^ Underscore \_ |
18 %% Grave accent \` Left brace \{ Vertical bar \| |
18 %% Grave accent \` Left brace \{ Vertical bar \| |
19 %% Right brace \} Tilde \~} |
19 %% Right brace \} Tilde \~} |
20 %% |
20 %% |
21 \NeedsTeXFormat{LaTeX2e}[1995/12/01] |
21 \NeedsTeXFormat{LaTeX2e}[1995/12/01] |
22 \ProvidesClass{llncs}[2002/01/28 v2.13 |
22 \ProvidesClass{llncs}[2010/07/12 v2.17 |
23 ^^J LaTeX document class for Lecture Notes in Computer Science] |
23 ^^J LaTeX document class for Lecture Notes in Computer Science] |
24 % Options |
24 % Options |
25 \let\if@envcntreset\iffalse |
25 \let\if@envcntreset\iffalse |
26 \DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} |
26 \DeclareOption{envcountreset}{\let\if@envcntreset\iftrue} |
27 \DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} |
27 \DeclareOption{citeauthoryear}{\let\citeauthoryear=Y} |
33 \let\if@envcntsect\iffalse |
33 \let\if@envcntsect\iffalse |
34 \DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} |
34 \DeclareOption{envcountsect}{\let\if@envcntsect\iftrue} |
35 \let\if@runhead\iffalse |
35 \let\if@runhead\iffalse |
36 \DeclareOption{runningheads}{\let\if@runhead\iftrue} |
36 \DeclareOption{runningheads}{\let\if@runhead\iftrue} |
37 |
37 |
|
38 \let\if@openright\iftrue |
38 \let\if@openbib\iffalse |
39 \let\if@openbib\iffalse |
39 \DeclareOption{openbib}{\let\if@openbib\iftrue} |
40 \DeclareOption{openbib}{\let\if@openbib\iftrue} |
40 |
41 |
41 % languages |
42 % languages |
42 \let\switcht@@therlang\relax |
43 \let\switcht@@therlang\relax |
47 |
48 |
48 \ProcessOptions |
49 \ProcessOptions |
49 |
50 |
50 \LoadClass[twoside]{article} |
51 \LoadClass[twoside]{article} |
51 \RequirePackage{multicol} % needed for the list of participants, index |
52 \RequirePackage{multicol} % needed for the list of participants, index |
|
53 \RequirePackage{aliascnt} |
52 |
54 |
53 \setlength{\textwidth}{12.2cm} |
55 \setlength{\textwidth}{12.2cm} |
54 \setlength{\textheight}{19.3cm} |
56 \setlength{\textheight}{19.3cm} |
55 \renewcommand\@pnumwidth{2em} |
57 \renewcommand\@pnumwidth{2em} |
56 \renewcommand\@tocrmarg{3.5em} |
58 \renewcommand\@tocrmarg{3.5em} |
87 \def\corollaryname{Corollary} |
89 \def\corollaryname{Corollary} |
88 \def\definitionname{Definition} |
90 \def\definitionname{Definition} |
89 \def\examplename{Example} |
91 \def\examplename{Example} |
90 \def\exercisename{Exercise} |
92 \def\exercisename{Exercise} |
91 \def\figurename{Fig.} |
93 \def\figurename{Fig.} |
92 \def\keywordname{{\bf Key words:}} |
94 \def\keywordname{{\bf Keywords:}} |
93 \def\indexname{Index} |
95 \def\indexname{Index} |
94 \def\lemmaname{Lemma} |
96 \def\lemmaname{Lemma} |
95 \def\contriblistname{List of Contributors} |
97 \def\contriblistname{List of Contributors} |
96 \def\listfigurename{List of Figures} |
98 \def\listfigurename{List of Figures} |
97 \def\listtablename{List of Tables} |
99 \def\listtablename{List of Tables} |
537 \nobreak % Never break after part entry |
539 \nobreak % Never break after part entry |
538 \endgroup} |
540 \endgroup} |
539 |
541 |
540 \def\@dotsep{2} |
542 \def\@dotsep{2} |
541 |
543 |
|
544 \let\phantomsection=\relax |
|
545 |
542 \def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else |
546 \def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else |
543 {chapter.\thechapter}\fi} |
547 {}\fi} |
544 |
548 |
545 \def\addnumcontentsmark#1#2#3{% |
549 \def\addnumcontentsmark#1#2#3{% |
546 \addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline |
550 \addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline |
547 {\thechapter}#3}{\thepage}\hyperhrefextend}} |
551 {\thechapter}#3}{\thepage}\hyperhrefextend}}% |
548 \def\addcontentsmark#1#2#3{% |
552 \def\addcontentsmark#1#2#3{% |
549 \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}} |
553 \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}% |
550 \def\addcontentsmarkwop#1#2#3{% |
554 \def\addcontentsmarkwop#1#2#3{% |
551 \addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}} |
555 \addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}% |
552 |
556 |
553 \def\@adcmk[#1]{\ifcase #1 \or |
557 \def\@adcmk[#1]{\ifcase #1 \or |
554 \def\@gtempa{\addnumcontentsmark}% |
558 \def\@gtempa{\addnumcontentsmark}% |
555 \or \def\@gtempa{\addcontentsmark}% |
559 \or \def\@gtempa{\addcontentsmark}% |
556 \or \def\@gtempa{\addcontentsmarkwop}% |
560 \or \def\@gtempa{\addcontentsmarkwop}% |
557 \fi\@gtempa{toc}{chapter}} |
561 \fi\@gtempa{toc}{chapter}% |
558 \def\addtocmark{\@ifnextchar[{\@adcmk}{\@adcmk[3]}} |
562 } |
|
563 \def\addtocmark{% |
|
564 \phantomsection |
|
565 \@ifnextchar[{\@adcmk}{\@adcmk[3]}% |
|
566 } |
559 |
567 |
560 \def\l@chapter#1#2{\addpenalty{-\@highpenalty} |
568 \def\l@chapter#1#2{\addpenalty{-\@highpenalty} |
561 \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup |
569 \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup |
562 \parindent \z@ \rightskip \@tocrmarg |
570 \parindent \z@ \rightskip \@tocrmarg |
563 \advance\rightskip by 0pt plus 2cm |
571 \advance\rightskip by 0pt plus 2cm |
585 \@dotsep mu$}\hfill |
593 \@dotsep mu$}\hfill |
586 \nobreak\hbox to\@pnumwidth{\hss #2}\par |
594 \nobreak\hbox to\@pnumwidth{\hss #2}\par |
587 \penalty\@highpenalty \endgroup} |
595 \penalty\@highpenalty \endgroup} |
588 |
596 |
589 \def\l@author#1#2{\addpenalty{\@highpenalty} |
597 \def\l@author#1#2{\addpenalty{\@highpenalty} |
590 \@tempdima=\z@ %15\p@ |
598 \@tempdima=15\p@ %\z@ |
591 \begingroup |
599 \begingroup |
592 \parindent \z@ \rightskip \@tocrmarg |
600 \parindent \z@ \rightskip \@tocrmarg |
593 \advance\rightskip by 0pt plus 2cm |
601 \advance\rightskip by 0pt plus 2cm |
594 \pretolerance=10000 |
602 \pretolerance=10000 |
595 \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip |
603 \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip |
596 \textit{#1}\par |
604 \textit{#1}\par |
597 \penalty\@highpenalty \endgroup} |
605 \penalty\@highpenalty \endgroup} |
598 |
606 |
599 %\setcounter{tocdepth}{0} |
607 \setcounter{tocdepth}{0} |
600 \newdimen\tocchpnum |
608 \newdimen\tocchpnum |
601 \newdimen\tocsecnum |
609 \newdimen\tocsecnum |
602 \newdimen\tocsectotal |
610 \newdimen\tocsectotal |
603 \newdimen\tocsubsecnum |
611 \newdimen\tocsubsecnum |
604 \newdimen\tocsubsectotal |
612 \newdimen\tocsubsectotal |
777 \leftskip \fnindent% |
785 \leftskip \fnindent% |
778 \noindent |
786 \noindent |
779 \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} |
787 \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1} |
780 |
788 |
781 \long\def\@makecaption#1#2{% |
789 \long\def\@makecaption#1#2{% |
|
790 \small |
782 \vskip\abovecaptionskip |
791 \vskip\abovecaptionskip |
783 \sbox\@tempboxa{{\bfseries #1.} #2}% |
792 \sbox\@tempboxa{{\bfseries #1.} #2}% |
784 \ifdim \wd\@tempboxa >\hsize |
793 \ifdim \wd\@tempboxa >\hsize |
785 {\bfseries #1.} #2\par |
794 {\bfseries #1.} #2\par |
786 \else |
795 \else |
872 \@ifpackageloaded{babel}{% |
881 \@ifpackageloaded{babel}{% |
873 \@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% |
882 \@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}% |
874 \@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% |
883 \@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}% |
875 \@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% |
884 \@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}% |
876 }{\switcht@@therlang}% |
885 }{\switcht@@therlang}% |
|
886 \providecommand{\keywords}[1]{\par\addvspace\baselineskip |
|
887 \noindent\keywordname\enspace\ignorespaces#1}% |
877 } |
888 } |
878 \def\homedir{\~{ }} |
889 \def\homedir{\~{ }} |
879 |
890 |
880 \def\subtitle#1{\gdef\@subtitle{#1}} |
891 \def\subtitle#1{\gdef\@subtitle{#1}} |
881 \clearheadinfo |
892 \clearheadinfo |
882 |
893 % |
|
894 %%% to avoid hyperref warnings |
|
895 \providecommand*{\toclevel@author}{999} |
|
896 %%% to make title-entry parent of section-entries |
|
897 \providecommand*{\toclevel@title}{0} |
|
898 % |
883 \renewcommand\maketitle{\newpage |
899 \renewcommand\maketitle{\newpage |
|
900 \phantomsection |
884 \refstepcounter{chapter}% |
901 \refstepcounter{chapter}% |
885 \stepcounter{section}% |
902 \stepcounter{section}% |
886 \setcounter{section}{0}% |
903 \setcounter{section}{0}% |
887 \setcounter{subsection}{0}% |
904 \setcounter{subsection}{0}% |
888 \setcounter{figure}{0} |
905 \setcounter{figure}{0} |
907 % |
924 % |
908 \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% |
925 \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}% |
909 \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% |
926 \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}% |
910 \instindent=\hsize |
927 \instindent=\hsize |
911 \advance\instindent by-\headlineindent |
928 \advance\instindent by-\headlineindent |
912 % \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else |
929 \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else |
913 % \addcontentsline{toc}{title}{\the\toctitle}\fi |
930 \addcontentsline{toc}{title}{\the\toctitle}\fi |
914 \if@runhead |
931 \if@runhead |
915 \if!\the\titlerunning!\else |
932 \if!\the\titlerunning!\else |
916 \edef\@title{\the\titlerunning}% |
933 \edef\@title{\the\titlerunning}% |
917 \fi |
934 \fi |
918 \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% |
935 \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}% |
932 \else |
949 \else |
933 \def\\{\noexpand\protect\noexpand\newline}% |
950 \def\\{\noexpand\protect\noexpand\newline}% |
934 \protected@xdef\scratch{\the\tocauthor}% |
951 \protected@xdef\scratch{\the\tocauthor}% |
935 \protected@xdef\toc@uthor{\scratch}% |
952 \protected@xdef\toc@uthor{\scratch}% |
936 \fi |
953 \fi |
937 % \addcontentsline{toc}{author}{\toc@uthor}% |
954 \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}% |
|
955 \addcontentsline{toc}{author}{\toc@uthor}% |
938 \if@runhead |
956 \if@runhead |
939 \if!\the\authorrunning! |
957 \if!\the\authorrunning! |
940 \value{@inst}=\value{@auth}% |
958 \value{@inst}=\value{@auth}% |
941 \setcounter{@auth}{1}% |
959 \setcounter{@auth}{1}% |
942 \else |
960 \else |
1036 \global\@namedef{end#1}{\@endtheorem}}} |
1054 \global\@namedef{end#1}{\@endtheorem}}} |
1037 |
1055 |
1038 \def\@spothm#1[#2]#3#4#5{% |
1056 \def\@spothm#1[#2]#3#4#5{% |
1039 \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% |
1057 \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}% |
1040 {\expandafter\@ifdefinable\csname #1\endcsname |
1058 {\expandafter\@ifdefinable\csname #1\endcsname |
1041 {\global\@namedef{the#1}{\@nameuse{the#2}}% |
1059 {\newaliascnt{#1}{#2}% |
1042 \expandafter\xdef\csname #1name\endcsname{#3}% |
1060 \expandafter\xdef\csname #1name\endcsname{#3}% |
1043 \global\@namedef{#1}{\@spthm{#2}{\csname #1name\endcsname}{#4}{#5}}% |
1061 \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}% |
1044 \global\@namedef{end#1}{\@endtheorem}}}} |
1062 \global\@namedef{end#1}{\@endtheorem}}}} |
1045 |
1063 |
1046 \def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ |
1064 \def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@ |
1047 \refstepcounter{#1}% |
1065 \refstepcounter{#1}% |
1048 \@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} |
1066 \@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}} |