summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source/tocstyle.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/source/tocstyle.dtx')
-rw-r--r--macros/latex/contrib/koma-script/source/tocstyle.dtx2309
1 files changed, 0 insertions, 2309 deletions
diff --git a/macros/latex/contrib/koma-script/source/tocstyle.dtx b/macros/latex/contrib/koma-script/source/tocstyle.dtx
deleted file mode 100644
index 94c77591ff..0000000000
--- a/macros/latex/contrib/koma-script/source/tocstyle.dtx
+++ /dev/null
@@ -1,2309 +0,0 @@
-% \CheckSum{1933}
-% \iffalse meta-comment
-% ======================================================================
-% tocstyle.dtx
-% Copyright (c) Markus Kohm, 2007-2019
-%
-% This file is part of the LaTeX2e 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 and of this work.
-%
-% This work has the LPPL maintenance status "author-maintained".
-%
-% The Current Maintainer and author of this work is Markus Kohm.
-%
-% The KOMA-Script bundle consists of all files listed in manifest.txt.
-% The work `tocstyle' consists of the files `tocstyle.dtx' and
-% `scrlogo.dtx'.
-%
-% If you're missing the installation batch file `tocstyle.ins', try
-% tex tocstyle.dtx
-% to unpack all files.
-% The package documentation may be produced repeating
-% latex tocstyle.dtx
-% at least three times.
-% ----------------------------------------------------------------------
-% tocstyle.dtx
-% Copyright (c) Markus Kohm, 2007-2019
-%
-% Diese Datei ist Teil des LaTeX2e KOMA-Script-Pakets.
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c.
-% Die neuste Version dieser Lizenz ist
-% http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-%
-% Das KOMA-Script-Paket besteht aus allen Dateien, die in manifest.txt
-% genannt sind.
-% Das Werk `tocstyle' besteht aus den Dateien `tocstyle.dtx' und
-% `scrlogo.dtx'.
-%
-% Falls Sie die Installations-Batch-Datei `tocstyle.ins' vermissen,
-% probieren Sie einfach einmal
-% tex tocstyle.dtx
-% um alle Dateien auszupacken. Zur englischen Anleitung siehe den
-% englischen Kommentar oben.
-% ======================================================================
-% \fi
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: $Id: tocstyle.dtx 3249 2019-10-09 11:35:26Z kohm $
-%<*dtx>
-% \fi
-\def\LaTeXformat{LaTeX2e}
-\let\ifbeta=\iffalse %^^A with = will be replaced by release process
-\ifx\fmtname\LaTeXformat\else
-% \iffalse
-%</dtx>
-%<*insfile>
-% \fi
-\def\batchfile{tocstyle.dtx}
-\input docstrip.tex
-\ifToplevel{%
- \Msg{**********************************************************************}
- \Msg{*}
- \Msg{* This is `\batchfile', a batchfile to unpack the package tocstyle.}
- \Msg{*}
- \Msg{**********************************************************************}
- \keepsilent
- \askforoverwritefalse
-}
-
-\preamble
-
-Copyright (c) 2007-2019 by Markus Kohm <komascript(at)gmx.info>
-
-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.
-
-The english manual is in `tocstyle.dtx', too.
-
-THIS IS AN OBSOLETE PACKAGE! YOU SHOULD NOT USE IT!
-
-\endpreamble
-
-\generate{\usepreamble\defaultpreamble
- \file{tocstyle.sty}{%
- \from{tocstyle.dtx}{package,trace,tocstyle}%
- \from{scrlogo.dtx}{logo}%
- }%
-}
-
-\ifToplevel{%
- \generate{\usepreamble\defaultpreamble
- \file{tocstyle.ins}{%
- \from{tocstyle.dtx}{insfile}%
- }%
- \file{tocstyle.tex}{%
- \from{tocstyle.dtx}{doc}%
- }%
-% \file{tocstyle.drv}{%
-% \from{tocstyle.dtx}{driver}%
-% }%
- }%
-}
-
-% \iffalse
-%</insfile>
-%<*dtx>
-% \fi
- \def\ProvidesFile{\csname fi\endcsname\csname endinput\endcsname}
-\fi
-\ProvidesFile{tocstyle.dtx}
-% \iffalse
-%</dtx>
-%<package|driver>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-%<package>\ProvidesPackage{tocstyle}
-%<driver>\ProvidesFile{tocstyle.drv}
-%<doc>\ProvidesFile{tocstyle.tex}
-%<*dtx|package|driver|doc>
- [2019/10/09 v0.2j-alpha deprecated package (versatile toc styles)]
-%</dtx|package|driver|doc>
-%<*driver>
-\documentclass{scrdoc}
-\usepackage[ngerman,english]{babel}
-\usepackage{listings}
-\lstnewenvironment{lstcode}[1][]{%
- \lstset{language=[LaTeX]TeX,basicstyle=\ttfamily\small,#1}%
-}{}
-
-\usepackage{tocstyle}
-\usetocstyle[toc]{nopagecolumn}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{tocstyle.dtx}
-\title{The obsolete package \texttt{tocstyle}%
- \footnote{This is version \fileversion\ of file \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
-\let\Macro\cs
-\let\Package\textsf
-\let\File\texttt
-\let\Option\texttt
-\let\Counter\texttt
-\let\ShowOutput\quote
-\let\endShowOutput\endquote
-\let\Parameter\marg
-\let\OParameter\oarg
-\newcommand\PParameter[1]{\mbox{\texttt{\{#1\}}}}
-\let\PName\meta
-\let\PValue\texttt
-\newlength\descwidth
-\newenvironment{desctabular}{%
- \setlength{\descwidth}{\linewidth}
- \addtolength{\descwidth}{-1em}
- \addtolength{\descwidth}{-2\tabcolsep}
- \tabular{@{}lp{\descwidth}@{}}
- \hline
-}{%
- \hline
- \endtabular
-}
-\newcommand{\pventry}[2]{%
- \multicolumn{2}{@{}l@{}}{\PValue{#1}}\\
- ~ & #2 \\ }
-\providecommand*{\autoref}[1]{\expandafter\AUTOREF#1:}
-\newcommand*{\AUTOREF}{}
-\makeatletter
-\def\AUTOREF#1:#2:{%
- \edef\@tempa{#1}%
- \edef\@tempb{tab}\ifx\@tempa\@tempb table~\fi
- \edef\@tempb{sec}\ifx\@tempa\@tempb section~\fi
- \ref{#1:#2}%
-}
-\makeatother
-
-\begin{document}
- \maketitle
- \DocInput{\filename}
-\end{document}
-%</driver>
-% \fi
-%
-% \selectlanguage{english}
-%
-% \changes{v0.1}{2007/06/23}{start of new package}%^^A
-% \changes{v0.2h}{2016/04/12}{\cs{@ifnextchar} replaced by
-% \cs{kernel@ifnextchar}}%^^A
-%
-%\iffalse
-%<doc>\chapter{Other Styles for Table of Contents and Lists of Floats}
-%<doc>\labelbase{tocstyle}
-%<doc>\BeginIndex{Package}{tocstyle}
-%\fi
-%
-% \begin{abstract}
-%\iffalse
-%<*doc>
-%\fi
-While the main classes of the \KOMAScript\ bundle were made, there where
-several ideas for formating the table of contents and lists of floats, but
-almost none of them where implemented. One reason was, that the \KOMAScript\
-author didn't like to change the \LaTeX\ kernel at a class, because this may
-result in serveral problems with other packages. The package
-\Package{tocstyle} will fill the gap. If it conflicts with another package,
-you simply may decide not to use it.
-
-Since \KOMAScript~3.20 most of the features of \Package{tocstyle} are also
-provided by other \KOMAScript{} packages like \Package{tocbasic}.
-%\iffalse
-%</doc>
-%\fi
-% \end{abstract}
-%
-% \def\appendixtocdepth{\value{tocdepth}}
-% \tableofcontents
-% \def\appendixtocdepth{2}
-%
-%\iffalse
-%<*doc>
-%\fi
-%
-\section{Package Status}
-\label{sec:tocstyle.status}
-
-Package \Package{tocstyle} has alpha status for a very long time (since
-2007), despite the fact that it was very stable all over the years. The main
-reason for this is that it was an experiment and I always intended to make a
-better successor. Another reason was, that there are known issues, which are
-hardly to fix. So \Package{tocstyle} never became an official part of
-\KOMAScript. Nevertheless it has been published with \KOMAScript, because I
-thought it would be an useful addition. I never thought that the interim
-status of the package would be for more than eight years.
-
-With \KOMAScript~3.20 several features of \Package{tocstyle} can be found also
-in \Package{tocbasic}. I recommend to use that official and essential part of
-\KOMAScript{} instead of \Package{tocstyle} whenever possible. Expect that
-\Package{tocstyle} will move from \KOMAScript{} bundle to another package,
-e.\,g., \KOMAScript-obsolete or a stand-alone package soon.
-
-\section{How It Works}
-\label{sec:tocstyle.howitworks}
-
-Loading the package \Package{tocstyle} will redefine the kernel macro
-\Macro{@starttoc}. Using the redefined \Macro{@starttoc} will redefine
-\Macro{@dottedtocline}, \Macro{l@part} down to \Macro{l@subparagraph},
-\Macro{l@figure}, and \Macro{l@table}, if and only if \Package{tocstyle}
-wasn't deactivated for all TOCs or this TOC. Usage the redefined
-\Macro{@dottedtocline} will redefine \Macro{numberline}.
-
-Redefining \Macro{@starttoc}, \Macro{@dottedtocline}, and \Macro{numberline}
-will activate the features of \Package{tocstyle} for all lists that uses
-these, e.g. table of contents, list of figures and list of tables at the
-standard or the \KOMAScript{} classes. But while not all classes uses
-\Macro{@dottedtocline} and \Macro{@numberline} for all entries to table of
-contents and list of floats the package redefines some other macros that are
-typically used for those entries. These are e.g. \Macro{l@part},
-\Macro{l@chapter} and some more. If the class even does not use those macros,
-you may not use \Package{tocstyle} to change the lists. The term TOC will be
-used for all kind of list, that may be processed by \Package{tocstyle}. The
-package tests wether the original kernel macros \Macro{@starttoc},
-\Macro{@dottedtocline}, and \Macro{numberline} were used or not and warns if
-not.
-
-Package \Package{tocstyle} needs some more information. For the standard and
-the \KOMAScript{} classes these informations may be detected by the
-package. If the result is not the expected, you may configure these
-informations manually.
-
-The entries of every TOC hat a depth. See the counter \Counter{tocdepth} for
-more information about the depth. You may change several settings for the
-entries of either all depths of all TOCs, all depths of one TOC, or one depth
-of one TOC.
-
-But most users will not need to set up \Package{tocstyle} at this low
-level. They simply will select one of the predefined styles and maybe select
-one of the optional features.
-
-\section{Optional Features}
-\label{sec:tocstyle.options}
-
-Optional features will be selected using a package option while loading the
-package or using the package option as a global option loading the class using
-\Macro{documentclass}. Optional features change generall behaviour of all
-TOCs.
-
-%\iffalse
-\begin{Description}
- \Option{tocindentauto}
- \Option{tocindentmanual}
-\end{Description}
-\BeginIndex{Option}{tocindentauto}\BeginIndex{Option}{tocindentmanual}
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{tocindentauto}
-\DescribeMacro{tocindentmanual}
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-With option \Option{tocindentauto} all widths at the TOCs are calculated by
-\Package{tocstyle}. The calculation of the width needs at least one \LaTeX{}
-run with all TOC entries. So you need at least three \LaTeX{} runs:
-\begin{itemize}
-\item one to write all the TOC entries to the TOC file
-\item one with the known TOC entries from the TOC file but unknown widths
-\item one with the known TOC entries from the TOC file and known widths
-\end{itemize}
-If the TOC entries changed between the second and the third
-run\,---\,e.g. because of page numbers changed\,---\,you'll need one more run
-(and so on).
-
-Note: The widths of all entries of same depth and same TOC are same. Don't ask
-for less width of page numbers at the first than the last TOC page!
-%\iffalse
-\EndIndex{Option}{tocindentauto}\EndIndex{Option}{tocindentmanual}
-%\fi
-%
-%\iffalse
-\begin{Description}
- \Option{tocgraduated}
- \Option{tocflat}
- \Option{tocfullflat}
-\end{Description}%
-\BeginIndex{Option}{tocgraduated}\BeginIndex{Option}{tocflat}%
-\BeginIndex{Option}{tocfullflat}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{tocgraduated}
-\DescribeMacro{tocflat}
-\DescribeMacro{tocfullflat}
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-The option \Option{tocgraduated} selects the graduated version of all
-TOCs. You know the graduated version from the standard classes. Entries of lower
-depth are indented against entries of higher depth. This may e.g. look like:
-\begin{ShowOutput}
- \showtoc[{%
- \aliastoc{\tocstyleTOC}{toc}%
- \usetocstyle[toc]{standard}%
- \settocfeature[toc]{raggedhook}{\raggedright}%
- \selecttocstyleoption{tocgraduated}%
- }]{toc}
-\end{ShowOutput}
-The option \Option{tocflat} selects the flat\,---\,aka left
-aligned\,---\,version of all TOCs. You know the flat version from the
-\KOMAScript{} classes using option \Option{tocleft}. This may e.g. look like:
-\begin{ShowOutput}
- \showtoc[{%
- \aliastoc{\tocstyleTOC}{toc}%
- \usetocstyle[toc]{standard}%
- \selecttocstyleoption{tocflat}%
- }]{toc}%
-\end{ShowOutput}
-The option \Option{tocfullflat} is similar to flat version of all
-TOCs, but there is even no box of same width for the numbers of all entries.
-This may e.g. look like:
-\begin{ShowOutput}
- \showtoc[{%
- \aliastoc{\tocstyleTOC}{toc}%
- \usetocstyle[toc]{standard}%
- \selecttocstyleoption{tocfullflat}%
- }]{toc}%
-\end{ShowOutput}
-Default is option \Option{tocgraduated}.
-%\iffalse
-\EndIndex{Option}{tocgraduated}\EndIndex{Option}{tocflat}%
-\EndIndex{Option}{tocfullflat}%
-%\fi
-%
-%\iffalse
-\begin{Description}
- \Option{tocbreaksstrict}\\
- \Option{tocbreakscareless}
-\end{Description}%
-\BeginIndex{Option}{tocbreaksstrict}%
-\BeginIndex{Option}{tocbreakscareless}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{tocbreaksstrict}
-\DescribeMacro{tocbreakscareless}
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-Default option \Option{tocbreaksstrict} sets a lot of penalties before and
-after TOC entries to avoid page break between a TOC entry and it's parent. But
-sometimes you may like to allow more page breaks. You may use option
-\Option{tocbreakscareless} for this.
-%\iffalse
-\EndIndex{Option}{tocbreaksstrict}\EndIndex{Option}{tocbreakscareless}%
-%\fi
-%
-%\iffalse
-\begin{Description}
- \Option{toctextentriesindented}\\
- \Option{toctextentriesleft}
-\end{Description}%
-\BeginIndex{Option}{toctextentriesindented}%
-\BeginIndex{Option}{toctextentriesleft}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{toctextentriesindented}
-\DescribeMacro{toctextentriesleft}
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-With default option \Option{toctextentriesleft} unnumbered TOC entries,
-e.g. from \KOMAScript{} command \Macro{addchap}, are indented only as wide as
-the number of numbered TOC entries of the same level are. But with option
-\Option{toctextentriesindented} these are indented as if they have an empty
-number.
-%\iffalse
-\EndIndex{Option}{toctextentriesindented}%
-\EndIndex{Option}{toctextentriesleft}%
-%\fi
-%
-\section{Using TOC Styles}
-\label{sec:tocstyle.usestyles}
-
-Package \Package{tocstyle} hat several predefined toc styles. Most users will
-never need to define their own toc style but only select one of the
-predefined and maybe configure it by one of the options described at the
-previsous section.
-
-%\iffalse
-\begin{Description}
- \Macro{usetocstyle}\OParameter{TOC}\Parameter{style}
-\end{Description}%
-\BeginIndex{Macro}{usetocstyle}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\usetocstyle}
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-You may set the style of one or all TOCs. If you want to set the style of all
-TOCs, you'd simply say \Macro{usetocstyle}\Parameter{style}. This will set
-all settings of the given style to all TOCs. Individual settings will
-overwrite this generall setting.
-
-If you use \Macro{usetocstyle}\OParameter{TOC}\Parameter{style}, only the
-style of the given TOC will be set. This will be done \emph{after} the general
-setting. Only individual settings of single features may overwrite the setting
-of the style.
-
-The \autoref{tab:tocstyle.styles} shows the predefined styles, that may be
-used as mandatory argument of \Macro{tocstyle}. The optional argument
-\PName{TOC} is the shortcut (file extension) of the TOC. Examples of known
-shortcuts are shown at \autoref{tab:tocstyle.shortcuts}.
-
-\begin{table}
- \centering
- \caption{Predefined TOC Styles}
- \label{tab:tocstyle.styles}
- \begin{desctabular}
- \pventry{standard}{A style similar to the standard classes. All width are
- predefined to the width of the standard classes, but may be overwritten
- by the general options (see \autoref{sec:tocstyle.options}). The depth -1
- (part) and 0 (chapter) are set in bold face (\Macro{bfseries}). If no
- depth 0 was found at the TOC, depth 1 (section) will be set in bold
- face, too. All other depth will be set in normal font. Depth -1 (part)
- will be set using \Macro{large}. The font changes are valid for the
- page numbers, too.}%
- \pventry{KOMAlike}{A style similar to the \KOMAScript{} classes. This is
- almost the same like \PValue{standard}, but instead of bold face
- \Macro{usekomafont}\PParameter{disposition} will be used if
- \Macro{usekomafont} was defined and sans serif, bold face
- (\Macro{sffamily}\Macro{bfseries}) if not.}%
- \pventry{classic}{Like \PValue{KOMAlike} but all page numbers are set
- using normal font.}%
- \pventry{allwithdot}{Like \PValue{classic} but dots between entry text and
- page numbers are used at all depths.}%
- \pventry{noonewithdot}{Like \PValue{classic} but not dots between entry
- text and page numbers are used.}%
- \pventry{nopagecolumn}{Like \PValue{noonewithdot} but also the gap
- between text and page numbers is omited. This means, that the page
- numbers are set 1\,em after the text.}%
- \end{desctabular}
-\end{table}
-
-Note: Before you're setting a style the style of the TOCs are
-unspecified. This means that some entries may be set using \Package{tocstyle}
-others may not.
-
-\begin{table}
- \centering
- \caption{Known TOC Shortcuts}
- \label{tab:tocstyle.shortcuts}
- \begin{desctabular}
- \pventry{toc}{Table of contents of almost all known classes.}
- \pventry{lof}{List of figures of almost all known classes.}
- \pventry{lot}{List of tables of almost all known classes.}
- \pventry{lol}{List of listings of package \Package{listings}. Currently
- the usability of \Package{listings} with \Package{tocstyle} is not
- recomended. Maybe it works, maybe not. Maybe you should try
- \Macro{deactivatetocstyle[lol]}.}
- \end{desctabular}
-\end{table}
-%\iffalse
-\EndIndex{Macro}{usetocstyle}%
-%\fi
-%
-%\iffalse
-\begin{Description}
- \Macro{deactivatetocstyle}\OParameter{TOC}\\
- \Macro{reactivatetocstyle}\OParameter{TOC}
-\end{Description}%
-\BeginIndex{Macro}{\deactivatetocstyle}\BeginIndex{Macro}{\reactivatetocstyle}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\deactivatetocstyle}\DescribeMacro{\reactivatetocstyle}
-Both commands have one optional argument \PName{TOC}.
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-You may deactive the influence of \Package{tocstyle} for a TOC and reactivate
-it. If you use \Macro{deactivatetocstyle} without the optional argument or
-empty optional argument, the influence of \Package{tocstyle} for all TOCs will
-be deactivated and may reactivated only using \Macro{reactivatetocstyle}
-without the optional argument or empty optional argument too.
-
-After deactivation of \Package{tocstyle} for one TOC or all TOCs you may
-continue configuring TOCs. All these changes will be used after reactivation.
-%\iffalse
-\EndIndex{Macro}{\deactivatetocstyle}\EndIndex{Macro}{\reactivatetocstyle}%
-%\fi
-
-%
-
-\section{Setting-up Single Features}
-\label{sec:tocstyle.singlefeatures}
-
-At the previous section you've learned how to select a predefined TOC
-style. You were also told, that you may change one ore more features against
-the used predefined TOC style for one or all depth of one ore all TOCs. Now
-you will learn how to do this.
-
-%\iffalse
-\begin{Description}
- \Macro{settocfeature}%
- \OParameter{TOC}\OParameter{depth}\Parameter{feature}\Parameter{commands}\\
- \Macro{settocstylefeature}%
- \OParameter{depth}\Parameter{feature}\Parameter{commands}
-\end{Description}%
-\BeginIndex{Macro}{settocfeature}\BeginIndex{Macro}{settocstylefeature}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\settocfeature}
-\DescribeMacro{\settocstylefeature}
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-These commands are used to set a single feature eiher of all depth of all TOCs
-(\Macro{settocfeature} \Parameter{feature} \Parameter{command} or
-\Macro{settocstylefeature} \Parameter{feature} \Parameter{commands}), or of
-all depth of a single TOC (\Macro{settocfeature}
-\OParameter{TOC} \Parameter{feature} \Parameter{commands}), or of a single
-depth of all TOCs (\Macro{settocstylefeature}
-\OParameter{depth} \Parameter{feature} \Parameter{commands}), or of a single
-depth of a single TOC (\Macro{settocfeature} \OParameter{TOC}
-\OParameter{depth} \Parameter{feature} \Parameter{commands}).
-
-Parameter \PName{commands} is a list of commands. In most cases these must not
-be commands, that need an argument. So you should e.g. not use \Macro{textbf}
-but \Macro{bfseries} to switch to bold face. Parameter \PName{feature} is
-the feature, that may be configured with parameter \PName{commands}. All known
-features are show at \autoref{tab:tocstyle.features}.
-
-\begin{table}
- \centering
- \caption{Features that May Be Set}
- \label{tab:tocstyle.features}
- \begin{desctabular}
- \pventry{dothook}{will be executed before any dot of the dot line}%
- \pventry{entryhook}{hook before the entry will be set}%
- \pventry{entryvskip}{initial vertical skip amount (if not set 0pt plus
- .2pt will be used)}%
- \pventry{leaders}{commands for fillin the gap between entry text and page
- number (if not set the default leaders command with dots will be used)}%
- \pventry{pagenumberbox}{the box command for setting the page number (if
- not set the default box of with \Macro{@pnumwidth} will be used); note,
- that this has to be a command with exactly one argument}%
- \pventry{pagenumberhook}{hook before the page number will be set at the
- page number box}%
- \pventry{parfillskip}{add this amount to the default value of
- \Macro{parfillskip} after setting up all lengths}%
- \pventry{raggedhook}{the only allowed values here are \Macro{raggedright}
- or nothing}%
- \pventry{spaceafternumber}{amount of minimum space after the entry number,
- if the needed width will be calculated automaticly}%
- \end{desctabular}
-\end{table}
-
-The order of used commands for a feature is
-\begin{enumerate}
-\item commands for all depths of all TOCs,
-\item commands for all depth of a single TOC,
-\item commands for a single depth of all TOCs,
-\item commands for a single depth of a single TOC,
-\end{enumerate}
-and settings of \Macro{usetocstyle} may be overwritten by
-\Macro{settocfeature} und \Macro{settocstylefeature}.
-%\iffalse
-\EndIndex{Macro}{settocfeature}\EndIndex{Macro}{settocstylefeature}%
-%\fi
-%
-
-\section{Defining New TOC Styles}
-\label{sec:tocstyle.define}
-
-Now you know how to select a prefedined TOC style and how to change single
-features. But wouldn't it be nice to define your own TOC style?
-
-%\iffalse
-\begin{Description}
- \Macro{newtocstyle}\OParameter{parent style}\OParameter{exclude features}%
- \Parameter{new style}%
- \Parameter{\Macro{settocstylefeature}-commands}
-\end{Description}%
-\BeginIndex{Macro}{\newtocstyle}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\newtocstyle}
-You may do this using \Macro{newtocstyle}\OParameter{parent
- style} \OParameter{exclude features} \Parameter{style
- name} \Parameter{\Macro{settocstylefeature}-commands}.
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-If you used the optional argument \PName{parent style} all features of the
-parent style will be part of the new style, before overwriting them with the
-features of the \PName{\Macro{settocstylefeature}-commands}. You should not
-use any other commands at the last argument. But at \Macro{newtocstyle} the
-command \Macro{settocfeature} becomes an alias for \Macro{settocstylefeature}
-to avoid to much mistakes.
-
-The second optional argument is a comma seperated list of feature names. If it
-is used, these features of the parent style (and all ancestors of the parent)
-will not be part of the new style.
-%\iffalse
-\EndIndex{Macro}{\newtocstyle}%
-%\fi
-
-%\iffalse
-\begin{Description}
- \Macro{aliastoc}\Parameter{original-TOC}\Parameter{alias-TOC}
-\end{Description}%
-\BeginIndex{Macro}{\aliastoc}%
-You
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\aliastoc}
-Using \Macro{aliastoc}\Parameter{original-TOC}\Parameter{alias-TOC} you
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-may define an alias for a TOC. The first argument is the original TOC for that
-the second argument should be the alias. An alias-TOC will be processed
-with all settings, that were done for the original-TOC. Internally this
-command is used as default for the optional, first argument of
-\Macro{showtoc}.%
-%\iffalse
-\EndIndex{Macro}{\aliastoc}
-%\fi
-
-\section{Processing a TOC}
-\label{sec:tocstyle.processing}
-
-While \LaTeX{} inputs a toc file it processes the commands of the TOC. These
-commands mainly produce the entries of the toc. Some commands are only
-available or valid while a TOC is processed. But be carefull: Some of these
-are read-only commands. Changing such a read-only command may result in
-various errors!
-
-%\iffalse
-\begin{Description}
- \Macro{@starttoc}\Parameter{TOC}\\
- \Macro{showtoc}\OParameter{preprocession}\Parameter{TOC}
-\end{Description}%
-\BeginIndex{Macro}{\@starttoc}%
-\BeginIndex{Macro}{\showtoc}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\@starttoc}%
-\DescribeMacro{\showtoc}%
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-The internal comand \Macro{@startoc} is defined by the \LaTeX{} kernel. It is
-used by package and class authors to build commands like
-\Macro{tableofcontents} or \Macro{listoffigures}. Without using it you will
-not get a toc file. \Package{tocstyle} redefines it, to add pre- and
-post-processing commands. The original definition found by \Package{tocstyle}
-will be used inside the redefinition.
-
-\Macro{showtoc}%
-%\iffalse
-%</doc>
-%<*dtx>
-%\fi
-\OParameter{preprocession}\Parameter{TOC}%
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-\ is an addition of \texttt{tocstyle}. Using it will procude a copy of TOC and
-process this copy. The copy will be done just after creating the original
-TOC. The copy will be an alias for the original file. The extension of the
-copy is the generated alias if \PName{TOC}. You may generate the alias using
-\Macro{aliastoc} at the optional argument of \Macro{showtoc}. The default for
-this optional argument will be
-\Macro{aliastoc}\Macro{tocstyleTOC}\Macro{tocstyleAliasTOC} and the default
-alias \Macro{tocstyleAliasTOC} will be \Macro{tocstyleTOC} extended by a
-number.
-%\iffalse
-\begin{example}
-%\fi
-The first TOC example at \autoref{sec:tocstyle.options} was made using
-\begin{lstcode}
- \showtoc[{%
- \aliastoc{\tocstyleTOC}{toc}%
- \usetocstyle[toc]{standard}%
- \settocfeature[toc]{raggedhook}{\raggedright}%
- \selecttocstyleoption{tocgraduated}%
- }]{toc}
-\end{lstcode}
-If you want to show a copy of the table of contents, that shows only depth~1 of
-the headlines you may simply use:
-\begin{lstcode}
- \showtoc[{%
- \expandafter\value{tocdepth}=1\relax
- \aliastoc{\tocstyleTOC}{toc}%
- }]{toc}
-\end{lstcode}
-or
-\begin{lstcode}
- \newcounter{savedtocdepth}
- \setcounter{savedtocdepth}{\value{tocdepth}}
- \setcounter{tocdepth}{1}
- \showtoc{toc}
- \setcounter{tocdepth}{\value{savedtocdepth}}
-\end{lstcode}
-%\iffalse
-\end{example}%
-\EndIndex{Macro}{\showtoc}
-%\fi
-
-%\iffalse
-\begin{Description}
- \Macro{tocstyleTOC}\\
- \Macro{tocstyleAliasTOC}
-\end{Description}%
-\BeginIndex{Macro}{\tocstyleTOC}%
-\BeginIndex{Macro}{\tocstyleAliasTOC}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\tocstyleTOC}%
-\DescribeMacro{\tocstyleAliasTOC}%
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-These are read-only macros. While processing a TOC using \Macro{@starttoc} or
-\Macro{showtoc}, \Macro{tocstyleAliasTOC} is the shortcut, that is valid for
-the features and \Macro{tocstyleTOC} is valid for the file extension to be
-used.%
-%\iffalse
-\EndIndex{Macro}{\tocstyleAliasTOC}%
-\EndIndex{Macro}{\tocstyleTOC}
-%\fi
-
-%\iffalse
-\begin{Description}
- \Macro{tocstyledepth}
-\end{Description}%
-\BeginIndex{Macro}{\tocstyledepth}%
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\tocstyledepth}
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-This is a read-only macro. While processing a single toc entry with
-\Macro{@dottedtocline} this is the depth (first argument of
-\Macro{@dottedtocline}) of this entry. Most users will never need this, but it
-is often used internaly. Because of this \emph{you should never change it!}%
-%\iffalse
-\EndIndex{Macro}{\tocstyledepth}
-%\fi
-
-%\iffalse
-\begin{Description}
- \Macro{iftochasdepth}\Parameter{TOC}\Parameter{depth}\Parameter{true}%
- \Parameter{false}
-\end{Description}
-\BeginIndex{Macro}{\iftochasdepth}%
-You
-%</doc>
-%<*dtx>
-%\fi
-\DescribeMacro{\iftochasdepth}
-Using \Macro{iftochasdepth}\Parameter{TOC}\Parameter{depth}\Parameter{true}%
- \Parameter{false} you
-%\iffalse
-%</dtx>
-%<*doc>
-%\fi
-may test, if an entry of a given depth was already output to a TOC. If so
-the commands of argument \PName{true} will be processed. If not so the
-commands of argument \PName{false} will be processed.%
-%\iffalse
-\EndIndex{Macro}{\iftochasdepth}
-%\fi
-
-\section{Configuration file}
-\label{sec:tocstyle.cfg}
-
-There's another feature for new toc styles. If there's a file
-\File{tocstyle.cfg} it will be loaded at the end of the package. This is
-usefull to define your own toc styles.
-
-%
-%\iffalse
-%</doc>
-%\fi
-%
-% \StopEventually{%
-% \clearpage
-% \appendix
-% \addtocontents{toc}{%
-% \value{tocdepth}=\protect\appendixtocdepth\relax}
-% \section{Examples for the Different TOC Styles}
-% Here you will find the table of contents of this document set in the
-% different TOC styles. All are set with option \Option{tocindentauto}.
-%^^A The appendix will be omitted.
-% \subsection{Graduated Versions}
-% First of all all graduated versions of the table of contents
-% \selecttocstyleoption{tocgraduated}%
-% \subsubsection{\PValue{standard} with Option \Option{tocgraduated}}
-% \usetocstyle[toc]{standard}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{KOMAlike} with Option \Option{tocgraduated}}
-% \usetocstyle[toc]{KOMAlike}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{classic} with Option \Option{tocgraduated}}
-% \usetocstyle[toc]{classic}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{allwithdot} with Option \Option{tocgraduated}}
-% \usetocstyle[toc]{allwithdot}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{noonewithdot} with Option \Option{tocgraduated}}
-% \usetocstyle[toc]{noonewithdot}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{nopagecolumn} with Option \Option{tocgraduated}}
-% \usetocstyle[toc]{nopagecolumn}
-% \showtoc{toc}\clearpage
-% \subsection{Flat Versions}
-% Now, all flat versions of the table of contents
-% \selecttocstyleoption{tocflat}%
-% \subsubsection{\PValue{standard} with Option \Option{tocflat}}
-% \usetocstyle[toc]{standard}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{KOMAlike} with Option \Option{tocflat}}
-% \usetocstyle[toc]{KOMAlike}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{classic} with Option \Option{tocflat}}
-% \usetocstyle[toc]{classic}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{allwithdot} with Option \Option{tocflat}}
-% \usetocstyle[toc]{allwithdot}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{noonewithdot} with Option
-% \Option{tocflat}}
-% \usetocstyle[toc]{noonewithdot}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{nopagecolumn} with Option
-% \Option{tocflat}}
-% \usetocstyle[toc]{nopagecolumn}
-% \showtoc{toc}\clearpage
-% \subsection{Fullflat Versions}
-% Now, all full-flat versions of the table of contents
-% \selecttocstyleoption{tocfullflat}%
-% \subsubsection{\PValue{standard} with Option \Option{tocfullflat}}
-% \usetocstyle[toc]{standard}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{KOMAlike} with Option \Option{tocfullflat}}
-% \usetocstyle[toc]{KOMAlike}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{classic} with Option \Option{tocfullflat}}
-% \usetocstyle[toc]{classic}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{allwithdot} with Option \Option{tocfullflat}}
-% \usetocstyle[toc]{allwithdot}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{noonewithdot} with Option
-% \Option{tocfullflat}}
-% \usetocstyle[toc]{noonewithdot}
-% \showtoc{toc}\clearpage
-% \subsubsection{\PValue{nopagecolumn} with Option
-% \Option{tocfullflat}}
-% \usetocstyle[toc]{nopagecolumn}
-% \showtoc{toc}\clearpage
-% \PrintIndex\PrintChanges}
-%
-% \section{Implementation}
-%
-% \iffalse
-%<*package>
-% \fi
-%
-% \begin{macrocode}
-\PackageWarningNoLine{tocstyle}{%
- THIS IS A DEPRECATED ALPHA VERSION!\MessageBreak
- USAGE OF THIS VERSION IS ON YOUR OWN RISK!\MessageBreak
- EVERYTHING MAY HAPPEN!\MessageBreak
- THE PACKAGE IS FROZEN WITH ALL IT'S BUGS!\MessageBreak
- IT WILL BE REMOVED FROM KOMA-SCRIPT SOON!\MessageBreak
- THERE IS NO SUPPORT, IF YOU USE THIS PACKAGE!\MessageBreak
- Maybe it would be better, not to load this package%
-}
-% \end{macrocode}
-%
-% \subsection{Option}
-%
-% Options change general behaviour of TOCs.
-%
-% \begin{macro}{\selecttocstyleoption}
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{option}{chapter}
-% \changes{v0.2d}{2009/11/11}{New}
-% \begin{option}{nochapter}
-% \changes{v0.2d}{2009/11/11}{New}
-% \begin{macro}{\iftochaschapter}
-% \changes{v0.2d}{2009/11/11}{New}
-% Do we have \cs{chapter} and \cs{l@chapter}?
-% \begin{macrocode}
-\newif\iftochaschapter\tochaschapterfalse
-\ifcsname l@chapter\endcsname
- \ifcsname chapter\endcsname
- \tochaschaptertrue
- \fi
-\fi
-% \end{macrocode}
-% \end{macro}
-% \end{option}
-% \end{option}
-%
-% \begin{option}{tocbreaksstrict}
-% \begin{option}{tocbreakscareless}
-% Switch on extended pernalties.
-% \begin{macrocode}
-\DeclareOption{tocbreaksstrict}{\selecttocstyleoption\CurrentOption}
-\DeclareOption{tocbreakscareless}{\selecttocstyleoption\CurrentOption}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-% \begin{option}{tocindentauto}
-% \begin{option}{tocindentmanual}
-% \begin{macrocode}
-\DeclareOption{tocindentauto}{\selecttocstyleoption\CurrentOption}
-\DeclareOption{tocindentmanual}{\selecttocstyleoption\CurrentOption}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-% \begin{option}{toctextentriesindented}
-% \begin{option}{toctextentriesleft}
-% \begin{macrocode}
-\DeclareOption{toctextentriesindented}{\selecttocstyleoption\CurrentOption}
-\DeclareOption{toctextentriesleft}{\selecttocstyleoption\CurrentOption}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-%
-% \begin{option}{tocgraduated}
-% \begin{option}{tocflat}
-% \begin{option}{tocfullflat}
-% \begin{macrocode}
-\DeclareOption{tocgraduated}{\selecttocstyleoption\CurrentOption}
-\DeclareOption{tocflat}{\selecttocstyleoption\CurrentOption}
-\DeclareOption{tocfullflat}{\selecttocstyleoption\CurrentOption}
-% \end{macrocode}
-% \end{option}
-% \end{option}
-% \end{option}
-%
-% Defaults and others:
-% \begin{macrocode}
-\ExecuteOptions{tocbreaksstrict,tocindentauto,tocgraduated,%
- toctextentriesleft}
-\ProcessOptions\relax
-% \end{macrocode}
-%
-% \begin{macrocode}
-\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
-% \end{macrocode}
-%
-%
-% \subsection{Body}
-%
-% There are two parts at \Package{tocstyle}:
-% \begin{itemize}
-% \item redefining internal \LaTeX{} kernel macros,
-% \item defining new macros and redefining class macros.
-% \end{itemize}
-% Redefining \LaTeX{} kernel macros may not be switched of. But redefining
-% class macros will only be on demand.
-%
-% \subsubsection{Redefining \LaTeX{} Kernel Macros}
-%
-% Some \LaTeX{} kernel macros must be redefined to add the new
-% functionality. Before redefining them, we test against the definition at
-% kernel 2005/12/01
-%
-% \begin{macro}{\@starttoc}
-% \begin{macro}{\tocstyle@saved@@starttoc}
-% The original definition will be extended by defaults for \cs{parskip},
-% \cs{parindent} and % \cs{parfillskip} and storage of the shortcut of the
-% current TOC.
-% \begin{macrocode}
-\newcommand*\tocstyle@saved@starttoc{}
-\let\tocstyle@saved@starttoc\@starttoc
-\renewcommand*{\@starttoc}[1]{%
- \tocstyle@pre@starttoc{#1}%
- \tocstyle@saved@starttoc{#1}%
- \tocstyle@post@starttoc{#1}%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@saved@dottedtocline}
-% For saving the unchanged definition (at \cs{begin{document}}):
-% \begin{macrocode}
-\newcommand*{\tocstyle@saved@dottedtocline}{}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\tocstyle@dottedtocline}
-% \changes{v0.2j}{2019/10/09}{newer \LaTeX{} uses two \cs{kern}}%^^A
-% Implement new definition and redefine:
-%^^A ------ Help me to find the \renecommand*{\@dottedtocline} ----------------
-% \begin{macrocode}
-\newcommand*{\tocstyle@dottedtocline}[5]{%
- \let\numberline\tocstyle@numberline
- \ifnum #1>\c@tocdepth \else
-% \end{macrocode}
-% Penalty feature: no page break between higher and lower depths.
-% \begin{macrocode}
- \if@tocstyle@penalties
- \begingroup
- \@tempcnta 20010
- \advance \@tempcnta by -#1
- \ifnum \@tempcnta>\lastpenalty
- \aftergroup\penalty\aftergroup\@lowpenalty
- \fi
- \endgroup
- \fi
-% \end{macrocode}
-% Activation of all features for this TOC and depth:
-% \begin{macrocode}
- \edef\tocstyledepth{#1}%
- \tocstyle@activate@features
-% \end{macrocode}
-% Similar to kernel command but if feature \texttt{entryvskip} was set use
-% \cs{addvspace}:
-% \begin{macrocode}
- \ifx\tocstyle@feature@entryvskip\relax
- \vskip \z@ \@plus.2\p@
- \else
- \addvspace{\tocstyle@feature@entryvskip}%
- \fi
- {%
-% \end{macrocode}
-% Preinitialization of lengths and skips and then call a hook
-% \begin{macrocode}
- \parskip \z@ \parindent \z@ \leftskip \z@ \rightskip \z@
- \tocstyle@feature@raggedhook
-% \end{macrocode}
-% Set number indent to \cs{@tempdimb} and text indent to \cs{@tempdima}.
-% \begin{macrocode}
- \@tempdima #3\relax
- \@tempdimb #2\relax
-%<trace> \typeout{number indent by \string\l@... (\tocstyleTOC, \tocstyledepth): \space\the\@tempdimb}%
-%<trace> \typeout{text indent by \string\l@... (\tocstyleTOC, \tocstyledepth): \space\the\@tempdima}%
-% \end{macrocode}
-% \changes{v0.2d}{2009/11/09}{fix: use of max-values}
-% Calc auto lengths. Use max. of last run of parents if available.
-% \begin{macrocode}
- \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
-%<trace> \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
-%<trace> \typeout{text indent calculated (\tocstyleTOC, \tocstyledepth): \the\@tempdima}%
-%<trace> \typeout{number indent calculated (\tocstyleTOC, \tocstyledepth): \the\@tempdimb}%
- \else
- \@tempdimb #2\relax
-%<trace> \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
-%<trace> \typeout{text noindent (\tocstyleTOC, \tocstyledepth): \the\@tempdima}%
-%<trace> \typeout{number noindent (\tocstyleTOC, \tocstyledepth): \the\@tempdimb}%
- \fi
-% \end{macrocode}
-% Advance instead of set, because of the hook above:
-% \begin{macrocode}
- \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
-% \end{macrocode}
-% \cs{hskip}\cs{-leftskip} optional moved to \cs{numberline}
-% \begin{macrocode}
- \iftocstyle@indentnotnumbered\else
- \hskip -\leftskip
- \fi
-% \end{macrocode}
-% Change at start of the entry
-% \begin{macrocode}
- \tocstyle@feature@entryhook
-% \end{macrocode}
-% Similar to kernel command but if feature \texttt{leaders} was set use
-% this instead of the default leaders. And if feature \texttt{dothook} was set
-% (default is \cs{normalfont}) use this at the default leaders.
-% \begin{macrocode}
- {#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%
- \kern-\p@\kern\p@}%
- \else
- \tocstyle@feature@pagenumberbox{\tocstyle@feature@pagenumberhook #5%
- \kern-\p@\kern\p@}%
- \fi
- \par
- }%
-% \end{macrocode}
-% Last change is, another penalty change:
-% \begin{macrocode}
- \if@tocstyle@penalties
- \bgroup
- \@tempcnta 20009
- \advance\@tempcnta by -#1
- \edef\reserved@a{\egroup\penalty\the\@tempcnta\relax}%
- \reserved@a
- \fi
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@saved@numberline}
-% \begin{macro}{\tocstyle@numberline}
-% Define a new \cs{numberline}, that will do all the job after
-% \cs{begin{document}} and one to save the original definition.
-%^^A----------------------- \renewcommand*\numberline ------------------------
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \begin{macro}{\tocstyle@@numberline}
-% Do the main work!
-% \begin{macrocode}
-\newcommand*{\tocstyle@@numberline}[1]{%
- #1\csname autodot\endcsname
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsubsection{Redefining Class Macros}
-%
-% \begin{macro}{\l@part}
-% \changes{v0.2d}{2009/11/11}{part level is always -1}
-% \begin{macro}{\l@chapter}
-% \begin{macro}{\l@section}
-% \begin{macro}{\l@subsection}
-% \begin{macro}{\l@subsubsection}
-% \begin{macro}{\l@paragraph}
-% \begin{macro}{\l@subparagraph}
-% \begin{macro}{\l@table}
-% \begin{macro}{\l@figure}
-% Try to redefine the toc commands at startup.
-% \changes{v0.2f}{2016/03/22}{recognize all subs of part, chapter,
-% section and paragraph}%^^A
-% \changes{v0.2g}{2016/03/23}{warning for usage of not recommended package
-% combinations}%^^A
-% \changes{v0.2h}{2016/04/24}{lokal \cs{normalcolor} auf \cs{relax}
-% setzen}%^^A
-% \changes{v0.2h}{2016/04/24}{lokal \cs{color} auf \cs{@gobble} setzen}%^^A
-% \begin{macrocode}
-\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}%
- }%
-% \end{macrocode}
-% \begin{macro}{\@dottedtocline}
-% \changes{v0.2j}{2019/10/09}{newer \LaTeX{} uses two \cs{kern}}%^^A
-% This will be used even for undotted toc lines. First check the definition,
-% then redefine.
-% \begin{macrocode}
- \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
- \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\kern-\p@\kern\p@}%
- \par}%
- \fi}%
- \ifx\@dottedtocline\@tempa\else
- \tocstyle@macrochangewarning\@dottedtocline
- \fi
- \fi
- \let\tocstyle@saved@dottedtocline\@dottedtocline
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\numberline}
-% This macro needed to be redefined to calculate the with of the numbers.
-% First of all: check the definition. This is a bit more difficult, because
-% of respecting \KOMAScript:
-% \begin{macrocode}
- \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
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@macrochangewarning}
-% \begin{macrocode}
-\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}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@l@define}
-% \begin{macro}{\tocstyle@activate@all@l}
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsubsection{New Macros}
-%
-% \begin{macro}{\showtoc}
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \begin{macro}{\tocstyle@copy@toc}
-% \begin{macrocode}
-\newcommand*{\tocstyle@copy@toc}[2]{%
- \if@filesw
- \begingroup
- \endlinechar=\m@ne
-% \end{macrocode}
-% While \LaTeX{} does not close the files, we have to do it know.
-% \begin{macrocode}
- \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
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\aliastoc}
-% Internal use not the real TOC shortcut but another one.
-% \begin{macrocode}
-\newcommand*{\aliastoc}[2]{%
- \expandafter\edef\csname tocstyle@alias@TOC@#1\endcsname{#2}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@pre@starttoc}
-% \begin{macro}{\tocstyle@post@starttoc}
-% Commands before and after the original \cs{@starttoc}.
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@set@width}
-% \changes{v0.2d}{2009/11/11}{improve handling of standard classes}%^^A
-% \changes{v0.2h}{2016/03/25}{use after definition in \texttt{aux}-file}%^^A
-% Some classes do not use \cs{numberline}. This may result in negativ widths
-% (esp. negativ skips). Following special handling of negativ values improves
-% the toc handling of the standard classes. Nevertheless indentation of not
-% numbered entries does not work with such classes!
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\tocstyleTOC}
-% \begin{macro}{\tocstyleAliasTOC}
-% Shortcut of the current processed TOC. Empty outside of TOCs.
-% \begin{macrocode}
-\newcommand*{\tocstyleTOC}{}
-\newcommand*{\tocstyleAliasTOC}{}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\tocstyledepth}
-% Current depth of the current processed TOC entry.
-% \begin{macrocode}
-\newcommand*{\tocstyledepth}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\deactivatetocstyle}%
-% \begin{macro}{\reactivatetocstyle}%
-% You may (de)activate all influence of tocstyle either for one or all TOCs.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\settocfeature}
-% \begin{macro}{\@settocfeature}
-% \begin{macro}{\@@@settocfeature}
-% The primary command to set the features of a depth of a TOC.
-% \begin{macrocode}
-\newcommand*{\@settocfeature}[1][]{%
- \kernel@ifnextchar[ {\@@settocfeature[{#1}]}{\@@settocfeature[{#1}][]}
-}
-\def\@@settocfeature[#1][#2]#3#4{%
-%<trace> \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
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\l@addto@macro}
-% Something like \cs{g@addto@macro} but only with local effect. While other
-% packages or classes may also define this, \cs{providecommand} will be used.
-% \begin{macrocode}
-\providecommand{\l@addto@macro}[2]{%
- \edef#1{\unexpanded\expandafter{#1#2}}%
-}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\settocstylefeature}
-% \begin{macro}{\@settocstylefeature}
-% Same as above without TOC argument.
-% \begin{macrocode}
-\newcommand*{\@settocstylefeature}{%
- \kernel@ifnextchar[ {\@settocfeature[]}{\@settocfeature[][]}%
-}
-\newcommand*{\settocstylefeature}{}
-\let\settocstylefeature\@settocstylefeature
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% Different commands will be defined:
-% \begin{macro}{\tocstyle@feature@!<feature!>@@}
-% Global feature (all TOCs all depths).
-% \end{macro}
-% \begin{macro}{\tocstyle@feature@@!<feature!>@!<TOC!>@}
-% All depth feature for one TOC.
-% \end{macro}
-% \begin{macro}{\tocstyle@feature@@!<feature!>@@!<depth!>}
-% All TOCs feature for one depth.
-% \end{macro}
-% \begin{macro}{\tocstyle@feature@@!<feature!>@!<TOC!>@!<depth!>}
-% One depth of one TOC feature.
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@activate@features}
-% Activates the features
-% \begin{macrocode}
-\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
- }%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\newtocstyle}
-% Defining a new TOC style. First optional argument is a TOC style, that
-% will be activated before the new definitions. Note that all new
-% definitions will overwirte the parent's definitions. So a new TOC style,
-% that defines all features doesn't need a parent.
-% \begin{macrocode}
-\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}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\usetocstyle}
-% \begin{macro}{\@usetocstyle}
-% \changes{v0.2a}{2008/02/14}{extended for deprecated TOC styles}
-% Use the predefined TOC style. You may define
-% |\tocstyle@deprecated@style@foo| to mark TOC style |foo| to be
-% deprecated. If |\tocstyle@deprecated@style@foo| is |\@empty| TOC style
-% |deprecated@foo| will be used instead almost silently. Otherwise TOC
-% style |\tocstyle@deprecated@style@foo| will be used instead and the user
-% will be told about this change.
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% Deactivate all known features for this TOC
-% \begin{macrocode}
- \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
- }%
-% \end{macrocode}
-% So there are no more known features for this TOC.
-% \begin{macrocode}
- \expandafter\let\csname tocstyle@commandlist@#1\endcsname\relax
- \fi
-% \end{macrocode}
-% Activate all known features for this style and TOC
-% \begin{macrocode}
- \@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
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@featurelist}
-% Comma seperated list of all known features
-% \begin{macrocode}
-\newcommand*{\tocstyle@featurelist}{%
- pagenumberhook,entryhook,dothook,entryvskip,leaders,raggedhook,%
- spaceafternumber,parfillskip,pagenumberbox,%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\tocstyle@feature@pagenumberhook}
-% \begin{macro}{\tocstyle@feature@pagenumberhook}
-% \begin{macro}{\tocstyle@feature@entryhook}
-% \begin{macro}{\tocstyle@feature@dothook}
-% \begin{macro}{\tocstyle@feature@entryvskip}
-% \begin{macro}{\tocstyle@feature@leaders}
-% \begin{macro}{\tocstyle@feature@parfillskip}
-% \begin{macro}{\tocstyle@feature@raggedhook}
-% \begin{macro}{\tocstyle@feature@spaceafternumber}
-% \begin{macrocode}
-\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
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\iftochasdepth}
-% Uses \Macro{tocstyle@depthlist@}\meta{TOC} to test, if the TOC has the depth
-% already.
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Defining Some TOC Styles}
-% \changes{v0.2e}{2013/08/11}{usage of new font elements of \KOMAScript\space
-% at \texttt{KOMAlike}}
-%
-% \begin{macro}{\ext@toc}
-% \changes{v0.2i}{2017/02/23}{use indirect extensions}
-% From version 0.2i the indirect extension for the auxiliary file of the
-% table of contents is used like the KOMA-Script classes do.
-% \begin{macrocode}
-\providecommand*{\ext@toc}{toc}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-\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}%
-}
-% \end{macrocode}
-%
-% \subsubsection{Defining Some TOC Styles}
-%
-% Loading a optional configuration file.
-% \begin{macrocode}
-\InputIfFileExists{tocstyle.cfg}{%
- \PackageInfo{tocstyle}{using tocstyle.cfg}%
-}{%
- \PackageInfo{tocstyle}{no tocstyle.cfg found}%
-}
-% \end{macrocode}
-%
-% \iffalse
-%</package>
-% \fi
-%
-% \Finale
-%
-\endinput
-%
-% end of file `tocstyle.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% TeX-master: t
-%%% End: