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