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.dtx3145
1 files changed, 3145 insertions, 0 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
new file mode 100644
index 00000000000..ac28717e035
--- /dev/null
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
@@ -0,0 +1,3145 @@
+% \CheckSum{2255}
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-sections.dtx
+% Copyright (c) Markus Kohm, 2002-2013
+%
+% This file is part of the LaTeX2e KOMA-Script bundle.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of all files listed in manifest.txt.
+% ----------------------------------------------------------------------
+% scrkernel-sections.dtx
+% Copyright (c) Markus Kohm, 2002-2013
+%
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+%
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (allein durch den Autor verwaltet).
+%
+% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
+%
+% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
+% ======================================================================
+% \fi
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \iffalse
+%%% From File: $Id: scrkernel-sections.dtx 1552 2013-12-16 16:51:32Z mjk $
+%<*driver>
+% \fi
+\ProvidesFile{scrkernel-sections.dtx}[2013/12/16 v3.12 KOMA-Script
+ (disposition)]
+% \iffalse
+\documentclass[halfparskip-]{scrdoc}
+\usepackage[english,ngerman]{babel}
+\usepackage[latin1]{inputenc}
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{scrkernel-sections.dtx}
+\title{\KOMAScript{} \partname\ \texttt{\filename}%
+ \footnote{Dies ist Version \fileversion\ von Datei
+ \texttt{\filename}.}}
+\date{\filedate}
+\author{Markus Kohm}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.95}{2002/06/26}{%
+% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+%
+% \section{Gliederung}
+%
+% Zur Gliederung gehören neben den üblichen Gliederungsbefehlen
+% \cs{chapter} \dots \cs{subparagraph} auch alle Optionen und Befehle,
+% die diese Gliederung beeinflussen. Eingeschränkt gehören auch die
+% Befehle dazu, die Inhaltsverzeichniseinträge zu den
+% Gliederungsbefehlen erzeugen oder unmittelbar formatieren. Diese
+% 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}
+%
+% \iffalse
+%<*!letter>
+% \fi
+%
+% \iffalse
+%<*option>
+% \fi
+% \subsection{Optionen für die Gliederung}
+%
+% \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.
+% \begin{macro}{\if@openright}
+% \begin{macro}{\@openrighttrue}
+% \begin{macro}{\@openrightfalse}
+% Der Zustand wird dann in einem Schalter und durch umdefinieren von
+% \cs{cleardoublestandardpage} gespeichert.
+% \begin{macrocode}
+\newif\if@openright
+%<report>\@openrightfalse
+%<book>\@openrighttrue
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+\KOMA@key{open}{%
+ \KOMA@set@ncmdkey{open}{@tempa}{%
+ {any}{0},%
+ {right}{1},%
+ {left}{2}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase \@tempa\relax
+ \@openrightfalse
+ \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}%
+ \or
+ \@openrighttrue
+ \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}%
+ \or
+ \@openrighttrue
+ \renewcommand*{\cleardoublestandardpage}{\cleardoubleevenstandardpage}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{openright}
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}
+% \begin{option}{openany}
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}
+% \begin{macrocode}
+\KOMA@DeclareStandardOption{openright}{open=right}
+\KOMA@DeclareStandardOption{openany}{open=any}
+% \end{macrocode}
+% \end{option}
+% \end{option}
+% \iffalse
+%</book|report>
+%% \fi
+%
+%
+% \begin{option}{numbers}
+% \changes{v2.98c}{2008/03/07}{Neue Option}
+% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit
+% \cs{FamilyKeyState}}
+% Dies ist die zentrale Option zur Konfiguration der Nummerierung. Dabei geht
+% es primär um die Gliederungsnummern, es sind jedoch auch davon abgeleitete
+% Nummern betroffen.
+% \begin{macro}{\scr@dotchangeatdocument}
+% \changes{v2.98c}{2008/03/07}{Neu (intern)}
+% 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.
+% \begin{macrocode}
+\newcommand*{\scr@dotchangeatdocument}[1]{%
+ \ClassError{\KOMAClassName}{%
+ change of end dot feature after \string\begin{document}%
+ }{%
+ You've tried to set `numbers=#1' after \string\begin{document},\MessageBreak
+ but this option is only allowed at the document preamble.\MessageBreak
+ See KOMA-Script manual for more information about.%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% Normalerweise wird automatisch entschieden, ob Nummern mit einem
+% Punkt enden müssen oder nicht. Um dies abzuschalten, muss nur der
+% gewünschte Zustand eingeschaltet und die Umschaltmöglichkeit
+% entfernt werden. Die Umschaltung kann jedoch nicht direkt erfolgen, sondern
+% erfolgt zeitverzögert in \cs{begin{document}}. Hier wird nur das Makro
+% umgeschaltet, das dort verwendet wird.
+% \begin{macrocode}
+\KOMA@key{numbers}{%
+ \KOMA@set@ncmdkey{numbers}{@tempa}{%
+ {autoendperiod}{0},{autoenddot}{0},{auto}{0},%
+ {endperiod}{1},{withendperiod}{1},{periodatend}{1},%
+ {enddot}{1},{withenddot}{1},{dotatend}{1},%
+ {noendperiod}{2},{noperiodatend}{2},%
+ {noenddot}{2},{nodotatend}{2}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \ifcase \@tempa\relax
+ \if@atdocument\scr@dotchangeatdocument{#1}\else
+ \let\scr@altsecnumhook\@empty
+ \fi
+ \or
+ \if@atdocument\scr@dotchangeatdocument{#1}\else
+ \let\scr@altsecnumhook\scr@altsecnumhooktrue
+ \fi
+ \or
+ \if@atdocument\scr@dotchangeatdocument{#1}\else
+ \let\scr@altsecnumhook\scr@altsecnumhookfalse
+ \fi
+ \fi
+ \fi
+}
+% \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}
+% \changes{v2.3h}{1995/01/19}{neue Option}
+% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so,
+% bei \texttt{pointednumber} wird explizit ein Fehler gemeldet}
+% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformatfalse} wird
+% direkt auf \cs{@altsecnumformattrue} gesetzt}
+% \changes{v2.98c}{2008/03/07}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{option}{pointlessnumbers}
+% \changes{v2.3h}{1995/01/19}{neue Option}
+% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so,
+% bei \texttt{pointlessnumber} wird explizit ein Fehler gemeldet}
+% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformattrue} wird direkt
+% auf \cs{@altsecnumformatfalse} gesetzt}
+% \changes{v2.98c}{2008/03/07}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macrocode}
+\KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot}
+\KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot}
+% \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{macrocode}
+\newif\if@chapterprefix\@chapterprefixfalse
+\KOMA@ifkey{chapterprefix}{@chapterprefix}
+\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \iffalse
+%</book|report>
+% \fi
+% \end{option}
+% \end{option}
+%
+%
+% \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{macrocode}
+\KOMA@key{appendixprefix}[true]{%
+ \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \def\appendixmore{\@chapterprefixtrue}%
+ \else
+ \def\appendixmore{\@chapterprefixfalse}%
+ \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}
+%</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}
+%
+% \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.
+% \begin{macrocode}
+\newcommand*{\scr@osectarg}{0}
+\newcommand*{\scr@activate@xsection}[1]{%
+ \renewcommand*{\scr@osectarg}{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \iffalse
+%</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}
+% \begin{macro}{\@altsecnumformattrue}
+% \begin{macro}{\@altsecnumformatfalse}
+% 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}
+% \begin{macro}{\@autodottrue}
+% \changes{v3.00}{2008/10/07}{arbeitet nun gobal}
+% \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.
+% \begin{macrocode}
+\newif\if@altsecnumformat\@altsecnumformatfalse
+\newif\if@autodot
+\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue}
+\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse}
+\@autodotfalse
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \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.
+% \begin{macrocode}
+\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{v3.00}{2008/10/07}{neuerdings überflüssige \cs{aftergroup}
+% entfernt}
+% Die expandierte Darstellung wird dann auf Darstellungsbefehle für
+% Zähler gescannt.
+% \begin{macrocode}
+\newcommand*{\@@maybeautodot}[1]{%
+ \ifx #1\@stop\let\@@maybeautodot\relax
+ \else
+ \ifx #1\Alph \@autodottrue\fi
+ \ifx #1\alph \@autodottrue\fi
+ \ifx #1\Roman \@autodottrue\fi
+ \ifx #1\roman \@autodottrue\fi
+ \ifx #1\@Alph \@autodottrue\fi
+ \ifx #1\@alph \@autodottrue\fi
+ \ifx #1\@Roman \@autodottrue\fi
+ \ifx #1\@roman \@autodottrue\fi
+ \ifx #1\romannumeral \@autodottrue\fi
+ \fi
+ \@@maybeautodot
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\scr@sect}
+% \changes{v3.10}{2011/08/30}{entfällt}
+% \begin{macro}{\@sect}
+% \changes{v3.10}{2011/08/30}{Vollständige Neudefinition zur Realisierung
+% 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
+% 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
+% \cs{chapter} wird der Test direkt in der Definition der Befehle
+% erledigt.
+% \begin{macrocode}
+\def\@tempa#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #6{%
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ \interlinepenalty \@M #8\@@par}%
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}%
+ \else
+ \def\@svsechd{%
+ #6{\hskip #3\relax
+ \@svsec #8}%
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}}%
+ \fi
+ \@xsect{#5}}
+\ifx\@sect\@tempa\else
+ \ClassWarning{\KOMAClassName}{%
+ Unexpected definition of \string\@sect!\MessageBreak
+ Please send an information about this to\MessageBreak
+ the KOMA-Script maintainer!\MessageBreak
+ Maybe LaTeX will be broken by the redefinition\MessageBreak
+ of \string\@sect\space}%
+\fi
+%<trace>\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro \string\@sect}
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ \ifnum \scr@osectarg=\z@
+ \@scr@tempswafalse
+ \else
+ \scr@istest#7=\@nil
+ \fi
+ \if@scr@tempswa
+ \setkeys{KOMAarg.section}{tocentry={#8},head={#8},#7}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#8},head={#7}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#8}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}%
+ \fi
+ \fi
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \expandafter\@maybeautodot\csname the#1\endcsname
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #6{%
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ \interlinepenalty \@M #8\@@par}%
+ \endgroup
+%<trace> \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}%
+ \expandafter\csname #1mark\expandafter\endcsname\expandafter{\scr@ds@head}%
+%<trace> \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}%
+ \ifx\scr@ds@tocentry\@empty\else
+ \scr@ifundefinedorrelax{add#1tocentry}{%
+ \expandafter\global\expandafter\def
+ \csname add#1tocentry\endcsname##1##2{%
+ \addtocentrydefault{#1}{##1}{##2}%
+ }%
+ }{}%
+ \ifnum #2>\c@secnumdepth
+ \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}%
+ \else
+ \csname add#1tocentry\endcsname{\csname the#1\endcsname}{%
+ \scr@ds@tocentry}%
+ \fi
+ \fi
+ \else
+ \def\@svsechd{%
+ #6{\hskip #3\relax
+ \@svsec #8}%
+%<trace> \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}%
+ \expandafter\csname #1mark\expandafter\endcsname\expandafter{%
+ \scr@ds@head}%
+%<trace> \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}%
+ \ifx\scr@ds@tocentry\@empty\else
+ \scr@ifundefinedorrelax{add#1tocentry}{%
+ \expandafter\global\expandafter\def
+ \csname add#1tocentry\endcsname####1####2{%
+ \addtocentrydefault{#1}{####1}{####2}%
+ }%
+ }{}%
+ \ifnum #2>\c@secnumdepth
+ \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}%
+ \else
+ \csname add#1tocentry\endcsname{\csname the#1\endcsname}{%
+ \scr@ds@tocentry}%
+ \fi
+ \fi
+ }%
+ \fi
+ \@xsect{#5}%
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ds@tocentry}
+% \changes{v3.10}{2011/08/30}{neu (intern)}
+% \begin{macro}{\scr@ds@head}
+% \changes{v3.10}{2011/08/30}{neu (intern)}
+% \begin{macro}{\if@scr@tempswa}
+% \changes{v3.10}{2011/08/30}{neu (intern)}
+% \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:
+% \begin{macrocode}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.section]{KOMAarg}
+\DefineFamilyKey[.section]{KOMAarg}{tocentry}{\def\scr@ds@tocentry{#1}}
+\DefineFamilyKey[.section]{KOMAarg}{head}{\def\scr@ds@head{#1}}
+\newcommand*\scr@ds@tocentry{}
+\newcommand*\scr@ds@head{}
+\newcommand*{\scr@istest}{}
+\def\scr@istest#1=#2\@nil{%
+ \ifx\relax#2\relax\@scr@tempswafalse\else\@scr@tempswatrue\fi
+}
+\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}
+% \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}
+% \begin{macrocode}
+\BeforeClosingMainAux{%
+ \if@autodot\if@filesw\immediate\write\@mainaux{%
+ \string\global\string\@altsecnumformattrue}%
+ \fi\fi}
+% \end{macrocode}
+%
+% \begin{macro}{\autodot}
+% \changes{v2.7}{2001/01/03}{neu}
+% Dieses Makro setzt dann den Punkt nach Bedarf.
+% \begin{macrocode}
+\newcommand*\autodot{\if@altsecnumformat.\fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \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{macrocode}
+%<book|report>\setcounter{secnumdepth}{2}
+%<article>\setcounter{secnumdepth}{3}
+% \end{macrocode}
+% \end{Counter}
+%
+% \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{macrocode}
+\newcommand*{\partnumdepth}{%
+%<article> \z@
+%<report|book> \m@ne
+}
+%<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}
+%
+% \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{macrocode}
+\newcommand*{\ifnumbered}[1]{%
+ \scr@ifundefinedorrelax{#1numdepth}{%
+ \@secondoftwo
+ }{%
+ \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+ }%
+}
+\newcommand*{\ifunnumbered}[1]{%
+ \scr@ifundefinedorrelax{#1numdepth}{%
+ \@firstoftwo
+ }{%
+ \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \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{macrocode}
+\newcounter{part}
+\renewcommand*{\thepart}{\@Roman\c@part}
+\newcommand*{\partformat}{\partname~\thepart\autodot}
+%<*book|report>
+\newcounter{chapter}
+\renewcommand*{\thechapter}{\@arabic\c@chapter}
+\newcommand*{\chapterformat}{%
+ \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot\enskip}%
+}
+\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
+}
+\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
+}
+\newcounter{paragraph}[subsubsection]
+\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph}
+\newcounter{subparagraph}[paragraph]
+\renewcommand*{\thesubparagraph}{%
+ \theparagraph.\@arabic\c@subparagraph
+}
+% \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.
+% \begin{macrocode}
+\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip}
+\renewcommand*{\@seccntformat}[1]{%
+ \protect\othersectionlevelsformat{#1}{%
+ \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}%
+}
+% \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}
+%
+%
+% \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{macrocode}
+\newcommand*\partname{Part}
+%<book|report>\newcommand*\chaptername{Chapter}
+%<report|article>\newcommand*\abstractname{Abstract}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\appendixname}
+% Der Name des Anhangs.
+% \begin{macrocode}
+\newcommand*\appendixname{Appendix}
+% \end{macrocode}
+% \end{macro}
+%
+% \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{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}
+% \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}
+%
+% \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.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}
+% \begin{macro}{\@part}
+% \changes{v2.4b}{1996/03/29}{\cs{size@partnumer} durch
+% \cs{size@partnumber} ersetzt}
+% \changes{v2.4n}{1997/05/28}{für \textsf{scrartcl} \cs{markboth}
+% zum Löschen der Kolumnentitel durch \cs{sectionmark} ersetzt}
+% \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}}
+% \changes{v2.95}{2002/08/13}{\cs{centering} und \cs{@parskipfalse}%
+% \cs{@parskip@indent} vertauscht}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und }
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
+% ersetzt}
+% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}}
+% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}
+% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird
+% stattdessen \cs{@mkboth}{}{} aufgerufen.}
+% \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}
+% \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}}
+% \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}
+% ersetzt}
+% \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}
+% \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}
+% \changes{v2.8p}{2001/09/27}{\cs{use@preamble} ersetzt
+% \cs{@part@preamble}}
+% \changes{v3.02}{2009/01/01}{Verwendung des neuen \cs{partheademptypage}}
+% 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,
+% Schriftart u.\,ä. flexibler gehalten. Außerdem gibt es die
+% Möglichkeit von Präambeln. \emph{Achtung: Die Präambel vor der
+% \cs{part}-Überschrift kann ohne Warnung über den oberen Rand
+% hinaus reichen!}
+% \begin{macro}{\partheadstartvskip}
+% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}
+% \begin{macro}{\partheadmidvskip}
+% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}
+% \begin{macro}{\partheadendvskip}
+% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit}
+% \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.
+% \begin{macrocode}
+\newcommand*{\partheadstartvskip}{%
+%<article> \addvspace{4ex}%
+%<report|book> \null\vfil
+}
+\newcommand*{\partheadmidvskip}{%
+ \par\nobreak
+%<book|report> \vskip 20\p@
+}
+\newcommand*{\partheadendvskip}{%
+%<article> \vskip 3ex
+%<report|book> \vfil\newpage
+}
+%<*report|book>
+\newcommand*{\partheademptypage}{%
+ \if@twoside\if@openright
+ \null%
+ \thispagestyle{empty}%
+ \newpage
+ \fi\fi
+}
+%</report|book>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macrocode}
+%<*article>
+\newcommand\part{\par
+ \partheadstartvskip%
+ \@afterindentfalse
+ \secdef\@part\@spart
+}
+%</article>
+%<*report|book>
+\newcommand\part{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{\partpagestyle}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \partheadstartvskip
+ \vbox to\z@{\vss\use@preamble{part@o}\strut\par}%
+ \vskip-\baselineskip\nobreak%
+ \secdef\@part\@spart
+}
+%</report|book>
+\newcommand*{\@part}{}
+\def\@part[#1]#2{%
+ \ifnum \scr@osectarg=\z@
+ \@scr@tempswafalse
+ \else
+ \scr@istest#1=\@nil
+ \fi
+ \if@scr@tempswa
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \fi
+ \fi
+ \ifnumbered{part}{%
+ \refstepcounter{part}%
+ \@maybeautodot\thepart%
+ \ifx\scr@ds@tocentry\@empty\else
+ \addparttocentry{\thepart}{\scr@ds@tocentry}%
+ \fi
+ }{%
+ \ifx\scr@ds@tocentry\@empty\else
+ \addparttocentry{}{\scr@ds@tocentry}%
+ \fi
+ }%
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \raggedpart
+ \interlinepenalty \@M
+ \normalfont\sectfont\nobreak
+ \ifnumbered{part}{%
+ \size@partnumber{\partformat}%
+ \partheadmidvskip
+ }{}%
+ \size@part{#2}\strut
+ \ifx\partmark\@gobble
+ \@mkboth{}{}\par
+ \else
+ \expandafter\partmark\expandafter{\scr@ds@head}\par
+ \fi
+ \endgroup
+%<*article>
+ \nobreak
+ \partheadendvskip
+ \@afterheading
+%</article>
+%<book|report> \@endpart
+}
+\newcommand*{\@spart}[1]{%
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \raggedpart
+ \interlinepenalty \@M
+ \normalfont
+ \sectfont\nobreak\size@part{#1}\strut\@mkboth{}{}\par
+ \endgroup
+%<*article>
+ \nobreak
+ \partheadendvskip
+ \@afterheading
+%</article>
+%<book|report> \@endpart
+}
+%<*book|report>
+\newcommand*{\@endpart}{\vbox to\z@{\use@preamble{part@u}\vss}%
+ \partheadendvskip
+ \partheademptypage
+ \if@tempswa
+ \twocolumn
+ \fi
+}
+%</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}
+% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das
+% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht
+% nummerierten Teilen leer. Das zweite Argument ist der Überschriftstext für
+% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach
+% umdefiniert werden. Verwendet wird hier die Standardanweisung für
+% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist:
+% \begin{macrocode}
+\newcommand*{\addparttocentry}[2]{%
+ \addtocentrydefault{part}{#1}{#2}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \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}
+% \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{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}
+% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird
+% \cs{@mkboth}{}{} aufgerufen.}
+% \begin{macro}{\@saddpart}
+% \changes{v2.8c}{2001/06/29}{neu (intern)}
+% \begin{macrocode}
+\newcommand\addpart{%
+%<*article>
+ \par
+ \partheadstartvskip
+ \@afterindentfalse
+%</article>
+%<*report|book>
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{\partpagestyle}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \partheadstartvskip
+ \vbox to\z@{\vss\use@preamble{part@o}\strut\par}%
+ \vskip-\baselineskip\nobreak%
+%</report|book>
+ \secdef\@addpart\@saddpart
+}
+\newcommand*{\@addpart}{}
+\def\@addpart[#1]#2{%
+ \ifnum \scr@osectarg=\z@
+ \@scr@tempswafalse
+ \else
+ \scr@istest#1=\@nil
+ \fi
+ \if@scr@tempswa
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \fi
+ \fi
+% \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}
+% \begin{macrocode}
+ \csname phantomsection\endcsname
+ \ifx\scr@ds@tocentry\@empty\else
+ \expandafter\addparttocentry\expandafter{\expandafter}\expandafter{%
+ \scr@ds@tocentry}%
+ \fi
+ \@spart{#2}%
+ \ifx\partmark\@gobble
+ \@mkboth{}{}%
+ \else
+ \expandafter\@mkboth\expandafter{%
+ \expandafter\MakeMarkcase\expandafter{\scr@ds@head}}{}%
+ \fi
+}
+\newcommand*{\@saddpart}{\@spart}
+% \end{macrocode}
+% \begin{macro}{\partmark}
+% \changes{v2.9r}{2004/07/20}{neu (für \textsf{scrpage2})}
+% \begin{macrocode}
+\newcommand*{\partmark}{}
+\let\partmark\@gobble
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \iffalse
+%<*report|book>
+% \fi
+% \begin{macro}{\chapter}
+% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt
+% \texttt{plain}}
+% \begin{macro}{\@chapter}
+% \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
+% \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
+% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}%^^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}
+% \begin{macro}{\@@makechapterhead}
+% \changes{v2.8p}{2001/09/25}{neu (intern)}
+% \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}
+% 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)}
+% \begin{macro}{\scr@topnewpage}
+% \changes{v2.7b}{2001/01/05}{neu (intern)}
+% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}
+% \begin{macro}{\@topnewpage}
+% \changes{v2.7b}{2001/01/05}{neu (\LaTeX{} intern)}
+% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} ergänzt}
+% \changes{v3.01}{2008/11/13}{Verwendung von
+% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})}
+% 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
+% die Preambel des Index und der Bibliography verwendet. Dabei
+% entsteht aber wiederum das Problem, dass der Indexkopf innerhalb von
+% \cs{twocolumn} ausgegeben wird andererseits aber innerhalb von
+% \cs{chapter} das Makro \cs{@topnewpage} verwendet wird. Damit würde
+% dann also \cs{@topnewpage} innerhalb von \cs{@topnewpage}
+% aufgerufen. Das ist jedoch nicht erlaubt. Als muss der Aufruf von
+% \cs{@topnewpage} in \cs{@chapter} und \cs{@schapter} verhindert
+% werden, wenn wir uns bereits in \cs{@topnewpage} befinden. Eine
+% Möglichkeit dafür wäre, einen Schalter in den Index-Kopf
+% einzubauen. Ich wähle hingegen die Methode, \cs{@topnewpage}
+% entsprechend umzudefinieren. Damit kann dann auch der Anwender
+% \cs{@chapter} innerhalb des optionalen Arguments von \cs{twocolumn}
+% verwenden. Ein Schalter wird allerdings trotzdem gebraucht.
+% \begin{macrocode}
+\newif\if@at@twocolumn
+\newcommand*\scr@topnewpage{}
+\let\scr@topnewpage\@topnewpage
+\long\def\@topnewpage[#1]{%
+ \@at@twocolumntrue\scr@topnewpage[{#1}]\@at@twocolumnfalse
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\use@chapter@o@preamble}
+% 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}}%
+ \addtolength{\@tempdima}{\@tempdimb}%
+ \setbox0\vbox{\use@preamble{chapter@o}%
+ \vskip-\parskip}%
+ \setlength{\@tempdimb}{\ht0}%
+ \addtolength{\@tempdimb}{\dp0}%
+ \vbox to \z@{%
+ \vbox to \@tempdima{\vfill\box0}%
+ \vskip-\@tempdima%
+ }%
+ \ifdim \@tempdimb>\@tempdima%
+ \addtolength{\@tempdimb}{-\@tempdima}%
+ \ClassWarning{\KOMAClassName}{%
+ preamble before chapter is \the\@tempdimb\space too
+ high.\MessageBreak
+ To avoid the overfull \string\vbox\space you may
+ redefine\MessageBreak
+ \string\chapterheadstartvskip\space at the preamble of
+ your\MessageBreak
+ document. You may also change
+ \string\setchapterpreamble\MessageBreak
+ before the command, which generates the message
+ about\MessageBreak
+ an overfull \string\vbox
+ }%
+ \fi%
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% Zurück zur Kapiteldefinition:
+% \begin{macrocode}
+\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{\chapterpagestyle}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter
+}
+% \end{macrocode}
+% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features
+% \texttt{chapteratlist} in die Datei \texttt{scrkliof.dtx} verschoben}
+% Die Variante ohne Stern:
+% \begin{macrocode}
+\newcommand*{\@chapter}{}
+\def\@chapter[#1]#2{%
+ \ifnum \scr@osectarg=\z@
+ \@scr@tempswafalse
+ \else
+ \scr@istest#1=\@nil
+ \fi
+ \if@scr@tempswa
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \fi
+ \fi
+ \ifnumbered{chapter}{%
+%<book> \if@mainmatter
+ \refstepcounter{chapter}%
+ \@maybeautodot\thechapter
+ \typeout{\@chapapp\space\thechapter.}%
+ \ifx\scr@ds@tocentry\@empty\else
+ \addchaptertocentry{\thechapter}{\scr@ds@tocentry}%
+ \fi
+%<*book>
+ \else
+ \ifx\scr@ds@tocentry\@empty\else
+ \addchaptertocentry{}{\scr@ds@tocentry}%
+ \fi
+ \fi
+%</book>
+ }{%
+ \ifx\scr@ds@tocentry\@empty\else
+ \addchaptertocentry{}{\scr@ds@tocentry}%
+ \fi
+ }%
+ \expandafter\chaptermark\expandafter{\scr@ds@head}%
+ \ifdim \@chapterlistsgap>\z@
+ \doforeachtocfile{%
+ \iftocfeature{\@currext}{chapteratlist}{%
+ \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}%
+ }{}%
+ }%
+ \@ifundefined{float@addtolists}{}{%
+ \scr@float@addtolists@warning
+ \float@addtolists{\protect\addvspace{\@chapterlistsgap}}%
+ }%
+ \fi
+ \if@twocolumn
+ \if@at@twocolumn
+ \@makechapterhead{#2}%
+ \else
+ \@topnewpage[\@makechapterhead{#2}]%
+ \fi
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi
+}
+\newcommand*{\@makechapterhead}[1]{%
+ \use@chapter@o@preamble
+ \@@makechapterhead{#1}%
+ \use@preamble{chapter@u}\nobreak
+}
+% \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}
+% \begin{macrocode}
+\newcommand*{\@@makechapterhead}[1]{\chapterheadstartvskip
+ {%
+ \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
+ \normalfont\sectfont\nobreak\size@chapter{}%
+ \if@chapterprefix
+ \let\@tempa\raggedsection
+ \else
+ \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
+ }{}%
+ }%
+ {\raggedsection \interlinepenalty \@M \size@chapter{#1}\par}}%
+ \nobreak\chapterheadendvskip
+}
+% \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
+% 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
+% nummerierten Kapiteln leer. Das zweite Argument ist der Überschriftstext für
+% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach
+% umdefiniert werden. Verwendet wird hier die Standardanweisung für
+% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist:
+% \begin{macrocode}
+\newcommand*{\addchaptertocentry}[2]{%
+ \addtocentrydefault{chapter}{#1}{#2}%
+ \if@chaptertolists
+ \doforeachtocfile{%
+ \iftocfeature{\@currext}{chapteratlist}{%
+ \addxcontentsline{\@currext}{chapteratlist}[{#1}]{#2}%
+ }{}%
+ }%
+ \@ifundefined{float@addtolists}{}{\scr@float@addtolists@warning}%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@schapter}
+% \begin{macro}{\@makeschapterhead}
+% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit
+% einer Präambel versehen werden}
+% \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.9q}{2004/03/24}{Klammerung an \cs{@@makechapterhead}
+% angepasst}
+% Die Sternvariante, die um Einiges einfacher ausfällt.
+% \begin{macrocode}
+\newcommand*{\@schapter}[1]{%
+ \if@twocolumn
+ \if@at@twocolumn
+ \@makeschapterhead{#1}%
+ \else
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \fi
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi
+}
+\newcommand*{\@@makeschapterhead}[1]{%
+ \chapterheadstartvskip%
+ {\normalfont\sectfont\nobreak\size@chapter{}%
+ \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
+ \raggedsection \interlinepenalty \@M \size@chapter{#1}\par}%
+ \nobreak\chapterheadendvskip%
+}
+\newcommand*{\@makeschapterhead}[1]{%
+ \use@chapter@o@preamble
+ \@@makeschapterhead{#1}%
+ \use@preamble{chapter@u}\nobreak
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\addchap}
+% \changes{v2.0e}{1994/08/10}{\cs{sectdef} durch \cs{secdef}
+% ersetzt}
+% \changes{v2.0e}{1994/08/10}{\cs{addcontensline} durch
+% \cs{addcontentsline} ersetzt}
+% \changes{v2.0e}{1994/08/10}{\cs{@makechapterhead} durch
+% \cs{@makeschapterhead} ersetzt}
+% \changes{v2.0e}{1994/08/10}{\cs{afterheadings} durch
+% \cs{@afterheading} ersetzt}
+% \changes{v2.1a}{1994/10/29}{Argument von \cs{chaptermark}
+% entfernt bei \textsf{scrbook}}
+% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch
+% \cs{sectionmark} ersetzt}
+% \changes{v2.2b}{1995/03/20}{\cs{chaptermark} durch \cs{@mkboth}
+% ersetzt}
+% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt
+% \texttt{plain}}
+% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere
+% float-Verzeichnisse mit hyperref}
+% \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}}
+% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale
+% Argument der Gliederungsbefehle}
+% \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
+% Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis
+% erfolgt (nicht in der Stern-Variante).
+%
+% Die Definition von \cs{addcap} sah bis zu Version 2.7 so aus:
+% \begin{verbatim}
+% \newcommand\addchap{\if@openright\cleardoublepage\else\clearpage\fi
+% \thispagestyle{plain}%
+% \global\@topnum\z@
+% \@afterindentfalse
+% \secdef\@addchap\@saddchap}
+% \def\@addchap[#1]#2{\typeout{#2}
+% \addcontentsline{toc}{chapter}{#1}
+% \if@twoside\@mkboth{#1}{}\else\@mkboth{}{#1}\fi
+% \addtocontents{lof}{\protect\addvspace{10\p@}}%
+% \addtocontents{lot}{\protect\addvspace{10\p@}}%
+% \if@twocolumn
+% \@topnewpage[\@makeschapterhead{#2}]%
+% \else
+% \@makeschapterhead{#2}%
+% \@afterheading
+% \fi}
+% \def\@saddchap#1{\@mkboth{}{}
+% \if@twocolumn
+% \@topnewpage[\@makeschapterhead{#1}]%
+% \else
+% \@makeschapterhead{#1}%
+% \@afterheading
+% \fi}
+% \end{verbatim}\vspace{-\baselineskip}
+% Dies führte jedoch zu Problemen im Zusammenhang mit
+% \textsf{hyperref}, da hierbei keine korrekten Links erzeugt
+% werden. Mit dem \texttt{hypertex}-Treiber von \textsf{hyperref}
+% bis Version 6.71a werden auch in der neuen Implementierung keine
+% korrekten Links erzeugt. Dies ist jedoch ein Bug in jenem
+% Treiber. Mit neuen Versionen tritt das Problem nicht mehr auf.
+% Deshalb wurde der Code wie folgt vereinfacht. Von wesentlicher
+% Bedeutung ist dabei der Aufruf von \cs{chapter*}, da in
+% \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}}
+% \begin{macro}{\@saddchap}
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}}
+% \begin{macrocode}
+\newcommand\addchap{%
+ \if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{\chapterpagestyle}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@addchap\@saddchap%
+}%
+\newcommand*{\@addchap}{}%
+\def\@addchap[#1]#2{%
+ \ifnum \scr@osectarg=\z@
+ \@scr@tempswafalse
+ \else
+ \scr@istest#1=\@nil
+ \fi
+ \if@scr@tempswa
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \fi
+ \fi
+ \@schapter{#2}%
+ \ifx\scr@ds@tocentry\@empty\else
+ \addchaptertocentry{}{\scr@ds@tocentry}%
+ \fi
+ \ifnum \@nameuse{scr@v@2.96}<\scr@compatibility\relax
+ \ifdim \@chapterlistsgap>\z@
+ \doforeachtocfile{%
+ \iftocfeature{\@currext}{chapteratlist}{%
+ \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}%
+ }{}%
+ }%
+ \@ifundefined{float@addtolists}{}{%
+ \scr@float@addtolists@warning
+ \float@addtolists{\protect\addvspace{\@chapterlistsgap}}%
+ }%
+ \fi
+ \fi
+ \addchapmark{\scr@ds@head}%
+}%
+\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,
+% dass das Makro auch noch so aussieht, wie man das erwartet hat. Die
+% sauberste Lösung wäre sicher gewesen dort \cs{@addchap} nur zu
+% ergänzen, so wie man das auch bei \cs{@schapter} gemacht hatte. Ab
+% Version 6.71b ist dieser Bug behoben. Damit ich nicht eines Fehlers
+% verdächtigt werde, wird ggf. eine entsprechende Meldung ausgegeben.
+% \changes{v2.7e}{2001/04/16}{fehlende, schließende Klammer
+% ergänzt}
+% \changes{v2.7f}{2001/04/17}{fehlendes Klammerpaar ergänzt}
+% \changes{v2.8q}{2001/11/17}{\cs{AfterPackage} zur Überprüfung der
+% \textsf{hyperref}-Version verwendet}
+% \begin{macrocode}
+\AfterPackage{hyperref}{%
+ \@ifpackagelater{hyperref}{2001/02/19}{}{%
+ \ClassWarningNoLine{\KOMAClassName}{%
+ You are using an old version of hyperref package!\MessageBreak%
+ This version has a buggy hack at many drivers\MessageBreak%
+ causing \string\addchap\space to behave strange.\MessageBreak%
+ Please update hyperref to at least version
+ 6.71b}}}
+% \end{macrocode}
+% \iffalse
+%</book>
+% \fi
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \iffalse
+%</report|book>
+% \fi
+%
+% \begin{macro}{\addsec}
+% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch
+% \cs{sectionmark} ersetzt}
+% \changes{v2.2b}{1995/03/20}{\cs{sectionmark} durch \cs{@mkboth}
+% ersetzt}
+% \changes{v2.3h}{1995/01/21}{jetzt auch bei \textsf{scrbook} und
+% \textsf{scrreprt}}
+% \changes{v2.4g}{1996/11/04}{\cs{section*} vorgezogen, damit
+% dadurch provozierte Seitenumbrüche im Inhaltsverzeichnis
+% berücksichtigt werden}
+% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} bedingt durch
+% \cs{markright} ersetzt}
+% \changes{v2.7a}{2001/01/04}{\cs{addsec} für eine bessere
+% Unterstützung von \textsf{hyperref} geändert}
+% \begin{macro}{\@addsec}
+% \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}}
+% \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}}
+% \begin{macro}{\@saddsec}
+% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}}
+% \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}
+\newcommand*\addsec{\secdef\@addsec\@saddsec}
+\newcommand*{\@addsec}{}
+\def\@addsec[#1]#2{\section*{#2}%
+ \ifnum \scr@osectarg=\z@
+ \@scr@tempswafalse
+ \else
+ \scr@istest#1=\@nil
+ \fi
+ \if@scr@tempswa
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}%
+ \else
+ \ifcase \scr@osectarg\relax
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}%
+ \or
+ \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}%
+ \fi
+ \fi
+ \ifx\scr@ds@tocentry\@empty\else
+ \addsectiontocentry{}{\scr@ds@tocentry}%
+ \fi
+ \addsecmark{\scr@ds@head}%
+}
+\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}
+%
+% \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}
+% \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}
+% \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}
+% \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}
+% 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{%
+ \@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{%
+ \@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{%
+ \@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{%
+ \@startsection{paragraph}{\paragraphnumdepth}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\raggedsection\normalfont\sectfont\nobreak\size@paragraph}%
+}
+\newcommand\subparagraph{%
+ \@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}
+% \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende
+% 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}
+% \begin{KOMAfont}{minisec}
+% \changes{v2.96a}{2006/12/03}{\texttt{minisec} ist ein eigenes
+% Fontelement}
+% In \KOMAScript{} gibt es diese zusätzliche Gliederungsebene, die
+% immer ohne Nummer und ohne Eintrag ins Inhaltsverzeichnis erfolgt.
+% \begin{macrocode}
+\newkomafont{minisec}{}
+\newcommand\minisec[1]{\@afterindentfalse \vskip 1.5ex
+ {\parindent \z@
+ \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
+ \setlength{\parfillskip}{\z@ plus 1fil}\fi
+ \raggedsection\normalfont\sectfont\nobreak
+ \usekomafont{minisec}#1\par\nobreak}\nobreak%
+ \@afterheading
+}
+% \end{macrocode}
+% \end{KOMAfont}
+% \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{macrocode}
+\newcommand*{\raggedsection}{}
+\let\raggedsection\raggedright
+% \end{macrocode}
+% \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{macrocode}
+\newcommand*{\raggedpart}{}
+%<article>\let\raggedpart\raggedsection
+%<report|book>\let\raggedpart\centering
+% \end{macrocode}
+% \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{macrocode}
+\newkomafont{partentry}{\usekomafont{disposition}\large}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \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{macrocode}
+\newkomafont{partentrypagenumber}{}
+% \end{macrocode}
+% \end{KOMAfont}
+%
+% \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{macrocode}
+\newkomafont{chapterentrypagenumber}{}
+%</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}{}
+%</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
+ }%
+}
+% \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)}
+% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}
+% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt}
+% 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*{\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]}%
+}
+\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@vpox{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}
+% 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}
+%
+% \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{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}%\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.
+% \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
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \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{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}{\setpartpreamble}
+% \changes{v2.8f}{2001/07/12}{neu}
+% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}}
+% \begin{macro}{\part@preamble@u}
+% \changes{v2.8p}{2001/09/27}{neu (intern)}
+% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}}
+% \begin{macro}{\part@preamble@o}
+% \changes{v2.8p}{2001/09/27}{neu (intern)}
+% Analog zu den Kapitel gibt es Befehle für eine Teil-Präambel.
+% \begin{macrocode}
+\newcommand*{\setpartpreamble}{\set@preamble{part}}
+\newcommand*{\part@preamble@u}{}
+\let\part@preamble@u\relax
+\newcommand*{\part@preamble@o}{}
+\let\part@preamble@o\relax
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \iffalse
+%</report|book>
+% \fi
+%
+%
+% \subsection{Einträge ins Inhaltsverzeichnis}
+%
+% Die Gliederungsbefehle schreiben auch Einträge ins
+% Inhaltsverzeichnis, die dort ebenfalls formatiert werden müssen.
+%
+% \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{macrocode}
+\newcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >-2\relax
+%<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}
+% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}}
+% \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
+% \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}
+% \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}
+% 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}
+% \begin{macrocode}
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \else
+%</article>
+ \penalty\@highpenalty
+%<article> \fi
+ \endgroup
+ \fi
+ \fi
+}
+% \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}.
+% \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}{%
+% \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}
+% \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
+}
+% \end{macrocode}
+% \begin{macro}{\raggedchapterentry}
+% \changes{v2.97c}{2007/06/21}{neue Anweisung}
+% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis.
+% \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}
+% \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.
+% \begin{macrocode}
+%<*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
+ \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}
+%
+% \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*{\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
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</class>
+%</body>
+% \fi
+%
+% \iffalse
+%</!letter>
+% \fi
+%
+% \Finale
+%
+\endinput
+%
+% end of file `scrkernel-sections.dtx'
+%%% Local Variables:
+%%% mode: doctex
+%%% coding: iso-latin-1
+%%% TeX-master: t
+%%% End: