summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx691
1 files changed, 358 insertions, 333 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
index c91d3652a3d..5bdedf913f7 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
@@ -1,8 +1,8 @@
-% \CheckSum{3851}
+% \CheckSum{3692}
% \iffalse meta-comment
% ======================================================================
% scrkernel-sections.dtx
-% Copyright (c) Markus Kohm, 2002-2015
+% Copyright (c) Markus Kohm, 2002-2016
%
% 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-sections.dtx
-% Copyright (c) Markus Kohm, 2002-2015
+% Copyright (c) Markus Kohm, 2002-2016
%
% 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-sections.dtx 2212 2015-10-03 12:51:00Z kohm $
+%%% From File: $Id: scrkernel-sections.dtx 2438 2016-04-27 10:58:21Z kohm $
% The runs of run-time file generation:
%<preidentify>%%% (run: preidentify)
% - everything that is needed before selfidentification of resulting files
@@ -78,9 +78,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2015-10-03 14:51:00 +0200 (Sat, 03 Oct 2015) $
+ \filedate$Date: 2016-04-27 12:58:21 +0200 (Wed, 27 Apr 2016) $
\def\filerevision$#1: #2 ${\gdef\filerevision{#2}}
- \filerevision$Revision: 2212 $
+ \filerevision$Revision: 2438 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-sections.dtx}%
@@ -450,11 +450,13 @@
% \changes{v2.95}{2004/01/15}{es wird erst unmittelbar vor dem Schließen
% der Haupt-aux-Datei in diese geschrieben}^^A
% \changes{v2.96a}{2006/12/07}{es wird \cs{immediate} geschrieben}^^A
+% \changes{v3.20}{2016/03/25}{es wird \cs{csname}\dots\cs{endcsname}
+% verwendet}^^A
% \begin{macrocode}
%<*body>
\BeforeClosingMainAux{%
\if@autodot\if@filesw\immediate\write\@mainaux{%
- \string\global\string\@altsecnumformattrue}%
+ \string\global\string\csname\space @altsecnumformattrue\string\endcsname}%
\fi\fi}
%</body>
% \end{macrocode}
@@ -549,14 +551,24 @@
% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}^^A
% \changes{v3.18}{2015/05/22}{verwende \cs{numexpr} für Argument 2}
% \changes{v3.18}{2015/05/22}{verwende \cs{glueexpr} für Argument 3--5}
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
% \begin{macro}{\scr@saved@startsection}
% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}^^A
+% \changes{v3.20}{2016/04/12}{Tests funktionieren jetzt auch mit
+% \textsf{amsgen}}^^A
% \KOMAScript{} benötigt ein eigenes \cs{@startsection}, weil die
% Funktionalität des \cs{@startsection} aus dem \LaTeX-Kern nicht
% genügt. Bevor allerdings die eigene Definition in Angriff genommen wird,
% muss kontrolliert werden, ob die aufgefundene Definition noch den
% Erwartungen entspricht. Alles andere wäre ein deutlicher Hinweis, dass
% eventuell in \KOMAScript{} ebenfalls eine Anpassung vorzunehmen wäre.
+% Da es offenbar Leute gibt, die bei der Umdefinierung von \cs{section}
+% etc. mit Hilfe von \cs{@startsection} Leerzeichen zwischen die Argumente
+% packen und gleichzeitig \textsf{amsgen} verwenden, sorgen wir hier dafür,
+% dass dann trotzdem noch die Warnungen funktionieren und nebenbei der Code
+% mit etwas Glück sogar ebenfalls. Dazu ist es notwendig, dass die Version von
+% \cs{@startsection} gespeichert wird, die \cs{kernel@ifstar} verwendet.
% \begin{macrocode}
%<*body>
\newcommand*{\scr@saved@startsection}[6]{%
@@ -572,11 +584,33 @@
\else
\addpenalty\@secpenalty\addvspace\@tempskipa
\fi
+ \kernel@ifstar
+ {\@ssect{#3}{#4}{#5}{#6}}%
+ {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
+}
+\def\reserved@a#1#2#3#4#5#6{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
\@ifstar
{\@ssect{#3}{#4}{#5}{#6}}%
{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}%
}
-\ifx\@startsection\scr@saved@startsection
+\ifcase \ifx\@startsection\scr@saved@startsection 0
+ \else
+ \ifx\@startsection\reserved@a 0
+ \else 1
+ \fi
+ \fi
\newcommand*{\scr@startsection}[6]{%
\if@noskipsec \leavevmode \fi
\par
@@ -591,7 +625,7 @@
\else
\addpenalty\@secpenalty\addvspace\@tempskipa
\fi
- \@ifstar {%
+ \kernel@ifstar {%
\csname scr@preto@ssect@hook\endcsname
\def\scr@s@ct@@nn@m@{#1}%
\@ssect{\glueexpr #3\relax}{\glueexpr #4\relax}{\glueexpr #5\relax}{#6}%
@@ -622,7 +656,7 @@
}%
\let\scr@saved@startsection\@startsection
\newcommand*{\scr@startsection}[6]{%
- \@ifstar {%
+ \kernel@ifstar {%
\scr@saved@startsection{#1}{\numexpr #2\relax}{\glueexpr #3\relax}%
{\glueexpr #4\relax}{\glueexpr #5\relax}{#6}*%
}{%
@@ -708,12 +742,14 @@
%
% \begin{macro}{\SecDef}
% \changes{v3.13a}{2014/09/11}{neue Anweisung}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
% \begin{macro}{\secdef}
% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung
% der Erweiterung für das optionale Argument}^^A
% \begin{macrocode}
%<*body>
-\newcommand*{\SecDef}[2]{\@ifstar{#2}{\scr@section@dblarg{#1}}}
+\newcommand*{\SecDef}[2]{\kernel@ifstar{#2}{\scr@section@dblarg{#1}}}
\CheckCommand*{\secdef}[2]{\@ifstar{#2}{\@dblarg{#1}}}
\let\secdef\SecDef
%</body>
@@ -1021,7 +1057,7 @@
Neither the then-code nor the else-code will be\MessageBreak
executed.\MessageBreak
You may change this and avoid the warning by LOCALLY\MessageBreak
- setting \string\IsUsePrefixLine\space to either
+ setting \string\IfUsePrefixLine\space to either
\string\@firstoftwo\space or\MessageBreak
\string\@secondoftwo\space before using it%
}%
@@ -1057,7 +1093,9 @@
% \changes{v3.17}{2015/03/23}{Komplettumbau, um stilabhängige Optionen zu
% ermöglichen}^^A
% \changes{v3.18}{2015/05/22}{\cs{scr@dsc@def@style@\dots @command}
-% definiert alle Stil abhängigen Anweisung}^^A
+% definiert alle Stil abhängigen Anweisungen}^^A
+% \changes{v3.20}{2015/10/03}{\cs{DeclareTOCStyleEntry}
+% definiert die Verzeichnisstil abhängigen Anweisungen}^^A
% Definition neuer oder Umdefinition existierender Gliederungsbefehle, die auf
% \cs{scr@startsection} basieren. Ebenso wird ein Verzeichniseintrag erzeugt,
% falls ein solcher noch nicht existiert. Die Deklaration geschieht über
@@ -1076,7 +1114,7 @@
% werden, so ist \texttt{KOMAarg} zu verwenden.
% \begin{macrocode}
\newcommand*{\DeclareSectionCommandStyleOption}[3]{%
- \DeclareSectionCommandDummyOption{#2}%
+ \AddToSectionCommandOptionsDoList{#2}%
\expandafter\g@addto@macro\csname scr@dsc@style@#1@options\endcsname{%
\DefineFamilyKey[.dsc]{KOMAarg}{#2}{#3}%
}%
@@ -1084,37 +1122,64 @@
% \end{macrocode}
% \begin{macro}{\DeclareSectionCommandDummyOption}
% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}^^A
-% \begin{macro}{\scr@dsc@dummyoptions}
-% \changes{v3.17}{2015/03/23}{Neu (intern)}^^A
-% Definiert eine neue Dummy-Option für einen Stil eines
-% Gliederungsbefehls. Das einzige Argument ist der Name der Option. Die
-% Dummy-Optionen werden in \cs{scr@dsc@dummyoptions} gesammelt.
-% \begin{macrocode}
-\newcommand*{\DeclareSectionCommandDummyOption}[1]{%
- \@ifstar {%
- \g@addto@macro{\scr@dsc@dummyoptions}{%
- \DefineFamilyKey[.dsc]{KOMAarg}{#1}[]{\FamilyKeyStateProcessed}%
+% \changes{v3.20}{2015/11/18}{wird nicht mehr benötigt}^^A
+% \end{macro}^^A \DeclareSectionCommandDummyOption
+% \begin{macro}{\AddToSectionCommandOptionsDoList}
+% \changes{v3.20}{2015/11/18}{neu}
+% \begin{macro}{\@AddToSectionCommandOptionsDoList}
+% \changes{v3.20}{2015/11/18}{neu (intern)}
+% \begin{macro}{\scr@dsc@doopts}
+% \changes{v3.20}{2015/11/18}{neu (intern)}
+% Registriert eine neue Gliederungsbefehlsoption, indem sie der internen Liste
+% der Gliederungsbefehlsoptionen hinzugefügt wird.
+% \begin{macrocode}
+\newcommand*{\AddToSectionCommandOptionsDoList}[1]{%
+ \kernel@ifnextchar [%]
+ {\@AddToSectionCommandOptionListWithDefault{#1}}%
+ {\l@addto@macro\scr@dsc@doopts{\do{#1}}}%
+}
+\newcommand*{\@AddToSectionCommandOptionListWithDefault}{}
+\def\@AddToSectionCommandOptionListWithDefault#1[#2]{%
+ \l@addto@macro\scr@dsc@doopts{\do[{#2}]{#1}}
+}%
+\newcommand*{\scr@dsc@doopts}{}
+% \end{macrocode}
+% \end{macro}^^A \scr@dsc@dooptions
+% \end{macro}^^A \@AddToSectionCommandOptionsListWithDefault
+% \end{macro}^^A \AddToSectionCommandOptionsDoList
+% \begin{macro}{\RelaxSectionCommandOptions}
+% \changes{v3.20}{2015/11/18}{neu}
+% Diese Option macht alle Gliederungsbefehlsoptionen ungültig.
+% \begin{macrocode}
+\newcommand*{\RelaxSectionCommandOptions}{%
+ \begingroup
+ \def\do@endgroup{\endgroup}%
+ \def\do{%
+ \kernel@ifnextchar [%]
+ {\@do}%
+ {\@do[]}%
}%
- }{%
- \g@addto@macro{\scr@dsc@dummyoptions}{%
- \DefineFamilyKey[.dsc]{KOMAarg}{#1}{\FamilyKeyStateProcessed}%
+ \def\@do[##1]##2{%
+ \l@addto@macro\do@endgroup{\RelaxFamilyKey[.dsc]{KOMAarg}{##2}}%
}%
- }%
+ \scr@dsc@doopts
+ \do@endgroup
}
-\newcommand*{\scr@dsc@dummyoptions}{}
% \end{macrocode}
-% \end{macro}^^A \scr@dsc@dummyoptions
-% \end{macro}^^A \DeclareSectionCommandDummyOption
+% \end{macro}^^A \RelaxSectionCommandOptions
% \end{macro}^^A \DeclareSectionCommandStyleOption
% \begin{macro}{\DeclareSectionCommandStyleLengthOption}
% \changes{v3.17}{2015/03/23}{neue Anweisung}^^A
+% \changes{v3.20}{2016/04/25}{Argument wird ggf. expandiert}^^A
% Definiert eine für die aktuelle Ebene \cs{scr@dsc@current} eine neue
% Längenoption und speichert das Ergebnis in einem Makro, das sich aus
% Argument 3 gefolgt von der aktuellen Ebene gefolgt von Argument 4 ergibt.
% \begin{macrocode}
\newcommand*{\DeclareSectionCommandStyleLengthOption}[4]{%
\DeclareSectionCommandStyleOption{#1}{#2}{%
- \FamilySetLength{KOMAarg}{#2}{\@tempskipa}{##1}%
+ \protected@edef\reserved@a{%
+ \noexpand\FamilySetLength{KOMAarg}{#2}{\noexpand\@tempskipa}{##1}%
+ }\reserved@a
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\ifscr@dsc@expandtopt
\expandafter\edef\csname #3\scr@dsc@current#4\endcsname{%
@@ -1129,15 +1194,18 @@
% \end{macro}^^A \DeclareSectionCommandStyleLengthOption
% \begin{macro}{\DeclareSectionCommandStyleNumberOption}
% \changes{v3.17}{2015/03/23}{neue Anweisung}^^A
+% \changes{v3.20}{2016/04/25}{Argument wird expandiert}^^A
% Definiert eine für die aktuelle Ebene \cs{scr@dsc@current} eine neue
% Zahlenoption und speichert das Ergebnis in einem Makro, das sich aus
% Argument 3 gefolgt von der aktuellen Ebene gefolgt von Argument 4 ergibt.
% \begin{macrocode}
\newcommand*{\DeclareSectionCommandStyleNumberOption}[4]{%
\DeclareSectionCommandStyleOption{#1}{#2}{%
- \FamilySetCounter{KOMAarg}{#2}{\@tempcnta}{##1}%
+ \protected@edef\reserved@a{%
+ \noexpand\FamilySetCounterMacro{KOMAarg}{#2}{\noexpand\reserved@a}{##1}
+ }\reserved@a
\ifx\FamilyKeyState\FamilyKeyStateProcessed
- \expandafter\edef\csname #3\scr@dsc@current#4 \endcsname{\the\@tempcnta}%
+ \expandafter\let\csname #3\scr@dsc@current#4 \endcsname\reserved@a
\fi
}%
}
@@ -1161,17 +1229,6 @@
}
% \end{macrocode}
% \end{macro}^^A \DeclareSectionCommandStyleFontOption
-% Es folgt die Initialisierung zunächst der Dummys für die Optionen, die es
-% immer gibt. (Erklärung dieser Optionen folgt unten.)
-% \begin{macrocode}
-\DeclareSectionCommandDummyOption{style}
-\DeclareSectionCommandDummyOption{expandtopt}*
-\DeclareSectionCommandDummyOption{increaselevel}
-\DeclareSectionCommandDummyOption{level}
-\DeclareSectionCommandDummyOption{toclevel}
-\DeclareSectionCommandDummyOption{tocindent}
-\DeclareSectionCommandDummyOption{tocnumwidth}
-% \end{macrocode}
%
% \begin{macro}{\scr@dsc@style@section@options}
% \changes{v3.17}{2015/03/23}{neue Anweisung (intern)}^^A
@@ -1209,6 +1266,8 @@
% \end{macro}^^A \scr@dsc@style@section@options
% \begin{macro}{\scr@dsc@def@style@section@command}
% \changes{v3.18}{2015/05/21}{neue Anweisung (intern)}^^A
+% \changes{v3.20}{2016/01/19}{korrekte Spitzmarkenprüfung für
+% \cs{parfillskip}-Änderung}^^A
% Diese Anweisung left fest, wie ein Gliederungsbefehl für den Stil
% \texttt{section} zu definieren ist. Das einzige Argument ist dabei der
% \meta{Name} der Gliederungsebene, beispielsweise \texttt{section},
@@ -1223,7 +1282,7 @@
{\csname scr@#1@beforeskip\endcsname}%
{\csname scr@#1@afterskip\endcsname}%
{%
- \ifdim\glueexpr\csname scr@#1@beforeskip\endcsname <\z@
+ \ifdim\glueexpr\csname scr@#1@afterskip\endcsname >\z@
\expandafter\ifnum\scr@v@is@gt{2.96}\relax
\setlength{\parfillskip}{\z@ plus 1fil}%
\fi
@@ -1398,9 +1457,6 @@
% mit \cs{aftergroup}\cs{@gobbletwo} dafür, dass die Definition unterbleibt.
% \begin{macrocode}
\newcommand*{\scr@dsc@style@section@neededoptionstest}{%
-%<trace> \typeout{TRACE:
-%<trace> \string\scr@dsc@style@section@neededoptionstest\space for
-%<trace> \scr@dsc@current}%
\scr@ifundefinedorrelax{scr@\scr@dsc@current @sectionindent}{%
\scr@declaresectioncommanderror{\scr@dsc@current}{section indent}{indent}%
}{}%
@@ -1428,9 +1484,6 @@
% \begin{macrocode}
%<*book|report>
\newcommand*{\scr@dsc@style@chapter@neededoptionstest}{%
-%<trace> \typeout{TRACE:
-%<trace> \string\scr@dsc@style@chapter@neededoptionstest\space for
-%<trace> \scr@dsc@current}%
\scr@ifundefinedorrelax{\scr@dsc@current pagestyle}{%
\scr@declaresectioncommanderror{\scr@dsc@current}{initial page style}
{pagestyle}%
@@ -1467,9 +1520,6 @@
% mit \cs{aftergroup}\cs{@gobbletwo} dafür, dass die Definition unterbleibt.
% \begin{macrocode}
\newcommand*{\scr@dsc@style@part@neededoptionstest}{%
-%<trace> \typeout{TRACE:
-%<trace> \string\scr@dsc@style@part@neededoptionstest\space for
-%<trace> \scr@dsc@current}%
%<*book|report>
\scr@ifundefinedorrelax{\scr@dsc@current pagestyle}{%
\scr@declaresectioncommanderror{\scr@dsc@current}{initial page style}
@@ -1500,9 +1550,10 @@
% \end{macro}^^A \scr@dsc@style@part@neededoptionstest
%
% \begin{macro}{\ifscr@dsc@parametersonly}
-% \changes{v3.17}{2015/03/24}{neu}
+% \changes{v3.17}{2015/03/24}{neu}^^A
+% \changes{v3.20}{2015/11/18}{es gibt keine Dummy-Optionen mehr}^^A
% Dieser Schalter wird verwendet, um die Einstellungen entsprechend dem
-% aktuell gültigen Stil zu ändern, die zugehörige Anweisunge selbst aber nicht
+% aktuell gültigen Stil zu ändern, die zugehörige Anweisung selbst aber nicht
% neu zu definieren. Er wird von einem leeren \texttt{style}-Wert lokal
% gesetzt.
% \begin{macrocode}
@@ -1514,19 +1565,15 @@
\newcommand*{\DeclareSectionCommand}[2][]{%
\edef\scr@dsc@current{#2}%
% \end{macrocode}
-% Zunächst sind alle für Gliederungsbefehle bekannten Optionen nur
-% dummy-Optionen.
-% \begin{macrocode}
- \scr@dsc@dummyoptions
-% \end{macrocode}
-% Die einzige Optionen, die wir direkt auswerten, ist der Stil:
-% \begin{description}\item[\texttt{style}] Stil der
-% Gliederungsebene\end{description}
+% Im ersten Durchlauf werden nur die Stil-Optionen ausgewertet:
+% \begin{description}
+% \item[\texttt{style}] Stil der Gliederungsebene
+% \end{description}
% \begin{macrocode}
\scr@dsc@parametersonlyfalse
\DefineFamilyKey[.dsc]{KOMAarg}{style}{%
- \ifstr{##1}{}{%
- \ifscr@dsc@parametersonlytrue
+ \IfArgIsEmpty{##1}{%
+ \scr@dsc@parametersonlytrue
\FamilyKeyStateProcessed
}{%
\scr@ifundefinedorrelax{scr@dsc@def@style@##1@command}{%
@@ -1537,7 +1584,65 @@
}%
}%
}%
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{tocstyle}]
+% \changes{v3.20}{2015/11/12}{Option \texttt{tocstyle} frühzeitig
+% auswerten}^^A
+% Verzeichnis-Eintrags-Stil, damit auch für diesen anschließend die Optionen
+% definiert bzw. aktiviert werden können.
+% \end{description}
+% \begin{macrocode}
+ \DefineFamilyKey[.dsc]{KOMAarg}{tocstyle}{%
+ \IfArgIsEmpty{##1}{%
+ \expandafter\let\csname scr@dte@\scr@dsc@current @style\endcsname
+ \relax
+ \FamilyKeyStateProcessed
+ }{%
+%<trace> \typeout{TRACE: option tocstyle=##1}%
+%<trace> \typeout{TRACE: command=\scr@dsc@current}%
+ \scr@ifundefinedorrelax{scr@dte@def@l@##1}{%
+%<trace> \typeout{TRACE: style not defined}%
+ \FamilyKeyStateUnknownValue
+ }{%
+%<trace> \typeout{TRACE: style defined}%
+ \@namedef{scr@dte@\scr@dsc@current @style}{##1}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+% \end{macrocode}
+% \begin{description}
+% \item[\texttt{@else@}]
+% \changes{v3.20}{2015/11/18}{Option \texttt{tocstyle} frühzeitig
+% auswerten}^^A
+% Damit keine anderen Optionen ausgewertet werden müssen aber auch nicht als
+% unbekannte Optionen einen Fehler erzeugen, wird diese Spezialoption
+% definiert, die einfach nur \cs{FamilyKeyStateProcessed} setzt.
+% \end{description}
+% \begin{macrocode}
+ \DefineFamilyKey[.dsc]{KOMAarg}{@else@}{%
+%<*trace>
+ \typeout{TRACE: ignoring option `@else@=\detokenize{##1}'}%
+ \typeout{TRACE:
+ \string\scr@key@atlist=`\detokenize\expandafter{\scr@key@atlist}'}%
+ \typeout{TRACE:
+ \string\scr@key@name=`\detokenize\expandafter{\scr@key@name}'}%
+ \typeout{TRACE:
+ \string\scr@key@value=`\detokenize\expandafter{\scr@key@value}'}%
+%</trace>
+ \FamilyKeyStateProcessed
+ }%
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+% \end{macrocode}
+% \changes{v3.20}{2015/11/18}{Rüchnahme der Optionen nach dem ersten
+% Durchgang}^^A
+% Nach dem ersten Druchgang müssen alle Optionen wieder zurückgenommen
+% werden.
+% \begin{macrocode}
+ \RelaxFamilyKey[.dsc]{KOMAarg}{@else@}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{tocstyle}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{style}%
\begingroup
\scr@ifundefinedorrelax{scr@\scr@dsc@current @style}{%
\scr@declaresectioncommanderror{\scr@dsc@current}
@@ -1546,13 +1651,79 @@
\endgroup
\@firstofone{%
% \end{macrocode}
-% Nach nun der Stil für den Gliederungsbefehl bekannt ist, können wir dessen
-% Optionen aktivieren:
+% \changes{v3.20}{2015/11/12}{keine Dummy-Optionen für den echten Lauf}^^A
+% Nachdem nun der Stil für den Gliederungsbefehl bekannt ist, können wir
+% dessen Optionen aktivieren:
% \begin{macrocode}
- \scr@dsc@dummyoptions
%<trace> \typeout{TRACE: style=\@nameuse{scr@\scr@dsc@current @style}}%
\@nameuse{scr@dsc@style@\@nameuse{scr@\scr@dsc@current @style}@options}%
% \end{macrocode}
+% Außerdem muss der Verzeichniseintrags-Stils initialisiert werden:
+% \begin{macrocode}
+%<trace> \typeout{TRACE: tocstyle=%
+%<trace> \@nameuse{scr@dte@\scr@dsc@current @style}}%
+ \scr@ifundefinedorrelax{scr@dte@\scr@dsc@current @style}{%
+ \scr@ifundefinedorrelax{l@\scr@dsc@current}{%
+ \@namedef{scr@dte@\scr@dsc@current @style}{default}%
+ }{}%
+ }{}%
+% \end{macrocode}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
+% An dieser Stelle müssen die Optionen des Verzeichniseintrags auf Optionen
+% der Gliederungsebene abgebildet werden. Dazu erhalten sie in der
+% Gliederungebene den Präfix \texttt{toc}. Das bedeutet gleichzeitig, dass es
+% keine Verzeichniseintragsoption Namens \texttt{style} geben kann und dass
+% Gliederungsoptionen nicht mit \texttt{toc} beginnen dürfen.
+% \begin{macrocode}
+ \let\scr@dsc@tocstyle@options\@empty
+ \let\scr@dsc@extra@relax@opts\@empty
+ \scr@ifundefinedorrelax{scr@dte@\scr@dsc@current @style}{}{%
+ \begingroup
+ \def\scr@dte@current{#2}%
+ \edef\reserved@a{%
+ \noexpand\@ExecuteTOCEntryStyleInitCode{%
+ \@nameuse{scr@dte@\scr@dsc@current @style}%
+ }{\scr@dsc@current}%
+ }\reserved@a
+ \def\do@endgroup{\endgroup}%
+ \def\do##1{%
+ \l@addto@macro\do@endgroup{%
+ \l@addto@macro\scr@dsc@extra@relax@opts{%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{toc##1}%
+ }%
+ }%
+ \kernel@ifnextchar[%]
+ {\@dodefault{##1}}%
+ {\@donodefault{##1}}%
+ }%
+ \def\@donodefault##1{%
+ \l@addto@macro\do@endgroup{%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toc##1}{%
+ \l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \def\@dodefault##1[##2]{%
+ \l@addto@macro\do@endgroup{%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toc##1}[##2]{%
+ \l@addto@macro{\scr@dsc@tocstyle@options}{##1={####1},}%
+ \FamilyKeyStateProcessed
+ }%
+ }%
+ }%
+ \scr@dte@doopts
+ \do@endgroup
+ }%
+% \end{macrocode}
+% Die Optionen für die Stile von Verzeichniseintrag und Gliederungsebene
+% werden nicht erneut benötigt, müssten aber natürlich erneut verarbeitet
+% werden.
+% \begin{macrocode}
+ \DefineFamilyKey[.dsc]{KOMAarg}{style}{\FamilyKeyStateProcessed}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{tocstyle}{\FamilyKeyStateProcessed}%
+% \end{macrocode}
% Dazu kommen einige Optionen, die es schlicht immer gibt:
% \begin{description}\item[\texttt{expandtopt}] Schalter, um die Längen zur
% Definitionszeit statt zur Anwendungszeit komplett zu expandieren. Das
@@ -1613,66 +1784,47 @@
\FamilyStringKey[.dsc]{KOMAarg}{counterwithin}{\scr@local@counterwithin}%
\let\scr@local@counterwithin\relax
% \end{macrocode}
-% \begin{description}\item[\texttt{toclevel}] Ebene im Inhaltsverzeichnis
-% (Voreinstellung ist derselbe Wert wie für level)\end{description}
+% \begin{description}
+% \item[\texttt{toclevel}] Ebene im Inhaltsverzeichnis (Voreinstellung ist
+% derselbe Wert wie für level); diese Option gibt es nur, wenn der
+% Verzeichnisstil sie unterstützt (was jeder Verzeichnisstil
+% sollte); wenn allerdings ein Offset dafür definiert ist, dann wird die
+% Option nicht einfach an den Stil weitergereicht, muss also noch einmal
+% umdefiniert werden.
+% \end{description}
% \begin{macrocode}
- \scr@ifundefinedorrelax{scr@local@tocleveloffset}{%
- \edef\reserved@a{%
- \noexpand\FamilyCounterMacroKey[.dsc]{KOMAarg}{toclevel}{%
- \expandafter\noexpand\csname \scr@dsc@current tocdepth\endcsname}%
- }\reserved@a
- }{%
- \edef\reserved@a{%
- \noexpand\DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
- \noexpand\FamilySetCounterMacro{KOMAarg}{toclevel}{%
- \expandafter\noexpand\csname \scr@dsc@current tocdepth\endcsname
- }%
- \unexpanded{%
- {\numexpr ##1+\scr@local@tocleveloffset\relax}%
- \edef\scr@local@tocleveloffset{%
- \the\numexpr\scr@local@tocleveloffset
- +\scr@local@levelincrease\relax
+ \scr@ifundefinedorrelax{scr@local@tocleveloffset}{}{%
+ \scr@ifundefinedorrelax{KV@KOMAarg.dsc@toclevel}{%
+ }{%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
+ \edef\reserved@a{%
+ \noexpand\l@addto@macro{\noexpand\scr@dsc@tocstyle@options}{%
+ level=\the\numexpr ##1+\scr@local@tocleveloffset\relax,%
}%
+ }\reserved@a
+ \edef\scr@local@tocleveloffset{%
+ \the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
}%
+ \FamilyKeyStateProcessed
}%
- }\reserved@a
- }%
-% \end{macrocode}
-% \begin{description}\item[\texttt{tocindent}] Einzug des
-% Inhaltsverzeichniseintrags\end{description}
-% \begin{macrocode}
- \DefineFamilyKey[.dsc]{KOMAarg}{tocindent}{%
- \FamilySetLength{KOMAarg}{#2}{\@tempskipa}{##1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \ifscr@dsc@expandtopt
- \expandafter\edef\csname scr@\scr@dsc@current @tocindent\endcsname{%
- \the\@tempskipa}%
- \else
- \expandafter\edef\csname scr@\scr@dsc@current @tocindent\endcsname{%
- ##1}%
- \fi
- \fi
- }%
-% \end{macrocode}
-% \begin{description}\item[\texttt{tocnumwidth}] Breite der Nummer des
-% Inhaltsverzeichniseintrags\end{description}
-% \begin{macrocode}
- \DefineFamilyKey[.dsc]{KOMAarg}{tocnumwidth}{%
- \FamilySetLength{KOMAarg}{#2}{\@tempskipa}{##1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \ifscr@dsc@expandtopt
- \expandafter\edef\csname scr@\scr@dsc@current @tocnumwidth\endcsname{%
- \the\@tempskipa}%
- \else
- \expandafter\edef\csname scr@\scr@dsc@current @tocnumwidth\endcsname{%
- ##1}%
- \fi
- \fi
+ }%
}%
% \end{macrocode}
-% Optionen ausführen:
+% \changes{v3.20}{2015/11/12}{Optionen werden nur temporär definiert}^^A
+% Optionen ausführen und anschließend wieder freigeben.
% \begin{macrocode}
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+ \scr@dsc@extra@relax@opts
+ \let\scr@dsc@extra@relax@opts\relax
+ \RelaxSectionCommandOptions
+ \RelaxFamilyKey[.dsc]{KOMAarg}{style}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{tocstyle}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{expandtopt}%
+ \scr@ifundefinedorrelax{scr@local@levelincrease}{}{%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
+ }%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{level}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{counterwithin}%
% \end{macrocode}
% Testen, ob alle benötigten Optionen für die (Um-)Definierung des
% Gliederungsbefehls gesetzt sind:
@@ -1681,14 +1833,6 @@
\scr@ifundefinedorrelax{\scr@dsc@current numdepth}{%
\scr@declaresectioncommanderror{\scr@dsc@current}{section level}{level}%
}{}%
- \scr@ifundefinedorrelax{scr@\scr@dsc@current @tocindent}{%
- \scr@declaresectioncommanderror{\scr@dsc@current}{toc entry indent}
- {tocindent}%
- }{}%
- \scr@ifundefinedorrelax{scr@\scr@dsc@current @tocnumwidth}{%
- \scr@declaresectioncommanderror{\scr@dsc@current}{toc entry number
- width}{tocnumwidth}%
- }{}%
\@nameuse{scr@dsc@style@%
\@nameuse{scr@\scr@dsc@current @style}%
@neededoptionstest}%
@@ -1701,6 +1845,7 @@
% \end{macrocode}
% Zunächst sicherstellen, dass der Zähler existiert und ggf. dessen
% Ausgabe anpassen:
+% \changes{v3.20}{2015/10/15}{fehlendes \cs{expandafter} ergänzt}^^A
% \begin{macrocode}
\@ifundefined{c@#2}{\newcounter{#2}}{}%
\ifx\scr@local@counterwithout\relax
@@ -1716,7 +1861,7 @@
\else
\@removefromreset{#2}{\scr@local@counterwithin}%
\@addtoreset{#2}{\scr@local@counterwithin}%
- \expandafter\def\csname the#2\expandafter\endcsname{%
+ \expandafter\def\csname the#2\expandafter\endcsname\expandafter{%
\csname the\scr@local@counterwithin\endcsname.\arabic{#2}}%
\fi
\fi
@@ -1767,22 +1912,27 @@
% Und es gehören Befehle dazu, um einen Eintrag ins Inhaltsverzeichnis zu
% schreiben und den Eintrag auch darzustellen:
% \begin{macrocode}
- \scr@ifundefinedorrelax{#2tocdepth}{%
- \expandafter\let\csname #2tocdepth\expandafter\endcsname
- \csname #2numdepth\endcsname
- }{}%
\expandafter\providecommand\expandafter*%
\csname add#2tocentry\endcsname[2]{%
\addtocentrydefault{#2}{##1}{##2}%
}%
+ \scr@ifundefinedorrelax{scr@dte@#2@style}{%
+ }{%
+ \DeclareTOCStyleEntry[\scr@dsc@tocstyle@options]{%
+ \@nameuse{scr@dte@#2@style}%
+ }{#2}%
+ }%
\scr@ifundefinedorrelax{l@#2}{%
- \expandafter\edef\csname l@#2\endcsname{%
- \noexpand\bprot@dottedtocline
- \expandafter\noexpand\csname #2tocdepth\endcsname
- \expandafter\noexpand\csname scr@#2@tocindent\endcsname
- \expandafter\noexpand\csname scr@#2@tocnumwidth\endcsname
- }%
+ \DeclareTOCStyleEntry[\scr@dsc@tocstyle@options]{default}{#2}%
}{}%
+% \end{macrocode}
+% \changes{v3.20}{2015/0/07}{\textsf{hyperref} bei den Ebenen der
+% Verzeichniseinträge berücksichtigen}^^A
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{toclevel@part}{}{%
+ \expandafter\let\csname toclevel@#2\expandafter\endcsname
+ \csname #2tocdepth\endcsname
+ }%
}%
}%
\let\scr@dsc@current\relax
@@ -1890,9 +2040,9 @@
% \begin{macrocode}
\newcommand*{\DeclareSectionCommands}[2][]{%
\edef\reserved@a{#2}%
- \let\scr@local@levelincrease\z@
- \let\scr@local@leveloffset\z@
- \let\scr@local@tocleveloffset\z@
+ \def\scr@local@levelincrease{\z@}%
+ \def\scr@local@leveloffset{\z@}%
+ \def\scr@local@tocleveloffset{\z@}%
\@for\reserved@a:=\reserved@a\do{%
\edef\reserved@a{%
\unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
@@ -1916,9 +2066,9 @@
% \begin{macrocode}
\newcommand*{\DeclareNewSectionCommands}[2][]{%
\edef\reserved@a{#2}%
- \let\scr@local@levelincrease\z@
- \let\scr@local@leveloffset\z@
- \let\scr@local@tocleveloffset\z@
+ \def\scr@local@levelincrease{\z@}%
+ \def\scr@local@leveloffset{\z@}%
+ \def\scr@local@tocleveloffset{\z@}%
\@for\reserved@a:=\reserved@a\do{%
\@ifundefined{\reserved@a}{}{%
\ClassError{\KOMAClassName}{%
@@ -1957,9 +2107,9 @@
% \begin{macrocode}
\newcommand*{\RedeclareSectionCommands}[2][]{%
\edef\reserved@a{#2}%
- \let\scr@local@levelincrease\z@
- \let\scr@local@leveloffset\z@
- \let\scr@local@tocleveloffset\z@
+ \def\scr@local@levelincrease{\z@}%
+ \def\scr@local@leveloffset{\z@}%
+ \def\scr@local@tocleveloffset{\z@}%
\@for\reserved@a:=\reserved@a\do{%
\@ifundefined{\reserved@a}{%
\ClassError{\KOMAClassName}{%
@@ -1996,9 +2146,9 @@
% \begin{macrocode}
\newcommand*{\ProvideSectionCommands}[2][]{%
\edef\reserved@a{#2}%
- \let\scr@local@levelincrease\z@
- \let\scr@local@leveloffset\z@
- \let\scr@local@tocleveloffset\z@
+ \def\scr@local@levelincrease{\z@}%
+ \def\scr@local@leveloffset{\z@}%
+ \def\scr@local@tocleveloffset{\z@}%
\@for\reserved@a:=\reserved@a\do{%
\@ifundefined{\reserved@a}{%
\edef\reserved@a{%
@@ -2010,9 +2160,9 @@
% Wenn die Anweisung bereits definiert ist, dann müssen wir trotzdem die
% Optionen auswerten, wobei allerdings nur die Option \texttt{level} und
% \texttt{increaselevel} eine Wirkung haben dürfen. Der Rest wird per
-% dummy-Optionen erledigt.
+% \texttt{@else}-Optionen erledigt.
% \begin{macrocode}
- \scr@dsc@dummyoptions
+ \DefineFamilyKey[.dsc]{KOMAarg}{@else@}{\FamilyKeyStateProcessed}%
\FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
{\scr@local@levelincrease}%
\DefineFamilyKey[.dsc]{KOMAarg}{level}{%
@@ -2020,11 +2170,18 @@
\edef\scr@local@leveloffset{%
\the\numexpr\scr@local@leveloffset+\scr@local@levelincrease\relax
}%
+ }%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
+ \FamilySetCounterMacro{KOMAarg}{toclevel}{\reserved@b}{##1}%
\edef\scr@local@tocleveloffset{%
\the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
}%
}%
\FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{toclevel}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{level}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{@else@}%
}%
}%
\let\scr@local@levelincrease\relax
@@ -2065,6 +2222,8 @@
% \end{macro}
% \begin{macro}{\set@preamble}
% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
% Das Makro \cs{set@preamble} dient allgemein der Defintion einer
% Präambel (für Gliederungsüberschriften). Als Argument wird der
% Name der Gliederungsebene übergeben. Danach folgt ein optionales
@@ -2075,6 +2234,8 @@
% Präambel. Die Definition der Präambel erfolgt global.
% \begin{macro}{\set@@preamble}
% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
+% \cs{kernel@ifnextchar}}^^A
% \begin{macro}{\set@@@preamble}
% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
% \begin{macro}{\set@@@@preamble}
@@ -2089,7 +2250,7 @@
% \end{macrocode}
% Zunächst wird das erste optionale Argument gesucht.
% \begin{macrocode}
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
{\set@@preamble{#1}}{\set@@@preamble{#1}[][\hsize]}%
}
\newcommand*{\set@@preamble}{}
@@ -2098,7 +2259,7 @@
% Wenn ein optionales Argument existiert, kann es auch ein zweites
% geben. Wenn nicht, wird mit der Voreinstellung gearbeitet.
% \begin{macrocode}
- \@ifnextchar [%]
+ \kernel@ifnextchar [%]
{\set@@@preamble{#1}[{#2}]}{\set@@@preamble{#1}[{#2}][\hsize]}%
}
\newcommand{\set@@@preamble}{}
@@ -2271,19 +2432,11 @@
\newcommand*{\bprot@dottedtocline}[5]{%
\expandafter\ifnum\scr@v@is@gt{2.96}\relax
\ifnum #1>\c@tocdepth \else
- \begingroup
- \@tempcnta 20010
- \advance \@tempcnta by -#1
- \ifnum \@tempcnta>\lastpenalty
- \endgroup
+ \ifnum \lastpenalty<\numexpr 20010-#1\relax
\addpenalty{\@lowpenalty}%
- \else
- \endgroup
\fi
\@dottedtocline{#1}{#2}{#3}{#4}{#5}%
- \@tempcnta 20009
- \advance \@tempcnta by -#1
- \penalty\@tempcnta
+ \penalty \numexpr 20009-#1\relax
\fi
\else
\@dottedtocline{#1}{#2}{#3}{#4}{#5}%
@@ -2597,7 +2750,6 @@
% \begin{macrocode}
\newcommand{\scr@@startpart}{}
\long\def\scr@@startpart#1[#2]#3{%
-%<trace> \typeout{TRACE: \string\scr@@startpart{#1}}%
% \end{macrocode}
% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
% Argument der Gliederungsbefehle}^^A
@@ -2747,7 +2899,6 @@
% ist der \meta{Text} für die Überschrift.
% \begin{macrocode}
\newcommand{\scr@@startspart}[2]{%
-%<trace> \typeout{TRACE: \string\scr@@startspart{#1}}%
% \end{macrocode}
% Für Leute, die unbedingt nach der Sternversion noch ein \cs{addcontentsline}
% anfügen wollen, muss hier ebenfalls der \textsf{hyperref}-Hook ausgeführt
@@ -2970,6 +3121,7 @@
% verwendet}^^A
% \changes{v3.15}{2014/12/23}{Verwendung von \cs{parttocdepth} und
% \cs{scr@part@numwidth}}^^A
+% \changes{v3.20}{2015/10/06}{Überführung in Verzeichnisstil}^^A
% Der Eintrag für \cs{part}. Es werden einige Hilfsmakros passend zu
% \cs{DeclareSectionCommand} definiert. Dadurch können diverse Einstellungen
% darüber geändert werden. Es kann jedoch derzeit kein neuer Stil zugewiesen
@@ -2977,74 +3129,14 @@
% \begin{macro}{\scr@part@tocindent}
% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
% \changes{v3.18}{2015/06/09}{indirekt über \cs{DeclareSectionCommand}}^^A
-% Wird nicht verwendet aber zwecks besserer Kompatibilität mit
-% \cs{DeclareSectionCommand} definiert.
+% \changes{v3.20}{2015/11/06}{wird nun auch verwendet}^^A
+% Der Einzug des Eintrags noch vor der Nummer.
% \end{macro}^^A \scr@part@tocindent
% \begin{macro}{\scr@part@tocnumwidth}
% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
% \changes{v3.18}{2015/06/09}{indirekt über \cs{DeclareSectionCommand}}^^A
% Die definierte Breite der Nummer für den Eintrag ins Inhaltsverzeichnis.
% \end{macro}
-% \begin{macrocode}
-\newcommand*\l@part[2]{%
- \ifnum \c@tocdepth <\parttocdepth \else
-%<article> \addpenalty{\@secpenalty}%
-%<book|report> \addpenalty{-\@highpenalty}%
- \addvspace{2.25em \@plus\p@}%
-% \end{macrocode}
-% \changes{v2.5e}{1998/07/17}{geänderte part-Formatierung ragte in
-% den linken Rand}^^A
-% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}^^A
-% \begin{macrocode}
- \setlength{\@tempdima}{\scr@part@tocnumwidth}%
- \if@tocleft
- \ifx\toc@l@number\@empty\else
- \setlength\@tempdima{0\toc@l@number}%
- \fi
- \fi
- \begingroup
- \parindent \z@ \rightskip \@pnumwidth
- \parfillskip -\@pnumwidth
-% \end{macrocode}
-% \changes{v2.5c}{1997/11/25}{Formatierung bei Zeilenumbruch im
-% part-Eintrag korrigiert}^^A
-% \changes{v2.5e}{1998/07/17}{beinhaltet \cs{sectfont} eine
-% Größenangabe, so wird diese überschrieben}^^A
-% \begin{macrocode}
- \leavevmode
- \advance\leftskip\@tempdima
- \hskip -\leftskip
- \usekomafont{partentry}{#1\nobreak
- \usekomafont{partentrypagenumber}{\hfil\nobreak
- \hb@xt@\@pnumwidth{\hss#2}}}\par
-% \end{macrocode}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{part}-Eintrag im
-% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}^^A
-% Aus unerfindlichen Gründen war es bis Version~2.96 erlaubt, dass zwischen
-% der \cs{part}-Überschrift und der nachfolgenden Überschrift ein Umbruch
-% stattfinden kann. Ab Version~2.96a gilt das nur noch, wenn die nachfolgende
-% Überschrift wiederum eine \cs{part}-Überschrift ist.
-% \begin{macrocode}
- \expandafter\ifnum\scr@v@is@gt{2.96}\relax
- \endgroup
- \penalty20010
- \else
-%<*article>
- \if@compatibility
- \global\@nobreaktrue
-% \end{macrocode}
-% \changes{v2.3g}{1996/01/14}{fehlendes Kommentarzeichen ergänzt}^^A
-% \begin{macrocode}
- \everypar{\global\@nobreakfalse\everypar{}}%
- \else
-%</article>
- \penalty\@highpenalty
-%<article> \fi
- \endgroup
- \fi
- \fi
-}
-% \end{macrocode}
% \end{macro}^^A \l@part
%
%
@@ -3662,9 +3754,11 @@
\chapterheadstartvskip
% \end{macrocode}
% Dann die eigentliche Überschrift innerhalb einer Gruppe.
+% \changes{v3.20}{2015/12/23}{\cs{parfillskip} auf \texttt{\cs{z@} plus
+% 1fil} gesetzt}^^A
% \begin{macrocode}
{%
- \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
+ \setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ plus 1fil}%
% \end{macrocode}
% \changes{v3.19}{2015/08/02}{Verwendung von \cs{chapterlinesformat} und
% \cs{chapterlineswithprefixformat}}^^A
@@ -3743,13 +3837,15 @@
% \cs{raggedsection}}^^A
% \changes{v3.19}{2015/08/02}{an die Änderungen bei \cs{scr@@makechapterhead}
% angepasst}^^A
+% \changes{v3.20}{2015/12/23}{\cs{parfillskip} auf \texttt{\cs{z@} plus
+% 1fil} gesetzt}^^A
% \begin{macrocode}
\newcommand*{\scr@@makeschapterhead}[2]{%
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
\ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
\chapterheadstartvskip
{%
- \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
+ \setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ plus 1fil}%
\let\IfUseNumber\secondoftwo
\if@chapterprefix
\let\IfUsePrefixLine\@firstoftwo
@@ -4070,6 +4166,7 @@
Please update hyperref to at least version
6.71b}}}
%</book>
+%</body>
% \end{macrocode}
% \end{macro}^^A \@saddchap
% \end{macro}^^A \@addchap
@@ -4092,6 +4189,7 @@
% \cs{scr@chapter@tocnumwidth}}^^A
% \changes{v3.15}{2014/12/10}{Verwendung von \cs{addvspace} statt \cs{vskip}
% für den Abstand am Anfang}^^A
+% \changes{v3.20}{2015/10/06}{überführt in Verzeichnisstil}^^A
% Für die Definition des Kapiteleintrags ins Inhaltsverzeichnis werden einige
% Parameter von \cs{DeclareSectionCommand} definiert und teilweise
% verwendet. Damit kann man dann zumindest einige Änderungen mit
@@ -4100,7 +4198,8 @@
% \begin{macro}{\scr@chapter@tocindent}
% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}^^A
-% Der Einzug des Eintrags wird nicht verwendet.
+% \changes{v3.20}{2015/11/06}{wird nun auch verwendet}^^A
+% Der Einzug des Eintrags noch vor der Nummer.
% \end{macro}^^A \scr@chapter@tocindent
% \begin{macro}{\scr@chapter@tocnumwidth}
% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
@@ -4112,65 +4211,17 @@
% Seit Version~3.15 kann man mit dieser Option Pünktchen zwischen Text und
% Seitenzahl in den Kapiteleinträgen einschalten.
% \begin{macrocode}
-%</body>
%<*option>
\KOMA@ifkey{chapterentrydots}{@chapterentrywithdots}
%</option>
-%<*body>
% \end{macrocode}
% \end{option}^^A chapterentrydots
-% \begin{macrocode}
-\newcommand*\l@chapter[2]{%
- \ifnum \c@tocdepth <\chaptertocdepth \else
- \ifnum \lastpenalty<20010
- \addpenalty{-\@highpenalty}%
- \fi
- \expandafter\ifnum\scr@v@is@lt{3.15}%
- \vskip 1.0em \@plus\p@
- \else
- \addvspace{1.0em \@plus\p@}%
- \fi
- \setlength\@tempdima{\scr@chapter@tocnumwidth}%
- \if@tocleft
- \ifx\toc@l@number\@empty\else
- \setlength\@tempdima{0\toc@l@number}%
- \fi
- \fi
- \begingroup
- \raggedchapterentry
- \parindent \z@ \advance\rightskip \@pnumwidth
- \parfillskip -\@pnumwidth
- \interlinepenalty\@M
- \leavevmode
- \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
- \edef\@pnumwidth{\the\dimexpr\@pnumwidth\relax}%
- \usekomafont{chapterentry}{#1\nobreak
- \usekomafont{chapterentrypagenumber}{%
-% \end{macrocode}
-% \changes{v3.15}{2014/10/12}{optionale Pünktchen im Eintrag}^^A
-% \begin{macrocode}
- {\usekomafont{chapterentrydots}{%
- \if@chapterentrywithdots
- \leaders\hbox{$\m@th
- \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
- mu$}%
- \fi
- \hfill}}\nobreak
- \hb@xt@\@pnumwidth{\hss#2}}}\par
- \expandafter\ifnum\scr@v@is@gt{2.96}\relax
- \endgroup
- \penalty20009
- \else
- \penalty\@highpenalty
- \endgroup
- \fi
- \fi
-}
-% \end{macrocode}
% \begin{macro}{\raggedchapterentry}
% \changes{v2.97c}{2007/06/21}{neue Anweisung}^^A
+% \changes{v3.20}{2015/02/23}{wird nicht mehr verwendet}^^A
% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis.
% \begin{macrocode}
+%<*body>
\newcommand*{\raggedchapterentry}{}
% \end{macrocode}
% \end{macro}^^A \raggedchapterentry
@@ -4439,11 +4490,12 @@
% \changes{v3.15}{2014/11/24}{\cs{sectiontocdepth},
% \cs{scr@section@tocindent} und \cs{scr@section@tocnumwidth} werden
% verwendet}^^A
+% \changes{v3.20}{2015/10/06}{Überführung in Verzeichnisstil}^^A
% Bei der Artikel-Klasse folgt die Formatierung für
% \cs{section}-Einträge, an Stelle der Einträge für \cs{chapter}
% der Buch- oder der Bericht-Klasse. Bei diesen handelt es sich hier
% stattdessen um eine normale Ebene.
-% \begin{option}{chapterentrydots}
+% \begin{option}{sectionentrydots}
% \changes{v3.15}{2014/12/10}{Neu}^^A
% Seit Version~3.15 kann man mit dieser Option Pünktchen zwischen Text und
% Seitenzahl in den Kapiteleinträgen einschalten.
@@ -4453,59 +4505,19 @@
\KOMA@ifkey{sectionentrydots}{@sectionentrywithdots}
%</option>
% \end{macrocode}
-% \end{option}^^A chapterentrydots
-% \begin{macrocode}
-%<*body>
-\newcommand*\l@section[2]{%
- \ifnum \c@tocdepth <\sectiontocdepth\else
- \ifnum \lastpenalty<20009
- \addpenalty{\@secpenalty}%
- \fi
- \addvspace{1.0em \@plus\p@}%
- \setlength\@tempdima{\dimexpr\scr@section@tocnumwidth}%
- \if@tocleft
- \ifx\toc@l@number\@empty\else
- \setlength\@tempdima{0\toc@l@number}%
- \fi
- \fi
- \begingroup
- \raggedsectionentry
- \parindent \z@ \advance\rightskip \@pnumwidth
- \parfillskip -\@pnumwidth
- \interlinepenalty\@M
- \leavevmode
- \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
- \edef\@pnumwidth{\the\dimexpr\@pnumwidth\relax}%
- \usekomafont{sectionentry}{#1\nobreak
- \usekomafont{sectionentrypagenumber}{%
-% \end{macrocode}
-% \changes{v3.15}{2014/10/12}{optionale Pünktchen im Eintrag}^^A
-% \begin{macrocode}
- {\usekomafont{sectionentrydots}{%
- \if@sectionentrywithdots
- \leaders\hbox{$\m@th
- \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
- mu$}%
- \fi
- \hfill}}\nobreak
- \hb@xt@\@pnumwidth{\hss#2}}}\par
- \endgroup
- \expandafter\ifnum\scr@v@is@gt{2.96}\relax
- \penalty20008
- \fi
- \fi
-}
-% \end{macrocode}
+% \end{option}^^A sectionentrydots
% \begin{macro}{\raggedsectionentry}
% \changes{v2.97c}{2007/06/21}{neue Anweisung}^^A
+% \changes{v3.20}{2016/02/23}{nicht mehr verwendet}^^A
% Ausrichtung des Textes der Abschnittseinträge im Inhaltsverzeichnis.
% \begin{macrocode}
+%<*body>
\newcommand*{\raggedsectionentry}{}
%</body>
%</article>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \raggedsectionentry
+% \end{macro}^^A \l@section
%
%
% \begin{macro}{\addsec}
@@ -4976,17 +4988,19 @@
%<article> level=\z@,%
%<report|book> level=\m@ne,%
%<report|book> pagestyle=plain,%
+ tocstyle=part,%
toclevel=\m@ne,%
tocindent=\z@,%
- tocnumwidth=2em
+ tocnumwidth=2em%
]{part}
%<*book|report>
\DeclareSectionCommand[%
style=chapter,%
level=\z@,%
pagestyle=plain,%
+ tocstyle=chapter,%
tocindent=\z@,%
- tocnumwidth=1.5em
+ tocnumwidth=1.5em%
]{chapter}
%</book|report>
\DeclareSectionCommand[%
@@ -4995,6 +5009,7 @@
indent=\z@,%
beforeskip=-3.5ex \@plus -1ex \@minus -.2ex,%
afterskip=2.3ex \@plus.2ex,%
+ tocstyle=section,%
%<article> tocindent=0pt,%
%<book|report> tocindent=1.5em,%
%<article> tocnumwidth=1.5em%
@@ -5006,6 +5021,8 @@
indent=\z@,%
beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
afterskip=1.5ex \@plus .2ex,%
+%<article> tocstyle=subsection,%
+%<book|report> tocstyle=section,%
%<article> tocindent=1.5em,%
%<book|report> tocindent=3.8em,%
%<article> tocnumwidth=2.3em%
@@ -5017,6 +5034,8 @@
indent=\z@,%
beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
afterskip=1.5ex \@plus .2ex,%
+%<article> tocstyle=subsection,%
+%<book|report> tocstyle=section,%
%<article> tocindent=3.8em,%
%<book|report> tocindent=7.0em,%
%<article> tocnumwidth=3.2em%
@@ -5028,6 +5047,8 @@
indent=\z@,%
beforeskip=3.25ex \@plus1ex \@minus.2ex,%
afterskip=-1em,%
+%<article> tocstyle=subsection,%
+%<book|report> tocstyle=section,%
%<article> tocindent=7.0em,%
%<book|report> tocindent=10em,%
%<article> tocnumwidth=4.1em%
@@ -5039,6 +5060,8 @@
indent=\scr@parindent,%
beforeskip=3.25ex \@plus1ex \@minus .2ex,%
afterskip=-1em,%
+%<article> tocstyle=subsection,%
+%<book|report> tocstyle=section,%
%<article> tocindent=10em,%
%<book|report> tocindent=12em,%
%<article> tocnumwidth=5em%
@@ -5090,12 +5113,14 @@
% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}^^A
% \changes{v3.12}{2013/11/11}{wird wegen Option
% \texttt{headings!=standardclasses} früher definiert}^^A
+% \changes{v3.20}{2016/01/29}{\cs{sffamily} durch \cs{@gr@gsffamily}
+% ersetzt}^^A
% Dies Schriftart nicht nur für die Gliederungsbefehle. Dieses Makro
% ist als intern zu betrachten. Der Anwender sollte stattdessen das
% entsprtechende Fontelement verwenden.
% \begin{macrocode}
%<*prepare>
-\newcommand*{\sectfont}{\normalcolor\sffamily\bfseries}
+\newcommand*{\sectfont}{\normalcolor\@gr@gsffamily\bfseries}
%</prepare>
%<*body>
\newcommand*{\scr@fnt@disposition}{\sectfont}