You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7560 lines
257 KiB
7560 lines
257 KiB
%%
|
|
%% This is file `scrbook.cls',
|
|
%% generated with the docstrip utility, extended by scrdocstrip.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% scrkernel-version.dtx (with options: `class,book')
|
|
%% scrkernel-basics.dtx (with options: `class,load')
|
|
%% scrkernel-listsof.dtx (with options: `class,book,prepare')
|
|
%% scrkernel-tocstyle.dtx (with options: `class,book,prepare')
|
|
%% scrkernel-sections.dtx (with options: `class,book,prepare')
|
|
%% scrkernel-compatibility.dtx (with options: `class,book,init')
|
|
%% scrkernel-typearea.dtx (with options: `class,book,init')
|
|
%% scrkernel-compatibility.dtx (with options: `class,book,option')
|
|
%% scrkernel-miscellaneous.dtx (with options: `class,book,option')
|
|
%% scrkernel-language.dtx (with options: `class,book,option')
|
|
%% scrkernel-fonts.dtx (with options: `class,book,option')
|
|
%% scrkernel-typearea.dtx (with options: `class,book,options')
|
|
%% scrkernel-paragraphs.dtx (with options: `class,book,option')
|
|
%% scrkernel-title.dtx (with options: `class,book,option')
|
|
%% scrkernel-tocstyle.dtx (with options: `class,book,option')
|
|
%% scrkernel-sections.dtx (with options: `class,book,option')
|
|
%% scrkernel-pagestyles.dtx (with options: `class,book,option')
|
|
%% scrkernel-floats.dtx (with options: `class,book,option')
|
|
%% scrkernel-footnotes.dtx (with options: `class,book,option')
|
|
%% scrkernel-listsof.dtx (with options: `class,book,option')
|
|
%% scrkernel-bibliography.dtx (with options: `class,book,option')
|
|
%% scrkernel-index.dtx (with options: `class,book,option')
|
|
%% scrkernel-listsandtabulars.dtx (with options: `class,book,option')
|
|
%% scrkernel-sections.dtx (with options: `class,book,execoption')
|
|
%% scrkernel-miscellaneous.dtx (with options: `class,book,execoption')
|
|
%% scrkernel-compatibility.dtx (with options: `class,book,body')
|
|
%% scrkernel-fonts.dtx (with options: `class,book,body')
|
|
%% scrkernel-language.dtx (with options: `class,book,body')
|
|
%% scrkernel-typearea.dtx (with options: `class,book,body')
|
|
%% scrkernel-paragraphs.dtx (with options: `class,book,body')
|
|
%% scrkernel-title.dtx (with options: `class,book,body')
|
|
%% scrkernel-tocstyle.dtx (with options: `class,book,body')
|
|
%% scrkernel-tocstyle.dtx (with options: `class,book,style,part')
|
|
%% scrkernel-tocstyle.dtx (with options: `class,book,style,chapter')
|
|
%% scrkernel-tocstyle.dtx (with options: `class,book,style,section')
|
|
%% scrkernel-tocstyle.dtx (with options: `class,book,style,default')
|
|
%% scrkernel-sections.dtx (with options: `class,book,body')
|
|
%% scrkernel-miscellaneous.dtx (with options: `class,book,body')
|
|
%% scrkernel-pagestyles.dtx (with options: `class,book,body')
|
|
%% scrlayer.dtx (with options: `class,book,body')
|
|
%% scrkernel-floats.dtx (with options: `class,book,body')
|
|
%% scrkernel-footnotes.dtx (with options: `class,book,body')
|
|
%% scrkernel-listsof.dtx (with options: `class,book,body')
|
|
%% scrkernel-bibliography.dtx (with options: `class,book,body')
|
|
%% scrkernel-index.dtx (with options: `class,book,body')
|
|
%% scrkernel-listsandtabulars.dtx (with options: `class,book,body')
|
|
%% scrlogo.dtx (with options: `logo')
|
|
%%
|
|
%% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
|
|
%%
|
|
%% This file was generated from file(s) of the KOMA-Script bundle.
|
|
%% ---------------------------------------------------------------
|
|
%%
|
|
%% It may be distributed under the conditions of the
|
|
%% LaTeX Project Public License in the version distributed together
|
|
%% with KOMA-Script, see file `lppl.txt' or `lppl-de.txt'.
|
|
%%
|
|
%% This file may only be distributed together with a copy of the
|
|
%% KOMA-Script bundle. You may however distribute the
|
|
%% KOMA-Script bundle without all such generated files. See also
|
|
%% `lppl.txt' or `lppl-de.txt' for additional information.
|
|
%%
|
|
%% The list of files belonging to KOMA-Script distribution is given in
|
|
%% the file `manifest.txt'. See also `lppl.txt' or `lppl-de.txt' for
|
|
%% additional information.
|
|
%%
|
|
%% If this file is a beta version, you may not be allowed to distribute
|
|
%% it. Look at the comments below to see if this is the case.
|
|
%%
|
|
%% English and German manuals are part of KOMA-Script bundle.
|
|
%% ----------------------------------------------------------
|
|
%%
|
|
%% See `README'.
|
|
%%
|
|
%% The KOMA-Script bundle (but maybe not this file) was based upon the
|
|
%% LaTeX 2.09 Script family created by Frank Neukam 1993 and the LaTeX2e
|
|
%% standard classes created by The LaTeX3 Project 1994-1996. You can
|
|
%% find a complete unmodified copy of LaTeX2e at
|
|
%% <http://mirror.ctan.org/tex-archive/macros/latex/base/>.
|
|
%%
|
|
%%% From File: $Id: scrkernel-version.dtx 3510 2020-07-22 13:29:13Z kohm $
|
|
\begingroup
|
|
\catcode`\@11\relax
|
|
\ifx\KOMAScriptVersion\undefined
|
|
\newcommand*{\@CheckKOMAScriptVersion}[1]{%
|
|
\gdef\KOMAScriptVersion{#1}%
|
|
}%
|
|
\else
|
|
\newcommand*{\@CheckKOMAScriptVersion}[1]{%
|
|
\def\@tempa{#1}%
|
|
\ifx\KOMAScriptVersion\@tempa\else
|
|
\@latex@warning@no@line{%
|
|
\noexpand\KOMAScriptVersion\space is
|
|
`\KOMAScriptVersion',\MessageBreak
|
|
but `#1' was expected!\MessageBreak
|
|
You should not use classes, packages or files
|
|
from\MessageBreak
|
|
different KOMA-Script versions%
|
|
}%
|
|
\fi
|
|
}
|
|
\fi
|
|
\@CheckKOMAScriptVersion{2020/07/22 v3.31 KOMA-Script}%
|
|
\endgroup
|
|
\providecommand*{\scr@clsextension}{\@clsextension}
|
|
\AtBeginDocument{%
|
|
\let\scr@clsextension\@clsextension
|
|
}
|
|
\newcommand*{\KOMAClassName}{%
|
|
scrbook%
|
|
}
|
|
\newcommand*{\KOMAClassFileName}{\KOMAClassName.\@clsextension}
|
|
\edef\KOMAClassFileName{\KOMAClassFileName}
|
|
\newcommand*{\ClassName}{%
|
|
book%
|
|
}
|
|
\ProvidesClass{\KOMAClassName}[%
|
|
2020/07/22 v3.31 KOMA-Script
|
|
document class (\ClassName)%
|
|
]
|
|
%%% From File: $Id: scrkernel-basics.dtx 3465 2020-03-07 10:23:56Z kohm $
|
|
%%% (run: load)
|
|
\RequirePackage{scrkbase}[\KOMAScriptVersion]
|
|
%%% From File: $Id: scrkernel-listsof.dtx 3477 2020-04-11 07:26:26Z kohm $
|
|
%%% (run: prepare)
|
|
\RequirePackage{tocbasic}[%
|
|
2020/07/22 v3.31 KOMA-Script
|
|
]
|
|
\AtAddToTocList[\@currname.\@currext]{\setuptoc{\@currext}{onecolumn}}%
|
|
\AtAddToTocList[ToC]{\setuptoc{\@currext}{onecolumn}}%
|
|
\addtotoclist[ToC]{toc}
|
|
\Ifstr{\ext@toc}{toc}{}{%
|
|
\expandafter\addtotoclist
|
|
\expandafter[\expandafter T\expandafter o\expandafter C\expandafter ]%
|
|
\expandafter{\ext@toc}%
|
|
}
|
|
\AtAddToTocList[float]{\setuptoc{\@currext}{onecolumn}}%
|
|
%%% From File: $Id: scrkernel-tocstyle.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: prepare)
|
|
%%% From File: $Id: scrkernel-sections.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: prepare)
|
|
\newif\if@openright
|
|
\@openrighttrue
|
|
\newcommand*{\scr@dotchangeatdocument}[1]{%
|
|
\ClassError{\KOMAClassName}{%
|
|
change of end dot feature after \string\begin{document}%
|
|
}{%
|
|
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.%
|
|
}%
|
|
}
|
|
\newcommand*{\scr@osectarg}{0}
|
|
\newcommand*{\scr@activate@xsection}[1]{%
|
|
\renewcommand*{\scr@osectarg}{#1}%
|
|
}
|
|
\newif\if@altsecnumformat\@altsecnumformatfalse
|
|
\newif\if@autodot
|
|
\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue}
|
|
\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse}
|
|
\@autodotfalse
|
|
\newcommand*{\scr@altsecnumhook}{}
|
|
\AtBeginDocument{\scr@altsecnumhook}
|
|
\newcommand*{\scr@altsecnumhooktrue}{%
|
|
\@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue
|
|
}
|
|
\newcommand*{\scr@altsecnumhookfalse}{%
|
|
\@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse
|
|
}
|
|
\newcommand*{\size@part}{}
|
|
\newcommand*{\size@partnumber}{}
|
|
\newcommand*{\scr@part@beforeskip}{%
|
|
\z@ \@plus 1fil + \baselineskip
|
|
}
|
|
\newcommand*{\scr@part@innerskip}{20\p@}
|
|
\newcommand*{\scr@part@afterskip}{%
|
|
\z@ \@plus 1fil
|
|
}
|
|
\newcommand*{\scr@part@style}{part}
|
|
\newcommand*{\partheadstartvskip}{%
|
|
\null\vskip-\baselineskip\vskip\@tempskipa
|
|
}
|
|
\newcommand*{\partheadmidvskip}{%
|
|
\par\nobreak
|
|
\vskip\@tempskipa
|
|
}
|
|
\newcommand*{\partheadendvskip}{%
|
|
\vskip\@tempskipa\newpage
|
|
}
|
|
\newcommand*{\partheademptypage}{%
|
|
\if@twoside\if@openright
|
|
\null%
|
|
\thispagestyle{empty}%
|
|
\newpage
|
|
\fi\fi
|
|
}
|
|
\newif\if@chapterprefix
|
|
\newcommand*{\size@chapter}{}
|
|
\newcommand*{\size@chapterprefix}{\size@chapter}
|
|
\newcommand*{\scr@chapter@beforeskip}{\z@}
|
|
\let\scr@chapter@beforeskip\z@
|
|
\newcommand*{\scr@chapter@afterskip}{\z@}
|
|
\let\scr@chapter@afterskip\z@
|
|
\newcommand*{\scr@chapter@innerskip}{\z@}
|
|
\let\scr@chapter@innerskip\z@
|
|
\newcommand*{\scr@chapter@style}{chapter}
|
|
\newcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}
|
|
\newcommand*{\chapterheadendvskip}{\vskip\@tempskipa}
|
|
\newcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}
|
|
\newcommand*{\size@section}{}
|
|
\newcommand*{\size@subsection}{}
|
|
\newcommand*{\size@subsubsection}{}
|
|
\newcommand*{\size@paragraph}{}
|
|
\newcommand*{\size@subparagraph}{}
|
|
\newcommand*{\sectfont}{\normalcolor\@gr@gsffamily\bfseries}
|
|
%%% From File: $Id: scrkernel-compatibility.dtx 3492 2020-06-02 09:02:18Z kohm $
|
|
%%% (run: init)
|
|
\newcommand*
|
|
{\scr@compatibility}{\scr@v@last}
|
|
\@namedef{scr@v@first}{0}
|
|
\@namedef{scr@v@2.9}{0}
|
|
\@namedef{scr@v@2.9t}{0}
|
|
\@namedef{scr@v@2.9u}{1}
|
|
\@namedef{scr@v@2.95}{2}
|
|
\@namedef{scr@v@2.95a}{2}
|
|
\@namedef{scr@v@2.95b}{2}
|
|
\@namedef{scr@v@2.96}{2}
|
|
\@namedef{scr@v@2.96a}{3}
|
|
\@namedef{scr@v@2.97}{3}
|
|
\@namedef{scr@v@2.97a}{3}
|
|
\@namedef{scr@v@2.97b}{3}
|
|
\@namedef{scr@v@2.97c}{4}
|
|
\@namedef{scr@v@2.97d}{5}
|
|
\@namedef{scr@v@2.97e}{6}
|
|
\@namedef{scr@v@2.98}{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@3.01}{8}
|
|
\@namedef{scr@v@3.01a}{8}
|
|
\@namedef{scr@v@3.01b}{9}
|
|
\@namedef{scr@v@3.01c}{9}
|
|
\@namedef{scr@v@3.02}{9}
|
|
\@namedef{scr@v@3.02b}{9}
|
|
\@namedef{scr@v@3.02c}{10}
|
|
\@namedef{scr@v@3.03}{10}
|
|
\@namedef{scr@v@3.03a}{10}
|
|
\@namedef{scr@v@3.03b}{10}
|
|
\@namedef{scr@v@3.04}{10}
|
|
\@namedef{scr@v@3.04a}{10}
|
|
\@namedef{scr@v@3.05}{10}
|
|
\@namedef{scr@v@3.05a}{10}
|
|
\@namedef{scr@v@3.06}{10}
|
|
\@namedef{scr@v@3.07}{10}
|
|
\@namedef{scr@v@3.08}{10}
|
|
\@namedef{scr@v@3.08a}{10}
|
|
\@namedef{scr@v@3.08b}{10}
|
|
\@namedef{scr@v@3.09}{10}
|
|
\@namedef{scr@v@3.09a}{10}
|
|
\@namedef{scr@v@3.10}{10}
|
|
\@namedef{scr@v@3.10a}{10}
|
|
\@namedef{scr@v@3.10b}{10}
|
|
\@namedef{scr@v@3.11}{10}
|
|
\@namedef{scr@v@3.11a}{10}
|
|
\@namedef{scr@v@3.11b}{10}
|
|
\@namedef{scr@v@3.12}{11}
|
|
\@namedef{scr@v@3.13}{12}
|
|
\@namedef{scr@v@3.13a}{13}
|
|
\@namedef{scr@v@3.14}{13}
|
|
\@namedef{scr@v@3.15}{14}
|
|
\@namedef{scr@v@3.16}{14}
|
|
\@namedef{scr@v@3.17}{15}
|
|
\@namedef{scr@v@3.17a}{15}
|
|
\@namedef{scr@v@3.17c}{15}
|
|
\@namedef{scr@v@3.18}{15}
|
|
\@namedef{scr@v@3.18a}{15}
|
|
\@namedef{scr@v@3.19}{15}
|
|
\@namedef{scr@v@3.19a}{15}
|
|
\@namedef{scr@v@3.20}{15}
|
|
\@namedef{scr@v@3.21}{15}
|
|
\@namedef{scr@v@3.22}{16}
|
|
\@namedef{scr@v@3.23}{16}
|
|
\@namedef{scr@v@3.24}{16}
|
|
\@namedef{scr@v@3.25}{17}
|
|
\@namedef{scr@v@3.26}{17}
|
|
\@namedef{scr@v@3.26a}{17}
|
|
\@namedef{scr@v@3.26b}{17}
|
|
\@namedef{scr@v@3.27}{17}
|
|
\@namedef{scr@v@3.27a}{17}
|
|
\@namedef{scr@v@3.28}{17}
|
|
\@namedef{scr@v@3.29}{17}
|
|
\@namedef{scr@v@3.30}{17}
|
|
\@namedef{scr@v@3.31}{18}
|
|
\@namedef{scr@v@last}{18}
|
|
%%% From File: $Id: scrkernel-typearea.dtx 3488 2020-04-27 13:04:43Z kohm $
|
|
%%% (run: init)
|
|
%%% From File: $Id: scrkernel-compatibility.dtx 3492 2020-06-02 09:02:18Z kohm $
|
|
%%% (run: option)
|
|
\newif\if@scr@emulatestandardclasses
|
|
\let\scr@emulatestandardclassestrue\relax
|
|
\let\scr@emulatestandardclassesfalse\relax
|
|
\DeclareOption{emulatestandardclasses}{%
|
|
\let\if@scr@emulatestandardclasses\iftrue
|
|
\KOMAExecuteOptions{%
|
|
fontsize=10pt,%
|
|
headings=standardclasses,%
|
|
cleardoublepage=current
|
|
}%
|
|
\newcommand*{\defaultpapersize}{letter}%
|
|
\AtEndOfClass{%
|
|
\setkomafont{descriptionlabel}{\bfseries}%
|
|
\setkomafont{dictum}{\normalfont\small}%
|
|
\setkomafont{caption}{}%
|
|
\setkomafont{captionlabel}{}%
|
|
\setcapindent{0pt}%
|
|
\RequirePackage[pagestyleset=standard,markcase=upper]{scrlayer-scrpage}%
|
|
\PreventPackageFromLoading{scrpage2}%
|
|
\setkomafont{pagenumber}{\normalfont}%
|
|
\setkomafont{pageheadfoot}{\normalfont}%
|
|
\cfoot[\pagemark]{}%
|
|
}%
|
|
}
|
|
\KOMA@key{version}[last]{%
|
|
\scr@ifundefinedorrelax{scr@v@#1}{%
|
|
\def\scr@compatibility{0}%
|
|
\ClassWarningNoLine{\KOMAClassName}{%
|
|
You have set option `version' to value `#1', but\MessageBreak
|
|
this value of version is not supported.\MessageBreak
|
|
Because of this, version was set to `first'%
|
|
}%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacevalue{.%
|
|
\KOMAClassFileName
|
|
}{version}{first}%
|
|
}{%
|
|
\ClassInfoNoLine{\KOMAClassName}{%
|
|
Switching compatibility level to `#1'%
|
|
}%
|
|
\edef\scr@compatibility{\@nameuse{scr@v@#1}}%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@xreplacevalue{.%
|
|
\KOMAClassFileName
|
|
}{version}{#1}%
|
|
}%
|
|
}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{version}{last}
|
|
\AtEndOfClass{%
|
|
\KOMA@key{version}[]{%
|
|
\ClassError{\KOMAClassName}{%
|
|
Option `version' too late%
|
|
}{%
|
|
Option `version' may be set only while loading the
|
|
class.\MessageBreak
|
|
But you've tried to set it up later.%
|
|
}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
}
|
|
\newcommand*{\scr@v@is@lt}[1]{%
|
|
\scr@compatibility<\@nameuse{scr@v@#1}
|
|
}
|
|
\newcommand*{\scr@v@is@gt}[1]{%
|
|
\scr@compatibility>\@nameuse{scr@v@#1}
|
|
}
|
|
\newcommand*{\scr@v@is@le}[1]{%
|
|
\numexpr\scr@compatibility-\@ne\relax<\@nameuse{scr@v@#1}
|
|
}
|
|
\newcommand*{\scr@v@is@ge}[1]{%
|
|
\numexpr\scr@compatibility+\@ne\relax>\@nameuse{scr@v@#1}
|
|
}
|
|
%%% From File: $Id: scrkernel-miscellaneous.dtx 3487 2020-04-27 07:19:23Z kohm $
|
|
%%% (run: option)
|
|
\KOMA@key{draft}[true]{%
|
|
\KOMA@set@ifkey{draft}{@tempswa}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\if@tempswa
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{draft}{@tempswa}%
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{overfullrule}{@tempswa}%
|
|
\setlength{\overfullrule}{5pt}%
|
|
\else
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{draft}{@tempswa}%
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{overfullrule}{@tempswa}%
|
|
\setlength{\overfullrule}{\z@}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{draft}{false}
|
|
\KOMA@DeclareStandardOption
|
|
{final}{draft=false}
|
|
\KOMA@key{overfullrule}[true]{%
|
|
\KOMA@set@ifkey{overfullrule}{@tempswa}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\if@tempswa
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{draft}{@tempswa}%
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{overfullrule}{@tempswa}%
|
|
\setlength{\overfullrule}{5pt}%
|
|
\else
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{draft}{@tempswa}%
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{overfullrule}{@tempswa}%
|
|
\setlength{\overfullrule}{\z@}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{overfullrule}{false}
|
|
\DeclareOption{leqno}{\input{leqno.clo}}
|
|
\DeclareOption{fleqn}{\input{fleqn.clo}}
|
|
\KOMA@ifkey{egregdoesnotlikesansseriftitles}{@egregdoesnotlikesansseriftitles}
|
|
\newcommand*{\@gr@gsffamily}{%
|
|
\if@egregdoesnotlikesansseriftitles\else\sffamily\fi
|
|
}
|
|
%%% From File: $Id: scrkernel-language.dtx 3480 2020-04-13 09:39:03Z kohm $
|
|
%%% (run: option)
|
|
%%% From File: $Id: scrkernel-fonts.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: option)
|
|
\providecommand*\@ptsize{%
|
|
11%
|
|
}
|
|
\newcommand*{\@pt@scan}{%
|
|
\expandafter\@pt@@scan\CurrentOption pt\@pt@@scan%
|
|
}
|
|
\newcommand*{\@pt@@scan}{}
|
|
\def\@pt@@scan #1pt#2\@pt@@scan{%
|
|
\Ifstr{#2}{pt}{%
|
|
\Ifnumber{#1}{%
|
|
\Ifstr{#1}{10}{%
|
|
\KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}%
|
|
{#1#2}{fontsize=#1#2}%
|
|
}{%
|
|
\Ifstr{#1}{11}{%
|
|
\KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}%
|
|
{#1#2}{fontsize=#1#2}%
|
|
}{%
|
|
\Ifstr{#1}{12}{%
|
|
\KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}%
|
|
{#1#2}{fontsize=#1#2}%
|
|
}{%
|
|
\KOMA@UseDeprecatedOption{\PackageWarningNoLine{\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}%
|
|
}{%
|
|
\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
|
|
}%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@xreplacevalue{.%
|
|
\KOMAClassFileName
|
|
}{fontsize}{#1}%
|
|
}
|
|
\DeclareOption{enabledeprecatedfontcommands}{%
|
|
\ClassWarningNoLine{\KOMAClassName}{%
|
|
deprecated option `enabledeprecatedfontcommands'.\MessageBreak
|
|
Note, that this option was already depreacted when\MessageBreak
|
|
it has been defined. Support for old font commands\MessageBreak
|
|
has been removed from KOMA-Script more than one\MessageBreak
|
|
decade ago. It is not recommended to use them any\MessageBreak
|
|
longer. Therefore usage of this class option also\MessageBreak
|
|
is not recommended%
|
|
}%
|
|
\let\scr@defineobsoletefonts\@ne
|
|
}
|
|
\scr@ifundefinedorrelax{scr@defineobsoletefonts}{%
|
|
\let\scr@defineobsoletefonts\z@
|
|
}{}
|
|
\BeforePackage{tex4ht}{%
|
|
\let\scr@defineobsoletefonts\thr@@
|
|
}
|
|
%%% From File: $Id: scrkernel-typearea.dtx 3488 2020-04-27 13:04:43Z kohm $
|
|
%%% (run: options)
|
|
\KOMA@key{twoside}[true]{%
|
|
\if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi%
|
|
\Ifstr{#1}{semi}{%
|
|
\@twosidetrue
|
|
\FamilyKeyStateProcessed
|
|
}{%
|
|
\def\FamilyElseValue{, `semi'}%
|
|
\KOMA@set@ifkey{twoside}{%
|
|
@twoside%
|
|
}{#1}%
|
|
}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\expandafter\ifnum\scr@v@is@ge{3.17}%
|
|
\if@twoside\flushbottom
|
|
\else
|
|
\if@twocolumn\sloppy\flushbottom\else\raggedbottom\fi
|
|
\fi
|
|
\fi
|
|
\KOMA@kav@xreplacevalue{.%
|
|
\KOMAClassFileName
|
|
}{twoside}{#1}%
|
|
\fi
|
|
}
|
|
\KOMAExecuteOptions{twoside=true}
|
|
\KOMA@DeclareStandardOption%
|
|
{oneside}{twoside=false}
|
|
\KOMA@key{twocolumn}[true]{%
|
|
\if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi%
|
|
\KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{twocolumn}{@twocolumn}%
|
|
\if@atdocument\expandafter\@firstofone
|
|
\else\@ifpackageloaded{typearea}{\expandafter\@firstofone}
|
|
{\expandafter\AtEndOfClass}\fi
|
|
{\expandafter\ifnum\scr@v@is@ge{3.17}%
|
|
\if@twocolumn\twocolumn\sloppy\flushbottom
|
|
\else
|
|
\onecolumn
|
|
\if@twoside\flushbottom\else
|
|
\raggedbottom
|
|
\fi
|
|
\fi
|
|
\fi}%
|
|
\fi
|
|
}
|
|
\AtEndOfClass{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.17}%
|
|
\if@twocolumn\twocolumn\sloppy\flushbottom
|
|
\else\onecolumn\if@twoside\flushbottom\else\raggedbottom\fi\fi
|
|
\fi
|
|
}
|
|
\KOMAExecuteOptions{twocolumn=false}
|
|
\KOMA@DeclareStandardOption%
|
|
{onecolumn}{twocolumn=false}
|
|
\newcommand*{\@BCOR}{\expandafter\@@BCOR\CurrentOption BCORBCOR\@@BCOR}
|
|
\newcommand*{\@@BCOR}{}
|
|
\def\@@BCOR #1BCOR#2BCOR#3\@@BCOR{%
|
|
\Ifstr{#1}{}{%
|
|
\Ifstr{#3}{BCOR}{%
|
|
\Ifstrstart{#2}{=}{%
|
|
\edef\reserved@a{\noexpand\Ifdimen{\@gobble#2}}%
|
|
\reserved@a{\PassOptionsToPackage{BCOR#2}{typearea}}{\OptionNotUsed}%
|
|
}{%
|
|
\Ifdimen{#2}{\PassOptionsToPackage{BCOR#2}{typearea}}{\OptionNotUsed}%
|
|
}%
|
|
}{\scr@pti@nerr@r}%
|
|
}{\scr@pti@nerr@r}%
|
|
}
|
|
\newcommand*{\@DIV}{\expandafter\@@DIV\CurrentOption DIVDIV\@@DIV}
|
|
\newcommand*{\@@DIV}{}
|
|
\def\@@DIV #1DIV#2DIV#3\@@DIV{%
|
|
\edef\@tempa{#1}\ifx\@tempa\@empty
|
|
\edef\@tempa{#3}\def\@tempb{DIV}\ifx\@tempa\@tempb
|
|
\Ifstrstart{#2}{=}{%
|
|
\edef\reserved@a{\noexpand\Ifnumber{\@gobble#2}}%
|
|
\reserved@a{\PassOptionsToPackage{DIV#2}{typearea}}{\OptionNotUsed}%
|
|
}{%
|
|
\Ifnumber{#2}{\PassOptionsToPackage{DIV#2}{typearea}}{\OptionNotUsed}%
|
|
}%
|
|
\else\scr@pti@nerr@r\fi
|
|
\else\@BCOR\fi
|
|
}
|
|
\newcommand{\@headlines}{%
|
|
\expandafter\@@headlines\CurrentOption headlines\@@headlines%
|
|
}
|
|
\newcommand*{\@@headlines}{}
|
|
\def\@@headlines #1headlines#2\@@headlines{
|
|
\edef\@tempa{#2}\edef\@tempb{headlines}\ifx\@tempa\@tempb
|
|
\PassOptionsToPackage{#1headlines}{typearea}
|
|
\else\@DIV\fi
|
|
}
|
|
\newcommand*{\x@paper}{%
|
|
\expandafter\x@@paper\CurrentOption paper\x@@paper%
|
|
}
|
|
\newcommand*{\x@@paper}{}
|
|
\def\x@@paper #1#2paper#3\x@@paper{%
|
|
\Ifstr{#3}{paper}{%
|
|
\Ifnumber{#2}{%
|
|
\Ifstr{#1}{a}{%
|
|
\PassOptionsToPackage{#3=#1#2}{typearea}%
|
|
}{%
|
|
\Ifstr{#1}{b}{%
|
|
\PassOptionsToPackage{#3=#1#2}{typearea}%
|
|
}{%
|
|
\Ifstr{#1}{c}{%
|
|
\PassOptionsToPackage{#3=#1#2}{typearea}%
|
|
}{%
|
|
\Ifstr{#1}{d}{%
|
|
\PassOptionsToPackage{#3=#1#2}{typearea}%
|
|
}{\scr@pti@nerr@r}%
|
|
}%
|
|
}%
|
|
}%
|
|
}{\scr@pti@nerr@r}%
|
|
}{%
|
|
\@pt@scan
|
|
}%
|
|
}
|
|
\newcommand*{\scr@pti@nerr@r}{
|
|
\OptionNotUsed
|
|
}
|
|
\DeclareOption*{%
|
|
\x@paper}
|
|
%%% From File: $Id: scrkernel-paragraphs.dtx 3262 2019-10-10 08:25:29Z kohm $
|
|
%%% (run: option)
|
|
\newcommand*{\setparsizes}[3]{%
|
|
\edef\f@parindent{\the\parindent}%
|
|
\edef\f@parskip{\the\parskip}%
|
|
\edef\f@parfillskip{\the\parfillskip}%
|
|
\def\scr@parindent{#1}%
|
|
\def\scr@parskip{#2}%
|
|
\def\scr@parfillskip{#3}%
|
|
\def\par@update{%
|
|
\if@atdocument\let\par@update\default@par@update\fi
|
|
\par@updaterelative
|
|
}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{false}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{never}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full-}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full+}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full*}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half-}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half+}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half*}%
|
|
}
|
|
\newcommand*{\f@parindent}{\the\parindent}
|
|
\newcommand*{\f@parskip}{\the\parskip}
|
|
\newcommand*{\f@parfillskip}{\the\parfillskip}
|
|
\AtEndOfClass{%
|
|
\edef\f@parindent{\the\parindent}%
|
|
\edef\f@parskip{\the\parskip}%
|
|
\edef\f@parfillskip{\the\parfillskip}%
|
|
}
|
|
\newcommand*{\par@update}{}
|
|
\let\par@update\relax
|
|
\newcommand*{\default@par@update}{}
|
|
\let\default@par@update\relax
|
|
\AtBeginDocument{\par@update}
|
|
\newcommand*{\scr@parindent}{1em}
|
|
\newcommand*{\scr@parskip}{\z@}
|
|
\newcommand*{\scr@parfillskip}{\z@ \@plus 1fil}
|
|
\KOMA@key{parskip}[true]{%
|
|
\begingroup
|
|
\KOMA@set@ncmdkey{parskip}{@tempa}{%
|
|
{never}{0},%
|
|
{false}{1},{off}{1},{no}{1},%
|
|
{full-}{2},%
|
|
{half-}{3},%
|
|
{full}{4},{true}{4},{on}{4},{yes}{4},%
|
|
{half}{5},%
|
|
{full+}{6},%
|
|
{half+}{7},%
|
|
{full*}{8},%
|
|
{half*}{9},%
|
|
{relative}{10},%
|
|
{absolute}{11}%
|
|
}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\aftergroup\FamilyKeyStateProcessed
|
|
\ifcase\number\@tempa% 0
|
|
\endgroup
|
|
\setparsizes{1em}{\z@}{\z@ \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{never}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 1
|
|
\endgroup
|
|
\setparsizes{1em}{\z@ \@plus \p@}{\z@ \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{false}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 2
|
|
\endgroup
|
|
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
|
|
\z@ \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{full-}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 3
|
|
\endgroup
|
|
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
|
|
\z@ \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{half-}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 4
|
|
\endgroup
|
|
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
|
|
1em \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{full}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 5
|
|
\endgroup
|
|
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
|
|
1em \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{half}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 6
|
|
\endgroup
|
|
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
|
|
.3333\linewidth\@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{full+}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 7
|
|
\endgroup
|
|
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
|
|
.3333\linewidth \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{half+}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 8
|
|
\endgroup
|
|
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
|
|
.25\linewidth \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{full*}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 9
|
|
\endgroup
|
|
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
|
|
.25\linewidth \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{half*}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 10
|
|
\endgroup
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{absolute}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{relative}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{relative}%
|
|
\ifx\par@updaterelative\undefined
|
|
\expandafter\AtEndOfClass
|
|
\else
|
|
\expandafter\@firstofone
|
|
\fi
|
|
{%
|
|
\ifx\par@update\default@par@update
|
|
\let\par@update\par@updaterelative
|
|
\fi
|
|
\let\default@par@update=\par@updaterelative
|
|
}%
|
|
\or%11
|
|
\endgroup
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{absolute}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{relative}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{absolute}%
|
|
\ifx\par@updaterelative\undefined
|
|
\expandafter\AtEndOfClass
|
|
\else
|
|
\expandafter\@firstofone
|
|
\fi
|
|
{%
|
|
\ifx\par@update\default@par@update
|
|
\let\par@update\relax
|
|
\fi
|
|
\let\default@par@update=\relax
|
|
}%
|
|
\else% should never be
|
|
\endgroup
|
|
\fi
|
|
\else
|
|
\endgroup
|
|
\FamilyKeyStateUnknownValue
|
|
\fi
|
|
}
|
|
\KOMA@DeclareDeprecatedOption{parskip-}{parskip=full-}
|
|
\KOMA@DeclareDeprecatedOption{parskip+}{parskip=full+}
|
|
\KOMA@DeclareDeprecatedOption{parskip*}{parskip=full*}
|
|
\KOMA@DeclareDeprecatedOption{halfparskip}{parskip=half}
|
|
\KOMA@DeclareDeprecatedOption{halfparskip-}{parskip=half-}
|
|
\KOMA@DeclareDeprecatedOption{halfparskip+}{parskip=half+}
|
|
\KOMA@DeclareDeprecatedOption{halfparskip*}{parskip=half*}
|
|
\KOMA@DeclareDeprecatedOption{parindent}{parskip=false}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{false}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{absolute}
|
|
%%% From File: $Id: scrkernel-title.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: option)
|
|
\newif\if@titlepage
|
|
\@titlepagetrue
|
|
\newif\if@titlepageiscoverpage
|
|
\KOMA@key{titlepage}[true]{%
|
|
\Ifstr{#1}{firstiscover}{%
|
|
\@titlepagetrue
|
|
\@titlepageiscoverpagetrue
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacevalue{.%
|
|
\KOMAClassFileName
|
|
}{titlepage}{firstiscover}%
|
|
}{%
|
|
\def\FamilyElseValue{, `firstiscover'}%
|
|
\KOMA@set@ifkey{titlepage}{@titlepage}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\KOMA@kav@remove{.%
|
|
\KOMAClassFileName
|
|
}{titlepage}{firstiscover}%
|
|
\KOMA@kav@replacebool{.%
|
|
\KOMAClassFileName
|
|
}{titlepage}{@titlepage}%
|
|
\@titlepageiscoverpagefalse
|
|
\fi
|
|
}%
|
|
}
|
|
\KOMA@kav@xadd{.%
|
|
\KOMAClassFileName
|
|
}{titlepage}{\if@titlepage true\else false\fi}
|
|
\KOMA@DeclareStandardOption%
|
|
{notitlepage}{titlepage=false}
|
|
%%% From File: $Id: scrkernel-tocstyle.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: option)
|
|
%%% From File: $Id: scrkernel-sections.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: option)
|
|
\KOMA@key{open}{%
|
|
\KOMA@set@ncmdkey{open}{@tempa}{%
|
|
{any}{0},%
|
|
{right}{1},%
|
|
{left}{2}%
|
|
}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\KOMA@kav@xreplacevalue{.\KOMAClassFileName}{open}{#1}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{openany}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{openright}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{openleft}%
|
|
\ifcase \@tempa\relax
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{openany}%
|
|
\@openrightfalse
|
|
\renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}%
|
|
\or
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{openright}%
|
|
\@openrighttrue
|
|
\renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}%
|
|
\or
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{openleft}%
|
|
\@openrighttrue
|
|
\renewcommand*{\cleardoublestandardpage}{\cleardoubleevenstandardpage}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@DeclareStandardOption{openright}{open=right}
|
|
\KOMA@DeclareStandardOption{openany}{open=any}
|
|
\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}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\KOMA@kav@xreplacevalue{.\KOMAClassFileName}{numbers}{#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
|
|
\fi
|
|
}
|
|
\KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot}
|
|
\KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot}
|
|
\KOMA@ifkey{bookmarkpackage}{@scr@autoloadbookmarkpackage}
|
|
\@scr@autoloadbookmarkpackagetrue
|
|
\KOMA@kav@add{.\KOMAClassFileName}{bookmarkpackage}{true}
|
|
\AfterAtEndOfPackage{hyperref}{%
|
|
\AtBeginDocument{%
|
|
\@ifpackageloaded{bookmark}{}{%
|
|
\if@scr@autoloadbookmarkpackage
|
|
\scr@ifundefinedorrelax{Hy@driver}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
`hyperref' loaded but `\string\Hy@driver' undefined.\MessageBreak
|
|
This should not happen!\MessageBreak
|
|
Maybe `hyperref' not loaded or unknown version?%
|
|
}%
|
|
}{%
|
|
\Ifstr{\Hy@driver}{hdvips}{%
|
|
\providecommand*{\BookmarkDriverDefault}{dvips}%
|
|
}{%
|
|
\Ifstr{\Hy@driver}{hdvipdfm}{%
|
|
\providecommand*{\BookmarkDriverDefault}{dvipdfm}%
|
|
}{%
|
|
\Ifstr{\Hy@driver}{hdvipson}{%
|
|
\providecommand*{\BookmarkDriverDefault}{dvipsone}%
|
|
}{%
|
|
\Ifstr{\Hy@driver}{htexture}{%
|
|
\providecommand*{\BookmarkDriverDefault}{textures}%
|
|
}{%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
loading recommended package `bookmark'.\MessageBreak
|
|
Using `bookmark' together with `hyperref' is
|
|
recommended,\MessageBreak
|
|
because of handling of possible bookmark level gaps.\MessageBreak
|
|
You can avoid loading `bookmark' with KOMA-Script
|
|
option\MessageBreak
|
|
`bookmarkpackage=false' before \string\begin{document}
|
|
and\MessageBreak
|
|
you can avoid this message adding:\MessageBreak
|
|
\space\space\string\usepackage
|
|
\scr@ifundefinedorrelax{BookmarkDriverDefault}{}{%
|
|
[\BookmarkDriverDefault]%
|
|
}{bookmark}\MessageBreak
|
|
before \string\begin{document}%
|
|
}%
|
|
\RequirePackage{bookmark}%
|
|
\ifx\@beginmainauxhook\relax
|
|
\else
|
|
\if@filesw
|
|
\ClassWarning{\KOMAClassName}{%
|
|
seems someone has broken package `auxhook'.\MessageBreak
|
|
Usually this happens, if `auxhook' is loaded or used\MessageBreak
|
|
implicitly or explicitly by patching
|
|
\string\document%
|
|
\scr@ifundefinedorrelax{AtEndPreamble}{}{%
|
|
\MessageBreak
|
|
or via etoolbox command \string\AtEndPreamble%
|
|
}.\MessageBreak
|
|
Trying an emergency workaround.\MessageBreak
|
|
You can avoid this warning adding:\MessageBreak
|
|
\space\space\string\usepackage{auxhook}\MessageBreak
|
|
before \string\begin{document}%
|
|
}%
|
|
\@beginmainauxhook
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}%
|
|
}%
|
|
}
|
|
\KOMA@key{chapterprefix}[true]{%
|
|
\KOMA@set@ifkey{chapterprefix}{@chapterprefix}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacebool{.\KOMAClassFileName}%
|
|
{chapterprefix}{@chapterprefix}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}%
|
|
{headings}{twolinechapter}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}%
|
|
{headings}{onelinechapter}%
|
|
\KOMA@kav@xadd{.\KOMAClassFileName}%
|
|
{headings}{%
|
|
\if@chapterprefix twolinechapter\else onelinechapter\fi
|
|
}%
|
|
\fi
|
|
}
|
|
\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{onelinechapter}%
|
|
\KOMA@key{appendixprefix}[true]{%
|
|
\KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\KOMA@kav@xreplacevalue{.\KOMAClassFileName}{appendixprefix}{#1}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{twolineappendix}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{onelineappendix}%
|
|
\if@tempswa
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{twolineappendix}%
|
|
\@ifundefined{appendixmore}{%
|
|
\def\appendixmore{\@chapterprefixtrue}%
|
|
}{%
|
|
\l@addto@macro\appendixmore{\@chapterprefixtrue}%
|
|
}%
|
|
\else
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{onelineappendix}%
|
|
\@ifundefined{appendixmore}{%
|
|
\def\appendixmore{\@chapterprefixfalse}%
|
|
}{%
|
|
\l@addto@macro\appendixmore{\@chapterprefixfalse}%
|
|
}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@DeclareDeprecatedOption{noappendixprefix}{appendixprefix=false}
|
|
\KOMA@ifkey{chapterentrydots}{@chapterentrywithdots}
|
|
\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},%
|
|
{optiontotocandhead}{10},{optiontoheadandtoc}{10},%
|
|
{optiontotoc}{11},%
|
|
{optiontohead}{12},%
|
|
{standardclasses}{13}%
|
|
}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\ifcase \@tempa\relax% big
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{small}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{big}%
|
|
\renewcommand*{\scr@chapter@beforeskip}{-3.3\baselineskip-\parskip}%
|
|
\renewcommand*{\scr@chapter@afterskip}{%
|
|
1.725\baselineskip \@plus .115\baselineskip \@minus .192\baselineskip
|
|
}%
|
|
\renewcommand*{\scr@chapter@innerskip}{.5\baselineskip}%
|
|
\renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
|
|
\renewcommand*{\chapterheadendvskip}{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.15}\vspace\@tempskipa
|
|
\else\vskip\@tempskipa\fi
|
|
}%
|
|
\renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
|
|
\renewcommand*{\size@part}{\Huge}%
|
|
\renewcommand*{\size@partnumber}{\huge}%
|
|
\renewcommand*{\size@chapter}{\huge}%
|
|
\renewcommand*{\size@chapterprefix}{\size@chapter}%
|
|
\renewcommand*{\size@section}{\Large}%
|
|
\renewcommand*{\size@subsection}{\large}%
|
|
\renewcommand*{\size@subsubsection}{\normalsize}%
|
|
\renewcommand*{\size@paragraph}{\normalsize}%
|
|
\renewcommand*{\size@subparagraph}{\normalsize}%
|
|
\or % normal
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{small}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{normal}%
|
|
\renewcommand*{\scr@chapter@beforeskip}{-3\baselineskip-\parskip}%
|
|
\renewcommand*{\scr@chapter@afterskip}{%
|
|
1.5\baselineskip \@plus .1\baselineskip \@minus .167\baselineskip
|
|
}%
|
|
\renewcommand*{\scr@chapter@innerskip}{.5\baselineskip}%
|
|
\renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
|
|
\renewcommand*{\chapterheadendvskip}{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.15}\vspace\@tempskipa
|
|
\else\vskip\@tempskipa\fi
|
|
}%
|
|
\renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
|
|
\renewcommand*{\size@part}{\huge}%
|
|
\renewcommand*{\size@partnumber}{\huge}%
|
|
\renewcommand*{\size@chapter}{\LARGE}%
|
|
\renewcommand*{\size@chapterprefix}{\size@chapter}%
|
|
\renewcommand*{\size@section}{\Large}%
|
|
\renewcommand*{\size@subsection}{\large}%
|
|
\renewcommand*{\size@subsubsection}{\normalsize}%
|
|
\renewcommand*{\size@paragraph}{\normalsize}%
|
|
\renewcommand*{\size@subparagraph}{\normalsize}%
|
|
\or % small
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{small}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{small}%
|
|
\renewcommand*{\scr@chapter@beforeskip}{-2.8\baselineskip-\parskip}%
|
|
\renewcommand*{\scr@chapter@afterskip}{%
|
|
1.35\baselineskip \@plus 0.09\baselineskip \@minus .15\baselineskip
|
|
}%
|
|
\renewcommand*{\scr@chapter@innerskip}{.5\baselineskip}%
|
|
\renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
|
|
\renewcommand*{\chapterheadendvskip}{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.15}\vspace\@tempskipa
|
|
\else\vskip\@tempskipa\fi
|
|
}%
|
|
\renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
|
|
\renewcommand*{\size@part}{\LARGE}%
|
|
\renewcommand*{\size@partnumber}{\LARGE}%
|
|
\renewcommand*{\size@chapter}{\Large}%
|
|
\renewcommand*{\size@chapterprefix}{\size@chapter}%
|
|
\renewcommand*{\size@section}{\large}%
|
|
\renewcommand*{\size@subsection}{\normalsize}%
|
|
\renewcommand*{\size@subsubsection}{\normalsize}%
|
|
\renewcommand*{\size@paragraph}{\normalsize}%
|
|
\renewcommand*{\size@subparagraph}{\normalsize}%
|
|
\or % openany
|
|
\KOMAoptions{open=any}%
|
|
\or % openright
|
|
\KOMAoptions{open=right}%
|
|
\or % openleft
|
|
\KOMAoptions{open=left}%
|
|
\or % twolinechapter
|
|
\KOMAoptions{chapterprefix=true}%
|
|
\or % onelinechapter
|
|
\KOMAoptions{chapterprefix=false}%
|
|
\or % twolineappendix
|
|
\KOMAoptions{appendixprefix=true}%
|
|
\or % onelineappend
|
|
\KOMAoptions{appendixprefix=false}%
|
|
\or % optiontotocandhead
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotocandhead}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontohead}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{optiontotocandhead}%
|
|
\scr@activate@xsection{3}%
|
|
\or % optiontotoc
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotocandhead}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontohead}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{optiontotoc}%
|
|
\scr@activate@xsection{2}%
|
|
\or % optiontohead
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotocandhead}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontotoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{optiontohead}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{optiontohead}%
|
|
\scr@activate@xsection{1}%
|
|
\or % standardclasses
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{big}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{normal}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{small}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{headings}{standardclasses}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{standardclasses}%
|
|
\renewcommand*{\scr@chapter@beforeskip}{-50\p@}%
|
|
\renewcommand*{\scr@chapter@afterskip}{40\p@}%
|
|
\renewcommand*{\scr@chapter@innerskip}{20\p@}%
|
|
\renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
|
|
\renewcommand*{\chapterheadendvskip}{\vskip\@tempskipa}%
|
|
\renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip\@tempskipa}%
|
|
\renewcommand*{\size@part}{\Huge}%
|
|
\renewcommand*{\size@partnumber}{\huge}%
|
|
\renewcommand*{\size@chapter}{\Huge}%
|
|
\renewcommand*{\size@chapterprefix}{\huge}%
|
|
\renewcommand*{\size@section}{\Large}%
|
|
\renewcommand*{\size@subsection}{\large}%
|
|
\renewcommand*{\size@subsubsection}{\normalsize}%
|
|
\renewcommand*{\size@paragraph}{\normalsize}%
|
|
\renewcommand*{\size@subparagraph}{\normalsize}%
|
|
\renewcommand*{\sectfont}{\bfseries}%
|
|
\KOMAoptions{open=right,chapterprefix=true}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{big}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headings}{onelinechapter}
|
|
\KOMA@DeclareDeprecatedOption{bigheadings}{headings=big}
|
|
\KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal}
|
|
\KOMA@DeclareDeprecatedOption{smallheadings}{headings=small}
|
|
%%% From File: $Id: scrkernel-pagestyles.dtx 3393 2019-11-19 10:33:44Z kohm $
|
|
%%% (run: option)
|
|
\KOMA@ifkey{headsepline}{@hsl}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{headsepline}{false}
|
|
\KOMA@DeclareDeprecatedOption{headnosepline}{headsepline=false}
|
|
\KOMA@ifkey{footsepline}{@fsl}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{footsepline}{false}
|
|
\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false}
|
|
\KOMA@key{cleardoublepage}{%
|
|
\begingroup%
|
|
\def\@tempc{%
|
|
\endgroup%
|
|
\KOMA@unknown@keyval{cleardoublepage}{#1}{%
|
|
'current' or any defined pagestyle e.g. 'empty','plain', 'headings'}%
|
|
}%
|
|
\Ifstr{#1}{current}{%
|
|
\def\@tempc{\endgroup%
|
|
\def\cleardoublepage{\cleardoublestandardpage}%
|
|
\def\cleardoubleoddpage{\cleardoubleoddstandardpage}%
|
|
\def\cleardoubleevenpage{\cleardoubleevenstandardpage}%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacevalue{.%
|
|
\KOMAClassFileName
|
|
}{cleardoublepage}{current}%
|
|
}%
|
|
}{%
|
|
\Ifnotundefined{ps@#1}{%
|
|
\def\@tempc{\endgroup%
|
|
\def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
|
|
\def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
|
|
\def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@xreplacevalue{.%
|
|
\KOMAClassFileName
|
|
}{cleardoublepage}{#1}%
|
|
}%
|
|
}{%
|
|
\ifx\@currname\KOMAClassName
|
|
\ifx\@currext\@clsextension
|
|
\Ifstr{#1}{headings}{%
|
|
\def\@tempc{\endgroup%
|
|
\def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
|
|
\def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
|
|
\def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@xreplacevalue{.\KOMAClassFileName}%
|
|
{cleardoublepage}{#1}%
|
|
}%
|
|
}{}%
|
|
\fi
|
|
\fi
|
|
}%
|
|
}%
|
|
\@tempc
|
|
}
|
|
\newcommand*{\cleardoubleoddstandardpage}{}
|
|
\let\cleardoubleoddstandardpage=\cleardoublepage
|
|
\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage
|
|
{\pagestyle{#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
|
|
{\pagestyle{#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
|
|
}
|
|
\KOMA@kav@add{.%
|
|
\KOMAClassFileName
|
|
}{cleardoublepage}{%
|
|
\expandafter\ifnum \scr@v@is@gt{2.98c}empty\else current\fi
|
|
}
|
|
\AtEndOfClass{%
|
|
\KOMAoptionOf[\expandafter\edef\expandafter\@tempa\@firstofone]%
|
|
{%
|
|
\KOMAClassFileName
|
|
}{cleardoublepage}%
|
|
\KOMA@kav@removekey{.%
|
|
\KOMAClassFileName
|
|
}{cleardoublepage}%
|
|
\KOMA@kav@xadd{.%
|
|
\KOMAClassFileName
|
|
}{cleardoublepage}{\@tempa}%
|
|
}
|
|
\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage}
|
|
\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage}
|
|
\newcommand*{\cleardoublepageusingstyle}[1]{\clearpage
|
|
{\pagestyle{#1}\cleardoublestandardpage}}
|
|
\newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}}
|
|
\newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}}
|
|
\KOMA@DeclareDeprecatedOption{cleardoubleempty}{cleardoublepage=empty}
|
|
\KOMA@DeclareDeprecatedOption{cleardoubleplain}{cleardoublepage=plain}
|
|
\KOMA@DeclareDeprecatedOption{cleardoublestandard}{cleardoublepage=current}
|
|
%%% From File: $Id: scrkernel-floats.dtx 3394 2019-11-19 11:56:28Z kohm $
|
|
%%% (run: option)
|
|
\newif\if@captionabove\@captionabovefalse
|
|
\newif\if@tablecaptionabove\@tablecaptionabovefalse
|
|
\newif\if@figurecaptionabove\@figurecaptionabovefalse
|
|
\newif\ifonelinecaptions\onelinecaptionstrue
|
|
\newcommand*{\scap@pos}{r}
|
|
\newcommand*{\scap@valign}{b}
|
|
\KOMA@key{captions}{%
|
|
\KOMA@set@ncmdkey{captions}{@tempa}{%
|
|
{heading}{0},{above}{0},{top}{0},%
|
|
{signature}{1},{below}{1},{bot}{1},{bottom}{1},%
|
|
{tableheading}{2},%
|
|
{tableabove}{2},{abovetable}{2},{abovetabular}{2},{topattable}{2},%
|
|
{tablesignature}{3},%
|
|
{tablebelow}{3},{belowtable}{3},{belowtabular}{3},{bottomattable}{3},%
|
|
{figureheading}{4},{figureabove}{4},{abovefigure}{4},{topatfigure}{4},%
|
|
{figuresignature}{5},{figurebelow}{5},{belowfigure}{5},{bottomatfigure}{5},%
|
|
{oneline}{6},%
|
|
{nooneline}{7},%
|
|
{rightbeside}{8},{besideright}{8},%
|
|
{leftbeside}{9},{besideleft}{9},%
|
|
{innerbeside}{10},{besideinner}{10},%
|
|
{outerbeside}{11},{besideouter}{11},%
|
|
{topbeside}{12},{besidetop}{12},%
|
|
{centeredbeside}{13},{besidecentered}{13},%
|
|
{middlebeside}{13},{besidemiddle}{13},%
|
|
{bottombeside}{14},{besidebottom}{14}%
|
|
}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\ifcase \@tempa\relax % heading
|
|
\@tablecaptionabovetrue
|
|
\@figurecaptionabovetrue
|
|
\@captionabovetrue
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{heading}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{signature}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{heading}%
|
|
\or % signature
|
|
\@tablecaptionabovefalse
|
|
\@figurecaptionabovefalse
|
|
\@captionabovefalse
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{heading}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{signature}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{signature}%
|
|
\or % tableheading
|
|
\@tablecaptionabovetrue
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{tableheading}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{tablesignature}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{tableheading}%
|
|
\or % tablesignature
|
|
\@tablecaptionabovefalse
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{tableheading}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{tablesignature}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{tablesignature}%
|
|
\or % figureheading
|
|
\@figurecaptionabovetrue
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{figureheading}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{figuresignature}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{figureheading}%
|
|
\or % figuresignature
|
|
\@figurecaptionabovefalse
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{figureheading}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{figuresignature}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{figuresignature}%
|
|
\or % oneline
|
|
\onelinecaptionstrue
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{oneline}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{nooneline}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{oneline}%
|
|
\or % nooneline
|
|
\onelinecaptionsfalse
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{oneline}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{nooneline}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{nooneline}%
|
|
\or % rightbeside
|
|
\renewcommand*{\scap@pos}{r}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{rightbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{leftbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{innerbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{outerbeside}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{rightbeside}%
|
|
\or % leftbeside
|
|
\renewcommand*{\scap@pos}{l}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{rightbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{leftbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{innerbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{outerbeside}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{leftbeside}%
|
|
\or % innerbeside
|
|
\renewcommand*{\scap@pos}{i}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{rightbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{leftbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{innerbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{outerbeside}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{innerbeside}%
|
|
\or % outerbeside
|
|
\renewcommand*{\scap@pos}{o}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{rightbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{leftbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{innerbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{outerbeside}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{outerbeside}%
|
|
\or % topbeside
|
|
\renewcommand*{\scap@valign}{t}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{topbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{centeredbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{bottombeside}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{topbeside}%
|
|
\or % centeredbeside
|
|
\renewcommand*{\scap@valign}{c}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{topbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{centeredbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{bottombeside}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{centeredbeside}%
|
|
\or % bottombeside
|
|
\renewcommand*{\scap@valign}{b}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{topbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{centeredbeside}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{captions}{bottombeside}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{bottombeside}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{signature}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{tablesignature}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{figuresignature}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{oneline}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{rightbeside}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{captions}{bottombeside}
|
|
\KOMA@DeclareDeprecatedOption{tablecaptionabove}{captions=tableheading}
|
|
\KOMA@DeclareDeprecatedOption{tablecaptionbelow}{captions=tablesignature}
|
|
\newif\if@komalongtable\@komalongtabletrue
|
|
\DeclareOption{origlongtable}{\@komalongtablefalse}
|
|
\KOMA@DeclareDeprecatedOption{onelinecaption}{captions=oneline}
|
|
\KOMA@DeclareDeprecatedOption{noonelinecaption}{captions=nooneline}
|
|
%%% From File: $Id: scrkernel-footnotes.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: option)
|
|
\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
|
|
\def\FN@mf@prepare{\scr@mf@prepare}%
|
|
\def\scr@footmisc@options{multiple}%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacevalue{.%
|
|
\KOMAClassFileName
|
|
}{footnotes}{multiple}%
|
|
}{%
|
|
\Ifstr{#1}{nomultiple}{%
|
|
\let\@footnotemark\scr@saved@footnotemark
|
|
\let\FN@mf@prepare\relax
|
|
\let\scr@footmisc@options\@empty
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@replacevalue{.%
|
|
\KOMAClassFileName
|
|
}{footnotes}{nomultiple}%
|
|
}{%
|
|
\KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}%
|
|
}%
|
|
}%
|
|
}
|
|
\AtBeginDocument{%
|
|
\ifx\@footnotemark\scr@saved@footnotemark
|
|
\KOMA@kav@removekey{.%
|
|
\KOMAClassFileName
|
|
}{footnotes}%
|
|
\KOMA@kav@add{.%
|
|
\KOMAClassFileName
|
|
}{footnotes}{nomultiple}%
|
|
\else\ifx\@footnotemark\scr@footnotemark
|
|
\KOMA@kav@removekey{.%
|
|
\KOMAClassFileName
|
|
}{footnotes}%
|
|
\KOMA@kav@add{.%
|
|
\KOMAClassFileName
|
|
}{footnotes}{multiple}%
|
|
\fi\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: $Id: scrkernel-listsof.dtx 3477 2020-04-11 07:26:26Z kohm $
|
|
%%% (run: option)
|
|
\newif\if@tocleft
|
|
\KOMA@key{toc}{%
|
|
\KOMA@set@ncmdkey{toc}{@tempa}{%
|
|
{noindex}{0},{noidx}{0},%
|
|
{index}{1},{idx}{1},%
|
|
{indexnumbered}{2},{idxnumbered}{2},{numberedindex}{2},{numberedidx}{2},%
|
|
{nolistof}{3},{nolistsof}{3},%
|
|
{listof}{4},{listsof}{4},%
|
|
{listofnumbered}{5},{numberedlistof}{5},%
|
|
{listsofnumbered}{5},{numberedlistsof}{5},%
|
|
{nobibliography}{6},{nobib}{6},%
|
|
{bibliography}{7},{bib}{7},%
|
|
{bibliographynumbered}{8},{bibnumbered}{8},{numberedbibliography}{8},%
|
|
{numberedbib}{8},%
|
|
{flat}{9},{left}{9},%
|
|
{graduated}{10},{indent}{10},{indented}{10},%
|
|
{indenttextentries}{11},{indentunnumbered}{11},{numberline}{11},%
|
|
{leftaligntextentries}{12},{leftalignunnumbered}{12},{nonumberline}{12},%
|
|
{chapterentrywithdots}{13},{chapterentrydotfill}{13},
|
|
{chapterentrywithoutdots}{14},{chapterentryfill}{14}%
|
|
}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\ifcase \@tempa\relax % noindex
|
|
\KOMAoptions{index=notoc}%
|
|
\or % index
|
|
\KOMAoptions{index=totoc}%
|
|
\or % indexnumbered
|
|
\KOMAoptions{index=numbered}%
|
|
\or % listof
|
|
\KOMAoptions{listof=notoc}%
|
|
\or % nolistof
|
|
\KOMAoptions{listof=totoc}%
|
|
\or % listofnumbered
|
|
\KOMAoptions{listof=numbered}%
|
|
\or % nobibliography
|
|
\KOMAoptions{bibliography=nottotoc}%
|
|
\or % bibliography
|
|
\KOMAoptions{bibliography=totoc}%
|
|
\or % bibliographynumbered
|
|
\KOMAoptions{bibliography=totocnumbered}%
|
|
\or % flat
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{flat}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{graduated}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{flat}%
|
|
\@toclefttrue
|
|
\or % graduated
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{flat}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{graduated}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{graduated}%
|
|
\@tocleftfalse
|
|
\or % indenttextentries
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{indenttextentries}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{leftaligntextentries}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{indenttextentries}%
|
|
\expandafter\setuptoc\expandafter{\ext@toc}{numberline}%
|
|
\or % leftaligntextentries
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{indenttextentries}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{leftaligntextentries}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{leftaligntextentries}%
|
|
\expandafter\unsettoc\expandafter{\ext@toc}{numberline}%
|
|
\or % chapterentrywithdots/sectionentrywithdots
|
|
\KOMAoptions{chapterentrydots=true}%
|
|
\or % chapterentrywithoutdots/sectionentrywithoutdots
|
|
\KOMAoptions{chapterentrydots=false}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@DeclareDeprecatedOption{tocleft}{toc=flat}
|
|
\KOMA@DeclareDeprecatedOption{tocindent}{toc=graduated}
|
|
\newcommand*{\float@@listhead}{%
|
|
\chapter*
|
|
}
|
|
\newif\if@dynlist
|
|
\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},
|
|
{standardlevel}{6},
|
|
{entryprefix}{7},
|
|
{indenttextentries}{8},{indentunnumbered}{8},{numberline}{8},%
|
|
{leftaligntextentries}{9},{leftalignunnumbered}{9},{nonumberline}{9}%
|
|
,{chapterentry}{10},{withchapterentry}{10},%
|
|
{nochaptergap}{11},{ignorechapter}{11},%
|
|
{chaptergapsmall}{12},{smallchaptergap}{12},%
|
|
{chaptergapline}{13},{onelinechaptergap}{13}%
|
|
}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\ifcase \@tempa\relax % notoc
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{nolistof}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{listof}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{listofnumbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{nolistof}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{totoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{numbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{notoc}%
|
|
\renewcommand*{\float@@listhead}{%
|
|
\chapter*
|
|
}%
|
|
\doforeachtocfile[float]{%
|
|
\unsettoc{\@currext}{numbered}%
|
|
\unsettoc{\@currext}{totoc}%
|
|
}%
|
|
\AtAddToTocList[float]{%
|
|
\unsettoc{\@currext}{numbered}%
|
|
\unsettoc{\@currext}{totoc}%
|
|
}%
|
|
\or% totoc
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{nolistof}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{listof}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{listofnumbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{listof}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{totoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{numbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{totoc}%
|
|
\renewcommand*{\float@@listhead}{%
|
|
\addchap
|
|
}%
|
|
\doforeachtocfile[float]{%
|
|
\unsettoc{\@currext}{numbered}%
|
|
\setuptoc{\@currext}{totoc}%
|
|
}%
|
|
\AtAddToTocList[float]{%
|
|
\unsettoc{\@currext}{numbered}%
|
|
\setuptoc{\@currext}{totoc}%
|
|
}%
|
|
\or% numbered
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{nolistof}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{listof}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{listofnumbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{listofnumbered}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{totoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{numbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{numbered}%
|
|
\renewcommand*{\float@@listhead}{%
|
|
\chapter
|
|
}%
|
|
\doforeachtocfile[float]{%
|
|
\setuptoc{\@currext}{numbered}%
|
|
\setuptoc{\@currext}{totoc}%
|
|
}%
|
|
\AtAddToTocList[float]{%
|
|
\setuptoc{\@currext}{numbered}%
|
|
\setuptoc{\@currext}{totoc}%
|
|
}%
|
|
\or% flat
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{flat}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{graduated}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{flat}%
|
|
\@dynlisttrue
|
|
\or% graduated
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{flat}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{graduated}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{graduated}%
|
|
\@dynlistfalse
|
|
\or% leveldown
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{standardlevel}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{leveldown}%
|
|
\doforeachtocfile[float]{%
|
|
\setuptoc{\@currext}{leveldown}%
|
|
}%
|
|
\AtAddToTocList[float]{%
|
|
\setuptoc{\@currext}{leveldown}%
|
|
}%
|
|
\or% standardlevel
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{leveldown}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{standardlevel}%
|
|
\doforeachtocfile[float]{%
|
|
\unsettoc{\@currext}{leveldown}%
|
|
}%
|
|
\AtAddToTocList[float]{%
|
|
\unsettoc{\@currext}{leveldown}%
|
|
}%
|
|
\or% entryprefix
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{entryprefix}%
|
|
\@dynlisttrue
|
|
\doforeachtocfile[float]{%
|
|
\BeforeStartingTOC[\@currext]{%
|
|
\scr@ifundefinedorrelax{listof\@currext entryname}{}{%
|
|
\expandafter\def\expandafter\numberline@prefix
|
|
\expandafter{\csname listof\@currext entryname\endcsname
|
|
\nobreakspace}%
|
|
}%
|
|
}%
|
|
}%
|
|
\AtAddToTocList[float]{%
|
|
\BeforeStartingTOC[\@currext]{%
|
|
\scr@ifundefinedorrelax{listof\@currext entryname}{}{%
|
|
\expandafter\def\expandafter\numberline@prefix
|
|
\expandafter{\csname listof\@currext entryname\endcsname
|
|
\nobreakspace}%
|
|
}%
|
|
}%
|
|
}%
|
|
\or% indenttextentries
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{indenttextentries}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{leftaligntextentries}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{indenttextentries}%
|
|
\doforeachtocfile[float]{%
|
|
\setuptoc{\@currext}{numberline}%
|
|
}%
|
|
\AtAddToTocList[float]{%
|
|
\setuptoc{\@currext}{numberline}%
|
|
}
|
|
\or% leftaligntextentries
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{indenttextentries}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{leftaligntextentries}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{leftaligntextentries}%
|
|
\doforeachtocfile[float]{%
|
|
\unsettoc{\@currext}{numberline}%
|
|
}%
|
|
\AtAddToTocList[float]{%
|
|
\unsettoc{\@currext}{numberline}%
|
|
}
|
|
\or% chapterentry
|
|
\KOMAoptions{chapteratlists=entry}%
|
|
\or% chaptergap
|
|
\KOMAoptions{chapteratlists=\z@}%
|
|
\or% chaptergapsmall
|
|
\KOMAoptions{chapteratlists=10\p@}%
|
|
\or% chaptergapline
|
|
\KOMAoptions{chapteratlists=\baselineskip}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{nolistof}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{notoc}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{graduated}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{leftaligntextentries}
|
|
\KOMA@DeclareDeprecatedOption{liststotoc}{listof=totoc}
|
|
\KOMA@DeclareDeprecatedOption{liststotocnumbered}{listof=numbered}
|
|
\KOMA@DeclareDeprecatedOption{listsleft}{listof=flat}
|
|
\KOMA@DeclareDeprecatedOption{listsindent}{listof=graduated}
|
|
\newcommand*{\@chapterlistsgap}{10\p@}
|
|
\newif\if@chaptertolists\@chaptertolistsfalse
|
|
\KOMA@key{chapteratlists}[entry]{%
|
|
\FamilyKeyStateProcessed
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{chapterentry}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergap}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergapsmall}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergapline}%
|
|
\Ifstr{#1}{entry}{%
|
|
\@chaptertoliststrue\renewcommand*{\@chapterlistsgap}{\z@}%
|
|
\KOMA@kav@replacevalue{.\KOMAClassFileName}{chapteratlists}{entry}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{chapterentry}%
|
|
}{%
|
|
\@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}%
|
|
\KOMA@kav@replacevalue{.\KOMAClassFileName}{chapteratlists}%
|
|
{\@chapterlistsgap}%
|
|
\def\reserved@a{\z@}%
|
|
\ifx\@chapterlistsgap\reserved@a
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergap}%
|
|
\else
|
|
\def\reserved@a{10\p@}%
|
|
\ifx\@chapterlistsgap\reserved@a
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergapsmall}%
|
|
\else
|
|
\def\reserved@a{\baselineskip}%
|
|
\ifx\@chapterlistsgap\reserved@a
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergapline}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}%
|
|
}
|
|
\BeforeTOCHead{\@chaptertolistsfalse}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{chapteratlists}{10\p@}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergapsmall}%
|
|
%%% From File: $Id: scrkernel-bibliography.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: option)
|
|
\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
|
|
\@ifundefined{scr@current@bibstyle}{}{%
|
|
\Ifstr{\scr@current@bibstyle}{}{}{%
|
|
\edef\reserved@a{%
|
|
\noexpand\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}%
|
|
{\scr@current@bibstyle}%
|
|
}\reserved@a
|
|
}%
|
|
}%
|
|
\def\scr@current@bibstyle{#2}%
|
|
\KOMA@kav@xadd{.\KOMAClassFileName}{bibliography}{#2}%
|
|
\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.%
|
|
}%
|
|
}%
|
|
}
|
|
\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}%
|
|
}
|
|
\newbibstyle{oldstyle}{%
|
|
\renewcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em}%
|
|
}
|
|
\scr@bibstyle@oldstyle
|
|
\newcommand*{\bib@heading}{%
|
|
\bibliography@heading{\bibname}%
|
|
}
|
|
\newcommand*{\bibliography@heading}[1]{%
|
|
\ifbib@leveldown
|
|
\section*{#1}%
|
|
\addsecmark{#1}%
|
|
\else
|
|
\chapter*{#1}%
|
|
\@mkdouble{\MakeMarkcase{#1}}%
|
|
\fi
|
|
}%
|
|
\newif\ifbib@leveldown
|
|
\KOMA@key{bibliography}{%
|
|
\scr@ifundefinedorrelax{scr@bibstyle@#1}{%
|
|
\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},%
|
|
{leveldown}{3},%
|
|
{standardlevel}{4}%
|
|
}{#1}%
|
|
\ifcase \@tempa\relax % notoc
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{nobibliography}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliography}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliographynumbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{nobibliography}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{totoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{numbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{bibliography}{notoc}%
|
|
\renewcommand*{\bibliography@heading}[1]{%
|
|
\ifbib@leveldown
|
|
\section*{##1}%
|
|
\@mkright{\MakeMarkcase{##1}}%
|
|
\else
|
|
\chapter*{##1}%
|
|
\@mkdouble{\MakeMarkcase{##1}}%
|
|
\fi
|
|
}%
|
|
\or% totoc
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{nobibliography}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliography}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliographynumbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{bibliography}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{totoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{numbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{bibliography}{totoc}%
|
|
\renewcommand*{\bibliography@heading}[1]{%
|
|
\ifbib@leveldown
|
|
\addsec{##1}%
|
|
\else
|
|
\if@chaptertolists
|
|
\@chaptertolistsfalse\addchap{##1}\@chaptertoliststrue
|
|
\else
|
|
\addchap{##1}%
|
|
\fi
|
|
\@mkdouble{\MakeMarkcase{##1}}%
|
|
\fi
|
|
}%
|
|
\or% numbered
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{nobibliography}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliography}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{bibliographynumbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{bibliographynumbered}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{totoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{numbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{bibliography}{numbered}%
|
|
\renewcommand*{\bibliography@heading}[1]{%
|
|
\ifbib@leveldown
|
|
\section{##1}%
|
|
\else
|
|
\if@chaptertolists
|
|
\@chaptertolistsfalse\chapter{##1}\@chaptertoliststrue
|
|
\else
|
|
\chapter{##1}
|
|
\fi
|
|
\@mkdouble{\MakeMarkcase{\chaptermarkformat ##1}}%
|
|
\fi
|
|
}
|
|
\or% leveldown
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{leveldown}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{standardlevel}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{bibliography}{leveldown}%
|
|
\bib@leveldowntrue
|
|
\or% standardlevel
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{leveldown}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}{standardlevel}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{bibliography}{standardlevel}%
|
|
\bib@leveldownfalse
|
|
\fi
|
|
}{%
|
|
\FamilyKeyStateProcessed
|
|
\edef\reserved@a{%
|
|
\noexpand\KOMA@kav@remove{.\KOMAClassFileName}{bibliography}%
|
|
{\scr@current@bibstyle}%
|
|
}\reserved@a
|
|
\csname scr@bibstyle@#1\endcsname
|
|
}%
|
|
}
|
|
\KOMA@DeclareStandardOption{openbib}{bibliography=openstyle}
|
|
\KOMA@DeclareDeprecatedOption{bibtotoc}{bibliography=totoc}
|
|
\KOMA@DeclareDeprecatedOption{bibtotocnumbered}{bibliography=totocnumbered}
|
|
%%% From File: $Id: scrkernel-index.dtx 3262 2019-10-10 08:25:29Z kohm $
|
|
%%% (run: option)
|
|
\newcommand*{\idx@@heading}{%
|
|
\ifidx@leveldown
|
|
\expandafter\section
|
|
\else
|
|
\expandafter\chapter
|
|
\fi*%
|
|
}
|
|
\newif\ifidx@leveldown
|
|
\KOMA@key{index}{%
|
|
\KOMA@set@ncmdkey{index}{@tempa}{%
|
|
{notoc}{0},{nottotoc}{0},{default}{0},{plainheading}{0},%
|
|
{totoc}{1},{toc}{1},{notnumbered}{1},%
|
|
{numbered}{2},{totocnumbered}{2},{numberedtotoc}{2},{tocnumbered}{2},%
|
|
{numberedtoc}{2},%
|
|
{leveldown}{3},%
|
|
{standardlevel}{4}%
|
|
}{#1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\ifcase \@tempa\relax
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{noindex}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{index}{notoc}%
|
|
\renewcommand*{\idx@@heading}{%
|
|
\ifidx@leveldown
|
|
\expandafter\section
|
|
\else
|
|
\expandafter\chapter
|
|
\fi*%
|
|
}%
|
|
\or
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{index}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{index}{toc}%
|
|
\renewcommand*{\idx@@heading}{%
|
|
\ifidx@leveldown
|
|
\expandafter\addsec
|
|
\else
|
|
\expandafter\addchap
|
|
\fi
|
|
}%
|
|
\or
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{noindex}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{indexnumbered}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{toc}{index}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{notoc}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{numbered}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{toc}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{indexnumbered}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{index}{numbered}%
|
|
\renewcommand*{\idx@@heading}{%
|
|
\ifidx@leveldown
|
|
\expandafter\section
|
|
\else
|
|
\expandafter\chapter
|
|
\fi
|
|
}%
|
|
\or
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{leveldown}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{standardlevel}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{index}{leveldown}%
|
|
\idx@leveldowntrue
|
|
\or
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{leveldown}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{index}{standardlevel}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{index}{standardlevel}%
|
|
\idx@leveldownfalse
|
|
\fi
|
|
\fi
|
|
}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{toc}{noindex}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{index}{notoc}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{index}{standardlevel}
|
|
\KOMA@DeclareDeprecatedOption{idxtotoc}{index=totoc}
|
|
%%% From File: $Id: scrkernel-listsandtabulars.dtx 3394 2019-11-19 11:56:28Z kohm $
|
|
%%% (run: option)
|
|
%%% From File: $Id: scrkernel-sections.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: execoption)
|
|
\KOMAExecuteOptions{headings=openright}
|
|
\KOMAExecuteOptions{numbers=autoendperiod}
|
|
%%% From File: $Id: scrkernel-miscellaneous.dtx 3487 2020-04-27 07:19:23Z kohm $
|
|
%%% (run: execoption)
|
|
\KOMAExecuteOptions{%
|
|
parskip=false,%
|
|
headings=big%
|
|
}
|
|
\KOMAProcessOptions\relax
|
|
%%% From File: $Id: scrkernel-compatibility.dtx 3492 2020-06-02 09:02:18Z kohm $
|
|
%%% (run: body)
|
|
%%% From File: $Id: scrkernel-fonts.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: body)
|
|
\newcommand*\scr@setlength[4]{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{#1}{#2 \@plus#3 \@minus#4}%
|
|
\else
|
|
\ifdim #2<\ifdim #2=\z@ \z@ \else \p@\fi
|
|
\ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi
|
|
\ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
|
|
\setlength{#1}{\p@ \@plus\p@ \@minus\p@}%
|
|
\else
|
|
\setlength{#1}{\p@ \@plus\p@ \@minus#4}%
|
|
\fi
|
|
\else
|
|
\ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
|
|
\setlength{#1}{\p@ \@plus#3 \@minus\p@}%
|
|
\else
|
|
\setlength{#1}{\p@ \@plus#3 \@minus#4}%
|
|
\fi
|
|
\fi
|
|
\else
|
|
\ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi
|
|
\ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
|
|
\setlength{#1}{#2 \@plus\p@ \@minus\p@}%
|
|
\else
|
|
\setlength{#1}{#2 \@plus\p@ \@minus#4}%
|
|
\fi
|
|
\else
|
|
\ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
|
|
\setlength{#1}{#2 \@plus#3 \@minus\p@}%
|
|
\else
|
|
\setlength{#1}{#2 \@plus#3 \@minus#4}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}
|
|
\providecommand*{\simple@changefontsizes}[2][1.2\@tempdima]{%
|
|
\KOMA@kav@removekey{.%
|
|
\KOMAClassFileName
|
|
}{fontsize}%
|
|
\@defaultunits\@tempdima#2pt\relax\@nnil
|
|
\setlength{\@tempdimc}{\@tempdima}%
|
|
\addtolength{\@tempdimc}{-10\p@}%
|
|
\edef\@ptsize{\strip@pt\@tempdimc}%
|
|
\@defaultunits\@tempdimb#1pt\relax\@nnil
|
|
\setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}%
|
|
\edef\@tempb{\the\@tempdimc}%
|
|
\setlength{\@tempdimc}{\@tempdima}%
|
|
\def\@tempa##1##2##3##4##5\@nnil{\def##1{##2.##3##4}}%
|
|
\expandafter\@tempa\expandafter\@tempb\@tempb\@nnil%
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\abovedisplayskip}{%
|
|
\@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
|
|
\setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
|
|
\setlength{\belowdisplayshortskip}{%
|
|
.55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
|
|
\else
|
|
\scr@setlength{\abovedisplayskip}%
|
|
{.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
|
|
\scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
|
|
\scr@setlength{\belowdisplayshortskip}%
|
|
{.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
|
|
\fi
|
|
\setlength{\belowdisplayskip}{\abovedisplayskip}%
|
|
\edef\normalsize{%
|
|
\noexpand\@setfontsize\noexpand\normalsize
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
\abovedisplayskip \the\abovedisplayskip
|
|
\abovedisplayshortskip \the\abovedisplayshortskip
|
|
\belowdisplayskip \the\belowdisplayskip
|
|
\belowdisplayshortskip \the\belowdisplayshortskip
|
|
\let\noexpand\@listi\noexpand\@listI
|
|
}%
|
|
\setlength{\@tempdima}{0.9125\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\abovedisplayskip}{%
|
|
\@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
|
|
\setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
|
|
\setlength{\belowdisplayshortskip}{%
|
|
.55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
|
|
\else
|
|
\scr@setlength{\abovedisplayskip}%
|
|
{.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
|
|
\scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
|
|
\scr@setlength{\belowdisplayshortskip}%
|
|
{.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
|
|
\fi
|
|
\setlength{\belowdisplayskip}{\abovedisplayskip}%
|
|
\edef\small{%
|
|
\noexpand\@setfontsize\noexpand\small
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
\abovedisplayskip \the\abovedisplayskip
|
|
\abovedisplayshortskip \the\abovedisplayshortskip
|
|
\belowdisplayskip \the\belowdisplayskip
|
|
\belowdisplayshortskip \the\belowdisplayshortskip
|
|
\let\noexpand\@listi\noexpand\@listi@small
|
|
}%
|
|
\setlength{\@tempdima}{.83334\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\abovedisplayskip}{%
|
|
\@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
|
|
\setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
|
|
\setlength{\belowdisplayshortskip}{%
|
|
.55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
|
|
\else
|
|
\scr@setlength{\abovedisplayskip}%
|
|
{.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
|
|
\scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
|
|
\scr@setlength{\belowdisplayshortskip}%
|
|
{.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
|
|
\fi
|
|
\setlength{\belowdisplayskip}{\abovedisplayskip}%
|
|
\edef\footnotesize{%
|
|
\noexpand\@setfontsize\noexpand\footnotesize
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
\abovedisplayskip \the\abovedisplayskip
|
|
\abovedisplayshortskip \the\abovedisplayshortskip
|
|
\belowdisplayskip \the\belowdisplayskip
|
|
\belowdisplayshortskip \the\belowdisplayshortskip
|
|
\let\noexpand\@listi\noexpand\@listi@footnotesize
|
|
}%
|
|
\setlength{\@tempdima}{.66667\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\edef\scriptsize{%
|
|
\noexpand\@setfontsize\noexpand\scriptsize
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
}%
|
|
\setlength{\@tempdima}{.5\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\edef\tiny{%
|
|
\noexpand\@setfontsize\noexpand\tiny
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
}%
|
|
\setlength{\@tempdima}{1.2\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\edef\large{%
|
|
\noexpand\@setfontsize\noexpand\large
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
}%
|
|
\setlength{\@tempdima}{1.44\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\edef\Large{%
|
|
\noexpand\@setfontsize\noexpand\Large
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
}%
|
|
\setlength{\@tempdima}{1.728\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\edef\LARGE{%
|
|
\noexpand\@setfontsize\noexpand\LARGE
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
}%
|
|
\setlength{\@tempdima}{2.074\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\edef\huge{%
|
|
\noexpand\@setfontsize\noexpand\huge
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
}%
|
|
\setlength{\@tempdima}{2.488\@tempdimc}%
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\edef\Huge{%
|
|
\noexpand\@setfontsize\noexpand\Huge
|
|
{\the\@tempdima}{\the\@tempdimb}%
|
|
}%
|
|
\normalsize
|
|
\expandafter\ifnum\scr@v@is@ge{3.17}\@nameuse{par@updaterelative}\fi
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\footnotesep}{.7\@tempdimc}%
|
|
\setlength{\skip\footins}{.9\@tempdimc \@plus .3333\@tempdimc \@minus
|
|
.6\@tempdimc}%
|
|
\setlength{\floatsep}{\@tempdimc \@plus .1667\@tempdimc \@minus
|
|
.3333\@tempdimc}%
|
|
\setlength{\textfloatsep}{1.6667\@tempdimc \@plus .1667\@tempdimc \@minus
|
|
.3333\@tempdimc}%
|
|
\setlength{\intextsep}{\@tempb\@tempdimc \@plus .3333\@tempdimc \@minus
|
|
.3333\@tempdimc}%
|
|
\setlength{\dblfloatsep}{\@tempb\@tempdimc \@plus .1667\@tempdimc \@minus
|
|
.3333\@tempdimc}%
|
|
\setlength{\dbltextfloatsep}{\textfloatsep}%
|
|
\setlength{\@fptop}{0\p@ \@plus 1fil}%
|
|
\setlength{\@fpsep}{.8333\@tempdimc \@plus 2fil}%
|
|
\setlength{\@fpbot}{\@fptop}%
|
|
\setlength{\@dblfptop}{0\p@ \@plus 1fil}%
|
|
\setlength{\@dblfpsep}{.8333\@tempdimc \@plus 2fil}%
|
|
\setlength{\@dblfpbot}{\@fptop}%
|
|
\fi
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\topsep}{.8333\@tempdimc \@plus .3333\@tempdimc \@minus
|
|
.5\@tempdimc}%
|
|
\setlength{\parsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}%
|
|
\else
|
|
\setlength{\@tempdimb}{\f@baselineskip}%
|
|
\scr@setlength{\parsep}%
|
|
{.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}%
|
|
\scr@setlength{\topsep}%
|
|
{.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}%
|
|
\fi
|
|
\@tempswafalse
|
|
\begingroup
|
|
\def\@list@extra{\aftergroup\@tempswatrue}%
|
|
\csname @listi\endcsname
|
|
\endgroup
|
|
\edef\@listi{\leftmargin\leftmargini
|
|
\topsep \the\topsep
|
|
\parsep \the\parsep
|
|
\itemsep \parsep
|
|
\if@tempswa\noexpand\@list@extra\fi
|
|
}%
|
|
\let\@listI\@listi
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\topsep}{.75\@tempdimc \@plus .25\@tempdimc \@minus
|
|
.41667\@tempdimc}%
|
|
\setlength{\parsep}{.375\@tempdimc \@plus .16667\@tempdimc \@minus \p@}%
|
|
\else
|
|
\scr@setlength{\parsep}%
|
|
{.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
|
|
\scr@setlength{\topsep}%
|
|
{.3333\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}%
|
|
\fi
|
|
\@tempswafalse
|
|
\begingroup
|
|
\def\@list@extra{\aftergroup\@tempswatrue}%
|
|
\csname @listi\endcsname
|
|
\endgroup
|
|
\edef\@listi@small{\leftmargin\leftmargini
|
|
\topsep \the\topsep
|
|
\parsep \the\parsep
|
|
\itemsep \parsep
|
|
\if@tempswa\noexpand\@list@extra\fi
|
|
}%
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\topsep}{.5\@tempdimc \@plus .16667\@tempdimc \@minus
|
|
.16667\@tempdimc}%
|
|
\setlength{\parsep}{.25\@tempdimc \@plus .16667\@tempdimc \@minus \p@}%
|
|
\else
|
|
\scr@setlength{\parsep}%
|
|
{.125\@tempdimb}{.0625\@tempdimb}{.0625\@tempdimb}%
|
|
\scr@setlength{\topsep}%
|
|
{.25\@tempdimb}{.125\@tempdimb}{.125\@tempdimb}%
|
|
\fi
|
|
\@tempswafalse
|
|
\begingroup
|
|
\def\@list@extra{\aftergroup\@tempswatrue}%
|
|
\csname @listi\endcsname
|
|
\endgroup
|
|
\edef\@listi@footnotesize{\leftmargin\leftmargini
|
|
\topsep \the\topsep
|
|
\parsep \the\parsep
|
|
\itemsep \parsep
|
|
\if@tempswa\noexpand\@list@extra\fi
|
|
}%
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\topsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}%
|
|
\setlength{\parsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}%
|
|
\else
|
|
\scr@setlength{\parsep}%
|
|
{.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
|
|
\scr@setlength{\topsep}%
|
|
{.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}%
|
|
\fi
|
|
\@tempswafalse
|
|
\begingroup
|
|
\def\@list@extra{\aftergroup\@tempswatrue}%
|
|
\csname @listii\endcsname
|
|
\endgroup
|
|
\edef\@listii{\leftmargin\leftmarginii
|
|
\labelwidth=\dimexpr \leftmargin-\labelsep
|
|
\topsep \the\topsep
|
|
\parsep \the\parsep
|
|
\itemsep \parsep
|
|
\if@tempswa\noexpand\@list@extra\fi
|
|
}%
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\topsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}%
|
|
\else
|
|
\scr@setlength{\topsep}%
|
|
{.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
|
|
\fi
|
|
\setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}%
|
|
\@tempswafalse
|
|
\begingroup
|
|
\def\@list@extra{\aftergroup\@tempswatrue}%
|
|
\csname @listiii\endcsname
|
|
\endgroup
|
|
\edef\@listiii{\leftmargin\leftmarginiii
|
|
\labelwidth=\dimexpr \leftmargin-\labelsep
|
|
\topsep \the\topsep
|
|
\parsep \z@
|
|
\partopsep \the\partopsep
|
|
\itemsep \topsep
|
|
\if@tempswa\noexpand\@list@extra\fi
|
|
}%
|
|
\@tempswafalse
|
|
\begingroup
|
|
\def\@list@extra{\aftergroup\@tempswatrue}%
|
|
\csname @listiv\endcsname
|
|
\endgroup
|
|
\edef\@listiv{\leftmargin\leftmarginiv
|
|
\labelwidth=\dimexpr \leftmargin-\labelsep\relax
|
|
\if@tempswa\noexpand\@list@extra\fi
|
|
}%
|
|
\@tempswafalse
|
|
\begingroup
|
|
\def\@list@extra{\aftergroup\@tempswatrue}%
|
|
\csname @listv\endcsname
|
|
\endgroup
|
|
\edef\@listv{\leftmargin\leftmarginv
|
|
\labelwidth=\dimexpr \leftmargin-\labelsep\relax
|
|
\if@tempswa\noexpand\@list@extra\fi
|
|
}%
|
|
\@tempswafalse
|
|
\begingroup
|
|
\def\@list@extra{\aftergroup\@tempswatrue}%
|
|
\csname @listvi\endcsname
|
|
\endgroup
|
|
\edef\@listvi{\leftmargin\leftmarginvi
|
|
\labelwidth=\dimexpr \leftmargin-\labelsep\relax
|
|
\if@tempswa\noexpand\@list@extra\fi
|
|
}%
|
|
\@listi
|
|
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
|
|
\setlength{\@tempdimb}{\@tempb\@tempdima}%
|
|
\setlength{\@tempdima}{\dimexpr \@tempdimb-\@tempdimc}%
|
|
\setlength\intextsep{\@tempdimb \@plus.2\@tempdima \@minus.2\@tempdima}%
|
|
\setlength\dblfloatsep\intextsep
|
|
\setlength\partopsep{.2\@tempdimc \@plus.1\@tempdimc \@minus.1\@tempdimc}%
|
|
\else
|
|
\setlength{\@tempdimb}{\f@baselineskip}%
|
|
\setlength{\footnotesep}{.555\@tempdimb}%
|
|
\scr@setlength{\skip\footins}%
|
|
{.75\@tempdimb}{.3333\@tempdimb}{.1667\@tempdimb}%
|
|
\scr@setlength{\floatsep}%
|
|
{\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}%
|
|
\scr@setlength{\textfloatsep}%
|
|
{1.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}%
|
|
\setlength{\intextsep}{\floatsep}%
|
|
\setlength{\dblfloatsep}{\floatsep}%
|
|
\setlength{\dbltextfloatsep}{\textfloatsep}%
|
|
\setlength{\@fptop}{\z@ \@plus 1fil}%
|
|
\setlength{\@fpsep}{.6667\@tempdimb \@plus 2fil}%
|
|
\setlength{\@fpbot}{\@fptop}%
|
|
\setlength{\@dblfptop}{\@fptop}%
|
|
\setlength{\@dblfpsep}{\@fpsep}%
|
|
\setlength{\@dblfpbot}{\@fptop}%
|
|
\scr@setlength{\partopsep}{.2\@tempdimb}{.1\@tempdimb}{.1\@tempdimb}%
|
|
\fi
|
|
}
|
|
\scr@ifundefinedorrelax{changefontsizes}{%
|
|
\let\changefontsizes\simple@changefontsizes
|
|
}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
\string\changefontsizes\space already defined.\MessageBreak
|
|
I hope, the definition is compatible,\MessageBreak
|
|
because I do not change it%
|
|
}%
|
|
}
|
|
\expandafter\@defaultunits\expandafter\@tempdima\@ptsize pt\relax\@nnil
|
|
\edef\@tempa{\@ptsize}%
|
|
\setlength{\@tempdimb}{\@tempdima}%
|
|
\edef\@tempb{\strip@pt\@tempdimb}%
|
|
\addtolength{\@tempdimb}{-10\p@}%
|
|
\edef\@ptsize{\strip@pt\@tempdimb}%
|
|
\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}%
|
|
\KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
|
|
\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempa}%
|
|
}{%
|
|
\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
File `\@fontsizefilebase\@tempb pt.clo' used instead of\MessageBreak
|
|
file `\@fontsizefilebase\@tempa.clo' to setup font sizes}%
|
|
\KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
|
|
\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb pt}%
|
|
}{%
|
|
\InputIfFileExists{bk\@tempb.clo}{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
File `bk\@tempb.clo' used to setup font sizes}%
|
|
\KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
|
|
\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb}%
|
|
}{%
|
|
\InputIfFileExists{size\@tempb.clo}{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
File `size\@tempb.clo' used to setup font sizes}%
|
|
\KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
|
|
\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb}%
|
|
}{%
|
|
\edef\@tempa{%
|
|
\noexpand\changefontsizes{\@tempa}%
|
|
\noexpand\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempa}%
|
|
}\@tempa
|
|
}%
|
|
}%
|
|
}%
|
|
}
|
|
\newcommand*{\scr@DeclareOldFontCommand}[3]{%
|
|
\ifnum\scr@defineobsoletefonts<\z@\else
|
|
\ifnum\scr@defineobsoletefonts>\tw@
|
|
\DeclareOldFontCommand{#1}{#2}{#3}%
|
|
\else
|
|
\DeclareOldFontCommand{#1}{%
|
|
\scr@ErrorWarningInfo{#1}{#2}#2%
|
|
}{%
|
|
\scr@ErrorWarningInfo{#1}{#3}#3%
|
|
}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\DeclareRobustCommand*{\scr@ErrorWarningInfo}[2]{%
|
|
\ifnum \scr@defineobsoletefonts=\z@
|
|
\ClassError{\KOMAClassName}{undefined old font command `\string#1'}{%
|
|
You should note that since 1994 LaTeX2e provides a new font selection
|
|
scheme\MessageBreak
|
|
called NFSS2 with several new, combinable font commands.
|
|
KOMA-Script\MessageBreak
|
|
classes had defined the old font commands like `\string#1'
|
|
only for compatibility\MessageBreak
|
|
with old LaTeX 2.09 document styles of Script 2.0. Nevertheless,
|
|
these\MessageBreak
|
|
commands are deprecated and undocumented at least since 2003. Since
|
|
2013\MessageBreak
|
|
KOMA-Script classes warned about soon removement of these deprecated
|
|
commands.\MessageBreak
|
|
Now, after two decades of LaTeX2e and NFSS2, these commands will not
|
|
work any\MessageBreak
|
|
more. If loading a package results in this error message, you should
|
|
contact\MessageBreak
|
|
the author of that package and ask him to replace the deprecated font
|
|
command\MessageBreak
|
|
`\string#1', e.g., by `\detokenize{#2}`. Otherwise you should
|
|
reconfigure\MessageBreak
|
|
or replace the package. If you have used the old font command
|
|
`\string#1' yourself,\MessageBreak
|
|
you should replace it, e.g., by `\detokenize{#2}'.\MessageBreak
|
|
To make it work for now, you can use the already also deprecated class
|
|
option\MessageBreak
|
|
`enabledeprecatedfontcommands'.%
|
|
}%
|
|
\else
|
|
\ifcase \scr@defineobsoletefonts
|
|
\or
|
|
\expandafter\ClassWarning
|
|
\or
|
|
\expandafter\ClassInfo
|
|
\else
|
|
\expandafter\@gobbletwo
|
|
\fi
|
|
{\KOMAClassName}{deprecated old font command `\string#1' used.\MessageBreak
|
|
You should note, that since 1994 LaTeX2e provides a\MessageBreak
|
|
new font selection scheme called NFSS2 with several\MessageBreak
|
|
new, combinable font commands. New KOMA-Script classes\MessageBreak
|
|
defined the old font commands like `\string#1' only for\MessageBreak
|
|
compatibility with LaTeX 2.09 document styles of\MessageBreak
|
|
Script 2.0. These commands are deprecated and\MessageBreak
|
|
undocumented at least since 2003. Since 2013,\MessageBreak
|
|
KOMA-Script classes warned about soon removement of\MessageBreak
|
|
these deprecated commands. Now, after two decades of\MessageBreak
|
|
LaTeX2e, NFSS2, and KOMA-Script these commands will\MessageBreak
|
|
not work any longer. If loading a package results in\MessageBreak
|
|
this message you should contact the author of that\MessageBreak
|
|
package and ask him to replace the depracted font\MessageBreak
|
|
command `\string#1', e.g., by `\detokenize{#2}'.\MessageBreak
|
|
Otherwise you should reconfigure or replace the\MessageBreak
|
|
package. If you have used the old font command\MessageBreak
|
|
`\string #1' yourself you should replace it, e.g., by\MessageBreak
|
|
`\detokenize{#2}'%
|
|
}%
|
|
\fi
|
|
}
|
|
\scr@DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
|
|
\scr@DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
|
|
\scr@DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
|
|
\scr@DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
|
|
\scr@DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
|
|
\scr@DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
|
|
\scr@DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
|
|
\scr@DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{%
|
|
\@nomath\sfb}
|
|
\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal}
|
|
\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal}
|
|
%%% From File: $Id: scrkernel-language.dtx 3480 2020-04-13 09:39:03Z kohm $
|
|
%%% (run: body)
|
|
\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
|
|
\space\number\day, \number\year}%
|
|
%%% From File: $Id: scrkernel-typearea.dtx 3488 2020-04-27 13:04:43Z kohm $
|
|
%%% (run: body)
|
|
\let\@BCOR =\relax
|
|
\let\@@BCOR =\relax
|
|
\let\@DIV =\relax
|
|
\let\@@DIV =\relax
|
|
\let\@headlines =\relax
|
|
\let\@@headlines =\relax
|
|
\let\x@paper =\relax
|
|
\let\x@@paper =\relax
|
|
\let\scr@pti@nerr@r =\relax
|
|
\RequirePackage{typearea}[\KOMAScriptVersion]
|
|
\if@scr@emulatestandardclasses
|
|
\Ifstr{\@lastdiv}{areaset}{}{%
|
|
\ifnum\@lastdiv=\z@
|
|
\setlength{\textwidth}{\dimexpr \paperwidth-2in\relax}
|
|
\ifdim \f@size\p@<10.5\p@
|
|
\setlength{\@tempdimb}{345\p@}
|
|
\else\ifdim \f@size\p@<11.5\p@
|
|
\setlength{\@tempdimb}{360\p@}
|
|
\else
|
|
\setlength{\@tempdimb}{390\p@}
|
|
\fi
|
|
\fi
|
|
\if@twocolumn
|
|
\ifdim\@textwidth>2\@tempdimb\relax
|
|
\setlength{\textwidth}{2\@tempdimb}
|
|
\fi
|
|
\else
|
|
\ifdim\textwidth>\@tempdimb
|
|
\setlength{\textwidth}{\@tempdimb}
|
|
\fi
|
|
\fi
|
|
\@settopoint\textwidth
|
|
\setlength{\@tempdima}{\dimexpr \paperheight-3.5in\relax}
|
|
\divide\@tempdima\baselineskip
|
|
\@tempcnta=\@tempdima
|
|
\setlength{\textheight}{\@tempcnta\baselineskip}
|
|
\addtolength{\textheight}{\topskip}
|
|
\edef\reserved@a{%
|
|
\noexpand\@areasetadvancedtrue
|
|
\noexpand\areaset[current]{\noexpand\textwidth}{\noexpand\textheight}%
|
|
\if@areasetadvanced\else\noexpand\@areasetadvancedfalse\fi
|
|
}\reserved@a
|
|
\fi
|
|
}%
|
|
\fi
|
|
%%% From File: $Id: scrkernel-paragraphs.dtx 3262 2019-10-10 08:25:29Z kohm $
|
|
%%% (run: body)
|
|
\setlength{\lineskip}{\p@}
|
|
\setlength{\normallineskip}{\p@}
|
|
\setlength{\columnsep}{10\p@}
|
|
\setlength{\columnseprule}{\z@}
|
|
\newcommand*{\scr@selectfont}{}
|
|
\expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname
|
|
\BeforePackage{everysel}{%
|
|
\AtBeginDocument{%
|
|
\expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont\else
|
|
\ClassWarningNoLine{\KOMAClassName}{discard change of \string\selectfont}%
|
|
\fi
|
|
\expandafter\let\csname selectfont \endcsname\scr@selectfont
|
|
}%
|
|
}
|
|
\AfterPackage{everysel}{%
|
|
\scr@ifundefinedorrelax{@EverySelectfont@Init}{%
|
|
\expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont
|
|
\ClassWarningNoLine{\KOMAClassName}{%
|
|
\string\selectfont\space already changed}%
|
|
\else
|
|
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}%
|
|
\expandafter\let\expandafter\scr@new@selectfont
|
|
\csname selectfont \endcsname
|
|
\fi
|
|
}{%
|
|
\g@addto@macro\@EverySelectfont@Init{%
|
|
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}%
|
|
\expandafter\let\expandafter\scr@new@selectfont
|
|
\csname selectfont \endcsname
|
|
}%
|
|
}%
|
|
}
|
|
\AfterPackage{tracefnt}{%
|
|
\expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname
|
|
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}%
|
|
\expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname
|
|
}
|
|
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}
|
|
\newcommand*{\scr@new@selectfont}{}
|
|
\expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname
|
|
\newcommand*{\par@updaterelative}{%
|
|
\begingroup
|
|
\edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent
|
|
\aftergroup\parindent@update
|
|
\fi
|
|
\edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip
|
|
\aftergroup\parskip@update
|
|
\fi
|
|
\edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip
|
|
\aftergroup\parfillskip@update
|
|
\fi
|
|
\endgroup
|
|
}
|
|
\newcommand*{\parindent@update}{%
|
|
\scr@defaultunits\parindent\scr@parindent
|
|
\begingroup
|
|
\let\@tempb\endgroup
|
|
\edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent\else
|
|
\def\@tempb{\endgroup\edef\f@parindent{\the\parindent}}%
|
|
\fi
|
|
\@tempb
|
|
}
|
|
\newcommand*{\parskip@update}{%
|
|
\scr@defaultunits\parskip\scr@parskip
|
|
\begingroup
|
|
\let\@tempb\endgroup
|
|
\edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip\else
|
|
\def\@tempb{\endgroup\edef\f@parskip{\the\parskip}}%
|
|
\fi
|
|
\@tempb
|
|
}
|
|
\newcommand*{\parfillskip@update}{%
|
|
\scr@defaultunits\parfillskip\scr@parfillskip
|
|
\begingroup
|
|
\let\@tempb\endgroup
|
|
\edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip\else
|
|
\def\@tempb{\endgroup\edef\f@parfillskip{\the\parfillskip}}%
|
|
\fi
|
|
\@tempb
|
|
}
|
|
\newcommand*{\scr@defaultunits}[2]{%
|
|
\begingroup
|
|
\edef\@tempa{#2}%
|
|
\expandafter\scr@@defaultunits\expandafter#1\@tempa plusplus\@nnil
|
|
\edef\@tempa{\noexpand\endgroup\noexpand#1\the\glueexpr #1\relax}%
|
|
\@tempa
|
|
}
|
|
\newcommand*{\scr@@defaultunits}{}
|
|
\def\scr@@defaultunits#1#2plus#3plus#4\@nnil{%
|
|
\ifx\relax#3\relax
|
|
\scr@@@defaultunits#1{}#2minusminus\@nnil
|
|
\else
|
|
\scr@@@defaultunits#1{#2}#3minusminus\@nnil
|
|
\fi
|
|
}
|
|
\newcommand*{\scr@@@defaultunits}{}
|
|
\def\scr@@@defaultunits#1#2#3minus#4minus#5\@nnil{%
|
|
\ifx\relax#2\relax
|
|
\@defaultunits\@tempskipa#3pt\relax\@nnil
|
|
#1\@tempskipa
|
|
\else
|
|
\@defaultunits\@tempskipa\z@\@plus#3pt\relax\@nnil
|
|
#1\@tempskipa
|
|
\@defaultunits\@tempskipa#2pt\relax\@nnil
|
|
\advance#1\@tempskipa
|
|
\fi
|
|
\ifx\relax#4\relax\else
|
|
\@defaultunits\@tempskipa\z@\@minus #4pt\relax\@nnil
|
|
\advance#1\@tempskipa
|
|
\fi
|
|
}
|
|
\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}%
|
|
}
|
|
\AfterPackage{amsthm}{%
|
|
\RequirePackage{xpatch}%
|
|
\xpatchcmd{\deferred@thm@head}{\addvspace{-\parskip}}{}{%
|
|
\ClassInfoNoLine{\KOMAClassName}{%
|
|
amsthm's \string\deferred@thm@head\space patched}%
|
|
}{%
|
|
\ClassWarningNoLine{\KOMAClassName}{%
|
|
cannot patch amsthm's \string\deferred@thm@head.\MessageBreak
|
|
This could result in wrong spacing before theorem\MessageBreak
|
|
environments defined by package `amsthm'%
|
|
}%
|
|
}%
|
|
}
|
|
\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: $Id: scrkernel-title.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: body)
|
|
\newcommand*{\@extratitle}{}%
|
|
\newcommand{\extratitle}[1]{\gdef\@extratitle{%
|
|
#1%
|
|
}}%
|
|
\newcommand*{\@frontispiece}{}%
|
|
\newcommand{\frontispiece}[1]{\gdef\@frontispiece{%
|
|
#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}{%
|
|
\@thanks\global\let\@thanks\@empty
|
|
\clearpage
|
|
\csname titlepage@restore\endcsname
|
|
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
|
|
\thispagestyle{empty}%
|
|
\let\footnote\thanks
|
|
\setcounter{footnote}{0}%
|
|
}
|
|
\newcommand*{\next@tdpage}{%
|
|
\next@tpage\if@twoside \ifodd\value{page}\else\null\next@tpage\fi\fi
|
|
}
|
|
\newcommand*\maketitle[1][1]{%
|
|
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
|
|
\else
|
|
\def\and{%
|
|
\end{tabular}%
|
|
\hskip 1em \@plus.17fil%
|
|
\begin{tabular}[t]{c}%
|
|
}%
|
|
\fi
|
|
\if@titlepage
|
|
\begin{titlepage}
|
|
\setcounter{page}{%
|
|
#1%
|
|
}%
|
|
\if@titlepageiscoverpage
|
|
\edef\titlepage@restore{%
|
|
\noexpand\endgroup
|
|
\noexpand\global\noexpand\@colht\the\@colht
|
|
\noexpand\global\noexpand\@colroom\the\@colroom
|
|
\noexpand\global\vsize\the\vsize
|
|
\noexpand\global\noexpand\@titlepageiscoverpagefalse
|
|
\noexpand\let\noexpand\titlepage@restore\noexpand\relax
|
|
}%
|
|
\begingroup
|
|
\topmargin=\dimexpr \coverpagetopmargin-1in\relax
|
|
\oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax
|
|
\evensidemargin=\dimexpr \coverpageleftmargin-1in\relax
|
|
\textwidth=\dimexpr
|
|
\paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax
|
|
\textheight=\dimexpr
|
|
\paperheight-\coverpagetopmargin-\coverpagebottommargin\relax
|
|
\headheight=0pt
|
|
\headsep=0pt
|
|
\footskip=\baselineskip
|
|
\@colht=\textheight
|
|
\@colroom=\textheight
|
|
\vsize=\textheight
|
|
\columnwidth=\textwidth
|
|
\hsize=\columnwidth
|
|
\linewidth=\hsize
|
|
\else
|
|
\let\titlepage@restore\relax
|
|
\fi
|
|
\let\footnotesize\small
|
|
\let\footnoterule\relax
|
|
\let\footnote\thanks
|
|
\renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
|
|
\let\@oldmakefnmark\@makefnmark
|
|
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
|
|
\ifx\@extratitle\@empty
|
|
\ifx\@frontispiece\@empty
|
|
\else
|
|
\if@twoside\mbox{}\next@tpage\fi
|
|
\noindent\@frontispiece\next@tdpage
|
|
\fi
|
|
\else
|
|
\noindent\@extratitle
|
|
\ifx\@frontispiece\@empty
|
|
\else
|
|
\next@tpage
|
|
\noindent\@frontispiece
|
|
\fi
|
|
\next@tdpage
|
|
\fi
|
|
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
|
|
\ifx\@titlehead\@empty \else
|
|
\begin{minipage}[t]{\textwidth}%
|
|
\usekomafont{titlehead}{\@titlehead\par}%
|
|
\end{minipage}\par
|
|
\fi
|
|
\null\vfill
|
|
\begin{center}
|
|
\ifx\@subject\@empty \else
|
|
{\usekomafont{subject}{\@subject\par}}%
|
|
\vskip 3em
|
|
\fi
|
|
{\usekomafont{title}{\huge \@title\par}}%
|
|
\vskip 1em
|
|
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
|
|
\vskip 2em
|
|
{%
|
|
\usekomafont{author}{%
|
|
\lineskip 0.75em
|
|
\begin{tabular}[t]{c}
|
|
\@author
|
|
\end{tabular}\par
|
|
}%
|
|
}%
|
|
\vskip 1.5em
|
|
{\usekomafont{date}{\@date \par}}%
|
|
\vskip \z@ \@plus3fill
|
|
{\usekomafont{publishers}{\@publishers \par}}%
|
|
\vskip 3em
|
|
\end{center}\par
|
|
\@thanks\global\let\@thanks\@empty
|
|
\vfill\null
|
|
\if@twoside
|
|
\@tempswatrue
|
|
\expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax
|
|
\else
|
|
\ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty
|
|
\@tempswafalse
|
|
\fi\fi
|
|
\fi
|
|
\if@tempswa
|
|
\next@tpage
|
|
\begin{minipage}[t]{\textwidth}
|
|
\@uppertitleback
|
|
\end{minipage}\par
|
|
\vfill
|
|
\begin{minipage}[b]{\textwidth}
|
|
\@lowertitleback
|
|
\end{minipage}\par
|
|
\@thanks\global\let\@thanks\@empty
|
|
\fi
|
|
\else
|
|
\ifx\@uppertitleback\@empty\else
|
|
\ClassWarning{\KOMAClassName}{%
|
|
non empty \string\uppertitleback\space ignored
|
|
by \string\maketitle\MessageBreak
|
|
in `twoside=false' mode%
|
|
}%
|
|
\fi
|
|
\ifx\@lowertitleback\@empty\else
|
|
\ClassWarning{\KOMAClassName}{%
|
|
non empty \string\lowertitleback\space ignored
|
|
by \string\maketitle\MessageBreak
|
|
in `twoside=false' mode%
|
|
}%
|
|
\fi
|
|
\fi
|
|
\ifx\@dedication\@empty
|
|
\else
|
|
\next@tdpage\null\vfill
|
|
{\centering\usekomafont{dedication}{\@dedication \par}}%
|
|
\vskip \z@ \@plus3fill
|
|
\@thanks\global\let\@thanks\@empty
|
|
\cleardoubleemptypage
|
|
\fi
|
|
\ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
|
|
\end{titlepage}
|
|
\else
|
|
\par
|
|
\@tempcnta=%
|
|
#1%
|
|
\relax\ifnum\@tempcnta=1\else
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Optional argument of \string\maketitle\space ignored\MessageBreak
|
|
in `titlepage=false' mode%
|
|
}%
|
|
\fi
|
|
\ifx\@uppertitleback\@empty\else
|
|
\ClassWarning{\KOMAClassName}{%
|
|
non empty \string\uppertitleback\space ignored
|
|
by \string\maketitle\MessageBreak
|
|
in `titlepage=false' mode%
|
|
}%
|
|
\fi
|
|
\ifx\@lowertitleback\@empty\else
|
|
\ClassWarning{\KOMAClassName}{%
|
|
non empty \string\lowertitleback\space ignored
|
|
by \string\maketitle\MessageBreak
|
|
in `titlepage=false' mode%
|
|
}%
|
|
\fi
|
|
\begingroup
|
|
\let\titlepage@restore\relax
|
|
\renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
|
|
\let\@oldmakefnmark\@makefnmark
|
|
\renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
|
|
\next@tdpage
|
|
\if@twocolumn
|
|
\ifnum \col@number=\@ne
|
|
\ifx\@extratitle\@empty
|
|
\ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi
|
|
\else
|
|
\@makeextratitle
|
|
\fi
|
|
\ifx\@frontispiece\@empty
|
|
\ifx\@extratitle\@empty\else\next@tdpage\fi
|
|
\else
|
|
\next@tpage
|
|
\@makefrontispiece
|
|
\next@tdpage
|
|
\fi
|
|
\@maketitle
|
|
\else
|
|
\ifx\@extratitle\@empty
|
|
\ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi
|
|
\else
|
|
\twocolumn[\@makeextratitle]%
|
|
\fi
|
|
\ifx\@frontispiece\@empty
|
|
\ifx\@extratitle\@empty\else\next@tdpage\fi
|
|
\else
|
|
\next@tpage
|
|
\twocolumn[\@makefrontispiece]%
|
|
\next@tdpage
|
|
\fi
|
|
\twocolumn[\@maketitle]%
|
|
\fi
|
|
\else
|
|
\ifx\@extratitle\@empty
|
|
\ifx\@frontispiece\@empty\else \mbox{}\fi
|
|
\else
|
|
\@makeextratitle
|
|
\fi
|
|
\ifx\@frontispiece\@empty
|
|
\ifx\@extratitle\@empty\else\next@tdpage\fi
|
|
\else
|
|
\next@tpage
|
|
\@makefrontispiece
|
|
\next@tdpage
|
|
\fi
|
|
\@maketitle
|
|
\fi
|
|
\ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi
|
|
\@thanks\global\let\@thanks\@empty
|
|
\endgroup
|
|
\fi
|
|
\setcounter{footnote}{0}%
|
|
\expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax
|
|
\let\thanks\relax
|
|
\let\maketitle\relax
|
|
\let\@maketitle\relax
|
|
\global\let\@thanks\@empty
|
|
\global\let\@author\@empty
|
|
\global\let\@date\@empty
|
|
\global\let\@title\@empty
|
|
\global\let\@subtitle\@empty
|
|
\global\let\@extratitle\@empty
|
|
\global\let\@frontispiece\@empty
|
|
\global\let\@titlehead\@empty
|
|
\global\let\@subject\@empty
|
|
\global\let\@publishers\@empty
|
|
\global\let\@uppertitleback\@empty
|
|
\global\let\@lowertitleback\@empty
|
|
\global\let\@dedication\@empty
|
|
\global\let\author\relax
|
|
\global\let\title\relax
|
|
\global\let\extratitle\relax
|
|
\global\let\titlehead\relax
|
|
\global\let\subject\relax
|
|
\global\let\publishers\relax
|
|
\global\let\uppertitleback\relax
|
|
\global\let\lowertitleback\relax
|
|
\global\let\dedication\relax
|
|
\global\let\date\relax
|
|
\fi
|
|
\global\let\and\relax
|
|
}%
|
|
\newcommand*{\@makeextratitle}{%
|
|
\ifx\@extratitle\@empty \else
|
|
\noindent\@extratitle\par
|
|
\fi
|
|
}
|
|
\newcommand*{\@makefrontispiece}{%
|
|
\ifx\@frontispiece\@empty \else
|
|
\noindent\@frontispiece\par
|
|
\fi
|
|
}
|
|
\newcommand*{\@maketitle}{%
|
|
\global\@topnum=\z@
|
|
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
|
|
\ifx\@titlehead\@empty \else
|
|
\begin{minipage}[t]{\textwidth}
|
|
\usekomafont{titlehead}{\@titlehead\par}%
|
|
\end{minipage}\par
|
|
\fi
|
|
\null
|
|
\vskip 2em%
|
|
\begin{center}%
|
|
\ifx\@subject\@empty \else
|
|
{\usekomafont{subject}{\@subject \par}}%
|
|
\vskip 1.5em
|
|
\fi
|
|
{\usekomafont{title}{\huge \@title \par}}%
|
|
\vskip .5em
|
|
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
|
|
\vskip 1em
|
|
{%
|
|
\usekomafont{author}{%
|
|
\lineskip .5em%
|
|
\begin{tabular}[t]{c}
|
|
\@author
|
|
\end{tabular}\par
|
|
}%
|
|
}%
|
|
\vskip 1em%
|
|
{\usekomafont{date}{\@date \par}}%
|
|
\vskip \z@ \@plus 1em
|
|
{\usekomafont{publishers}{\@publishers \par}}%
|
|
\ifx\@dedication\@empty \else
|
|
\vskip 2em
|
|
{\usekomafont{dedication}{\@dedication \par}}%
|
|
\fi
|
|
\end{center}%
|
|
\par
|
|
\vskip 2em
|
|
}%
|
|
\newcommand*{\coverpagetopmargin}{%
|
|
\dimexpr \topmargin+1in\relax
|
|
}
|
|
\newcommand*{\coverpagebottommargin}{%
|
|
2\dimexpr\coverpagetopmargin\relax
|
|
}
|
|
\newcommand*{\coverpageleftmargin}{%
|
|
\dimexpr \evensidemargin+1in\relax
|
|
}
|
|
\newcommand*{\coverpagerightmargin}{\coverpageleftmargin}
|
|
\newenvironment{titlepage}{%
|
|
\cleardoublepage
|
|
\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}%
|
|
\newkomafont{titlehead}{}%
|
|
\newkomafont{author}{\Large}
|
|
\newkomafont{date}{\Large}
|
|
\newkomafont{publishers}{\Large}
|
|
\newkomafont{dedication}{\Large}
|
|
\newcommand*{\scr@fnt@title}{\titlefont}%
|
|
\newcommand*{\scr@fnt@subject}{\subject@font}%
|
|
%%% From File: $Id: scrkernel-tocstyle.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: body)
|
|
\let\numberline\scr@numberline
|
|
%%% From File: $Id: scrkernel-tocstyle.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: class,style,part)
|
|
\CloneTOCEntryStyle{tocline}{part}
|
|
\TOCEntryStyleStartInitCode{part}{%
|
|
\expandafter\providecommand%
|
|
\csname scr@tso@#1@linefill\endcsname{\hfill}%
|
|
\expandafter\providecommand%
|
|
\csname scr@tso@#1@entryformat\endcsname[1]{\usekomafont{partentry}{##1}}%
|
|
\expandafter\providecommand%
|
|
\csname scr@tso@#1@pagenumberformat\endcsname[1]{%
|
|
\usekomafont{partentry}{\usekomafont{partentrypagenumber}{##1}}}%
|
|
\expandafter\providecommand\expandafter*%
|
|
\csname scr@tso@#1@beforeskip\endcsname{2.25em \@plus\p@}%
|
|
}
|
|
%%% From File: $Id: scrkernel-tocstyle.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: class,style,chapter)
|
|
\CloneTOCEntryStyle{tocline}{chapter}
|
|
\TOCEntryStyleStartInitCode{chapter}{%
|
|
\expandafter\providecommand%
|
|
\csname scr@tso@#1@linefill\endcsname{%
|
|
\if@chapterentrywithdots
|
|
{\usekomafont{chapterentrydots}{\TOCLineLeaderFill}}\relax
|
|
\else
|
|
\hfill
|
|
\fi
|
|
}%
|
|
\expandafter\providecommand%
|
|
\csname scr@tso@#1@entryformat\endcsname{\usekomafont{chapterentry}}%
|
|
\expandafter\providecommand%
|
|
\csname scr@tso@#1@pagenumberformat\endcsname[1]{%
|
|
\usekomafont{chapterentry}{\usekomafont{chapterentrypagenumber}{##1}}}%
|
|
\expandafter\providecommand\expandafter*%
|
|
\csname scr@tso@#1@beforeskip\endcsname{1.0em \@plus\p@}%
|
|
}
|
|
%%% From File: $Id: scrkernel-tocstyle.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: class,style,section)
|
|
\CloneTOCEntryStyle{tocline}{section}
|
|
\TOCEntryStyleStartInitCode{section}{%
|
|
\expandafter\providecommand%
|
|
\csname scr@tso@#1@linefill\endcsname{\TOCLineLeaderFill\relax}%
|
|
}
|
|
%%% From File: $Id: scrkernel-tocstyle.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: class,style,default)
|
|
\CloneTOCEntryStyle{section}{default}
|
|
%%% From File: $Id: scrkernel-sections.dtx 3507 2020-06-11 14:57:03Z kohm $
|
|
%%% (run: body)
|
|
\setcounter{secnumdepth}{2}
|
|
\providecommand*{\ifnumbered}{%
|
|
\ClassWarning{\KOMAClassName}{Usage of deprecated command
|
|
`\string\ifnumbered'.\MessageBreak
|
|
The command has been renamed because of a\MessageBreak
|
|
recommendation of The LaTeX Project Team.\MessageBreak
|
|
Please replace `\string\ifnumbered' by `\string\Ifnumbered'%
|
|
}%
|
|
\Ifnumbered
|
|
}
|
|
\newcommand*{\Ifnumbered}[1]{%
|
|
\if@currentusenumber
|
|
\scr@ifundefinedorrelax{#1numdepth}{%
|
|
\expandafter\@secondoftwo
|
|
}{%
|
|
\expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
|
|
\expandafter\expandafter\expandafter\@secondoftwo
|
|
\else
|
|
\expandafter\expandafter\expandafter\@firstoftwo
|
|
\fi
|
|
}%
|
|
\else
|
|
\expandafter\@secondoftwo
|
|
\fi
|
|
}
|
|
\providecommand*{\ifunnumbered}{%
|
|
\ClassWarning{\KOMAClassName}{Usage of deprecated command
|
|
`\string\ifunnumbered'.\MessageBreak
|
|
The command has been renamed because of a\MessageBreak
|
|
recommendation of The LaTeX Project Team.\MessageBreak
|
|
Please replace `\string\ifunnumbered' by `\string\Ifunnumbered'%
|
|
}%
|
|
\Ifunnumbered
|
|
}
|
|
\newcommand*{\Ifunnumbered}[1]{%
|
|
\Ifnumbered{#1}{\@secondoftwo}{\@firstoftwo}%
|
|
}
|
|
\BeforeClosingMainAux{%
|
|
\if@autodot\if@filesw\immediate\write\@mainaux{%
|
|
\string\global\string\csname\space @altsecnumformattrue\string\endcsname}%
|
|
\fi\fi}
|
|
\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 \@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
|
|
}
|
|
\newcommand*\autodot{\if@altsecnumformat.\fi}
|
|
\newcommand*{\scr@saved@startsection}[6]{%
|
|
\if@noskipsec \leavevmode \fi
|
|
\par
|
|
\@tempskipa #4\relax
|
|
\@afterindenttrue
|
|
\ifdim \@tempskipa <\z@
|
|
\@tempskipa -\@tempskipa \@afterindentfalse
|
|
\fi
|
|
\if@nobreak
|
|
\everypar{}%
|
|
\else
|
|
\addpenalty\@secpenalty\addvspace\@tempskipa
|
|
\fi
|
|
\kernel@ifstar
|
|
{\@ssect{#3}{#4}{#5}{#6}}%
|
|
{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
|
|
}
|
|
\def\reserved@a#1#2#3#4#5#6{%
|
|
\if@noskipsec \leavevmode \fi
|
|
\par
|
|
\@tempskipa #4\relax
|
|
\@afterindenttrue
|
|
\ifdim \@tempskipa <\z@
|
|
\@tempskipa -\@tempskipa \@afterindentfalse
|
|
\fi
|
|
\if@nobreak
|
|
\everypar{}%
|
|
\else
|
|
\addpenalty\@secpenalty\addvspace\@tempskipa
|
|
\fi
|
|
\@ifstar
|
|
{\@ssect{#3}{#4}{#5}{#6}}%
|
|
{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
|
|
}
|
|
\ifcase \ifx\@startsection\scr@saved@startsection 0
|
|
\else
|
|
\ifx\@startsection\reserved@a 0
|
|
\else 1
|
|
\fi
|
|
\fi
|
|
\newcommand*{\scr@startsection}[6]{%
|
|
\ExecuteDoHook{heading/preinit/#1}%
|
|
\if@noskipsec \leavevmode \fi
|
|
\par
|
|
\@tempskipa \glueexpr #4\relax
|
|
\@ifundefined{scr@#1@afterindent}{%
|
|
\def\startsection@afterindent##1##2##3{##3}%
|
|
}{%
|
|
\expandafter\let\expandafter\startsection@afterindent
|
|
\csname scr@#1@afterindent\endcsname
|
|
}%
|
|
\startsection@afterindent{\@afterindenttrue}{\@afterindentfalse}{%
|
|
\@afterindenttrue
|
|
\ifdim \@tempskipa <\z@
|
|
\@tempskipa -\@tempskipa \@afterindentfalse
|
|
\fi
|
|
}%
|
|
\def\startsection@sectionname{#1}%
|
|
\def\startsection@secnumdepth{\numexpr #2\relax}%
|
|
\def\startsection@indent{\glueexpr #3\relax}%
|
|
\let\startsection@beforeskip\@tempskipa
|
|
\@ifundefined{scr@#1@runin}{%
|
|
\def\scr@sect@runin##1##2##3{##3}%
|
|
}{%
|
|
\expandafter\let\expandafter\scr@sect@runin
|
|
\csname scr@#1@runin\endcsname
|
|
}%
|
|
\scr@sect@runin{%
|
|
\def\startsection@afterskip{\glueexpr #3\relax}%
|
|
\expandafter\let\csname if@startsection@runin\expandafter\endcsname
|
|
\csname iftrue\endcsname
|
|
}{%
|
|
\def\startsection@afterskip{\glueexpr #3\relax}%
|
|
\expandafter\let\csname if@startsection@runin\expandafter\endcsname
|
|
\csname iffalse\endcsname
|
|
}{%
|
|
\ifdim \glueexpr #5\relax <\z@
|
|
\def\startsection@afterskip{\glueexpr (#3)*\m@ne\relax}%
|
|
\expandafter\let\csname if@startsection@runin\expandafter\endcsname
|
|
\csname iftrue\endcsname
|
|
\else
|
|
\def\startsection@afterskip{\glueexpr #3\relax}%
|
|
\expandafter\let\csname if@startsection@runin\expandafter\endcsname
|
|
\csname iffalse\endcsname
|
|
\fi
|
|
}%
|
|
\ExecuteDoHook{heading/postinit/#1}%
|
|
\if@nobreak
|
|
\everypar{}%
|
|
\else
|
|
\addpenalty\@secpenalty\addvspace\@tempskipa
|
|
\fi
|
|
\kernel@ifstar {%
|
|
\ExecuteDoHook{heading/branch/star/#1}%
|
|
\def\scr@s@ct@@nn@m@{#1}%
|
|
\@ssect{\glueexpr #3\relax}{\glueexpr #4\relax}{\glueexpr #5\relax}{#6}%
|
|
}{%
|
|
\ExecuteDoHook{heading/branch/nostar/#1}%
|
|
\scr@section@dblarg{%
|
|
\@sect{#1}{\numexpr #2\relax}{\glueexpr #3\relax}{\glueexpr #4\relax}%
|
|
{\glueexpr #5\relax}{#6}%
|
|
}%
|
|
}%
|
|
}
|
|
\else
|
|
\ClassWarningNoLine{\KOMAClassName}{`\string\@startsection' has been
|
|
changed.\MessageBreak
|
|
\KOMAClassName\space needs it's own definition of
|
|
`\string\@startsection'\MessageBreak
|
|
to provide extended features for the optional argument\MessageBreak
|
|
of `\string\section' etc.\MessageBreak
|
|
Generally it defines `\string\@startsection' completely new\MessageBreak
|
|
to achieve this. Because of the unexpected definition\MessageBreak
|
|
an alternative approach will be used.\MessageBreak
|
|
If this fails and if there isn't a new release of\MessageBreak
|
|
KOMA-Script that fixes the problem, please\MessageBreak
|
|
send a report to the KOMA-Script author.\MessageBreak
|
|
Note, that this alternative approach does not\MessageBreak
|
|
execute the elements of do-hooks:\MessageBreak
|
|
\space\space- `heading/postinit',\MessageBreak
|
|
\space\space- `heading/branch/star',\MessageBreak
|
|
\space\space- `heading/branch/nostar',\MessageBreak
|
|
and does always use `runin=bysign' and\MessageBreak
|
|
`afterindent=bysign'%
|
|
}%
|
|
\let\scr@saved@startsection\@startsection
|
|
\newcommand*{\scr@startsection}[6]{%
|
|
\ExecuteDoHook{heading/preinit/#1}%
|
|
\kernel@ifstar {%
|
|
\scr@saved@startsection{#1}{\numexpr #2\relax}{\glueexpr #3\relax}%
|
|
{\glueexpr #4\relax}{\glueexpr #5\relax}{#6}*%
|
|
}{%
|
|
\scr@section@dblarg{%
|
|
\scr@saved@startsection{#1}{\numexpr #2\relax}{\glueexpr #3\relax}%
|
|
{\glueexpr #4\relax}{\glueexpr #5\relax}{#6}}%
|
|
}%
|
|
}
|
|
\fi
|
|
\newcommand*{\scr@sect@runin}[3]{#3}
|
|
\newcommand*{\scr@startsection@ulm@error}[1]{%
|
|
\ClassError{\KOMAClassName}{%
|
|
\string#1 undefined outside of \string\scr@startsection
|
|
}{%
|
|
A KOMA-Script macro for package authors have been used outside
|
|
the\MessageBreak
|
|
specified definition scope.\MessageBreak
|
|
See `scrkernel-sections.dtx' for more information.%
|
|
}%
|
|
}
|
|
\newcommand*\startsection@sectionname{%
|
|
\scr@startsection@ulm@error\startsection@sectionname}
|
|
\newcommand*\startsection@secnumdepth{%
|
|
\scr@startsection@ulm@error\startsection@secnumdepth}
|
|
\newcommand*\startsection@indent{%
|
|
\scr@startsection@ulm@error\startsection@indent}
|
|
\newcommand*\startsection@beforeskip{%
|
|
\scr@startsection@ulm@error\startsection@beforeskip}
|
|
\newcommand*\startsection@afterskip{%
|
|
\scr@startsection@ulm@error\startsection@afterskip}
|
|
\newcommand*{\if@startsection@runin}{%
|
|
\scr@startsection@ulm@error\if@startsection@runin}
|
|
\newif\if@startsection@runin
|
|
\newcommand*\startsection@afterindent{%
|
|
\scr@startsection@ulm@error\startsection@afterindent}
|
|
\newcommand*{\At@startsection}[1]{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
Usage of deprecated command `\string\At@startsection'
|
|
mapped to\MessageBreak
|
|
`\string\AddtoDoHook{heading/postinit}
|
|
{...\string\@gobble}'%
|
|
}%
|
|
\AddtoDoHook{heading/postinit}{\scr@doonlyifstyleofargis{#1}{section}}%
|
|
}
|
|
\newcommand*{\scr@doonlyifstyleofargis}[3]{%
|
|
\IfSectionCommandStyleIs{#3}{#2}{#1}{}%
|
|
}
|
|
\newcommand*{\Before@ssect}[1]{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
Usage of deprecated command `\string\Before@ssect'
|
|
mapped to\MessageBreak
|
|
`\string\AddtoDoHook{heading/branch/star}%
|
|
{...\string\@gobble}'%
|
|
}%
|
|
\AddtoDoHook{heading/branch/star}{\scr@onlyifstyleofargis{#1}{section}}%
|
|
}
|
|
\newcommand*{\Before@sect}[1]{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
Usage of deprecated command `\string\Before@sect'
|
|
mapped to\MessageBreak
|
|
`\string\AddtoDoHook{heading/branch/nostar}%
|
|
{...\string\@gobble}'%
|
|
}%
|
|
\AddtoDoHook{heading/branch/nostar}{\scr@onlyifstyleofargis{#1}{section}}%
|
|
}
|
|
\newcommand{\scr@section@dblarg}[1]{%
|
|
\kernel@ifnextchar[%]
|
|
{#1}%
|
|
{\scr@section@xdblarg{#1}}%
|
|
}
|
|
\newcommand{\scr@section@xdblarg}[2]{%
|
|
\begingroup
|
|
\edef\reserved@a{%
|
|
\unexpanded{\endgroup\let\scr@osectarg\z@#1[{#2}]{#2}\def\scr@osectarg}%
|
|
{\scr@osectarg}}%
|
|
\reserved@a
|
|
}
|
|
\renewcommand*{\@startsection}{%
|
|
\ifnum \scr@osectarg=\z@
|
|
\expandafter\scr@saved@startsection
|
|
\else
|
|
\expandafter\scr@startsection
|
|
\fi
|
|
}
|
|
\newcommand*{\UseNumberUsageError}[2]{%
|
|
\ClassError{\KOMAClassName}{%
|
|
\string\IfUseNumber\space not allowed%
|
|
}{%
|
|
You cannot use \string\IfUseNumber\space outside a heading.\MessageBreak
|
|
If you'd continue, I'll ignore both arguments, because I do not
|
|
know\MessageBreak
|
|
whether to use the first or the second argument.%
|
|
}%
|
|
}
|
|
\newcommand*{\IfUseNumber}[2]{}%
|
|
\let\IfUseNumber\UseNumberUsageError
|
|
\newcommand*{\SecDef}[2]{\kernel@ifstar{#2}{\scr@section@dblarg{#1}}}
|
|
\CheckCommand*{\secdef}[2]{\@ifstar{#2}{\@dblarg{#1}}}
|
|
\let\secdef\SecDef
|
|
\def\scr@latex@sect#1#2#3#4#5#6[#7]#8{%
|
|
\ifnum #2>\c@secnumdepth
|
|
\let\@svsec\@empty
|
|
\else
|
|
\refstepcounter{#1}%
|
|
\protected@edef\@svsec{\@seccntformat{#1}\relax}%
|
|
\fi
|
|
\@tempskipa #5\relax
|
|
\ifdim \@tempskipa>\z@
|
|
\begingroup
|
|
#6{%
|
|
\@hangfrom{\hskip #3\relax\@svsec}%
|
|
\interlinepenalty \@M #8\@@par}%
|
|
\endgroup
|
|
\csname #1mark\endcsname{#7}%
|
|
\addcontentsline{toc}{#1}{%
|
|
\ifnum #2>\c@secnumdepth \else
|
|
\protect\numberline{\csname the#1\endcsname}%
|
|
\fi
|
|
#7}%
|
|
\else
|
|
\def\@svsechd{%
|
|
#6{\hskip #3\relax
|
|
\@svsec #8}%
|
|
\csname #1mark\endcsname{#7}%
|
|
\addcontentsline{toc}{#1}{%
|
|
\ifnum #2>\c@secnumdepth \else
|
|
\protect\numberline{\csname the#1\endcsname}%
|
|
\fi
|
|
#7}}%
|
|
\fi
|
|
\@xsect{#5}}
|
|
\ifx\@sect\scr@latex@sect\else
|
|
\let\scr@latex@sect\@sect
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Unexpected definition of \string\@sect!\MessageBreak
|
|
Please send information about this to\MessageBreak
|
|
the KOMA-Script maintainer!\MessageBreak
|
|
Maybe LaTeX will be broken by the redefinition\MessageBreak
|
|
of \string\@sect}%
|
|
\fi
|
|
\def\@sect#1#2#3#4#5#6[#7]#8{%
|
|
\ifnum \scr@osectarg=\z@
|
|
\@scr@tempswafalse
|
|
\else
|
|
\scr@istest#7=\@nil
|
|
\fi
|
|
\@currentusenumbertrue
|
|
\if@scr@tempswa
|
|
\setkeys{KOMAarg.section}{tocentry={#8},head={#8},reference={#8},#7}%
|
|
\else
|
|
\ifcase \scr@osectarg\relax
|
|
\setkeys{KOMAarg.section}{tocentry={#7},head={#7},reference={#7}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#8},head={#7},reference={#8}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#7},head={#8},reference={#7}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#7},head={#7},reference={#7}}%
|
|
\fi
|
|
\fi
|
|
\scr@ifundefinedorrelax{scr@mt@saved@sect}{}{%
|
|
\expandafter\ifx\csname #1\endcsname\section
|
|
\addcontentsline{\ext@figure}{xsect}{\@currenttocentry}%
|
|
\addcontentsline{\ext@table}{xsect}{\@currenttocentry}%
|
|
\fi
|
|
\expandafter\ifx\csname #1\endcsname\starsection\relax
|
|
\addcontentsline{\ext@figure}{xsect}{\@currenttocentry}%
|
|
\addcontentsline{\ext@table}{xsect}{\@currenttocentry}%
|
|
\fi
|
|
}%
|
|
\let\IfUsePrefixLine\@secondoftwo
|
|
\ifcase
|
|
\if@currentusenumber
|
|
\ifnum \numexpr #2\relax>\c@secnumdepth \z@\else \@ne\fi
|
|
\else
|
|
\z@
|
|
\fi
|
|
\let\@svsec\@empty
|
|
\expandafter\ifnum\scr@v@is@lt{3.31}\relax\else
|
|
\begingroup
|
|
\let\@elt\@stpelt
|
|
\csname cl@#1\endcsname
|
|
\endgroup
|
|
\fi
|
|
\hy@insteadofrefstepcounter{#1}%
|
|
\else
|
|
\refstepcounter{#1}%
|
|
\expandafter\@maybeautodot\csname the#1\endcsname
|
|
\protected@edef\@svsec{\@seccntformat{#1}\relax}%
|
|
\fi
|
|
\ifdim
|
|
\scr@sect@runin{\z@}{\p@}{\glueexpr #5\relax}>\z@
|
|
\begingroup
|
|
\ifx\@svsec\@empty
|
|
\let\IfUseNumber\@secondoftwo
|
|
\else
|
|
\let\IfUseNumber\@firstoftwo
|
|
\fi
|
|
\ExecuteDoHook{heading/begingroup/#1}%
|
|
#6{\nobreak\interlinepenalty \@M
|
|
\sectionlinesformat{#1}{\glueexpr #3\relax}\@svsec{#8}\@@par}%
|
|
\ExecuteDoHook{heading/endgroup/#1}%
|
|
\endgroup
|
|
\expandafter\csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
|
|
\ifx\@currenttocentry\@empty\else
|
|
\scr@ifundefinedorrelax{add#1tocentry}{%
|
|
\expandafter\gdef\csname add#1tocentry\endcsname##1##2{%
|
|
\addtocentrydefault{#1}{##1}{##2}%
|
|
}%
|
|
}{}%
|
|
\ifcase
|
|
\if@currentusenumber
|
|
\ifnum \numexpr #2\relax>\c@secnumdepth \z@\else \@ne\fi
|
|
\else
|
|
\z@
|
|
\fi
|
|
\csname add#1tocentry\endcsname{}{\@currenttocentry}%
|
|
\else
|
|
\@ifundefined{#1tocformat}{%
|
|
\expandafter\gdef\csname #1tocformat\endcsname
|
|
{\csname the#1\endcsname}%
|
|
}{}%
|
|
\csname add#1tocentry\endcsname{\csname #1tocformat\endcsname}{%
|
|
\@currenttocentry}%
|
|
\fi
|
|
\fi
|
|
\else
|
|
\def\@svsechd{%
|
|
\ifx\@svsec\@empty
|
|
\let\IfUseNumber\@secondoftwo
|
|
\else
|
|
\let\IfUseNumber\@firstoftwo
|
|
\fi
|
|
\ExecuteDoHook{heading/begingroup/#1}%
|
|
#6{\nobreak\sectioncatchphraseformat{#1}{\glueexpr #3\relax}\@svsec{#8}}%
|
|
\expandafter\csname #1mark\expandafter\endcsname
|
|
\expandafter{\@currentheadentry}%
|
|
\ifx\@currenttocentry\@empty\else
|
|
\scr@ifundefinedorrelax{add#1tocentry}{%
|
|
\expandafter\gdef\csname add#1tocentry\endcsname####1####2{%
|
|
\addtocentrydefault{#1}{####1}{####2}%
|
|
}%
|
|
}{}%
|
|
\ifcase
|
|
\if@currentusenumber
|
|
\ifnum \numexpr #2\relax>\c@secnumdepth \z@\else \@ne\fi
|
|
\else
|
|
\z@
|
|
\fi
|
|
\csname add#1tocentry\endcsname{}{\@currenttocentry}%
|
|
\else
|
|
\@ifundefined{#1tocformat}{%
|
|
\expandafter\gdef\csname #1tocformat\endcsname
|
|
{\csname the#1\endcsname}%
|
|
}{}%
|
|
\csname add#1tocentry\endcsname{\csname #1tocformat\endcsname}{%
|
|
\@currenttocentry}%
|
|
\fi
|
|
\fi
|
|
\ExecuteDoHook{heading/endgroup/#1}%
|
|
}%
|
|
\fi
|
|
\let\IfUsePrefixLine\scr@IfUsePrefixLineWarning
|
|
\@xsect{\glueexpr #5\relax}%
|
|
}
|
|
\DefineFamily{KOMAarg}
|
|
\DefineFamilyMember[.section]{KOMAarg}
|
|
\providecommand*\@currenttocentry{}
|
|
\providecommand*\@currentheadentry{}
|
|
\providecommand*\@currentlabelname{}
|
|
\FamilyStringKey[.section]{KOMAarg}{tocentry}{\@currenttocentry}
|
|
\FamilyStringKey[.section]{KOMAarg}{head}{\@currentheadentry}
|
|
\DefineFamilyKey[.section]{KOMAarg}{reference}{%
|
|
\scr@ifundefinedorrelax{NR@gettitle}{%
|
|
\scr@ifundefinedorrelax{GetTitleString}{%
|
|
\def\@currentlabelname{#1}%
|
|
}{%
|
|
\GetTitleString{#1}%
|
|
\let\@currentlabelname\GetTitleStringResult
|
|
}%
|
|
}{%
|
|
\NR@gettitle{#1}%
|
|
}%
|
|
\scr@ifundefinedorrelax{TR@gettitle}{}{%
|
|
\expandafter\TR@gettitle\expandafter{\@currentlabelname}%
|
|
}%
|
|
\scr@ifundefinedorrelax{ztitlerefsetup}{}{%
|
|
\ztitlerefsetup{title=\@currentlabelname}%
|
|
}%
|
|
\FamilyKeyStateProcessed
|
|
}
|
|
\FamilyInverseBoolKey[.section]{KOMAarg}{nonumber}{@currentusenumber}
|
|
\newcommand*{\scr@istest}{}
|
|
\def\scr@istest#1=#2\@nil{%
|
|
\ifx\relax#2\relax\@scr@tempswafalse\else\@scr@tempswatrue\fi
|
|
}
|
|
\newif\if@scr@tempswa
|
|
\newcommand{\sectionlinesformat}[4]{%
|
|
\@hangfrom{\hskip #2#3}{#4}%
|
|
}
|
|
\newcommand{\sectioncatchphraseformat}[4]{%
|
|
\hskip #2#3#4%
|
|
}
|
|
\def\scr@latex@ssect#1#2#3#4#5{%
|
|
\@tempskipa #3\relax
|
|
\ifdim \@tempskipa>\z@
|
|
\begingroup
|
|
#4{%
|
|
\@hangfrom{\hskip #1}%
|
|
\interlinepenalty \@M #5\@@par}%
|
|
\endgroup
|
|
\else
|
|
\def\@svsechd{#4{\hskip #1\relax #5}}%
|
|
\fi
|
|
\@xsect{#3}}
|
|
\ifx\@ssect\scr@latex@ssect
|
|
\else
|
|
\let\scr@latex@ssect\@ssect
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Unexpected definition of \string\@ssect!\MessageBreak
|
|
Please send information about this to\MessageBreak
|
|
the KOMA-Script maintainer!\MessageBreak
|
|
Maybe LaTeX will be broken by the redefinition\MessageBreak
|
|
of \string\@ssect}%
|
|
\fi
|
|
\def\@ssect#1#2#3#4#5{%
|
|
\scr@ifundefinedorrelax{scr@s@ct@@nn@m@}{%
|
|
\ClassWarning{\KOMAClassName}{Incompatible usage of
|
|
\string\@ssect\space detected.\MessageBreak
|
|
You've used the KOMA-Script implementation of
|
|
\string\@ssect\MessageBreak
|
|
from within a non compatible caller, that does not\MessageBreak
|
|
\string\scr@s@ct@@nn@m@\space locally.\MessageBreak
|
|
This could result in several error messages}%
|
|
\def\scr@s@ct@@nn@m@{\string\scr@s@ct@@nn@m@}%
|
|
}{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.31}\relax\else
|
|
\begingroup
|
|
\let\@elt\@stpelt
|
|
\csname cl@\scr@s@ct@@nn@m@\endcsname
|
|
\endgroup
|
|
\fi
|
|
}%
|
|
\ifdim
|
|
\scr@sect@runin{\z@}{\p@}{\glueexpr #3\relax}>\z@
|
|
\begingroup
|
|
\let\IfUseNumber\@secondoftwo
|
|
\edef\reserved@a{%
|
|
\noexpand\ExecuteDoHook{heading/begingroup/\scr@s@ct@@nn@m@}%
|
|
}\reserved@a
|
|
#4{\nobreak\interlinepenalty \@M
|
|
\expandafter\sectionlinesformat\expandafter{\scr@s@ct@@nn@m@}%
|
|
{\glueexpr #1\relax}\@empty{#5}\@@par}%
|
|
\edef\reserved@a{%
|
|
\noexpand\ExecuteDoHook{heading/endgroup/\scr@s@ct@@nn@m@}%
|
|
}\reserved@a
|
|
\endgroup
|
|
\else
|
|
\edef\@svsechd{%
|
|
\unexpanded{\let\IfUseNumber\@secondoftwo}%
|
|
\noexpand\ExecuteDoHook{heading/begingroup/\scr@s@ct@@nn@m@}%
|
|
\unexpanded{#4}{%
|
|
\noexpand\nobreak
|
|
\noexpand\sectioncatchphraseformat{\scr@s@ct@@nn@m@}%
|
|
\unexpanded{{\glueexpr #1\relax}\@empty{#5}}%
|
|
}%
|
|
\noexpand\ExecuteDoHook{heading/endgroup/\scr@s@ct@@nn@m@}%
|
|
}%
|
|
\fi
|
|
\let\scr@s@ct@@nn@m@\relax
|
|
\@xsect{\glueexpr #3\relax}%
|
|
}
|
|
\def\scr@latex@xsect#1{%
|
|
\@tempskipa #1\relax
|
|
\ifdim \@tempskipa>\z@
|
|
\par \nobreak
|
|
\vskip \@tempskipa
|
|
\@afterheading
|
|
\else
|
|
\@nobreakfalse
|
|
\global\@noskipsectrue
|
|
\everypar{%
|
|
\if@noskipsec
|
|
\global\@noskipsecfalse
|
|
{\setbox\z@\lastbox}%
|
|
\clubpenalty\@M
|
|
\begingroup \@svsechd \endgroup
|
|
\unskip
|
|
\@tempskipa #1\relax
|
|
\hskip -\@tempskipa
|
|
\else
|
|
\clubpenalty \@clubpenalty
|
|
\everypar{}%
|
|
\fi}%
|
|
\fi
|
|
\ignorespaces
|
|
}
|
|
\ifx\@xsect\scr@latex@xsect\else
|
|
\let\scr@latex@xsect\@xsect
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Unexpected definition of \string\@xsect!\MessageBreak
|
|
Please send information about this to\MessageBreak
|
|
the KOMA-Script maintainer!\MessageBreak
|
|
Maybe LaTeX will be broken by the redefinition\MessageBreak
|
|
of \string\@xsect}%
|
|
\fi
|
|
\def\@xsect#1{%
|
|
\@ifundefined{scr@sect@runin}{%
|
|
\def\scr@sect@runin##1##2##3{##3}%
|
|
}%
|
|
\@tempskipa #1\relax
|
|
\ifdim \scr@sect@runin{\z@}{\p@}{\@tempskipa}>\z@
|
|
\par \nobreak
|
|
\vskip \@tempskipa
|
|
\@afterheading
|
|
\else
|
|
\@nobreakfalse
|
|
\global\@noskipsectrue
|
|
\everypar{%
|
|
\if@noskipsec
|
|
\global\@noskipsecfalse
|
|
{\setbox\z@\lastbox}%
|
|
\clubpenalty\@M
|
|
\begingroup \@svsechd \endgroup
|
|
\unskip
|
|
\@tempskipa #1\relax
|
|
\ifdim \@tempskipa<\z@
|
|
\hskip -\@tempskipa
|
|
\else
|
|
\hskip \@tempskipa
|
|
\fi
|
|
\else
|
|
\clubpenalty \@clubpenalty
|
|
\everypar{}%
|
|
\fi}%
|
|
\fi
|
|
\def\scr@sect@runin##1##2##3{##3}%
|
|
\ignorespaces
|
|
}
|
|
\newcommand*{\scr@IfUsePrefixLineWarning}[2]{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Usage of \string\IfUsePrefixLine\space outside
|
|
section command\MessageBreak
|
|
style makes no sense, because the behaviour not only\MessageBreak
|
|
depends on class options but also on the run-time\MessageBreak
|
|
section command style.\MessageBreak
|
|
Neither the then-code nor the else-code will be\MessageBreak
|
|
executed.\MessageBreak
|
|
You may change this and avoid the warning by LOCALLY\MessageBreak
|
|
setting \string\IfUsePrefixLine\space to either
|
|
\string\@firstoftwo\space or\MessageBreak
|
|
\string\@secondoftwo\space before using it%
|
|
}%
|
|
}
|
|
\newcommand*{\IfUsePrefixLine}[2]{}
|
|
\let\IfUsePrefixLine\scr@IfUsePrefixLineWarning
|
|
\newcommand*{\raggedsection}{}
|
|
\let\raggedsection\raggedright
|
|
\DefineFamily{KOMAarg}
|
|
\DefineFamilyMember[.dsc]{KOMAarg}
|
|
\newcommand*{\DeclareSectionCommandStyleOption}[3]{%
|
|
\AddToSectionCommandOptionsDoList{#2}%
|
|
\expandafter\g@addto@macro\csname scr@dsc@style@#1@options\endcsname{%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{#2}{#3}%
|
|
}%
|
|
}
|
|
\newcommand*{\AddToSectionCommandOptionsDoList}[1]{%
|
|
\kernel@ifnextchar [%]
|
|
{\@AddToSectionCommandOptionListWithDefault{#1}}%
|
|
{\l@addto@macro\scr@dsc@doopts{\do{#1}}}%
|
|
}
|
|
\newcommand*{\@AddToSectionCommandOptionListWithDefault}{}
|
|
\def\@AddToSectionCommandOptionListWithDefault#1[#2]{%
|
|
\l@addto@macro\scr@dsc@doopts{\do[{#2}]{#1}}
|
|
}%
|
|
\newcommand*{\scr@dsc@doopts}{}
|
|
\newcommand*{\RelaxSectionCommandOptions}{%
|
|
\begingroup
|
|
\def\do@endgroup{\endgroup}%
|
|
\def\do{%
|
|
\kernel@ifnextchar [%]
|
|
{\@do}%
|
|
{\@do[]}%
|
|
}%
|
|
\def\@do[##1]##2{%
|
|
\l@addto@macro\do@endgroup{\RelaxFamilyKey[.dsc]{KOMAarg}{##2}}%
|
|
}%
|
|
\scr@dsc@doopts
|
|
\do@endgroup
|
|
}
|
|
\newcommand*{\DeclareSectionCommandStyleLengthOption}[4]{%
|
|
\DeclareSectionCommandStyleOption{#1}{#2}{%
|
|
\protected@edef\reserved@a{%
|
|
\noexpand\FamilySetLength{KOMAarg}{#2}{\noexpand\@tempskipa}{##1}%
|
|
}\reserved@a
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\ifscr@dsc@expandtopt
|
|
\expandafter\edef\csname #3\scr@dsc@current#4\endcsname{%
|
|
\the\@tempskipa}%
|
|
\else
|
|
\expandafter\edef\csname #3\scr@dsc@current#4\endcsname{##1}%
|
|
\fi
|
|
\fi
|
|
}%
|
|
}
|
|
\newcommand*{\DeclareSectionCommandStyleNumberOption}[4]{%
|
|
\DeclareSectionCommandStyleOption{#1}{#2}{%
|
|
\protected@edef\reserved@a{%
|
|
\noexpand\FamilySetCounterMacro{KOMAarg}{#2}{\noexpand\reserved@a}{##1}
|
|
}\reserved@a
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\expandafter\let\csname #3\scr@dsc@current#4\endcsname\reserved@a
|
|
\fi
|
|
}%
|
|
}
|
|
\newcommand*{\DeclareSectionCommandStyleFontOption}[4]{%
|
|
\DeclareSectionCommandStyleOption{#1}{#2}{%
|
|
\IfExistskomafont{#3\scr@dsc@current#4}{%
|
|
\setkomafont
|
|
}{%
|
|
\newkomafont
|
|
}{#3\scr@dsc@current#4}{##1}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
}
|
|
\newcommand*{\DeclareSectionCommandStyleFuzzyOption}[5]{%
|
|
\DeclareSectionCommandStyleOption{#1}{#2}{%
|
|
\FamilySetBool{KOMAarg}{#2}{@tempswa}{##1}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\if@tempswa
|
|
\expandafter\def\csname #3\scr@dsc@current#4\endcsname
|
|
####1####2####3{####1}%
|
|
\else
|
|
\expandafter\def\csname #3\scr@dsc@current#4\endcsname
|
|
####1####2####3{####2}%
|
|
\fi
|
|
\else
|
|
\Ifstr{##1}{#5}{%
|
|
\expandafter\def\csname #3\scr@dsc@current#4\endcsname
|
|
####1####2####3{####3}%
|
|
\FamilyKeyStateProcessed
|
|
}{}%
|
|
\fi
|
|
}%
|
|
}
|
|
\newcommand*{\scr@dsc@style@section@options}{}
|
|
\DeclareSectionCommandStyleLengthOption{section}
|
|
{indent}{scr@}{@sectionindent}
|
|
\DeclareSectionCommandStyleFuzzyOption{section}
|
|
{afterindent}{scr@}{@afterindent}
|
|
{bysign}
|
|
\DeclareSectionCommandStyleLengthOption{section}
|
|
{beforeskip}{scr@}{@beforeskip}
|
|
\DeclareSectionCommandStyleFuzzyOption{section}
|
|
{runin}{scr@}{@runin}
|
|
{bysign}
|
|
\DeclareSectionCommandStyleLengthOption{section}
|
|
{afterskip}{scr@}{@afterskip}
|
|
\DeclareSectionCommandStyleFontOption{section}{font}{}{}
|
|
\newcommand*{\scr@dsc@def@style@section@command}[1]{%
|
|
\@namedef{#1}{%
|
|
\scr@startsection{#1}%
|
|
{\csname #1numdepth\endcsname}%
|
|
{\csname scr@#1@sectionindent\endcsname}%
|
|
{\csname scr@#1@beforeskip\endcsname}%
|
|
{\csname scr@#1@afterskip\endcsname}%
|
|
{%
|
|
\ifdim\glueexpr\csname scr@#1@afterskip\endcsname >\z@
|
|
\expandafter\ifnum\scr@v@is@gt{2.96}\relax
|
|
\setlength{\parfillskip}{\z@ plus 1fil}%
|
|
\fi
|
|
\fi
|
|
\raggedsection\normalfont\sectfont\nobreak
|
|
\usekomafont{#1}%
|
|
}%
|
|
}%
|
|
}
|
|
\newcommand*{\scr@dsc@style@chapter@options}{}
|
|
\DeclareSectionCommandStyleOption{chapter}{pagestyle}{%
|
|
\@namedef{\scr@dsc@current pagestyle}{#1}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
\DeclareSectionCommandStyleFuzzyOption{chapter}
|
|
{afterindent}{scr@}{@afterindent}
|
|
{bysign}
|
|
\DeclareSectionCommandStyleLengthOption{chapter}
|
|
{beforeskip}{scr@}{@beforeskip}
|
|
\DeclareSectionCommandStyleLengthOption{chapter}
|
|
{innerskip}{scr@}{@innerskip}
|
|
\DeclareSectionCommandStyleLengthOption{chapter}
|
|
{afterskip}{scr@}{@afterskip}
|
|
\DeclareSectionCommandStyleFontOption{chapter}{font}{}{}
|
|
\DeclareSectionCommandStyleFontOption{chapter}{prefixfont}{}{prefix}
|
|
\newcommand*{\scr@dsc@def@style@chapter@command}[1]{%
|
|
\@namedef{#1}{\scr@startchapter{#1}}%
|
|
\@namedef{@#1}{\scr@@startchapter{#1}}%
|
|
\@namedef{@s#1}{\scr@@startschapter{#1}}%
|
|
\@namedef{@make#1head}{\scr@makechapterhead{#1}}%
|
|
\@namedef{@makes#1head}{\scr@makeschapterhead{#1}}%
|
|
\@namedef{@@make#1head}{\scr@@makechapterhead{#1}}%
|
|
\@namedef{@@makes#1head}{\scr@@makeschapterhead{#1}}%
|
|
\@namedef{set#1preamble}{\set@preamble{#1}}%
|
|
}
|
|
\newcommand*{\scr@dsc@style@chapter@subcommands}[1]{%
|
|
@#1,@s#1,@make#1head,@makes#1head,@@make#1head,@@makes#1head,set#1preamble%
|
|
}
|
|
\newcommand*{\scr@dsc@style@part@options}{}
|
|
\DeclareSectionCommandStyleOption{part}{pagestyle}{%
|
|
\@namedef{\scr@dsc@current pagestyle}{#1}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
\DeclareSectionCommandStyleFuzzyOption{part}
|
|
{afterindent}{scr@}{@afterindent}
|
|
{bysign}
|
|
\DeclareSectionCommandStyleLengthOption{part}
|
|
{beforeskip}{scr@}{@beforeskip}
|
|
\DeclareSectionCommandStyleLengthOption{part}
|
|
{innerskip}{scr@}{@innerskip}
|
|
\DeclareSectionCommandStyleLengthOption{part}
|
|
{afterskip}{scr@}{@afterskip}
|
|
\DeclareSectionCommandStyleFontOption{part}{font}{}{}
|
|
\DeclareSectionCommandStyleFontOption{part}{prefixfont}{}{prefix}
|
|
\newcommand*{\scr@dsc@def@style@part@command}[1]{%
|
|
\@namedef{#1}{\scr@startpart{#1}}%
|
|
\@namedef{@#1}{\scr@@startpart{#1}}%
|
|
\@namedef{@s#1}{\scr@@startspart{#1}}%
|
|
\@namedef{@end#1}{\scr@@endpart{#1}}%
|
|
\@namedef{set#1preamble}{\set@preamble{#1}}%
|
|
}
|
|
\newcommand*{\scr@dsc@style@part@subcommands}[1]{%
|
|
@#1,@s#1,@end#1,set#1preamble%
|
|
}
|
|
\newcommand*{\scr@dsc@style@section@neededoptionstest}{%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @sectionindent}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{section indent}{indent}{0pt}%
|
|
{\@namedef{scr@\scr@dsc@current @sectionindent}{0pt}}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @beforeskip}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{before section skip}{beforeskip}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @afterskip}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{after section skip}{afterskip}%
|
|
}{}%
|
|
\IfExistskomafont{\scr@dsc@current}{}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{font}{font}{\normalsize}%
|
|
{\newkomafont{\scr@dsc@current}{\normalsize}}%
|
|
}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @runin}{%
|
|
\l@addto@macro\local@endgroup{%
|
|
\ClassInfo{\KOMAClassName}
|
|
{using compatibility default `runin=bysign'\MessageBreak
|
|
for `\expandafter\string\csname \scr@dsc@current\endcsname}%
|
|
\expandafter\gdef\csname scr@\scr@dsc@current @runin\endcsname
|
|
##1##2##3{##3}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @afterindent}{%
|
|
\l@addto@macro\local@endgroup{%
|
|
\ClassInfo{\KOMAClassName}
|
|
{using compatibility default `afterindent=bysign'\MessageBreak
|
|
for `\expandafter\string\csname \scr@dsc@current\endcsname}%
|
|
\expandafter\gdef\csname scr@\scr@dsc@current @afterindent\endcsname
|
|
##1##2##3{##3}%
|
|
}%
|
|
}{}%
|
|
}
|
|
\newcommand*{\scr@dsc@style@chapter@neededoptionstest}{%
|
|
\scr@ifundefinedorrelax{\scr@dsc@current pagestyle}{%
|
|
\Ifstr{\scr@dsc@current}{chapter}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{initial page style}{pagestyle}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{initial page style}{pagestyle}%
|
|
{\chapterpagestyle}%
|
|
{\@namedef{\scr@dsc@current pagestyle}{\chapterpagestyle}}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @innerskip}{%
|
|
\Ifstr{\scr@dsc@current}{chapter}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{inner chapter skip}{innerskip}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{inner chapter skip}{innerskip}%
|
|
{\scr@chapter@innerskip}%
|
|
{\@namedef{scr@\scr@dsc@current @innerskip}{\scr@chapter@innerskip}}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @beforeskip}{%
|
|
\Ifstr{\scr@dsc@current}{chapter}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{before chapter skip}{beforeskip}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{before chapter skip}{beforeskip}%
|
|
{\scr@chapter@beforeskip}%
|
|
{\@namedef{scr@\scr@dsc@current @beforeskip}{\scr@chapter@beforeskip}}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @afterskip}{%
|
|
\Ifstr{\scr@dsc@current}{chapter}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{after chaper skip}{afterskip}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{after chaper skip}{afterskip}%
|
|
{\scr@chapter@afterskip}%
|
|
{\@namedef{scr@\scr@dsc@current @afterskip}{\scr@chapter@afterskip}}%
|
|
}%
|
|
}{}%
|
|
\IfExistskomafont{\scr@dsc@current}{}{%
|
|
\Ifstr{\scr@dsc@current}{chapter}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}{font}{font}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{font}{font}%
|
|
{\usekomafont{chapter}}%
|
|
{\newkomafont{\scr@dsc@current}{\usekomafont{chapter}}}%
|
|
}%
|
|
}%
|
|
\IfExistskomafont{\scr@dsc@current prefix}{}{%
|
|
\Ifstr{\scr@dsc@current}{chapter}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{prefix line font}{prefixfont}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{prefix line font}{prefixfont}%
|
|
{\usekomafont{chapterprefix}}%
|
|
{\newkomafont{\scr@dsc@current prefix}{\usekomafont{chapterprefix}}}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @afterindent}{%
|
|
\l@addto@macro\local@endgroup{%
|
|
\ClassInfo{\KOMAClassName}
|
|
{using compatibility default `afterindent=bysign'\MessageBreak
|
|
for `\expandafter\string\csname \scr@dsc@current\endcsname}%
|
|
\expandafter\gdef\csname scr@\scr@dsc@current @afterindent\endcsname
|
|
##1##2##3{##3}%
|
|
}%
|
|
}{}%
|
|
}
|
|
\newcommand*{\scr@dsc@style@part@neededoptionstest}{%
|
|
\scr@ifundefinedorrelax{\scr@dsc@current pagestyle}{%
|
|
\Ifstr{\scr@dsc@current}{part}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{initial page style}{pagestyle}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{initial page style}{pagestyle}%
|
|
{\partpagestyle}%
|
|
{\@namedef{\scr@dsc@current pagestyle}{\partpagestyle}}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @innerskip}{%
|
|
\Ifstr{\scr@dsc@current}{part}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{inner part skip}{innerskip}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{inner part skip}{innerskip}%
|
|
{\scr@part@innerskip}%
|
|
{\@namedef{scr@\scr@dsc@current @innerskip}{\scr@part@innerskip}}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @beforeskip}{%
|
|
\Ifstr{\scr@dsc@current}{part}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{before part skip}{beforeskip}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{before part skip}{beforeskip}%
|
|
{\scr@part@beforeskip}%
|
|
{\@namedef{scr@\scr@dsc@current @beforeskip}{\scr@part@beforeskip}}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @afterskip}{%
|
|
\Ifstr{\scr@dsc@current}{part}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{after part skip}{afterskip}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{after part skip}{afterskip}%
|
|
{\scr@part@afterskip}%
|
|
{\@namedef{scr@\scr@dsc@current @afterskip}{\scr@part@afterskip}}%
|
|
}%
|
|
}{}%
|
|
\IfExistskomafont{\scr@dsc@current}{}{%
|
|
\Ifstr{\scr@dsc@current}{part}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}{font}{font}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}{font}{font}%
|
|
{\usekomafont{part}}%
|
|
{\newkomafont{\scr@dsc@current}{\usekomafont{part}}}%
|
|
}%
|
|
}{}%
|
|
\IfExistskomafont{\scr@dsc@current prefix}{}{%
|
|
\Ifstr{\scr@dsc@current}{part}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}%
|
|
{number font}{prefixfont}%
|
|
}{%
|
|
\scr@declaresectioncommandwarning{\scr@dsc@current}%
|
|
{number font}{prefixfont}%
|
|
{\usekomafont{partprefix}}%
|
|
{\newkomafont{\scr@dsc@current prefix}{\usekomafont{partprefix}}}%
|
|
}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @afterindent}{%
|
|
\l@addto@macro\local@endgroup{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
using compatibility default
|
|
`afterindent=true'\MessageBreak
|
|
for `\expandafter\string\csname \scr@dsc@current\endcsname}%
|
|
\expandafter\gdef\csname scr@\scr@dsc@current @afterindent\endcsname
|
|
##1##2##3%
|
|
{##1}%
|
|
}%
|
|
}{}%
|
|
}
|
|
\newif\ifscr@dsc@parametersonly
|
|
\newcommand*{\DeclareSectionCommand}[2][]{%
|
|
\edef\scr@dsc@current{#2}%
|
|
\scr@dsc@parametersonlyfalse
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{style}{%
|
|
\IfArgIsEmpty{##1}{%
|
|
\scr@dsc@parametersonlytrue
|
|
\FamilyKeyStateProcessed
|
|
}{%
|
|
\scr@ifundefinedorrelax{scr@dsc@def@style@##1@command}{%
|
|
\FamilyKeyStateUnknownValue
|
|
}{%
|
|
\@namedef{scr@\scr@dsc@current @style}{##1}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
}%
|
|
}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{tocstyle}{%
|
|
\IfArgIsEmpty{##1}{%
|
|
\@ifundefined{scr@dte@\scr@dsc@current @style}{}{%
|
|
\expandafter\let\csname scr@dte@\scr@dsc@current @style\endcsname
|
|
\relax
|
|
}%
|
|
\expandafter\let\csname scr@tso@\scr@dsc@current @style\endcsname
|
|
\relax
|
|
\FamilyKeyStateProcessed
|
|
}{%
|
|
\scr@ifundefinedorrelax{scr@dte@def@l@##1}{%
|
|
\FamilyKeyStateUnknownValue
|
|
}{%
|
|
\@namedef{scr@dte@\scr@dsc@current @style}{##1}%
|
|
\@namedef{scr@tso@\scr@dsc@current @style}{##1}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
}%
|
|
}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{@else@}{%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{@else@}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{tocstyle}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{style}%
|
|
\begingroup
|
|
\scr@ifundefinedorrelax{scr@\scr@dsc@current @style}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}
|
|
{section command style}{style}%
|
|
}{}%
|
|
\endgroup
|
|
\@firstofone{%
|
|
\@nameuse{scr@dsc@style@\@nameuse{scr@\scr@dsc@current @style}@options}%
|
|
\scr@ifundefinedorrelax{scr@tso@\scr@dsc@current @style}{%
|
|
\scr@ifundefinedorrelax{l@\scr@dsc@current}{%
|
|
\@namedef{scr@tso@\scr@dsc@current @style}{default}%
|
|
}{}%
|
|
}{}%
|
|
\let\scr@dsc@tocstyle@options\@empty
|
|
\let\scr@dsc@extra@relax@opts\@empty
|
|
\scr@ifundefinedorrelax{scr@tso@\scr@dsc@current @style}{%
|
|
\expandafter\let
|
|
\csname scr@tso@\scr@dsc@current @style\expandafter\endcsname
|
|
\csname scr@dte@\scr@dsc@current @style\endcsname
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@tso@\scr@dsc@current @style}{}{%
|
|
\begingroup
|
|
\def\scr@dte@current{#2}%
|
|
\edef\reserved@a{%
|
|
\noexpand\@ExecuteTOCEntryStyleInitCode{%
|
|
\@nameuse{scr@tso@\scr@dsc@current @style}%
|
|
}{\scr@dsc@current}%
|
|
}\reserved@a
|
|
\def\do@endgroup{\endgroup}%
|
|
\def\do##1{%
|
|
\l@addto@macro\do@endgroup{%
|
|
\l@addto@macro\scr@dsc@extra@relax@opts{%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{toc##1}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{tocentry##1}%
|
|
}%
|
|
}%
|
|
\kernel@ifnextchar[%]
|
|
{\@dodefault{##1}}%
|
|
{\@donodefault{##1}}%
|
|
}%
|
|
\def\@donodefault##1{%
|
|
\l@addto@macro\do@endgroup{%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{toc##1}{%
|
|
\l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{tocentry##1}{%
|
|
\l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
}%
|
|
}%
|
|
\def\@dodefault##1[##2]{%
|
|
\l@addto@macro\do@endgroup{%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{toc##1}[##2]{%
|
|
\l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{tocentry##1}[##2]{%
|
|
\l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
}%
|
|
}%
|
|
\scr@dte@doopts
|
|
\do@endgroup
|
|
}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{style}{\FamilyKeyStateProcessed}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{tocstyle}{\FamilyKeyStateProcessed}%
|
|
\FamilyBoolKey[.dsc]{KOMAarg}{expandtopt}{scr@dsc@expandtopt}%
|
|
\scr@dsc@expandtoptfalse
|
|
\scr@ifundefinedorrelax{scr@local@levelincrease}{%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
|
|
}{%
|
|
\FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
|
|
{\scr@local@levelincrease}%
|
|
}%
|
|
\scr@ifundefinedorrelax{scr@local@leveloffset}{%
|
|
\edef\reserved@a{%
|
|
\noexpand\FamilyCounterMacroKey[.dsc]{KOMAarg}{level}{%
|
|
\expandafter\noexpand\csname \scr@dsc@current numdepth\endcsname}%
|
|
}\reserved@a
|
|
}{%
|
|
\edef\reserved@a{%
|
|
\noexpand\DefineFamilyKey[.dsc]{KOMAarg}{level}{%
|
|
\noexpand\FamilySetCounterMacro{KOMAarg}{level}{%
|
|
\expandafter\noexpand\csname \scr@dsc@current numdepth\endcsname
|
|
}%
|
|
\unexpanded{%
|
|
{\numexpr ##1+\scr@local@leveloffset\relax}%
|
|
\edef\scr@local@leveloffset{%
|
|
\the\numexpr\scr@local@leveloffset+\scr@local@levelincrease\relax
|
|
}%
|
|
}%
|
|
}%
|
|
}\reserved@a
|
|
}%
|
|
\FamilyStringKey[.dsc]{KOMAarg}{counterwithout}{\scr@local@counterwithout}%
|
|
\let\scr@local@counterwithout\relax
|
|
\FamilyStringKey[.dsc]{KOMAarg}{counterwithin}{\scr@local@counterwithin}%
|
|
\let\scr@local@counterwithin\relax
|
|
\scr@ifundefinedorrelax{scr@local@tocleveloffset}{}{%
|
|
\scr@ifundefinedorrelax{KV@KOMAarg.dsc@toclevel}{%
|
|
}{%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
|
|
\edef\reserved@a{%
|
|
\noexpand\l@addto@macro{\noexpand\scr@dsc@tocstyle@options}{%
|
|
level=\the\numexpr ##1+\scr@local@tocleveloffset\relax,%
|
|
}%
|
|
}\reserved@a
|
|
\edef\scr@local@tocleveloffset{%
|
|
\the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
|
|
}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
}%
|
|
}%
|
|
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
|
|
\scr@dsc@extra@relax@opts
|
|
\let\scr@dsc@extra@relax@opts\relax
|
|
\RelaxSectionCommandOptions
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{style}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{tocstyle}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{expandtopt}%
|
|
\scr@ifundefinedorrelax{scr@local@levelincrease}{}{%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
|
|
}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{level}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{counterwithin}%
|
|
\begingroup
|
|
\def\local@endgroup{\endgroup}%
|
|
\scr@ifundefinedorrelax{\scr@dsc@current numdepth}{%
|
|
\scr@declaresectioncommanderror{\scr@dsc@current}{section level}{level}%
|
|
}{%
|
|
\expandafter\ifnum \csname #2numdepth\endcsname>-\maxdimen
|
|
\@nameuse{scr@dsc@style@%
|
|
\@nameuse{scr@\scr@dsc@current @style}%
|
|
@neededoptionstest}%
|
|
\else
|
|
\ClassError{\KOMAClassName}{%
|
|
`level' must be > -\the\numexpr\maxdimen\relax
|
|
}{%
|
|
KOMA-Script internally sets `secnumdepth' to
|
|
-\the\numexpr\maxdimen\relax\space
|
|
to locally switch of\MessageBreak
|
|
the numbering, i.e., inside running heads.\MessageBreak
|
|
Because of this, you can define section commands with\MessageBreak
|
|
`level' greater than -\the\numexpr\maxdimen\relax\space only.%
|
|
}%
|
|
\let\local@endgroup\endgroup
|
|
\aftergroup\@gobbletwo
|
|
\fi
|
|
}%
|
|
\local@endgroup
|
|
\@firstofone{%
|
|
\@ifundefined{c@#2}{\newcounter{#2}}{}%
|
|
\ifx\scr@local@counterwithout\relax
|
|
\else\ifx\scr@local@counterwithout\@empty
|
|
\else
|
|
\@removefromreset{#2}{\scr@local@counterwithout}%
|
|
\fi
|
|
\@namedef{the#2}{\arabic{#2}}%
|
|
\fi
|
|
\ifx\scr@local@counterwithin\relax
|
|
\else\ifx\scr@local@counterwithin\@empty
|
|
\@namedef{the#2}{\arabic{#2}}%
|
|
\else
|
|
\@removefromreset{#2}{\scr@local@counterwithin}%
|
|
\@addtoreset{#2}{\scr@local@counterwithin}%
|
|
\expandafter\def\csname the#2\expandafter\endcsname\expandafter{%
|
|
\csname the\scr@local@counterwithin\endcsname.\arabic{#2}}%
|
|
\fi
|
|
\fi
|
|
\@ifundefined{#2format}{%
|
|
\@namedef{#2format}{\csname the#2\endcsname\autodot\enskip}%
|
|
}{}%
|
|
\ifscr@dsc@parametersonly
|
|
\ClassInfo{\KOMAClassName}{%
|
|
not defining `\expandafter\string\csname #2\endcsname' due
|
|
to\MessageBreak
|
|
empty section style option%
|
|
}%
|
|
\else
|
|
\scr@ifundefinedorrelax{%
|
|
scr@dsc@def@style@\@nameuse{scr@#2@style}@command%
|
|
}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
not defining `\expandafter\string\csname #2\endcsname'
|
|
due\MessageBreak
|
|
to not yet defined section style\MessageBreak
|
|
`\@nameuse{scr@#2@style}'%
|
|
}%
|
|
}{%
|
|
\@nameuse{scr@dsc@def@style@\@nameuse{scr@#2@style}@command}{#2}%
|
|
}%
|
|
\fi
|
|
\@ifundefined{DeclareSectionNumberDepth}{%
|
|
\@ifundefined{#2markformat}{%
|
|
\@namedef{#2markformat}{\csname the#2\endcsname\autodot\enskip}%
|
|
}{}%
|
|
\@ifundefined{#2mark}{%
|
|
\expandafter\let\csname #2mark\endcsname\@gobble
|
|
}{}%
|
|
}{%
|
|
\DeclareSectionNumberDepth{#2}{\csname #2numdepth\endcsname}%
|
|
}%
|
|
\expandafter\providecommand\expandafter*%
|
|
\csname add#2tocentry\endcsname[2]{%
|
|
\addtocentrydefault{#2}{##1}{##2}%
|
|
}%
|
|
\scr@ifundefinedorrelax{scr@tso@#2@style}{%
|
|
\expandafter\let\csname scr@tso@#2@style\expandafter\endcsname
|
|
\csname scr@dte@#2@style\endcsname
|
|
}{}%
|
|
\scr@ifundefinedorrelax{scr@tso@#2@style}{%
|
|
}{%
|
|
\DeclareTOCStyleEntry[\scr@dsc@tocstyle@options]{%
|
|
\@nameuse{scr@tso@#2@style}%
|
|
}{#2}%
|
|
}%
|
|
\scr@ifundefinedorrelax{l@#2}{%
|
|
\DeclareTOCStyleEntry[\scr@dsc@tocstyle@options]{default}{#2}%
|
|
}{}%
|
|
\if@atdocument
|
|
\let\reserved@a\@firstofone
|
|
\else
|
|
\@ifpackageloaded{hyperref}{%
|
|
\let\reserved@a\@firstofone
|
|
}{%
|
|
\def\reserved@a##1{%
|
|
\AfterAtEndOfPackage{hyperref}{\AtBeginDocument{##1}}%
|
|
}%
|
|
}%
|
|
\fi
|
|
\reserved@a{%
|
|
\expandafter\let\csname toclevel@#2\expandafter\endcsname
|
|
\csname #2tocdepth\endcsname
|
|
\scr@ifundefinedorrelax{bookmarksetup}{%
|
|
\scr@ifundefinedorrelax{scr@min@toclevel}{%
|
|
\expandafter\let\expandafter\scr@min@toclevel
|
|
\csname toclevel@#2\endcsname
|
|
}{%
|
|
\expandafter\ifnum \csname toclevel@#2\endcsname
|
|
< \numexpr \scr@min@toclevel-1\relax
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Trying emergency fix for bookmark level gap,\MessageBreak
|
|
because toclevel of `#2'
|
|
(\csname toclevel@#2\endcsname)\MessageBreak
|
|
is more than 1 lower than currently lowest\MessageBreak
|
|
known level (\scr@min@toclevel).\MessageBreak
|
|
Note: This fix can fail and you should load\MessageBreak
|
|
package `bookmark' to avoid usage of this\MessageBreak
|
|
fix%
|
|
}%
|
|
\expandafter\edef\csname toclevel@#2\endcsname{%
|
|
\the\numexpr \scr@min@toclevel-1\relax
|
|
}%
|
|
\fi
|
|
\expandafter\ifnum \csname toclevel@#2\endcsname
|
|
< \scr@min@toclevel\relax
|
|
\expandafter\let\expandafter\scr@min@toclevel
|
|
\csname toclevel@#2\endcsname
|
|
\fi
|
|
}%
|
|
\scr@ifundefinedorrelax{scr@max@toclevel}{%
|
|
\expandafter\let\expandafter\scr@max@toclevel
|
|
\csname toclevel@#2\endcsname
|
|
}{%
|
|
\expandafter\ifnum \csname toclevel@#2\endcsname
|
|
> \numexpr \scr@max@toclevel+1\relax
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Trying emergency fix for bookmark level gap,\MessageBreak
|
|
because toclevel of `#2'
|
|
(\csname toclevel@#2\endcsname)\MessageBreak
|
|
is more than 1 greater than currently highest\MessageBreak
|
|
known level (\scr@max@toclevel).\MessageBreak
|
|
Note: This fix can fail and you should load\MessageBreak
|
|
package `bookmark' to avoid usage of this\MessageBreak
|
|
fix%
|
|
}%
|
|
\expandafter\edef\csname toclevel@#2\endcsname{%
|
|
\the\numexpr \scr@max@toclevel+1\relax
|
|
}%
|
|
\fi
|
|
\expandafter\ifnum \csname toclevel@#2\endcsname
|
|
> \scr@max@toclevel\relax
|
|
\expandafter\let\expandafter\scr@max@toclevel
|
|
\csname toclevel@#2\endcsname
|
|
\fi
|
|
}%
|
|
}{}%
|
|
}%
|
|
}%
|
|
}%
|
|
\let\scr@dsc@current\relax
|
|
}
|
|
\newcommand*{\scr@declaresectioncommanderror}[3]{%
|
|
\ClassError{\KOMAClassName}{%
|
|
#2 of \expandafter\string\csname #1\endcsname\space unknown%
|
|
}{%
|
|
Please use option `#3' to declare the #2.\MessageBreak
|
|
If you'll continue, declaration will be ignored%
|
|
}%
|
|
\let\local@endgroup\endgroup
|
|
\aftergroup\@gobbletwo
|
|
}
|
|
\newcommand*{\scr@declaresectioncommandwarning}[5]{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
#2 of \expandafter\string\csname #1\endcsname\space unknown.\MessageBreak
|
|
You should use option `#3' if you\MessageBreak
|
|
do not want to use the default value\MessageBreak
|
|
`\detokenize{#4}'%
|
|
}%
|
|
\l@addto@macro\local@endgroup{#5}%
|
|
}
|
|
\newcommand*{\DeclareNewSectionCommand}[2][]{%
|
|
\@ifundefined{#2}{%
|
|
\@tempswatrue
|
|
\let\reserved@b\@empty
|
|
\@for \reserved@a:=the#2,#2mark,#2format,#2markformat\do{%
|
|
\expandafter\scr@ifundefinedorrelax\expandafter{\reserved@a}{}{%
|
|
\@tempswafalse
|
|
\edef\reserved@b{\expandafter\string\csname \reserved@a\endcsname}%
|
|
}%
|
|
}%
|
|
\if@tempswa
|
|
\expandafter\let\expandafter\scr@dsc@current
|
|
\csname scr@tso@##2@style\endcsname
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{style}{%
|
|
\edef\scr@dsc@current{##1}%
|
|
\FamilyKeyStateProcessed
|
|
}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{@else@}{\FamilyKeyStateProcessed}%
|
|
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{@else@}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{style}%
|
|
\@tempswatrue
|
|
\@ifundefined{scr@dsc@current}{}{%
|
|
\scr@ifundefinedorrelax{scr@dsc@style@\scr@dsc@current @subcommands}{%
|
|
}{%
|
|
\edef\reserved@b{%
|
|
\csname scr@dsc@style@\scr@dsc@current @subcommands\endcsname{#2}%
|
|
}%
|
|
\expandafter\@for\expandafter\reserved@a\expandafter:\expandafter=%
|
|
\reserved@b\do{%
|
|
\expandafter\scr@ifundefinedorrelax\expandafter{\reserved@a}{}{%
|
|
\@tempswafalse
|
|
\edef\reserved@b{%
|
|
\expandafter\string\csname \reserved@a\endcsname}%
|
|
}%
|
|
}%
|
|
}
|
|
}%
|
|
\let\scr@dsc@current\relax
|
|
\fi
|
|
\if@tempswa
|
|
\DeclareSectionCommand[{#1}]{#2}%
|
|
\else
|
|
\ClassError{\KOMAClassName}{%
|
|
command `\reserved@b' already defined%
|
|
}{%
|
|
You've tried to define the section command `\expandafter\string\csname
|
|
#2\endcsname' newly.\MessageBreak
|
|
Such a section command needs an additional new command
|
|
`\reserved@b',\MessageBreak
|
|
but this already exists. So you cannot define
|
|
`\expandafter\string\csname #2\endcsname' newly.\MessageBreak
|
|
Maybe you should use one of \string\DeclareSectionCommand,
|
|
\string\RedeclareSectionCommand,\MessageBreak
|
|
or \string\ProvideSectionCommand.\MessageBreak
|
|
If you'll continue, the command will be ignored.%
|
|
}%
|
|
\fi
|
|
}{%
|
|
\ClassError{\KOMAClassName}{%
|
|
command `\expandafter\string\csname #2\endcsname' already defined%
|
|
}{%
|
|
You've tried to define the section command `\expandafter\string\csname
|
|
#2\endcsname' newly,\MessageBreak
|
|
but a command or something else with this name already
|
|
exists.\MessageBreak
|
|
Maybe you should use one of \string\DeclareSectionCommand,
|
|
\string\RedeclareSectionCommand,\MessageBreak
|
|
or \string\ProvideSectionCommand.\MessageBreak
|
|
If you'll continue, the command will be ignored.%
|
|
}%
|
|
}%
|
|
}
|
|
\newcommand*{\RedeclareSectionCommand}[2][]{%
|
|
\@ifundefined{#2}{%
|
|
\ClassError{\KOMAClassName}{%
|
|
command `\expandafter\string\csname #2\endcsname' not defined%
|
|
}{%
|
|
You've tried to re-define the section command `\expandafter\string\csname
|
|
#2\endcsname',\MessageBreak
|
|
but a command with this name does not exists.\MessageBreak
|
|
Maybe you should use one of \string\DeclareSectionCommand,
|
|
\string\DeclareNewSectionCommand,\MessageBreak
|
|
or \string\ProvideSectionCommand.\MessageBreak
|
|
If you'll continue, the command will be irgnored.%
|
|
}%
|
|
}{%
|
|
\DeclareSectionCommand[{#1}]{#2}%
|
|
}%
|
|
}
|
|
\newcommand*{\ProvideSectionCommand}[2][]{%
|
|
\@ifundefined{#2}{%
|
|
\DeclareSectionCommand[{#1}]{#2}%
|
|
}{%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
\string\ProvideSectionCommand{#1} ignored%
|
|
}%
|
|
}%
|
|
}
|
|
\newcommand*{\DeclareSectionCommands}[2][]{%
|
|
\edef\reserved@a{#2}%
|
|
\def\scr@local@levelincrease{\z@}%
|
|
\def\scr@local@leveloffset{\z@}%
|
|
\def\scr@local@tocleveloffset{\z@}%
|
|
\@for\reserved@a:=\reserved@a\do{%
|
|
\scr@trim@spaces\reserved@a
|
|
\edef\reserved@a{%
|
|
\unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
|
|
}%
|
|
\reserved@a
|
|
}%
|
|
\let\scr@local@levelincrease\relax
|
|
\let\scr@local@leveloffset\relax
|
|
\let\scr@local@tocleveloffset\relax
|
|
}
|
|
\newcommand*{\DeclareNewSectionCommands}[2][]{%
|
|
\edef\reserved@a{#2}%
|
|
\def\scr@local@levelincrease{\z@}%
|
|
\def\scr@local@leveloffset{\z@}%
|
|
\def\scr@local@tocleveloffset{\z@}%
|
|
\@for\reserved@a:=\reserved@a\do{%
|
|
\scr@trim@spaces\reserved@a
|
|
\@ifundefined{\reserved@a}{}{%
|
|
\ClassError{\KOMAClassName}{%
|
|
command `\expandafter\string\csname\reserved@a\endcsname' already
|
|
defined%
|
|
}{%
|
|
You've tried to define the section command
|
|
`\expandafter\string\csname\reserved@a\endcsname' newly,\MessageBreak
|
|
but a command, token, box or length with this name already
|
|
exists.\MessageBreak
|
|
Maybe you should use one of \string\DeclareSectionCommand,
|
|
\string\RedeclareSectionCommand,\MessageBreak
|
|
or \string\ProvideSectionCommand.\MessageBreak
|
|
Nevertheless, if you'll continue, the command will be defined.%
|
|
}%
|
|
}%
|
|
\edef\reserved@a{%
|
|
\unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
|
|
}%
|
|
\reserved@a
|
|
}%
|
|
\let\scr@local@levelincrease\relax
|
|
\let\scr@local@leveloffset\relax
|
|
\let\scr@local@tocleveloffset\relax
|
|
}
|
|
\newcommand*{\RedeclareSectionCommands}[2][]{%
|
|
\edef\reserved@a{#2}%
|
|
\def\scr@local@levelincrease{\z@}%
|
|
\def\scr@local@leveloffset{\z@}%
|
|
\def\scr@local@tocleveloffset{\z@}%
|
|
\@for\reserved@a:=\reserved@a\do{%
|
|
\scr@trim@spaces\reserved@a
|
|
\@ifundefined{\reserved@a}{%
|
|
\ClassError{\KOMAClassName}{%
|
|
command `\expandafter\string\csname\reserved@a\endcsname' not defined%
|
|
}{%
|
|
You've tried to re-define the section command
|
|
`\expandafter\string\csname\reserved@a\endcsname',\MessageBreak
|
|
but a command with this name does not exists.\MessageBreak
|
|
Maybe you should use one of \string\DeclareSectionCommand,
|
|
\string\DeclareNewSectionCommand,\MessageBreak
|
|
or \string\ProvideSectionCommand.\MessageBreak
|
|
Nevertheless, if you'll continue, the command will be defined.%
|
|
}%
|
|
}{}%
|
|
\edef\reserved@a{%
|
|
\unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
|
|
}%
|
|
\reserved@a
|
|
}%
|
|
\let\scr@local@levelincrease\relax
|
|
\let\scr@local@leveloffset\relax
|
|
\let\scr@local@tocleveloffset\relax
|
|
}
|
|
\newcommand*{\ProvideSectionCommands}[2][]{%
|
|
\edef\reserved@a{#2}%
|
|
\def\scr@local@levelincrease{\z@}%
|
|
\def\scr@local@leveloffset{\z@}%
|
|
\def\scr@local@tocleveloffset{\z@}%
|
|
\@for\reserved@a:=\reserved@a\do{%
|
|
\scr@trim@spaces\reserved@a
|
|
\@ifundefined{\reserved@a}{%
|
|
\edef\reserved@a{%
|
|
\unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
|
|
}%
|
|
\reserved@a
|
|
}{%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{@else@}{\FamilyKeyStateProcessed}%
|
|
\FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
|
|
{\scr@local@levelincrease}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{level}{%
|
|
\FamilySetCounterMacro{KOMAarg}{level}{\reserved@b}{##1}%
|
|
\edef\scr@local@leveloffset{%
|
|
\the\numexpr\scr@local@leveloffset+\scr@local@levelincrease\relax
|
|
}%
|
|
}%
|
|
\DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
|
|
\FamilySetCounterMacro{KOMAarg}{toclevel}{\reserved@b}{##1}%
|
|
\edef\scr@local@tocleveloffset{%
|
|
\the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
|
|
}%
|
|
}%
|
|
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{toclevel}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{level}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
|
|
\RelaxFamilyKey[.dsc]{KOMAarg}{@else@}%
|
|
}%
|
|
}%
|
|
\let\scr@local@levelincrease\relax
|
|
\let\scr@local@leveloffset\relax
|
|
\let\scr@local@tocleveloffset\relax
|
|
}
|
|
\newcommand*{\IfSectionCommandStyleIs}[2]{%
|
|
\scr@ifundefinedorrelax{#1}{%
|
|
\ClassError{\KOMAClassName}{%
|
|
\expandafter\string\csname #1\endcsname\space not defined}{%
|
|
You cannot compare the section command style of an undefined command.}%
|
|
}{%
|
|
\scr@ifundefinedorrelax{scr@#1@style}{%
|
|
\ClassError{\KOMAClassName}{%
|
|
\expandafter\string\csname #1\endcsname\space not a valid section
|
|
command%
|
|
}{%
|
|
You cannot detect the section command style of a command, that
|
|
has\MessageBreak
|
|
never been defined as a section command by KOMA-Script.%
|
|
}%
|
|
}%
|
|
}%
|
|
\scr@ifundefinedorrelax{scr@dsc@def@style@#2@command}{%
|
|
\ClassError{\KOMAClassName}{%
|
|
unknown section command style `#2'%
|
|
}{}%
|
|
}%
|
|
\Ifstr{\@nameuse{scr@#1@style}}{#2}%
|
|
}
|
|
\newcommand*{\use@preamble}[1]{%
|
|
\@ifundefined{#1@preamble}{}{%
|
|
\@nameuse{#1@preamble}%
|
|
\global\expandafter\let\csname#1@preamble\endcsname=\relax
|
|
}%
|
|
}
|
|
\newcommand*{\set@preamble}[1]{%
|
|
\kernel@ifnextchar [%]
|
|
{\set@@preamble{#1}}{\set@@@preamble{#1}[][\hsize]}%
|
|
}
|
|
\newcommand*{\set@@preamble}{}
|
|
\def\set@@preamble#1[#2]{%
|
|
\kernel@ifnextchar [%]
|
|
{\set@@@preamble{#1}[{#2}]}{\set@@@preamble{#1}[{#2}][\hsize]}%
|
|
}
|
|
\newcommand{\set@@@preamble}{}
|
|
\long\def\set@@@preamble#1[#2][#3]#4{%
|
|
\begingroup
|
|
\def\prmbl@pos{#2}\let\prmbl@hpos\relax\let\prmbl@vpos\relax
|
|
\expandafter \@tfor \expandafter \@tempa
|
|
\expandafter :\expandafter =\prmbl@pos
|
|
\do{%
|
|
\if \@tempa l%
|
|
\set@preamble@hpos{0}{#2}%
|
|
\fi%
|
|
\if \@tempa c%
|
|
\set@preamble@hpos{1}{#2}%
|
|
\fi%
|
|
\if \@tempa r%
|
|
\set@preamble@hpos{2}{#2}%
|
|
\fi%
|
|
\if \@tempa u%
|
|
\set@preamble@vpos{0}{#2}%
|
|
\fi%
|
|
\if \@tempa b%
|
|
\set@preamble@vpos{0}{#2}%
|
|
\fi
|
|
\if \@tempa o%
|
|
\set@preamble@vpos{1}{#2}%
|
|
\fi%
|
|
\if \@tempa t%
|
|
\set@preamble@vpos{1}{#2}%
|
|
\fi
|
|
}%
|
|
\@ifundefined{prmbl@hpos}{\def\prmbl@hpos{0}}{}%
|
|
\@ifundefined{prmbl@vpos}{\def\prmbl@vpos{0}}{}%
|
|
\ifcase\prmbl@hpos
|
|
\ifcase\prmbl@vpos
|
|
\set@@@@preamble{#1@u}{t}{#3}{}{\hfil}{#4}%
|
|
\else
|
|
\set@@@@preamble{#1@o}{b}{#3}{}{\hfil}{#4}%
|
|
\fi
|
|
\or
|
|
\ifcase\prmbl@vpos
|
|
\set@@@@preamble{#1@u}{t}{#3}{\hfil}{\hfil}{#4}%
|
|
\else
|
|
\set@@@@preamble{#1@o}{b}{#3}{\hfil}{\hfil}{#4}%
|
|
\fi
|
|
\else
|
|
\ifcase\prmbl@vpos
|
|
\set@@@@preamble{#1@u}{t}{#3}{\hfil}{}{#4}%
|
|
\else
|
|
\set@@@@preamble{#1@o}{b}{#3}{\hfil}{}{#4}%
|
|
\fi
|
|
\fi
|
|
\endgroup
|
|
}
|
|
\newcommand{\set@@@@preamble}[6]{%
|
|
\expandafter\gdef\csname #1@preamble\endcsname{%
|
|
\hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
|
|
}%
|
|
}
|
|
\newcommand*{\set@preamble@hpos}[2]{%
|
|
\@ifundefined{prbml@hpos}{%
|
|
\def\prmbl@hpos{#1}%
|
|
}{%
|
|
\ifnum \prmbl@hpos=0\relax\else%
|
|
\ClassError{\KOMAClassName}{%
|
|
inconsistent hpos options%
|
|
}{%
|
|
You've said `#2' as position option. But you have
|
|
to\MessageBreak
|
|
use only one of `l', `r', or `c' not two of
|
|
these.\MessageBreak
|
|
If you'll continue only first hpos option will be
|
|
used%
|
|
}%
|
|
\fi
|
|
}%
|
|
}
|
|
\newcommand*{\set@preamble@vpos}[2]{%
|
|
\@ifundefined{prbml@vpos}{%
|
|
\def\prmbl@vpos{#1}%
|
|
}{%
|
|
\ifnum \prmbl@vpos=0\relax\else%
|
|
\ClassError{\KOMAClassName}{%
|
|
inconsistent vpos options%
|
|
}{%
|
|
You've said `#2' as position option. But you have
|
|
to\MessageBreak
|
|
use only one of `t', `o', `b', or `u' not two of
|
|
these.\MessageBreak
|
|
If you'll continue only first vpos option will be
|
|
used%
|
|
}%
|
|
\fi
|
|
}%
|
|
}
|
|
\newcommand*{\bprot@dottedtocline}[5]{%
|
|
\expandafter\ifnum\scr@v@is@gt{2.96}\relax
|
|
\ClassWarning{\KOMAClassName}{%
|
|
usage of `\string\bprot@dottedtocline' is deprecated.\MessageBreak
|
|
Maybe an old auxiliary file has been used.\MessageBreak
|
|
Note, this command will be removed from\MessageBreak
|
|
KOMA-Script soon. So if this warning message\MessageBreak
|
|
persists after one more LaTeX run, you should\MessageBreak
|
|
redeclare the corresponding ToC entries using\MessageBreak
|
|
\string\DeclareTOCStyleEntry[\MessageBreak
|
|
\space\space level=\detokenize{#1},\MessageBreak
|
|
\space\space indent=\detokenize{#2},\MessageBreak
|
|
\space\space numwidth=\detokenize{#3}]{default}{...},\MessageBreak
|
|
where `...' is the name of the ToC level.\MessageBreak
|
|
Note, in future usage of `\string\bprot@dottedtocline'\MessageBreak
|
|
could result in an error%
|
|
}%
|
|
\ifnum #1>\c@tocdepth \else
|
|
\ifnum \lastpenalty<\numexpr 20010-#1\relax
|
|
\addpenalty{\@lowpenalty}%
|
|
\fi
|
|
\@dottedtocline{#1}{#2}{#3}{#4}{#5}%
|
|
\penalty \numexpr 20009-#1\relax
|
|
\fi
|
|
\else
|
|
\@dottedtocline{#1}{#2}{#3}{#4}{#5}%
|
|
\fi
|
|
}
|
|
\newif\if@mainmatter\@mainmattertrue
|
|
\newcommand*\frontmatter{%
|
|
\if@twoside\cleardoubleoddpage\else\clearpage\fi
|
|
\@mainmatterfalse\pagenumbering{roman}%
|
|
}
|
|
\newcommand*\mainmatter{%
|
|
\if@twoside\cleardoubleoddpage\else\clearpage\fi
|
|
\@mainmattertrue\pagenumbering{arabic}%
|
|
}
|
|
\newcommand*\backmatter{%
|
|
\if@openright\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse
|
|
}
|
|
\newcommand*\appendix{%
|
|
\Ifstr{\@currenvir}{appendix}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You are using
|
|
`\string\begin{appendix}...\string\end{appendix}'.\MessageBreak
|
|
You should note, that `\string\appendix' is a mostly
|
|
globally\MessageBreak
|
|
working command not an enviroment with only local\MessageBreak
|
|
effects. Therefore `\string\end{appendix}' will neither\MessageBreak
|
|
switch back to normal section numbering nor finish\MessageBreak
|
|
every other effect of `\string\begin{appendix}'.\MessageBreak
|
|
Nevertheless, some effects may end with\MessageBreak
|
|
`\string\end{appendix}' and the document may become\MessageBreak
|
|
inconsistent.\MessageBreak
|
|
Because of this, you should remove `\string\end{appendix}'\MessageBreak
|
|
and replace `\string\begin{appendix}' by command\MessageBreak
|
|
`\string\appendix'%
|
|
}%
|
|
}{}%
|
|
\par%
|
|
\setcounter{chapter}{0}%
|
|
\setcounter{section}{0}%
|
|
\gdef\@chapapp{\appendixname}%
|
|
\gdef\thechapter{\@Alph\c@chapter}%
|
|
\csname appendixmore\endcsname
|
|
}
|
|
\newcommand*{\scr@startpart}[1]{%
|
|
\ExecuteDoHook{heading/preinit/#1}%
|
|
\if@openright\cleardoublepage\else\clearpage\fi
|
|
\scr@ifundefinedorrelax{#1pagestyle}{}{%
|
|
\Ifstr{#1pagestyle}{}{}{%
|
|
\thispagestyle{\@nameuse{#1pagestyle}}%
|
|
}%
|
|
}%
|
|
\if@twocolumn
|
|
\onecolumn
|
|
\@tempswatrue
|
|
\else
|
|
\@tempswafalse
|
|
\fi
|
|
\@tempskipa=\glueexpr\@nameuse{scr@#1@beforeskip}\relax
|
|
\@ifundefined{scr@#1@afterindent}{\@afterindentfalse}{%
|
|
\csname scr@#1@afterindent\endcsname
|
|
{\@afterindenttrue}{\@afterindentfalse}{%
|
|
\@afterindenttrue
|
|
\ifdim\@tempskipa<\z@
|
|
\@tempskipa=-\@tempskipa
|
|
\@afterindentfalse
|
|
\fi
|
|
}%
|
|
}%
|
|
\ExecuteDoHook{heading/postinit/#1}%
|
|
\partheadstartvskip
|
|
\vbox to\z@{\vss\use@preamble{#1@o}\strut\par}%
|
|
\vskip-\baselineskip\nobreak
|
|
\expandafter\SecDef\csname @#1\expandafter\endcsname\csname @s#1\endcsname
|
|
}
|
|
\newcommand{\scr@@startpart}{}
|
|
\long\def\scr@@startpart#1[#2]#3{%
|
|
\ExecuteDoHook{heading/branch/nostar/#1}%
|
|
\ifnum \scr@osectarg=\z@
|
|
\@scr@tempswafalse
|
|
\else
|
|
\scr@istest#2=\@nil
|
|
\fi
|
|
\@currentusenumbertrue
|
|
\if@scr@tempswa
|
|
\setkeys{KOMAarg.section}{tocentry={#3},head={#3},reference={#3},#2}%
|
|
\else
|
|
\ifcase \scr@osectarg\relax
|
|
\setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#3},head={#2},reference={#3}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#2},head={#3},reference={#2}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
|
|
\fi
|
|
\fi
|
|
\Ifnumbered{#1}{%
|
|
\refstepcounter{#1}%
|
|
\expandafter\@maybeautodot\csname the#1\endcsname
|
|
\typeout{#1 \csname the#1\endcsname.}%
|
|
\ifx\@currenttocentry\@empty\else
|
|
\@ifundefined{#1tocformat}{%
|
|
\expandafter\gdef\csname #1tocformat\endcsname
|
|
{\csname the#1\endcsname}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{add#1tocentry}{%
|
|
\addtocentrydefault{#1}%
|
|
}{%
|
|
\@nameuse{add#1tocentry}%
|
|
}{\csname\@ifundefined{#1tocformat}{the#1}{#1tocformat}\endcsname}%
|
|
{\@currenttocentry}%
|
|
\fi
|
|
}{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.18}\relax\else
|
|
\begingroup
|
|
\let\@elt\@stpelt
|
|
\csname cl@#1\endcsname
|
|
\endgroup
|
|
\fi
|
|
\typeout{#1 without number}%
|
|
\ifx\@currenttocentry\@empty\else
|
|
\hy@insteadofrefstepcounter{#1}%
|
|
\scr@ifundefinedorrelax{add#1tocentry}{%
|
|
\addtocentrydefault{#1}%
|
|
}{%
|
|
\@nameuse{add#1tocentry}%
|
|
}{}{\@currenttocentry}%
|
|
\fi
|
|
}%
|
|
\begingroup
|
|
\def\IfUseNumber{\Ifnumbered{#1}}%
|
|
\ExecuteDoHook{heading/begingroup/#1}%
|
|
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
|
|
\raggedpart
|
|
\normalfont\usekomafont{disposition}{\nobreak
|
|
\IfUseNumber{%
|
|
\partlineswithprefixformat{#1}{%
|
|
\usekomafont{#1prefix}{\nobreak\@nameuse{#1format}}%
|
|
\setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}%
|
|
\partheadmidvskip
|
|
}{%
|
|
\usekomafont{#1}{\nobreak\interlinepenalty \@M#3\strut\@@par}%
|
|
}%
|
|
}{%
|
|
\partlineswithprefixformat{#1}{}{%
|
|
\usekomafont{#1}{\nobreak\interlinepenalty \@M#3\strut\@@par}%
|
|
}
|
|
}%
|
|
\expandafter\ifx\csname #1mark\endcsname\@gobble
|
|
\@mkboth{}{}%
|
|
\else
|
|
\csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
|
|
\fi
|
|
}%
|
|
\ExecuteDoHook{heading/endgroup/#1}%
|
|
\endgroup
|
|
\@nameuse{@end#1}%
|
|
\@afterheading
|
|
}
|
|
\newcommand{\scr@@startspart}[2]{%
|
|
\ExecuteDoHook{heading/branch/star/#1}%
|
|
\begingroup
|
|
\let\@mkboth\@gobbletwo
|
|
\hy@insteadofrefstepcounter{#1}%
|
|
\endgroup
|
|
\begingroup
|
|
\let\IfUseNumber\@secondoftwo
|
|
\ExecuteDoHook{heading/begingroup/#1}%
|
|
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
|
|
\raggedpart
|
|
\normalfont\usekomafont{disposition}{%
|
|
\nobreak
|
|
\partlineswithprefixformat{#1}{}{%
|
|
\usekomafont{#1}{\nobreak\interlinepenalty \@M#2\strut\@@par}%
|
|
}%
|
|
\@mkboth{}{}%
|
|
}%
|
|
\ExecuteDoHook{heading/endgroup/#1}%
|
|
\endgroup
|
|
\@nameuse{@end#1}%
|
|
}
|
|
\newcommand{\partlineswithprefixformat}[3]{%
|
|
#2#3%
|
|
}
|
|
\newcommand*{\scr@@endpart}[1]{%
|
|
\vbox to\z@{\use@preamble{#1@u}\vss}%
|
|
\@tempskipa=\glueexpr\csname scr@#1@afterskip\endcsname\relax\relax
|
|
\ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
|
|
\partheadendvskip
|
|
\partheademptypage
|
|
\if@tempswa
|
|
\twocolumn
|
|
\fi
|
|
}
|
|
\newcommand*{\hy@insteadofrefstepcounter}[1]{}
|
|
\let\hy@insteadofrefstepcounter\@gobble
|
|
\newcommand*{\scr@chapter@before@hyperref@patch}{%
|
|
\let\scr@orig@chapter\@chapter
|
|
\let\scr@orig@schapter\@schapter
|
|
\let\scr@orig@addchap\@addchap
|
|
}
|
|
\BeforePackage{hyperref}{\scr@chapter@before@hyperref@patch}
|
|
\newcommand*{\scr@chapter@after@hyperref@patch}{%
|
|
\let\@chapter\scr@orig@chapter
|
|
\let\@schapter\scr@orig@schapter
|
|
\let\@addchap\scr@orig@addchap
|
|
\ifx\hy@insteadofrefstepcounter\@gobble
|
|
\renewcommand*{\hy@insteadofrefstepcounter}[1]{%
|
|
\Hy@MakeCurrentHrefAuto{##1*}%
|
|
\Hy@raisedlink{%
|
|
\hyper@anchorstart{\@currentHref}\hyper@anchorend
|
|
}%
|
|
}%
|
|
\fi
|
|
}
|
|
\AfterPackage!{hyperref}{\scr@chapter@after@hyperref@patch}
|
|
\newcommand*{\addparttocentry}[2]{%
|
|
\addtocentrydefault{part}{#1}{#2}%
|
|
}
|
|
\newcommand\addpart{%
|
|
\SecDef\@addpart\@saddpart
|
|
}
|
|
\newcommand*{\@addpart}{}
|
|
\long\def\@addpart[#1]#2{%
|
|
\edef\reserved@a{%
|
|
\unexpanded{%
|
|
\part[{#1}]{#2}%
|
|
\c@secnumdepth=
|
|
}\the\c@secnumdepth\relax
|
|
}%
|
|
\c@secnumdepth=\numexpr \partnumdepth-1\relax
|
|
\reserved@a
|
|
}
|
|
\newcommand{\@saddpart}[1]{%
|
|
\part*{#1}%
|
|
\addpartmark{}%
|
|
}
|
|
\newcounter{part}
|
|
\renewcommand*{\thepart}{\@Roman\c@part}
|
|
\newcommand*{\partformat}{\partname~\thepart\autodot}
|
|
\newcommand*\partname{Part}
|
|
\newcommand*{\partmark}[1]{\@mkboth{}{}}
|
|
\newcommand*\addpartmark[1]{%
|
|
\begingroup
|
|
\expandafter\let\csname if@mainmatter\expandafter\endcsname
|
|
\csname iffalse\endcsname
|
|
\c@secnumdepth=\numexpr \partnumdepth-1\relax
|
|
\partmark{#1}%
|
|
\endgroup
|
|
}
|
|
\newcommand*{\raggedpart}{}
|
|
\let\raggedpart\centering
|
|
\newcommand*{\scr@fnt@part}{\size@part}
|
|
\newcommand*{\scr@fnt@partnumber}{\size@partnumber}
|
|
\aliaskomafont{partprefix}{partnumber}
|
|
\newkomafont{partentry}{\usekomafont{disposition}\large}
|
|
\newkomafont{partentrypagenumber}{}
|
|
\newcommand*{\scr@startchapter}[1]{%
|
|
\ExecuteDoHook{heading/preinit/#1}%
|
|
\if@openright\cleardoublepage\else\clearpage\fi
|
|
\scr@ifundefinedorrelax{#1pagestyle}{}{%
|
|
\Ifstr{#1pagestyle}{}{}{%
|
|
\thispagestyle{\@nameuse{#1pagestyle}}%
|
|
}%
|
|
}%
|
|
\global\@topnum\z@
|
|
\@ifundefined{scr@#1@afterindent}{\@afterindentfalse}{%
|
|
\csname scr@#1@afterindent\endcsname
|
|
{\@afterindenttrue}{\@afterindentfalse}{%
|
|
\@afterindenttrue
|
|
\@ifundefined{scr@#1@beforeskip}{\@afterindentfalse}{%
|
|
\ifdim\glueexpr\@nameuse{scr@#1@beforeskip}\relax<\z@
|
|
\@afterindentfalse
|
|
\fi
|
|
}%
|
|
}%
|
|
}%
|
|
\ExecuteDoHook{heading/postinit/#1}%
|
|
\expandafter\SecDef\csname @#1\expandafter\endcsname\csname @s#1\endcsname
|
|
}
|
|
\newcommand*{\scr@@startchapter}{}
|
|
\def\scr@@startchapter#1[#2]#3{%
|
|
\ExecuteDoHook{heading/branch/nostar/#1}%
|
|
\ifnum \scr@osectarg=\z@
|
|
\@scr@tempswafalse
|
|
\else
|
|
\scr@istest#2=\@nil
|
|
\fi
|
|
\@currentusenumbertrue
|
|
\if@scr@tempswa
|
|
\setkeys{KOMAarg.section}{tocentry={#3},head={#3},reference={#3},#2}%
|
|
\else
|
|
\ifcase \scr@osectarg\relax
|
|
\setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#3},head={#2},reference={#3}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#2},head={#3},reference={#2}}%
|
|
\or
|
|
\setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
|
|
\fi
|
|
\fi
|
|
\Ifnumbered{#1}{%
|
|
\if@mainmatter
|
|
\@tempswatrue
|
|
\else\@tempswafalse\fi
|
|
}{\@tempswafalse}%
|
|
\if@tempswa
|
|
\refstepcounter{#1}%
|
|
\expandafter\@maybeautodot\csname the#1\endcsname
|
|
\typeout{#1 \csname the#1\endcsname.}%
|
|
\ifx\@currenttocentry\@empty\else
|
|
\@ifundefined{#1tocformat}{%
|
|
\expandafter\gdef\csname #1tocformat\endcsname
|
|
{\csname the#1\endcsname}%
|
|
}{}%
|
|
\scr@ifundefinedorrelax{add#1tocentry}{%
|
|
\addtocentrydefault{#1}%
|
|
}{%
|
|
\@nameuse{add#1tocentry}%
|
|
}{\csname\@ifundefined{#1tocformat}{the#1}{#1tocformat}\endcsname}%
|
|
{\@currenttocentry}%
|
|
\fi
|
|
\else
|
|
\expandafter\ifnum\scr@v@is@lt{3.15}\relax\else
|
|
\begingroup
|
|
\let\@elt\@stpelt
|
|
\csname cl@#1\endcsname
|
|
\endgroup
|
|
\fi
|
|
\typeout{#1 without number}%
|
|
\ifx\@currenttocentry\@empty\else
|
|
\hy@insteadofrefstepcounter{#1}%
|
|
\scr@ifundefinedorrelax{add#1tocentry}{%
|
|
\addtocentrydefault{#1}%
|
|
}{%
|
|
\@nameuse{add#1tocentry}%
|
|
}{}{\@currenttocentry}%
|
|
\fi
|
|
\fi
|
|
\csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
|
|
\ifdim \@chapterlistsgap>\z@
|
|
\doforeachtocfile{%
|
|
\Iftocfeature{\@currext}{chapteratlist}{%
|
|
\addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}%
|
|
}{}%
|
|
}%
|
|
\@ifundefined{float@addtolists}{}{%
|
|
\scr@float@addtolists@warning
|
|
\float@addtolists{\protect\addvspace{\@chapterlistsgap}}%
|
|
}%
|
|
\fi
|
|
\if@twocolumn
|
|
\if@at@twocolumn
|
|
\@nameuse{@make#1head}{#3}%
|
|
\else
|
|
\@topnewpage[\@nameuse{@make#1head}{#3}]%
|
|
\fi
|
|
\else
|
|
\@nameuse{@make#1head}{#3}%
|
|
\fi
|
|
\@afterheading
|
|
}
|
|
\newcommand*{\scr@@startschapter}[2]{%
|
|
\ExecuteDoHook{heading/branch/star/#1}%
|
|
\begingroup
|
|
\let\@mkboth\@gobbletwo
|
|
\hy@insteadofrefstepcounter{#1}%
|
|
\endgroup
|
|
\if@twocolumn
|
|
\if@at@twocolumn
|
|
\@nameuse{@makes#1head}{#2}%
|
|
\else
|
|
\@topnewpage[\@nameuse{@makes#1head}{#2}]%
|
|
\fi
|
|
\else
|
|
\@nameuse{@makes#1head}{#2}%
|
|
\fi
|
|
\@afterheading
|
|
}
|
|
%% \begin{macro}{\if@at@twocolumn}
|
|
\newif\if@at@twocolumn
|
|
\newcommand*\scr@topnewpage{}
|
|
\let\scr@topnewpage\@topnewpage
|
|
\long\def\@topnewpage[#1]{%
|
|
\@at@twocolumntrue\scr@topnewpage[{#1}]\@at@twocolumnfalse
|
|
}
|
|
\newcommand*{\scr@makechapterhead}[2]{%
|
|
\use@chapter@o@preamble{#1}%
|
|
\@nameuse{@@make#1head}{#2}%
|
|
\use@preamble{#1@u}%
|
|
}
|
|
\newcommand*{\scr@makeschapterhead}[2]{%
|
|
\use@chapter@o@preamble{#1}%
|
|
\@nameuse{@@makes#1head}{#2}%
|
|
\use@preamble{#1@u}%
|
|
}
|
|
\newcommand*{\scr@@makechapterhead}[2]{%
|
|
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
|
|
\csname scr@#1@afterindent\endcsname
|
|
{\@afterindenttrue}{\@afterindentfalse}{%
|
|
\ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\else
|
|
\expandafter\ifnum\scr@v@is@ge{3.22}\@afterindenttrue\fi
|
|
\fi
|
|
}%
|
|
\chapterheadstartvskip
|
|
{%
|
|
\def\IfUseNumber{\Ifnumbered{#1}}%
|
|
\if@mainmatter\else\let\IfUseNumber\@secondoftwo\fi
|
|
\ExecuteDoHook{heading/begingroup/#1}%
|
|
\if@chapterprefix
|
|
\let\IfUsePrefixLine\@firstoftwo
|
|
\else
|
|
\let\IfUsePrefixLine\@secondoftwo
|
|
\fi
|
|
\setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ plus 1fil}%
|
|
\normalfont\usekomafont{disposition}{%
|
|
\usekomafont{#1}{%
|
|
\settoheight{\@tempskipa}{%
|
|
{\usekomafont{#1prefix}{%
|
|
\vrule \@width\z@ \@height\csname scr@#1@innerskip\endcsname}}%
|
|
}%
|
|
\raggedchapter
|
|
\IfUseNumber{%
|
|
\IfUsePrefixLine{%
|
|
\chapterlineswithprefixformat{#1}%
|
|
{{\usekomafont{#1prefix}{\csname #1format\endcsname%
|
|
\setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}%
|
|
\chapterheadmidvskip}}}%
|
|
{\interlinepenalty \@M#2\@@par}%
|
|
}{%
|
|
\chapterlinesformat{#1}%
|
|
{\csname #1format\endcsname}%
|
|
{\interlinepenalty \@M#2\@@par}%
|
|
}%
|
|
}{%
|
|
\IfUsePrefixLine{%
|
|
\chapterlineswithprefixformat{#1}%
|
|
{}%
|
|
{\interlinepenalty \@M#2\@@par}%
|
|
}{%
|
|
\chapterlinesformat{#1}%
|
|
{}%
|
|
{\interlinepenalty \@M#2\@@par}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
\ExecuteDoHook{heading/endgroup/#1}%
|
|
}%
|
|
\nobreak\par\nobreak
|
|
\@tempskipa=\glueexpr \csname scr@#1@afterskip\endcsname\relax\relax
|
|
\chapterheadendvskip
|
|
}
|
|
\newcommand*{\scr@@makeschapterhead}[2]{%
|
|
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
|
|
\csname scr@#1@afterindent\endcsname
|
|
{\@afterindenttrue}{\@afterindentfalse}{%
|
|
\ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\else
|
|
\expandafter\ifnum\scr@v@is@ge{3.22}\@afterindenttrue\fi
|
|
\fi
|
|
}%
|
|
\chapterheadstartvskip
|
|
{%
|
|
\let\IfUseNumber\@secondoftwo
|
|
\ExecuteDoHook{heading/begingroup/#1}%
|
|
\if@chapterprefix
|
|
\let\IfUsePrefixLine\@firstoftwo
|
|
\else
|
|
\let\IfUsePrefixLine\@secondoftwo
|
|
\fi
|
|
\setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ plus 1fil}%
|
|
\normalfont\usekomafont{disposition}{%
|
|
\usekomafont{#1}{%
|
|
\raggedchapter
|
|
\IfUsePrefixLine{%
|
|
\chapterlineswithprefixformat{#1}%
|
|
{}%
|
|
{\interlinepenalty \@M#2\@@par}%
|
|
}{%
|
|
\chapterlinesformat{#1}%
|
|
{}%
|
|
{\interlinepenalty \@M#2\@@par}%
|
|
}%
|
|
}%
|
|
}%
|
|
\ExecuteDoHook{heading/endgroup/#1}%
|
|
}%
|
|
\nobreak\par\nobreak
|
|
\@tempskipa=\glueexpr \csname scr@#1@afterskip\endcsname\relax\relax
|
|
\chapterheadendvskip
|
|
}
|
|
\newcommand{\chapterlinesformat}[3]{%
|
|
\@hangfrom{#2}{#3}%
|
|
}
|
|
\newcommand{\chapterlineswithprefixformat}[3]{%
|
|
#2#3%
|
|
}
|
|
\newcommand*{\use@chapter@o@preamble}[1]{%
|
|
{%
|
|
\settoheight{\@tempdima}{%
|
|
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
|
|
\ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
|
|
\vbox{\chapterheadstartvskip}%
|
|
}%
|
|
\settodepth{\@tempdimb}{%
|
|
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
|
|
\ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
|
|
\vbox{\chapterheadstartvskip}%
|
|
}%
|
|
\addtolength{\@tempdima}{\@tempdimb}%
|
|
\setbox\z@\vbox{%
|
|
\use@preamble{#1@o}%
|
|
}%
|
|
\setlength{\@tempdimb}{\ht0}%
|
|
\addtolength{\@tempdimb}{\dp0}%
|
|
\vbox to \z@{%
|
|
\vskip-\baselineskip
|
|
\vbox to \@tempdima{%
|
|
\vfill
|
|
\box\z@
|
|
}%
|
|
\vss
|
|
}\vskip-\parskip\vskip-\baselineskip
|
|
\ifdim \@tempdimb>\@tempdima%
|
|
\addtolength{\@tempdimb}{-\@tempdima}%
|
|
\ifdim\@tempdimb<\vfuzz
|
|
\ClassInfo{\KOMAClassName}{%
|
|
preamble before #1 is \the\@tempdimb\space to high.\MessageBreak
|
|
Tolerated without warning because of\MessageBreak
|
|
\string\vfuzz\space = \the\vfuzz\space >= \the\@tempdimb
|
|
}%
|
|
\else
|
|
\ClassWarning{\KOMAClassName}{%
|
|
preamble before #1 is \the\@tempdimb\space to high.\MessageBreak
|
|
To avoid the overfull \string\vbox\space you may
|
|
change\MessageBreak
|
|
the `beforeskip' value using
|
|
\string\RedeclareSectionCommand\MessageBreak
|
|
at the preamble of your document.\MessageBreak
|
|
You may also change \string\setchapterpreamble\MessageBreak
|
|
before the command, which generates the message
|
|
about\MessageBreak
|
|
an overfull \string\vbox
|
|
}%
|
|
\fi
|
|
\fi%
|
|
}%
|
|
}
|
|
\newcommand*{\addchaptertocentry}[2]{%
|
|
\addtocentrydefault{chapter}{#1}{#2}%
|
|
\if@chaptertolists
|
|
\doforeachtocfile{%
|
|
\Iftocfeature{\@currext}{chapteratlist}{%
|
|
\addxcontentsline{\@currext}{chapteratlist}[{#1}]{#2}%
|
|
}{}%
|
|
}%
|
|
\@ifundefined{float@addtolists}{}{\scr@float@addtolists@warning}%
|
|
\fi
|
|
}
|
|
\newcommand\addchap{%
|
|
\SecDef\@addchap\@saddchap
|
|
}%
|
|
\newcommand*{\@addchap}{}%
|
|
\long\def\@addchap[#1]#2{%
|
|
\edef\reserved@a{%
|
|
\unexpanded{%
|
|
\chapter[{#1}]{#2}%
|
|
\c@secnumdepth=
|
|
}\the\c@secnumdepth\relax
|
|
}%
|
|
\c@secnumdepth=\numexpr \chapternumdepth-1\relax
|
|
\reserved@a
|
|
}
|
|
\newcommand{\@saddchap}[1]{%
|
|
\chapter*{#1}%
|
|
\addchapmark{}%
|
|
}%
|
|
\AfterPackage{hyperref}{%
|
|
\@ifpackagelater{hyperref}{2001/02/19}{}{%
|
|
\ClassWarningNoLine{\KOMAClassName}{%
|
|
You are using an old version of the hyperref package!\MessageBreak%
|
|
This version has a buggy hack in many drivers,\MessageBreak%
|
|
causing \string\addchap\space to behave strangely.\MessageBreak%
|
|
Please update hyperref to at least version 6.71b%
|
|
}%
|
|
}%
|
|
}
|
|
\newcommand*{\raggedchapterentry}{}
|
|
\newcommand*{\l@chapteratlist}{\l@chapter}
|
|
\newcounter{chapter}
|
|
\renewcommand*{\thechapter}{\@arabic\c@chapter}
|
|
\newcommand*{\chapterformat}{%
|
|
\mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot
|
|
\IfUsePrefixLine{}{\enskip}}%
|
|
}
|
|
\newcommand*\chaptermarkformat{\chapappifchapterprefix{\ }%
|
|
\thechapter\autodot\enskip}
|
|
\newcommand*\chaptername{Chapter}
|
|
\newcommand*\appendixname{Appendix}
|
|
\newcommand*{\chapappifprefix}[1][]{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Please don't use obsolete command
|
|
\string\chapappifprefix.\MessageBreak
|
|
The new command \string\chapappifchapterprefix\space has
|
|
an\MessageBreak
|
|
obligatory instead of an optional argument. Use that\MessageBreak
|
|
new command%
|
|
}%
|
|
\chapappifchapterprefix{#1}%
|
|
}
|
|
\newcommand*{\chapappifchapterprefix}[1]{%
|
|
\IfChapterUsesPrefixLine{\chapapp#1}{}%
|
|
}
|
|
\newcommand*{\IfChapterUsesPrefixLine}{%
|
|
\if@chapterprefix\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
|
|
}
|
|
\newcommand*{\chapapp}{\@chapapp}
|
|
\newcommand*\@chapapp{\chaptername}
|
|
\newcommand*\chaptermark[1]{}
|
|
\newcommand*\addchapmark[1]{%
|
|
\begingroup
|
|
\expandafter\let\csname if@mainmatter\expandafter\endcsname
|
|
\csname iffalse\endcsname
|
|
\c@secnumdepth=\numexpr \chapternumdepth-1\relax
|
|
\chaptermark{#1}%
|
|
\endgroup
|
|
}
|
|
\newcommand*{\raggedchapter}{\raggedsection}
|
|
\newcommand*{\scr@fnt@chapter}{\size@chapter}
|
|
\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix}
|
|
\newkomafont{chapterentry}{\usekomafont{disposition}}
|
|
\newkomafont{chapterentrypagenumber}{}
|
|
\newkomafont{chapterentrydots}{}
|
|
\newcommand\addsec{\SecDef\@addsec\@saddsec}
|
|
\newcommand*{\@addsec}{}
|
|
\def\@addsec[#1]#2{%
|
|
\edef\reserved@a{%
|
|
\unexpanded{%
|
|
\section[{#1}]{#2}%
|
|
\c@secnumdepth=
|
|
}\the\c@secnumdepth\relax
|
|
}%
|
|
\c@secnumdepth=\numexpr \sectionnumdepth-1\relax
|
|
\reserved@a
|
|
}
|
|
\newcommand*{\@saddsec}[1]{%
|
|
\section*{#1}\addsecmark{}%
|
|
}
|
|
\newkomafont{minisec}{}
|
|
\newcommand\minisec[1]{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.13a}\relax
|
|
\@afterindentfalse \vskip 1.5ex
|
|
\else
|
|
\if@noskipsec \leavevmode \fi
|
|
\par
|
|
\@afterindentfalse
|
|
\if@nobreak
|
|
\everypar{}%
|
|
\else
|
|
\addpenalty\@secpenalty\addvspace{1.5ex}%
|
|
\fi
|
|
\fi
|
|
{\parindent \z@
|
|
\expandafter\ifnum\scr@v@is@gt{2.96}\relax
|
|
\setlength{\parfillskip}{\z@ plus 1fil}\fi
|
|
\raggedsection\normalfont\sectfont\nobreak
|
|
\usekomafont{minisec}{\nobreak\interlinepenalty \@M #1\par\nobreak}%
|
|
}\nobreak
|
|
\@afterheading
|
|
}
|
|
\newcommand*{\addsectiontocentry}[2]{%
|
|
\addtocentrydefault{section}{#1}{#2}%
|
|
}
|
|
\newcommand*{\addsubsectiontocentry}[2]{%
|
|
\addtocentrydefault{subsection}{#1}{#2}%
|
|
}
|
|
\newcommand*{\addparagraphtocentry}[2]{%
|
|
\addtocentrydefault{paragraph}{#1}{#2}%
|
|
}
|
|
\newcommand*{\addsubparagraphtocentry}[2]{%
|
|
\addtocentrydefault{subparagraph}{#1}{#2}%
|
|
}
|
|
\newcounter{section}[chapter]
|
|
\renewcommand*\thesection{%
|
|
\expandafter\ifnum\scr@v@is@gt{2.97d}%
|
|
\if@mainmatter\thechapter.\fi
|
|
\else
|
|
\thechapter.%
|
|
\fi
|
|
\@arabic\c@section
|
|
}
|
|
\newcommand*\sectionmarkformat{\thesection\autodot\enskip}
|
|
\newcounter{subsection}[section]
|
|
\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection}
|
|
\newcounter{subsubsection}[subsection]
|
|
\renewcommand*{\thesubsubsection}{%
|
|
\thesubsection.\@arabic\c@subsubsection
|
|
}
|
|
\newcounter{paragraph}[subsubsection]
|
|
\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph}
|
|
\newcounter{subparagraph}[paragraph]
|
|
\renewcommand*{\thesubparagraph}{%
|
|
\theparagraph.\@arabic\c@subparagraph
|
|
}
|
|
\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip}
|
|
\renewcommand*{\@seccntformat}[1]{%
|
|
\expandafter\ifnum\scr@v@is@lt{3.17}\relax
|
|
\protect\othersectionlevelsformat{#1}{%
|
|
\expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
|
|
\else
|
|
\scr@ifundefinedorrelax{#1format}{%
|
|
\protect\othersectionlevelsformat{#1}{%
|
|
\expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
|
|
}{\expandafter\protect\csname #1format\endcsname}%
|
|
\fi
|
|
}
|
|
\newcommand*\addsecmark[1]{%
|
|
\begingroup
|
|
\c@secnumdepth=\numexpr \sectionnumdepth-1\relax
|
|
\sectionmark{#1}%
|
|
\endgroup
|
|
}
|
|
\newcommand*{\scr@fnt@section}{\size@section}
|
|
\newcommand*{\scr@fnt@subsection}{\size@subsection}
|
|
\newcommand*{\scr@fnt@subsubsection}{\size@subsubsection}
|
|
\newcommand*{\scr@fnt@paragraph}{\size@paragraph}
|
|
\newcommand*{\scr@fnt@subparagraph}{\size@subparagraph}
|
|
\DeclareSectionCommand[%
|
|
style=chapter,%
|
|
level=\z@,%
|
|
pagestyle=plain,%
|
|
tocstyle=chapter,%
|
|
tocindent=\z@,%
|
|
tocnumwidth=1.5em%
|
|
]{chapter}
|
|
\DeclareSectionCommand[%
|
|
style=section,%
|
|
level=1,%
|
|
indent=\z@,%
|
|
beforeskip=-3.5ex \@plus -1ex \@minus -.2ex,%
|
|
afterskip=2.3ex \@plus.2ex,%
|
|
tocstyle=section,%
|
|
tocindentfollows=chapter,%
|
|
tocindent=1.5em,%
|
|
tocnumwidth=2.3em%
|
|
]{section}
|
|
\DeclareSectionCommand[%
|
|
style=part,%
|
|
level=\m@ne,%
|
|
pagestyle=plain,%
|
|
tocstyle=part,%
|
|
toclevel=\m@ne,%
|
|
tocindent=\z@,%
|
|
tocnumwidth=2em%
|
|
]{part}
|
|
\DeclareSectionCommand[%
|
|
style=section,%
|
|
level=2,%
|
|
indent=\z@,%
|
|
beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
|
|
afterskip=1.5ex \@plus .2ex,%
|
|
tocstyle=section,%
|
|
tocindent=3.8em,%
|
|
tocnumwidth=3.2em%
|
|
]{subsection}
|
|
\DeclareSectionCommand[%
|
|
style=section,%
|
|
level=3,%
|
|
indent=\z@,%
|
|
beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
|
|
afterskip=1.5ex \@plus .2ex,%
|
|
tocstyle=section,%
|
|
tocindent=7.0em,%
|
|
tocnumwidth=4.1em%
|
|
]{subsubsection}
|
|
\DeclareSectionCommand[%
|
|
style=section,%
|
|
level=4,%
|
|
indent=\z@,%
|
|
beforeskip=3.25ex \@plus1ex \@minus.2ex,%
|
|
afterskip=-1em,%
|
|
tocindentfollows=subsubsection,%
|
|
tocstyle=section,%
|
|
tocindent=10em,%
|
|
tocnumwidth=5em%
|
|
]{paragraph}
|
|
\DeclareSectionCommand[%
|
|
style=section,%
|
|
level=5,%
|
|
indent=\scr@parindent,%
|
|
beforeskip=3.25ex \@plus1ex \@minus .2ex,%
|
|
afterskip=-1em,%
|
|
tocstyle=section,%
|
|
tocindent=12em,%
|
|
tocnumwidth=6em%
|
|
]{subparagraph}
|
|
\expandafter\ifnum\scr@v@is@lt{3.15}\relax
|
|
\let\scr@subparagraph@sectionindent\parindent
|
|
\else
|
|
\def\scr@subparagraph@sectionindent{\scr@parindent}%
|
|
\fi
|
|
\newcommand*{\scr@fnt@disposition}{\sectfont}
|
|
\aliaskomafont{sectioning}{disposition}
|
|
%%% From File: $Id: scrkernel-miscellaneous.dtx 3487 2020-04-27 07:19:23Z kohm $
|
|
%%% (run: body)
|
|
\newif\if@restonecol
|
|
\newcommand{\dictum}[2][]{\par%
|
|
\begingroup
|
|
\raggeddictum\parbox{\dictumwidth}{%
|
|
{\@dictumfont{\raggeddictumtext #2\strut\par}%
|
|
\def\@tempa{#1}\ifx\@tempa\@empty\else%
|
|
{\raggeddictumtext\dictumrule}%
|
|
\raggeddictumauthor\@dictumauthorfont\dictumauthorformat{#1}%
|
|
\strut\par%
|
|
\fi%
|
|
}%
|
|
}\par%
|
|
\endgroup
|
|
}
|
|
\newcommand*{\dictumrule}{\vskip-1ex\hrulefill\par}%
|
|
\newcommand*{\dictumwidth}{.3333\textwidth}
|
|
\newcommand*{\raggeddictum}{\raggedleft}
|
|
\newcommand*{\dictumauthorformat}[1]{(#1)}
|
|
\newcommand*{\raggeddictumtext}{\raggedright}
|
|
\newcommand*{\raggeddictumauthor}{\raggedleft}
|
|
\newkomafont{dictum}{\normalfont\normalcolor\@gr@gsffamily\small}
|
|
\newkomafont{dictumauthor}{\itshape}
|
|
\aliaskomafont{dictumtext}{dictum}
|
|
\setlength{\skip\@mpfootins}{\skip\footins}
|
|
\setlength\fboxsep{3\p@}
|
|
\setlength\fboxrule{.4\p@}
|
|
\@addtoreset{equation}{chapter}
|
|
\renewcommand*\theequation{%
|
|
\expandafter\ifnum\scr@v@is@gt{2.97d}%
|
|
\if@mainmatter\thechapter.\fi
|
|
\else
|
|
\thechapter.%
|
|
\fi
|
|
\@arabic\c@equation
|
|
}
|
|
\newcommand*{\new@tpo@label}{\@newl@bel{tpo}}
|
|
\AtBeginDocument{%
|
|
\if@filesw
|
|
\immediate\write\@auxout{%
|
|
\string\providecommand*\string\new@tpo@label[2]{}%
|
|
}%
|
|
\fi
|
|
}
|
|
\newcommand*{\scr@tpo}{0}
|
|
\newcommand*{\is@thispageodd}[1][\is@thispageodd@setlabel]{%
|
|
\@bsphack
|
|
\begingroup
|
|
\@tempcnta=\scr@tpo
|
|
\advance\@tempcnta by\@ne
|
|
\xdef\scr@tpo{\the\@tempcnta}%
|
|
\expandafter\ifx\csname tpo@\scr@tpo\endcsname\relax
|
|
\protect\G@refundefinedtrue
|
|
\ClassWarning{\KOMAClassName}{%
|
|
odd/even page label number \scr@tpo\space undefined}%
|
|
\edef\@tempa{\the\value{page}}%
|
|
\else
|
|
\edef\@tempa{\csname tpo@\scr@tpo\endcsname}%
|
|
\fi
|
|
\ifodd\number\@tempa
|
|
\aftergroup\thispagewasoddtrue
|
|
\else
|
|
\aftergroup\thispagewasoddfalse
|
|
\fi
|
|
\endgroup
|
|
\edef\is@thispageodd@setlabel{%
|
|
\if@filesw
|
|
\unexpanded{\protected@write\@auxout{\let\arabic\relax}}{%
|
|
\noexpand\string
|
|
\noexpand\new@tpo@label{\scr@tpo}{\noexpand\arabic{page}}}%
|
|
\fi
|
|
\noexpand\def\noexpand\is@thispageodd@setlabel
|
|
{\unexpanded\expandafter{\is@thispageodd@setlabel}}%
|
|
}%
|
|
#1%
|
|
\@esphack
|
|
}
|
|
\newcommand*{\is@thispageodd@setlabel}{}
|
|
\newif\ifthispagewasodd
|
|
\providecommand*{\ifthispageodd}{%
|
|
\ClassWarning{\KOMAClasSName}{%
|
|
Usage of deprecated command
|
|
`\string\ifthispageodd'.\MessageBreak
|
|
The command has been renamed because of a\MessageBreak
|
|
recommendation of The LaTeX Project Team.\MessageBreak
|
|
Please replace `\string\ifthispageodd' by `\string\Ifthispageodd'%
|
|
}%
|
|
\Ifthispageodd
|
|
}
|
|
\newcommand{\Ifthispageodd}{%
|
|
\is@thispageodd
|
|
\ifthispagewasodd
|
|
\expandafter\@firstoftwo
|
|
\else
|
|
\expandafter\@secondoftwo
|
|
\fi
|
|
}
|
|
\scr@ifundefinedorrelax{textsubscript}{%
|
|
\DeclareRobustCommand*\textsubscript[1]{%
|
|
\@textsubscript{\selectfont#1}%
|
|
}%
|
|
}{%
|
|
\scr@ifundefinedorrelax{textsubscript }{%
|
|
\DeclareRobustCommand*\textsubscript[1]{%
|
|
\@textsubscript{\selectfont#1}%
|
|
}%
|
|
}{}%
|
|
}
|
|
\providecommand*{\@textsubscript}[1]{%
|
|
{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}%
|
|
}
|
|
\providecommand*{\scr@endstrut}{\unskip\ifhmode\nobreak\strut\fi}
|
|
\newcommand*{\scr@package@not@recommended}[2]{%
|
|
\scr@ifundefinedorrelax{class@shoulddisablepackagewarning@list}{%
|
|
\@firstofone
|
|
}{%
|
|
\edef\reserved@a{%
|
|
\noexpand\in@{#1}{\class@shoulddisablepackagewarning@list}}%
|
|
\reserved@a
|
|
\ifin@\expandafter\@gobble\else\expandafter\@firstofone\fi
|
|
}{%
|
|
\BeforePackage{#1}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Usage of package `#1' together\MessageBreak
|
|
with a KOMA-Script class is not recommended.\MessageBreak
|
|
\if\relax\detokenize{#2}\relax\else
|
|
I'd suggest to use #2.\MessageBreak
|
|
\fi
|
|
Nevertheless, using requested\MessageBreak
|
|
package `#1'%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
\scr@package@not@recommended{emptypage}{%
|
|
option\MessageBreak
|
|
`cleardoublepage' with one of it's\MessageBreak
|
|
several values}
|
|
\scr@package@not@recommended{fancyhdr}{%
|
|
\MessageBreak
|
|
package `scrlayer' or `scrlayer-scrpage', because\MessageBreak
|
|
they support KOMA-Script classes.\MessageBreak
|
|
With `fancyhdr' several features of class `\KOMAClassName'\MessageBreak
|
|
like options `headsepline', `footsepline' or command\MessageBreak
|
|
`\string\MakeMarkcase' and the commands `\string\setkomafont' and\MessageBreak
|
|
`\string\addtokomafont' for the page style elements need\MessageBreak
|
|
explicite user intervention to work}
|
|
\scr@package@not@recommended{minitoc}{}
|
|
\scr@package@not@recommended{multitoc}{%
|
|
package `multicol' and, e.g.:\MessageBreak
|
|
\space\space
|
|
\string\BeforeStartingTOC{\string\begin{multicols}{2}}\MessageBreak
|
|
\space\space
|
|
\string\AfterStartingTOC{\string\end{multicols}}\MessageBreak
|
|
to make all ToCs two-columned.\MessageBreak
|
|
\@ifpackagelater{2018/07/18}{}{%
|
|
Note, package `multitoc' breaks additional\MessageBreak
|
|
ToCs generated by `\string\DeclareNewTOC' or\MessageBreak
|
|
packages like `listings' or `newcaption' and\MessageBreak
|
|
even the standard table of contents,\MessageBreak
|
|
list of figures or list of tables,\MessageBreak
|
|
if you omit the corresponding options `toc',\MessageBreak
|
|
`lof' or `lot'.%
|
|
}%
|
|
}
|
|
\scr@package@not@recommended{parskip}{%
|
|
option\MessageBreak
|
|
`parskip' with one of it's several values}
|
|
\scr@package@not@recommended{titleps}{%
|
|
package `scrlayer-scrpage'}
|
|
\AfterPackage*{sectsty}{%
|
|
\@ifpackagelater{sectsty}{2002/02/26}{%
|
|
\ClassInfo{\KOMAClassName}{Unknown `sectsty' release.\MessageBreak
|
|
Cross your fingers, that is compatible%
|
|
}%
|
|
}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Incompatible package `sectsty' loaded!\MessageBreak
|
|
Package `sectsty' up to version 2.0.2 is incompatible\MessageBreak
|
|
with KOMA-Script from version 2.8e released in 2001.\MessageBreak
|
|
You should avoid that package and configure the\MessageBreak
|
|
section titles of your document using the KOMA-Script\MessageBreak
|
|
user interface, e.g., \string\chapterlinesformat,\MessageBreak
|
|
\string\RedeclareSectionCommand\space etc. or you should ask\MessageBreak
|
|
the `sectsty' maintainer for a more compatible release.\MessageBreak
|
|
Ignoring this warning could result in several error\MessageBreak
|
|
messages and formatting issues after loading package\MessageBreak
|
|
`sectsty'%
|
|
}%
|
|
}%
|
|
}
|
|
\scr@package@not@recommended{tocbibind}{%
|
|
options like `listof=totoc'\MessageBreak
|
|
or `bibliography=totoc', or commands like\MessageBreak
|
|
`\string\setuptoc{toc}{totoc}' instead of this package,\MessageBreak
|
|
because it breaks several KOMA-Script features of\MessageBreak
|
|
the list of figures, list of tables, bibliography,\MessageBreak
|
|
index and the running head%
|
|
}
|
|
\scr@package@not@recommended{tocloft}{%
|
|
options like `listof=entryprefix',\MessageBreak
|
|
commands like `\string\listoflofentryname' or\MessageBreak
|
|
`\string\listoflotentryname',
|
|
and `\string\DeclareTOCStyleEntry' or\MessageBreak
|
|
`\string\RedeclareSectionCommand'
|
|
instead of this package,\MessageBreak
|
|
because it breaks several KOMA-Script features of\MessageBreak
|
|
the list of figures, list of tables and table of\MessageBreak
|
|
contents, i.e., options like `listof=numbered',\MessageBreak
|
|
`listof=flat or `toc=flat', commands like\MessageBreak
|
|
`\string\BeforeTOCHead{...}' and
|
|
`\string\AfterTOCHead{...}',\MessageBreak
|
|
`\string\BeforeStartingTOC{...}' and
|
|
\string\AfterStartingTOC{...}',\MessageBreak
|
|
all features of `\string\DeclareTOCStyleEntry',\MessageBreak
|
|
and the ToC entry features of `\string\DeclareSecionCommand'\MessageBreak
|
|
and `\string\RedeclareSectionCommand' of levels\MessageBreak
|
|
`part',
|
|
`section', `subsection',\MessageBreak
|
|
`subsubsection', `paragraph' and `subparagraph'%
|
|
}
|
|
\BeforePackage{minitoc}{%
|
|
\let\scr@mt@saved@sect\@sect
|
|
}
|
|
\AfterPackage{minitoc}{%
|
|
\def\@tempa#1#2#3#4#5#6[#7]#8{%
|
|
\ifnum #2<1 \relax
|
|
\addtocontents{toc}{\protect\sectbegin}
|
|
\fi
|
|
\stc@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}%
|
|
}%
|
|
\ifx\@sect\@tempa
|
|
\def\@tempa#1#2#3#4#5#6[#7]#8{
|
|
\expandafter
|
|
\ifx\csname #1\endcsname\section\relax
|
|
\addcontentsline{lof}{xsect}{#7}%
|
|
\addcontentsline{lot}{xsect}{#7}%
|
|
\fi
|
|
\ifx\csname #1\endcsname\starsection\relax
|
|
\addcontentsline{lof}{xsect}{#7}%
|
|
\addcontentsline{lot}{xsect}{#7}%
|
|
\fi
|
|
\ifnum #2>\c@secnumdepth\relax
|
|
\let\@svsec\@empty
|
|
\else
|
|
\refstepcounter{#1}%
|
|
\edef\@svsec{\csname the#1\endcsname\hskip 1em}%
|
|
\fi
|
|
\@tempskipa #5\relax
|
|
\ifdim \@tempskipa>\z@
|
|
\begingroup #6\relax
|
|
\@hangfrom{\hskip #3\relax\@svsec}%
|
|
{\interlinepenalty \@M #8\par}%
|
|
\endgroup
|
|
\csname #1mark\endcsname{#7}%
|
|
\addcontentsline{toc}{#1}{%
|
|
\ifnum #2>\c@secnumdepth\relax
|
|
\else
|
|
\protect\numberline{\csname the#1\endcsname}%
|
|
\fi
|
|
#7%
|
|
}%
|
|
\else
|
|
\def\@svsechd{#6\hskip #3\relax
|
|
\@svsec #8\csname #1mark\endcsname{#7}%
|
|
\addcontentsline{toc}{#1}{%
|
|
\ifnum #2>\c@secnumdepth\relax
|
|
\else
|
|
\protect\numberline{\csname the#1\endcsname}
|
|
\fi
|
|
#7}%
|
|
}%
|
|
\fi
|
|
\@xsect{#5}%
|
|
}%
|
|
\ifx\stc@sect\@tempa
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Redefining minitoc's internal command
|
|
`\string\stc@sect'\MessageBreak
|
|
to prevent minitoc to destroy several features\MessageBreak
|
|
of KOMA-Script%
|
|
}%
|
|
\let\stc@sect\scr@mt@saved@sect
|
|
\else
|
|
\ClassInfo{\KOMAClassName}{%
|
|
Deactivating the `minitoc' workaround,\MessageBreak
|
|
because of unexpected definition of\MessageBreak
|
|
`\string\stc@sect'%
|
|
}%
|
|
\let\scr@mt@saved@sect\relax
|
|
\fi
|
|
\else
|
|
\ifx\@sect\scr@mt@saved@sect
|
|
\ClassInfo{\KOMAClassName}{%
|
|
Deactivating the `minitoc' workaround for
|
|
`\string\@sect',\MessageBreak
|
|
because it is not needed%
|
|
}%
|
|
\else
|
|
\ClassInfo{\KOMAClassName}{%
|
|
Deactivating the `minitoc' workaround,\MessageBreak
|
|
because of unexpected definition of\MessageBreak
|
|
`\string\@sect'%
|
|
}%
|
|
\fi
|
|
\let\scr@mt@saved@sect\relax
|
|
\fi
|
|
}
|
|
\AfterPackage{titlesec}{%
|
|
\@ifpackagelater{titlesec}{2019/07/17}{%
|
|
\ClassInfo{\KOMAClassName}{Unknown `titesec' release.\MessageBreak
|
|
Cross your fingers, that is compatible%
|
|
}%
|
|
}{%
|
|
\scr@class@titlesec@warning
|
|
}%
|
|
}
|
|
\providecommand*{\scr@class@titlesec@warning}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Usage of this version of package `titlesec'\MessageBreak
|
|
with KOMA-Script class `\KOMAClassName' is\MessageBreak
|
|
not recommended, because the package does not\MessageBreak
|
|
support KOMA-Script classes, but break them.\MessageBreak
|
|
If you want to use `titlesec' with KOMA-Script\MessageBreak
|
|
classes instead of using the KOMA-Script's\MessageBreak
|
|
user interface to configure the headings of\MessageBreak
|
|
parts,
|
|
chapters, sections
|
|
... subparagraphs,\MessageBreak
|
|
please ask the author of `titlesec' for support.\MessageBreak
|
|
Expect errors like:\MessageBreak
|
|
\space\space- ``Illegal unit of measure (pt inserted).''\MessageBreak
|
|
\space\space- ``Missing number, treated as zero''\MessageBreak
|
|
after loading `titlesec'%
|
|
}%
|
|
}
|
|
%%% From File: $Id: scrkernel-pagestyles.dtx 3393 2019-11-19 10:33:44Z kohm $
|
|
%%% (run: body)
|
|
\newcommand*{\set@tempdima@hw}{%
|
|
\setlength{\@tempdima}{\textwidth}%
|
|
\if@mincl
|
|
\addtolength{\@tempdima}{\marginparsep}%
|
|
\addtolength{\@tempdima}{\marginparwidth}%
|
|
\fi
|
|
}
|
|
\newcommand*{\pnumfont}{\normalfont\normalcolor}
|
|
\newcommand*{\headfont}{\normalfont\normalcolor\slshape}
|
|
\newcommand*{\footfont}{}
|
|
\newcommand*{\scr@fnt@pagenumber}{\pnumfont}
|
|
\aliaskomafont{pagination}{pagenumber}
|
|
\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 `scrlayer-scrpage',\MessageBreak
|
|
before using this element%
|
|
}
|
|
\newcommand*{%
|
|
\pagemark
|
|
}{%
|
|
{\usekomafont{pagenumber}{%
|
|
\thepage}}}
|
|
\renewcommand*{\ps@plain}{%
|
|
\renewcommand*{\@oddhead}{}%
|
|
\let\@evenhead\@oddhead
|
|
\renewcommand*{\@evenfoot}{%
|
|
\set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
|
|
\if@fsl \hrule \vskip 3\p@ \fi
|
|
\hb@xt@ \@tempdima{{\pagemark\hfil}}}}}%
|
|
\renewcommand*{\@oddfoot}{%
|
|
\set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
|
|
\if@fsl \hrule \vskip 3\p@ \fi
|
|
\hb@xt@ \@tempdima{{\hfil\pagemark
|
|
\if@twoside\else\hfil\fi}}}}\hss}%
|
|
}%
|
|
\newcommand*{\ps@headings}{\let\@mkboth\markboth
|
|
\renewcommand*{\@evenhead}{%
|
|
\set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
|
|
\hb@xt@ \@tempdima{{\headfont\strut\leftmark\hfil}}%
|
|
\if@hsl \vskip 1.5\p@ \hrule \fi}}}%
|
|
\renewcommand*{\@oddhead}{%
|
|
\set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
|
|
\hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark
|
|
\if@twoside\else\hfil\fi}}%
|
|
\if@hsl \vskip 1.5\p@ \hrule \fi}}\hss}%
|
|
\renewcommand*{\@evenfoot}{%
|
|
\set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
|
|
\if@fsl \hrule \vskip 3\p@ \fi
|
|
\hb@xt@ \@tempdima{{\pagemark\hfil}}}}}%
|
|
\renewcommand*{\@oddfoot}{%
|
|
\set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
|
|
\if@fsl \hrule \vskip 3\p@ \fi
|
|
\hb@xt@ \@tempdima{{\hfil\pagemark
|
|
\if@twoside\else\hfil\fi}}}}\hss}%
|
|
\renewcommand*{\chaptermark}[1]{%
|
|
\if@twoside\expandafter\markboth\else\expandafter\markright\fi
|
|
{\MakeMarkcase{\Ifnumbered{chapter}{%
|
|
\if@mainmatter
|
|
\chaptermarkformat
|
|
\fi
|
|
}{}##1}%
|
|
}{}%
|
|
}%
|
|
\renewcommand*{\sectionmark}[1]{%
|
|
\if@twoside
|
|
\markright{\MakeMarkcase{\Ifnumbered{section}{\sectionmarkformat}{}%
|
|
##1}}%
|
|
\fi
|
|
}%
|
|
}%
|
|
\newcommand*{\ps@myheadings}{\let\@mkboth\@gobbletwo
|
|
\renewcommand*{\@evenhead}{%
|
|
\set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
|
|
\hb@xt@ \@tempdima{{\headfont\strut\leftmark\hfil}}%
|
|
\if@hsl \vskip 1.5\p@ \hrule \fi}}}%
|
|
\renewcommand*{\@oddhead}{%
|
|
\set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
|
|
\hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark
|
|
\if@twoside\else\hfil\fi}}%
|
|
\if@hsl \vskip 1.5\p@ \hrule \fi}}\hss}%
|
|
\renewcommand*{\@evenfoot}{%
|
|
\set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
|
|
\if@fsl \hrule \vskip 3\p@ \fi
|
|
\hb@xt@ \@tempdima{{\pagemark\hfil}}}}}%
|
|
\renewcommand*{\@oddfoot}{%
|
|
\set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
|
|
\if@fsl \hrule \vskip 3\p@ \fi
|
|
\hb@xt@ \@tempdima{{\hfil\pagemark
|
|
\if@twoside\else\hfil\fi}}}}\hss}%
|
|
\renewcommand*{\chaptermark}[1]{}%
|
|
\renewcommand*{\sectionmark}[1]{}%
|
|
}
|
|
\newcommand*{\titlepagestyle}{plain}
|
|
\newcommand*{\indexpagestyle}{plain}
|
|
\pagestyle{headings}
|
|
\pagenumbering{arabic}
|
|
%%% From File: $Id: scrlayer.dtx 3411 2019-11-28 09:11:27Z kohm $
|
|
%%% (run: body)
|
|
\providecommand*{\@mkleft}{%
|
|
\IfActiveMkBoth{\markleft}{\@gobble}%
|
|
}%
|
|
\providecommand*{\@mkright}{%
|
|
\IfActiveMkBoth{\markright}{\@gobble}%
|
|
}%
|
|
\providecommand{\@mkdouble}[1]{%
|
|
\@mkboth{#1}{#1}%
|
|
}
|
|
%%% From File: $Id: scrkernel-floats.dtx 3394 2019-11-19 11:56:28Z kohm $
|
|
%%% (run: body)
|
|
\newcommand\marginline[1]{%
|
|
\marginpar[\raggedleft{#1}]{\raggedright #1}%
|
|
}
|
|
\newlength{\abovecaptionskip}
|
|
\newlength{\belowcaptionskip}
|
|
\setlength{\abovecaptionskip}{10\p@}
|
|
\setlength{\belowcaptionskip}{0\p@}
|
|
\newcommand*{\captionformat}{:\ }
|
|
\newcommand{\scr@caption}{}
|
|
\AtBeginDocument{\let\scr@caption\caption}
|
|
\newcommand{\captionabove}{\@captionabovetrue\scr@caption}
|
|
\newcommand{\captionbelow}{\@captionabovefalse\scr@caption}
|
|
\newcommand*{\scap@caption}{}
|
|
\newcommand*{\scap@width}{\linewidth}
|
|
\newcommand*{\scap@move}{\z@}
|
|
\newcommand*{\scap@currentlabel}{}
|
|
\newif\ifscap@alt
|
|
\newcommand*{\@captionbeside}{}
|
|
\long\def\@captionbeside[#1]#2{%
|
|
\kernel@ifnextchar [%]
|
|
{\@@captionbeside[{#1}]{#2}}
|
|
{\c@pti@nb@sid@[{#1}]{#2}}%
|
|
}
|
|
\newcommand*{\@@captionbeside}{}
|
|
\long\def\@@captionbeside[#1]#2[#3]{%
|
|
\def\scap@pos{#3}%
|
|
\kernel@ifnextchar [%]
|
|
{\@@@captionbeside[{#1}]{#2}}
|
|
{\c@pti@nb@sid@[{#1}]{#2}}%
|
|
}
|
|
\newcommand*{\@@@captionbeside}{}
|
|
\long\def\@@@captionbeside[#1]#2[#3]{%
|
|
\def\scap@width{#3}%
|
|
\kernel@ifnextchar [%]
|
|
{\@@@@captionbeside[{#1}]{#2}}
|
|
{\setlength{\@tempdima}{#3}%
|
|
\addtolength{\@tempdima}{-\linewidth}%
|
|
\setlength{\@tempdima}{-.5\@tempdima}%
|
|
\edef\scap@move{\the\@tempdima}%
|
|
\c@pti@nb@sid@[{#1}]{#2}}%
|
|
}
|
|
\newcommand*{\@@@@captionbeside}{}
|
|
\long\def\@@@@captionbeside[#1]#2[#3]{%
|
|
\def\scap@move{#3}%
|
|
\kernel@ifstar
|
|
{\scap@alttrue\c@pti@nb@sid@[{#1}]{#2}}
|
|
{\scap@altfalse\c@pti@nb@sid@[{#1}]{#2}}%
|
|
}
|
|
\newbox\c@pti@nb@sid@b@x
|
|
\newcommand{\c@pti@nb@sid@}{}
|
|
\long\def\c@pti@nb@sid@[#1]#2{%
|
|
\def\scap@caption{%
|
|
\if c\scap@valign
|
|
\setlength{\abovecaptionskip}{\z@}%
|
|
\else \if t\scap@valign
|
|
\setlength{\abovecaptionskip}{-\ht\strutbox}%
|
|
\else \if b\scap@valign
|
|
\setlength{\abovecaptionskip}{\z@}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
\setlength{\belowcaptionskip}{-\dp\strutbox}%
|
|
\captionbelow[{#1}]{#2}%
|
|
}%
|
|
\begin{lrbox}{\c@pti@nb@sid@b@x}%
|
|
}
|
|
\newenvironment*{captionbeside}{%
|
|
\@dblarg\@captionbeside%
|
|
}{%
|
|
\end{lrbox}%
|
|
\settowidth{\@tempdima}{\usebox\c@pti@nb@sid@b@x}%
|
|
\setlength{\@tempdimb}{\scap@width}%
|
|
\addtolength{\@tempdimb}{-\@tempdima}%
|
|
\addtolength{\@tempdimb}{-\columnsep}%
|
|
\ifdim \@tempdimb<2em
|
|
\ClassWarning{\KOMAClassName}{%
|
|
caption beside will be very, very small.\MessageBreak
|
|
In most cases this will result in overfull and\MessageBreak
|
|
underfull \string\hbox\space messages%
|
|
}%
|
|
\fi
|
|
\onelinecaptionsfalse
|
|
\setcapwidth[r]{\@tempdimb}%
|
|
\let\@tempa\scap@pos
|
|
\setlength{\@tempdimc}{\scap@move}%
|
|
\if i\scap@pos\def\@tempa{l}\fi
|
|
\if o\scap@pos\def\@tempa{r}\fi
|
|
\if@twoside
|
|
\Ifthispageodd{}{%
|
|
\if o\scap@pos\def\@tempa{l}\fi
|
|
\if i\scap@pos\def\@tempa{r}\fi
|
|
\ifscap@alt
|
|
\addtolength{\@tempdimc}{\scap@width}%
|
|
\addtolength{\@tempdimc}{-\linewidth}%
|
|
\setlength{\@tempdimc}{-\@tempdimc}%
|
|
\fi
|
|
}%
|
|
\fi
|
|
\hspace*{\@tempdimc}%
|
|
\if l\@tempa
|
|
\rlap{%
|
|
\parbox[\scap@valign]{\@tempdimb}{\scap@caption
|
|
\global\let\scap@currentlabel\@currentlabel}%
|
|
\nobreak\hskip\columnsep
|
|
\parbox[\scap@valign]{\wd\c@pti@nb@sid@b@x}{\usebox\c@pti@nb@sid@b@x}%
|
|
}%
|
|
\else
|
|
\rlap{%
|
|
\parbox[\scap@valign]{\wd\c@pti@nb@sid@b@x}{\usebox\c@pti@nb@sid@b@x}%
|
|
\nobreak\hskip\columnsep
|
|
\parbox[\scap@valign]{\@tempdimb}{\scap@caption
|
|
\global\let\scap@currentlabel\@currentlabel}%
|
|
}%
|
|
\fi
|
|
\par
|
|
\aftergroup\let\aftergroup\@currentlabel
|
|
\aftergroup\scap@currentlabel
|
|
}
|
|
\newcommand*\capfont{\normalfont\normalcolor}
|
|
\newcommand*\caplabelfont{\normalfont\normalcolor}
|
|
\newcommand*{\scr@fnt@caption}{\capfont}
|
|
\newcommand*{\scr@fnt@captionlabel}{\caplabelfont}
|
|
\newif\ifdofullc@p
|
|
\dofullc@ptrue
|
|
\newif\if@capbreak\@capbreakfalse
|
|
\newcommand*{\setcapindent}{\kernel@ifstar{\@@setcapindent}{\@setcapindent}}
|
|
\newcommand*{\@setcapindent}[1]{%
|
|
\setlength{\@tempdima}{#1}%
|
|
\ifdim\@tempdima>\hsize
|
|
\addtolength{\@tempdima}{-\hsize}\@capbreaktrue
|
|
\else
|
|
\@capbreakfalse
|
|
\fi
|
|
\edef\cap@indent{\the\@tempdima}%
|
|
\dofullc@pfalse
|
|
}
|
|
\newcommand*{\@@setcapindent}[1]{%
|
|
\setlength{\@tempdima}{#1}%
|
|
\edef\cap@indent{\the\@tempdima}%
|
|
\dofullc@pfalse\@capbreaktrue
|
|
}
|
|
\AfterPackage{caption2}{%
|
|
\renewcommand*{\setcapindent}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You're using package `caption2'.\MessageBreak
|
|
Because of this you should also use `\string\captionstyle'
|
|
and\MessageBreak
|
|
set length '\string\captionindent' instead of
|
|
using\MessageBreak
|
|
`\string\setcapindent'%
|
|
}%
|
|
\captionstyle{indent}%
|
|
\kernel@ifstar{\setlength{\captionindent}}{\setlength{\captionindent}}%
|
|
}%
|
|
}
|
|
\newcommand*{\setcaphanging}{\dofullc@ptrue\@capbreakfalse}
|
|
\AfterPackage{caption2}{%
|
|
\renewcommand*{\setcaphanging}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You're using package `caption2'.\MessageBreak
|
|
Because of this you should also use
|
|
`\string\captionstyle'\MessageBreak
|
|
instead of `\string\setcaphang'%
|
|
}
|
|
\captionstyle{hang}%
|
|
}%
|
|
}
|
|
\newcommand{\@makecaption}[2]{%
|
|
\if@captionabove
|
|
\vskip\belowcaptionskip
|
|
\else
|
|
\vskip\abovecaptionskip
|
|
\fi
|
|
\@@makecaption\@firstofone{#1}{#2}%
|
|
\if@captionabove
|
|
\vskip\abovecaptionskip
|
|
\else
|
|
\vskip\belowcaptionskip
|
|
\fi
|
|
}
|
|
\newcommand*{\cap@width}{\hsize}
|
|
\newcommand*{\cap@left}{\hfill}
|
|
\newcommand*{\cap@right}{\hfill}
|
|
\newcommand*{\setcapwidth}[2][]{%
|
|
\begingroup%
|
|
\setlength{\@tempdima}{#2}%
|
|
\ifdim\@tempdima <\z@
|
|
\@tempdima\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
caption width less than 0pt not allowed.\MessageBreak
|
|
Setting caption width to 0pt%
|
|
}%
|
|
\fi
|
|
\edef\@tempa{\endgroup\def\noexpand\cap@width{\the\@tempdima}}%
|
|
\@tempa
|
|
\begingroup
|
|
\edef\@tempa{#1}%
|
|
\def\@tempb{c}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{\let\cap@left=\hfill\let\cap@right=\hfill}%
|
|
\else
|
|
\def\@tempb{l}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{\let\cap@left=\relax\let\cap@right\hfill}%
|
|
\else
|
|
\def\@tempb{r}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{\let\cap@left=\hfill\let\cap@right=\relax}%
|
|
\else
|
|
\def\@tempb{i}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{%
|
|
\let\cap@left=\relax
|
|
\let\cap@right=\hfill
|
|
\if@twoside
|
|
\Ifthispageodd{}{%
|
|
\let\cap@left=\hfill
|
|
\let\cap@right=\relax
|
|
}%
|
|
\fi
|
|
}%
|
|
\else
|
|
\def\@tempb{o}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{%
|
|
\let\cap@left=\hfill
|
|
\let\cap@right=\relax
|
|
\if@twoside
|
|
\Ifthispageodd{}{%
|
|
\let\cap@left=\relax
|
|
\let\cap@right=\hfill
|
|
}%
|
|
\fi
|
|
}%
|
|
\else
|
|
\ifx \@tempa\@empty\else
|
|
\ClassError{\KOMAClassName}{%
|
|
unknown optional position argument%
|
|
}{%
|
|
You've used `#1' as position argument at
|
|
\string\setcaptionwidth,\MessageBreak
|
|
but only ONE of `c', `l', `r', `i`, `o` ist
|
|
allowed.\MessageBreak
|
|
Argument will be ignored, if you'll continue.%
|
|
}%
|
|
\fi
|
|
\endgroup
|
|
\fi\fi\fi\fi\fi
|
|
}
|
|
\AfterPackage{caption2}{%
|
|
\renewcommand*{\setcapwidth}[2][]{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
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'%
|
|
}%
|
|
\setcaptionwidth{#2}%
|
|
}%
|
|
}%
|
|
\newcommand*{\setcapdynwidth}[2][]{%
|
|
\def\cap@width{#2}%
|
|
\begingroup
|
|
\edef\@tempa{#1}%
|
|
\def\@tempb{c}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{%
|
|
\ifdim \cap@width<\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
caption width less than 0pt not allowed.\MessageBreak
|
|
Setting caption width to 0pt%
|
|
}%
|
|
\let\cap@width\z@
|
|
\fi
|
|
\let\cap@left=\hfill\let\cap@right=\hfill}%
|
|
\else
|
|
\def\@tempb{l}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{%
|
|
\ifdim \cap@width<\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
caption width less than 0pt not allowed.\MessageBreak
|
|
Setting caption width to 0pt%
|
|
}%
|
|
\let\cap@width\z@
|
|
\fi
|
|
\let\cap@left=\relax\let\cap@right\hfill}%
|
|
\else
|
|
\def\@tempb{r}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{%
|
|
\ifdim \cap@width<\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
caption width less than 0pt not allowed.\MessageBreak
|
|
Setting caption width to 0pt%
|
|
}%
|
|
\let\cap@width\z@
|
|
\fi
|
|
\let\cap@left=\hfill\let\cap@right=\relax}%
|
|
\else
|
|
\def\@tempb{i}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{%
|
|
\ifdim \cap@width<\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
caption width less than 0pt not allowed.\MessageBreak
|
|
Setting caption width to 0pt%
|
|
}%
|
|
\let\cap@width\z@
|
|
\fi
|
|
\let\cap@left=\relax
|
|
\let\cap@right=\hfill
|
|
\if@twoside
|
|
\Ifthispageodd{}{%
|
|
\let\cap@left=\hfill
|
|
\let\cap@right=\relax
|
|
}%
|
|
\fi
|
|
}%
|
|
\else
|
|
\def\@tempb{o}\ifx\@tempa\@tempb
|
|
\endgroup
|
|
\def\cap@margin{%
|
|
\ifdim \cap@width<\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
caption width less than 0pt not allowed.\MessageBreak
|
|
Setting caption width to 0pt%
|
|
}%
|
|
\let\cap@width\z@
|
|
\fi
|
|
\let\cap@left=\hfill
|
|
\let\cap@right=\relax
|
|
\if@twoside
|
|
\Ifthispageodd{}{%
|
|
\let\cap@left=\relax
|
|
\let\cap@right=\hfill
|
|
}%
|
|
\fi
|
|
}%
|
|
\else
|
|
\ifx \@tempa\@empty\else
|
|
\ClassError{\KOMAClassName}{%
|
|
unknown optional position argument%
|
|
}{%
|
|
You've used `#1' as position argument at
|
|
\string\setcaptionwidth,\MessageBreak
|
|
but only ONE of `c', `l', `r', `i`, `o` ist
|
|
allowed.\MessageBreak
|
|
Argument will be ignored, if you'll continue.%
|
|
}%
|
|
\fi
|
|
\endgroup
|
|
\fi\fi\fi\fi\fi
|
|
}
|
|
\newcommand*{\cap@margin}{}
|
|
\let\cap@margin=\relax%
|
|
\newcommand*{\setcapmargin}{\kernel@ifstar{\@setcapmargin}{\@@setcapmargin}}
|
|
\newcommand*{\@setcapmargin}[2][\@tempdimb]{%
|
|
\def\cap@margin{%
|
|
\onelinecaptionsfalse
|
|
\begingroup
|
|
\setlength{\@tempdima}{\hsize}%
|
|
\setlength{\@tempdimb}{#2}%
|
|
\addtolength{\@tempdima}{-\@tempdimb}%
|
|
\setlength{\@tempdimc}{#1}%
|
|
\addtolength{\@tempdima}{-\@tempdimc}%
|
|
\edef\@tempa{\endgroup
|
|
\def\noexpand\cap@width{\the\@tempdima}%
|
|
\noexpand\if@twoside
|
|
\noexpand\Ifthispageodd{%
|
|
\def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}%
|
|
\def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}%
|
|
}{%
|
|
\def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimc}}%
|
|
\def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimb}}%
|
|
}%
|
|
\noexpand\else
|
|
\def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}%
|
|
\def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}%
|
|
\noexpand\fi
|
|
}%
|
|
\@tempa
|
|
}%
|
|
}
|
|
\newcommand*{\@@setcapmargin}[2][\@tempdimb]{%
|
|
\def\cap@margin{%
|
|
\onelinecaptionsfalse
|
|
\begingroup
|
|
\setlength{\@tempdima}{\hsize}%
|
|
\setlength{\@tempdimb}{#2}%
|
|
\addtolength{\@tempdima}{-\@tempdimb}%
|
|
\setlength{\@tempdimc}{#1}%
|
|
\addtolength{\@tempdima}{-\@tempdimc}%
|
|
\edef\@tempa{\endgroup
|
|
\def\noexpand\cap@width{\the\@tempdima}%
|
|
\def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}%
|
|
\def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}%
|
|
}%
|
|
\@tempa
|
|
}%
|
|
}
|
|
\AfterPackage{caption2}{%
|
|
\renewcommand*{\@setcapmargin}[2][\@tempdimb]{%
|
|
\setlength{\@tempdimb}{#2}%
|
|
\setlength{\@tempdima}{#1}%
|
|
\ifdim\@tempdima\@tempdimb\else
|
|
\ClassWarning{\KOMAClassName}{%
|
|
Can set only centered caption!\MessageBreak
|
|
You're using package `caption2'.\MessageBreak
|
|
Because of this you should also use
|
|
`\string\setcaptionmargin'\MessageBreak
|
|
instead of `\string\setcapmargin'%
|
|
}%
|
|
\fi
|
|
\addtolength{\@tempdimb}{\@tempdimb}%
|
|
\setcaptionmargin{.5\@tempdimb}}%
|
|
\let\@@setcapmargin=\@setcapmargin
|
|
}
|
|
\newcommand{\@@makecaption}[3]{%
|
|
\cap@margin
|
|
\begingroup
|
|
\ifonelinecaptions
|
|
\def\stepcounter##1{\advance\value{##1}\@ne}%
|
|
\let\refstepcounter\stepcounter
|
|
\let\label\@gobble
|
|
\let\@footnotetext=\@gobble
|
|
\let\hypertarget\@gobbletwo
|
|
\edef\@xnewline{%
|
|
\unexpanded{\ClassInfo{\KOMAClassName}{%
|
|
Workaround for not recommended usage of \string\\ or\MessageBreak
|
|
\string\newline in caption text
|
|
}%
|
|
\hspace*{\linewidth}\hspace{1sp}%
|
|
}%
|
|
\unexpanded\expandafter{\@xnewline}%
|
|
}%
|
|
\edef\@xcentercr{%
|
|
\unexpanded{\ClassInfo{\KOMAClassName}{%
|
|
Workaround for not recommended usage of \string\\ or\MessageBreak
|
|
\string\newline in caption text
|
|
}%
|
|
\hspace*{\linewidth}\hspace{1sp}%
|
|
}%
|
|
\unexpanded\expandafter{\@xcentercr}%
|
|
}%
|
|
\settowidth{\@tempdima}{\scr@@makesinglelinecaption{#1}{#2}{#3}}%
|
|
\ifdim\@tempdima>\linewidth
|
|
\aftergroup\scr@makemultilinecaption
|
|
\else
|
|
\aftergroup\scr@makesinglelinecaption
|
|
\fi
|
|
\else
|
|
\aftergroup\scr@makemultilinecaption
|
|
\fi
|
|
\endgroup
|
|
{#1}{#2}{#3}%
|
|
}
|
|
\newcommand{\scr@makesinglelinecaption}[3]{%
|
|
{%
|
|
\usefontofkomafont{caption}{%
|
|
\hb@xt@\hsize{%
|
|
\cap@left
|
|
\scr@@makesinglelinecaption{#1}{#2}{#3}%
|
|
\cap@right
|
|
}\par\kern\dp\strutbox%
|
|
}%
|
|
}\kern-\dp\strutbox
|
|
}
|
|
\newcommand{\scr@@makesinglelinecaption}[3]{%
|
|
\usekomafont{caption}{\strut\ignorespaces
|
|
#1{{\usekomafont{captionlabel}{#2\captionformat}}}%
|
|
\ignorespaces #3\unskip}%
|
|
}
|
|
\newcommand{\scr@makemultilinecaption}[3]{%
|
|
{%
|
|
\usefontofkomafont{caption}{%
|
|
\hb@xt@\hsize{%
|
|
\cap@left
|
|
\vbox{\hsize\cap@width\linewidth\hsize
|
|
\scr@ifundefinedorrelax{@captype}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
`\string\caption' outside float.\MessageBreak
|
|
Seems you are using `\string\caption' outside a
|
|
float.\MessageBreak
|
|
Maybe you are using a package that uses
|
|
`\string\@makecaption'\MessageBreak
|
|
without setting `\string\@captype' before.\MessageBreak
|
|
Because I cannot detect the caption type, I'm using\MessageBreak
|
|
the empty one.%
|
|
}%
|
|
\let\@captype\@empty
|
|
}{}%
|
|
\scr@ifundefinedorrelax{ragged\@captype caption}{\raggedcaption}{%
|
|
\@nameuse{ragged\@captype caption}%
|
|
}%
|
|
\ifdofullc@p
|
|
\@hangfrom{%
|
|
\strut
|
|
\scr@smashdp{%
|
|
#1{%
|
|
\usekomafont{caption}{%
|
|
\usekomafont{captionlabel}{#2\captionformat}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
{\usekomafont{caption}{#3\scr@endstrut\par}}%
|
|
\else
|
|
\ifdim\cap@indent<\z@
|
|
\strut
|
|
#1{%
|
|
\usekomafont{caption}{%
|
|
\usekomafont{captionlabel}{#2\captionformat\par}%
|
|
}%
|
|
}%
|
|
\noindent{\usekomafont{caption}{%
|
|
\hspace*{-\cap@indent}#3\scr@endstrut\par
|
|
}}%
|
|
\else
|
|
\if@capbreak
|
|
\strut
|
|
#1{%
|
|
\usekomafont{caption}{%
|
|
\usekomafont{captionlabel}{#2\captionformat\par}%
|
|
}%
|
|
}%
|
|
\noindent\@hangfrom{\hspace*{\cap@indent}}%
|
|
{\usekomafont{caption}{#3\scr@endstrut\par}}%
|
|
\else
|
|
\@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}%
|
|
{%
|
|
\hspace{-\cap@indent}%
|
|
\scr@smashdp{%
|
|
#1{\usekomafont{caption}{%
|
|
\usekomafont{captionlabel}{#2\captionformat}%
|
|
}%
|
|
}%
|
|
}%
|
|
{\usekomafont{caption}{#3\scr@endstrut}\par}%
|
|
}%
|
|
\fi
|
|
\fi
|
|
\fi
|
|
}%
|
|
\cap@right
|
|
}\par\kern\dp\strutbox
|
|
}%
|
|
}\kern-\dp\strutbox
|
|
}
|
|
\newcommand*\setcaptionalignment{%
|
|
\kernel@ifnextchar [%]
|
|
{\@setcaptionalignment}
|
|
{%
|
|
\scr@ifundefinedorrelax{@captype}{\@setcaptionalignment}{%
|
|
\edef\reserved@a{\noexpand\@setcaptionalignment[{\@captype}]}\reserved@a
|
|
}%
|
|
}%
|
|
}%
|
|
\newcommand*\@setcaptionalignment[2][]{%
|
|
\IfArgIsEmpty{#1}{}{%
|
|
\expandafter\ifnum
|
|
\scr@ifundefinedorrelax{#1}{0}{\scr@ifundefinedorrelax{end#1}{0}{1}}=0
|
|
\ClassWarning{\KOMAClassName}{%
|
|
float type `#1' defined not yet,\MessageBreak
|
|
but setting ragged mode for captions of\MessageBreak
|
|
float type `#1'%
|
|
}%
|
|
\fi
|
|
}%
|
|
\def\reserved@a{#2}%
|
|
\Ifstr{\reserved@a}{j}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\@empty
|
|
}{%
|
|
\Ifstr{\reserved@a}{l}{%
|
|
\scr@ifundefinedorrelax{LaTeXraggedright}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\raggedright
|
|
}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\LaTeXraggedright
|
|
}%
|
|
}{%
|
|
\Ifstr{\reserved@a}{r}{%
|
|
\scr@ifundefinedorrelax{LaTeXraggedleft}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\raggedleft
|
|
}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\LaTeXraggedleft
|
|
}%
|
|
}{%
|
|
\Ifstr{\reserved@a}{c}{%
|
|
\scr@ifundefinedorrelax{LaTeXcentering}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\centering
|
|
}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\LaTeXcentering
|
|
}%
|
|
}{%
|
|
\Ifstr{\reserved@a}{J}{%
|
|
\scr@ifundefinedorrelax{justifying}{%
|
|
\scr@caption@raggede@warning{J}{\justifying}%
|
|
\expandafter\let\csname ragged#1caption\endcsname\@empty
|
|
}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\justifying
|
|
}%
|
|
}{%
|
|
\Ifstr{\reserved@a}{L}{%
|
|
\scr@ifundefinedorrelax{RaggedRight}{%
|
|
\scr@caption@raggede@warning{L}{\RaggedRight}%
|
|
\expandafter\let\csname ragged#1caption\endcsname\raggedright
|
|
}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\RaggedRight
|
|
}%
|
|
}{%
|
|
\Ifstr{\reserved@a}{R}{%
|
|
\scr@ifundefinedorrelax{RaggedLeft}{%
|
|
\scr@caption@raggede@warning{R}{\RaggedLeft}%
|
|
\expandafter\let\csname ragged#1caption\endcsname\raggedleft
|
|
}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\RaggedLeft
|
|
}%
|
|
}{%
|
|
\Ifstr{\reserved@a}{C}{%
|
|
\scr@ifundefinedorrelax{Centering}{%
|
|
\scr@caption@raggede@warning{C}{\Centering}%
|
|
\expandafter\let\csname ragged#1caption\endcsname\centering
|
|
}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\Centering
|
|
}%
|
|
}{%
|
|
\Ifstr{\reserved@a}{}{%
|
|
\expandafter\let\csname ragged#1caption\endcsname\relax
|
|
}{%
|
|
\ClassError{\KOMAClassName}{unknown alignment char `#2'}{%
|
|
\string\setcaptionalignment\space supports
|
|
only:\MessageBreak
|
|
\space\space c - centered captions,\MessageBreak
|
|
\space\space j - justified captions,\MessageBreak
|
|
\space\space l - left align captions,\MessageBreak
|
|
\space\space r - right aligned captions,\MessageBreak
|
|
\space\space C - centered captions with
|
|
`ragged2e',\MessageBreak
|
|
\space\space J - justified captions with
|
|
`ragged2e',\MessageBreak
|
|
\space\space L - left align captions with
|
|
`ragged2e',\MessageBreak
|
|
\space\space R - right aligned captions with
|
|
`ragged2e',\MessageBreak
|
|
or an empty argument to remove special
|
|
alignment.\MessageBreak
|
|
If you'd continue, I'd not change the alignment.%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}%
|
|
}
|
|
\newcommand*{\scr@caption@raggede@warning}[2]{%
|
|
\begingroup
|
|
\lowercase{\def\reserved@a{#1}}%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
`\string#2' undefined!\MessageBreak
|
|
To avoid replacing caption alignment `#1' by `\reserved@a'\MessageBreak
|
|
you should load package `ragged2e' before using\MessageBreak
|
|
`\string\setcaptionalignment'%
|
|
}%
|
|
\endgroup
|
|
}
|
|
\newcommand*\raggedcaption{}
|
|
\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
|
|
\scr@caption@before@longtable@warning{caption2}%
|
|
}{}%
|
|
\if@komalongtable
|
|
\renewcommand{\LT@makecaption}[3]{%
|
|
\noalign{%
|
|
\if@captionabove
|
|
\vskip\belowcaptionskip
|
|
\else
|
|
\vskip\abovecaptionskip
|
|
\fi
|
|
}%
|
|
\LT@mcol\LT@cols c{%
|
|
\hbox to\z@{\hss\parbox[t]\linewidth{%
|
|
\def\@captype{table}%
|
|
\@@makecaption{#1}{#2}{#3}%
|
|
\endgraf
|
|
\if@captionabove
|
|
\vskip\abovecaptionskip
|
|
\else
|
|
\vskip\belowcaptionskip
|
|
\fi
|
|
}%
|
|
\hss
|
|
}%
|
|
}%
|
|
}%
|
|
\newcommand*{\scr@LT@array}{}%
|
|
\let\scr@LT@array=\LT@array
|
|
\renewcommand*{\LT@array}{%
|
|
\let\scr@caption=\LT@caption
|
|
\def\captionabove{\noalign{\global\@captionabovetrue}%
|
|
\scr@caption}%
|
|
\def\captionbelow{\noalign{\global\@captionabovefalse}%
|
|
\scr@caption}%
|
|
\if@tablecaptionabove
|
|
\let\LT@caption=\captionabove
|
|
\else
|
|
\let\LT@caption=\captionbelow
|
|
\fi
|
|
\scr@LT@array
|
|
}%
|
|
\ClassInfo{\KOMAClassName}{%
|
|
longtable captions redefined%
|
|
}%
|
|
\fi
|
|
}
|
|
\newcommand*{\fs@komaabove}{%
|
|
\let\@fs@capt\floatc@komascript
|
|
\let\@fs@pre\@empty
|
|
\def\@fs@mid{\vskip\abovecaptionskip}%
|
|
\let\@fs@post\@empty
|
|
\let\@fs@iftopcapt\iftrue}
|
|
\newcommand*{\fs@komabelow}{%
|
|
\let\@fs@capt\floatc@komascript
|
|
\let\@fs@pre\@empty
|
|
\def\@fs@mid{\vskip\abovecaptionskip}%
|
|
\let\@fs@post\@empty
|
|
\let\@fs@iftopcapt\iffalse}
|
|
\newcommand{\floatc@komascript}{\@@makecaption\@firstofone}
|
|
\setcounter{topnumber}{2}
|
|
\renewcommand*\topfraction{.7}
|
|
\setcounter{bottomnumber}{1}
|
|
\renewcommand*\bottomfraction{.3}
|
|
\setcounter{totalnumber}{3}
|
|
\renewcommand*\textfraction{.2}
|
|
\renewcommand*\floatpagefraction{.5}
|
|
\setcounter{dbltopnumber}{2}
|
|
\renewcommand*\dbltopfraction{.7}
|
|
\renewcommand*\dblfloatpagefraction{.5}
|
|
\newcommand*{\captionof}[1]{\def\@captype{#1}%
|
|
\begingroup\expandafter\expandafter\expandafter\endgroup
|
|
\expandafter\ifx\csname if@#1captionabove\endcsname\iftrue
|
|
\@captionabovetrue
|
|
\fi
|
|
\scr@caption}
|
|
\newcommand*{\captionaboveof}{\@captionabovetrue\captionof}
|
|
\newcommand*{\captionbelowof}{\@captionabovefalse\captionof}
|
|
\BeforePackage{capt-of}{\let\captionof\relax}
|
|
\newenvironment{captionofbeside}[1]{%
|
|
\def\@captype{#1}%
|
|
\captionbeside
|
|
}{%
|
|
\endcaptionbeside
|
|
}
|
|
\newcommand*\figurename{Figure}
|
|
\newcommand*\tablename{Table}
|
|
\DeclareNewTOC[%
|
|
type=figure,
|
|
float,
|
|
counterwithin=chapter,
|
|
floatpos=tbp,
|
|
floattype=1,
|
|
tocentryindent=1.5em,
|
|
tocentrynumwidth=2.3em,
|
|
atbegin=\def\caption{%
|
|
\if@figurecaptionabove\expandafter\captionabove
|
|
\else\expandafter\captionbelow\fi
|
|
}
|
|
]{lof}
|
|
\renewcommand*\thefigure{%
|
|
\expandafter\ifnum\scr@v@is@gt{2.97d}%
|
|
\if@mainmatter\thechapter.\fi
|
|
\else
|
|
\thechapter.%
|
|
\fi
|
|
\@arabic\c@figure
|
|
}
|
|
\DeclareNewTOC[%
|
|
type=table,
|
|
float,
|
|
counterwithin=chapter,
|
|
floatpos=tbp,
|
|
floattype=2,
|
|
tocentryindent=1.5em,
|
|
tocentrynumwidth=2.3em,
|
|
atbegin=\def\caption{%
|
|
\if@tablecaptionabove\expandafter\captionabove
|
|
\else\expandafter\captionbelow\fi
|
|
}
|
|
]{lot}
|
|
\renewcommand*\thetable{%
|
|
\expandafter\ifnum\scr@v@is@gt{2.97d}%
|
|
\if@mainmatter\thechapter.\fi
|
|
\else
|
|
\thechapter.%
|
|
\fi
|
|
\@arabic\c@table
|
|
}
|
|
%%% From File: $Id: scrkernel-footnotes.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: body)
|
|
\renewcommand*\footnoterule{%
|
|
\normalsize\ftn@rule@test@values
|
|
\kern-\dimexpr 2.6\p@+\ftn@rule@height\relax
|
|
\ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi
|
|
{\usekomafont{footnoterule}{%
|
|
\hrule \@height\ftn@rule@height \@width\ftn@rule@width}}%
|
|
\kern 2.6\p@}
|
|
\newcommand*{\ftn@rule@test@values}{%
|
|
\ifdim\ftn@rule@height <\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You might get into trouble, because the\MessageBreak
|
|
height of the footnote rule has a value\MessageBreak
|
|
less than 0%
|
|
}%
|
|
\else
|
|
\ifdim\ftn@rule@height >\dimexpr\skip\footins -2.6\p@\relax
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You might get into trouble, because the\MessageBreak
|
|
height of the footnote rule has a value\MessageBreak
|
|
greater than \the\dimexpr\skip\footins -2.6\p@\relax
|
|
}%
|
|
\fi
|
|
\fi
|
|
\ifdim\ftn@rule@width <\z@
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You might get into trouble, because the width\MessageBreak
|
|
or length of the footnote rule has a value\MessageBreak
|
|
less than 0pt%
|
|
}%
|
|
\else
|
|
\ifdim\ftn@rule@width >\columnwidth
|
|
\ClassWarning{\KOMAClassName}{%
|
|
You might get into trouble, because the width\MessageBreak
|
|
or length of the footnote rule has a value\MessageBreak
|
|
greater than \string\columnwidth
|
|
}%
|
|
\fi
|
|
\fi
|
|
}
|
|
\newkomafont{footnoterule}{}
|
|
\newcommand*{\ftn@rule@width}{.4\columnwidth}
|
|
\newcommand*{\ftn@rule@height}{.4\p@}
|
|
\newcommand*{\setfootnoterule}[2][]{%
|
|
\IfArgIsEmpty{#1}{}{%
|
|
\renewcommand*{\ftn@rule@height}{#1}%
|
|
}%
|
|
\IfArgIsEmpty{#2}{}{%
|
|
\renewcommand*{\ftn@rule@width}{#2}%
|
|
}%
|
|
\ftn@rule@test@values
|
|
}
|
|
\@addtoreset{footnote}{chapter}
|
|
\newcommand\deffootnote[4][]{%
|
|
\expandafter\ifnum\scr@v@is@ge{3.22}\relax
|
|
\long\def\@makefntext##1{%
|
|
\raggedfootnote
|
|
\leftskip #2
|
|
\l@addto@macro\@trivlist{%
|
|
\ifnum\@listdepth=\@ne\advance\leftmargin #2\relax\fi
|
|
}%
|
|
\parindent #3\noindent
|
|
\IfArgIsEmpty{#1}{}{%
|
|
\hskip \dimexpr #1-#2\relax
|
|
}%
|
|
\ftn@font\hbox to \z@{\hss\@@makefnmark}##1%
|
|
}%
|
|
\else
|
|
\ClassInfo{\KOMAClassName}{%
|
|
Using old \string\@makefntext\space due to compatibility
|
|
level\MessageBreak
|
|
less than 3.22}%
|
|
\long\def\@makefntext##1{%
|
|
\setlength{\@tempdimc}{#3}%
|
|
\def\@tempa{#1}\ifx\@tempa\@empty
|
|
\@setpar{\@@par
|
|
\@tempdima = \hsize
|
|
\addtolength{\@tempdima}{-#2}%
|
|
\parshape \@ne #2 \@tempdima}%
|
|
\else
|
|
\addtolength{\@tempdimc}{#2}%
|
|
\addtolength{\@tempdimc}{-#1}%
|
|
\@setpar{\@@par
|
|
\@tempdima = \hsize
|
|
\addtolength{\@tempdima}{-#1}%
|
|
\@tempdimb = \hsize
|
|
\addtolength{\@tempdimb}{-#2}%
|
|
\parshape \tw@ #1 \@tempdima #2 \@tempdimb
|
|
}%
|
|
\fi
|
|
\par
|
|
\parindent\@tempdimc\noindent
|
|
\ftn@font\hbox to \z@{\hss\@@makefnmark}##1%
|
|
}%
|
|
\fi
|
|
\def\@@makefnmark{\hbox{\ftnm@font{#4}}}%
|
|
}
|
|
\newcommand*{\raggedfootnote}{}
|
|
\newcommand*{\ftn@font}{\normalfont}
|
|
\newcommand*{\scr@fnt@footnote}{\ftn@font}
|
|
\newcommand*{\ftnm@font}{}
|
|
\newcommand*{\scr@fnt@footnotenumber}{\ftnm@font}
|
|
\newcommand*{\scr@fnt@footnotelabel}{\ftnm@font}
|
|
\newcommand*{\scr@fnt@instead@footnotetext}{footnote}
|
|
\newcommand*\deffootnotemark[1]{%
|
|
\def\@makefnmark{\hbox{\ftntm@font{#1}}}%
|
|
}
|
|
\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}{\let\FN@mf@prepare\relax}{}
|
|
\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
|
|
}
|
|
\BeforePackage{setspace}{%
|
|
\let\@footnotetext\scr@saved@footnotetext
|
|
}
|
|
\AfterPackage{setspace}{%
|
|
\let\scr@saved@footnotetext\@footnotetext
|
|
\renewcommand{\@footnotetext}[1]{%
|
|
\scr@saved@footnotetext{#1}%
|
|
\csname FN@mf@prepare\endcsname
|
|
}%
|
|
}
|
|
\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: $Id: scrkernel-listsof.dtx 3477 2020-04-11 07:26:26Z kohm $
|
|
%%% (run: body)
|
|
\g@addto@macro{\numberline@numberpostfix}{\autodot}
|
|
\usetocbasicnumberline[%
|
|
\ClassInfo{\KOMAClassName}{Redefining `\string\numberline'}%
|
|
]
|
|
\doforeachtocfile[float]{%
|
|
\setuptoc{\@currext}{chapteratlist}%
|
|
}
|
|
\AtAddToTocList[float]{%
|
|
\setuptoc{\@currext}{chapteratlist}%
|
|
}
|
|
\newcommand*{\scr@dottedtocline}{}
|
|
\newcommand*{\last@l@number}{}
|
|
\newcommand*{\@l@number}{}
|
|
\newcommand*{\set@l@number}[1]{%
|
|
\settowidth{\@tempdima}{#1\enskip}%
|
|
\ifdim\@tempdima >\@l@number
|
|
\xdef\@l@number{\the\@tempdima}%
|
|
\fi%
|
|
\ifdim\@tempdima >\last@l@number \else
|
|
\setlength{\@tempdima}{\last@l@number}%
|
|
\fi%
|
|
}
|
|
\newcommand*{\before@starttoc}[1]{%
|
|
\let\scr@dottedtocline=\@dottedtocline
|
|
\renewcommand*{\@dottedtocline}[3]{%
|
|
\scr@dottedtocline{##1}{\z@}{\last@l@number}}%
|
|
\renewcommand*{\numberline@box}[1]{%
|
|
\set@l@number{##1}\hb@xt@\@tempdima{##1}}%
|
|
\gdef\@l@number{\z@}%
|
|
\@ifundefined{#1@l@number}{%
|
|
\def\last@l@number{2em}%
|
|
}{%
|
|
\expandafter\ifx\csname #1@l@number\endcsname\@empty
|
|
\let\last@l@number\z@
|
|
\else
|
|
\expandafter\let\expandafter\last@l@number
|
|
\expandafter=\csname#1@l@number\endcsname
|
|
\fi
|
|
}%
|
|
\begingroup
|
|
\def\do@endgroup{\endgroup}%
|
|
\def\do##1{%
|
|
\scr@ifundefinedorrelax{scr@tso@##1@numwidth}{}{%
|
|
\l@addto@macro\do@endgroup{%
|
|
\@namedef{scr@tso@##1@numwidth}{\last@l@number}%
|
|
}%
|
|
}%
|
|
\scr@ifundefinedorrelax{scr@tso@##1@indent}{}{%
|
|
\l@addto@macro\do@endgroup{%
|
|
\@namedef{scr@tso@##1@indent}{\z@}%
|
|
}%
|
|
}%
|
|
}%
|
|
\@nameuse{scr@dte@donumwidth}%
|
|
\do@endgroup
|
|
}
|
|
\newcommand*{\after@starttoc}[1]{%
|
|
\protected@write\@auxout{}{%
|
|
\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}
|
|
\providecaptionname{american,australian,british,canadian,english,newzealand,%
|
|
UKenglish,ukenglish,USenglish,usenglish}\contentsname{Contents}%
|
|
\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 may be removed from\MessageBreak
|
|
KOMA-Script soon, so it should not be used%
|
|
}%
|
|
\chapter*{\contentsname}%
|
|
\@mkboth{\MakeMarkcase{\contentsname}}{\MakeMarkcase{\contentsname}}%
|
|
}
|
|
\newcommand*{\toc@l@number}{}
|
|
\newcommand*{\tableofcontents}{%
|
|
\begingroup
|
|
\let\if@dynlist\if@tocleft
|
|
\expandafter\listoftoc\expandafter{\ext@toc}%
|
|
\endgroup
|
|
}
|
|
\newcommand{\addtocentrydefault}[3]{%
|
|
\expandafter\tocbasic@addxcontentsline\expandafter{\ext@toc}{#1}{#2}{#3}%
|
|
}
|
|
\newcommand*{\float@listhead}[1]{%
|
|
\scr@float@listhead@warning
|
|
\float@@listhead{#1}%
|
|
\@mkboth{\MakeMarkcase{#1}}{\MakeMarkcase{#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@float@listhead@warning}{%
|
|
\ClassWarning{\KOMAClassName}{%
|
|
\string\float@listhead\space detected!\MessageBreak
|
|
Implementation of \string\float@listhead\space became\MessageBreak
|
|
deprecated in KOMA-Script v3.01 2008/11/14 and\MessageBreak
|
|
has been replaced by several more flexible\MessageBreak
|
|
features of package `tocbasic`.\MessageBreak
|
|
Maybe implementation of \string\float@listhead\space will\MessageBreak
|
|
be removed from KOMA-Script soon.\MessageBreak
|
|
Loading of package `scrhack' may help to\MessageBreak
|
|
avoid this warning, if you are using a\MessageBreak
|
|
a package that still implements the\MessageBreak
|
|
deprecated \string\float@listhead\space interface%
|
|
}%
|
|
}
|
|
\newcommand*{\scr@float@addtolists@warning}{%
|
|
\ClassWarningNoLine{\KOMAClassName}{%
|
|
\string\float@addtolists\space detected!\MessageBreak
|
|
Implementation of \string\float@addtolist\space became\MessageBreak
|
|
deprecated in KOMA-Script v3.01 2008/11/14 and\MessageBreak
|
|
has been replaced by several more flexible\MessageBreak
|
|
features of package `tocbasic`.\MessageBreak
|
|
Since Version 3.12 support for deprecated\MessageBreak
|
|
\string\float@addtolist\space interface has been\MessageBreak
|
|
restricted to only some of the KOMA-Script\MessageBreak
|
|
features and been removed from others.\MessageBreak
|
|
Loading of package `scrhack' may help to\MessageBreak
|
|
avoid this warning, if you are using a\MessageBreak
|
|
a package that still implements the\MessageBreak
|
|
deprecated \string\float@addtolist\space interface%
|
|
}%
|
|
\global\let\scr@float@addtolists@warning\relax
|
|
}
|
|
\renewcommand*\listfigurename{List of Figures}
|
|
\providecaptionname{american,australian,british,canadian,english,newzealand,%
|
|
UKenglish,ukenglish,USenglish,usenglish}\listfigurename{List of Figures}
|
|
\renewcommand*\listoflofname{\listfigurename}
|
|
\renewcommand*\listoflofentryname{\figurename}
|
|
\renewcommand*\listtablename{List of Tables}
|
|
\providecaptionname{american,australian,british,canadian,english,newzealand,%
|
|
UKenglish,ukenglish,USenglish,usenglish}\listtablename{List of Tables}
|
|
\renewcommand*\listoflotname{\listtablename}
|
|
\renewcommand*\listoflotentryname{\tablename}
|
|
%%% From File: $Id: scrkernel-bibliography.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: body)
|
|
\newcommand*\bibname{Bibliography}
|
|
\newcommand*{\bibpreamble}{\relax}
|
|
\let\bibpreamble\relax
|
|
\newcommand{\setbibpreamble}[1]{\def\bibpreamble{#1}}
|
|
\newdimen\bibindent
|
|
\bibindent=1.5em
|
|
\newenvironment{thebibliography}[1]{%
|
|
\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}%
|
|
}{%
|
|
\settowidth\labelwidth{\@biblabel{#1}}%
|
|
\leftmargin\labelwidth
|
|
\advance\leftmargin\labelsep
|
|
\@openbib@code
|
|
\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
|
|
}{%
|
|
\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{\AfterBibliographyPreamble}{\g@addto@macro\bib@before@hook}
|
|
\newcommand{\AtEndBibliography}{\g@addto@macro\bib@after@hook}
|
|
%%% From File: $Id: scrkernel-index.dtx 3262 2019-10-10 08:25:29Z kohm $
|
|
%%% (run: body)
|
|
\newcommand*{\index@preamble}{}
|
|
\let\index@preamble=\relax
|
|
\newcommand{\setindexpreamble}[1]{\def\index@preamble{#1}}
|
|
\newcommand*{\idx@heading}{%
|
|
\if@openright\cleardoublepage\else\clearpage\fi%
|
|
\twocolumn[%
|
|
\@chaptertolistsfalse
|
|
\idx@@heading{\indexname}]%
|
|
\ifidx@leveldown
|
|
\addsecmark{\indexname}%
|
|
\else
|
|
\@mkdouble{\MakeMarkcase{\indexname}}%
|
|
\fi
|
|
}
|
|
\newenvironment{theindex}{%
|
|
\if@twocolumn
|
|
\@restonecolfalse
|
|
\else
|
|
\@restonecoltrue
|
|
\fi
|
|
\columnseprule \z@
|
|
\columnsep 35\p@
|
|
\setchapterpreamble{\index@preamble}%
|
|
\idx@heading%
|
|
\ifx\indexpagestyle\@empty\else\thispagestyle{\indexpagestyle}\fi
|
|
\parindent\z@
|
|
\setlength{\parskip}{\z@ \@plus .3\p@}%
|
|
\setlength{\parfillskip}{\z@ \@plus 1fil}%
|
|
\let\item\@idxitem
|
|
}{%
|
|
\if@restonecol\onecolumn\else\clearpage\fi
|
|
}
|
|
\newcommand*\@idxitem{\par\hangindent 40\p@}
|
|
\newcommand*\subitem{\@idxitem \hspace*{20\p@}}
|
|
\newcommand*\subsubitem{\@idxitem \hspace*{30\p@}}
|
|
\newcommand*\indexspace{%
|
|
\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax
|
|
}
|
|
\newcommand*\indexname{Index}
|
|
%%% From File: $Id: scrkernel-listsandtabulars.dtx 3394 2019-11-19 11:56:28Z kohm $
|
|
%%% (run: body)
|
|
\if@twocolumn
|
|
\setlength{\leftmargini}{2em}
|
|
\else
|
|
\setlength{\leftmargini}{2.5em}
|
|
\fi
|
|
\setlength{\leftmarginii}{2.2em}
|
|
\setlength{\leftmarginiii}{1.87em}
|
|
\setlength{\leftmarginiv}{1.7em}
|
|
\if@twocolumn
|
|
\setlength{\leftmarginv}{.5em}
|
|
\setlength{\leftmarginvi}{.5em}
|
|
\else
|
|
\setlength{\leftmarginv}{1em}
|
|
\setlength{\leftmarginvi}{1em}
|
|
\fi
|
|
\setlength{\leftmargin}{\leftmargini}
|
|
\setlength{\labelsep}{.5em}
|
|
\setlength{\labelwidth}{\leftmargini}
|
|
\addtolength{\labelwidth}{-\labelsep}
|
|
\@beginparpenalty=-\@lowpenalty
|
|
\@endparpenalty =-\@lowpenalty
|
|
\@itempenalty =-\@lowpenalty
|
|
\setlength\arraycolsep{5\p@}
|
|
\setlength\tabcolsep{6\p@}
|
|
\setlength\arrayrulewidth{.4\p@}
|
|
\setlength\doublerulesep{2\p@}
|
|
\setlength\tabbingsep{\labelsep}
|
|
\renewcommand*\theenumi{\@arabic\c@enumi}
|
|
\renewcommand*\theenumii{\@alph\c@enumii}
|
|
\renewcommand*\theenumiii{\@roman\c@enumiii}
|
|
\renewcommand*\theenumiv{\@Alph\c@enumiv}
|
|
\newcommand*\labelenumi{\theenumi.}
|
|
\newcommand*\labelenumii{\theenumii)}
|
|
\newcommand*\labelenumiii{\theenumiii.}
|
|
\newcommand*\labelenumiv{\theenumiv.}
|
|
\renewcommand*\p@enumii{\theenumi}
|
|
\renewcommand*\p@enumiii{\p@enumii(\theenumii)}
|
|
\renewcommand*\p@enumiv{\p@enumiii\theenumiii}
|
|
\newcommand*\labelitemi{\textbullet}
|
|
\newcommand*\labelitemii{\normalfont\bfseries\textendash}
|
|
\newcommand*\labelitemiii{\textasteriskcentered}
|
|
\newcommand*\labelitemiv{\textperiodcentered}
|
|
\newenvironment{description}{%
|
|
\list{}{\labelwidth\z@ \itemindent-\leftmargin
|
|
\let\makelabel\descriptionlabel}%
|
|
}{%
|
|
\endlist
|
|
}
|
|
\newcommand*{\descriptionlabel}[1]{%
|
|
\hspace{\labelsep}\descfont #1%
|
|
}
|
|
\newenvironment{labeling}[2][]{%
|
|
\def\sc@septext{#1}%
|
|
\list{}{\settowidth{\labelwidth}{{%
|
|
\usekomafont{labelinglabel}{#2%
|
|
\usekomafont{labelingseparator}{\sc@septext}}%
|
|
}}%
|
|
\leftmargin\labelwidth \advance\leftmargin by \labelsep
|
|
\let\makelabel\labelinglabel
|
|
}%
|
|
}{%
|
|
\endlist
|
|
}
|
|
\newcommand\labelinglabel[1]{%
|
|
\usekomafont{labelinglabel}{#1\hfil
|
|
\usekomafont{labelingseparator}{\sc@septext}}%
|
|
}
|
|
\newenvironment{verse}{%
|
|
\let\\=\@centercr
|
|
\list{}{\itemsep=\z@
|
|
\itemindent=-1.5em
|
|
\listparindent=\itemindent
|
|
\rightmargin=\leftmargin
|
|
\advance\leftmargin by1.5em
|
|
}%
|
|
\item\relax
|
|
}{%
|
|
\endlist
|
|
}
|
|
\newenvironment{quotation}{%
|
|
\list{}{\listparindent 1em%
|
|
\itemindent \listparindent
|
|
\rightmargin \leftmargin
|
|
\parsep \z@ \@plus\p@
|
|
}%
|
|
\item\relax
|
|
}{%
|
|
\endlist
|
|
}
|
|
\newenvironment{quote}{%
|
|
\list{}{\rightmargin\leftmargin}%
|
|
\item\relax
|
|
}{%
|
|
\endlist
|
|
}
|
|
\newenvironment{addmargin}{%
|
|
\@tempswafalse\@addmargin
|
|
}{%
|
|
\advance\@listdepth\@ne
|
|
\endlist
|
|
}
|
|
\newenvironment{addmargin*}{%
|
|
\@tempswafalse
|
|
\if@twoside\is@thispageodd[]\ifthispagewasodd\else\@tempswatrue\fi
|
|
\edef\scr@addmargin@startpage{\csname tpo@\scr@tpo\endcsname}\fi
|
|
\@addmargin
|
|
}{%
|
|
\if@twoside
|
|
\unskip\nobreak\Ifthispageodd{}{}%
|
|
\expandafter\ifx\csname tpo@\scr@tpo\endcsname\scr@addmargin@startpage\else
|
|
\ClassWarning{\KOMAClassName}{%
|
|
page break inside `addmargin*' environment.\MessageBreak
|
|
A `addmargin*' environment starting on page
|
|
\scr@addmargin@startpage\MessageBreak
|
|
ends on page \csname tpo@\scr@tpo\endcsname.\MessageBreak
|
|
This will result in potential wrong margins on\MessageBreak
|
|
every other page.\MessageBreak
|
|
So maybe you should change the `addmargin*'\MessageBreak
|
|
environment, that ends%
|
|
}%
|
|
\fi
|
|
\fi
|
|
\advance\@listdepth\@ne
|
|
\endlist
|
|
}
|
|
\newcommand*{\@addmargin}[2][\@tempa]{%
|
|
\list{}{%
|
|
\if@tempswa
|
|
\def\@tempa{\leftmargin}%
|
|
\setlength{\leftmargin}{#2}%
|
|
\setlength{\rightmargin}{#1}%
|
|
\else
|
|
\def\@tempa{\rightmargin}%
|
|
\setlength{\rightmargin}{#2}%
|
|
\setlength{\leftmargin}{#1}%
|
|
\fi
|
|
\setlength{\listparindent}{\parindent}%
|
|
\setlength{\itemsep}{\parskip}%
|
|
\setlength{\itemindent}{\z@}%
|
|
\setlength{\@tempskipa}{\topsep}%
|
|
\setlength{\topsep}{\z@}%
|
|
\setlength{\parsep}{\parskip}%
|
|
\setlength{\@tempskipb}{\partopsep}%
|
|
\setlength{\partopsep}{\z@}%
|
|
\let\makelabel\@gobble
|
|
\setlength{\labelwidth}{\z@}%
|
|
\advance\@listdepth\m@ne
|
|
}%
|
|
\expandafter\ifnum\scr@v@is@ge{3.22}%
|
|
\setlength{\topsep}{\@tempskipa}%
|
|
\setlength{\partopsep}{\@tempskipb}%
|
|
\fi
|
|
\item\is@thispageodd@setlabel\nobreak\ignorespaces
|
|
}
|
|
\newcommand*\descfont{\@gr@gsffamily\bfseries}
|
|
\newcommand*{\scr@fnt@descriptionlabel}{\descfont}
|
|
\newkomafont{labelinglabel}{}
|
|
\newkomafont{labelingseparator}{}
|
|
%%% From File: $Id: scrlogo.dtx 2640 2017-05-08 09:36:55Z kohm $
|
|
\@ifundefined{KOMAScript}{%
|
|
\DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%
|
|
M\kern.05em A\kern.1em-\kern.1em Script}}}{}
|
|
\endinput
|
|
%%
|
|
%% End of file `scrbook.cls'.
|
|
|