You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2132 lines
100 KiB
2132 lines
100 KiB
% ======================================================================
|
|
% scrbookreportarticle-experts.tex
|
|
% Copyright (c) Markus Kohm, 2001-2019
|
|
%
|
|
% 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.
|
|
% ----------------------------------------------------------------------
|
|
% scrbookreportarticle-experts.tex
|
|
% Copyright (c) Markus Kohm, 2001-2019
|
|
%
|
|
% 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.
|
|
% ======================================================================
|
|
%
|
|
% Chapter about scrbook, scrreprt, and scrartcl of the KOMA-Script guide
|
|
% expert part
|
|
% Maintained by Markus Kohm
|
|
%
|
|
% ----------------------------------------------------------------------
|
|
%
|
|
% Kapitel über scrbook, scrreprt und scrartcl im Experten-Teil der
|
|
% KOMA-Script-Anleitung
|
|
% Verwaltet von Markus Kohm
|
|
%
|
|
% ============================================================================
|
|
|
|
\KOMAProvidesFile{scrbookreportarticle-experts.tex}%
|
|
[$Date: 2019-12-03 09:41:21 +0100 (Tue, 03 Dec 2019) $
|
|
KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl for
|
|
experts)]
|
|
|
|
\chapter[{Zusätzliche Informationen zu den Hauptklassen und
|
|
\Package{scrextend}}]{Zusätzliche
|
|
Informationen zu den Hauptklassen
|
|
\Class{scrbook}, \Class{scrreprt} und
|
|
\Class{scrartcl} sowie dem
|
|
Paket \Package{scrextend}}
|
|
\labelbase{maincls-experts}
|
|
|
|
\BeginIndexGroup%
|
|
\BeginIndex{Class}{scrartcl}%
|
|
\BeginIndex{Class}{scrbook}%
|
|
\BeginIndex{Class}{scrreprt}%
|
|
\BeginIndex{Package}{scrextend}%
|
|
In diesem Kapitel finden Sie zusätzliche Informationen zu den
|
|
\KOMAScript-Klassen \Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} und
|
|
einigen Anweisungen, die auch in \Package{scrextend} vorhanden sind.
|
|
\iffree{Einige Teile des Kapitels sind dabei dem \KOMAScript-Buch
|
|
\cite{book:komascript} vorbehalten. Dies sollte kein Problem sein, denn
|
|
der}{Der} normale Anwender, der die Klassen einfach nur verwenden will, wird
|
|
diese Informationen eher selten benötigen. Ein Teil der Informationen richtet
|
|
sich an Anwender, die ausgefallene Aufgaben lösen oder eigene Klassen
|
|
schreiben wollen, die auf einer \KOMAScript-Klasse basieren. Da sich die
|
|
entsprechenden Erklärungen ausdrücklich nicht an \LaTeX-Anfänger richten, sind
|
|
sie teilweise deutlich kürzer gefasst und setzen ein vertieftes Wissen über
|
|
\LaTeX{} voraus. Anderes existiert nur aus Gründen der Kompatibilität zu den
|
|
Standardklassen\iffree{ oder früheren Versionen von \KOMAScript}{}.\iffree{}{
|
|
Teile, die nur aus Gründen der Kompatibilität zu früheren Versionen von
|
|
\KOMAScript{} existieren, sind in serifenloser Schrift gesetzt und sollten
|
|
nicht mehr verwendet werden.}
|
|
|
|
\LoadNonFree{scrbookreportarticle-experts}{0}
|
|
|
|
\section{Ergänzungen zu Benutzeranweisungen}
|
|
\seclabel{addInfos}
|
|
|
|
\LoadNonFree{scrbookreportarticle-experts}{1}
|
|
|
|
|
|
\section{Zusammenspiel von \KOMAScript{} und anderen Paketen}
|
|
\seclabel{coexistence}
|
|
|
|
\LoadNonFree{scrbookreportarticle-experts}{2}
|
|
|
|
|
|
\section{Erkennung von \KOMAScript-Klassen}
|
|
\seclabel{identify}
|
|
|
|
Für Paketautoren besteht manchmal die Notwendigkeit, eine \KOMAScript-Klasse
|
|
zu erkennen. Für Anwender besteht diese Notwendigkeit dagegen eher
|
|
nicht. Bezüglich der verwendeten \KOMAScript-Version sei auf
|
|
\DescRef{scrbase.cmd.KOMAScriptVersion} in \autoref{sec:scrbase.identify},
|
|
\DescPageRef{scrbase.cmd.KOMAScriptVersion} verwiesen.
|
|
|
|
\begin{Declaration}
|
|
\Macro{KOMAClassName}
|
|
\Macro{ClassName}
|
|
\end{Declaration}
|
|
In \Macro{KOMAClassName} ist der Name der aktuell verwendeten
|
|
\KOMAScript-Klasse abgelegt. Will man also wissen, ob eine \KOMAScript-Klasse
|
|
verwendet wird, so kann man einfach mit \Macro{@ifundefined} auf diese
|
|
Anweisung testen. Tests auf eine konkrete \KOMAScript-Klasse, beispielsweise
|
|
mit \DescRef{scrbase.cmd.Ifstr}, sind ebenfalls möglich. Demgegenüber gibt
|
|
\Macro{ClassName} Auskunft, welche Standardklasse durch diese
|
|
\KOMAScript-Klasse ersetzt wird.%
|
|
\iffalse% Umbruchkorrektur
|
|
\par
|
|
Es\textnote{Achtung!} sei in diesem Zusammenhang darauf hingewiesen, dass
|
|
dagegen die Existenz von
|
|
\DescRef{scrbase.cmd.KOMAScript}\IndexCmd{KOMAScript} nicht als Indiz für die
|
|
Verwendung einer \KOMAScript-Klasse dienen kann. Zum einen definieren alle
|
|
\KOMAScript-Pakete diese Anweisung, zum anderen können auch andere Pakete es
|
|
für sinnvoll erachten, das \KOMAScript-Piktogramm unter diesem Namen zu
|
|
definieren.%
|
|
\fi%
|
|
\EndIndexGroup
|
|
|
|
|
|
\section{Einträge ins Inhaltsverzeichnis}
|
|
\seclabel{toc}
|
|
|
|
\KOMAScript-Klassen bieten erweiterte Möglichkeiten zur Erstellung und
|
|
Manipulation von Einträgen in das Inhaltsverzeichnis. Einige davon basieren
|
|
auf der Verwendung von \Package{tocbasic} (siehe
|
|
\autoref{sec:tocbasic.tocstyle} ab
|
|
\autopageref{sec:tocbasic.tocstyle}). Andere sind direkt in den Klassen
|
|
implementiert.
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{raggedchapterentry}
|
|
\end{Declaration}
|
|
Bei früheren\ChangedAt{v3.21}{\Class{scrbook}\and \Class{scrreprt}} Version
|
|
von \KOMAScript{} gab es die Möglichkeit, das Makro \Macro{raggedchapterentry}
|
|
als \Macro{raggedright} zu definieren, um den Text der Kapiteleinträge ins
|
|
Inhaltsverzeichnis im linksbündigen Flattersatz zu setzen. Offiziell existiert
|
|
diese Möglichkeit seit \KOMAScript-Version~3.21 nicht mehr.
|
|
|
|
Tatsächlich ist aber die Eigenschaft \PValue{raggedentrytext} für den
|
|
Eintrags-Stil \PValue{tocline} im Paket
|
|
\hyperref[cha:tocbasic]{\Package{tocbasic}}\IndexPackage{tocbasic} so
|
|
implementiert, dass sie das Makro \Macro{ragged\PName{Eintragsebene}entry}
|
|
entweder auf \Macro{relax} oder auf \Macro{raggedright} setzt. Bei der
|
|
Auswertung der Eigenschaft wird dann getestet, ob das entsprechende Makro
|
|
entweder \Macro{raggedright} ist oder als \Macro{raggedright} definiert
|
|
ist. In beiden Fällen wird Flattersatz verwendet. In allen anderen Fällen wird
|
|
kein Flattersatz verwendet.
|
|
|
|
Da schon früher dokumentiert war, dass \Macro{raggedchapterentry} nicht
|
|
als etwas anderes als \Macro{raggedright} definiert werden sollte, ist damit
|
|
Kompatibilität zum dokumentierten Verhalten früherer Versionen erreicht. Wie
|
|
in früheren Versionen gewarnt, führen andere Definitionen von
|
|
\Macro{raggedchapterentry} -- nun aber auch von \Macro{raggedsectionentry} und
|
|
entsprechend für die anderen Eintragsebenen -- möglicherweise zu unerwarteten
|
|
Ergebnissen.
|
|
|
|
Empfohlen wird, eventuell gewünschten Flattersatz für Verzeichniseinträge
|
|
stattdessen über die genannte Eigenschaft des Verzeichniseintragsstils
|
|
\PValue{tocline} zu wählen.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{addtocentrydefault}\Parameter{Ebene}\Parameter{Nummer}%
|
|
\Parameter{Überschrift}
|
|
\end{Declaration}
|
|
Die\ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} \KOMAScript-Klassen verwenden
|
|
\Macro{addcontentsline}\IndexCmd{addcontentsline}%
|
|
\important{\Macro{addcontentsline}} nicht direkt, um Einträge ins
|
|
Inhaltsverzeichnis vorzunehmen. Stattdessen wird \Macro{addtocentrydefault}
|
|
mit ganz ähnlichen Argumenten aufgerufen. Die Anweisung kann sowohl für
|
|
nummerierte als auch für nicht nummerierte Einträge verwendet werden. Dabei
|
|
gibt \PName{Ebene} die Gliederungsebene in Textform an, also \PValue{part},
|
|
\PValue{chapter}, \PValue{section}, \PValue{subsection},
|
|
\PValue{subsubsection}, \PValue{paragraph} oder \PValue{subparagraph}. Die
|
|
formatierte Gliederungsnummer wird über das zweite Argument \PName{Nummer}
|
|
übergeben. Dieses Argument darf auch leer sein. Der Text des Eintrags wird mit
|
|
\PName{Überschrift} angegeben. Zerbrechliche Befehle in
|
|
diesem Argument sind mit
|
|
\Macro{protect}\IndexCmd{protect}\important{\Macro{protect}} zu schützen.
|
|
|
|
Für das Argument \PName{Nummer} gilt noch eine Besonderheit. Ist das Argument
|
|
leer, so signalisiert dies, dass ein nicht nummerierter Eintrag erzeugt werden
|
|
soll. In der Voreinstellung wird dies mit
|
|
\begin{quote}\small\raggedright
|
|
\Macro{addcontentsline}\PParameter{toc}\Parameter{Ebene}%
|
|
\PParameter{\%\\
|
|
\quad\Macro{protect}\DescRef{tocbasic.cmd.nonumberline}
|
|
\PName{Überschrift}\%\\
|
|
}
|
|
\end{quote}
|
|
erreicht. Ist das Argument jedoch nicht leer, so soll ein nummerierter Eintrag
|
|
erzeugt werden und \PName{Nummer} ist die vorformatierte Gliederungsnummer. In
|
|
der Voreinstellung verwendet \KOMAScript{} dann:
|
|
\begin{quote}\small\raggedright
|
|
\Macro{addcontentsline}\PParameter{toc}\Parameter{Ebene}%
|
|
\PParameter{\%\\
|
|
\quad\Macro{protect}\DescRef{tocbasic.cmd.numberline}\Parameter{Nummer}%
|
|
\PName{Überschrift}\%\\
|
|
}
|
|
\end{quote}
|
|
\iffalse zur Erzeugung dieses Eintrags.\fi
|
|
|
|
Paketautoren und Autoren von Wrapper-Klassen können diese Anweisung
|
|
umdefinieren, um Einfluss auf die Einträge zu nehmen. So\textnote{Beispiel}
|
|
wäre beispielsweise denkbar, mit
|
|
\begin{lstcode}
|
|
\renewcommand{\addtocentrydefault}[3]{%
|
|
\Ifstr{#3}{}{%
|
|
}{%
|
|
\Ifstr{#2}{}{%
|
|
\addcontentsline{toc}{#1}{\protect\nonumberline#3}%
|
|
}{%
|
|
\addcontentsline{toc}{#1}{\protect\numberline{#2}#3}%
|
|
}%
|
|
}%
|
|
}%
|
|
\end{lstcode}
|
|
dafür\IndexCmd{Ifstr} zu sorgen, dass Einträge mit leerer \PName{Überschrift}
|
|
erst gar nicht vorgenommen werden. Eine solche Änderung ist in der Praxis
|
|
jedoch nicht notwendig, da die Unterdrückung leerer Einträge bereits auf
|
|
andere Weise in die \KOMAScript-Klassen eingebaut ist. Siehe hierzu auch die
|
|
Erklärung zu den Gliederungsbefehlen in \autoref{sec:maincls.structure} ab
|
|
\DescPageRef{maincls.cmd.part}.%
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{addparttocentry}\Parameter{Nummer}\Parameter{Überschrift}
|
|
\Macro{addchaptertocentry}\Parameter{Nummer}\Parameter{Überschrift}
|
|
\Macro{addsectiontocentry}\Parameter{Nummer}\Parameter{Überschrift}
|
|
\Macro{addsubsectiontocentry}\Parameter{Nummer}\Parameter{Überschrift}
|
|
\Macro{addsubsubsectiontocentry}\Parameter{Nummer}\Parameter{Überschrift}
|
|
\Macro{addparagraphtocentry}\Parameter{Nummer}\Parameter{Überschrift}
|
|
\Macro{addsubparagraphtocentry}\Parameter{Nummer}\Parameter{Überschrift}
|
|
\end{Declaration}%
|
|
Auch \ChangedAt{v3.08}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} die oben dokumentierte Anweisung
|
|
\DescRef{\LabelBase.cmd.addtocentrydefault}\IndexCmd{addtocentrydefault}%
|
|
\important{\DescRef{\LabelBase.cmd.addtocentrydefault}} wird von den
|
|
\KOMAScript-Klassen nur dann direkt aufgerufen, wenn für die angegebene
|
|
\PName{Ebene} keine direkte Anweisung definiert oder diese
|
|
\Macro{relax}\IndexCmd{relax}\important{\Macro{relax}} ist. In der
|
|
Voreinstellung sind die angegebenen Anweisungen alle so definiert, dass sie
|
|
ihre \PName{Ebene} und die Argumente direkt an
|
|
\DescRef{\LabelBase.cmd.addtocentrydefault} weitergeben.%
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\section{Schrifteinstellungen}
|
|
\seclabel{fonts}
|
|
|
|
\KOMAScript-Klassen verfügen nicht nur über erweiterte Möglichkeiten zur
|
|
Auswahl der Grundschriftgröße. Sie erlauben auch die Definition von Elementen
|
|
mit eigenen Schrifteinstellungen, sowie deren Manipulation und dedizierter
|
|
Anwendung.
|
|
|
|
\LoadNonFree{scrbookreportarticle-experts}{5}
|
|
|
|
\begin{Declaration}
|
|
\Macro{newkomafont}\OParameter{Warnung}\Parameter{Element}
|
|
\Parameter{Voreinstellung}
|
|
\Macro{aliaskomafont}\Parameter{Aliasname}\Parameter{Element}
|
|
\end{Declaration}
|
|
Experten können mit \Macro{newkomafont} eine \PName{Voreinstellung} für die
|
|
Schrift eines \PName{Element}s definieren. Anschließend kann diese
|
|
Voreinstellung mit den Anweisungen \DescRef{maincls.cmd.setkomafont} und
|
|
\DescRef{maincls.cmd.addtokomafont} (siehe \autoref{sec:maincls.textmarkup},
|
|
\DescPageRef{maincls.cmd.setkomafont}) verändert werden. Natürlich wird diese
|
|
Schrift damit noch lange nicht verwendet. Der Experte muss selbst Sorge dafür
|
|
tragen, dass er an den entsprechenden Stellen die Anweisung
|
|
\DescRef{maincls.cmd.usekomafont}%
|
|
\important{\DescRef{maincls.cmd.usekomafont}}\IndexCmd{usekomafont} (siehe
|
|
\DescPageRef{maincls.cmd.usekomafont}) für dieses Element in seine
|
|
Definitionen einbaut. Der Aufruf von \Macro{newkomafont} für ein bereits
|
|
existierendes Element führt zu Fehlermeldungen.
|
|
|
|
Das optionale Argument \PName{Warnung} definiert eine Warnmeldung. Diese wird
|
|
bei den \KOMAScript-Klassen per \Macro{ClassWarning} oder beim Paket
|
|
\Package{scrextend} per \Macro{PackageWarning} immer dann ausgegeben, wenn die
|
|
Voreinstellung für das Element verändert wird. Als Urheber der
|
|
Warnung wird das Paket
|
|
\Package{scrkbase}\IndexPackage{scrkbase}\important{\Package{scrkbase}}
|
|
angegeben.
|
|
|
|
Mit \Macro{aliaskomafont} kann für ein bereits existierendes \PName{Element}
|
|
ein \PName{Aliasname} definiert werden. \KOMAScript{} informiert den Benutzer
|
|
in der \File{log}-Datei über den Namen des tatsächlichen Elements, wenn dieser
|
|
den \PName{Aliasname} verwendet. \PName{Aliasname}n\textnote{Tipp!} können
|
|
beispielsweise dann eingesetzt werden, wenn der Entwickler sich später einen
|
|
besseren Namen für ein Element überlegt und der alte Name aus
|
|
Kompatibilitätsgründen weiter verwendbar bleiben soll. Außerdem kann damit die
|
|
Benutzerfreundlichkeit erhöht werden, indem einem Element all die Namen als
|
|
Alias zugeordnet werden, die unterschiedliche Benutzer intuitiv wählen
|
|
würden. \KOMAScript{} selbst macht von dieser Möglichkeit regen Gebrauch.
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{addtokomafontrelaxlist}\Parameter{Makro}
|
|
\Macro{addtokomafontonearglist}\Parameter{Makro}
|
|
\Macro{addtokomafontgobblelist}\Parameter{Makro}
|
|
\end{Declaration}
|
|
Wie bereits in \autoref{part:forAuthors} der Anleitung erklärt, dürfen in den
|
|
Schrifteinstellungen der Elemente nur Befehle zur Wahl der Größe, Familie,
|
|
Codierung, Strichstärke, Form und Farbe enthalten sein. Dabei erfolgt schon
|
|
die Änderung der Farbe bei \LaTeX{} nicht transparent und kann damit
|
|
unerwünschte Effekte hervorrufen, wenn man \DescRef{maincls.cmd.usekomafont}
|
|
an ungünstiger Stelle verwendet.
|
|
|
|
Nun neigen Anwender dazu, in die Schrifteinstellungen auch ganz andere,
|
|
teilweise sehr kritische Dinge zu packen, beispielsweise ein
|
|
\Macro{MakeUppercase} ganz am Ende der Einstellung. Bei der internen
|
|
Verwendung der Schrifteinstellungen wurde daher möglichst so vorgegangen, dass
|
|
viele dieser eigentlich verbotenen Einstellungen trotzdem keinen Schaden
|
|
anrichten und es meist sogar funktioniert, wenn der letzte Befehl in der
|
|
Schrifteinstellung ein Argument erwartet, also beispielsweise \Macro{textbf}
|
|
anstelle von \Macro{bfseries} verwendet wird. Eine Garantie gibt es dafür
|
|
jedoch nicht.
|
|
|
|
In Einzelfällen war es innerhalb von \KOMAScript{} notwendig, die Umschaltung
|
|
wirklich auf Schrifteinstellungen zu beschränken. Dies erfolgt dann
|
|
beispielsweise mit
|
|
\DescRef{maincls.cmd.usefontofkomafont}\IndexCmd{usefontofkomafont}%
|
|
\IndexCmd{usesizeofkomafont}\IndexCmd{useencodingofkomafont}%
|
|
\IndexCmd{usefamilyofkomafont}\IndexCmd{useseriesofkomafont}%
|
|
\IndexCmd{useshapeofkomafont} statt \DescRef{maincls.cmd.usekomafont} (siehe
|
|
\autoref{sec:maincls.textmarkup},
|
|
\DescPageRef{maincls.cmd.usefontofkomafont}).
|
|
|
|
Die Anweisung \DescRef{maincls.cmd.usefontofkomafont} und ihre Geschwister
|
|
haben allerdings ihre Grenzen. Deshalb darf die vermeintliche Schrifteinstellung
|
|
eines Elements keinesfalls ein voll expandierbares Argument erwarten. Genau
|
|
das ist aber beispielsweise bei \Macro{MakeUppercase} der
|
|
Fall. Daher\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} verwaltet \KOMAScript{} eine interne Liste von Makros, die
|
|
innerhalb von \DescRef{maincls.cmd.usefontofkomafont} und ihren Geschwistern
|
|
zu \Macro{relax} werden sollen. In der Voreinstellung ist das seit
|
|
\KOMAScript~3.24\ChangedAt{v3.24}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} nur noch \Macro{normalcolor}.
|
|
|
|
Es ist zu beachten, dass das angegebene \PName{Makro} wirklich stur auf
|
|
\Macro{relax} gesetzt wird. Irgendwelche Argumente innerhalb der
|
|
Schrifteinstellung werden also gegebenenfalls lokal ausgeführt. Daher dürfen
|
|
Anweisungen wie \Macro{setlength} keinesfalls zu dieser Liste hinzugefügt
|
|
werden. Für alle Fehler, die durch die Verwendung von
|
|
\Macro{addtokomafontrelaxlist} entstehen, ist der Anwender selbst
|
|
verantwortlich. Außerdem sollte diese Möglichkeit nicht als Legitimation dafür
|
|
missverstanden werden, den Schrifteinstellungen alle möglichen Anweisungen
|
|
hinzuzufügen!
|
|
|
|
Für\ChangedAt{v3.24}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} Befehle, deren erstes Argument noch ohne zusätzliche
|
|
Gruppe ausgeführt werden soll, gibt es
|
|
\Macro{addtokomafontonearglist}. Das angegebene \PName{Makro} wird dabei auf
|
|
\Macro{@firstofone} gesetzt. In der Voreinstellung wird dies für
|
|
\Macro{MakeUppercase} und \Macro{MakeLowercase} verwendet.
|
|
|
|
Soll\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} hingegen ein \PName{Makro} innerhalb von
|
|
\DescRef{maincls.cmd.usefontofkomafont} und ihren Geschwistern zusammen mit
|
|
seinem ersten Argument ignoriert werden, so ist stattdessen
|
|
\Macro{addtokomafontgobblelist} zu verwenden. Ein Beispiel dafür ist die
|
|
Anweisung \Macro{color}, die einschließlich des Namens der Farbe ignoriert
|
|
werden muss und deshalb bereits in der Voreinstellung Teil dieser Liste ist.
|
|
|
|
Es ist zu beachten, dass sich die hier genannten Voreinstellungen in
|
|
zukünftigen Versionen ändern können. Wenn Sie bestimmte Befehle in einer der
|
|
Listen zwingend benötigen, sollten Sie diese also selbst explizit hinzufügen.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{IfExistskomafont}\Parameter{Element}\Parameter{Dann-Code}%
|
|
\Parameter{Sonst-Code}
|
|
\Macro{IfIsAliaskomafont}\Parameter{Element}\Parameter{Dann-Code}%
|
|
\Parameter{Sonst-Code}
|
|
\end{Declaration}
|
|
Da\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}\and \Class{scrlttr2}} die Schrift mancher Elemente erst ab
|
|
bestimmten Versionen von \KOMAScript{} geändert werden kann, ist es manchmal
|
|
sinnvoll, vorher testen zu können, ob ein \PName{Element} mit dieser
|
|
Möglichkeit überhaupt existiert. Die Anweisung \Macro{IfExistskomafont} führt
|
|
den \PName{Dann-Code} genau dann aus, wenn das \PName{Element} über
|
|
\DescRef{\LabelBase.cmd.newkomafont} oder
|
|
\DescRef{\LabelBase.cmd.aliaskomafont} definiert wurde und daher auch mit
|
|
\DescRef{maincls.cmd.setkomafont} oder \DescRef{maincls.cmd.addtokomafont}
|
|
geändert und mit den \Macro{use\dots komafont}-Anweisungen abgefragt werden
|
|
kann. Anderenfalls wird der \PName{Sonst-Code} ausgeführt.
|
|
|
|
Im Unterschied dazu führt
|
|
\Macro{IfIsAliaskomafont}\ChangedAt{v3.25}{\Class{scrbook}\and
|
|
\Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} den
|
|
\PName{Dann-Code} nur aus, wenn \PName{Element} über
|
|
\DescRef{\LabelBase.cmd.aliaskomafont} als Alias für ein anderes Element
|
|
definiert wurde. Sowohl für nicht definierte Elemente als auch für mit
|
|
\DescRef{\LabelBase.cmd.newkomafont} definierte Elemente wird hingegen der
|
|
\PName{Sonst-Code} ausgeführt.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\section{Absatzmarkierung}
|
|
\seclabel{parskip}
|
|
|
|
Nicht nur, aber insbesondere aufgrund der erweiterten Möglichkeiten der
|
|
Absatzmarkierung bei den \KOMAScript-Klassen sollte auf die direkte Änderung
|
|
der Standardlängen \Length{parskip}\IndexLength{parskip},
|
|
\Length{parindent}\IndexLength{parskip} und
|
|
\Length{parfillskip}\IndexLength{parskip} weitgehend verzichtet werden.
|
|
|
|
\begin{Declaration}
|
|
\Macro{setparsizes}\Parameter{Einzug}\Parameter{Abstand}
|
|
\Parameter{Endzeilenleerraum}
|
|
\end{Declaration}
|
|
\KOMAScript{} bietet mit dieser Anweisung die Möglichkeit, sowohl den
|
|
Absatzeinzug als auch den Absatzabstand und den Freiraum am Ende der letzten
|
|
Zeile des Absatzes einzustellen. Diese Anweisung ist immer dann zu verwenden,
|
|
wenn die Änderungen auch bei Einstellung
|
|
\OptionValueRef{\LabelBase}{parskip}{relative} beachtet werden
|
|
sollen. \KOMAScript{}\textnote{Beispiel} selbst verwendet sie beispielsweise
|
|
in der Form
|
|
\begin{lstcode}
|
|
\setparsizes{0pt}{0pt}{0pt plus 1fil}
|
|
\end{lstcode}
|
|
um sowohl den Einzug als auch den Abstand abzuschalten und am Ende des
|
|
Absatzes beliebigen Freiraum zu erlauben. Eine solche Maßnahme ist sinnvoll,
|
|
wenn ein Absatz nur aus einer Box besteht, die ohne Abstand nach oben oder
|
|
unten gesetzt werden soll und die gesamte Spaltenbreite einnimmt. Soll
|
|
demgegenüber die Box nur die gesamte Breite einnehmen, jedoch mit der
|
|
aktuellen Einstellung bezüglich des Absatzabstandes gesetzt werden, so ist
|
|
\begin{lstcode}
|
|
\setlength{\parfillskip}{0pt plus 1fil}
|
|
\end{lstcode}
|
|
vorzuziehen.
|
|
|
|
Eine\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} Neuberechnung\IndexCmd{activateareas} oder Reaktivierung
|
|
der Einstellungen für den Satzspiegel und die Ränder (siehe
|
|
\autoref{cha:typearea}) führt seit \KOMAScript~3.17 übrigens immer auch zu
|
|
einer Neueinstellung der via \Macro{setparsizes} gesetzten Werte, falls die
|
|
Werte nicht zwischenzeitlich geändert wurden. Dies sollte ein Grund mehr sein,
|
|
nicht an \KOMAScript{} vorbei die Einstellungen zu ändern. Die Neuberechnung
|
|
wird bei einer Kompatibilitätseinstellung zu einer früheren Version (siehe
|
|
\autoref{sec:maincls.compatibilityOptions},
|
|
\DescPageRef{maincls.option.version}, Option
|
|
\DescRef{maincls.option.version}%
|
|
\IndexOption{version}\important{\OptionValueRef{maincls}{version}{3.17}})
|
|
deaktiviert.%
|
|
%
|
|
\EndIndexGroup
|
|
|
|
\section{Zähler}
|
|
\seclabel{counter}
|
|
|
|
Zähler sind bei \LaTeX{} eine durchaus komplexere Angelegenheit, als dies auf
|
|
den ersten Blick erscheinen mag. Das gilt insbesondere, wenn die
|
|
Referenzierung von Zählern über \Macro{refstepcounter}, \Macro{label} und
|
|
\Macro{ref} mit betrachtet wird.
|
|
|
|
\LoadNonFree{scrbookreportarticle-experts}{3}
|
|
|
|
\section{Gliederung}
|
|
\seclabel{sections}
|
|
|
|
Die \KOMAScript-Klassen bieten weitreichende Möglichkeiten, um Einfluss auf
|
|
die Gliederungsebenen und die zugehörigen Überschriften zu nehmen. Selbst die
|
|
Definition neuer Ebenen ist damit möglich.
|
|
|
|
\begin{Declaration}
|
|
\Macro{DeclareSectionCommand}\OParameter{Einstellungen}\Parameter{Name}
|
|
\Macro{DeclareNewSectionCommand}\OParameter{Einstellungen}\Parameter{Name}
|
|
\Macro{RedeclareSectionCommand}\OParameter{Einstellungen}\Parameter{Name}
|
|
\Macro{ProvideSectionCommand}\OParameter{Einstellungen}\Parameter{Name}
|
|
\end{Declaration}
|
|
Diese\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} Anweisungen dienen dazu, einen neuen Gliederungsbefehl
|
|
\Macro{\PName{Name}} zu definieren beziehungsweise einen vorhandenen
|
|
Gliederungsbefehl \Macro{\PName{Name}} zu verändern. Dazu werden über das
|
|
optionale Argument \PName{Einstellungen} vorgenommen. Die
|
|
\PName{Einstellungen} sind dabei eine durch Komma separierte Liste von
|
|
\PName{Schlüssel}=\PName{Wert}-Zuweisungen. Neben den vom Stil der Überschrift
|
|
unabhängigen Eigenschaften, die
|
|
\autoref{tab:maincls-experts.declaresection.keys},
|
|
\autopageref{tab:maincls-experts.declaresection.keys} zu entnehmen sind, gibt
|
|
es auch Eigenschaften, die vom jeweiligen Stil abhängig sind. Derzeit stehen
|
|
die folgenden Stile zur Verfügung:
|
|
\begin{description}\setkomafont{descriptionlabel}{}
|
|
\item[\PValue{part}] \ChangedAt{v3.18}{\Class{scrbook}\and
|
|
\Class{scrreprt}\and \Class{scrartcl}}ist der
|
|
Stil\textnote{Gliederungsstil
|
|
\PValue{part}}\Index{Gliederung>Stil>~\PValue{part}} für
|
|
Teileüberschriften. Dieser Stil wird in der Voreinstellung für
|
|
\DescRef{maincls.cmd.part}\IndexCmd{part} und indirekt für
|
|
\DescRef{maincls.cmd.addpart}\IndexCmd{addpart} verwendet. Neue
|
|
Überschriften in diesem Stil können definiert werden, haben dann aber nicht
|
|
automatisch auch eine \Macro{add\dots}-Variante. Für die Konfiguration der
|
|
vorhandenen oder neuer Überschriften stehen zusätzlich die Eigenschaften aus
|
|
\autoref{tab:maincls-experts.declarepartstyle.keys},
|
|
\autopageref{tab:maincls-experts.declarepartstyle.keys} zur
|
|
Verfügung. Die\textnote{Achtung!} Anweisung \DescRef{maincls.cmd.addpart}
|
|
wird ebenso wie die Sternformen automatisch zusammen mit
|
|
\DescRef{maincls.cmd.part} umkonfiguriert und kann nicht unabhängig davon
|
|
verändert werden.
|
|
\item[\PValue{chapter}] \ChangedAt{v3.18}{\Class{scrbook}\and
|
|
\Class{scrreprt}}ist der Stil\textnote{Gliederungsstil
|
|
\PValue{chapter}}\Index{Gliederung>Stil>~\PValue{chapter}} für
|
|
Kapitelüberschriften. Dieser Stil wird in der Voreinstellung für
|
|
\DescRef{maincls.cmd.chapter}\IndexCmd{chapter} und indirekt für
|
|
\DescRef{maincls.cmd.addchap}\IndexCmd{addchap} verwendet. Neue
|
|
Überschriften in diesem Stil können definiert werden, haben dann aber nicht
|
|
automatisch auch eine \Macro{add\dots}-Variante. Für die Konfiguration der
|
|
vorhandenen oder neuer Überschriften stehen zusätzlich die Eigenschaften aus
|
|
\autoref{tab:maincls-experts.declarechapterstyle.keys},
|
|
\autopageref{tab:maincls-experts.declarechapterstyle.keys} zur
|
|
Verfügung. Die\textnote{Achtung!} Anweisung \DescRef{maincls.cmd.addchap}
|
|
wird ebenso wie die Sternformen automatisch zusammen mit
|
|
\DescRef{maincls.cmd.chapter} umkonfiguriert und kann nicht unabhängig davon
|
|
verändert werden. Es ist zu beachten, dass dieser Stil von
|
|
\Class{scrartcl}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} nicht
|
|
bereitgestellt wird.
|
|
\item[\PValue{section}] ist der Stil\textnote{Gliederungsstil
|
|
\PValue{section}}\Index{Gliederung>Stil>~\PValue{section}} für
|
|
Abschnittsüberschriften und tieferer Ebenen. Dieser Stil wird derzeit sowohl
|
|
für \DescRef{maincls.cmd.section}\IndexCmd{section},
|
|
\DescRef{maincls.cmd.subsection}\IndexCmd{subsection},
|
|
\DescRef{maincls.cmd.subsubsection}\IndexCmd{subsubsection} als auch
|
|
\DescRef{maincls.cmd.paragraph}\IndexCmd{paragraph} und
|
|
\DescRef{maincls.cmd.subparagraph}\IndexCmd{subparagraph} verwendet. Neue
|
|
Überschriften in diesem Stil können definiert werden. Für die Konfiguration
|
|
der vorhandenen oder neuer Überschriften stehen zusätzlich die Eigenschaften
|
|
aus \autoref{tab:maincls-experts.declaresectionstyle.keys},
|
|
\autopageref{tab:maincls-experts.declaresectionstyle.keys} zur
|
|
Verfügung. Bei\ChangedAt{v3.24}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} der Neudefinition sind die \PName{Schlüssel}
|
|
\PValue{style}, \PValue{afterskip}, \PValue{beforeskip} und \PValue{level}
|
|
zwingend. Die \PName{Schlüssel}
|
|
\PValue{afterindent}\ChangedAt{v3.26}{\Class{scrbook}\and
|
|
\Class{scrreprt}\and \Class{scrartcl}}, \PValue{font}, \PValue{indent} und
|
|
\PValue{runin} sind empfohlen. \PValue{tocindent} und \PValue{tocnumwidth}
|
|
können abhängig vom Namen der Gliederungsebene ebenfalls zwingend sein. Das
|
|
gilt auch, falls ein Befehl, der bisher kein Gliederungsbefehl war, mit
|
|
\Macro{RedeclareSectionCommand} zu einem Gliederungsbefehl umdefiniert
|
|
wird. Die\textnote{Achtung!} Anweisung \Macro{addsec} wird ebenso wie die
|
|
Sternformen zusammen mit \DescRef{maincls.cmd.section} umkonfiguriert und
|
|
kann nicht unabhängig davon verändert werden.
|
|
\end{description}
|
|
|
|
\BeginIndexGroup%
|
|
\BeginIndex{FontElement}{\PName{Gliederungsebene}}%
|
|
\BeginIndex{FontElement}{\PName{Gliederungsebene}prefix}%
|
|
Bei der Definition eines Gliederungsbefehls wird ein gleichnamiges
|
|
Element\textnote{Elemente}%
|
|
\Index{Element=\UseIndex {gen}\protect\GuideFontElement} % Getrickst!
|
|
angelegt, falls es noch nicht existiert. Bei \PValue{chapter} und
|
|
\PValue{part} werden ebenso Elemente für die Präfixzeile erzeugt. Die
|
|
Schrifteinstellung der Elemente kann mit \DescRef{maincls.cmd.setkomafont} und
|
|
\DescRef{maincls.cmd.addtokomafont} (siehe \autoref{sec:maincls.textmarkup},
|
|
\DescPageRef{maincls.cmd.setkomafont}) geändert werden.%
|
|
\EndIndexGroup
|
|
|
|
\begin{table}
|
|
\caption[{Stil unabhängige Eigenschaften bei der Konfiguration von
|
|
Gliederungsbefehlen}]%
|
|
{Mögliche vom Stil der Überschrift unabhängige
|
|
\PName{Schlüssel} und \PName{Werte} für die \PName{Eigenschaften} bei der
|
|
Konfiguration von Gliederungsbefehlen}%
|
|
\label{tab:maincls-experts.declaresection.keys}%
|
|
\begin{tabularx}{\linewidth}{llX}
|
|
\toprule
|
|
\PName{Schlüssel}
|
|
& \PName{Wert}
|
|
& Bedeutung \\
|
|
\midrule
|
|
\PValue{counterwithin}
|
|
& \PName{Zählername}
|
|
& Der zur Gliederungsebene gehörende Zähler soll vom als Wert angegebenen
|
|
Zähler abhängig sein. Wird \PName{Zählername} über \Macro{stepcounter}
|
|
oder \Macro{refstepcounter} erhöht, so wird der zur Gliederungsebene
|
|
gehörende Zähler auf 0 zurückgesetzt. Darüber hinaus wird
|
|
\Macro{the\PName{Zählername}}, gefolgt von einem Punkt in der Ausgabe
|
|
des zur Gliederungsebene gehörenden Zählers vorangestellt.\\
|
|
\PValue{counterwithout}%
|
|
\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}}%
|
|
& \PName{Zählername}
|
|
& Hebt eine früher vorgenommene \PValue{counterwithin}-Einstellung auf und
|
|
ist daher nur bei Änderung vorhandener Gliederungsbefehle sinnvoll.\\
|
|
\PValue{expandtopt}
|
|
& \PName{Schalter}
|
|
& Ist dieser Schalter aktiv, so werden alle in den \PName{Einstellungen}
|
|
nachfolgend angegebenen Werte für Längen vollständig expandiert,
|
|
ausgewertet und in \texttt{pt} umgerechnet gespeichert. Ist der
|
|
Schalter nicht aktiv, so werden alle nachfolgend angegebenen
|
|
Werte für Längen nur testweise expandiert und ausgewertet, aber
|
|
lediglich expandiert gespeichert. Es werden die Werte für einfache
|
|
Schalter aus \autoref{tab:truefalseswitch},
|
|
\autopageref{tab:truefalseswitch} verstanden.\\
|
|
\PValue{level}
|
|
& \PName{Ganzzahl}
|
|
& Numerischer Wert der Gliederungsebene (siehe Zähler
|
|
\DescRef{maincls.counter.secnumdepth}, \autoref{sec:maincls.structure},
|
|
\DescPageRef{maincls.counter.secnumdepth}); der Wert sollte eindeutig
|
|
sein und ist für neue Ebenen zwingend.\\
|
|
\PValue{style}
|
|
& \PName{Name}
|
|
& Legt den Stil der Überschrift fest und ist für neue Ebenen zwingend.\\
|
|
\PValue{tocstyle}%
|
|
\ChangedAt{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}}%
|
|
& \PName{Name}
|
|
& Legt den Stil des zur Überschrift gehörenden Verzeichniseintrags fest.
|
|
Es können alle bisher definierten Verzeichniseintragsstile (siehe
|
|
\autoref{sec:tocbasic.tocstyle}) verwendet werden. Ein leerer
|
|
\PName{Name} verhindert die Umdefinierung des Befehls
|
|
\Macro{l@\dots} für die Verzeichniseinträge.\\
|
|
\PValue{toc\PName{Option}}%
|
|
\ChangedAt{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}}%
|
|
& \PName{Wert}
|
|
& Weitere Optionen in Abhängigkeit vom via \Option{tocstyle} gewählten
|
|
Verzeichniseintragsstil. Siehe dazu \autoref{sec:tocbasic.tocstyle} ab
|
|
\autopageref{sec:tocbasic.tocstyle}. Für die von
|
|
\hyperref[cha:tocbasic]{\Package{tocbasic}} vordefinierten
|
|
Verzeichniseintragsstile finden sich die als \PName{Option} verwendbaren
|
|
Attribute in \autoref{tab:tocbasic.tocstyle.attributes}, ab
|
|
\autopageref{tab:tocbasic.tocstyle.attributes}.\\
|
|
% \PValue{tocindent}
|
|
% & \PName{Länge}
|
|
% & Der horizontale Einzug des zum Gliederungsbefehls gehörenden
|
|
% Eintrags ins Inhaltsverzeichnis, falls ein solcher abhängig von
|
|
% \DescRef{maincls.counter.tocdepth} (siehe \autoref{sec:maincls.toc},
|
|
% \DescPageRef{maincls.counter.tocdepth}) erzeugt wird.\\
|
|
% \PValue{toclevel}
|
|
% & \PName{Ganzzahl}
|
|
% & Die Ebene des zum Gliederungsbefehl gehörenden Eintrags ins
|
|
% Inhaltsverzeichnis, falls diese von \PValue{level} abweichen soll
|
|
% (siehe auch \DescRef{maincls.counter.tocdepth} in
|
|
% \autoref{sec:maincls.toc}, \DescPageRef{maincls.counter.tocdepth}). \\
|
|
% PValue{tocnumwidth}
|
|
% & \PName{Länge}
|
|
% & Die Breite, die für die Gliederungsnummer im zum Gliederungsbefehl
|
|
% gehörenden Eintrag ins Inhaltsverzeichnis reserviert wird.\\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
\end{table}
|
|
|
|
\begin{table}
|
|
\caption[{Eigenschaften des Stils \PValue{part} bei der Konfiguration von
|
|
Gliederungsbefehlen}]{Zusätzliche \PName{Schlüssel} und \PName{Werte} für
|
|
die \PName{Eigenschaften} bei der Konfiguration von Gliederungsbefehlen des
|
|
Stils \PValue{part}\Index{Gliederung>Stil>~\PValue{part}}}%
|
|
\label{tab:maincls-experts.declarepartstyle.keys}%
|
|
\begin{tabularx}{\linewidth}{llX}
|
|
\toprule
|
|
\PName{Schlüssel}
|
|
& \PName{Wert}
|
|
& Bedeutung \\
|
|
\midrule
|
|
\PValue{afterindent}%
|
|
\ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}}%
|
|
& \PName{Schalter}
|
|
& Es wird bestimmt, ob auf die erste Zeile nach der
|
|
Überschrift der aktuelle Absatzeinzug angewendet
|
|
wird. Bei der Einstellung \PValue{bysign} bestimmt das Vorzeichen von
|
|
\PValue{beforeskip} das Verhalten. Ein negativer Wert für
|
|
\PValue{beforeskip} bewirkt dann, dass der Absatzeinzug entfällt. Mit
|
|
den Werten für einfache Schalter (siehe \autoref{tab:truefalseswitch},
|
|
\autopageref{tab:truefalseswitch}) kann die Anwendung des aktuellen
|
|
Absatzeinzugs explizit aktiviert oder deaktiviert werden. Aus
|
|
Kompatibilitätsgründen ist die Voreinstellung
|
|
für \Class{scrartcl} \PValue{false}, für \Class{scrbook} und
|
|
\Class{scrreprt} \PValue{true}.\\
|
|
\PValue{afterskip}
|
|
& \PName{Länge}
|
|
& Der Betrag gibt den vertikalen Abstand nach der Überschrift an.\\
|
|
\PValue{beforeskip}
|
|
& \PName{Länge}
|
|
& Gibt den vertikalen Abstand vor der Überschrift an. Ist
|
|
\OptionValue{afterindent}{bysign}, so wird für den Abstand der Betrag
|
|
von \PName{Länge} verwendet. Es wird also trotzdem ein positiver
|
|
Abstand eingefügt. Negative Werte bedeuten in diesem Fall, dass ein
|
|
Absatzeinzug nach der Überschrift entfällt.\\
|
|
\PValue{font}
|
|
& \PName{Befehle}
|
|
& Die Schrifteinstellungen, die zusätzlich zum Element
|
|
\DescRef{maincls.fontelement.disposition} bei der Ausgabe des
|
|
Textes der Überschrift verwendet werden sollen. Hier sind alle
|
|
\PName{Befehle} erlaubt, die auch über \DescRef{maincls.cmd.setkomafont}
|
|
und \DescRef{maincls.cmd.addtokomafont} für das Element des
|
|
Gliederungsbefehls erlaubt sind.\\
|
|
\PValue{innerskip}
|
|
& \PName{Länge}
|
|
& %\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}%
|
|
Der vertikale Abstand zwischen Präfixzeile und Text der Überschrift bei
|
|
\Class{scrbook} und \Class{scrreprt}.\\
|
|
\PValue{pagestyle}
|
|
& \PName{Seitenstil}
|
|
& %\OnlyAt{\Class{scrbook}\and \Class{scrreprt}}%
|
|
Der Name des Seitenstils, der für die Seite mit der Überschrift
|
|
verwendet werden soll. Es findet keine Überprüfung statt, ob der
|
|
angegebene \PName{Seitenstil} gültig ist. Fehlerhafte Angaben führen
|
|
daher zu Fehlermeldungen bei Verwendung des Gliederungsbefehls. Diese
|
|
Möglichkeit existiert nur bei \Class{scrbook} und \Class{scrreprt}. \\
|
|
\PValue{prefixfont}
|
|
& \PName{Befehle}
|
|
& Die Schrifteinstellungen, die zusätzlich zum Element
|
|
\DescRef{maincls.fontelement.disposition} ab der Ausgabe einer
|
|
Präfixzeile oder Nummer in der Überschrift verwendet werden sollen. Hier
|
|
sind alle \PName{Befehle} erlaubt, die
|
|
auch über \DescRef{maincls.cmd.setkomafont} und
|
|
\DescRef{maincls.cmd.addtokomafont} für das Element der Präfixzeile des
|
|
Gliederungsbefehls erlaubt sind.\\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
\end{table}
|
|
|
|
\begin{table}
|
|
\caption[{Eigenschaften des Stils \PValue{chapter} bei der Konfiguration von
|
|
Gliederungsbefehlen}]{Zusätzliche \PName{Schlüssel} und \PName{Werte} für
|
|
die \PName{Eigenschaften} bei der Konfiguration von Gliederungsbefehlen des
|
|
Stils \PValue{chapter}\Index{Gliederung>Stil>~\PValue{chapter}}}%
|
|
\label{tab:maincls-experts.declarechapterstyle.keys}%
|
|
\begin{tabularx}{\linewidth}{llX}
|
|
\toprule
|
|
\PName{Schlüssel} & \PName{Wert} & Bedeutung \\
|
|
\midrule
|
|
\PValue{afterindent}%
|
|
\ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}}%
|
|
& \PName{Schalter}
|
|
& Es wird bestimmt, ob auf die erste Zeile nach der Überschrift der
|
|
aktuelle Absatzeinzug angewendet wird. Bei der Voreinstellung
|
|
\PValue{bysign} bestimmt das Vorzeichen von \PValue{beforeskip} das
|
|
Verhalten. Ein negativer Wert für \PValue{beforeskip} bewirkt dann, dass
|
|
der Absatzeinzug entfällt. Mit den Werten für einfache Schalter (siehe
|
|
\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}) kann
|
|
die Anwendung des aktuellen Absatzeinzugs explizit aktiviert oder
|
|
deaktiviert werden.\\
|
|
\PValue{afterskip}%
|
|
\ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}}%
|
|
& \PName{Länge}
|
|
& Gibt den vertikalen Abstand nach der Überschrift an.\\
|
|
\PValue{beforeskip}
|
|
& \PName{Länge}
|
|
& Gibt den vertikalen Abstand vor der Überschrift an. Ist
|
|
\OptionValue{afterindent}{bysign}, so wird für den Abstand der Betrag
|
|
von \PName{Länge} verwendet. Es wird also trotzdem ein positiver
|
|
Abstand eingefügt. Negative Werte bedeuten in diesem Fall, dass ein
|
|
Absatzeinzug nach der Überschrift entfällt.\\
|
|
\PValue{font}
|
|
& \PName{Befehle}
|
|
& Die Schrifteinstellungen, die zusätzlich zum Element
|
|
\DescRef{maincls.fontelement.disposition} bei der Ausgabe der
|
|
Überschrift verwendet werden sollen. Hier sind alle \PName{Befehle}
|
|
erlaubt, die auch über \DescRef{maincls.cmd.setkomafont} und
|
|
\DescRef{maincls.cmd.addtokomafont} für das Element des
|
|
Gliederungsbefehls erlaubt sind.\\
|
|
\PValue{innerskip}
|
|
& \PName{Länge}
|
|
& Der vertikale Abstand zwischen Präfixzeile und Text der
|
|
Überschrift, falls eine Präfixzeile verwendet wird.\\
|
|
\PValue{pagestyle}
|
|
& \PName{Seitenstil}
|
|
& Der Name des Seitenstils, der für die Seite mit der Überschrift
|
|
verwendet werden soll. Es findet keine Überprüfung statt, ob der
|
|
angegebene \PName{Seitenstil} gültig ist. Fehlerhafte Angaben führen
|
|
daher zu Fehlermeldungen bei Verwendung des Gliederungsbefehls.\\
|
|
\PValue{prefixfont}
|
|
& \PName{Befehle}
|
|
& Die Schrifteinstellungen, die zusätzlich zum Element
|
|
\DescRef{maincls.fontelement.disposition} und dem Element des
|
|
Gliederungsbefehls bei der Ausgabe einer Präfixzeile in der Überschrift
|
|
verwendet werden sollen. Hier sind alle \PName{Befehle} erlaubt, die
|
|
auch über \DescRef{maincls.cmd.setkomafont} und
|
|
\DescRef{maincls.cmd.addtokomafont}für das Element der Präfixzeile des
|
|
Gliederungsbefehls erlaubt sind.\\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
\end{table}
|
|
|
|
\begin{table}
|
|
\caption[{Eigenschaften des Stils \PValue{section} bei der Konfiguration von
|
|
Gliederungsbefehlen}]{Zusätzliche \PName{Schlüssel} und \PName{Werte} für
|
|
die \PName{Eigenschaften} bei der Konfiguration von Gliederungsbefehlen des
|
|
Stils \PValue{section}\Index{Gliederung>Stil>~\PValue{section}}}%
|
|
\label{tab:maincls-experts.declaresectionstyle.keys}%
|
|
\begin{tabularx}{\linewidth}{llX}
|
|
\toprule
|
|
\PName{Schlüssel} & \PName{Wert} & Bedeutung \\
|
|
\midrule
|
|
\PValue{afterindent}%
|
|
\ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}}%
|
|
& \PName{Schalter}
|
|
& Es wird bestimmt, ob auf die erste Zeile nach einer frei stehenden
|
|
Überschrift (siehe \PValue{runin}) der aktuelle Absatzeinzug angewendet
|
|
wird. Bei der Voreinstellung \PValue{bysign} bestimmt das Vorzeichen von
|
|
\PValue{beforeskip} das Verhalten. Ein negativer Wert für
|
|
\PValue{beforeskip} bewirkt dann, dass der Absatzeinzug entfällt. Mit
|
|
den Werten für einfache Schalter (siehe \autoref{tab:truefalseswitch},
|
|
\autopageref{tab:truefalseswitch}) kann die Anwendung des aktuellen
|
|
Absatzeinzugs explizit aktiviert oder deaktiviert werden.\\
|
|
\PValue{afterskip}
|
|
& \PName{Länge}
|
|
& Im Fall einer Spitzmarke (siehe \PValue{runin}) ist der Betrag der
|
|
\PName{Länge} der horizontale Abstand nach der Überschrift. Es
|
|
wird in diesem Fall also immer ein positiver Abstand eingefügt. Im Fall
|
|
einer frei stehenden Überschrift ist \PName{Länge} der vertikale Abstand
|
|
nach der Überschrift. Ist \OptionValue{runin}{bysign}, so
|
|
führt ein positiver Wert zu einer frei stehenden Überschrift, während
|
|
ein negativer Wert oder Null zu einer Spitzmarke führt.\\
|
|
\PValue{beforeskip}
|
|
& \PName{Länge}
|
|
& Gibt den vertikalen Abstand vor der Überschrift an. Ist
|
|
\OptionValue{afterindent}{bysign}, so wird für den Abstand der Betrag
|
|
von \PName{Länge} verwendet. Es wird also trotzdem ein positiver
|
|
Abstand eingefügt. Negative Werte bedeuten in diesem Fall, dass ein
|
|
Absatzeinzug nach der Überschrift entfällt.\\
|
|
\PValue{font}
|
|
& \PName{Befehle}
|
|
& Die Schrifteinstellungen, die zusätzlich zum Element
|
|
\DescRef{maincls.fontelement.disposition} bei der Ausgabe der
|
|
Überschrift verwendet werden sollen. Hier sind alle \PName{Befehle}
|
|
erlaubt, die auch über \DescRef{maincls.cmd.setkomafont} und
|
|
\DescRef{maincls.cmd.addtokomafont} für das Element des
|
|
Gliederungsbefehls erlaubt sind.\\
|
|
\PValue{indent}
|
|
& \PName{Länge}
|
|
& Einzug vom linken Rand vor der Ausgabe der Nummer und des Textes
|
|
der Überschrift.\\
|
|
\PValue{runin}%
|
|
\ChangedAt{v3.26}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}}%
|
|
& \PName{Schalter}
|
|
& Es wird bestimmt, ob die Überschrift als Spitzmarke\iffree{ (am
|
|
Zeilenanfang)}{} oder frei stehend gesetzt wird. \iffree{}{Bei einer
|
|
Spitzmarke schließt sich der nachfolgende Text direkt an die
|
|
Überschrift an, während bei einer frei stehenden Überschrift erst noch
|
|
ein Absatz und ein vertikaler Abstand (siehe \PValue{afterskip})
|
|
folgen. }%
|
|
Bei der Voreinstellung \PValue{bysign} bestimmt das Vorzeichen von
|
|
\PValue{afterskip} das Verhalten. Ein positiver Wert für
|
|
\PValue{afterskip} bewirkt dann eine frei stehende Überschrift.
|
|
Darüber hinaus kann mit den Werten für einfache Schalter (siehe
|
|
\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch})
|
|
eine Spitzmarke explizit aktiviert oder deaktiviert werden.\\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
\end{table}
|
|
|
|
\Macro{DeclareNewSectionCommand}\textnote{Neudefinition} dient der Definition
|
|
eines neuen Gliederungsbefehls. Ist derselbe \PName{Name} von \TeX{} bereits
|
|
anderweitig belegt, so wird ein Fehler ausgegeben und es findet keine
|
|
Umdefinierung statt.
|
|
|
|
\Macro{ProvideSectionCommand}\textnote{bedingte Definition} verhält sich
|
|
ähnlich, gibt aber keine Fehlermeldung aus, wenn der Gliederungsbefehl bereits
|
|
existiert. Es findet dann nur keine Umdefinierung statt.
|
|
|
|
\Macro{RedeclareSectionCommand}\textnote{Änderung} kann hingegen nur verwendet
|
|
werden, um eine existierende Anweisung zu einem Gliederungsbefehl mit den
|
|
angegebenen \PName{Eigenschaften} zu ändern. Dabei wird nicht überprüft, ob
|
|
\Macro{\PName{Name}} bereits zuvor ein Gliederungsbefehl war. Es muss nur ein
|
|
von \TeX{} bereits belegter \PName{Name} sein.
|
|
|
|
Bei \Macro{DeclareSectionCommand}\textnote{unbedingte Definition} findet
|
|
keinerlei Überprüfung statt, ob \PName{Name} von \TeX{} bereits anderweitig
|
|
belegt ist. Stattdessen wird der Gliederungsbefehl \Macro{\PName{Name}}
|
|
unbedingt entsprechend der angegebenen \PName{Eigenschaften} definiert.
|
|
|
|
Zu jeder Gliederungsanweisung gehört außerdem ein Zähler: \PName{Name}, der
|
|
bei Bedarf von allen vier Befehlen mit \Macro{newcounter} neu angelegt
|
|
wird. Dasselbe gilt für die Ausgabe des Zählers: \Macro{the\PName{Name}}, die
|
|
Formatierung des Zählers: \Macro{\PName{Name}format}, die Anweisung zur
|
|
Erstellung eines Kolumnentitels: \Macro{\PName{Name}mark}, die dabei
|
|
verwendete Formatierung des Zählers: \Macro{\PName{Name}markformat}, die oben
|
|
erwähnten Elemente: \FontElement{\PName{Name}} und gegebenenfalls
|
|
\FontElement{\PName{Name}prefix}, die numerische Gliederungsebene:
|
|
\Macro{\PName{Name}numdepth}. Die Anweisung \Macro{\PName{Name}mark} wird
|
|
gegebenenfalls so vordefiniert, dass kein Kolumnentitel erzeugt wird. Die
|
|
Ausgabe des Zählers, \Macro{the\PName{Name}}, wird als arabische Zahl
|
|
vordefiniert. Wird über den \PName{Schlüssel} \PValue{counterwithin} der
|
|
Zähler als von einem anderen Zähler abhängig definiert, so wird in der Ausgabe
|
|
dieser andere Zähler mit einem Punkt getrennt vorangestellt.
|
|
|
|
Neben\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} dem Gliederungsbefehl selbst wird auch ein Befehl für
|
|
einen Eintrag ins Inhaltsverzeichnis definiert. Dafür wird auf das Paket
|
|
\hyperref[cha:tocbasic]{\Package{tocbasic}}%
|
|
\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}}\IndexPackage{tocbasic}
|
|
zurückgegriffen. Der Stil des Verzeichniseintrags wird über die Eigenschaft
|
|
\PValue{tocstyle} festgelegt. Wird hier mit \OptionValue{tocstyle}{} oder
|
|
\OptionValue{tocstyle}{\{\}} ein leerer \PName{Name} angegeben, so erfolgt
|
|
keine Umdefinierung des Befehls für den Verzeichniseintrag. Das ist
|
|
beispielsweise dann wichtig, wenn Sie ein zusätzliches Paket zur Modifikation
|
|
des Inhaltsverzeichnisses verwenden. Fehlt die Eigenschaft \PValue{tocstyle},
|
|
so wird bei der Umdefinierung der bisherige Stil erneut verwendet.
|
|
|
|
Unterschiedliche\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and
|
|
\Class{scrreprt}\and \Class{scrartcl}} Stile für Verzeichniseinträge haben
|
|
unterschiedliche zusätzliche Eigenschaften. Diese können, mit dem Präfix
|
|
\PValue{toc} versehen, direkt mit angegeben werden. So kann beispielsweise die
|
|
Ebene des Verzeichniseintrags, die bei allen von den \KOMAScript-Klassen und
|
|
\hyperref[cha:tocbasic]{\Package{tocbasic}} definierten Stilen als Eigenschaft
|
|
\PValue{level} bekannt ist, mit \PValue{toclevel} gesetzt werden, der Einzug
|
|
des Eintrags, \PValue{indent}, über \PValue{tocindent} und die für die Nummer
|
|
reservierte Breite, \PValue{numwidth}, mit \PValue{tocnumwidth}. Für weitere
|
|
Eigenschaften der Verzeichniseinträge siehe \autoref{sec:tocbasic.tocstyle} ab
|
|
Seite \autopageref{sec:tocbasic.tocstyle}.
|
|
|
|
\begin{Example}
|
|
Aus unerfindlichen Gründen sollen die Überschriften von
|
|
\DescRef{maincls.cmd.paragraph} nicht mehr als Spitzmarken, sondern als
|
|
Überschriften ähnlich \DescRef{maincls.cmd.subsubsection} umdefiniert
|
|
werden. Dabei soll über der Überschrift ein kleiner Abstand von 10\,pt und
|
|
unter der Überschrift kein zusätzlicher Abstand eingefügt werden. Das wäre
|
|
bereits mit
|
|
\begin{lstcode}
|
|
\RedeclareSectionCommand[%
|
|
beforeskip=-10pt,%
|
|
afterskip=1sp%
|
|
]{paragraph}
|
|
\end{lstcode}
|
|
möglich. Durch den negativen Wert bei \PValue{beforeskip} wird der vertikale
|
|
Abstand über der Überschrift erzeugt und gleichzeitig der Einzug des ersten
|
|
Abschnitts nach der Überschrift abgeschaltet. Obwohl eigentlich nach der
|
|
Überschrift kein vertikaler Abstand gewünscht wird, wurde als Wert hier
|
|
1\,sp angegeben. Der Grund ist einfach: Einen Wert von 0\,pt betrachtet
|
|
\TeX{} nicht als positiven Wert und \Macro{RedeclareSectionCommand} erzeugt
|
|
damit unter Berücksichtigung der Voreinstellung \OptionValue{runin}{bysign}
|
|
eine Überschrift in Form einer Spitzmarke. Der kleinste positive Wert
|
|
ist 1\,sp. Natürlich könnte man stattdessen auch explizit die Verwendung von
|
|
Spitzmarken aktivieren und dann wirklich einen Wert von 0\,pt einstellen:
|
|
\begin{lstcode}
|
|
\RedeclareSectionCommand[%
|
|
beforeskip=-10pt,%
|
|
runin=true,%
|
|
afterskip=0pt%
|
|
]{paragraph}
|
|
\end{lstcode}
|
|
|
|
In der Regel ist es für den vertikalen Ausgleich (siehe
|
|
\DescRef{maincls.cmd.flushbottom}, \autoref{sec:maincls.typearea},
|
|
\DescPageRef{maincls.cmd.flushbottom}) besser, wenn man die Abstände
|
|
mit etwas Spielraum, dem sogenannten Leim, versieht:
|
|
\begin{lstcode}
|
|
\RedeclareSectionCommand[%
|
|
beforeskip=-10pt plus -2pt minus -1pt,%
|
|
runin=true,%
|
|
afterskip=0pt%
|
|
]{paragraph}
|
|
\end{lstcode}
|
|
Dabei ist zu beachten, dass natürlich auch der Leim bei der Anwendung als
|
|
vertikaler Abstand das Vorzeichen wechselt, also bei \PValue{beforeskip} im
|
|
Beispiel negativ angegeben wird. Auch diese Überlegung kann man sich jedoch
|
|
sparen, indem man den Erstzeileneinzug nach der Überschrift nicht über das
|
|
Vorzeichen von \Option{beforeskip} steuert, sondern über
|
|
\Option{afterindent}:
|
|
\begin{lstcode}
|
|
\RedeclareSectionCommand[%
|
|
afterindent=false,%
|
|
beforeskip=10pt plus 2pt minus 1pt,%
|
|
runin=true,%
|
|
afterskip=0pt%
|
|
]{paragraph}
|
|
\end{lstcode}
|
|
\end{Example}
|
|
|
|
Dass im Beispiel nur die Schlüssel verwendet werden mussten, deren Einstellung
|
|
geändert werden soll, liegt daran, dass seit \KOMAScript{} 3.15
|
|
\DescRef{maincls.cmd.paragraph} intern bereits mit
|
|
\Macro{DeclareSectionCommand} definiert wird. Alle anderen Einstellungen
|
|
aus der Originaldefinition bleiben so enthalten. Bei
|
|
\Class{scrartcl}\OnlyAt{scrartcl} entspräche dies der Definition:
|
|
\begin{lstcode}
|
|
\DeclareSectionCommand[%
|
|
level=4,
|
|
indent=0pt,
|
|
afterindent=bysign,
|
|
runin=bysign,
|
|
beforeskip=3.25ex plus 1ex minus .2ex,
|
|
afterskip=-1em,
|
|
font={},
|
|
tocindent=7em,
|
|
tocnumwidth=4.1em,
|
|
counterwithin=subsubsection
|
|
]{paragraph}
|
|
\end{lstcode}
|
|
|
|
% Umbruchkorrektur: Tabelle verschoben
|
|
\begin{table}
|
|
%\centering
|
|
\KOMAoptions{captions=topbeside}%
|
|
\setcapindent{0pt}%
|
|
% \caption
|
|
\begin{captionbeside}
|
|
[{Voreinstellungen für die Kapitelüberschriften von \Class{scrbook}
|
|
und \Class{scrreprt} in Abhängigkeit von Option
|
|
\DescRef{maincls.option.headings}}]
|
|
{\hskip 0pt plus .5em
|
|
Voreinstellungen für die Kapitelüberschriften von \Class{scrbook}
|
|
und \Class{scrreprt} in Abhängigkeit von Option
|
|
\DescRef{maincls.option.headings}%
|
|
\label{tab:maincls.chapter.skips}}
|
|
[l]
|
|
\begin{tabular}[t]{ll}
|
|
\multicolumn{2}{@{}l}{\bfseries Mit \OptionValueRef{maincls}{headings}{big}:}\\
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule
|
|
\PValue{afterskip}
|
|
& \PValue{1.725\Length{baselineskip} plus .115\Length{baselineskip}} \\
|
|
& \PValue{\phantom{1.725\Length{baselineskip}}
|
|
minus .192\Length{baselineskip}} \\
|
|
\PValue{beforeskip}
|
|
& \PValue{-3.3\Length{baselineskip}-\Length{parskip}} \\
|
|
\PValue{font} & \Macro{huge} \\
|
|
\bottomrule\\
|
|
\multicolumn{2}{@{}l}{\bfseries Mit \OptionValueRef{maincls}{headings}{normal}:}\\
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule
|
|
\PValue{afterskip}
|
|
& \PValue{1.5\Length{baselineskip} plus .1\Length{baselineskip}} \\
|
|
& \PValue{\phantom{1.5\Length{baselineskip}}
|
|
minus .167\Length{baselineskip}} \\
|
|
\PValue{beforeskip}
|
|
& \PValue{-3\Length{baselineskip}-\Length{parskip}} \\
|
|
\PValue{font} & \Macro{LARGE} \\
|
|
\bottomrule\\
|
|
\multicolumn{2}{@{}l}{\bfseries Mit \OptionValueRef{maincls}{headings}{small}:}\\
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule
|
|
\PValue{afterskip}
|
|
& \PValue{1.35\Length{baselineskip} plus .09\Length{baselineskip}} \\
|
|
& \PValue{\phantom{1.35\Length{baselineskip}}
|
|
minus .15\Length{baselineskip}} \\
|
|
\PValue{beforeskip}
|
|
& \PValue{-2.8\Length{baselineskip}-\Length{parskip}} \\
|
|
\PValue{font} & \Macro{Large} \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\end{captionbeside}
|
|
\end{table}
|
|
|
|
Die Werte für \Class{scrreprt} und \Class{scrbook}\OnlyAt{\Class{scrbook}\and
|
|
\Class{scrreprt}} weichen teilweise ab. Für \DescRef{maincls.cmd.chapter}
|
|
sind einige Einstellungen für die Überschriften von Option
|
|
\DescRef{maincls.option.headings} (siehe \autoref{sec:maincls.structure},
|
|
\DescPageRef{maincls.option.headings}) abhängig. Diese abhängigen
|
|
Einstellungen sind in \autoref{tab:maincls.chapter.skips} zu finden. Eine
|
|
Übersicht über alle Voreinstellungen bietet
|
|
\autoref{tab:maincls.section.defaults}. Es ist zu beachten, dass dabei
|
|
\PValue{1ex} und \Length{baselineskip} von der voreingestellten Größe der
|
|
Überschrift beziehungsweise des Inhaltsverzeichniseintrags abhängig
|
|
sind. Weitere Voreinstellungen\ChangedAt[2016/03]{v3.20}{\Class{scrbook}\and
|
|
\Class{scrreprt}\and \Class{scrartcl}} für die Stile der Verzeichniseinträge
|
|
sind \autoref{sec:tocbasic.tocstyle}%
|
|
\important{\hyperref[cha:tocbasic]{\Package{tocbasic}}} ab
|
|
\autopageref{sec:tocbasic.tocstyle} zu entnehmen.
|
|
|
|
Das in den Einstellungen für \DescRef{maincls.cmd.subparagraph} verwendete
|
|
interne Makro \Macro{scr@parindent} ist übrigens, der per Option
|
|
\DescRef{maincls.option.parskip} oder Befehl
|
|
\DescRef{maincls-experts.cmd.setparsizes} eingestellte Absatzeinzug.%
|
|
% Umbruchkorrektur: longtable verschoben
|
|
% begin{table}
|
|
% \centering
|
|
\begin{longtable}{@{}p{\columnwidth}@{}}
|
|
\caption{Voreinstellungen für die Formatierung der Überschriften von
|
|
\Class{scrbook} und \Class{scrreprt}}%
|
|
\label{tab:maincls.section.defaults}\\
|
|
\endfirsthead
|
|
\caption[]{Voreinstellungen für die Formatierung der Überschriften von
|
|
\Class{scrbook} und
|
|
\Class{scrreprt} \emph{(Fortsetzung)}}\\
|
|
\addlinespace[-\normalbaselineskip] \endhead
|
|
\raggedleft\dots\\
|
|
\endfoot \endlastfoot
|
|
\DescRef{maincls.cmd.part}: \\*
|
|
\begin{tabularx}{\linewidth}{ll}
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule
|
|
\PValue{afterskip} & \PValue{0pt plus 1fil} \\
|
|
\PValue{beforeskip} & \PValue{0pt plus 1fil + \Length{baselineskip}} \\
|
|
\PValue{font} & siehe \DescRef{maincls.fontelement.part},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{innerskip} & \PValue{20pt} \\
|
|
\PValue{level} & -1 \\
|
|
\PValue{prefixfont} & siehe
|
|
\DescRef{maincls.fontelement.partnumber},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{tocindent} & \PValue{0pt} \\
|
|
\PValue{toclevel} & -1 \\
|
|
\PValue{tocnumwidth} & \PValue{2em} \\
|
|
\PValue{tocstyle} & \PValue{part} \\
|
|
\bottomrule
|
|
\end{tabularx} \\
|
|
\addlinespace[\normalbaselineskip]
|
|
\DescRef{maincls.cmd.chapter}: \\*
|
|
\begin{tabularx}{\linewidth}{ll}
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule
|
|
\PValue{afterskip} & siehe \autoref{tab:maincls.chapter.skips} \\
|
|
\PValue{beforeskip} & siehe \autoref{tab:maincls.chapter.skips} \\
|
|
\PValue{font} & siehe \DescRef{maincls.fontelement.chapter},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{innerskip} & \PValue{0.5\Length{baselineskip}} \\
|
|
\PValue{level} & 0 \\
|
|
\PValue{prefixfont} & siehe
|
|
\DescRef{maincls.fontelement.chapterprefix},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{tocindent} & \PValue{0pt} \\
|
|
\PValue{toclevel} & 0 \\
|
|
\PValue{tocnumwidth} & \PValue{1.5em} \\
|
|
\PValue{tocstyle} & \PValue{chapter} \\
|
|
\bottomrule
|
|
\end{tabularx} \\
|
|
\addlinespace[\normalbaselineskip]
|
|
\DescRef{maincls.cmd.section}: \\*
|
|
\begin{tabularx}{\linewidth}{ll}
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule
|
|
\PValue{afterskip} & \PValue{2.3ex plus .2ex} \\
|
|
\PValue{beforeskip} & \PValue{-3.5ex plus -1ex minus -.2ex} \\
|
|
\PValue{font} & siehe \DescRef{maincls.fontelement.section},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{indent} & \PValue{0pt} \\
|
|
\PValue{level} & 1 \\
|
|
\PValue{tocindent} & \PValue{1.5em}\\
|
|
\PValue{toclevel} & 1 \\
|
|
\PValue{tocnumwidth} & \PValue{2.3em}\\
|
|
\PValue{tocstyle} & \PValue{section} \\
|
|
\bottomrule
|
|
\end{tabularx} \\
|
|
\addlinespace[\normalbaselineskip]
|
|
\DescRef{maincls.cmd.subsection}: \\*
|
|
\begin{tabularx}{\linewidth}{ll}
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule\nopagebreak
|
|
\PValue{afterskip} & \PValue{1.5ex plus .2ex} \\
|
|
\PValue{beforeskip} & \PValue{-3.25ex plus -1ex minus -.2ex} \\
|
|
\PValue{font} & siehe
|
|
\DescRef{maincls.fontelement.subsection},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{indent} & \PValue{0pt} \\
|
|
\PValue{level} & 2 \\
|
|
\PValue{tocindent} & \PValue{3.8em}\\
|
|
\PValue{toclevel} & 2 \\
|
|
\PValue{tocnumwidth} & \PValue{3.2em}\\
|
|
\PValue{tocstyle} & \PValue{section} \\
|
|
\bottomrule
|
|
\end{tabularx} \\
|
|
\addlinespace[\normalbaselineskip]
|
|
\DescRef{maincls.cmd.subsubsection}: \\*
|
|
\begin{tabularx}{\linewidth}{ll}
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule\nopagebreak
|
|
\PValue{afterskip} & \PValue{1.5ex plus .2ex} \\
|
|
\PValue{beforeskip} & \PValue{-3.25ex plus -1ex minus -.2ex} \\
|
|
\PValue{font} & siehe
|
|
\DescRef{maincls.fontelement.subsubsection},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{indent} & \PValue{0pt} \\
|
|
\PValue{level} & 3 \\
|
|
\PValue{tocindent} & \PValue{7.0em}\\
|
|
\PValue{toclevel} & 3 \\
|
|
\PValue{tocnumwidth} & \PValue{4.1em}\\
|
|
\PValue{tocstyle} & \PValue{section} \\
|
|
\bottomrule
|
|
\end{tabularx} \\
|
|
\addlinespace[\normalbaselineskip]
|
|
\DescRef{maincls.cmd.paragraph}: \\*
|
|
\begin{tabularx}{\linewidth}{ll}
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule\nopagebreak
|
|
\PValue{afterskip} & \PValue{-1em} \\
|
|
\PValue{beforeskip} & \PValue{3.25ex plus 1ex minus .2ex} \\
|
|
\PValue{font} & siehe
|
|
\DescRef{maincls.fontelement.paragraph},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{indent} & \PValue{0pt} \\
|
|
\PValue{level} & 4 \\
|
|
\PValue{tocindent} & \PValue{10em}\\
|
|
\PValue{toclevel} & 4 \\
|
|
\PValue{tocnumwidth} & \PValue{5em}\\
|
|
\PValue{tocstyle} & \PValue{section} \\
|
|
\bottomrule
|
|
\end{tabularx} \\
|
|
\addlinespace[\normalbaselineskip]
|
|
\DescRef{maincls.cmd.subparagraph}: \\*
|
|
\begin{tabularx}{\linewidth}{ll}
|
|
\toprule
|
|
Einstellung & voreingestellter Wert \\
|
|
\midrule\nopagebreak
|
|
\PValue{afterskip} & \PValue{-1em} \\
|
|
\PValue{beforeskip} & \PValue{3.25ex plus 1ex minus .2ex} \\
|
|
\PValue{font} & siehe
|
|
\DescRef{maincls.fontelement.subparagraph},
|
|
\autoref{tab:maincls.structureElementsFont},
|
|
\autopageref{tab:maincls.structureElementsFont} \\
|
|
\PValue{indent} & \Macro{scr@parindent} \\
|
|
\PValue{level} & 5 \\
|
|
\PValue{tocindent} & \PValue{12em}\\
|
|
\PValue{toclevel} & 5 \\
|
|
\PValue{tocnumwidth} & \PValue{6em}\\
|
|
\PValue{tocstyle} & \PValue{section} \\
|
|
\bottomrule
|
|
\end{tabularx}
|
|
\end{longtable}
|
|
%end{table}
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{DeclareSectionCommands}\OParameter{Einstellungen}%
|
|
\Parameter{Namensliste}
|
|
\Macro{DeclareNewSectionCommands}\OParameter{Einstellungen}%
|
|
\Parameter{Namensliste}
|
|
\Macro{RedeclareSectionCommands}\OParameter{Einstellungen}%
|
|
\Parameter{Namensliste}
|
|
\Macro{ProvideSectionCommands}\OParameter{Einstellungen}%
|
|
\Parameter{Namensliste}
|
|
\end{Declaration}
|
|
Diese\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} Anweisungen können gleich eine ganze Reihe von
|
|
Gliederungsbefehlen definieren oder ändern. Dabei ist \PName{Namensliste} eine
|
|
durch Komma separierte Liste von Namen der Gliederungsbefehle.
|
|
|
|
Die Befehle unterscheiden sich in zwei weiteren Punkten von den zuvor
|
|
erklärten Anweisungen zur Definition oder Änderung eines einzelnen
|
|
Gliederungsbefehls. Zum einen wird im Fehlerfall\textnote{Fehlerbehandlung},
|
|
also wenn eine Anweisung bei \Macro{DeclareNewSectionCommands} bereits zuvor
|
|
existierte oder bei \Macro{RedeclareSectionCommands} noch nicht existierte,
|
|
die Definition dennoch vorgenommen. Ein entsprechender Fehler wird natürlich
|
|
trotzdem gemeldet. Zum anderen gibt es eine weitere Einstellung:
|
|
\important{\PValue{increaselevel}}\OptionVName{increaselevel}{Ganzzahl}.
|
|
Damit ändert sich die Bedeutung von \PValue{level} und \PValue{toclevel}
|
|
(siehe \autoref{tab:maincls-experts.declaresection.keys},
|
|
\autopageref{tab:maincls-experts.declaresection.keys}) dahingehend, dass deren
|
|
Werte lediglich als \PName{Einstellungen} des ersten Gliederungsbefehls aus
|
|
der \PName{Namensliste} dienen. Für alle weiteren Gliederungsbefehle werden
|
|
die Werte von \PValue{level} und \PValue{toclevel} um den Wert von
|
|
\PValue{increaselevel} erhöht. Wurde die Einstellung \PValue{increaselevel}
|
|
ohne Wertzuweisung verwendet, so wird der Wert 1 angenommen.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}[0]
|
|
\Macro{IfSectionCommandStyleIs}\Parameter{Name}\Parameter{Stil}
|
|
\Parameter{Dann-Code}\Parameter{Sonst-Code}
|
|
\end{Declaration}
|
|
In\ChangedAt{v3.27}{\Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}}
|
|
seltenen Fällen ist es nützlich, testen zu können, ob ein Gliederungsbefehl
|
|
einem bestimmten \PName{Stil} angehört. Ist der mittels \PName{Name} bestimmte
|
|
Gliederungsbefehl aus \KOMAScript-Sicht derzeit mit dem angebenen \PName{Stil}
|
|
definiert, so wird der \PName{Dann-Code} ausgeführt, anderenfalls der
|
|
\PName{Sonst-Code}. Ist \Macro{\PName{Name}} nicht definiert oder kein mit
|
|
\KOMAScript-Mitteln definierter Gliederungsbefehl, so wird dies als Fehler
|
|
gemeldet.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{chapterheadstartvskip}
|
|
\Macro{chapterheadmidvskip}
|
|
\Macro{chapterheadendvskip}
|
|
\Macro{partheadstartvskip}
|
|
\Macro{partheadmidvskip}
|
|
\Macro{partheadendvskip}
|
|
\Macro{partheademptypage}
|
|
\end{Declaration}
|
|
Diese\important[i]{\DescRef{maincls.cmd.chapter}\\
|
|
\DescRef{maincls.cmd.part}\\
|
|
\DescRef{maincls.cmd.addchap}\\
|
|
\DescRef{maincls.cmd.addpart}\\
|
|
\DescRef{maincls.cmd.chapter*}\\
|
|
\DescRef{maincls.cmd.part*}\\
|
|
\DescRef{maincls.cmd.addchap*}\\
|
|
\DescRef{maincls.cmd.addpart*}} Anweisungen werden innerhalb von
|
|
Überschriften der zuvor erklärten Stile \PValue{chapter} und \PValue{part} und
|
|
damit für die Definition der Überschriften
|
|
\DescRef{maincls.cmd.chapter}\IndexCmd{chapter},
|
|
\DescRef{maincls.cmd.part}\IndexCmd{part},
|
|
\DescRef{maincls.cmd.addchap}\IndexCmd{addchap},
|
|
\DescRef{maincls.cmd.addpart}\IndexCmd{addpart} und deren Sternvarianten
|
|
\DescRef{maincls.cmd.chapter*}\IndexCmd{chapter*},
|
|
\DescRef{maincls.cmd.part*}\IndexCmd{part*},
|
|
\DescRef{maincls.cmd.addchap*}\IndexCmd{addchap*},
|
|
\DescRef{maincls.cmd.addpart*}\IndexCmd{addpart*} verwendet. Dabei ist
|
|
\Macro{chapterheadstartvskip} eine Anweisung, die dafür vorgesehen ist, vor
|
|
der Kapitelüberschrift einen vertikalen Abstand einzufügen. Entsprechend ist
|
|
\Macro{chapterheadendvskip} eine Anweisung, die dafür vorgesehen ist, nach der
|
|
Kapitelüberschrift einen vertikalen Abstand
|
|
einzufügen. Bei\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}}
|
|
Kapitelüberschriften mit eigener Nummernzeile (siehe Option
|
|
\DescRef{maincls.option.chapterprefix} in \autoref{sec:maincls.structure},
|
|
\DescPageRef{maincls.option.chapterprefix}) wird zwischen der Nummernzeile und
|
|
der eigentlichen Überschrift außerdem \Macro{chapterheadmidvskip} ausgeführt.
|
|
|
|
Für das Einfügen der vertikalen Abstände über und unter Teile-Überschriften
|
|
sind die Anweisungen \Macro{partheadstartvskip} und \Macro{partheadendvskip}
|
|
vorgesehen. Dabei wird ein Seitenumbruch als Teil des vertikalen Abstandes
|
|
interpretiert. Ein solcher Seitenumbruch ist in der Voreinstellung sowohl bei
|
|
\Class{scrbook}\OnlyAt{\Class{scrbook}\and \Class{scrreprt}} als auch
|
|
\Class{scrreprt} in der Definition von \Macro{partheadendvskip} enthalten. Die
|
|
Anweisung \Macro{partheadmidvskip} ist für den Abstand zwischen der
|
|
Teile-Nummer und dem Text der Teile-Überschrift vorgesehen. Die Anweisung
|
|
\Macro{partheademptypage}\ChangedAt{v3.02}{\Class{scrbook}\and
|
|
\Class{scrreprt}} wird bei \Class{scrbook} und \Class{scrreprt}
|
|
gegebenenfalls für die leere Seite nach der Überschrift verwendet.
|
|
|
|
Die Voreinstellungen der sieben Anweisungen sind seit
|
|
\KOMAScript~3.15\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} von der Einstellung von Option
|
|
\DescRef{maincls.option.headings} (siehe \autoref{sec:maincls.structure},
|
|
\DescPageRef{maincls.option.headings}) unabhängig. Die Original-Definitionen
|
|
für die Kapitelüberschriften ab
|
|
\KOMAScript~3.17\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} entsprechen:\IndexLength{@tempskipa}
|
|
\begin{lstcode}
|
|
\newcommand*{\chapterheadstartvskip}{\vspace{\@tempskipa}}
|
|
\newcommand*{\chapterheadmidvskip}{\par\nobreak
|
|
\vskip\@tempskipa}
|
|
\newcommand*{\chapterheadendvskip}{\vskip\@tempskipa}
|
|
\end{lstcode}
|
|
Diese werden auch bei jeder Verwendung von Option
|
|
\OptionValueRef{maincls}{headings}{big}\IndexOption{headings},
|
|
\OptionValueRef{maincls}{headings}{normal} oder
|
|
\OptionValueRef{maincls}{headings}{small} reaktiviert. Als Seiteneffekt haben
|
|
diese Optionen also gegebenenfalls nicht nur Auswirkungen auf
|
|
Kapitelüberschriften, sondern auf alle Überschriften im Stil \PValue{chapter}.
|
|
|
|
Der Stil \PValue{chapter} setzt die interne Länge
|
|
\Length{@tempskipa}\IndexLength{@tempskipa} vor Aufruf von
|
|
\Macro{chapterheadstartvskip} automatisch auf den Wert, der sich aus der
|
|
\DescRef{\LabelBase.cmd.DeclareSectionCommand}-Einstellung%
|
|
\IndexCmd{DeclareSectionCommand} \PValue{beforeskip} ergibt. Vor dem Aufruf
|
|
von \Macro{chapterheadendvskip} geschieht entsprechendes mit dem Wert, der
|
|
sich aus der Einstellung
|
|
\PValue{afterskip} ergibt, und vor dem Aufruf von \Macro{chapterheadmidvskip}
|
|
mit dem Wert, der sich aus der Einstellung \PValue{innerskip}
|
|
ergibt.
|
|
|
|
Da die Voreinstellungen für die Abstände von \DescRef{maincls.cmd.part} nicht
|
|
von Option \DescRef{maincls.option.headings} abhängen, werden auch die
|
|
zugehörigen Anweisungen von dieser Option nicht neu
|
|
definiert. Ihre\ChangedAt{v3.17}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} Original-Definitionen entsprechen bei \Class{scrbook} und
|
|
\Class{scrreprt}:
|
|
\begin{lstcode}
|
|
\newcommand*{\partheadstartvskip}{%
|
|
\null\vskip-\baselineskip\vskip\@tempskipa
|
|
}
|
|
\newcommand*{\partheadmidvskip}{%
|
|
\par\nobreak\vskip\@tempskipa
|
|
}
|
|
\newcommand*{\partheadendvskip}{%
|
|
\vskip\@tempskipa\newpage
|
|
}
|
|
\end{lstcode}
|
|
und bei \Class{scrartcl}:
|
|
\begin{lstcode}
|
|
\newcommand*{\partheadstartvskip}{%
|
|
\addvspace{\@tempskipa}%
|
|
}
|
|
\newcommand*{\partheadmidvskip}{%
|
|
\par\nobreak
|
|
}
|
|
\newcommand*{\partheadendvskip}{%
|
|
\vskip\@tempskipa
|
|
}
|
|
\end{lstcode}
|
|
Auch hier wird vom Stil \PValue{part} die interne Länge
|
|
\Length{@tempskipa}\IndexLength{@tempskipa}\IndexLength{@tempskipa} vor der
|
|
Verwendung der Befehle entsprechend der Einstellungen von
|
|
\DescRef{\LabelBase.cmd.DeclareSectionCommand}\IndexCmd{DeclareSectionCommand}
|
|
gesetzt.
|
|
|
|
Wird eine der Anweisungen, die im Original \Length{@tempskipa} für den
|
|
vertikalen Abstand verwendet, umdefiniert und sollen die Abstände weiterhin
|
|
beispielsweise mit \DescRef{\LabelBase.cmd.RedeclareSectionCommand}
|
|
konfigurierbar sein, so sollte man in der neuen Definition ebenfalls
|
|
\Length{@tempskipa} verwenden. Da\ChangedAt{v3.17}{\Class{scrbook}\and
|
|
\Class{scrreprt}\and \Class{scrartcl}} die Abstände über, innerhalb und
|
|
unter den Überschriften einfacher mit
|
|
\DescRef{\LabelBase.cmd.RedeclareSectionCommand} eingestellt werden können,
|
|
wird generell nicht empfohlen, zu diesem Zweck stattdessen die hier
|
|
beschriebenen Anweisungen umzudefinieren. Sie sollten für tiefgreifendere
|
|
Änderungen reserviert bleiben, die nicht über
|
|
\DescRef{\LabelBase.cmd.RedeclareSectionCommand} zu erreichen sind.
|
|
Auf\textnote{Beispiel!} \cite{homepage} findet sich dazu ein Beispiel, bei
|
|
dem durch Umdefinierung von \Macro{chapterheadstartvskip} und
|
|
\Macro{chapterheadendvskip} Linien über und unter der Kapitelüberschrift
|
|
gesetzt werden.%
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{partlineswithprefixformat}%
|
|
\Parameter{Ebene}\Parameter{Nummer}\Parameter{Text}
|
|
\end{Declaration}
|
|
Diese\ChangedAt{v3.25}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} Anweisung wird von Überschriften des Stils
|
|
\PValue{part}\textnote{Gliederungsstil
|
|
\PValue{part}}\Index{Gliederung>Stil>~\PValue{part}} verwendet. Die beiden
|
|
Argumente \PName{Nummer} und \PName{Text} sind dabei einschließlich
|
|
Einstellung der Fonts für sich bereits fertig formatiert. Letztlich regelt die
|
|
Anweisung also die Anordnung der beiden Teile der Überschrift. Bei nicht
|
|
nummerierten Überschriften ist \PName{Nummer} ein komplett leeres Argument,
|
|
enthält also auch keine Formatierungsanweisungen.
|
|
|
|
Vordefiniert ist die Anweisung mit:
|
|
\begin{lstcode}
|
|
\newcommand{\partlineswithprefixformat}[3]{#2#3}
|
|
\end{lstcode}
|
|
\iffalse bisher eher spartanisch.\fi% Umbruchkorrektur
|
|
|
|
\begin{Example}
|
|
Sie wollen die Teile-Überschriften in eine hellblaue Box mit blauer
|
|
Umrandung stellen, die nur etwa drei Viertel der Breite des Textbereichs
|
|
einnimmt. Hierzu verwenden Sie
|
|
\begin{lstcode}[moretexcs={fcolorbox}]
|
|
\documentclass{scrbook}
|
|
\usepackage{xcolor}
|
|
\renewcommand*{\partlineswithprefixformat}[3]{%
|
|
\fcolorbox{blue}{blue!25}{%
|
|
\parbox{.75\linewidth}{#2#3}%
|
|
}%
|
|
}
|
|
\begin{document}
|
|
\part{Umrahmte Teile}
|
|
\end{document}
|
|
\end{lstcode}
|
|
Allerdings fällt Ihnen auf, dass die Überschrift dabei nicht wie sonst
|
|
für Teile üblich zentriert wird -- weder die Box selbst noch der Text
|
|
innerhalb der Box.
|
|
|
|
Die Ursache für die fehlende Zentrierung der Box liegt
|
|
darin, dass aufgrund der Änderung das in Argument 3 versteckte Absatzende
|
|
nur noch den Absatz innerhalb der Box beendet, aber nicht mehr den Absatz mit
|
|
der \Macro{parbox}. Also ergänzen Sie ein \Macro{par} am Ende der Definition.
|
|
|
|
Die Ursache der fehlenden Zentrierung innerhalb der Box ist, dass in der
|
|
\Macro{parbox}-Anweisung die Ausrichtung von
|
|
\DescRef{maincls.cmd.raggedpart} nicht automatisch gültig ist. Daher
|
|
ergänzen Sie diese Anweisung innerhalb der Box.
|
|
|
|
Mit
|
|
\begin{lstcode}[moretexcs={fcolorbox}]
|
|
\documentclass{scrbook}
|
|
\usepackage{xcolor}
|
|
\renewcommand*{\partlineswithprefixformat}[3]{%
|
|
\fcolorbox{blue}{blue!25}{%
|
|
\parbox{.75\linewidth}{\raggedpart #2#3}%
|
|
}%
|
|
\par
|
|
}
|
|
\begin{document}
|
|
\part{Umrahmte Teile}
|
|
\end{document}
|
|
\end{lstcode}
|
|
erhalten Sie die gewünschte Formatierung.
|
|
\end{Example}
|
|
|
|
Wie im Beispiel gezeigt, ist der Anwender bei der Umdefinierung der Anweisung
|
|
für einige Dinge selbst verantwortlich. Dazu gehört neben dem Erhalt der
|
|
voreingestellten Ausrichtung auch, dass innerhalb der Überschrift kein
|
|
Seitenumbruch, beispielsweise an zusätzlich eingefügten Absätzen oder
|
|
Abständen, erfolgen kann. Das gezeigte Beispiel ist diesbezüglich
|
|
unproblematisch. Nicht nur, dass die beiden Boxen ohnehin keinen Seitenumbruch
|
|
erlauben. \KOMAScript{} verändert außerdem \Macro{interlinepenalty} als Teil
|
|
von \PName{Text} so, dass darin kein Seitenumbruch stattfinden
|
|
darf. Gleichzeitig endet \PName{Text} immer mit einem internen Absatz,
|
|
\Macro{@@par}.
|
|
|
|
Das Argument \PName{Ebene} wird von
|
|
\Macro{partlineswithprefixformat} in der Voreinstellung nicht verwendet und
|
|
ist auch im Beispiel nicht erforderlich. Erst wenn der Anwender mehrere
|
|
Anweisungen im Stil \PValue{part} definiert und man innerhalb der Definition
|
|
nach den Anweisungen unterscheiden will, kann dies über \PName{Ebene}
|
|
erfolgen. Dabei ist \PName{Ebene} der vom Namen der Anweisung abgeleitete Name
|
|
der Gliederungsebene. Bei \DescRef{maincls.cmd.part},
|
|
\DescRef{maincls.cmd.part*}, \DescRef{maincls.cmd.addpart} und
|
|
\DescRef{maincls.cmd.addpart*} ist \PName{Ebene} daher einheitlich
|
|
\PValue{part}.%
|
|
\EndIndexGroup
|
|
|
|
\begin{Declaration}
|
|
\Macro{chapterlineswithprefixformat}%
|
|
\Parameter{Ebene}\Parameter{Nummer}\Parameter{Text}
|
|
\Macro{chapterlinesformat}%
|
|
\Parameter{Ebene}\Parameter{Nummer}\Parameter{Text}
|
|
\end{Declaration}
|
|
Diese\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}} Anweisungen
|
|
werden von Überschriften des Stils \PValue{chapter}\textnote{Gliederungsstil
|
|
\PValue{chapter}}\Index{Gliederung>Stil>~\PValue{chapter}} in Abhängigkeit
|
|
von Option \DescRef{maincls.option.chapterprefix}\IndexOption{chapterprefix}%
|
|
\textnote{\DescRef{maincls.option.chapterprefix}} (siehe
|
|
\autoref{sec:maincls.structure}, \DescPageRef{maincls.option.chapterprefix})
|
|
verwendet. Dabei gibt \Macro{chapterlineswithprefixformat} die Ausgabe bei
|
|
aktivierter Option vor. Bei deaktivierter Option
|
|
bestimmt dagegen \Macro{chapterlinesformat} die Ausgabe.
|
|
|
|
Die beiden Argumente \PName{Nummer} und \PName{Text} sind dabei
|
|
einschließlich Einstellung der Fonts für sich bereits fertig
|
|
formatiert. Letztlich regeln die Anweisungen also die Anordnung der beiden
|
|
Teile der Überschrift. Bei nicht nummerierten Überschriften ist \PName{Nummer}
|
|
ein komplett leeres Argument, enthält also auch keine
|
|
Formatierungsanweisungen.
|
|
|
|
Vordefiniert\textnote{Voreinstellung} sind die beiden Anweisungen mit:
|
|
\begin{lstcode}
|
|
\newcommand{\chapterlinesformat}[3]{%
|
|
\@hangfrom{#2}{#3}%
|
|
}
|
|
\newcommand{\chapterlineswithprefixformat}[3]{#2#3}
|
|
\end{lstcode}
|
|
|
|
\begin{Example}
|
|
Sie wollen Überschriften im Kapitelstil gelb hinterlegen. Für
|
|
Überschriften ohne Präfixzeile definieren Sie daher in der Präambel des
|
|
Dokument:
|
|
\begin{lstcode}[moretexcs={colorbox}]
|
|
\makeatletter
|
|
\renewcommand{\chapterlinesformat}[3]{%
|
|
\colorbox{yellow}{%
|
|
\parbox{\dimexpr\linewidth
|
|
-2\fboxrule-2\fboxsep}{%
|
|
\@hangfrom{#2}#3%
|
|
}%
|
|
}%
|
|
}
|
|
\makeatother
|
|
\end{lstcode}
|
|
und für Überschriften mit Präfixzeile:
|
|
\begin{lstcode}[moretexcs={colorbox}]
|
|
\renewcommand{\chapterlineswithprefixformat}[3]{%
|
|
\colorbox{yellow}{%
|
|
\parbox{\dimexpr\linewidth
|
|
-2\fboxrule-2\fboxsep}{%
|
|
#2#3%
|
|
}%
|
|
}%
|
|
}
|
|
\end{lstcode}
|
|
Allerdings fällt Ihnen nach einiger Zeit auf, dass mit dieser Umdefinierung
|
|
die Überschriften wieder im Blocksatz gesetzt werden. Das liegt daran, dass
|
|
\Macro{parbox} sein Argument so setzt. Um dies zu korrigieren, fügen Sie die
|
|
Anweisung \DescRef{maincls.cmd.raggedchapter} (siehe
|
|
\autoref{sec:maincls.structure}, \DescPageRef{maincls.cmd.raggedchapter}),
|
|
die automatisch bereits vor \Macro{chapterlinesformat} und
|
|
\Macro{chapterlineswithprefixformat} aufgerufen wird, in die Definitionen
|
|
ein:
|
|
\begin{lstcode}[moretexcs={colorbox}]
|
|
\makeatletter
|
|
\renewcommand{\chapterlinesformat}[3]{%
|
|
\colorbox{yellow}{%
|
|
\parbox{\dimexpr\linewidth
|
|
-2\fboxrule-2\fboxsep}{%
|
|
\raggedchapter
|
|
\@hangfrom{#2}#3%
|
|
}%
|
|
}%
|
|
}
|
|
\makeatother
|
|
\renewcommand{\chapterlineswithprefixformat}[3]{%
|
|
\colorbox{yellow}{%
|
|
\parbox{\dimexpr\linewidth
|
|
-2\fboxrule-2\fboxsep}{%
|
|
\raggedchapter
|
|
#2#3%
|
|
}%
|
|
}%
|
|
}
|
|
\end{lstcode}
|
|
Es sei daran erinnert, dass die Klammerung mit den Anweisungen
|
|
\Macro{makeatletter} und \Macro{makeatother} nur in der Dokumentpräambel zu
|
|
verwenden ist. In einer eigenen Wrapper-Klasse oder einem Paket haben sie zu
|
|
entfallen. Sie werden auch nur wegen \Macro{@hangfrom} in der Definition von
|
|
\Macro{chapterlinesformat} benötigt.%
|
|
\end{Example}
|
|
|
|
Wie im Beispiel gezeigt, ist der Anwender bei der Umdefinierung der
|
|
Anweisungen für einige Dinge selbst verantwortlich. Dazu gehört neben dem
|
|
Erhalt der voreingestellten Ausrichtung auch, dass innerhalb der Überschrift
|
|
kein Seitenumbruch, beispielsweise an zusätzlich eingefügten Absätzen oder
|
|
Abständen, erfolgen kann. Das gezeigte Beispiel ist diesbezüglich
|
|
unproblematisch. Nicht nur, dass die beiden Boxen ohnehin keinen Seitenumbruch
|
|
erlauben. \KOMAScript{} verändert außerdem \Macro{interlinepenalty} als Teil
|
|
von \PName{Text} so, dass darin kein Seitenumbruch stattfinden
|
|
darf. Gleichzeitig endet \PName{Text} immer mit einem internen Absatz,
|
|
\Macro{@@par}.
|
|
|
|
Die Anweisung \DescRef{maincls.cmd.raggedchapter} ist übrigens nicht
|
|
Bestandteil von \PName{Text}, weil anderenfalls beispielsweise die Verwendung
|
|
von \Macro{MakeUppercase} innerhalb der Umdefinierung der beiden Anweisungen
|
|
erheblich erschwert wäre. Dennoch sei darauf hingewiesen, dass typografischen
|
|
Regeln zufolge Versalsatz mit gängigen Fonts immer der Sperrung und des
|
|
Ausgleichs bedarf. Die \LaTeX-Anweisung \Macro{MakeUppercase} leistet dies
|
|
jedoch nicht.
|
|
|
|
Das erste Argument, \PName{Ebene}, wird von den Anweisungen in der
|
|
Voreinstellung nicht verwendet und ist auch im Beispiel nicht
|
|
erforderlich. Erst wenn der Anwender mehrere Anweisungen im Stil
|
|
\PValue{chapter} definiert und man innerhalb der Definition nach den
|
|
Anweisungen unterscheiden will, kann dies über \PName{Ebene} erfolgen. Dabei
|
|
ist \PName{Ebene} der vom Namen der Anweisung abgeleitete Name der
|
|
Gliederungsebene. Bei \DescRef{maincls.cmd.chapter},
|
|
\DescRef{maincls.cmd.chapter*}, \DescRef{maincls.cmd.addchap} und
|
|
\DescRef{maincls.cmd.addchap*} ist \PName{Ebene} daher einheitlich
|
|
\PValue{chapter}.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{sectionlinesformat}%
|
|
\Parameter{Ebene}\Parameter{Einzug}\Parameter{Nummer}\Parameter{Text}
|
|
\Macro{sectioncatchphraseformat}%
|
|
\Parameter{Ebene}\Parameter{Einzug}\Parameter{Nummer}\Parameter{Text}
|
|
\end{Declaration}
|
|
Diese\ChangedAt{v3.19}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} Anweisungen werden von Überschriften des Stils
|
|
\PValue{section}\textnote{Gliederungsstil
|
|
\PValue{section}}\Index{Gliederung>Stil>~\PValue{section}} in Abhängigkeit
|
|
davon verwendet, ob die jeweilige Überschrift eine Spitzmarke erzeugt oder
|
|
eine frei stehende Überschrift. Frei stehende Überschriften werden dabei per
|
|
\Macro{sectionlinesformat} ausgegeben, während
|
|
\Macro{sectioncatchphraseformat} für Spitzmarken zuständig ist.
|
|
|
|
In beiden Fällen gibt \PName{Einzug} den Wert eines horizontalen Einzugs
|
|
der Überschrift gegenüber dem Textbereich an. Durch Angabe eines negativen
|
|
Wertes soll es auch möglich sein, die Überschrift in den linken Rand zu
|
|
rücken.
|
|
|
|
Die beiden Argumente \PName{Nummer} und \PName{Text} sind einschließlich
|
|
Einstellung der Fonts für sich bereits fertig formatiert. Letztlich regeln die
|
|
Anweisungen also die Anordnung der beiden Teile der Überschrift. Bei nicht
|
|
nummerierten Überschriften ist \PName{Nummer} ein komplett leeres Argument,
|
|
enthält also auch keine Formatierungsanweisungen.
|
|
|
|
Vordefiniert sind die beiden Anweisungen als:
|
|
\begin{lstcode}
|
|
\newcommand{\sectionlinesformat}[4]{%
|
|
\@hangfrom{\hskip #2#3}{#4}%
|
|
}
|
|
\newcommand{\sectioncatchphraseformat}[4]{\hskip #2#3#4}
|
|
\end{lstcode}
|
|
|
|
Bei Umdefinierung einer der beiden Anweisungen ist wiederum der Anwender
|
|
selbst dafür verantwortlich, Seitenumbrüche innerhalb der Ausgabe zu
|
|
verhindern. \KOMAScript{} hilft hier lediglich mit entsprechend gesetztem
|
|
\Macro{interlinepenalty}.
|
|
|
|
\begin{Example}
|
|
Wie schon im Beispiel der Kapitelüberschriften sollen nun die frei stehenden
|
|
Überschriften der Ebene \PValue{section} mit einer Farbe hinterlegt
|
|
werden. Die frei stehenden Überschriften tieferer Ebenen sollen nicht
|
|
verändert werden:
|
|
\begin{lstcode}[moretexcs={colorbox}]
|
|
\makeatletter
|
|
\renewcommand{\sectionlinesformat}[4]{%
|
|
\Ifstr{#1}{section}{%
|
|
\hspace*{#2}%
|
|
\colorbox{yellow}{%
|
|
\parbox{\dimexpr\linewidth
|
|
-2\fboxrule-2\fboxsep-#2}{%
|
|
\raggedsection
|
|
\@hangfrom{#3}{#4}%
|
|
}%
|
|
}%
|
|
}{%
|
|
\@hangfrom{\hskip #2#3}{#4}%
|
|
}%
|
|
}
|
|
\makeatother
|
|
\end{lstcode}
|
|
Mit dem gezeigten Code wird im Falle eines Einzugs der Überschrift der
|
|
Bereich des Einzugs nicht mit gefärbt. Wird hingegen die Überschrift in den
|
|
linken Rand gestellt, so wird dieser Bereich des Randes ebenfalls farbig
|
|
hinterlegt. Durch Verschiebung der \Macro{hspace*}-Anweisung in die
|
|
\Macro{colorbox} kann dieses Verhalten verändert werden.%
|
|
\iffalse Umbruchkorrekturtext
|
|
|
|
Erneut sei daran erinnert, dass \Macro{makeatletter} und \Macro{makeatother}
|
|
nur in der Dokumentpräambel zu verwenden sind. In einer eigenen
|
|
Wrapper-Klasse oder einem Paket haben sie zu entfallen. Sie werden auch nur
|
|
wegen \Macro{@hangfrom} in der Definition von \Macro{sectionlinesformat}
|
|
benötigt.%
|
|
\else%
|
|
|
|
\Macro{makeatletter} und \Macro{makeatother} werden in der Dokumentpräambel
|
|
erneut wegen \Macro{@hangfrom} benötigt.%
|
|
\fi%
|
|
\end{Example}
|
|
|
|
Das erste Argument, \PName{Ebene}, wird von den Anweisungen in der
|
|
Voreinstellung nicht verwendet. Wie das Beispiel zeigt, kann es aber sehr gut
|
|
dazu verwendet werden, nach unterschiedlichen Gliederungsebenen im gemeinsamen
|
|
Stil \PValue{section} zu unterscheiden.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\DoHook{heading/preinit/\PName{Name}}%
|
|
\DoHook{heading/postinit/\PName{Name}}%
|
|
\DoHook{heading/branch/star/\PName{Name}}%
|
|
\DoHook{heading/branch/nostar/\PName{Name}}%
|
|
\DoHook{heading/begingroup/\PName{Name}}%
|
|
\DoHook{heading/endgroup/\PName{Name}}%
|
|
\end{Declaration}
|
|
\BeginIndex{}{Haken}%
|
|
Abgesehen\ChangedAt[2019/01]{v3.27}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} von den übrigen Einstellmöglichkeiten bieten sämtliche mit
|
|
\DescRef{\LabelBase.cmd.DeclareSectionCommand},
|
|
\DescRef{\LabelBase.cmd.DeclareNewSectionCommand} und
|
|
\DescRef{\LabelBase.cmd.ProvideSectionCommand} definierten und ebenso auch die
|
|
mit \DescRef{\LabelBase.cmd.RedeclareSectionCommand} umdefinierten
|
|
Gliederungsanweisungen eine ganze Reihe an Haken, die per
|
|
\DescRef{scrbase.cmd.AddtoDoHook} manipuliert werden können. Zur
|
|
Funktionsweise dieser \emph{do-hook} genannten Haken sei auf
|
|
\autoref{sec:scrbase.hooks} ab \autopageref{sec:scrbase.hooks} verwiesen. Der
|
|
letzte Teil des Spezifikators ist dabei der \PName{Name} der
|
|
Gliederungsanweisung, wie er auch bei den oben genannten Befehlen als letztes
|
|
Argument anzugeben ist.
|
|
|
|
Wichtig\important{Achtung!} ist, dass keiner dieser Haken für Anweisungen
|
|
verwendet werden sollte, die Auswirkungen auf den Seitenumbruch oder die
|
|
Positionierung der Überschriften haben. Daher sollten nur wirklich erfahrene
|
|
Anwender Gebrauch von diesen Haken machen. Im Zweifelsfall ist außerdem der
|
|
Quellcode der Klasse bezüglich des genauen Ausführungszeitpunktes des
|
|
jeweiligen Hakens zu konsultieren. Diese Haken dienen als letzter Notanker vor
|
|
einer tatsächlichen Umdefinierung von Gliederungsbefehlen außerhalb der von
|
|
\KOMAScript{} gebotenen Mittel.
|
|
|
|
Der\textnote{\DoHook{\dots/preinit/\dots}} Haken
|
|
\DoHook{heading/preinit/\PName{Name}} wird unmittelbar vor der
|
|
Ini"-tialisierung der Anweisungen ausgeführt. Zu diesem Zeitpunkt wurden noch
|
|
keine Einstellungen vorgenommen. Selbst der Absatz, der einer Überschrift
|
|
vorausgeht, ist noch nicht zwingend beendet.
|
|
|
|
Der\textnote{\DoHook{\dots/postinit/\dots}} Haken
|
|
\DoHook{heading/postinit/\PName{Name}} wird etwas später ausgeführt. Zu
|
|
diesem Zeitpunkt wurden einige Einstellungen bereits vorgenommen und auch ein
|
|
vorausgehender Absatz wurde bereits beendet.
|
|
|
|
Der Haken \textnote{\DoHook{\dots/branch/\dots}}
|
|
\DoHook{heading/branch/nostar/\PName{Name}} wird ausgeführt, sobald feststeht,
|
|
dass keine Sternform der Gliederungsanweisung vorliegt. Für die Sternform wird
|
|
hingegen \DoHook{heading/branch/star/\PName{Name}} ausgeführt. Zu diesem
|
|
Zeitpunkt sind gegebenenfalls auch bereits vertikale Abstände über der
|
|
jeweiligen Überschrift eingefügt.
|
|
|
|
Der\textnote{\DoHook{\dots/begingroup/\dots}} Haken
|
|
\DoHook{heading/begingroup/\PName{Name}} wird am Anfang der Gruppe
|
|
ausgeführt, in der schließlich die Überschrift gesetzt wird. Das ist also die
|
|
letzte Eingriffsmöglichkeit vor der Ausgabe der Überschrift.
|
|
|
|
Entsprechend\textnote{\DoHook{\dots/endgroup/\dots}} wird
|
|
\DoHook{heading/endgroup/\PName{Name}} vor dem Ende der Gruppe ausgeführt, in
|
|
der die Überschrift gesetzt wurde. Derzeit ist das auch der letzte Haken
|
|
innerhalb einer Gliederungsanweisung.
|
|
|
|
Zu beachten\textnote{\DescRef{maincls.cmd.minisec}} ist, dass
|
|
\DescRef{maincls.cmd.minisec} keine echte Gliederungsanweisung ist und die
|
|
genannten Haken daher auf diese Anweisung keine Anwendung finden.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{IfUseNumber}\Parameter{Dann-Code}\Parameter{Sonst-Code}
|
|
\end{Declaration}
|
|
Streng\ChangedAt{v3.27}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} genommen handelt es sich hier um eine interne
|
|
Anweisung. Sie ist nur innerhalb von Überschriften zwischen den beiden Haken
|
|
\DoHook{\dots/begingroup/\dots} und \DoHook{\dots/endgroup/\dots}
|
|
spezifiziert. In diesem Fall wird der \PName{Dann-Code} ausgeführt, wenn die
|
|
aktuelle Überschrift gemäß Einstellung von
|
|
\DescRef{maincls.counter.secnumdepth} und aufgrund der Nichtverwendung einer
|
|
Sternform nummeriert werden soll. Soll die Überschrift aufgrund der Verwendung
|
|
einer Sternform oder der Einstellung von \DescRef{maincls.counter.secnumdepth}
|
|
nicht nummeriert werden, so wird der \PName{Sonst-Code} ausgeführt. Bei
|
|
Überschriften im Stil \PValue{chapter} wird für die Entscheidung außerdem
|
|
berücksichtigt, ob die Überschrift im Hauptteil gesetzt wird.
|
|
|
|
Wird die Anweisung außerhalb von
|
|
Überschriften verwendet, so ist ihr Ergebnis nicht spezifiziert. In der Regel
|
|
gibt sie dann eine Fehlermeldung aus und führt weder den \PName{Dann-Code}
|
|
noch den \PName{Sonst-Code} aus.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\Macro{SecDef}\Parameter{Sternanweisung}\Parameter{Normalanweisung}
|
|
\Macro{scr@startsection}\Parameter{Name}\Parameter{Ebene}%
|
|
\Parameter{Einzug}\Parameter{Abstand~davor}\Parameter{Abstand~danach}
|
|
\Parameter{Stilanweisungen}%
|
|
\OParameter{Kurzform}\Parameter{Überschrift}
|
|
\labelsuffix[*]%
|
|
\Macro{scr@startsection}\Parameter{Name}\Parameter{Ebene}%
|
|
\Parameter{Einzug}\Parameter{Abstand~davor}
|
|
\Parameter{Abstand~danach}
|
|
\Parameter{Stilanweisungen}%
|
|
\nobreak\texttt{*}\Parameter{Überschrift}
|
|
\labelsuffix
|
|
\end{Declaration}
|
|
Wie\ChangedAt{v3.15}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} bereits in \autoref{sec:maincls.structure} bei der
|
|
Beschreibung zu den Gliederungsbefehlen ab
|
|
\DescPageRef{maincls.cmd.chapter} erklärt, verfügt \KOMAScript{}
|
|
bezüglich des optionalen Arguments der Gliederungsbefehle über erweiterte
|
|
Möglichkeiten. Um dies zu erreichen, war es notwendig, einige Anweisungen
|
|
des \LaTeX-Kerns zu ersetzen:
|
|
\begin{itemize}
|
|
\item Statt
|
|
\Macro{@startsection}\IndexCmd{@startsection}\important{\Macro{@startsection}}
|
|
wird \Macro{scr@startsection} verwendet. Die Definition
|
|
von \Macro{@startsection} wird jedoch geprüft. Entspricht diese beim Laden
|
|
der Klasse nicht den Erwartungen, so wird eine Warnung
|
|
ausgegeben, diverse
|
|
Möglichkeiten von \KOMAScript{} werden deaktiviert und
|
|
\Macro{scr@startsection} stützt sich auf eine Kopie von
|
|
\Macro{@startsection}, während \Macro{@startsection} selbst
|
|
\Macro{scr@startsection} aufruft.
|
|
\item Statt \Macro{@dblarg}\IndexCmd{@dblarg}\important{\Macro{@dblarg}} wird
|
|
von den Gliederungsbefehlen eine eigene, interne Anweisung
|
|
verwendet.
|
|
\item Statt \Macro{secdef}\IndexCmd{secdef}\important{\Macro{secdef}} wird
|
|
\Macro{SecDef} verwendet, um die erwähnte Änderung
|
|
bezüglich \Macro{@dblarg} zu erreichen. Sollte die Definition von
|
|
\Macro{secdef} nicht den Erwartungen entsprechen, wird eine Warnung
|
|
ausgegeben.
|
|
\item \Macro{@sect}\IndexCmd{@sect}\important{\Macro{@sect}} wird umdefiniert,
|
|
um diverse Erweiterungen durch \KOMAScript{} zu realisieren.
|
|
\item \Macro{@ssect}\IndexCmd{@ssect}\important{\Macro{@ssect}} wird
|
|
umdefiniert, um diverse Erweiterungen von \KOMAScript{} zu realisieren.
|
|
\item \Macro{@xsect}\IndexCmd{@xsect}\important{\Macro{@xsect}} wird
|
|
umdefiniert, um diverse Erweiterungen von \KOMAScript{} zu realisieren.
|
|
\end{itemize}
|
|
Es gibt Überlegungen, in künftigen Versionen von \KOMAScript{} die erwähnten
|
|
Anweisungen aus dem \LaTeX-Kern nicht mehr anzutasten, sondern intern komplett
|
|
durch Eigenentwicklungen zu ersetzen. Bei Verwendung eigentlich inkompatibler
|
|
Pakete würden dadurch automatisch Erweiterungen von \KOMAScript{} deaktiviert
|
|
und die Gliederungsbefehle in die Hände jener Pakete gelegt. Gleichzeitig
|
|
müssten aber zum Erhalt der Kompatibilität mit anderen Paketen zusätzliche
|
|
Maßnahmen ergriffen werden.
|
|
|
|
Die erwähnten Ersatzanweisungen können von Paketautoren genau wie die
|
|
\LaTeX-Kern-Anweisungen verwendet werden, bieten dann aber automatisch die
|
|
erweiterte Funktionalität von \KOMAScript{}. Jedoch sollten sie nicht
|
|
umdefiniert werden, da sie sich jederzeit ändern können und dann die
|
|
Funktionalität von \KOMAScript{} durch diese Umdefinierung erneut
|
|
beeinträchtigt werden könnte. Die Bedeutung der Parameter ist der
|
|
Anleitung zum \LaTeX-Kern \cite{latex:source2e} zu entnehmen.
|
|
Als\ChangedAt[2019/01]{v3.27}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} Ersatz für die Umdefinierung von Anweisungen bietet
|
|
\KOMAScript{} die zuvor dokumentierten Haken.%
|
|
\EndIndexGroup
|
|
|
|
\begin{Explain}
|
|
\begin{Declaration}
|
|
\Macro{At@startsection}\Parameter{Code}
|
|
\Macro{Before@ssect}\Parameter{Code}
|
|
\Macro{Before@sect}\Parameter{Code}
|
|
\end{Declaration}
|
|
Bis\ChangedAt[2019/01]{v3.27}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}} \KOMAScript{}~3.26b dienten diese Anweisungen ebenfalls
|
|
als Ersatz für die Umdefinierung von
|
|
\DescRef{\LabelBase.cmd.scr@startsection} und
|
|
\DescRef{\LabelBase.cmd.SecDef}. Seit\textnote{veraltete
|
|
\KOMAScript-Anweisungen} \KOMAScript~3.27 gelten sie jedoch als veraltet.
|
|
|
|
Intern wird \Macro{At@startsection} seit \KOMAScript~3.27 über den Haken
|
|
\DescRef{\LabelBase.dohook.heading/postinit}
|
|
realisiert. \Macro{Before@ssect} ist mit Hilfe von
|
|
\DescRef{\LabelBase.dohook.heading/branch/star} implementiert und
|
|
\Macro{Before@sect} über \DescRef{\LabelBase.dohook.heading/branch/nostar}.
|
|
\PName{Code} wird den Haken per \DescRef{scrbase.cmd.AddtoDoHook}
|
|
hinzugefügt. Es ist nicht vorgesehen, einmal eingefügten \PName{Code} wieder
|
|
zu entfernen.%
|
|
\EndIndexGroup
|
|
\end{Explain}
|
|
|
|
% \section{Anhang}
|
|
% \seclabel{appendix}
|
|
|
|
\begin{Declaration}
|
|
\Macro{appendixmore}
|
|
\end{Declaration}%
|
|
Bei den {\KOMAScript}-Klassen gibt es innerhalb der Anweisung
|
|
\DescRef{maincls.cmd.appendix}%
|
|
\IndexCmd{appendix}\important{\DescRef{maincls.cmd.appendix}} eine
|
|
Besonderheit. Ist \Macro{appendixmore} definiert, so wird diese Anweisung von
|
|
\DescRef{maincls.cmd.appendix} ebenfalls ausgeführt. Intern wird das von den
|
|
{\KOMAScript}-Klassen \Class{scrbook}\OnlyAt{\Class{scrbook}\and
|
|
\Class{scrreprt}} und \Class{scrreprt} für die Realisierung der Layoutoption
|
|
\DescRef{maincls.option.appendixprefix} genutzt (siehe
|
|
\autoref{sec:maincls.structure},
|
|
\DescPageRef{maincls.option.appendixprefix}). Dies\textnote{Achtung!} sollten
|
|
Sie unbedingt beachten, falls Sie selbst das Makro \Macro{appendixmore}
|
|
definieren oder umdefinieren wollen. Wurde diese Option bereits verwendet, so
|
|
erhalten Sie bei \verb|\newcommand{\appendixmore}{|\dots\verb|}| eine
|
|
Fehlermeldung. Dadurch wird verhindert, dass Sie die Option außer
|
|
Kraft setzen, ohne es zu merken.
|
|
|
|
\begin{Example}
|
|
Sie wollen nicht, dass bei Verwendung der Klasse \Class{scrbook} oder
|
|
\Class{scrreprt} im Hauptteil die Kapitel mit einer Präfixzeile versehen
|
|
werden (siehe Layoutoption \DescRef{maincls.option.chapterprefix}
|
|
in \autoref{sec:maincls.structure},
|
|
\DescPageRef{maincls.option.chapterprefix}). Damit die Konsistenz
|
|
gewahrt bleibt, wollen Sie auch nicht, dass eine solche Zeile im Anhang
|
|
verwendet wird. Stattdessen soll in den Anhängen direkt vor dem
|
|
Kapitelbuchstaben das Wort »Anhang« in der jeweiligen Sprache stehen. Dies
|
|
soll auch für die Kolumnentitel gelten. Also verwenden Sie nicht die
|
|
Layoutoption \DescRef{maincls.option.appendixprefix}, sondern
|
|
definieren in der Dokumentpräambel:
|
|
\begin{lstcode}
|
|
\newcommand*{\appendixmore}{%
|
|
\renewcommand*{\chapterformat}{%
|
|
\appendixname~\thechapter\autodot\enskip}%
|
|
\renewcommand*{\chaptermarkformat}{%
|
|
\appendixname~\thechapter\autodot\enskip}}
|
|
\end{lstcode}
|
|
Sollten Sie doch noch entscheiden, dass Sie die Option
|
|
\DescRef{maincls.option.appendixprefix} bei
|
|
\DescRef{maincls.cmd.documentclass} setzen wollen, so erhalten Sie aufgrund
|
|
der dann bereits definierten Anweisung \Macro{appendixmore} eine
|
|
Fehlermeldung. Damit wird verhindert, dass obige Definition unbemerkt die
|
|
Einstellungen überschreibt, die Sie per Option getroffen haben.
|
|
|
|
Wenn Sie ein vergleichbares Verhalten des Anhangs für die Klasse
|
|
\Class{scrartcl} erreichen wollen, so ist dies ebenfalls möglich. Schreiben
|
|
Sie dazu beispielsweise Folgendes in die Präambel Ihres Dokuments:
|
|
\begin{lstcode}
|
|
\newcommand*{\appendixmore}{%
|
|
\renewcommand*{\sectionformat}{%
|
|
\appendixname~\thesection\autodot\enskip}%
|
|
\renewcommand*{\sectionmarkformat}{%
|
|
\appendixname~\thesection\autodot\enskip}}
|
|
\end{lstcode}
|
|
|
|
Die Erklärungen zu den in diesem Beispiel umdefinierten Anweisungen finden
|
|
Sie in \autoref{sec:maincls.structure},
|
|
\DescPageRef{maincls.cmd.chapterformat} und
|
|
\DescPageRef{maincls.cmd.chaptermarkformat}.
|
|
\end{Example}%
|
|
%
|
|
\EndIndexGroup
|
|
\ExampleEndFix
|
|
|
|
|
|
\section{Literaturverzeichnis}
|
|
\seclabel{bibliography}
|
|
|
|
Die Erklärungen in diesem Abschnitt verlieren mit der Verwendung von Paketen
|
|
wie \Package{biblatex} zunehmend an Bedeutung. Die weitreichenden
|
|
Möglichkeiten solcher Pakete ersetzen dann die hier beschriebenen
|
|
Erweiterungen der \KOMAScript-Klassen.
|
|
|
|
\begin{Declaration}
|
|
\Macro{newbibstyle}\OParameter{Elternstil}\Parameter{Name}%
|
|
\Parameter{Anweisungen}
|
|
\Macro{newblock}
|
|
\Macro{@openbib@code}
|
|
\Macro{bib@beginhook}
|
|
\Macro{bib@endhook}
|
|
\end{Declaration}
|
|
Schon die Standardklassen\textnote{Standardklassen} kennen zur Unterteilung
|
|
der Einträge in das Literaturverzeichnis die Anweisung \Macro{newblock}. Was
|
|
diese Anweisung genau macht, hängt dabei von den Klassenoptionen ab. Wird die
|
|
Option \Option{openbib}\important{\Option{openbib}} verwendet, so werden am
|
|
Ende der Standardklasse die Anweisungen \Macro{@openbib@code} und
|
|
\Macro{newblock} selbst umdefiniert. Von den Standardklassen wird die
|
|
Anweisung \Macro{@openbib@code} beim Start der Liste für das
|
|
Literaturverzeichnis --~genauer: bei der Festlegung der Parameter für diese
|
|
Liste~-- ausgeführt. Es darf davon ausgegangen werden, dass auch viele Pakete,
|
|
die das Literaturverzeichnis umdefinieren, diese Anweisung entsprechend
|
|
abarbeiten.
|
|
|
|
Bei den \KOMAScript-Klassen\textnote{\KOMAScript} geschieht etwas
|
|
ähnliches. Allerdings wird \Macro{@openbib@code} nicht am Ende der Klasse
|
|
umdefiniert. Stattdessen wird mit \Macro{newbibstyle} der Stil
|
|
\PValue{openstyle} für das Literaturverzeichnis definiert. Die
|
|
\PName{Anweisungen}, die dabei in der Implementierung angegeben wurden,
|
|
beinhalten die gewünschten Umdefinierung von \Macro{@openbib@code} und von
|
|
\Macro{newblock}. Wird nun mit Hilfe der Option
|
|
\OptionValueRef{maincls}{bibliography}{openstyle}%
|
|
\IndexOption{bibliography~=\textKValue{openstyle}}%
|
|
\important{\OptionValueRef{maincls}{bibliography}{openstyle}} dieser
|
|
Literaturverzeichnisstil gewählt, so werden die \PName{Anweisungen}
|
|
unmittelbar ausgeführt, also \Macro{@openbib@code} und \Macro{newblock}
|
|
umdefiniert.
|
|
|
|
Neben \Macro{@openbib@code} und \Macro{newblock} können in \PName{Anweisungen}
|
|
auch noch \Macro{bib@beginhook} und \Macro{bib@endhook} umdefiniert
|
|
werden. Die Anweisung \Macro{bib@beginhook} wird unmittelbar nach der
|
|
Überschrift und der Präambel des Literaturverzeichnisses, aber noch vor der
|
|
Liste mit den Literatureinträgen ausgeführt. Die Anweisung \Macro{bib@endhook}
|
|
wird direkt nach dieser Liste am Ende des Literaturverzeichnisses
|
|
ausgeführt. Im Falle eines mit \DescRef{maincls.cmd.BreakBibliography} (siehe
|
|
\autoref{sec:maincls.bibliography},
|
|
\DescPageRef{maincls.cmd.BreakBibliography}) unterbrochenen
|
|
Literaturverzeichnisses werden diese Anweisungen außerdem am Anfang und Ende
|
|
jedes Teils, also unmittelbar vor und nach
|
|
\DescRef{maincls.cmd.BreakBibliography} ausgeführt.
|
|
|
|
Die Anweisungen \Macro{newblock}, \Macro{@openbib@code}, \Macro{bib@beginhook}
|
|
und \Macro{bib@endhook} werden bei der Verwendung eines neuen
|
|
Literaturverzeichnisstils zunächst als leer definiert. Danach werden die
|
|
\PName{Anweisungen} des bei der Definition des Stils optional angegebenen
|
|
Elternstils ausgeführt und dann erst die \PName{Anweisungen}, die bei
|
|
Definition des neuen Stils angegeben wurden. Daraus ergibt sich auch, %
|
|
\iffalse % Umbruchkorrektur
|
|
dass jede der vier Anweisungen innerhalb von \PName{Anweisung} bei Bedarf
|
|
keinesfalls mit \Macro{newcommand}, sondern mit
|
|
\Macro{renewcommand}\IndexCmd{renewcommand}\important{\Macro{renewcommand}}
|
|
definiert werden sollte.%
|
|
\else%
|
|
\enlargethispage{3pt}% Umbruchkorrektur (im Paar)
|
|
dass die vier Anweisungen innerhalb von \PName{Anweisung} bei Bedarf mit
|
|
\Macro{renewcommand}\IndexCmd{renewcommand}\important{\Macro{renewcommand}}
|
|
umzudefinieren sind.%
|
|
\par\enlargethispage{3pt}% Umbruchkorrektur (im Paar)
|
|
\fi%
|
|
|
|
Setzt der Anwender mit den Anweisungen
|
|
\DescRef{maincls.cmd.AtEndBibliography}%\important[i]{\DescRef{maincls.cmd.AtEndBibliography}\\
|
|
% \DescRef{maincls.cmd.AfterBibliographyPreamble}}% Passt blöder Weise nicht!
|
|
\IndexCmd{AtEndBibliography} und
|
|
\DescRef{maincls.cmd.AfterBibliographyPreamble}%
|
|
\IndexCmd{AfterBibliographyPreamble} weitere \PName{Anweisungen} für die
|
|
Ausführung nach der Präambel und am Ende des Literaturverzeichnisses, so
|
|
werden die mit \DescRef{maincls.cmd.AfterBibliographyPreamble} festgelegten
|
|
\PName{Anweisungen} einmalig am Anfang des Literaturverzeichnisses nach
|
|
\Macro{bib@beginhook} und die mit \DescRef{maincls.cmd.AtEndBibliography}
|
|
festgelegten \PName{Anweisungen} einmalig am Ende des Literaturverzeichnisses
|
|
vor \Macro{bib@endhook} ausgeführt.
|
|
|
|
Mit\textnote{Beispiel!} Hilfe des Pakets
|
|
\Package{multicol}\IndexPackage{multicol}\important{\Package{multicol}} (siehe
|
|
\cite{package:multicol}) könnte man beispielsweise einen Literaturstil für ein
|
|
zweispaltiges Literaturverzeichnis definieren:
|
|
% Umbruchkorrektur: listings korrigiert
|
|
\begin{lstcode}
|
|
\newbibstyle{twocolumstyle}{%
|
|
\renewcommand*{\bib@beginhook}{\begin{multicols}{2}}%
|
|
\renewcommand*{\bib@endhook}{\end{multicols}}}%
|
|
\end{lstcode}
|
|
Soll es außerdem eine \emph{open}-Variante davon geben, kann man hier die
|
|
Möglichkeiten der Vererbung verwenden und bei der Definition einen Elternstil
|
|
mit angeben:
|
|
% Umbruchkorrektur: listings korrigiert
|
|
\begin{lstcode}
|
|
\newbibstyle[openstyle]{twocolumopenstyle}{%
|
|
\renewcommand*{\bib@beginhook}{\begin{multicols}{2}}%
|
|
\renewcommand*{\bib@endhook}{\end{multicols}}}%
|
|
\end{lstcode}
|
|
Die Auswahl eines dieser neuen Stile erfolgt dann einfach wieder über die
|
|
Option \DescRef{maincls.option.bibliography}.
|
|
|
|
Wie\textnote{Achtung!} schon \DescRef{maincls.cmd.BreakBibliography} verlieren
|
|
auch diese Anweisungen ganz oder teilweise ihre Wirkung, wenn
|
|
\Environment{thebibliography} beispielsweise durch Verwendung von
|
|
\Package{biblatex}\IndexPackage{biblatex}\important{\Package{biblatex}}
|
|
umdefiniert wird.%
|
|
\EndIndexGroup
|
|
|
|
|
|
\section{Mehr oder weniger obsolete Optionen und Anweisungen}
|
|
\seclabel{obsolete}
|
|
|
|
\LoadNonFree{scrbookreportarticle-experts}{4}
|
|
%
|
|
\EndIndexGroup
|
|
|
|
\endinput
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% mode: flyspell
|
|
%%% coding: utf-8
|
|
%%% ispell-local-dictionary: "de_DE"
|
|
%%% TeX-master: "guide.tex"
|
|
%%% End:
|
|
|
|
% LocalWords: Sternvarianten Kapitelüberschrift Standardklassen Paketautoren
|
|
% LocalWords: Klassenoptionen Gliederungsbefehlen Namensliste umzudefinieren
|
|
% LocalWords: Inhaltsverzeichniseintrags Abstandsanweisungen Sternformen
|
|
% LocalWords: Teilüberschriften Benutzerfreundlichkeit Absatzmarkierung
|
|
% LocalWords: umkonfiguriert Teileüberschrift Abschnittsüberschrift
|
|
% LocalWords: Absolutwert Gliederungsbefehls Präfixzeile Schrifteinstellung
|
|
% LocalWords: Zählername Spitzmarke Kolumnentitels Schrifteinstellungen
|
|
% LocalWords: Strichstärke expandierbar expandierbaren expandierbares
|
|
% LocalWords: spartanisch Kapitelstil Spitzmarken Formatierungsanweisungen
|
|
% LocalWords: Kapitelüberschriften Gliederungsebenen Verzeichniseinträge
|
|
% LocalWords: Verzeichniseintragsstile Gliederungsbefehl Verzeichniseintrag
|
|
% LocalWords: Verzeichniseintrags Verzeichniseintragsstilen Gliederungsstil
|
|
% LocalWords: Gliederungsebene Eintragsebenen Absatzeinzug Dokumentpräambel
|
|
|