diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrartcl.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/koma-script/scrartcl.cls | 1223 |
1 files changed, 740 insertions, 483 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrartcl.cls b/Master/texmf-dist/tex/latex/koma-script/scrartcl.cls index dd0a30e7592..bda5b6d1a5b 100644 --- a/Master/texmf-dist/tex/latex/koma-script/scrartcl.cls +++ b/Master/texmf-dist/tex/latex/koma-script/scrartcl.cls @@ -6,6 +6,7 @@ %% %% scrkvers.dtx (with options: `class,article') %% scrkbase.dtx (with options: `load') +%% tocbasic.dtx (with options: `load') %% scrkcomp.dtx (with options: `class,article,option') %% scrkmisc.dtx (with options: `class,article,option') %% scrklang.dtx (with options: `class,article,option') @@ -91,7 +92,7 @@ \fi } \fi - \@CheckKOMAScriptVersion{2007/12/24 v2.98 KOMA-Script}% + \@CheckKOMAScriptVersion{2008/11/03 v3.00 KOMA-Script}% \endgroup \newcommand*{\KOMAClassName}{% scrartcl% @@ -104,6 +105,13 @@ ] %%% From File: scrkbase.dtx \RequirePackage{scrkbase}[\KOMAScriptVersion] +%%% From File: tocbasic.dtx +\def\tocbasicversion{2008/10/06 v1.0} +\edef\@tempa{\noexpand\RequirePackage{tocbasic}[\tocbasicversion]} +\@tempa +\addtotoclist{toc} +\addtotoclist[float]{lof} +\addtotoclist[float]{lot} %%% From File: scrkcomp.dtx \newcommand*{\scr@compatibility}{0} \KOMA@key{version}[last]{% @@ -123,7 +131,8 @@ \ClassError{\KOMAClassName}{% Option `version' too late% }{% - Option `version' may be set only while loading the class.\MessageBreak + Option `version' may be set only while loading the + class.\MessageBreak But you've tried to set it up later.% }% }% @@ -144,7 +153,11 @@ \@namedef{scr@v@2.97d}{5} \@namedef{scr@v@2.97e}{6} \@namedef{scr@v@2.98}{6} -\@namedef{scr@v@last}{6} +\@namedef{scr@v@2.98a}{6} +\@namedef{scr@v@2.98b}{6} +\@namedef{scr@v@2.98c}{7} +\@namedef{scr@v@3.00}{8} +\@namedef{scr@v@last}{8} %%% From File: scrkmisc.dtx \KOMA@key{draft}[true]{% \KOMA@set@ifkey{draft}{@tempswa}{#1}% @@ -169,16 +182,41 @@ \def\@pt@@scan #1pt#2\@pt@@scan{% \ifstr{#2}{pt}{% \ifnumber{#1}{% - \KOMA@UseObsoleteOption{\PackageInfoNoLine}{#1#2}{fontsize=#1#2}% + \KOMA@UseObsoleteOption{\PackageInfoNoLine{\KOMAClassName}}% + {#1#2}{fontsize=#1#2}% }{\@headlines}% }{\@headlines}% } +\providecommand*{\@fontsizefilebase}{scrsize} \KOMA@key{fontsize}{% \scr@ifundefinedorrelax{changefontsizes}{% \@defaultunits\@tempdima#1pt\relax\@nnil \edef\@ptsize{#1}% }{% - \changefontsizes{#1}% + \expandafter\@defaultunits\expandafter\@tempdima#1 pt\relax\@nnil + \edef\@tempa{#1}% + \setlength{\@tempdimb}{\@tempdima}% + \edef\@tempb{\strip@pt\@tempdimb}% + \addtolength{\@tempdimb}{-10\p@}% + \edef\@ptsize{\strip@pt\@tempdimb}% + \edef\@tempa{% + \noexpand\makeatletter + \noexpand\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{% + \noexpand\ClassInfo{\KOMAClassName}{% + File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}% + }{% + \noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% + \noexpand\ClassInfo{\KOMAClassName}{% + File `\@fontsizefilebase\@tempb pt.clo' used instead of% + \noexpand\MessageBreak + file `\@fontsizefilebase\@tempa.clo' to setup font sizes}% + }{% + \noexpand\changefontsizes{#1}% + }% + }% + \noexpand\catcode`\noexpand\@=\the\catcode`\@ + }% + \@tempa }% } %%% From File: scrktare.dtx @@ -244,7 +282,7 @@ } \KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{oneside}{twoside=false} \KOMA@key{twocolumn}[true]{% - \if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi% + \if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi% } \KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{onecolumn}{twocolumn=false} \DeclareOption*{% @@ -354,154 +392,138 @@ \endgroup \fi } -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{parskip-}{parskip=full-} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{parskip+}{parskip=full+} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{parskip*}{parskip=full*} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{halfparskip}{parskip=half} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{halfparskip-}{parskip=half-} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{halfparskip+}{parskip=half+} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{halfparskip*}{parskip=half*} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{parindent}{parskip=false} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{parskip-}{parskip=full-} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{parskip+}{parskip=full+} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{parskip*}{parskip=full*} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{halfparskip}{parskip=half} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{halfparskip-}{parskip=half-} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{halfparskip+}{parskip=half+} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{halfparskip*}{parskip=half*} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{parindent}{parskip=false} %%% From File: scrktitl.dtx \newif\if@titlepage \@titlepagefalse -\KOMA@ifkey{titlepage}{@titlepage} -\KOMA@DeclareObsoleteOption[\ClassInfo]{notitlepage}{titlepage=false} +\KOMA@ifkey{titlepage}{@titlepage}% +\KOMA@DeclareObsoleteOption% + [\PackageInfoNoLine]% + {notitlepage}{titlepage=false} \newif\if@abstrt\@abstrtfalse \KOMA@ifkey{abstract}{@abstrt} -\KOMA@DeclareObsoleteOption[\ClassInfo]{abstracton}{abstract=true} -\KOMA@DeclareObsoleteOption[\ClassInfo]{abstractoff}{abstract=false} +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{abstracton}{abstract=true} +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{abstractoff}{abstract=false} %%% From File: scrksect.dtx -\DeclareOption{pointednumbers}{% - \AtEndOfClass{\@altsecnumformattrue - \global\let\@altsecnumformatfalse\@altsecnumformattrue}% -} -\DeclareOption{pointednumber}{% - \AtEndOfClass{\@altsecnumformattrue - \global\let\@altsecnumformatfalse\@altsecnumformattrue}% - \ClassError{\KOMAClassName}{% - undefined option `pointednumber' instead of `pointednumbers'% - }{% - You've used the class-option `pointednumber'.\MessageBreak - This name was an implementation-error at versions from 2.3h till - 2.4f.\MessageBreak - The correct name is `pointednumbers'. - Change this at your document.\MessageBreak - If you'll continue, the option `pointednumbers' will be used% - }% -} -\DeclareOption{pointlessnumbers}{% - \AtEndOfClass{\@altsecnumformatfalse - \global\let\@altsecnumformattrue\@altsecnumformatfalse}% -} -\DeclareOption{pointlessnumber}{% - \AtEndOfClass{\@altsecnumformatfalse - \global\let\@altsecnumformattrue\@altsecnumformatfalse}% +%% \fi +\newcommand*{\scr@dotchangeatdocument}[1]{% \ClassError{\KOMAClassName}{% - undefined option `pointlessnumber' instead of `pointlessnumbers'% + change of end dot feature after \string\begin{document}% }{% - You've used the class-option `pointlessnumber'.\MessageBreak - This name was an implementation-error at versions from 2.3h till - 2.4f.\MessageBreak - The correct name is `pointlessnumbers'. - Change this at your document.\MessageBreak - If you'll continue, the option `pointlessnumbers' will be used% - }% -} -\newcommand\@bigheadings{% - \AtEndOfClass{% - \let\size@part\Huge - \let\size@partnumber\huge - \let\size@section\Large - \let\size@subsection\large - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize + You've tried to set `numbers=#1' after \string\begin{document},\MessageBreak + but this option is only allowed at the document preamble.\MessageBreak + See KOMA-Script manual for more information about.% }% } -\DeclareOption{bigheadings}{\@bigheadings} -\DeclareOption{bigheading}{% - \@bigheadings - \ClassError{\KOMAClassName}{% - undefined option `bigheading' instead of `bigheadings'% - }{% - You've used the old option name `bigheading'!\MessageBreak - The correct name of the option is `bigheadings'.\MessageBreak - The old name was an implementation error from\MessageBreak - version 2.3h till 2.4f.\MessageBreak - You should change this at your document!\MessageBreak - If you'll continue, option `bigheadings' will be used% - }% -} -\newcommand\@normalheadings{% - \AtEndOfClass{% - \let\size@part\huge - \let\size@partnumber\huge - \let\size@section\large - \let\size@subsection\normalsize - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize - }% +\KOMA@key{numbers}{% + \KOMA@set@ncmdkey{numbers}{@tempa}{% + {autoendperiod}{0},{autoenddot}{0},{auto}{0},% + {endperiod}{1},{withendperiod}{1},{periodatend}{1},% + {enddot}{1},{withenddot}{1},{dotatend}{1},% + {noendperiod}{2},{noperiodatend}{2},% + {noenddot}{2},{nodotatend}{2}% + }{#1}% + \ifcase \@tempa\relax + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\@empty + \fi + \or + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\scr@altsecnumhooktrue + \fi + \or + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\scr@altsecnumhookfalse + \fi + \fi } -\DeclareOption{normalheadings}{\@normalheadings} -\DeclareOption{normalheading}{% - \@normalheadings - \ClassError{\KOMAClassName}{% - undefined option `normalheading' instead of `normalheadings'% - }{% - You've used the old option name `normalheading'!\MessageBreak - The correct name of the option is `normalheadings'.\MessageBreak - The old name was an implementation error from\MessageBreak - version 2.3h till 2.4f.\MessageBreak - You should change this at your document!\MessageBreak - If you'll continue, option `normalheadings' will be used% - }% +\newcommand*{\scr@altsecnumhook}{} +\AtBeginDocument{\scr@altsecnumhook} +\newcommand*{\scr@altsecnumhooktrue}{% + \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue } -\newcommand\@smallheadings{% - \AtEndOfClass{ - \let\size@part\LARGE - \let\size@partnumber\LARGE - \let\size@section\normalsize - \let\size@subsection\normalsize - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize - }% +\newcommand*{\scr@altsecnumhookfalse}{% + \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse } -\DeclareOption{smallheadings}{\@smallheadings} -\DeclareOption{smallheading}{% - \@smallheadings - \ClassError{\KOMAClassName}{% - undefined option `smallheading' instead of `smallheadings'% - }{% - You've used the old option name `smallheading'!\MessageBreak - The correct name of the option is `smallheadings'.\MessageBreak - The old name was an implementation error from\MessageBreak - version 2.3h till 2.4f.\MessageBreak - You should change this at your document!\MessageBreak - If you'll continue, option `smallheadings' will be used% - }% +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{pointednumbers}% + {numbers=enddot} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{pointlessnumbers}% + {numbers=noenddot} +\newcommand*{\size@part}{} +\newcommand*{\size@partnumber}{} +\newcommand*{\size@section}{} +\newcommand*{\size@subsection}{} +\newcommand*{\size@subsubsection}{} +\newcommand*{\size@paragraph}{} +\newcommand*{\size@subparagraph}{} +\newcommand*{\chapterheadstartvskip}{} +\newcommand*{\chapterheadendvskip}{} +\KOMA@key{headings}{% + \KOMA@set@ncmdkey{headings}{@tempa}{% + {big}{0},% + {normal}{1},% + {small}{2}% + }{#1}% + \ifcase \@tempa\relax + \renewcommand*{\size@part}{\Huge}% + \renewcommand*{\size@partnumber}{\huge}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or + \renewcommand*{\size@part}{\huge}% + \renewcommand*{\size@partnumber}{\huge}% + \renewcommand*{\size@section}{\large}% + \renewcommand*{\size@subsection}{\normalsize}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or + \renewcommand*{\size@part}{\LARGE}% + \renewcommand*{\size@partnumber}{\LARGE}% + \renewcommand*{\size@section}{\normalsize}% + \renewcommand*{\size@subsection}{\normalsize}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or + \or + \or + \or + \or + \or + \or + \fi } -\@bigheadings +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{bigheadings}% + {headings=big} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{normalheadings}% + {headings=normal} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{smallheadings}% + {headings=small} %%% From File: scrkpage.dtx \newif\if@hsl \KOMA@key{headsepline}[true]{% \KOMA@set@ifkey{headsepline}{@hsl}{#1}% - \@ifpackageloaded{typearea}{% - \KOMAoptions{headinclude=#1}% - }{}% + \KOMA@options{headinclude=#1}{}% } -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{headnosepline}{% +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{headnosepline}{% headsepline=false} \newif\if@fsl \KOMA@key{footsepline}[true]{% \KOMA@set@ifkey{footsepline}{@fsl}{#1}% - \@ifpackageloaded{typearea}{% - \KOMAoptions{footinclude=#1}% - }{}% + \KOMA@options{footinclude=#1}{}% } -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{footnosepline}{% +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{footnosepline}{% footsepline=false} \@twosidefalse \KOMA@key{cleardoublepage}{% @@ -513,131 +535,365 @@ }% \ifstr{#1}{current}{% \def\@tempc{\endgroup% - \let\cleardoublepage\cleardoublestandardpage + \def\cleardoublepage{\cleardoublestandardpage}% + \def\cleardoubleoddpage{\cleardoubleoddstandardpage}% + \def\cleardoubleevenpage{\cleardoubleevenstandardpage}% }% }{% \ifnotundefined{ps@#1}{% \def\@tempc{\endgroup% \def\cleardoublepage{\cleardoublepageusingstyle{#1}}% + \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}% + \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}% }% }{}% }% \@tempc } -\newcommand*{\cleardoublestandardpage}{} -\let\cleardoublestandardpage\cleardoublepage +\newcommand*{\cleardoubleoddstandardpage}{} +\let\cleardoubleoddstandardpage=\cleardoublepage +\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage + {\thispagestyle{#1}\cleardoubleoddstandardpage}} +\newcommand*{\cleardoubleoddemptypage}{\cleardoubleoddpageusingstyle{empty}} +\newcommand*{\cleardoubleoddplainpage}{\cleardoubleoddpageusingstyle{plain}} +\newcommand*{\cleardoubleevenstandardpage}{% + \clearpage + \if@twoside\ifodd\c@page + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi + \fi\fi +} +\newcommand*{\cleardoubleevenpageusingstyle}[1]{\clearpage + {\thispagestyle{#1}\cleardoubleevenstandardpage}} +\newcommand*{\cleardoubleevenemptypage}{\cleardoubleevenpageusingstyle{empty}} +\newcommand*{\cleardoubleevenplainpage}{\cleardoubleevenpageusingstyle{plain}} +\newcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage} +\renewcommand*{\cleardoublepage}{% + \expandafter\ifnum \@nameuse{scr@v@2.98c}<\scr@compatibility\relax + \cleardoubleemptypage + \else + \cleardoublestandardpage + \fi +} +\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage} +\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage} \newcommand*{\cleardoublepageusingstyle}[1]{\clearpage {\thispagestyle{#1}\cleardoublestandardpage}} \newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}} \newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{cleardoubleempty}{% - cleardoublepage=empty% -} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{cleardoubleplain}{% - cleardoublepage=plain% -} -\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{cleardoublestandard}{% - cleardoublepage=current% -} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoubleempty}% + {cleardoublepage=empty} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoubleplain}% + {cleardoublepage=plain} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{cleardoublestandard}% + {cleardoublepage=current} %%% From File: scrkfloa.dtx \newif\if@tablecaptionabove\@tablecaptionabovefalse -\DeclareOption{tablecaptionabove}{\@tablecaptionabovetrue} -\DeclareOption{tablecaptionbelow}{\@tablecaptionabovefalse} -\newif\if@komalongtable\@komalongtabletrue -\DeclareOption{origlongtable}{\@komalongtablefalse} \newif\ifonelinecaptions\onelinecaptionstrue -\DeclareOption{onelinecaption}{\onelinecaptionstrue - \PassOptionsToPackage{oneline}{caption2}% -} -\DeclareOption{noonelinecaption}{\onelinecaptionsfalse - \PassOptionsToPackage{nooneline}{caption2}% +\newcommand*{\scap@pos}{r} +\newcommand*{\scap@valign}{b} +\KOMA@key{captions}{% + \KOMA@set@ncmdkey{captions}{@tempa}{% + {tableheading}{0},% + {tableabove}{0},{abovetable}{0},{abovetabular}{0},{topattable}{0},% + {tablesignature}{1},% + {tablebelow}{1},{belowtable}{1},{belowtabular}{1},{bottomattable}{1},% + {oneline}{2},% + {nooneline}{3},% + {rightbeside}{4},{besideright}{4},% + {leftbeside}{5},{besideleft}{5},% + {innerbeside}{6},{besideinner}{6},% + {outerbeside}{7},{besideouter}{7},% + {topbeside}{8},{besidetop}{8},% + {centeredbeside}{9},{besidecentered}{9},% + {middlebeside}{9},{besidemiddle}{9},% + {bottombeside}{10},{besidebottom}{10}% + }{#1}% + \ifcase \@tempa\relax + \@tablecaptionabovetrue + \or + \@tablecaptionabovefalse + \or + \onelinecaptionstrue + \or + \onelinecaptionsfalse + \or + \renewcommand*{\scap@pos}{r}% + \or + \renewcommand*{\scap@pos}{l}% + \or + \renewcommand*{\scap@pos}{i}% + \or + \renewcommand*{\scap@pos}{o}% + \or + \renewcommand*{\scap@valign}{t}% + \or + \renewcommand*{\scap@valign}{c}% + \or + \renewcommand*{\scap@valign}{b}% + \fi } +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{tablecaptionabove}% + {captions=tableheading} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{tablecaptionbelow}% + {captions=tablesignature} +\newif\if@komalongtable\@komalongtabletrue +\DeclareOption{origlongtable}{\@komalongtablefalse} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{onelinecaption} + {captions=oneline} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{noonelinecaption} + {captions=nooneline} %%% From File: scrkftn.dtx -%%% From File: scrkliof.dtx -\newif\if@tocleft -\DeclareOption{tocleft}{\@toclefttrue} -\DeclareOption{tocindent}{\@tocleftfalse} -\DeclareOption{liststotoc}{% - \AtEndOfClass{% - \renewcommand*{\float@listhead}[1]{% - \addsec{#1} - \@mkboth{#1}{#1}% - \if@dynlist - \newcommand*{\scr@starttoc}{}% - \let\scr@starttoc=\@starttoc - \renewcommand*{\@starttoc}[1]{% - \before@starttoc{##1}\scr@starttoc{##1}\after@starttoc{##1}}% - \fi +\KOMA@key{footnotes}{% + \ifx\@footnotemark\scr@saved@footnotemark + \else + \ifx\@footnotemark\scr@footnotemark + \else + \ClassWarning{\KOMAClassName}{% + Change of `\string\@footnotemark' detected!\MessageBreak + Use of `footnotes=#1' may break\MessageBreak + another package!\MessageBreak + Maybe you should remove the usage of\MessageBreak + option `footnotes=#1'}% + \fi + \fi + \ifstr{#1}{multiple}{% + \let\@footnotemark\scr@footnotemark + \let\FN@mf@prepare\scr@mf@prepare + \def\scr@footmisc@options{multiple}% + }{% + \ifstr{#1}{nomultiple}{% + \let\@footnotemark\scr@saved@footnotemark + \let\FN@mf@prepare\relax + \let\scr@footmisc@options\@empty + }{% + \KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}% }% }% } -\DeclareOption{liststotocnumbered}{% - \AtEndOfClass{% - \renewcommand*{\float@listhead}[1]{% - \section{#1} - \@mkboth{\sectionmarkformat #1}{\sectionmarkformat #1}% - \if@dynlist - \newcommand*{\scr@starttoc}{}% - \let\scr@starttoc=\@starttoc - \renewcommand*{\@starttoc}[1]{% - \before@starttoc{##1}\scr@starttoc{##1}\after@starttoc{##1}}% - \fi - }% - }% +\newcommand*{\scr@footmisc@options}{} +\PassOptionsToPackage{\noexpand\scr@footmisc@options}{footmisc} +\newcommand*{\scr@saved@footnotemark}{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \@makefnmark + \ifhmode\spacefactor\@x@sf\fi + \relax} +\expandafter\CheckCommand\expandafter*\expandafter\@footnotemark +\expandafter{\scr@saved@footnotemark} +\newcommand*{\scr@footnotemark}{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\FN@mf@check\nobreak\fi + \@makefnmark + \csname FN@mf@prepare\endcsname + \ifhmode\spacefactor\@x@sf\fi + \relax} +%%% From File: scrkliof.dtx +\newif\if@tocleft +\KOMA@key{toc}{% + \KOMA@set@ncmdkey{toc}{@tempa}{% + {noindex}{0},{noidx}{0},% + {index}{1},{idx}{1},% + {nolistof}{2},% + {listof}{3},% + {listofnumbered}{4},{numberedlistof}{4},% + {nobibliography}{5},{nobib}{5},% + {bibliography}{6},{bib}{6},% + {bibliographynumbered}{7},{bibnumbered}{7},{numberedbibliography}{7},% + {numberedbib}{7},% + {flat}{8},{left}{8},% + {graduated}{9},{indent}{9},{indented}{9}% + }{#1}% + \ifcase \@tempa\relax + \KOMA@options{index=notoc}{}% + \or + \KOMA@options{index=totoc}{}% + \or + \KOMA@options{listof=notoc}{}% + \or + \KOMA@options{listof=totoc}{}% + \or + \KOMA@options{listof=numbered}{}% + \or + \KOMA@options{bibliography=nottotoc}{}% + \or + \KOMA@options{bibliography=totoc}{}% + \or + \KOMA@options{bibliography=totocnumbered}{}% + \or + \@toclefttrue + \or + \@tocleftfalse + \fi +} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{tocleft}{toc=flat} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{tocindent}{toc=graduated} +\newcommand*{\float@@listhead}{% + \section* } \newif\if@dynlist -\DeclareOption{listsleft}{\@dynlisttrue} -\DeclareOption{listsindent}{\@dynlistfalse} -\newcommand*{\@chapterlistsgap}{10\p@} -\newif\if@chaptertolists\@chaptertolistsfalse -\KOMA@key{chapteratlists}[entry]{% - \ifstr{#1}{entry}{% - \@chaptertoliststrue\renewcommand*{\@chapterlistsgap}{\z@}% - }{% - \@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}% - }% +\KOMA@key{listof}{% + \KOMA@set@ncmdkey{listof}{@tempa}{% + {notoc}{0},{nottotoc}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1},% + {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% + {numberedtoc}{2},% + {flat}{3},{left}{3},% + {graduated}{4},{indent}{4},{indented}{4},% + {leveldown}{5}, + }{#1}% + \ifcase \@tempa\relax + \renewcommand*{\float@@listhead}{% + \section* + }% + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numbered}% + \unsettoc{\@currext}{totoc}% + }% + \or% totoc + \renewcommand*{\float@@listhead}{% + \addsec + }% + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \or% numbered + \renewcommand*{\float@@listhead}{% + \section + }% + \doforeachtocfile[float]{% + \setuptoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \or% flat + \@dynlisttrue + \or% graduated + \@dynlistfalse + \or% leveldown + \doforeachtocfile[float]{% + \setuptoc{\@currext}{leveldown}% + }% + \fi } +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{liststotoc}{listof=totoc} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{liststotocnumbered} + {listof=numbered} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{listsleft}{listof=flat} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{listsindent}{listof=graduated} %%% From File: scrkbib.dtx -\DeclareOption{openbib}{% - \AtEndOfPackage{% - \renewcommand*\@openbib@code{% - \advance\leftmargin\bibindent - \itemindent -\bibindent - \listparindent \itemindent - \parsep \z@ +\newcommand{\newbibstyle}[3][]{% + \scr@ifundefinedorrelax{scr@bibstyle@#2}{% + \scr@ifundefinedorrelax{scr@bibstyle@#1}{% + \ClassError{\KOMAClassName}{% + parent bibliography style `#1' does not exist}{% + You've told me to define the new bibliography style `#2'\MessageBreak + to be a child of bibliography style `#1', but bibliography + style\MessageBreak + `#1' does not exist.\MessageBreak + You have to remove the parent declaration or use an existing parent! + See the KOMA-Script manual for more information.% + }% + }{% + \@namedef{scr@bibstyle@#2}{% + \let\@openbib@code\@empty + \let\newblock\@empty + \let\bib@beginhook\@empty + \let\bib@endhook\@empty + \csname scr@bibstyle@#1\endcsname + #3% + }% + \g@addto@macro\scr@bibstylelist{, `#2'}% + }% + }{% + \ClassError{\KOMAClassName}{bibliography style `#2' already exists}{% + You've told me to define the new bibliography style `#2',\MessageBreak + but this style already exists.\MessageBreak + You have to use another bibliography style name.\MessageBreak + See the KOMA-Script manual for more information.% }% - \renewcommand*\newblock{\par}% }% } -\DeclareOption{bibtotoc}{% - \AtEndOfClass{% - \renewcommand*\bib@heading{% - \addsec{\refname}% - \@mkboth{\refname}{\refname}% - }% +\newcommand*{\scr@bibstyle@}{} +\newcommand*{\bib@beginhook}{} +\newcommand*{\bib@endhook}{} +\newcommand*{\scr@bibstylelist}{\@gobble} +\newcommand*{\@openbib@code}{} +\newcommand*{\newblock}{} +\newbibstyle{openstyle}{% + \renewcommand*{\@openbib@code}{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ }% + \renewcommand*{\newblock}{\par}% } -\DeclareOption{bibtotocnumbered}{% - \AtEndOfClass{% - \renewcommand*\bib@heading{% - \section{\refname}% - \@mkboth{\sectionmarkformat \refname}{\sectionmarkformat \refname}% - }% +\newbibstyle{oldstyle}{% + \renewcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}% +} +\scr@bibstyle@oldstyle +\newcommand*\bib@heading{% + \section*{\refname}% + \@mkboth{\refname}{\refname}% +} +\KOMA@key{bibliography}{% + \scr@ifundefinedorrelax{scr@bibstyle@#1}{% + \let\FamilyElseValues\scr@bibstylelist + \KOMA@set@ncmdkey{bibliography}{@tempa}{% + {notoc}{0},{nottotoc}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1},% + {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},% + {numberedtoc}{2}% + }{#1}% + \ifcase \@tempa\relax + \renewcommand*\bib@heading{% + \section*{\refname}% + \@mkboth{\refname}{\refname}% + }% + \or% totoc + \renewcommand*\bib@heading{% + \addsec{\refname}% + \@mkboth{\refname}{\refname}% + }% + \or% numbered + \renewcommand*\bib@heading{% + \section{\refname}% + \@mkboth{\sectionmarkformat \refname}{\sectionmarkformat \refname}% + } + \fi + }{% + \csname scr@bibstyle@#1\endcsname }% } +\KOMA@DeclareObsoleteOption[\ClassInfoNoLine]{openbib}{bibliography=openstyle} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{bibtotoc}{bibliography=totoc} +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{bibtotocnumbered}{% + bibliography=totocnumbered} %%% From File: scrkidx.dtx -\DeclareOption{idxtotoc}{% - \AtEndOfClass{% - \renewcommand*\idx@heading{% - \twocolumn[\addsec{\indexname}]% - \@mkboth{\indexname}{\indexname}% +\newcommand*{\idx@@heading}{% + \section* +} +\KOMA@key{index}{% + \KOMA@set@ncmdkey{index}{@tempa}{% + {notoc}{0},{nottotoc}{0},{default}{0},{plainheading}{0},% + {totoc}{1},{toc}{1},{notnumbered}{1}% + }{#1}% + \ifcase \@tempa\relax + \renewcommand*{\idx@@heading}{% + \section* }% - }% + \or + \renewcommand*{\idx@@heading}{% + \addsec + }% + \fi } +\KOMA@DeclareObsoleteOption[\ClassWarningNoLine]{idxtotoc}{index=totoc} %%% From File: scrklist.dtx %%% From File: scrkmisc.dtx \KOMAExecuteOptions{% - parskip=false% + parskip=false,% + headings=big% } \KOMAProcessOptions\relax %%% From File: scrkcomp.dtx @@ -884,7 +1140,6 @@ \setlength\partopsep{.2\@tempdimc \@plus.1\@tempdimc \@minus.1\@tempdimc}% }% } -\providecommand*{\@fontsizefilebase}{scrsize} \expandafter\@defaultunits\expandafter\@tempdima\@ptsize pt\relax\@nnil \edef\@tempa{\@ptsize}% \setlength{\@tempdimb}{\@tempdima}% @@ -1023,119 +1278,6 @@ }% } %%% From File: scrklang.dtx -\newcommand*{\providecaptionname}[3]{% - \@ifundefined{captions#1}{% - \@ifundefined{cap@info@#1@done}{% - \ClassInfo{\KOMAClassName}{% - No captions found for `#1'\MessageBreak - --> skipped% - }% - \expandafter\let\csname cap@info@#1@done\endcsname\@empty - }{}% - }{% - \begingroup - \let\@tempa\endgroup - \csname captions#1\endcsname - \ifx #2\undefined - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \ifx\@tempb\languagename - \def\@tempa{\endgroup% - \expandafter\g@addto@macro\csname captions#1\endcsname{% - \def#2{#3}}% - \csname captions#1\endcsname - }% - \else - \def\@tempa{\endgroup% - \expandafter\g@addto@macro\csname captions#1\endcsname{% - \def#2{#3}}% - }% - \fi - \else - \ClassInfo{\KOMAClassName}{% - `\string#2' at language `#1' already - defined\MessageBreak - --> skipped% - }% - \fi - \@tempa - }% -} -\newcommand*{\newcaptionname}[3]{% - \@ifundefined{captions#1}{% - \ClassInfo{\KOMAClassName}{% - No captions found for `#1' --> defining% - }% - \@namedef{captions#1}{}% - }{}% - \begingroup - \csname captions#1\endcsname - \ifx #2\undefined\else - \ClassError{\KOMAClassName}{% - `\string#2' at language `#1' already defined% - }{% - You've told me to define `\string#2' at language - `#1',\MessageBreak - but it is already defined.\MessageBreak - It will be redefined, if you'll continue.% - }% - \fi - \endgroup - \expandafter\g@addto@macro\csname captions#1\endcsname{% - \def#2{#3}% - }% - \begingroup - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \ifx\@tempb\languagename - \def\@tempa{\endgroup\csname captions#1\endcsname}% - \else - \let\@tempa\endgroup - \fi - \@tempa -} -\newcommand*{\renewcaptionname}[3]{% - \@ifundefined{captions#1}{% - \ClassError{\KOMAClassName}{% - No captions found for `#1'% - }{% - You've told me to redefine the caption `\string#2' at language - `#1',\MessageBreak - but `\expandafter\string\csname captions#1\endcsname' is not - defined.\MessageBreak - If you'll continue it will be defined.% - } - \@namedef{captions#1}{}% - }{}% - \begingroup - \csname captions#1\endcsname - \ifx #2\undefined - \ClassError{\KOMAClassName}{% - `\string#2' not defined at language `#1'% - }{% - You've told me to redefine `\string#2' at language - `#1',\MessageBreak - but it is not defined.\MessageBreak - If you'll continue it will be defined.% - }% - \fi - \endgroup - \expandafter\g@addto@macro\csname captions#1\endcsname{% - \def#2{#3}% - }% - \begingroup - \edef\@tempb{#1}% - \@onelevel@sanitize\@tempb - \@onelevel@sanitize\languagename - \ifx\@tempb\languagename - \def\@tempa{\endgroup\csname captions#1\endcsname}% - \else - \let\@tempa\endgroup - \fi - \@tempa -} \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi @@ -1240,44 +1382,62 @@ \addtolength{#1}{\@tempskipa}% \fi } -\g@addto@macro{\@listi}{\@list@extra} -\let\@listI=\@listi -\g@addto@macro{\@listii}{\@list@extra} -\g@addto@macro{\@listiii}{\@list@extra} +\newcommand*{\@list@extra}{% + \ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi +} \newcommand*{\add@extra@listi}[1]{% \expandafter\let\csname #1@listi\endcsname=\@listi \def\@listi{\csname #1@listi\endcsname\@list@extra}% } -\g@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}} -\g@addto@macro{\small}{\protect\add@extra@listi{sml}} -\newcommand*{\@list@extra}{% - \ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi -} + \l@addto@macro{\@listi}{\@list@extra}% + \let\@listI=\@listi + \l@addto@macro{\@listii}{\@list@extra}% + \l@addto@macro{\@listiii}{\@list@extra}% + \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}% + \l@addto@macro{\small}{\protect\add@extra@listi{sml}}% \@lowpenalty = 51 \@medpenalty =151 \@highpenalty =301 %%% From File: scrktitl.dtx -\newcommand*{\@extratitle}{} -\newcommand{\extratitle}[1]{\gdef\@extratitle{#1}} -\newcommand*{\@titlehead}{} -\newcommand{\titlehead}[1]{\gdef\@titlehead{#1}} -\newcommand*{\@subject}{} -\newcommand*{\subject}[1]{\gdef\@subject{#1}} -\newcommand*{\subtitle}[1]{\gdef\@subtitle{#1}} -\newcommand*{\@subtitle}{} -\newcommand*{\@publishers}{} -\newcommand{\publishers}[1]{\gdef\@publishers{#1}} -\newcommand*{\@uppertitleback}{} -\newcommand{\uppertitleback}[1]{\gdef\@uppertitleback{#1}} -\newcommand*{\@lowertitleback}{} -\newcommand{\lowertitleback}[1]{\gdef\@lowertitleback{#1}} -\newcommand*{\@dedication}{} -\newcommand{\dedication}[1]{\gdef\@dedication{#1}} -\newcommand*{\next@tpage}{\clearpage\thispagestyle{empty}} +\newcommand*{\@extratitle}{}% +\newcommand{\extratitle}[1]{\gdef\@extratitle{% + #1% +}}% +\newcommand*{\@titlehead}{}% +\newcommand{\titlehead}[1]{\gdef\@titlehead{% + #1% +}}% +\newcommand*{\@subject}{}% +\newcommand*{\subject}[1]{\gdef\@subject{% + #1% +}}% +\newcommand*{\subtitle}[1]{\gdef\@subtitle{% + #1% +}}% +\newcommand*{\@subtitle}{}% +\newcommand*{\@publishers}{}% +\newcommand{\publishers}[1]{\gdef\@publishers{% + #1% +}}% +\newcommand*{\@uppertitleback}{}% +\newcommand{\uppertitleback}[1]{\gdef\@uppertitleback{% + #1% +}}% +\newcommand*{\@lowertitleback}{}% +\newcommand{\lowertitleback}[1]{\gdef\@lowertitleback{% + #1% +}}% +\newcommand*{\@dedication}{}% +\newcommand{\dedication}[1]{\gdef\@dedication{% + #1% +}}% +\newcommand*{\next@tpage}{\clearpage\thispagestyle{empty}}% \if@titlepage \newcommand*\maketitle[1][1]{% \begin{titlepage} - \setcounter{page}{#1}% + \setcounter{page}{% + #1% + }% \let\footnotesize\small \let\footnoterule\relax \let\footnote\thanks @@ -1359,10 +1519,12 @@ \global\let\dedication\relax \global\let\date\relax \global\let\and\relax - } + }% \else \newcommand*\maketitle[1][1]{\par - \@tempcnta=#1\relax\ifnum\@tempcnta=1\else + \@tempcnta=% + #1% + \relax\ifnum\@tempcnta=1\else \ClassWarning{\KOMAClassName}{% Optional argument of \string\maketitle\space ignored at\MessageBreak @@ -1413,7 +1575,7 @@ \global\let\dedication\relax \global\let\date\relax \global\let\and\relax - } + }% \fi \newcommand*{\@maketitle}{% \clearpage @@ -1455,12 +1617,25 @@ \end{center}% \par \vskip 2em -} -\newcommand*\titlefont{\sectfont} -\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large} -\newkomafont{subtitle}{\usekomafont{title}\large} -\newcommand*{\scr@fnt@title}{\titlefont} -\newcommand*{\scr@fnt@subject}{\subject@font} +}% +\newenvironment{titlepage}{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \if@compatibility + \setcounter{page}{0}% + \fi +}{% + \if@restonecol\twocolumn \else \newpage \fi +}% +\newcommand*\titlefont{\sectfont}% +\newcommand*{\subject@font}{\normalfont\normalcolor\bfseries\Large}% +\newkomafont{subtitle}{\usekomafont{title}\large}% +\newcommand*{\scr@fnt@title}{\titlefont}% +\newcommand*{\scr@fnt@subject}{\subject@font}% \if@titlepage \newenvironment{abstract}{% \titlepage @@ -1494,19 +1669,6 @@ \if@twocolumn\else\endquotation\fi } \fi -\newenvironment{titlepage}{% - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse\newpage - \fi - \thispagestyle{empty}% - \if@compatibility - \setcounter{page}{0}% - \fi -}{% - \if@restonecol\twocolumn \else \newpage \fi -} %%% From File: scrksect.dtx \newcommand*\appendix{\par% \setcounter{section}{0}% @@ -1515,22 +1677,25 @@ \csname appendixmore\endcsname } \newif\if@altsecnumformat\@altsecnumformatfalse -\newif\if@autodot\@autodotfalse +\newif\if@autodot +\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue} +\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse} +\@autodotfalse \newcommand{\@maybeautodot}[1]{\if@autodot\else\begingroup% \expandafter\@@maybeautodot #1\@stop\endgroup\fi } \newcommand*{\@@maybeautodot}[1]{% \ifx #1\@stop\let\@@maybeautodot\relax \else - \ifx #1\Alph \aftergroup\@autodottrue\fi - \ifx #1\alph \aftergroup\@autodottrue\fi - \ifx #1\Roman \aftergroup\@autodottrue\fi - \ifx #1\roman \aftergroup\@autodottrue\fi - \ifx #1\@Alph \aftergroup\@autodottrue\fi - \ifx #1\@alph \aftergroup\@autodottrue\fi - \ifx #1\@Roman \aftergroup\@autodottrue\fi - \ifx #1\@roman \aftergroup\@autodottrue\fi - \ifx #1\romannumeral \aftergroup\@autodottrue\fi + \ifx #1\Alph \@autodottrue\fi + \ifx #1\alph \@autodottrue\fi + \ifx #1\Roman \@autodottrue\fi + \ifx #1\roman \@autodottrue\fi + \ifx #1\@Alph \@autodottrue\fi + \ifx #1\@alph \@autodottrue\fi + \ifx #1\@Roman \@autodottrue\fi + \ifx #1\@roman \@autodottrue\fi + \ifx #1\romannumeral \@autodottrue\fi \fi \@@maybeautodot } @@ -1630,7 +1795,9 @@ \secdef\@addpart\@saddpart } \newcommand*{\@addpart}{} -\def\@addpart[#1]#2{\addcontentsline{toc}{part}{#1}\@spart{#2}% +\def\@addpart[#1]#2{% + \csname phantomsection\endcsname + \addcontentsline{toc}{part}{#1}\@spart{#2}% \ifx\partmark\@gobble\else\@mkboth{#1}{}\fi } \newcommand*{\@saddpart}{\@spart} @@ -1645,23 +1812,23 @@ \newcommand\section{\@startsection{section}{1}{\z@}% {-3.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus.2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\setlength{\parfillskip}{\z@ - plus 1fil}\fi + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi \raggedsection\normalfont\sectfont\nobreak\size@section}% } \newcommand\subsection{\@startsection{subsection}{2}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\setlength{\parfillskip}{\z@ - plus 1fil}\fi + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi \raggedsection\normalfont\sectfont\nobreak\size@subsection }% } \newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% - {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\setlength{\parfillskip}{\z@ - plus 1fil}\fi + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi \raggedsection\normalfont\sectfont\nobreak\size@subsubsection }% } @@ -1693,14 +1860,8 @@ \newkomafont{partentrypagenumber}{} \newkomafont{sectionentry}{\usekomafont{sectioning}} \newkomafont{sectionentrypagenumber}{} -\newcommand*{\size@part}{} -\newcommand*{\size@partnumber}{} -\newcommand*{\size@section}{} -\newcommand*{\size@subsection}{} -\newcommand*{\size@subsubsection}{} -\newcommand*{\size@paragraph}{} -\newcommand*{\size@subparagraph}{} \newcommand*{\scr@fnt@disposition}{\sectfont} +\aliaskomafont{sectioning}{disposition} \newcommand*{\scr@fnt@part}{\size@part} \newcommand*{\scr@fnt@partnumber}{\size@partnumber} \newcommand*{\scr@fnt@section}{\size@section} @@ -1708,7 +1869,6 @@ \newcommand*{\scr@fnt@subsubsection}{\size@subsubsection} \newcommand*{\scr@fnt@paragraph}{\size@paragraph} \newcommand*{\scr@fnt@subparagraph}{\size@subparagraph} -\aliaskomafont{sectioning}{disposition} \newcommand*\l@part[2]{% \ifnum \c@tocdepth >\m@ne\relax \addpenalty{\@secpenalty}% @@ -1728,7 +1888,7 @@ \usekomafont{partentry}{#1\nobreak \usekomafont{partentrypagenumber}{\hfil\nobreak \hb@xt@\@pnumwidth{\hss#2}}}\par - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax \endgroup \penalty20010 \else @@ -1766,7 +1926,7 @@ \hfill\nobreak \hb@xt@\@pnumwidth{\hss#2}}}\par \endgroup - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax \penalty20008 \fi \fi @@ -1777,7 +1937,7 @@ \newcommand*\l@paragraph{\bprot@dottedtocline{4}{7.0em}{4.1em}} \newcommand*\l@subparagraph{\bprot@dottedtocline{5}{10em}{5em}} \newcommand*{\bprot@dottedtocline}[5]{% - \ifnum \scr@compatibility>\@nameuse{scr@v@2.96} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax \ifnum #1>\c@tocdepth \else \begingroup \@tempcnta 20010 @@ -1875,16 +2035,19 @@ \addtolength{\@tempdima}{\marginparwidth}% \fi } -\newcommand*\pnumfont{\normalfont\normalcolor} -\newcommand*\headfont{\normalfont\normalcolor\slshape} +\newcommand*{\pnumfont}{\normalfont\normalcolor} +\newcommand*{\headfont}{\normalfont\normalcolor\slshape} +\newcommand*{\footfont}{} \newcommand*{\scr@fnt@pagenumber}{\pnumfont} \aliaskomafont{pagination}{pagenumber} -\newcommand*{\scr@fnt@pagehead}{\headfont} -\newcommand*{\scr@fnt@wrn@pagehead}[1]{% - `pagehead' and `pagefoot' are aliases for the same\MessageBreak - font element, changed% +\newcommand*{\scr@fnt@pageheadfoot}{\headfont} +\aliaskomafont{pagehead}{pageheadfoot} +\newcommand*{\scr@fnt@pagefoot}{\footfont} +\newcommand*{\scr@fnt@wrn@pagefoot}[1]{% + This class does not use font element `pagefoot'!\MessageBreak + Maybe you should load package `scrpage2', before\MessageBreak + using this element% } -\aliaskomafont{pagefoot}{pagehead} \newcommand*{\pagemark}{{\usekomafont{pagenumber}% \thepage}} \renewcommand*{\ps@plain}{% @@ -1953,7 +2116,6 @@ \renewcommand*{\sectionmark}[1]{}% } \newcommand*{\titlepagestyle}{plain} -\newcommand*{\partpagestyle}{plain} \newcommand*{\indexpagestyle}{plain} \pagestyle{plain} \pagenumbering{arabic} @@ -1983,8 +2145,6 @@ \AtBeginDocument{\let\scr@caption\caption} \newcommand{\captionabove}{\@captionabovetrue\scr@caption} \newcommand{\captionbelow}{\@captionabovefalse\scr@caption} -\newcommand*{\scap@pos}{r} -\newcommand*{\scap@valign}{b} \newcommand*{\scap@caption}{} \newcommand*{\scap@width}{\linewidth} \newcommand*{\scap@move}{\z@} @@ -2024,7 +2184,16 @@ \newbox\c@pti@nb@sid@b@x \newcommand{\c@pti@nb@sid@}{} \long\def\c@pti@nb@sid@[#1]#2{% - \def\scap@caption{\captionbelow[{#1}]{#2}}% + \def\scap@caption{% + \if c\scap@valign + \setlength{\abovecaptionskip}{\z@}% + \setlength{\belowcaptionskip}{\z@}% + \else + \setlength{\abovecaptionskip}{-\ht\strutbox}% + \setlength{\belowcaptionskip}{-\dp\strutbox}% + \fi + \captionbelow[{#1}]{#2}% + }% \begin{lrbox}{\c@pti@nb@sid@b@x}% } \newenvironment*{captionbeside}{% @@ -2105,12 +2274,12 @@ \AfterPackage{caption2}{% \renewcommand*{\setcapindent}{% \ClassWarning{\KOMAClassName}{% - You're using package caption2.\MessageBreak - Because of this you should also use \string\captionstyle\space + You're using package `caption2'.\MessageBreak + Because of this you should also use `\string\captionstyle' and\MessageBreak - set length \string\captionindent\space instead if + set length '\string\captionindent' instead of using\MessageBreak - \string\setcapindent + `\string\setcapindent'% }% \captionstyle{indent}% \@ifstar{\setlength{\captionindent}}{\setlength{\captionindent}}% @@ -2120,10 +2289,10 @@ \AfterPackage{caption2}{% \renewcommand*{\setcaphanging}{% \ClassWarning{\KOMAClassName}{% - You're using package caption2.\MessageBreak + You're using package `caption2'.\MessageBreak Because of this you should also use - \string\captionstyle\MessageBreak - instead of \string\setcaphang + `\string\captionstyle'\MessageBreak + instead of `\string\setcaphang'% } \captionstyle{hang}% }% @@ -2213,11 +2382,11 @@ \AfterPackage{caption2}{% \renewcommand*{\setcapwidth}[2][]{% \ClassWarning{\KOMAClassName}{% - Ignorring optional argument of \string\setcapwidth!\MessageBreak - You're using package caption2.\MessageBreak + Ignorring optional argument of `\string\setcapwidth'!\MessageBreak + You're using package `caption2'.\MessageBreak Because of this you should also use - \string\setcaptionwidth\MessageBreak - instead of \string\setcapwidth\MessageBreak + `\string\setcaptionwidth'\MessageBreak + instead of `\string\setcapwidth'% }% \setcaptionwidth{#2}% }% @@ -2276,10 +2445,10 @@ \ifdim\@tempdima\@tempdimb\else \ClassWarning{\KOMAClassName}{% Can set only centered caption!\MessageBreak - You're using package caption2.\MessageBreak + You're using package `caption2'.\MessageBreak Because of this you should also use - \string\setcaptionmargin\MessageBreak - instead of \string\setcapmargin + `\string\setcaptionmargin'\MessageBreak + instead of `\string\setcapmargin'% }% \fi \addtolength{\@tempdimb}{\@tempdimb}% @@ -2351,20 +2520,22 @@ \fi \endgroup } +\newcommand*{\scr@caption@before@longtable@warning}[1]{% + \ClassWarning{\KOMAClassName}{% + you've loaded package `#1' before package\MessageBreak + `longtable'!\MessageBreak + Because of this package `#1' isn't able to\MessageBreak + control `\string\caption' at longtables. \space After loading + \MessageBreak + package `#1' KOMA-Script also doesn't control\MessageBreak + `\string\caption'.\MessageBreak + I think, you should load package `caption' after\MessageBreak + package `longtable'% + }% +} \AfterPackage{longtable}{% \@ifpackageloaded{caption2}{\@komalongtablefalse - \ClassWarning{\KOMAClassName}{% - you've loaded package caption2 before package\MessageBreak - longtable!\MessageBreak - Because of this package caption2 isn't able to - control\MessageBreak - \string\caption\space at longtables. After loading package - caption2\MessageBreak - KOMA-Script also doesn't control \string\caption.\MessageBreak - I think, you should load package caption after - package\MessageBreak - longtable and use the new interface% - }% + \scr@caption@before@longtable@warning{caption2}% }{}% \if@komalongtable \renewcommand{\LT@makecaption}[3]{% @@ -2523,9 +2694,44 @@ \newcommand*{\ftntm@font}{} \newcommand*{\scr@fnt@footnotereference}{\ftntm@font} \newcommand*{\scr@fnt@footnoteref}{\ftntm@font} +\newcommand*{\FN@mf@check}{% + \ifdim\lastkern=\multiplefootnotemarker\relax + \edef\@x@sf{\the\spacefactor}% + \unkern\multiplefootnoteseparator + \spacefactor\@x@sf\relax + \fi +} +\newcommand*{\scr@mf@prepare}{% + \kern-\multiplefootnotemarker + \kern\multiplefootnotemarker\relax +} +\@ifundefined{FN@mf@prepare}{}{} +\newcommand*{\scr@saved@footnotetext}{} +\let\scr@saved@footnotetext\@footnotetext +\renewcommand*{\@footnotetext}[1]{% + \scr@saved@footnotetext{#1}% + \csname FN@mf@prepare\endcsname +} +\BeforePackage{footmisc}{% + \ifx\@footnotemark\scr@footnotemark + \let\@footnotemark\scr@saved@footnotemark + \fi + \let\@footnotetext\scr@saved@footnotetext +} +\newcommand*{\multiplefootnoteseparator}{% + \begingroup\let\thefootnotemark\multfootsep\@makefnmark\endgroup +} +\newcommand*{\multfootsep}{,} +\newcommand*{\multiplefootnotemarker}{3sp} \newcommand*{\thefootnotemark}{\@thefnmark} \deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} \deffootnotemark{\textsuperscript{\thefootnotemark}} +\newcommand*{\footref}[1]{% + \begingroup + \unrestored@protected@xdef\@thefnmark{\ref{#1}}% + \endgroup + \@footnotemark +} %%% From File: scrkliof.dtx \renewcommand*{\numberline}[1]{% \hb@xt@\@tempdima{#1\autodot\hfil}} @@ -2569,24 +2775,39 @@ \string\gdef\expandafter\string\csname#1@l@number\endcsname{% \@l@number}}% } +\g@addto@macro\tocbasic@@before@hook{% + \if@dynlist\expandafter\before@starttoc\expandafter{\@currext}\fi +} +\g@addto@macro\tocbasic@@after@hook{% + \if@dynlist\expandafter\after@starttoc\expandafter{\@currext}\fi +} \newcommand*\contentsname{Contents} +\newcommand*\listoftocname{\contentsname} \setcounter{tocdepth}{3} \newcommand*\toc@heading{% + \ClassWarning{\KOMAClassName}{% + usage of deprecated \string\toc@heading!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\toc@heading.\MessageBreak + Definition of \string\toc@heading\space my be removed from\MessageBreak + KOMA-Script soon, so it should not be used + }% \section*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% } \newcommand*{\toc@l@number}{} \newcommand*{\tableofcontents}{% - \begingroup - \toc@heading% - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \if@tocleft\before@starttoc{toc}\fi - \@starttoc{toc}% - \if@tocleft\after@starttoc{toc}\fi - \endgroup + \begingroup\let\if@dynlist\if@tocleft\listoftoc{toc}\endgroup } \newcommand*{\float@listhead}[1]{% - \section*{#1}% + \ClassWarning{\KOMAClassName}{% + usage of deprecated \string\float@listhead!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@listhead.\MessageBreak + Definition of \string\float@listhead\space my be removed from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \float@@listhead{#1}% \@mkboth{#1}{#1}% \if@dynlist% \newcommand*{\scr@starttoc}{}% @@ -2597,41 +2818,37 @@ \fi } \newcommand*\listfigurename{List of Figures} +\newcommand*\listoflofname{\listfigurename} \newcommand*\listtablename{List of Tables} -\newcommand*\lof@heading{\float@listhead{\listfigurename}} -\newcommand*\listoffigures{% - \begingroup% - \lof@heading% - \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative - \@starttoc{lof}% - \endgroup -} +\newcommand*\listoflotname{\listtablename} +\newcommand*\listoffigures{\listoftoc{lof}} \newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} -\newcommand*\lot@heading{\float@listhead{\listtablename}} -\newcommand*\listoftables{% - \begingroup - \lot@heading - \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative - \@starttoc{lot}% - \endgroup -} +\newcommand*\listoftables{\listoftoc{lot}} \let\l@table\l@figure %%% From File: scrkbib.dtx \newcommand*\refname{References} \newcommand*{\bibpreamble}{\relax} \let\bibpreamble\relax \newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}} -\newcommand*\bib@heading{% - \section*{\refname}% - \@mkboth{\refname}{\refname}% -} \newdimen\bibindent \bibindent=1.5em \newenvironment{thebibliography}[1]{% - \bib@heading - \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else - \noindent\bibpreamble\par\nobreak - \fi\fi + \if@bib@break@ + \bib@beginhook + \else + \bib@heading + \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else + \noindent\bibpreamble\par\nobreak + \fi\fi + \bib@beginhook + \bib@before@hook + \fi + \renewcommand{\BreakBibliography}[1]{% + \@bib@break + \end{thebibliography}% + \begingroup ##1\endgroup + \begin{thebibliography}{#1} + }% \list{% \@biblabel{\@arabic\c@enumiv}% }{% @@ -2639,26 +2856,66 @@ \leftmargin\labelwidth \advance\leftmargin\labelsep \@openbib@code - \usecounter{enumiv}% + \if@bib@break@ + \edef\@tempa{% + \noexpand\usecounter{enumiv}% + \noexpand\setcounter{enumiv}{\the\c@enumiv}% + }\@tempa + \no@bib@break + \else + \usecounter{enumiv}% + \fi \let\p@enumiv\@empty \renewcommand*\theenumiv{\@arabic\c@enumiv}% }% \sloppy\clubpenalty4000 \widowpenalty4000 \sfcode`\.=\@m }{% - \def\@noitemerr{% - \@latex@warning{Empty `thebibliography' environment}% - }% + \if@bib@break@ + \def\@noitemerr{% + \@latex@warning{% + \string\BreakBibliography\space at begin of `thebibliography' + environment\MessageBreak + or following \string\BreakBibliography}% + }% + \else + \def\@noitemerr{% + \@latex@warning{% + Empty `thebibliography' environment or + \string\BreakBibliography\MessageBreak + before end of `thebibliography' environment}% + }% + \fi \endlist + \if@bib@break@ + \else + \bib@after@hook + \let\bib@before@hook\@empty + \let\bib@after@hook\@empty + \fi + \bib@endhook +} +\newif\if@bib@break@ +\newcommand{\no@bib@break}{\global\let\if@bib@break@\iffalse} +\newcommand*{\@bib@break}{\global\let\if@bib@break@\iftrue} +\newcommand*{\bib@before@hook}{} +\newcommand*{\bib@after@hook}{} +\newcommand{\BreakBibliography}[1]{% + \ClassWarning{\KOMAClassName}{% + You've used \string\BreakBibliography\space either outside of\MessageBreak + the bibliography or `thebibliography' was redefined\MessageBreak + incompatible, e.g., using a bibliography package.\MessageBreak + \string\BreakBibliography\space ignored% + }% } -\newcommand*\newblock{\hskip .11em\@plus.33em\@minus.07em} -\let\@openbib@code\@empty +\newcommand{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook} +\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook} %%% From File: scrkidx.dtx \newcommand*{\index@preamble}{} \let\index@preamble=\relax \newcommand{\setindexpreamble}[1]{\def\index@preamble{#1}} \newcommand*{\idx@heading}{% - \twocolumn[\section*{\indexname}]% + \twocolumn[\idx@@heading{\indexname}]% \@mkboth{\indexname}{\indexname}% } \newenvironment{theindex}{% |