diff options
author | Karl Berry <karl@freefriends.org> | 2013-12-26 23:18:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-12-26 23:18:36 +0000 |
commit | 9b219d1b664067729034647a4b37626cf2bf5e26 (patch) | |
tree | 00708467b44f90736dc32ed1bebb95e9c4710139 /Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx | |
parent | c00c8298eb6913b74270a36c1f1018f1e9946f7b (diff) |
koma-script (26dec13)
git-svn-id: svn://tug.org/texlive/trunk@32489 c570f23f-e606-0410-a88d-b1316a301751
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 | 3145 |
1 files changed, 3145 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx new file mode 100644 index 00000000000..ac28717e035 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx @@ -0,0 +1,3145 @@ +% \CheckSum{2255} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-sections.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkernel-sections.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% +% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. +% +% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. +% ====================================================================== +% \fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%%% From File: $Id: scrkernel-sections.dtx 1552 2013-12-16 16:51:32Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-sections.dtx}[2013/12/16 v3.12 KOMA-Script + (disposition)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-sections.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/26}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Gliederung} +% +% Zur Gliederung gehören neben den üblichen Gliederungsbefehlen +% \cs{chapter} \dots \cs{subparagraph} auch alle Optionen und Befehle, +% die diese Gliederung beeinflussen. Eingeschränkt gehören auch die +% Befehle dazu, die Inhaltsverzeichniseinträge zu den +% Gliederungsbefehlen erzeugen oder unmittelbar formatieren. Diese +% Entscheidung wurde getroffen, weil die Zusammengehörigkeit eher hier +% gesehen wird, als bei den Verzeichnissen selbst. +% +% Briefe haben derzeit keine derartige Gliederung. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*!letter> +% \fi +% +% \iffalse +%<*option> +% \fi +% \subsection{Optionen für die Gliederung} +% +% \iffalse +%<*class> +%<*book|report> +% \fi +% \begin{option}{open} +% \changes{v2.98c}{2008/03/06}{Neue Option} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Bei \textsf{scrreprt} und \textsf{scrbook} kann per Option eingestellt +% werden, ob Kapitel nur auf linken oder rechten Seiten beginnen dürfen oder +% auf jeder Seite. +% \begin{macro}{\if@openright} +% \begin{macro}{\@openrighttrue} +% \begin{macro}{\@openrightfalse} +% Der Zustand wird dann in einem Schalter und durch umdefinieren von +% \cs{cleardoublestandardpage} gespeichert. +% \begin{macrocode} +\newif\if@openright +%<report>\@openrightfalse +%<book>\@openrighttrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +\KOMA@key{open}{% + \KOMA@set@ncmdkey{open}{@tempa}{% + {any}{0},% + {right}{1},% + {left}{2}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax + \@openrightfalse + \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% + \or + \@openrighttrue + \renewcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}% + \or + \@openrighttrue + \renewcommand*{\cleardoublestandardpage}{\cleardoubleevenstandardpage}% + \fi + \fi +} +% \end{macrocode} +% \end{option} +% \begin{option}{openright} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{option}{openany} +% \changes{v2.98c}{2008/03/05}{obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \begin{macrocode} +\KOMA@DeclareStandardOption{openright}{open=right} +\KOMA@DeclareStandardOption{openany}{open=any} +% \end{macrocode} +% \end{option} +% \end{option} +% \iffalse +%</book|report> +%% \fi +% +% +% \begin{option}{numbers} +% \changes{v2.98c}{2008/03/07}{Neue Option} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% Dies ist die zentrale Option zur Konfiguration der Nummerierung. Dabei geht +% es primär um die Gliederungsnummern, es sind jedoch auch davon abgeleitete +% Nummern betroffen. +% \begin{macro}{\scr@dotchangeatdocument} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% Da die Umschaltung zwischen automatischem Endpunkt, immer Endpunkt und kein +% Endpunkt unbedingt \emph{vor} \cs{begin{document}} erfolgen muss, wird eine +% Fehlermeldung ausgegeben, falls das jemand zu einem späteren Zeitpunkt +% probiert. +% \begin{macrocode} +\newcommand*{\scr@dotchangeatdocument}[1]{% + \ClassError{\KOMAClassName}{% + change of end dot feature after \string\begin{document}% + }{% + You've tried to set `numbers=#1' after \string\begin{document},\MessageBreak + but this option is only allowed at the document preamble.\MessageBreak + See KOMA-Script manual for more information about.% + }% +} +% \end{macrocode} +% \end{macro} +% Normalerweise wird automatisch entschieden, ob Nummern mit einem +% Punkt enden müssen oder nicht. Um dies abzuschalten, muss nur der +% gewünschte Zustand eingeschaltet und die Umschaltmöglichkeit +% entfernt werden. Die Umschaltung kann jedoch nicht direkt erfolgen, sondern +% erfolgt zeitverzögert in \cs{begin{document}}. Hier wird nur das Makro +% umgeschaltet, das dort verwendet wird. +% \begin{macrocode} +\KOMA@key{numbers}{% + \KOMA@set@ncmdkey{numbers}{@tempa}{% + {autoendperiod}{0},{autoenddot}{0},{auto}{0},% + {endperiod}{1},{withendperiod}{1},{periodatend}{1},% + {enddot}{1},{withenddot}{1},{dotatend}{1},% + {noendperiod}{2},{noperiodatend}{2},% + {noenddot}{2},{nodotatend}{2}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\@empty + \fi + \or + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\scr@altsecnumhooktrue + \fi + \or + \if@atdocument\scr@dotchangeatdocument{#1}\else + \let\scr@altsecnumhook\scr@altsecnumhookfalse + \fi + \fi + \fi +} +% \end{macrocode} +% \begin{macro}{\scr@altsecnumhook} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% \begin{macro}{\scr@altsecnumhooktrue} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% \begin{macro}{\scr@altsecnumhookfalse} +% \changes{v2.98c}{2008/03/07}{Neu (intern)} +% Es werden drei Hilfsmakros benötigt. Das erste davon wird bei +% \cs{begin{document}} ausgeführt (nachdem die \texttt{aux}-Datei gelesen +% wurde!) und schaltet den gewünschten Zustand ein. Dazu wird es per Option +% ggf. auf die eine oder andere Bedeutung umgeschaltet. Im Auto-Fall ist es +% übrigens \cs{@empty}. +% \begin{macrocode} +\newcommand*{\scr@altsecnumhook}{} +\AtBeginDocument{\scr@altsecnumhook} +\newcommand*{\scr@altsecnumhooktrue}{% + \@altsecnumformattrue\global\let\@altsecnumformatfalse\@altsecnumformattrue +} +\newcommand*{\scr@altsecnumhookfalse}{% + \@altsecnumformatfalse\global\let\@altsecnumformattrue\@altsecnumformatfalse +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{pointednumbers} +% \changes{v2.3h}{1995/01/19}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so, +% bei \texttt{pointednumber} wird explizit ein Fehler gemeldet} +% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformatfalse} wird +% direkt auf \cs{@altsecnumformattrue} gesetzt} +% \changes{v2.98c}{2008/03/07}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{option}{pointlessnumbers} +% \changes{v2.3h}{1995/01/19}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so, +% bei \texttt{pointlessnumber} wird explizit ein Fehler gemeldet} +% \changes{v2.4g}{1996/11/04}{\cs{@altsecnumformattrue} wird direkt +% auf \cs{@altsecnumformatfalse} gesetzt} +% \changes{v2.98c}{2008/03/07}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{pointednumbers}{numbers=enddot} +\KOMA@DeclareDeprecatedOption{pointlessnumbers}{numbers=noenddot} +% \end{macrocode} +% Übrigens weiß ich, wie blödsinnig die Namen der Optionen sind. Aber +% das ist nun nicht mehr zu ändern. +% \end{option} +% \end{option} +% +% +% \begin{option}{chapterprefix} +% \changes{v2.8}{2001/06/15}{neue Option} +% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option} +% \begin{option}{nochapterprefix} +% \changes{v2.8}{2001/06/15}{neue Option} +% \changes{v2.95c}{2006/08/21}{obsolete Option} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \iffalse +%<*book|report> +% \fi +% Normalerweise verwenden \textsf{scrbook} und \textsf{scrreprt} nicht +% die enorm großen Überschriften von \textsf{book} und +% \textsf{report}, die mit einem Absatz "`Kapitel \emph{Nummer}"' +% beginnen. Mit der Option \texttt{chapterprefix} kann dies jetzt +% wieder aktiviert werden. Die Option, zur Deaktivierung heißt +% entsprechend \textsf{nochapterprefix}. +% \begin{macro}{\if@chapterprefix} +% \begin{macro}{\@chapterprefixtrue} +% \begin{macro}{\@chapterprefixfalse} +% Um für Spezialanwendungen auch innerhalb des Dokuments eine +% Umschaltung zu ermöglichen bzw. für die Optionen +% \texttt{appendixprefix} und \texttt{noappendixprefix} erfolgt die +% Umschaltung durch einen Schalter. +% \begin{macrocode} +\newif\if@chapterprefix\@chapterprefixfalse +\KOMA@ifkey{chapterprefix}{@chapterprefix} +\KOMA@DeclareDeprecatedOption{nochapterprefix}{chapterprefix=false} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +%</book|report> +% \fi +% \end{option} +% \end{option} +% +% +% \begin{option}{appendixprefix} +% \changes{v2.8}{2001/06/15}{neue Option} +% \changes{v2.95c}{2006/08/21}{als \textsf{keyval}-Option} +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}} +% \begin{option}{noappendixprefix} +% \changes{v2.8}{2001/06/15}{neue Option} +% \changes{v2.95c}{2006/08/21}{obsolete Option} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \iffalse +%<*book|report> +% \fi +% Will man abweichend von der Option \texttt{chapterprefix} die großen +% Überschriften für den Anhang aktivieren oder deaktivieren, so kann man das +% mit dieser Option erreichen. Allerdings setzt diese keinen Schalter, sondern +% ein Zusatzmakro, das auch für andere Zwecke genutzt werden kann. Übrigens +% ist keine der beiden Einstellungen die Voreinstellung! +% \begin{macrocode} +\KOMA@key{appendixprefix}[true]{% + \KOMA@set@ifkey{appendixprefix}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \if@tempswa + \def\appendixmore{\@chapterprefixtrue}% + \else + \def\appendixmore{\@chapterprefixfalse}% + \fi + \fi +} +\KOMA@DeclareDeprecatedOption{noappendixprefix}{appendixprefix=false} +% \end{macrocode} +% \iffalse +%</book|report> +% \fi +% \end{option}^^A noappendixprefix +% \end{option}^^A appendixprefix +% +% +% \begin{macro}{\sectfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}%^^A +% \changes{v3.12}{2013/11/11}{wird wegen Option +% \texttt{headings!=standardclasses} früher definiert}%^^A +% Dies Schriftart nicht nur für die Gliederungsbefehle. Dieses Makro +% ist als intern zu betrachten. Der Anwender sollte stattdessen das +% entsprtechende Fontelement verwenden. +% \begin{macrocode} +%</class> +\newcommand*{\sectfont}{\normalcolor\sffamily\bfseries} +%<*class> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\size@part} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@partnumber} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@chapter} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \changes{v2.96a}{2006/12/02}{letztes Element darf ein Argument erwarten, +% wenn es keine Auswirkung auf den Zeilen abstand hat} +% \begin{macro}{\size@chapterprefix} +% \changes{v2.96a}{2006/12/02}{neu (intern)} +% \begin{macro}{\size@section} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subsection} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subsubsection} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@paragraph} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% \begin{macro}{\size@subparagraph} +% \changes{v2.8o}{2001/09/14}{neu (intern)} +% Diese Makros werden intern von den Elementen benötigt (siehe unten). Darüber +% hinaus werden sie per Option geändert und sind deshalb vor der +% entsprechenden Option zu definieren. +% \begin{macrocode} +\newcommand*{\size@part}{} +\newcommand*{\size@partnumber}{} +%<book|report>\newcommand*{\size@chapter}{} +%<book|report>\newcommand*{\size@chapterprefix}{\size@chapter} +\newcommand*{\size@section}{} +\newcommand*{\size@subsection}{} +\newcommand*{\size@subsubsection}{} +\newcommand*{\size@paragraph}{} +\newcommand*{\size@subparagraph}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\chapterheadstartvskip} +% \begin{macro}{\chapterheadendvskip} +% \changes{v3.11c}{2013/02/13}{\cs{chapterheadstartvskip} und +% \cs{chapterheadendvskip} haben in \textsf{scrartcl} nichts verloren} +% Mit diesen Anweisungen wird üblicherweise der Abstand zwischen +% oberem Rand des Textbereichs und der Überschrift bzw. der Abstand +% zwischen der Überschrift und dem Text des Kapitels gesetzt. Man kann +% die Anweisungen aber zusätzlich auch für andere Zwecke +% missbrauchen. Das ist der Grund warum diese Makros keine Längen, +% sondern komplette Anweisungen enthalten. In der Voreinstellung +% enthalten sie jedoch gar nichts. Die tatsächlichen Werte werden +% durch die Optionen festgelegt. +% \begin{macrocode} +%<*book|report> +\newcommand*{\chapterheadstartvskip}{} +\newcommand*{\chapterheadendvskip}{} +%</book|report> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{option}{headings} +% \changes{v2.3h}{1996/01/20}{Größe von \cs{chapter} um eine Stufe +% verringert}^^A +% \changes{v2.3h}{1996/01/20}{Verwendung von \cs{chapterheadstartvskip} und +% \cs{chapterheadendvskip} an Stelle von festen vertikalen Abständen am +% Anfang und am Ende eines Kapitels}^^A +% \changes{v2.7c}{2000/01/19}{vertikale Abstände nach der Kapitelüberschrift +% geringfügig verändert und mit Leim versehen, um mit \cs{flushbottom} zu +% besseren Ergebnissen zu gelangen}^^A +% \changes{v2.98c}{2008/03/10}{Neue Option}^^A +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle}^^A +% \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit +% \cs{FamilyKeyState}}^^A +% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch \cs{KOMAoptions} +% ersetzt}^^A +% \changes{v3.12}{2013/11/11}{neuer Wert \texttt{standardclasses}}^^A +% Dies ist eine neue zentrale Option für Überschriften. Dabei ergibt sich +% nun auch das Problem, dass die Gesamtmenge der Überschriften mal +% \emph{headings} (Überschriften), mal \emph{sectioning} +% (Abschnittseinteilung) und mal \emph{disposition} (Gliederung) genannt +% wird. Es wäre gut gewesen, sich bei Zeiten Gedanken darüber zu machen, wie +% man das am besten einheitlich nennt. +% \begin{macrocode} +\KOMA@key{headings}{% + \KOMA@set@ncmdkey{headings}{@tempa}{% + {big}{0},% + {normal}{1},% + {small}{2},% +%<*book|report> + {openany}{3},% + {openright}{4},% + {openleft}{5},% + {twolinechapter}{6},{chapterprefix}{6},{chapterwithprefix}{6},% + {chapterwithprefixline}{6},% + {onelinechapter}{7},{nochapterprefix}{7},{chapterwithoutprefix}{7},% + {chapterwithoutprefixline}{7},% + {twolineappendix}{8},{appendixprefix}{8},{appendixwithprefix}{8},% + {appendixwithprefixline}{8},% + {onelineappendix}{9},{noappendixprefix}{9},{appendixwithoutprefix}{9},% + {appendixwithoutprefixline}{9},% +%</book|report> + {optiontotocandhead}{10},{optiontoheadandtoc}{10},% + {optiontotoc}{11},% + {optiontohead}{12},% + {standardclasses}{13}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \ifcase \@tempa\relax +% \end{macrocode} +% Als erstes kümmern wir uns um die drei Größenabstufungen für die +% Überschriften, die \KOMAScript{} bietet, und zwar in der Reihenfolge +% \texttt{big}, \texttt{normal}, \texttt{small}. Es sei darauf hingewiesen, +% dass die Verwendung dieser Option alle Änderungen an +% \cs{chapterheadstartvskip} oder \cs{chapterheadendvskip} oder den +% Font-Elementen für die einzelnen Überschriften aufhebt macht! +% \begin{macrocode} +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{2.3\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.725\baselineskip + \@plus .115\baselineskip \@minus .192\baselineskip}% + }% +%</book|report> + \renewcommand*{\size@part}{\Huge}% + \renewcommand*{\size@partnumber}{\huge}% +%<book|report> \renewcommand*{\size@chapter}{\huge}% +%<book|report> \renewcommand*{\size@chapterprefix}{\size@chapter}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{2\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.5\baselineskip + \@plus .1\baselineskip \@minus .167\baselineskip}% + }% +%</book|report> + \renewcommand*{\size@part}{\huge}% + \renewcommand*{\size@partnumber}{\huge}% +%<*book|report> + \renewcommand*{\size@chapter}{\LARGE}% + \renewcommand*{\size@chapterprefix}{\size@chapter}% + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% +%</book|report> +%<*article> + \renewcommand*{\size@section}{\large}% + \renewcommand*{\size@subsection}{\normalsize}% +%</article> + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \or +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{1.8\baselineskip}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{1.35\baselineskip + \@plus 0.09\baselineskip \@minus .15\baselineskip}% + }% +%</book|report> + \renewcommand*{\size@part}{\LARGE}% + \renewcommand*{\size@partnumber}{\LARGE}% +%<*book|report> + \renewcommand*{\size@chapter}{\Large}% + \renewcommand*{\size@chapterprefix}{\size@chapter}% + \renewcommand*{\size@section}{\large}% +%</book|report> +%<*article> + \renewcommand*{\size@section}{\normalsize}% +%</article> + \renewcommand*{\size@subsection}{\normalsize}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% +% \end{macrocode} +% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die +% Möglichkeit, auch hierüber die Optionen \texttt{open=any}, +% \texttt{open=right} und \texttt{open=left} zu setzen. +% \begin{macrocode} + \or +%<*book|report> + \KOMAoptions{open=any}% +%</book|report> + \or +%<*book|report> + \KOMAoptions{open=right}% +%</book|report> + \or +%<*book|report> + \KOMAoptions{open=left}% +%</book|report> +% \end{macrocode} +% Für \textsf{scrbook} und \textsf{scrreprt} gibt es dann noch die +% Möglichkeit, auch hierüber die Optionen \texttt{chapterprefix} und +% \texttt{appendixprefix} zu setzen. +% \begin{macrocode} + \or +%<*book|report> + \KOMAoptions{chapterprefix=true}% +%</book|report> + \or +%<*book|report> + \KOMAoptions{chapterprefix=false}% +%</book|report> + \or +%<*book|report> + \KOMAoptions{appendixprefix=true}% +%</book|report> + \or +%<*book|report> + \KOMAoptions{appendixprefix=false}% +%</book|report> +% \end{macrocode} +% Ab Version~3.10 wird über diese Option auch noch die Erweiterung für das +% optionale Argument der Gliederungsüberschriften aktiviert und gesteuert. +% \begin{macrocode} + \or + \scr@activate@xsection{3}% + \or + \scr@activate@xsection{2}% + \or + \scr@activate@xsection{1}% +% \end{macrocode} +% Ab Version~3.12 gibt es noch die Möglichkeit, die Überschriftengrößen der +% Standardklassen zu emulieren. +% \begin{macrocode} + \or +%<*book|report> + \renewcommand*{\chapterheadstartvskip}{% + \vspace*{50\p@}% + }% + \renewcommand*{\chapterheadendvskip}{% + \vspace{40\p@}% + }% + \renewcommand*{\size@part}{\Huge}% + \renewcommand*{\size@partnumber}{\huge}% + \renewcommand*{\size@chapter}{\Huge}% + \renewcommand*{\size@chapterprefix}{\huge}% +%</book|report> +%<*article> + \renewcommand*{\size@part}{\huge}% + \renewcommand*{\size@partnumber}{\Large}% +%</article> + \renewcommand*{\size@section}{\Large}% + \renewcommand*{\size@subsection}{\large}% + \renewcommand*{\size@subsubsection}{\normalsize}% + \renewcommand*{\size@paragraph}{\normalsize}% + \renewcommand*{\size@subparagraph}{\normalsize}% + \renewcommand*{\sectfont}{\bfseries}% +%<book|report> \KOMAoptions{open=right,chapterprefix=true}% + \fi + \fi +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{bigheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macro}{\@bigheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{option}{normalheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macro}{\@normalheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{option}{smallheadings} +% \changes{v2.3h}{1996/01/20}{neue Option} +% \changes{v2.4g}{1996/11/04}{die Option heißt nun wirklich so; bei +% Verwendung des alten, falschen Namens wird ein Fehler +% ausgegeben} +% \changes{v2.98c}{2008/03/10}{obsolet} +% \changes{v3.01a}{2008/11/20}{deprecated} +% \begin{macro}{\@smallheadings} +% \changes{v2.98c}{2008/03/10}{entfernt} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{bigheadings}{headings=big} +\KOMA@DeclareDeprecatedOption{normalheadings}{headings=normal} +\KOMA@DeclareDeprecatedOption{smallheadings}{headings=small} +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% +% \begin{macro}{\scr@activate@xsection} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% Hiermit wird die Erweiterung für das optionale Argument der +% Gliederungsbefehle eingeschaltet. +% \begin{macro}{\scr@osectarg} +% Für die nicht per \cs{@startsection} implementierten Befehle geht das +% einfach durch Umschaltung von \cs{scr@osectarg}. Bei 0 ist die Aktivierung +% nicht aktiv. Bei 1 landet das optionale Argument hingegen im Kopf, bei 2 +% im Inhaltsverzeichnis und bei 3 in beiden. Die Voreinstellung ist deshalb +% ebenfalls 0. +% \begin{macrocode} +\newcommand*{\scr@osectarg}{0} +\newcommand*{\scr@activate@xsection}[1]{% + \renewcommand*{\scr@osectarg}{#1}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse +%</class> +%</option> +%<*body> +% \fi +% +% +% \subsection{Grobeinteilung von Büchern} +% \iffalse +%<*class> +%<*book> +% \fi +% +% \begin{macro}{\if@mainmatter} +% \begin{macro}{\@mainmattertrue} +% \begin{macro}{\@mainmatterfalse} +% \changes{v2.3a}{1995/07/08}{\cs{if@mainmatter} Anforderung +% verschoben} +% Über diesen Schalter wird bei Buchklassen festgelegt, ob wir uns im +% Hauptteil des Dokuments befinden oder nicht. Die eigentliche +% Umschaltung geschieht mit Hilfe der Befehle \cs{frontmatter}, +% \cs{mainmatter}, \cs{backmatter}. Ohne Umschaltung befinden wir uns +% bereits im Hauptteil. +% \begin{macrocode} +\newif\if@mainmatter\@mainmattertrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\frontmatter} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} +% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} +% Der Vorspann enthält bei Büchern oftmals Inhaltsverzeichnis, Vorwort +% und dergleichen und wird mit kleinen römischen Seitenzahlen +% versehen. +% \begin{macrocode} +\newcommand*\frontmatter{% + \if@twoside\cleardoubleoddpage\else\clearpage\fi + \@mainmatterfalse\pagenumbering{roman}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\mainmatter} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} +% \changes{v2.5h}{1999/12/29}{Option \texttt{twoside} beachten} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} +% Der Hauptteil ist das Fleisch der Bücher. +% \begin{macrocode} +\newcommand*\mainmatter{% + \if@twoside\cleardoubleoddpage\else\clearpage\fi + \@mainmattertrue\pagenumbering{arabic}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\backmatter} +% \changes{v3.00}{2008/09/27}{\cs{cleardoubleoddpage} statt +% \cs{cleardoublepage}} +% Auch wenn nicht ganz einzusehen ist, warum das anders sein soll, +% wird hier nicht nach der Option \texttt{twoside}, sondern nach +% \texttt{openright} unterschieden. +% \begin{macrocode} +\newcommand*\backmatter{% + \if@openright\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse +} +% \end{macrocode} +% \end{macro} +% \iffalse +%</book> +% \fi +% +% +% \subsection{Anhang} +% \begin{macro}{\appendix} +% Wird der Anhang aktiviert, so werden Kapitel zukünftig mit Buchstaben +% nummeriert. +% \changes{v2.2d}{1995/05/28}{\textsf{scrartcl} benötigt keinen +% Zähler für \cs{chapter}} +% \changes{v2.3c}{1995/08/06}{alternative Nummerierung bei +% Verwendung eines Anhangs} +% \changes{v2.8}{2001/06/15}{\cs{appendixmore} wird beachtet} +% \changes{v2.8e}{2001/07/10}{\cs{@altsecnumformattrue} wird nicht +% länger ausgeführt} +% \changes{v2.8o}{2001/09/19}{\cs{par} eingefügt} +% \changes{v2.95}{2006/07/04}{\cs{newcommand*} durch \cs{gdef} ersetzt} +% \changes{v2.95}{2006/07/04}{Ausführung von \cs{appendixmore} vereinfacht} +% \begin{macro}{\appendixmore} +% \cs{appendixmore} kann als \emph{hook} verwendet werden. +% \begin{macrocode} +\newcommand*\appendix{\par% +%<*article> + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \gdef\thesection{\@Alph\c@section}% +%</article> +%<*report|book> + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\thechapter{\@Alph\c@chapter}% +%</report|book> + \csname appendixmore\endcsname +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Definitionen für Seitenstile} +% +% \begin{macro}{\chaptermark} +% Da \cs{chapter} nicht mit Hilfe von \cs{@startsection} definiert +% wird, wird auch \cs{chaptermark} nicht automatisch definiert. Es +% wird aber in den Seitenstilen benötigt bzw. umdefiniert. Also hier +% vorsorglich eine Dummy-Definition: +% \begin{macrocode} +%<book|report>\newcommand*\chaptermark[1]{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addchapmark} +% \changes{v3.12}{2013/03/26}{neue Anweisung} +% \begin{macro}{\addsecmark} +% \changes{v3.12}{2013/03/26}{neue Anweisung} Für \cs{addchapmark} und +% \cs{addsecmark} gilt dies hingegen nicht. Das wird nicht von den Stilen +% definiert, sondern direkt mit der gewünschten Definition +% initialisiert. Bitte nicht davon verwirren lassen, dass \cs{if@mainmatter} +% hier auch von \textsf{scrreprt} definiert wird. Das ist Absicht und +% vereinfacht dem einen oder anderen Paket oder Benutzer vielleicht die +% Arbeit. +% \begin{macrocode} +%<*book|report> +\newcommand*\addchapmark[1]{% + \begingroup + \expandafter\let\csname if@mainmatter\expandafter\endcsname + \csname iffalse\endcsname + \c@secnumdepth=\m@ne + \chaptermark{#1}% + \endgroup +} +%</book|report> +\newcommand*\addsecmark[1]{% + \begingroup + \c@secnumdepth=\m@ne + \sectionmark{#1}% + \endgroup +} +% \end{macrocode} +% \end{macro}^^A \addsecmark +% \end{macro}^^A \addchapmark +% +% \subsection{Der Automatismus für den Punkt in der Nummerierung} +% +% Nach Duden 20.~Auflage, Regel~5 wird in der Gliederung kein Punkt +% gesetzt, wenn diese rein mit arabischen Zahlen erfolgt. Nach Regel~6 +% folgt jedoch ein Punkt, wenn die Gliederung auch römische Zahlen +% oder Großbuchstaben enthält. Aus Konsistenzgründen muss der Punkt in +% diesem Fall immer gesetzt werden. \KOMAScript{} bietet dafür einen +% Automatismus. +% +% \begin{macro}{\if@altsecnumformat} +% \changes{v2.3c}{1995/08/06}{neuer Schalter} +% \begin{macro}{\@altsecnumformattrue} +% \begin{macro}{\@altsecnumformatfalse} +% Dieses Schalter wird für die Umschaltung auf Duden-Regel~6 bei der +% Numerierung benötigt. +% \begin{macro}{\if@autodot} +% \changes{v2.8e}{2001/07/10}{neuer Schalter} +% \begin{macro}{\@autodottrue} +% \changes{v3.00}{2008/10/07}{arbeitet nun gobal} +% \begin{macro}{\@autodotfalse} +% \changes{v3.00}{2008/10/07}{arbeitet nun gobal} +% Damit die Umschaltung auch wieder zurück auf Regel~5 automatisch +% erfolgen kann, wird ein zweiter Schalter benötigt. +% \begin{macrocode} +\newif\if@altsecnumformat\@altsecnumformatfalse +\newif\if@autodot +\renewcommand*{\@autodottrue}{\global\let\if@autodot\iftrue} +\renewcommand*{\@autodotfalse}{\global\let\if@autodot\iffalse} +\@autodotfalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\@maybeautodot} +% \changes{v2.8e}{2001/07/10}{neu (intern)} +% Ob der automatische Punkt aktiviert werden muss, wird aufgrund der +% Darstellung eines Zählers entschieden. Diese wird dem Makro als +% Argument übergeben (\cs{thepart}, \cs{thechapter} etc.). Durch +% Verwendung einer Gruppe, werden alle Definitionen lokal gehalten. +% \begin{macrocode} +\newcommand{\@maybeautodot}[1]{\if@autodot\else\begingroup% + \expandafter\@@maybeautodot #1\@stop\endgroup\fi +} +% \end{macrocode} +% \begin{macro}{\@@maybeautodot} +% \changes{v2.8e}{2001/07/10}{neu (intern)} +% \changes{v3.00}{2008/10/07}{neuerdings überflüssige \cs{aftergroup} +% entfernt} +% Die expandierte Darstellung wird dann auf Darstellungsbefehle für +% Zähler gescannt. +% \begin{macrocode} +\newcommand*{\@@maybeautodot}[1]{% + \ifx #1\@stop\let\@@maybeautodot\relax + \else + \ifx #1\Alph \@autodottrue\fi + \ifx #1\alph \@autodottrue\fi + \ifx #1\Roman \@autodottrue\fi + \ifx #1\roman \@autodottrue\fi + \ifx #1\@Alph \@autodottrue\fi + \ifx #1\@alph \@autodottrue\fi + \ifx #1\@Roman \@autodottrue\fi + \ifx #1\@roman \@autodottrue\fi + \ifx #1\romannumeral \@autodottrue\fi + \fi + \@@maybeautodot +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\scr@sect} +% \changes{v3.10}{2011/08/30}{entfällt} +% \begin{macro}{\@sect} +% \changes{v3.10}{2011/08/30}{Vollständige Neudefinition zur Realisierung +% der Erweiterung für das optionale Argument}%^^A +% \changes{v3.10}{2011/08/30}{Verwendung von +% \cs{csname}\texttt{add\#1tocentry}\cs{endcsname} +% bzw. \cs{addtocentrydefault}}%^^A +% Damit auch alle mit \cs{@startsection} definierten Gliederungsebenen +% bei der Entscheidung berücksichtigt werden, muss ein internes Makro +% des \LaTeX-Kerns erweitert werden. Für die Ebenen \cs{part} und +% \cs{chapter} wird der Test direkt in der Definition der Befehle +% erledigt. +% \begin{macrocode} +\def\@tempa#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} +\ifx\@sect\@tempa\else + \ClassWarning{\KOMAClassName}{% + Unexpected definition of \string\@sect!\MessageBreak + Please send an information about this to\MessageBreak + the KOMA-Script maintainer!\MessageBreak + Maybe LaTeX will be broken by the redefinition\MessageBreak + of \string\@sect\space}% +\fi +%<trace>\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro \string\@sect} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#7=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#8},head={#8},#7}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}% + \or + \setkeys{KOMAarg.section}{tocentry={#8},head={#7}}% + \or + \setkeys{KOMAarg.section}{tocentry={#7},head={#8}}% + \or + \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}% + \fi + \fi + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \expandafter\@maybeautodot\csname the#1\endcsname + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M #8\@@par}% + \endgroup +%<trace> \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}% + \expandafter\csname #1mark\expandafter\endcsname\expandafter{\scr@ds@head}% +%<trace> \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}% + \ifx\scr@ds@tocentry\@empty\else + \scr@ifundefinedorrelax{add#1tocentry}{% + \expandafter\global\expandafter\def + \csname add#1tocentry\endcsname##1##2{% + \addtocentrydefault{#1}{##1}{##2}% + }% + }{}% + \ifnum #2>\c@secnumdepth + \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}% + \else + \csname add#1tocentry\endcsname{\csname the#1\endcsname}{% + \scr@ds@tocentry}% + \fi + \fi + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% +%<trace> \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}% + \expandafter\csname #1mark\expandafter\endcsname\expandafter{% + \scr@ds@head}% +%<trace> \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}% + \ifx\scr@ds@tocentry\@empty\else + \scr@ifundefinedorrelax{add#1tocentry}{% + \expandafter\global\expandafter\def + \csname add#1tocentry\endcsname####1####2{% + \addtocentrydefault{#1}{####1}{####2}% + }% + }{}% + \ifnum #2>\c@secnumdepth + \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}% + \else + \csname add#1tocentry\endcsname{\csname the#1\endcsname}{% + \scr@ds@tocentry}% + \fi + \fi + }% + \fi + \@xsect{#5}% +} +% \end{macrocode} +% \begin{macro}{\scr@ds@tocentry} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% \begin{macro}{\scr@ds@head} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% \begin{macro}{\if@scr@tempswa} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% \begin{macro}{\scr@istest} +% \changes{v3.10}{2011/08/30}{neu (intern)} +% Für die Realisierung werden noch ein paar Key-Value-Definitionen und ein +% paar Hilfsmakros benötigt: +% \begin{macrocode} +\DefineFamily{KOMAarg} +\DefineFamilyMember[.section]{KOMAarg} +\DefineFamilyKey[.section]{KOMAarg}{tocentry}{\def\scr@ds@tocentry{#1}} +\DefineFamilyKey[.section]{KOMAarg}{head}{\def\scr@ds@head{#1}} +\newcommand*\scr@ds@tocentry{} +\newcommand*\scr@ds@head{} +\newcommand*{\scr@istest}{} +\def\scr@istest#1=#2\@nil{% + \ifx\relax#2\relax\@scr@tempswafalse\else\@scr@tempswatrue\fi +} +\newif\if@scr@tempswa +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% Dabei soll die Umstellung des Punktes beim zweiten TeX-Lauf bereits am +% Anfang aktiv sein. Deshalb wird die Information am Ende in die aux-Datei +% geschrieben. +% \changes{v2.9k}{2003/01/12}{es wird direkt in \cs{@mainaux} geschrieben} +% \changes{v2.95}{2004/01/15}{es wird erst unmittelbar vor dem Schließen +% der Haupt-aux-Datei in diese geschrieben} +% \changes{v2.96a}{2006/12/07}{es wird \cs{immediate} geschrieben} +% \begin{macrocode} +\BeforeClosingMainAux{% + \if@autodot\if@filesw\immediate\write\@mainaux{% + \string\global\string\@altsecnumformattrue}% + \fi\fi} +% \end{macrocode} +% +% \begin{macro}{\autodot} +% \changes{v2.7}{2001/01/03}{neu} +% Dieses Makro setzt dann den Punkt nach Bedarf. +% \begin{macrocode} +\newcommand*\autodot{\if@altsecnumformat.\fi} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Zähler für die Gliederungsebenen} +% +% \begin{Counter}{secnumdepth} +% Dieser Zähler gibt an, bis zu welcher Ebene die +% Gliederungsüberschriften nummeriert werden. +% \begin{macrocode} +%<book|report>\setcounter{secnumdepth}{2} +%<article>\setcounter{secnumdepth}{3} +% \end{macrocode} +% \end{Counter} +% +% \begin{macro}{\partnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\chapternumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\sectionnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\subsectionnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\subsubsectionnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\paragraphnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% \begin{macro}{\subparagraphnumdepth} +% \changes{v3.12}{2013/12/16}{new read only command} +% Diese dürfen nur gelesen, sollten aber nie umdefiniert werden und geben die +% Nummerierungsebene der Gliederungsanweisungen an (nicht zu verwechseln mit +% der Verzeichnisebene der Gliederungsanweisungen): +% \begin{macrocode} +\newcommand*{\partnumdepth}{% +%<article> \z@ +%<report|book> \m@ne +} +%<report|book>\newcommand*{\chapternumdepth}{\z@} +\newcommand*{\sectionnumdepth}{\@ne} +\newcommand*{\subsectionnumdepth}{\tw@} +\newcommand*{\subsubsectionnumdepth}{\thr@@} +\newcommand*{\paragraphnumdepth}{4} +\newcommand*{\subparagraphnumdepth}{5} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifnumbered} +% \changes{v3.12}{2013/12/16}{new command} +% \begin{macro}{\ifunnumbered} +% \changes{v3.12}{2013/12/16}{new command} +% Test, ob eine Gliederungsebene (\texttt{\#1}) nummeriert wird. Falls das der +% Fall ist, wird das zweite Argument verwendet, sonst das dritte. Bei +% \cs{ifunnumbered} ist die Logik genau vertauscht. +% \begin{macrocode} +\newcommand*{\ifnumbered}[1]{% + \scr@ifundefinedorrelax{#1numdepth}{% + \@secondoftwo + }{% + \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi + }% +} +\newcommand*{\ifunnumbered}[1]{% + \scr@ifundefinedorrelax{#1numdepth}{% + \@firstoftwo + }{% + \expandafter\ifnum \@nameuse{#1numdepth}>\c@secnumdepth + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{Counter}{part} +% \begin{macro}{\thepart} +% \begin{macro}{\partformat} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \changes{v2.5f}{1999/02/14}{überflüssiges Leerzeichen am Ende +% entfernt} +% \changes{v2.7h}{2001/04/22}{verlorenen Backslash in \cs{autodot} +% wieder eingefügt} +% \begin{Counter}{chapter} +% \begin{macro}{\thechapter} +% \begin{macro}{\chapterformat} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \changes{v2.7}{2000/01/03}{einfaches Leerzeichen durch +% \cs{enskip} ersetzt} +% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt} +% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt +% \cs{chapappifprefix}} +% \changes{v2.96a}{2006/12/02}{\cs{mbox} eingefügt, um \cs{caps} zu +% ermöglichen} +% \begin{macro}{\chaptermarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer +% erhöht} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \changes{v2.8}{2001/06/15}{\cs{chapappifprefix} eingefügt} +% \changes{v2.8o}{2001/09/19}{\cs{chapappifchapterprefix} statt +% \cs{chapappifprefix}} +% \changes{v3.03a}{2009/04/03}{Tilde durch \cs{nobreakspace} ersetzt, um die +% Kompatibilität mit Spanisch zu verbessern} +% \begin{Counter}{section} +% \begin{macro}{\thesection} +% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} +% \changes{v3.03b}{2009/06/09}{\cs{relax} im Kompatibilitätstest durch ein +% Leerzeichen ersetzt, obwohl das die Wartbarkeit verschlechtert, aber +% \textsf{hyperref} hat mit dem \cs{relax} ein nicht dokumentieres Problem} +% \begin{macro}{\sectionmarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer +% erhöht} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \begin{Counter}{subsection} +% \begin{macro}{\thesubsection} +% \begin{macro}{\subsectionmarkformat} +% \changes{v2.3a}{1995/07/08}{Leerraum nach der Kapitelnummer +% erhöht} +% \changes{v2.3c}{1995/08/06}{Duden Regel 6} +% \begin{Counter}{subsubsection} +% \begin{macro}{\thesubsubsection} +% \begin{Counter}{paragraph} +% \begin{macro}{\theparagraph} +% \begin{Counter}{subparagraph} +% \begin{macro}{\thesubparagraph} +% Jede Gliederungsebene benötigt einen Zähler für die +% Gliederungsnummer und eine Darstellung des Zählers +% (\cs{the\dots}). Desweiteren wird eine Formatierung des Zählers in +% den Gliederungsüberschriften (\texttt{\bslash\dots format}) und eine +% Formatierung des Zählers in der Kopfzeile +% (\texttt{\bslash\dots markformat}) benötigt. +% \begin{macrocode} +\newcounter{part} +\renewcommand*{\thepart}{\@Roman\c@part} +\newcommand*{\partformat}{\partname~\thepart\autodot} +%<*book|report> +\newcounter{chapter} +\renewcommand*{\thechapter}{\@arabic\c@chapter} +\newcommand*{\chapterformat}{% + \mbox{\chapappifchapterprefix{\nobreakspace}\thechapter\autodot\enskip}% +} +\newcommand*\chaptermarkformat{\chapappifchapterprefix{\ }% + \thechapter\autodot\enskip} +\newcounter{section}[chapter] +\renewcommand*\thesection{% +%<*book> + \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d} % the space before this + % comment should be \relax but hyperref has a + % not documented problem with \relax + \if@mainmatter\thechapter.\fi + \else +%</book> + \thechapter.% +%<book> \fi + \@arabic\c@section +} +\newcommand*\sectionmarkformat{\thesection\autodot\enskip} +%</book|report> +%<*article> +\newcounter{section} +\renewcommand*{\thesection}{\@arabic\c@section} +\newcommand*\sectionmarkformat{\thesection\autodot\enskip} +%</article> +\newcounter{subsection}[section] +\renewcommand*{\thesubsection}{\thesection.\@arabic\c@subsection} +%<*article> +\newcommand*\subsectionmarkformat{\thesubsection\autodot\enskip} +%</article> +\newcounter{subsubsection}[subsection] +\renewcommand*{\thesubsubsection}{% + \thesubsection.\@arabic\c@subsubsection +} +\newcounter{paragraph}[subsubsection] +\renewcommand*{\theparagraph}{\thesubsubsection.\@arabic\c@paragraph} +\newcounter{subparagraph}[paragraph] +\renewcommand*{\thesubparagraph}{% + \theparagraph.\@arabic\c@subparagraph +} +% \end{macrocode} +% \begin{macro}{\@seccntformat} +% \changes{v2.3c}{1995/08/06}{CJK erweitert} +% \changes{v2.9p}{2004/01/07}{\cs{protect} eingefügt} +% \changes{v2.97}{2007/01/24}{Workaround für das blöde \cs{protect}} +% \begin{macro}{\othersectionlevelsformat} +% \changes{v2.7}{2000/01/03}{neu} +% \changes{v2.7}{2000/01/03}{\cs{quad} durch \cs{enskip} ersetzt} +% \changes{v2.7i}{2001/05/17}{\cs{let} durch \cs{def} ersetzt} +% \changes{v2.97}{2007/01/24}{statt einem Argument jetzt drei} +% Bei den Ebenen ab \cs{section} erfolgt die Formatierung der +% Gliederungnummer in der Überschrift mit einer gemeinsamen +% Anweisung. Die interne Anweisung \cs{@seccntformat} wird dabei von +% \LaTeX-Kern verwendet und muss umdefiniert werden, um eine +% entsprechende Anweisung auf Anwenderebene verfügbar zu haben. +% Ab Version 2.9p wurde in \cs{@seccntformat} ein \cs{protect} vor +% \cs{othersectionlevelsformat} eingefügt. Damit wurde es für den Benutzer +% deutlich einfacher, die Anweisung \cs{othersectionlevelsformat} +% umzudefinieren. Dafür war dadurch aber \cs{the\dots} nicht mehr +% expandiert. Das wiederum gab Probleme, wenn \cs{@seccntformat} für den +% \cs{mark}-Mechanismus genutzt wurde. Deshalb hat +% \cs{othersectionlevelsformat} ab Version 2.97 drei Argumente statt nur +% eines. Das zweite Argument sollte vom Anwender ignoriert werden, es +% existiert nur, um die Kompatibitlität Umdefinitionen zu erhalten, bei denen +% \cs{othersectionlevelsformat} nur ein Argument besitzt. Das dritte Argument +% ist die \cs{the\dots}-Anweisung. Das zweite Argument funktioniert so, das es +% das dritte Argument frisst, falls \cs{othersectionlevelsformat} nur ein +% Argument liest. +% \begin{macrocode} +\newcommand*{\othersectionlevelsformat}[3]{#3\autodot\enskip} +\renewcommand*{\@seccntformat}[1]{% + \protect\othersectionlevelsformat{#1}{% + \expandafter\aftergroup\noexpand\@gobble}{\csname the#1\endcsname}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{Counter} +% \end{macro} +% \end{macro} +% \end{Counter} +% +% +% \changes{v2.8e}{2001/07/10}{\cs{@thepart} entfernt} +% \changes{v2.8e}{2001/07/10}{\cs{@maybeasf} entfernt} +% +% +% \subsection{Namen für die Gliederung} +% +% \begin{macro}{\partname} +% \begin{macro}{\chaptername} +% \begin{macro}{\abstractname} +% Diese Makros enthalten die Namen der Gliederungsebenen \cs{part} und +% \cs{chapter}, sowie den Namen der Zusammenfassung: +% \begin{macrocode} +\newcommand*\partname{Part} +%<book|report>\newcommand*\chaptername{Chapter} +%<report|article>\newcommand*\abstractname{Abstract} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\appendixname} +% Der Name des Anhangs. +% \begin{macrocode} +\newcommand*\appendixname{Appendix} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%<*book|report> +% \fi +% \begin{macro}{\chapappifprefix} +% \changes{v2.8}{2001/06/15}{neu} +% \changes{v2.8o}{2001/09/19}{obsolet} +% \begin{macro}{\chapappifchapterprefix} +% \changes{v2.8o}{2001/09/19}{neu} +% \changes{v2.8o}{2001/09/19}{Argument ist nicht optional} +% \begin{macro}{\chapapp} +% \changes{v2.8}{2001/06/15}{neu} +% Das in \cs{chapterformat} verwendete Makro +% \cs{chapappifchapterprefix} setzt abhängig von \cs{if@chapterprefix} +% noch das Makro \cs{chapapp} gefolgt vom obliatorischen Argument. +% \cs{chapapp} macht \cs{@chapapp} auf Anwenderebene verfügbar. Der +% Vorteil des neuen \cs{chapappifchapterprefix} gegenüber dem alten +% \cs{chapappifprefix} ist, dass nun beim Umdefinieren von +% \cs{chapterformat} und \cs{chaptermarkformat} wieder +% \cs{renewcommand} verwendet werden kann und beim Umschalten in den +% Anhang die Kopfzeile korrekt ist, weil das Makro nun nicht mehr +% geschützt ist, sondern direkt expandiert. +% \begin{macrocode} +\newcommand*{\chapappifprefix}[1][]{% + \ClassWarning{\KOMAClassName}{% + Please don't use obsolete command + \string\chapappifprefix.\MessageBreak + The new command \string\chapappifchapterprefix\space has + an\MessageBreak + obligatory instead of an optional argument. Use that\MessageBreak + new command% + }% + \if@chapterprefix\chapapp#1\fi +} +\newcommand*{\chapappifchapterprefix}[1]{% + \if@chapterprefix\chapapp#1\fi +} +\newcommand*{\chapapp}{\@chapapp} +% \end{macrocode} +% \begin{macro}{\@chapapp} +% Dieses Makro enthält den Kapitelname (\cs{chaptername}), der sich im +% Anhang üblicherweise ändert (\cs{appendixname}). +% \begin{macrocode} +\newcommand*\@chapapp{\chaptername} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +%</book|report> +% \fi +% +% \subsection{Die Gliederungsbefehle} +% +% \changes{v2.3h}{1996/01/20}{Größenbefehle in den Überschriften +% variabilisiert} +% +% \begin{macro}{\part} +% \changes{v2.1c}{1995/01/17}{Zeichenkette "`markboth"' durch +% Befehl \cs{markboth} ersetzt} +% \changes{v2.2c}{1995/05/25}{Part-Ausgabe auf CJK umgestellt} +% \changes{v2.3c}{1995/08/06}{alternative Numerierung bei römischer +% Part-Numerierung} +% \changes{v2.3d}{1995/08/19}{alternative Numerierung korrigiert} +% \changes{v2.3g}{1996/01/14}{\cs{hbox} durch \cs{null} ersetzt} +% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt +% \texttt{plain}} +% \changes{v2.8p}{2001/09/27}{Präambel über der Überschrift +% hinzugefügt} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} +% behebt einen Bug im color Paket} +% \begin{macro}{\@part} +% \changes{v2.4b}{1996/03/29}{\cs{size@partnumer} durch +% \cs{size@partnumber} ersetzt} +% \changes{v2.4n}{1997/05/28}{für \textsf{scrartcl} \cs{markboth} +% zum Löschen der Kolumnentitel durch \cs{sectionmark} ersetzt} +% \changes{v2.5e}{1998/07/17}{\cs{numberline} verwendet, damit die +% reservierte Part-Nummern-Breite in \cs{l@part} auch wirklich +% verwendet wird} +% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@part} und \cs{size@partnumber} aufgerufen} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.95}{2002/08/13}{\cs{centering} und \cs{@parskipfalse}% +% \cs{@parskip@indent} vertauscht} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und } +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addparttocentry}} +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle} +% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird +% stattdessen \cs{@mkboth}{}{} aufgerufen.} +% \begin{macro}{\@spart} +% \changes{v2.4n}{1997/05/28}{in der Sternvariante \cs{chaptermark} +% bzw. \cs{sectionmark} eingefügt, um die Kolumnentitel zu +% löschen} +% \changes{v2.6a}{2000/01/20}{zum Löschen der Kolumnentitel wird +% nun \cs{@mkboth} verwendet} +% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}} +% \changes{v2.95}{2002/08/13}{\cs{centering} und +% \cs{@parskipfalse}\cs{@parskip@indent} vertauscht} +% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent} +% ersetzt} +% \begin{macro}{\@endpart} +% \changes{v2.3g}{1996/01/14}{\cs{@endpart} wird für +% \textsf{scrartcl} nicht mehr definiert} +% \changes{v2.4e}{1996/07/02}{Option \texttt{openany} beachten} +% \changes{v2.6c}{2000/06/10}{\cs{@endpart} fügt nur noch in +% beidseitigen Dokumenten bei Verwendung von openright eine +% Leerseite ein} +% \changes{v2.8p}{2001/09/27}{\cs{vbox} eingefügt} +% \changes{v2.8p}{2001/09/27}{\cs{use@preamble} ersetzt +% \cs{@part@preamble}} +% \changes{v3.02}{2009/01/01}{Verwendung des neuen \cs{partheademptypage}} +% Der Gliederungsfehl \cs{part} wird wie in den Standardklassen mit +% Hilfe mehrere Hilfsmakros definiert. Wesentliche Unterschiede zu den +% Standardklassen existieren nicht, jedoch sind Schriftgröße, +% Schriftart u.\,ä. flexibler gehalten. Außerdem gibt es die +% Möglichkeit von Präambeln. \emph{Achtung: Die Präambel vor der +% \cs{part}-Überschrift kann ohne Warnung über den oberen Rand +% hinaus reichen!} +% \begin{macro}{\partheadstartvskip} +% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} +% \begin{macro}{\partheadmidvskip} +% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} +% \begin{macro}{\partheadendvskip} +% \changes{v2.95a}{2006/07/10}{neue Konfiguratonsmöglichkeit} +% \begin{macro}{\parheademptypage} +% \changes{v3.02}{2009/01/01}{neue Konfigurationsmöglichkeit} +% Diese vier Makros werden verwendet, um den Abstand über in und unter der +% Überschrift eines Teils und die leere Rückseite zu definieren. Prinzipiell +% kann damit auch der Umbruch zwischen Nummer und Text entfernt werden. +% \begin{macrocode} +\newcommand*{\partheadstartvskip}{% +%<article> \addvspace{4ex}% +%<report|book> \null\vfil +} +\newcommand*{\partheadmidvskip}{% + \par\nobreak +%<book|report> \vskip 20\p@ +} +\newcommand*{\partheadendvskip}{% +%<article> \vskip 3ex +%<report|book> \vfil\newpage +} +%<*report|book> +\newcommand*{\partheademptypage}{% + \if@twoside\if@openright + \null% + \thispagestyle{empty}% + \newpage + \fi\fi +} +%</report|book> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macrocode} +%<*article> +\newcommand\part{\par + \partheadstartvskip% + \@afterindentfalse + \secdef\@part\@spart +} +%</article> +%<*report|book> +\newcommand\part{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\partpagestyle}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \partheadstartvskip + \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% + \vskip-\baselineskip\nobreak% + \secdef\@part\@spart +} +%</report|book> +\newcommand*{\@part}{} +\def\@part[#1]#2{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi + \ifnumbered{part}{% + \refstepcounter{part}% + \@maybeautodot\thepart% + \ifx\scr@ds@tocentry\@empty\else + \addparttocentry{\thepart}{\scr@ds@tocentry}% + \fi + }{% + \ifx\scr@ds@tocentry\@empty\else + \addparttocentry{}{\scr@ds@tocentry}% + \fi + }% + \begingroup + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative + \raggedpart + \interlinepenalty \@M + \normalfont\sectfont\nobreak + \ifnumbered{part}{% + \size@partnumber{\partformat}% + \partheadmidvskip + }{}% + \size@part{#2}\strut + \ifx\partmark\@gobble + \@mkboth{}{}\par + \else + \expandafter\partmark\expandafter{\scr@ds@head}\par + \fi + \endgroup +%<*article> + \nobreak + \partheadendvskip + \@afterheading +%</article> +%<book|report> \@endpart +} +\newcommand*{\@spart}[1]{% + \begingroup + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative + \raggedpart + \interlinepenalty \@M + \normalfont + \sectfont\nobreak\size@part{#1}\strut\@mkboth{}{}\par + \endgroup +%<*article> + \nobreak + \partheadendvskip + \@afterheading +%</article> +%<book|report> \@endpart +} +%<*book|report> +\newcommand*{\@endpart}{\vbox to\z@{\use@preamble{part@u}\vss}% + \partheadendvskip + \partheademptypage + \if@tempswa + \twocolumn + \fi +} +%</book|report> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\addparttocentry} +% \changes{v3.08}{2010/11/01}{Neu} +% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{part} +% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das +% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht +% nummerierten Teilen leer. Das zweite Argument ist der Überschriftstext für +% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach +% umdefiniert werden. Verwendet wird hier die Standardanweisung für +% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist: +% \begin{macrocode} +\newcommand*{\addparttocentry}[2]{% + \addtocentrydefault{part}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\addpart} +% \changes{v2.8c}{2001/06/29}{neu} +% \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt +% \texttt{plain}} +% \changes{v2.95a}{2006/07/10}{support of preamble added} +% \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added} +% \begin{macro}{\@addpart} +% \changes{v2.8c}{2001/06/29}{neu (intern)} +% \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben} +% \changes{v2.95}{2004/07/20}{kann Kolumnentitel erzeugen} +% \changes{v3.00}{2008/07/01}{Notlösung für \textsf{hyperref} eingefügt} +% \changes{v3.08}{2010/11/02}{Verwendung von \cs{addparttocentry}} +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle} +% \changes{v3.10}{2011/08/30}{Wenn \cs{partmark} \cs{@gobble} ist, wird +% \cs{@mkboth}{}{} aufgerufen.} +% \begin{macro}{\@saddpart} +% \changes{v2.8c}{2001/06/29}{neu (intern)} +% \begin{macrocode} +\newcommand\addpart{% +%<*article> + \par + \partheadstartvskip + \@afterindentfalse +%</article> +%<*report|book> + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\partpagestyle}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \partheadstartvskip + \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% + \vskip-\baselineskip\nobreak% +%</report|book> + \secdef\@addpart\@saddpart +} +\newcommand*{\@addpart}{} +\def\@addpart[#1]#2{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi +% \end{macrocode} +% Notlösung, damit \textsf{hyperref} halbwegs damit klar kommt. Das ist aber +% weit davon entfernt eine echte Lösung zu bringen. +% \changes{v3.10b}{2012/04/24}{missing \cs{fi} added} +% \begin{macrocode} + \csname phantomsection\endcsname + \ifx\scr@ds@tocentry\@empty\else + \expandafter\addparttocentry\expandafter{\expandafter}\expandafter{% + \scr@ds@tocentry}% + \fi + \@spart{#2}% + \ifx\partmark\@gobble + \@mkboth{}{}% + \else + \expandafter\@mkboth\expandafter{% + \expandafter\MakeMarkcase\expandafter{\scr@ds@head}}{}% + \fi +} +\newcommand*{\@saddpart}{\@spart} +% \end{macrocode} +% \begin{macro}{\partmark} +% \changes{v2.9r}{2004/07/20}{neu (für \textsf{scrpage2})} +% \begin{macrocode} +\newcommand*{\partmark}{} +\let\partmark\@gobble +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \iffalse +%<*report|book> +% \fi +% \begin{macro}{\chapter} +% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt +% \texttt{plain}} +% \begin{macro}{\@chapter} +% \changes{v2.8e}{2001/07/10}{\cs{@maybeautodot} wird aufgerufen}%^^A +% \changes{v2.8g}{2001/07/18}{per \cs{float@addtolists} wird nun +% auch ein vertikaler Abstand in Listen des \texttt{float}-Pakets +% eingebaut}%^^A +% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere +% float-Verzeichnisse mit hyperref}%^^A +% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}%^^A +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle}%^^A +% \begin{macro}{\@makechapterhead} +% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit +% einer Präambel versehen werden} +% \changes{v2.8p}{2001/09/25}{es gibt verschiedene Arten von +% Präambeln} +% \begin{macro}{\@@makechapterhead} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \changes{v2.8q}{2002/04/18}{\cs{raggedsection} wird bei Option +% \texttt{chapterprefix} auch auf den Präfix angewendet} +% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt} +% Der Gliederungsfehl \cs{chapter}, der nur in den Klassen +% \textsf{scrbook} und \textsf{scrreprt} vorhanden ist, wird wie in +% den Standardklassen mit Hilfe mehrere Hilfsmakros definiert. +% \begin{macro}{\if@at@twocolumn} +% \changes{v2.7b}{2001/01/05}{neu (intern)} +% \begin{macro}{\scr@topnewpage} +% \changes{v2.7b}{2001/01/05}{neu (intern)} +% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} +% \begin{macro}{\@topnewpage} +% \changes{v2.7b}{2001/01/05}{neu (\LaTeX{} intern)} +% \changes{v2.7g}{2001/04/17}{vergessenes \cs{long} ergänzt} +% \changes{v3.01}{2008/11/13}{Verwendung von +% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})} +% Interessant ist dabei die Erweiterung, daß jedes Kapitel mit einer +% Präambel versehen werden kann. Diese wird im zweispaltigen Satz wie +% die Überschrift selbst einspaltig gesetzt. Intern wird dies für +% die Preambel des Index und der Bibliography verwendet. Dabei +% entsteht aber wiederum das Problem, dass der Indexkopf innerhalb von +% \cs{twocolumn} ausgegeben wird andererseits aber innerhalb von +% \cs{chapter} das Makro \cs{@topnewpage} verwendet wird. Damit würde +% dann also \cs{@topnewpage} innerhalb von \cs{@topnewpage} +% aufgerufen. Das ist jedoch nicht erlaubt. Als muss der Aufruf von +% \cs{@topnewpage} in \cs{@chapter} und \cs{@schapter} verhindert +% werden, wenn wir uns bereits in \cs{@topnewpage} befinden. Eine +% Möglichkeit dafür wäre, einen Schalter in den Index-Kopf +% einzubauen. Ich wähle hingegen die Methode, \cs{@topnewpage} +% entsprechend umzudefinieren. Damit kann dann auch der Anwender +% \cs{@chapter} innerhalb des optionalen Arguments von \cs{twocolumn} +% verwenden. Ein Schalter wird allerdings trotzdem gebraucht. +% \begin{macrocode} +\newif\if@at@twocolumn +\newcommand*\scr@topnewpage{} +\let\scr@topnewpage\@topnewpage +\long\def\@topnewpage[#1]{% + \@at@twocolumntrue\scr@topnewpage[{#1}]\@at@twocolumnfalse +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\use@chapter@o@preamble} +% Das Makro wird benötigt, weil das Setzen der oberen Präambel etwas +% mehr Aufwand bedeutet. Die Anweisung spart Platz, da sie zweimal +% verwendet wird. +% \begin{macrocode} +\newcommand*{\use@chapter@o@preamble}{% + {\settoheight{\@tempdima}{\vbox{\chapterheadstartvskip}}% + \settodepth{\@tempdimb}{\vbox{\chapterheadstartvskip}}% + \addtolength{\@tempdima}{\@tempdimb}% + \setbox0\vbox{\use@preamble{chapter@o}% + \vskip-\parskip}% + \setlength{\@tempdimb}{\ht0}% + \addtolength{\@tempdimb}{\dp0}% + \vbox to \z@{% + \vbox to \@tempdima{\vfill\box0}% + \vskip-\@tempdima% + }% + \ifdim \@tempdimb>\@tempdima% + \addtolength{\@tempdimb}{-\@tempdima}% + \ClassWarning{\KOMAClassName}{% + preamble before chapter is \the\@tempdimb\space too + high.\MessageBreak + To avoid the overfull \string\vbox\space you may + redefine\MessageBreak + \string\chapterheadstartvskip\space at the preamble of + your\MessageBreak + document. You may also change + \string\setchapterpreamble\MessageBreak + before the command, which generates the message + about\MessageBreak + an overfull \string\vbox + }% + \fi% + } +} +% \end{macrocode} +% \end{macro} +% Zurück zur Kapiteldefinition: +% \begin{macrocode} +\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\chapterpagestyle}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter +} +% \end{macrocode} +% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features +% \texttt{chapteratlist} in die Datei \texttt{scrkliof.dtx} verschoben} +% Die Variante ohne Stern: +% \begin{macrocode} +\newcommand*{\@chapter}{} +\def\@chapter[#1]#2{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi + \ifnumbered{chapter}{% +%<book> \if@mainmatter + \refstepcounter{chapter}% + \@maybeautodot\thechapter + \typeout{\@chapapp\space\thechapter.}% + \ifx\scr@ds@tocentry\@empty\else + \addchaptertocentry{\thechapter}{\scr@ds@tocentry}% + \fi +%<*book> + \else + \ifx\scr@ds@tocentry\@empty\else + \addchaptertocentry{}{\scr@ds@tocentry}% + \fi + \fi +%</book> + }{% + \ifx\scr@ds@tocentry\@empty\else + \addchaptertocentry{}{\scr@ds@tocentry}% + \fi + }% + \expandafter\chaptermark\expandafter{\scr@ds@head}% + \ifdim \@chapterlistsgap>\z@ + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% + }{}% + }% + \@ifundefined{float@addtolists}{}{% + \scr@float@addtolists@warning + \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% + }% + \fi + \if@twocolumn + \if@at@twocolumn + \@makechapterhead{#2}% + \else + \@topnewpage[\@makechapterhead{#2}]% + \fi + \else + \@makechapterhead{#2}% + \@afterheading + \fi +} +\newcommand*{\@makechapterhead}[1]{% + \use@chapter@o@preamble + \@@makechapterhead{#1}% + \use@preamble{chapter@u}\nobreak +} +% \end{macrocode} +% \changes{v2.96a}{2006/12/02}{Abstand nach der Präfixzeile nur, wenn eines +% Präfixzeile ausgegeben wurde} +% \changes{v2.97b}{2007/03/09}{\cs{endgraf} korrigiert} +% \begin{macrocode} +\newcommand*{\@@makechapterhead}[1]{\chapterheadstartvskip + {% + \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}% + \normalfont\sectfont\nobreak\size@chapter{}% + \if@chapterprefix + \let\@tempa\raggedsection + \else + \let\@tempa\@hangfrom + \fi + \@tempa{% + \ifnumbered{chapter}{% +%<book> \if@mainmatter + \if@chapterprefix + \expandafter\size@chapterprefix + \else + \expandafter\size@chapter + \fi + {\chapterformat}% + \if@chapterprefix + \size@chapterprefix{}\endgraf\nobreak\vskip.5\baselineskip + \fi +%<book> \fi + }{}% + }% + {\raggedsection \interlinepenalty \@M \size@chapter{#1}\par}}% + \nobreak\chapterheadendvskip +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\addchaptertocentry} +% \changes{v3.08}{2010/11/01}{Neu}%^^A +% \changes{v3.12}{2013/09/24}{Behandlung von \cs{if@chaptertolists} hier}%^^A +% \changes{v3.12}{2013/09/24}{Verwendung von \cs{addxcontentsline}}%^^A +% Seit Version~3.08 wird der Eintrag nicht direkt innerhalb von \cs{chapter} +% per \cs{addcontentsline} erzeugt, sondern indirekt über diese Anweisung. Das +% erste Argument ist dabei die (formatierte) Nummer bzw. bei nicht +% nummerierten Kapiteln leer. Das zweite Argument ist der Überschriftstext für +% das Verzeichnis. Durch diesen indirekten Weg, kann die Anweisung einfach +% umdefiniert werden. Verwendet wird hier die Standardanweisung für +% Inhaltsverzeichniseinträge, die in \texttt{scrkliof.dtx} definiert ist: +% \begin{macrocode} +\newcommand*{\addchaptertocentry}[2]{% + \addtocentrydefault{chapter}{#1}{#2}% + \if@chaptertolists + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addxcontentsline{\@currext}{chapteratlist}[{#1}]{#2}% + }{}% + }% + \@ifundefined{float@addtolists}{}{\scr@float@addtolists@warning}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@schapter} +% \begin{macro}{\@makeschapterhead} +% \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit +% einer Präambel versehen werden} +% \begin{macro}{\@@makeschapterhead} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \changes{v2.9p}{2003/06/28}{\cs{parfillskip} auf \cs{fill} gesetzt} +% \changes{v2.9q}{2004/03/24}{Klammerung an \cs{@@makechapterhead} +% angepasst} +% Die Sternvariante, die um Einiges einfacher ausfällt. +% \begin{macrocode} +\newcommand*{\@schapter}[1]{% + \if@twocolumn + \if@at@twocolumn + \@makeschapterhead{#1}% + \else + \@topnewpage[\@makeschapterhead{#1}]% + \fi + \else + \@makeschapterhead{#1}% + \@afterheading + \fi +} +\newcommand*{\@@makeschapterhead}[1]{% + \chapterheadstartvskip% + {\normalfont\sectfont\nobreak\size@chapter{}% + \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}% + \raggedsection \interlinepenalty \@M \size@chapter{#1}\par}% + \nobreak\chapterheadendvskip% +} +\newcommand*{\@makeschapterhead}[1]{% + \use@chapter@o@preamble + \@@makeschapterhead{#1}% + \use@preamble{chapter@u}\nobreak +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\addchap} +% \changes{v2.0e}{1994/08/10}{\cs{sectdef} durch \cs{secdef} +% ersetzt} +% \changes{v2.0e}{1994/08/10}{\cs{addcontensline} durch +% \cs{addcontentsline} ersetzt} +% \changes{v2.0e}{1994/08/10}{\cs{@makechapterhead} durch +% \cs{@makeschapterhead} ersetzt} +% \changes{v2.0e}{1994/08/10}{\cs{afterheadings} durch +% \cs{@afterheading} ersetzt} +% \changes{v2.1a}{1994/10/29}{Argument von \cs{chaptermark} +% entfernt bei \textsf{scrbook}} +% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch +% \cs{sectionmark} ersetzt} +% \changes{v2.2b}{1995/03/20}{\cs{chaptermark} durch \cs{@mkboth} +% ersetzt} +% \changes{v2.8d}{2001/07/05}{\cs{chapterpagestyle} statt +% \texttt{plain}} +% \changes{v3.00}{2008/07/01}{jetzt auch Kapiteleinträge in andere +% float-Verzeichnisse mit hyperref} +% \changes{v3.01}{2008/11/13}{Verwendung von +% \cs{scr@float@addtolists@warning} (aus \texttt{scrkliof.dtx})} +% \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}} +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle} +% \KOMAScript{} bietet in \textsf{scrbook} und \textsf{scrreprt} den +% zusätzlichen Gliederungsbefehl \cs{addchap}. Es handelt sich dabei +% um einen mit \cs{chapter*} vergleichbaren Befehl, bei dem jedoch der +% Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis +% erfolgt (nicht in der Stern-Variante). +% +% Die Definition von \cs{addcap} sah bis zu Version 2.7 so aus: +% \begin{verbatim} +% \newcommand\addchap{\if@openright\cleardoublepage\else\clearpage\fi +% \thispagestyle{plain}% +% \global\@topnum\z@ +% \@afterindentfalse +% \secdef\@addchap\@saddchap} +% \def\@addchap[#1]#2{\typeout{#2} +% \addcontentsline{toc}{chapter}{#1} +% \if@twoside\@mkboth{#1}{}\else\@mkboth{}{#1}\fi +% \addtocontents{lof}{\protect\addvspace{10\p@}}% +% \addtocontents{lot}{\protect\addvspace{10\p@}}% +% \if@twocolumn +% \@topnewpage[\@makeschapterhead{#2}]% +% \else +% \@makeschapterhead{#2}% +% \@afterheading +% \fi} +% \def\@saddchap#1{\@mkboth{}{} +% \if@twocolumn +% \@topnewpage[\@makeschapterhead{#1}]% +% \else +% \@makeschapterhead{#1}% +% \@afterheading +% \fi} +% \end{verbatim}\vspace{-\baselineskip} +% Dies führte jedoch zu Problemen im Zusammenhang mit +% \textsf{hyperref}, da hierbei keine korrekten Links erzeugt +% werden. Mit dem \texttt{hypertex}-Treiber von \textsf{hyperref} +% bis Version 6.71a werden auch in der neuen Implementierung keine +% korrekten Links erzeugt. Dies ist jedoch ein Bug in jenem +% Treiber. Mit neuen Versionen tritt das Problem nicht mehr auf. +% Deshalb wurde der Code wie folgt vereinfacht. Von wesentlicher +% Bedeutung ist dabei der Aufruf von \cs{chapter*}, da in +% \texttt{hpdftex.def} das interne Makro \cs{@schapter} so umdefiniert +% wird, dass ein korrekter Link erzeugt wird. +% \begin{macro}{\@addchap} +% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}} +% \begin{macro}{\@saddchap} +% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addchapmark}} +% \begin{macrocode} +\newcommand\addchap{% + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\chapterpagestyle}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@addchap\@saddchap% +}% +\newcommand*{\@addchap}{}% +\def\@addchap[#1]#2{% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi + \@schapter{#2}% + \ifx\scr@ds@tocentry\@empty\else + \addchaptertocentry{}{\scr@ds@tocentry}% + \fi + \ifnum \@nameuse{scr@v@2.96}<\scr@compatibility\relax + \ifdim \@chapterlistsgap>\z@ + \doforeachtocfile{% + \iftocfeature{\@currext}{chapteratlist}{% + \addtocontents{\@currext}{\protect\addvspace{\@chapterlistsgap}}% + }{}% + }% + \@ifundefined{float@addtolists}{}{% + \scr@float@addtolists@warning + \float@addtolists{\protect\addvspace{\@chapterlistsgap}}% + }% + \fi + \fi + \addchapmark{\scr@ds@head}% +}% +\newcommand*{\@saddchap}[1]{\@schapter{#1}\addchapmark{}}% +% \end{macrocode} +% \iffalse +%<*book> +% \fi +% In \texttt{hyperref} bis Version 6.71a ist ein dicker Bug. In +% verschiedenen \texttt{def}-Dateien wird dort das \emph{interne} +% \KOMAScript-Makro \cs{@addchap} umdefiniert, ohne sicherzustellen, +% dass das Makro auch noch so aussieht, wie man das erwartet hat. Die +% sauberste Lösung wäre sicher gewesen dort \cs{@addchap} nur zu +% ergänzen, so wie man das auch bei \cs{@schapter} gemacht hatte. Ab +% Version 6.71b ist dieser Bug behoben. Damit ich nicht eines Fehlers +% verdächtigt werde, wird ggf. eine entsprechende Meldung ausgegeben. +% \changes{v2.7e}{2001/04/16}{fehlende, schließende Klammer +% ergänzt} +% \changes{v2.7f}{2001/04/17}{fehlendes Klammerpaar ergänzt} +% \changes{v2.8q}{2001/11/17}{\cs{AfterPackage} zur Überprüfung der +% \textsf{hyperref}-Version verwendet} +% \begin{macrocode} +\AfterPackage{hyperref}{% + \@ifpackagelater{hyperref}{2001/02/19}{}{% + \ClassWarningNoLine{\KOMAClassName}{% + You are using an old version of hyperref package!\MessageBreak% + This version has a buggy hack at many drivers\MessageBreak% + causing \string\addchap\space to behave strange.\MessageBreak% + Please update hyperref to at least version + 6.71b}}} +% \end{macrocode} +% \iffalse +%</book> +% \fi +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +%</report|book> +% \fi +% +% \begin{macro}{\addsec} +% \changes{v2.0e}{1994/10/12}{mehrfach \cs{markboth} durch +% \cs{sectionmark} ersetzt} +% \changes{v2.2b}{1995/03/20}{\cs{sectionmark} durch \cs{@mkboth} +% ersetzt} +% \changes{v2.3h}{1995/01/21}{jetzt auch bei \textsf{scrbook} und +% \textsf{scrreprt}} +% \changes{v2.4g}{1996/11/04}{\cs{section*} vorgezogen, damit +% dadurch provozierte Seitenumbrüche im Inhaltsverzeichnis +% berücksichtigt werden} +% \changes{v2.5d}{1998/01/03}{\cs{@mkboth} bedingt durch +% \cs{markright} ersetzt} +% \changes{v2.7a}{2001/01/04}{\cs{addsec} für eine bessere +% Unterstützung von \textsf{hyperref} geändert} +% \begin{macro}{\@addsec} +% \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}} +% \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale +% Argument der Gliederungsbefehle} +% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}} +% \begin{macro}{\@saddsec} +% \changes{v3.12}{2013/02/26}{Verwendung von \cs{addsecmark}} +% \KOMAScript{} bietet in allen drei Hauptklassen den zusätzlichen +% Gliederungsbefehl \cs{addsec}. Es handelt sich dabei um einen mit +% \cs{section*} vergleichbaren Befehl, bei dem jedoch der +% Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis +% erfolgt (nicht in der Stern-Variante). +% \begin{macrocode} +\newcommand*\addsec{\secdef\@addsec\@saddsec} +\newcommand*{\@addsec}{} +\def\@addsec[#1]#2{\section*{#2}% + \ifnum \scr@osectarg=\z@ + \@scr@tempswafalse + \else + \scr@istest#1=\@nil + \fi + \if@scr@tempswa + \setkeys{KOMAarg.section}{tocentry={#2},head={#2},#1}% + \else + \ifcase \scr@osectarg\relax + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#2},head={#1}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#2}}% + \or + \setkeys{KOMAarg.section}{tocentry={#1},head={#1}}% + \fi + \fi + \ifx\scr@ds@tocentry\@empty\else + \addsectiontocentry{}{\scr@ds@tocentry}% + \fi + \addsecmark{\scr@ds@head}% +} +\newcommand*{\@saddsec}[1]{\section*{#1}\addsecmark{}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\addsectiontocentry} +% \changes{v3.10}{2011/08/30}{Neu} +% Entsprechend \cs{addparttocentry} und \cs{addchaptertocentry}. +% \begin{macrocode} +\newcommand*{\addsectiontocentry}[2]{% + \addtocentrydefault{section}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addsubsectiontocentry} +% \changes{v3.10}{2011/08/30}{Neu} +% Entsprechend \cs{addparttocentry} usw. +% \begin{macrocode} +\newcommand*{\addsubsectiontocentry}[2]{% + \addtocentrydefault{subsection}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addparagraphtocentry} +% \changes{v3.10}{2011/08/30}{Neu} +% Entsprechend \cs{addparttocentry} usw. +% \begin{macrocode} +\newcommand*{\addparagraphtocentry}[2]{% + \addtocentrydefault{paragraph}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addsubparagraphtocentry} +% \changes{v3.10}{2011/08/30}{Neu} +% Entsprechend \cs{addparttocentry} usw. +% \begin{macrocode} +\newcommand*{\addsubparagraphtocentry}[2]{% + \addtocentrydefault{subparagraph}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\section} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@section} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} +% behebt einen Bug im color Paket} +% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig +% von Option \texttt{version})} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \begin{macro}{\subsection} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@subsection} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} +% behebt einen Bug im color Paket} +% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig +% von Option \texttt{version})} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \begin{macro}{\subsubsection} +% \changes{v2.3d}{1995/08/19}{wird bei \texttt{scrartcl} nun +% ebenfalls numeriert und ins Inhaltsverzeichnis geschrieben} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@subsubsection} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} +% behebt einen Bug im color Paket} +% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig +% von Option \texttt{version})} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \begin{macro}{\paragraph} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@paragraph} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} +% behebt einen Bug im color Paket} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \begin{macro}{\subparagraph} +% \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor +% \cs{size@subparagraph} aufgerufen} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} +% behebt einen Bug im color Paket} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% Die Standardgliederungsbefehle \cs{section} bis \cs{subparagraph} +% sind mit der im Kernel dafür vorgesehenen Schnittstelle +% definiert. Im Unterschied zu den Standardklassen erfolgt die +% Formatierung jedoch in \cs{raggedsection} und die Ausgabe in der +% Schriftart \cs{sectfont}. Außerdem sind die Größen veränderbar. In +% letzter Konsequenz sollten hier eigentlich auch die Abstände +% variabilisiert werden. Vielleicht in einer späteren Version. +% \begin{macrocode} +\newcommand\section{% + \@startsection{section}{\sectionnumdepth}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi + \raggedsection\normalfont\sectfont\nobreak\size@section}% +} +\newcommand\subsection{% + \@startsection{subsection}{\subsectionnumdepth}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi + \raggedsection\normalfont\sectfont\nobreak\size@subsection + }% +} +\newcommand\subsubsection{% + \@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi + \raggedsection\normalfont\sectfont\nobreak\size@subsubsection + }% +} +\newcommand\paragraph{% + \@startsection{paragraph}{\paragraphnumdepth}{\z@}% + {3.25ex \@plus1ex \@minus.2ex}% + {-1em}% + {\raggedsection\normalfont\sectfont\nobreak\size@paragraph}% +} +\newcommand\subparagraph{% + \@startsection{subparagraph}{\subparagraphnumdepth}{\parindent}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\raggedsection\normalfont\sectfont\nobreak\size@subparagraph}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\minisec} +% \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} +% behebt einen Bug im color Paket} +% \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende +% behebt einen Bug im color Paket} +% \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig +% von Option \texttt{version})} +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \begin{KOMAfont}{minisec} +% \changes{v2.96a}{2006/12/03}{\texttt{minisec} ist ein eigenes +% Fontelement} +% In \KOMAScript{} gibt es diese zusätzliche Gliederungsebene, die +% immer ohne Nummer und ohne Eintrag ins Inhaltsverzeichnis erfolgt. +% \begin{macrocode} +\newkomafont{minisec}{} +\newcommand\minisec[1]{\@afterindentfalse \vskip 1.5ex + {\parindent \z@ + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \setlength{\parfillskip}{\z@ plus 1fil}\fi + \raggedsection\normalfont\sectfont\nobreak + \usekomafont{minisec}#1\par\nobreak}\nobreak% + \@afterheading +} +% \end{macrocode} +% \end{KOMAfont} +% \end{macro} +% +% +% \subsection{Schrift und Formatierung} +% +% \begin{macro}{\raggedsection} +% \changes{v2.3h}{1996/01/20}{Überschriften werden +% \cs{raggedsection} gesetzt} +% \changes{v2.3h}{1996/01/20}{\cs{raggedsection} ist als +% \cs{raggedright} voreingestellt} +% Dieses Makro gibt an, wie die Überschriften formatiert +% werden. Voreingestellt ist linksbündig. +% \begin{macrocode} +\newcommand*{\raggedsection}{} +\let\raggedsection\raggedright +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\raggedpart} +% \changes{v2.95a}{2006/07/10}{neue Konfigurationsmöglichkeit} +% Die Ausrichtung der Überschrift von \cs{part} kann davon abweichend über +% \cs{raggedpart} konfiguriert werden. Die Voreinstellung ist von der +% Klasse abhängig. +% \begin{macrocode} +\newcommand*{\raggedpart}{} +%<article>\let\raggedpart\raggedsection +%<report|book>\let\raggedpart\centering +% \end{macrocode} +% \end{macro} +% +% \begin{KOMAfont}{partentry} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch +% \texttt{disposition} ersetzt} +% Schrift für den \cs{part}-Eintrag im Inhaltsverzeichnis. +% \begin{macrocode} +\newkomafont{partentry}{\usekomafont{disposition}\large} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{partentrypagenumber} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% Schrift für die Seitenzahl des \cs{part}-Eintrags im Inhaltsverzeichnis +% abweichend von \texttt{partentry}. +% \begin{macrocode} +\newkomafont{partentrypagenumber}{} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{chapterentry} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% Schrift für den \cs{chapter}-Eintrag im Inhaltsverzeichnis. +% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch +% \texttt{disposition} ersetzt} +% \begin{macrocode} +%<*book|report> +\newkomafont{chapterentry}{\usekomafont{disposition}} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{chapterentrypagenumber} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% Schrift für die Seitenzahl des \cs{chapter}-Eintrags im Inhaltsverzeichnis +% abweichend von \texttt{chapterentry}. +% \begin{macrocode} +\newkomafont{chapterentrypagenumber}{} +%</book|report> +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{sectionentry} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% \changes{v3.06}{2010/06/09}{Verwendung von \texttt{sectioning} durch +% \texttt{disposition} ersetzt} +% Schrift für den \cs{section}-Eintrag im Inhaltsverzeichnis. +% \begin{macrocode} +%<*article> +\newkomafont{sectionentry}{\usekomafont{disposition}} +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{KOMAfont}{sectionentrypagenumber} +% \changes{v2.97c}{2007/06/21}{neues Font-Element} +% Schrift für die Seitenzahl des \cs{section}-Eintrags im Inhaltsverzeichnis +% abweichend von \texttt{sectionentry}. +% \begin{macrocode} +\newkomafont{sectionentrypagenumber}{} +%</article> +% \end{macrocode} +% \end{KOMAfont} +% +% \begin{macro}{\scr@fnt@disposition} +% \changes{v2.95b}{2006/07/30}{neues Element \texttt{disposition}} +% \begin{macro}{\scr@fnt@sectioning} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{sectioning}} +% \changes{v2.95b}{2006/07/30}{\texttt{sectioning} ist nun ein Alias für +% \texttt{disposition}} +% \begin{macro}{\scr@fnt@part} +% \changes{v2.8p}{2001/09/23}{neues Element \texttt{part}} +% \begin{macro}{\scr@fnt@partnumber} +% \changes{v2.8p}{2001/09/23}{neues Element \texttt{partnumber}} +% \begin{macro}{\scr@fnt@chapter} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{chapter}} +% \begin{macro}{\scr@fnt@chapterprefix} +% \changes{v2.96a}{2006/12/02}{neues Element \texttt{chapterprefix}} +% \begin{macro}{\scr@fnt@section} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{section}} +% \begin{macro}{\scr@fnt@subsection} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsection}} +% \begin{macro}{\scr@fnt@subsubsection} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subsubsection}} +% \begin{macro}{\scr@fnt@paragraph} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{paragraph}} +% \begin{macro}{\scr@fnt@subparagraph} +% \changes{v2.8o}{2001/09/14}{neues Element \texttt{subparagraph}} +% \begin{KOMAfont}{minisec} +% \changes{v2.8o}{2001/09/14}{neuer Ersatz für das Element +% \texttt{minisec}} +% \changes{v2.96a}{2007/01/08}{Alias für das Element \texttt{minisec} +% entfernt, da es nun ein eigenes Element ist} +% Definition der Elemente der Gliederung, deren Schrift geändert +% werden kann: +% \begin{macrocode} +%</class> +\newcommand*{\scr@fnt@disposition}{\sectfont} +\aliaskomafont{sectioning}{disposition} +%<*class> +\newcommand*{\scr@fnt@part}{\size@part} +\newcommand*{\scr@fnt@partnumber}{\size@partnumber} +%<book|report>\newcommand*{\scr@fnt@chapter}{\size@chapter} +%<book|report>\newcommand*{\scr@fnt@chapterprefix}{\size@chapterprefix} +\newcommand*{\scr@fnt@section}{\size@section} +\newcommand*{\scr@fnt@subsection}{\size@subsection} +\newcommand*{\scr@fnt@subsubsection}{\size@subsubsection} +\newcommand*{\scr@fnt@paragraph}{\size@paragraph} +\newcommand*{\scr@fnt@subparagraph}{\size@subparagraph} +% \end{macrocode} +% \end{KOMAfont} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Definitionen für Präambeln} +% +% \iffalse +%<*report|book> +% \fi +% Bei den \KOMAScript-Klassen \textsf{scrbook} und \textsf{scrreprt} +% können \cs{part} und \cs{chapter} mit Präambeln versehen werden. Es +% wird gleichzeitig eine Präambel über und unter der jeweiligen +% Überschrift unterstützt. +% +% \begin{macro}{\use@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% Dieses Makro dient allgemein zum Setzen einer Präambel (für +% Gliederungsüberschriften), wenn eine solche definiert ist. Als +% Argument wird der Name der Präambel übergeben, an den automatisch +% \texttt{@preamble} angehängt wird. Zum Schluss wird die gespeicherte +% Präambel gelöscht. +% \begin{macrocode} +\newcommand*{\use@preamble}[1]{% + \@ifundefined{#1@preamble}{}{% + \@nameuse{#1@preamble}% + \global\expandafter\let\csname#1@preamble\endcsname=\relax + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\set@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% Das Makro \cs{set@preamble} dient allgemein der Defintion einer +% Präambel (für Gliederungsüberschriften). Als Argument wird der +% Name der Gliederungsebene übergeben. Danach folgt ein optionales +% Argument, das die Position der Präambel angibt. Darauf folgt ein +% weiteres optionales Argument, das die Breite der Präambel +% angibt. Ist nur ein optionales Argument angegeben, so ist es die +% Position. Es folgt ein obligatorisches Argument mit dem Inhalt der +% Präambel. Die Definition der Präambel erfolgt global. +% \begin{macro}{\set@@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \begin{macro}{\set@@@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \begin{macro}{\set@@@@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} +% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt} +% Da mehrere optionale Argumente nach einem obligatorischen Argument +% auszuwerten sind, werden diverse Hilfsmakros benötigt. +% \begin{macrocode} +\newcommand*{\set@preamble}[1]{% +% \end{macrocode} +% Zunächst wird das erste optionale Argument gesucht. +% \begin{macrocode} + \@ifnextchar [%] + {\set@@preamble{#1}}{\set@@@preamble{#1}[][\hsize]}% +} +\newcommand*{\set@@preamble}{} +\def\set@@preamble#1[#2]{% +% \end{macrocode} +% Wenn ein optionales Argument existiert, kann es auch ein zweites +% geben. Wenn nicht, wird mit der Voreinstellung gearbeitet. +% \begin{macrocode} + \@ifnextchar [%] + {\set@@@preamble{#1}[{#2}]}{\set@@@preamble{#1}[{#2}][\hsize]}% +} +\newcommand{\set@@@preamble}{} +\long\def\set@@@preamble#1[#2][#3]#4{% +% \end{macrocode} +% Dies ist das Hauptmakro, das die eigentliche Arbeit macht. Es muss +% \cs{long} definiert werden, da die Präambel auch aus mehreren +% Absätzen bestehen kann. +% +% Zunächst wird das Positionsargument ausgewertet. Dies geschieht mit +% lokalen Hilfsmakros und einer Schleife. Zur Funktion der Schleife +% siehe im dokumentierten \LaTeX-Kern. +% \begin{macrocode} + \begingroup + \def\prmbl@pos{#2}\let\prmbl@hpos\relax\let\prmbl@vpos\relax + \expandafter \@tfor \expandafter \@tempa + \expandafter :\expandafter =\prmbl@pos + \do{% + \if \@tempa l% + \set@preamble@hpos{0}{#2}% + \fi% + \if \@tempa c% + \set@preamble@hpos{1}{#2}% + \fi% + \if \@tempa r% + \set@preamble@hpos{2}{#2}% + \fi% + \if \@tempa u% + \set@preamble@vpos{0}{#2}% + \fi% + \if \@tempa b% + \set@preamble@vpox{0}{#2}% + \fi + \if \@tempa o% + \set@preamble@vpos{1}{#2}% + \fi% + \if \@tempa t% + \set@preamble@vpos{1}{#2}% + \fi + }% +% \end{macrocode} +% Wurde keine horizontale oder vertikale Ausrichtung definiert, so +% wird nun der Standardwert dafür eingesetzt. +% \begin{macrocode} + \@ifundefined{prmbl@hpos}{\def\prmbl@hpos{0}}{}% + \@ifundefined{prmbl@vpos}{\def\prmbl@vpos{0}}{}% +% \end{macrocode} +% Nun sind die Positionen ermittelt und es werden abhängig davon +% entsprechende Päambelmakros definiert. +% \begin{macrocode} + \ifcase\prmbl@hpos +% \end{macrocode} +% Zunächst links unten und oben: +% \begin{macrocode} + \ifcase\prmbl@vpos + \set@@@@preamble{#1@u}{t}{#3}{}{\hfil}{#4}% + \else + \set@@@@preamble{#1@o}{b}{#3}{}{\hfil}{#4}% + \fi + \or +% \end{macrocode} +% Dann zentriert unten und oben: +% \begin{macrocode} + \ifcase\prmbl@vpos + \set@@@@preamble{#1@u}{t}{#3}{\hfil}{\hfil}{#4}% + \else + \set@@@@preamble{#1@o}{b}{#3}{\hfil}{\hfil}{#4}% + \fi + \else +% \end{macrocode} +% Zum Schluss rechts und oben: +% \begin{macrocode} + \ifcase\prmbl@vpos + \set@@@@preamble{#1@u}{t}{#3}{\hfil}{}{#4}% + \else + \set@@@@preamble{#1@o}{b}{#3}{\hfil}{}{#4}% + \fi + \fi + \endgroup +} +% \end{macrocode} +% Es folgt das Makro, mit dem die Definition tatsächlich +% stattfindet. Das erste Argument ist der Name der Präambel, das +% zweite die Positionsoption für die verwendete \cs{parbox}, das +% dritte ist die Breite der \cs{parbox}, dann zwei Argumente mit der +% horizontalen Ausrichtung vor und nach der \cs{parbox} und das +% sechste Agument ist schließlich der Inhalt der \cs{parbox}. +% \begin{macrocode} +\newcommand{\set@@@@preamble}[6]{% + \expandafter\gdef\csname #1@preamble\endcsname{% + \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% + }% +} +% \end{macrocode} +% +% \begin{macro}{\set@preamble@hpos} +% \changes{v2.8q}{2001/09/25}{neu (intern)} +% Eines der Hilfsmakros dient dazu, die horizontale Position der +% Präambel einzustellen, falls dies nicht bereits erfolgt ist. Ist es +% bereits nicht über"-einstimmend erfolgt, wird ein Fehler +% ausgegeben. Dieses Makro ist extrem intern und funktioniert nur im +% Kontext vor \cs{set@preamble}. +% \begin{macrocode} +\newcommand*{\set@preamble@hpos}[2]{% + \@ifundefined{prbml@hpos}{% + \def\prmbl@hpos{#1}% + }{% + \ifnum \prmbl@hpos=0\relax\else% + \ClassError{\KOMAClassName}{% + inconsistent hpos options% + }{% + You've said `#2' as position option. But you have + to\MessageBreak + use only one of `l', `r', or `c' not two of + these.\MessageBreak + If you'll continue only first hpos option will be + used% + }% + \fi + }% +} +% \end{macrocode} +% \end{macro}%\iffalse\set@preamble@hpos\fi +% \begin{macro}{\set@preamble@vpos} +% \changes{v2.8q}{2001/09/25}{neu (intern)} +% Das Hilfsmakro für die vertikale Position funktioniert in gleicher +% Weise. +% \begin{macrocode} +\newcommand*{\set@preamble@vpos}[2]{% + \@ifundefined{prbml@vpos}{% + \def\prmbl@vpos{#1}% + }{% + \ifnum \prmbl@vpos=0\relax\else% + \ClassError{\KOMAClassName}{% + inconsistent vpos options% + }{% + You've said `#2' as position option. But you have + to\MessageBreak + use only one of `t', `o', `b', or `u' not two of + these.\MessageBreak + If you'll continue only first vpos option will be + used% + }% + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\setchapterpreamble} +% \changes{v2.7b}{2001/01/05}{neu} +% \changes{v2.8p}{2001/09/25}{Verwendung von \cs{set@preamble}} +% \begin{macro}{\chapter@u@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% \changes{v2.8p}{2001/09/25}{Ersatz für \cs{chapter@preamble}} +% \begin{macro}{\chapter@o@preamble} +% \changes{v2.8p}{2001/09/25}{neu (intern)} +% Diese Makros werden benötigt, um die Kapitel-Präambel zu setzen +% bzw. zu speichern. +% \begin{macrocode} +\newcommand*{\setchapterpreamble}{\set@preamble{chapter}} +\newcommand*{\chapter@u@preamble}{} +\let\chapter@u@preamble\relax +\newcommand*{\chapter@o@preamble}{} +\let\chapter@o@preamble\relax +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\setpartpreamble} +% \changes{v2.8f}{2001/07/12}{neu} +% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}} +% \begin{macro}{\part@preamble@u} +% \changes{v2.8p}{2001/09/27}{neu (intern)} +% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}} +% \begin{macro}{\part@preamble@o} +% \changes{v2.8p}{2001/09/27}{neu (intern)} +% Analog zu den Kapitel gibt es Befehle für eine Teil-Präambel. +% \begin{macrocode} +\newcommand*{\setpartpreamble}{\set@preamble{part}} +\newcommand*{\part@preamble@u}{} +\let\part@preamble@u\relax +\newcommand*{\part@preamble@o}{} +\let\part@preamble@o\relax +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \iffalse +%</report|book> +% \fi +% +% +% \subsection{Einträge ins Inhaltsverzeichnis} +% +% Die Gliederungsbefehle schreiben auch Einträge ins +% Inhaltsverzeichnis, die dort ebenfalls formatiert werden müssen. +% +% \begin{macro}{\l@part} +% \changes{v2.97c}{2007/06/21}{\cs{sectfont}\cs{large} durch Verwendung von +% Element \texttt{partentry} ersetzt} +% \changes{v2.97c}{2007/06/21}{Element \texttt{partentrypagenumber} wird +% verwendet} +% \changes{v3.05}{2009/11/11}{Da auch \textsf{article} die Ebene -2 +% verwendet, wird das nun für scrartcl übernommen.} +% Der Eintrag für \cs{part}: +% \begin{macrocode} +\newcommand*\l@part[2]{% + \ifnum \c@tocdepth >-2\relax +%<article> \addpenalty{\@secpenalty}% +%<book|report> \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% +% \end{macrocode} +% \changes{v2.5e}{1998/07/17}{geänderte part-Formatierung ragte in +% den linken Rand} +% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} +% \begin{macrocode} + \setlength{\@tempdima}{2em}% + \if@tocleft + \ifx\toc@l@number\@empty\else + \setlength\@tempdima{0\toc@l@number}% + \fi + \fi + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth +% \end{macrocode} +% \changes{v2.5c}{1997/11/25}{Formatierung bei Zeilenumbruch im +% part-Eintrag korrigiert} +% \changes{v2.5e}{1998/07/17}{beinhaltet \cs{sectfont} eine +% Größenangabe, so wird diese überschrieben} +% \begin{macrocode} + \leavevmode + \advance\leftskip\@tempdima + \hskip -\leftskip + \usekomafont{partentry}{#1\nobreak + \usekomafont{partentrypagenumber}{\hfil\nobreak + \hb@xt@\@pnumwidth{\hss#2}}}\par +% \end{macrocode} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{part}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% Aus unerfindlichen Gründen war es bis Version~2.96 erlaubt, dass zwischen +% der \cs{part}-Überschrift und der nachfolgenden Überschrift ein Umbruch +% stattfinden kann. Ab Version~2.96a gilt das nur noch, wenn die nachfolgende +% Überschrift wiederum eine \cs{part}-Überschrift ist. +% \begin{macrocode} + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \endgroup + \penalty20010 + \else +%<*article> + \if@compatibility + \global\@nobreaktrue +% \end{macrocode} +% \changes{v2.3g}{1996/01/14}{fehlendes Kommentarzeichen ergänzt} +% \begin{macrocode} + \everypar{\global\@nobreakfalse\everypar{}}% + \else +%</article> + \penalty\@highpenalty +%<article> \fi + \endgroup + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\l@chapter} +% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im +% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{chapter}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von +% Element \texttt{chapterentry} ersetzt} +% \changes{v2.97c}{2007/06/21}{Element \texttt{chapterentrypagenumber} wird +% verwendet} +% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige +% Einträge zu ermöglichen} +% \iffalse +%<*report|book> +% \fi +% Kapiteleinträge gibt es natürlich nicht bei \textsf{scrartcl}. +% \begin{macrocode} +\newcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \ifnum \lastpenalty<20010 + \addpenalty{-\@highpenalty}% + \fi + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{1.5em}% + \if@tocleft + \ifx\toc@l@number\@empty\else + \setlength\@tempdima{0\toc@l@number}% + \fi + \fi + \begingroup + \raggedchapterentry + \parindent \z@ \advance\rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \interlinepenalty\@M + \leavevmode + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + \usekomafont{chapterentry}{#1\nobreak + \usekomafont{chapterentrypagenumber}{% +% \end{macrocode} +% Und dann könnte man noch folgendes machen: +% \begin{verbatim} +% \if@chapterentrywithdots +% \leaders\hbox{$\m@th +% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep +% mu$}% +% \fi +% \end{verbatim} +% \begin{macrocode} + \hfill\nobreak + \hb@xt@\@pnumwidth{\hss#2}}}\par + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \endgroup + \penalty20009 + \else + \penalty\@highpenalty + \endgroup + \fi + \fi +} +% \end{macrocode} +% \begin{macro}{\raggedchapterentry} +% \changes{v2.97c}{2007/06/21}{neue Anweisung} +% Ausrichtung des Textes der Kapiteleinträge im Inhaltsverzeichnis. +% \begin{macrocode} +\newcommand*{\raggedchapterentry}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@chapteratlist} +% \changes{v2.96a}{2006/12/03}{neues Macro} +% Dieses Makro wird ggf. für die Kapiteleinträge in den Listen der +% Gleitumgebungen verwendet. Zunächst einmal wird hier dasselbe verwendet, wie +% für die Kapiteleinträge ins Inhaltsverzeichnis. +% \begin{macrocode} +\newcommand*{\l@chapteratlist}{\l@chapter} +% \end{macrocode} +% +% \end{macro} +% \iffalse +%</report|book> +% \fi +% \end{macro} +% \begin{macro}{\l@section} +% \changes{v2.9k}{2003/01/02}{Anpassung an Option \texttt{tocleft}} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im +% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{section}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \changes{v2.97c}{2007/06/21}{\cs{sectfont} durch Verwendung von +% Element \texttt{sectionentry} ersetzt} +% \changes{v2.97c}{2007/06/21}{Element \texttt{sectionentrypagenumber} wird +% verwendet} +% \changes{v2.97c}{2007/06/21}{weitgehend umgeschrieben, um linksbündige +% Einträge zu ermöglichen} +% Bei der Artikel-Klasse folgt die Formatierung für +% \cs{section}-Einträge, an Stelle der Einträge für \cs{chapter} +% der Buch- oder der Bericht-Klasse. Bei diesen handelt es sich hier +% stattdessen um eine normale Ebene. +% \begin{macrocode} +%<*article> +\newcommand*\l@section[2]{% + \ifnum \c@tocdepth >\z@ + \ifnum \lastpenalty<20009 + \addpenalty{\@secpenalty}% + \fi + \addvspace{1.0em \@plus\p@}% + \setlength\@tempdima{1.5em}% + \if@tocleft + \ifx\toc@l@number\@empty\else + \setlength\@tempdima{0\toc@l@number}% + \fi + \fi + \begingroup + \raggedsectionentry + \parindent \z@ \advance\rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \interlinepenalty\@M + \leavevmode + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + \usekomafont{sectionentry}{#1\nobreak + \usekomafont{sectionentrypagenumber}{% +% \end{macrocode} +% Und dann könnte man noch folgendes machen: +% \begin{verbatim} +% \if@sectionentrywithdots +% \leaders\hbox{$\m@th +% \mkern \@dotsep mu\hbox{.}\mkern \@dotsep +% mu$}% +% \fi +% \end{verbatim} +% \begin{macrocode} + \hfill\nobreak + \hb@xt@\@pnumwidth{\hss#2}}}\par + \endgroup + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \penalty20008 + \fi + \fi +} +% \end{macrocode} +% \begin{macro}{\raggedsectionentry} +% \changes{v2.97c}{2007/06/21}{neue Anweisung} +% Ausrichtung des Textes der Abschnittseinträge im Inhaltsverzeichnis. +% \begin{macrocode} +\newcommand*{\raggedsectionentry}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</article> +%<*report|book> +\newcommand*\l@section{\bprot@dottedtocline{1}{1.5em}{2.3em}} +%</report|book> +% \end{macrocode} +% \end{macro} +% \begin{macro}{\l@subsection} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsection}-Eintrag im +% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsection}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \begin{macro}{\l@subsubsection} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsubsection}-Eintrag +% im Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subsubsection}-Eintrag +% im Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \begin{macro}{\l@paragraph} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{paragraph}-Eintrag im +% Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{paragraph}-Eintrag im +% Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% \begin{macro}{\l@subparagraph} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subparagraph}-Eintrag +% im Inhaltsverzeichnis und übergeordneten Einträgen verhindern} +% \changes{v2.96b}{2006/11/30}{Umbruch zwischen \cs{subparagraph}-Eintrag +% im Inhaltsverzeichnis und untergeordneten Einträgen verhindern} +% Die übrigen Ebenen werden normal behandelt. +% \begin{macrocode} +%<*article> +\newcommand*\l@subsection{\bprot@dottedtocline{2}{1.5em}{2.3em}} +\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{3.8em}{3.2em}} +\newcommand*\l@paragraph{\bprot@dottedtocline{4}{7.0em}{4.1em}} +\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{10em}{5em}} +%</article> +%<*report|book> +\newcommand*\l@subsection{\bprot@dottedtocline{2}{3.8em}{3.2em}} +\newcommand*\l@subsubsection{\bprot@dottedtocline{3}{7.0em}{4.1em}} +\newcommand*\l@paragraph{\bprot@dottedtocline{4}{10em}{5em}} +\newcommand*\l@subparagraph{\bprot@dottedtocline{5}{12em}{6em}} +%</report|book> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\bprot@dottedtocline} +% \changes{v2.96a}{2006/11/30}{neu (intern)} +% Dieses Makro wird benötigt, um die Ebenen unterhalb von \cs{chapter} +% bzw. \cs{section} im Inhaltsverzeichnis ebenfalls vor unerwünschten +% Umbrüchen zwischen Eintrag und Unterebene zu schützen. +% \begin{macrocode} +\newcommand*{\bprot@dottedtocline}[5]{% + \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax + \ifnum #1>\c@tocdepth \else + \begingroup + \@tempcnta 20010 + \advance \@tempcnta by -#1 + \ifnum \@tempcnta>\lastpenalty + \endgroup + \addpenalty{\@lowpenalty}% + \else + \endgroup + \fi + \@dottedtocline{#1}{#2}{#3}{#4}{#5}% + \@tempcnta 20009 + \advance \@tempcnta by -#1 + \penalty\@tempcnta + \fi + \else + \@dottedtocline{#1}{#2}{#3}{#4}{#5}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%</class> +%</body> +% \fi +% +% \iffalse +%</!letter> +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-sections.dtx' +%%% Local Variables: +%%% mode: doctex +%%% coding: iso-latin-1 +%%% TeX-master: t +%%% End: |