diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-tocstyle.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-tocstyle.dtx | 1377 |
1 files changed, 988 insertions, 389 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-tocstyle.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-tocstyle.dtx index 04dec8e47f9..b0eba60c05b 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-tocstyle.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-tocstyle.dtx @@ -1,8 +1,8 @@ -% \CheckSum{1380} +% \CheckSum{1934} % \iffalse meta-comment % ====================================================================== % scrkernel-tocstyle.dtx -% Copyright (c) Markus Kohm, 2015-2018 +% Copyright (c) Markus Kohm, 2015-2019 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkernel-tocstyle.dtx -% Copyright (c) Markus Kohm, 2015-2018 +% Copyright (c) Markus Kohm, 2015-2019 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,7 +55,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-tocstyle.dtx 3011 2018-08-29 07:35:17Z kohm $ +%%% From File: $Id: scrkernel-tocstyle.dtx 3262 2019-10-10 08:25:29Z kohm $ % The runs of run-time file generation: %<preidentify>%%% (run: preidentify) % - everything that is needed before selfidentification of resulting files @@ -80,7 +80,7 @@ \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} - \filedate$Date: 2018-08-29 09:35:17 +0200 (Wed, 29 Aug 2018) $ + \filedate$Date: 2019-10-10 10:25:29 +0200 (Thu, 10 Oct 2019) $ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} \filerevision$Revision: 2254 $ \edef\reserved@a{% @@ -93,7 +93,6 @@ % \iffalse \documentclass[parskip=half-]{scrdoc} \usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} \CodelineIndex \RecordChanges \GetFileInfo{scrkernel-tocstyle.dtx} @@ -116,9 +115,9 @@ % \section{Verzeichnisstile} % % Verzeichnisstile werden derzeit nur in Kooperation mit Gliederungsstilen -% untersützt. In Zukunft soll das aber mal anders werden. Dann sollen -% Verzeichnisstile Teil der Grundfunktionalität für Verzeichnisse (Paket -% \textsf{tocbasic}) werden und auch unabhängig von Gliederungsstilen +% untersützt. In Zukunft soll das aber mal anders werden. Dann sollen +% Verzeichnisstile Teil der Grundfunktionalität für Verzeichnisse (Paket +% \textsf{tocbasic}) werden und auch unabhängig von Gliederungsstilen % einsetzbar sein. % % \StopEventually{\PrintIndex\PrintChanges} @@ -126,11 +125,11 @@ % \changes{v3.20}{2015/11/13}{neu und nur bei Vorhandensein verwendet} % % -% \subsection{Einstellungen unabhängig von Verzeichnisstilen und doch -% Grundlage für diese} +% \subsection{Einstellungen unabhängig von Verzeichnisstilen und doch +% Grundlage für diese} % % Bis \KOMAScript~3.20 waren die Befehle, die hier definiert werden, Teil der -% KOMA-Script-Klassen. Allerdings zeigt sich, dass es für die Definition von +% KOMA-Script-Klassen. Allerdings zeigt sich, dass es für die Definition von % Verzeichnisstilen von Vorteil ist, wenn diese Definitionen im Paket % vorhanden sind. % @@ -139,14 +138,14 @@ % \fi % % \begin{macro}{\numberline} -% \changes{v3.20}{2016/03/10}{\cs{numberline} wird indirekt über -% \cs{scr@numberline} definiert}^^A +% \changes{v3.20}{2016/03/10}{\cs{numberline} wird indirekt über +% \cs{scr@numberline} definiert}%^^A % \begin{macro}{\scr@numberline} -% \changes{v2.3c}{1995/08/06}{\cs{numberline} umdefiniert}^^A -% \changes{v3.06}{2010/05/18}{Verwendung von \cs{numberline@prefix} und -% \cs{numberline@postfix}}^^A -% \changes{v3.12}{2013/11/22}{use \cs{numberline@numberformat} only, if the -% argument expands to a non-empty string}^^A +% \changes{v2.3c}{1995/08/06}{\cs{numberline} umdefiniert}%^^A +% \changes{v3.06}{2010/05/18}{Verwendung von \cs{numberline@prefix} und +% \cs{numberline@postfix}}%^^A +% \changes{v3.12}{2013/11/22}{use \cs{numberline@numberformat} only, if the +% argument expands to a non-empty string}%^^A % Dieses Makro wird indirekt im Inhaltsverzeichnis verwendet und muss % umdefiniert werden, um Duden, 20.~Auflage, Regel~5 und Regel~6 zu % implementieren. @@ -163,11 +162,11 @@ } % \end{macrocode} % \begin{macro}{\usetocbasicnumberline} -% \changes{v3.20}{2016/03/15}{neu}^^A +% \changes{v3.20}{2016/03/15}{neu}%^^A % Dieses Makro testet, ob \cs{numberline} auf \cs{scr@numberline} -% basiert. Falls das nicht der Fall ist, führt es das optionale Argument aus -% und führt dann eine entsprechende Umdefinierung statt. Falls es jedoch der -% Fall ist, lässt es alles unverändert. +% basiert. Falls das nicht der Fall ist, führt es das optionale Argument aus +% und führt dann eine entsprechende Umdefinierung statt. Falls es jedoch der +% Fall ist, lässt es alles unverändert. % \begin{macrocode} \newcommand*{\usetocbasicnumberline}[1][% \PackageInfo{tocbasic}{Using my definition of `\string\numberline'}% @@ -176,9 +175,9 @@ \begingroup \def\scr@numberline##1{\global\@tempswafalse}% % \end{macrocode} -% \cs{@tempdima} ist üblicherweise bei \cs{numberline} die Breite der Nummer. -% Damit zu kleine Werte nicht zu einem Problem werden können, nehme ich hier -% gleich mal einen richtig großen Wert. +% \cs{@tempdima} ist üblicherweise bei \cs{numberline} die Breite der Nummer. +% Damit zu kleine Werte nicht zu einem Problem werden können, nehme ich hier +% gleich mal einen richtig großen Wert. % \begin{macrocode} \@tempdima\maxdimen \sbox\@tempboxa{\numberline{0}}% @@ -186,27 +185,27 @@ \if@tempswa #1\renewcommand*{\numberline}[1]{\scr@numberline{##1}}\fi } % \end{macrocode} -% \end{macro}^^A \usetocbasicnumberline +% \end{macro}%^^A \usetocbasicnumberline % \begin{macro}{\numberline@prefix} -% \changes{v3.06}{2010/05/18}{neu (intern)}^^A -% Das ist in der Voreinstellung einfach leer. Es könnte verwendet werden, um -% etwas vor die Nummer zu setzen oder die Nummer rechtsbündig zu setzen. +% \changes{v3.06}{2010/05/18}{neu (intern)}%^^A +% Das ist in der Voreinstellung einfach leer. Es könnte verwendet werden, um +% etwas vor die Nummer zu setzen oder die Nummer rechtsbündig zu setzen. % \begin{macrocode} \newcommand*{\numberline@prefix}{} % \end{macrocode} -% \end{macro}^^A \numberline@prefix +% \end{macro}%^^A \numberline@prefix % \begin{macro}{\numberline@postfix} -% \changes{v3.06}{2010/05/18}{neu (intern)} +% \changes{v3.06}{2010/05/18}{neu (intern)} % Das ist in der Voreinstellung einfach \cs{hfil} und dient dazu die Nummer -% linksbündig zu platzieren. +% linksbündig zu platzieren. % \begin{macrocode} \newcommand*{\numberline@postfix}{\hfil} % \end{macrocode} -% \end{macro}^^A \numberline@postfix +% \end{macro}%^^A \numberline@postfix % \begin{macro}{\numberline@numberformat} -% \changes{v3.06}{2010/05/18}{neu (intern)}^^A -% \changes{v3.12}{2013/11/22}{don't output anything, if argument expands to -% an empty string}^^A +% \changes{v3.06}{2010/05/18}{neu (intern)}%^^A +% \changes{v3.12}{2013/11/22}{don't output anything, if argument expands to +% an empty string}%^^A % Das dient in der Voreinstellung dazu, Regel~5 und 6 aus der 20.~Auflage des % DUDENs umzusetzen. % \begin{macrocode} @@ -215,36 +214,36 @@ } % \end{macrocode} % \begin{macro}{\numberline@numberprefix} -% \changes{v3.20}{2016/03/15}{neu (intern)} +% \changes{v3.20}{2016/03/15}{neu (intern)} % Wird verwendet, um innerhalb von \cs{numberline@numberformat} der Nummer -% einen Präfix voran zu stellen. Im Gegensatz zu \cs{numberline@prefix} wird +% einen Präfix voran zu stellen. Im Gegensatz zu \cs{numberline@prefix} wird % dieser nur ausgegeben, wenn das Argument von \cs{numberline@numberformat}, % also auch das Argument von \cs{numberline} nicht leer ist. % \begin{macrocode} \newcommand*{\numberline@numberprefix}{} % \end{macrocode} -% \end{macro}^^A \numberline@numberprefix +% \end{macro}%^^A \numberline@numberprefix % \begin{macro}{\numberline@numberpostfix} -% \changes{v3.20}{2016/03/15}{neu (intern)} +% \changes{v3.20}{2016/03/15}{neu (intern)} % Wird verwendet, um innerhalb von \cs{numberline@numberformat} der Nummer -% einen Postfix anzuhängen. Im Gegensatz zu \cs{numberline@prefix} wird +% einen Postfix anzuhängen. Im Gegensatz zu \cs{numberline@prefix} wird % dieser nur ausgegeben, wenn das Argument von \cs{numberline@numberformat}, % also auch das Argument von \cs{numberline} nicht leer ist. % \begin{macrocode} \newcommand*{\numberline@numberpostfix}{} % \end{macrocode} -% \end{macro}^^A \numberline@numberpostfix -% \end{macro}^^A \numberline@numberformat +% \end{macro}%^^A \numberline@numberpostfix +% \end{macro}%^^A \numberline@numberformat % \begin{macro}{\numberline@box} -% \changes{v3.06}{2010/05/18}{neu (intern)} +% \changes{v3.06}{2010/05/18}{neu (intern)} % Das dient in der Voreinstellung dazu, die Gliederungsnummer in eine Box zu % setzen. % \begin{macrocode} \newcommand*{\numberline@box}[1]{\hb@xt@\@tempdima{#1}} %</body> % \end{macrocode} -% \end{macro}^^A \numberline@box -% \end{macro}^^A \scr@numberline +% \end{macro}%^^A \numberline@box +% \end{macro}%^^A \scr@numberline % % \iffalse %</package> @@ -256,18 +255,18 @@ \let\numberline\scr@numberline %</body> % \end{macrocode} -% \end{macro}^^A \numberline +% \end{macro}%^^A \numberline % % \iffalse %</class> % \fi % -% \subsection{Grundlagen für Verzeichniseintragsstile} +% \subsection{Grundlagen für Verzeichniseintragsstile} % % Ab \KOMAScript~3.20 halten Stile Einzug in die Verzeichnisse. Der erste -% Schritt dabei sind die Stile der Verzeichniseinträge. Jeder Stil besteht aus +% Schritt dabei sind die Stile der Verzeichniseinträge. Jeder Stil besteht aus % einer Anweisung, mit der ein Verzeichnisbefehl definiert wird und -% zugehörigen Optionen. Die Optionen dienen dazu, Einstellungen für die +% zugehörigen Optionen. Die Optionen dienen dazu, Einstellungen für die % einzelnen Verzeichnisbefehle vorzunehmen. % % \iffalse @@ -275,7 +274,7 @@ % \fi % % \changes{v3.20}{2015/11/17}{Verzeichnisstile bekommen das -% \texttt{KOMAarg}-Mitglied \texttt{.dte}}^^A +% \texttt{KOMAarg}-Mitglied \texttt{.dte}}%^^A % \begin{macrocode} %<*body> \DefineFamily{KOMAarg} @@ -284,28 +283,28 @@ % \end{macrocode} % % \begin{macro}{\@DefineTOCEntryOption} -% \changes{v3.20}{2015/04/10}{neu (intern)} +% \changes{v3.20}{2015/04/10}{neu (intern)} % Die Definition der Optionen geschieht mit einer einheitlichen -% Schnittstelle. Wichtig dabei ist, dass hier nicht tatsächlich die Optionen +% Schnittstelle. Wichtig dabei ist, dass hier nicht tatsächlich die Optionen % definiert werden, sondern eine Anweisung, die ihrerseits die Optionen bei % Bedarf definiert. Ein solcher Bedarf besteht beispielsweise bei der % Definition des Eintragsbefehls selbst. Er besteht aber auch innerhalb von % \cs{DeclareSectionCommand}, weil diese Anweisung ebenfalls indirekt -% Verzeichniseinträge definiert und deshalb die Optionen auswerten können +% Verzeichniseinträge definiert und deshalb die Optionen auswerten können % soll. Es gibt folgende Parameter: % \begin{description} % \item[\marg{Stil}: \meta{String},] Name des Eintragsstils % \item[\marg{Option}: \meta{String},] Name der Option -% \item[\oarg{Wert}:] der Säumniswert der Option abhängig von der +% \item[\oarg{Wert}:] der Säumniswert der Option abhängig von der % \meta{Definition} % \item[\marg{Definition}: \meta{Code},] Definition der Option % \end{description} % \begin{macro}{\@DefineTOCEntryOptionWithoutDefault} -% \changes{v3.20}{2015/11/10}{neu (intern)} +% \changes{v3.20}{2015/11/10}{neu (intern)} % \begin{macro}{\@DefineTOCEntryOptionWithDefault} -% \changes{v3.20}{2015/11/10}{neu (intern)} +% \changes{v3.20}{2015/11/10}{neu (intern)} % Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden zwei -% Hilfsmakros benötigt. +% Hilfsmakros benötigt. % \begin{macrocode} %<*body> \newcommand*{\@DefineTOCEntryOption}[2]{% @@ -326,20 +325,22 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \@DefineTOCEntryOptionWithoutDefault -% \end{macro}^^A \@DefineTOCEntryOptionWithDefault -% \end{macro}^^A \@DefineTOCEntryOption +% \end{macro}%^^A \@DefineTOCEntryOptionWithoutDefault +% \end{macro}%^^A \@DefineTOCEntryOptionWithDefault +% \end{macro}%^^A \@DefineTOCEntryOption % % \begin{macro}{\@RelaxTOCEntryOptions} -% \changes{v3.20}{2015/04/10}{neu (intern)} -% Setzt alle Optionen der aktuellen Do-Liste zurück auf \cs{relax}. +% \changes{v3.20}{2015/04/10}{neu (intern)} +% Setzt alle Optionen der aktuellen Do-Liste zurück auf \cs{relax}. % \begin{macrocode} %<*body> \newcommand*{\@RelaxTOCEntryOptions}{% \begingroup \def\do@endgroup{\endgroup}% \def\do##1{% - \l@addto@macro\do@endgroup{\RelaxFamilyKey[.dte]{KOMAarg}{##1}}% + \l@addto@macro\do@endgroup{% + \RelaxFamilyKey[.dte]{KOMAarg}{##1}% + }% \scr@dte@gobbleopt }% \scr@dte@doopts @@ -348,31 +349,46 @@ \newcommand{\scr@dte@gobbleopt}[1][]{} %</body> % \end{macrocode} -% \end{macro}^^A \@RelaxTOCEntryOptions +% \end{macro}%^^A \@RelaxTOCEntryOptions % % \begin{macro}{\@DefineTOCEntryLengthOption} -% \changes{v3.20}{2015/12/04}{neu (intern)} +% \changes{v3.20}{2015/12/04}{neu (intern)}%^^A % Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die ein -% Längenmacro definiert. Es gibt folgende Parameter: +% Längenmacro definiert. Es gibt folgende Parameter: % \begin{description} % \item[\marg{Stil}: \meta{String},] Name des Eintragsstils % \item[\marg{Option}: \meta{String},] Name der Option -% \item[\oarg{Wert}:] der Säumniswert der Option -% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros +% \item[\oarg{Wert}:] der Säumniswert der Option +% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros % \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros -% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option +% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option % \item[\oarg{Init}: \meta{Code},] Initialisierung der Option % \end{description} -% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition -% automatisch \cs{scr@dte@current} eingefügt. +% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition +% automatisch \cs{scr@dte@current} eingefügt. Gleichzeitig wird auch noch eine +% Kopieroption definiert, die sich von der eigentlichen Option dadurch +% unterscheidet, dass dem Gleichheitszeichen ein Doppelpunkt voran gestellt +% ist. Der Wert der Kopieroption ist der Name eines anderen Eintrags, dessen +% Einstellung dann kopiert wird, sofern dieser Eintrag eine entsprechende +% Einstellung hat. % \begin{macro}{\@DefineTOCEntryLengthOptionWithoutDefault} -% \changes{v3.20}{2015/11/10}{neu (intern)}^^A +% \changes{v3.20}{2015/11/10}{neu (intern)}%^^A +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A +% \changes{v3.27}{2019/10/03}{es wird gleichzeitig eine Addieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryLengthOptionWithDefault} -% \changes{v3.20}{2015/11/10}{neu (intern)}^^A +% \changes{v3.20}{2015/11/10}{neu (intern)}%^^A +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A +% \changes{v3.27}{2019/10/03}{es wird gleichzeitig eine Addieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryLengthOptionMacro} -% \changes{v3.20}{2015/11/10}{neu (intern)}^^A +% \changes{v3.20}{2015/11/10}{neu (intern)}%^^A +% \begin{macro}{\@DefineTOCEntryAddLengthOptionMacro} +% \changes{v3.27}{2019/10/03}{neu (intern)}%^^A % Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei -% Hilfsmakros benötigt. +% Hilfsmakros benötigt. % \begin{macrocode} %<*body> \newcommand*{\@DefineTOCEntryLengthOption}[2]{% @@ -385,6 +401,21 @@ \@DefineTOCEntryOption{#1}{#2}{% \@DefineTOCEntryLengthOptionMacro{#2}{#3}{#4}{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#3##1#4}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #3\scr@dte@current#4\expandafter\endcsname + \csname #3##1#4\endcsname + \FamilyKeyStateProcessed + }% + }% + \DefineFamilyKey[.dte]{KOMAarg}{#2+}{% + \@DefineTOCEntryAddLengthOptionMacro{#2+}{#3}{#4}{##1}% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}% + \noexpand\do{#2:}\noexpand\do{#2+}% + }% } \newcommand*{\@DefineTOCEntryLengthOptionWithDefault}{} \def\@DefineTOCEntryLengthOptionWithDefault#1#2[#3]#4#5#6{% @@ -392,6 +423,21 @@ \@DefineTOCEntryOption{#1}{#2}[{#3}]{% \@DefineTOCEntryLengthOptionMacro{#2}{#4}{#5}{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#4##1#5}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #4\scr@dte@current#5\expandafter\endcsname + \csname #4##1#5\endcsname + \FamilyKeyStateProcessed + }% + }% + \DefineFamilyKey[.dte]{KOMAarg}{#2+}{% + \@DefineTOCEntryAddLengthOptionMacro{#2+}{#4}{#5}{##1}% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}% + \noexpand\do{#2:}\noexpand\do{#2+}% + }% } \newcommand*{\@DefineTOCEntryLengthOptionMacro}[4]{% \protected@edef\reserved@a{% @@ -406,36 +452,72 @@ \fi \fi } +\newcommand*{\@DefineTOCEntryAddLengthOptionMacro}[4]{% + \@ifundefined{#2\scr@dte@current#3}{% + \FamilyKeyStateUnknownValue + }{% + \protected@edef\reserved@a{% + \noexpand\FamilySetLength{KOMAarg}{#1}{\noexpand\@tempskipa}{#4}% + }\reserved@a + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifscr@dte@expandtopt + \expandafter\edef\csname #2\scr@dte@current#3\endcsname{% + \the\glueexpr\@tempskipa + +\csname #2\scr@dte@current#3\endcsname\relax}% + \else + \expandafter\protected@edef\csname #2\scr@dte@current#3\endcsname{% + \the\glueexpr #4% + +\csname #2\scr@dte@current#3\endcsname\relax}% + \fi + \fi + }% +} %</body> % \end{macrocode} -% \end{macro}^^A \@DefineTOCEntryLengthOptionMacro -% \end{macro}^^A \@DefineTOCEntryLengthOptionWithDefault -% \end{macro}^^A \@DefineTOCEntryLengthOptionWithoutDefault -% \end{macro}^^A \@DefineTOCEntryLengthOption +% \end{macro}%^^A \@DefineTOCEntryAddLengthOptionMacro +% \end{macro}%^^A \@DefineTOCEntryLengthOptionMacro +% \end{macro}%^^A \@DefineTOCEntryLengthOptionWithDefault +% \end{macro}%^^A \@DefineTOCEntryLengthOptionWithoutDefault +% \end{macro}%^^A \@DefineTOCEntryLengthOption % % \begin{macro}{\@DefineTOCEntryNumberOption} -% \changes{v3.20}{2015/12/04}{neu (intern)} +% \changes{v3.20}{2015/12/04}{neu (intern)} % Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die ein % Nummernmacro definiert. Es gibt folgende Parameter: % \begin{description} % \item[\marg{Stil}: \meta{String},] Name des Eintragsstils % \item[\marg{Option}: \meta{String},] Name der Option -% \item[\oarg{Wert}:] der Säumniswert der Option -% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros +% \item[\oarg{Wert}:] der Säumniswert der Option +% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros % \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros -% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option +% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option % \item[\oarg{Init}: \meta{Code},] Initialisierung der Option % \end{description} -% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition -% automatisch \cs{scr@dte@current} eingefügt. +% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition +% automatisch \cs{scr@dte@current} eingefügt. Gleichzeitig wird auch noch eine +% Kopieroption definiert, die sich von der eigentlichen Option dadurch +% unterscheidet, dass dem Gleichheitszeichen ein Doppelpunkt voran gestellt +% ist. Der Wert der Kopieroption ist der Name eines anderen Eintrags, dessen +% Einstellung dann kopiert wird, sofern dieser Eintrag eine entsprechende +% Einstellung hat. % \begin{macro}{\@DefineTOCEntryNumberOptionWithoutDefault} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A +% \changes{v3.27}{2019/10/03}{es wird gleichzeitig eine Addieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryNumberOptionWithDefault} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A +% \changes{v3.27}{2019/10/03}{es wird gleichzeitig eine Addieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryNumberOptionMacro} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} +% \begin{macro}{\@DefineTOCEntryAddNumberOptionMacro} +% \changes{v3.27}{2019/10/03}{neu (intern)} % Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei -% Hilfsmakros benötigt. +% Hilfsmakros benötigt. % \begin{macrocode} %<*body> \newcommand*{\@DefineTOCEntryNumberOption}[2]{% @@ -448,6 +530,21 @@ \@DefineTOCEntryOption{#1}{#2}{% \@DefineTOCEntryNumberOptionMacro{#2}{#3}{#4}{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#3##1#4}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #3\scr@dte@current#4\expandafter\endcsname + \csname #3##1#4\endcsname + \FamilyKeyStateProcessed + }% + }% + \DefineFamilyKey[.dte]{KOMAarg}{#2+}{% + \@DefineTOCEntryAddNumberOptionMacro{#2+}{#3}{#4}{##1}% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}% + \noexpand\do{#2:}\noexpand\do{#2+}% + }% } \newcommand*{\@DefineTOCEntryNumberOptionWithDefault}{} \def\@DefineTOCEntryNumberOptionWithDefault#1#2[#3]#4#5#6{% @@ -455,6 +552,21 @@ \@DefineTOCEntryOption{#1}{#2}[{#3}]{% \@DefineTOCEntryNumberOptionMacro{#2}{#4}{#5}{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#4##1#5}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #4\scr@dte@current#5\expandafter\endcsname + \csname #4##1#5\endcsname + \FamilyKeyStateProcessed + }% + }% + \DefineFamilyKey[.dte]{KOMAarg}{#2+}{% + \@DefineTOCEntryAddNumberOptionMacro{#2+}{#4}{#5}{##1}% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}% + \noexpand\do{#2:}\noexpand\do{#2+}% + }% } \newcommand*{\@DefineTOCEntryNumberOptionMacro}[4]{% \protected@edef\reserved@a{% @@ -463,36 +575,60 @@ }{#4}% }\reserved@a } +\newcommand*{\@DefineTOCEntryAddNumberOptionMacro}[4]{% + \@ifundefined{#2\scr@dte@current#3}{% + \FamilyKeyStateUnknownValue + }{% + \FamilySetCounterMacro{KOMAarg}{#1}{% + \reserved@a + }{#4}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \expandafter\edef\csname #2\scr@dte@current#3\endcsname{% + \the\numexpr \reserved@a+\csname #2\scr@dte@current#3\endcsname\relax + }% + \fi + }% +} %</body> % \end{macrocode} -% \end{macro}^^A \@DefineTOCEntryNumberOptionMacro -% \end{macro}^^A \@DefineTOCEntryNumberOptionWithDefault -% \end{macro}^^A \@DefineTOCEntryNumberOptionWithoutDefault -% \end{macro}^^A \@DefineTOCEntryNumberOption +% \end{macro}%^^A \@DefineTOCEntryAddNumberOptionMacro +% \end{macro}%^^A \@DefineTOCEntryNumberOptionMacro +% \end{macro}%^^A \@DefineTOCEntryNumberOptionWithDefault +% \end{macro}%^^A \@DefineTOCEntryNumberOptionWithoutDefault +% \end{macro}%^^A \@DefineTOCEntryNumberOption % % \begin{macro}{\@DefineTOCEntryBooleanOption} -% \changes{v3.20}{2015/12/04}{neu (intern)} +% \changes{v3.20}{2015/12/04}{neu (intern)} % Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die einen % Schalter definiert. Es gibt folgende Parameter: % \begin{description} % \item[\marg{Stil}: \meta{String},] Name des Eintragsstils % \item[\marg{Option}: \meta{String},] Name der Option -% \item[\oarg{Wert}:] der Säumniswert der Option -% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros +% \item[\oarg{Wert}:] der Säumniswert der Option +% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros % \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros -% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option +% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option % \item[\oarg{Init}: \meta{Code},] Initialisierung der Option % \end{description} -% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition -% automatisch \cs{scr@dte@current} eingefügt. +% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition +% automatisch \cs{scr@dte@current} eingefügt. Gleichzeitig wird auch noch eine +% Kopieroption definiert, die sich von der eigentlichen Option dadurch +% unterscheidet, dass dem Gleichheitszeichen ein Doppelpunkt voran gestellt +% ist. Der Wert der Kopieroption ist der Name eines anderen Eintrags, dessen +% Einstellung dann kopiert wird, sofern dieser Eintrag eine entsprechende +% Einstellung hat. % \begin{macro}{\@DefineTOCEntryBoolOptionWithoutDefault} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryBoolOptionWithDefault} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryBoolOptionMacro} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} % Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei -% Hilfsmakros benötigt. +% Hilfsmakros benötigt. % \begin{macrocode} %<*body> \newcommand*{\@DefineTOCEntryBooleanOption}[2]{% @@ -507,6 +643,17 @@ \@DefineTOCEntryOption{#1}{#2}[true]{% \@DefineTOCEntryBoolOptionMacro{#2}{#3}{#4}{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{if#3##1#4}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname if#3\scr@dte@current#4\expandafter\endcsname + \csname if#3##1#4\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% } \newcommand*{\@DefineTOCEntryBoolOptionWithDefault}{} \def\@DefineTOCEntryBoolOptionWithDefault#1#2[#3]#4#5#6{% @@ -516,6 +663,17 @@ \@DefineTOCEntryOption{#1}{#2}[{#3}]{% \@DefineTOCEntryBoolOptionMacro{#2}{#4}{#5}{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{if#4##1#5}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname if#4\scr@dte@current#5\expandafter\endcsname + \csname if#4##1#5\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% } \newcommand*{\@DefineTOCEntryBoolOptionMacro}[4]{% \@ifundefined{if#2\scr@dte@current#3}{% @@ -525,34 +683,43 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \@DefineTOCEntryBoolOptionMacro -% \end{macro}^^A \@DefineTOCEntryBoolOptionWithDefault -% \end{macro}^^A \@DefineTOCEntryBoolOptionWithoutDefault -% \end{macro}^^A \@DefineTOCEntryBooleanOption +% \end{macro}%^^A \@DefineTOCEntryBoolOptionMacro +% \end{macro}%^^A \@DefineTOCEntryBoolOptionWithDefault +% \end{macro}%^^A \@DefineTOCEntryBoolOptionWithoutDefault +% \end{macro}%^^A \@DefineTOCEntryBooleanOption % % \begin{macro}{\@DefineTOCEntryIfOption} -% \changes{v3.20}{2015/12/06}{neu (intern)} +% \changes{v3.20}{2015/12/06}{neu (intern)} % Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die eine % If-Anweisung definiert. Die Option selbst ist dabei eine Schalter-Option. Es % gibt folgende Parameter: % \begin{description} % \item[\marg{Stil}: \meta{String},] Name des Eintragsstils % \item[\marg{Option}: \meta{String},] Name der Option -% \item[\oarg{Wert}:] der Säumniswert der Option -% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros +% \item[\oarg{Wert}:] der Säumniswert der Option +% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros % \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros -% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option +% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option % \end{description} -% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition -% automatisch \cs{scr@dte@current} eingefügt. +% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition +% automatisch \cs{scr@dte@current} eingefügt. Gleichzeitig wird auch noch eine +% Kopieroption definiert, die sich von der eigentlichen Option dadurch +% unterscheidet, dass dem Gleichheitszeichen ein Doppelpunkt voran gestellt +% ist. Der Wert der Kopieroption ist der Name eines anderen Eintrags, dessen +% Einstellung dann kopiert wird, sofern dieser Eintrag eine entsprechende +% Einstellung hat. % \begin{macro}{\@DefineTOCEntryIfOptionWithoutDefault} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryIfOptionWithDefault} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryIfOptionMacro} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} % Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei -% Hilfsmakros benötigt. +% Hilfsmakros benötigt. % \begin{macrocode} %<*body> \newcommand*{\@DefineTOCEntryIfOption}[2]{% @@ -565,6 +732,17 @@ \@DefineTOCEntryOption{#1}{#2}[true]{% \@DefineTOCEntryIfOptionMacro{#2}{#3}{#4}{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{If#3##1#4}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname If#3\scr@dte@current#4\expandafter\endcsname + \csname If#3##1#4\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% } \newcommand*{\@DefineTOCEntryIfOptionWithDefault}{} \def\@DefineTOCEntryIfOptionWithDefault#1#2[#3]#4#5#6{% @@ -572,6 +750,17 @@ \@DefineTOCEntryOption{#1}{#2}[{#3}]{% \@DefineTOCEntryIfOptionMacro{#2}{#4}{#5}{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{If#4##1#5}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname If#4\scr@dte@current#5\expandafter\endcsname + \csname If#4##1#5\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% } \newcommand*{\@DefineTOCEntryIfOptionMacro}[4]{% \FamilySetBool{KOMAarg}{#1}{@tempswa}{#4}% @@ -585,41 +774,50 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \@DefineTOCEntryIfOptionMacro -% \end{macro}^^A \@DefineTOCEntryIfOptionWithDefault -% \end{macro}^^A \@DefineTOCEntryIfOptionWithoutDefault -% \end{macro}^^A \@DefineTOCEntryIfOption +% \end{macro}%^^A \@DefineTOCEntryIfOptionMacro +% \end{macro}%^^A \@DefineTOCEntryIfOptionWithDefault +% \end{macro}%^^A \@DefineTOCEntryIfOptionWithoutDefault +% \end{macro}%^^A \@DefineTOCEntryIfOption % % \begin{macro}{\@DefineTOCEntryCommandOption} -% \changes{v3.20}{2015/11/17}{neu} +% \changes{v3.20}{2015/11/17}{neu} % Verwendet \cs{DefineTOCEntryOption}, um eine Option zu definieren, die ein % Macro definiert. Es gibt folgende Parameter: % \begin{description} % \item[\marg{Stil}: \meta{String},] Name des Eintragsstils % \item[\marg{Option}: \meta{String},] Name der Option -% \item[\oarg{Wert}:] der Säumniswert der Option -% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros +% \item[\oarg{Wert}:] der Säumniswert der Option +% \item[\marg{Prefix}: \meta{String},] Präfix des zu definierenden Makros % \item[\marg{Postfix}: \meta{String},] Postfix des zu definierenden Makros % \item[\oarg{Argumentzahl}: \meta{Nummer},] Anzahl der Argumente des Makros -% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option +% \item[\marg{Erklärung}: \meta{String},] Erklärung der Option % \item[\oarg{Init}: \meta{Code},] Initialisierung der Option % \end{description} -% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition -% automatisch \cs{scr@dte@current} eingefügt. +% Zwischen Prefix und Postfix wird bei der späteren, tatsächlichen Definition +% automatisch \cs{scr@dte@current} eingefügt. Gleichzeitig wird auch noch eine +% Kopieroption definiert, die sich von der eigentlichen Option dadurch +% unterscheidet, dass dem Gleichheitszeichen ein Doppelpunkt voran gestellt +% ist. Der Wert der Kopieroption ist der Name eines anderen Eintrags, dessen +% Einstellung dann kopiert wird, sofern dieser Eintrag eine entsprechende +% Einstellung hat. % \begin{macro}{\@DefineTOCEntryCommandOptionWithoutDefault} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} % \begin{macro}{\@@DefineTOCEntryCommandOptionWithoutDefault} -% \changes{v3.20}{2015/11/26}{neu (intern)} +% \changes{v3.20}{2015/11/26}{neu (intern)} +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryCommandOptionWithDefault} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} % \begin{macro}{\@@DefineTOCEntryCommandOptionWithDefault} -% \changes{v3.20}{2015/11/26}{neu (intern)} +% \changes{v3.20}{2015/11/26}{neu (intern)} +% \changes{v3.27}{2019/10/02}{es wird gleichzeitig eine Kopieroption +% definiert}%^^A % \begin{macro}{\@DefineTOCEntryCommandOptionMacro} -% \changes{v3.20}{2015/11/12}{neu (intern)} +% \changes{v3.20}{2015/11/12}{neu (intern)} % \begin{macro}{\@@DefineTOCEntryCommandOptionMacro} -% \changes{v3.20}{2015/11/26}{neu (intern)} +% \changes{v3.20}{2015/11/26}{neu (intern)} % Da mit einem optionalen Argument an Position 3 gearbeitet wird, werden drei -% Hilfsmakros benötigt. +% Hilfsmakros benötigt. % \begin{macrocode} %<*body> \newcommand*{\@DefineTOCEntryCommandOption}[2]{% @@ -637,10 +835,32 @@ \@DefineTOCEntryOption{#1}{#2}{% \@DefineTOCEntryCommandOptionMacro{#2}{#3}{#4}[#5]{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#3##1#4}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #3\scr@dte@current#4\expandafter\endcsname + \csname #3##1#4\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% \or \@DefineTOCEntryOption{#1}{#2}{% \@DefineTOCEntryCommandOptionMacro{#2}{#3}{#4}[#5]{##1{####1}}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#3##1#4}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #3\scr@dte@current#4\expandafter\endcsname + \csname #3##1#4\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% \else %<class> \ClassError{\KOMAClassName %<package> \PackageError{tocbasic% @@ -660,14 +880,47 @@ \@DefineTOCEntryOption{#1}{#2}[{#3}]{% \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#4##1#5}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #4\scr@dte@current#5\expandafter\endcsname + \csname #4##1#5\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% \or \@DefineTOCEntryOption{#1}{#2}[{#3}]{% \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1{####1}}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#4##1#5}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #4\scr@dte@current#5\expandafter\endcsname + \csname #4##1#5\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% \or \@DefineTOCEntryOption{#1}{#2}[{#3}]{% \@DefineTOCEntryCommandOptionMacro{#2}{#4}{#5}[#6]{##1{####1}{####2}}% }% + \DefineFamilyKey[.dte]{KOMAarg}{#2:}{% + \scr@ifundefinedorrelax{#4##1#5}{\FamilyKeyStateUnknownValue}{% + \expandafter\let + \csname #4\scr@dte@current#5\expandafter\endcsname + \csname #4##1#5\endcsname + \FamilyKeyStateProcessed + }% + }% + \edef\scr@dte@doopts{% + \unexpanded\expandafter{\scr@dte@doopts}\noexpand\do{#2:}% + }% \else %<class> \ClassError{\KOMAClassName %<package> \PackageError{tocbasic% @@ -688,27 +941,27 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \@@DefineTOCEntryCommandOptionMacro -% \end{macro}^^A \@DefineTOCEntryCommandOptionMacro -% \end{macro}^^A \@@DefineTOCEntryCommandOptionWithDefault -% \end{macro}^^A \@DefineTOCEntryCommandOptionWithDefault -% \end{macro}^^A \@@DefineTOCEntryCommandOptionWithoutDefault -% \end{macro}^^A \@DefineTOCEntryCommandOptionWithoutDefault -% \end{macro}^^A \@DefineTOCEntryCommandOption +% \end{macro}%^^A \@@DefineTOCEntryCommandOptionMacro +% \end{macro}%^^A \@DefineTOCEntryCommandOptionMacro +% \end{macro}%^^A \@@DefineTOCEntryCommandOptionWithDefault +% \end{macro}%^^A \@DefineTOCEntryCommandOptionWithDefault +% \end{macro}%^^A \@@DefineTOCEntryCommandOptionWithoutDefault +% \end{macro}%^^A \@DefineTOCEntryCommandOptionWithoutDefault +% \end{macro}%^^A \@DefineTOCEntryCommandOption % % \begin{macro}{\@AddToDeclareTOCStyleEntryPreCheckNeeds} -% \changes{v3.20}{2015/12/06}{neu (intern)} +% \changes{v3.20}{2015/12/06}{neu (intern)} % \begin{macro}{\@PreToDeclareTOCStyleEntryPreCheckNeeds} -% \changes{v3.20}{2015/12/06}{neu (intern)} -% Noch bevor die benötigten Befehle getestet werden, wird in -% \cs{DeclareTOCStyleEntry} ein Hook ausgeführt. Für das Hinzufügen von Code +% \changes{v3.20}{2015/12/06}{neu (intern)} +% Noch bevor die benötigten Befehle getestet werden, wird in +% \cs{DeclareTOCStyleEntry} ein Hook ausgeführt. Für das Hinzufügen von Code % zu diesem Hook gibt es folgende Parameter: % \begin{description} -% \item[\marg{Code}: \meta{Code},] Code, der ausgeführt werden soll. +% \item[\marg{Code}: \meta{Code},] Code, der ausgeführt werden soll. % \end{description} % Bitte beachten, dass diese Anweisung im Init-Code von Stilen verwendet wird, -% also innerhalb von \cs{DeclareTOCEntryStyle}, während der Hook innerhalb -% von \cs{DeclareTOCStyleEntry} ausgeführt wird. Der Code des Hooks hat ein +% also innerhalb von \cs{DeclareTOCEntryStyle}, während der Hook innerhalb +% von \cs{DeclareTOCStyleEntry} ausgeführt wird. Der Code des Hooks hat ein % Argument: Den Namen der Gliederungsebene. % \begin{macrocode} %<*body> @@ -722,22 +975,22 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \@PreToDeclareTOCStyleEntryPreCheckNeeds -% \end{macro}^^A \@AddToDeclareTOCStyleEntryPreCheckNeeds +% \end{macro}%^^A \@PreToDeclareTOCStyleEntryPreCheckNeeds +% \end{macro}%^^A \@AddToDeclareTOCStyleEntryPreCheckNeeds % % \begin{macro}{\@TOCEntryStyleNeedsCommandByOption} -% \changes{v3.20}{2015/12/04}{neu (intern)} -% Fügt einen oder mehrere Befehle der Liste der benötigten Befehle hinzu. +% \changes{v3.20}{2015/12/04}{neu (intern)} +% Fügt einen oder mehrere Befehle der Liste der benötigten Befehle hinzu. % \begin{description} -% \item[\marg{Stil}:] Der Stil \meta{string}, der die Befehle benötigt. -% \item[\marg{Präfix}:] Präfix \meta{string} des benötigten Befehls. -% \item[\marg{Postfix}:] Postfix \meta{string} des benötigten Befehls. -% \item[\marg{Option}:] Die Option \meta{string}, über die dieser Befehl +% \item[\marg{Stil}:] Der Stil \meta{string}, der die Befehle benötigt. +% \item[\marg{Präfix}:] Präfix \meta{string} des benötigten Befehls. +% \item[\marg{Postfix}:] Postfix \meta{string} des benötigten Befehls. +% \item[\marg{Option}:] Die Option \meta{string}, über die dieser Befehl % definiert wird. -% \item[\marg{Erklärung}:] Bedeutung \meta{string} des Befehls. +% \item[\marg{Erklärung}:] Bedeutung \meta{string} des Befehls. % \end{description} -% Zwischen Präfix und Postfix wird dann automatisch der Name der -% Gliederungsebene eingefügt. +% Zwischen Präfix und Postfix wird dann automatisch der Name der +% Gliederungsebene eingefügt. % \begin{macrocode} %<*body> \newcommand*{\@TOCEntryStyleNeedsCommandByOption}[5]{% @@ -748,19 +1001,19 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \@TOCEntryStyleNeedsCommandByOption +% \end{macro}%^^A \@TOCEntryStyleNeedsCommandByOption % % \begin{macro}{\TOCEntryStyleInitCode} -% \changes{v3.20}{2015/11/19}{neu} +% \changes{v3.20}{2015/11/19}{neu} % \begin{macro}{\TOCEntryStyleStartInitCode} -% \changes{v3.20}{2015/11/25}{neu} -% Führt Befehle aus, bevor ein Verzeichnisbefehl in diesem Stil definiert wird +% \changes{v3.20}{2015/11/25}{neu} +% Führt Befehle aus, bevor ein Verzeichnisbefehl in diesem Stil definiert wird % und noch bevor die \emph{needs}-Liste abgearbeitet wird. % Argumente sind: % \begin{description} -% \item[\marg{Stil}:] Der Stil \meta{string} für den die Initialisierung +% \item[\marg{Stil}:] Der Stil \meta{string} für den die Initialisierung % erfolgen soll. -% \item[\marg{Code}:] Wird zwecks Initialisierung ausgeführt. Innerhalb dieses +% \item[\marg{Code}:] Wird zwecks Initialisierung ausgeführt. Innerhalb dieses % Codes ist \texttt{\#1} der Name der Verzeichnisebene. % \end{description} % \begin{macrocode} @@ -782,16 +1035,31 @@ }% } % \end{macrocode} -% \end{macro}^^A \TOCEntryStyleStartInitCode -% \end{macro}^^A \TOCEntryStyleInitCode +% \end{macro}%^^A \TOCEntryStyleStartInitCode +% \end{macro}%^^A \TOCEntryStyleInitCode % \begin{macro}{\@ExecuteTOCEntryStyleInitCode} -% \changes{v3.20}{2015/12/04}{neu (intern)} -% Führt den Init-Code eines Stils aus. Das erste Argument ist der Name des -% Stils, das zweite der Name der Verzeichnisebene. Diesen erhält die -% Init-Anweisung außerdem als Argument. +% \changes{v3.20}{2015/12/04}{neu (intern)} +% Führt den Init-Code eines Stils aus. Das erste Argument ist der Name des +% Stils, das zweite der Name der Verzeichnisebene. Diesen erhält die +% Init-Anweisung außerdem als Argument. % \begin{macrocode} \newcommand*{\@ExecuteTOCEntryStyleInitCode}[2]{% \let\scr@dte@doopts\@empty +% \end{macrocode} +% \changes{v3.27}{2019/10/02}{Initialisierung von +% \cs{scr@dte@\meta{Stil}@init}}%^^A +% Weil die Festlegung, welche Optionen bzw. welche Makros für einen Stil +% benötigt werden über die Deklaration der Optionen stattfindet und diese +% Deklaration nicht etwa bei der Festlegung des Stils sondern bei der +% Zuweisung des Stils an einen Eintrag erfolgt, muss hier auch die do-Liste +% dieser Information gelöscht werden. Anderenfalls würde sie über alle +% Einträge desselben Stils ständig anwachsen und damit diverse Einträge +% mehrfach enthalten. Vermutlich wäre es besser, hier tatsächlich eine Liste +% je Eintrag statt eine je Stil zu erzeugen, aber so ist es eben nicht. Also +% wird hier immer wieder die gleiche Liste neu aufgebaut und muss deshalb zu +% Beginn zurückgesetzt werden. +% \begin{macrocode} + \expandafter\let\csname scr@dte@#1@needs\endcsname\relax \scr@ifundefinedorrelax{scr@dte@#1@init}{}{% \def\DefineTOCEntryBooleanOption{\@DefineTOCEntryBooleanOption{#1}}% \def\DefineTOCEntryCommandOption{\@DefineTOCEntryCommandOption{#1}}% @@ -819,24 +1087,24 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \ExecuteTOCEntryStyleInitCode +% \end{macro}%^^A \ExecuteTOCEntryStyleInitCode % % \begin{macro}{\DeclareTOCStyleEntry} -% \changes{v3.20}{2015/11/13}{neu} +% \changes{v3.20}{2015/11/13}{neu} % Diese Anweisung definiert einen Verzeichniseintragsbefehl. Dabei wird auch -% geprüft, ob all benötigten Befehle definiert sind. Falls das nicht der Fall +% geprüft, ob all benötigten Befehle definiert sind. Falls das nicht der Fall % ist, wird der Verzeichniseintragsbefehl nicht definiert, sondern ein Fehler -% gemeldet. Für die Definition werden folgende Argumente verwendet. +% gemeldet. Für die Definition werden folgende Argumente verwendet. % \begin{description} -% \item[\oarg{Optionen}:] Komma separierte Liste von Optionen für die +% \item[\oarg{Optionen}:] Komma separierte Liste von Optionen für die % Definition des Eintrags. % \item[\marg{Stil}:] Der Stil \meta{string}, in dem der Verzeichniseintrag % sein soll. % \item[\marg{Gliederungsebene}:] Der Name \meta{string} der Gliederungsebene -% für die ein Verzeichniseintrag definiert werden soll. +% für die ein Verzeichniseintrag definiert werden soll. % \end{description} -% Es wird außerdem eine Anweisung \cs{scr@dte@def@l@\meta{Stil}} benötigt, -% über die dann die eigentliche Definition der Eintragsanweisung +% Es wird außerdem eine Anweisung \cs{scr@dte@def@l@\meta{Stil}} benötigt, +% über die dann die eigentliche Definition der Eintragsanweisung % erfolgt. Diese hat genau ein Argument: \meta{Gliederungsebene}. % \begin{macrocode} %<*body> @@ -893,14 +1161,26 @@ \endgroup \if@tempswa \@nameuse{scr@dte@def@l@#2}{#3}% +% \end{macrocode} +% \changes{v3.27}{2019/10/02}{macro name prefix for style information +% changed}%^^A +% Note: Before \KOMAScript~3.27 the style name of an entry was stored in +% \cs{scr@dte@\meta{level name}@style}. But this war wrong, because the prefix +% \texttt{scr@dte} is used for attributes of the style (while declaring an +% entry), but the style is an attribute of the entry. So usage of the prefix +% \texttt{scr@tso} would be much better. This means usage of +% \cs{scr@dte@\meta{level name}@style} is deprecated and should be replaced by +% \cs{scr@tso@\meta{level name}@style}. +% \begin{macrocode} \expandafter\edef\csname scr@dte@#3@style\endcsname{#2}% + \expandafter\edef\csname scr@tso@#3@style\endcsname{#2}% % \end{macrocode} -% \changes{v3.21}{2016/06/09}{\cs{toclevel@\emph{ebene}} wird für -% \textsf{hyperref} neu gesetzt}^^A +% \changes{v3.21}{2016/06/09}{\cs{toclevel@\emph{ebene}} wird für +% \textsf{hyperref} neu gesetzt}%^^A % Da verschiedene Pakete davon ausgehen, dass die Ebene % \textsf{hyperref}-kompatibel gespeichert ist, setzen wir die hier -% zusätzlich. Das \textsf{hyperref} die Einstellungen ggf. überschreibt, -% machen wir das in der Dokumentpräambel auch mehrfach. +% zusätzlich. Das \textsf{hyperref} die Einstellungen ggf. überschreibt, +% machen wir das in der Dokumentpräambel auch mehrfach. % \begin{macrocode} \expandafter\let\csname toclevel@#3\expandafter\endcsname \csname #3tocdepth\endcsname @@ -920,10 +1200,10 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \DeclareTOCStyleEntry +% \end{macro}%^^A \DeclareTOCStyleEntry % % \begin{macro}{\DeclareTOCStyleEntries} -% \changes{v3.26}{2018/08/27}{new}^^A +% \changes{v3.26}{2018/08/27}{new}%^^A % Use \cs{DeclareTOCStyleEntry} to define a list of entries, all with the same % options and style. % \begin{macrocode} @@ -946,26 +1226,26 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \DeclareTOCStyleEntries +% \end{macro}%^^A \DeclareTOCStyleEntries % % \begin{macro}{\DeclareTOCEntryStyle} -% \changes{v3.20}{2015/11/17}{neu} +% \changes{v3.20}{2015/11/17}{neu} % \begin{macro}{\@DeclareTOCEntryStyle} -% \changes{v3.20}{2015/11/17}{neu (intern)} -% Über diese Anweisung wir ein neuer Stil für TOC-Einträge definiert. Ein Stil +% \changes{v3.20}{2015/11/17}{neu (intern)} +% Ãœber diese Anweisung wir ein neuer Stil für TOC-Einträge definiert. Ein Stil % besteht aus: % \begin{description} % \item[\marg{Stil}:] Der Stil \meta{string}, der definiert werden soll. % \item[\oarg{Initialisierungscode}:] Dieser Code wird bei der Definition -% eines Verzeichnisbefehls ausgeführt und enthält beispielsweise +% eines Verzeichnisbefehls ausgeführt und enthält beispielsweise % Optionendeklarationen. Es ist zu beachten, dass dieser Code ggf. auch -% mehrfach ausgeführt werden kann! -% \item[\marg{Code}:] Der Code, der ausgeführt wird, wenn ein +% mehrfach ausgeführt werden kann! +% \item[\marg{Code}:] Der Code, der ausgeführt wird, wenn ein % Verzeichniseintrag ausgegeben werden soll. % \end{description} -% Unabhängig davon, ob eine \meta{Optionendeklaration} angegeben ist oder -% nicht, wird immer eine Option \texttt{level} definiert, über die die -% Verzeichnisebene einen nummerischen Wert erhält. +% Unabhängig davon, ob eine \meta{Optionendeklaration} angegeben ist oder +% nicht, wird immer eine Option \texttt{level} definiert, über die die +% Verzeichnisebene einen nummerischen Wert erhält. % \begin{macrocode} %<*body> \newcommand*{\DeclareTOCEntryStyle}[1]{% @@ -989,50 +1269,50 @@ } %</body> % \end{macrocode} -% \end{macro}^^A \@DeclareTOCEntryStyle -% \end{macro}^^A \DeclareTOCEntryStyle +% \end{macro}%^^A \@DeclareTOCEntryStyle +% \end{macro}%^^A \DeclareTOCEntryStyle % % \begin{macro}{\TOC@EntryStartHook} -% \changes{v3.20}{2016/01/12}{neu (intern)} -% Bei jedem Eintrag, der über einen Eintragsstil von \KOMAScript{} definiert -% ist, kann vor dem jeweiligen Eintrag über einen Haken eine Reihe -% von Anweisungen ausgeführt werden. Innerhalb dieser Anweisungen ist -% \texttt{\#1} der Name der Gliederungsebene. In der Regel dürfen diese -% Anweisungen keinerlei Ausgaben tätigen und weder \cs{lastpenalty} noch -% \cs{lastskip} verändern. Der Anwender ist dafür selbst verantwortlich! Weil -% diese Einschränkung jedoch etwas kritisch ist und der Aufruf ohnehin ein -% \cs{makeatletter} benötigt, wird nur der Haken definiert aber keine -% Anweisung, um diesen zu ändern oder zu erweitern. +% \changes{v3.20}{2016/01/12}{neu (intern)} +% Bei jedem Eintrag, der über einen Eintragsstil von \KOMAScript{} definiert +% ist, kann vor dem jeweiligen Eintrag über einen Haken eine Reihe +% von Anweisungen ausgeführt werden. Innerhalb dieser Anweisungen ist +% \texttt{\#1} der Name der Gliederungsebene. In der Regel dürfen diese +% Anweisungen keinerlei Ausgaben tätigen und weder \cs{lastpenalty} noch +% \cs{lastskip} verändern. Der Anwender ist dafür selbst verantwortlich! Weil +% diese Einschränkung jedoch etwas kritisch ist und der Aufruf ohnehin ein +% \cs{makeatletter} benötigt, wird nur der Haken definiert aber keine +% Anweisung, um diesen zu ändern oder zu erweitern. % \begin{macrocode} %<*body> \newcommand*{\TOC@EntryStartHook}[1]{} %</body> % \end{macrocode} -% \end{macro}^^A \TOC@EntryStartHook +% \end{macro}%^^A \TOC@EntryStartHook % % \begin{macro}{\TOC@EntryEndHook} -% \changes{v3.20}{2016/01/12}{neu (intern)} -% Bei jedem Eintrag, der über einen Eintragsstil von \KOMAScript{} definiert -% ist, kann nach dem jeweiligen Eintrag über einen Haken eine Reihe -% von Anweisungen ausgeführt werden. Innerhalb dieser Anweisungen ist -% \texttt{\#1} der Name der Gliederungsebene. In der Regel dürfen diese -% Anweisungen keinerlei Ausgaben tätigen und weder \cs{lastpenalty} noch -% \cs{lastskip} verändern. Der Anwender ist dafür selbst verantwortlich! Weil -% diese Einschränkung jedoch etwas kritisch ist und der Aufruf ohnehin ein -% \cs{makeatletter} benötigt, wird nur der Haken definiert aber keine -% Anweisung, um diesen zu ändern oder zu erweitern. +% \changes{v3.20}{2016/01/12}{neu (intern)} +% Bei jedem Eintrag, der über einen Eintragsstil von \KOMAScript{} definiert +% ist, kann nach dem jeweiligen Eintrag über einen Haken eine Reihe +% von Anweisungen ausgeführt werden. Innerhalb dieser Anweisungen ist +% \texttt{\#1} der Name der Gliederungsebene. In der Regel dürfen diese +% Anweisungen keinerlei Ausgaben tätigen und weder \cs{lastpenalty} noch +% \cs{lastskip} verändern. Der Anwender ist dafür selbst verantwortlich! Weil +% diese Einschränkung jedoch etwas kritisch ist und der Aufruf ohnehin ein +% \cs{makeatletter} benötigt, wird nur der Haken definiert aber keine +% Anweisung, um diesen zu ändern oder zu erweitern. % \begin{macrocode} %<*body> \newcommand*{\TOC@EntryEndHook}[1]{} %</body> % \end{macrocode} -% \end{macro}^^A \TOC@EntryEndHook +% \end{macro}%^^A \TOC@EntryEndHook % % \begin{macro}{\CloneTOCEntryStyle} -% \changes{v3.20}{2015/11/25}{neu} +% \changes{v3.20}{2015/11/25}{neu} % Diese Anweisung dupliziert einen Stil samt seiner Optionen und -% Befehle. Anschließend kann man ihn beispielsweise verändern. Das erste -% Argument ist der Name des ursprünglichen Stils, das zweite der neue Name. +% Befehle. Anschließend kann man ihn beispielsweise verändern. Das erste +% Argument ist der Name des ursprünglichen Stils, das zweite der neue Name. % \begin{macrocode} %<*body> \newcommand*{\CloneTOCEntryStyle}[2]{% @@ -1057,19 +1337,46 @@ % % Hier wird quasi an Beispielen gezeigt, wie man Verzeichniseintragsstile % definieren kann. Einige dieser Stile sind sehr grundlegend. Andere sind -% stellen Erweiterungen der grundlegenden Stile dar. Die Stile können über -% mehrere \texttt{docstrip}-Durchgänge einzeln in den Quelltext gelangen. +% stellen Erweiterungen der grundlegenden Stile dar. Die Stile können über +% mehrere \texttt{docstrip}-Durchgänge einzeln in den Quelltext gelangen. +% +% \begin{macro}{\@pnumwidth} +% \changes{v3.27}{2019/05/11}{aus den Klassen in das Paket verschoben}%^^A +% \begin{macro}{\@tocrmarg} +% \changes{v3.27}{2019/05/11}{aus den Klassen in das Paket verschoben}%^^A +% \begin{macro}{\@dotsep} +% \changes{v3.27}{2019/05/11}{aus den Klassen in das Paket verschoben}%^^A +% Einige Makros für die Formatierung der Verzeichniseinträge: +% \begin{description} +% \item[\cs{@pnumwidth}] ist der Platz für die Seitenzahl. +% \item[\cs{@tocrmarg}] ist der rechte Rand bei mehrzeiligen +% Verzeichniseinträgen. Dieser wird hier größer als \cs{@pnumwidth} +% gewählt. +% \item[\cs{\@dotsep}] ist der Abstand zwischen den einzelnen +% Punkten. +% \end{description} +% \begin{macrocode} +%<*body> +\providecommand*\@pnumwidth{1.55em} +\providecommand*\@tocrmarg {2.55em} +\providecommand*\@dotsep {4.5} +%</body> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% % % \iffalse %<*style> % \fi % % \begin{macro}{\scr@dte@def@l@gobble} -% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil -% \texttt{gobble}}^^A +% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil +% \texttt{gobble}}%^^A % Der aller einfachste Verzeichniseintragsstil ist \texttt{gobble}. Er nimmt -% die beiden Argumente für den Verzeichniseintrag und die Seitenzahl und -% vergisst sie unabhängig von der Ebene des Eintrags einfach. Daher benötigt +% die beiden Argumente für den Verzeichniseintrag und die Seitenzahl und +% vergisst sie unabhängig von der Ebene des Eintrags einfach. Daher benötigt % dieser Stil auch keinerlei Optionen oder Initialisierung. % \begin{macrocode} %<*gobble> @@ -1077,42 +1384,51 @@ \DeclareTOCEntryStyle{gobble}{}% %</gobble> % \end{macrocode} -% \end{macro}^^A \scr@dte@def@l@gobble +% \end{macro}%^^A \scr@dte@def@l@gobble % % \begin{macro}{\scr@dte@def@l@dottedtocline} -% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil -% \texttt{dottedtocline}}^^A +% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil +% \texttt{dottedtocline}}%^^A % Der einfachste echte Verzeichniseintragsstil ist % \texttt{dottedtocline}. Dieser verwendet einfach nur die -% \LaTeX-Kern-Anweisung \cs{dottedtocline}. Für \KOMAScript{} selbst sollte +% \LaTeX-Kern-Anweisung \cs{dottedtocline}. Für \KOMAScript{} selbst sollte % man dieses Stil nicht verwenden. Man kann ihn aber beispielsweise mit den -% Standardklassen verwenden, wenn man kompatibel bleiben will. Dieser benötigt -% jedoch bereits Angaben bezüglich der Nummernbreite und des +% Standardklassen verwenden, wenn man kompatibel bleiben will. Dieser benötigt +% jedoch bereits Angaben bezüglich der Nummernbreite und des % Eintragseinzugs. Der ohnehin immer definierte Level wird ebenfalls % ausgewertet. % \begin{macro}{\scr@dte@def@l@undottedtocline} -% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil -% \texttt{undottedtocline}}^^A +% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil +% \texttt{undottedtocline}}%^^A % Im Unterschied dazu entspricht der Verzeichniseintragsstil % \texttt{undottedtocline} dem der \texttt{chapter}-Ebene der % Standardklassen. Im Unterschied zu diesen wird jedoch ein Eintragseinzug -% unterstützt. +% unterstützt. % \begin{macro}{\scr@dte@def@l@largetocline} -% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil -% \texttt{largetocline}}^^A +% \changes{v3.20}{2015/11/20}{neuer Verzeichniseintragsstil +% \texttt{largetocline}}%^^A % Im Unterschied dazu entspricht der Verzeichniseintragsstil % \texttt{largetocline} dem der \texttt{part}-Ebene der Standardklassen. Im -% Unterschied zu diesen wird jedoch ein Eintragseinzug unterstützt. Eine -% Nummernbreite gibt es hingegen nicht. Stattdessen werden die Einträge nicht -% hängend gesetzt. +% Unterschied zu diesen wird jedoch ein Eintragseinzug unterstützt. Eine +% Nummernbreite gibt es hingegen nicht. Stattdessen werden die Einträge nicht +% hängend gesetzt. % \begin{macro}{\scr@dte@def@l@tocline} -% \changes{v3.20}{2015/11/22}{neuer Verzeichniseintragsstil -% \texttt{tocline}}^^A -% Das hingegen wird der hochflexible Stil für Verzeichniseinträge, die aus -% einer oder mehreren Zeilen bestehen. Dieser wird später über diverse +% \changes{v3.20}{2015/11/22}{neuer Verzeichniseintragsstil +% \texttt{tocline}}%^^A +% Das hingegen wird der hochflexible Stil für Verzeichniseinträge, die aus +% einer oder mehreren Zeilen bestehen. Dieser wird später über diverse % Hilfsmakros definiert. -% \begin{macrocode} -%<*dottedtocline|undottedtocline|largetocline|tocline> +% \begin{macro}{\scr@dte@def@l@toctext} +% \changes{3.27}{2019/07/08}{neuer Verzeichniseintragsstil +% \texttt{toctext}}%^^A +% Während alle bisherigen Stile Zeilen oder eigentlich Absätze im Verzeichnis +% erstellen, soll dieser Stil lediglich Text innerhalb eines Absatzes +% erzeugen. Die einzelnen Einträge werden also hintereinander +% ausgegeben. Dabei können auch Zeilenumbrüche innerhalb eines Eintrags +% vorkommen. Dieser Stil teilt einige, wenige Optionen mit dem Stil +% \texttt{tocline}. Die Stile haben aber auch eigene Optionen. +% \begin{macrocode} +%<*dottedtocline|undottedtocline|largetocline|tocline|toctext> %<*dottedtocline> %%% (run: style,dottedtocline) \DeclareTOCEntryStyle{dottedtocline}[{% @@ -1125,6 +1441,10 @@ %%% (run: style, largetocline) \DeclareTOCEntryStyle{largetocline}[{% %</largetocline> +%<*toctext> +%%% (run: style,toctext) +\DeclareTOCEntryStyle{toctext}[{% +%</toctext> %<*tocline> %%% (run: style,tocline) \DeclareTOCEntryStyle{tocline}[{% @@ -1134,30 +1454,75 @@ {scr@tso@}{@breakafternumber}{line break after number flag}% \DefineTOCEntryIfOption{dynnumwidth}% {scr@tso@}{@dynnumwidth}{dynamic number width flag}% +%</tocline> +%<*tocline|toctext> \DefineTOCEntryCommandOption{entryformat}% {scr@tso@}{@entryformat}[1]{entry format}% \DefineTOCEntryCommandOption{entrynumberformat}% {scr@tso@}{@numberformat}[1]{entry number format}% +%</tocline|toctext> +%<*tocline> \DefineTOCEntryCommandOption{linefill}[\TOCLineLeaderFill]% {scr@tso@}{@linefill}{filling between text and page number}% +%</tocline> +%<*toctext> + \DefineTOCEntryCommandOption{prepagenumber}% + {scr@tso@}{@prepagenumber}{separator between text and page number}% +%</toctext> +%<*tocline|toctext> \DefineTOCEntryLengthOption{numsep}% {scr@tso@}{@numsep}{entry number separation}% +%</tocline|toctext> +%<*tocline> \DefineTOCEntryCommandOption{onstarthigherlevel}% {scr@tso@}{@LastTOCLevelWasLower}{start higher level entry hook}% \DefineTOCEntryCommandOption{onstartlowerlevel}% {scr@tso@}{@LastTOCLevelWasHigher}{start lower level entry hook}% \DefineTOCEntryCommandOption{onstartsamelevel}% {scr@tso@}{@LastTOCLevelWasSame}{start same level entry hook}% +%</tocline> +%<*toctext> + \DefineTOCEntryCommandOption{onstartfirstentry}% + {scr@tso@}{@onstartfirstentry}{output at start of paragraph}% + \DefineTOCEntryCommandOption{onstartentry}% + {scr@tso@}{@onstartentry}{output at start of all entries but the first}% + \DefineTOCEntryCommandOption{onendlastentry}% + {scr@tso@}{@onendlastentry}{output at end of paragraph}% + \DefineTOCEntryCommandOption{afterpar}% + {scr@tso@}{@afterpar}{settings after end of paragraph}% + \DefineTOCEntryCommandOption{onendentry}% + {scr@tso@}{@onendentry}{output at end of all entries but the last}% +%</toctext> +%<*tocline> \DefineTOCEntryCommandOption{pagenumberbox}% {scr@tso@}{@pagenumberbox}[1]{page number box}% +%</tocline> +%<*tocline|toctext> \DefineTOCEntryCommandOption{pagenumberformat}% {scr@tso@}{@pagenumberformat}[1]{page number format}% +%</tocline|toctext> % \end{macrocode} -% \changes{v3.21}{2016/06/06}{neue Option \texttt{raggedentrytext}}^^A -% Die Option \texttt{raggedentrytext} muss leider etwas umständlich definiert -% werden, damit sie mit der früheren Definition eines Makros +% \changes{v3.27}{2019/05/24}{neue Option \texttt{pagenumberwidth}}%^^A +% \changes{v3.27}{2019/05/24}{neue Option \texttt{rightindent}}%^^A +% Die Optionen \texttt{pagenumberwidth} und \texttt{rightindent} ersetzen +% innerhalb des Stils \texttt{tocline} die Makros \cs{@pnumwidth} und +% \cs{@tocrmarg}. +% \begin{macrocode} +%<*tocline> + \DefineTOCEntryLengthOption{pagenumberwidth}% + {scr@tso@}{@pagenumberwidth}{width of page number box}% +%</tocline> +%<*tocline|toctext> + \DefineTOCEntryLengthOption{rightindent}% + {scr@tso@}{@rightindent}{entry's text right indent}% +%</tocline|toctext> +% \end{macrocode} +% \changes{v3.21}{2016/06/06}{neue Option \texttt{raggedentrytext}}%^^A +% Die Option \texttt{raggedentrytext} muss leider etwas umständlich definiert +% werden, damit sie mit der früheren Definition eines Makros % \cs{raggedchapterentry} halbwegs kompatibel ist. % \begin{macrocode} +%<*tocline> \DefineTOCEntryOption{raggedentrytext}[true]{% \FamilySetBool{KOMAarg}{raggedentrytext}{@tempswa}{##1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed @@ -1173,6 +1538,10 @@ \DefineTOCEntryIfOption{raggedpagenumber}% {scr@tso@}{@raggedpage}{page number ragged flag}% %</tocline> +%<*toctext> + \DefineTOCEntryIfOption{raggedright}% + {scr@tso@}{@raggedright}{use raggedright for the whole paragraph}% +%</toctext> \DefineTOCEntryLengthOption{indent}% {scr@tso@}{@indent}{entry indent}% %<*dottedtocline|undottedtocline|tocline> @@ -1181,11 +1550,11 @@ %</dottedtocline|undottedtocline|tocline> % \end{macrocode} % Die Ebene, \texttt{level} bzw. \cs{\dots tocdepth}, kann auf zweierlei Arten -% automatisch bestimmt werden. Zum einen wird für Sub-Ebenen die Elternebene -% um eins erhöht verwendet, falls die Elternebene bereits definiert ist. -% \changes{v3.21}{2016/06/09}{\cs{the} eingefügt}^^A +% automatisch bestimmt werden. Zum einen wird für Sub-Ebenen die Elternebene +% um eins erhöht verwendet, falls die Elternebene bereits definiert ist. +% \changes{v3.21}{2016/06/09}{\cs{the} eingefügt}%^^A % \begin{macrocode} -%<*tocline> +%<*tocline|toctext> \scr@ifundefinedorrelax{#1tocdepth}{% \ifstrstart{#1}{sub}{% \scr@ifundefinedorrelax{\scr@dte@nosub{#1}tocdepth}{}{% @@ -1195,9 +1564,9 @@ }% }{}% }{}% -%</tocline> +%</tocline|toctext> % \end{macrocode} -% War der Weg über Elternebenen nicht erfolgreich oder wurde er nicht +% War der Weg über Elternebenen nicht erfolgreich oder wurde er nicht % verwendet, so werden Standardwerte angenommen, wie sie bei den % Standardklassen und bei \KOMAScript{} zutreffen. % \begin{macrocode} @@ -1212,8 +1581,8 @@ \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{% \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{% % \end{macrocode} -% Für unbekannte Anweisungen wird stattdessen eine eventuell vorhandene -% Gliederungsebene auch als Verzeichnisebene übernommen: +% Für unbekannte Anweisungen wird stattdessen eine eventuell vorhandene +% Gliederungsebene auch als Verzeichnisebene übernommen: % \begin{macrocode} \expandafter\let\csname #1tocdepth\expandafter\endcsname \csname #1numdepth\endcsname @@ -1230,7 +1599,7 @@ % \end{macrocode} % Der Einzug kann wie der Level aus der Elternebene gebildet werden % \begin{macrocode} -%<*tocline> +%<*tocline|toctext> \scr@ifundefinedorrelax{scr@tso@#1@indent}{% \@ifundefined{scr@#1@tocindent}{% \ifstrstart{#1}{sub}{% @@ -1258,15 +1627,50 @@ }{}% }{% % \end{macrocode} -% Kompatibilität mit älteren \KOMAScript-Klassen. +% Kompatibilität mit älteren \KOMAScript-Klassen. % \begin{macrocode} \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}% }% }{}% +%</tocline|toctext> +% \end{macrocode} +% Die Breite der Seitenzahlbox und der rechte Einzug können ebenfalls aus den +% Elternelementen gebildet werden, allerdings muss hier nur der Wert +% übernommen werden. +% \begin{macrocode} +%<*tocline> + \scr@ifundefinedorrelax{scr@tso@#1@pagenumberwidth}{% + \ifstrstart{#1}{sub}{% + \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@pagenumberwidth}{% + \@namedef{scr@tso@#1@pagenumberwidth}{\@pnumwidth}% + }{% + \expandafter\let + \csname scr@tso@#1@pagenumberwidth\expandafter\endcsname + \csname scr@tso@\scr@dte@nosub{#1}@pagenumberwidth\endcsname + }% + }{% + \@namedef{scr@tso@#1@pagenumberwidth}{\@pnumwidth}% + }% + }{}% %</tocline> +%<*tocline|toctext> + \scr@ifundefinedorrelax{scr@tso@#1@rightindent}{% + \ifstrstart{#1}{sub}{% + \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@rightindent}{% + \@namedef{scr@tso@#1@rightindent}{\@tocrmarg}% + }{% + \expandafter\let + \csname scr@tso@#1@rightindent\expandafter\endcsname + \csname scr@tso@\scr@dte@nosub{#1}@rightindent\endcsname + }% + }{% + \@namedef{scr@tso@#1@rightindent}{\@tocrmarg}% + }% + }{}% +%</tocline|toctext> % \end{macrocode} % War das nicht erfolgreich oder wird es nicht genutzt, so werden -% Standardwerte verwendet, die sowohl für die Standardklasse als auch die +% Standardwerte verwendet, die sowohl für die Standardklasse als auch die % \KOMAScript-Klassen zutreffend sind. % \begin{macrocode} \@ifundefined{scr@tso@#1@indent}{% @@ -1278,7 +1682,7 @@ \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{% \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{% % \end{macrocode} -% Ab hier hängt es nun davon ab, ob es eine Kapitel-Ebene gibt oder +% Ab hier hängt es nun davon ab, ob es eine Kapitel-Ebene gibt oder % nicht. Dazu sollte die Kapitelebene bereits definiert sein! % \begin{macrocode} \scr@ifundefinedorrelax{l@chapter}{% @@ -1294,7 +1698,7 @@ \@namedef{scr@tso@#1@indent}{10em}% }{% % \end{macrocode} -% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden! +% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden! % \begin{macrocode} }% }% @@ -1314,7 +1718,7 @@ \@namedef{scr@tso@#1@indent}{12em}% }{% % \end{macrocode} -% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden! +% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden! % \begin{macrocode} }% }% @@ -1329,14 +1733,14 @@ %<*dottedtocline|undottedtocline|largetocline> }{% % \end{macrocode} -% Kompatibilität mit älteren \KOMAScript-Klassen. +% Kompatibilität mit älteren \KOMAScript-Klassen. % \begin{macrocode} \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}% }% %</dottedtocline|undottedtocline|largetocline> }{}% % \end{macrocode} -% Für die Nummernbreite gibt es ebenfalls beide Wege. +% Für die Nummernbreite gibt es ebenfalls beide Wege. % \begin{macrocode} %<*dottedtocline|undottedtocline|tocline> %<*tocline> @@ -1364,7 +1768,7 @@ \ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% % \end{macrocode} -% Ab hier hängt es nun davon ab, ob es eine Kapitel-Ebene gibt oder +% Ab hier hängt es nun davon ab, ob es eine Kapitel-Ebene gibt oder % nicht. Dazu sollte die Kapitelebene bereits definiert sein! % \begin{macrocode} \scr@ifundefinedorrelax{chapter}{% @@ -1380,7 +1784,7 @@ \@namedef{scr@tso@#1@numwidth}{5m}% }{% % \end{macrocode} -% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden! +% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden! % \begin{macrocode} }% }% @@ -1400,7 +1804,7 @@ \@namedef{scr@tso@#1@numwidth}{6em}% }{% % \end{macrocode} -% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden! +% Für unbekannte Ebenen muss der Wert selbst per Option gesetzt werden! % \begin{macrocode} }% }% @@ -1414,7 +1818,7 @@ %<*dottedtocline|undottedtocline> }{% % \end{macrocode} -% Kompatibilität mit älteren \KOMAScript-Klassen. +% Kompatibilität mit älteren \KOMAScript-Klassen. % \begin{macrocode} \@namedef{scr@tso@#1@numwidth}{\@nameuse{scr@#1@tocnumwidth}}% }% @@ -1423,8 +1827,8 @@ %</dottedtocline|undottedtocline|tocline> %<*tocline> % \end{macrocode} -% Die Standardeinstellungen für die drei Penalty-Hooks sind einfach die -% Standardanweisungen dafür. Dabei ist das so definiert, dass Änderungen an +% Die Standardeinstellungen für die drei Penalty-Hooks sind einfach die +% Standardanweisungen dafür. Dabei ist das so definiert, dass Änderungen an % den Standardanweisungen direkte Auswirkungen haben. % \begin{macrocode} \expandafter\providecommand% @@ -1434,9 +1838,9 @@ \expandafter\providecommand% \csname scr@tso@#1@LastTOCLevelWasHigher\endcsname{\LastTOCLevelWasHigher}% % \end{macrocode} -% Die Voreinstellung für den vertikalen Abstand ist Null mit ein klein wenig -% Leim, um den Seitenumbruch zu optimieren. Das genügt bei einer normalen -% A4-Seite aber gerade mal für den Ausgleich einer Zeile. Bei den höheren +% Die Voreinstellung für den vertikalen Abstand ist Null mit ein klein wenig +% Leim, um den Seitenumbruch zu optimieren. Das genügt bei einer normalen +% A4-Seite aber gerade mal für den Ausgleich einer Zeile. Bei den höheren % Ebenen werden stattdessen die Voreinstellungen der Standardklassen % verwendet. % \begin{macrocode} @@ -1459,7 +1863,7 @@ }{}% % \end{macrocode} % Es ist gut zu wissen, wie breit die breiteste Nummer ist, damit wir -% ggf. prüfen können, ob entsprechende Bedingungen eingehalten werden. +% ggf. prüfen können, ob entsprechende Bedingungen eingehalten werden. % \begin{macrocode} \@ifundefined{scr@dte@#1@maxnumwidth}{% \expandafter\newlength\csname scr@dte@#1@maxnumwidth\endcsname @@ -1467,20 +1871,42 @@ }{}% \providecommand*{\scr@dte@donumwidth}{}% \g@addto@macro{\scr@dte@donumwidth}{\do{#1}}% +%</tocline> % \end{macrocode} % Eine dieser Bedingungen ist, dass ein Mindestabstand zwischen Nummer und % Text eingehalten wird. % \begin{macrocode} +%<*tocline|toctext> \expandafter\providecommand\expandafter*% \csname scr@tso@#1@numsep\endcsname{.4em}% +%</tocline|toctext> % \end{macrocode} -% Jede Ebene kann ihre eigene Formatierungsanweisung für die Nummer haben. -% Jede Ebene kann auch ihre eigene Formatierungsanweisung für Nummer und Text -% haben. Für \texttt{part} wird hier die Voreinstellung der Standardklassen +% Beim Absatzstil gibt es die Möglichkeit, am Anfang des Absatzes, zwischen +% den Einträgen und am Ende der Einträge und nach dem letzten Eintrag einen +% speziellen Text ausgeben zu lassen. +% \begin{macrocode} +%<*toctext> + \expandafter\providecommand% + \csname scr@tso@#1@onstartfirstentry\endcsname{}% + \expandafter\providecommand% + \csname scr@tso@#1@onstartentry\endcsname{}% + \expandafter\providecommand% + \csname scr@tso@#1@onendlastentry\endcsname{}% + \expandafter\providecommand% + \csname scr@tso@#1@onendentry\endcsname{\quad}% + \expandafter\providecommand% + \csname scr@tso@#1@afterpar\endcsname{}% +%</toctext> +% \end{macrocode} +% Jede Ebene kann ihre eigene Formatierungsanweisung für die Nummer haben. +% Jede Ebene kann auch ihre eigene Formatierungsanweisung für Nummer und Text +% haben. Für \texttt{part} wird hier die Voreinstellung der Standardklassen % verwendet. % \begin{macrocode} +%<*tocline|toctext> \expandafter\providecommand% \csname scr@tso@#1@numberformat\endcsname[1]{##1}% +%<*tocline> \ifstr{#1}{part}{% \expandafter\providecommand% \csname scr@tso@#1@entryformat\endcsname[1]{\large\bfseries ##1}% @@ -1495,22 +1921,27 @@ \csname scr@tso@#1@entryformat\endcsname[1]{\bfseries ##1}% }{}% }{}% +%</tocline> \expandafter\providecommand% \csname scr@tso@#1@entryformat\endcsname[1]{##1}% +%<*tocline> }% }% +%</tocline> +%</tocline|toctext> % \end{macrocode} % Nach der Nummer kann wahlweise ein Zeilenumbruch erfolgen, wobei in diesem -% Fall der Text wieder auf Höhe der Nummer und nicht erst danach -% erfolgt. Gesteuert wird das über einen Schalter. In der Voreinstellung +% Fall der Text wieder auf Höhe der Nummer und nicht erst danach +% erfolgt. Gesteuert wird das über einen Schalter. In der Voreinstellung % machen wird das nicht. % \begin{macrocode} +%<*tocline> \expandafter\providecommand \csname Ifscr@tso@#1@breakafternumber\endcsname[2]{##2}% % \end{macrocode} % Die Verbindung zwischen Ende des Eintrags und den Seitenzahlen erfolgt -% normalerweise mit Pünktchen. Das wird auch genau die Voreinstellung für die -% Option werden. In der Voreinstellung wird mit \cs{hfill} gefüllt. +% normalerweise mit Pünktchen. Das wird auch genau die Voreinstellung für die +% Option werden. In der Voreinstellung wird mit \cs{hfill} gefüllt. % \begin{macrocode} \@ifundefined{scr@tso@#1@linefill}{% \ifstr{#1}{part}{% @@ -1535,19 +1966,19 @@ % \begin{macrocode} \expandafter\providecommand\csname Ifscr@tso@#1@raggedpage\endcsname[2]{##2}% % \end{macrocode} -% Auch die Seitenzahl kann speziell formatiert werden, wenn das gewünscht ist. +% Auch die Seitenzahl kann speziell formatiert werden, wenn das gewünscht ist. % \begin{macrocode} \ifstr{#1}{part}{% % \end{macrocode} -% Für \texttt{part} normalerweise groß und fett: +% Für \texttt{part} normalerweise groß und fett: % \begin{macrocode} \expandafter\providecommand% \csname scr@tso@#1@pagenumberformat\endcsname[1]{\large\bfseries ##1}% }{% % \end{macrocode} -% \changes{v3.25}{2017/11/23}{Seitenzahlen für \texttt{chapter}-Einräge in der -% Voreinstellung fett}^^A -% Für \texttt{chapter} nur fett: +% \changes{v3.25}{2017/11/23}{Seitenzahlen für \texttt{chapter}-Einräge in der +% Voreinstellung fett}%^^A +% Für \texttt{chapter} nur fett: % \begin{macrocode} \ifstr{#1}{chapter}{% \expandafter\providecommand% @@ -1556,9 +1987,9 @@ \scr@ifundefinedorrelax{l@chapter}{% \ifstr{#1}{section}{% % \end{macrocode} -% \changes{v3.25}{2017/11/23}{Seitenzahlen für \texttt{section}-Einräge in der -% Voreinstellung unter Umständen fett}^^A -% Für \texttt{section} ggf. auch fett: +% \changes{v3.25}{2017/11/23}{Seitenzahlen für \texttt{section}-Einräge in der +% Voreinstellung unter Umständen fett}%^^A +% Für \texttt{section} ggf. auch fett: % \begin{macrocode} \expandafter\providecommand% \csname scr@tso@#1@pagenumberformat\endcsname[1]{\bfseries ##1}% @@ -1574,21 +2005,43 @@ }% % \end{macrocode} % Wobei die Seitenzahl normaleweise in eine Box fester Breite gesetzt wird. +% \changes{v3.27}{2019/10/02}{Breite der Seitenzahlbox verallgemeinert}%^^A % \begin{macrocode} \expandafter\providecommand% \csname scr@tso@#1@pagenumberbox\endcsname[1]{% - \hb@xt@\@pnumwidth{\hfil ##1}}% + \hb@xt@\@nameuse{scr@dte@pagenumberwidth}{\hfil ##1}}% \expandafter\providecommand\csname Ifscr@tso@#1@dynnumwidth\endcsname[2]{##2}% %</tocline> +% \end{macrocode} +% \changes{v3.27}{2019/07/08}{Initialisierung von \texttt{raggedentry}}%^^A +% \changes{v3.27}{2019/07/08}{Initialisierung von \texttt{prepagenumber}}%^^A +% Im Stil \texttt{toctext} muss außerdem initialisiert werden, ob der Eintrag +% im Flattersatz oder im Blocksatz gesetzt werden soll und was unmittelbar vor +% der Seitenzahl auszugeben ist (\texttt{linefill} wäre dafür eine unpassende +% Bezeichnung). +% \begin{macrocode} +%<*toctext> + \expandafter\providecommand% + \csname Ifscr@tso@#1@raggedright\endcsname[2]{##2}% + \expandafter\providecommand% + \csname scr@tso@#1@prepagenumber\endcsname{\nobreakspace}% +%</toctext> }]{% % \end{macrocode} +% \changes{v3.27}{2019/05/12}{Berücksichtigung von Verzeichniseigenschaft +% \texttt{noindent}}%^^A % Damit ist die Initialisierung abgeschlossen und wir kommen zur % Eintragsanweisung selbst: % \begin{macrocode} %<*dottedtocline> - \@dottedtocline{\@nameuse{#1tocdepth}}{\@nameuse{scr@tso@#1@indent}}% - {\@nameuse{scr@tso@#1@numwidth}}{##1}{##2}% -%</dottedtocline> + \iftocfeature{\@currext}{noindent}{% + \@dottedtocline{\@nameuse{#1tocdepth}}{\z@}% + {\@nameuse{scr@tso@#1@numwidth}}{##1}{##2}% + }{% + \@dottedtocline{\@nameuse{#1tocdepth}}{\@nameuse{scr@tso@#1@indent}}% + {\@nameuse{scr@tso@#1@numwidth}}{##1}{##2}% + }% +%</dottedtocline> %<*undottedtocline|largetocline> \ifnum \c@tocdepth >\numexpr \@nameuse{#1tocdepth}-\@ne\relax % \end{macrocode} @@ -1616,20 +2069,20 @@ \begingroup % \end{macrocode} % Es sei darauf hingewiesen, dass hier eigentlich zweimal \cs{@tocrmarg} -% statt \cs{@pnumwidth} verwendet werden müsste. Allerdings habe ich +% statt \cs{@pnumwidth} verwendet werden müsste. Allerdings habe ich % beschlossen, diesen schon vor Jahren gemeldeten Fehler aus -% Kompatibilitätsgründen vorerst von den Standardklassen zu übernehmen. +% Kompatibilitätsgründen vorerst von den Standardklassen zu übernehmen. % \begin{macrocode} \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth % \end{macrocode} -% Die Standardklassen fügen an dieser Stelle noch eine Gruppe ein, die dann -% leider vor dem abschließenden \cs{par} bereits beendet wird. Das führt -% natürlich zu falschen Zeilenabständen bei mehrzeiligen Einträgen. Ich habe -% lange überlegt, aber schließlich beschlossen, diesen Fehler nicht aus den -% Standardklassen zu übernehmen. Das war mir dann doch zu krass! Schlimmer -% noch, würde man den Fehler übernehmen, müsste man das Setzen von -% \cs{leftskip} abändern, weil natürlich auch das erst am Absatzende +% Die Standardklassen fügen an dieser Stelle noch eine Gruppe ein, die dann +% leider vor dem abschließenden \cs{par} bereits beendet wird. Das führt +% natürlich zu falschen Zeilenabständen bei mehrzeiligen Einträgen. Ich habe +% lange überlegt, aber schließlich beschlossen, diesen Fehler nicht aus den +% Standardklassen zu übernehmen. Das war mir dann doch zu krass! Schlimmer +% noch, würde man den Fehler übernehmen, müsste man das Setzen von +% \cs{leftskip} abändern, weil natürlich auch das erst am Absatzende % wirklich zur Geltung kommt. % \begin{macrocode} \leavevmode @@ -1637,25 +2090,29 @@ \bfseries % \end{macrocode} % Es sei darauf hingewiesen, dass hier eigentlich auch bei -% \texttt{largetocline} \cs{@tempdima} mit berücksichtigt werden -% müsste. Das geht nur deshalb nicht, weil bei den Standardklassen \cs{part} -% kein \cs{numberline} verwendet. Deshalb werden mehrzeilige Einträge auch -% nicht korrekt eingerückt. Auch das habe ich aus Kompatibilitätsgründen +% \texttt{largetocline} \cs{@tempdima} mit berücksichtigt werden +% müsste. Das geht nur deshalb nicht, weil bei den Standardklassen \cs{part} +% kein \cs{numberline} verwendet. Deshalb werden mehrzeilige Einträge auch +% nicht korrekt eingerückt. Auch das habe ich aus Kompatibilitätsgründen % beibehalten. % \begin{macrocode} %<undottedtocline> \advance\leftskip\@tempdima - \advance\leftskip\@nameuse{scr@tso@#1@indent}% + \iftocfeature{\@currext}{noindent}{% +%<undottedtocline> \hskip -\leftskip + }{% + \advance\leftskip\@nameuse{scr@tso@#1@indent}% %<*undottedtocline> - \hskip -\dimexpr \leftskip-\@nameuse{scr@tso@#1@indent}\relax + \hskip -\dimexpr \leftskip-\@nameuse{scr@tso@#1@indent}\relax %</undottedtocline> + }% ##1% %<undottedtocline> \nobreak % \end{macrocode} -% Hier schließlich ist \cs{@pnumwidth} aufgrund des vorherigen -% \cs{large} nicht mehr derselbe absolute Wert wie bei Einträgen ohne -% \cs{large}. Deshalb müsste eigentlich noch vor dem \cs{large} der Wert -% beispielsweise in eine Länge wie \cs{@tempdimb} übertragen und dann hier -% verwendet werden. Auch das habe ich aus Kompatibilitätsgründen übernommen. +% Hier schließlich ist \cs{@pnumwidth} aufgrund des vorherigen +% \cs{large} nicht mehr derselbe absolute Wert wie bei Einträgen ohne +% \cs{large}. Deshalb müsste eigentlich noch vor dem \cs{large} der Wert +% beispielsweise in eine Länge wie \cs{@tempdimb} übertragen und dann hier +% verwendet werden. Auch das habe ich aus Kompatibilitätsgründen übernommen. % \begin{macrocode} \hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}% \par @@ -1674,16 +2131,20 @@ %<*tocline> \scr@dte@tocline{#1}{##1}{##2}% %</tocline> +%<*toctext> + \scr@dte@toctext{#1}{##1}{##2}% +%</toctext> } -%</dottedtocline|undottedtocline|largetocline|tocline> +%</dottedtocline|undottedtocline|largetocline|tocline|toctext> % \end{macrocode} -% \end{macro}^^A \scr@dte@def@l@tocline -% \end{macro}^^A \scr@dte@def@l@largetocline -% \end{macro}^^A \scr@dte@def@l@undottedtocline -% \end{macro}^^A \scr@dte@def@l@dottedtocline +% \end{macro}%^^A \scr@dte@def@l@toctext +% \end{macro}%^^A \scr@dte@def@l@tocline +% \end{macro}%^^A \scr@dte@def@l@largetocline +% \end{macro}%^^A \scr@dte@def@l@undottedtocline +% \end{macro}%^^A \scr@dte@def@l@dottedtocline % -% Für den Stil \texttt{tocline} werden diverse weitere Einstellungen und -% Befehle benötigt: +% Für den Stil \texttt{tocline} werden diverse weitere Einstellungen und +% Befehle benötigt: % \begin{macrocode} %<*tocline> \AtBeginDocument{% @@ -1709,10 +2170,10 @@ } % \end{macrocode} % \begin{macro}{\scr@dte@nosub} -% \changes{v3.20}{2015/11/23}{neu (intern)} +% \changes{v3.20}{2015/11/23}{neu (intern)} % \begin{macro}{\@scr@dte@nosub} -% \changes{v3.20}{2015/11/23}{neu (intern)} -% Über diese Hilfsmacros werden die Buchstaben \texttt{sub} am Anfang des +% \changes{v3.20}{2015/11/23}{neu (intern)} +% Ãœber diese Hilfsmacros werden die Buchstaben \texttt{sub} am Anfang des % Arguments entfernt. Stehen diese gar nicht am Anfang, so wird ein Fehler % wegen falscher Verwendung von \cs{@scr@de@nosub} gemeldet. % \begin{macrocode} @@ -1720,22 +2181,24 @@ \newcommand*{\@scr@dte@nosub}{} \def\@scr@dte@nosub sub#1\relax{#1} % \end{macrocode} -% \end{macro}^^A \@scr@dte@nosub -% \end{macro}^^A \scr@dte@nosub +% \end{macro}%^^A \@scr@dte@nosub +% \end{macro}%^^A \scr@dte@nosub % \begin{macro}{\scr@dte@tocline} -% \changes{v3.20}{2015/11/22}{neu (intern)} +% \changes{v3.20}{2015/11/22}{neu (intern)}%^^A +% \changes{v3.27}{2019/05/12}{Berücksichtigun von Verzeichniseigenschaft +% \texttt{noindent}}%^^A % In gewisser Weise entspricht diese Anweisung der \LaTeX-Kern-Anweisung -% \cs{dottedtocline}. Allerdings werden hier vielfältige -% Eingriffsmöglichkeiten untersützt, die jeweils durch Optionen gesteuert -% werden können. Daher hat der Befehl auch nur drei Argumente: +% \cs{dottedtocline}. Allerdings werden hier vielfältige +% Eingriffsmöglichkeiten untersützt, die jeweils durch Optionen gesteuert +% werden können. Daher hat der Befehl auch nur drei Argumente: % \begin{description} % \item[\marg{Ebene}:] Der Name \meta{string} der Verzeichnisebene. % \item[\marg{Eintrag}:] Der Verzeichniseintrag \meta{string}. % \item[\marg{Seite}:] Die Seitenzahl \meta{string} des Verzeichniseintrags. % \end{description} % \begin{Length}{\scr@dte@tocline@numberwidth} -% \changes{v3.20}{2016/01/15}{neu (intern)} -% Für alle, die es interessiert, gibt diese Länge die tatsächliche Breite der +% \changes{v3.20}{2016/01/15}{neu (intern)} +% Für alle, die es interessiert, gibt diese Länge die tatsächliche Breite der % formatierten Nummer an. % \begin{macrocode} \newlength\scr@dte@tocline@numberwidth @@ -1745,18 +2208,26 @@ \tocbasic@DependOnPenaltyAndTOCLevel{#1}% \addvspace{\@nameuse{scr@tso@#1@beforeskip}}\relax {% - \leftskip \@nameuse{scr@tso@#1@indent}\relax - \rightskip \@tocrmarg + \iftocfeature{\@currext}{noindent}{% + \leftskip \z@ + }{% + \leftskip \@nameuse{scr@tso@#1@indent}\relax + }% + \rightskip \@nameuse{scr@tso@#1@rightindent}\relax \parfillskip -\rightskip \@nameuse{Ifscr@tso@#1@raggedpage}{% \addtolength{\parfillskip}{\z@ \@plus 1fil}% }{}% - \parindent \@nameuse{scr@tso@#1@indent}\relax + \iftocfeature{\@currext}{noindent}{% + \parindent \z@ + }{% + \parindent \@nameuse{scr@tso@#1@indent}\relax + }% \@afterindenttrue \interlinepenalty\@M % \end{macrocode} -% \changes{v3.21}{2016/06/06}{\cs{ragged\dots entry} wird (wieder) -% ausgewertet}^^A +% \changes{v3.21}{2016/06/06}{\cs{ragged\dots entry} wird (wieder) +% ausgewertet}%^^A % \begin{macrocode} \expandafter\ifx\csname ragged#1entry\endcsname\raggedright \addtolength\rightskip\@flushglue @@ -1785,7 +2256,7 @@ {% % \end{macrocode} % An dieser Stelle wenden wir einen Trick an, um die Breite einer eventuell -% vorhandenen Nummer während deren Ausgabe auszumessen. Dazu ist es eine +% vorhandenen Nummer während deren Ausgabe auszumessen. Dazu ist es eine % schlichte Notwendigkeit, dass \cs{numberline} die interne Definition % verwendet. % \begin{macrocode} @@ -1794,14 +2265,14 @@ \def\numberline@box##1{% \sbox\scr@dte@tocline@numbox{\@nameuse{scr@tso@#1@numberformat}{##1}}% % \end{macrocode} -% Die Zuweisung an die aktuelle Länge der Nummer muss global erfolgen, weil +% Die Zuweisung an die aktuelle Länge der Nummer muss global erfolgen, weil % wir hier in einer Gruppe sind. -% \changes{v3.22}{2016/12/02}{fehlendes zweites \cs{relax} ergänzt}^^A +% \changes{v3.22}{2016/12/02}{fehlendes zweites \cs{relax} ergänzt}%^^A % \begin{macrocode} \global\scr@dte@tocline@numberwidth \dimexpr\wd\scr@dte@tocline@numbox+\@nameuse{scr@tso@#1@numsep}\relax % \end{macrocode} -% \changes{v3.22}{2016/12/02}{fehlendes zweites \cs{relax} ergänzt}^^A +% \changes{v3.22}{2016/12/02}{fehlendes zweites \cs{relax} ergänzt}%^^A % Achtung: Hier braucht es ein zweites \cs{relax}, weil das erste von % \cs{dimexpr} aufgezehrt wird. % \begin{macrocode} @@ -1840,6 +2311,16 @@ {% \normalfont\normalsize\@nameuse{scr@tso@#1@linefill}% \nobreak +% \end{macrocode} +% \changes{v3.27}{2019/10/02}{\cs{scr@dte@pagenumberwidth} wird definiert}% +% Damit hier keine Abhängigkeit eine Eintragsvariablen von einer +% Eintragsvariablen existiert wird lokal \cs{scr@dte@pagenumberwidth} zu +% \cs{scr@tso@\meta{Eintragsname}@pagenumberwidth}, so dass in der Definition +% von \cs{scr@tso@\meta{Eintragsname}@pagenumberbox} dieses lokale Makro +% verwendet werden kann. +% \begin{macrocode} + \expandafter\let\expandafter\scr@dte@pagenumberwidth + \csname scr@tso@#1@pagenumberwidth\endcsname \@nameuse{scr@tso@#1@pagenumberbox}{% \@nameuse{scr@tso@#1@pagenumberformat}{#3}% }% @@ -1852,40 +2333,40 @@ \fi } % \end{macrocode} -% \end{Length}^^A \scr@dte@tocline@numberwidth +% \end{Length}%^^A \scr@dte@tocline@numberwidth % \begin{macro}{\scr@dte@tocline@numbox} -% \changes{v3.20}{2015/11/25}{neue Box (intern)} -% Wird benötigt, um die Breite der Nummer auszumessen und die Nummer später +% \changes{v3.20}{2015/11/25}{neue Box (intern)} +% Wird benötigt, um die Breite der Nummer auszumessen und die Nummer später % wieder zu verwenden. % \begin{macrocode} \newsavebox\scr@dte@tocline@numbox % \end{macrocode} -% \end{macro}^^A \scr@dte@tocline@numbox +% \end{macro}%^^A \scr@dte@tocline@numbox % \begin{macro}{\tocbasic@DependOnPenaltyAndTOCLevel} -% \changes{v3.20}{2015/11/23}{neu}^^A -% \changes{v3.20}{2016/03/12}{Anpassung an \textsf{tocbasic}-Syntax für -% Befehle für Paketautoren}^^A -% Führt eine gespeicherte Aktion in Abhängigkeit davon aus, ob der aktuelle -% Penalty-Wert darauf schließen lässt, dass zuvor ein Eintrag mit einem -% höheren, demselben oder einem tieferen Wert für die Ebene erfolgte. +% \changes{v3.20}{2015/11/23}{neu}%^^A +% \changes{v3.20}{2016/03/12}{Anpassung an \textsf{tocbasic}-Syntax für +% Befehle für Paketautoren}%^^A +% Führt eine gespeicherte Aktion in Abhängigkeit davon aus, ob der aktuelle +% Penalty-Wert darauf schließen lässt, dass zuvor ein Eintrag mit einem +% höheren, demselben oder einem tieferen Wert für die Ebene erfolgte. % \begin{macro}{\tocbasic@SetPenaltyByTOCLevel} -% \changes{v3.20}{2015/11/23}{neu} -% \changes{v3.20}{2016/03/12}{Anpassung an \textsf{tocbasic}-Syntax für -% Befehle für Paketautoren}^^A -% Setze die Strafpunkte für einen Umbruch entsprechend der aktuellen +% \changes{v3.20}{2015/11/23}{neu} +% \changes{v3.20}{2016/03/12}{Anpassung an \textsf{tocbasic}-Syntax für +% Befehle für Paketautoren}%^^A +% Setze die Strafpunkte für einen Umbruch entsprechend der aktuellen % Verzeichnisebene. % \begin{macro}{\LastTOCLevelWasHigher} -% \changes{v3.20}{2015/11/23}{neu} -% Standardaktion, falls der vorherige Level einen größeren Wert hatte: Umbruch +% \changes{v3.20}{2015/11/23}{neu} +% Standardaktion, falls der vorherige Level einen größeren Wert hatte: Umbruch % erlauben. % \begin{macro}{\LastTOCLevelWasSame} -% \changes{v3.20}{2015/11/23}{neu} +% \changes{v3.20}{2015/11/23}{neu} % Standardaktion, falls der vorherige Level denselben Wert hatte: Umbruch % erlauben. % \begin{macro}{\LastTOCLevelWasLower} % Standardaktion, falls der vorherige Level einen kleineren Wert hatte: % Penalty beibehalten und damit den Umbruch verbieten. -% \changes{v3.20}{2015/11/23}{neu} +% \changes{v3.20}{2015/11/23}{neu} % \begin{macrocode} \newcommand*{\tocbasic@DependOnPenaltyAndTOCLevel}[1]{% \ifnum \lastpenalty<\numexpr 20009-\@nameuse{#1tocdepth}\relax @@ -1904,15 +2385,15 @@ \newcommand*{\LastTOCLevelWasSame}{\ifvmode\addpenalty{\@lowpenalty}\fi} \newcommand*{\LastTOCLevelWasLower}{} % \end{macrocode} -% \end{macro}^^A \tocbasic@SetPenaltyByTOCLevel -% \end{macro}^^A \tocbasic@DependOnPenaltyAndTOCLevel -% \end{macro}^^A \LastTOCLevelWasLower -% \end{macro}^^A \LastTOCLevelWasSame -% \end{macro}^^A \LastTOCLevelWasHigher +% \end{macro}%^^A \tocbasic@SetPenaltyByTOCLevel +% \end{macro}%^^A \tocbasic@DependOnPenaltyAndTOCLevel +% \end{macro}%^^A \LastTOCLevelWasLower +% \end{macro}%^^A \LastTOCLevelWasSame +% \end{macro}%^^A \LastTOCLevelWasHigher % \begin{macro}{\TOCLineLeaderFill} -% \changes{v3.20}{2015/11/14}{neu} -% Füllt den Abstand zwischen Text und Seitenzahl komplett. Hat als einziges -% optionales Argument das Füllzeichen. +% \changes{v3.20}{2015/11/14}{neu} +% Füllt den Abstand zwischen Text und Seitenzahl komplett. Hat als einziges +% optionales Argument das Füllzeichen. % \begin{macrocode} \newcommand*{\TOCLineLeaderFill}[1][.]{% \leaders\hbox{$\m@th @@ -1921,14 +2402,132 @@ } %</tocline> % \end{macrocode} -% \end{macro}^^A \TOCLineLeaderFill -% \end{macro}^^A \scr@dte@tocline +% \end{macro}%^^A \TOCLineLeaderFill +% \end{macro}%^^A \scr@dte@tocline +% +% \selectlanguage{english} +% \begin{macro}{\scr@dte@toctext} +% \changes{v3.27}{2019/07/08}{new (internal)}%^^A +% This is the command to format entries that will be accumalted into a single +% paragraph. This is somehow special, because the settings of one entrie can +% influence another one. The three arguments are: +% \begin{description} +% \item[\marg{level}:] The name \meta{string} of the entry level. +% \item[\marg{entry}:] The ToC entry \meta{string}. +% \item[\marg{pagenumber}:] The page number \meta{string} of the ToC entry. +% \end{description} +% \begin{macrocode} +%<*toctext> +\newcommand*{\scr@dte@toctext}[3]{% + \ifnum \@nameuse{#1tocdepth}>\c@tocdepth + \else + \ifhmode +% \end{macrocode} +% In h-mode their is already output of a previous text entry. So the end code +% of that previous text entry has to be output before the initial output of +% the new text entry has to be done. +% \begin{macrocode} + \scr@dte@toctext@lastend + \@nameuse{scr@tso@#1@onstartentry}% + \else +% \end{macrocode} +% In v-mode it is a new text entry. +% \begin{macrocode} + \leavevmode +% \end{macrocode} +% The paragraph end has to be prepared to eventually change the right +% skip, to do the final output, and after all destroy these commands. +% \begin{macrocode} + \def\par{% + \scr@dte@toctext@raggedright + \scr@dte@toctext@parend + \@par + \scr@dte@toctext@afterpar + \global\let\scr@dte@toctext@afterpar\relax + \global\let\scr@dte@toctext@parend\relax + \global\let\scr@dte@toctext@raggedright\relax + }% + \global\let\scr@dte@toctext@afterpar\@empty +% \end{macrocode} +% Also the left skip and the right skip has to be setup (these are the +% margins) and if any of the text entries has to be printed ragged right, all +% of them should be ragged right. +% \begin{macrocode} + \iftocfeature{\@currext}{noindent}{% + \leftskip \z@ + }{% + \leftskip \@nameuse{scr@tso@#1@indent}\relax + }% + \rightskip \@nameuse{scr@tso@#1@rightindent}\relax + \parfillskip \z@ \@plus 1fill\relax + \edef\@noitemerr{\unexpanded{\par\def\@noitemerr}% + {\unexpanded\expandafter{\@noitemerr}}}% +% \end{macrocode} +% Finally the init code of the first entry has to be used. +% \begin{macrocode} + \@nameuse{scr@tso@#1@onstartfirstentry}% + \fi +% \end{macrocode} +% Also some settings are independend from beeing the first entry in the +% paragraph or not. +% \begin{macrocode} + \@nameuse{Ifscr@tso@#1@raggedright}{% + \let\\\@centercr + \gdef\scr@dte@toctext@raggedright{% + \@rightskip\@flushglue + \addtolength\rightskip\@rightskip + }% + }{}% + \l@addto@macro\scr@dte@toctext@afterpar{\@nameuse{scr@tso@#1@afterpar}}% +% \end{macrocode} +% The end codes have to be changed. These are used either at the start of the +% next entry with this style or at the end of the paragraph. +% \begin{macrocode} + \expandafter\global\expandafter\let\expandafter\scr@dte@toctext@lastend + \csname scr@tso@#1@onendentry\endcsname + \expandafter\global\expandafter\let\expandafter\scr@dte@toctext@parend + \csname scr@tso@#1@onendlastentry\endcsname +% \end{macrocode} +% Last but not least, the output has to be done. +% \begin{macrocode} + {% + \usetocbasicnumberline + \def\numberline@box##1{% + \mbox{% + \@nameuse{scr@tso@#1@numberformat}{\ignorespaces ##1\unskip}% + \hskip\@nameuse{scr@tso@#1@numsep}\relax + }% + }% + \@nameuse{scr@tso@#1@entryformat}{% + \ignorespaces#2\unskip + \@nameuse{scr@tso@#1@prepagenumber}% + \@nameuse{scr@tso@#1@pagenumberformat}{\ignorespaces #3\unskip}% + }% + }% + \fi +} +% \end{macrocode} +% \begin{macro}{\scr@dte@toctext@raggedright} +% \begin{macro}{\scr@dte@toctext@parend} +% \begin{macro}{\scr@dte@toctext@lastend} +% Helper macros to store some information for later usage. +% \begin{macrocode} +\newcommand*{\scr@dte@toctext@raggedright}{} +\newcommand*{\scr@dte@toctext@parend}{} +\newcommand*{\scr@dte@toctext@lastend}{} +%</toctext> +% \end{macrocode} +% \end{macro}%^^A \scr@dte@toctext@lastend +% \end{macro}%^^A \scr@dte@toctext@parend +% \end{macro}%^^A \scr@dte@toctext@raggedright +% \end{macro}%^^A \scr@dte@toctext +% \selectlanguage{ngerman} % % \begin{macro}{\scr@dte@def@l@default} -% \changes{v3.20}{2015/12/16}{neu im Paket}^^A +% \changes{v3.20}{2015/12/16}{neu im Paket}%^^A % Bereits im Paket gibt es einen Standardstil. Anderen Paketen ist es nicht % gestattet diesen umzudefinieren. Klassen ist das hingegen gestattet, damit -% sie einen Dokument weiten Standardstil festlegen können. +% sie einen Dokument weiten Standardstil festlegen können. % \begin{macrocode} %<*default> %%% (run: style,dottedtocline) @@ -1953,10 +2552,10 @@ % geschrieben wird: % % \begin{macro}{\scr@dte@def@l@part} -% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{part}}^^A +% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{part}}%^^A % Dieser Verzeichnisstil existiert bei \textsf{scrbook}, \textsf{scrreprt} und % \textsf{scrartcl}. Das Format des Eintrags und der Seitenzahl wird dabei -% über die Elemente \texttt{partentry} und \texttt{partentrypagenumber} +% über die Elemente \texttt{partentry} und \texttt{partentrypagenumber} % realisiert. % \begin{macrocode} %<*part> @@ -1975,10 +2574,10 @@ } %</part> % \end{macrocode} -% \end{macro}^^A \scr@dte@def@l@part +% \end{macro}%^^A \scr@dte@def@l@part % % \begin{macro}{\scr@dte@def@l@chapter} -% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{chapter}}^^A +% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{chapter}}%^^A % Dieser Verzeichnisstil existier bei \textsf{scrbook} und \textsf{scrreprt}. % \begin{macrocode} %<*chapter> @@ -2003,13 +2602,13 @@ } %</chapter> % \end{macrocode} -% \end{macro}^^A \scr@dte@def@l@chapter +% \end{macro}%^^A \scr@dte@def@l@chapter % % \begin{macro}{\scr@dte@def@l@section} -% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{section}}^^A -% Bei den Klassen \textsf{scrbook} und \textsf{scrreprt} ist das der Stil für +% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{section}}%^^A +% Bei den Klassen \textsf{scrbook} und \textsf{scrreprt} ist das der Stil für % die \emph{kleinen} Verzeichnisebenen. Bei \textsf{scrartcl} ist es dagegen -% der Stil für die obere Verzeichnisebene und entspricht damit obigem Stil +% der Stil für die obere Verzeichnisebene und entspricht damit obigem Stil % \texttt{chapter}. % \begin{macrocode} %<*section> @@ -2031,7 +2630,7 @@ \hfill \fi }% - % Für die Einträge die Schrift von Element sectionentry verwenden. + % Für die Einträge die Schrift von Element sectionentry verwenden. \expandafter\providecommand% \csname scr@tso@#1@entryformat\endcsname{\usekomafont{sectionentry}}% \expandafter\providecommand% @@ -2042,10 +2641,10 @@ %</article> %</section> % \end{macrocode} -% \end{macro}^^A \scr@dte@def@l@section +% \end{macro}%^^A \scr@dte@def@l@section % % \begin{macro}{\scr@dte@def@l@subsection} -% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{subsection}}^^A +% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{subsection}}%^^A % Dieser Stil existiert nur bei \textsf{scrartcl} und entspricht dann dem Stil % \texttt{section} bei \textsf{scrbook} und \textsf{scrreprt}. % \begin{macrocode} @@ -2058,10 +2657,10 @@ } %</subsection&article> % \end{macrocode} -% \end{macro}^^A \scr@dte@def@l@subsection +% \end{macro}%^^A \scr@dte@def@l@subsection % % \begin{macro}{\scr@dte@def@l@default} -% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{default}}^^A +% \changes{v3.20}{2015/12/07}{neuer Verzeichnisstil \texttt{default}}%^^A % Dieser Stil entspricht bei \textsf{scrbook} und \textsf{scrreprt} dem Stil % \texttt{section} und bei \textsf{scrartcl} dem Stil \textsf{subsection}. % \begin{macrocode} @@ -2085,6 +2684,6 @@ % end of file `scrkernel-tocstyle.dtx' %%% Local Variables: %%% mode: doctex -%%% coding: iso-latin-1 +%%% coding: utf-8 %%% TeX-master: t %%% End: |