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.dtx4764
1 files changed, 2867 insertions, 1897 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 bd91213ba06..5d073d94f24 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{2443}
+% \CheckSum{3309}
% \iffalse meta-comment
% ======================================================================
% scrkernel-sections.dtx
@@ -55,15 +55,15 @@
% Right brace \} Tilde \~}
%
% \iffalse
-%%% From File: $Id: scrkernel-sections.dtx 1788 2014-09-11 13:41:04Z kohm $
+%%% From File: $Id: scrkernel-sections.dtx 1891 2014-12-23 17:19:04Z kohm $
%<*driver>
% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2014-09-11 15:41:04 +0200 (Thu, 11 Sep 2014) $
+ \filedate$Date: 2014-12-23 18:19:04 +0100 (Tue, 23 Dec 2014) $
\def\filerevision$#1: #2 ${\gdef\filerevision{#2}}
- \filerevision$Revision: 1788 $
+ \filerevision$Revision: 1891 $
\endgroup
\ProvidesFile{scrkernel-sections.dtx}[\filedate\space\filerevision\space
KOMA-Script (disposition)]
@@ -90,8 +90,12 @@
%
% \selectlanguage{ngerman}
%
-% \changes{v2.95}{2002/06/26}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \changes{v2.3h}{1996/01/20}{Größenbefehle in den Überschriften
+% variabilisiert}^^A
+% \changes{v2.95}{2002/06/26}{erste Version aus der Aufteilung von
+% \texttt{scrclass.dtx}}^^A
+% \changes{v3.15}{2014/12/09}{Code in Datei \texttt{scrkernel-section} komplett
+% umsortiert}^^A
%
% \section{Gliederung}
%
@@ -103,44 +107,48 @@
% Entscheidung wurde getroffen, weil die Zusammengehörigkeit eher hier
% gesehen wird, als bei den Verzeichnissen selbst.
%
-% Briefe haben derzeit keine derartige Gliederung.
-%
% \StopEventually{\PrintIndex\PrintChanges}
%
+% \changes{v2.8e}{2001/07/10}{\cs{@maybeasf} entfernt}
+%
+% Die Briefklasse hat keine derartige Gliederung. Beim Briefpaket wird die
+% Gliederung über die verwendete Klasse bestimmt.
% \iffalse
%<*!letter>
% \fi
%
-% \iffalse
-%<*option>
-% \fi
-% \subsection{Optionen für die Gliederung}
+% \subsection{Vakatseiten}
+%
+% Bei \textsf{scrbook} und \textsf{scrreprt} gibt es im doppelseitigen Modus
+% ggf. Vakatseiten.
%
-% \iffalse
-%<*class>
-%<*book|report>
-% \fi
% \begin{option}{open}
% \changes{v2.98c}{2008/03/06}{Neue Option}
% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
% \cs{FamilyKeyState}}
% Bei \textsf{scrreprt} und \textsf{scrbook} kann per Option eingestellt
-% werden, ob Kapitel nur auf linken oder rechten Seiten beginnen dürfen oder
-% auf jeder Seite.
+% werden, ob beispielsweise Kapitel nur auf linken oder rechten Seiten
+% beginnen dürfen oder auf jeder Seite.
% \begin{macro}{\if@openright}
% \begin{macro}{\@openrighttrue}
% \begin{macro}{\@openrightfalse}
% Der Zustand wird dann in einem Schalter und durch umdefinieren von
-% \cs{cleardoublestandardpage} gespeichert.
+% \cs{cleardoublestandardpage} gespeichert. Die Voreinstellungen sind je nach
+% Klasse unterschiedlich.
% \begin{macrocode}
+%<*class>
+%<*book|report>
+%<*prepare>
\newif\if@openright
%<report>\@openrightfalse
%<book>\@openrighttrue
+%</prepare>
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \begin{macrocode}
+%<*option>
\KOMA@key{open}{%
\KOMA@set@ncmdkey{open}{@tempa}{%
{any}{0},%
@@ -168,17 +176,24 @@
% \begin{option}{openany}
% \changes{v2.98c}{2008/03/05}{obsolet}
% \changes{v3.01a}{2008/11/21}{standard statt obsolet}
+% Zusätzlich gibt es einige Standardoptionen, die natürlich auch mit
+% \KOMAScript{} funktionieren sollen.
% \begin{macrocode}
\KOMA@DeclareStandardOption{openright}{open=right}
\KOMA@DeclareStandardOption{openany}{open=any}
+%</option>
+%</book|report>
+%</class>
% \end{macrocode}
% \end{option}
% \end{option}
-% \iffalse
-%</book|report>
-% \fi
%
%
+% \subsection{Behandlung von Gliederungsnummern}
+%
+% Die Möglichkeit der Nummerierung ist allen Ebenen bis auf \cs{minisec}
+% gemeinsam.
+%
% \begin{option}{numbers}
% \changes{v2.98c}{2008/03/07}{Neue Option}
% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
@@ -191,8 +206,10 @@
% Da die Umschaltung zwischen automatischem Endpunkt, immer Endpunkt und kein
% Endpunkt unbedingt \emph{vor} \cs{begin{document}} erfolgen muss, wird eine
% Fehlermeldung ausgegeben, falls das jemand zu einem späteren Zeitpunkt
-% probiert.
+% probiert. Umschaltmöglichkeiten sind auf die Klassen beschränkt.
% \begin{macrocode}
+%<*class>
+%<*prepare>
\newcommand*{\scr@dotchangeatdocument}[1]{%
\ClassError{\KOMAClassName}{%
change of end dot feature after \string\begin{document}%
@@ -202,6 +219,7 @@
See KOMA-Script manual for more information about.%
}%
}
+%</prepare>
% \end{macrocode}
% \end{macro}
% Normalerweise wird automatisch entschieden, ob Nummern mit einem
@@ -211,6 +229,7 @@
% erfolgt zeitverzögert in \cs{begin{document}}. Hier wird nur das Makro
% umgeschaltet, das dort verwendet wird.
% \begin{macrocode}
+%<*option>
\KOMA@key{numbers}{%
\KOMA@set@ncmdkey{numbers}{@tempa}{%
{autoendperiod}{0},{autoenddot}{0},{auto}{0},%
@@ -235,31 +254,8 @@
\fi
\fi
}
+%</option>
% \end{macrocode}
-% \begin{macro}{\scr@altsecnumhook}
-% \changes{v2.98c}{2008/03/07}{Neu (intern)}
-% \begin{macro}{\scr@altsecnumhooktrue}
-% \changes{v2.98c}{2008/03/07}{Neu (intern)}
-% \begin{macro}{\scr@altsecnumhookfalse}
-% \changes{v2.98c}{2008/03/07}{Neu (intern)}
-% Es werden drei Hilfsmakros benötigt. Das erste davon wird bei
-% \cs{begin{document}} ausgeführt (nachdem die \texttt{aux}-Datei gelesen
-% wurde!) und schaltet den gewünschten Zustand ein. Dazu wird es per Option
-% ggf. auf die eine oder andere Bedeutung umgeschaltet. Im Auto-Fall ist es
-% übrigens \cs{@empty}.
-% \begin{macrocode}
-\newcommand*{\scr@altsecnumhook}{}
-\AtBeginDocument{\scr@altsecnumhook}
-\newcommand*{\scr@altsecnumhooktrue}{%
- \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue
-}
-\newcommand*{\scr@altsecnumhookfalse}{%
- \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
% \end{option}
%
% \begin{option}{pointednumbers}
@@ -278,645 +274,180 @@
% auf \cs{@altsecnumformatfalse} gesetzt}
% \changes{v2.98c}{2008/03/07}{obsolet}
% \changes{v3.01a}{2008/11/20}{deprecated}
+% Diese Optionens sind nun wirklich veraltet und sollten nicht mehr verwendet
+% werden!
% \begin{macrocode}
+%<*option>
\KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot}
\KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot}
+%</option>
% \end{macrocode}
% Übrigens weiß ich, wie blödsinnig die Namen der Optionen sind. Aber
% das ist nun nicht mehr zu ändern.
% \end{option}
% \end{option}
%
-%
-% \begin{option}{chapterprefix}
-% \changes{v2.8}{2001/06/15}{neue Option}
-% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}
-% \begin{option}{nochapterprefix}
-% \changes{v2.8}{2001/06/15}{neue Option}
-% \changes{v2.95c}{2006/08/21}{obsolete Option}
-% \changes{v3.01a}{2008/11/20}{deprecated}
-% \iffalse
-%<*book|report>
-% \fi
-% Normalerweise verwenden \textsf{scrbook} und \textsf{scrreprt} nicht
-% die enorm großen Überschriften von \textsf{book} und
-% \textsf{report}, die mit einem Absatz "`Kapitel \emph{Nummer}"'
-% beginnen. Mit der Option \texttt{chapterprefix} kann dies jetzt
-% wieder aktiviert werden. Die Option, zur Deaktivierung heißt
-% entsprechend \textsf{nochapterprefix}.
-% \begin{macro}{\if@chapterprefix}
-% \begin{macro}{\@chapterprefixtrue}
-% \begin{macro}{\@chapterprefixfalse}
-% Um für Spezialanwendungen auch innerhalb des Dokuments eine
-% Umschaltung zu ermöglichen bzw. für die Optionen
-% \texttt{appendixprefix} und \texttt{noappendixprefix} erfolgt die
-% Umschaltung durch einen Schalter.
+% \begin{Counter}{secnumdepth}
+% Dieser Zähler gibt an, bis zu welcher Ebene die Gliederungsüberschriften
+% nummeriert werden.
% \begin{macrocode}
-\newif\if@chapterprefix\@chapterprefixfalse
-\KOMA@ifkey{chapterprefix}{@chapterprefix}
-\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false}
+%<*body>
+%<book|report>\setcounter{secnumdepth}{2}
+%<article>\setcounter{secnumdepth}{3}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \iffalse
-%</book|report>
-% \fi
-% \end{option}
-% \end{option}
+% \end{Counter}
%
%
-% \begin{option}{appendixprefix}
-% \changes{v2.8}{2001/06/15}{neue Option}
-% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}
-% \begin{option}{noappendixprefix}
-% \changes{v2.8}{2001/06/15}{neue Option}
-% \changes{v2.95c}{2006/08/21}{obsolete Option}
-% \changes{v3.01a}{2008/11/20}{deprecated}
-% \iffalse
-%<*book|report>
-% \fi
-% Will man abweichend von der Option \texttt{chapterprefix} die großen
-% Überschriften für den Anhang aktivieren oder deaktivieren, so kann man das
-% mit dieser Option erreichen. Allerdings setzt diese keinen Schalter, sondern
-% ein Zusatzmakro, das auch für andere Zwecke genutzt werden kann. Übrigens
-% ist keine der beiden Einstellungen die Voreinstellung!
+% \begin{macro}{\ifnumbered}
+% \changes{v3.12}{2013/12/16}{new command}^^A
+% \begin{macro}{\ifunnumbered}
+% \changes{v3.12}{2013/12/16}{new command}^^A
+% Test, ob eine Gliederungsebene (\texttt{\#1}) nummeriert wird. Falls das der
+% Fall ist, wird das zweite Argument verwendet, sonst das dritte. Bei
+% \cs{ifunnumbered} ist die Logik genau vertauscht.
% \begin{macrocode}
-\KOMA@key{appendixprefix}[true]{%
- \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \if@tempswa
- \def\appendixmore{\@chapterprefixtrue}%
+\newcommand*{\ifnumbered}[1]{%
+ \scr@ifundefinedorrelax{#1numdepth}{%
+ \@secondoftwo
+ }{%
+ \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
+ \expandafter\@secondoftwo
\else
- \def\appendixmore{\@chapterprefixfalse}%
+ \expandafter\@firstoftwo
\fi
- \fi
+ }%
}
-\KOMA@DeclareDeprecatedOption{noappendixprefix}{appendixprefix=false}
-% \end{macrocode}
-% \iffalse
-%</book|report>
-% \fi
-% \end{option}^^A noappendixprefix
-% \end{option}^^A appendixprefix
-%
-%
-% \begin{macro}{\sectfont}
-% \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
-% 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}
+\newcommand*{\ifunnumbered}[1]{%
+ \scr@ifundefinedorrelax{#1numdepth}{%
+ \@firstoftwo
+ }{%
+ \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+}
+%</body>
%</class>
-\newcommand*{\sectfont}{\normalcolor\sffamily\bfseries}
-%<*class>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\size@part}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}
-% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
-% wenn es keine Auswirkung auf den Zeilen abstand hat}
-% \begin{macro}{\size@partnumber}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}
-% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
-% wenn es keine Auswirkung auf den Zeilen abstand hat}
-% \begin{macro}{\size@chapter}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}
-% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
-% wenn es keine Auswirkung auf den Zeilen abstand hat}
-% \begin{macro}{\size@chapterprefix}
-% \changes{v2.96a}{2006/12/02}{neu (intern)}
-% \begin{macro}{\size@section}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}
-% \begin{macro}{\size@subsection}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}
-% \begin{macro}{\size@subsubsection}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}
-% \begin{macro}{\size@paragraph}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}
-% \begin{macro}{\size@subparagraph}
-% \changes{v2.8o}{2001/09/14}{neu (intern)}
-% Diese Makros werden intern von den Elementen benötigt (siehe unten). Darüber
-% hinaus werden sie per Option geändert und sind deshalb vor der
-% entsprechenden Option zu definieren.
-% \begin{macrocode}
-\newcommand*{\size@part}{}
-\newcommand*{\size@partnumber}{}
-%<book|report>\newcommand*{\size@chapter}{}
-%<book|report>\newcommand*{\size@chapterprefix}{\size@chapter}
-\newcommand*{\size@section}{}
-\newcommand*{\size@subsection}{}
-\newcommand*{\size@subsubsection}{}
-\newcommand*{\size@paragraph}{}
-\newcommand*{\size@subparagraph}{}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\chapterheadstartvskip}
-% \begin{macro}{\chapterheadendvskip}
-% \changes{v3.11c}{2013/02/13}{\cs{chapterheadstartvskip} und
-% \cs{chapterheadendvskip} haben in \textsf{scrartcl} nichts verloren}
-% Mit diesen Anweisungen wird üblicherweise der Abstand zwischen
-% oberem Rand des Textbereichs und der Überschrift bzw. der Abstand
-% zwischen der Überschrift und dem Text des Kapitels gesetzt. Man kann
-% die Anweisungen aber zusätzlich auch für andere Zwecke
-% missbrauchen. Das ist der Grund warum diese Makros keine Längen,
-% sondern komplette Anweisungen enthalten. In der Voreinstellung
-% enthalten sie jedoch gar nichts. Die tatsächlichen Werte werden
-% durch die Optionen festgelegt.
-% \begin{macrocode}
-%<*book|report>
-\newcommand*{\chapterheadstartvskip}{}
-\newcommand*{\chapterheadendvskip}{}
-%</book|report>
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{option}{headings}
-% \changes{v2.3h}{1996/01/20}{Größe von \cs{chapter} um eine Stufe
-% verringert}^^A
-% \changes{v2.3h}{1996/01/20}{Verwendung von \cs{chapterheadstartvskip} und
-% \cs{chapterheadendvskip} an Stelle von festen vertikalen Abständen am
-% Anfang und am Ende eines Kapitels}^^A
-% \changes{v2.7c}{2000/01/19}{vertikale Abstände nach der Kapitelüberschrift
-% geringfügig verändert und mit Leim versehen, um mit \cs{flushbottom} zu
-% besseren Ergebnissen zu gelangen}^^A
-% \changes{v2.98c}{2008/03/10}{Neue Option}^^A
-% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}^^A
-% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
-% \cs{FamilyKeyState}}^^A
-% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch \cs{KOMAoptions}
-% ersetzt}^^A
-% \changes{v3.12}{2013/11/11}{neuer Wert \texttt{standardclasses}}^^A
-% Dies ist eine neue zentrale Option für Überschriften. Dabei ergibt sich
-% nun auch das Problem, dass die Gesamtmenge der Überschriften mal
-% \emph{headings} (Überschriften), mal \emph{sectioning}
-% (Abschnittseinteilung) und mal \emph{disposition} (Gliederung) genannt
-% wird. Es wäre gut gewesen, sich bei Zeiten Gedanken darüber zu machen, wie
-% man das am besten einheitlich nennt.
-% \begin{macrocode}
-\KOMA@key{headings}{%
- \KOMA@set@ncmdkey{headings}{@tempa}{%
- {big}{0},%
- {normal}{1},%
- {small}{2},%
-%<*book|report>
- {openany}{3},%
- {openright}{4},%
- {openleft}{5},%
- {twolinechapter}{6},{chapterprefix}{6},{chapterwithprefix}{6},%
- {chapterwithprefixline}{6},%
- {onelinechapter}{7},{nochapterprefix}{7},{chapterwithoutprefix}{7},%
- {chapterwithoutprefixline}{7},%
- {twolineappendix}{8},{appendixprefix}{8},{appendixwithprefix}{8},%
- {appendixwithprefixline}{8},%
- {onelineappendix}{9},{noappendixprefix}{9},{appendixwithoutprefix}{9},%
- {appendixwithoutprefixline}{9},%
-%</book|report>
- {optiontotocandhead}{10},{optiontoheadandtoc}{10},%
- {optiontotoc}{11},%
- {optiontohead}{12},%
- {standardclasses}{13}%
- }{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed
- \ifcase \@tempa\relax
-% \end{macrocode}
-% Als erstes kümmern wir uns um die drei Größenabstufungen für die
-% Überschriften, die \KOMAScript{} bietet, und zwar in der Reihenfolge
-% \texttt{big}, \texttt{normal}, \texttt{small}. Es sei darauf hingewiesen,
-% dass die Verwendung dieser Option alle Änderungen an
-% \cs{chapterheadstartvskip} oder \cs{chapterheadendvskip} oder den
-% Font-Elementen für die einzelnen Überschriften aufhebt macht!
-% \begin{macrocode}
-%<*book|report>
- \renewcommand*{\chapterheadstartvskip}{%
- \vspace*{2.3\baselineskip}%
- }%
- \renewcommand*{\chapterheadendvskip}{%
- \vspace{1.725\baselineskip
- \@plus .115\baselineskip \@minus .192\baselineskip}%
- }%
-%</book|report>
- \renewcommand*{\size@part}{\Huge}%
- \renewcommand*{\size@partnumber}{\huge}%
-%<book|report> \renewcommand*{\size@chapter}{\huge}%
-%<book|report> \renewcommand*{\size@chapterprefix}{\size@chapter}%
- \renewcommand*{\size@section}{\Large}%
- \renewcommand*{\size@subsection}{\large}%
- \renewcommand*{\size@subsubsection}{\normalsize}%
- \renewcommand*{\size@paragraph}{\normalsize}%
- \renewcommand*{\size@subparagraph}{\normalsize}%
- \or
-%<*book|report>
- \renewcommand*{\chapterheadstartvskip}{%
- \vspace*{2\baselineskip}%
- }%
- \renewcommand*{\chapterheadendvskip}{%
- \vspace{1.5\baselineskip
- \@plus .1\baselineskip \@minus .167\baselineskip}%
- }%
-%</book|report>
- \renewcommand*{\size@part}{\huge}%
- \renewcommand*{\size@partnumber}{\huge}%
-%<*book|report>
- \renewcommand*{\size@chapter}{\LARGE}%
- \renewcommand*{\size@chapterprefix}{\size@chapter}%
- \renewcommand*{\size@section}{\Large}%
- \renewcommand*{\size@subsection}{\large}%
-%</book|report>
-%<*article>
- \renewcommand*{\size@section}{\large}%
- \renewcommand*{\size@subsection}{\normalsize}%
-%</article>
- \renewcommand*{\size@subsubsection}{\normalsize}%
- \renewcommand*{\size@paragraph}{\normalsize}%
- \renewcommand*{\size@subparagraph}{\normalsize}%
- \or
-%<*book|report>
- \renewcommand*{\chapterheadstartvskip}{%
- \vspace*{1.8\baselineskip}%
- }%
- \renewcommand*{\chapterheadendvskip}{%
- \vspace{1.35\baselineskip
- \@plus 0.09\baselineskip \@minus .15\baselineskip}%
- }%
-%</book|report>
- \renewcommand*{\size@part}{\LARGE}%
- \renewcommand*{\size@partnumber}{\LARGE}%
-%<*book|report>
- \renewcommand*{\size@chapter}{\Large}%
- \renewcommand*{\size@chapterprefix}{\size@chapter}%
- \renewcommand*{\size@section}{\large}%
-%</book|report>
-%<*article>
- \renewcommand*{\size@section}{\normalsize}%
-%</article>
- \renewcommand*{\size@subsection}{\normalsize}%
- \renewcommand*{\size@subsubsection}{\normalsize}%
- \renewcommand*{\size@paragraph}{\normalsize}%
- \renewcommand*{\size@subparagraph}{\normalsize}%
-% \end{macrocode}
-% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die
-% Möglichkeit, auch hierüber die Optionen \texttt{open=any},
-% \texttt{open=right} und \texttt{open=left} zu setzen.
-% \begin{macrocode}
- \or
-%<*book|report>
- \KOMAoptions{open=any}%
-%</book|report>
- \or
-%<*book|report>
- \KOMAoptions{open=right}%
-%</book|report>
- \or
-%<*book|report>
- \KOMAoptions{open=left}%
-%</book|report>
-% \end{macrocode}
-% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die
-% Möglichkeit, auch hierüber die Optionen \texttt{chapterprefix} und
-% \texttt{appendixprefix} zu setzen.
-% \begin{macrocode}
- \or
-%<*book|report>
- \KOMAoptions{chapterprefix=true}%
-%</book|report>
- \or
-%<*book|report>
- \KOMAoptions{chapterprefix=false}%
-%</book|report>
- \or
-%<*book|report>
- \KOMAoptions{appendixprefix=true}%
-%</book|report>
- \or
-%<*book|report>
- \KOMAoptions{appendixprefix=false}%
-%</book|report>
-% \end{macrocode}
-% Ab Version~3.10 wird über diese Option auch noch die Erweiterung für das
-% optionale Argument der Gliederungsüberschriften aktiviert und gesteuert.
-% \begin{macrocode}
- \or
- \scr@activate@xsection{3}%
- \or
- \scr@activate@xsection{2}%
- \or
- \scr@activate@xsection{1}%
-% \end{macrocode}
-% Ab Version~3.12 gibt es noch die Möglichkeit, die Überschriftengrößen der
-% Standardklassen zu emulieren.
-% \begin{macrocode}
- \or
-%<*book|report>
- \renewcommand*{\chapterheadstartvskip}{%
- \vspace*{50\p@}%
- }%
- \renewcommand*{\chapterheadendvskip}{%
- \vspace{40\p@}%
- }%
- \renewcommand*{\size@part}{\Huge}%
- \renewcommand*{\size@partnumber}{\huge}%
- \renewcommand*{\size@chapter}{\Huge}%
- \renewcommand*{\size@chapterprefix}{\huge}%
-%</book|report>
-%<*article>
- \renewcommand*{\size@part}{\huge}%
- \renewcommand*{\size@partnumber}{\Large}%
-%</article>
- \renewcommand*{\size@section}{\Large}%
- \renewcommand*{\size@subsection}{\large}%
- \renewcommand*{\size@subsubsection}{\normalsize}%
- \renewcommand*{\size@paragraph}{\normalsize}%
- \renewcommand*{\size@subparagraph}{\normalsize}%
- \renewcommand*{\sectfont}{\bfseries}%
-%<book|report> \KOMAoptions{open=right,chapterprefix=true}%
- \fi
- \fi
-}
-% \end{macrocode}
-% \end{option}
%
-% \begin{option}{bigheadings}
-% \changes{v2.3h}{1996/01/20}{neue Option}
-% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
-% Verwendung des alten, falschen Namens wird ein Fehler
-% ausgegeben}
-% \changes{v2.98c}{2008/03/10}{obsolet}
-% \changes{v3.01a}{2008/11/20}{deprecated}
-% \begin{macro}{\@bigheadings}
-% \changes{v2.98c}{2008/03/10}{entfernt}
-% \begin{option}{normalheadings}
-% \changes{v2.3h}{1996/01/20}{neue Option}
-% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
-% Verwendung des alten, falschen Namens wird ein Fehler
-% ausgegeben}
-% \changes{v2.98c}{2008/03/10}{obsolet}
-% \changes{v3.01a}{2008/11/20}{deprecated}
-% \begin{macro}{\@normalheadings}
-% \changes{v2.98c}{2008/03/10}{entfernt}
-% \begin{option}{smallheadings}
-% \changes{v2.3h}{1996/01/20}{neue Option}
-% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
-% Verwendung des alten, falschen Namens wird ein Fehler
-% ausgegeben}
-% \changes{v2.98c}{2008/03/10}{obsolet}
-% \changes{v3.01a}{2008/11/20}{deprecated}
-% \begin{macro}{\@smallheadings}
-% \changes{v2.98c}{2008/03/10}{entfernt}
-% \begin{macrocode}
-\KOMA@DeclareDeprecatedOption{bigheadings}{headings=big}
-\KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal}
-\KOMA@DeclareDeprecatedOption{smallheadings}{headings=small}
-% \end{macrocode}
-% \end{macro}
-% \end{option}
-% \end{macro}
-% \end{option}
-% \end{macro}
-% \end{option}
+% \subsection{\KOMAScript-eigene Befehle zur Definition von
+% Gliederungsbefehlen}
+%
+% Die Funktionalität des \LaTeX-Kerns genügt \KOMAScript{} bei der Definition
+% von Gliederungsebenen nicht.
%
% \begin{macro}{\scr@activate@xsection}
-% \changes{v3.10}{2011/08/30}{neu (intern)}
-% Hiermit wird die Erweiterung für das optionale Argument der
-% Gliederungsbefehle eingeschaltet.
-% \begin{macro}{\scr@osectarg}
-% Für die nicht per \cs{@startsection} implementierten Befehle geht das
-% einfach durch Umschaltung von \cs{scr@osectarg}. Bei 0 ist die Aktivierung
-% nicht aktiv. Bei 1 landet das optionale Argument hingegen im Kopf, bei 2
-% im Inhaltsverzeichnis und bei 3 in beiden. Die Voreinstellung ist deshalb
-% ebenfalls 0.
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% Hiermit wird die Erweiterung für das optionale Argument der
+% Gliederungsbefehle eingeschaltet.
+% \begin{macro}{\scr@osectarg}^^A
+% Für die nicht per \cs{@startsection} implementierten Befehle geht das
+% einfach durch Umschaltung von \cs{scr@osectarg}. Bei 0 ist die Aktivierung
+% nicht aktiv. Bei 1 landet das optionale Argument hingegen im Kopf, bei 2
+% im Inhaltsverzeichnis und bei 3 in beiden. Die Voreinstellung ist deshalb
+% ebenfalls 0.
+%
+% Da Option \texttt{headings} darauf zurückgreift, müssen die beiden Makros
+% bereits vorab definiert werden.
% \begin{macrocode}
+%<*class>
+%<*prepare>
\newcommand*{\scr@osectarg}{0}
\newcommand*{\scr@activate@xsection}[1]{%
\renewcommand*{\scr@osectarg}{#1}%
}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \iffalse
+%</prepare>
%</class>
-%</option>
-%<*body>
-% \fi
-%
-%
-% \subsection{Grobeinteilung von Büchern}
-% \iffalse
-%<*class>
-%<*book>
-% \fi
-%
-% \begin{macro}{\if@mainmatter}
-% \begin{macro}{\@mainmattertrue}
-% \begin{macro}{\@mainmatterfalse}
-% \changes{v2.3a}{1995/07/08}{\cs{if@mainmatter} Anforderung
-% verschoben}
-% Über diesen Schalter wird bei Buchklassen festgelegt, ob wir uns im
-% Hauptteil des Dokuments befinden oder nicht. Die eigentliche
-% Umschaltung geschieht mit Hilfe der Befehle \cs{frontmatter},
-% \cs{mainmatter}, \cs{backmatter}. Ohne Umschaltung befinden wir uns
-% bereits im Hauptteil.
-% \begin{macrocode}
-\newif\if@mainmatter\@mainmattertrue
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\frontmatter}
-% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}
-% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten}
-% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
-% \cs{cleardoublepage}}
-% Der Vorspann enthält bei Büchern oftmals Inhaltsverzeichnis, Vorwort
-% und dergleichen und wird mit kleinen römischen Seitenzahlen
-% versehen.
-% \begin{macrocode}
-\newcommand*\frontmatter{%
- \if@twoside\cleardoubleoddpage\else\clearpage\fi
- \@mainmatterfalse\pagenumbering{roman}%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\mainmatter}
-% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}
-% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten}
-% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
-% \cs{cleardoublepage}}
-% Der Hauptteil ist das Fleisch der Bücher.
-% \begin{macrocode}
-\newcommand*\mainmatter{%
- \if@twoside\cleardoubleoddpage\else\clearpage\fi
- \@mainmattertrue\pagenumbering{arabic}%
-}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\backmatter}
-% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
-% \cs{cleardoublepage}}
-% Auch wenn nicht ganz einzusehen ist, warum das anders sein soll,
-% wird hier nicht nach der Option \texttt{twoside}, sondern nach
-% \texttt{openright} unterschieden.
-% \begin{macrocode}
-\newcommand*\backmatter{%
- \if@openright\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse
-}
-% \end{macrocode}
% \end{macro}
-% \iffalse
-%</book>
-% \fi
-%
-%
-% \subsection{Anhang}
-% \begin{macro}{\appendix}
-% Wird der Anhang aktiviert, so werden Kapitel zukünftig mit Buchstaben
-% nummeriert.
-% \changes{v2.2d}{1995/05/28}{\textsf{scrartcl} benötigt keinen
-% Zähler für \cs{chapter}}
-% \changes{v2.3c}{1995/08/06}{alternative Nummerierung bei
-% Verwendung eines Anhangs}
-% \changes{v2.8}{2001/06/15}{\cs{appendixmore} wird beachtet}
-% \changes{v2.8e}{2001/07/10}{\cs{@altsecnumformattrue} wird nicht
-% länger ausgeführt}
-% \changes{v2.8o}{2001/09/19}{\cs{par} eingefügt}
-% \changes{v2.95}{2006/07/04}{\cs{newcommand*} durch \cs{gdef} ersetzt}
-% \changes{v2.95}{2006/07/04}{Ausführung von \cs{appendixmore} vereinfacht}
-% \begin{macro}{\appendixmore}
-% \cs{appendixmore} kann als \emph{hook} verwendet werden.
-% \begin{macrocode}
-\newcommand*\appendix{\par%
-%<*article>
- \setcounter{section}{0}%
- \setcounter{subsection}{0}%
- \gdef\thesection{\@Alph\c@section}%
-%</article>
-%<*report|book>
- \setcounter{chapter}{0}%
- \setcounter{section}{0}%
- \gdef\@chapapp{\appendixname}%
- \gdef\thechapter{\@Alph\c@chapter}%
-%</report|book>
- \csname appendixmore\endcsname
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-% \subsection{Definitionen für Seitenstile}
-%
-% \begin{macro}{\chaptermark}
-% Da \cs{chapter} nicht mit Hilfe von \cs{@startsection} definiert
-% wird, wird auch \cs{chaptermark} nicht automatisch definiert. Es
-% wird aber in den Seitenstilen benötigt bzw. umdefiniert. Also hier
-% vorsorglich eine Dummy-Definition:
-% \begin{macrocode}
-%<book|report>\newcommand*\chaptermark[1]{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\addchapmark}
-% \changes{v3.12}{2013/03/26}{neue Anweisung}
-% \begin{macro}{\addsecmark}
-% \changes{v3.12}{2013/03/26}{neue Anweisung} Für \cs{addchapmark} und
-% \cs{addsecmark} gilt dies hingegen nicht. Das wird nicht von den Stilen
-% definiert, sondern direkt mit der gewünschten Definition
-% initialisiert. Bitte nicht davon verwirren lassen, dass \cs{if@mainmatter}
-% hier auch von \textsf{scrreprt} definiert wird. Das ist Absicht und
-% vereinfacht dem einen oder anderen Paket oder Benutzer vielleicht die
-% Arbeit.
-% \begin{macrocode}
-%<*book|report>
-\newcommand*\addchapmark[1]{%
- \begingroup
- \expandafter\let\csname if@mainmatter\expandafter\endcsname
- \csname iffalse\endcsname
- \c@secnumdepth=\m@ne
- \chaptermark{#1}%
- \endgroup
-}
-%</book|report>
-\newcommand*\addsecmark[1]{%
- \begingroup
- \c@secnumdepth=\m@ne
- \sectionmark{#1}%
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}^^A \addsecmark
-% \end{macro}^^A \addchapmark
%
-% \subsection{Der Automatismus für den Punkt in der Nummerierung}
-%
-% Nach Duden 20.~Auflage, Regel~5 wird in der Gliederung kein Punkt
-% gesetzt, wenn diese rein mit arabischen Zahlen erfolgt. Nach Regel~6
-% folgt jedoch ein Punkt, wenn die Gliederung auch römische Zahlen
-% oder Großbuchstaben enthält. Aus Konsistenzgründen muss der Punkt in
-% diesem Fall immer gesetzt werden. \KOMAScript{} bietet dafür einen
-% Automatismus.
%
% \begin{macro}{\if@altsecnumformat}
-% \changes{v2.3c}{1995/08/06}{neuer Schalter}
+% \changes{v2.3c}{1995/08/06}{neuer Schalter}^^A
% \begin{macro}{\@altsecnumformattrue}
% \begin{macro}{\@altsecnumformatfalse}
-% Dieses Schalter wird für die Umschaltung auf Duden-Regel~6 bei der
-% Numerierung benötigt.
+% Dieses Schalter wird für die Umschaltung auf Duden-Regel~6 bei der
+% Numerierung benötigt.
% \begin{macro}{\if@autodot}
-% \changes{v2.8e}{2001/07/10}{neuer Schalter}
+% \changes{v2.8e}{2001/07/10}{neuer Schalter}^^A
% \begin{macro}{\@autodottrue}
-% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}
+% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}^^A
% \begin{macro}{\@autodotfalse}
-% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}
-% Damit die Umschaltung auch wieder zurück auf Regel~5 automatisch
-% erfolgen kann, wird ein zweiter Schalter benötigt.
+% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}^^A
+% Nach Duden 20.~Auflage, Regel~5 wird in der Gliederung kein Punkt gesetzt,
+% wenn diese rein mit arabischen Zahlen erfolgt. Nach Regel~6 folgt jedoch ein
+% Punkt, wenn die Gliederung auch römische Zahlen oder Großbuchstaben
+% enthält. Aus Konsistenzgründen muss der Punkt in diesem Fall immer gesetzt
+% werden. \KOMAScript{} bietet dafür einen Automatismus.
+%
+% Damit die Umschaltung auch wieder zurück auf Regel~5 automatisch erfolgen
+% kann, wird ein zweiter Schalter benötigt.
% \begin{macrocode}
+%<*class>
+%<*prepare>
\newif\if@altsecnumformat\@altsecnumformatfalse
\newif\if@autodot
\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue}
\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse}
\@autodotfalse
+%</prepare>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@autodotfalse
+% \end{macro}^^A \@autodottrue
+% \end{macro}^^A \if@autodot
+% \end{macro}^^A \@altsecnumformatfalse
+% \end{macro}^^A \@altsecnumformattrue
+% \end{macro}^^A \if@altsecnumformat
+% \begin{macro}{\scr@altsecnumhook}
+% \changes{v2.98c}{2008/03/07}{Neu (intern)}
+% \begin{macro}{\scr@altsecnumhooktrue}
+% \changes{v2.98c}{2008/03/07}{Neu (intern)}
+% \begin{macro}{\scr@altsecnumhookfalse}
+% \changes{v2.98c}{2008/03/07}{Neu (intern)}
+% Es werden drei Hilfsmakros benötigt. Das erste davon wird bei
+% \cs{begin{document}} ausgeführt (nachdem die \texttt{aux}-Datei gelesen
+% wurde!) und schaltet den gewünschten Zustand ein. Dazu wird es per Option
+% ggf. auf die eine oder andere Bedeutung umgeschaltet. Im Auto-Fall ist es
+% übrigens \cs{@empty}.
+% \begin{macrocode}
+%<*prepare>
+\newcommand*{\scr@altsecnumhook}{}
+\AtBeginDocument{\scr@altsecnumhook}
+\newcommand*{\scr@altsecnumhooktrue}{%
+ \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue
+}
+\newcommand*{\scr@altsecnumhookfalse}{%
+ \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse
+}
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \scr@altsecnumhooktrue
+% \end{macro}^^A \scr@altsecnumhookfalse
+% \end{macro}^^A \scr@altsecnumhook
% \begin{macro}{\@maybeautodot}
-% \changes{v2.8e}{2001/07/10}{neu (intern)}
-% Ob der automatische Punkt aktiviert werden muss, wird aufgrund der
-% Darstellung eines Zählers entschieden. Diese wird dem Makro als
-% Argument übergeben (\cs{thepart}, \cs{thechapter} etc.). Durch
-% Verwendung einer Gruppe, werden alle Definitionen lokal gehalten.
+% \changes{v2.8e}{2001/07/10}{neu (intern)}^^A
+% Ob der automatische Punkt aktiviert werden muss, wird aufgrund der
+% Darstellung eines Zählers entschieden. Diese wird dem Makro als Argument
+% übergeben (\cs{thepart}, \cs{thechapter} etc.). Durch Verwendung einer
+% Gruppe, werden alle Definitionen lokal gehalten.
% \begin{macrocode}
+%<*body>
\newcommand{\@maybeautodot}[1]{\if@autodot\else\begingroup%
\expandafter\@@maybeautodot #1\@stop\endgroup\fi
}
% \end{macrocode}
% \begin{macro}{\@@maybeautodot}
-% \changes{v2.8e}{2001/07/10}{neu (intern)}
+% \changes{v2.8e}{2001/07/10}{neu (intern)}^^A
% \changes{v3.00}{2008/10/07}{neuerdings überflüssige \cs{aftergroup}
-% entfernt}
-% Die expandierte Darstellung wird dann auf Darstellungsbefehle für
-% Zähler gescannt.
+% entfernt}^^A
+% Die expandierte Darstellung wird dann auf Darstellungsbefehle für
+% Zähler gescannt.
% \begin{macrocode}
\newcommand*{\@@maybeautodot}[1]{%
\ifx #1\@stop\let\@@maybeautodot\relax
@@ -934,8 +465,17 @@
\@@maybeautodot
}
% \end{macrocode}
+% \end{macro}^^A \@@maybeautodot
+% \end{macro}^^A \@maybeautodot
+% \begin{macro}{\autodot}
+% \changes{v2.7}{2001/01/03}{neu}^^A
+% Dieses Makro setzt dann den Punkt nach Bedarf.
+% \begin{macrocode}
+\newcommand*\autodot{\if@altsecnumformat.\fi}
+% \end{macrocode}
% \end{macro}
-% \end{macro}
+%
+%
% \begin{macro}{\@startsection}
% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung
% der Erweiterung für das optionale Argument}%^^A
@@ -943,6 +483,12 @@
% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A
% \begin{macro}{\scr@saved@startsection}
% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^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.
% \begin{macrocode}
\newcommand*{\scr@saved@startsection}[6]{%
\if@noskipsec \leavevmode \fi
@@ -1007,7 +553,7 @@
\fi
% \end{macrocode}
% \begin{macro}{\At@startsection}
-% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}
+% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}^^A
% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
% eigenem \cs{scr@startsection} an der Stelle eingefügt werden, an der
% \cs{if@afterindent} und \cs{@tempskipa} bereits korrekt eingestellt sind,
@@ -1019,7 +565,7 @@
\l@addto@macro{\scr@startsection@hook}{#1}%
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \At@startsection
% \begin{macro}{\Before@ssect}
% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}
% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
@@ -1031,7 +577,7 @@
\l@addto@macro{\scr@preto@ssect@hook}{#1}%
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \Before@ssect
% \begin{macro}{\Before@sect}
% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren}
% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's
@@ -1043,7 +589,7 @@
\l@addto@macro{\scr@preto@sect@hook}{#1}%
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \Before@sect
% \begin{macro}{\scr@section@dblarg}
% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A
% \begin{macro}{\scr@section@xdblarg}
@@ -1076,11 +622,13 @@
}
% \end{macrocode}
% \end{macro}%^^A \@startsection
+%
+%
% \begin{macro}{\SecDef}
-% \changes{v3.13a}{2014/09/11}{neue Anweisung}
+% \changes{v3.13a}{2014/09/11}{neue Anweisung}^^A
% \begin{macro}{\secdef}
% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung
-% der Erweiterung für das optionale Argument}%^^A
+% der Erweiterung für das optionale Argument}^^A
% \begin{macrocode}
\newcommand*{\SecDef}[2]{\@ifstar{#2}{\scr@section@dblarg{#1}}}
\CheckCommand*{\secdef}[2]{\@ifstar{#2}{\@dblarg{#1}}}
@@ -1089,13 +637,13 @@
% \end{macro}%^^A \secdef
% \end{macro}%^^A \SecDef
% \begin{macro}{\scr@sect}
-% \changes{v3.10}{2011/08/30}{entfällt}
+% \changes{v3.10}{2011/08/30}{entfällt}^^A
% \begin{macro}{\@sect}
% \changes{v3.10}{2011/08/30}{Vollständige Neudefinition zur Realisierung
-% der Erweiterung für das optionale Argument}%^^A
+% der Erweiterung für das optionale Argument}^^A
% \changes{v3.10}{2011/08/30}{Verwendung von
% \cs{csname}\texttt{add\#1tocentry}\cs{endcsname}
-% bzw. \cs{addtocentrydefault}}%^^A
+% bzw. \cs{addtocentrydefault}}^^A
% Damit auch alle mit \cs{@startsection} definierten Gliederungsebenen
% bei der Entscheidung berücksichtigt werden, muss ein internes Makro
% des \LaTeX-Kerns erweitert werden. Für die Ebenen \cs{part} und
@@ -1221,15 +769,15 @@
}
% \end{macrocode}
% \begin{macro}{\scr@ds@tocentry}
-% \changes{v3.10}{2011/08/30}{neu (intern)}
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
% \begin{macro}{\scr@ds@head}
-% \changes{v3.10}{2011/08/30}{neu (intern)}
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
% \begin{macro}{\if@scr@tempswa}
-% \changes{v3.10}{2011/08/30}{neu (intern)}
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
% \begin{macro}{\scr@istest}
-% \changes{v3.10}{2011/08/30}{neu (intern)}
-% Für die Realisierung werden noch ein paar Key-Value-Definitionen und ein
-% paar Hilfsmakros benötigt:
+% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% Für die Realisierung werden noch ein paar Key-Value-Definitionen und ein
+% paar Hilfsmakros benötigt:
% \begin{macrocode}
\DefineFamily{KOMAarg}
\DefineFamilyMember[.section]{KOMAarg}
@@ -1243,19 +791,19 @@
}
\newif\if@scr@tempswa
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% Dabei soll die Umstellung des Punktes beim zweiten TeX-Lauf bereits am
-% Anfang aktiv sein. Deshalb wird die Information am Ende in die aux-Datei
-% geschrieben.
-% \changes{v2.9k}{2003/01/12}{es wird direkt in \cs{@mainaux} geschrieben}
+% \end{macro}^^A \scr@istest
+% \end{macro}^^A \if@scr@tempswa
+% \end{macro}^^A \scr@ds@head
+% \end{macro}^^A \scr@ds@tocentry
+% \end{macro}^^A \@sect
+% \end{macro}^^A \scr@sect
+% Dabei soll die Umstellung des Punktes beim zweiten TeX-Lauf bereits am
+% Anfang aktiv sein. Deshalb wird die Information am Ende in die aux-Datei
+% geschrieben.
+% \changes{v2.9k}{2003/01/12}{es wird direkt in \cs{@mainaux} geschrieben}^^A
% \changes{v2.95}{2004/01/15}{es wird erst unmittelbar vor dem Schließen
-% der Haupt-aux-Datei in diese geschrieben}
-% \changes{v2.96a}{2006/12/07}{es wird \cs{immediate} geschrieben}
+% der Haupt-aux-Datei in diese geschrieben}^^A
+% \changes{v2.96a}{2006/12/07}{es wird \cs{immediate} geschrieben}^^A
% \begin{macrocode}
\BeforeClosingMainAux{%
\if@autodot\if@filesw\immediate\write\@mainaux{%
@@ -1263,401 +811,1050 @@
\fi\fi}
% \end{macrocode}
%
-% \begin{macro}{\autodot}
-% \changes{v2.7}{2001/01/03}{neu}
-% Dieses Makro setzt dann den Punkt nach Bedarf.
+%
+% \begin{macro}{\raggedsection}
+% \changes{v2.3h}{1996/01/20}{Überschriften werden \cs{raggedsection}
+% gesetzt}^^A
+% \changes{v2.3h}{1996/01/20}{\cs{raggedsection} ist als \cs{raggedright}
+% voreingestellt}^^A
+% Dieses Makro gibt an, wie die Überschriften formatiert
+% werden. Voreingestellt ist linksbündig. Da dies nicht nur die Formatierung
+% von \cs{section} (und darunter), sondern auch die Voreinstellung für die
+% höheren Ebenen ist, wird die Definition hier vorgezogen.
% \begin{macrocode}
-\newcommand*\autodot{\if@altsecnumformat.\fi}
+\newcommand*{\raggedsection}{}
+\let\raggedsection\raggedright
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \raggedsection
%
%
-% \subsection{Zähler für die Gliederungsebenen}
-%
-% \begin{Counter}{secnumdepth}
-% Dieser Zähler gibt an, bis zu welcher Ebene die
-% Gliederungsüberschriften nummeriert werden.
+% \begin{macro}{\DeclareSectionCommand}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}
+% 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
+% diverse Optionen (Achtung: Unbedingt daran denken, diese in
+% \cs{ProvideSectionCommands} ebenfalls zu definieren!!!):
% \begin{macrocode}
-%<book|report>\setcounter{secnumdepth}{2}
-%<article>\setcounter{secnumdepth}{3}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.dsc]{KOMAarg}
+\newcommand*{\DeclareSectionCommand}[2][]{%
% \end{macrocode}
-% \end{Counter}
+% \begin{description}\item[\texttt{style}] Stil der
+% Gliederungsebene\end{description}
+% \begin{macrocode}
+ \edef\reserved@a{%
+ \noexpand\FamilyStringKey[.dsc]{KOMAarg}{style}{%
+ \expandafter\noexpand\csname scr@#2@style\endcsname
+ }%
+ }\reserved@a
+% \end{macrocode}
+% \begin{description}\item[\texttt{increaselevel}] Automatische Erhöhung des
+% Wertes von Option \texttt{level} mit Säumniswert 1. Diese Option wird nur
+% definiert, wenn \cs{DeclareSectionCommands} verwendet wurde, was an
+% \cs{scr@local@levelincrease} erkannt wird.\end{description}
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@local@levelincrease}{%
+ \RelaxFamilyKey[.dsc]{KOMAarg}{increaselevel}%
+ }{%
+ \FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
+ {\scr@local@levelincrease}%
+ }%
+% \end{macrocode}
+% \begin{description}\item[\texttt{level}] nummerische
+% Gliederungsebene\end{description}
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{scr@local@leveloffset}{%
+ \edef\reserved@a{%
+ \noexpand\FamilyCounterMacroKey[.dsc]{KOMAarg}{level}{%
+ \expandafter\noexpand\csname #2numdepth\endcsname}%
+ }\reserved@a
+ }{%
+ \edef\reserved@a{%
+ \noexpand\DefineFamilyKey[.dsc]{KOMAarg}{level}{%
+ \noexpand\FamilySetCounterMacro{KOMAarg}{level}{%
+ \expandafter\noexpand\csname #2numdepth\endcsname
+ }%
+ \unexpanded{%
+ {\numexpr ##1+\scr@local@leveloffset\relax}%
+ \edef\scr@local@leveloffset{%
+ \the\numexpr\scr@local@leveloffset+\scr@local@levelincrease\relax
+ }%
+ }%
+ }%
+ }\reserved@a
+ }%
+% \end{macrocode}
+% \begin{description}\item[\texttt{indent}] Linker Einzug der
+% Überschrift\end{description}
+% \begin{macrocode}
+ \edef\reserved@a{%
+ \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{indent}{%
+ \expandafter\noexpand\csname scr@#2@sectionindent\endcsname}%
+ }\reserved@a
+% \end{macrocode}
+% \begin{description}\item[\texttt{beforeskip}] Der Absolutwert gibt den
+% vertikalen Abstand vor der Überschrift an. Negative Werte bedeuten, dass
+% der Absatzeinzug nach der Überschrift unterdrückt werden
+% soll.\end{description}
+% \begin{macrocode}
+ \edef\reserved@a{%
+ \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{beforeskip}{%
+ \expandafter\noexpand\csname scr@#2@sectionbeforeskip\endcsname}%
+ }\reserved@a
+% \end{macrocode}
+% \begin{description}\item[\texttt{afterskip}] Wenn der Wert positiv ist,
+% dann ist es der verikale Abstand nach der Überschrift. Ein negativer Wert
+% signalisiert hingegen eine Spitzmarke. Der Absolutwert ist dann der
+% horizontale Abstand nach der Spitzmarke.\end{description}
+% \begin{macrocode}
+ \edef\reserved@a{%
+ \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{afterskip}{%
+ \expandafter\noexpand\csname scr@#2@sectionafterskip\endcsname}%
+ }\reserved@a
+% \end{macrocode}
+% \begin{description}\item[\texttt{font}] Schrifteinstellungen für das
+% Element.\end{description}
+% \begin{macrocode}
+ \edef\reserved@a{%
+ \noexpand\DefineFamilyKey[.dsc]{KOMAarg}{font}{%
+ \noexpand\IfExistskomafont{#2}{%
+ \noexpand\setkomafont
+ }{%
+ \noexpand\newkomafont
+ }{#2}{####1}%
+ \noexpand\FamilyKeyStateProcessed
+ }%
+ }\reserved@a
+% \end{macrocode}
+% \begin{description}\item[\texttt{counterwithin}] Der Zähler dieser Ebene
+% soll abhängen vom angegebenen Zähler.
+% \end{description}
+% \begin{macrocode}
+ \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{macrocode}
+ \scr@ifundefinedorrelax{scr@local@tocleveloffset}{%
+ \edef\reserved@a{%
+ \noexpand\FamilyCounterMacroKey[.dsc]{KOMAarg}{toclevel}{%
+ \expandafter\noexpand\csname #2tocdepth\endcsname}%
+ }\reserved@a
+ }{%
+ \edef\reserved@a{%
+ \noexpand\DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{%
+ \noexpand\FamilySetCounterMacro{KOMAarg}{toclevel}{%
+ \expandafter\noexpand\csname #2tocdepth\endcsname
+ }%
+ \unexpanded{%
+ {\numexpr ##1+\scr@local@tocleveloffset\relax}%
+ \edef\scr@local@tocleveloffset{%
+ \the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
+ }%
+ }%
+ }%
+ }\reserved@a
+ }%
+% \end{macrocode}
+% \begin{description}\item[\texttt{tocindent}] Einzug des
+% Inhaltsverzeichniseintrags\end{description}
+% \begin{macrocode}
+ \edef\reserved@a{%
+ \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{tocindent}{%
+ \expandafter\noexpand\csname scr@#2@tocindent\endcsname}%
+ }\reserved@a
+% \end{macrocode}
+% \begin{description}\item[\texttt{tocnumwidth}] Breite der Nummer des
+% Inhaltsverzeichniseintrags\end{description}
+% \begin{macrocode}
+ \edef\reserved@a{%
+ \noexpand\FamilyLengthMacroKey[.dsc]{KOMAarg}{tocnumwidth}{%
+ \expandafter\noexpand\csname scr@#2@tocnumwidth\endcsname}%
+ }\reserved@a
+% \end{macrocode}
+% Optionen ausführen:
+% \begin{macrocode}
+ \FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+% \end{macrocode}
+% Testen, ob alle benötigten Optionen für die (Um-)Definierung des
+% Gliederungsbefehls gesetzt sind:
+% \begin{macrocode}
+ \begingroup
+ \scr@ifundefinedorrelax{#2numdepth}{%
+ \scr@declaresectioncommanderror{#2}{section level}{level}%
+ }{}%
+ \scr@ifundefinedorrelax{scr@#2@sectionindent}{%
+ \scr@declaresectioncommanderror{#2}{section indent}{indent}%
+ }{}%
+ \scr@ifundefinedorrelax{scr@#2@sectionbeforeskip}{%
+ \scr@declaresectioncommanderror{#2}{before section skip}{beforeskip}%
+ }{}%
+ \scr@ifundefinedorrelax{scr@#2@sectionafterskip}{%
+ \scr@declaresectioncommanderror{#2}{after section skip}{afterskip}%
+ }{}%
+ \IfExistskomafont{#2}{}{%
+ \scr@declaresectioncommanderror{#2}{font}{font}%
+ }{}%
+ \scr@ifundefinedorrelax{scr@#2@tocindent}{%
+ \scr@declaresectioncommanderror{#2}{toc entry indent}{tocindent}%
+ }{}%
+ \scr@ifundefinedorrelax{scr@#2@tocnumwidth}{%
+ \scr@declaresectioncommanderror{#2}{toc entry number
+ width}{tocnumwidth}%
+ }{}%
+ \endgroup
+% \end{macrocode}
+% Wenn alle Informationen für die (Um-)Definierung des Gliederungsbefehls
+% zusammen sind \dots
+% \begin{macrocode}
+ \@firstofone{%
+% \end{macrocode}
+% Zunächst sicherstellen, dass der Zähler existiert und ggf. dessen
+% Ausgabe anpassen:
+% \begin{macrocode}
+ \@ifundefined{c@#2}{\newcounter{#2}}{}%
+ \ifx\scr@local@counterwithin\relax
+ \else\ifx\scr@local@counterwithin\@empty
+ \@namedef{the#2}{\arabic{#2}}%
+ \else
+ \@removefromreset{#2}{\scr@local@counterwithin}%
+ \@addtoreset{#2}{\scr@local@counterwithin}%
+ \expandafter\def\csname the#2\expandafter\endcsname{%
+ \csname the\scr@local@counterwithin\endcsname.\arabic{#2}}%
+ \fi
+ \fi
+ \@ifundefined{#2format}{%
+ \@namedef{#2format}{\csname the#2\endcsname\autodot\enskip}%
+ }{}%
+% \end{macrocode}
+% Dann den eigentlichen Gliederungsbefehl definieren:
+% \begin{macrocode}
+ \ifstr{\csname scr@#2@style\endcsname}{}{%
+ \ClassInfo{\KOMAClassName}{%
+ not defining `\string\csname #2\endcsname' due to\MessageBreak
+ empty section style%
+ }%
+ }{%
+ \scr@ifundefinedorrelax{scr@#2@style}{%
+ \ClassWarning{\KOMAClassName}{using default section style}%
+ \@namedef{scr@#2@style}{section}%
+ }{}%
+ \expandafter\edef\csname #2\endcsname{%
+ \noexpand\scr@ifundefinedorrelax{%
+ scr@start\csname scr@#2@style\endcsname}{%
+ \noexpand\ClassError{\noexpand\KOMAClassName}{%
+ section style `\csname scr@#2@style\endcsname' not defined}{%
+ A not yet defined section style `\csname scr@#2@style\endcsname'
+ has been setup for\MessageBreak
+ `\expandafter\string\csname #2\endcsname'. You should either setup
+ another style\MessageBreak
+ or define the style.\MessageBreak
+ If you'll continue, style `section' will be used as an emergency
+ fallback.%
+ }%
+% \end{macro}
+% Damit später der \textsf{titlesec}-Workaround funktioniert muss hier
+% ggf. der Befehl für den Stil geändert werden.
+% \begin{macro}
+ \noexpand\def\expandafter\noexpand\csname scr@#2@style\endcsname
+ {section}%
+ }{}%
+ \expandafter\noexpand
+ \csname scr@start\csname scr@#2@style\endcsname\endcsname
+ {#2}%
+ \expandafter\noexpand\csname #2numdepth\endcsname
+ \expandafter\noexpand\csname scr@#2@sectionindent\endcsname
+ \expandafter\noexpand\csname scr@#2@sectionbeforeskip\endcsname
+ \expandafter\noexpand\csname scr@#2@sectionafterskip\endcsname{%
+ \noexpand\ifdim\noexpand\glueexpr
+ \expandafter\noexpand\csname scr@#2@sectionbeforeskip\endcsname
+ <\noexpand\z@
+ \unexpanded{%
+ \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
+ \setlength{\parfillskip}{\z@ plus 1fil}%
+ \fi
+ }%
+ \noexpand\fi
+ \unexpanded{%
+ \raggedsection\normalfont\sectfont\nobreak\usekomafont{#2}%
+ }%
+ }%
+ }%
+ }%
+% \end{macrocode}
+% Zu jedem Gliederungsbefehl gehört auch ein Befehl für den Kolumnentitel, der
+% bei \KOMAScript{} außerdem eine Formatierung des Zählers benötigt. Falls
+% \textsf{scrlayer} geladen ist, wird das über dessen Befehl
+% |\DeclareSectionNumberDepth| erledigt, sonst direkt:
+% \begin{macrocode}
+ \@ifundefined{DeclareSectionNumberDepth}{%
+ \@ifundefined{#2markformat}{%
+ \@namedef{#2markformat}{\csname the#2\endcsname\autodot\endskip}%
+ }{}%
+ \@ifundefined{#2mark}{%
+ \expandafter\let\csname #2mark\endcsname\@gobble
+ }{}%
+ }{%
+ \DeclareSectionNumberDepth{#2}{\csname #2numdepth\endcsname}%
+ }%
+% \end{macrocode}
+% 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{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
+ }%
+ }{}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@declaresectioncommanderror}
+% \changes{v3.15}{2014/11/21}{neue (interne) Anweisung}
+% Gibt einen Fehler aus, falls \cs{DeclareSectionCommand} zu wenige Optionen
+% übergeben wurde. Das erste Argument ist der Name des zu deklarierenden
+% Befehls, das zweite ist eine textuelle Beschreibung der fehlenden Option und
+% das dritte ist der Name der fehlenden Option. Als Seiteneffekt sorgt der
+% Befehl dafür, dass die Deklaration nicht stattfindet.
+% \begin{macrocode}
+\newcommand*{\scr@declaresectioncommanderror}[3]{%
+ \ClassError{\KOMAClassName}{%
+ #2 of \expandafter\string\csname #1\endcsname\space unknown%
+ }{%
+ Please use option `#3' to declare the #2.\MessageBreak
+ If you'll continue, declaration will be ignored%
+ }%
+ \aftergroup\@gobbletwo
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@declaresectioncommanderror
+% \end{macro}^^A \DeclareSectionCommand
%
-% \begin{macro}{\partnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}
-% \begin{macro}{\chapternumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}
-% \begin{macro}{\sectionnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}
-% \begin{macro}{\subsectionnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}
-% \begin{macro}{\subsubsectionnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}
-% \begin{macro}{\paragraphnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}
-% \begin{macro}{\subparagraphnumdepth}
-% \changes{v3.12}{2013/12/16}{new read only command}
-% Diese dürfen nur gelesen, sollten aber nie umdefiniert werden und geben die
-% Nummerierungsebene der Gliederungsanweisungen an (nicht zu verwechseln mit
-% der Verzeichnisebene der Gliederungsanweisungen):
+% \begin{macro}{\DeclareNewSectionCommand}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}^^A
+% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
+% definiert, die zuvor noch nicht existierte. Wichtig zu bemerken ist, dass
+% die ganzen Hilfsanweisungen bereits existieren dürfen.
% \begin{macrocode}
-\newcommand*{\partnumdepth}{%
-%<article> \z@
-%<report|book> \m@ne
+\newcommand*{\DeclareNewSectionCommand}[2][]{%
+ \@ifundefined{#2}{%
+ \DeclareSectionCommand[{#1}]{#2}%
+ }{%
+ \ClassError{\KOMAClassName}{%
+ command `\expandafter\string\csname #1\endcsname` already defined%
+ }{%
+ You've tried to define the section command `\expandafter\string\csname
+ #1\endcsname` newly,\MessageBreak
+ but a command, token, box or length with this name already
+ exists.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\RedeclareSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ If you'll continue, the command will be irgnored.%
+ }%
+ }%
}
-%<report|book>\newcommand*{\chapternumdepth}{\z@}
-\newcommand*{\sectionnumdepth}{\@ne}
-\newcommand*{\subsectionnumdepth}{\tw@}
-\newcommand*{\subsubsectionnumdepth}{\thr@@}
-\newcommand*{\paragraphnumdepth}{4}
-\newcommand*{\subparagraphnumdepth}{5}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \DeclareNewSectionCommand
%
-% \begin{macro}{\ifnumbered}
-% \changes{v3.12}{2013/12/16}{new command}
-% \begin{macro}{\ifunnumbered}
-% \changes{v3.12}{2013/12/16}{new command}
-% Test, ob eine Gliederungsebene (\texttt{\#1}) nummeriert wird. Falls das der
-% Fall ist, wird das zweite Argument verwendet, sonst das dritte. Bei
-% \cs{ifunnumbered} ist die Logik genau vertauscht.
+% \begin{macro}{\RedeclareSectionCommand}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}^^A
+% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
+% umdefiniert, die zuvor bereits existierte. Wichtig zu bemerken ist, dass
+% die ganzen Hilfsanweisungen nicht zu exisieren brauchen.
% \begin{macrocode}
-\newcommand*{\ifnumbered}[1]{%
- \scr@ifundefinedorrelax{#1numdepth}{%
- \@secondoftwo
+\newcommand*{\RedeclareSectionCommand}[2][]{%
+ \@ifundefined{#2}{%
+ \ClassError{\KOMAClassName}{%
+ command `\expandafter\string\csname #1\endcsname` not defined%
+ }{%
+ You've tried to re-define the section command `\expandafter\string\csname
+ #1\endcsname`,\MessageBreak
+ but a command with this name does not exists.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\DeclareNewSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ If you'll continue, the command will be irgnored.%
+ }%
}{%
- \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
+ \DeclareSectionCommand[{#1}]{#2}%
}%
}
-\newcommand*{\ifunnumbered}[1]{%
- \scr@ifundefinedorrelax{#1numdepth}{%
- \@firstoftwo
+% \end{macrocode}
+% \end{macro}^^A \RedeclareSectionCommand
+%
+% \begin{macro}{\ProvideSectionCommand}
+% \changes{v3.15}{2014/11/21}{neue Anweisung}^^A
+% Basierend auf |\DeclareSectionCommand| wird eine Gliederungsanweisung
+% definiert, wenn sie zuvor noch nicht existierte. Wichtig zu bemerken ist,
+% dass die ganzen Hilfsanweisungen bereits existieren dürfen.
+% \begin{macrocode}
+\newcommand*{\ProvideSectionCommand}[2][]{%
+ \@ifundefined{#2}{%
+ \DeclareSectionCommand[{#1}]{#2}%
}{%
- \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
+ \ClassInfo{\KOMAClassName}{%
+ \string\ProvideSectionCommand{#1} ignored%
+ }%
}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \ProvideSectionCommand
%
-% \begin{Counter}{part}
-% \begin{macro}{\thepart}
-% \begin{macro}{\partformat}
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}
-% \changes{v2.5f}{1999/02/14}{überflüssiges Leerzeichen am Ende
-% entfernt}
-% \changes{v2.7h}{2001/04/22}{verlorenen Backslash in \cs{autodot}
-% wieder eingefügt}
-% \begin{Counter}{chapter}
-% \begin{macro}{\thechapter}
-% \begin{macro}{\chapterformat}
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}
-% \changes{v2.7}{2000/01/03}{einfaches Leerzeichen durch
-% \cs{enskip} ersetzt}
-% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt}
-% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt
-% \cs{chapappifprefix}}
-% \changes{v2.96a}{2006/12/02}{\cs{mbox} eingefügt, um \cs{caps} zu
-% ermöglichen}
-% \begin{macro}{\chaptermarkformat}
-% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer
-% erhöht}
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}
-% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt}
-% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt
-% \cs{chapappifprefix}}
-% \changes{v3.03a}{2009/04/03}{Tilde durch \cs{nobreakspace} ersetzt, um die
-% Kompatibilität mit Spanisch zu verbessern}
-% \begin{Counter}{section}
-% \begin{macro}{\thesection}
-% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}
-% \changes{v3.03b}{2009/06/09}{\cs{relax} im Kompatibilitätstest durch ein
-% Leerzeichen ersetzt, obwohl das die Wartbarkeit verschlechtert, aber
-% \textsf{hyperref} hat mit dem \cs{relax} ein nicht dokumentieres Problem}
-% \begin{macro}{\sectionmarkformat}
-% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer
-% erhöht}
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}
-% \begin{Counter}{subsection}
-% \begin{macro}{\thesubsection}
-% \begin{macro}{\subsectionmarkformat}
-% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer
-% erhöht}
-% \changes{v2.3c}{1995/08/06}{Duden Regel 6}
-% \begin{Counter}{subsubsection}
-% \begin{macro}{\thesubsubsection}
-% \begin{Counter}{paragraph}
-% \begin{macro}{\theparagraph}
-% \begin{Counter}{subparagraph}
-% \begin{macro}{\thesubparagraph}
-% Jede Gliederungsebene benötigt einen Zähler für die
-% Gliederungsnummer und eine Darstellung des Zählers
-% (\cs{the\dots}). Desweiteren wird eine Formatierung des Zählers in
-% den Gliederungsüberschriften (\texttt{\bslash\dots format}) und eine
-% Formatierung des Zählers in der Kopfzeile
-% (\texttt{\bslash\dots markformat}) benötigt.
+% \begin{macro}{\DeclareSectionCommands}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}
+% Basierend auf \cs{DeclareSectionCommand} können gleich mehrere
+% Gliederungsanweisungen definiert werden. Dabei sorgt Option
+% \texttt{increaselevel} dafür, dass die Werte von \texttt{level} und
+% \texttt{toclevel} automatisch von Befehl zu Befehl um den angegebenen Wert
+% (Default ist 1) erhöht werden.
% \begin{macrocode}
-\newcounter{part}
-\renewcommand*{\thepart}{\@Roman\c@part}
-\newcommand*{\partformat}{\partname~\thepart\autodot}
+\newcommand*{\DeclareSectionCommands}[2][]{%
+ \edef\reserved@a{#2}%
+ \let\scr@local@levelincrease\z@
+ \let\scr@local@leveloffset\z@
+ \let\scr@local@tocleveloffset\z@
+ \@for\reserved@a:=\reserved@a\do{%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+ }%
+ \reserved@a
+ }%
+ \let\scr@local@levelincrease\relax
+ \let\scr@local@leveloffset\relax
+ \let\scr@local@tocleveloffset\relax
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareSectionCommands
+%
+% \begin{macro}{\DeclareNewSectionCommands}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}
+% Im Unterschied zu \cs{DeclareNewSectionCommand} führt diese Anweisung die
+% Änderung auch dann aus, wenn die Anweisung bereits deklariert war. Eine
+% Fehlermeldung wird aber natürlich trotzdem ausgegeben. Dieser Unterschied
+% ist jedoch notwendig, weil sonst Option \texttt{increaselevel} für
+% nachfolgende Befehle nicht mehr korrekt arbeiten würde.
+% \begin{macrocode}
+\newcommand*{\DeclareNewSectionCommands}[2][]{%
+ \edef\reserved@a{#2}%
+ \let\scr@local@levelincrease\z@
+ \let\scr@local@leveloffset\z@
+ \let\scr@local@tocleveloffset\z@
+ \@for\reserved@a:=\reserved@a\do{%
+ \@ifundefined{\reserved@a}{}{%
+ \ClassError{\KOMAClassName}{%
+ command `\expandafter\string\csname\reserved@a\endcsname` already
+ defined%
+ }{%
+ You've tried to define the section command
+ `\expandafter\string\csname\reserved@a\endcsname` newly,\MessageBreak
+ but a command, token, box or length with this name already
+ exists.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\RedeclareSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ Nevertheless, if you'll continue, the command will be defined.%
+ }%
+ }%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+ }%
+ \reserved@a
+ }%
+ \let\scr@local@levelincrease\relax
+ \let\scr@local@leveloffset\relax
+ \let\scr@local@tocleveloffset\relax
+}
+% \end{macrocode}
+% \end{macro}^^A \DeclareNewSectionCommands
+%
+% \begin{macro}{\RedeclareSectionCommands}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}
+% Im Unterschied zu \cs{RedeclareNewSectionCommands} führt diese Anweisung die
+% Änderung auch dann aus, wenn die Anweisung noch nicht deklariert war. Eine
+% Fehlermeldung wird aber natürlich trotzdem ausgegeben. Dieser Unterschied
+% ist jedoch notwendig, weil sonst Option \texttt{increaselevel} für
+% nachfolgende Befehle nicht mehr korrekt arbeiten würde.
+% \begin{macrocode}
+\newcommand*{\RedeclareSectionCommands}[2][]{%
+ \edef\reserved@a{#2}%
+ \let\scr@local@levelincrease\z@
+ \let\scr@local@leveloffset\z@
+ \let\scr@local@tocleveloffset\z@
+ \@for\reserved@a:=\reserved@a\do{%
+ \@ifundefined{\reserved@a}{%
+ \ClassError{\KOMAClassName}{%
+ command `\expandafter\string\csname\reserved@a\endcsname` not defined%
+ }{%
+ You've tried to re-define the section command
+ `\expandafter\string\csname\reserved@a\endcsname`,\MessageBreak
+ but a command with this name does not exists.\MessageBreak
+ Maybe you should use one of \string\DeclareSectionCommand,
+ \string\DeclareNewSectionCommand,\MessageBreak
+ or \string\ProvideSectionCommand.\MessageBreak
+ Nevertheless, if you'll continue, the command will be defined.%
+ }%
+ }{}%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+ }%
+ \reserved@a
+ }%
+ \let\scr@local@levelincrease\relax
+ \let\scr@local@leveloffset\relax
+ \let\scr@local@tocleveloffset\relax
+}
+% \end{macrocode}
+% \end{macro}^^A \RedeclareSectionCommands
+%
+% \begin{macro}{\ProvideSectionCommands}
+% \changes{v3.15}{2014/12/03}{neue Anweisung}
+% Hier wird es nun wirklich schwierig, weil wir irgendwie dafür sorgen müssen,
+% dass Option \texttt{increaselevel} funktioniert, auch wenn gar nichts
+% definiert werden darf. Das macht die Geschichte ein wenig auswändig.
+% \begin{macrocode}
+\newcommand*{\ProvideSectionCommands}[2][]{%
+ \edef\reserved@a{#2}%
+ \let\scr@local@levelincrease\z@
+ \let\scr@local@leveloffset\z@
+ \let\scr@local@tocleveloffset\z@
+ \@for\reserved@a:=\reserved@a\do{%
+ \@ifundefined{\reserved@a}{%
+ \edef\reserved@a{%
+ \unexpanded{\DeclareSectionCommand[{#1}]}{\reserved@a}%
+ }%
+ \reserved@a
+ }{%
+% \end{macrocode}
+% 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.
+% \begin{macrocode}
+ \DefineFamilyKey[.dsc]{KOMAarg}{style}{}%
+ \FamilyCounterMacroKey[.dsc]{KOMAarg}{increaselevel}[1]%
+ {\scr@local@levelincrease}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{level}{%
+ \FamilySetCounterMacro{KOMAarg}{level}{\reserved@b}{##1}%
+ \edef\scr@local@leveloffset{%
+ \the\numexpr\scr@local@leveloffset+\scr@local@levelincrease\relax
+ }%
+ \edef\scr@local@tocleveloffset{%
+ \the\numexpr\scr@local@tocleveloffset+\scr@local@levelincrease\relax
+ }%
+ }%
+ \DefineFamilyKey[.dsc]{KOMAarg}{indent}{}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{beforeskip}{}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{afterskip}{}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{font}{}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{counterwidthin}{}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{toclevel}{}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{tocindent}{}%
+ \DefineFamilyKey[.dsc]{KOMAarg}{tocnumwidth}{}%
+ \FamilyExecuteOptions[.dsc]{KOMAarg}{#1}%
+ }%
+ }%
+ \let\scr@local@levelincrease\relax
+ \let\scr@local@leveloffset\relax
+ \let\scr@local@tocleveloffset\relax
+}
+%</body>
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \ProvideSectionCommands
+%
+%
+% \subsection{Definitionen für Präambeln}
+%
+% Bei den \KOMAScript-Klassen \textsf{scrbook} und \textsf{scrreprt}
+% können \cs{part} und \cs{chapter} mit Präambeln versehen werden. Es
+% wird gleichzeitig eine Präambel über und unter der jeweiligen
+% Überschrift unterstützt.
+%
+% \begin{macro}{\use@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% Dieses Makro dient allgemein zum Setzen einer Präambel (für
+% Gliederungsüberschriften), wenn eine solche definiert ist. Als
+% Argument wird der Name der Präambel übergeben, an den automatisch
+% \texttt{@preamble} angehängt wird. Zum Schluss wird die gespeicherte
+% Präambel gelöscht.
+% \begin{macrocode}
+%<*class>
%<*book|report>
-\newcounter{chapter}
-\renewcommand*{\thechapter}{\@arabic\c@chapter}
-\newcommand*{\chapterformat}{%
- \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot\enskip}%
+%<*body>
+\newcommand*{\use@preamble}[1]{%
+ \@ifundefined{#1@preamble}{}{%
+ \@nameuse{#1@preamble}%
+ \global\expandafter\let\csname#1@preamble\endcsname=\relax
+ }%
}
-\newcommand*\chaptermarkformat{\chapappifchapterprefix{\ }%
- \thechapter\autodot\enskip}
-\newcounter{section}[chapter]
-\renewcommand*\thesection{%
-%<*book>
- \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d} % the space before this
- % comment should be \relax but hyperref has a
- % not documented problem with \relax
- \if@mainmatter\thechapter.\fi
- \else
-%</book>
- \thechapter.%
-%<book> \fi
- \@arabic\c@section
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\set@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^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
+% Argument, das die Position der Präambel angibt. Darauf folgt ein
+% weiteres optionales Argument, das die Breite der Präambel
+% angibt. Ist nur ein optionales Argument angegeben, so ist es die
+% Position. Es folgt ein obligatorisches Argument mit dem Inhalt der
+% Präambel. Die Definition der Präambel erfolgt global.
+% \begin{macro}{\set@@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \begin{macro}{\set@@@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \begin{macro}{\set@@@@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}^^A
+% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt}^^A
+% \changes{v3.12a}{2014/02/14}{b korrigiert}^^A
+% Da mehrere optionale Argumente nach einem obligatorischen Argument
+% auszuwerten sind, werden diverse Hilfsmakros benötigt.
+% \begin{macrocode}
+\newcommand*{\set@preamble}[1]{%
+% \end{macrocode}
+% Zunächst wird das erste optionale Argument gesucht.
+% \begin{macrocode}
+ \@ifnextchar [%]
+ {\set@@preamble{#1}}{\set@@@preamble{#1}[][\hsize]}%
}
-\newcommand*\sectionmarkformat{\thesection\autodot\enskip}
-%</book|report>
-%<*article>
-\newcounter{section}
-\renewcommand*{\thesection}{\@arabic\c@section}
-\newcommand*\sectionmarkformat{\thesection\autodot\enskip}
-%</article>
-\newcounter{subsection}[section]
-\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection}
-%<*article>
-\newcommand*\subsectionmarkformat{\thesubsection\autodot\enskip}
-%</article>
-\newcounter{subsubsection}[subsection]
-\renewcommand*{\thesubsubsection}{%
- \thesubsection.\@arabic\c@subsubsection
+\newcommand*{\set@@preamble}{}
+\def\set@@preamble#1[#2]{%
+% \end{macrocode}
+% Wenn ein optionales Argument existiert, kann es auch ein zweites
+% geben. Wenn nicht, wird mit der Voreinstellung gearbeitet.
+% \begin{macrocode}
+ \@ifnextchar [%]
+ {\set@@@preamble{#1}[{#2}]}{\set@@@preamble{#1}[{#2}][\hsize]}%
}
-\newcounter{paragraph}[subsubsection]
-\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph}
-\newcounter{subparagraph}[paragraph]
-\renewcommand*{\thesubparagraph}{%
- \theparagraph.\@arabic\c@subparagraph
+\newcommand{\set@@@preamble}{}
+\long\def\set@@@preamble#1[#2][#3]#4{%
+% \end{macrocode}
+% Dies ist das Hauptmakro, das die eigentliche Arbeit macht. Es muss
+% \cs{long} definiert werden, da die Präambel auch aus mehreren
+% Absätzen bestehen kann.
+%
+% Zunächst wird das Positionsargument ausgewertet. Dies geschieht mit
+% lokalen Hilfsmakros und einer Schleife. Zur Funktion der Schleife
+% siehe im dokumentierten \LaTeX-Kern.
+% \begin{macrocode}
+ \begingroup
+ \def\prmbl@pos{#2}\let\prmbl@hpos\relax\let\prmbl@vpos\relax
+ \expandafter \@tfor \expandafter \@tempa
+ \expandafter :\expandafter =\prmbl@pos
+ \do{%
+ \if \@tempa l%
+ \set@preamble@hpos{0}{#2}%
+ \fi%
+ \if \@tempa c%
+ \set@preamble@hpos{1}{#2}%
+ \fi%
+ \if \@tempa r%
+ \set@preamble@hpos{2}{#2}%
+ \fi%
+ \if \@tempa u%
+ \set@preamble@vpos{0}{#2}%
+ \fi%
+ \if \@tempa b%
+ \set@preamble@vpos{0}{#2}%
+ \fi
+ \if \@tempa o%
+ \set@preamble@vpos{1}{#2}%
+ \fi%
+ \if \@tempa t%
+ \set@preamble@vpos{1}{#2}%
+ \fi
+ }%
+% \end{macrocode}
+% Wurde keine horizontale oder vertikale Ausrichtung definiert, so
+% wird nun der Standardwert dafür eingesetzt.
+% \begin{macrocode}
+ \@ifundefined{prmbl@hpos}{\def\prmbl@hpos{0}}{}%
+ \@ifundefined{prmbl@vpos}{\def\prmbl@vpos{0}}{}%
+% \end{macrocode}
+% Nun sind die Positionen ermittelt und es werden abhängig davon
+% entsprechende Päambelmakros definiert.
+% \begin{macrocode}
+ \ifcase\prmbl@hpos
+% \end{macrocode}
+% Zunächst links unten und oben:
+% \begin{macrocode}
+ \ifcase\prmbl@vpos
+ \set@@@@preamble{#1@u}{t}{#3}{}{\hfil}{#4}%
+ \else
+ \set@@@@preamble{#1@o}{b}{#3}{}{\hfil}{#4}%
+ \fi
+ \or
+% \end{macrocode}
+% Dann zentriert unten und oben:
+% \begin{macrocode}
+ \ifcase\prmbl@vpos
+ \set@@@@preamble{#1@u}{t}{#3}{\hfil}{\hfil}{#4}%
+ \else
+ \set@@@@preamble{#1@o}{b}{#3}{\hfil}{\hfil}{#4}%
+ \fi
+ \else
+% \end{macrocode}
+% Zum Schluss rechts und oben:
+% \begin{macrocode}
+ \ifcase\prmbl@vpos
+ \set@@@@preamble{#1@u}{t}{#3}{\hfil}{}{#4}%
+ \else
+ \set@@@@preamble{#1@o}{b}{#3}{\hfil}{}{#4}%
+ \fi
+ \fi
+ \endgroup
}
% \end{macrocode}
-% \begin{macro}{\@seccntformat}
-% \changes{v2.3c}{1995/08/06}{CJK erweitert}
-% \changes{v2.9p}{2004/01/07}{\cs{protect} eingefügt}
-% \changes{v2.97}{2007/01/24}{Workaround für das blöde \cs{protect}}
-% \begin{macro}{\othersectionlevelsformat}
-% \changes{v2.7}{2000/01/03}{neu}
-% \changes{v2.7}{2000/01/03}{\cs{quad} durch \cs{enskip} ersetzt}
-% \changes{v2.7i}{2001/05/17}{\cs{let} durch \cs{def} ersetzt}
-% \changes{v2.97}{2007/01/24}{statt einem Argument jetzt drei}
-% Bei den Ebenen ab \cs{section} erfolgt die Formatierung der
-% Gliederungnummer in der Überschrift mit einer gemeinsamen
-% Anweisung. Die interne Anweisung \cs{@seccntformat} wird dabei von
-% \LaTeX-Kern verwendet und muss umdefiniert werden, um eine
-% entsprechende Anweisung auf Anwenderebene verfügbar zu haben.
-% Ab Version 2.9p wurde in \cs{@seccntformat} ein \cs{protect} vor
-% \cs{othersectionlevelsformat} eingefügt. Damit wurde es für den Benutzer
-% deutlich einfacher, die Anweisung \cs{othersectionlevelsformat}
-% umzudefinieren. Dafür war dadurch aber \cs{the\dots} nicht mehr
-% expandiert. Das wiederum gab Probleme, wenn \cs{@seccntformat} für den
-% \cs{mark}-Mechanismus genutzt wurde. Deshalb hat
-% \cs{othersectionlevelsformat} ab Version 2.97 drei Argumente statt nur
-% eines. Das zweite Argument sollte vom Anwender ignoriert werden, es
-% existiert nur, um die Kompatibitlität Umdefinitionen zu erhalten, bei denen
-% \cs{othersectionlevelsformat} nur ein Argument besitzt. Das dritte Argument
-% ist die \cs{the\dots}-Anweisung. Das zweite Argument funktioniert so, das es
-% das dritte Argument frisst, falls \cs{othersectionlevelsformat} nur ein
-% Argument liest.
+% Es folgt das Makro, mit dem die Definition tatsächlich
+% stattfindet. Das erste Argument ist der Name der Präambel, das
+% zweite die Positionsoption für die verwendete \cs{parbox}, das
+% dritte ist die Breite der \cs{parbox}, dann zwei Argumente mit der
+% horizontalen Ausrichtung vor und nach der \cs{parbox} und das
+% sechste Agument ist schließlich der Inhalt der \cs{parbox}.
% \begin{macrocode}
-\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip}
-\renewcommand*{\@seccntformat}[1]{%
- \protect\othersectionlevelsformat{#1}{%
- \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
+\newcommand{\set@@@@preamble}[6]{%
+ \expandafter\gdef\csname #1@preamble\endcsname{%
+ \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
+ }%
}
% \end{macrocode}
+%
+% \begin{macro}{\set@preamble@hpos}
+% \changes{v2.8q}{2001/09/25}{neu (intern)}^^A
+% Eines der Hilfsmakros dient dazu, die horizontale Position der
+% Präambel einzustellen, falls dies nicht bereits erfolgt ist. Ist es
+% bereits nicht über"-einstimmend erfolgt, wird ein Fehler
+% ausgegeben. Dieses Makro ist extrem intern und funktioniert nur im
+% Kontext vor \cs{set@preamble}.
+% \begin{macrocode}
+\newcommand*{\set@preamble@hpos}[2]{%
+ \@ifundefined{prbml@hpos}{%
+ \def\prmbl@hpos{#1}%
+ }{%
+ \ifnum \prmbl@hpos=0\relax\else%
+ \ClassError{\KOMAClassName}{%
+ inconsistent hpos options%
+ }{%
+ You've said `#2' as position option. But you have
+ to\MessageBreak
+ use only one of `l', `r', or `c' not two of
+ these.\MessageBreak
+ If you'll continue only first hpos option will be
+ used%
+ }%
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \set@preamble@hpos
+% \begin{macro}{\set@preamble@vpos}
+% \changes{v2.8q}{2001/09/25}{neu (intern)}^^A
+% Das Hilfsmakro für die vertikale Position funktioniert in gleicher
+% Weise.
+% \begin{macrocode}
+\newcommand*{\set@preamble@vpos}[2]{%
+ \@ifundefined{prbml@vpos}{%
+ \def\prmbl@vpos{#1}%
+ }{%
+ \ifnum \prmbl@vpos=0\relax\else%
+ \ClassError{\KOMAClassName}{%
+ inconsistent vpos options%
+ }{%
+ You've said `#2' as position option. But you have
+ to\MessageBreak
+ use only one of `t', `o', `b', or `u' not two of
+ these.\MessageBreak
+ If you'll continue only first vpos option will be
+ used%
+ }%
+ \fi
+ }%
+}
+%</body>
+%</book|report>
+%</class>
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{Counter}
% \end{macro}
% \end{macro}
-% \end{Counter}
%
%
-% \changes{v2.8e}{2001/07/10}{\cs{@thepart} entfernt}
-% \changes{v2.8e}{2001/07/10}{\cs{@maybeasf} entfernt}
+% \subsubsection{\KOMAScript-eigene Befehle für Verzeichniseinträge}
+% Wie schon bei den Gliederungsbefehlen genügt \KOMAScript{} nicht, was der
+% \LaTeX-Kern für Verzeichniseinträge zu bieten hat.
%
-%
-% \subsection{Namen für die Gliederung}
-%
-% \begin{macro}{\partname}
-% \begin{macro}{\chaptername}
-% \begin{macro}{\abstractname}
-% Diese Makros enthalten die Namen der Gliederungsebenen \cs{part} und
-% \cs{chapter}, sowie den Namen der Zusammenfassung:
+% \begin{macro}{\bprot@dottedtocline}
+% \changes{v2.96a}{2006/11/30}{neu (intern)}
+% Dieses Makro wird benötigt, um die Ebenen unterhalb von \cs{chapter}
+% bzw. \cs{section} im Inhaltsverzeichnis ebenfalls vor unerwünschten
+% Umbrüchen zwischen Eintrag und Unterebene zu schützen.
% \begin{macrocode}
-\newcommand*\partname{Part}
-%<book|report>\newcommand*\chaptername{Chapter}
-%<report|article>\newcommand*\abstractname{Abstract}
+%<*class>
+%<*body>
+\newcommand*{\bprot@dottedtocline}[5]{%
+ \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
+ \ifnum #1>\c@tocdepth \else
+ \begingroup
+ \@tempcnta 20010
+ \advance \@tempcnta by -#1
+ \ifnum \@tempcnta>\lastpenalty
+ \endgroup
+ \addpenalty{\@lowpenalty}%
+ \else
+ \endgroup
+ \fi
+ \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
+ \@tempcnta 20009
+ \advance \@tempcnta by -#1
+ \penalty\@tempcnta
+ \fi
+ \else
+ \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
+ \fi
+}
+%</body>
+%</class>
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\appendixname}
-% Der Name des Anhangs.
+%
+% \subsection{Grobeinteilung von Büchern}
+%
+% Bei Büchern gibt es teilweise eine Einteilung in Vorderteil, Hauptteil und
+% Endteil, die nicht wirklich eine Gliederung darstellt, sondern auf
+% Gliederung, Seitennummerierung etc. Einfluss nimmt.
+%
+% \begin{macro}{\if@mainmatter}
+% \begin{macro}{\@mainmattertrue}
+% \begin{macro}{\@mainmatterfalse}
+% \changes{v2.3a}{1995/07/08}{\cs{if@mainmatter} Anforderung verschoben}^^A
+% Über diesen Schalter wird bei Buchklassen festgelegt, ob wir uns im
+% Hauptteil des Dokuments befinden oder nicht. Die eigentliche
+% Umschaltung geschieht mit Hilfe der Befehle \cs{frontmatter},
+% \cs{mainmatter}, \cs{backmatter}. Ohne Umschaltung befinden wir uns
+% bereits im Hauptteil.
% \begin{macrocode}
-\newcommand*\appendixname{Appendix}
+%<*class>
+%<*book>
+%<*body>
+\newif\if@mainmatter\@mainmattertrue
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \@mainmatterfalse
+% \end{macro}^^A \@mainmattertrue
+% \end{macro}^^A \if@mainmatter
%
-% \iffalse
-%<*book|report>
-% \fi
-% \begin{macro}{\chapappifprefix}
-% \changes{v2.8}{2001/06/15}{neu}
-% \changes{v2.8o}{2001/09/19}{obsolet}
-% \begin{macro}{\chapappifchapterprefix}
-% \changes{v2.8o}{2001/09/19}{neu}
-% \changes{v2.8o}{2001/09/19}{Argument ist nicht optional}
-% \begin{macro}{\chapapp}
-% \changes{v2.8}{2001/06/15}{neu}
-% Das in \cs{chapterformat} verwendete Makro
-% \cs{chapappifchapterprefix} setzt abhängig von \cs{if@chapterprefix}
-% noch das Makro \cs{chapapp} gefolgt vom obliatorischen Argument.
-% \cs{chapapp} macht \cs{@chapapp} auf Anwenderebene verfügbar. Der
-% Vorteil des neuen \cs{chapappifchapterprefix} gegenüber dem alten
-% \cs{chapappifprefix} ist, dass nun beim Umdefinieren von
-% \cs{chapterformat} und \cs{chaptermarkformat} wieder
-% \cs{renewcommand} verwendet werden kann und beim Umschalten in den
-% Anhang die Kopfzeile korrekt ist, weil das Makro nun nicht mehr
-% geschützt ist, sondern direkt expandiert.
+% \begin{macro}{\frontmatter}
+% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}^^A
+% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten}^^A
+% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
+% \cs{cleardoublepage}}^^A
+% Der Vorspann enthält bei Büchern oftmals Inhaltsverzeichnis, Vorwort
+% und dergleichen und wird mit kleinen römischen Seitenzahlen
+% versehen.
% \begin{macrocode}
-\newcommand*{\chapappifprefix}[1][]{%
- \ClassWarning{\KOMAClassName}{%
- Please don't use obsolete command
- \string\chapappifprefix.\MessageBreak
- The new command \string\chapappifchapterprefix\space has
- an\MessageBreak
- obligatory instead of an optional argument. Use that\MessageBreak
- new command%
- }%
- \if@chapterprefix\chapapp#1\fi
+\newcommand*\frontmatter{%
+ \if@twoside\cleardoubleoddpage\else\clearpage\fi
+ \@mainmatterfalse\pagenumbering{roman}%
}
-\newcommand*{\chapappifchapterprefix}[1]{%
- \if@chapterprefix\chapapp#1\fi
+% \end{macrocode}
+% \end{macro}^^A \frontmatter
+% \begin{macro}{\mainmatter}
+% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}^^A
+% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten}^^A
+% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
+% \cs{cleardoublepage}}^^A
+% Der Hauptteil ist das Fleisch der Bücher.
+% \begin{macrocode}
+\newcommand*\mainmatter{%
+ \if@twoside\cleardoubleoddpage\else\clearpage\fi
+ \@mainmattertrue\pagenumbering{arabic}%
}
-\newcommand*{\chapapp}{\@chapapp}
% \end{macrocode}
-% \begin{macro}{\@chapapp}
-% Dieses Makro enthält den Kapitelname (\cs{chaptername}), der sich im
-% Anhang üblicherweise ändert (\cs{appendixname}).
+% \end{macro}^^A \mainmatter
+% \begin{macro}{\backmatter}
+% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt
+% \cs{cleardoublepage}}^^A
+% Auch wenn nicht ganz einzusehen ist, warum das anders sein soll,
+% wird hier nicht nach der Option \texttt{twoside}, sondern nach
+% \texttt{openright} unterschieden.
% \begin{macrocode}
-\newcommand*\@chapapp{\chaptername}
+\newcommand*\backmatter{%
+ \if@openright\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse
+}
+%</body>
+%</book>
+%</class>
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Anhang}
+%
+% Teile gibt es tatsächlich bei allen drei Hauptklassen.
+%
+% \begin{macro}{\appendix}
+% Wird der Anhang aktiviert, so werden Kapitel bzw. Abschnitte zukünftig mit
+% Buchstaben nummeriert.
+% \changes{v2.2d}{1995/05/28}{\textsf{scrartcl} benötigt keinen Zähler für
+% \cs{chapter}}^^A
+% \changes{v2.3c}{1995/08/06}{alternative Nummerierung bei Verwendung eines
+% Anhangs}^^A
+% \changes{v2.8}{2001/06/15}{\cs{appendixmore} wird beachtet}^^A
+% \changes{v2.8e}{2001/07/10}{\cs{@altsecnumformattrue} wird nicht länger
+% ausgeführt}^^A
+% \changes{v2.8o}{2001/09/19}{\cs{par} eingefügt}^^A
+% \changes{v2.95}{2006/07/04}{\cs{newcommand*} durch \cs{gdef} ersetzt}^^A
+% \changes{v2.95}{2006/07/04}{Ausführung von \cs{appendixmore}
+% vereinfacht}^^A
+% \begin{macro}{\appendixmore}
+% \cs{appendixmore} kann als \emph{hook} verwendet werden. Derzeit wird dieser
+% allerdings noch recht stiefmütterlich behandelt und lediglich von Option
+% \texttt{appendixprefix} definiert.
+% \begin{macrocode}
+%<*class>
+%<*body>
+\newcommand*\appendix{\par%
+%<*article>
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \gdef\thesection{\@Alph\c@section}%
+%</article>
+%<*report|book>
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \gdef\@chapapp{\appendixname}%
+ \gdef\thechapter{\@Alph\c@chapter}%
+%</report|book>
+ \csname appendixmore\endcsname
+}
+%</body>
+%</class>
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \iffalse
-%</book|report>
-% \fi
%
-% \subsection{Die Gliederungsbefehle}
%
-% \changes{v2.3h}{1996/01/20}{Größenbefehle in den Überschriften
-% variabilisiert}
+% \subsection{Teile}
+%
+% \changes{v2.8e}{2001/07/10}{\cs{@thepart} entfernt}
+%
+% Teile sind bei den unterschiedlichen Klassen unterschiedlich definiert.
+%
+% \begin{macro}{\size@part}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
+% wenn es keine Auswirkung auf den Zeilen abstand hat}^^A
+% \begin{macro}{\size@partnumber}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
+% wenn es keine Auswirkung auf den Zeilen abstand hat}^^A
+% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
+% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% \begin{macrocode}
+%<*class>
+%<*prepare>
+\newcommand*{\size@part}{}
+\newcommand*{\size@partnumber}{}
+%</prepare>
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \size@partnumber
+% \end{macro}^^A \size@part
+%
+%
+% \begin{macro}{\partnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}
+% Darf nur gelesen, sollten aber nie umdefiniert werden und gibt die
+% Nummerierungsebene der Gliederungsanweisungen an (nicht zu verwechseln mit
+% der Verzeichnisebene der Gliederungsanweisungen). Dass sich die Ebene für
+% \texttt{article} unterscheidet ist ein zum Feature erklärten Bug, der aus
+% Kompatibilitätsgründen von den Standardklassen übernommen wurde. Richtig
+% glücklich bin ich damit jedoch nicht!
+% \begin{macrocode}
+%<*class>
+%<*body>
+\newcommand*{\partnumdepth}{%
+%<article> \z@
+%<report|book> \m@ne
+}
+% \end{macrocode}
+% \end{macro}^^A \partnumdepth
+%
%
% \begin{macro}{\part}
-% \changes{v2.1c}{1995/01/17}{Zeichenkette "`markboth"' durch
-% Befehl \cs{markboth} ersetzt}
-% \changes{v2.2c}{1995/05/25}{Part-Ausgabe auf CJK umgestellt}
+% \changes{v2.1c}{1995/01/17}{Zeichenkette "`markboth"' durch Befehl
+% \cs{markboth} ersetzt}^^A
+% \changes{v2.2c}{1995/05/25}{Part-Ausgabe auf CJK umgestellt}^^A
% \changes{v2.3c}{1995/08/06}{alternative Numerierung bei römischer
-% Part-Numerierung}
-% \changes{v2.3d}{1995/08/19}{alternative Numerierung korrigiert}
-% \changes{v2.3g}{1996/01/14}{\cs{hbox} durch \cs{null} ersetzt}
-% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt
-% \texttt{plain}}
-% \changes{v2.8p}{2001/09/27}{Präambel über der Überschrift
-% hinzugefügt}
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}
+% Part-Numerierung}^^A
+% \changes{v2.3d}{1995/08/19}{alternative Numerierung korrigiert}^^A
+% \changes{v2.3g}{1996/01/14}{\cs{hbox} durch \cs{null} ersetzt}^^A
+% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}}^^A
+% \changes{v2.8p}{2001/09/27}{Präambel über der Überschrift hinzugefügt}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} behebt einen
+% Bug im color Paket}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
% \begin{macro}{\@part}
% \changes{v2.4b}{1996/03/29}{\cs{size@partnumer} durch
-% \cs{size@partnumber} ersetzt}
+% \cs{size@partnumber} ersetzt}^^A
% \changes{v2.4n}{1997/05/28}{für \textsf{scrartcl} \cs{markboth}
-% zum Löschen der Kolumnentitel durch \cs{sectionmark} ersetzt}
+% zum Löschen der Kolumnentitel durch \cs{sectionmark} ersetzt}^^A
% \changes{v2.5e}{1998/07/17}{\cs{numberline} verwendet, damit die
-% reservierte Part-Nummern-Breite in \cs{l@part} auch wirklich
-% verwendet wird}
-% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@part} und \cs{size@partnumber} aufgerufen}
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% reservierte Part-Nummern-Breite in \cs{l@part} auch wirklich verwendet
+% wird}^^A
+% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}^^A
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor \cs{size@part} und
+% \cs{size@partnumber} aufgerufen}^^A
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}^^A
% \changes{v2.95}{2002/08/13}{\cs{centering} und \cs{@parskipfalse}%
-% \cs{@parskip@indent} vertauscht}
-% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und }
+% \cs{@parskip@indent} vertauscht}^^A
% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-% ersetzt}
-% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}}
+% ersetzt}^^A
+% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}}^^A
% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}
+% Argument der Gliederungsbefehle}^^A
% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird
-% stattdessen \cs{@mkboth}{}{} aufgerufen.}
+% stattdessen \cs{@mkboth}{}{} aufgerufen.}^^A
% \begin{macro}{\@spart}
% \changes{v2.4n}{1997/05/28}{in der Sternvariante \cs{chaptermark}
% bzw. \cs{sectionmark} eingefügt, um die Kolumnentitel zu
-% löschen}
+% löschen}^^A
% \changes{v2.6a}{2000/01/20}{zum Löschen der Kolumnentitel wird
-% nun \cs{@mkboth} verwendet}
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% nun \cs{@mkboth} verwendet}^^A
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}^^A
% \changes{v2.95}{2002/08/13}{\cs{centering} und
-% \cs{@parskipfalse}\cs{@parskip@indent} vertauscht}
+% \cs{@parskipfalse}\cs{@parskip@indent} vertauscht}^^A
% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-% ersetzt}
+% ersetzt}^^A
% \begin{macro}{\@endpart}
% \changes{v2.3g}{1996/01/14}{\cs{@endpart} wird für
-% \textsf{scrartcl} nicht mehr definiert}
-% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}
+% \textsf{scrartcl} nicht mehr definiert}^^A
+% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten}^^A
% \changes{v2.6c}{2000/06/10}{\cs{@endpart} fügt nur noch in
% beidseitigen Dokumenten bei Verwendung von openright eine
-% Leerseite ein}
-% \changes{v2.8p}{2001/09/27}{\cs{vbox} eingefügt}
+% Leerseite ein}^^A
+% \changes{v2.8p}{2001/09/27}{\cs{vbox} eingefügt}^^A
% \changes{v2.8p}{2001/09/27}{\cs{use@preamble} ersetzt
-% \cs{@part@preamble}}
-% \changes{v3.02}{2009/01/01}{Verwendung des neuen \cs{partheademptypage}}
+% \cs{@part@preamble}}^^A
+% \changes{v3.02}{2009/01/01}{Verwendung des neuen
+% \cs{partheademptypage}}^^A
% Der Gliederungsfehl \cs{part} wird wie in den Standardklassen mit
% Hilfe mehrere Hilfsmakros definiert. Wesentliche Unterschiede zu den
% Standardklassen existieren nicht, jedoch sind Schriftgröße,
@@ -1666,29 +1863,59 @@
% \cs{part}-Überschrift kann ohne Warnung über den oberen Rand
% hinaus reichen!}
% \begin{macro}{\partheadstartvskip}
-% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}
+% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}^^A
+% \changes{v3.15}{2014/11/24}{\textsf{scrartcl} definiert und verwendet
+% \cs{scr@part@sectionbeforeskip}}^^A
% \begin{macro}{\partheadmidvskip}
% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}
% \begin{macro}{\partheadendvskip}
% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}
+% \changes{v3.15}{2014/11/24}{\textsf{scrartcl} definiert und verwendet
+% \cs{scr@part@sectionafterskip}}^^A
% \begin{macro}{\parheademptypage}
% \changes{v3.02}{2009/01/01}{neue Konfigurationsmöglichkeit}
% Diese vier Makros werden verwendet, um den Abstand über in und unter der
% Überschrift eines Teils und die leere Rückseite zu definieren. Prinzipiell
% kann damit auch der Umbruch zwischen Nummer und Text entfernt werden.
+% Da die Größe nicht über Option \texttt{headings} beeinflusst werden kann,
+% müssen diese Hilfsmakros nicht bereits vor den Optionen definiert werden.
+% \begin{macro}{\scr@part@sectionbeforeskip}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% \begin{macro}{\scr@part@sectionafterskip}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% \begin{macro}{\scr@part@sectionindent}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung (unbenutzt)}^^A
+% \begin{macro}{\scr@part@style}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% Es wird der leere Stil verwendet, mit dem Neudefinitionen von \cs{part}
+% über \cs{DeclareSectionCommand} verhindert werden.
+% \begin{macrocode}
+\newcommand*{\scr@part@sectionbeforeskip}{%
+%<article> 4ex
+% \end{macrocode}
+% Hinweis: Das |+\baselineskip| wird benötigt, um Kompatibilitätsprobleme mit
+% der Umdefinierung von |\chapterheadstartvskip| zu vermeiden.
% \begin{macrocode}
+%<report|book> \z@ \@plus 1fil + \baselineskip
+}
\newcommand*{\partheadstartvskip}{%
-%<article> \addvspace{4ex}%
-%<report|book> \null\vfil
+%<article> \addvspace{\@tempskipa}%
+%<report|book> \null\vskip-\baselineskip\vskip\@tempskipa
}
\newcommand*{\partheadmidvskip}{%
\par\nobreak
%<book|report> \vskip 20\p@
}
+\newcommand*{\scr@part@sectionafterskip}{%
+%<article> 3ex
+%<report|book> \z@ \@plus 1fil
+}
\newcommand*{\partheadendvskip}{%
-%<article> \vskip 3ex
-%<report|book> \vfil\newpage
+%<article> \vskip\@tempskipa
+%<report|book> \vskip\@tempskipa\newpage
}
+\newcommand*{\scr@part@sectionindent}{\z@}
+\newcommand*{\scr@part@style}{}
%<*report|book>
\newcommand*{\partheademptypage}{%
\if@twoside\if@openright
@@ -1703,9 +1930,15 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
% \begin{macrocode}
%<*article>
\newcommand\part{\par
+ \@tempskipa=\glueexpr\scr@part@sectionbeforeskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
\partheadstartvskip%
\@afterindentfalse
\SecDef\@part\@spart
@@ -1720,6 +1953,8 @@
\else
\@tempswafalse
\fi
+ \@tempskipa=\glueexpr\scr@part@sectionbeforeskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
\partheadstartvskip
\vbox to\z@{\vss\use@preamble{part@o}\strut\par}%
\vskip-\baselineskip\nobreak%
@@ -1775,6 +2010,8 @@
\endgroup
%<*article>
\nobreak
+ \@tempskipa=\glueexpr\scr@part@sectionafterskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
\partheadendvskip
\@afterheading
%</article>
@@ -1790,6 +2027,8 @@
\endgroup
%<*article>
\nobreak
+ \@tempskipa=\glueexpr\scr@part@sectionafterskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
\partheadendvskip
\@afterheading
%</article>
@@ -1797,6 +2036,8 @@
}
%<*book|report>
\newcommand*{\@endpart}{\vbox to\z@{\use@preamble{part@u}\vss}%
+ \@tempskipa=\glueexpr\scr@part@sectionafterskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
\partheadendvskip
\partheademptypage
\if@tempswa
@@ -1808,6 +2049,33 @@
% \end{macro}
% \end{macro}
% \end{macro}
+%
+% \begin{macro}{\setpartpreamble}
+% \changes{v2.8f}{2001/07/12}{neu}^^A
+% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}}^^A
+% \begin{macro}{\part@u@preamble}
+% \changes{v2.8p}{2001/09/27}{neu (intern)}^^A
+% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}}^^A
+% \changes{v3.12a}{2014/02/14}{flaschen (\cs{part@preamble@u}) Namen
+% korrigiert}^^A
+% \begin{macro}{\part@o@preamble}
+% \changes{v2.8p}{2001/09/27}{neu (intern)}^^A
+% \changes{v3.12a}{2014/02/14}{flaschen Namen (\cs{part@preamble@o})
+% korrigiert}^^A
+% Analog zu den Kapitel gibt es Befehle für eine Teil-Präambel.
+% \begin{macrocode}
+%<*book|report>
+\newcommand*{\setpartpreamble}{\set@preamble{part}}
+\newcommand*{\part@u@preamble}{}
+\let\part@u@preamble\relax
+\newcommand*{\part@o@preamble}{}
+\let\part@o@preamble\relax
+%</book|report>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\addparttocentry}
% \changes{v3.08}{2010/11/01}{Neu}
% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{part}
@@ -1822,29 +2090,28 @@
\addtocentrydefault{part}{#1}{#2}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \addparttocentry
+% \end{macro}^^A \part
%
%
% \begin{macro}{\addpart}
-% \changes{v2.8c}{2001/06/29}{neu}
-% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt
-% \texttt{plain}}
-% \changes{v2.95a}{2006/07/10}{support of preamble added}
-% \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added}
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}
+% \changes{v2.8c}{2001/06/29}{neu}^^A
+% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}}^^A
+% \changes{v2.95a}{2006/07/10}{support of preamble added}^^A
+% \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
% \begin{macro}{\@addpart}
-% \changes{v2.8c}{2001/06/29}{neu (intern)}
-% \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben}
-% \changes{v2.95}{2004/07/20}{kann Kolumnentitel erzeugen}
-% \changes{v3.00}{2008/07/01}{Notlösung für \textsf{hyperref} eingefügt}
-% \changes{v3.08}{2010/11/02}{Verwendung von \cs{addparttocentry}}
+% \changes{v2.8c}{2001/06/29}{neu (intern)}^^A
+% \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben}^^A
+% \changes{v2.95}{2004/07/20}{kann Kolumnentitel erzeugen}^^A
+% \changes{v3.00}{2008/07/01}{Notlösung für \textsf{hyperref} eingefügt}^^A
+% \changes{v3.08}{2010/11/02}{Verwendung von \cs{addparttocentry}}^^A
% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}
+% Argument der Gliederungsbefehle}^^A
% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird
-% \cs{@mkboth}{}{} aufgerufen.}
+% \cs{@mkboth}{}{} aufgerufen.}^^A
% \begin{macro}{\@saddpart}
-% \changes{v2.8c}{2001/06/29}{neu (intern)}
+% \changes{v2.8c}{2001/06/29}{neu (intern)}^^A
% \begin{macrocode}
\newcommand\addpart{%
%<*article>
@@ -1890,7 +2157,7 @@
% \end{macrocode}
% Notlösung, damit \textsf{hyperref} halbwegs damit klar kommt. Das ist aber
% weit davon entfernt eine echte Lösung zu bringen.
-% \changes{v3.10b}{2012/04/24}{missing \cs{fi} added}
+% \changes{v3.10b}{2012/04/24}{missing \cs{fi} added}^^A
% \begin{macrocode}
\csname phantomsection\endcsname
\ifx\scr@ds@tocentry\@empty\else
@@ -1907,58 +2174,401 @@
}
\newcommand*{\@saddpart}{\@spart}
% \end{macrocode}
-% \begin{macro}{\partmark}
-% \changes{v2.9r}{2004/07/20}{neu (für \textsf{scrpage2})}
+% \begin{macro}{\partmark}
+% \changes{v2.9r}{2004/07/20}{neu (für \textsf{scrpage2})}^^A
% \begin{macrocode}
\newcommand*{\partmark}{}
\let\partmark\@gobble
% \end{macrocode}
+% \end{macro}^^A \partmark
+% \end{macro}^^A \@saddpart
+% \end{macro}^^A \@addpart
+% \end{macro}^^A \addpart
+%
+%
+% \begin{macro}{\l@part}
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont}\cs{large} durch Verwendung von
+% Element \texttt{partentry} ersetzt}^^A
+% \changes{v2.97c}{2007/06/21}{Element \texttt{partentrypagenumber} wird
+% verwendet}^^A
+% \changes{v3.15}{2014/12/23}{Verwendung von \cs{parttocdepth} und
+% \cs{scr@part@numwidth}}^^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
+% werden.
+% \begin{macro}{\parttocdepth}
+% \changes{v3.15}{2014/12/22}{neue Anweisung}^^A
+% Die Ebene des Verzeichniseintrags wird tatsächlich verwendet.
+% \begin{macrocode}
+\newcommand*{\parttocdepth}{\m@ne}
+\let\parttocdepth\m@ne
+% \end{macrocode}
+% \end{macro}^^A \parttocdepth
+% \begin{macro}{\scr@part@tocindent}
+% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
+% Wird nicht verwendet aber zwecks besserer Kompatibilität mit
+% \cs{DeclareSectionCommand} definiert.
+% \begin{macrocode}
+\newcommand*{\scr@part@tocindent}{\z@}
+\let\scr@part@tocindent\z@
+% \end{macrocode}
+% \end{macro}^^A \scr@part@tocindent
+% \begin{macro}{\scr@part@tocnumwidth}
+% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
+% Die definierte Breite der Nummer für den Eintrag ins Inhaltsverzeichnis.
+% \begin{macrocode}
+\newcommand*{\scr@part@tocnumwidth}{2em}
+% \end{macrocode}
% \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}
+ \ifnum \scr@compatibility>\@nameuse{scr@v@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
+%
+%
+% \begin{Counter}{part}
+% \begin{macro}{\thepart}
+% \begin{macro}{\partformat}
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}^^A
+% \changes{v2.5f}{1999/02/14}{überflüssiges Leerzeichen am Ende
+% entfernt}^^A
+% \changes{v2.7h}{2001/04/22}{verlorenen Backslash in \cs{autodot}
+% wieder eingefügt}^^A
+% Jede Gliederungsebene benötigt einen Zähler für die Gliederungsnummer und
+% eine Darstellung des Zählers (\cs{the\dots}). Desweiteren wird eine
+% Formatierung des Zählers in den Gliederungsüberschriften
+% (\texttt{\bslash\dots format}) benötigt.
+% \begin{macrocode}
+\newcounter{part}
+\renewcommand*{\thepart}{\@Roman\c@part}
+\newcommand*{\partformat}{\partname~\thepart\autodot}
+% \end{macrocode}
+% \end{macro}^^A \partformat
+% \end{macro}^^A \thepart
+% \end{Counter}{part}
+%
+%
+% \begin{macro}{\partname}
+% Namen der Gliederungsebenen \cs{part}.
+% \begin{macrocode}
+\newcommand*\partname{Part}
+% \end{macrocode}
+% \end{macro}^^A \partname
+%
+%
+% \begin{macro}{\raggedpart}
+% \changes{v2.95a}{2006/07/10}{neue Konfigurationsmöglichkeit}^^A
+% Die Ausrichtung der Überschrift von \cs{part} kann davon abweichend über
+% \cs{raggedpart} konfiguriert werden. Die Voreinstellung ist von der
+% Klasse abhängig.
+% \begin{macrocode}
+\newcommand*{\raggedpart}{}
+%<article>\let\raggedpart\raggedsection
+%<report|book>\let\raggedpart\centering
+% \end{macrocode}
% \end{macro}
+%
+% \begin{KOMAfont}{part}
+% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}}^^A
+% \begin{macro}{\scr@fnt@part}
+% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}}^^A
+% \begin{KOMAfont}{partnumber}
+% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}}^^A
+% \begin{macro}{\scr@fnt@partnumber}
+% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}}^^A
+% \begin{macrocode}
+\newcommand*{\scr@fnt@part}{\size@part}
+\newcommand*{\scr@fnt@partnumber}{\size@partnumber}
+% \end{macrocode}
% \end{macro}
+% \end{KOMAfont}
% \end{macro}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{partentry}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
+% \texttt{disposition} ersetzt}^^A
+% Schrift für den \cs{part}-Eintrag im Inhaltsverzeichnis.
+% \begin{macrocode}
+\newkomafont{partentry}{\usekomafont{disposition}\large}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{partentrypagenumber}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% Schrift für die Seitenzahl des \cs{part}-Eintrags im Inhaltsverzeichnis
+% abweichend von \texttt{partentry}.
+% \begin{macrocode}
+\newkomafont{partentrypagenumber}{}
+%</body>
+%</class>
+% \end{macrocode}
+% \end{KOMAfont}
+%
+%
+% \subsection{Kapitel}
+%
+% Bei den Klassen \texttt{scrbook} und \texttt{scrreprt} gibt es im
+% Unterschied zu \texttt{scrartcl} auch noch die Kapitelebene.
+%
+% \begin{option}{chapterprefix}
+% \changes{v2.8}{2001/06/15}{neue Option}^^A
+% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}^^A
+% \begin{option}{nochapterprefix}
+% \changes{v2.8}{2001/06/15}{neue Option}^^A
+% \changes{v2.95c}{2006/08/21}{obsolete Option}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% Normalerweise verwenden \textsf{scrbook} und \textsf{scrreprt} nicht
+% die enorm großen Überschriften von \textsf{book} und
+% \textsf{report}, die mit einem Absatz "`Kapitel \emph{Nummer}"'
+% beginnen. Mit der Option \texttt{chapterprefix} kann dies jetzt
+% wieder aktiviert werden. Die Option, zur Deaktivierung heißt
+% entsprechend \textsf{nochapterprefix}.
+% Um für Spezialanwendungen auch innerhalb des Dokuments eine
+% Umschaltung zu ermöglichen bzw. für die Optionen
+% \texttt{appendixprefix} und \texttt{noappendixprefix} erfolgt die
+% Umschaltung durch einen Schalter.
+% \begin{macrocode}
+%<*class>
+%<*book|report>
+%<*option>
+\KOMA@ifkey{chapterprefix}{@chapterprefix}
+\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false}
+%</option>
+% \end{macrocode}
+% \end{option}
+% \end{option}
+%
+%
+% \begin{option}{appendixprefix}
+% \changes{v2.8}{2001/06/15}{neue Option}^^A
+% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \begin{option}{noappendixprefix}
+% \changes{v2.8}{2001/06/15}{neue Option}^^A
+% \changes{v2.95c}{2006/08/21}{obsolete Option}^^A
+% \changes{v3.01a}{2008/11/20}{deprecated}^^A
+% Will man abweichend von der Option \texttt{chapterprefix} die großen
+% Überschriften für den Anhang aktivieren oder deaktivieren, so kann man das
+% mit dieser Option erreichen. Allerdings setzt diese keinen Schalter, sondern
+% ein Zusatzmakro, das auch für andere Zwecke genutzt werden kann. Übrigens
+% ist keine der beiden Einstellungen die Voreinstellung!
+% \begin{macrocode}
+%<*option>
+\KOMA@key{appendixprefix}[true]{%
+ \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \@ifundefined{appendixmore}{%
+ \def\appendixmore{\@chapterprefixtrue}%
+ }{%
+ \l@addto@macro\appendixmore{\@chapterprefixtrue}%
+ }%
+ \else
+ \@ifundefined{appendixmore}{%
+ \def\appendixmore{\@chapterprefixfalse}%
+ }{%
+ \l@addto@macro\appendixmore{\@chapterprefixfalse}%
+ }%
+ \fi
+ \fi
+}
+\KOMA@DeclareDeprecatedOption{noappendixprefix}{appendixprefix=false}
+%</option>
+% \end{macrocode}
+% \end{option}^^A noappendixprefix
+% \end{option}^^A appendixprefix
+%
+%
+% \begin{macro}{\size@chapter}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten,
+% wenn es keine Auswirkung auf den Zeilen abstand hat}^^A
+% \begin{macro}{\size@chapterprefix}
+% \changes{v2.96a}{2006/12/02}{neu (intern)}^^A
+% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
+% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% \begin{macrocode}
+%<*prepare>
+\newcommand*{\size@chapter}{}
+\newcommand*{\size@chapterprefix}{\size@chapter}
+%</prepare>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\chapterheadstartvskip}
+% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@sectionbeforeskip} wird
+% definiert und verwendet}^^A
+% \begin{macro}{\chapterheadendvskip}
+% \changes{v3.11c}{2013/02/13}{\cs{chapterheadstartvskip} und
+% \cs{chapterheadendvskip} haben in \textsf{scrartcl} nichts verloren}^^A
+% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@sectionafterskip} wird
+% definiert und verwendet}^^A
+% \changes{v3.15}{2014/12/10}{\cs{vspace} durch \cs{vskip} ersetzt, damit
+% \cs{lastskip} korrekt gesetzt ist}
+% \begin{macro}{\chapterheadmidvskip}
+% \changes{v3.15}{2014/11/20}{neue Anweisung}
+% Mit diesen Anweisungen wird üblicherweise der Abstand zwischen
+% oberem Rand des Textbereichs und der Überschrift bzw. der Abstand
+% zwischen der Überschrift und dem Text des Kapitels gesetzt. Man kann
+% die Anweisungen aber zusätzlich auch für andere Zwecke
+% missbrauchen. Das ist der Grund warum diese Makros keine Längen,
+% sondern komplette Anweisungen enthalten. In der Voreinstellung
+% enthalten sie jedoch gar nichts. Die tatsächlichen Werte werden
+% durch die Optionen festgelegt. Dabei wird \cs{chapterheadmidvskip} nur
+% verwendet, wenn Option \texttt{chapterprefix} aktiv ist.
+%
+% Zur Erhöhung der Kompatibilität mit \cs{DeclareSectionCommand} werden
+% zunächst einige Hilfsanweisung definiert und verwendet. Das bedeutet jedoch
+% nicht, dass \cs{chapter} mit \cs{DeclareSectionCommand} den Stil von normalen
+% Gliederungsbefehlen erhalten kann!
+% \begin{macro}{\scr@chapter@sectionbeforeskip}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% \begin{macro}{\scr@chapter@sectionafterskip}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% \begin{macro}{\scr@chapter@sectionindent}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung (unbenutzt)}^^A
+% \begin{macro}{\scr@chapter@style}
+% \changes{v3.15}{2014/11/24}{neue (interne) Anweisung}^^A
+% Dabei wird der leere Stil verwendet, mit dem Neudefinitionen von \cs{part}
+% über \cs{DeclareSectionCommand} verhindert werden. Gleichzeitig können
+% jedoch Einstellungen einiger Werte darüber erfolgen.
+% \begin{macrocode}
+%<*prepare>
+\newcommand*{\scr@chapter@sectionbeforeskip}{\z@}
+\let\scr@chapter@sectionbeforeskip\z@
+\newcommand*{\scr@chapter@sectionafterskip}{\z@}
+\let\scr@chapter@sectionafterskip\z@
+\newcommand*{\scr@chapter@sectionindent}{\z@}
+\let\scr@chapter@sectionindent\z@
+\newcommand*{\scr@chapter@style}{}
+% \end{macrocode}
+% \end{macro}^^A \scr@chapter@style
+% \end{macro}^^A \scr@chapter@sectionindent
+% \end{macro}^^A \scr@chapter@sectionbeforeskip
+% \end{macro}^^A \scr@chapter@sectionafterskip
+% \begin{macrocode}
+\newcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}
+\newcommand*{\chapterheadendvskip}{\vskip\@tempskipa}
+\newcommand*{\chapterheadmidvskip}{\par\nobreak\vskip.5\baselineskip}
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \chapterheadmidvskip
+% \end{macro}^^A \chapterheadendvskip
+% \end{macro}^^A \chapterheadstartvskip
+%
+%
+% \begin{macro}{\chapternumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}
+% Darf nur gelesen, sollten aber nie umdefiniert werden und geben die
+% Nummerierungsebene der Gliederungsanweisungen an (nicht zu verwechseln mit
+% der Verzeichnisebene der Gliederungsanweisungen):
+% \begin{macrocode}
+%<*body>
+\newcommand*{\chapternumdepth}{\z@}
+% \end{macrocode}
+% \end{macro}^^A \chapternumdepth
%
%
-% \iffalse
-%<*report|book>
-% \fi
% \begin{macro}{\chapter}
% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt
-% \texttt{plain}}
+% \texttt{plain}}^^A
% \begin{macro}{\@chapter}
-% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}%^^A
+% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}^^A
% \changes{v2.8g}{2001/07/18}{per \cs{float@addtolists} wird nun
% auch ein vertikaler Abstand in Listen des \texttt{float}-Pakets
-% eingebaut}%^^A
+% eingebaut}^^A
% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere
-% float-Verzeichnisse mit hyperref}%^^A
-% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}%^^A
+% float-Verzeichnisse mit hyperref}^^A
+% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}^^A
% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}%^^A
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}
+% Argument der Gliederungsbefehle}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
% \begin{macro}{\@makechapterhead}
% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit
-% einer Präambel versehen werden}
-% \changes{v2.8p}{2001/09/25}{es gibt verschiedene Arten von
-% Präambeln}
+% einer Präambel versehen werden}^^A
+% \changes{v2.8p}{2001/09/25}{es gibt verschiedene Arten von Präambeln}^^A
+% \changes{v3.15}{2014/12/10}{\cs{nobreak} am Ende entfernt}^^A
% \begin{macro}{\@@makechapterhead}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
% \changes{v2.8q}{2002/04/18}{\cs{raggedsection} wird bei Option
-% \texttt{chapterprefix} auch auf den Präfix angewendet}
-% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt}
+% \texttt{chapterprefix} auch auf den Präfix angewendet}^^A
+% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt}^^A
% Der Gliederungsfehl \cs{chapter}, der nur in den Klassen
% \textsf{scrbook} und \textsf{scrreprt} vorhanden ist, wird wie in
% den Standardklassen mit Hilfe mehrere Hilfsmakros definiert.
% \begin{macro}{\if@at@twocolumn}
-% \changes{v2.7b}{2001/01/05}{neu (intern)}
+% \changes{v2.7b}{2001/01/05}{neu (intern)}^^A
% \begin{macro}{\scr@topnewpage}
-% \changes{v2.7b}{2001/01/05}{neu (intern)}
-% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}
+% \changes{v2.7b}{2001/01/05}{neu (intern)}^^A
+% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}^^A
% \begin{macro}{\@topnewpage}
-% \changes{v2.7b}{2001/01/05}{neu (\LaTeX{} intern)}
-% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} ergänzt}
+% \changes{v2.7b}{2001/01/05}{neu (\LaTeX{} intern)}^^A
+% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} ergänzt}^^A
% \changes{v3.01}{2008/11/13}{Verwendung von
-% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}
+% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}^^A
% Interessant ist dabei die Erweiterung, daß jedes Kapitel mit einer
% Präambel versehen werden kann. Diese wird im zweispaltigen Satz wie
% die Überschrift selbst einspaltig gesetzt. Intern wird dies für
@@ -1983,25 +2593,42 @@
\@at@twocolumntrue\scr@topnewpage[{#1}]\@at@twocolumnfalse
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@topnewpage
+% \end{macro}^^A \scr@topnewpage
+% \end{macro}^^A \if@at@twocolumn
% \begin{macro}{\use@chapter@o@preamble}
+% \changes{v3.15}{2014/12/08}{Anpassung an geänderte Abstandsbehandlung}^^A
% Das Makro wird benötigt, weil das Setzen der oberen Präambel etwas
% mehr Aufwand bedeutet. Die Anweisung spart Platz, da sie zweimal
% verwendet wird.
% \begin{macrocode}
\newcommand*{\use@chapter@o@preamble}{%
- {\settoheight{\@tempdima}{\vbox{\chapterheadstartvskip}}%
- \settodepth{\@tempdimb}{\vbox{\chapterheadstartvskip}}%
+ {%
+ \settoheight{\@tempdima}{%
+ \@tempskipa=\glueexpr \scr@chapter@sectionbeforeskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \vbox{\chapterheadstartvskip}%
+ }%
+ \settodepth{\@tempdimb}{%
+ \@tempskipa=\glueexpr \scr@chapter@sectionbeforeskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \vbox{\chapterheadstartvskip}%
+ }%
\addtolength{\@tempdima}{\@tempdimb}%
- \setbox0\vbox{\use@preamble{chapter@o}%
- \vskip-\parskip}%
+ \setbox0\vbox{%
+ \vskip-\ht\strutbox
+ \use@preamble{chapter@o}%
+ \vskip\baselineskip
+ }%
\setlength{\@tempdimb}{\ht0}%
\addtolength{\@tempdimb}{\dp0}%
\vbox to \z@{%
- \vbox to \@tempdima{\vfill\box0}%
- \vskip-\@tempdima%
+ \vbox to \@tempdima{%
+ \vfill
+ \unvbox0
}%
+ \vss
+ }\vskip-\parskip\vskip-\baselineskip
\ifdim \@tempdimb>\@tempdima%
\addtolength{\@tempdimb}{-\@tempdima}%
\ClassWarning{\KOMAClassName}{%
@@ -2021,7 +2648,7 @@
}
}
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \use@chapter@o@preamble
% Zurück zur Kapiteldefinition:
% \begin{macrocode}
\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
@@ -2032,7 +2659,7 @@
}
% \end{macrocode}
% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features
-% \texttt{chapteratlist} in die Datei \texttt{scrkliof.dtx} verschoben}
+% \texttt{chapteratlist} in die Datei \texttt{scrkliof.dtx} verschoben}^^A
% Die Variante ohne Stern:
% \begin{macrocode}
\newcommand*{\@chapter}{}
@@ -2065,6 +2692,15 @@
\fi
%<*book>
\else
+% \end{macrocode}
+% \changes{v3.15}{2014/11/20}{Resetliste des Kapitelzählers ausführen}^^A
+% \begin{macrocode}
+ \ifnum\scr@compatibility<\@nameuse{scr@v@3.15}\relax\else
+ \begingroup
+ \let\@elt\@stpelt
+ \csname cl@chapter\endcsname
+ \endgroup
+ \fi
\ifx\scr@ds@tocentry\@empty\else
\addchaptertocentry{}{\scr@ds@tocentry}%
\fi
@@ -2101,48 +2737,86 @@
\newcommand*{\@makechapterhead}[1]{%
\use@chapter@o@preamble
\@@makechapterhead{#1}%
- \use@preamble{chapter@u}\nobreak
+ \use@preamble{chapter@u}%
}
% \end{macrocode}
-% \changes{v2.96a}{2006/12/02}{Abstand nach der Präfixzeile nur, wenn eines
-% Präfixzeile ausgegeben wurde}
-% \changes{v2.97b}{2007/03/09}{\cs{endgraf} korrigiert}
+% \changes{v2.96a}{2006/12/02}{Abstand nach der Präfixzeile nur, wenn eines
+% Präfixzeile ausgegeben wurde}^^A
+% \changes{v2.97b}{2007/03/09}{\cs{endgraf} korrigiert}^^A
+% \changes{v3.15}{2014/11/20}{Generalumbau}^^A
+% \changes{v3.15}{2014/12/09}{\cs{raggedchapter} ersetzt
+% \cs{raggedsection}}^^A
% \begin{macrocode}
-\newcommand*{\@@makechapterhead}[1]{\chapterheadstartvskip
+\newcommand*{\@@makechapterhead}[1]{%
+ \@tempskipa=\glueexpr \scr@chapter@sectionbeforeskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \chapterheadstartvskip
{%
\setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
- \normalfont\sectfont\nobreak\size@chapter{}%
+ \normalfont\sectfont\nobreak\nobreak\usekomafont{chapter}{}%
+%<book> \if@mainmatter
+ \def\IfUseNumber{\ifnumbered{chapter}}%
+%<book> \else\let\IfUseNumber\@secondoftwo\fi
\if@chapterprefix
- \let\@tempa\raggedsection
+ \raggedchapter
+ \let\IfUsePrefixLine\@firstoftwo
+ \let\@tempa\@firstofone
\else
+ \let\IfUsePrefixLine\@secondoftwo
\let\@tempa\@hangfrom
\fi
\@tempa{%
- \ifnumbered{chapter}{%
-%<book> \if@mainmatter
- \if@chapterprefix
- \expandafter\size@chapterprefix
- \else
- \expandafter\size@chapter
- \fi
- {\chapterformat}%
- \if@chapterprefix
- \size@chapterprefix{}\endgraf\nobreak\vskip.5\baselineskip
- \fi
-%<book> \fi
+ \IfUseNumber{%
+ \usekomafont{chapter}{%
+ \IfUsePrefixLine{%
+ {\usekomafont{chapterprefix}{%
+ \chapterformat\chapterheadmidvskip
+ }}%
+ }{%
+ \chapterformat
+ }%
+ }%
}{}%
}%
- {\raggedsection \interlinepenalty \@M \size@chapter{#1}\par}}%
- \nobreak\chapterheadendvskip
+ {%
+ \IfUsePrefixLine{}{\raggedchapter}%
+ \interlinepenalty \@M
+ \usekomafont{chapter}{#1}\par
+ }%
+ }%
+ \nobreak\par\nobreak
+ \@tempskipa=\glueexpr \scr@chapter@sectionafterskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \chapterheadendvskip
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@@makechapterhead
+% \end{macro}^^A \@makechapterhead
+% \end{macro}^^A \@chapter
+% \begin{macro}{\setchapterpreamble}
+% \changes{v2.7b}{2001/01/05}{neu}^^A
+% \changes{v2.8p}{2001/09/25}{Verwendung von \cs{set@preamble}}^^A
+% \begin{macro}{\chapter@u@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \changes{v2.8p}{2001/09/25}{Ersatz für \cs{chapter@preamble}}^^A
+% \begin{macro}{\chapter@o@preamble}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% Diese Makros werden benötigt, um die Kapitel-Präambel zu setzen
+% bzw. zu speichern.
+% \begin{macrocode}
+\newcommand*{\setchapterpreamble}{\set@preamble{chapter}}
+\newcommand*{\chapter@u@preamble}{}
+\let\chapter@u@preamble\relax
+\newcommand*{\chapter@o@preamble}{}
+\let\chapter@o@preamble\relax
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
% \begin{macro}{\addchaptertocentry}
-% \changes{v3.08}{2010/11/01}{Neu}%^^A
-% \changes{v3.12}{2013/09/24}{Behandlung von \cs{if@chaptertolists} hier}%^^A
-% \changes{v3.12}{2013/09/24}{Verwendung von \cs{addxcontentsline}}%^^A
+% \changes{v3.08}{2010/11/01}{Neu}^^A
+% \changes{v3.12}{2013/09/24}{Behandlung von \cs{if@chaptertolists} hier}^^A
+% \changes{v3.12}{2013/09/24}{Verwendung von \cs{addxcontentsline}}^^A
% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{chapter}
% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das
% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht
@@ -2163,17 +2837,19 @@
\fi
}
% \end{macrocode}
-% \end{macro}
-%
+% \end{macro}^^A \addchaptertocentry
% \begin{macro}{\@schapter}
% \begin{macro}{\@makeschapterhead}
% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit
-% einer Präambel versehen werden}
+% einer Präambel versehen werden}^^A
+% \changes{v3.15}{2014/12/10}{\cs{nobreak} am Ende entfernt}^^A
% \begin{macro}{\@@makeschapterhead}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}
-% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}^^A
+% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt}^^A
% \changes{v2.9q}{2004/03/24}{Klammerung an \cs{@@makechapterhead}
-% angepasst}
+% angepasst}^^A
+% \changes{v3.15}{2014/12/09}{\cs{raggedchapter} ersetzt
+% \cs{raggedsection}}^^A
% Die Sternvariante, die um Einiges einfacher ausfällt.
% \begin{macrocode}
\newcommand*{\@schapter}[1]{%
@@ -2189,49 +2865,55 @@
\fi
}
\newcommand*{\@@makeschapterhead}[1]{%
- \chapterheadstartvskip%
- {\normalfont\sectfont\nobreak\size@chapter{}%
+ \@tempskipa=\glueexpr \scr@chapter@sectionbeforeskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \chapterheadstartvskip
+ {%
\setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
- \raggedsection \interlinepenalty \@M \size@chapter{#1}\par}%
- \nobreak\chapterheadendvskip%
+ \normalfont\sectfont\nobreak\nobreak\usekomafont{chapter}{}%
+ \raggedchapter \interlinepenalty \@M \usekomafont{chapter}{#1}\par
+ }%
+ \nobreak\par\nobreak
+ \@tempskipa=\glueexpr \scr@chapter@sectionafterskip\relax
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \chapterheadendvskip%
}
\newcommand*{\@makeschapterhead}[1]{%
\use@chapter@o@preamble
\@@makeschapterhead{#1}%
- \use@preamble{chapter@u}\nobreak
+ \use@preamble{chapter@u}%
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \@@makeschapterhead
+% \end{macro}^^A \@makeschapterhead
+% \end{macro}^^A \@schapter
+% \end{macro}^^A \chapter
%
%
% \begin{macro}{\addchap}
-% \changes{v2.0e}{1994/08/10}{\cs{sectdef} durch \cs{secdef}
-% ersetzt}
+% \changes{v2.0e}{1994/08/10}{\cs{sectdef} durch \cs{secdef} ersetzt}^^A
% \changes{v2.0e}{1994/08/10}{\cs{addcontensline} durch
-% \cs{addcontentsline} ersetzt}
+% \cs{addcontentsline} ersetzt}^^A
% \changes{v2.0e}{1994/08/10}{\cs{@makechapterhead} durch
-% \cs{@makeschapterhead} ersetzt}
+% \cs{@makeschapterhead} ersetzt}^^A
% \changes{v2.0e}{1994/08/10}{\cs{afterheadings} durch
-% \cs{@afterheading} ersetzt}
+% \cs{@afterheading} ersetzt}^^A
% \changes{v2.1a}{1994/10/29}{Argument von \cs{chaptermark}
-% entfernt bei \textsf{scrbook}}
+% entfernt bei \textsf{scrbook}}^^A
% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch
-% \cs{sectionmark} ersetzt}
+% \cs{sectionmark} ersetzt}^^A
% \changes{v2.2b}{1995/03/20}{\cs{chaptermark} durch \cs{@mkboth}
-% ersetzt}
+% ersetzt}^^A
% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt
-% \texttt{plain}}
+% \texttt{plain}}^^A
% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere
-% float-Verzeichnisse mit hyperref}
+% float-Verzeichnisse mit hyperref}^^A
% \changes{v3.01}{2008/11/13}{Verwendung von
-% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}
-% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}
+% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}^^A
+% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}^^A
% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}
+% Argument der Gliederungsbefehle}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
% \KOMAScript{} bietet in \textsf{scrbook} und \textsf{scrreprt} den
% zusätzlichen Gliederungsbefehl \cs{addchap}. Es handelt sich dabei
% um einen mit \cs{chapter*} vergleichbaren Befehl, bei dem jedoch der
@@ -2275,9 +2957,9 @@
% \texttt{hpdftex.def} das interne Makro \cs{@schapter} so umdefiniert
% wird, dass ein korrekter Link erzeugt wird.
% \begin{macro}{\@addchap}
-% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}}
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}}^^A
% \begin{macro}{\@saddchap}
-% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}}
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}}^^A
% \begin{macrocode}
\newcommand\addchap{%
\if@openright\cleardoublepage\else\clearpage\fi
@@ -2327,9 +3009,6 @@
}%
\newcommand*{\@saddchap}[1]{\@schapter{#1}\addchapmark{}}%
% \end{macrocode}
-% \iffalse
-%<*book>
-% \fi
% In \texttt{hyperref} bis Version 6.71a ist ein dicker Bug. In
% verschiedenen \texttt{def}-Dateien wird dort das \emph{interne}
% \KOMAScript-Makro \cs{@addchap} umdefiniert, ohne sicherzustellen,
@@ -2344,6 +3023,7 @@
% \changes{v2.8q}{2001/11/17}{\cs{AfterPackage} zur Überprüfung der
% \textsf{hyperref}-Version verwendet}
% \begin{macrocode}
+%<*book>
\AfterPackage{hyperref}{%
\@ifpackagelater{hyperref}{2001/02/19}{}{%
\ClassWarningNoLine{\KOMAClassName}{%
@@ -2352,45 +3032,478 @@
causing \string\addchap\space to behave strange.\MessageBreak%
Please update hyperref to at least version
6.71b}}}
-% \end{macrocode}
-% \iffalse
%</book>
-% \fi
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
-% \iffalse
-%</report|book>
-% \fi
+%
+%
+% \begin{macro}{\l@chapter}
+% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}^^A
+% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im
+% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}^^A
+% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im
+% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}^^A
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von
+% Element \texttt{chapterentry} ersetzt}^^A
+% \changes{v2.97c}{2007/06/21}{Element \texttt{chapterentrypagenumber} wird
+% verwendet}^^A
+% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige
+% Einträge zu ermöglichen}^^A
+% \changes{v3.15}{2014/12/22}{Verwendung von \cs{chaptertocdepth} und
+% \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
+% 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
+% \cs{DeclareSectionCommand} vornehmen, allerdings noch keine komplette
+% Neugestaltung des Eintrags erreichen.
+% \begin{macro}{\chaptertocdepth}
+% \changes{v3.15}{2014/12/22}{neue Anweisung}^^A
+% Die Ebene des Verzeichniseintrags wird tatsächlich verwendet.
+% \begin{macrocode}
+\newcommand*{\chaptertocdepth}{\z@}
+\let\chaptertocdepth\z@
+% \end{macrocode}
+% \end{macro}^^A \chaptertocdepth
+% \begin{macro}{\scr@chapter@tocindent}
+% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
+% Der Einzug des Eintrags wird nicht verwendet.
+% \begin{macrocode}
+\newcommand*{\scr@chapter@tocindent}{\z@}
+\let\scr@chapter@tocindent\z@
+% \end{macrocode}
+% \end{macro}^^A \scr@chapter@tocindent
+% \begin{macro}{\scr@chapter@tocnumwidth}
+% \changes{v3.15}{2014/12/02}{neue (interne) Anweisung}^^A
+% Die Breite der Nummer des Eintrags wird tatsächlich verwendet.
+% \begin{macrocode}
+\newcommand*{\scr@chapter@tocnumwidth}{1.5em}
+% \end{macrocode}
+% \end{macro}
+% \begin{option}{chapterentrydots}
+% \changes{v3.15}{2014/12/10}{Neu}
+% 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
+ \ifnum \scr@compatibility<\@nameuse{scr@v@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}
+% \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
+ \ifnum \scr@compatibility>\@nameuse{scr@v@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
+% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis.
+% \begin{macrocode}
+\newcommand*{\raggedchapterentry}{}
+% \end{macrocode}
+% \end{macro}^^A \raggedchapterentry
+% \end{macro}^^A \l@chapter
+%
+% \begin{macro}{\l@chapteratlist}
+% \changes{v2.96a}{2006/12/03}{neues Macro}^^A
+% Dieses Makro wird ggf. für die Kapiteleinträge in den Listen der
+% Gleitumgebungen verwendet. Zunächst einmal wird hier dasselbe verwendet, wie
+% für die Kapiteleinträge ins Inhaltsverzeichnis.
+% \begin{macrocode}
+\newcommand*{\l@chapteratlist}{\l@chapter}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{Counter}{chapter}
+% \begin{macro}{\thechapter}
+% \begin{macro}{\chapterformat}
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}^^A
+% \changes{v2.7}{2000/01/03}{einfaches Leerzeichen durch \cs{enskip}
+% ersetzt}^^A
+% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt}^^A
+% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt
+% \cs{chapappifprefix}} ^^A
+% \changes{v2.96a}{2006/12/02}{\cs{mbox} eingefügt, um \cs{caps} zu
+% ermöglichen}^^A
+% \begin{macro}{\chaptermarkformat}
+% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer erhöht}^^A
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}^^A
+% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt}^^A
+% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt
+% \cs{chapappifprefix}}^^A
+% \changes{v3.03a}{2009/04/03}{Tilde durch \cs{nobreakspace} ersetzt, um die
+% Kompatibilität mit Spanisch zu verbessern}^^A
+% Jede Gliederungsebene benötigt einen Zähler für die
+% Gliederungsnummer und eine Darstellung des Zählers
+% (\cs{the\dots}). Desweiteren wird eine Formatierung des Zählers in
+% den Gliederungsüberschriften (\texttt{\bslash\dots format}) und eine
+% Formatierung des Zählers in der Kopfzeile
+% (\texttt{\bslash\dots markformat}) benötigt.
+% \begin{macrocode}
+\newcounter{chapter}
+\renewcommand*{\thechapter}{\@arabic\c@chapter}
+\newcommand*{\chapterformat}{%
+ \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot\enskip}%
+}
+\newcommand*\chaptermarkformat{\chapappifchapterprefix{\ }%
+ \thechapter\autodot\enskip}
+% \end{macrocode}
+% \end{macro}^^A \chaptermarkformat
+% \end{macro}^^A \chapterformat
+% \end{macro}^^A \thechapter
+% \end{Counter}^^A chapter
+%
+%
+% \begin{macro}{\chaptername}
+% Name der Gliederungsebenen \cs{chapter}.
+% \begin{macrocode}
+\newcommand*\chaptername{Chapter}
+% \end{macrocode}
+% \end{macro}^^A \chaptername
+%
+%
+% \begin{macro}{\appendixname}
+% Der Name des Anhangs.
+% \begin{macrocode}
+\newcommand*\appendixname{Appendix}
+% \end{macrocode}
+% \end{macro}^^A \appendixname
+%
+%
+% \begin{macro}{\chapappifprefix}
+% \changes{v2.8}{2001/06/15}{neu}^^A
+% \changes{v2.8o}{2001/09/19}{obsolet}^^A
+% \begin{macro}{\chapappifchapterprefix}
+% \changes{v2.8o}{2001/09/19}{neu}^^A
+% \changes{v2.8o}{2001/09/19}{Argument ist nicht optional}^^A
+% \begin{macro}{\chapapp}
+% \changes{v2.8}{2001/06/15}{neu}^^A
+% Das in \cs{chapterformat} verwendete Makro
+% \cs{chapappifchapterprefix} setzt abhängig von \cs{if@chapterprefix}
+% noch das Makro \cs{chapapp} gefolgt vom obliatorischen Argument.
+% \cs{chapapp} macht \cs{@chapapp} auf Anwenderebene verfügbar. Der
+% Vorteil des neuen \cs{chapappifchapterprefix} gegenüber dem alten
+% \cs{chapappifprefix} ist, dass nun beim Umdefinieren von
+% \cs{chapterformat} und \cs{chaptermarkformat} wieder
+% \cs{renewcommand} verwendet werden kann und beim Umschalten in den
+% Anhang die Kopfzeile korrekt ist, weil das Makro nun nicht mehr
+% geschützt ist, sondern direkt expandiert.
+% \begin{macrocode}
+\newcommand*{\chapappifprefix}[1][]{%
+ \ClassWarning{\KOMAClassName}{%
+ Please don't use obsolete command
+ \string\chapappifprefix.\MessageBreak
+ The new command \string\chapappifchapterprefix\space has
+ an\MessageBreak
+ obligatory instead of an optional argument. Use that\MessageBreak
+ new command%
+ }%
+ \if@chapterprefix\chapapp#1\fi
+}
+\newcommand*{\chapappifchapterprefix}[1]{%
+ \if@chapterprefix\chapapp#1\fi
+}
+\newcommand*{\chapapp}{\@chapapp}
+% \end{macrocode}
+% \begin{macro}{\@chapapp}
+% Dieses Makro enthält den Kapitelname (\cs{chaptername}), der sich im
+% Anhang üblicherweise ändert (\cs{appendixname}).
+% \begin{macrocode}
+\newcommand*\@chapapp{\chaptername}
+% \end{macrocode}
+% \end{macro}^^A \@chapp
+% \end{macro}^^A \chapapp
+% \end{macro}^^A \chapappifchapterprefix
+% \end{macro}^^A \chapappifprefix
+%
+%
+% \begin{macro}{\chaptermark}
+% Da \cs{chapter} nicht mit Hilfe von \cs{@startsection} definiert
+% wird, wird auch \cs{chaptermark} nicht automatisch definiert. Es
+% wird aber in den Seitenstilen benötigt bzw. umdefiniert. Also hier
+% vorsorglich eine Dummy-Definition:
+% \begin{macrocode}
+\newcommand*\chaptermark[1]{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addchapmark}
+% \changes{v3.12}{2013/03/26}{neue Anweisung}
+% Für \cs{addchapmark} gilt dies hingegen nicht. Das wird nicht von den Stilen
+% definiert, sondern direkt mit der gewünschten Definition
+% initialisiert. Bitte nicht davon verwirren lassen, dass \cs{if@mainmatter}
+% hier auch von \textsf{scrreprt} definiert wird. Das ist Absicht und
+% vereinfacht dem einen oder anderen Paket oder Benutzer vielleicht die
+% Arbeit.
+% \begin{macrocode}
+\newcommand*\addchapmark[1]{%
+ \begingroup
+ \expandafter\let\csname if@mainmatter\expandafter\endcsname
+ \csname iffalse\endcsname
+ \c@secnumdepth=\m@ne
+ \chaptermark{#1}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}^^A \addchapmark
+%
+%
+% \begin{macro}{\raggedchapter}
+% \changes{v3.15}{2014/12/09}{neu}
+% Da das doch recht häufig gewünscht wird, kann man die Ausrichtung der
+% Kapitelüberschrift auch getrennt von der Ausrichtung der übrigen
+% Überschriften einstellen.
+% \begin{macrocode}
+\newcommand*{\raggedchapter}{\raggedsection}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{KOMAfont}{chapter}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}}^^A
+% \begin{macro}{\scr@fnt@chapter}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}}^^A
+% \begin{KOMAfont}{chapterprefix}
+% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}}^^A
+% \begin{macro}{\scr@fnt@chapterprefix}
+% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}}^^A
+% \begin{macrocode}
+\newcommand*{\scr@fnt@chapter}{\size@chapter}
+\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix}
+% \end{macrocode}
+% \end{macro}^^A \scr@fnt@chapterprefix
+% \end{KOMAfont} chapterprefix
+% \end{macro}^^A \scr@fnt@chapter
+% \end{KOMAfont}^^A chapter
+%
+% \begin{KOMAfont}{chapterentry}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
+% \texttt{disposition} ersetzt}^^A
+% Schrift für den \cs{chapter}-Eintrag im Inhaltsverzeichnis.
+% \begin{macrocode}
+\newkomafont{chapterentry}{\usekomafont{disposition}}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{chapterentrypagenumber}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% Schrift für die Seitenzahl des \cs{chapter}-Eintrags im Inhaltsverzeichnis
+% abweichend von \texttt{chapterentry}.
+% \begin{macrocode}
+\newkomafont{chapterentrypagenumber}{}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{chapterentrydots}
+% \changes{v3.15}{2014/12/10}{neues Font-Element}^^A
+% Schrift für die optionalen Pünktchen des \cs{chapter}-Eintrags im
+% Inhaltsverzeichnis abweichend von \texttt{chapterentrypagenumber}.
+% \begin{macrocode}
+\newkomafont{chapterentrydots}{\normalfont}
+%</body>
+%</book|report>
+%</class>
+% \end{macrocode}
+% \end{KOMAfont}
+%
+%
+% \subsection{Abschnitte und Untergliederungen}
+%
+% Alle Ebenen ab \cs{section} ähneln sich so sehr, dass sie gemeinsam
+% behandelt werden. Lediglich bei \textsf{scrartl} gibt es für \cs{section}
+% selbst noch ein paar Besonderheiten.
+%
+% \begin{macro}{\size@section}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \begin{macro}{\size@subsection}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \begin{macro}{\size@subsubsection}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \begin{macro}{\size@paragraph}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% \begin{macro}{\size@subparagraph}
+% \changes{v2.8o}{2001/09/14}{neu (intern)}^^A
+% Hier werden diese Befehle nur vordefiniert. Ihre tatsächliche Einstellung
+% erfolgt über die (Vor-)Auswahl von Option \texttt{headings}.
+% \begin{macrocode}
+%<*class>
+%<*prepare>
+\newcommand*{\size@section}{}
+\newcommand*{\size@subsection}{}
+\newcommand*{\size@subsubsection}{}
+\newcommand*{\size@paragraph}{}
+\newcommand*{\size@subparagraph}{}
+%</prepare>
+% \end{macrocode}
+% \end{macro}^^A \size@subparagraph
+% \end{macro}^^A \size@paragraph
+% \end{macro}^^A \size@subsubsection
+% \end{macro}^^A \size@subsection
+% \end{macro}^^A \size@section
+%
+%
+% \begin{macro}{\l@section}
+% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}^^A
+% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im
+% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}^^A
+% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im
+% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}^^A
+% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von
+% Element \texttt{sectionentry} ersetzt}^^A
+% \changes{v2.97c}{2007/06/21}{Element \texttt{sectionentrypagenumber} wird
+% verwendet}^^A
+% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige
+% Einträge zu ermöglichen}^^A
+% \changes{v3.15}{2014/11/24}{\cs{sectiontocdepth},
+% \cs{scr@section@tocindent} und \cs{scr@section@tocnumwidth} werden
+% verwendet}^^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}
+% \changes{v3.15}{2014/12/10}{Neu}
+% Seit Version~3.15 kann man mit dieser Option Pünktchen zwischen Text und
+% Seitenzahl in den Kapiteleinträgen einschalten.
+% \begin{macrocode}
+%<*article>
+%<*option>
+\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}
+% \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
+ \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
+ \penalty20008
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\raggedsectionentry}
+% \changes{v2.97c}{2007/06/21}{neue Anweisung}
+% Ausrichtung des Textes der Abschnittseinträge im Inhaltsverzeichnis.
+% \begin{macrocode}
+\newcommand*{\raggedsectionentry}{}
+%</body>
+%</article>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
%
% \begin{macro}{\addsec}
% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch
-% \cs{sectionmark} ersetzt}
+% \cs{sectionmark} ersetzt}^^A
% \changes{v2.2b}{1995/03/20}{\cs{sectionmark} durch \cs{@mkboth}
-% ersetzt}
+% ersetzt}^^A
% \changes{v2.3h}{1995/01/21}{jetzt auch bei \textsf{scrbook} und
-% \textsf{scrreprt}}
+% \textsf{scrreprt}}^^A
% \changes{v2.4g}{1996/11/04}{\cs{section*} vorgezogen, damit
% dadurch provozierte Seitenumbrüche im Inhaltsverzeichnis
-% berücksichtigt werden}
+% berücksichtigt werden}^^A
% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} bedingt durch
-% \cs{markright} ersetzt}
+% \cs{markright} ersetzt}^^A
% \changes{v2.7a}{2001/01/04}{\cs{addsec} für eine bessere
-% Unterstützung von \textsf{hyperref} geändert}
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}
+% Unterstützung von \textsf{hyperref} geändert}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A
% \begin{macro}{\@addsec}
-% \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}}
+% \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}}^^A
% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
-% Argument der Gliederungsbefehle}
-% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}
+% Argument der Gliederungsbefehle}^^A
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}^^A
% \begin{macro}{\@saddsec}
-% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}^^A
% \KOMAScript{} bietet in allen drei Hauptklassen den zusätzlichen
% Gliederungsbefehl \cs{addsec}. Es handelt sich dabei um einen mit
% \cs{section*} vergleichbaren Befehl, bei dem jedoch der
% Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis
% erfolgt (nicht in der Stern-Variante).
% \begin{macrocode}
+%<*body>
\newcommand*\addsec{\SecDef\@addsec\@saddsec}
\newcommand*{\@addsec}{}
\def\@addsec[#1]#2{\section*{#2}%
@@ -2419,155 +3532,22 @@
}
\newcommand*{\@saddsec}[1]{\section*{#1}\addsecmark{}}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\addsectiontocentry}
-% \changes{v3.10}{2011/08/30}{Neu}
-% Entsprechend \cs{addparttocentry} und \cs{addchaptertocentry}.
-% \begin{macrocode}
-\newcommand*{\addsectiontocentry}[2]{%
- \addtocentrydefault{section}{#1}{#2}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\addsubsectiontocentry}
-% \changes{v3.10}{2011/08/30}{Neu}
-% Entsprechend \cs{addparttocentry} usw.
-% \begin{macrocode}
-\newcommand*{\addsubsectiontocentry}[2]{%
- \addtocentrydefault{subsection}{#1}{#2}%
-}
-% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \@saddsec
+% \end{macro}^^A \@addsec
+% \end{macro}^^A \addsec
%
-% \begin{macro}{\addparagraphtocentry}
-% \changes{v3.10}{2011/08/30}{Neu}
-% Entsprechend \cs{addparttocentry} usw.
-% \begin{macrocode}
-\newcommand*{\addparagraphtocentry}[2]{%
- \addtocentrydefault{paragraph}{#1}{#2}%
-}
-% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\addsubparagraphtocentry}
-% \changes{v3.10}{2011/08/30}{Neu}
-% Entsprechend \cs{addparttocentry} usw.
-% \begin{macrocode}
-\newcommand*{\addsubparagraphtocentry}[2]{%
- \addtocentrydefault{subparagraph}{#1}{#2}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\section}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@section} aufgerufen}
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}
-% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
-% von Option \texttt{version})}
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}
-% \begin{macro}{\subsection}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@subsection} aufgerufen}
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}
-% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
-% von Option \texttt{version})}
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}
-% \begin{macro}{\subsubsection}
-% \changes{v2.3d}{1995/08/19}{wird bei \texttt{scrartcl} nun
-% ebenfalls numeriert und ins Inhaltsverzeichnis geschrieben}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@subsubsection} aufgerufen}
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}
-% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
-% von Option \texttt{version})}
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}
-% \begin{macro}{\paragraph}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@paragraph} aufgerufen}
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}
-% \begin{macro}{\subparagraph}
-% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
-% \cs{size@subparagraph} aufgerufen}
-% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}
-% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}
-% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}
-% Die Standardgliederungsbefehle \cs{section} bis \cs{subparagraph}
-% sind mit der im Kernel dafür vorgesehenen Schnittstelle
-% definiert. Im Unterschied zu den Standardklassen erfolgt die
-% Formatierung jedoch in \cs{raggedsection} und die Ausgabe in der
-% Schriftart \cs{sectfont}. Außerdem sind die Größen veränderbar. In
-% letzter Konsequenz sollten hier eigentlich auch die Abstände
-% variabilisiert werden. Vielleicht in einer späteren Version.
-% \begin{macrocode}
-\newcommand\section{%
- \scr@startsection{section}{\sectionnumdepth}{\z@}%
- {-3.5ex \@plus -1ex \@minus -.2ex}%
- {2.3ex \@plus.2ex}%
- {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
- \setlength{\parfillskip}{\z@ plus 1fil}\fi
- \raggedsection\normalfont\sectfont\nobreak\size@section}%
-}
-\newcommand\subsection{%
- \scr@startsection{subsection}{\subsectionnumdepth}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
- \setlength{\parfillskip}{\z@ plus 1fil}\fi
- \raggedsection\normalfont\sectfont\nobreak\size@subsection
- }%
-}
-\newcommand\subsubsection{%
- \scr@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
- \setlength{\parfillskip}{\z@ plus 1fil}\fi
- \raggedsection\normalfont\sectfont\nobreak\size@subsubsection
- }%
-}
-\newcommand\paragraph{%
- \scr@startsection{paragraph}{\paragraphnumdepth}{\z@}%
- {3.25ex \@plus1ex \@minus.2ex}%
- {-1em}%
- {\raggedsection\normalfont\sectfont\nobreak\size@paragraph}%
-}
-\newcommand\subparagraph{%
- \scr@startsection{subparagraph}{\subparagraphnumdepth}{\parindent}%
- {3.25ex \@plus1ex \@minus .2ex}%
- {-1em}%
- {\raggedsection\normalfont\sectfont\nobreak\size@subparagraph}%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
% \begin{macro}{\minisec}
% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
-% behebt einen Bug im color Paket}%^^A
+% behebt einen Bug im color Paket}^^A
% \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende
-% behebt einen Bug im color Paket}%^^A
+% behebt einen Bug im color Paket}^^A
% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
-% von Option \texttt{version})}%^^A
+% von Option \texttt{version})}^^A
% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak}
-% entfernt}%^^A
+% entfernt}^^A
% \changes{v3.13a}{2014/08/07}{Absicherung der Abstände bei
-% aufeinanderfolgenden Überschriften entsprechend \cs{@startsection}}%^^A
+% aufeinanderfolgenden Überschriften entsprechend \cs{@startsection}}^^A
% \begin{KOMAfont}{minisec}
% \changes{v2.96a}{2006/12/03}{\texttt{minisec} ist ein eigenes
% Fontelement}
@@ -2600,722 +3580,712 @@
% \end{macro}
%
%
-% \subsection{Schrift und Formatierung}
-%
-% \begin{macro}{\raggedsection}
-% \changes{v2.3h}{1996/01/20}{Überschriften werden
-% \cs{raggedsection} gesetzt}
-% \changes{v2.3h}{1996/01/20}{\cs{raggedsection} ist als
-% \cs{raggedright} voreingestellt}
-% Dieses Makro gibt an, wie die Überschriften formatiert
-% werden. Voreingestellt ist linksbündig.
+% \begin{macro}{\addsectiontocentry}
+% \changes{v3.10}{2011/08/30}{Neu}^^A
+% Entsprechend \cs{addparttocentry} und \cs{addchaptertocentry}.
% \begin{macrocode}
-\newcommand*{\raggedsection}{}
-\let\raggedsection\raggedright
+\newcommand*{\addsectiontocentry}[2]{%
+ \addtocentrydefault{section}{#1}{#2}%
+}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\raggedpart}
-% \changes{v2.95a}{2006/07/10}{neue Konfigurationsmöglichkeit}
-% Die Ausrichtung der Überschrift von \cs{part} kann davon abweichend über
-% \cs{raggedpart} konfiguriert werden. Die Voreinstellung ist von der
-% Klasse abhängig.
+% \begin{macro}{\addsubsectiontocentry}
+% \changes{v3.10}{2011/08/30}{Neu}^^A
+% Entsprechend \cs{addparttocentry} usw.
% \begin{macrocode}
-\newcommand*{\raggedpart}{}
-%<article>\let\raggedpart\raggedsection
-%<report|book>\let\raggedpart\centering
+\newcommand*{\addsubsectiontocentry}[2]{%
+ \addtocentrydefault{subsection}{#1}{#2}%
+}
% \end{macrocode}
-% \end{macro}
+% \end{macro}
%
-% \begin{KOMAfont}{partentry}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}
-% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
-% \texttt{disposition} ersetzt}
-% Schrift für den \cs{part}-Eintrag im Inhaltsverzeichnis.
+% \begin{macro}{\addparagraphtocentry}
+% \changes{v3.10}{2011/08/30}{Neu}^^A
+% Entsprechend \cs{addparttocentry} usw.
% \begin{macrocode}
-\newkomafont{partentry}{\usekomafont{disposition}\large}
+\newcommand*{\addparagraphtocentry}[2]{%
+ \addtocentrydefault{paragraph}{#1}{#2}%
+}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{macro}
%
-% \begin{KOMAfont}{partentrypagenumber}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}
-% Schrift für die Seitenzahl des \cs{part}-Eintrags im Inhaltsverzeichnis
-% abweichend von \texttt{partentry}.
+% \begin{macro}{\addsubparagraphtocentry}
+% \changes{v3.10}{2011/08/30}{Neu}^^A
+% Entsprechend \cs{addparttocentry} usw.
% \begin{macrocode}
-\newkomafont{partentrypagenumber}{}
+\newcommand*{\addsubparagraphtocentry}[2]{%
+ \addtocentrydefault{subparagraph}{#1}{#2}%
+}
% \end{macrocode}
-% \end{KOMAfont}
+% \end{macro}
%
-% \begin{KOMAfont}{chapterentry}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}
-% Schrift für den \cs{chapter}-Eintrag im Inhaltsverzeichnis.
-% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
-% \texttt{disposition} ersetzt}
-% \begin{macrocode}
-%<*book|report>
-\newkomafont{chapterentry}{\usekomafont{disposition}}
-% \end{macrocode}
-% \end{KOMAfont}
%
-% \begin{KOMAfont}{chapterentrypagenumber}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}
-% Schrift für die Seitenzahl des \cs{chapter}-Eintrags im Inhaltsverzeichnis
-% abweichend von \texttt{chapterentry}.
+% \begin{Counter}{section}
+% \begin{macro}{\thesection}
+% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}
+% \changes{v3.03b}{2009/06/09}{\cs{relax} im Kompatibilitätstest durch ein
+% Leerzeichen ersetzt, obwohl das die Wartbarkeit verschlechtert, aber
+% \textsf{hyperref} hat mit dem \cs{relax} ein nicht dokumentieres Problem}
+% \begin{macro}{\sectionmarkformat}
+% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer
+% erhöht}
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}
+% \begin{Counter}{subsection}
+% \begin{macro}{\thesubsection}
+% \begin{macro}{\subsectionmarkformat}
+% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer
+% erhöht}
+% \changes{v2.3c}{1995/08/06}{Duden Regel 6}
+% \begin{Counter}{subsubsection}
+% \begin{macro}{\thesubsubsection}
+% \begin{Counter}{paragraph}
+% \begin{macro}{\theparagraph}
+% \begin{Counter}{subparagraph}
+% \begin{macro}{\thesubparagraph}
+% Jede Gliederungsebene benötigt einen Zähler für die
+% Gliederungsnummer und eine Darstellung des Zählers
+% (\cs{the\dots}). Desweiteren wird eine Formatierung des Zählers in
+% den Gliederungsüberschriften (\texttt{\bslash\dots format}) und eine
+% Formatierung des Zählers in der Kopfzeile
+% (\texttt{\bslash\dots markformat}) benötigt.
% \begin{macrocode}
-\newkomafont{chapterentrypagenumber}{}
+%<*book|report>
+\newcounter{section}[chapter]
+\renewcommand*\thesection{%
+%<*book>
+ \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d} % the space before this
+ % comment should be \relax but hyperref has a
+ % not documented problem with \relax
+ \if@mainmatter\thechapter.\fi
+ \else
+%</book>
+ \thechapter.%
+%<book> \fi
+ \@arabic\c@section
+}
%</book|report>
-% \end{macrocode}
-% \end{KOMAfont}
-%
-% \begin{KOMAfont}{sectionentry}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}
-% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
-% \texttt{disposition} ersetzt}
-% Schrift für den \cs{section}-Eintrag im Inhaltsverzeichnis.
-% \begin{macrocode}
%<*article>
-\newkomafont{sectionentry}{\usekomafont{disposition}}
-% \end{macrocode}
-% \end{KOMAfont}
-%
-% \begin{KOMAfont}{sectionentrypagenumber}
-% \changes{v2.97c}{2007/06/21}{neues Font-Element}
-% Schrift für die Seitenzahl des \cs{section}-Eintrags im Inhaltsverzeichnis
-% abweichend von \texttt{sectionentry}.
-% \begin{macrocode}
-\newkomafont{sectionentrypagenumber}{}
+\newcounter{section}
+\renewcommand*{\thesection}{\@arabic\c@section}
%</article>
-% \end{macrocode}
-% \end{KOMAfont}
-%
-% \begin{macro}{\scr@fnt@disposition}
-% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}}
-% \begin{macro}{\scr@fnt@sectioning}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{sectioning}}
-% \changes{v2.95b}{2006/07/30}{\texttt{sectioning} ist nun ein Alias für
-% \texttt{disposition}}
-% \begin{macro}{\scr@fnt@part}
-% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}}
-% \begin{macro}{\scr@fnt@partnumber}
-% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}}
-% \begin{macro}{\scr@fnt@chapter}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}}
-% \begin{macro}{\scr@fnt@chapterprefix}
-% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}}
-% \begin{macro}{\scr@fnt@section}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}}
-% \begin{macro}{\scr@fnt@subsection}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}}
-% \begin{macro}{\scr@fnt@subsubsection}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}}
-% \begin{macro}{\scr@fnt@paragraph}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}}
-% \begin{macro}{\scr@fnt@subparagraph}
-% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}}
-% \begin{KOMAfont}{minisec}
-% \changes{v2.8o}{2001/09/14}{neuer Ersatz für das Element
-% \texttt{minisec}}
-% \changes{v2.96a}{2007/01/08}{Alias für das Element \texttt{minisec}
-% entfernt, da es nun ein eigenes Element ist}
-% Definition der Elemente der Gliederung, deren Schrift geändert
-% werden kann:
-% \begin{macrocode}
-%</class>
-\newcommand*{\scr@fnt@disposition}{\sectfont}
-\aliaskomafont{sectioning}{disposition}
-%<*class>
-\newcommand*{\scr@fnt@part}{\size@part}
-\newcommand*{\scr@fnt@partnumber}{\size@partnumber}
-%<book|report>\newcommand*{\scr@fnt@chapter}{\size@chapter}
-%<book|report>\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix}
-\newcommand*{\scr@fnt@section}{\size@section}
-\newcommand*{\scr@fnt@subsection}{\size@subsection}
-\newcommand*{\scr@fnt@subsubsection}{\size@subsubsection}
-\newcommand*{\scr@fnt@paragraph}{\size@paragraph}
-\newcommand*{\scr@fnt@subparagraph}{\size@subparagraph}
-% \end{macrocode}
-% \end{KOMAfont}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-% \subsection{Definitionen für Präambeln}
-%
-% \iffalse
-%<*report|book>
-% \fi
-% Bei den \KOMAScript-Klassen \textsf{scrbook} und \textsf{scrreprt}
-% können \cs{part} und \cs{chapter} mit Präambeln versehen werden. Es
-% wird gleichzeitig eine Präambel über und unter der jeweiligen
-% Überschrift unterstützt.
-%
-% \begin{macro}{\use@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}
-% Dieses Makro dient allgemein zum Setzen einer Präambel (für
-% Gliederungsüberschriften), wenn eine solche definiert ist. Als
-% Argument wird der Name der Präambel übergeben, an den automatisch
-% \texttt{@preamble} angehängt wird. Zum Schluss wird die gespeicherte
-% Präambel gelöscht.
-% \begin{macrocode}
-\newcommand*{\use@preamble}[1]{%
- \@ifundefined{#1@preamble}{}{%
- \@nameuse{#1@preamble}%
- \global\expandafter\let\csname#1@preamble\endcsname=\relax
- }%
+\newcommand*\sectionmarkformat{\thesection\autodot\enskip}
+\newcounter{subsection}[section]
+\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection}
+%<*article>
+\newcommand*\subsectionmarkformat{\thesubsection\autodot\enskip}
+%</article>
+\newcounter{subsubsection}[subsection]
+\renewcommand*{\thesubsubsection}{%
+ \thesubsection.\@arabic\c@subsubsection
}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\set@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}
-% 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
-% Argument, das die Position der Präambel angibt. Darauf folgt ein
-% weiteres optionales Argument, das die Breite der Präambel
-% angibt. Ist nur ein optionales Argument angegeben, so ist es die
-% Position. Es folgt ein obligatorisches Argument mit dem Inhalt der
-% Präambel. Die Definition der Präambel erfolgt global.
-% \begin{macro}{\set@@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}
-% \begin{macro}{\set@@@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}
-% \begin{macro}{\set@@@@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A
-% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}%^^A
-% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt}%^^A
-% \changes{v3.12a}{2014/02/14}{b korrigiert}%^^A
-% Da mehrere optionale Argumente nach einem obligatorischen Argument
-% auszuwerten sind, werden diverse Hilfsmakros benötigt.
-% \begin{macrocode}
-\newcommand*{\set@preamble}[1]{%
-% \end{macrocode}
-% Zunächst wird das erste optionale Argument gesucht.
-% \begin{macrocode}
- \@ifnextchar [%]
- {\set@@preamble{#1}}{\set@@@preamble{#1}[][\hsize]}%
+\newcounter{paragraph}[subsubsection]
+\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph}
+\newcounter{subparagraph}[paragraph]
+\renewcommand*{\thesubparagraph}{%
+ \theparagraph.\@arabic\c@subparagraph
}
-\newcommand*{\set@@preamble}{}
-\def\set@@preamble#1[#2]{%
% \end{macrocode}
-% Wenn ein optionales Argument existiert, kann es auch ein zweites
-% geben. Wenn nicht, wird mit der Voreinstellung gearbeitet.
+% \begin{macro}{\@seccntformat}
+% \changes{v2.3c}{1995/08/06}{CJK erweitert}
+% \changes{v2.9p}{2004/01/07}{\cs{protect} eingefügt}
+% \changes{v2.97}{2007/01/24}{Workaround für das blöde \cs{protect}}
+% \begin{macro}{\othersectionlevelsformat}
+% \changes{v2.7}{2000/01/03}{neu}
+% \changes{v2.7}{2000/01/03}{\cs{quad} durch \cs{enskip} ersetzt}
+% \changes{v2.7i}{2001/05/17}{\cs{let} durch \cs{def} ersetzt}
+% \changes{v2.97}{2007/01/24}{statt einem Argument jetzt drei}
+% Bei den Ebenen ab \cs{section} erfolgt die Formatierung der
+% Gliederungnummer in der Überschrift mit einer gemeinsamen
+% Anweisung. Die interne Anweisung \cs{@seccntformat} wird dabei von
+% \LaTeX-Kern verwendet und muss umdefiniert werden, um eine
+% entsprechende Anweisung auf Anwenderebene verfügbar zu haben.
+% Ab Version 2.9p wurde in \cs{@seccntformat} ein \cs{protect} vor
+% \cs{othersectionlevelsformat} eingefügt. Damit wurde es für den Benutzer
+% deutlich einfacher, die Anweisung \cs{othersectionlevelsformat}
+% umzudefinieren. Dafür war dadurch aber \cs{the\dots} nicht mehr
+% expandiert. Das wiederum gab Probleme, wenn \cs{@seccntformat} für den
+% \cs{mark}-Mechanismus genutzt wurde. Deshalb hat
+% \cs{othersectionlevelsformat} ab Version 2.97 drei Argumente statt nur
+% eines. Das zweite Argument sollte vom Anwender ignoriert werden, es
+% existiert nur, um die Kompatibitlität Umdefinitionen zu erhalten, bei denen
+% \cs{othersectionlevelsformat} nur ein Argument besitzt. Das dritte Argument
+% ist die \cs{the\dots}-Anweisung. Das zweite Argument funktioniert so, das es
+% das dritte Argument frisst, falls \cs{othersectionlevelsformat} nur ein
+% Argument liest.
% \begin{macrocode}
- \@ifnextchar [%]
- {\set@@@preamble{#1}[{#2}]}{\set@@@preamble{#1}[{#2}][\hsize]}%
+\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip}
+\renewcommand*{\@seccntformat}[1]{%
+ \protect\othersectionlevelsformat{#1}{%
+ \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
}
-\newcommand{\set@@@preamble}{}
-\long\def\set@@@preamble#1[#2][#3]#4{%
% \end{macrocode}
-% Dies ist das Hauptmakro, das die eigentliche Arbeit macht. Es muss
-% \cs{long} definiert werden, da die Präambel auch aus mehreren
-% Absätzen bestehen kann.
+% \end{macro}^^A \othersectonlevelsformat
+% \end{macro}^^A \@seccntformat
+% \end{macro}^^A \thesubparagraph
+% \end{Counter}^^A subparagraph
+% \end{macro}^^A \theparagraph
+% \end{Counter}^^A paragraph
+% \end{macro}^^A \thesubsubsection
+% \end{Counter}^^A subsubsection
+% \end{macro}^^A \subsectionformat
+% \end{macro}^^A \thesubsection
+% \end{Counter}^^A subsection
+% \end{macro}^^A \sectionformat
+% \end{macro}^^A \thesection
+% \end{Counter}^^A section
%
-% Zunächst wird das Positionsargument ausgewertet. Dies geschieht mit
-% lokalen Hilfsmakros und einer Schleife. Zur Funktion der Schleife
-% siehe im dokumentierten \LaTeX-Kern.
+%
+% \begin{macro}{\addsecmark}
+% \changes{v3.12}{2013/03/26}{neue Anweisung}^^A
+% \cs{addsecmark} wird nicht von den Seitenstilen definiert, sondern direkt
+% mit der gewünschten Definition initialisiert.
% \begin{macrocode}
+\newcommand*\addsecmark[1]{%
\begingroup
- \def\prmbl@pos{#2}\let\prmbl@hpos\relax\let\prmbl@vpos\relax
- \expandafter \@tfor \expandafter \@tempa
- \expandafter :\expandafter =\prmbl@pos
- \do{%
- \if \@tempa l%
- \set@preamble@hpos{0}{#2}%
- \fi%
- \if \@tempa c%
- \set@preamble@hpos{1}{#2}%
- \fi%
- \if \@tempa r%
- \set@preamble@hpos{2}{#2}%
- \fi%
- \if \@tempa u%
- \set@preamble@vpos{0}{#2}%
- \fi%
- \if \@tempa b%
- \set@preamble@vpos{0}{#2}%
- \fi
- \if \@tempa o%
- \set@preamble@vpos{1}{#2}%
- \fi%
- \if \@tempa t%
- \set@preamble@vpos{1}{#2}%
- \fi
- }%
-% \end{macrocode}
-% Wurde keine horizontale oder vertikale Ausrichtung definiert, so
-% wird nun der Standardwert dafür eingesetzt.
-% \begin{macrocode}
- \@ifundefined{prmbl@hpos}{\def\prmbl@hpos{0}}{}%
- \@ifundefined{prmbl@vpos}{\def\prmbl@vpos{0}}{}%
-% \end{macrocode}
-% Nun sind die Positionen ermittelt und es werden abhängig davon
-% entsprechende Päambelmakros definiert.
-% \begin{macrocode}
- \ifcase\prmbl@hpos
-% \end{macrocode}
-% Zunächst links unten und oben:
-% \begin{macrocode}
- \ifcase\prmbl@vpos
- \set@@@@preamble{#1@u}{t}{#3}{}{\hfil}{#4}%
- \else
- \set@@@@preamble{#1@o}{b}{#3}{}{\hfil}{#4}%
- \fi
- \or
-% \end{macrocode}
-% Dann zentriert unten und oben:
-% \begin{macrocode}
- \ifcase\prmbl@vpos
- \set@@@@preamble{#1@u}{t}{#3}{\hfil}{\hfil}{#4}%
- \else
- \set@@@@preamble{#1@o}{b}{#3}{\hfil}{\hfil}{#4}%
- \fi
- \else
-% \end{macrocode}
-% Zum Schluss rechts und oben:
-% \begin{macrocode}
- \ifcase\prmbl@vpos
- \set@@@@preamble{#1@u}{t}{#3}{\hfil}{}{#4}%
- \else
- \set@@@@preamble{#1@o}{b}{#3}{\hfil}{}{#4}%
- \fi
- \fi
+ \c@secnumdepth=\m@ne
+ \sectionmark{#1}%
\endgroup
}
% \end{macrocode}
-% Es folgt das Makro, mit dem die Definition tatsächlich
-% stattfindet. Das erste Argument ist der Name der Präambel, das
-% zweite die Positionsoption für die verwendete \cs{parbox}, das
-% dritte ist die Breite der \cs{parbox}, dann zwei Argumente mit der
-% horizontalen Ausrichtung vor und nach der \cs{parbox} und das
-% sechste Agument ist schließlich der Inhalt der \cs{parbox}.
-% \begin{macrocode}
-\newcommand{\set@@@@preamble}[6]{%
- \expandafter\gdef\csname #1@preamble\endcsname{%
- \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
- }%
-}
-% \end{macrocode}
+% \end{macro}^^A \addsecmark
%
-% \begin{macro}{\set@preamble@hpos}
-% \changes{v2.8q}{2001/09/25}{neu (intern)}
-% Eines der Hilfsmakros dient dazu, die horizontale Position der
-% Präambel einzustellen, falls dies nicht bereits erfolgt ist. Ist es
-% bereits nicht über"-einstimmend erfolgt, wird ein Fehler
-% ausgegeben. Dieses Makro ist extrem intern und funktioniert nur im
-% Kontext vor \cs{set@preamble}.
+% \begin{KOMAfont}{section}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}}^^A
+% \begin{macro}{\scr@fnt@section}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}}^^A
+% \begin{KOMAfont}{subsection}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}}^^A
+% \begin{macro}{\scr@fnt@subsection}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}}^^A
+% \begin{KOMAfont}{subsubsection}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}}^^A
+% \begin{macro}{\scr@fnt@subsubsection}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}}^^A
+% \begin{KOMAfont}{paragraph}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}}^^A
+% \begin{macro}{\scr@fnt@paragraph}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}}^^A
+% \begin{KOMAfont}{subparagraph}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}}^^A
+% \begin{macro}{\scr@fnt@subparagraph}
+% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}}^^A
+% \begin{KOMAfont}{minisec}
+% \changes{v2.8o}{2001/09/14}{neuer Ersatz für das Element
+% \texttt{minisec}}^^A
+% \changes{v2.96a}{2007/01/08}{Alias für das Element \texttt{minisec}
+% entfernt, da es nun ein eigenes Element ist}^^A
+% Definition der Elemente der Gliederung, deren Schrift geändert
+% werden kann.
% \begin{macrocode}
-\newcommand*{\set@preamble@hpos}[2]{%
- \@ifundefined{prbml@hpos}{%
- \def\prmbl@hpos{#1}%
- }{%
- \ifnum \prmbl@hpos=0\relax\else%
- \ClassError{\KOMAClassName}{%
- inconsistent hpos options%
- }{%
- You've said `#2' as position option. But you have
- to\MessageBreak
- use only one of `l', `r', or `c' not two of
- these.\MessageBreak
- If you'll continue only first hpos option will be
- used%
- }%
- \fi
- }%
-}
+\newcommand*{\scr@fnt@section}{\size@section}
+\newcommand*{\scr@fnt@subsection}{\size@subsection}
+\newcommand*{\scr@fnt@subsubsection}{\size@subsubsection}
+\newcommand*{\scr@fnt@paragraph}{\size@paragraph}
+\newcommand*{\scr@fnt@subparagraph}{\size@subparagraph}
% \end{macrocode}
-% \end{macro}%\iffalse\set@preamble@hpos\fi
-% \begin{macro}{\set@preamble@vpos}
-% \changes{v2.8q}{2001/09/25}{neu (intern)}
-% Das Hilfsmakro für die vertikale Position funktioniert in gleicher
-% Weise.
+% \end{KOMAfont}^^A minisec
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+% \end{macro}
+% \end{KOMAfont}
+%
+% \begin{KOMAfont}{sectionentry}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch
+% \texttt{disposition} ersetzt}^^A
+% Schrift für den \cs{section}-Eintrag im Inhaltsverzeichnis.
% \begin{macrocode}
-\newcommand*{\set@preamble@vpos}[2]{%
- \@ifundefined{prbml@vpos}{%
- \def\prmbl@vpos{#1}%
- }{%
- \ifnum \prmbl@vpos=0\relax\else%
- \ClassError{\KOMAClassName}{%
- inconsistent vpos options%
- }{%
- You've said `#2' as position option. But you have
- to\MessageBreak
- use only one of `t', `o', `b', or `u' not two of
- these.\MessageBreak
- If you'll continue only first vpos option will be
- used%
- }%
- \fi
- }%
-}
+%<*article>
+\newkomafont{sectionentry}{\usekomafont{disposition}}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{KOMAfont}
%
-% \begin{macro}{\setchapterpreamble}
-% \changes{v2.7b}{2001/01/05}{neu}
-% \changes{v2.8p}{2001/09/25}{Verwendung von \cs{set@preamble}}
-% \begin{macro}{\chapter@u@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}
-% \changes{v2.8p}{2001/09/25}{Ersatz für \cs{chapter@preamble}}
-% \begin{macro}{\chapter@o@preamble}
-% \changes{v2.8p}{2001/09/25}{neu (intern)}
-% Diese Makros werden benötigt, um die Kapitel-Präambel zu setzen
-% bzw. zu speichern.
+% \begin{KOMAfont}{sectionentrypagenumber}
+% \changes{v2.97c}{2007/06/21}{neues Font-Element}^^A
+% Schrift für die Seitenzahl des \cs{section}-Eintrags im Inhaltsverzeichnis
+% abweichend von \texttt{sectionentry}.
% \begin{macrocode}
-\newcommand*{\setchapterpreamble}{\set@preamble{chapter}}
-\newcommand*{\chapter@u@preamble}{}
-\let\chapter@u@preamble\relax
-\newcommand*{\chapter@o@preamble}{}
-\let\chapter@o@preamble\relax
+\newkomafont{sectionentrypagenumber}{}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{KOMAfont}
%
-% \begin{macro}{\setpartpreamble}
-% \changes{v2.8f}{2001/07/12}{neu}%^^A
-% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}}%^^A
-% \begin{macro}{\part@u@preamble}
-% \changes{v2.8p}{2001/09/27}{neu (intern)}%^^A
-% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}}%^^A
-% \changes{v3.12a}{2014/02/14}{flaschen (\cs{part@preamble@u}) Namen
-% korrigiert}%^^A
-% \begin{macro}{\part@o@preamble}
-% \changes{v2.8p}{2001/09/27}{neu (intern)}%^^A
-% \changes{v3.12a}{2014/02/14}{flaschen Namen (\cs{part@preamble@o})
-% korrigiert}%^^A
-% Analog zu den Kapitel gibt es Befehle für eine Teil-Präambel.
+% \begin{KOMAfont}{sectionentrydots}
+% \changes{v3.15}{2014/12/10}{neues Font-Element}^^A
+% Schrift für die optionalen Pünktchen des \cs{section}-Eintrags im
+% Inhaltsverzeichnis abweichend von \texttt{sectionentrypagenumber}.
% \begin{macrocode}
-\newcommand*{\setpartpreamble}{\set@preamble{part}}
-\newcommand*{\part@u@preamble}{}
-\let\part@u@preamble\relax
-\newcommand*{\part@o@preamble}{}
-\let\part@o@preamble\relax
+\newkomafont{sectionentrydots}{\normalfont}
+%</article>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \iffalse
-%</report|book>
-% \fi
+% \end{KOMAfont}
%
-%
-% \subsection{Einträge ins Inhaltsverzeichnis}
%
-% Die Gliederungsbefehle schreiben auch Einträge ins
-% Inhaltsverzeichnis, die dort ebenfalls formatiert werden müssen.
+% \begin{macro}{\sectionnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsectionnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsubsectionnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\paragraphnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subparagraphnumdepth}
+% \changes{v3.12}{2013/12/16}{new read only command}^^A
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% Diese dürfen nur gelesen, sollten aber nie umdefiniert werden und geben die
+% Nummerierungsebene der Gliederungsanweisungen an (nicht zu verwechseln mit
+% der Verzeichnisebene der Gliederungsanweisungen).
+% \begin{macro}{\sectiontocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsectiontocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsubsectiontocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\paragraphtocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subparagraphtocdepth}
+% \changes{v3.15}{2014/12/09}{indirekt über \cs{DeclareSectionCommand}}^^A
%
-% \begin{macro}{\l@part}
-% \changes{v2.97c}{2007/06/21}{\cs{sectfont}\cs{large} durch Verwendung von
-% Element \texttt{partentry} ersetzt}
-% \changes{v2.97c}{2007/06/21}{Element \texttt{partentrypagenumber} wird
-% verwendet}
-% \changes{v3.05}{2009/11/11}{Da auch \textsf{article} die Ebene -2
-% verwendet, wird das nun für scrartcl übernommen.}
-% Der Eintrag für \cs{part}:
+% \begin{macro}{\section}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@section} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
+% von Option \texttt{version})}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsection}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@subsection} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
+% von Option \texttt{version})}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subsubsection}
+% \changes{v2.3d}{1995/08/19}{wird bei \texttt{scrartcl} nun
+% ebenfalls numeriert und ins Inhaltsverzeichnis geschrieben}^^A
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@subsubsection} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig
+% von Option \texttt{version})}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\paragraph}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@paragraph} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \begin{macro}{\subparagraph}
+% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor
+% \cs{size@subparagraph} aufgerufen}^^A
+% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont}
+% behebt einen Bug im color Paket}^^A
+% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt}^^A
+% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}}^^A
+% \changes{v3.15}{2014/11/24}{Verwendung von \cs{DeclareSectionCommand}}^^A
+% \changes{v3.15}{2014/11/24}{\cs{parindent} durch \cs{scr@parindent}
+% ersetzt}^^A
+% Die Standardgliederungsbefehle \cs{section} bis \cs{subparagraph}
+% sind seit \KOMAScript{} v3.15 über die von \KOMAScript{} bereitgestellte
+% Schnittstelle \cs{DeclareSectionCommand} definiert.
% \begin{macrocode}
-\newcommand*\l@part[2]{%
- \ifnum \c@tocdepth >-2\relax
-%<article> \addpenalty{\@secpenalty}%
-%<book|report> \addpenalty{-\@highpenalty}%
- \addvspace{2.25em \@plus\p@}%
+\DeclareSectionCommand[%
+ style=section,%
+ level=1,%
+ indent=\z@,%
+ beforeskip=-3.5ex \@plus -1ex \@minus -.2ex,%
+ afterskip=2.3ex \@plus.2ex,%
+%<article> tocindent=0pt,%
+%<book|report> tocindent=1.5em,%
+%<article> tocnumwidth=1.5em%
+%<book|report> tocnumwidth=2.3em%
+]{section}
+\DeclareSectionCommand[%
+ style=section,%
+ level=2,%
+ indent=\z@,%
+ beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
+ afterskip=1.5ex \@plus .2ex,%
+%<article> tocindent=1.5em,%
+%<book|report> tocindent=3.8em,%
+%<article> tocnumwidth=2.3em%
+%<book|report> tocnumwidth=3.2em%
+]{subsection}
+\DeclareSectionCommand[%
+ style=section,%
+ level=3,%
+ indent=\z@,%
+ beforeskip=-3.25ex\@plus -1ex \@minus -.2ex,%
+ afterskip=1.5ex \@plus .2ex,%
+%<article> tocindent=3.8em,%
+%<book|report> tocindent=7.0em,%
+%<article> tocnumwidth=3.2em%
+%<book|report> tocnumwidth=4.1em%
+]{subsubsection}
+\DeclareSectionCommand[%
+ style=section,%
+ level=4,%
+ indent=\z@,%
+ beforeskip=3.25ex \@plus1ex \@minus.2ex,%
+ afterskip=-1em,%
+%<article> tocindent=7.0em,%
+%<book|report> tocindent=10em,%
+%<article> tocnumwidth=4.1em%
+%<book|report> tocnumwidth=5em%
+]{paragraph}
+\DeclareSectionCommand[%
+ style=section,%
+ level=5,%
+ indent=\scr@parindent,%
+ beforeskip=3.25ex \@plus1ex \@minus .2ex,%
+ afterskip=-1em,%
+%<article> tocindent=10em,%
+%<book|report> tocindent=12em,%
+%<article> tocnumwidth=5em%
+%<book|report> tocnumwidth=6em%
+]{subparagraph}
+\ifnum \scr@compatibility<\@nameuse{scr@v@3.15}\relax
+ \let\scr@subparagraph@sectionindent\parindent
+\else
+ \def\scr@subparagraph@sectionindent{\scr@parindent}%
+\fi
+%</body>
+%</class>
% \end{macrocode}
-% \changes{v2.5e}{1998/07/17}{geänderte part-Formatierung ragte in
-% den linken Rand}
-% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}
+% \end{macro}^^A \subparagraph
+% \end{macro}^^A \paragraph
+% \end{macro}^^A \subsubsection
+% \end{macro}^^A \subsection
+% \end{macro}^^A \section
+% \end{macro}^^A \subparargraphtocdepth
+% \end{macro}^^A \paragraphtocdepth
+% \end{macro}^^A \subsubsectiontocdepth
+% \end{macro}^^A \subsectiontocdepth
+% \end{macro}^^A \sectiontocdepth
+% \end{macro}^^A \subparargraphnumdepth
+% \end{macro}^^A \paragraphnumdepth
+% \end{macro}^^A \subsubsectionnumdepth
+% \end{macro}^^A \subsectionnumdepth
+% \end{macro}^^A \sectionnumdepth
+%
+%
+% \subsection{Font und Größeneinstellungen}
+%
+% Die Einstellungen für die einzelnen Ebenen werden bei den Definitonen der
+% Ebenen vorgenommen. Hier gibt es nur Einstellungen, die nicht einer
+% einzelnen Ebene zugeordnet sind.
+%
+% \begin{KOMAfont}{disposition}
+% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}}^^A
+% \begin{KOMAfont}{sectioning}
+% \begin{macro}{\scr@fnt@disposition}
+% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}}^^A
+% \begin{macro}{\sectfont}
+% \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
+% 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}
- \setlength{\@tempdima}{2em}%
- \if@tocleft
- \ifx\toc@l@number\@empty\else
- \setlength\@tempdima{0\toc@l@number}%
- \fi
- \fi
- \begingroup
- \parindent \z@ \rightskip \@pnumwidth
- \parfillskip -\@pnumwidth
+%<*prepare>
+\newcommand*{\sectfont}{\normalcolor\sffamily\bfseries}
+%</prepare>
+%<*body>
+\newcommand*{\scr@fnt@disposition}{\sectfont}
+\aliaskomafont{sectioning}{disposition}
+%</body>
% \end{macrocode}
-% \changes{v2.5c}{1997/11/25}{Formatierung bei Zeilenumbruch im
-% part-Eintrag korrigiert}
-% \changes{v2.5e}{1998/07/17}{beinhaltet \cs{sectfont} eine
-% Größenangabe, so wird diese überschrieben}
+% \end{macro}^^A \sectfont
+% \end{macro}^^A \scr@fnt@disposition
+% \end{KOMAfont}^^A sectioning
+% \end{KOMAfont}^^A disposition
+%
+%
+% \begin{option}{headings}
+% \changes{v2.3h}{1996/01/20}{Größe von \cs{chapter} um eine Stufe
+% verringert}^^A
+% \changes{v2.3h}{1996/01/20}{Verwendung von \cs{chapterheadstartvskip} und
+% \cs{chapterheadendvskip} an Stelle von festen vertikalen Abständen am
+% Anfang und am Ende eines Kapitels}^^A
+% \changes{v2.7c}{2000/01/19}{vertikale Abstände nach der Kapitelüberschrift
+% geringfügig verändert und mit Leim versehen, um mit \cs{flushbottom} zu
+% besseren Ergebnissen zu gelangen}^^A
+% \changes{v2.98c}{2008/03/10}{Neue Option}^^A
+% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}^^A
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}^^A
+% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch \cs{KOMAoptions}
+% ersetzt}^^A
+% \changes{v3.12}{2013/11/11}{neuer Wert \texttt{standardclasses}}^^A
+% \changes{v3.15}{2014/11/24}{\cs{scr@chapter@sectionbeforeskip} und
+% \cs{scr@chapter@sectionafterskip} werden verwendet}^^A
+% Dies ist eine neue zentrale Option für Überschriften. Dabei ergibt sich
+% nun auch das Problem, dass die Gesamtmenge der Überschriften mal
+% \emph{headings} (Überschriften), mal \emph{sectioning}
+% (Abschnittseinteilung) und mal \emph{disposition} (Gliederung) genannt
+% wird. Es wäre gut gewesen, sich bei Zeiten Gedanken darüber zu machen, wie
+% man das am besten einheitlich nennt.
% \begin{macrocode}
- \leavevmode
- \advance\leftskip\@tempdima
- \hskip -\leftskip
- \usekomafont{partentry}{#1\nobreak
- \usekomafont{partentrypagenumber}{\hfil\nobreak
- \hb@xt@\@pnumwidth{\hss#2}}}\par
+%<*class>
+%<*option>
+\KOMA@key{headings}{%
+ \KOMA@set@ncmdkey{headings}{@tempa}{%
+ {big}{0},%
+ {normal}{1},%
+ {small}{2},%
+%<*book|report>
+ {openany}{3},%
+ {openright}{4},%
+ {openleft}{5},%
+ {twolinechapter}{6},{chapterprefix}{6},{chapterwithprefix}{6},%
+ {chapterwithprefixline}{6},%
+ {onelinechapter}{7},{nochapterprefix}{7},{chapterwithoutprefix}{7},%
+ {chapterwithoutprefixline}{7},%
+ {twolineappendix}{8},{appendixprefix}{8},{appendixwithprefix}{8},%
+ {appendixwithprefixline}{8},%
+ {onelineappendix}{9},{noappendixprefix}{9},{appendixwithoutprefix}{9},%
+ {appendixwithoutprefixline}{9},%
+%</book|report>
+ {optiontotocandhead}{10},{optiontoheadandtoc}{10},%
+ {optiontotoc}{11},%
+ {optiontohead}{12},%
+ {standardclasses}{13}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase \@tempa\relax
% \end{macrocode}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{part}-Eintrag im
-% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}
-% 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.
+% Als erstes kümmern wir uns um die drei Größenabstufungen für die
+% Überschriften, die \KOMAScript{} bietet, und zwar in der Reihenfolge
+% \texttt{big}, \texttt{normal}, \texttt{small}. Es sei darauf hingewiesen,
+% dass die Verwendung dieser Option alle Änderungen an
+% \cs{chapterheadstartvskip} oder \cs{chapterheadendvskip} oder den
+% Font-Elementen für die einzelnen Überschriften aufhebt macht!
+%
+% Hinweis: Es wurde |+\baselineskip+\parskip| hinzugefügt, um
+% Kompatibilitätsprobleme zu vermeiden. Die entsprechenden Werte werden in der
+% Präambel aber wieder abgezogen, um Überschriften wirklich mit
+% |beforeskip=0pt| an den oberen Rand zu bekommen.
% \begin{macrocode}
- \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
- \endgroup
- \penalty20010
- \else
+%<*book|report>
+ \renewcommand*{\scr@chapter@sectionbeforeskip}{3.3\baselineskip+\parskip}%
+ \renewcommand*{\scr@chapter@sectionafterskip}{%
+ 1.725\baselineskip \@plus .115\baselineskip \@minus .192\baselineskip
+ }%
+ \renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
+ \renewcommand*{\chapterheadendvskip}{%
+ \ifnum \scr@compatibility<\@nameuse{scr@v@3.15}\vspace\@tempskipa
+ \else\vskip\@tempskipa\fi
+ }%
+ \renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip.5\baselineskip}%
+%</book|report>
+ \renewcommand*{\size@part}{\Huge}%
+ \renewcommand*{\size@partnumber}{\huge}%
+%<book|report> \renewcommand*{\size@chapter}{\huge}%
+%<book|report> \renewcommand*{\size@chapterprefix}{\size@chapter}%
+ \renewcommand*{\size@section}{\Large}%
+ \renewcommand*{\size@subsection}{\large}%
+ \renewcommand*{\size@subsubsection}{\normalsize}%
+ \renewcommand*{\size@paragraph}{\normalsize}%
+ \renewcommand*{\size@subparagraph}{\normalsize}%
+ \or
+%<*book|report>
+ \renewcommand*{\scr@chapter@sectionbeforeskip}{3\baselineskip+\parskip}%
+ \renewcommand*{\scr@chapter@sectionafterskip}{%
+ 1.5\baselineskip \@plus .1\baselineskip \@minus .167\baselineskip
+ }%
+ \renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
+ \renewcommand*{\chapterheadendvskip}{%
+ \ifnum \scr@compatibility<\@nameuse{scr@v@3.15}\vspace\@tempskipa
+ \else\vskip\@tempskipa\fi
+ }%
+ \renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip.5\baselineskip}%
+%</book|report>
+ \renewcommand*{\size@part}{\huge}%
+ \renewcommand*{\size@partnumber}{\huge}%
+%<*book|report>
+ \renewcommand*{\size@chapter}{\LARGE}%
+ \renewcommand*{\size@chapterprefix}{\size@chapter}%
+ \renewcommand*{\size@section}{\Large}%
+ \renewcommand*{\size@subsection}{\large}%
+%</book|report>
%<*article>
- \if@compatibility
- \global\@nobreaktrue
-% \end{macrocode}
-% \changes{v2.3g}{1996/01/14}{fehlendes Kommentarzeichen ergänzt}
-% \begin{macrocode}
- \everypar{\global\@nobreakfalse\everypar{}}%
- \else
+ \renewcommand*{\size@section}{\large}%
+ \renewcommand*{\size@subsection}{\normalsize}%
%</article>
- \penalty\@highpenalty
-%<article> \fi
- \endgroup
- \fi
- \fi
-}
+ \renewcommand*{\size@subsubsection}{\normalsize}%
+ \renewcommand*{\size@paragraph}{\normalsize}%
+ \renewcommand*{\size@subparagraph}{\normalsize}%
+ \or
+%<*book|report>
+ \renewcommand*{\scr@chapter@sectionbeforeskip}{2.8\baselineskip+\parskip}%
+ \renewcommand*{\scr@chapter@sectionafterskip}{%
+ 1.35\baselineskip \@plus 0.09\baselineskip \@minus .15\baselineskip
+ }%
+ \renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
+ \renewcommand*{\chapterheadendvskip}{%
+ \ifnum \scr@compatibility<\@nameuse{scr@v@3.15}\vspace\@tempskipa
+ \else\vskip\@tempskipa\fi
+ }%
+ \renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip.5\baselineskip}%
+%</book|report>
+ \renewcommand*{\size@part}{\LARGE}%
+ \renewcommand*{\size@partnumber}{\LARGE}%
+%<*book|report>
+ \renewcommand*{\size@chapter}{\Large}%
+ \renewcommand*{\size@chapterprefix}{\size@chapter}%
+ \renewcommand*{\size@section}{\large}%
+%</book|report>
+%<*article>
+ \renewcommand*{\size@section}{\normalsize}%
+%</article>
+ \renewcommand*{\size@subsection}{\normalsize}%
+ \renewcommand*{\size@subsubsection}{\normalsize}%
+ \renewcommand*{\size@paragraph}{\normalsize}%
+ \renewcommand*{\size@subparagraph}{\normalsize}%
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\l@chapter}
-% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im
-% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im
-% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}
-% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von
-% Element \texttt{chapterentry} ersetzt}
-% \changes{v2.97c}{2007/06/21}{Element \texttt{chapterentrypagenumber} wird
-% verwendet}
-% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige
-% Einträge zu ermöglichen}
-% \iffalse
-%<*report|book>
-% \fi
-% Kapiteleinträge gibt es natürlich nicht bei \textsf{scrartcl}.
+% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die
+% Möglichkeit, auch hierüber die Optionen \texttt{open=any},
+% \texttt{open=right} und \texttt{open=left} zu setzen.
% \begin{macrocode}
-\newcommand*\l@chapter[2]{%
- \ifnum \c@tocdepth >\m@ne
- \ifnum \lastpenalty<20010
- \addpenalty{-\@highpenalty}%
- \fi
- \vskip 1.0em \@plus\p@
- \setlength\@tempdima{1.5em}%
- \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
- \usekomafont{chapterentry}{#1\nobreak
- \usekomafont{chapterentrypagenumber}{%
+ \or
+%<*book|report>
+ \KOMAoptions{open=any}%
+%</book|report>
+ \or
+%<*book|report>
+ \KOMAoptions{open=right}%
+%</book|report>
+ \or
+%<*book|report>
+ \KOMAoptions{open=left}%
+%</book|report>
% \end{macrocode}
-% Und dann könnte man noch folgendes machen:
-% \begin{verbatim}
-% \if@chapterentrywithdots
-% \leaders\hbox{$\m@th
-% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
-% mu$}%
-% \fi
-% \end{verbatim}
+% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die
+% Möglichkeit, auch hierüber die Optionen \texttt{chapterprefix} und
+% \texttt{appendixprefix} zu setzen.
% \begin{macrocode}
- \hfill\nobreak
- \hb@xt@\@pnumwidth{\hss#2}}}\par
- \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
- \endgroup
- \penalty20009
- \else
- \penalty\@highpenalty
- \endgroup
- \fi
- \fi
-}
+ \or
+%<*book|report>
+ \KOMAoptions{chapterprefix=true}%
+%</book|report>
+ \or
+%<*book|report>
+ \KOMAoptions{chapterprefix=false}%
+%</book|report>
+ \or
+%<*book|report>
+ \KOMAoptions{appendixprefix=true}%
+%</book|report>
+ \or
+%<*book|report>
+ \KOMAoptions{appendixprefix=false}%
+%</book|report>
% \end{macrocode}
-% \begin{macro}{\raggedchapterentry}
-% \changes{v2.97c}{2007/06/21}{neue Anweisung}
-% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis.
+% Ab Version~3.10 wird über diese Option auch noch die Erweiterung für das
+% optionale Argument der Gliederungsüberschriften aktiviert und gesteuert.
% \begin{macrocode}
-\newcommand*{\raggedchapterentry}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\l@chapteratlist}
-% \changes{v2.96a}{2006/12/03}{neues Macro}
-% Dieses Makro wird ggf. für die Kapiteleinträge in den Listen der
-% Gleitumgebungen verwendet. Zunächst einmal wird hier dasselbe verwendet, wie
-% für die Kapiteleinträge ins Inhaltsverzeichnis.
-% \begin{macrocode}
-\newcommand*{\l@chapteratlist}{\l@chapter}
+ \or
+ \scr@activate@xsection{3}%
+ \or
+ \scr@activate@xsection{2}%
+ \or
+ \scr@activate@xsection{1}%
% \end{macrocode}
-%
-% \end{macro}
-% \iffalse
-%</report|book>
-% \fi
-% \end{macro}
-% \begin{macro}{\l@section}
-% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im
-% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im
-% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}
-% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von
-% Element \texttt{sectionentry} ersetzt}
-% \changes{v2.97c}{2007/06/21}{Element \texttt{sectionentrypagenumber} wird
-% verwendet}
-% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige
-% Einträge zu ermöglichen}
-% 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.
+% Ab Version~3.12 gibt es noch die Möglichkeit, die Überschriftengrößen der
+% Standardklassen zu emulieren.
% \begin{macrocode}
+ \or
+%<*book|report>
+ \renewcommand*{\scr@chapter@sectionbeforeskip}{50\p@}%
+ \renewcommand*{\scr@chapter@sectionafterskip}{40\p@}%
+ \renewcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}%
+ \renewcommand*{\chapterheadendvskip}{\vskip\@tempskipa}%
+ \renewcommand*{\chapterheadmidvskip}{\par\nobreak\vskip 20\p@}%
+ \renewcommand*{\size@part}{\Huge}%
+ \renewcommand*{\size@partnumber}{\huge}%
+ \renewcommand*{\size@chapter}{\Huge}%
+ \renewcommand*{\size@chapterprefix}{\huge}%
+%</book|report>
%<*article>
-\newcommand*\l@section[2]{%
- \ifnum \c@tocdepth >\z@
- \ifnum \lastpenalty<20009
- \addpenalty{\@secpenalty}%
- \fi
- \addvspace{1.0em \@plus\p@}%
- \setlength\@tempdima{1.5em}%
- \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
- \usekomafont{sectionentry}{#1\nobreak
- \usekomafont{sectionentrypagenumber}{%
-% \end{macrocode}
-% Und dann könnte man noch folgendes machen:
-% \begin{verbatim}
-% \if@sectionentrywithdots
-% \leaders\hbox{$\m@th
-% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
-% mu$}%
-% \fi
-% \end{verbatim}
-% \begin{macrocode}
- \hfill\nobreak
- \hb@xt@\@pnumwidth{\hss#2}}}\par
- \endgroup
- \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
- \penalty20008
+ \renewcommand*{\size@part}{\huge}%
+ \renewcommand*{\size@partnumber}{\Large}%
+%</article>
+ \renewcommand*{\size@section}{\Large}%
+ \renewcommand*{\size@subsection}{\large}%
+ \renewcommand*{\size@subsubsection}{\normalsize}%
+ \renewcommand*{\size@paragraph}{\normalsize}%
+ \renewcommand*{\size@subparagraph}{\normalsize}%
+ \renewcommand*{\sectfont}{\bfseries}%
+%<book|report> \KOMAoptions{open=right,chapterprefix=true}%
\fi
\fi
}
-% \end{macrocode}
-% \begin{macro}{\raggedsectionentry}
-% \changes{v2.97c}{2007/06/21}{neue Anweisung}
-% Ausrichtung des Textes der Abschnittseinträge im Inhaltsverzeichnis.
-% \begin{macrocode}
-\newcommand*{\raggedsectionentry}{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</article>
-%<*report|book>
-\newcommand*\l@section{\bprot@dottedtocline{1}{1.5em}{2.3em}}
-%</report|book>
% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\l@subsection}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsection}-Eintrag im
-% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsection}-Eintrag im
-% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}
-% \begin{macro}{\l@subsubsection}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsubsection}-Eintrag
-% im Inhaltsverzeichnis und übergeordneten Einträgen verhindern}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsubsection}-Eintrag
-% im Inhaltsverzeichnis und untergeordneten Einträgen verhindern}
-% \begin{macro}{\l@paragraph}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{paragraph}-Eintrag im
-% Inhaltsverzeichnis und übergeordneten Einträgen verhindern}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{paragraph}-Eintrag im
-% Inhaltsverzeichnis und untergeordneten Einträgen verhindern}
-% \begin{macro}{\l@subparagraph}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subparagraph}-Eintrag
-% im Inhaltsverzeichnis und übergeordneten Einträgen verhindern}
-% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subparagraph}-Eintrag
-% im Inhaltsverzeichnis und untergeordneten Einträgen verhindern}
-% Die übrigen Ebenen werden normal behandelt.
-% \begin{macrocode}
-%<*article>
-\newcommand*\l@subsection{\bprot@dottedtocline{2}{1.5em}{2.3em}}
-\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{3.8em}{3.2em}}
-\newcommand*\l@paragraph{\bprot@dottedtocline{4}{7.0em}{4.1em}}
-\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{10em}{5em}}
-%</article>
-%<*report|book>
-\newcommand*\l@subsection{\bprot@dottedtocline{2}{3.8em}{3.2em}}
-\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{7.0em}{4.1em}}
-\newcommand*\l@paragraph{\bprot@dottedtocline{4}{10em}{5em}}
-\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{12em}{6em}}
-%</report|book>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{option}^^A headings
%
-% \begin{macro}{\bprot@dottedtocline}
-% \changes{v2.96a}{2006/11/30}{neu (intern)}
-% Dieses Makro wird benötigt, um die Ebenen unterhalb von \cs{chapter}
-% bzw. \cs{section} im Inhaltsverzeichnis ebenfalls vor unerwünschten
-% Umbrüchen zwischen Eintrag und Unterebene zu schützen.
+% \begin{option}{bigheadings}
+% \changes{v2.3h}{1996/01/20}{neue Option}
+% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
+% Verwendung des alten, falschen Namens wird ein Fehler
+% ausgegeben}
+% \changes{v2.98c}{2008/03/10}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macro}{\@bigheadings}
+% \changes{v2.98c}{2008/03/10}{entfernt}
+% \begin{option}{normalheadings}
+% \changes{v2.3h}{1996/01/20}{neue Option}
+% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
+% Verwendung des alten, falschen Namens wird ein Fehler
+% ausgegeben}
+% \changes{v2.98c}{2008/03/10}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macro}{\@normalheadings}
+% \changes{v2.98c}{2008/03/10}{entfernt}
+% \begin{option}{smallheadings}
+% \changes{v2.3h}{1996/01/20}{neue Option}
+% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei
+% Verwendung des alten, falschen Namens wird ein Fehler
+% ausgegeben}
+% \changes{v2.98c}{2008/03/10}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macro}{\@smallheadings}
+% \changes{v2.98c}{2008/03/10}{entfernt}
% \begin{macrocode}
-\newcommand*{\bprot@dottedtocline}[5]{%
- \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
- \ifnum #1>\c@tocdepth \else
- \begingroup
- \@tempcnta 20010
- \advance \@tempcnta by -#1
- \ifnum \@tempcnta>\lastpenalty
- \endgroup
- \addpenalty{\@lowpenalty}%
- \else
- \endgroup
- \fi
- \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
- \@tempcnta 20009
- \advance \@tempcnta by -#1
- \penalty\@tempcnta
- \fi
- \else
- \@dottedtocline{#1}{#2}{#3}{#4}{#5}%
- \fi
-}
+\KOMA@DeclareDeprecatedOption{bigheadings}{headings=big}
+\KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal}
+\KOMA@DeclareDeprecatedOption{smallheadings}{headings=small}
+%</option>
+%</class>
% \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \@smallheadings
+% \end{option}^^A smallheadings
+% \end{macro}^^A \@normalheadings
+% \end{option}^^A normalheadings
+% \end{macro}^^A \@bigheadings
+% \end{option}^^A bigheadings
%
-% \iffalse
-%</class>
-%</body>
-% \fi
%
% \iffalse
%</!letter>