%% %% This is file `tocstyle.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% tocstyle.dtx (with options: `package,trace,tocstyle') %% scrlogo.dtx (with options: `logo') %% %% Copyright (c) 2007-2017 by Markus Kohm %% %% This file was generated from file(s) of the KOMA-Script bundle. %% --------------------------------------------------------------- %% %% This work may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, version 1.3c of the license. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later and of this work. %% %% This work has the LPPL maintenance status "author-maintained". %% %% The Current Maintainer and author of this work is Markus Kohm. %% %% This file may only be distributed together with the file %% `tocstyle.dtx' and `scrlogo.dtx'. You may however distribute the files %% `tocstyle.dtx' and `scrlogo.dtx' without this file. %% %% If this file is a beta version, you are not allowed to distribute it. %% %% English and German manuals are part of KOMA-Script bundle. %% ---------------------------------------------------------- %% %% The english manual is in `tocstyle.dtx', too. %% %% The KOMA-Script bundle (but not this file) was based upon the LaTeX2.09 %% Script family created by Frank Neukam 1993 and the LaTeX2e standard %% classes created by The LaTeX3 Project 1994-1996. %% %% THIS IS AN ALPHA VERSION! %% USAGE OF THIS VERSION IS ON YOUR OWN RISK! %% EVERYTHING MAY HAPPEN! %% EVERYTHING MAY CHANGE IN FUTURE! %% THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE! %% %%% From File: $Id: tocstyle.dtx 2600 2017-02-23 12:07:58Z kohm $ \NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{tocstyle} [2017/02/23 v0.2i-alpha KOMA-Script package (versatile toc styles)] \PackageWarningNoLine{tocstyle}{% THIS IS AN ALPHA VERSION!\MessageBreak USAGE OF THIS VERSION IS ON YOUR OWN RISK!\MessageBreak EVERYTHING MAY HAPPEN!\MessageBreak EVERYTHING MAY CHANGE IN FUTURE!\MessageBreak THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE!\MessageBreak Maybe it would be better, not to load this package% } \newif\if@tocstyle@penalties \newif\iftocstyle@autolength \newif\iftocstyle@indentnotnumbered \newcount\tocstyle@indentstyle\tocstyle@indentstyle=\z@ \newcommand*{\selecttocstyleoption}[1]{% \begingroup \edef\@tempa{#1}% \edef\@tempb{tocbreaksstrict}% \ifx\@tempa\@tempb\aftergroup\@tocstyle@penaltiestrue\else \edef\@tempb{tocbreakscareless}% \ifx\@tempa\@tempb\aftergroup\@tocstyle@penaltiesfalse\else \edef\@tempb{tocindentauto} \ifx\@tempa\@tempb\aftergroup\tocstyle@autolengthtrue\else \edef\@tempb{tocindentmanual}% \ifx\@tempa\@tempb\aftergroup\tocstyle@autolengthfalse\else \edef\@tempb{tocgraduated}% \ifx\@tempa\@tempb \aftergroup\tocstyle@indentstyle\aftergroup\z@ \else \edef\@tempb{tocflat}% \ifx\@tempa\@tempb \aftergroup\tocstyle@indentstyle\aftergroup\@ne \aftergroup\relax \else \edef\@tempb{tocfullflat}% \ifx\@tempa\@tempb \aftergroup\tocstyle@indentstyle\aftergroup\tw@ \aftergroup\relax \else \edef\@tempb{toctextentriesindented}% \ifx\@tempa\@tempb\aftergroup\tocstyle@indentnotnumberedtrue \else \edef\@tempb{toctextentriesleft}% \ifx\@tempa\@tempb \aftergroup\tocstyle@indentnotnumberedfalse \else \PackageError{tocstyle}{unknown option `#1'}{% You've told me to select toc style option `#1',\MessageBreak but tocstyle doesn't know an option named `#1'}% \fi \fi \fi \fi \fi \fi \fi \fi \fi \endgroup } \newif\iftochaschapter\tochaschapterfalse \ifcsname l@chapter\endcsname \ifcsname chapter\endcsname \tochaschaptertrue \fi \fi \DeclareOption{tocbreaksstrict}{\selecttocstyleoption\CurrentOption} \DeclareOption{tocbreakscareless}{\selecttocstyleoption\CurrentOption} \DeclareOption{tocindentauto}{\selecttocstyleoption\CurrentOption} \DeclareOption{tocindentmanual}{\selecttocstyleoption\CurrentOption} \DeclareOption{toctextentriesindented}{\selecttocstyleoption\CurrentOption} \DeclareOption{toctextentriesleft}{\selecttocstyleoption\CurrentOption} \DeclareOption{tocgraduated}{\selecttocstyleoption\CurrentOption} \DeclareOption{tocflat}{\selecttocstyleoption\CurrentOption} \DeclareOption{tocfullflat}{\selecttocstyleoption\CurrentOption} \ExecuteOptions{tocbreaksstrict,tocindentauto,tocgraduated,% toctextentriesleft} \ProcessOptions\relax \ifcsname if@tocleft\endcsname \expandafter\let\csname if@tempswa\expandafter\endcsname \csname if@tocleft\endcsname \else \@tempswafalse \fi \if@tempswa \PackageWarningNoLine{tocstyle}{% You should not use class option `toc=flat'!\MessageBreak This may result in errors or unexpected results.\MessageBreak I'll try to deactivate `toc=flat', now.\MessageBreak You may use package options `tocflat' and\MessageBreak `tocindentauto' instead of `toc=flat'}% \csname @tocleftfalse\endcsname \fi \newcommand*\tocstyle@saved@starttoc{} \let\tocstyle@saved@starttoc\@starttoc \renewcommand*{\@starttoc}[1]{% \tocstyle@pre@starttoc{#1}% \tocstyle@saved@starttoc{#1}% \tocstyle@post@starttoc{#1}% } \newcommand*{\tocstyle@saved@dottedtocline}{} \newcommand*{\tocstyle@dottedtocline}[5]{% \let\numberline\tocstyle@numberline \ifnum #1>\c@tocdepth \else \if@tocstyle@penalties \begingroup \@tempcnta 20010 \advance \@tempcnta by -#1 \ifnum \@tempcnta>\lastpenalty \aftergroup\penalty\aftergroup\@lowpenalty \fi \endgroup \fi \edef\tocstyledepth{#1}% \tocstyle@activate@features \ifx\tocstyle@feature@entryvskip\relax \vskip \z@ \@plus.2\p@ \else \addvspace{\tocstyle@feature@entryvskip}% \fi {% \parskip \z@ \parindent \z@ \leftskip \z@ \rightskip \z@ \tocstyle@feature@raggedhook \@tempdima #3\relax \@tempdimb #2\relax \typeout{number indent by \string\l@... (\tocstyleTOC, \tocstyledepth): \space\the\@tempdimb}% \typeout{text indent by \string\l@... (\tocstyleTOC, \tocstyledepth): \space\the\@tempdima}% \ifnum #1>\z@\relax \@tempcnta #1\relax \advance\@tempcnta \m@ne \ifcsname tocstyle@maxskipwidth@\tocstyleTOC @\the\@tempcnta\endcsname \ifcsname tocstyle@maxnumwidth@\tocstyleTOC @\the\@tempcnta\endcsname \@tempdimb \csname tocstyle@maxskipwidth@\tocstyleTOC @\the\@tempcnta\endcsname \advance\@tempdimb \csname tocstyle@maxnumwidth@\tocstyleTOC @\the\@tempcnta\endcsname \fi \fi \fi \typeout{number indent by parent (\tocstyleTOC, \tocstyledepth): \space\the\@tempdimb}% \ifcsname tocstyle@skipwidth@\tocstyleTOC @#1\endcsname \ifdim \@tempdimb> \csname tocstyle@skipwidth@\tocstyleTOC @#1\endcsname\relax \expandafter\xdef\csname tocstyle@skipwidth@\tocstyleTOC @#1\endcsname{\the\@tempdimb}% \fi \else \expandafter\xdef\csname tocstyle@skipwidth@\tocstyleTOC @#1\endcsname{\the\@tempdimb}% \fi \iftocstyle@autolength \ifcsname tocstyle@maxskipwidth@\tocstyleTOC @#1\endcsname \@tempdimb \csname tocstyle@maxskipwidth@\tocstyleTOC @#1\endcsname \relax \fi \ifcsname tocstyle@maxnumwidth@\tocstyleTOC @#1\endcsname \@tempdima \csname tocstyle@maxnumwidth@\tocstyleTOC @#1\endcsname \relax \fi \typeout{text indent calculated (\tocstyleTOC, \tocstyledepth): \the\@tempdima}% \typeout{number indent calculated (\tocstyleTOC, \tocstyledepth): \the\@tempdimb}% \else \@tempdimb #2\relax \typeout{number indent explicite (\tocstyleTOC, \tocstyledepth): \the\@tempdimb}% \fi \ifcsname tocstyle@unumwidth@\tocstyleTOC @\endcsname \ifdim \@tempdima> \csname tocstyle@unumwidth@\tocstyleTOC @\endcsname\relax \expandafter\xdef\csname tocstyle@unumwidth@\tocstyleTOC @\endcsname{\the\@tempdima}% \fi \else \expandafter\xdef\csname tocstyle@unumwidth@\tocstyleTOC @\endcsname{\the\@tempdima}% \fi \ifcase\tocstyle@indentstyle\relax\else \@tempdimb \z@ \ifcsname tocstyle@maxunumwidth@\tocstyleTOC @\endcsname \@tempdima \csname tocstyle@maxunumwidth@\tocstyleTOC @\endcsname \relax \fi \typeout{text noindent (\tocstyleTOC, \tocstyledepth): \the\@tempdima}% \typeout{number noindent (\tocstyleTOC, \tocstyledepth): \the\@tempdimb}% \fi \advance\parindent \@tempdimb\@afterindenttrue \advance\leftskip \parindent \advance\rightskip \@tocrmarg \parfillskip -\rightskip \ifx\tocstyle@feature@parfillskip\relax\else \advance\parfillskip \tocstyle@feature@parfillskip\relax \fi \interlinepenalty\@M \leavevmode \advance\leftskip \@tempdima \null\nobreak \iftocstyle@indentnotnumbered\else \hskip -\leftskip \fi \tocstyle@feature@entryhook {#4}\nobreak \ifx\tocstyle@feature@leaders\relax \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{\tocstyle@feature@dothook .}% \mkern \@dotsep mu$}\hfill \else \tocstyle@feature@leaders \fi \nobreak \ifx\tocstyle@feature@pagenumberbox\relax \hb@xt@\@pnumwidth{\hfil\tocstyle@feature@pagenumberhook #5}% \else \tocstyle@feature@pagenumberbox{\tocstyle@feature@pagenumberhook #5}% \fi \par }% \if@tocstyle@penalties \bgroup \@tempcnta 20009 \advance\@tempcnta by -#1 \edef\reserved@a{\egroup\penalty\the\@tempcnta\relax}% \reserved@a \fi \fi} \newcommand*{\tocstyle@saved@numberline}{} \newcommand*{\tocstyle@numberline}[1]{% \begingroup \ifx\tocstyle@feature@spaceafternumber\relax \settowidth\@tempdima{\tocstyle@@numberline{#1}\enskip}% \else \settowidth\@tempdima{\tocstyle@@numberline{#1}}% \advance \@tempdima \tocstyle@feature@spaceafternumber\relax \fi \ifcsname tocstyle@numwidth@\tocstyleTOC @\tocstyledepth\endcsname \ifdim \@tempdima > \csname tocstyle@numwidth@\tocstyleTOC @\tocstyledepth\endcsname\relax \expandafter\xdef\csname tocstyle@numwidth@\tocstyleTOC @\tocstyledepth\endcsname{\the\@tempdima}% \fi \else \expandafter\xdef\csname tocstyle@numwidth@\tocstyleTOC @\tocstyledepth\endcsname{\the\@tempdima}% \fi \endgroup \iftocstyle@indentnotnumbered \hskip -\leftskip \fi \ifcase \tocstyle@indentstyle \hb@xt@\@tempdima{\tocstyle@@numberline{#1}\hfil}% \or \hb@xt@\@tempdima{\tocstyle@@numberline{#1}\hfil}% \else \ifx\tocstyle@feature@spaceafternumber\relax \hbox{\tocstyle@@numberline{#1}\enskip}% \else \hbox{\tocstyle@@numberline{#1}\hskip \tocstyle@feature@spaceafternumber\relax}% \fi \fi } \newcommand*{\tocstyle@@numberline}[1]{% #1\csname autodot\endcsname } \AtBeginDocument{% \@ifpackageloaded{tocbasic}{% \@ifpackagelater{tocbasic}{2016/03/01}{% \PackageWarningNoLine{tocstyle}{% Usage of `tocstyle' with new `tocbasic' detected.\MessageBreak This is not an error! You can do this.\MessageBreak Nevertheless, you should note, combining `tocstyle'\MessageBreak with this version of `tocbasic' will break several\MessageBreak features of `tocbasic'. You should use `tocstyle'\MessageBreak features instead of `tocbasic' attributes for all\MessageBreak entry changes you want.\MessageBreak You may also get additional warnings because of\MessageBreak redefined `\string\numberline'. Ignore them}% }{}% }{}% \@ifpackageloaded{etoc}{% \PackageWarningNoLine{tocstyle}{% Usage of `tocstyle' with `etoc' detected.\MessageBreak I suggest to use either `tocstyle' or `etoc'\MessageBreak but not both of them together}% }{}% \@ifpackageloaded{titletoc}{% \PackageWarningNoLine{tocstyle}{% Usage of `tocstyle' with `titletoc' detected.\MessageBreak I suggest to use either `tocstyle' or `titletoc'\MessageBreak but not both of them together. I expect even\MessageBreak error messages because of this combination}% }{}% \def\tocstyle@test@level{-1}% \def\tocstyle@test@levelname{part}% \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{% \setbox\@tempboxa\vbox{\hsize\maxdimen \let\normalcolor\relax \let\color\@gobble \edef\reserved@a{% \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{% \noexpand\tocstyle@l@define{\tocstyle@test@levelname}% {\tocstyle@test@level}% }{}% }% \reserved@a }% \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}% \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}% }% \ifnum\tocstyle@test@level<\z@ \def\tocstyle@test@level{0}% \fi \def\tocstyle@test@levelname{chapter}% \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{% \setbox\@tempboxa\vbox{\hsize\maxdimen \let\normalcolor\relax \let\color\@gobble \edef\reserved@a{% \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{% \noexpand\tocstyle@l@define{\tocstyle@test@levelname}% {\tocstyle@test@level}% }{}% }% \reserved@a }% \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}% \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}% }% \ifnum\tocstyle@test@level<\@ne \def\tocstyle@test@level{1}% \fi \def\tocstyle@test@levelname{section}% \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{% \setbox\@tempboxa\vbox{\hsize\maxdimen \let\normalcolor\relax \let\color\@gobble \edef\reserved@a{% \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{% \noexpand\tocstyle@l@define{\tocstyle@test@levelname}% {\tocstyle@test@level}% }{}% }% \reserved@a }% \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}% \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}% }% \def\tocstyle@test@levelname{paragraph}% \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{% \setbox\@tempboxa\vbox{\hsize\maxdimen \let\normalcolor\relax \let\color\@gobble \edef\reserved@a{% \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{% \noexpand\tocstyle@l@define{\tocstyle@test@levelname}% {\tocstyle@test@level}% }{}% }% \reserved@a }% \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}% \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}% }% \def\tocstyle@test@level{1}% \def\tocstyle@test@levelname{table}% \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{% \setbox\@tempboxa\vbox{\hsize\maxdimen \let\normalcolor\relax \let\color\@gobble \edef\reserved@a{% \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{% \noexpand\tocstyle@l@define{\tocstyle@test@levelname}% {\tocstyle@test@level}% }{}% }% \reserved@a }% \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}% \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}% }% \def\tocstyle@test@level{1}% \def\tocstyle@test@levelname{figure}% \@whilesw\ifcsname l@\tocstyle@test@levelname\endcsname\fi{% \setbox\@tempboxa\vbox{\hsize\maxdimen \let\normalcolor\relax \let\color\@gobble \edef\reserved@a{% \expandafter\noexpand\csname l@\tocstyle@test@levelname\endcsname{% \noexpand\tocstyle@l@define{\tocstyle@test@levelname}% {\tocstyle@test@level}% }{}% }% \reserved@a }% \edef\tocstyle@test@levelname{sub\tocstyle@test@levelname}% \edef\tocstyle@test@level{\the\numexpr\tocstyle@test@level+1}% }% \def\@tempa#1#2#3#4#5{% \ifnum #1>\c@tocdepth \else \vskip \z@ \@plus.2\p@ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima #3\relax \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip {#4}\nobreak \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill \nobreak \hb@xt@\@pnumwidth{\hfil \normalfont \normalcolor #5}% \par}% \fi}% \ifx\@dottedtocline\@tempa\else \tocstyle@macrochangewarning\@dottedtocline \fi \let\tocstyle@saved@dottedtocline\@dottedtocline \def\@tempa#1{\hb@xt@\@tempdima{#1\autodot\hfil}}% \ifx\numberline\@tempa\else \def\@tempa#1{\hb@xt@\@tempdima{#1\hfil}}% \ifx\numberline@tempa\else \tocstyle@macrochangewarning\numberline \fi \fi \let\tocstyle@saved@numberline\numberline } \newcommand*{\tocstyle@macrochangewarning}[1]{% \PackageWarningNoLine{tocstyle}{% unexpected \string#1\space definition!\MessageBreak You are either using an unknown LaTeX kernel\MessageBreak version, an unknown class or package, that redefines\MessageBreak \string#1, or a \string#1\space redefinition\MessageBreak at the document preamble.\MessageBreak Because of this you may get unexpected results!\MessageBreak Maybe it would be better not to use package tocstyle}% \PackageInfo{tocstyle}{Unexpected definition is:\MessageBreak \meaning#1}% } \newcommand*{\tocstyle@activate@all@l}{} \newcommand*{\tocstyle@l@define}[2]{% \advance\leftskip-\@tempdima \edef\@tempa{% \noexpand\global\noexpand\let \expandafter\noexpand\csname tocstyle@saved@l@#1\endcsname \expandafter\noexpand\csname l@#1\endcsname \noexpand\gdef \expandafter\noexpand\csname tocstyle@l@#1\endcsname{% \noexpand\@dottedtocline{#2}{\the\leftskip}{\the\@tempdima}}% \noexpand\g@addto@macro\noexpand\tocstyle@activate@all@l{% \noexpand\let\expandafter\noexpand\csname l@#1\endcsname \expandafter\noexpand\csname tocstyle@l@#1\endcsname }% }% \PackageInfo{tocstyle}{prepare \expandafter\string \csname l@#1\endcsname\space for redefinition}% \@tempa } \newcommand*{\showtoc}[2][\aliastoc\tocstyleTOC\tocstyleAliasTOC]{% \ifcsname tocstyle@copyname@#2\endcsname \@tempcnta \csname tocstyle@copyname@#2\endcsname\relax \advance\@tempcnta \@ne \expandafter\xdef\csname tocstyle@copyname@#2\endcsname{\the\@tempcnta}% \else \expandafter\xdef\csname tocstyle@copyname@#2\endcsname{1}% \fi \ifx\@dofilelist\relax\let\@dofilelist\@empty\fi \edef\@tempa{\noexpand\g@addto@macro\noexpand\@dofilelist{% \noexpand\tocstyle@copy@toc{#2}{\csname tocstyle@copyname@#2\endcsname}}% }\@tempa% \begingroup \edef\tocstyleAliasTOC{#2}% \edef\tocstyleTOC{#2\csname tocstyle@copyname@#2\endcsname}% #1 \tocstyle@pre@starttoc{#2\csname tocstyle@copyname@#2\endcsname}% \makeatletter \@input{\jobname.#2\csname tocstyle@copyname@#2\endcsname}% \@nobreakfalse \tocstyle@post@starttoc{#2\csname tocstyle@copyname@#2\endcsname}% \endgroup } \newcommand*{\tocstyle@copy@toc}[2]{% \if@filesw \begingroup \endlinechar=\m@ne \immediate\closeout\csname tf@#1\endcsname \immediate\openin\@inputcheck \jobname.#1 \immediate\openout\@partaux \jobname.#1#2 \loop\unless\ifeof\@inputcheck \immediate\readline\@inputcheck to \@tempa \immediate\write\@partaux{\@tempa}% \repeat \immediate\closeout\@partaux \immediate\closein\@inputcheck \endgroup \fi } \newcommand*{\aliastoc}[2]{% \expandafter\edef\csname tocstyle@alias@TOC@#1\endcsname{#2}% } \newcommand*{\tocstyle@pre@starttoc}[1]{% \begingroup \expandafter\ifx\csname tocstyle@deactivated@\endcsname\relax \expandafter\ifx\csname tocstyle@deactivated@#1\endcsname\relax\relax \tocstyle@activetrue \else \tocstyle@activefalse \fi \else \tocstyle@activefalse \fi \iftocstyle@active \let\@dottedtocline\tocstyle@dottedtocline \parskip \z@ \parindent \z@ \parfillskip \z@\@plus 1fil \ifcsname tocstyle@alias@TOC@#1\endcsname \edef\tocstyleAliasTOC{\csname tocstyle@alias@TOC@#1\endcsname}% \else \edef\tocstyleAliasTOC{#1}% \fi \edef\tocstyleTOC{#1}% \tocstyle@activate@all@l \fi } \newcommand*{\tocstyle@post@starttoc}[1]{% \iftocstyle@active \if@filesw \ifcsname tocstyle@unumwidth@#1@\endcsname \protected@write\@auxout{}{% \protect\tocstyle@set@width{unum}{#1}{}{% \csname tocstyle@unumwidth@#1@\endcsname}% }% \fi \expandafter\let\expandafter\@tempa \csname tocstyle@depthlist@#1\endcsname \ifx\@tempa\relax\else \expandafter\@for \expandafter\@tempa\expandafter:\expandafter=\@tempa \do {% \ifcsname tocstyle@numwidth@#1@\@tempa\endcsname \protected@write\@auxout{}{% \protect\tocstyle@set@width{num}{#1}{\@tempa}{% \csname tocstyle@numwidth@#1@\@tempa\endcsname}% }% \fi \ifcsname tocstyle@skipwidth@#1@\@tempa\endcsname \protected@write\@auxout{}{% \protect\tocstyle@set@width{skip}{#1}{\@tempa}{% \csname tocstyle@skipwidth@#1@\@tempa\endcsname}% }% \fi }% \fi \fi \fi \endgroup } \newcommand*{\tocstyle@set@width}[4]{% \iftocstyle@indentnotnumbered \ifdim #4<\z@ \expandafter\gdef\csname tocstyle@max#1width@#2@#3\endcsname{% \dimexpr #4/2\relax}% \else \expandafter\gdef\csname tocstyle@max#1width@#2@#3\endcsname{#4}% \fi \else \ifdim #4<\z@ \expandafter\gdef\csname tocstyle@max#1width@#2@#3\endcsname{\z@}% \else \expandafter\gdef\csname tocstyle@max#1width@#2@#3\endcsname{#4}% \fi \fi } \AtBeginDocument{% \if@filesw \immediate\write\@auxout{% \string\providecommand*\string\tocstyle@set@width[4]{}% }% \fi } \newcommand*{\tocstyleTOC}{} \newcommand*{\tocstyleAliasTOC}{} \newcommand*{\tocstyledepth}{} \newif\iftocstyle@active \newcommand*{\deactivatetocstyle}[1][]{% \expandafter\let\csname tocstyle@deactivated@#1\endcsname\@empty} \newcommand*{\reactivatetocstyle}[1][]{% \expandafter\let\csname tocstyle@deactivated@#1\endcsname\relax} \newcommand*{\@settocfeature}[1][]{% \kernel@ifnextchar[ {\@@settocfeature[{#1}]}{\@@settocfeature[{#1}][]} } \def\@@settocfeature[#1][#2]#3#4{% \typeout{exclude: \tocstyle@feature@excludelist}% \@expandtwoargs\in@{,#3,}{,\tocstyle@feature@excludelist,}% \ifin@\else \expandafter\ifcsname tocstyle@feature@#3\endcsname \@namedef{tocstyle@feature@#3@#1@#2}{#4}% \begingroup \expandafter\let\expandafter\@tempa \csname tocstyle@commandlist@#1\endcsname \@expandtwoargs\in@{,tocstyle@feature@#3@#1@#2,}{,\@tempa,}% \ifin@\let\@tempa\endgroup\else \edef\@tempa{\endgroup \noexpand\expandafter\noexpand\ifx \noexpand\csname tocstyle@commandlist@#1\noexpand\endcsname\relax \noexpand\expandafter\noexpand\expandafter\noexpand\expandafter \noexpand\def \noexpand\else \noexpand\expandafter\noexpand\expandafter\noexpand\expandafter \noexpand\l@addto@macro \noexpand\fi \noexpand\csname tocstyle@commandlist@#1\noexpand\endcsname% {tocstyle@feature@#3@#1@#2,}}% \fi \@tempa \else \PackageError{tocstyle}{unkown feature `#3'}{% You've told me to set up toc style feature `#3',\MessageBreak but I don't know this feature.\MessageBreak See the tocstyle manual for all known feature.\MessageBreak }% \fi \fi } \newcommand*{\settocfeature}{} \let\settocfeature\@settocfeature \providecommand{\l@addto@macro}[2]{% \edef#1{\unexpanded\expandafter{#1#2}}% }% \newcommand*{\@settocstylefeature}{% \kernel@ifnextchar[ {\@settocfeature[]}{\@settocfeature[][]}% } \newcommand*{\settocstylefeature}{} \let\settocstylefeature\@settocstylefeature \newcommand*{\tocstyle@activate@features}{% \expandafter\ifx\csname tocstyle@depthlist@\tocstyleTOC\endcsname\relax \expandafter\xdef\csname tocstyle@depthlist@\tocstyleTOC\endcsname{% \tocstyledepth}% \else \expandafter\let\expandafter\@tempa \csname tocstyle@depthlist@\tocstyleTOC\endcsname \@expandtwoargs\in@{,\tocstyledepth,}{,\@tempa,}% \ifin@\else \expandafter\xdef\csname tocstyle@depthlist@\tocstyleTOC\endcsname{% \csname tocstyle@depthlist@\tocstyleTOC\endcsname,\tocstyledepth}% \fi \fi \expandafter\@for \expandafter\@tempa \expandafter:\expandafter=\tocstyle@featurelist \do {% \@ifundefined{tocstyle@feature@\@tempa @\tocstyleAliasTOC @\tocstyledepth}{% \@ifundefined{tocstyle@feature@\@tempa @@\tocstyledepth}{% \@ifundefined{tocstyle@feature@\@tempa @\tocstyleAliasTOC @}{% \@ifundefined{tocstyle@feature@\@tempa @@}{% \expandafter\let\csname tocstyle@feature@\@tempa\endcsname\relax }{% \expandafter\let\csname tocstyle@feature@\@tempa \expandafter\endcsname \csname tocstyle@feature@\@tempa @@\endcsname }% }{% \expandafter\let\csname tocstyle@feature@\@tempa \expandafter\endcsname \csname tocstyle@feature@\@tempa @\tocstyleAliasTOC @\endcsname }% }{% \expandafter\let\csname tocstyle@feature@\@tempa \expandafter\endcsname \csname tocstyle@feature@\@tempa @@\tocstyledepth\endcsname }% }{% \expandafter\let\csname tocstyle@feature@\@tempa \expandafter\endcsname \csname tocstyle@feature@\@tempa @\tocstyleAliasTOC @\tocstyledepth\endcsname }% }% } \newcommand*{\newtocstyle}{% \kernel@ifnextchar [{\@newtocstyle}{\@newtocstyle[]}} \newcommand*{\@newtocstyle}{} \def\@newtocstyle[#1]{% \kernel@ifnextchar [{\@@newtocstyle[{#1}]}{\@newtocstyle[{#1}][]}} \newcommand*{\@@newtocstyle}{} \def\@@newtocstyle[#1][#2]#3#4{% \@ifundefined{tocstyle@style@#3}{% \@ifundefined{tocstyle@style@#1}{% \ifx \relax#1\relax\else \PackageError{tocstyle}{unknown parent TOC style `#1'}{% You've told me to inheritate parent TOC style `#1',\MessageBreak but there's no TOC style `#1' defined.}% \fi \expandafter\def\csname tocstyle@style@#3\endcsname{#4}% }{% \expandafter\def\csname tocstyle@style@#3\endcsname{% \edef\reserved@a{% \noexpand\l@addto@macro\noexpand\tocstyle@feature@excludelist{#2}% \noexpand\@usetocstyle{#1}% \noexpand\def\noexpand\tocstyle@feature@excludelist{% \tocstyle@feature@excludelist}% }\reserved@a #4% }% }% }{% \PackageError{tocstyle}{TOC style `#3' already defined}{% You've tried to define a new TOC style `#3',\MessageBreak but there's already a TOC style named `#3'.}% }% } \newcommand*{\tocstyle@feature@excludelist}{} \newcommand*{\usetocstyle}[2][]{% \@ifundefined{tocstyle@deprecated@style@#2}{% \@ifundefined{tocstyle@style@#2}{% \PackageError{tocstyle}{unknown TOC style `#2'}{% You've told me to use TOC style `#2',\MessageBreak but there's no TOC style `#2' defined.}% }{% \def\settocfeature{% \kernel@ifnextchar[ %] {\@@settocfeature[{#1}]}{\@@settocfeature[{#1}][]}% }% \let\settocstylefeature\settocfeature \expandafter\ifx\csname tocstyle@commandlist@#1\endcsname\relax \else \expandafter\expandafter\expandafter\@for \expandafter\expandafter\expandafter\@tempa \expandafter\expandafter\expandafter:% \expandafter\expandafter\expandafter=% \csname tocstyle@commandlist@#1\endcsname \do{% \expandafter\let\csname \@tempa\endcsname\relax }% \expandafter\let\csname tocstyle@commandlist@#1\endcsname\relax \fi \@usetocstyle{#2}% \let\settocfeature\@settocfeature \let\settocstylefeature\@settocstylefeature }% }{% \expandafter\ifx\csname tocstyle@deprecated@style@#2\endcsname\@empty \PackageWarning{tocstyle}{% deprecated TOC style `#2'!\MessageBreak You should not longer use this style,\MessageBreak because it will be removed soon.\MessageBreak You should select another TOC style}% \usetocstyle[{#1}]{deprecated@#2}% \else \PackageWarning{tocstyle}{% deprecated TOC style `#2'!\MessageBreak You should use TOC style '\csname tocstyle@deprecated@style@#2\endcsname'\MessageBreak instead of `#2'}% \fi }% } \newcommand*{\@usetocstyle}[1]{% \csname tocstyle@style@#1\endcsname } \newcommand*{\tocstyle@featurelist}{% pagenumberhook,entryhook,dothook,entryvskip,leaders,raggedhook,% spaceafternumber,parfillskip,pagenumberbox,% } \newcommand*{\tocstyle@feature@pagenumberhook}{} \let\tocstyle@feature@pagenumberhook\relax \newcommand*{\tocstyle@feature@pagenumberbox}{} \let\tocstyle@feature@pagenumberbox\relax \newcommand*{\tocstye@feature@entryhook}{} \let\tocstyle@feature@entryhook\relax \newcommand*{\tocstye@feature@dothook}{} \let\tocstyle@feature@dothook\relax \newcommand*{\tocstye@feature@entryvskip}{} \let\tocstyle@feature@entryvskip\relax \newcommand*{\tocstye@feature@leaders}{} \let\tocstyle@feature@leaders\relax \newcommand*{\tocstye@feature@parfillskip}{} \let\tocstyle@feature@parfillskip\relax \newcommand*{\tocstye@feature@raggedhook}{} \let\tocstyle@feature@raggedhook\relax \newcommand*{\tocstye@feature@spaceafternumber}{} \let\tocstyle@feature@spaceafternumber\relax \newcommand*{\iftochasdepth}[2]{% \begingroup \expandafter\let\expandafter\@tempa\csname tocstyle@depthlist@#1\endcsname \ifx\@tempa\relax \aftergroup\@secondoftwo \else \@expandtwoargs\in@{,#2,}{,\@tempa}% \expandafter\aftergroup\ifin@ \@firstoftwo \else \@secondoftwo \fi \fi \endgroup } \providecommand*{\ext@toc}{toc} \newtocstyle{standard}{% \settocfeature{dothook}{\normalfont}% \settocfeature[-1]{entryhook}{\bfseries}% \settocfeature[-1]{entryvskip}{2.25em\@plus\p@}% \settocfeature[-1]{leaders}{\hfill}% \settocfeature[0]{entryvskip}{1em\@plus\p@}% \settocfeature[0]{leaders}{\hfill}% \settocfeature[0]{entryhook}{\bfseries} \iftochaschapter\else \settocfeature[1]{entryvskip}{1em\@plus\p@}% \settocfeature[1]{leaders}{\hfill}% \settocfeature[1]{entryhook}{% \ifx\tocstyleAliasTOC\ext@toc\bfseries\fi }% \fi } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname KOMAClassName\endcsname\relax \newtocstyle{KOMAlike}{% \settocfeature{dothook}{\normalfont}% \settocfeature[-1]{entryhook}{\sffamily\bfseries}% \settocfeature[-1]{entryvskip}{2.25em\@plus\p@}% \settocfeature[-1]{leaders}{\hfill}% \settocfeature[-1]{pagenumberhook}{\sffamily\bfseries}% \settocfeature[0]{entryvskip}{1em\@plus\p@}% \settocfeature[0]{leaders}{\hfill}% \settocfeature[0]{entryhook}{\sffamily\bfseries} \settocfeature[0]{pagenumberhook}{\sffamily\bfseries}% \iftochaschapter\else \settocfeature[1]{entryvskip}{1em\@plus\p@}% \settocfeature[1]{leaders}{\hfill}% \settocfeature[1]{entryhook}{% \ifx\tocstyleAliasTOC\ext@toc\sffamily\bfseries\fi }% \settocfeature[1]{pagenumberhook}{% \ifx\tocstyleAliasTOC\ext@toc\sffamily\bfseries\fi }% \fi } \else \newtocstyle{KOMAlike}{% \settocfeature{dothook}{\normalfont}% \settocfeature[-1]{entryhook}{\usekomafont{partentry}}% \settocfeature[-1]{entryvskip}{2.25em\@plus\p@}% \settocfeature[-1]{leaders}{\hfill}% \settocfeature[-1]{pagenumberhook}{\usekomafont{partentrypagenumber}}% \settocfeature[0]{entryvskip}{1em\@plus\p@}% \settocfeature[0]{leaders}{\hfill}% \settocfeature[0]{entryhook}{\usekomafont{chapterentry}}% \settocfeature[0]{pagenumberhook}{\usekomafont{chapterentrypagenumber}}% \iftochaschapter\else \settocfeature[1]{entryvskip}{1em\@plus\p@}% \settocfeature[1]{leaders}{\hfill}% \settocfeature[1]{entryhook}{% \begingroup \ifx\tocstyleAliasTOC\ext@toc \def\@tempa{\endgroup\usekomafont{sectionentry}}% \else \let\@tempa\endgroup \fi \@tempa }% \settocfeature[1]{pagenumberhook}{% \begingroup \ifx\tocstyleAliasTOC\ext@toc \def\@tempa{\endgroup\usekomafont{sectionentrypagenumber}}% \else \let\@tempa\endgroup \fi \@tempa }% \fi } \fi \newcommand*{\tocstyle@deprecated@style@KOMAScript}{KOMAlike}% \newtocstyle[KOMAlike]{classic}{% \settocfeature[-1]{pagenumberhook}{\normalfont\normalcolor}% \settocfeature[0]{pagenumberhook}{\normalfont\normalcolor}% \iftochaschapter\else \settocfeature[1]{pagenumberhook}{\normalfont\normalcolor}% \fi \settocfeature{pagenumberhook}{\normalfont\normalcolor}% \settocfeature{raggedhook}{\raggedright}% } \newtocstyle[classic][leaders]{allwithdot}{} \newtocstyle[allwithdot]{noonewithdot}{% \settocfeature{leaders}{\hfill}% } \newtocstyle[classic][leaders]{nopagecolumn}{% \settocfeature{leaders}{\quad}% \settocfeature{parfillskip}{\z@ plus 1fil}% \settocfeature{pagenumberbox}{\hbox}% } \InputIfFileExists{tocstyle.cfg}{% \PackageInfo{tocstyle}{using tocstyle.cfg}% }{% \PackageInfo{tocstyle}{no tocstyle.cfg found}% } %%% From File: $Id: scrlogo.dtx 2592 2017-02-16 16:56:10Z 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 `tocstyle.sty'.