diff options
author | Karl Berry <karl@freefriends.org> | 2008-11-12 00:44:32 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-11-12 00:44:32 +0000 |
commit | e0fa36719ae8b943d0c515ccc2a4f1e2670cc614 (patch) | |
tree | cfd7d451101897cf222cd885a36573ccacd922c4 /Master/texmf-dist/tex/latex/koma-script/scrbook.cls | |
parent | 6d06dddb5a2041f7c07b6502a3bfa973f0d86635 (diff) |
koma-script update (11nov08)
git-svn-id: svn://tug.org/texlive/trunk@11262 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrbook.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/koma-script/scrbook.cls | 1450 |
1 files changed, 918 insertions, 532 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrbook.cls b/Master/texmf-dist/tex/latex/koma-script/scrbook.cls index 649e57d059f..732ea3e7b4e 100644 --- a/Master/texmf-dist/tex/latex/koma-script/scrbook.cls +++ b/Master/texmf-dist/tex/latex/koma-script/scrbook.cls @@ -6,6 +6,7 @@ %% %% scrkvers.dtx (with options: `class,book') %% scrkbase.dtx (with options: `load') +%% tocbasic.dtx (with options: `load') %% scrkcomp.dtx (with options: `class,book,option') %% scrkmisc.dtx (with options: `class,book,option') %% scrklang.dtx (with options: `class,book,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}{% scrbook% @@ -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,62 +392,130 @@ \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 \@titlepagetrue -\KOMA@ifkey{titlepage}{@titlepage} -\KOMA@DeclareObsoleteOption[\ClassInfo]{notitlepage}{titlepage=false} +\KOMA@ifkey{titlepage}{@titlepage}% +\KOMA@DeclareObsoleteOption% + [\PackageInfoNoLine]% + {notitlepage}{titlepage=false} %%% From File: scrksect.dtx \newif\if@openright \@openrighttrue -\DeclareOption{openright}{\@openrighttrue} -\DeclareOption{openany}{\@openrightfalse} -\DeclareOption{pointednumbers}{% - \AtEndOfClass{\@altsecnumformattrue - \global\let\@altsecnumformatfalse\@altsecnumformattrue}% -} -\DeclareOption{pointednumber}{% - \AtEndOfClass{\@altsecnumformattrue - \global\let\@altsecnumformatfalse\@altsecnumformattrue}% +\KOMA@key{open}{% + \KOMA@set@ncmdkey{open}{@tempa}{% + {any}{0},% + {right}{1},% + {left}{2}% + }{#1}% + \ifcase \@tempa\relax + \@openrightfalse + \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% + \or + \@openrighttrue + \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% + \or + \@openrighttrue + \renewcommand*{\cleardoublestandardpage}{\cleardoubleevenstandardpage}% + \fi +} +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{openright}{open=right} +\KOMA@DeclareObsoleteOption[\PackageInfoNoLine]{openany}{open=any} +%% \fi +\newcommand*{\scr@dotchangeatdocument}[1]{% \ClassError{\KOMAClassName}{% - undefined option `pointednumber' instead of `pointednumbers'% + change of end dot feature after \string\begin{document}% }{% - 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% + 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{pointlessnumbers}{% - \AtEndOfClass{\@altsecnumformatfalse - \global\let\@altsecnumformattrue\@altsecnumformatfalse}% +\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 +} +\newcommand*{\scr@altsecnumhook}{} +\AtBeginDocument{\scr@altsecnumhook} +\newcommand*{\scr@altsecnumhooktrue}{% + \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue } -\DeclareOption{pointlessnumber}{% - \AtEndOfClass{\@altsecnumformatfalse - \global\let\@altsecnumformattrue\@altsecnumformatfalse}% - \ClassError{\KOMAClassName}{% - undefined option `pointlessnumber' instead of `pointlessnumbers'% - }{% - 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*{\scr@altsecnumhookfalse}{% + \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse +} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{pointednumbers}% + {numbers=enddot} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{pointlessnumbers}% + {numbers=noenddot} +\newif\if@chapterprefix\@chapterprefixfalse +\KOMA@ifkey{chapterprefix}{@chapterprefix} +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{nochapterprefix}% + {chapterprefix=false} +\KOMA@key{appendixprefix}[true]{% + \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}% + \if@tempswa + \def\appendixmore{\@chapterprefixtrue}% + \else + \def\appendixmore{\@chapterprefixfalse}% + \fi } -\newcommand\@bigheadings{% - \AtEndOfClass{% +\KOMA@DeclareObsoleteOption[\PackageWarningNoLine]{noappendixprefix}% + {appendixprefix=false} +\newcommand*{\size@part}{} +\newcommand*{\size@partnumber}{} +\newcommand*{\size@chapter}{} +\newcommand*{\size@chapterprefix}{\size@chapter} +\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}% + ,{openany}{3},% + {openright}{4},% + {openleft}{5}% + ,{twolinechapter}{6},{chapterprefix}{6},{chapterwithprefix}{6},% + {chapterwithprefixline}{6},% + {onelinechapter}{7},{nochapterprefix}{7},{chapterwithoutprefix}{7},% + {chapterwithoutprefixline}{7}% + ,{twolineappendix}{8},{appendixprefix}{8},{appendixwithprefix}{8},% + {appendixwithprefixline}{8},% + {onelineappendix}{9},{noappendixprefix}{9},{appendixwithoutprefix}{9},% + {appendixwithoutprefixline}{9}% + }{#1}% + \ifcase \@tempa\relax \renewcommand*{\chapterheadstartvskip}{% \vspace*{2.3\baselineskip}% }% @@ -417,32 +523,15 @@ \vspace{1.725\baselineskip \@plus .115\baselineskip \@minus .192\baselineskip}% }% - \let\size@part\Huge - \let\size@partnumber\huge - \let\size@chapter\huge - \let\size@section\Large - \let\size@subsection\large - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize - }% -} -\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{% + \renewcommand*{\size@part}{\Huge}% + \renewcommand*{\size@partnumber}{\huge}% + \renewcommand*{\size@chapter}{\huge}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or \renewcommand*{\chapterheadstartvskip}{% \vspace*{2\baselineskip}% }% @@ -450,32 +539,15 @@ \vspace{1.5\baselineskip \@plus .1\baselineskip \@minus .167\baselineskip}% }% - \let\size@part\huge - \let\size@partnumber\huge - \let\size@chapter\LARGE - \let\size@section\Large - \let\size@subsection\large - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize - }% -} -\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\@smallheadings{% - \AtEndOfClass{ + \renewcommand*{\size@part}{\huge}% + \renewcommand*{\size@partnumber}{\huge}% + \renewcommand*{\size@chapter}{\LARGE}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or \renewcommand*{\chapterheadstartvskip}{% \vspace*{1.8\baselineskip}% }% @@ -483,62 +555,50 @@ \vspace{1.35\baselineskip \@plus 0.09\baselineskip \@minus .15\baselineskip}% }% - \let\size@part\LARGE - \let\size@partnumber\LARGE - \let\size@chapter\Large - \let\size@section\large - \let\size@subsection\normalsize - \let\size@subsubsection\normalsize - \let\size@paragraph\normalsize - \let\size@subparagraph\normalsize - }% -} -\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% - }% -} -\@bigheadings -\newif\if@chapterprefix\@chapterprefixfalse -\KOMA@ifkey{chapterprefix}{@chapterprefix} -\KOMA@DeclareObsoleteOption{nochapterprefix}{chapterprefix=false} -\KOMA@key{appendixprefix}[true]{% - \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}% - \if@tempswa - \def\appendixmore{\@chapterprefixtrue}% - \else - \def\appendixmore{\@chapterprefixfalse}% + \renewcommand*{\size@part}{\LARGE}% + \renewcommand*{\size@partnumber}{\LARGE}% + \renewcommand*{\size@chapter}{\Large}% + \renewcommand*{\size@section}{\large}% + \renewcommand*{\size@subsection}{\normalsize}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or + \KOMA@options{open=any}{}% + \or + \KOMA@options{open=right}{}% + \or + \KOMA@options{open=left}{}% + \or + \KOMA@options{chapterprefix=true}{}% + \or + \KOMA@options{chapterprefix=false}{}% + \or + \KOMA@options{appendixprefix=true}{}% + \or + \KOMA@options{appendixprefix=false}{}% \fi } -\KOMA@DeclareObsoleteOption[\ClassInfo]{noappendixprefix}{% - appendixprefix=false} +\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} \@twosidetrue \KOMA@key{cleardoublepage}{% @@ -550,81 +610,263 @@ }% \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]{% - \addchap{#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]{% - \chapter{#1} - \@mkboth{\chaptermarkformat #1}{\chaptermarkformat #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}{% + \chapter* } \newif\if@dynlist -\DeclareOption{listsleft}{\@dynlisttrue} -\DeclareOption{listsindent}{\@dynlistfalse} +\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}, + {chapterentry}{6},{withchapterentry}{6},% + {nochaptergap}{7},{ignorechapter}{7},% + {chaptergapsmall}{8},{smallchaptergap}{8},% + {chaptergapline}{9},{onelinechaptergap}{9}% + }{#1}% + \ifcase \@tempa\relax + \renewcommand*{\float@@listhead}{% + \chapter* + }% + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numbered}% + \unsettoc{\@currext}{totoc}% + }% + \or% totoc + \renewcommand*{\float@@listhead}{% + \addchap + }% + \doforeachtocfile[float]{% + \unsettoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \or% numbered + \renewcommand*{\float@@listhead}{% + \chapter + }% + \doforeachtocfile[float]{% + \setuptoc{\@currext}{numbered}% + \setuptoc{\@currext}{totoc}% + }% + \or% flat + \@dynlisttrue + \or% graduated + \@dynlistfalse + \or% leveldown + \doforeachtocfile[float]{% + \setuptoc{\@currext}{leveldown}% + }% + \or% chapterentry + \KOMA@options{chapteratlists=entry}{}% + \or% chaptergap + \KOMA@options{chapteratlists=\z@}{}% + \or% chaptergapsmall + \KOMA@options{chapteratlists=10\p@}{}% + \or% chaptergapline + \KOMA@options{chapteratlists=\baselineskip}{}% + \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} \newcommand*{\@chapterlistsgap}{10\p@} \newif\if@chaptertolists\@chaptertolistsfalse \KOMA@key{chapteratlists}[entry]{% @@ -635,47 +877,119 @@ }% } %%% 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{% - \addchap{\bibname}% - \@mkboth{\bibname}{\bibname}% - }% +\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{% - \chapter{\bibname}% - \@mkboth{\chaptermarkformat \bibname}{\chaptermarkformat \bibname}% - }% +\newbibstyle{oldstyle}{% + \renewcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}% +} +\scr@bibstyle@oldstyle +\newcommand*\bib@heading{% + \chapter*{\bibname}% + \@mkboth{\bibname}{\bibname}% +} +\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{% + \chapter*{\bibname}% + \@mkboth{\bibname}{\bibname}% + }% + \or% totoc + \renewcommand*\bib@heading{% + \addchap{\bibname}% + \@mkboth{\bibname}{\bibname}% + }% + \or% numbered + \renewcommand*\bib@heading{% + \chapter{\bibname}% + \@mkboth{\chaptermarkformat \bibname}{\chaptermarkformat \bibname}% + } + \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{% - \if@openright\cleardoublepage\else\clearpage\fi - \twocolumn[\addchap{\indexname}]% - \@mkboth{\indexname}{\indexname}% +\newcommand*{\idx@@heading}{% + \chapter* +} +\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}{% + \chapter* }% - }% + \or + \renewcommand*{\idx@@heading}{% + \addchap + }% + \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 @@ -922,7 +1236,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}% @@ -1066,119 +1379,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 @@ -1283,44 +1483,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 @@ -1402,10 +1620,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 @@ -1456,7 +1676,7 @@ \global\let\dedication\relax \global\let\date\relax \global\let\and\relax - } + }% \fi \newcommand*{\@maketitle}{% \clearpage @@ -1498,12 +1718,7 @@ \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}{% \cleardoublepage \if@twocolumn @@ -1517,19 +1732,24 @@ \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}% %%% From File: scrksect.dtx \newif\if@mainmatter\@mainmattertrue \newcommand*\frontmatter{% - \if@twoside\cleardoublepage\else\clearpage\fi + \if@twoside\cleardoubleoddpage\else\clearpage\fi \@mainmatterfalse\pagenumbering{roman}% } \newcommand*\mainmatter{% - \if@twoside\cleardoublepage\else\clearpage\fi + \if@twoside\cleardoubleoddpage\else\clearpage\fi \@mainmattertrue\pagenumbering{arabic}% } \newcommand*\backmatter{% - \if@openright\cleardoublepage\else\clearpage\fi\@mainmatterfalse + \if@openright\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse } \newcommand*\appendix{\par% \setcounter{chapter}{0}% @@ -1540,22 +1760,25 @@ } \newcommand*\chaptermark[1]{} \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 } @@ -1707,7 +1930,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} @@ -1749,14 +1974,14 @@ \fi% } } -\newcommand*{\chapterheadstartvskip}{} -\newcommand*{\chapterheadendvskip}{} \newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi \thispagestyle{\chapterpagestyle}% \global\@topnum\z@ \@afterindentfalse \secdef\@chapter\@schapter } +\setuptoc{lof}{chapteratlist} +\setuptoc{lot}{chapteratlist} \newcommand*{\@chapter}{} \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \if@mainmatter @@ -1765,25 +1990,59 @@ \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}% \if@chaptertolists - \addcontentsline{lof}{chapteratlist}{% - \protect\numberline{\thechapter}#1}% - \addcontentsline{lot}{chapteratlist}{% - \protect\numberline{\thechapter}#1}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addcontentsline{\@currext}{chapteratlist}{% + \protect\numberline{\thechapter}#1}% + }{}% + }% \@ifundefined{float@addtolists}{}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{% - \protect\numberline{\thechapter}#1}{\thepage}% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \scr@ifundefinedorrelax{@currentHref}{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{% + \protect\numberline{\thechapter}#1}{\thepage}% + }% + }{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{% + \protect\numberline{\thechapter}#1}{\thepage}{\@currentHref}% + }% }% }% \fi \else \addcontentsline{toc}{chapter}{#1}% \if@chaptertolists - \addcontentsline{lof}{chapteratlist}{#1}% - \addcontentsline{lot}{chapteratlist}{#1}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addcontentsline{\@currext}{chapteratlist}{#1}% + }{}% + }% \@ifundefined{float@addtolists}{}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{#1}{\thepage}% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \scr@ifundefinedorrelax{@currentHref}{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}% + }% + }{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}{\@currentHref}% + }% }% }% \fi @@ -1791,20 +2050,48 @@ \else \addcontentsline{toc}{chapter}{#1}% \if@chaptertolists - \addcontentsline{lof}{chapteratlist}{#1}% - \addcontentsline{lot}{chapteratlist}{#1}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addcontentsline{\@currext}{chapteratlist}{#1}% + }{}% + }% \@ifundefined{float@addtolists}{}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{#1}{\thepage}% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \scr@ifundefinedorrelax{@currentHref}{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}% + }% + }{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}{\@currentHref}% + }% }% }% \fi \fi \chaptermark{#1}% \ifdim \@chapterlistsgap>\z@ - \addtocontents{lof}{\protect\addvspace{\@chapterlistsgap}}% - \addtocontents{lot}{\protect\addvspace{\@chapterlistsgap}}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% + }{}% + }% \@ifundefined{float@addtolists}{}{% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% }% \fi @@ -1879,31 +2166,59 @@ \global\@topnum\z@ \@afterindentfalse \secdef\@addchap\@saddchap% -} -\newcommand*{\@addchap}{} +}% +\newcommand*{\@addchap}{}% \def\@addchap[#1]#2{\@schapter{#2}% \addcontentsline{toc}{chapter}{#1}% \if@chaptertolists - \addcontentsline{lof}{chapteratlist}{#1}% - \addcontentsline{lot}{chapteratlist}{#1}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addcontentsline{\@currext}{chapteratlist}{#1}% + }{}% + }% \@ifundefined{float@addtolists}{}{% - \float@addtolists{% - \protect\contentsline{chapteratlist}{#1}{\thepage}% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% + \scr@ifundefinedorrelax{@currentHref}{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}% + }% + }{% + \float@addtolists{% + \protect\contentsline{chapteratlist}{#1}{\thepage}{\@currentHref}% + }% }% }% \fi - \ifnum \@nameuse{scr@v@2.96}<\scr@compatibility + \ifnum \@nameuse{scr@v@2.96}<\scr@compatibility\relax \ifdim \@chapterlistsgap>\z@ - \addtocontents{lof}{\protect\addvspace{\@chapterlistsgap}}% - \addtocontents{lot}{\protect\addvspace{\@chapterlistsgap}}% + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% + }{}% + }% \@ifundefined{float@addtolists}{}{% + \ClassWarning{\KOMAClassName}{% + Usage of deprecated \string\float@addtolists!\MessageBreak + You should use the features of package `tocbasic'\MessageBreak + instead of \string\float@addtolists.\MessageBreak + Definition of \string\float@addtolists\space may be removed + from\MessageBreak + KOMA-Script soon, so it should not be used + }% \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% }% \fi \fi \if@twoside\@mkboth{#1}{}\else\@mkboth{}{#1}\fi -} -\newcommand*{\@saddchap}[1]{\@schapter{#1}\@mkboth{}{}} +}% +\newcommand*{\@saddchap}[1]{\@schapter{#1}\@mkboth{}{}}% \AfterPackage{hyperref}{% \@ifpackagelater{hyperref}{2001/02/19}{}{% \ClassWarningNoLine{\KOMAClassName}{% @@ -1921,23 +2236,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 }% } @@ -1969,16 +2284,8 @@ \newkomafont{partentrypagenumber}{} \newkomafont{chapterentry}{\usekomafont{sectioning}} \newkomafont{chapterentrypagenumber}{} -\newcommand*{\size@part}{} -\newcommand*{\size@partnumber}{} -\newcommand*{\size@chapter}{} -\newcommand*{\size@chapterprefix}{\size@chapter} -\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@chapter}{\size@chapter} @@ -1988,7 +2295,6 @@ \newcommand*{\scr@fnt@subsubsection}{\size@subsubsection} \newcommand*{\scr@fnt@paragraph}{\size@paragraph} \newcommand*{\scr@fnt@subparagraph}{\size@subparagraph} -\aliaskomafont{sectioning}{disposition} \newcommand*{\use@preamble}[1]{% \@ifundefined{#1@preamble}{}{% \@nameuse{#1@preamble}% @@ -2120,7 +2426,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 @@ -2152,7 +2458,7 @@ \usekomafont{chapterentrypagenumber}{% \hfill\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 \penalty20009 \else @@ -2169,7 +2475,7 @@ \newcommand*\l@paragraph{\bprot@dottedtocline{4}{10em}{5em}} \newcommand*\l@subparagraph{\bprot@dottedtocline{5}{12em}{6em}} \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 @@ -2273,16 +2579,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}{% @@ -2388,8 +2697,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@} @@ -2429,7 +2736,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}{% @@ -2510,12 +2826,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}}% @@ -2525,10 +2841,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}% }% @@ -2618,11 +2934,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}% }% @@ -2681,10 +2997,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}% @@ -2756,20 +3072,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]{% @@ -2941,9 +3259,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}} @@ -2987,30 +3340,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}{2} \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 + }% \chapter*{\contentsname}% \@mkboth{\contentsname}{\contentsname}% } \newcommand*{\toc@l@number}{} \newcommand*{\tableofcontents}{% - \begingroup - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi - \toc@heading% - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \if@tocleft\before@starttoc{toc}\fi - \@starttoc{toc}% - \if@tocleft\after@starttoc{toc}\fi - \if@restonecol\twocolumn\fi - \endgroup + \begingroup\let\if@dynlist\if@tocleft\listoftoc{toc}\endgroup } \newcommand*{\float@listhead}[1]{% - \chapter*{#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}{}% @@ -3021,53 +3383,37 @@ \fi } \newcommand*\listfigurename{List of Figures} +\newcommand*\listoflofname{\listfigurename} \newcommand*\listtablename{List of Tables} -\newcommand*\lof@heading{\float@listhead{\listfigurename}} -\newcommand*\listoffigures{% - \begingroup% - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi - \lof@heading% - \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative - \@starttoc{lof}% - \if@restonecol\twocolumn\fi - \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 - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi - \lot@heading - \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative - \@starttoc{lot}% - \if@restonecol\twocolumn\fi - \endgroup -} +\newcommand*\listoftables{\listoftoc{lot}} \let\l@table\l@figure %%% From File: scrkbib.dtx \newcommand*\bibname{Bibliography} \newcommand*{\bibpreamble}{\relax} \let\bibpreamble\relax \newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}} -\newcommand*\bib@heading{% - \chapter*{\bibname}% - \@mkboth{\bibname}{\bibname}% -} \newdimen\bibindent \bibindent=1.5em \newenvironment{thebibliography}[1]{% - \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else - \setchapterpreamble{\bibpreamble}% - \fi\fi - \bib@heading + \if@bib@break@ + \bib@beginhook + \else + \ifx\bibpreamble\relax\else\ifx\bibpreamble\@empty\else + \setchapterpreamble{\bibpreamble}% + \fi\fi + \bib@heading + \bib@beginhook + \bib@before@hook + \fi + \renewcommand{\BreakBibliography}[1]{% + \@bib@break + \end{thebibliography}% + \begingroup ##1\endgroup + \begin{thebibliography}{#1} + }% \list{% \@biblabel{\@arabic\c@enumiv}% }{% @@ -3075,27 +3421,67 @@ \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}{% \if@openright\cleardoublepage\else\clearpage\fi% - \twocolumn[\chapter*{\indexname}]% + \twocolumn[\idx@@heading{\indexname}]% \@mkboth{\indexname}{\indexname}% } \newenvironment{theindex}{% |