summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/koma-script/tocbasic.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/tocbasic.sty')
-rw-r--r--Master/texmf-dist/tex/latex/koma-script/tocbasic.sty1608
1 files changed, 1468 insertions, 140 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/tocbasic.sty b/Master/texmf-dist/tex/latex/koma-script/tocbasic.sty
index c6dfcc98510..390d986e9af 100644
--- a/Master/texmf-dist/tex/latex/koma-script/tocbasic.sty
+++ b/Master/texmf-dist/tex/latex/koma-script/tocbasic.sty
@@ -4,10 +4,23 @@
%%
%% The original source files were:
%%
-%% tocbasic.dtx (with options: `package')
+%% tocbasic.dtx (with options: `package,identify')
+%% tocbasic.dtx (with options: `package,prepare')
+%% scrkernel-tocstyle.dtx (with options: `package,prepare')
+%% tocbasic.dtx (with options: `package,option')
+%% scrkernel-tocstyle.dtx (with options: `package,option')
+%% tocbasic.dtx (with options: `package,body')
+%% scrkernel-tocstyle.dtx (with options: `package,body')
+%% scrkernel-tocstyle.dtx (with options: `package,style,gobble')
+%% scrkernel-tocstyle.dtx (with options: `package,style,dottedtocline')
+%% scrkernel-tocstyle.dtx (with options: `package,style,undottedtocline')
+%% scrkernel-tocstyle.dtx (with options: `package,style,largetocline')
+%% scrkernel-tocstyle.dtx (with options: `package,style,tocline')
+%% scrkernel-tocstyle.dtx (with options: `package,style,default')
+%% tocbasic.dtx (with options: `package,exit')
%% scrlogo.dtx (with options: `logo')
%%
-%% Copyright (c) 2008-2014 Markus Kohm [komascript at gmx info]
+%% Copyright (c) 2008-2016 Markus Kohm [komascript at gmx info]
%%
%% This file was generated from file(s) of the KOMA-Script bundle.
%% ---------------------------------------------------------------
@@ -39,15 +52,26 @@
%% find a complete unmodified copy of LaTeX2e at
%% <http://www.ctan.org/pub/tex-archive/macros/latex/base/>.
%%
-%%% From File: $Id: tocbasic.dtx 2146 2015-06-20 06:38:46Z kohm $
+%%% From File: $Id: tocbasic.dtx 2440 2016-04-29 15:59:32Z kohm $
+%%% (run: identify)
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{tocbasic}[%
- 2015/10/03 v3.19a KOMA-Script
+ 2016/05/10 v3.20 KOMA-Script
package
(handling toc-files)%
]
+%%% From File: $Id: tocbasic.dtx 2440 2016-04-29 15:59:32Z kohm $
+%%% (run: prepare)
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: prepare)
+%%% From File: $Id: tocbasic.dtx 2440 2016-04-29 15:59:32Z kohm $
+%%% (run: option)
\ProcessOptions\relax
-\RequirePackage{keyval}
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: option)
+%%% From File: $Id: tocbasic.dtx 2440 2016-04-29 15:59:32Z kohm $
+%%% (run: body)
+\RequirePackage{scrbase}
\newcommand*{\tb@listoftocs}{}
\newcommand{\ifattoclist}[1]{%
\begingroup
@@ -60,7 +84,7 @@
\endgroup
}
\newcommand*{\addtotoclist}{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
\scr@@addtotoclist\scr@addtotoclist
}
\newcommand*{\scr@addtotoclist}{%
@@ -106,7 +130,7 @@
}%
}
\newcommand*{\AtAddToTocList}{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
\@@AtAddToTocList\@AtAddToTocList
}
\newcommand*{\@AtAddToTocList}{%
@@ -122,11 +146,10 @@
\expandafter\g@addto@macro\csname tb@#1@add@hook\endcsname
}
\newcommand*{\tocbasic@extend@babel}[1]{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \ifx\csname bbl@set@language\endcsname\relax
+ \scr@ifundefinedorrelax{bbl@set@language}{%
\PackageInfo{tocbasic}{babel extension for `#1' omitted\MessageBreak
because of missing \string\bbl@set@language}%
- \else
+ }{%
\iftocfeature{#1}{nobabel}{%
\PackageInfo{tocbasic}{omitting babel extension for `#1'\MessageBreak
because of feature `nobabel' available\MessageBreak
@@ -139,11 +162,11 @@
\addtocontents{#1}{\xstring\select@language{\languagename}}%
}%
}%
- \fi
+ }%
}
\AtAddToTocList[]{\expandafter\tocbasic@extend@babel\expandafter{\@currext}}
\newcommand*{\removefromtoclist}{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
\@removefromtoclist\@@removefromtoclist
}
\newcommand*{\@removefromtoclist}[2][]{%
@@ -181,7 +204,7 @@
\endgroup
}
\newcommand{\doforeachtocfile}{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
\@doforeachtocfile\@@doforeachtocfile
}
\newcommand{\@doforeachtocfile}[2][]{%
@@ -207,7 +230,7 @@
\let\do\relax
}
\newcommand{\addtoeachtocfile}{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
\@addtoeachtocfile\@@addtoeachtocfile
}
\newcommand{\@addtoeachtocfile}[2][]{%
@@ -217,7 +240,7 @@
\doforeachtocfile{\addtocontents{\@currext}{#1}}%
}
\newcommand{\addcontentslinetoeachtocfile}{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
\@addcontentslinetoeachtocfile\@@addcontentslinetoeachtocfile
}
\newcommand{\@addcontentslinetoeachtocfile}[3][]{%
@@ -227,18 +250,17 @@
\doforeachtocfile{\addcontentsline{\@currext}{#1}{#2}}%
}
\newcommand*{\addxcontentsline}[2]{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
{\@addxcontentsline{#1}{#2}}%
{\@addxcontentsline{#1}{#2}[]}%
}
\newcommand*{\@addxcontentsline}{}
\def\@addxcontentsline#1#2[#3]#4{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname add#2#1entry\endcsname\relax
+ \scr@ifundefinedorrelax{add#2#1entry}{%
\tocbasic@addxcontentsline{#1}{#2}{#3}{#4}%
- \else
+ }{%
\@nameuse{add#2#1entry}{#3}{#4}%
- \fi
+ }%
}
\newcommand*{\nonumberline}{}%
\newcommand*{\tocbasic@addxcontentsline}[4]{%
@@ -249,11 +271,11 @@
\fi
}
\newcommand{\addxcontentslinetoeachtocfile}{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
\@addxcontentslinetoeachtocfile\@@addxcontentslinetoeachtocfile
}
\newcommand{\@addxcontentslinetoeachtocfile}[2][]{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
{\@@@addxcontentslinetoeachtocfile[{#1}]{#2}}%
{\@@@addxcontentslinetoeachtocfile[{#1}]{#2}[]}
}
@@ -262,7 +284,7 @@
\doforeachtocfile[{#1}]{\addxcontentsline{\@currext}{#2}[#3]{#4}}%
}
\newcommand{\@@addxcontentslinetoeachtocfile}[1]{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
{\@@@@addxcontentslinetoeachtocfile{#1}}%
{\@@@@addxcontentslinetoeachtocfile{#1}[]}%
}
@@ -318,7 +340,7 @@
\fi
}
\newcommand*{\listoftoc}{%
- \@ifstar \tocbasic@starttoc\@listoftoc
+ \kernel@ifstar \tocbasic@starttoc\@listoftoc
}
\newcommand*{\@listoftoc}[2][\list@fname]{%
\begingroup
@@ -346,20 +368,19 @@
}{}%
\iftocfeature{\@currext}{numberline}{\def\nonumberline{\numberline{}}}{}%
\tocbasic@listhead{#1}%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname microtypesetup\endcsname\relax
- \else
+ \scr@ifundefinedorrelax{microtypesetup}{}{%
\iftocfeature{\@currext}{noprotrusion}{}{%
\microtypesetup{protrusion=false}%
- \PackageInfo{tocbasic}{character protrusion at \@currext\space deactivated}%
+ \PackageInfo{tocbasic}{%
+ character protrusion at \@currext\space deactivated}%
}%
- \fi
+ }%
\tocbasic@starttoc{#2}%
\endgroup
}
\newcommand*{\listofname}{List of}
\newcommand*{\listofeachtoc}{%
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
\@listofeachtoc\@@listofeachtoc
}
\newcommand{\@listofeachtoc}[1][]{%
@@ -370,8 +391,7 @@
}
\newcommand*{\tocbasic@listhead}[1]{%
\@ifundefined{tocbasic@listhead@\@currext}{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname chapter\endcsname\relax
+ \scr@ifundefinedorrelax{chapter}{%
\expandafter\def\csname tocbasic@listhead@\@currext\endcsname##1{%
\iftocfeature{\@currext}{leveldown}{%
\iftocfeature{\@currext}{numbered}{%
@@ -411,7 +431,7 @@
}%
}%
}%
- \else
+ }{%
\expandafter\def\csname tocbasic@listhead@\@currext\endcsname##1{%
\iftocfeature{\@currext}{leveldown}{%
\iftocfeature{\@currext}{numbered}{%
@@ -470,7 +490,7 @@
}%
}%
}%
- \fi
+ }%
}{}%
\csname tb@@beforehead@hook\endcsname
\csname tb@\@currext @beforehead@hook\endcsname
@@ -494,16 +514,6 @@
}{}%
\expandafter\g@addto@macro\csname tb@#1@afterhead@hook\endcsname{#2}%
}
-\AtBeginDocument{%
- \@ifundefined{MakeMarkcase}{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname KOMAClassName\endcsname\relax
- \let\MakeMarkcase\MakeUppercase
- \else
- \let\MakeMarkcase\@firstofone
- \fi
- }{}%
-}
\newcommand*{\deftocheading}[1]{%
\@namedef{tocbasic@listhead@#1}##1}
\newcommand*{\setuptoc}[2]{%
@@ -535,12 +545,11 @@
\setuptoc{lof}{nobabel}
\setuptoc{lot}{nobabel}
\newcommand*{\iftocfeature}[2]{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname tocbasic@#1@feature@#2\endcsname\relax
+ \scr@ifundefinedorrelax{tocbasic@#1@feature@#2}{%
\expandafter\@secondoftwo
- \else
+ }{%
\expandafter\@firstoftwo
- \fi
+ }%
}
\newcommand*{\tocbasicautomode}{%
\let\tb@saved@starttoc\@starttoc
@@ -552,79 +561,212 @@
}%
}%
}
-\define@key{tocbasic}{type}{%
- \tb@ifvalueisnotempty{type}{#1}{\edef\tb@nt@type{#1}}%
-}
-\define@key{tocbasic}{counterwithin}{%
- \edef\tb@nt@counterwithin{#1}%
-}
-\define@key{tocbasic}{types}{%
- \tb@ifvalueisnotempty{types}{#1}{\edef\tb@nt@types{#1}}%
-}
-\define@key{tocbasic}{extension}{%
- \tb@ifvalueisnotempty{extension}{#1}{\edef\tb@nt@ext{#1}}%
-}
-\define@key{tocbasic}{owner}{%
- \tb@ifvalueisnotempty{owner}{#1}{\edef\tb@nt@owner{#1}}%
-}
-\define@key{tocbasic}{name}{%
- \tb@ifvalueisnotempty{name}{#1}{\edef\tb@nt@name{#1}}%
-}
-\define@key{tocbasic}{listname}{%
- \tb@ifvalueisnotempty{listname}{#1}{\def\tb@nt@listname{#1}}%
-}
-\newif\iftb@forcenames
-\define@key{tocbasic}{forcenames}[true]{%
- \lowercase{\tb@boolkey{#1}}{forcenames}%
-}
-\define@key{tocbasic}{level}{%
- \tb@ifvalueisnotempty{level}{#1}{\tb@numkey\tb@nt@level{#1}}%
-}
-\define@key{tocbasic}{indent}{%
- \tb@ifvalueisnotempty{indent}{#1}{\tb@dimkey\tb@nt@indent{#1}}%
-}
-\define@key{tocbasic}{hang}{%
- \tb@ifvalueisnotempty{hang}{#1}{\tb@dimkey\tb@nt@hang{#1}}%
-}
-\newif\iftb@float
-\define@key{tocbasic}{float}[true]{%
- \lowercase{\tb@boolkey{#1}}{float}%
-}
-\newif\iftb@nonfloat
-\define@key{tocbasic}{nonfloat}[true]{%
- \lowercase{\tb@boolkey{#1}}{nonfloat}%
-}
-\define@key{tocbasic}{floattype}{%
- \tb@ifvalueisnotempty{floattype}{#1}{\tb@numkey\tb@nt@floattype{#1}}%
-}
-\define@key{tocbasic}{floatpos}{%
- \tb@ifvalueisnotempty{floatpos}{#1}{\edef\tb@nt@floatpos{#1}}%
-}
-\define@key{tocbasic}{atbegin}{%
- \def\tb@nt@atbegin{#1}%
-}
-\define@key{tocbasic}{atend}{%
- \def\tb@nt@atend{#1}%
-}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.toc]{KOMAarg}
\newcommand*{\DeclareNewTOC}[2][]{%
- \tb@floatfalse
- \tb@nonfloatfalse
- \tb@forcenamesfalse
+ \newif\iftb@nt@float
+ \newif\iftb@nt@nonfloat
+ \newif\iftb@nt@forcenames
\def\tb@nt@floattype{\tb@nt@autofloattype}%
\def\tb@nt@floatpos{tbp}%
\def\tb@nt@ext{#2}%
- \def\tb@nt@type{#2}%
+ \edef\tb@nt@type{#2}%
\let\tb@nt@types\relax
\def\tb@nt@owner{float}%
\def\tb@nt@name{\expandafter\protect\expandafter\MakeUppercase\tb@nt@type}%
\let\tb@nt@listname\relax
- \def\tb@nt@level{1}%
- \def\tb@nt@indent{1em}%
- \def\tb@nt@hang{1.5em}%
\let\tb@nt@counterwithin\@empty
\let\tb@nt@atbegin\@empty
\let\tb@nt@atend\@empty
- \setkeys{tocbasic}{#1}%
+ \def\tb@nt@tocentrystyle{default}%
+ \def\tb@nt@tocstyle@options{level=1}%
+ \IfArgIsEmpty{#1}{%
+ \begingroup
+ \let\scr@dte@current\tb@nt@type
+ \@ExecuteTOCEntryStyleInitCode{\tb@nt@tocentrystyle}{\tb@nt@type}%
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \ifstr{##1}{numwidth}{%
+ \l@addto@macro\do@endgroup{%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,numwidth=1.5em}%
+ }%
+ }{%
+ \ifstr{##1}{indent}{%
+ \l@addto@macro\do@endgroup{%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,indent=1em}%
+ }%
+ }{}%
+ }%
+ \kernel@ifnextchar[%]
+ {\@dodefault}%
+ {}%
+ }%
+ \def\@dodefault[##1]{}%
+ \scr@dte@doopts
+ \do@endgroup
+ }{%
+ \let\tb@nt@extra@relax@opts\@empty
+ \DefineFamilyKey[.toc]{KOMAarg}{type}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@type{##1}}%
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{tocentrystyle}[default]{%
+ \IfArgIsEmpty{##1}{%
+ \edef\tb@nt@tocentrystyle{##1}%
+ \FamilyKeyStateProcessed
+ }{%
+ \scr@ifundefinedorrelax{scr@dte@def@l@##1}{%
+ \FamilyKeyStateUnknownValue
+ }{%
+ \edef\tb@nt@tocentrystyle{##1}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{@else@}{\FamilyKeyStateProcessed}%
+ \FamilyExecuteOptions[.toc]{KOMAarg}{#1}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{@else@}%
+ \DefineFamilyKey[.toc]{KOMAarg}{type}{\FamilyKeyStateProcessed}%
+ \DefineFamilyKey[.toc]{KOMAarg}{tocentrystyle}{\FamilyKeyStateProcessed}%
+ \ifstr{\tb@nt@tocentrystyle}{}{}{%
+ \begingroup
+ \let\scr@dte@current\tb@nt@type
+ \@ExecuteTOCEntryStyleInitCode{\tb@nt@tocentrystyle}{\tb@nt@type}%
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \l@addto@macro\do@endgroup{%
+ \l@addto@macro\tb@nt@extra@relax@opts{%
+ \RelaxFamilyKey[.toc]{KOMAarg}{toc##1}%
+ }%
+ }%
+ \kernel@ifnextchar[%]
+ {\@dodefault{##1}}%
+ {\@donodefault{##1}}%
+ }%
+ \def\@donodefault##1{%
+ \l@addto@macro\do@endgroup{%
+ \DefineFamilyKey[.toc]{KOMAarg}{toc##1}{%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,##1={####1}}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \def\@dodefault##1[##2]{%
+ \l@addto@macro\do@endgroup{%
+ \DefineFamilyKey[.toc]{KOMAarg}{toc##1}[##2]{%
+ \l@addto@macro{\tb@nt@tocstyle@options}{,##1={####1}}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \scr@dte@doopts
+ \do@endgroup
+ }%
+ \FamilyStringKey[.toc]{KOMAarg}{atbegin}{\tb@nt@atbegin}%
+ \FamilyStringKey[.toc]{KOMAarg}{atend}{\tb@nt@atend}%
+ \DefineFamilyKey[.toc]{KOMAarg}{counterwithin}{%
+ \edef\tb@nt@counterwithin{##1}\FamilyKeyStateProcessed
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{extension}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@ext{##1}}%
+ }%
+ \FamilyBoolKey[.toc]{KOMAarg}{float}{tb@nt@float}%
+ \DefineFamilyKey[.toc]{KOMAarg}{floatpos}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@floatpos{##1}}%
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{floattype}{%
+ \FamilySetCounterMacro{KOMAarg}{floattype}{\reserved@d}{##1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifnum 0=
+ \ifnum\reserved@d<1 0 \else\ifnum\reserved@d>31 0 \else 1 \fi\fi
+ \FamilyKeyStateUnknownValue
+ \else
+ \let\tb@nt@floattype\reserved@d
+ \fi
+ \fi
+ }%
+ \FamilyBoolKey[.toc]{KOMAarg}{forcenames}{tb@nt@forcenames}%
+ \DefineFamilyKey[.toc]{KOMAarg}{hang}{%
+ \scr@ifundefinedorrelax{KV@KOMAarg.toc@tocnumwidth}{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `hang'.\MessageBreak
+ Option will be ignored, because toc entry style\MessageBreak
+ `\tb@nt@tocentrystyle' does not provide option `numwidth'%
+ }%
+ }{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `hang'.\MessageBreak
+ You should replace option `hang' by option\MessageBreak
+ `tocnumwidth'%
+ }%
+ \l@addto@macro\tb@nt@tocstyle@options{,numwidth={##1}}%
+ }%
+ \FamilyKeyStateProcessed
+ }%
+ \scr@ifundefinedorrelax{KV@KOMAarg.toc@tocnumwidth}{}{%
+ \l@addto@macro\tb@nt@tocstyle@options{,numwidth=1.5em}%
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{indent}{%
+ \scr@ifundefinedorrelax{KV@KOMAarg.toc@tocindent}{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `indent'.\MessageBreak
+ Option will be ignored, because toc entry style\MessageBreak
+ `\tb@nt@tocentrystyle' does not provide option `indent'%
+ }%
+ }{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `indent'.\MessageBreak
+ You should replace option `indent' by option\MessageBreak
+ `tocindent'%
+ }%
+ \l@addto@macro\tb@nt@tocstyle@options{,indent={##1}}%
+ }%
+ \FamilyKeyStateProcessed
+ }%
+ \scr@ifundefinedorrelax{KV@KOMAarg.toc@tocindent}{}{%
+ \l@addto@macro\tb@nt@tocstyle@options{,indent=1em}%
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{level}{%
+ \PackageWarning{tocbasic}{%
+ deprecated option `level'.\MessageBreak
+ You should replace option `level' by option\MessageBreak
+ `toclevel'
+ }%
+ \l@addto@macro\tb@nt@tocstyle@options{,level={##1}}%
+ \FamilyKeyStateProcessed
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{listname}{%
+ \tb@ifvalueisnotempty{##1}{\def\tb@nt@listname{##1}}%
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{name}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@name{##1}}%
+ }%
+ \FamilyBoolKey[.toc]{KOMAarg}{nonfloat}{tb@nt@nonfloat}%
+ \DefineFamilyKey[.toc]{KOMAarg}{owner}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@owner{##1}}%
+ }%
+ \DefineFamilyKey[.toc]{KOMAarg}{types}{%
+ \tb@ifvalueisnotempty{##1}{\edef\tb@nt@types{##1}}%
+ }%
+ \FamilyExecuteOptions[.toc]{KOMAarg}{#1}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{types}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{owner}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{nonfload}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{name}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{listname}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{level}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{indent}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{hang}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{forcenames}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{floatpos}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{float}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{extension}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{counterwithin}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{atend}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{atbegin}%
+ \tb@nt@extra@relax@opts
+ \RelaxFamilyKey[.toc]{KOMAarg}{tocentrystyle}%
+ \RelaxFamilyKey[.toc]{KOMAarg}{type}%
+ }%
\expandafter\newcommand\csname ext@\tb@nt@type\endcsname{}%
\expandafter\let\csname ext@\tb@nt@type\endcsname\tb@nt@ext
\addtotoclist[\tb@nt@owner]{\csname ext@\tb@nt@type\endcsname}%
@@ -637,7 +779,7 @@
\@ifundefined{\tb@nt@type name}{%
\expandafter\protected@edef\csname \tb@nt@type name\endcsname{\tb@nt@name}%
}{%
- \iftb@forcenames
+ \iftb@nt@forcenames
\expandafter\protected@edef\csname \tb@nt@type name\endcsname
{\tb@nt@name}%
\fi
@@ -645,7 +787,7 @@
\@ifundefined{list\tb@nt@type name}{%
\expandafter\let\csname list\tb@nt@type name\endcsname\tb@nt@listname
}{%
- \iftb@forcenames
+ \iftb@nt@forcenames
\expandafter\let\csname list\tb@nt@type name\endcsname\tb@nt@listname
\fi
}%
@@ -656,11 +798,24 @@
\noexpand\listoftoc{\tb@nt@ext}%
}%
}\@tempa
- \begingroup\edef\@tempa{\endgroup
- \noexpand\newcommand*\csname l@\tb@nt@type\endcsname{%
- \noexpand\@dottedtocline{\tb@nt@level}{\tb@nt@indent}{\tb@nt@hang}%
+ \ifstr{\tb@nt@tocentrystyle}{}{%
+ \@ifundefined{l@\tb@nt@type}{%
+ \PackageWarning{tocbasic}{%
+ \expandafter\string\csname l@\tb@nt@type\endcsname\space
+ undefined!\MessageBreak
+ I hope you know, what you are doing, but\MessageBreak
+ maybe it would be better to use proper\MessageBreak
+ `tocentrystyle` settings%
+ }%
+ }{}%
+ }{%
+ \edef\reserved@a{%
+ \noexpand\DeclareTOCStyleEntry[%
+ {\unexpanded\expandafter{\tb@nt@tocstyle@options}}%
+ ]{\tb@nt@tocentrystyle}{\tb@nt@type}%
}%
- }\@tempa
+ \reserved@a
+ }%
\@ifundefined{listof\tb@nt@ext entryname}{%
\expandafter\let\csname listof\tb@nt@ext entryname\endcsname\tb@nt@name
}{}%
@@ -670,7 +825,7 @@
}%
}\@tempa
\@tempswafalse
- \iftb@float
+ \iftb@nt@float
\expandafter\newcommand\expandafter*\csname fps@\tb@nt@type\expandafter
\endcsname\expandafter{\tb@nt@floatpos}%
\expandafter\newcommand\expandafter*\csname ftype@\tb@nt@type\expandafter
@@ -679,7 +834,7 @@
\edef\@tempa{%
\noexpand\endgroup
\noexpand\newenvironment{\tb@nt@type}{%
- \noexpand\@ifnextchar[%]
+ \noexpand\kernel@ifnextchar[%]
{\noexpand\tb@atbegin@after\noexpand\@float{\tb@nt@type}}%
{\noexpand\edef\noexpand\reserved@a{%
\noexpand\noexpand\noexpand\tb@atbegin@after
@@ -691,7 +846,7 @@
\noexpand\end@float
}%
\noexpand\newenvironment{\tb@nt@type*}{%
- \noexpand\@ifnextchar[%]
+ \noexpand\kernel@ifnextchar[%]
{\noexpand\tb@atbegin@after\noexpand\@dblfloat{\tb@nt@type}}%
{\noexpand\edef\noexpand\reserved@a{%
\noexpand\noexpand\noexpand\tb@atbegin@after
@@ -706,7 +861,7 @@
\@tempa
\@tempswatrue
\fi
- \iftb@nonfloat
+ \iftb@nt@nonfloat
\begingroup
\edef\@tempa{%
\noexpand\endgroup
@@ -769,33 +924,1206 @@
#1{#2}[#3]%
\csname #2@atbegin\endcsname
}
-\newcommand*{\tb@ifvalueisnotempty}[2]{%
+\newcommand*{\tb@ifvalueisnotempty}[1]{%
+ \ifstr{#1}{}{%
+ \FamilyKeyStateUnknownValue
+ \expandafter\@gobble
+ }{%
+ \FamilyKeyStateProcessed
+ \expandafter\@firstofone
+ }%
+}
+\newcommand*{\tb@nt@autofloattype}{16}
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: body)
+\newcommand*{\scr@numberline}[1]{%
+ \numberline@box{%
+ \numberline@prefix
+ \ifstr{#1}{}{#1}{%
+ \numberline@numberformat{#1}%
+ }%
+ \numberline@postfix
+ }%
+}
+\newcommand*{\usetocbasicnumberline}[1][%
+ \PackageInfo{tocbasic}{Using my definition of `\string\numberline'}%
+]{%
+ \@tempswatrue
\begingroup
- \edef\@tempa{#2}\ifx\@tempa\@empty
- \PackageError{tocbasic}{empty value for key `#1'}{%
- The argument of key `#1' may not by empty!}%
- \aftergroup\@gobble
- \else
- \aftergroup\@firstofone
- \fi
+ \def\scr@numberline##1{\global\@tempswafalse}%
+ \@tempdima\maxdimen
+ \sbox\@tempboxa{\numberline{0}}%
\endgroup
+ \if@tempswa #1\renewcommand*{\numberline}[1]{\scr@numberline{##1}}\fi
+}
+\newcommand*{\numberline@prefix}{}
+\newcommand*{\numberline@postfix}{\hfil}
+\newcommand*{\numberline@numberformat}[1]{%
+ \ifstr{#1}{}{}{\numberline@numberprefix#1\numberline@numberpostfix}%
+}
+\newcommand*{\numberline@numberprefix}{}
+\newcommand*{\numberline@numberpostfix}{}
+\newcommand*{\numberline@box}[1]{\hb@xt@\@tempdima{#1}}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.dte]{KOMAarg}
+\newcommand*{\@DefineTOCEntryOption}[2]{%
+ \edef\scr@dte@doopts{%
+ \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2}%
+ }%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryOptionWithDefault{#1}{#2}}%
+ {\@DefineTOCEntryOptionWithoutDefault{#1}{#2}}%
}
-\newcommand*{\tb@boolkey}[2]{%
- \csname tb@#2\ifx\relax#1\relax true\else#1\fi\endcsname
+\newcommand*{\@DefineTOCEntryOptionWithoutDefault}[3]{%
+ \DefineFamilyKey[.dte]{KOMAarg}{#2}{#3}%
}
-\newcommand*{\tb@dimkey}[2]{%
- \begingroup
- \@defaultunits\@tempdima#2pt\relax\@nnil
- \edef\@tempa{\noexpand\endgroup\noexpand\def\noexpand#1{\the\@tempdima}}
- \@tempa
+\newcommand*{\@DefineTOCEntryOptionWithDefault}{}
+\def\@DefineTOCEntryOptionWithDefault#1#2[#3]#4{%
+ \l@addto@macro\scr@dte@doopts{[{#3}]}%
+ \DefineFamilyKey[.dte]{KOMAarg}{#2}[{#3}]{#4}%
}
-\newcommand*{\tb@numkey}[2]{%
+\newcommand*{\@RelaxTOCEntryOptions}{%
\begingroup
- \afterassignment\remove@to@nnil\@tempcnta#2\relax\@nnil
- \edef\@tempa{\noexpand\endgroup\noexpand\def\noexpand#1{\the\@tempcnta}}
- \@tempa
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \l@addto@macro\do@endgroup{\RelaxFamilyKey[.dte]{KOMAarg}{##1}}%
+ \scr@dte@gobbleopt
+ }%
+ \scr@dte@doopts
+ \do@endgroup
+}
+\newcommand{\scr@dte@gobbleopt}[1][]{}
+\newcommand*{\@DefineTOCEntryLengthOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryLengthOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryLengthOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryLengthOptionWithoutDefault}[5]{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4}{#2}{#5}%
+ \@DefineTOCEntryOption{#1}{#2}{%
+ \@DefineTOCEntryLengthOptionMacro{#2}{#3}{#4}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryLengthOptionWithDefault}{}
+\def\@DefineTOCEntryLengthOptionWithDefault#1#2[#3]#4#5#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5}{#2}{#6}%
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryLengthOptionMacro{#2}{#4}{#5}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryLengthOptionMacro}[4]{%
+ \protected@edef\reserved@a{%
+ \noexpand\FamilySetLength{KOMAarg}{#1}{\noexpand\@tempskipa}{#4}%
+ }\reserved@a
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifscr@dte@expandtopt
+ \expandafter\edef\csname #2\scr@dte@current#3\endcsname{%
+ \the\@tempskipa}%
+ \else
+ \expandafter\protected@edef\csname #2\scr@dte@current#3\endcsname{#4}%
+ \fi
+ \fi
+}
+\newcommand*{\@DefineTOCEntryNumberOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryNumberOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryNumberOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryNumberOptionWithoutDefault}[5]{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4}{#2}{#5}%
+ \@DefineTOCEntryOption{#1}{#2}{%
+ \@DefineTOCEntryNumberOptionMacro{#2}{#3}{#4}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryNumberOptionWithDefault}{}
+\def\@DefineTOCEntryNumberOptionWithDefault#1#2[#3]#4#5#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5}{#2}{#6}%
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryNumberOptionMacro{#2}{#4}{#5}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryNumberOptionMacro}[4]{%
+ \protected@edef\reserved@a{%
+ \noexpand\FamilySetCounterMacro{KOMAarg}{#1}{%
+ \expandafter\noexpand\csname #2\scr@dte@current#3\endcsname
+ }{#4}%
+ }\reserved@a
+}
+\newcommand*{\@DefineTOCEntryBooleanOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryBoolOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryBoolOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryBoolOptionWithoutDefault}[5]{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{if#3}{#4}{#2}{#5}%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4false}{#2}{#5}%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4false}{#2}{#5}%
+ \@DefineTOCEntryOption{#1}{#2}[true]{%
+ \@DefineTOCEntryBoolOptionMacro{#2}{#3}{#4}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryBoolOptionWithDefault}{}
+\def\@DefineTOCEntryBoolOptionWithDefault#1#2[#3]#4#5#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{if#4}{#5}{#2}{#6}%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5true}{#2}{#6}%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5false}{#2}{#6}%
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryBoolOptionMacro{#2}{#4}{#5}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryBoolOptionMacro}[4]{%
+ \@ifundefined{if#2\scr@dte@current#3}{%
+ \expandafter\newif\csname if#2\scr@dte@current#3\endcsname
+ }{}%
+ \FamilySetBool{KOMAarg}{#1}{#2\scr@dte@current#3}{#4}%
+}
+\newcommand*{\@DefineTOCEntryIfOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryIfOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryIfOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryIfOptionWithoutDefault}[5]{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{If#3}{#4}{#2}{#5}%
+ \@DefineTOCEntryOption{#1}{#2}[true]{%
+ \@DefineTOCEntryIfOptionMacro{#2}{#3}{#4}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryIfOptionWithDefault}{}
+\def\@DefineTOCEntryIfOptionWithDefault#1#2[#3]#4#5#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{If#4}{#5}{#2}{#6}%
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryIfOptionMacro{#2}{#4}{#5}{##1}%
+ }%
+}
+\newcommand*{\@DefineTOCEntryIfOptionMacro}[4]{%
+ \FamilySetBool{KOMAarg}{#1}{@tempswa}{#4}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \expandafter\let\csname If#2\scr@dte@current#3\endcsname\@firstoftwo
+ \else
+ \expandafter\let\csname If#2\scr@dte@current#3\endcsname\@secondoftwo
+ \fi
+ \fi
+}
+\newcommand*{\@DefineTOCEntryCommandOption}[2]{%
+ \kernel@ifnextchar [%]
+ {\@DefineTOCEntryCommandOptionWithDefault{#1}{#2}}
+ {\@DefineTOCEntryCommandOptionWithoutDefault{#1}{#2}}%
+}
+\newcommand*{\@DefineTOCEntryCommandOptionWithoutDefault}[4]{%
+ \@testopt{\@@DefineTOCEntryCommandOptionWithoutDefault{#1}{#2}{#3}{#4}}0%
+}
+\newcommand*{\@@DefineTOCEntryCommandOptionWithoutDefault}{}%
+\def\@@DefineTOCEntryCommandOptionWithoutDefault#1#2#3#4[#5]#6{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#3}{#4}{#2}{#6}%
+ \ifcase #5
+ \@DefineTOCEntryOption{#1}{#2}{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#3}{#4}[#5]{##1}%
+ }%
+ \or
+ \@DefineTOCEntryOption{#1}{#2}{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#3}{#4}[#5]{##1{####1}}%
+ }%
+ \else
+ \PackageError{tocbasic%
+ }{only one argument supported}{%
+ \string\DefineTOCEntryCommandOption\space currently supports only
+ commands with\MessageBreak
+ at most one argument not #5}%
+ \fi
+}
+\newcommand*{\@DefineTOCEntryCommandOptionWithDefault}{}
+\def\@DefineTOCEntryCommandOptionWithDefault#1#2[#3]#4#5{%
+ \@testopt{\@@DefineTOCEntryCommandOptionWithDefault{#1}{#2}{#3}{#4}{#5}}0%
+}
+\def\@@DefineTOCEntryCommandOptionWithDefault#1#2#3#4#5[#6]#7{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}{#4}{#5}{#2}{#7}%
+ \ifcase #6
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1}%
+ }%
+ \or
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1{####1}}%
+ }%
+ \or
+ \@DefineTOCEntryOption{#1}{#2}[{#3}]{%
+ \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1{####1}{####2}}%
+ }%
+ \else
+ \PackageError{tocbasic%
+ }{only one argument supported}{%
+ \string\DefineTOCEntryCommandOption\space currently supports only
+ commands with\MessageBreak
+ at most two argument not #6}%
+ \fi
+}
+\newcommand*{\@DefineTOCEntryCommandOptionMacro}[3]{%
+ \@testopt{\@@DefineTOCEntryCommandOptionMacro{#1}{#2}{#3}}0%
+}
+\newcommand*{\@@DefineTOCEntryCommandOptionMacro}{}
+\long\def\@@DefineTOCEntryCommandOptionMacro#1#2#3[#4]#5{%
+ \let\l@ngrel@x\long
+ \expandafter\@yargdef\csname #2\scr@dte@current#3\endcsname\@ne{#4}{#5}%
+ \FamilyKeyStateProcessed
+}
+\newcommand{\@AddToDeclareTOCEntryStylePreCheckNeeds}[1]{%
+ \expandafter\providecommand\csname scr@dte@precheck\endcsname[1]{}%
+ \expandafter\l@addto@macro@a\csname scr@dte@precheck\endcsname
+}
+\newcommand{\@PreToDeclareTOCEntryStylePreCheckNeeds}[1]{%
+ \expandafter\providecommand\csname scr@dte@precheck\endcsname[1]{}%
+ \expandafter\l@preto@macro@a\csname scr@dte@precheck\endcsname
+}
+\newcommand*{\@TOCEntryStyleNeedsCommandByOption}[5]{%
+ \expandafter\providecommand\expandafter*\csname scr@dte@#1@needs\endcsname{}%
+ \expandafter\l@addto@macro\csname scr@dte@#1@needs\endcsname{%
+ \do{#2}{#3}{#4}{#5}%
+ }%
+}
+\newcommand{\TOCEntryStyleInitCode}[1]{%
+ \scr@ifundefinedorrelax{scr@dte@#1@init}{%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@dte@#1@init\endcsname[1]%
+ }{%
+ \expandafter\l@addto@macro@a\csname scr@dte@#1@init\endcsname
+ }%
+}
+\newcommand{\TOCEntryStyleStartInitCode}[1]{%
+ \scr@ifundefinedorrelax{scr@dte@#1@init}{%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@dte@#1@init\endcsname[1]%
+ }{%
+ \expandafter\l@preto@macro@a\csname scr@dte@#1@init\endcsname
+ }%
+}
+\newcommand*{\@ExecuteTOCEntryStyleInitCode}[2]{%
+ \let\scr@dte@doopts\@empty
+ \scr@ifundefinedorrelax{scr@dte@#1@init}{}{%
+ \def\DefineTOCEntryBooleanOption{\@DefineTOCEntryBooleanOption{#1}}%
+ \def\DefineTOCEntryCommandOption{\@DefineTOCEntryCommandOption{#1}}%
+ \def\DefineTOCEntryIfOption{\@DefineTOCEntryIfOption{#1}}%
+ \def\DefineTOCEntryLengthOption{\@DefineTOCEntryLengthOption{#1}}%
+ \def\DefineTOCEntryNumberOption{\@DefineTOCEntryNumberOption{#1}}%
+ \def\DefineTOCEntryOption{\@DefineTOCEntryOption{#1}}%
+ \def\AddToDeclareTOCEntryStylePreCheckNeeds{%
+ \@AddToDeclareTOCEntryStylePreCheckNeeds{#1}}%
+ \def\PreToDeclareTOCEntryStylePreCheckNeeds{%
+ \@PreToDeclareTOCEntryStylePreCheckNeeds{#1}}%
+ \def\TOCEntryStyleNeedsCommandByOption{%
+ \@TOCEntryStyleNeedsCommandByOption{#1}}%
+ \@nameuse{scr@dte@#1@init}{#2}%
+ \let\TOCEntryStyleNeedsCommandByOption\relax
+ \let\PreToDeclareTOCEntryStylePreCheckNeeds\relax
+ \let\AddToDeclareTOCEntryStylePreCheckNeeds\relax
+ \let\DefineTOCEntryOption\relax
+ \let\DefineTOCEntryNumberOption\relax
+ \let\DefineTOCEntryLengthOption\relax
+ \let\DefineTOCEntryIfOption\relax
+ \let\DefineTOCEntryCommandOption\relax
+ \let\DefineTOCEntryBooleanOption\relax
+ }%
+}
+\newcommand*{\DeclareTOCStyleEntry}[3][]{%
+ \scr@ifundefinedorrelax{scr@dte@def@l@#2}{%
+ \PackageError{tocbasic%
+ }{toc entry style `#2' undefined}{%
+ Somebody told me to define toc entry `#3' with style `#2',\MessageBreak
+ but I do not know style `#2'.\MessageBreak
+ You should first define the style then define the entry.\MessageBreak
+ If you'll continue, I'll ignore the command. This could result
+ in\MessageBreak
+ further error messages.%
+ }%
+ }{%
+ \let\scr@dte@precheck\@gobble
+ \def\scr@dte@current{#3}%
+ \@ExecuteTOCEntryStyleInitCode{#2}{#3}%
+ \IfArgIsEmpty{#1}{}{%
+ \FamilyBoolKey[.dte]{KOMAarg}{expandtopt}{scr@dte@expandtopt}%
+ \scr@dte@expandtoptfalse
+ \FamilyExecuteOptions[.dte]{KOMAarg}{#1}%
+ \RelaxFamilyKey[.dte]{KOMAarg}{expandtopt}%
+ }%
+ \@RelaxTOCEntryOptions
+ \let\scr@dte@doopts\relax
+ \let\scr@dte@current\relax
+ \scr@ifundefinedorrelax{#3tocdepth}{%
+ \expandafter\let\csname #3tocdepth\expandafter\endcsname
+ \csname #3numdepth\endcsname
+ }{}%
+ \scr@dte@precheck{#3}%
+ \let\scr@dte@precheck\relax
+ \begingroup
+ \aftergroup\@tempswatrue
+ \def\do##1##2##3##4{%
+ \scr@ifundefinedorrelax{##1#3##2}{%
+ \PackageError{tocbasic%
+ }{toc style `#2' needs ##4}{%
+ Usually the ##4 is defined using option `##3'.\MessageBreak
+ In some cases it may be set defining command
+ `\expandafter\string\csname ##1#3##2\endcsname'.\MessageBreak
+ If you'll continue, I'll ignore the command. This could result
+ in\MessageBreak
+ further error messages.%
+ }%
+ \aftergroup\@tempswafalse
+ }{}%
+ }%
+ \do{}{tocdepth}{level}{toc style level}%
+ \@nameuse{scr@dte@#2@needs}%
+ \endgroup
+ \if@tempswa
+ \@nameuse{scr@dte@def@l@#2}{#3}%
+ \expandafter\edef\csname scr@dte@#3@style\endcsname{#2}%
+ \fi
+ }%
+}
+\newcommand*{\DeclareTOCEntryStyle}[1]{%
+ \kernel@ifnextchar [%]
+ {\@DeclareTOCEntryStyle{#1}}%
+ {\@DeclareTOCEntryStyle{#1}[]}%
+}
+\newcommand{\@DeclareTOCEntryStyle}{}
+\long\def\@DeclareTOCEntryStyle#1[#2]#3{%
+ \@namedef{scr@dte@def@l@#1}##1{%
+ \@namedef{l@##1}####1####2{%
+ \TOC@EntryStartHook{##1}%
+ #3%
+ \TOC@EntryEndHook{##1}%
+ }%
+ }%
+ \TOCEntryStyleInitCode{#1}{%
+ \DefineTOCEntryNumberOption{level}{}{tocdepth}{toc entry level}%
+ #2%
+ }%
+}
+\newcommand*{\TOC@EntryStartHook}[1]{}
+\newcommand*{\TOC@EntryEndHook}[1]{}
+\newcommand*{\CloneTOCEntryStyle}[2]{%
+ \expandafter\let\csname scr@dte@def@l@#2\expandafter\endcsname
+ \csname scr@dte@def@l@#1\endcsname
+ \expandafter\let\csname scr@dte@#2@init\expandafter\endcsname
+ \csname scr@dte@#1@init\endcsname
+}
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: style,gobble)
+\DeclareTOCEntryStyle{gobble}{}%
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: style,dottedtocline)
+\DeclareTOCEntryStyle{dottedtocline}[{%
+ \DefineTOCEntryLengthOption{indent}%
+ {scr@tso@}{@indent}{entry indent}%
+ \DefineTOCEntryLengthOption{numwidth}%
+ {scr@tso@}{@numwidth}{entry number width}%
+ \@ifundefined{#1tocdepth}{%
+ \ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{%
+ \ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{%
+ \ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{%
+ \ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{%
+ \ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{%
+ \ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{%
+ \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{%
+ \expandafter\let\csname #1tocdepth\expandafter\endcsname
+ \csname #1numdepth\endcsname
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{}%
+ \@ifundefined{scr@tso@#1@indent}{%
+ \@ifundefined{scr@#1@tocindent}{%
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{3.8em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{7em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{7.0em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{12em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}%
+ }%
+ }{}%
+ \@ifundefined{scr@tso@#1@numwidth}{%
+ \@ifundefined{scr@#1@tocnumwidth}{%
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
+ \scr@ifundefinedorrelax{chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@numwidth}{3.2em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@numwidth}{4.1em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@numwidth}{5m}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{3.2em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@numwidth}{3.1em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@numwidth}{5em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@numwidth}{6em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \@namedef{scr@tso@#1@numwidth}{\@nameuse{scr@#1@tocnumwidth}}%
+ }%
+ }{}%
+}]{%
+ \@dottedtocline{\@nameuse{#1tocdepth}}{\@nameuse{scr@tso@#1@indent}}%
+ {\@nameuse{scr@tso@#1@numwidth}}{##1}{##2}%
+}
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: style,undottedtocline)
+\DeclareTOCEntryStyle{undottedtocline}[{%
+ \DefineTOCEntryLengthOption{indent}%
+ {scr@tso@}{@indent}{entry indent}%
+ \DefineTOCEntryLengthOption{numwidth}%
+ {scr@tso@}{@numwidth}{entry number width}%
+ \@ifundefined{#1tocdepth}{%
+ \ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{%
+ \ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{%
+ \ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{%
+ \ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{%
+ \ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{%
+ \ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{%
+ \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{%
+ \expandafter\let\csname #1tocdepth\expandafter\endcsname
+ \csname #1numdepth\endcsname
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{}%
+ \@ifundefined{scr@tso@#1@indent}{%
+ \@ifundefined{scr@#1@tocindent}{%
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{3.8em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{7em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{7.0em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{12em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}%
+ }%
+ }{}%
+ \@ifundefined{scr@tso@#1@numwidth}{%
+ \@ifundefined{scr@#1@tocnumwidth}{%
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
+ \scr@ifundefinedorrelax{chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@numwidth}{3.2em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@numwidth}{4.1em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@numwidth}{5m}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{3.2em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@numwidth}{3.1em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@numwidth}{5em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@numwidth}{6em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \@namedef{scr@tso@#1@numwidth}{\@nameuse{scr@#1@tocnumwidth}}%
+ }%
+ }{}%
+}]{%
+ \ifnum \c@tocdepth >\numexpr \@nameuse{#1tocdepth}-\@ne\relax
+ \ifnum \@nameuse{#1tocdepth}<\@ne
+ \scr@ifundefinedorrelax{chapter}{%
+ \addpenalty\@secpenalty
+ \addvspace{1.0em \@plus\p@}%
+ }{%
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ }%
+ \else
+ \addpenalty\@secpenalty
+ \addvspace{1.0em \@plus\p@}%
+ \fi
+ \setlength\@tempdima{\@nameuse{scr@tso@#1@numwidth}}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode
+ \bfseries
+ \advance\leftskip\@tempdima
+ \advance\leftskip\@nameuse{scr@tso@#1@indent}%
+ \hskip -\dimexpr \leftskip-\@nameuse{scr@tso@#1@indent}\relax
+ ##1%
+ \nobreak
+ \hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}%
+ \par
+ \penalty\@highpenalty
+ \endgroup
+ \fi
+}
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: style, largetocline)
+\DeclareTOCEntryStyle{largetocline}[{%
+ \DefineTOCEntryLengthOption{indent}%
+ {scr@tso@}{@indent}{entry indent}%
+ \@ifundefined{#1tocdepth}{%
+ \ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{%
+ \ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{%
+ \ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{%
+ \ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{%
+ \ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{%
+ \ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{%
+ \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{%
+ \expandafter\let\csname #1tocdepth\expandafter\endcsname
+ \csname #1numdepth\endcsname
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{}%
+ \@ifundefined{scr@tso@#1@indent}{%
+ \@ifundefined{scr@#1@tocindent}{%
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{3.8em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{7em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{7.0em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{12em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}%
+ }%
+ }{}%
+}]{%
+ \ifnum \c@tocdepth >\numexpr \@nameuse{#1tocdepth}-\@ne\relax
+ \ifnum \@nameuse{#1tocdepth}<\@ne
+ \scr@ifundefinedorrelax{chapter}{%
+ \addpenalty\@secpenalty
+ \addvspace{2.25em \@plus\p@}%
+ }{%
+ \addpenalty{-\@highpenalty}%
+ \addvspace{2.25em \@plus\p@}%
+ }%
+ \else
+ \addpenalty\@secpenalty
+ \addvspace{2.25em \@plus\p@}%
+ \fi
+ \setlength\@tempdima{3em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode
+ \large
+ \bfseries
+ \advance\leftskip\@nameuse{scr@tso@#1@indent}%
+ ##1%
+ \hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}%
+ \par
+ \nobreak
+ \ifnum 0=
+ \scr@ifundefinedorrelax{chapter}{\if@compatibility 1\else 0\fi}{1}\relax
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \fi
+ \endgroup
+ \fi
+}
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: style,tocline)
+\DeclareTOCEntryStyle{tocline}[{%
+ \DefineTOCEntryIfOption{raggedpagenumber}%
+ {scr@tso@}{@raggedpage}{page number ragged flag}%
+ \DefineTOCEntryIfOption{breakafternumber}%
+ {scr@tso@}{@breakafternumber}{line break after number flag}%
+ \DefineTOCEntryIfOption{dynnumwidth}%
+ {scr@tso@}{@dynnumwidth}{dynamic number width flag}%
+ \DefineTOCEntryCommandOption{onstarthigherlevel}%
+ {scr@tso@}{@LastTOCLevelWasLower}{start higher level entry hook}%
+ \DefineTOCEntryCommandOption{onstartsamelevel}%
+ {scr@tso@}{@LastTOCLevelWasSame}{start same level entry hook}%
+ \DefineTOCEntryCommandOption{onstartlowerlevel}%
+ {scr@tso@}{@LastTOCLevelWasHigher}{start lower level entry hook}%
+ \DefineTOCEntryCommandOption{entryformat}%
+ {scr@tso@}{@entryformat}[1]{entry format}%
+ \DefineTOCEntryCommandOption{entrynumberformat}%
+ {scr@tso@}{@numberformat}[1]{entry number format}%
+ \DefineTOCEntryCommandOption{pagenumberformat}%
+ {scr@tso@}{@pagenumberformat}[1]{page number format}%
+ \DefineTOCEntryCommandOption{pagenumberbox}%
+ {scr@tso@}{@pagenumberbox}[1]{page number box}%
+ \DefineTOCEntryCommandOption{linefill}[\TOCLineLeaderFill]%
+ {scr@tso@}{@linefill}{filling between text and page number}%
+ \DefineTOCEntryLengthOption{beforeskip}%
+ {scr@tso@}{@beforeskip}{vertical skip before the entry}%
+ \DefineTOCEntryLengthOption{numsep}%
+ {scr@tso@}{@numsep}{entry number separation}%
+ \DefineTOCEntryLengthOption{indent}%
+ {scr@tso@}{@indent}{entry indent}%
+ \DefineTOCEntryLengthOption{numwidth}%
+ {scr@tso@}{@numwidth}{entry number width}%
+ \scr@ifundefinedorrelax{#1tocdepth}{%
+ \ifstrstart{#1}{sub}{%
+ \scr@ifundefinedorrelax{\scr@dte@nosub{#1}tocdepth}{}{%
+ \expandafter\edef\csname #1tocdepth\endcsname{%
+ \numexpr \noexpand\@nameuse{\scr@dte@nosub{#1}tocdepth}+\@ne\relax
+ }%
+ }%
+ }{}%
+ }{}%
+ \@ifundefined{#1tocdepth}{%
+ \ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{%
+ \ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{%
+ \ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{%
+ \ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{%
+ \ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{%
+ \ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{%
+ \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{%
+ \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{%
+ \expandafter\let\csname #1tocdepth\expandafter\endcsname
+ \csname #1numdepth\endcsname
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@tso@#1@indent}{%
+ \@ifundefined{scr@#1@tocindent}{%
+ \ifstrstart{#1}{sub}{%
+ \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@indent}{%
+ \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@numwidth}{}{%
+ \expandafter\edef\csname scr@tso@#1@indent\endcsname{%
+ \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@numwidth}%
+ \relax
+ }%
+ }%
+ }{%
+ \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@numwidth}{%
+ \expandafter\edef\csname scr@tso@#1@indent\endcsname{%
+ \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@indent}%
+ \relax
+ }%
+ }{%
+ \expandafter\edef\csname scr@tso@#1@indent\endcsname{%
+ \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@indent}%
+ +\noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@numwidth}%
+ \relax
+ }%
+ }%
+ }%
+ }{}%
+ }{%
+ \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}%
+ }%
+ }{}%
+ \@ifundefined{scr@tso@#1@indent}{%
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{3.8em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{7em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@indent}{7.0em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@indent}{10em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@indent}{12em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{}%
+ \scr@ifundefinedorrelax{scr@tso@#1@numwidth}{%
+ \scr@ifundefinedorrelax{scr@#1@tocnumwidth}{%
+ \ifstrstart{#1}{sub}{%
+ \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@numwidth}{}{%
+ \expandafter\edef\csname scr@tso@#1@numwidth\endcsname{%
+ \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@numwidth}%
+ +.9em%
+ \relax
+ }%
+ }%
+ }{}%
+ }{%
+ \@namedef{scr@tso@#1@numwidth}{\@nameuse{scr@#1@tocnumwidth}}%
+ }%
+ }{}%
+ \@ifundefined{scr@tso@#1@numwidth}{%
+ \ifstr{#1}{figure}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
+ \scr@ifundefinedorrelax{chapter}{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@numwidth}{3.2em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@numwidth}{4.1em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@numwidth}{5m}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{%
+ \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{%
+ \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{3.2em}}{%
+ \ifstr{#1}{subsubsection}{%
+ \@namedef{scr@tso@#1@numwidth}{3.1em}%
+ }{%
+ \ifstr{#1}{paragraph}{%
+ \@namedef{scr@tso@#1@numwidth}{5em}%
+ }{%
+ \ifstr{#1}{subparagraph}{%
+ \@namedef{scr@tso@#1@numwidth}{6em}%
+ }{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }{}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@LastTOCLevelWasLower\endcsname{\LastTOCLevelWasLower}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@LastTOCLevelWasSame\endcsname{\LastTOCLevelWasSame}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@LastTOCLevelWasHigher\endcsname{\LastTOCLevelWasHigher}%
+ \@ifundefined{scr@tso@#1@beforeskip}{%
+ \ifstr{#1}{part}{%
+ \@namedef{scr@tso@#1@beforeskip}{\glueexpr 2.25em \@plus\p@\relax}%
+ }{%
+ \ifstr{#1}{chapter}{%
+ \@namedef{scr@tso@#1@beforeskip}{\glueexpr 1.0em \@plus\p@\relax}%
+ }{%
+ \ifstr{#1}{section}{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \@namedef{scr@tso@#1@beforeskip}{\glueexpr 1.0em \@plus\p@\relax}%
+ }{}%
+ }{}%
+ }%
+ }%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@tso@#1@beforeskip\endcsname{\glueexpr \z@ plus .2\p@\relax}%
+ }{}%
+ \@ifundefined{scr@dte@#1@maxnumwidth}{%
+ \expandafter\newlength\csname scr@dte@#1@maxnumwidth\endcsname
+ \setlength{\@nameuse{scr@dte@#1@maxnumwidth}}{\z@}%
+ }{}%
+ \providecommand*{\scr@dte@donumwidth}{}%
+ \g@addto@macro{\scr@dte@donumwidth}{\do{#1}}%
+ \expandafter\providecommand\expandafter*%
+ \csname scr@tso@#1@numsep\endcsname{.4em}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@numberformat\endcsname[1]{##1}%
+ \ifstr{#1}{part}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{\large\bfseries ##1}%
+ }{%
+ \ifstr{#1}{chapter}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{\bfseries ##1}%
+ }{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{\bfseries ##1}%
+ }{}%
+ }{}%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@entryformat\endcsname[1]{##1}%
+ }%
+ }%
+ \expandafter\providecommand
+ \csname Ifscr@tso@#1@breakafternumber\endcsname[2]{##2}%
+ \@ifundefined{scr@tso@#1@linefill}{%
+ \ifstr{#1}{part}{%
+ \@namedef{scr@tso@#1@linefill}{\hfill}%
+ }{%
+ \ifstr{#1}{chapter}{%
+ \@namedef{scr@tso@#1@linefill}{\hfill}%
+ }{%
+ \scr@ifundefinedorrelax{l@chapter}{%
+ \ifstr{#1}{section}{%
+ \@namedef{scr@tso@#1@linefill}{\hfill}%
+ }{}
+ }{}
+ \expandafter\providecommand%
+ \csname scr@tso@#1@linefill\endcsname{\TOCLineLeaderFill\relax}%
+ }%
+ }%
+ }{}%
+ \expandafter\providecommand\csname Ifscr@tso@#1@raggedpage\endcsname[2]{##2}%
+ \ifstr{#1}{part}{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{\large\bfseries ##1}%
+ }{%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberformat\endcsname[1]{%
+ \normalfont\normalcolor ##1}%
+ }%
+ \expandafter\providecommand%
+ \csname scr@tso@#1@pagenumberbox\endcsname[1]{%
+ \hb@xt@\@pnumwidth{\hfil ##1}}%
+ \expandafter\providecommand\csname Ifscr@tso@#1@dynnumwidth\endcsname[2]{##2}%
+}]{%
+ \scr@dte@tocline{#1}{##1}{##2}%
+}
+\AtBeginDocument{%
+ \BeforeClosingMainAux{%
+ \begingroup
+ \def\do#1{%
+ \relax
+ \scr@ifundefinedorrelax{scr@dte@#1@maxnumwidth}{}{%
+ \ifdim \@nameuse{scr@dte@#1@maxnumwidth}>\z@
+ \if@filesw
+ \protected@write\@mainaux{}{%
+ \string\global\string\@namedef{scr@dte@#1@lastmaxnumwidth}%
+ {\the\@nameuse{scr@dte@#1@maxnumwidth}}%
+ }%
+ \fi
+ \@nameuse{scr@dte@#1@maxnumwidth}\z@
+ \fi
+ }%
+ }%
+ \@nameuse{scr@dte@donumwidth}%
+ \endgroup
+ }%
+}
+\newcommand*{\scr@dte@nosub}[1]{\@scr@dte@nosub #1\relax}
+\newcommand*{\@scr@dte@nosub}{}
+\def\@scr@dte@nosub sub#1\relax{#1}
+\newlength\scr@dte@tocline@numberwidth
+\newcommand*{\scr@dte@tocline}[3]{%
+ \ifnum \@nameuse{#1tocdepth}>\c@tocdepth
+ \else
+ \tocbasic@DependOnPenaltyAndTOCLevel{#1}%
+ \addvspace{\@nameuse{scr@tso@#1@beforeskip}}\relax
+ {%
+ \leftskip \@nameuse{scr@tso@#1@indent}\relax
+ \rightskip \@tocrmarg
+ \parfillskip -\rightskip
+ \@nameuse{Ifscr@tso@#1@raggedpage}{%
+ \addtolength{\parfillskip}{\z@ \@plus 1fil}%
+ }{}%
+ \parindent \@nameuse{scr@tso@#1@indent}\relax
+ \@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima \@nameuse{scr@tso@#1@numwidth}\relax
+ \@nameuse{Ifscr@tso@#1@dynnumwidth}{%
+ \scr@ifundefinedorrelax{scr@dte@#1@lastmaxnumwidth}{}{%
+ \ifdim \@nameuse{scr@dte@#1@lastmaxnumwidth}>\@tempdima
+ \@tempdima\@nameuse{scr@dte@#1@lastmaxnumwidth}\relax
+ \fi
+ }%
+ }{}%
+ \advance\leftskip \@tempdima
+ \null\nobreak\hskip -\leftskip
+ {%
+ \usetocbasicnumberline
+ \let\scr@dte@numberline@box\numberline@box
+ \def\numberline@box##1{%
+ \sbox\scr@dte@tocline@numbox{\@nameuse{scr@tso@#1@numberformat}{##1}}%
+ \global\scr@dte@tocline@numberwidth
+ \dimexpr\wd\scr@dte@tocline@numbox+\@nameuse{scr@tso@#1@numsep}\relax
+ \ifdim \scr@dte@tocline@numberwidth
+ >\@nameuse{scr@dte@#1@maxnumwidth}\relax
+ \global\@nameuse{scr@dte@#1@maxnumwidth}\scr@dte@tocline@numberwidth
+ \fi
+ \@nameuse{Ifscr@tso@#1@dynnumwidth}{}{%
+ \ifdim \scr@dte@tocline@numberwidth
+ >\dimexpr \@nameuse{scr@tso@#1@numwidth}%
+ +\@nameuse{scr@tso@#1@numsep}\relax
+ \PackageWarning{tocbasic%
+ }{%
+ number width of #1 toc entries should be
+ increased!\MessageBreak
+ Currently used number width =
+ \the\wd\scr@dte@tocline@numbox,\MessageBreak
+ Wanted number separation
+ \space\space\space =
+ \the\dimexpr\@nameuse{scr@tso@#1@numsep}\relax,\MessageBreak
+ Reserved number width \space\space\space\space\space\space =
+ \the\dimexpr\@nameuse{scr@tso@#1@numwidth}\relax%
+ }%
+ \fi
+ }%
+ \scr@dte@numberline@box{\@nameuse{scr@tso@#1@numberformat}{##1}}%
+ \@nameuse{Ifscr@tso@#1@breakafternumber}{%
+ {\parfillskip\@flushglue\par}\nobreak\hskip-\leftskip
+ }{}%
+ }%
+ \@nameuse{scr@tso@#1@entryformat}{%
+ #2%
+ \nobreak
+ {%
+ \normalfont\normalsize\@nameuse{scr@tso@#1@linefill}%
+ \nobreak
+ \@nameuse{scr@tso@#1@pagenumberbox}{%
+ \@nameuse{scr@tso@#1@pagenumberformat}{#3}%
+ }%
+ }%
+ \@par
+ }%
+ }%
+ }%
+ \tocbasic@SetPenaltyByTOCLevel{#1}%
+ \fi
+}
+\newsavebox\scr@dte@tocline@numbox
+\newcommand*{\tocbasic@DependOnPenaltyAndTOCLevel}[1]{%
+ \ifnum \lastpenalty<\numexpr 20009-\@nameuse{#1tocdepth}\relax
+ \@nameuse{scr@tso@#1@LastTOCLevelWasHigher}%
+ \else\ifnum \lastpenalty=\numexpr 20009-\@nameuse{#1tocdepth}\relax
+ \@nameuse{scr@tso@#1@LastTOCLevelWasSame}%
+ \else
+ \@nameuse{scr@tso@#1@LastTOCLevelWasLower}%
+ \fi
+ \fi
+}
+\newcommand*{\tocbasic@SetPenaltyByTOCLevel}[1]{%
+ \penalty \numexpr 20009-\@nameuse{#1tocdepth}\relax
+}
+\newcommand*{\LastTOCLevelWasHigher}{\ifvmode\addpenalty{\@lowpenalty}\fi}
+\newcommand*{\LastTOCLevelWasSame}{\ifvmode\addpenalty{\@lowpenalty}\fi}
+\newcommand*{\LastTOCLevelWasLower}{}
+\newcommand*{\TOCLineLeaderFill}[1][.]{%
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{#1}\mkern \@dotsep
+ mu$}\hfill
+}
+%%% From File: $Id: scrkernel-tocstyle.dtx 2438 2016-04-27 10:58:21Z kohm $
+%%% (run: style,dottedtocline)
+\CloneTOCEntryStyle{dottedtocline}{default}
+%%% From File: $Id: tocbasic.dtx 2440 2016-04-29 15:59:32Z kohm $
+%%% (run: exit)
+\AtBeginDocument{%
+ \@ifundefined{MakeMarkcase}{%
+ \scr@ifundefinedorrelax{KOMAClassName}{%
+ \let\MakeMarkcase\MakeUppercase
+ }{%
+ \let\MakeMarkcase\@firstofone
+ }%
+ }{}%
}
-\newcommand*{\tb@nt@autofloattype}{16}
%%% From File: $Id: scrlogo.dtx 1380 2013-10-01 15:31:55Z mjk $
\@ifundefined{KOMAScript}{%
\DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%