% ====================================================================== % scrbookreportarticle.tex % Copyright (c) Markus Kohm, 2001-2007 % % 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.3b of the license. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3b 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.tex % Copyright (c) Markus Kohm, 2001-2007 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. % Die neuste Version dieser Lizenz ist % http://www.latex-project.org/lppl.txt % und Version 1.3b 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 % Maintained by Markus Kohm % % ---------------------------------------------------------------------- % % Kapitel über scrbook, scrreprt und scrartcl in der KOMA-Script-Anleitung % Verwaltet von Markus Kohm % % ============================================================================ \ProvidesFile{scrbookreportarticle.tex}[2007/03/02 KOMA-Script guide (chapter: scrbook, scrreprt, scrartcl)] \chapter{Die Hauptklassen \Class{scrbook}, \Class{scrreprt}, \Class{scrartcl}} \labelbase{maincls} \AddSeeIndex{Anweisung}{gen}{\GuidecmdIndexShort}{cmd}% \AddSeeIndex{Makro}{gen}{\GuidecmdIndexShort}{cmd}% \begin{Explain} Die Hauptklassen des \KOMAScript-Pakets sind als Äquivalent zu den \LaTeX-Standard"-klassen angelegt. Das bedeutet, dass zu den drei Standardklassen \Class{book}\IndexClass{book}, \Class{report}% \IndexClass{report} und \Class{article}\IndexClass{article} im \KOMAScript-Paket Entsprechungen zu finden sind. Daneben ist auch für die Standardklasse \Class{letter}\IndexClass{letter} eine Entsprechung vorhanden. Der Briefklasse in {\KOMAScript} ist jedoch ein eigenes Kapitel gewidmet, da sie sich von den drei Hauptklassen grundsätzlich unterscheidet (siehe \autoref{cha:scrlttr2}). Die Namen der {\KOMAScript}-Klassen sind aus dem Präfix »\texttt{scr}« und den gekürzten Namen der Standardklassen zusammengesetzt. Um die Länge des Namens auf acht Buchstaben zu beschränken, werden dabei notfalls von hinten her die Vokale weggelassen. Eine Gegenüberstellung der Standardklassen und der korrespondierenden \KOMAScript-Klassen zeigt \autoref{tab:maincls.overview}. \end{Explain} Die einfachste Möglichkeit, an Stelle einer Standardklasse eine \KOMAScript-Klasse zu verwenden, ist die Ersetzung des Klassennamens in der Anweisung \verb|\documentclass| entsprechend \autoref{tab:maincls.overview}, also beispielsweise \Macro{documentclass}\PParameter{book} durch \Macro{documentclass}\PParameter{scrbook}. Der anschließende \LaTeX-Lauf sollte lediglich einige Layoutänderungen mit sich bringen. Ein großer Teil der in den nachfolgenden Abschnitten beschriebenen vielfältigen Möglichkeiten und Optionen werden von den \KOMAScript-Klassen zusätzlich geboten. \begin{table} \centering \caption[Klassengegenüberstellung]{Gegenüberstellung der Standardklassen und der \KOMAScript-Klassen} \begin{tabular}{ll} \toprule Standard-Klasse & \KOMAScript-Klasse \\%& \Script-Stil (\LaTeX2.09)\\ \midrule \Class{article} & \Class{scrartcl} \\%& \File{script\textunderscore s} \\ \Class{report} & \Class{scrreprt} \\%& \File{script} \\ \Class{book} & \Class{scrbook} \\%& \File{script} \\ \Class{letter} & \Class{scrlettr} \\%& \File{script\textunderscore l} \\ \bottomrule \end{tabular} \label{tab:maincls.overview} \end{table} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Die Optionen} \label{sec:maincls.options} Dieser Abschnitt behandelt alle Klassenoptionen der drei Hauptklassen. Die Mehrzahl der Optionen ist in genau der gleichen Form auch in den Standardklassen zu finden. Da die Erfahrung jedoch zeigt, dass viele Optionen der Standardklassen unbekannt sind, wurde deren Beschreibung hier aufgenommen. \iffalse % Umbruchoptimierungstext Dies stellt eine Abweichung von dem Grundsatz dar, im \File{scrguide} nur die Dinge zu beschreiben, die abweichend von den Standardklassen implementiert sind. % \fi In \autoref{tab:maincls.stdOptions} finden Sie diejenigen Optionen aufgeführt, die bei mindestens einer {\KOMAScript}-Klasse voreingestellt sind. Dabei ist für jede der drei \KOMAScript-Hauptklassen angegeben, ob die Option voreingestellt ist oder nicht, oder ob sie für die jeweilige Klasse überhaupt nicht definiert ist. Eine nicht definierte Option kann natürlich weder voreingestellt sein, noch vom Anwender gewählt werden. \begin{table}[tbp] \centering \caption{Voreingestellte Optionen der \KOMAScript-Klassen} \begin{tabular}{llll} \toprule Option & \Class{scrbook} & \Class{scrreprt} & \Class{scrartcl} \\ \midrule \Option{11pt} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{a4paper} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{abstractoff} & \emph{nicht definiert} & Voreinstellung & Voreinstellung \\ \Option{bigheadings} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{chapteratlists=} & \PValue{10pt} & \PValue{10pt} & \emph{nicht definiert} \\ \Option{final} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{footnosepline} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{headnosepline} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{listsindent} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{nochapterprefix} & Voreinstellung & Voreinstellung & \emph{nicht definiert} \\ \Option{onelinecaption} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{notitlepage} & & & Voreinstellung \\ \Option{onecolumn} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{oneside} & & Voreinstellung & Voreinstellung \\ \Option{openany} & & Voreinstellung & Voreinstellung \\ \Option{openright} & Voreinstellung & & \\ \Option{parindent} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{tablecaptionbelow} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{titlepage} & Voreinstellung & Voreinstellung \\ \Option{tocindent} & Voreinstellung & Voreinstellung & Voreinstellung \\ \Option{twoside} & Voreinstellung & & \\ \Option{version=} & \PValue{first} & \PValue{first} & \PValue{first} \\ \bottomrule \end{tabular} \label{tab:maincls.stdOptions} \end{table} \begin{Explain} Lassen Sie mich der Erläuterung der Optionen noch eine Bemerkung vorausschicken. Oft ist man sich am Anfang eines Dokuments unsicher, welche Einstellungen konkret zu wählen sind. Bei einigen Optionen, wie der Auswahl des Papierformats, mögen sie bereits vorab feststehen. Aber schon die Frage nach dem \Var{DIV}-Wert für den Satzspiegel könnte im Voraus schwer zu beantworten sein. Andererseits sollten diese Angaben für die Haupttätigkeiten des Autors: Entwurf der Gliederung, Schreiben des Textes, Zusammenstellen von Abbildungen, Tabellen und Verzeichnissen zunächst auch unerheblich sein. Konzentrieren Sie sich als Autor erst einmal auf den Inhalt. Wenn der dann steht, können Sie sich um die Feinheiten der Form kümmern. Neben der Auswahl der Optionen gehören dazu dann auch Dinge wie die Korrektur der Trennung und möglicherweise dezente Eingriffe in den Seitenumbruch oder die Verteilung von Abbildungen und Tabellen. \iftrue % Umbruchoptimierungstext Als Beispiel hierfür sei \autoref{tab:maincls.stdOptions} genannt, die ich mehrfach vom Anfang des Abschnitts an das Ende verschoben habe und umgekehrt. Die Wahl der tatsächlichen Position wird erst bei Fertigstellung des Dokuments feststehen. % \fi \end{Explain} \subsection{Optionen für die Kompatibilität} \label{sec:maincls.compatibilityOptions} \BeginIndex{}{Kompatibilität} Wer seine Dokumente im Quellcode archiviert, legt in der Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber so, dass Verbesserungen und Korrekturen an der Klasse zu Änderungen im Verhalten, inbesondere beim Umbruch, führen. \begin{Declaration} \Option{version}\\ \XOption{version}=\PName{Wert} \end{Declaration} \BeginIndex{Option}{version}% Seit\ChangedAt{v2.96a}{\Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} Version~2.96a besteht bei \KOMAScript\ die Wahl, ob eine Quelldatei so weit irgend möglich auch zukünftig bei einem \LaTeX{}-Lauf zu exakt demselben Ergebnis führen soll oder ob jeweils entsprechend der Anpassungen der neusten Version der Klasse zu setzen ist. Zu welcher Version Kompatibilität herzustellen ist, wird dabei über die Option \Option{version} festgelegt. Voreingestellt ist Version~2.9t. Dasselbe Ergebnis kann mit \begin{lstlisting} version=first \end{lstlisting} oder \begin{lstlisting} version=2.9 \end{lstlisting} oder \begin{lstlisting} version=2.9t \end{lstlisting} erreicht werden. Bei Angabe einer unbekannten Version als \PName{Wert} wird eine Warnung ausgegeben und sicherheitshalber \Option{version=}\PValue{first} angenommen. Mit \begin{lstlisting} version=last \end{lstlisting} kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird also auf zukünftige Kompatibilität verzichtet. Wird die Option ohne Wertangabe verwendet, so wird ebenfalls \PValue{last} angenommen. Die Frage der Kompatiblität betrifft in erster Linie Fragen des Umbruchs. Neue Möglichkeiten, die sich nicht auf den Umbruch auswirken, sind auch dann verfügbar, wenn man per Option die Kompatibilität zu einer älteren Version ausgewählt hat. Die Option hat keine Auswirkungen auf Umbruchänderungen, die bei Verwendung einer neueren Version durch Beseitigung eindeutiger Fehler entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibitlität benötigt, sollte stattdessen mit dem Dokument auch die verwendete \KOMAScript-Version archivieren. Es ist zu beachten, dass die Option \Option{version} nach dem Laden der Klasse nicht mehr verändert werden kann.% % \EndIndex{Option}{version}% % \EndIndex{}{Kompatibilität} \subsection{Optionen für den Satzspiegel} \label{sec:maincls.typeareaOptions} Während bei den Standardklassen der Satzspiegel\Index{Satzspiegel} im Wesentlichen durch das Laden der Optionendateien \File{size10.clo}, \File{size11.clo}, \File{size12.clo} beziehungsweise \File{bk10.clo}, \File{bk11.clo}, \File{bk12.clo} und den Standardschriften bestimmt wird, verwenden die \KOMAScript-Klassen keinen festen Satzspiegel, sondern einen, der von Papierformat\Index{Papierformat} und Schriftgröße abhängt. Dazu stützen sich alle drei Hauptklassen auf das \Package{typearea}-Paket\IndexPackage{typearea} (siehe \autoref{cha:typearea}). Das Paket wird von den Klassen automatisch geladen. Es ist also nicht notwendig, es mit \verb|\usepackage{typearea}| selbst einzuladen. Es ist auch nicht sinnvoll bei Verwendung einer \KOMAScript-Klasse das Paket \Package{typearea} noch einmal explizit zu laden. Sollten Sie beim \LaTeX-Lauf die Fehlermeldung »\texttt{Option clash for package typearea}«\Index{Option clash} erhalten, so liegt das mit größter Wahrscheinlichkeit an einer expliziten Anweisung \Macro{usepackage}\OParameter{Paketoptionen}\PParameter{typearea}. \begin{Declaration} \Option{letterpaper} \\ \Option{legalpaper} \\ \Option{executivepaper} \\ \Option{a\Var{X}paper} \\ \Option{b\Var{X}paper} \\ \Option{c\Var{X}paper} \\ \Option{d\Var{X}paper} \\ \Option{landscape} \end{Declaration}% \BeginIndex{Option}{letterpaper}% \BeginIndex{Option}{legalpaper}% \BeginIndex{Option}{executivepaper}% \BeginIndex{Option}{a0paper}% \BeginIndex{Option}{b0paper}% \BeginIndex{Option}{c0paper}% \BeginIndex{Option}{d0paper}% \BeginIndex{Option}{landscape}% Die grundlegenden Optionen zur Auswahl des Papierformats werden nicht direkt von den Klassen ausgeführt. Stattdessen werden diese als globale Optionen automatisch vom \Package{typearea}-Paket behandelt (siehe \autoref{sec:typearea.paperTypes}, \autopageref{desc:typearea.option.letterpaper}). Dabei entsprechen die Optionen \Option{a5paper}, \Option{a4paper}, \Option{letterpaper}, \Option{legalpaper} und \Option{executivepaper} den gleichnamigen Optionen der Standardklassen und ergeben die gleichen Papierformate. Der aus dem jeweiligen Format berechnete Satzspiegel ist dann jedoch ein anderer.% % \EndIndex{Option}{letterpaper}% \EndIndex{Option}{legalpaper}% \EndIndex{Option}{executivepaper}% \EndIndex{Option}{a0paper}% \EndIndex{Option}{b0paper}% \EndIndex{Option}{c0paper}% \EndIndex{Option}{d0paper}% \EndIndex{Option}{landscape} \begin{Explain} Tatsächlich werden die Optionen für das A"~, B"~, C- oder D-Format vom \Package{typearea}-Paket nicht deshalb ausgewertet, weil es sich um globale Optionen handelt, sondern nur weil die \KOMAScript-Klassen sie explizit an das \mbox{\Package{typearea}}-Paket weiterreichen. Dies hat seine Gründe in der Implementierung der Optionen im \Package{typearea}-Paket beziehungsweise in der Funktion des Mechanismus zur Weiterleitung und Auswertung von Optionen, der von \LaTeX{} zur Verfügung gestellt wird. Dies gilt in gleicher Weise für die nachfolgend aufgeführten Optionen zur Einstellung der Bindekorrektur, des Divisors und der Anzahl der Kopfzeilen. \end{Explain} \begin{Declaration} \Option{BCOR}\PName{Korrektur}\\ \Option{DIV}\PName{Faktor}\\ \Option{DIVcalc}\\ \Option{DIVclassic}\\% \kern-1.5pt\PName{Wert}\Option{headlines} \end{Declaration}% \BeginIndex{Option}{BCOR}% \BeginIndex{Option}{DIV}% \BeginIndex{Option}{DIVcalc}% \BeginIndex{Option}{DIVclassic}% \BeginIndex{Option}{headlines}% Die Optionen für den Divisor und die Bindekorrektur\Index{Bindekorrektur} werden direkt an das \Package{typearea}-Paket weitergeleitet (siehe \autoref{sec:typearea.options}, \autopageref{desc:typearea.option.BCOR} bis \autopageref{desc:typearea.option.headlines}). Dies geschieht in Abweichung zu den Standardklassen, bei denen eine entsprechende Weiterleitung nicht stattfindet. Das gilt ebenfalls für die Option zur Einstellung der Anzahl der Kopfzeilen. % \EndIndex{Option}{BCOR}% \EndIndex{Option}{DIV}% \EndIndex{Option}{DIVcalc}% \EndIndex{Option}{DIVclassic}% \EndIndex{Option}{headlines} \subsection{Optionen für das Layout} \label{sec:maincls.layoutOptions} In diesem Unterabschnitt werden alle Optionen zusammengefasst, die sich im erweiterten Sinne auf das Layout und nicht nur auf den Satzspiegel auswirken. Genau genommen sind natürlich alle Satzspiegeloptionen (siehe \autoref{sec:maincls.typeareaOptions}) Layoutoptionen. Teilweise gilt dies auch umgekehrt. \begin{Declaration} \Option{oneside}\\ \Option{twoside} \end{Declaration}% \BeginIndex{Option}{oneside}% \BeginIndex{Option}{twoside}% Diese beiden Optionen funktionieren genau wie bei den Standardklassen. Bei der Option \Option{oneside} wird ein einseitiges\Index{einseitig} Layout mit einem einseitigen Satzspiegel gewählt. Dies bedeutet insbesondere auch, dass normalweise mit einem flatternden unteren Rand gearbeitet wird. Bei der Option \Option{twoside} wird ein doppelseitiges Layout mit einem doppelseitigen\Index{doppelseitig} Satzspiegel gewählt. Dazu wird der \LaTeX-Befehl \Macro{flushbottom}\IndexCmd{flushbottom} ausgeführt, der dafür sorgt, dass am Seitenende umbrochener Seiten kein variabler Leerraum zu finden ist. Will man stattdessen einen flatternden unteren Rand, so kann man dies mit Hilfe des \LaTeX-Befehls \Macro{raggedbottom}\IndexCmd{raggedbottom} erreichen. % \EndIndex{Option}{oneside}% \EndIndex{Option}{twoside}% \begin{Declaration} \Option{onecolumn}\\ \Option{twocolumn} \end{Declaration}% \BeginIndex{Option}{onecolumn} \BeginIndex{Option}{twocolumn}% Diese beiden Optionen funktionieren genau wie bei den Standardklassen. Mit ihrer Hilfe wird zwischen einem einspaltigen\Index{einspaltig} und einem zweispaltigen\Index{zweispaltig} Layout umgeschaltet. Die in {\LaTeX} eingebauten Möglichkeiten für mehrspaltigen Satz reichen oft nur für einfache Aufgaben aus. Es gibt jedoch das Standardpaket \Package{multicol}, mit dem sehr viel flexiblerer Mehrspaltensatz möglich ist (siehe \cite{package:multicol}).\Index{Spalten}\IndexPackage{multicol} % \EndIndex{Option}{onecolumn} \EndIndex{Option}{twocolumn} \begin{Declaration} \Option{openany}\\ \Option{openright} \end{Declaration}% \BeginIndex{Option}{openany}% \BeginIndex{Option}{openright}% \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% Diese beiden Optionen funktionieren genau wie bei den Standardklassen. Sie haben Auswirkungen auf die Auswahl der Seite, auf der ein Kapitel\Index{Kapitel>Anfang} beginnen kann und existieren daher bei \Class{scrartcl} nicht, da dort die oberste Gliederungsebene unter dem Teil der Abschnitt ist. Die Gliederungsebene Kapitel gibt es bei \Class{scrartcl} nicht. Ein Kapitel beginnt immer auf einer neuen Seite. Mit der Option \Option{openany} kann dies jede neue Seite sein. Bei Wahl der Einstellung \Option{openright} wird jedoch zwingend eine neue rechte Seite vorgeschrieben, wie es bei Büchern allgemein üblich ist. Dazu wird gegebenenfalls eine linke Seite eingefügt. Diese leeren Seiten werden durch implizite Ausführung des \LaTeX-Befehls \Macro{cleardoublepage}\IndexCmd{cleardoublepage} erzeugt. Da zwischen rechten und linken Seiten nur im doppelseitigen Layout unterschieden wird, hat die Option \Option{openright} im einseitigen Layout keinerlei Auswirkungen. Sie sollten sie deshalb zusammen mit der Option \Option{twoside} einsetzen. % \EndIndex{Option}{openany} \EndIndex{Option}{openright} \begin{Declaration} \Option{cleardoublestandard}\\ \Option{cleardoubleplain}\\ \Option{cleardoubleempty} \end{Declaration}% \BeginIndex{Option}{cleardoublestandard}% \BeginIndex{Option}{cleardoubleplain}% \BeginIndex{Option}{cleardoubleempty}% Will man, dass mit der \Macro{cleardoublepage}-Anweisung eingefügte Leerseiten keinen Kolumnentitel,\Index{Kolumnentitel} sondern nur eine Seitenzahl\Index{Paginierung}\Index{Seitenzahl} oder auch weder Kolumnentitel noch Seitenzahl enthalten, so bleibt bei den Standardklassen nur, die Anweisung entsprechend umzudefinieren. {\KOMAScript} bietet Optionen, um dem Anwender dies abzunehmen. Mit der Option \Option{cleardoublestandard} hat man das Standardverhalten von \Macro{cleardoublepage}. Bei Verwendung der Option \Option{cleardoubleplain} wird die leere, linke Seite hingegen mit dem Seitenstil \PValue{plain}\IndexPagestyle{plain} ausgegeben. Bei Verwendung der Option \Option{cleardoubleempty} findet entsprechend der Seitenstil \PValue{empty}\IndexPagestyle{empty} Anwendung. Die Seitenstile werden in \autoref{sec:maincls.pageStyle} näher erläutert. % \EndIndex{Option}{cleardoublestandard}% \EndIndex{Option}{cleardoubleplain}% \EndIndex{Option}{cleardoubleempty}% \begin{Declaration} \Option{titlepage}\\ \Option{notitlepage} \end{Declaration}% \BeginIndex{Option}{titlepage}% \BeginIndex{Option}{notitlepage}% Die beiden Optionen funktionieren genau wie bei den Standardklassen. Mit der Option \Option{titlepage} wird erreicht, dass für die gesamte Titelei\Index{Titel} eigene Seiten verwendet werden. Diese Seiten werden innerhalb von \Environment{titlepage}-Umgebungen gesetzt und erhalten somit normalerweise weder Seitenkopf noch Seitenfuß. Bei {\KOMAScript} wurde die Titelei gegenüber den Standardklassen stark erweitert (siehe dazu \autoref{sec:maincls.titles}). Demgegenüber wird mit der Option \Option{notitlepage} erreicht, dass ein sogenannter \emph{in-page} Titel gesetzt wird. Das heißt, die Titelei wird lediglich speziell hervorgehoben, auf der Titelseite kann aber nachfolgend weiteres Material, beispielsweise eine Zusammenfassung oder ein Abschnitt gesetzt werden. % \EndIndex{Option}{titlepage}% \EndIndex{Option}{notitlepage}% \begin{Explain}% \begin{Declaration} \Option{parskip}\\ \Option{parskip*}\\ \Option{parskip+}\\ \Option{parskip-}\\ \Option{halfparskip}\\ \Option{halfparskip*}\\ \Option{halfparskip+}\\ \Option{halfparskip-}\\ \Option{parindent} \end{Declaration}% \BeginIndex{Option}{parskip}% \BeginIndex{Option}{parskip*}% \BeginIndex{Option}{parskip+}% \BeginIndex{Option}{parskip-}% \BeginIndex{Option}{halfparskip}% \BeginIndex{Option}{halfparskip*}% \BeginIndex{Option}{halfparskip+}% \BeginIndex{Option}{halfparskip-}% \BeginIndex{Option}{parindent}% Die Standardklassen setzen Absätze\Index[indexmain]{Absatz} normalerweise mit Absatzeinzug und ohne Absatzabstand. Bei Verwendung eines normalen Satzspiegels, wie ihn \Package{typearea} bietet, ist dies die vorteilhafteste Absatzauszeichnung. Würde man ohne Einzug und Abstand arbeiten, hätte der Leser als Anhaltspunkt nur die Länge der letzten Zeile. Im Extremfall kann es sehr schwer sein, zu erkennen, ob eine Zeile voll ist oder nicht. Des Weiteren stellt der Typograf fest, dass die Auszeichnung des Absatzendes am Anfang der nächsten Zeile leicht vergessen ist. Demgegenüber ist eine Auszeichnung am Absatzanfang einprägsamer. Der Absatzabstand hat den Nachteil, dass er in verschiedenem Zusammenhang leicht verloren geht. So wäre nach einer abgesetzten Formel nicht mehr festzustellen, ob der Absatz fortgesetzt wird oder ein neuer beginnt. Auch am Seitenanfang müsste zurückgeblättert werden, um feststellen zu können, ob mit der Seite auch ein neuer Absatz beginnt. All diese Probleme sind beim Absatzeinzug nicht gegeben. Eine Kombination von Absatzeinzug und Absatzabstand ist wegen der übertriebenen Redundanz abzulehnen. Der Einzug\Index[indexmain]{Einzug} alleine ist deutlich genug. Der einzige Nachteil des Absatzeinzuges liegt in der Verkürzung der Zeile. Damit gewinnt der Absatzabstand\Index{Absatzabstand} bei ohnehin kurzen Zeilen, etwa im Zeitungssatz, seine Berechtigung. \end{Explain} Unabhängig von obigen Erläuterungen wird hin und wieder ein Layout mit Absatzabstand an Stelle des Absatzeinzugs gefordert. \KOMAScript{} bietet hierfür mit \Option{parskip}, \Option{parskip-}, \Option{parskip*}, \Option{parskip+} sowie \Option{halfparskip}, \Option{halfparskip-}, \Option{halfparskip*} und \Option{halfparskip+} eine ganze Reihe von Optionen. Die vier \Option{parskip}-Optionen setzen jeweils einen Absatzabstand von einer Zeile. Die vier \Option{halfparskip}-Optionen verwenden nur eine halbe Zeile. Um zu verhindern, dass beispielsweise beim Seitenwechsel ein Absatzwechsel unerkannt bleibt, wird bei jeweils drei Varianten dafür gesorgt, dass die letzte Zeile eines Absatzes nicht komplett gefüllt wird. Bei der Variante ohne Plus und Stern bleibt mindestens ein Leeraum von 1\Unit{em}. Bei der Plus-Variante bleibt mindestens ein Drittel einer normalen Zeile und bei der Stern-Variante mindestens ein Viertel einer normalen Zeile frei. Bei der Minus-Variante werden keine Vorkehrungen für die letzte Zeile eines Absatzes getroffen. Alle acht Optionen zur Auswahl eines Absatzabstandes verändern außerdem den Abstand vor, nach und innerhalb von Listenumgebungen. Dadurch wird verhindert, dass diese Umgebungen oder Absätze innerhalb dieser Umgebungen stärker vom Text abgesetzt werden als die Absätze des normalen Textes voneinander. Darüber hinaus wird dafür gesorgt, dass im Inhalts"~, Abbildungs- und Tabellenverzeichnis ohne zusätzlichem Absatzabstand gearbeitet wird. Voreingestellt ist bei \KOMAScript{} das Verhalten der Option \Option{parindent}. Hierbei gibt es keinen Absatzabstand, sondern einen Absatzeinzug von 1\Unit{em}. % \EndIndex{Option}{parskip}% \EndIndex{Option}{parskip*}% \EndIndex{Option}{parskip+}% \EndIndex{Option}{parskip-}% \EndIndex{Option}{halfparskip}% \EndIndex{Option}{halfparskip*}% \EndIndex{Option}{halfparskip+}% \EndIndex{Option}{halfparskip-}% \EndIndex{Option}{parindent}% \begin{Declaration} \Option{headsepline}\\ \Option{headnosepline}\\ \Option{footsepline}\\ \Option{footnosepline} \end{Declaration}% \BeginIndex{Option}{headsepline}% \BeginIndex{Option}{headnosepline}% \BeginIndex{Option}{footsepline}% \BeginIndex{Option}{footnosepline}% Wird unter Kolumnentiteln eine horizontale Linie\Index{Trennlinie} gewünscht, so lässt sich diese mit der Option \Option{headsepline} einschalten. Die Option \Option{headnosepline} stellt die Umkehrung dar. Bei den Seitenstilen \PValue{empty} und \PValue{plain} hat dies selbstverständlich keine Auswirkung, da hier auf einen Seitenkopf\Index{Seitenkopf} ausdrücklich verzichtet werden soll. Typografisch betrachtet hat eine solche Linie immer die Auswirkung, dass der Kopf optisch näher an den Text heranrückt. Dies bedeutet nun nicht, dass der Kopf räumlich weiter vom Textkörper\Index{Textbereich} weggerückt werden müsste. Stattdessen sollte der Kopf dann bei der Berechnung des Satzspiegels als zum Textkörper gehörend betrachtet werden. Dies wird bei {\KOMAScript} dadurch erreicht, dass bei Verwendung der Klassenoption \Option{headsepline} automatisch die Paketoption \Option{headinclude} an das \Package{typearea}-Paket weitergereicht wird. Für eine Trennlinie\Index{Trennlinie} über dem Seitenfuß gibt es die analog funktionierenden Optionen \Option{footsepline} und \Option{footnosepline}. Bei Aktivierung der Trennlinie mit \Option{footsepline} wird automatisch die Option \Option{footinclude} an das \Package{typearea}-Paket weitergereicht. Im Gegensatz zu \Option{headsepline} wirkt sich die Option \Option{footsepline} auch beim Seitenstil \PValue{plain} aus, da \PValue{plain} eine Seitenzahl im Fuß ausgibt. % \EndIndex{Option}{headsepline}% \EndIndex{Option}{headnosepline}% \EndIndex{Option}{footsepline}% \EndIndex{Option}{footnosepline}% \begin{Declaration} \Option{chapterprefix}\\ \Option{nochapterprefix} \end{Declaration}% \BeginIndex{Option}{chapterprefix}% \BeginIndex{Option}{nochapterprefix}% \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% Bei den Standardklassen \Class{book} und \Class{report} werden Kapitelüberschriften% \Index{Kapitel>Ueberschrift=Überschrift} in der Form ausgegeben, dass zunächst in einer Zeile »Kapitel«\footnote{Bei Verwendung einer anderen Sprache als Deutsch wird »Kapitel« selbstverständlich in der jeweiligen Sprache gesetzt.} % gefolgt von der Kapitelnummer steht. Erst ab der nächsten Zeile wird dann die Überschrift in linksbündigem Flattersatz ausgegeben. Bei {\KOMAScript} kann dieses Verhalten mit der Klassenoption \Option{chapterprefix} ebenfalls erreicht werden. Voreingestellt ist jedoch das Verhalten der Option \Option{nochapterprefix}. Die Optionen wirken sich außerdem auf das Aussehen der automatischen Kolumnentitel für Kapitel aus (siehe \autoref{sec:maincls.pageStyle}). % \EndIndex{Option}{chapterprefix}% \EndIndex{Option}{nochapterprefix}% \begin{Declaration} \Option{appendixprefix}\\ \Option{noappendixprefix} \end{Declaration}% \BeginIndex{Option}{appendixprefix}% \BeginIndex{Option}{noappendixprefix}% \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% Zuweilen kommt es vor, dass man die Kapitelüberschriften im Hauptteil durchaus in der einfachen Form von \Option{nochapterprefix} setzten möchte. Gleichzeitig sollen die Überschriften im Anhang\Index{Anhang} jedoch davon abweichend mit einer Präfixzeile, »Anhang« gefolgt vom Buchstaben des Anhangs, versehen werden. Dies ist mit der Klassenoption \Option{appendixprefix} möglich. Da sich jedoch dadurch ein inkonsistentes Layout ergibt, rate ich von der Verwendung ab. Lediglich aus Gründen der symmetrischen Vollständigkeit gibt es auch die Umkehrungsoption \Option{noappendixprefix}. Mir ist jedoch keine sinnvolle Anwendung dieser Option bekannt. % \EndIndex{Option}{appendixprefix}% \EndIndex{Option}{noappendixprefix}% \begin{Declaration} \Option{onelinecaption}\\ \Option{noonelinecaption} \end{Declaration} \BeginIndex{Option}{onelinecaption}% \BeginIndex{Option}{noonelinecaption}% Bei den Standardklassen wird generell zwischen einzeiligen und mehrzeiligen Über- oder Unterschriften von Tabellen und Abbildungen unterschieden. Einzeilige Texte werden dabei grundsätzlich zentriert, während mehrzeilige Texte linksbündig im Blocksatz gesetzt werden. Dieses Verhalten, das auch bei \KOMAScript{} voreingestellt ist, entspricht der Option \Option{onelinecaption}. Bei Verwendung der Option \Option{noonelinecaption} findet hingegen keine Sonderbehandlung für einzeilige Texte statt. \begin{Explain} Der Verzicht auf die Sonderbehandlung wird auch gerne als Lösung für einen weiteren Nebeneffekt beschrieben, der manchmal höchst erwünscht ist. Werden Fußnoten innerhalb von \Macro{caption} gesetzt, so werden diese in der Regel falsch nummeriert. Dies liegt daran, dass bereits beim Ausmessen, ob ein einzeiliger Text vorliegt, der Fußnotenzähler für jede Fußnote einmal erhöht wird. Bei Verwendung der Option \Option{noonelinecaption} findet dieses Ausmessen jedoch gar nicht erst statt. Die Nummern der Fußnoten sind damit korrekt. Bei \KOMAScript{} ist ab Version~2.8q jedoch ohnehin eine Umgehung dieses Problems eingebaut. Damit kann man Fußnoten auch mit \Option{onelinecaption} in Über- oder Unterschriften von Tabellen und Abbildungen verwenden. Allerdings sollte bei Verwendung von Fußnoten in Gleitumgebungen der Inhalt der Gleitumgebung immer in eine \Environment{minipage}-Umgebung verpackt werden. So bleiben Gleitumgebung und Fußnote garantiert zusammen.% \iffalse % Umbruchkorrekturtext Persönlich halte ich die Verwendung von Fußnoten in Gleitumgebungen, also von Verweisen innerhalb von Verweisen, für stilistisch fragwürdig.% \fi \end{Explain} % \EndIndex{Option}{onelinecaption}% \EndIndex{Option}{noonelinecaption}% \subsection{Optionen für die Schriftwahl} \label{sec:maincls.fontOptions} Schriftoptionen wirken sich auf die Größe der Grundschrift oder der Schrift einzelner Teile aus. % Theoretisch wären auch % Optionen, die sich auf die Schriftart auswirken, Schriftoptionen. % Solche Optionen gibt es bei {\KOMAScript} derzeit jedoch nicht. \begin{Declaration} \Option{10pt}\\% \Option{11pt}\\% \Option{12pt}\\ \Option{\Var{X}pt} \end{Declaration}% \BeginIndex{Option}{10pt}% \BeginIndex{Option}{11pt}% \BeginIndex{Option}{12pt}% \BeginIndex{Option}{\Var{X}pt}% Die Optionen \Option{10pt}, \Option{11pt} und \Option{12pt} entsprechen den Standardoptionen. Im Gegensatz zu den Standardklassen kann bei {\KOMAScript} jedoch auch eine andere Schriftgröße\Index[indexmain]{Schriftgroesse=Schriftgröße} eingestellt werden. Da bei {\LaTeX} jedoch nur Klassenoptionsdateien für 10\Unit{pt}, 11\Unit{pt} und 12\Unit{pt} mitgeliefert werden und {\KOMAScript} keine entsprechenden Dateien bereit stellt, müssen Sie selbst für diese Dateien sorgen. Das Paket \Package{extsizes} (siehe \cite{package:extsizes}) stellt beispielsweise mit \File{size14.clo} solche Dateien zur Verfügung. Diese können bei \KOMAScript{} direkt verwendet werden, indem die entsprechende Größe, beispielsweise \Option{14pt}\IndexOption{14pt}, als Klassenoption angegeben wird. Bei sehr großen Schriften kann es jedoch zu einem arithmetischen Überlauf bei der Satzspiegelberechnung im \Package{typearea}-Paket kommen. % \EndIndex{Option}{10pt}% \EndIndex{Option}{11pt}% \EndIndex{Option}{12pt}% \EndIndex{Option}{\Var{X}pt}% \begin{Declaration} \Option{smallheadings}\\ \Option{normalheadings}\\ \Option{bigheadings} \end{Declaration}% \BeginIndex{Option}{smallheadings}% \BeginIndex{Option}{normalheadings}% \BeginIndex{Option}{bigheadings}% Die Überschriften\index{Ueberschriften=Überschriften}\index{Gliederung} werden sowohl bei den Standardklassen als auch bei {\KOMAScript} normalerweise recht groß gesetzt. Dies gefällt nicht jedem und wirkt insbesondere bei kleinen Papiergrößen oft störend. Daher stehen bei {\KOMAScript} neben den mit der Option \Option{bigheadings} standardmäßig sehr groß voreingestellen Überschriften die beiden Optionen \Option{normalheadings} und \Option{smallheadings} zur Ver"-fügung, mit denen man insgesamt kleinere Überschriften erhält. Die aus den Optionen resultierenden Schriftgrößen sind für die Überschriften der Klassen \Class{scrbook} und \Class{scrreprt} \autoref{tab:maincls.structureElementsFont}, \autopageref{tab:maincls.structureElementsFont} zu entnehmen. Bei \Class{scrartcl} werden generell etwas kleinere Überschriften verwendet. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Die Abstände vor und nach Kapitelüberschriften werden von diesen Optionen ebenfalls beeinflusst. Auf Kapitelüberschriften wirken sich außerdem die Layoutoptionen \Option{chapterprefix} und \Option{nochapterprefix} sowie im Anhang \Option{appendixprefix} und \Option{noappendixprefix} aus, die in \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.chapterprefix} % und \autopageref{desc:maincls.option.appendixprefix} % <- gleiche Seite beschrieben worden sind. % \EndIndex{Option}{smallheadings}% \EndIndex{Option}{normalheadings}% \EndIndex{Option}{bigheadings}% \subsection{Optionen für das Inhaltsverzeichnis} \label{sec:maincls.tocOptions} Bei {\KOMAScript} gibt es mehrere Optionen, die sich auf den Inhalt des Inhaltsverzeichnisses\Index[indexmain]{Inhaltsverzeichnis} auswirken. Die Form des Inhaltsverzeichnisses ist zwar fest, es kann jedoch durch Optionen zwischen unterschiedlichen Varianten gewählt werden. \begin{Explain}% \begin{Declaration} \Option{liststotoc}\\ \Option{idxtotoc}\\ \Option{bibtotoc}\\ \Option{bibtotocnumbered}\\ \Option{liststotocnumbered} \end{Declaration}% \BeginIndex{Option}{liststotoc}% \BeginIndex{Option}{idxtotoc}% \BeginIndex{Option}{bibtotoc}% \BeginIndex{Option}{bibtotocnumbered}% \BeginIndex{Option}{liststotocnumbered}% Normalerweise erscheinen Tabellen-\Index{Tabellen>Verzeichnis der} und Abbildungsverzeichnis\Index{Abbildungen>Verzeichnis der}, Index\Index{Index} und Literaturverzeichnis\Index{Literaturverzeichnis} nicht im Inhaltsverzeichnis. Im klassischen Buchdruck wird auf entsprechende Einträge bewusst verzichtet. Das ist unter anderem deshalb so, weil stillschweigend von einer ganz bestimmten Verteilung dieser Verzeichnisse ausgegangen wird, wenn die entsprechenden Teile überhaupt verwendet werden: \begin{itemize} \item Inhaltsverzeichnis nach der Titelei, \item Tabellen- und Abbildungsverzeichnis nach dem Inhaltsverzeichnis, \item Index ganz am Ende, \item Literaturverzeichnis vor dem Index. \end{itemize} Bücher, die all diese Verzeichnisse aufweisen, sind außerdem häufig mit diesen praktischen Bändern gebunden, die man an den entsprechenden Stellen ins Buch legen kann, so dass besagte Verzeichnisse höchstens einmal gesucht werden müssen.\par \end{Explain} Neuerdings ist es üblich geworden, dass Tabellen- und Abbildungsverzeichnis sowie das Literaturverzeichnis, seltener der Index im Inhaltsverzeichnis zu finden sind. Dies hat sicher auch mit der neuen Mode zu tun, Abbildungs- und Tabellenverzeichnis ans Buchende zu stellen. Beide Verzeichnisse haben von Aufbau und Intention eine deutliche Ähnlichkeit mit dem Inhaltsverzeichnis. Daher betrachte ich die Entwicklung skeptisch. Da es keinen Sinn hat, nur das Tabellen- oder nur das Abbildungsverzeichnis ohne das jeweils andere ins Inhaltsverzeichnis aufzunehmen, gibt es nur eine Option \Option{liststotoc}, mit der beide Verzeichnisse gemeinsam ins Inhaltsverzeichnis aufgenommen werden. Dabei werden auch Verzeichnisse berücksichtigt, die mit Hilfe des \Package{float}-Pakets\IndexPackage{float} ab Version~1.2e erstellt werden (siehe \cite{package:float}). Als Verzeichnisse, die den Inhalt anderer Abschnitte des Werks auf"|führen, erhalten Tabellen"~, Abbildungs- und die mit dem \Package{float}-Paket erzeugten Verzeichnisse grundsätzlich keine Kapitelnummer. Der Index erhält mit der Option \Option{idxtotoc} einen Eintrag ins Inhaltsverzeichnis. Da der Index ebenfalls nur Verweise auf den Inhalt anderer Abschnitte enthält, wird auch er grundsätzlich nicht nummeriert. Das Literaturverzeichnis stellt eine etwas andere Art von Verzeichnis dar. Hier wird nicht der Inhalt des vorliegenden Werks aufgelistet, sondern auf externe Inhalte verwiesen. Mit dieser Begründung könnte man argumentieren, dass das Literaturverzeichnis ein eigenes Kapitel bzw. einen eigenen Abschnitt darstellt, und somit eine Nummer verdient. Die Option \Option{bibtotocnumbered} führt genau dazu, einschließlich des dann fälligen Eintrags in das Inhaltsverzeichnis. Ich selbst bin der Meinung, dass bei dieser Argumentation auch ein klassisches, kommentiertes Quellenverzeichnis ein eigenes Kapitel wäre. Außerdem ist das Literaturverzeichnis letztlich nichts, was man selbst geschrieben hat. Deshalb verdient es allenfalls einen nicht nummerierten Eintrag ins Inhaltsverzeichnis, was mit der Option \Option{bibtotoc} erreicht wird. Nachdem\ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} ich bereits der Option \Option{liststotoc} recht skeptisch und der Option \Option{bibtotocnumbered} ablehnend gegenüberstehe, sollte es nicht wundern, dass ich die Option \Option{liststotocnumbered} nur zähneknirschend implementiert habe. Als nächstes will noch jemand, dass das Inhaltsverzeichnis nummeriert und im Inhaltsverzeichnis aufgeführt wird. Wer daher eine Erklärung zur Option \Option{liststotoc} erwartet, sucht in dieser Anleitung vergeblich danach. Eine entsprechende Option für das Stichwortverzeichnis wäre ebenfalls derart unsinnig, dass ich ihre Implementierung bisher standhaft abgelehnt habe. % \EndIndex{Option}{liststotoc}% \EndIndex{Option}{idxtotoc}% \EndIndex{Option}{bibtotoc}% \EndIndex{Option}{bibtotocnumbered}% \EndIndex{Option}{liststotocnumbered}% \begin{Declaration} \Option{tocindent}\\ \Option{tocleft} \end{Declaration}% \BeginIndex{Option}{tocindent}% \BeginIndex{Option}{tocleft}% Normalerweise\ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} wird das Inhaltsverzeichnis\Index{Inhaltsverzeichnis} so formatiert, dass die Gliederungsebenen unterschiedlich weit eingezogen werden. Dabei wird für die Gliederungsnummer jeder Ebene ein Raum fester Breite vorgesehen, in dem die Nummer linksbündig gesetzt wird. Dies entspricht der Verwendung der Option \Option{tocindent}. Werden sehr viele Gliederungspunkte verwendet, so werden die Gliederungsnummern sehr breit. Damit reicht der vorgesehene Platz nicht aus. In \cite{DANTE:FAQ} wird für solche Fälle vorgeschlagen, die Erzeugung des Inhaltsverzeichnisses umzudefinieren. \KOMAScript{} bietet jedoch eine alternative Formatierung an, bei der das Problem nicht auf"|tritt. Bei Verwendung der Option \Option{tocleft} werden die unterschiedlichen Gliederungsebenen nicht unterschiedlich weit eingezogen. Stattdessen wird eine tabellenartige Form gewählt, in der alle Gliederungsnummern und alle Gliederungstexte jeweils in einer Spalte linksbündig untereinander stehen. Der für die Gliederungsnummern benötigte Platz wird dabei automatisch ermittelt. \begin{Explain} Damit der Platz, der für die Gliederungsnummern benötigt wird, bei Option \Option{tocleft} automatisch ermittelt werden kann, müssen einige Makros umdefiniert werden. Es ist zwar unwahrscheinlich, aber nicht ausgeschlossen, dass dies zu Problemen bei Verwendung anderer Pakete führt. Sollten Sie diesen Verdacht haben, probieren Sie alternativ die Option \Option{tocindent}, die ohne solche Umdefinierungen auskommt. Bei Verwendung von Paketen, die ebenfalls in die Formatierung des Inhaltsverzeichnisses eingreifen, ist außerdem damit zu rechnen, dass die Optionen \Option{tocleft} und \Option{tocindent} nicht funktionieren. Sicherheitshalber sollte man bei Verwendung solcher Pakete keine der beiden Optionen als globale Optionen, also nicht als Klassenoptionen, angeben. Bei Option \Option{tocleft} erfolgt die Ermittlung der für die Gliederungsnummern benötigten Breite während der Ausgabe des Inhaltsverzeichnisses. Nach einer Änderung, die sich auf das Inhaltsverzeichnis auswirkt, werden maximal drei \LaTeX-Durchläufe benötigt, bis das Inhaltsverzeichnis mit korrektem Wert dargestellt wird. \end{Explain} % \EndIndex{Option}{tocindent}% \EndIndex{Option}{tocleft}% \subsection{Optionen für die Verzeichnisse der Gleitumgebungen} \label{sec:maincls.listsOptions} Die bekanntesten Verzeichnisse von Gleitumgebungen sind das Abbildungs- und das Tabellenverzeichnis. Beispielsweise mit Hilfe des \Package{float}-Pakets\IndexPackage{float} (siehe \cite{package:float}) können jedoch eigene Gleitumgebungen erstellt werden, die ebenfalls in Verzeichnissen erfasst werden. \begin{Explain} Ob sich \KOMAScript-Optionen auf Verzeichnisse auswirken, die mit Hilfe von anderen Paketen erstellt werden, hängt maßgeblich von diesen Paketen ab. Bei den Verzeichnissen des \Package{float}-Pakets\IndexPackage{float} ist dies normalerweise der Fall. Neben den hier angegebenen Optionen gibt es weitere, die sich zwar auf die Verzeichnisse der Gleitumgebungen, nicht jedoch auf deren Formatierung oder Inhalt auswirken. Stattdessen haben sie Auswirkungen auf den Inhalt des Inhaltsverzeichnisses. Deshalb finden sich die entsprechenden Erläuterungen in \autoref{sec:maincls.tocOptions}. \end{Explain} \begin{Declaration} \Option{listsindent}\\ \Option{listsleft} \end{Declaration}% \BeginIndex{Option}{listsindent}% \BeginIndex{Option}{listsleft}% Normalerweise\ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} werden die Verzeichnisse\Index{Abbildungen>Verzeichnis der}\Index{Tabellen>Verzeichnis der} der Gleitumgebungen so formatiert, dass für die Nummer ein Raum fester Breite verwendet wird. Dies entspricht der Verwendung der Option \Option{listsindent}. Werden die Nummern sehr breit, weil beispielsweise sehr viele Tabellen verwendet werden, so reicht der vorgesehene Platz irgendwann nicht mehr aus. Vergleichbar zur Option \Option{tocleft} bietet \KOMAScript{} daher die Option \Option{listsleft}. Dabei wird die Breite der Nummern automatisch ermittelt und der Platz entsprechend angepasst. Bezüglich der Nebenwirkungen und Funktionsweise gilt, was in \autoref{sec:maincls.tocOptions}, \autopageref{desc:maincls.option.tocleft} für die Option \Option{tocleft} erklärt wurde. Es sei an dieser Stelle jedoch nochmals darauf hingewiesen, dass mit der Option \Option{listsleft} mehrere \LaTeX-Durchläufe benötigt werden, bis die Verzeichnisse ihre endgültige Form erhalten haben. % \EndIndex{Option}{listsindent}% \EndIndex{Option}{listsleft}% \begin{Declaration} \Option{chapteratlists}\\ \XOption{chapteratlists}=\PName{Wert} \end{Declaration}% \BeginIndex{Option}{chapteratlists}% \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}% Normalerweise\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}} fügt jeder mit \Macro{chapter} erzeugte Kapiteleintrag einen vertikalen Abstand in die Verzeichnisse der Gleitumgebungen ein. Seit Version~2.96a gilt dies auch für die Anweisung \Macro{addchap}, wenn nicht eine Kompatibilitätseinstellung zu einer früheren Version gewählt wurde (siehe Option \Option{version} in \autoref{sec:maincls.compatibilityOptions}, \autopageref{desc:maincls.option.version}). Außerdem kann nun mit der Option \Option{chapteratlists} der Abstand verändert werden. Dazu gibt man als \PName{Wert} den gewünschten Abstand an. Voreingestellt sind 10\,pt. Gibt man als Wert \PValue{entry} an oder verwendet man die Form ohne Angabe eines Wertes, so wird statt des Abstandes der Kapiteleintrag selbst in die Verzeichnisse eingetragen. Diese Option kann per \Macro{KOMAoptions}\Parameter{chapteratlists} oder \Macro{KOMAoption}\Parameter{chapteratlists=\PName{Wert}} auch innerhalb des Dokuments verändert werden. Sie hat dann Auswirkungen ab der nächsten Überschrift. Änderungen der Option werden jedoch erst nach dem übernächsten \LaTeX-Lauf in den Verzeichnissen sichtbar. \EndIndex{Option}{chapteratlists}% \subsection{Optionen für die Formatierung} \label{sec:maincls.formattingOptions} Formatierungsoptionen sind alle Optionen, welche die Form oder Formatierung einer Ausgabe beeinflussen und nicht in einen anderen Abschnitt eingeordnet werden können. Es sind also sozusagen die \emph{sonstigen Optionen}. \begin{Declaration} \Option{abstracton}\\ \Option{abstractoff} \end{Declaration}% \BeginIndex{Option}{abstracton}% \BeginIndex{Option}{abstractoff}% \OnlyAt{\Class{scrreprt}\and\Class{scrartcl}}% Bei den Standardklassen setzt die \Environment{abstract}-Umgebung noch den zentrierten Titel »\abstractname« vor die Zusammenfassung\Index[indexmain]{Zusammenfassung}. Früher war dies durchaus üblich. Inzwischen sind wir durch das Zeitunglesen darin geübt, einen entsprechend hervorgehobenen Text am Anfang eines Artikels oder Berichts als Zusammenfassung zu erkennen. Dies gilt umso mehr, wenn dieser Text noch vor dem Inhaltsverzeichnis steht. Zudem verwundert es, wenn ausgerechnet diese Überschrift klein und zentriert ist. {\KOMAScript} bietet mit den Optionen \Option{abstracton} und \Option{abstractoff} die Möglichkeit, die Überschrift über der Zusammenfassung ein- oder auszuschalten. \begin{Explain} Bei Büchern wird in der Regel eine andere Art der Zusammenfassung verwendet. Dort setzt man ein entsprechendes Kapitel an den Anfang oder Ende des Werks. Oft wird diese Zusammenfassung entweder mit der Einleitung oder einem weiteren Ausblick verknüpft. Daher gibt es bei \Class{scrbook} überhaupt keine \Environment{abstract}-Umgebung. Bei Berichten im weiteren Sinne, etwa einer Studien- oder Diplomarbeit, ist ebenfalls eine Zusammenfassung in dieser Form zu empfehlen.\par \end{Explain} % \EndIndex{Option}{abstracton}% \EndIndex{Option}{abstractoff}% \begin{Explain}% \begin{Declaration} \Option{pointednumbers}\\ \Option{pointlessnumbers} \end{Declaration}% \BeginIndex{Option}{pointednumbers}% \BeginIndex{Option}{pointlessnumbers}% Nach {\small DUDEN} steht in Gliederungen\Index{Gliederung}, in denen ausschließlich arabische Ziffern für die Nummerierung\Index{Nummerierung} verwendet werden, am Ende der Gliederungsnummern kein abschließender Punkt (siehe \cite[R\,3]{DUDEN}). Wird hingegen innerhalb der Gliederung auch mit römischen Zahlen oder Groß- oder Kleinbuchstaben gearbeitet, so steht am Ende aller Gliederungsnummer ein abschließender Punkt (siehe \cite[R\,4]{DUDEN}). In {\KOMAScript} ist ein Automatismus eingebaut, der diese etwas komplexe Regel zu erfüllen versucht. Der Automatismus wirkt sich so aus, dass normalerweise bei Verwendung des Gliederungsbefehls \Macro{part} oder eines Anhangs (\Macro{appendix}) auf Gliederungsnummer mit abschließendem Punkt umgeschaltet wird. Diese Information wird in der \File{aux}-Datei gespeichert und wirkt sich dann beim nächsten \LaTeX-Lauf auf das gesamte Dokument aus.\par \end{Explain} Manchmal versagt der Automatismus zum Setzen oder Weglassen des abschließenden Punktes in der Gliederungsnummer oder andere Sprachen sehen andere Regeln vor. Deshalb ist es mit der Option \Option{pointednumbers} möglich, den Punkt manuell einzuschalten oder mit \Option{pointlessnumbers} zu verbieten. Es ist zu beachten, dass der Automatismus immer erst für den nächsten \LaTeX-Lauf die Verwendung des abschließenden Punktes ein- oder ausschaltet. Bevor also versucht wird, die korrekte Darstellung über Verwendung einer der Optionen zu erzwingen, sollte grundsätzlich ein weiterer \LaTeX-Lauf ohne Dokumentänderung durchgeführt werden. Richtig, die korrekten Namen für diese Optionen wären beispielsweise \Option{dottednumbers}\IndexOption{dottednumbers} und \Option{dotlessnumbers}\IndexOption{dotlessnumbers}. Die Bedeutung der statt dessen gewählten Namen war mir vor Jahren bei der Implementierung nicht klar. % \EndIndex{Option}{pointednumbers}% \EndIndex{Option}{pointlessnumbers}% \begin{Declaration} \Option{leqno} \end{Declaration}% \BeginIndex{Option}{leqno}% Gleichungen\Index{Gleichungen} werden normalerweise auf der rechten Seite nummeriert. Mit Hilfe der Standardoption \Option{leqno} wird die Standardoptionsdatei \File{leqno.clo} geladen. Dadurch erfolgt die Nummerierung von Gleichungen links. % \EndIndex{Option}{leqno}% \begin{Declaration} \Option{fleqn} \end{Declaration}% \BeginIndex{Option}{fleqn}% Gleichungen werden normalerweise horizontal zentriert ausgegeben. Mit Hilfe der Standardoption \Option{fleqn} wird die Standardoptionsdatei \File{fleqn.clo} geladen. Dadurch erfolgt die Ausgabe von Gleichungen linksbündig. % \EndIndex{Option}{fleqn}% \begin{Declaration} \Option{tablecaptionbelow}\\ \Option{tablecaptionabove} \end{Declaration}% \BeginIndex{Option}{tablecaptionbelow}% \BeginIndex{Option}{tablecaptionabove}% Wie in \autoref{sec:maincls.floats}, \autopageref{desc:maincls.macro.caption} erläutert wird, verhält sich \Macro{caption}\IndexCmd{caption} bei Abbildungen\Index{Abbildungen} immer wie \Macro{captionbelow}\IndexCmd{captionbelow}. Bei Tabellen ist das Verhalten hingegen von diesen beiden Optionen abhängig. In der Voreinstellung, \Option{tablecaptionbelow}, verhält sich \Macro{caption} auch bei Tabellen wie \Macro{captionbelow}. Mit der Option \Option{tablecaptionabove} verhält sich \Macro{caption} jedoch wie \Macro{captionabove}\IndexCmd{captionabove}. Es sei auch hier explizit darauf hingewiesen, dass die Optionen keinen Einfluss darauf haben, ob mit \Macro{caption} Tabellenüberschriften oder Tabellenunterschriften gesetzt werden. Sie haben lediglich einen Einfluss darauf, ob der entsprechende Text als Tabellenüberschrift oder Tabellenunterschrift formatiert wird. Ob der Text über oder unter der Tabelle steht, wird jedoch durch die Position der \Macro{caption}-Anweisung innerhalb der \Environment{table}-Umgebung bestimmt. Bitte\OnlyAt{\Package{float}}\IndexPackage{float} beachten Sie, dass bei Verwendung des \Package{float}-Pakets die Optionen \Option{tablecaptionbelow} und \Option{tablecaptionabove} nicht mehr funktionieren, sobald Sie \Macro{restylefloat} auf Tabellen anwenden. Näheres zum \Package{float}-Paket und \Macro{restylefloat} entnehmen Sie bitte \cite{package:float}. Die zusätzliche Unterstützung, die \KOMAScript{} bei Verwendung des \Package{float}-Pakets bietet, finden Sie bei der Erklärung zu \PValue{komaabove} in \autoref{sec:maincls.floats}, \autopageref{desc:maincls.floatstyle.komaabove}. % \EndIndex{Option}{tablecaptionbelow}% \EndIndex{Option}{tablecaptionabove}% \begin{Explain}% \begin{Declaration} \Option{origlongtable} \end{Declaration}% \BeginIndex{Option}{origlongtable}% Beim Paket\OnlyAt{\Package{longtable}} \Package{longtable}\IndexPackage{longtable} (siehe \cite{package:longtable}) werden Tabellenüberschriften intern mit dem Befehl \Macro{LT@makecaption} gesetzt. Damit diese Tabellenüberschriften zu denen normaler Tabellen passen, definieren die \KOMAScript-Klassen diese Anweisung normalerweise um. Siehe hierzu auch \autoref{sec:maincls.floats}, \autopageref{desc:maincls.macro.caption.longtable}. Diese Umdefinierung erfolgt mit Hilfe von \Macro{AfterPackage} unmittelbar nach dem Laden von \Package{longtable}. Ist das Paket \Package{caption2}\IndexPackage{caption2} (siehe \cite{package:caption}) geladen, unterbleibt die Umdefinierung in \KOMAScript, um \Package{caption2} nicht in die Quere zu kommen. \end{Explain} Falls die Tabellenüberschriften des \Package{longtable}-Pakets von den \KOMAScript-Klassen nicht umdefiniert werden sollen, kann die Option \Option{origlongtable} gesetzt werden. % \EndIndex{Option}{origlongtable}% \begin{Declaration} \Option{openbib} \end{Declaration}% \BeginIndex{Option}{openbib}% Die Standardoption \Option{openbib} schaltet auf eine alternative Formatierung des Literaturverzeichnisses\Index{Literaturverzeichnis} um. Dabei wird zum einen die erste Zeile der Literaturangabe, die normalerweise den Autor enthält, weniger stark eingerückt. Zum anderen wird der Befehl \Macro{newblock} so umdefiniert, dass er einen Absatz einfügt. Ohne die Option fügt \Macro{newblock} lediglich einen dehnbaren horizontalen Abstand ein. % \EndIndex{Option}{openbib} \begin{Declaration} \Option{draft}\\ \Option{final} \end{Declaration}% \BeginIndex{Option}{draft}% \BeginIndex{Option}{final}% Die beiden Standardoptionen \Option{draft} und \Option{final} werden normalerweise verwendet, um zwischen Dokumenten im Entwurfsstadium\Index{Entwurf} und fertigen Dokumenten\Index{Endfassung} zu unterscheiden. Insbesondere werden mit der Option \Option{draft} kleine schwarze Kästchen aktiviert, die im Falle von überlangen Zeilen am Zeilenende ausgegeben werden. Diese Kästchen erleichtern dem ungeübten Auge, Absätze ausfindig zu machen, die manueller Nachbearbeitung bedürfen. Demgegenüber erscheinen mit der Option \Option{final} keine solchen Kästchen. Die beiden Optionen werden übrigens auch von anderen Paketen ausgewertet und beeinflussen deren Eigenschaften. So verzichtet das Paket \Package{graphics}\IndexPackage{graphics} oder \Package{graphicx}\IndexPackage{graphicx} bei Verwendung der Option \Option{draft} auf die Ausgabe der Grafiken. Stattdessen werden lediglich Rahmen in der entsprechenden Größe und die Dateinamen der Grafiken ausgegeben (siehe \cite{package:graphics}). % \EndIndex{Option}{draft}% \EndIndex{Option}{final}% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Generelle Dokumenteigenschaften} \label{sec:maincls.general} Einige Dokumenteigenschaften sind keinem speziellen Abschnitt des Dokuments wie der Titelei, dem Text oder dem Literaturverzeichnis zuzuordnen, sondern betreffen das Dokument insgesamt. Ein Teil dieser Eigenschaften wurde bereits im \autoref{sec:maincls.options} erläutert. \subsection{Änderung der verwendeten Schriftart} \label{sec:maincls.font} \BeginIndex{}{Schriftart}\BeginIndex{}{Schriftgroesse=Schriftgröße}% \begin{Explain} \KOMAScript{} verwendet für verschiedene Elemente des Textes zum Zwecke der Hervorhebung keine fest eingestellten Schriften und Schriftauszeichungen. Stattdessen existieren Schriftvariablen in Form von Anweisungen, in denen die Befehle zur Schriftumschaltung abgelegt sind. In früheren Versionen von \KOMAScript{} musste der Anwender zur Änderung der Auszeichnung eines Elements die entsprechende Anweisung mit Hilfe von \Macro{renewcommand} umdefinieren. Manchmal war es auch nicht einfach, aus dem Namen des Elements auf die zugehörige Anweisung zu schließen. Außerdem musste zur Umdefinierung häufig erst einmal festgestellt werden, wie die ursprüngliche Definition lautete. Genau genommen waren all diese Erschwernisse durchaus beabsichtigt. Denn eigentlich sollte es sich dabei nicht um eine Benutzerschnittstelle, sondern um eine Schnittstelle für Paketautoren handeln, die eigene Klassen oder Pakete um \KOMAScript{} herum bauen. Über die Jahre hat sich aber gezeigt, dass die Schnittstelle trotzdem hauptsächlich von Anwendern verwendet wird. Also wurde eine neue, einfachere Schnittstelle geschaffen. Dennoch rät der Autor dem typografischen Laien ausdrücklich davon ab, Schriftgrößen und andere -auszeichnungen nach eigenem Geschmack zu ändern. Wissen und Fingerspitzengefühl sind Grundvoraussetzungen für die Auswahl und die Mischung unterschiedlicher Schriftgrößen, "~attribute und "~familien. \end{Explain} \begin{Declaration} \Macro{setkomafont}\Parameter{Element}\Parameter{Befehle}\\ \Macro{addtokomafont}\Parameter{Element}\Parameter{Befehle}\\ \Macro{usekomafont}\Parameter{Element} \end{Declaration}% \BeginIndex{Cmd}{setkomafont}% \BeginIndex{Cmd}{addtokomafont}% \BeginIndex{Cmd}{usekomafont}% Mit\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} Hilfe der beiden Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} ist es möglich, die \PName{Befehle} festzulegen, mit denen die Schrift eines bestimmten \PName{Element}s umgeschaltet wird. Theoretisch könnten als \PName{Befehle} alle möglichen Anweisungen einschließlich Textausgaben verwendet werden. Sie sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit denen wirklich nur ein Schriftattribut umgeschaltet wird. In der Regel werden dies die Befehle \Macro{normalfont}, \Macro{rmfamily}, \Macro{sffamily}, \Macro{ttfamily}, \Macro{mdseries}, \Macro{bfseries}, \Macro{upshape}, \Macro{itshape}, \Macro{slshape}, \Macro{scshape} sowie die Größenbefehle \Macro{Huge}, \Macro{huge}, \Macro{LARGE} etc. sein. Die Erklärung zu diesen Befehlen entnehmen Sie bitte \cite{l2kurz}, \cite{latex:usrguide} oder \cite{latex:fntguide}. Auch Farbumschaltungen wie \Macro{normalcolor} sind möglich (siehe \cite{package:graphics}). Das Verhalten bei Verwendung anderer Anweisungen, inbesondere solcher, die zu Umdefinierungen führen oder Ausgaben tätigen, ist nicht definiert. Seltsames Verhalten ist möglich und stellt keinen Fehler dar. Mit \Macro{setkomafont} wird die Schriftumschaltung eines Elements mit einer völlig neuen Definition versehen. Demgegenüber wird mit \Macro{addtokomafont} die existierende Definition lediglich erweitert. Es wird empfohlen, beide Anweisungen nicht innerhalb des Dokuments zu verwenden. Beispiele für die Verwendung entnehmen Sie bitte den Abschnitten zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Elemente sind in \autoref{tab:maincls.elementsWithoutText} aufgelistet. Die Voreinstellungen sind den jeweiligen Abschnitten zu entnehmen. Mit der Anweisung \Macro{usekomafont} kann die aktuelle Schriftart auf diejenige umgeschaltet werden, die für das angegebene \PName{Element} definiert ist. \begin{Example} Angenommen, Sie wollen, dass für das Element \FontElement{captionlabel} dieselbe Schriftart wie für das Element \FontElement{descriptionlabel} verwendet wird. Das erreichen Sie einfach mit: \begin{lstlisting} \setkomafont{captionlabel}{% \usekomafont{descriptionlabel}} \end{lstlisting} Weitere Beispiele finden Sie in den Abschnitten zu den jeweiligen Elementen. \end{Example} \begin{desctable} \caption{Elemente, deren Schrift bei \KOMAScript{} mit \Macro{setkomafont} und \Macro{addtokomafont} verändert werden kann\label{tab:maincls.elementsWithoutText}}\\ \Endfirsthead \caption[]{Elemente, deren Schrift verändert werden kann (\emph{Fortsetzung})}\\ \Endhead% \standardfoot% \feentry{caption}{Text einer Abbildungs- oder Tabellenunter- oder "~überschrift}% \feentry{captionlabel}{% Label einer Abbildungs- oder Tabellenunter- oder "~überschrift; Anwendung erfolgt nach dem Element \FontElement{caption}}% \feentry{chapter}{% Überschrift der Ebene \Macro{chapter}}% \feentry{descriptionlabel}{% Labels, also das optionale Argument der \Macro{item}-Anweisung, in einer \Environment{description}-Umgebung}% \feentry{dictum}{% schlauer Spruch (siehe Anweisung \Macro{dictum})}% \feentry{dictumauthor}{% Urheber eines schlauen Spruchs; Anwendung erfolgt nach dem Element \FontElement{dictumtext}}% \feentry{dictumtext}{% alternative Bezeichnung für \FontElement{dictum}}% \feentry{disposition}{% alle Gliederungsüberschriften, also die Argumente von \Macro{part} bis \Macro{subparagraph} und \Macro{minisec} sowie die Überschrift der Zusammenfassung; die Anwendung erfolgt vor dem Element der jeweiligen Gliederungsebene}% \feentry{footnote}{% Marke und Text einer Fußnote}% \feentry{footnotelabel}{% Marke einer Fußnote; Anwendung erfolgt nach dem Element \FontElement{footnote}}% \feentry{footnotereference}{% Referenzierung der Fußnotenmarke im Text}% \feentry{minisec}{% mit \Macro{minisec} gesetzte Überschrift}% \feentry{pagefoot}{% eigentlich der Fuß einer Seite, jedoch auch der Kopf der Seite}% \feentry{pagehead}{% eigentlich der Kopf einer Seite, jedoch auch der Fuß der Seite}% \feentry{pagenumber}{% Seitenzahl im Kopf oder Fuß der Seite}% \feentry{pagination}{% alternative Bezeichnung für \FontElement{pagenumber}}% \feentry{paragraph}{% Überschrift der Ebene \Macro{paragraph}}% \feentry{part}{% Überschrift der Ebene \Macro{part} jedoch ohne die Zeile mit der Nummer des Teils}% \feentry{partnumber}{% Zeile mit der Nummer des Teils in Überschrift der Ebene \Macro{part}}% \feentry{section}{% Überschrift der Ebene \Macro{section}}% \feentry{sectioning}{% alternative Bezeichnung für \FontElement{disposition}}% \feentry{subparagraph}{% Überschrift der Ebene \Macro{subparagraph}}% \feentry{subsection}{% Überschrift der Ebene \Macro{subsection}}% \feentry{subsubsection}{% Überschrift der Ebene \Macro{subsubsection}}% \feentry{title}{% Haupttitel des Dokuments, also das Argument von \Macro{title} (bezüglich der Größe des Haupttitels siehe die ergänzenden Bemerkungen im Text ab \autopageref{desc:maincls.macro.title})}% \end{desctable} % \EndIndex{Cmd}{setkomafont}% \EndIndex{Cmd}{addtokomafont}% \EndIndex{Cmd}{usekomafont}% \EndIndex{}{Schriftart}\EndIndex{}{Schriftgroesse=Schriftgröße}% \subsection{Seitenstil} \label{sec:maincls.pageStyle} Eine der allgemeinen Eigenschaften eines Dokuments ist der Seitenstil\Index[indexmain]{Seitenstil}. Bei {\LaTeX} versteht man unter dem Seitenstil in erster Linie den Inhalt der Kopf- und Fußzeilen. \begin{Declaration} \Macro{pagestyle}\PParameter{empty}\\ \XMacro{pagestyle}\PParameter{plain}\\ \XMacro{pagestyle}\PParameter{headings}\\ \XMacro{pagestyle}\PParameter{myheadings}\\ \Macro{thispagestyle}\Parameter{lokaler Seitenstil} \end{Declaration}% \BeginIndex{Cmd}{pagestyle}% \BeginIndex{Cmd}{thispagestyle}% \BeginIndex{Pagestyle}{empty}% \BeginIndex{Pagestyle}{plain}% \BeginIndex{Pagestyle}{headings}% \BeginIndex{Pagestyle}{myheadings}% Üblicherweise wird zwischen vier verschiedenen Seitenstilen unterschieden. \begin{description} \item[\phantomsection\label{desc:maincls.pagestyle.empty}empty] ist der Seitenstil, bei dem Kopf- und Fußzeile vollständig leer bleiben. Dies ist bei {\KOMAScript} vollkommen identisch zu den Standardklassen. \item[plain] ist der Seitenstil, bei dem keinerlei Kolumnentitel\Index{Kolumnentitel} verwendet, sondern nur eine Seitenzahl\Index{Seitenzahl}\Index{Paginierung} ausgegeben wird. Bei den Standardklassen wird diese Seitenzahl immer mittig im Fuß ausgegeben. Bei {\KOMAScript} erfolgt die Ausgabe stattdessen im doppelseitigen\Index{doppelseitig} Layout außen im Fuß. Der einseitige Seitenstil entspricht bei {\KOMAScript} dem der Standardklassen. \item[headings] ist der Seitenstil für lebende Kolumnentitel. Das sind Kolumnentitel, bei denen Überschriften automatisch\Index[indexmain]{Kolumnentitel>automatisch} in den Seitenkopf übernommen werden. Im Internet oder in Beschreibungen zu \LaTeX-Paketen findet man auch häufig die englische Bezeichnung »\emph{running headline}«. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}} Bei den Klassen \Class{scrbook}\IndexClass{scrbook} und \Class{scrreprt}\IndexClass{scrreprt} werden dabei im doppelseitigen Layout die Überschriften der Kapitel und der Abschnitte in der Kopfzeile wiederholt -- bei {\KOMAScript} jeweils außen, bei den Standardklassen innen. Die Seitenzahl wird bei {\KOMAScript} im Fuß außen, bei den Standardklassen im Kopf außen gesetzt. Im einseitigen Layout werden nur die Überschriften der Kapitel verwendet und bei {\KOMAScript} zentriert im Kopf ausgegeben. Die Seitenzahlen werden bei {\KOMAScript} dann zentriert im Fuß gesetzt. \OnlyAt{\Class{scrartcl}}Bei \Class{scrartcl}\IndexClass{scrartcl} wird entsprechend verfahren, jedoch eine Ebene tiefer bei Abschnitt und Unterabschnitt angesetzt, da die Gliederungsebene Kapitel hier nicht existiert. Während die Standardklassen automatische Kolumnentitel immer in Versalien -- also Großbuchstaben -- setzen, verwendet {\KOMAScript} die Schreibweise, die in der Überschrift vorgefunden wurde. Dies hat verschiedene typografische Gründe. So sind Versalien als Auszeichnung eigentlich viel zu mächtig. Verwendet man sie trotzdem, sollten sie um einen Punkt kleiner gesetzt und leicht gesperrt werden. All dies findet bei den Standardklassen keine Beachtung. \item[myheadings] entspricht weitgehend dem Seitenstil \texttt{headings}, allerdings werden die Kolumnentitel nicht automatisch\Index[indexmain]{Kolumnentitel>manuell} erzeugt, sondern liegen in der Verantwortung des Anwenders. Er verwendet dazu die Anweisungen \Macro{markboth}\IndexCmd{markboth} und \Macro{markright}\IndexCmd{markright}. \end{description} Die Form der Seitenstile \texttt{headings} und \texttt{myheadings} wird außerdem durch jede der vier Klassenoptionen \Option{headsepline}, \Option{headnosepline}, \Option{footsepline} und \Option{footnosepline} (siehe \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.headsepline}) beeinflusst. Der Seitenstil ab der aktuellen Seite wird mit der Anweisung \Macro{pagestyle} umgeschaltet. Demgegenüber verändert \Macro{thispagestyle} nur den Seitenstil der aktuellen Seite. Der Seitenstil kann jederzeit mit Hilfe der \Macro{pagestyle}-Anweisung gesetzt werden und gilt dann ab der nächsten Seite, die ausgegeben wird. Üblicherweise setzt man den Seitenstil jedoch nur einmal zu Beginn des Dokuments oder in der Präambel. Für eine Änderung des Seitenstils nur der aktuellen Seite verwendet man stattdessen die Anweisung \Macro{thispagestyle}. Dies geschieht auch an einigen Stellen im Dokument automatisch. Beispielsweise wird bei allen Kapitelanfangsseiten implizit die Anweisung \Macro{thispagestyle}\PParameter{plain} ausgeführt. Bitte beachten Sie auch, dass die Umschaltung zwischen automatischen und manuellen Kolumnentiteln bei Verwendung des \Package{scrpage2}-Pakets nicht mehr über den Seitenstil, sondern mit speziellen Anweisungen erfolgt. Die Seitenstile \texttt{headings} und \texttt{myheadings} sollten zusammen mit diesem Paket nicht verwendet werden (siehe \autoref{cha:scrpage}, \autopageref{desc:scrpage.pagestyle.useheadings}).% % \EndIndex{Cmd}{pagestyle}% \EndIndex{Cmd}{thispagestyle}% \EndIndex{Pagestyle}{empty}% \EndIndex{Pagestyle}{plain}% \EndIndex{Pagestyle}{headings}% \EndIndex{Pagestyle}{myheadings}% \BeginIndex[indexother]{}{Schriftart}% Um die Schriftarten von Kopf und Fuß der Seite oder der Seitenzahl zu ändern\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}, % verwenden Sie die Benutzerschnittstelle, die in \autoref{sec:maincls.font} beschrieben ist. Für den Kopf und den Fuß ist dabei das gleiche Element zuständig, das Sie wahlweise mit \FontElement{pagehead}\IndexFontElement{pagehead} oder \FontElement{pagefoot}\IndexFontElement{pagefoot} benennen können. Das Element für die Seitenzahl innerhalb des Kopfes oder Fußes heißt \FontElement{pagenumber}\IndexFontElement{pagenumber}. Die Voreinstellungen sind in \autoref{tab:maincls.defaultFontsHeadFoot} zu finden. % \begin{table} \centering% \caption{Schriftvoreinstellungen für die Elemente des Seitenstils} \begin{tabular}{ll} \toprule Element & Voreinstellung \\ \midrule \FontElement{pagefoot}\IndexFontElement{pagefoot} & \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ \FontElement{pagehead}\IndexFontElement{pagehead} & \Macro{normalfont}\Macro{normalcolor}\Macro{slshape} \\ \FontElement{pagenumber}\IndexFontElement{pagenumber} & \Macro{normalfont}\Macro{normalcolor}\\ \bottomrule \end{tabular} \label{tab:maincls.defaultFontsHeadFoot} \end{table} % \begin{Example} \phantomsection\label{sec:maincls.pageStyle.example}% Angenommen, Sie wollen Kopf und Fuß einen Schriftgrad kleiner und kursiv setzen. Die Seitenzahl soll jedoch nicht kursiv, sondern fett gesetzt werden. Davon abgesehen, dass das Ergebnis grauenvoll aussehen wird, können Sie dies wie folgt erreichen: \begin{lstlisting} \setkomafont{pagehead}{% \normalfont\normalcolor\itshape\small } \setkomafont{pagenumber}{\normalfont\bfseries} \end{lstlisting} Wollen Sie hingegen lediglich, dass zusätzlich zur bereits voreingestellten schrägen Variante ebenfalls eine kleinere Schrift verwendet wird, so genügt: \begin{lstlisting} \addtokomafont{pagefoot}{\small} \end{lstlisting} Wie Sie sehen, ist im letzten Beispiel das Element \FontElement{pagefoot} verwendet. Das gleiche Ergebnis erhalten Sie auch, wenn Sie stattdessen \FontElement{pagehead} verwenden (siehe \autoref{tab:maincls.elementsWithoutText} auf \autopageref{tab:maincls.elementsWithoutText}). \end{Example} Es ist an dieser Stelle nicht möglich, Versalien für die automatischen Kolumnentitel zu erzwingen. Wenn Sie dies wünschen, verwenden Sie bitte das \Package{scrpage2}-Paket (siehe \autoref{cha:scrpage}, \autopageref{desc:scrpage.option.markuppercase}). Eine sinnvolle Verwendung können die Befehle \Macro{usekomafont}\PParameter{pagehead} und \Macro{usekomafont}\PParameter{pagenumber} finden, wenn Sie eigene Seitenstile definieren. Falls Sie dafür nicht das \KOMAScript-Paket \Package{scrpage2} (siehe \autoref{cha:scrpage}), sondern beispielsweise das Paket \Package{fancyhdr}\IndexPackage{fancyhdr} (siehe \cite{package:fancyhdr}) einsetzen, können Sie diese Befehle in Ihren Definitionen verwenden. Dadurch bleiben Sie zu \KOMAScript{} möglichst kompatibel. Verwenden Sie diese Befehle in Ihren eigenen Definitionen nicht, so bleiben Schriftänderungen wie in den vorangehenden Beispielen unbeachtet. Die Pakete \Package{scrpage}\IndexPackage{scrpage} und \Package{scrpage2}\IndexPackage{scrpage2} sorgen selbst für maximale Kompatibilität. % \EndIndex[indexother]{}{Schriftart}% \begin{Declaration} \Macro{titlepagestyle}\\ \Macro{partpagestyle}\\ \Macro{chapterpagestyle}\\ \Macro{indexpagestyle} \end{Declaration}% \BeginIndex{Cmd}{titlepagestyle}\Index{Titel>Seitenstil}% \BeginIndex{Cmd}{partpagestyle}\Index{Teil>Seitenstil}% \BeginIndex{Cmd}{chapterpagestyle}\Index{Kapitel>Seitenstil}% \BeginIndex{Cmd}{indexpagestyle}\Index{Index>Seitenstil}% Auf einigen Seiten wird mit Hilfe von \Macro{thispagestyle} automatisch ein anderer Seitenstil gewählt. Welcher Seitenstil dies ist, wird diesen vier Makros entnommen, wobei \Macro{partpagestyle} und \Macro{chapterpagestyle}\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} nur bei den Klassen \Class{scrbook} und \Class{scrreprt} nicht jedoch bei \Class{scrartcl} existieren. In der Voreinstellung ist der Seitenstil in allen vier Fällen \PValue{plain}. Die Bedeutung der einzelnen Makros entnehmen Sie bitte \autoref{tab:specialpagestyles}. % \begin{table} \centering \caption{Makros zur Festlegung des Seitenstils besonderer Seiten} \label{tab:specialpagestyles} \begin{desctabular} \mentry{titlepagestyle}{Seitenstil der Seite mit der Titelei bei \emph{in-page}-Titeln}% \mentry{partpagestyle}{Seitenstil der Seiten mit \Macro{part}-Titeln}% \mentry{chapterpagestyle}{Seitenstil auf Kapitelanfangsseiten}% \mentry{indexpagestyle}{Seitenstil der ersten Indexseite}% \end{desctabular} \end{table} % Die Seitenstile können mit Hilfe von \Macro{renewcommand} umdefiniert werden. \begin{Example} Angenommen, Sie wollen nicht, dass die Seiten mit der \Macro{part}-Überschrift mit einer Nummer versehen werden. Dann setzen Sie folgende Anweisung beispielsweise in der Präambel Ihres Dokuments: \begin{lstlisting} \renewcommand*{\partpagestyle}{empty} \end{lstlisting} Wie Sie auf \autopageref{desc:maincls.pagestyle.empty} erfahren haben, ist der Seitenstil \PValue{empty} genau das, was in diesem Beispiel verlangt wird. Natürlich können Sie auch einen selbstdefinierten Seitenstil verwenden. Angenommen, Sie haben mit dem Paket \Package{scrpage2} (siehe \autoref{cha:scrpage}) einen eigenen Seitenstil für Kapitelanfangsseiten definiert. Diesem Seitenstil haben Sie den passenden Namen \PValue{chapter} gegeben. Um diesen nun auch tatsächlich zu verwenden, definieren Sie das Makro \Macro{chapterpagestyle} entsprechend um: \begin{lstlisting} \renewcommand*{\chapterpagestyle}{chapter} \end{lstlisting} Angenommen, Sie wollen das Inhaltsverzeichnis eines Buches insgesamt nicht mit Seitenzahlen versehen. Danach soll aber wieder mit dem Seitenstil \PValue{headings} gearbeitet werden, sowie mit \PValue{plain} auf den Kapitelanfangsseiten. Dann verwenden Sie beispielsweise: \begin{lstlisting} \clearpage \pagestyle{empty} \renewcommand*{\chapterpagestyle}{empty} \tableofcontents \clearpage \pagestyle{headings} \renewcommand*{\chapterpagestyle}{plain} \end{lstlisting} Sie können die Umdefinierung des Seitenstils für Kapitelanfangsseiten aber auch lokal halten. Das hat den Vorteil, dass Sie dann keine Annahmen über die vor der Änderung gültige Einstellung treffen müssen. Die Änderung des Seitenstils selbst können Sie gleichmaßen lokal halten: \begin{lstlisting} \clearpage \begingroup \pagestyle{empty} \renewcommand*{\chapterpagestyle}{empty} \tableofcontents \clearpage \endgroup \end{lstlisting} Beachten Sie jedoch, dass Sie niemals eine nummerierte Gliederungsüberschrift in eine Gruppe packen sollten. Anderenfalls können Anweisungen wie \Macro{label} rasch zu unvorhergesehenen Ergebnissen führen. \end{Example} \begin{Explain} Wer nun glaubt, er könne auf Kapitelanfangsseiten ebenfalls mit lebenden Kolumnentiteln arbeiten indem er einfach eine Definition wie \begin{lstlisting} \renewcommand*{\chapterpagestyle}{headings} \end{lstlisting} verwendet, wird sich möglicherweise wundern. Zwar wird dadurch tatsächlich auch auf Kapitelanfangsseiten der Seitenstil \PValue{headings} verwendet. Allerdings erscheint bei Verwendung der Option \Option{openright} trotzdem kein Kolumnentitel. Die Ursache dafür ist im \LaTeX-Kern zu finden. Dort ist \Macro{rightmark}, die Marke für rechte Seiten, mit: \begin{lstlisting} \let\@rightmark\@secondoftwo \def\rightmark{\expandafter\@rightmark \firstmark\@empty\@empty} \end{lstlisting} definiert. Es wird also die rechte Marke von \Macro{firstmark} gesetzt. \Macro{firstmark} beinhaltet die erste linke und rechte Marke, die auf einer Seite gesetzt wurde. Innerhalb von \Macro{chapter} wird mit \Macro{markboth} die linke Marke auf die Kapitelüberschrift und die rechte Marke auf einen leeren Inhalt gesetzt. Damit ist also die erste rechte Marke auf einer rechten Kapitelanfangsseite leer. Daher ist auf diesen Seiten auch der Kolumnentitel leer. Nun könnte man natürlich in der Dokumentpräambel \Macro{rightmark} so umdefinieren, dass statt der ersten, die letzte rechte Marke einer Seite verwendet wird: \begin{lstlisting} \makeatletter \renewcommand*{\rightmark}{% \expandafter\@rightmark\botmark\@empty\@empty } \makeatother \end{lstlisting} Damit würde man aber auf rechten Kapitelanfangsseiten als Kolumnentitel den Titel der letzten Abschnittsüberschrift (\Macro{section}) dieser Seite erhalten. Das wäre verwirrend und ist grundsätzlich abzulehnen. Ebenso verwirrend und damit abzulehnen wäre, wenn auf rechten Kapitelanfangsseiten plötzlich als Kolumnentitel nicht die Abschnittsüberschrift, sondern die Kapitelüberschrift erscheinen würde. Das voreingestellte Verhalten ist also korrekt. \end{Explain} % \EndIndex{Cmd}{titlepagestyle}% \EndIndex{Cmd}{partpagestyle}% \EndIndex{Cmd}{chapterpagestyle}% \EndIndex{Cmd}{indexpagestyle}% \begin{Declaration} \Macro{clearpage}\\ \Macro{cleardoublepage}\\ \Macro{cleardoublestandardpage}\\ \Macro{cleardoubleplainpage}\\ \Macro{cleardoubleemptypage} \end{Declaration}% \BeginIndex{Cmd}{clearpage}% \BeginIndex{Cmd}{cleardoublepage}% \BeginIndex{Cmd}{cleardoublestandardpage}% \BeginIndex{Cmd}{cleardoubleplainpage}% \BeginIndex{Cmd}{cleardoubleemptypage}% Im \LaTeX-Kern existiert die Anweisung \Macro{clearpage}, die dafür sorgt, dass alle noch nicht ausgegebenen Gleitumgebungen ausgegeben werden und anschließend eine neue Seite begonnen wird. Außerdem existiert die Anweisung \Macro{cleardoublepage}, die wie \Macro{clearpage} arbeitet, durch die aber im doppelseitigen Layout (siehe Layoutoption \Option{twoside} in \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.twoside}) eine neue rechte Seite begonnen wird. Dazu wird gegebenenfalls eine leere linke Seite im aktuellen Seitenstil ausgegeben. Bei {\KOMAScript} arbeitet \Macro{cleardoublestandardpage} genau in der soeben beschriebene Art und Weise. Die Anweisung \Macro{cleardoubleplainpage} ändert demgegenüber den Seitenstil der leeren linken Seite zusätzlich auf \PValue{plain}, um den Kolumnentitel zu unterdrücken. Analog dazu wird bei der Anweisung \Macro{cleardoubleemptypage} der Seitenstil \PValue{empty} verwendet, um sowohl Kolumnentitel als auch Seitenzahl auf der leeren linken Seite zu unterdrücken. Die Seite ist damit vollständig leer. Die Arbeitsweise der \Macro{cleardoublepage}-Anweisung ist hingegen von den in \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.cleardoublestandard} erklärten Layoutoptionen \Option{cleardoublestandard}, \Option{cleardoubleplain} und \Option{cleardoubleempty} abhängig und entspricht je nach Option einer der drei Anweisungen. % \EndIndex{Cmd}{clearpage}% \EndIndex{Cmd}{cleardoublepage}% \EndIndex{Cmd}{cleardoublestandardpage}% \EndIndex{Cmd}{cleardoubleplainpage}% \EndIndex{Cmd}{cleardoubleemptypage}% \begin{Explain}% \begin{Declaration} \Macro{ifthispageodd}\Parameter{Wahr}\Parameter{Falsch}\\ \Macro{ifthispagewasodd} \PName{Wahr}\Macro{else} \PName{Falsch}\Macro{fi} \end{Declaration}% \BeginIndex{Cmd}{ifthispageodd}% \BeginIndex{Cmd}{ifthispagewasodd}% Eine Besonderheit von \LaTeX{} besteht darin, dass es nicht einfach möglich ist, festzustellen, auf welcher Seite man sich gerade befindet. Damit ist auch schwer zu sagen, ob die aktuelle Seite eine gerade oder eine ungerade Seitenzahl besitzt. Einige werden nun einwenden, dass es doch die \TeX-Verzweigung \Macro{ifodd} gibt, die man nur auf den aktuellen Seitenzähler anwenden muss. Dies ist jedoch ein Irrtum. Zum Zeitpunkt der Auswertung einer solchen Verzweigung weiß \LaTeX{} nämlich gar nicht, ob der gerade bearbeitete Text noch auf dieser Seite oder erst auf der nächsten gesetzt wird. Der Seitenumbruch findet nämlich nicht bereits beim Einlesen des Absatzes, sondern erst in der \emph{output}-Routine von \LaTeX{} statt. Zu dem Zeitpunkt wäre aber eine Eingabe der Form \verb|\ifodd\value{page}| bereits vollständig ausgewertet. Um zuverlässig festzustellen, ob ein Text auf einer geraden oder einer ungeraden Seite ausgegeben wird, muss man normalerweise mit einem Label und einer Seitenreferenz auf dieses Label arbeiten. Dabei muss man auch noch spezielle Vorkehrungen für den ersten \LaTeX-Durchlauf treffen, bei dem das Label noch nicht bekannt ist. \end{Explain} Will man bei \KOMAScript{} feststellen, ob ein Text auf einer geraden oder einer ungeraden Seite ausgegeben wird, so verwendet man die Anweisung \Macro{ifthispageodd}. Dabei wird das \PName{Wahr}-Argument nur dann ausgeführt, wenn man sich gerade auf einer ungeraden Seite befindet. Anderenfalls wird das \PName{Falsch}-Argument ausgeführt. \begin{Explain} Genau genommen geht es natürlich nicht darum, wo man sich gerade befindet, sondern entscheidend ist, ob eine Seitenreferenz auf ein Label, das an dieser Stelle gesetzt würde, eine gerade oder eine ungerade Seite referenzieren würde. \end{Explain} \begin{Example} Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer geraden oder ungeraden Seite ausgegeben wird. Sie könnten dann beispielsweise mit der Eingabe \begin{lstlisting} Dies ist eine Seite mit \ifthispageodd{un}{}gerader Seitenzahl. \end{lstlisting} die Ausgabe \begin{quote} Dies ist eine Seite mit \ifthispageodd{un}{}gerader Seitenzahl. \end{quote} erhalten. Beachten Sie, dass in diesem Beispiel das Argument \PName{Falsch} leer geblieben ist. \end{Example} Da die Anweisung \Macro{ifthispageodd} mit einem Mechanismus arbeitet, der einem Label und einer Referenz darauf sehr ähnlich ist, werden nach jeder Textänderung mindestens zwei \LaTeX-Durchläufe benötigt. Erst dann ist die Entscheidung korrekt. Im ersten Durchlauf wird eine Heuristik für die Entscheidung verwendet. \begin{Explain} Es sind Fälle denkbar, in denen die Anweisung \Macro{ifthispageodd} nie zum korrekten Ergebnis führt. Nehmen wir an, dass die Anweisung innerhalb einer Box verwendet wird. Eine Box wird von \LaTeX{} immer im Ganzen gesetzt. In ihr findet kein Seitenumbruch statt. Nehmen wir weiter an, der \PName{Wahr}-Teil wäre sehr groß, der \PName{Falsch}-Teil aber leer. Nehmen wir außerdem an, dass die Box mit dem \PName{Falsch}-Teil noch auf die aktuelle, gerade Seite passt, mit dem \PName{Wahr}-Teil jedoch nicht. Nehmen wir weiter an, \KOMAScript{} entscheidet beim ersten Durchlauf heuristisch, dass der \PName{Wahr}-Teil zutrifft. Die Entscheidung war damit falsch und wird im nächsten Durchlauf revidiert. Dadurch wird aber der \PName{Falsch}-Teil statt dem \PName{Wahr}-Teil abgearbeitet. Die Entscheidung wird also im nächsten Durchlauf wieder revidiert und immer so weiter. Diese Fälle sind zwar selten. Trotzdem soll niemand sagen, ich habe nicht darauf hingewiesen, dass sie möglich sind. Manchmal ist es auch notwendig nochmals festzustellen, wie die letzte Entscheidung lautete. Dies ist mit der Expertenanweisung \Macro{ifthispagewasodd} möglich. Diese ist entweder mit \Macro{iftrue} oder \Macro{iffalse} identisch und entsprechend anzuwenden. \end{Explain} % \EndIndex{Cmd}{ifthispageodd} \EndIndex{Cmd}{ifthispagewasodd}% \begin{Declaration} \Macro{pagenumbering}\Parameter{Nummerierungsstil} \end{Declaration} \BeginIndex{Cmd}{pagenumbering}% Diese Anweisung funktioniert bei \KOMAScript{} genau in der gleichen Weise wie bei den Standardklassen. Genau genommen handelt es sich dabei weder um eine Fähigkeit der Standardklassen noch der \KOMAScript-Klassen, sondern um eine Anweisung des \LaTeX-Kerns. Sie wird verwendet, um den \PName{Nummerierungsstil} für die Seitenzahlen umzuschalten. Die Umschaltung gilt ab sofort, also ab der Seite, auf der diese Anweisung aufgerufen wird. Gegebenfalls sollte also zuvor mit \Macro{clearpage} oder \Macro{cleardoublepage} diese Seite erst beendet werden. Mögliche Angaben für den \PName{Nummerierungsstil} sind \autoref{tab:numberKind} zu entnehmen. Der Aufruf von \Macro{pagenumbering} setzt immer die Seitenzahl\Index{Seitenzahl} zurück. Die aktuelle Seite bekommt also die Nummer 1 im gewählten \PName{Nummerierungsstil}. % \begin{table} \centering \caption{Verfügbare Nummerierungsstile für Seitenzahlen} \begin{tabular}{lll} \toprule Nummerierungsstil & Beispiel & Bedeutung \\ \midrule \PValue{arabic} & 8 & arabische Zahlen \\ \PValue{roman} & viii & kleine römische Zahlen \\ \PValue{Roman} & VIII & große römische Zahlen \\ \PValue{alph} & h & Kleinbuchstaben \\ \PValue{Alph} & H & Großbuchstaben \\ \bottomrule \end{tabular} \label{tab:numberKind} \end{table} % \EndIndex{Cmd}{pagenumbering} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Die Titelei} \label{sec:maincls.titles} \begin{Explain} Nachdem die Optionen und einige allgemeine Dinge nun bekannt sind, beginnen wir das Dokument, wo es normalerweise beginnt: mit der Titelei. Unter der Titelei\Index[indexmain]{Titel} versteht man alles, was im weitesten Sinne zum Titel eines Dokuments gehört. Wie bei den Optionen \Option{titlepage} und \Option{notitlepage} in \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.titlepage} bereits erwähnt, wird grundsätzlich zwischen Titelseiten und \emph{in-page}-Titeln unterschieden. Artikelklassen wie \Class{article} oder \Class{scrartcl} haben \emph{in-page}-Titel voreingestellt, während bei Klassen wie \Class{report}, \Class{book}, \Class{scrreprt} und \Class{scrbook} Titelseiten voreingestellt sind. \end{Explain} \begin{Declaration} \Environment{titlepage} \end{Declaration}% \BeginIndex{Env}{titlepage}% Grundsätzlich werden bei den Standardklassen und bei {\KOMAScript} alle Titelseiten in einer speziellen Umgebung, der \Environment{titlepage}-Umgebung, gesetzt. Diese Umgebung startet immer mit einer neuen Seite -- im zweiseitigen Layout sogar mit einer neuen rechten Seite -- im einspaltigen Modus. Für eine Seite wird der Seitenstil mit \Macro{thispagestyle}\PParameter{empty} geändert, so dass weder Seitenzahl noch Kolumnentitel ausgegeben werden. Am Ende der Umgebung wird die Seite automatisch beendet. Sollten Sie nicht das automatische Layout der Titelei verwenden können, ist zu empfehlen, eine eigene Titelei mit Hilfe dieser Umgebung zu entwerfen. \begin{Example} Angenommen, Sie wollen eine Titelseite, auf der lediglich oben links möglichst groß und fett das Wort »Me« steht -- kein Autor, kein Datum, nichts weiter. Folgendes Dokument ermöglicht das: \begin{lstlisting} \documentclass{scrbook} \begin{document} \begin{titlepage} \textbf{\Huge Me} \end{titlepage} \end{document} \end{lstlisting} Einfach? Stimmt. \end{Example} % \EndIndex{Env}{titlepage} \begin{Declaration} \Macro{maketitle}\OParameter{Seitenzahl} \end{Declaration}% \BeginIndex{Cmd}{maketitle}% Während bei den Standardklassen nur maximal eine Titelseite mit den drei Angaben Titel, Autor und Datum existiert, können bei {\KOMAScript} mit \Macro{maketitle} bis zu sechs Titelseiten gesetzt werden. Im Gegensatz zu den Standardklassen kennt \Macro{maketitle} bei {\KOMAScript} außerdem noch ein optionales nummerisches Argument. Findet es Verwendung, so wird die Nummer als Seitenzahl der ersten Titelseite benutzt. Diese Seitenzahl wird jedoch nicht ausgegeben, sondern beeinflusst lediglich die Zählung. Sie sollten hier unbedingt eine ungerade Zahl wählen, da sonst die gesamte Zählung durcheinander gerät. Meiner Auf"|fassung nach gibt es nur zwei sinnvolle Anwendungen für das optionale Argument. Zum einen könnte man dem Schmutztitel\Index[indexmain]{Schmutztitel} die logische Seitenzahl -1 geben, um so die Seitenzählung erst ab der Haupttitelseite mit 1 zu beginnen. Zum anderen könnte man mit einer höhere Seitenzahl beginnen, beispielsweise 3, 5 oder 7, um so weitere Titelseiten zu berücksichtigen, die erst vom Verlag hinzugefügt werden. Wird eine \emph{in-page}-Titelei verwendet, wird das optionale Argument ignoriert. Dafür kann der Seitenstil einer solchen Titelei durch Umdefinierung des Makros \Macro{titlepagestyle} verändert werden. Siehe hierzu \autoref{sec:maincls.pageStyle}, \autopageref{desc:maincls.macro.titlepagestyle}. Die folgenden Anweisungen führen nicht unmittelbar zum Setzen der Titelei. Das Setzen der Titelei erfolgt immer mit \Macro{maketitle}. Mit den nachfolgend erklärten Anweisungen werden lediglich die Inhalte der Titelei festgelegt. Sie müssen daher auch unbedingt vor \Macro{maketitle} verwendet werden. Es ist jedoch nicht notwendig und bei Verwendung des \Package{babel}-Pakets\IndexPackage{babel} (siehe \cite{package:babel}) auch nicht empfehlenswert, diese Anweisungen in der Dokumentpräambel vor \Macro{begin}\PParameter{document} zu verwenden. Beispieldokumente finden Sie am Ende des Abschnitts. \begin{Explain}% \begin{Declaration} \Macro{extratitle}\Parameter{Schmutztitel} \end{Declaration}% \BeginIndex{Cmd}{extratitle}% Früher war der Buchblock oftmals nicht durch einen Buchdeckel vor Verschmutzung geschützt. Diese Aufgabe übernahm dann die erste Seite des Buches, die meist einen Kurztitel, eben den \emph{Schmutztitel} trug. Auch heute noch wird diese Extraseite vor dem eigentlichen Haupttitel gerne verwendet und enthält dann Verlagsangaben, Buchreihennummer und ähnliche Angaben.\par \end{Explain} Bei {\KOMAScript} ist es möglich, vor der eigentlichen Titelseite eine weitere Seite zu setzen. Als \PName{Schmutztitel} kann dabei beliebiger Text -- auch mehrere Absätze -- gesetzt werden. Der Inhalt von \PName{Schmutztitel} wird von {\KOMAScript} ohne zusätzliche Beeinflussung der Formatierung ausgegeben. Dadurch ist dessen Gestaltung völlig dem Anwender überlassen. Die Rückseite des Schmutztitels bleibt leer. Der Schmutztitel ergibt auch dann eine eigene Titelseite, wenn mit \emph{in-page}-Titeln gearbeitet wird. Die Ausgabe des mit \Macro{extratitle} definierten Schmutztitels erfolgt als Bestandteil der Titelei mit \Macro{maketitle}. \begin{Example} Kommen wir auf das Beispiel von oben zurück und gehen davon aus, dass das spartanische »Me« nur den Schmutztitel darstellt. Nach dem Schmutztitel soll noch der Haupttitel folgen. Dann kann wie folgt verfahren werden: \begin{lstlisting} \documentclass{scrbook} \begin{document} \extratitle{\textbf{\Huge Me}} \title{It's me} \maketitle \end{document} \end{lstlisting} Sie können den Schmutztitel aber auch horizontal zentriert und etwas tiefer setzen: \begin{lstlisting} \documentclass{scrbook} \begin{document} \extratitle{\vspace*{4\baselineskip} \begin{center}\textbf{\Huge Me}\end{center}} \title{It's me} \maketitle \end{document} \end{lstlisting} Die Anweisung \Macro{title} ist grundsätzlich notwendig, damit die Beispiele fehlerfrei sind. Sie wird nachfolgend erklärt. \end{Example} % \EndIndex{Cmd}{extratitle} \begin{Declaration} \Macro{titlehead}\Parameter{Titelkopf}\\ \Macro{subject}\Parameter{Typisierung}\\ \Macro{title}\Parameter{Titel}\\ \Macro{author}\Parameter{Autor}\\ \Macro{date}\Parameter{Datum}\\ \Macro{publishers}\Parameter{Herausgeber}\\ \Macro{and}\\ \Macro{thanks}\Parameter{Fußnote} \end{Declaration}% \BeginIndex{Cmd}{titlehead}% \BeginIndex{Cmd}{subject}% \BeginIndex{Cmd}{title}% \BeginIndex{Cmd}{author}% \BeginIndex{Cmd}{date}% \BeginIndex{Cmd}{publishers}% \BeginIndex{Cmd}{and}% \BeginIndex{Cmd}{thanks}% Für den Inhalt der Haupttitelseite stehen sechs Elemente zur Verfügung. Der \PName{Titelkopf}\Index[indexmain]{Titel>Kopf} wird mit der Anweisung \Macro{titlehead} definiert. Er wird über die gesamte Textbreite in normalem Blocksatz am Anfang der Seite ausgegeben. Er kann vom Anwender frei gestaltet werden. Die \PName{Typisierung}\Index[indexmain]{Typisierung} wird unmittelbar über dem \PName{Titel} ausgegeben. Dabei wird eine gegenüber der Grundschrift leicht vergößerte Schrift verwendet. Der \PName{Titel} wird in einer sehr großen Schrift ausgegeben. Dabei\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % findet abgesehen von der Größe auch die Schriftumschaltung für das Element \FontElement{title}\IndexFontElement{title} Anwendung. Voreingestellt ist die gleiche Schrift, die für das Element \FontElement{disposition}\IndexFontElement{disposition} verwendet wird (siehe \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellungen können mit Hilfe der Anweisungen aus \autoref{sec:maincls.font} verändert werden. Die Größe ist jedoch davon unabhängig (siehe \autoref{tab:maincls.mainTitle}, \autopageref{tab:maincls.mainTitle}). Unter dem \PName{Titel} folgt der \PName{Autor}\Index[indexmain]{Autor}. Es kann auch durchaus mehr als ein Autor innerhalb des Arguments von \Macro{author} angegeben werden. Die Autoren sind dann mit \Macro{and} voneinander zu trennen. Unter dem Autor oder den Autoren folgt das Datum\Index{Datum}. Dabei ist das aktuelle Datum, \Macro{today}\IndexCmd{today}, voreingestellt. Es kann jedoch mit \Macro{date} eine beliebige Angabe -- auch ein leere -- erreicht werden. Als Letztes folgt schließlich der \PName{Herausgeber}\Index[indexmain]{Herausgeber}. Selbstverständlich kann diese Anweisung auch für andere Angaben geringer Wichtigkeit verwendet werden. Notfalls kann durch Verwendung einer \Macro{parbox} über die gesamte Seitenbreite auch erreicht werden, dass diese Angabe nicht zentriert, sondern im Blocksatz gesetzt wird. Sie ist dann als Äquivalent zum Titelkopf zu betrachten. Dabei ist jedoch zu beachten, dass sie oberhalb von eventuell vorhandenen Fußnoten ausgegeben wird. Fußnoten\Index{Fussnoten=Fußnoten} werden auf der Titelseite nicht mit \Macro{footnote}, sondern mit der Anweisung \Macro{thanks} erzeugt. Sie dienen in der Regel für Anmerkungen bei den Autoren. Als Fußnotenzeichen werden dabei Symbole statt Zahlen verwendet. Bis auf den \PName{Titelkopf} und eventuelle Fußnoten werden alle Ausgaben horinzontal zentriert. Diese Angaben sind noch einmal kurz zusammengefasst in \autoref{tab:maincls.mainTitle} zu finden. \begin{table} \centering \caption[Der Haupttitel]{Schriftgröße und horizontale Ausrichtung der Elemente der Haupttitelseite in der Reihenfolge ihrer vertikalen Position von oben nach unten bei Verwendung von \Macro{maketitle}} \begin{tabular}{llll} \toprule Element & Anweisung & Schrift & Ausrichtung \\ \midrule Seitenkopf & \Macro{titlehead} & \Macro{normalsize} & Blocksatz \\ Typisierung & \Macro{subject} & \Macro{Large} & zentriert \\ Titel & \Macro{title} & \Macro{huge} & zentriert \\ Autoren & \Macro{author} & \Macro{Large} & zentriert \\ Datum & \Macro{date} & \Macro{Large} & zentriert \\ Herausgeber & \Macro{publishers} & \Macro{Large} & zentriert \\ \bottomrule \end{tabular} \label{tab:maincls.mainTitle} \end{table} \begin{Example} Nehmen wir nun einmal an, Sie schreiben eine Diplomarbeit. Dabei sei vorgegeben, dass die Titelseite oben linksbündig das Institut einschließlich Adresse und rechtsbündig das Semester wiedergibt. Wie üblich ist ein Titel einschließlich Autor und Abgabedatum zu setzen. Außerdem soll der Betreuer angegeben und zu erkennen sein, dass es sich um eine Diplomarbeit handelt. Sie könnten das wie folgt erreichen: \begin{lstlisting} \documentclass{scrbook} \usepackage{ngerman} \begin{document} \titlehead{{\Large Universit"at Schlauenheim \hfill SS~2001\\} Institut f"ur Raumkr"ummung\\ Hochschulstra"se~12\\ 34567 Schlauenheim} \subject{Diplomarbeit} \title{Digitale Raumsimulation mit dem DSP\,56004} \author{cand. stup. Uli Ungenau} \date{30. Februar 2001} \publishers{Betreut durch Prof. Dr. rer. stup. Naseweis} \maketitle \end{document} \end{lstlisting} \end{Example} \begin{Explain} Ein häufiges Missverständnis betrifft die Bedeutung der Haupttitelseite. Irrtümlich wird oft angenommen, es handle sich dabei um den Buchumschlag oder Buchdeckel. Daher wird häufig erwartet, dass die Titelseite nicht den Randvorgaben für doppelseitige Satzspiegel gehorcht, sondern rechts und links gleich große Ränder besitzt. Nimmt man jedoch einmal ein Buch zur Hand und klappt es auf, trifft man sehr schnell auf mindestens eine Titelseite unter dem Buchdeckel innerhalb des sogenannten Buchblocks. Genau diese Titelseiten werden mit \Macro{maketitle} gesetzt. Wie beim Schmutztitel handelt es sich also auch bei der Haupttitelseite um eine Seite innerhalb des Buchblocks, die deshalb dem Satzspiegel des gesamten Dokuments gehorcht. Überhaupt ist ein Buchdeckel, das \emph{Cover}, etwas, was man in einem getrennten Dokument erstellt. Schließlich hat er oft eine sehr individuelle Gestalt. Es spricht auch nichts dagegen, hierfür ein Grafik- oder DTP-Programm zu Hilfe zu nehmen. Ein getrenntes Dokument sollte auch deshalb verwendet werden, weil es später auf ein anderes Druckmedium, etwa Karton, und möglicherweise mit einem anderen Drucker ausgegeben werden soll.\par \end{Explain} % \EndIndex{Cmd}{titlehead}% \EndIndex{Cmd}{subject}% \EndIndex{Cmd}{title}% \EndIndex{Cmd}{author}% \EndIndex{Cmd}{date}% \EndIndex{Cmd}{publishers}% \EndIndex{Cmd}{and}% \EndIndex{Cmd}{thanks}% \begin{Declaration} \Macro{uppertitleback}\Parameter{Titelrückseitenkopf}\\ \Macro{lowertitleback}\Parameter{Titelrückseitenfuß} \end{Declaration}% \BeginIndex{Cmd}{uppertitleback}% \BeginIndex{Cmd}{lowertitleback}% % Im doppelseitigen Druck bleibt bei den Standardklassen die Rückseite des Blatts mit der Titelseite leer. Bei {\KOMAScript} lässt sich die Rückseite der Haupttitelseite hingegen für weitere Angaben nutzen. Dabei wird zwischen genau zwei Elementen unterschieden, die der Anwender frei gestalten kann: dem \PName{Titelrückseitenkopf}\Index{Titel>Rueckseite=Rückseite} und dem \PName{Titelrückseitenfuß}. Dabei kann der Kopf bis zum Fuß reichen und umgekehrt. Nimmt man diese Anleitung als Beispiel, so wurde der Haftungsausschluss mit Hilfe von \Macro{uppertitleback} gesetzt. \EndIndex{Cmd}{uppertitleback}% \EndIndex{Cmd}{lowertitleback}% \begin{Declaration} \Macro{dedication}\Parameter{Widmung} \end{Declaration}% \BeginIndex{Cmd}{dedication}% {\KOMAScript} bietet eine eigene Widmungsseite. Diese Widmung\Index{Widmung} wird zentriert und in etwas größerer Schrift gesetzt. Die Rückseite ist wie bei der Seite mit dem Schmutztitel grundsätzlich leer. Die Widmungsseite wird zusammen mit der restlichen Titelei mit \Macro{maketitle} ausgegeben und muss daher vor dieser Anweisung definiert sein. \begin{Example} Nehmen wir dieses Mal an, dass Sie einen Gedichtband schreiben, den Sie Ihrer Frau widmen wollen. Das könnte wie folgt aussehen: \begin{lstlisting} \documentclass{scrbook} \usepackage{ngerman} \begin{document} \extratitle{\textbf{\Huge In Liebe}} \title{In Liebe} \author{Prinz Eisenherz} \date{1412} \lowertitleback{Dieser Gedichtband wurde mit Hilfe von {\KOMAScript} und {\LaTeX} gesetzt.} \uppertitleback{Selbstverlach\par Auf"|lage: 1 Exemplar} \dedication{Meinem Schnuckelchen\\ in ewiger Liebe\\ von Deinem Hasenboppelchen.} \maketitle \end{document} \end{lstlisting} Ich bitte die Kosenamen entsprechend Ihren Vorlieben zu ersetzen. \end{Example} % \EndIndex{Cmd}{dedication} % \EndIndex{Cmd}{maketitle} \begin{Declaration} \Environment{abstract} \end{Declaration}% \BeginIndex{Env}{abstract}% \OnlyAt{\Class{scrartcl}\and\Class{scrreprt}}% Insbesondere bei Artikeln, seltener bei Berichten findet man unmittelbar unter der Titelei und noch vor dem Inhaltsverzeichnis eine Zusammenfassung\Index{Zusammenfassung}. Diese wird daher oftmals als Bestandteil der Titelei betrachtet. Einige \LaTeX-Klassen bieten eine spezielle Umgebung für diese Zusammenfassung, die \Environment{abstract}-Umgebung. Diese wird unmittelbar ausgegeben, ist also nicht Bestandteil der mit \Macro{maketitle} gesetzten Titelei. Bitte beachten Sie unbedingt, dass es sich bei \Environment{abstract} um eine Umgebung und nicht um eine Anweisung handelt. Ob die Zusammenfassung mit einer Überschrift versehen wird oder nicht, wird über die Optionen \Option{abstracton} und \Option{abstractoff} gesteuert (siehe \autoref{sec:maincls.formattingOptions}, \autopageref{desc:maincls.option.abstracton}). Bei Büchern (\Class{scrbook}) ist die Zusammenfassung häufig Bestandteil der Einleitung oder eines gesonderten Kapitels am Ende des Dokuments. Daher gibt es hier keine \Environment{abstract}-Umgebung. Bei Verwendung der Klasse \Class{scrreprt} ist es sicher eine Überlegung wert, ob man nicht genauso verfahren sollte. % \EndIndex{Env}{abstract} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Das Inhaltsverzeichnis} \label{sec:maincls.toc} Auf die Titelei folgt normalerweise das Inhaltsverzeichnis\Index{Inhaltsverzeichnis}. Häufig findet man nach dem Inhaltsverzeichnis auch noch die Verzeichnisse der Gleitumgebungen, beispielsweise von Tabellen und Abbildungen (siehe \autoref{sec:maincls.floats}). \begin{Declaration} \Macro{tableofcontents}\\ \Macro{contentsname} \end{Declaration}% \BeginIndex{Cmd}{tableofcontents}% \BeginIndex{Cmd}{contentsname}% Die Ausgabe des Inhaltsverzeichnisses erreicht man mit \Macro{tableofcontents}. Um ein korrektes Inhaltsverzeichnis zu erhalten, sind nach jeder Änderung mindestens zwei \LaTeX-Läufe notwendig. Mit der Option \Option{liststotoc} kann erreicht werden, dass das Abbildungs- und das Tabellenverzeichnis im Inhaltsverzeichnis aufgeführt werden. Mit \Option{idxtotoc} existiert auch eine entsprechende Option für den Index. Im klassischen Buchdruck ist dies eher unüblich. Das Literaturverzeichnis findet man etwas häufiger im Inhaltsverzeichnis aufgeführt. Auch hierfür gibt es mit \Option{bibtotoc} und \Option{bibtotocnumbered} Optionen. Diese Optionen sind in \autoref{sec:maincls.tocOptions}, \autopageref{desc:maincls.option.liststotoc} näher erläutert. \begin{Explain} Das Inhaltsverzeichnis wird als nicht nummeriertes Kapitel gesetzt und unterliegt damit den Seiteneffekten der \Macro{chapter*}-Anweisung, die in \autoref{sec:maincls.structure}, \autopageref{desc:maincls.macro.chapter*} genannt sind. Allerdings werden bei Verwendung automatischer Kolumnentitel\Index{Kolumnentitel>automatisch} diese sowohl für linke als auch rechte Seiten korrekt mit der Überschrift des Inhaltsverzeichnisses belegt. Der Text der Überschrift ist im Makro \Macro{contentsname} abgelegt. Wenn Sie ein Sprachpaket wie \Package{babel} verwenden, beachten Sie vor der Umdefinierung dieses Makros bitte die Anleitung des Sprachpakets. \end{Explain}% \EndIndex{Cmd}{tableofcontents}% \EndIndex{Cmd}{contentsname}% Für den Aufbau des Inhaltsverzeichnisses gibt es zwei Varianten. Bei der Standardvariante werden die Gliederungsebenen so eingerückt, dass die Gliederungsnummer jeweils linksbündig mit dem Text der nächst höheren Ebene abschließt. Der Platz für die Gliederungsnummer ist dadurch jedoch limitiert und reicht für etwas mehr als 1,5 Stellen je Gliederungsebene. Sollte dies zu einem Problem werden, lässt sich über die Option \Option{tocleft} ein Verhalten einstellen, bei dem alle Einträge des Inhaltsverzeichnisses linksbündig untereinander gesetzt werden. Wie in \autoref{sec:maincls.tocOptions}, \autopageref{desc:maincls.option.tocleft}) erläutert wird, werden dafür mehrere \LaTeX{}-Durchläufe benötigt. \begin{Explain} Der Eintrag für die oberste Gliederungsebene unter \Macro{part}, also \Macro{chapter} bei \Class{scrbook}\IndexClass{scrbook} und \Class{scrreprt}\IndexClass{scrreprt} beziehungsweise \Macro{section} bei \Class{scrartcl}\IndexClass{scrartcl} wird nicht eingerückt. Dafür findet auf ihn die Schriftart für das Element \FontElement{disposition}\IndexFontElement{disposition} (siehe \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}) Anwendung. Gleichzeitig befinden sich zwischen dem Text der Gliederungsebene und der Seitenzahl keine Pünktchen. Die typografischen Gründe dafür liegen in der normalerweise anderen Schriftart sowie der erwünschten Hervorhebung. Das Inhaltsverzeichnis dieser Anleitung ist mit den Voreinstellungen gesetzt und dient als Beispiel. \end{Explain} \begin{Declaration} \Counter{tocdepth} \end{Declaration}% \BeginIndex{Counter}{tocdepth}% Normalerweise werden bei den Klassen \Class{scrbook} und \Class{scrreprt} die Gliederungsebenen \Macro{part} bis \Macro{subsection} und bei der Klasse \Class{scrartcl} die Ebenen \Macro{part} bis \Macro{subsubsection} in das Inhaltsverzeichnis aufgenommen. Gesteuert wird dies über den Zähler \Counter{tocdepth}. Dabei steht der Wert -1 für \Macro{part}, 0 für \Macro{chapter} und so weiter. Da bei \Class{scrartcl} die Ebene \Macro{chapter} nicht existiert, beginnt bei dieser Klasse die Zählung mit \Macro{part} bei 0. Durch Setzen oder Erhöhen oder Verringern des Zählers kann bestimmt werden, bis zu welcher Gliederungsebene Einträge in das Inhaltsverzeichnis erfolgen sollen. Dies ist übrigens bei den Standardklassen ganz genauso. Bei Verwendung des \Package{scrpage2}-Pakets\IndexPackage{scrpage2} (siehe \autoref{cha:scrpage}) muss man sich nicht die nummerischen Werte der einzelnen Gliederungsebenen merken. Dann stehen dafür die Makros \Macro{chapterlevel}, \Macro{sectionlevel} und so weiter bis hinunter zu \Macro{subparagraphlevel} zur Verfügung. \begin{Example} Angenommen, Sie setzen einen Artikel, bei dem die Gliederungsebene \Macro{subsubsection} verwendet wird. Gehen wir weiter davon aus, dass Sie diese Gliederungsebene aber nicht im Inhaltsverzeichnis haben wollen. Dann könnte die Präambel Ihres Dokuments wie folgt aussehen: \begin{lstlisting} \documentclass{scrartcl} \setcounter{tocdepth}{2} \end{lstlisting} Sie setzen den Zähler \Counter{tocdepth} also auf 2, weil Sie wissen, dass dies der Wert für \Macro{subsection} ist. Wissen Sie stattdessen nur, dass normalerweise bei \Class{scrartcl} Einträge in das Inhaltsverzeichnis bis zur Ebene \Macro{subsubsection} erfolgen, können Sie auch einfach vom voreingestellten Wert des Zählers \Counter{tocdepth} eins abziehen: \begin{lstlisting} \documentclass{scrartcl} \addtocounter{tocdepth}{-1} \end{lstlisting} Wieviel Sie von \Counter{tocdepth} subtrahieren oder dazu addieren müssen, kön"-nen Sie natürlich auch einfach nach einem ersten \LaTeX-Lauf im Inhaltsverzeichnis abzählen. \end{Example} \iftrue Ein kleiner Tipp, damit Sie sich nicht merken müssen, welche Gliederungsebene welche Nummer hat: Einfach im Inhaltsverzeichnis abzählen wieviele Ebenen mehr oder weniger Sie benötigen und dann wie in obigem Beispiel mit \Macro{addtocounter} zu \Counter{tocdepth} addieren oder davon subtrahieren.% \fi \iffalse Ein kleiner Tip am Rande: In obigem Beispiel benötigen Sie immer irgendein Vorwissen. Es geht aber auch ohne indem Sie zunächst zwei \LaTeX-Läufe durchführen. Dann zählen Sie am Inhaltsverzeichnis ab, wieviele Ebenen Sie zu \Counter{tocdepth} hinzuaddieren oder davon abziehen müssen. Dies erledigen Sie dann wie eben mit Hilfe von \Macro{addtocounter} in der Präambel Ihres Dokuments.% \fi \KOMAScript{} hat schon immer versucht, im Inhaltsverzeichnis Umbrüche unmittelbar zwischen einer Gliederungsebene und der zugehörigen Unterebene, also beispielsweise zwischen einer Kapitel- und der zugehöriger erster Abschnittsüberschrift, zu vermeiden. Leider funktionierte dieser Mechanismus bis Version~2.96 sehr schlecht bis gar nicht. In Version~2.96a\ChangedAt{v2.96a}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} wurde er erheblich verbessert und sollte nun immer funktionieren. Allerdings kann dies zu Umbruchänderungen im Inhaltsverzeichnis führen. Daher ist der neue Mechanismus nur aktiv, wenn die Kompatibilität nicht auf Version~2.96 oder kleiner eingestellt ist (siehe Option \Option{version}, \autoref{sec:maincls.compatibilityOptions}, \autopageref{desc:maincls.option.version}). Der Mechanismus funktioniert auch nicht mehr, wenn die Befehle zur Erzeugung der Inhaltsverzeichniseinträge umdefiniert werden, etwa bei Verwendung des Pakets \Package{tocloft}. % \EndIndex{Counter}{tocdepth}% \section{Die Verzeichnisse der Gleitumgebungen} In der Regel findet man die Verzeichnisse der Gleitumgebungen\index{Gleitumgebung}, also das \index{Tabellen>Verzeichnis der}Tabellen- und das Abbildungsverzeichnis\index{Abbildungen>Verzeichnis der}, unmittelbar nach dem Inhaltsverzeichnis. In einigen Dokumenten wandern diese auch in den Anhang. Der Autor bevorzugt jedoch die Platzierung unmittelbar nach dem Inhaltsverzeichnis. Daher erfolgt die Erklärung auch in diesem Abschnitt. \begin{Declaration} \Macro{listoftables}\\ \Macro{listoffigures}\\ \Macro{listtablename}\\ \Macro{listfigurename} \end{Declaration} \BeginIndex{Cmd}{listoftables}% \BeginIndex{Cmd}{listoffigures}% \BeginIndex{Cmd}{listtablename}% \BeginIndex{Cmd}{listfigurename}% Mit diesen Anweisungen kann ein Verzeichnis der Tabellen beziehungsweise der Abbildungen ausgegeben werden. Änderungen, die Auswirkungen auf diese Verzeichnisse haben, werden erst nach zwei \LaTeX{}-Läufen sichtbar. Die Form der Verzeichnisse kann durch die Optionen \Option{listsindent} und \Option{listsleft} beeinflusst werden (siehe \autoref{sec:maincls.listsOptions}, \autopageref{desc:maincls.option.listsleft}). Darüber hinaus wirken sich indirekt die Optionen \Option{liststotoc} und \Option{liststotocnumbered} aus (siehe \autoref{sec:maincls.tocOptions}, \autopageref{desc:maincls.option.liststotoc}). \begin{Explain} Der Text der Überschriften der beiden Verzeichnisse ist in den Makros \Macro{listtablename} und \Macro{listfigurename} abgelegt. Wenn Sie ein Sprachpaket wie \Package{babel} verwenden, beachten Sie vor der Umdefinierung dieser Makros bitte die Anleitung des Sprachpakets. \end{Explain} % \EndIndex{Cmd}{listoftables}% \EndIndex{Cmd}{listoffigures}% \EndIndex{Cmd}{listtablename}% \EndIndex{Cmd}{listfigurename}% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Der Text} \label{sec:maincls.mainText} In diesem Abschnitt finden Sie alles, was \KOMAScript{} für die Erstellung des eigentlichen Textes bereitstellt. Dies ist der Teil, auf den Sie sich bei einem Dokument zunächst konzentrieren sollten. Selbstverständlich gehören dazu auch Tabellen, Abbildungen und vergleichbares Material. \subsection[Abgrenzung]{Abgrenzung\protect\OnlyAt{\Class{scrbook}}} \label{sec:maincls.separation} Bevor wir tatsächlich zum Text kommen, sind noch drei Anweisungen kurz anzusprechen, die es bei der Standardklasse \Class{book} und der {\KOMAScript}-Klasse \Class{scrbook} gibt. Sie können bei einem Buch zur Abgrenzung des \emph{Vorspanns}\Index{Vorspann}, des \emph{Hauptteils}\Index{Hauptteil} und des \emph{Nachspanns}\Index{Nachspann} verwendet werden. \begin{Declaration} \Macro{frontmatter}\\ \Macro{mainmatter}\\ \Macro{backmatter} \end{Declaration}% \BeginIndex{Cmd}{frontmatter}% \BeginIndex{Cmd}{mainmatter}% \BeginIndex{Cmd}{backmatter}% Mit \Macro{frontmatter} wird der Vorspann eingeleitet. Im Vorspann werden die nummerierten Seiten mit römischen Seitenzahlen versehen. Kapitelüberschriften sind im Vorspann nicht nummeriert. Abschnittsüberschriften wären jedoch nummeriert, gingen von Kapitelnummer 0 aus und wären außerdem über Kapitelgrenzen hinweg durchgehend nummeriert. Dies spielt jedoch keine Rolle, da der Vorspann allenfalls für die Titelei, das Inhalts-\Index{Inhaltsverzeichnis}, Abbildungs-\Index{Abbildungen>Verzeichnis der} und Tabellenverzeichnis\Index{Tabellen>Verzeichnis der} und ein Vorwort\Index{Vorwort} verwendet wird. Das Vorwort kann also als normales Kapitel gesetzt werden. Ein Vorwort sollte niemals in Abschnitte unterteilt, sondern möglichst kurz gefasst werden. Im Vorwort wird also keine tiefere Gliederungsebene als Kapitel benötigt. \looseness=-1 Mit \Macro{mainmatter} wird der Hauptteil eingeleitet. Existiert kein Vorspann, so kann diese Anweisung auch entfallen. Im Hauptteil sind arabische Seitenzahlen voreingestellt. Die Seitenzählung beginnt im Hauptteil neu mit 1. Mit \Macro{backmatter} wird der Nachspann eingeleitet. Was zum Nachspann gehört, ist unterschiedlich. Manchmal wird im Nachspann nur das Literaturverzeichnis\Index{Literaturverzeichnis}, manchmal nur der Index\Index{Index} gesetzt. Manchmal erscheint der gesamte Anhang im Nachspann. Der Nachspann gleicht bezüglich der Gliederungsüberschriften dem Vorspann. Eine getrennte Seitennummerierung ist jedoch nicht vorgesehen. Falls Sie dies ebenfalls benötigen, bedienen Sie sich bitte der Anweisung \Macro{pagenumbering} aus \autoref{sec:maincls.pageStyle}, \autopageref{desc:maincls.macro.pagenumbering}. % \EndIndex{Cmd}{frontmatter}% \EndIndex{Cmd}{mainmatter}% \EndIndex{Cmd}{backmatter}% \subsection{Gliederung}\Index[indexmain]{Gliederung} \label{sec:maincls.structure} Unter der Gliederung versteht man die Einteilung eines Dokuments in Teile, Kapitel, Abschnitte und weitere Gliederungsebenen. \begin{Declaration} \Macro{part}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{chapter}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{section}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{subsection}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{subsubsection}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{paragraph}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{subparagraph}\OParameter{Kurzform}\Parameter{Überschrift} \end{Declaration}% \BeginIndex{Cmd}{part}\Index[indexmain]{Teil}% \BeginIndex{Cmd}{chapter}\Index[indexmain]{Kapitel}% \BeginIndex{Cmd}{section}\Index[indexmain]{Abschnitt}% \BeginIndex{Cmd}{subsection}% \BeginIndex{Cmd}{subsubsection}% \BeginIndex{Cmd}{paragraph}% \BeginIndex{Cmd}{subparagraph}% Die Standardgliederungsbefehle funktionieren bei {\KOMAScript} beinahe genau wie bei den Standardklassen. So kann ganz normal über ein optionales Argument ein abweichender Text für den Kolumnentitel und das Inhaltsverzeichnis vorgegeben werden. Die Überschrift der Teile-Ebene (\Macro{part}) unterscheidet sich von den anderen Gliederungsebenen dadurch, dass sie unabhängig von den übrigen Ebenen nummeriert wird. Das bedeutet, dass die Kapitel-Ebene (bei \Class{scrbook} oder \Class{scrreprt}) bzw. die Abschnitt-Ebene (bei \Class{scrartcl}) über alle Teile hinweg durchgehend nummeriert wird. Desweiteren steht bei den Klassen \Class{scrbook} und \Class{scrreprt} die Überschrift dieser Ebene zusammen mit ihrer Präambel (siehe \Macro{setpartpreamble}, \autopageref{desc:maincls.macro.setpartpreamble}) alleine auf einer Seite. \Macro{chapter}\OnlyAt{\Class{scrartcl}} existiert nur bei Buch- und Berichtklassen, also bei \Class{book}, \Class{scrbook}, \Class{report} und \Class{scrreport}, nicht jedoch bei den Artikelklassen \Class{article} und \Class{scrartcl}. \Macro{chapter} unterscheidet sich bei {\KOMAScript} außerdem gravierend von der Version der Standardklassen. Bei den Standardklassen wird die Kapitelnummer mit dem Präfix »Kapitel« beziehungsweise dem Kapitelnamen in der gewählten Sprache in einer Zeile vor dem eigentlichen Text der Überschrift ausgegeben. Diese sehr mächtige Form wird bei {\KOMAScript} durch eine einfache Nummer vor dem Text abgelöst, lässt sich aber durch die Option \Option{chapterprefix} wieder einstellen (siehe \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.chapterprefix}). Bitte beachten Sie, dass \Macro{part} und \Macro{chapter} bei \Class{scrbook} und \Class{scrreprt}\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} den Seitenstil für eine Seite umschaltet. Der jeweilige Seitenstil ist bei \KOMAScript{} in den Makros \Macro{partpagestyle} und \Macro{chapterpagestyle} abgelegt (siehe \autoref{sec:maincls.pageStyle}, \autopageref{desc:maincls.macro.titlepagestyle}). \BeginIndex[indexother]{}{Schriftart}% \BeginIndex[indexother]{}{Schriftgroesse=Schriftgröße}% Die Schriftart aller Gliederungsebenen\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % kann mit der in \autoref{sec:maincls.font} beschriebenen Anweisungen \Macro{setkomafont}\IndexCmd{setkomafont} und \Macro{addtokomafont}\IndexCmd{addtokomafont} bestimmt werden. Dabei wird zunächst generell das Element \FontElement{disposition}\IndexFontElement{disposition} und anschließend zusätzlich je Gliederungsebene ein spezifisches Element verwendet (siehe \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}). Die Schriftart für das Element \FontElement{disposition}\IndexFontElement{disposition} ist als \Macro{normalcolor}""\Macro{sffamily}""\Macro{bfseries} vordefiniert. Die Voreinstellungen für die spezifischen Elemente sind mit einer Schriftgröße vorbelegt und daher von den Klassenoptionen \Option{bigheadings}, \Option{normalheadings} und \Option{smallheadings} (siehe \autoref{sec:maincls.fontOptions}, \autopageref{desc:maincls.option.smallheadings}) abhängig. Sie finden die Voreinstellungen in \autoref{tab:maincls.structureElementsFont}. % \begin{table} \centering% \caption[{Schriftvoreinstellungen für die Elemente der Gliederung bei\newline \Class{scrbook} und \Class{scrreprt}}]{Schriftvoreinstellungen für die Elemente der Gliederung bei \Class{scrbook} und \Class{scrreprt}} \begin{tabular}{lll} \toprule Klassenoption & Element & Voreinstellung \\ \midrule \Option{bigheadings} & \FontElement{part}\IndexFontElement{part} & \Macro{Huge} \\ & \FontElement{partnumber}\IndexFontElement{partnumber} & \Macro{huge} \\ & \FontElement{chapter}\IndexFontElement{chapter} & \Macro{huge} \\ & \FontElement{section}\IndexFontElement{section} & \Macro{Large} \\ & \FontElement{subsection}\IndexFontElement{subsection} & \Macro{large} \\ & \FontElement{subsubsection}\IndexFontElement{subsubsection} & \Macro{normalsize} \\ & \FontElement{paragraph}\IndexFontElement{paragraph=} & \Macro{normalsize} \\ & \FontElement{subparagraph}\IndexFontElement{subparagraph} & \Macro{normalsize} \\[1ex] \Option{normalheadings} & \FontElement{part} & \Macro{huge} \\ & \FontElement{partnumber} & \Macro{huge} \\ & \FontElement{chapter} & \Macro{LARGE} \\ & \FontElement{section} & \Macro{Large} \\ & \FontElement{subsection} & \Macro{large} \\ & \FontElement{subsubsection} & \Macro{normalsize} \\ & \FontElement{paragraph} & \Macro{normalsize} \\ & \FontElement{subparagraph} & \Macro{normalsize} \\[1ex] \Option{smallheadings} & \FontElement{part} & \Macro{LARGE} \\ & \FontElement{partnumber} & \Macro{LARGE} \\ & \FontElement{chapter} & \Macro{Large} \\ & \FontElement{section} & \Macro{large} \\ & \FontElement{subsection} & \Macro{normalsize} \\ & \FontElement{subsubsection} & \Macro{normalsize} \\ & \FontElement{paragraph} & \Macro{normalsize} \\ & \FontElement{subparagraph} & \Macro{normalsize} \\ \bottomrule \end{tabular} \label{tab:maincls.structureElementsFont} \end{table} \begin{Example} Angenommen, Sie verwenden die Klassenoption \Option{bigheadings} und stellen fest, dass die sehr großen Überschriften von Teildokumenten zu fett wirken. Nun könnten Sie natürlich wie folgt verfahren: \begin{lstlisting} \setkomafont{disposition}{\normalcolor\sffamily} \part{\appendixname} \addtokomafont{disposition}{\bfseries} \end{lstlisting} \looseness=-1 Auf diese Weise würden Sie nur für die eine Überschrift »Anhang« das Schriftattribut \textbf{Fett} abschalten. Sehr viel komfortabler und eleganter ist es aber, stattdessen generell für \Macro{part}-Überschriften eine entsprechende Änderung vorzunehmen. Das ist wahlweise mit: \begin{lstlisting} \addtokomafont{part}{\normalfont\sffamily} \addtokomafont{partnumber}{\normalfont\sffamily} \end{lstlisting} oder einfach mit: \begin{lstlisting} \addtokomafont{part}{\mdseries} \addtokomafont{partnumber}{\mdseries} \end{lstlisting} möglich. Die letzte Version ist vorzuziehen, da diese auch dann noch zum gewünschten Ergebnis führt, wenn Sie später das Element \FontElement{disposition}\IndexFontElement{disposition} wie folgt ändern: \begin{lstlisting} \setkomafont{disposition}{\normalcolor\bfseries} \end{lstlisting} Mit dieser Änderung verzichten Sie darauf, für alle Gliederungsebenen serifenlose Schrift voreinzustellen. \end{Example} Ich möchte Sie eindringlich davor warnen, die Möglichkeit zur Schriftumschaltung zu missbrauchen, um wild Schriften, Schriftgrößen und Schriftattribute miteinander zu mischen. Die Auswahl der richtigen Schrift für die richtige Aufgabe ist eine Sache für Experten und hat sehr, sehr wenig mit dem persönlichem Geschmack eines Laien zu tun. Siehe hierzu auch das Zitat am Ende von \autoref{sec:typearea.tips}, \autopageref{sec:typearea.tips.cite} und die folgende Erklärung. \begin{Explain} Unterschiedliche Schriften für unterschiedliche Gliederungsebenen sind mit {\KOMAScript}-Mitteln möglich. Der Laie sollte sie aber meiden wie der Teufel das Weihwasser. Dies hat typografische Gründe. Eine Regel der Typografie besagt, dass man möglichst wenig Schriften miteinander mischen soll. Serifenlose für die Überschriften scheinen bereits ein Verstoß gegen diese Regel zu sein. Allerdings muss man wissen, dass fette, große, serifenbehaftete Buchstaben oft viel zu mächtig für eine Überschrift sind. Man müsste dann strenggenommen zumindest auf eine normale statt eine fette oder halbfette Schrift ausweichen. In tiefen Gliederungsebenen kann das aber wieder zu schwach sein. Andererseits haben Serifenlose in Überschriften eine sehr angenehme Wirkung und fast nur für Überschriften eine Berechtigung. Daher wurde diese Voreinstellung für {\KOMAScript} mit gutem Grund gewählt. Größere Vielfalt sollte aber vermieden werden. Schriftenmischung ist etwas für Profis. Aus den genannten Gründen sollten Sie bei Verwendung anderer als der Standard-\TeX-Fonts -- egal ob CM"~\Index{CM-Fonts}, EC"~\Index{EC-Fonts} oder LM-Fonts\Index{LM-Fonts} -- bezüglich der Verträglichkeit der serifenlosen und serifenbehafteten Schrift einen Experten zu Rate ziehen oder die Schrift für das Element \FontElement{disposition}\IndexFontElement{disposition} vorsichtshalber wie in obigem Beispiel umdefinieren. Die häufig anzutreffenden Kombinationen Times mit Helvetica oder Palatino mit Helvetica werden vom Autor als ungünstig betrachtet. \end{Explain} \EndIndex[indexother]{}{Schriftart}% \EndIndex[indexother]{}{Schriftgroesse=Schriftgröße}% % \EndIndex{Cmd}{part}% \EndIndex{Cmd}{chapter}% \EndIndex{Cmd}{section}% \EndIndex{Cmd}{subsection}% \EndIndex{Cmd}{subsubsection}% \EndIndex{Cmd}{paragraph}% \EndIndex{Cmd}{subparagraph}% \begin{Declaration} \Macro{part*}\Parameter{Überschrift}\\ \Macro{chapter*}\Parameter{Überschrift}\\ \Macro{section*}\Parameter{Überschrift}\\ \Macro{subsection*}\Parameter{Überschrift}\\ \Macro{subsubsection*}\Parameter{Überschrift}\\ \Macro{paragraph*}\Parameter{Überschrift}\\ \Macro{subparagraph*}\Parameter{Überschrift} \end{Declaration}% \BeginIndex{Cmd}{part*}% \BeginIndex{Cmd}{chapter*}% \BeginIndex{Cmd}{section*}% \BeginIndex{Cmd}{subsection*}% \BeginIndex{Cmd}{subsubsection*}% \BeginIndex{Cmd}{paragraph*}% \BeginIndex{Cmd}{subparagraph*}% Ebenso existieren die Sternvarianten der Gliederungsbefehle, bei denen keine Nummerierung\Index{Nummerierung} erfolgt, kein Kolumnentitel\Index{Kolumnentitel>automatisch} gesetzt wird und kein Eintrag ins Inhaltsverzeichnis\Index{Inhaltsverzeichnis} stattfindet. Der Verzicht auf den Kolumnentitel hat übrigens einen oftmals unerwünschten Effekt. Geht beispielsweise ein mit \Macro{chapter*} gesetztes Kapitel über mehrere Seiten, so taucht plötzlich der Kolumnentitel des letzen Kapitels wieder auf. {\KOMAScript} bietet dafür aber eine Lösung, die im Folgenden beschrieben wird. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}\Macro{chapter*} existiert selbstverständlich nur bei Buch- und Berichtklassen, also bei \Class{book}, \Class{scrbook}, \Class{report} und \Class{scrreport}, nicht jedoch bei den Artikelklassen \Class{article} und \Class{scrartcl}. Bitte beachten Sie, dass \Macro{part*} und \Macro{chapter*} den Seitenstil für eine Seite umschaltet. Der jeweilige Seitenstil ist bei \KOMAScript{} in den Makros \Macro{partpagestyle} und \Macro{chapterpagestyle} abgelegt (siehe \autoref{sec:maincls.pageStyle}, \autopageref{desc:maincls.macro.titlepagestyle}). Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % gilt das Gleiche wie zuvor in der Erklärung zu den sternlosen Varianten geschrieben. Die Elemente tragen die gleichen Namen, da sie nicht Varianten, sondern Gliederungsebenen bezeichnen. % \EndIndex{Cmd}{part*}% \EndIndex{Cmd}{chapter*}% \EndIndex{Cmd}{section*}% \EndIndex{Cmd}{subsection*}% \EndIndex{Cmd}{subsubsection*}% \EndIndex{Cmd}{paragraph*}% \EndIndex{Cmd}{subparagraph*}% \iffalse Bei den Standardklassen gibt es keine weiteren Gliederungsbefehle. Es existiert also insbesondere keine Anweisungen, mit denen man nicht nummerierte Kapitel oder nicht nummerierte Abschnitte erzeugen kann, die ins Inhaltsverzeichnis aufgenommen werden und bei denen ein automatischer Kolumentitel erzeugt wird. \fi \begin{Declaration} \Macro{addpart}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{addpart*}\Parameter{Überschrift}\\ \Macro{addchap}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{addchap*}\Parameter{Überschrift}\\ \Macro{addsec}\OParameter{Kurzform}\Parameter{Überschrift}\\ \Macro{addsec*}\Parameter{Überschrift} \end{Declaration}% \BeginIndex{Cmd}{addpart}% \BeginIndex{Cmd}{addpart*}% \BeginIndex{Cmd}{addchap}% \BeginIndex{Cmd}{addchap*}% \BeginIndex{Cmd}{addsec}% \BeginIndex{Cmd}{addsec*}% {\KOMAScript} bietet über die Gliederungsbefehle der Standardklassen hinaus die Anweisungen \Macro{addchap} und \Macro{addsec}. Diese ähneln bis auf die fehlende Nummerierung sehr den Standardanweisungen \Macro{part}, \Macro{chapter} und \Macro{section}. Sie erzeugen also sowohl einen automatischen Kolumnentitel als auch einen Eintrag ins Inhaltsverzeichnis. Die Sternvarianten \Macro{addchap*} und \Macro{addsec*} gleichen hingegen den Standardanweisungen \Macro{chapter*} und \Macro{section*} mit einem winzigen aber wichtigen Unterschied: Die Kolumnentitel werden gelöscht. Dadurch wird der oben erwähnte Effekt veralteter Kolumnentitel ausgeschlossen. Stattdessen bleibt der Kolumnentitel auf Folgeseiten leer. \OnlyAt{\Class{scrartcl}}\Macro{addchap} und \Macro{addchap*} existieren selbstverständlich nur bei Buch- und Berichtklassen, also bei \Class{scrbook} und \Class{scrreport}, nicht jedoch bei der Artikelklasse \Class{scrartcl}. Die Anweisung \Macro{addpart} erstellt entsprechend einen nicht nummerierten Dokumentteil mit einem Eintrag ins Inhaltsverzeichnis. Da bereits \Macro{part} und \Macro{part*} den Kolumnentitel löschen, ergibt sich hier nicht das oben genannte Problem mit veralteten Kolumnentiteln. Die Sternvariante \Macro{addpart*} ist daher identisch mit der Sternvariante \Macro{part*} und wurde nur aus Konsistenzgründen definiert. Bitte beachten Sie, dass \Macro{addpart} und \Macro{addchap} und deren Sternvarianten den Seitenstil für eine Seite umschaltet. Der jeweilige Seitenstil ist in den Makros \Macro{partpagestyle} und \Macro{chapterpagestyle} abgelegt (siehe \autoref{sec:maincls.pageStyle}, \autopageref{desc:maincls.macro.titlepagestyle}). Bezüglich der Möglichkeiten der Schriftumschaltung\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} % gilt das gleiche wie zuvor in der Erklärung zu \Macro{part*}, \Macro{chapter*} und \Macro{section*} geschrieben. Die Elemente tragen die gleichen Namen, da sie nicht Varianten, sondern Gliederungsebenen bezeichnen. % \EndIndex{Cmd}{addpart}% \EndIndex{Cmd}{addpart*}% \EndIndex{Cmd}{addchap}% \EndIndex{Cmd}{addchap*}% \EndIndex{Cmd}{addsec}% \EndIndex{Cmd}{addsec*}% \begin{Declaration} \Macro{minisec}\Parameter{Überschrift} \end{Declaration}% \BeginIndex{Cmd}{minisec}% Manchmal ist eine Art Überschrift\Index{Ueberschriften=Überschriften} wünschenswert, die zwar hervorgehoben wird, ansonsten aber eng mit dem nachfolgenden Text zusammenhängt. Eine solche Überschrift soll dann ohne große Abstände gesetzt werden. Der Befehl \Macro{minisec} bewirkt genau eine derartige Überschrift. Diese Überschrift ist keiner Gliederungsebene zugeordnet. Eine solche \emph{Mini-section} wird nicht in das Inhaltsverzeichnis aufgenommen und erhält auch keine Nummerierung. \begin{Example} Sie haben einen Bausatz für eine Mausefalle entwickelt und wollen diesen getrennt nach den benötigen Materialien und der Anleitung für die Montage beschreiben. Das könnte so gemacht werden: \begin{lstlisting} \minisec{Bauteile} \begin{flushleft} 1 Brett ($100\times 50 \times 12$)\\ 1 Bierflaschenschnappverschluss\\ 1 Kugelschreiberfeder\\ 1 Reißzwecke\\ 2 Schrauben\\ 1 Hammer\\ 1 Messer \end{flushleft} \minisec{Montage} Zunächst suche man das Mauseloch. Dann lege man die Reißzwecke innen unmittelbar hinter das Loch, damit bei den folgenden Aktionen die Maus nicht entschlüpfen kann. Anschließend klopfe man mit dem Hammer den Bierflaschenschnappverschluss in das Mauseloch. Sollte der Verschluss nicht groß genug sein, um das Loch vollständig und dauerhaft zu verschließen, nehme man stattdessen das Brett und schraube es unter Zuhilfenahme der beiden Schrauben und des Messers vor das Loch. Statt des Messers kann selbstverständlich auch ein Schraubendreher verwendet werden. Die Kugelschreiberfeder ist dem Tierschutz zum Opfer gefallen. \end{lstlisting} Das Ganze sieht anschließend so aus: \begin{ShowOutput}[\baselineskip]\setlength{\parindent}{1em} \minisec{Bauteile} \begin{flushleft} 1 Brett ($100\times 50 \times 12$)\\ 1 Bierflaschenschnappverschluss\\ 1 Kugelschreiberfeder\\ 1 Reißzwecke\\ 2 Schrauben\\ 1 Hammer\\ 1 Messer \end{flushleft} \minisec{Montage} Zunächst suche man das Mauseloch. Dann lege man die Reißzwecke innen unmittelbar hinter das Loch, damit bei den folgenden Aktionen die Maus nicht entschlüpfen kann. Anschließend klopfe man mit dem Hammer den Bierflaschenschnappverschluss in das Mauseloch. Sollte der Verschluss nicht groß genug sein, um das Loch vollständig und dauerhaft zu verschließen, nehme man stattdessen das Brett und schraube es unter Zuhilfenahme der beiden Schrauben und des Messers vor das Loch. Statt des Messers kann selbstverständlich auch ein Schraubendreher verwendet werden. Die Kugelschreiberfeder ist dem Tierschutz zum Opfer gefallen. % Mit der Kugelschreiberfeder hat es eine besondere % Bewandtnis. Sie stammt noch aus dem Selbstbauprojekt % »Mauseschnappfalle«, das dem Tierschutz zum Opfer gefallen ist. \end{ShowOutput} \end{Example} Die Schriftart des Gliederungsbefehls \Macro{minisec} kann über die Elemente \FontElement{disposition}\IndexFontElement{disposition} und \FontElement{minisec}\IndexFontElement{minisec}\ChangedAt{v2.96a}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} beeinflusst werden (siehe \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellung für das Element \FontElement{minisec} ist leer, so dass in der Voreinstellung direkt das Element \FontElement{disposition} wirkt. % \EndIndex{Cmd}{minisec}% \begin{Declaration} \Macro{raggedsection} \end{Declaration}% \BeginIndex{Cmd}{raggedsection}% Bei den Standardklassen werden die Überschriften ganz normal im Blocksatz ausgegeben. Dadurch können in den Überschriften Trennungen auf"|treten und mehrzeilige Überschriften werden auf Textbreite gedehnt. Dieses Vorgehen ist in der Typografie eher unüblich. {\KOMAScript} setzt Überschriften daher in linksbündigem Flattersatz mit hängendem Einzug. Verantwortlich ist dafür die Anweisung \Macro{raggedsection}, die vordefiniert ist als: \begin{lstlisting} \newcommand*{\raggedsection}{\raggedright} \end{lstlisting} Diese Anweisung kann mit \Macro{renewcommand} umdefiniert werden. \begin{Example} Sie wollen auch für Überschriften Blocksatz. Dazu schreiben Sie in die Präambel Ihres Dokuments: \begin{lstlisting} \renewcommand*{\raggedsection}{} \end{lstlisting} oder kürzer: \begin{lstlisting} \let\raggedsection\relax \end{lstlisting} Sie erreichen somit eine ähnliche Formatierung der Überschriften wie bei den Standardklassen. Noch ähnlicher wird es, wenn sie diese Änderung mit der oben vorgestellten Änderung für das Element \FontElement{disposition}\IndexFontElement{disposition} kombinieren. \end{Example} % \EndIndex{Cmd}{raggedsection}% \begin{Explain}% \begin{Declaration} \Macro{partformat}\\ \Macro{chapterformat}\\ \Macro{othersectionlevelsformat}\Parameter{Gliederungsname}\\ \Macro{autodot} \end{Declaration}% \BeginIndex{Cmd}{partformat}\Index{Teil>Nummer}% \BeginIndex{Cmd}{chapterformat}\Index{Kapitel>Nummer}% \BeginIndex{Cmd}{othersectionlevelsformat}\Index{Abschnitt>Nummer}% \BeginIndex{Cmd}{autodot}% Bekanntlich gibt es bei {\LaTeX} zu jedem mit \Macro{newcounter}\IndexCmd{newcounter} definierten Zähler eine Anweisung \Macro{the}\PName{Zählername}\IndexCmd{the\PName{Zählername}}, mit welcher der Zähler ausgegeben werden kann. Die Darstellung der Zähler für die einzelnen Gliederungsebenen setzt sich dabei je nach Klasse ab \Macro{section} (\Class{book}, \Class{scrbook}, \Class{report}, \Class{scrreprt}) oder ab \Macro{subsection} (\Class{article}, \Class{scrartcl}) aus der Darstellung des Zählers für die übergeordnete Ebene, gefolgt von einem Punkt und der arabischen Zahl des \PName{Zählername}ns der jeweiligen Ebene zusammen. \end{Explain} \KOMAScript{} hat der Ausgabe der Gliederungsnummern eine weitere logische Ebene zugefügt. Die Zähler werden für die jeweilige Überschrift nicht einfach nur ausgegeben. Sie werden mit Hilfe der Anweisungen \Macro{partformat}, \Macro{chapterformat} und \Macro{othersectionlevelsformat} formatiert. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Die Anweisung \Macro{chapterformat} existiert wie auch \Macro{thechapter} selbstverständlich nicht in der Klasse \Class{scrartcl}, sondern nur in den Klassen \Class{scrbook} und \Class{scrreprt}. Wie bereits in \autoref{sec:maincls.formattingOptions}, \autopageref{desc:maincls.option.pointlessnumbers} erläutert wurde, müssen gemäß \cite{DUDEN} die Gliederungsnummern je nach Gliederung mit einem nachfolgenden Punkt versehen werden oder dieser hat zu entfallen. Die Anweisung \Macro{autodot} ist bei {\KOMAScript} für die Einhaltung dieser Regel verantwortlich. Auf den Punkt folgt bei allen Gliederungsebenen außer \Macro{part} noch ein \Macro{enskip}. Dies entspricht einem Leerraum von 0,5\Unit{em}. Die Anweisung \Macro{othersectionlevelsformat} erwartet als Parameter den Namen der Gliederungsebene, also »\PName{section}«, »\PName{subsection}« \dots{} In der Voreinstellung gibt es also nur für die Ebenen \Macro{part} und \Macro{chapter} eigene Formatieranweisungen, während alle anderen Gliederungsebenen mit Hilfe einer einzigen Formatieranweisung abgedeckt werden. Dies ist allein historisch begründet. Als Werner Lemberg für sein \Package{CJK}-Paket eine entsprechende Erweiterung von {\KOMAScript} angeregt hat, wurde nur diese Unterscheidung benötigt. Die Formatierungsanweisungen können mit Hilfe von \Macro{renewcommand} umdefiniert werden, um sie eigenen Anforderungen anzupassen. Nachfolgend finden Sie die Originaldefinitionen aus den {\KOMAScript}-Klassen: \begin{lstlisting} \newcommand*{\partformat}{\partname~\thepart\autodot} \newcommand*{\chapterformat}{% \chapappifchapterprefix{\ }\thechapter\autodot\enskip} \newcommand*{\othersectionlevelsformat}[1]{% \csname the#1\endcsname\autodot\enskip} \end{lstlisting} \begin{Example} Angenommen, Sie wollen, dass bei \Macro{part} das Wort »Teil« vor der Nummer nicht ausgegeben wird. Dann können Sie beispielsweise folgende Anweisung in die Präambel Ihres Dokuments schreiben: \begin{lstlisting} \renewcommand*{\partformat}{\thepart\autodot} \end{lstlisting} Genau genommen könnten Sie an dieser Stelle auch auf \Macro{autodot} verzichten und stattdessen einen festen Punkt setzen. Da \Macro{part} mit römischen Zahlen nummeriert wird, muss der Punkt laut \cite{DUDEN} folgen. Allerdings bringen Sie sich dann um die Möglichkeit, eine der Optionen \Option{pointednumbers} und \Option{pointlessnumbers} einzusetzen und so von der Regel abzuweichen. Näheres zu den Klassenoptionen siehe \autoref{sec:maincls.formattingOptions}, \autopageref{desc:maincls.option.pointlessnumbers}. Eine weitere Möglichkeit wäre, die Nummerierung der Abschnitte so in den Rand zu platzieren, dass der Überschriftentext links mit dem umgebenden Text abschließt. Dies erreicht man mit: \begin{lstlisting} \renewcommand*{\othersectionlevelsformat}[1]{% \llap{\csname the#1\endcsname\autodot\enskip}} \end{lstlisting} Die wenig bekannte \TeX-Anweisung \Macro{llap}\IndexCmd{llap} sorgt dabei dafür, dass das Argument links von der aktuellen Position ausgegeben wird, ohne dass dabei die Position verändert wird. Eine bessere \LaTeX-Lösung für dieses Problem wäre: \begin{lstlisting} \renewcommand*{\othersectionlevelsformat}[1]{% \makebox[0pt][r]{% \csname the#1\endcsname\autodot\enskip}} \end{lstlisting} Näheres zu den optionalen Argument von \Macro{makebox} ist \cite{latex:usrguide} zu entnehmen. \end{Example} % \EndIndex{Cmd}{partformat}% \EndIndex{Cmd}{chapterformat}% \EndIndex{Cmd}{othersectionlevelsformat}% \EndIndex{Cmd}{autodot}% \begin{Declaration} \Macro{chapappifchapterprefix}\Parameter{Zusatztext}\\ \Macro{chapapp} \end{Declaration}% \BeginIndex{Cmd}{chapappifchapterprefix}% \BeginIndex{Cmd}{chapapp}% \OnlyAt{\vskip -1.55\baselineskip\Class{scrbook}\and\Class{scrreprt}}% \ChangedAt{v2.8o}{\Class{scrbook}\and\Class{scrreprt}}% Diese beiden Anweisungen werden nicht nur intern von {\KOMAScript} verwendet, sondern stehen auch dem Anwender zur Verfügung. Nachfolgend werden sie beispielsweise für die Umdefinierung anderer Anweisungen verwendet. Bei Verwendung der Layoutoption \Option{chapterprefix} (siehe \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.chapterprefix}) setzt \Macro{chapappifchapterprefix} im Hauptteil des Dokuments das Wort »Kapitel«\Index{Kapitel>Ueberschrift=Überschrift} in der aktuellen Sprache gefolgt vom \PName{Zusatztext}. Im Anhang\Index{Anhang} wird stattdessen das Wort »Anhang« in der aktuellen Sprache, ebenfalls gefolgt vom \PName{Zusatztext}, ausgegeben. Bei der Einstellung \Option{nochapterprefix} wird hingegen nichts ausgegeben. Die Anweisung \Macro{chapapp} setzt immer das Wort »Kapitel« beziehungsweise »Anhang«. Dabei spielen die beiden Optionen \Option{chapterprefix} und \Option{nochapterprefix} keine Rolle. Da es Kapitel nur bei den Klassen \Class{scrbook} und \Class{scrreprt} gibt, existieren die beiden Anweisungen auch nur bei diesen Klassen. % \EndIndex{Cmd}{chapappifchapterprefix}% \EndIndex{Cmd}{chapapp}% \begin{Explain} \begin{Declaration} \Macro{chaptermark}\Parameter{Kolumnentitel}\\ \Macro{sectionmark}\Parameter{Kolumnentitel}\\ \Macro{subsectionmark}\Parameter{Kolumnentitel}\\ \Macro{chaptermarkformat}\\ \Macro{sectionmarkformat}\\ \Macro{subsectionmarkformat} \end{Declaration}% \BeginIndex{Cmd}{chaptermark}\Index{Kapitel}% \BeginIndex{Cmd}{sectionmark}\Index{Abschnitt}% \BeginIndex{Cmd}{subsectionmark}% \BeginIndex{Cmd}{chaptermarkformat}% \BeginIndex{Cmd}{sectionmarkformat}% \BeginIndex{Cmd}{subsectionmarkformat}% Wie bereits in \autoref{sec:maincls.pageStyle} erwähnt, arbeitet der Seitenstil \PValue{headings} mit automatischen Kolumnentiteln\Index{Kolumnentitel>automatisch}. Dazu werden die Anweisungen \Macro{chaptermark} und \Macro{sectionmark} beziehungsweise \Macro{sectionmark} und \Macro{subsectionmark} entsprechend definiert. Gliederungsbefehle (\Macro{chapter}, \Macro{section}~\dots) führen automatisch eine entsprechende \Macro{\dots mark}-Anweisung aus. Der übergebene Parameter beinhaltet dabei den Text der Gliederungsüberschrift\Index{Ueberschriften=Überschriften}. Die zugehörige Gliederungsnummer wird automatisch in der \Macro{\dots mark}-Anweisung hinzugefügt. Die Formatierung erfolgt dabei je nach Gliederungsebene mit einer der drei Anweisungen \Macro{chaptermarkformat}, \Macro{sectionmarkformat} und \Macro{subsectionmarkformat}. \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Während es bei \Class{scrartcl} weder \Macro{chaptermark} noch \Macro{chaptermarkformat} gibt, existieren \OnlyAt{\Class{scrartcl}} \Macro{subsectionmark} und \Macro{subsectionmarkformat} nur bei \Class{scrartcl}. Dies ändert sich allerdings bei Verwendung des \Package{scrpage2}-Pakets (siehe \autoref{cha:scrpage}). \end{Explain} So wie mit \Macro{chapterformat} und \Macro{othersectionlevelsformat} die Nummern der Gliederungsüberschriften formatiert ausgegeben werden, werden mit den Anweisungen \Macro{chaptermarkformat}, \Macro{sectionmarkformat} und \Macro{subsectionmarkformat} die Nummern der Gliederungsebenen in den automatischen Kolumnentiteln formatiert ausgegeben. Mit \Macro{renewcommand} können sie eigenen Anforderungen angepasst werden. Die Originaldefinitionen aus den {\KOMAScript}-Klassen sind: \begin{lstlisting} \newcommand*{\chaptermarkformat}{% \chapappifchapterprefix{\ }\thechapter\autodot\enskip} \newcommand*{\sectionmarkformat}{\thesection\autodot\enskip} \newcommand*{\subsectionmarkformat}{% \thesubsection\autodot\enskip} \end{lstlisting} \begin{Example} Angenommen, Sie wollen, dass der Kapitelnummer in den Kolumnentiteln das Wort »Kapitel« vorangestellt wird. Dann setzen Sie beispielsweise folgende Definition in die Präambel Ihres Dokuments: \begin{lstlisting} \renewcommand*{\chaptermarkformat}{% \chapapp~\thechapter\autodot\enskip} \end{lstlisting} \end{Example} Wie Sie sehen, finden hier die Anweisungen \Macro{chapappifchapterprefix} und \Macro{chapapp} Verwendung, die weiter oben erklärt wurden. % \EndIndex{Cmd}{chaptermark}% \EndIndex{Cmd}{sectionmark}% \EndIndex{Cmd}{subsectionmark}% \EndIndex{Cmd}{chaptermarkformat}% \EndIndex{Cmd}{sectionmarkformat}% \EndIndex{Cmd}{subsectionmarkformat}% \begin{Declaration} \Counter{secnumdepth} \end{Declaration}% \BeginIndex{Counter}{secnumdepth}\BeginIndex{}{Nummerierung}% Normalerweise werden bei den Klassen \Class{scrbook}\IndexClass{scrbook} und \Class{scrreprt}\IndexClass{scrreprt} die Gliederungsebenen \Macro{part}\IndexCmd{part}\IndexCmd{chapter}\IndexCmd{section} bis \Macro{subsection}\IndexCmd{subsection} und bei der Klasse \Class{scrartcl}\IndexClass{scrartcl} die Ebenen \Macro{part} bis \Macro{subsubsection}\IndexCmd{subsubsection} nummeriert. Gesteuert wird dies über den \LaTeX-Zähler \Counter{secnumdepth}. Dabei steht der Wert -1 für \Macro{part}, 0 für \Macro{chapter} und so weiter. Da bei \Class{scrartcl} die Ebene \Macro{chapter} nicht existiert, beginnt bei dieser Klasse die Zählung mit \Macro{part} bei 0. Durch Setzen oder Erhöhen oder Verringern des Zählers kann bestimmt werden, bis zu welcher Gliederungsebene eine Nummerierung erfolgen soll. Dies ist übrigens bei den Standardklassen ganz genauso. Vergleichen Sie hierzu auch die Erklärung zum Zähler \Counter{tocdepth} in \autoref{sec:maincls.toc}, \autopageref{desc:maincls.counter.tocdepth}. % \EndIndex{Counter}{secnumdepth}\EndIndex{}{Nummerierung} \begin{Declaration} \Macro{setpartpreamble}% \OParameter{Position}\OParameter{Breite}\Parameter{Präambel}\\ \Macro{setchapterpreamble}% \OParameter{Position}\OParameter{Breite}\Parameter{Präambel} \end{Declaration}% \BeginIndex{Cmd}{setpartpreamble}% \BeginIndex{Cmd}{setchapterpreamble}% \OnlyAt{\Class{scrbook}\and\Class{scrreprt}}Teile\Index{Teil>Praeambel=Präambel} und Kapitel\Index{Kapitel>Praeambel=Präambel} können bei {\KOMAScript} mit einer \PName{Präambel} versehen werden. Dies ist insbesondere im zweispaltigen Layout mit der Klassenoption \Option{twocolumn}\IndexOption{twocolumn} nützlich, da die \PName{Präambel} zusammen mit der Überschrift einspaltig gesetzt wird. Die \PName{Präambel} kann auch mehrere Absätze beinhalten. Die Anweisung zum Setzen der \PName{Präambel} muss vor der jeweiligen \Macro{part}- oder \Macro{addpart}- bzw. \Macro{chapter}- oder \Macro{addchap}-Anweisung stehen. \begin{Example} Sie schreiben einen Bericht über den Zustand einer Firma. Dabei organisieren Sie den Bericht so, dass jeder Abteilung ein eigener Teilbericht spendiert wird. Jedem dieser Teile soll außerdem eine Zusammenfassung vorangestellt werden. Diese Zusammenfassung soll auf der Titelseite jedes Teils stehen. Das ist wie folgt möglich: \begin{lstlisting} \setpartpreamble{% \begin{abstract} Dies ist ein Blindtext. Er dient lediglich zur Demonstration der Möglichkeiten von \KOMAScript. \end{abstract} } \part{Abteilung Grünschnitt} \end{lstlisting} Je nach Einstellung der Optionen für die Überschriftengröße\Index{Ueberschriften=Überschriften} (siehe \autoref{sec:maincls.fontOptions}, \autopageref{desc:maincls.option.smallheadings}) und der Optionen für die Form der \Environment{abstract}-Umgebung\IndexEnv{abstract} (siehe \autoref{sec:maincls.formattingOptions}, \autopageref{desc:maincls.option.abstracton}), sieht das Ergebnis ungefähr wie folgt aus: \begin{ShowOutput}\centering {\LARGE\usekomafont{disposition} Teil III.\par\vspace{20pt}} {\LARGE\usekomafont{disposition} Abteilung Grünschnitt\strut\par} \begin{quote}\small \vspace{6ex} \begin{center} \usekomafont{disposition}\abstractname \end{center} \vspace{2ex} Dies ist ein Blindtext. Er dient lediglich zur Demonstration der Möglichkeiten von \KOMAScript. \end{quote} \end{ShowOutput} \end{Example} Bitte beachten Sie, dass Sie für die Abstände der Prämbel zur Teilüberschrift bzw. zum Kapiteltext selbst verantwortlich sind. Bitte beachten Sie auch, dass die \Environment{abstract}-Umgebung bei der Klasse \Class{scrbook} nicht existiert (siehe \autoref{sec:maincls.titles}, \autopageref{desc:maincls.environment.abstract}). Das\ChangedAt{v2.8p}{\Class{scrbook}\and\Class{scrreprt}} erste optionale Argument \PName{Position} bestimmt über ein bis zwei Buchstaben die Position, an der die Präambel ausgegeben wird. Für die vertikale Position existieren derzeit zwei Möglichkeiten: \begin{labeling}[~--]{\PValue{o}} \item [\PValue{o}] über der Überschrift \item [\PValue{u}] unter der Überschrift \end{labeling} Es kann jeweils eine Präambel unter und eine Präambel über der Überschrift gesetzt werden. Für die horizontale Position existieren derzeit drei Möglichkeiten: \begin{labeling}[~--]{\PValue{o}} \item [\PValue{l}] linksbündig \item [\PValue{r}] rechtsbündig \item [\PValue{c}] zentriert \end{labeling} Dabei wird allerdings nicht der Text der \PName{Präambel} entsprechend angeordnet, sondern eine Box, deren Breite durch das zweite optionale Argument \PName{Breite} bestimmt wird. Wird auf das zweite optionale Argument verzichtet, so wird stattdessen die gesamte Textbreite verwendet. Damit bleibt die Option zur horizontalen Positionierung in diesem Fall wirkungslos. Es kann jeweils ein Buchstabe für die vertikale mit einem Buchstaben für die horizontale Anordnung kombiniert werden. % \EndIndex{Cmd}{setpartpreamble}% \EndIndex{Cmd}{setchapterpreamble}% \begin{Declaration} \Macro{dictum}\OParameter{Urheber}\Parameter{Spruch}\\ \Macro{dictumwidth}\\ \Macro{dictumauthorformat}\Parameter{Urheber}\\ \Macro{raggeddictum}\\ \Macro{raggeddictumtext}\\ \Macro{raggeddictumauthor} \end{Declaration}% \BeginIndex{Cmd}{dictum}% \BeginIndex{Cmd}{dictumwidth}% \BeginIndex{Cmd}{dictumauthorformat}% \BeginIndex{Cmd}{raggeddictum}% \BeginIndex{Cmd}{raggeddictumtext}% \BeginIndex{Cmd}{raggeddictumauthor}% Eine\OnlyAt{\Class{scrbook}\and\Class{scrreprt}} Anwendung\ChangedAt{v2.8q}{\Class{scrbook}\and\Class{scrreprt}} für \Macro{setpartpreamble} oder \Macro{setchapterpreamble} neben einleitenden Sätzen ist ein kluger \PName{Spruch}\Index{Spruch}. Ein solcher Spruch kann mit der Anweisung \Macro{dictum} gesetzt werden. Dabei ist vorgesehen, dass \Macro{dictum} als obligatorisches Argument einer der Anweisungen \Macro{setchapterpreamble} oder \Macro{setpartpreamble} verwendet wird. Dies ist jedoch nicht zwingend. Der Spruch wird zusammen mit einem optional anzugebenden \PName{Urheber} in einer \Macro{parbox}\IndexCmd{parbox} (siehe \cite{latex:usrguide}) der Breite \Macro{dictumwidth} gesetzt. Dabei ist \Macro{dictumwidth} keine Länge, die mit \Macro{setlength} gesetzt wird. Es handelt sich um ein Makro, das mit \Macro{renewcommand} umdefiniert werden kann. Vordefiniert ist \verb;0.3333\textwidth;, also ein Drittel der jeweiligen Textbreite. Die Box selbst wird mit der Anweisung \Macro{raggeddictum} ausgerichtet. Voreingestellt ist dabei \Macro{raggedleft}\IndexCmd{raggedleft}, also rechtsbündig. \Macro{raggeddictum} kann mit Hilfe von \Macro{renewcommand} umdefiniert werden. Innerhalb der Box wird der \PName{Spruch} mit \Macro{raggeddictumtext} angeordnet. Voreingestellt ist hier \Macro{raggedright}\IndexCmd{raggedright}, also linksbündig. Eine Umdefinierung ist auch hier mit \Macro{renewcommand} möglich. Die Ausgabe erfolgt in der für Element \FontElement{dictumtext} eingestellten Schriftart, die mit den Anweisungen aus \autoref{sec:maincls.font} geändert werden kann. Die Voreinstellung entnehmen Sie bitte \autoref{tab:maincls.dictumfont}. Ist ein \PName{Urheber} angegeben, so wird dieser mit einer Linie über die gesamte Breite der \Macro{parbox} vom \PName{Spruch} abgetrennt. Mit \Macro{raggeddictumauthor} wird die Ausrichtung vorgenommen. Voreingestellt ist \Macro{raggedleft}. Auch diese Anweisung kann mit \Macro{renewcommand} umdefiniert werden. Die Ausgabe erfolgt in der Form, die mit \Macro{dictumauthorformat} festgelegt ist. Das Makro erwartet schlicht den \Macro{Urheber} als Argument. In der Voreinstellung ist \Macro{dictumauthorformat} als \begin{lstlisting}[aboveskip={1ex plus 2ex},belowskip={1ex plus 2ex}] \newcommand*{\dictumauthorformat}[1]{(#1)} \end{lstlisting} definiert. Der \PName{Urheber} wird also in runde Klammern gesetzt. Für das Element \PName{dictumauthor} kann dabei eine Abweichung der Schrift von der des Elementes \PName{dictumtext} definiert werden. Die Voreinstellung entnehmen Sie bitte \autoref{tab:maincls.dictumfont}. Eine Änderung ist mit Hilfe der Anweisungen aus \autoref{sec:maincls.font} möglich. % \begin{table} \centering% \caption{Schriftvoreinstellungen für die Elemente des Spruchs} \begin{tabular}{ll} \toprule Element & Voreinstellung \\ \midrule \FontElement{dictumtext} & \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\ \FontElement{dictumauthor} & \Macro{itshape}\\ \bottomrule \end{tabular} \label{tab:maincls.dictumfont} \end{table} % Wird \Macro{dictum} innerhalb der Anweisung \Macro{setchapterpreamble} oder \Macro{setpartpreamble} verwendet, so ist Folgendes zu beachten: Die horizontale Anordnung erfolgt immer mit \Macro{raggeddictum}. Das optionale Argument zur horizontalen Anordnung, das die beiden Anweisungen vorsehen, bleibt daher ohne Wirkung. \Macro{textwidth} ist nicht die Breite des gesamten Textkörpers, sondern die aktuelle Textbreite. Ist also \Macro{dictumwidth} auf \verb;.5\textwidth; gesetzt und bei \Macro{setchapterpreamble} wird als optionales Argument für die Breite ebenfalls \verb;.5\textwidth; angegeben, so erfolgt die Ausgabe in einer Box, deren Breite ein Viertel der Breite des Textkörpers ist. Es wird empfohlen, bei Verwendung von \Macro{dictum} auf die optionale Angabe einer Breite bei \Macro{setchapterpreamble} oder \Macro{setpartpreamble} zu verzichten. Sollen mehrere schlaue Sprüche untereinander gesetzt werden, so sollten diese durch einen zusätzlichen Abstand vertikal voneinander abgesetzt werden. Ein solcher kann leicht mit der Anweisung \Macro{bigskip}\IndexCmd{bigskip} gesetzt werden. \begin{Example} Sie schreiben ein Kapitel über die moderne Ehe. Dabei wollen sie in der Präambel zur Kapitelüberschrift einen schlauen Spruch setzen. Dieser soll unter der Überschrift erscheinen. Also schreiben Sie: \begin{lstlisting} \setchapterpreamble[u]{% \dictum[Schiller]{Drum prüfe, wer sich ewig bindet \dots}} \chapter{Die moderne Ehe} \end{lstlisting} Die Ausgabe erfolgt dann in der Form: \begin{ShowOutput} {\usekomafont{disposition}\usekomafont{chapter}% 17\enskip Die moderne Ehe\par} \vspace{\baselineskip} \dictum[Schiller]{Drum prüfe, wer sich ewig bindet \dots} \end{ShowOutput} Wenn Sie wollen, dass nicht ein Drittel, sondern nur ein Viertel der verfügbaren Textbreite für den Spruch verwendet wird, so definieren Sie \Macro{dictumwidth} wie folgt um: \begin{lstlisting} \renewcommand*{\dictumwidth}{.25\textwidth} \end{lstlisting} \end{Example} An dieser Stelle sei noch auf das Paket~\cite{package:ragged2e} hingewiesen, mit dem man Flattersatz mit Trennung erreichen kann. \EndIndex{Cmd}{dictum}% \EndIndex{Cmd}{dictumwidth}% \EndIndex{Cmd}{dictumauthorformat}% \EndIndex{Cmd}{raggeddictum}% \EndIndex{Cmd}{raggeddictumtext}% \EndIndex{Cmd}{raggeddictumauthor}% \subsection{Fußnoten} \label{sec:maincls.footnotes} Eine nicht auf den Text beschränkte Eigenschaft eines Dokuments ist das Aussehen der Fußnoten. Da Fußnoten\Index{Fussnoten=Fußnoten} aber hauptsächlich im Text auf"|treten, werden sie in diesem Abschnitt aufgeführt. \begin{Declaration} \Macro{footnote}\OParameter{Nummer}\Parameter{Text}\\ \Macro{footnotemark}\OParameter{Nummer}\\ \Macro{footnotetext}\OParameter{Nummer}\Parameter{Text} \end{Declaration}% \BeginIndex{Cmd}{footnote}% \BeginIndex{Cmd}{footnotemark}% \BeginIndex{Cmd}{footnotetext}% Fußnoten werden bei {\KOMAScript} genau wie bei den Standardklassen mit der Anweisung \Macro{footnote} oder den paarweise zu verwendenden Anweisungen \Macro{footnotemark} und \Macro{footnotetext} erzeugt. Genau wie bei den Standardklassen ist es möglich, dass innerhalb einer Fußnote ein Seitenumbruch erfolgt. Dies geschieht in der Regel dann, wenn die zugehörige Fußnotenmarkierung so weit unten auf der Seite gesetzt wird, dass keine andere Wahl bleibt, als die Fußnote auf die nächste Seite zu umbrechen. % \EndIndex{Cmd}{footnote}% \EndIndex{Cmd}{footnotemark}% \EndIndex{Cmd}{footnotetext}% \begin{Declaration} \Macro{deffootnote}\OParameter{Markenbreite}\Parameter{Einzug}% \Parameter{Absatzeinzug}\Parameter{Markendefinition}\\ \Macro{deffootnotemark}\Parameter{Markendefinition}\\ \Macro{thefootnotemark}\\ \Macro{textsuperscript}\Parameter{Text} \end{Declaration}% \BeginIndex{Cmd}{deffootnote}% \BeginIndex{Cmd}{deffootnotemark}% \BeginIndex{Cmd}{thefootnotemark}% \BeginIndex{Cmd}{textsuperscript}% {\KOMAScript} setzt die Fußnoten etwas anders als die Standardklassen. Die Fußnotenmarkierung im Text, also die Referenzierung der Fußnote, erfolgt wie bei den Standardklassen durch kleine hochgestellte Zahlen. Genauso werden die Markierungen auch in der Fußnote selbst wiedergegeben. Sie werden dabei rechtsbündig in einem Feld der Breite \PName{Markenbreite} gesetzt. Die erste Zeile der Fußnote schließt direkt an das Feld der Markierung an. Alle weiteren Zeilen werden um den Betrag von \PName{Einzug} eingezogen ausgegeben. Wird der optionale Parameter \PName{Markenbreite} nicht angegeben, dann entspricht er dem Wert von \PName{Einzug}. Sollte die Fußnote aus mehreren Absätzen bestehen, dann wird die erste Zeile eines Absatzes zusätzlich mit dem Einzug der Größe \PName{Absatzeinzug} versehen. \begin{figure} \centering\setlength{\unitlength}{1mm} \begin{picture}(100,22) \thinlines % frame of following paragraph \put(5,0){\line(1,0){90}} \put(5,0){\line(0,1){5}} \put(10,5){\line(0,1){5}}\put(5,5){\line(1,0){5}} \put(95,0){\line(0,1){10}} \put(10,10){\line(1,0){85}} % frame of first paragraph \put(5,11){\line(1,0){90}} \put(5,11){\line(0,1){5}} \put(15,16){\line(0,1){5}}\put(5,16){\line(1,0){10}} \put(95,11){\line(0,1){10}} \put(15,21){\line(1,0){80}} % box of the footnote mark \put(0,16.5){\framebox(14.5,4.5){\mbox{}}} % description of paragraphs \put(45,16){\makebox(0,0)[l]{\small\textsf{erster Absatz einer Fußnote}}} \put(45,5){\makebox(0,0)[l]{\small\textsf{folgender Absatz einer Fußnote}}} % help lines \thicklines \multiput(0,0)(0,3){7}{\line(0,1){2}} \multiput(5,0)(0,3){3}{\line(0,1){2}} % parameters \put(2,7){\vector(1,0){3}} \put(5,7){\line(1,0){5}} \put(15,7){\vector(-1,0){5}} \put(15,7){\makebox(0,0)[l]{\small\PName{Absatzeinzug}}} % \put(-3,13){\vector(1,0){3}} \put(0,13){\line(1,0){5}} \put(10,13){\vector(-1,0){5}} \put(10,13){\makebox(0,0)[l]{\small\PName{Einzug}}} % \put(-3,19){\vector(1,0){3}} \put(0,19){\line(1,0){14.5}} \put(19.5,19){\vector(-1,0){5}} \put(19.5,19){\makebox(0,0)[l]{\small\PName{Markenbreite}}} \end{picture} \caption{Parameter für die Darstellung der Fußnoten} \label{fig:maincls.deffootnote} \end{figure} \autoref{fig:maincls.deffootnote} veranschaulicht die verschiedenen Parameter nochmals. Die Voreinstellung in \KOMAScript{} entspricht folgender Definition: \begin{lstlisting} \deffootnote[1em]{1.5em}{1em} {\textsuperscript{\thefootnotemark}} \end{lstlisting} Dabei wird mit Hilfe von \Macro{textsuperscript} sowohl die Hochstellung als auch die Wahl einer kleineren Schrift erreicht. \Macro{thefootnotemark} ist die aktuelle Fußnotenmarke ohne jegliche Formatierung. Auf\ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} die Fußnote einschließlich der Markierung findet außerdem die für das Element \FontElement{footnote}\IndexFontElement{footnote} eingestellte Schriftart Anwendung. Die Schriftart der Markierung kann jedoch mit Hilfe der Anweisungen aus \autoref{sec:maincls.font} für das Element \FontElement{footnotelabel}\IndexFontElement{footnotelabel} davon abweichend eingestellt werden. Siehe hierzu auch \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}. Voreingestellt ist jeweils keine Umschaltung der Schrift. Die Fußnotenmarkierung im Text wird getrennt von der Markierung vor der Fußnote definiert. Dies geschieht mit der Anweisung \Macro{deffootnotemark}. Voreingestellt ist hier: \begin{lstlisting} \deffootnotemark{% \textsuperscript{\thefootnotemark}} \end{lstlisting} Dabei findet\ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} die Schriftart für das Element \FontElement{footnotereference}\IndexFontElement{footnotereference} Anwendung (siehe \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}). Die Markierungen im Text und in der Fußnote selbst sind also identisch. Die Schriftart kann mit Hilfe der Anweisungen aus \autoref{sec:maincls.font} jedoch geändert werden. \begin{Example} Relativ häufig wird gewünscht, dass die Markierung in der Fußnote selbst weder hochgestellt noch kleiner gesetzt wird. Dabei soll sie aber nicht direkt am Text kleben, sondern geringfügig davor stehen. Dies kann zum einen wie folgt erreicht werden: \begin{lstlisting} \deffootnote{1em}{1em}{\thefootnotemark\ } \end{lstlisting} Die Fußnotenmarkierung einschließlich dem folgenden Leerzeichen wird also rechtsbündig in eine Box der Breite 1\Unit{em} gesetzt. Die folgenden Zeilen der Fußnote werden gegenüber dem linken Rand ebenfalls um 1\Unit{em} eingezogen. Eine weitere, oft gefragte Formatierung sind linksbündige Fußnoten. Diese können mit folgender Definition erhalten werden: \begin{lstlisting} \deffootnote{1.5em}{1em}{% \makebox[1.5em][l]{\thefootnotemark}} \end{lstlisting} Sollen jedoch die Fußnoten insgesamt lediglich in einer anderen Schriftart, beispielsweise serifenlos gesetzt werden, so ist dies ganz einfach mit Hilfe der Anweisungen aus \autoref{sec:maincls.fontOptions} zu lösen: \begin{lstlisting} \setkomafont{footnote}{\sffamily} \end{lstlisting} \end{Example} Wie die Beispiele zeigen, ermöglicht {\KOMAScript} mit dieser einfachen Benutzerschnittstelle eine große Vielfalt unterschiedlicher Fußnotenformatierungen. % \EndIndex{Cmd}{deffootnote}% \EndIndex{Cmd}{deffootnotemark}% \EndIndex{Cmd}{thefootnotemark}% \EndIndex{Cmd}{textsuperscript}% \subsection{Listen} \label{sec:maincls.lists} \BeginIndex[indexother]{}{Listen} {\LaTeX} und die Standardklassen bieten verschiedene Umgebungen für Listen. All diese Umgebungen bietet {\KOMAScript} selbstverständlich auch, teilweise jedoch mit leichten Abwandlungen oder Erweiterungen. Grundsätzlich gilt, dass Listen -- auch unterschiedlicher Art -- bis zu einer Tiefe von vier Listen geschachtelt werden können. Eine tiefere Schachtelung wäre auch aus typografischen Gründen kaum sinnvoll, da genau genommen schon mehr als drei Ebenen nicht mehr überblickt werden können. Ich empfehle in solchen Fällen, die eine große Liste in mehrere kleinere Listen aufzuteilen. \begin{Declaration} \Environment{itemize}\\ \Macro{item}\\ \Macro{labelitemi}\\ \Macro{labelitemii}\\ \Macro{labelitemiii}\\ \Macro{labelitemiv} \end{Declaration}% \BeginIndex{Env}{itemize}% \BeginIndex{Cmd}{item}% \BeginIndex{Cmd}{labelitemi}% \BeginIndex{Cmd}{labelitemii}% \BeginIndex{Cmd}{labelitemiii}% \BeginIndex{Cmd}{labelitemiv}% Die einfachste Form einer Liste ist die Stichpunkt- oder \Environment{itemize}-Liste. Die Benutzer einer unbeliebten Textverarbeitung nennen diese Form der Liste auch gerne \emph{Bulletpoints}. Vermutlich können sie sich nicht vorstellen, dass je nach Ebene auch ein anderes Zeichen als ein fetter Punkt zur Einleitung eines Stichpunkts verwendet werden kann. Bei {\KOMAScript} werden je nach Ebene folgende Zeichen verwendet: »{\labelitemi}«, »{\labelitemii}«, »{\labelitemiii}« und »{\labelitemiv}«. Die Definition der Zeichen für die einzelnen Ebenen sind in den Makros \Macro{labelitemi}, \Macro{labelitemii}, \Macro{labelitemiii} und \Macro{labelitemiv} abgelegt. Sie können mit \Macro{renewcommand} umdefiniert werden. Die einzelnen Stichpunkte werden mit \Macro{item} eingeleitet. \begin{Example} Sie haben eine einfache Aufzählung, die in mehreren Ebenen geschachtelt ist. Sie schreiben beispielsweise: \begin{lstlisting} \minisec{Die Fahrzeuge im Spiel} \begin{itemize} \item Flugzeuge \begin{itemize} \item Doppeldecker \item Jets \item Transportmaschinen \begin{itemize} \item einmotorig \begin{itemize} \item{düsengetrieben} \item{propellergetrieben} \end{itemize} \item mehrmotorig \end{itemize} \item Drehflügler \end{itemize} \item Motorräder \begin{itemize} \item historisch korrekt \item futurisch nicht real \end{itemize} \item Automobile \begin{itemize} \item Rennwagen \item Personenwagen \item Lastwagen \end{itemize} \item Fahrräder \end{itemize} \end{lstlisting} Anschließend erhalten Sie: \begin{ShowOutput}[\baselineskip] \minisec{Die Fahrzeuge im Spiel} \begin{itemize} \item Flugzeuge \begin{itemize} \item Doppeldecker \item Jets \item Transportmaschinen \begin{itemize} \item einmotorig \begin{itemize} \item{düsengetrieben} \item{propellergetrieben} \end{itemize} \item mehrmotorig \end{itemize} \item Drehflügler \end{itemize} \item Motorräder \begin{itemize} \item historisch korrekt \item futurisch nicht real \end{itemize} \item Automobile \begin{itemize} \item Rennwagen \item Personenwagen \item Lastwagen \end{itemize} \item Fahrräder \end{itemize} \end{ShowOutput} \end{Example} % \EndIndex{Env}{itemize}% \EndIndex{Cmd}{item}% \EndIndex{Cmd}{labelitemi}% \EndIndex{Cmd}{labelitemii}% \EndIndex{Cmd}{labelitemiii}% \EndIndex{Cmd}{labelitemiv}% \begin{Declaration} \Environment{enumerate}\\ \XMacro{item}\\ \Macro{theenumi}\\ \Macro{theenumii}\\ \Macro{theenumiii}\\ \Macro{theenumiv}\\ \Macro{labelenumi}\\ \Macro{labelenumii}\\ \Macro{labelenumiii}\\ \Macro{labelenumiv} \end{Declaration}% \BeginIndex{Env}{enumerate}% \BeginIndex{Cmd}{item}% \BeginIndex{Cmd}{theenumi}% \BeginIndex{Cmd}{theenumii}% \BeginIndex{Cmd}{theenumiii}% \BeginIndex{Cmd}{theenumiv}% \BeginIndex{Cmd}{labelenumi}% \BeginIndex{Cmd}{labelenumii}% \BeginIndex{Cmd}{labelenumiii}% \BeginIndex{Cmd}{labelenumiv}% Die nummerierte Liste ist ebenfalls sehr häufig zu finden und bereits vom {\LaTeX}-Kern vorgesehen. Die Nummerierung\Index{Nummerierung} erfolgt je nach Ebene in unterschiedlicher Art: mit arabischen Zahlen, mit Kleinbuchstaben, mit kleinen römischen Zahlen und mit Großbuchstaben. Die Art der Nummerierung wird dabei über die Makros \Macro{theenumi} bis \Macro{theenumiv} festgelegt. Das Format der Ausgabe wird von den Makros \Macro{labelenumi} bis \Macro{labelenumiv} bestimmt. Dabei folgt auf den Wert der zweiten Ebene, der in Kleinbuchstaben ausgegeben wird, eine runde Klammer, während die Werte aller anderen Ebenen von einem Punkt gefolgt werden. Die einzelnen Stichpunkte werden wieder mit \Macro{item} eingeleitet. \begin{Example} Verkürzen wir das vorherige Beispiel und verwenden statt der \Environment{itemize}- eine \Environment{enumerate}-Umgebung: % Übernehmen wir das Beispiel der \Environment{itemize}-Umgebung, % wobei wir jede \Environment{itemize}-Umgebung durch eine % \Environment{enumerate}-Umgebung ersetzen. Das Ergebnis wäre dann: \begin{ShowOutput}[\baselineskip] \minisec{Die Fahrzeuge im Spiel} \begin{enumerate} \item Flugzeuge \begin{enumerate} \item Doppeldecker % \item Jets \item Transportmaschinen \begin{enumerate} \item einmotorig \begin{enumerate} \item{düsengetrieben}\label{xmp:maincls.jets} \item{propellergetrieben} \end{enumerate} \item mehrmotorig \end{enumerate} % \item Drehflügler \end{enumerate} \item Motorräder \begin{enumerate} \item historisch korrekt \item futurisch nicht real \end{enumerate} % \item Automobile % \begin{enumerate} % \item Rennwagen % \item Personenwagen % \item Lastwagen % \end{enumerate} % \item Fahrräder \end{enumerate} \end{ShowOutput} Innerhalb der Aufzählung können ganz normal mit \Macro{label} Marken gesetzt werden, auf die dann mit \Macro{ref} zugegriffen werden kann. So wurde oben hinter den düsengetriebenen, einmotorigen Flugzeugen mit »\Macro{label}\PParameter{bsp:duesen}« ein Label gesetzt. Der \Macro{ref}-Wert ist dann »\ref{xmp:maincls.jets}«. \end{Example} % \EndIndex{Env}{enumerate}% \EndIndex{Cmd}{item}% \EndIndex{Cmd}{theenumi}% \EndIndex{Cmd}{theenumii}% \EndIndex{Cmd}{theenumiii}% \EndIndex{Cmd}{theenumiv}% \EndIndex{Cmd}{labelenumi}% \EndIndex{Cmd}{labelenumii}% \EndIndex{Cmd}{labelenumiii}% \EndIndex{Cmd}{labelenumiv}% \begin{Declaration} \Environment{description}\\ \XMacro{item}\OParameter{Stichwort} \end{Declaration}% \BeginIndex{Env}{description}% \BeginIndex{Cmd}{item}% Eine weitere Listenform ist die Stichwortliste. Sie dient in erster Linie der Beschreibung einzelner Begriffe. Diese werden als optionale Parameter bei \Macro{item} angegeben. Die Schriftart\Index{Schriftart}\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}, % die für die Hervorhebung des Stichworts verwendet wird, kann mit Hilfe der in \autoref{sec:maincls.font} beschriebenen Anweisungen für das Element \FontElement{descriptionlabel}\IndexFontElement{descriptionlabel} (siehe \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}) geändert werden. In der Voreinstellung wird \Macro{sffamily}""\Macro{bfseries} verwendet. \begin{Example} Sie wollen, dass die Stichworte statt serifenlos und fett lediglich fett aber in der Standardschriftart ausgegeben werden. Mit \begin{lstlisting} \setkomafont{descriptionlabel}{\normalfont\bfseries} \end{lstlisting} definieren Sie daher die Schrift entsprechend um. Ein Beispiel für die Ausgabe einer Stichwortliste ist die Aufzählung der Seitenstile in \autoref{sec:maincls.pageStyle}. Der Quelltext dazu lautet (stark gekürzt): \begin{lstlisting} \begin{description} \item[empty] ist der Seitenstil, bei dem Kopf- und Fußzeile vollständig leer bleiben. \item[plain] ist der Seitenstil, bei dem keinerlei Kolumnentitel verwendet wird. \item[headings] ist der Seitenstil für automatische Kolumnentitel. \item[myheadings] ist der Seitenstil für manuelle Kolumnentitel. \end{description} \end{lstlisting} Diese gekürzte Version ergibt: \begin{ShowOutput} \begin{description} \item[empty] ist der Seitenstil, bei dem Kopf- und Fußzeile vollständig leer bleiben. \item[plain] ist der Seitenstil, bei dem keinerlei Kolumnentitel verwendet wird. \item[headings] ist der Seitenstil für automatische Kolumnentitel. \item[myheadings] ist der Seitenstil für manuelle Kolumnentitel. \end{description} \end{ShowOutput} \end{Example} % \EndIndex{Env}{description}% \EndIndex{Cmd}{item}% \begin{Declaration} \Environment{labeling}\OParameter{Trennzeichen}\Parameter{längstes Muster}\\ \XMacro{item}\OParameter{Schlüsselwort} \end{Declaration}% \BeginIndex{Env}{labeling}% \BeginIndex{Cmd}{item}% Eine andere Form der Stichwortliste ist nur bei den {\KOMAScript}-Klassen vorhanden: die \Environment{labeling}-Umgebung. Im Unterschied zur zurvor vorgestellten Umgebung \Environment{description} kann bei \Environment{labeling} ein Muster angegeben werden, dessen Länge die Einrücktiefe bei allen Stichpunkten ergibt. Darüber hinaus kann zwischen Stichpunkt und Beschreibungstext ein optionales \PName{Trennzeichen} festgelegt werden. \begin{Example} Wir schreiben das Beispiel der \Environment{description}-Umgebung etwas um: \begin{lstlisting} \begin{labeling}[~--]{% \usekomafont{descriptionlabel}myheadings} \item[\usekomafont{descriptionlabel}empty] Seitenstil für leere Seiten ohne Kopf und Fuß \item[\usekomafont{descriptionlabel}plain] Seitenstil für Kapitelanfänge ganz ohne Kolumnentitel \item[\usekomafont{descriptionlabel}headings] Seitenstil für automatische Kolumnentitel \item[\usekomafont{descriptionlabel}myheadings] Seitenstil für manuelle Kolumnentitel \end{labeling} \end{lstlisting} Als Ergebnis erhalten wir dann: \begin{ShowOutput} \begin{labeling}[~--]{\usekomafont{descriptionlabel}myheadings} \item[\usekomafont{descriptionlabel}empty] Seitenstil für leere Seiten ohne Kopf und Fuß \item[\usekomafont{descriptionlabel}plain] Seitenstil für Kapitelanfänge ganz ohne Kolumnentitel \item[\usekomafont{descriptionlabel}headings] Seitenstil für automatische Kolumnentitel \item[\usekomafont{descriptionlabel}myheadings] Seitenstil für manuelle Kolumnentitel \end{labeling} \end{ShowOutput} Wie in diesem Beispiel zu sehen ist, muss eine eventuell geforderte Schriftumschaltung bei dieser Umgebung sowohl im Muster als auch im optionalen Parameter jeder \Macro{item}-Anweisung wiederholt werden. \end{Example} Gedacht war die Umgebung ursprünglich für Strukturen wie »Voraussetzung, Aussage, Beweis« oder »Gegeben, Gesucht, Lösung« wie man sie in Vorlesungsskripten häufiger findet. Inzwischen findet die Umgebung aber ganz unterschiedliche Anwendungen. So wurde die Umgebung für Beispiele in dieser Anleitung mit Hilfe der \Environment{labeling}-Umgebung definiert. % \EndIndex{Env}{labeling}% \EndIndex{Cmd}{item}% \begin{Declaration} \Environment{verse} \end{Declaration}% \BeginIndex{Env}{verse}% Die \Environment{verse}-Umgebung wird normalerweise nicht als Listenumgebung wahrgenommen, da hier nicht mit \Macro{item} gearbeitet wird. Stattdessen wird wie innerhalb der \Environment{flushleft}-Umgebung mit festen Zeilenumbrüchen gearbeitet. Intern handelt es sich jedoch sowohl bei den Standardklassen als auch bei {\KOMAScript} durchaus um eine Listenumgebung. Die \Environment{verse}-Umgebung findet hauptsächlich für Gedichte\Index{Gedichte} Anwendung. Dabei werden die Zeilen links und rechts eingezogen. Einzelne Verse werden mit einem festen Zeilenumbruch, also mit \verb|\\| beendet. Strophen werden ganz normal als Absatz gesetzt, also durch eine Leerzeile getrennt. Häufig findet stattdessen auch \Macro{medskip}\IndexCmd{medskip} oder \Macro{bigskip}\IndexCmd{bigskip} Verwendung. Will man verhindern, dass am Ende eines Verses ein Seitenumbruch erfolgt, so verwendet man ganz normal \verb|\\*| an Stelle von \verb|\\|. \begin{Example} Als Beispiel ein kurzes Gedicht von Wilhelm Busch: \begin{lstlisting} \begin{verse} Wenn einer, der mit Mühe kaum\\* Gekrochen ist auf einen Baum,\\* Schon meint, dass er ein Vogel wär,\\* So irrt sich der. \end{verse} \end{lstlisting} Mit dem Resultat: \begin{ShowOutput} \begin{verse} Wenn einer, der mit Mühe kaum\\* Gekrochen ist auf einen Baum,\\* Schon meint, dass er ein Vogel wär,\\* So irrt sich der. \end{verse} \end{ShowOutput} Bei einem sehr langen Vers wie: \begin{lstlisting} \begin{verse} Der Philosoph wie der Hausbesitzer hat immer Reparaturen.\\* \bigskip Wer dir sagt, er hätte noch nie gelogen, dem traue nicht, mein Sohn. \end{verse} \end{lstlisting} bei dem ein Zeilenumbruch innerhalb des Verses erfolgt: \begin{ShowOutput} \begin{verse} Der Philosoph wie der Hausbesitzer hat immer Reparaturen.\\ \bigskip Wer dir sagt, er hätte noch nie gelogen, dem traue nicht, mein Sohn. \end{verse} \end{ShowOutput} kann mit \verb|\\*| allerdings nicht verhindert werden, dass am Zeilenumbruch auch ein Seitenumbruch erfolgt. Um dies zu erreichen, müsste innerhalb der ersten Zeile zusätzlich ein \Macro{nopagebreak}\IndexCmd{nopagebreak} eingefügt werden: \begin{lstlisting} \begin{verse} Der Philosoph wie der Hausbesitzer\nopagebreak hat immer Reparaturen.\\ \bigskip Wer dir sagt, er hätte noch nie\nopagebreak gelogen, dem traue nicht, mein Sohn. \end{verse} \end{lstlisting} Hier noch zwei Sprüche, die man immer bedenken sollte, wenn man mit scheinbar seltsamen Fragen zu {\LaTeX} oder den dazugehörigen Antworten konfrontiert ist: \begin{ShowOutput} \begin{verse} Wir mögen's keinem gerne gönnen,\\* Dass er was kann, was wir nicht können.\\ \bigskip Wie klein ist das, was einer ist,\\* Wenn man's mit seinem Dünkel misst. \end{verse} \end{ShowOutput} In diesen Beispielen wurde übrigens jeweils \Macro{bigskip} verwendet, um zwei Sprüche voneinander zu trennen. \end{Example} % \EndIndex{Env}{verse}% \begin{Declaration} \Environment{quote}\\ \Environment{quotation} \end{Declaration}% \BeginIndex{Env}{quote}% \BeginIndex{Env}{quotation}% Diese beiden Umgebungen sind intern ebenfalls Listenumgebungen und sowohl bei den Standardklassen als auch bei {\KOMAScript} zu finden. Beide Umgebungen setzen Blocksatz, der sowohl rechts als auch links eingezogen ist. Verwendet werden die Umgebungen häufig, um längere Zitate\Index{Zitate} abzusetzen. Der Unterschied zwischen beiden liegt in der Art und Weise, wie Absätze abgesetzt werden. Während bei \Environment{quote} Absätze durch vertikalen Abstand gekennzeichnet werden, wird bei \Environment{quotation} mit horizontalem Einzug der ersten Zeile eines Absatzes gearbeitet. Dies gilt auch für den ersten Absatz einer \Environment{quotation}-Umgebung. Wollen Sie dort den Einzug verhindern, müssen Sie die \Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen. \begin{Example} Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie folgende \Environment{quotation}-Umgebung: % \begin{lstlisting} Ein kleines Beispiel für eine Anekdote, die sich einst in Schwaben zugetragen haben soll: \begin{quotation} Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die Haushälterin öffnet, steht ein unrasierter Mann in einem reichlich schäbigen Mantel vor der Tür und hält seine Strickmütze in der Hand. "`Gute Frau,"' verkündet der Mann in gequältem Ton doch bestem Hochdeutsch, während er verlegen von einem Bein auf das andere wechselt, "`ich habe seit drei Tagen nichts mehr gegessen."' Die Frau schüttelt mitleidig den Kopf und entgegnet im Brustton vollster Überzeugung: "`Guda Moh, Sie missat sich halt zwinga!"' \end{quotation} \end{lstlisting} Das Ergebnis ist dann: \begin{ShowOutput} Ein kleines Beispiel für eine Anekdote, die sich einst in Schwaben zugetragen haben soll: \begin{quotation} Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die Haushälterin öffnet, steht ein unrasierter Mann in einem reichlich schäbigen Mantel vor der Tür und hält seine Strickmütze in der Hand. "`Gute Frau,"' verkündet der Mann in gequältem Ton doch bestem Hochdeutsch, während er verlegen von einem Bein auf das andere wechselt, "`ich habe seit drei Tagen nichts mehr gegessen."' Die Frau schüttelt mitleidig den Kopf und entgegnet im Brustton vollster Überzeugung: "`Guda Moh, Sie missat sich halt zwinga!"' \end{quotation} \end{ShowOutput} % Wenn Sie stattdessen eine \Environment{quote}-Umgebung verwenden, sieht das Ganze so aus: % \begin{ShowOutput} Ein kleines Beispiel für eine Anekdote, die sich einst in Schwaben zugetragen haben soll: \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt} Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die Haushälterin öffnet, steht ein unrasierter Mann in einem reichlich schäbigen Mantel vor der Tür und hält seine Strickmütze in der Hand. "`Gute Frau,"' verkündet der Mann in gequältem Ton doch bestem Hochdeutsch, während er verlegen von einem Bein auf das andere wechselt, "`ich habe seit drei Tagen nichts mehr gegessen."' Die Frau schüttelt mitleidig den Kopf und entgegnet im Brustton vollster Überzeugung: "`Guda Moh, Sie missat sich halt zwinga!"' \end{quote} \end{ShowOutput} % \end{Example} % \EndIndex{Env}{quote}% \EndIndex{Env}{quotation}% \begin{Declaration} \Environment{addmargin}\OParameter{linker Einzug}\Parameter{Einzug}\\ \Environment{addmargin*}\OParameter{innerer Einzug}\Parameter{Einzug} \end{Declaration} \BeginIndex{Env}{addmargin}% Wie die \Environment{quote} und \Environment{quotation} handelt es sich bei \Environment{addmargin} um eine Umgebung, die den Rand\Index{Rand} verändert. Im Unterschied zu den beiden erstgenannten Umgebungen kann der Anwender jedoch bei \Environment{addmargin} wählen, um welchen Wert der Rand verändert werden kann. Des Weiteren verändert die Umgebung den Absatzeinzug und den Absatzabstand nicht. Ist nur das obligatorische Argument \PName{Einzug} angegeben, so wird der Inhalt der Umgebung rechts und links um diesen Wert eingezogen. Ist das optionale Argument \PName{linker Einzug} hingegen angegeben, so wird links abweichend von \PName{Einzug} der Wert \PName{linker Einzug} zum Rand addiert. Die Sternvariante \Environment{addmargin*} unterscheidet sich nur im doppelseitigen Satz von der Variante ohne Stern. Wobei der Unterschied auch dann nur auf"|tritt, wenn das optionale Argument \PName{innerer Einzug} verwendet wird. Dabei wird dann der Wert von \PName{innerer Einzug} zum inneren Randanteil der Seite addiert. Dies ist bei rechten Seiten der linke Rand der Seite, bei linken Seiten jedoch der rechte Rand der Seite. \PName{Einzug} gilt dann für den jeweils anderen Rand. Bei beiden Varianten der Umgebung sind für alle Parameter auch negative Werte erlaubt. Damit kann man erreichen, dass die Umgebung in den Rand hineinragt. \begin{Example} Angenommen, Sie schreiben eine Anleitung, mit kurzen Quellcode-Beispiele. Um diese sehr stark hervorzuheben, sollen sie mit horizontalen Linien vom Text abgesetzt und leicht in den äußeren Rand verschoben werden. Sie definieren sich dafür zunächst eine Umgebung: \begin{lstlisting} \newenvironment{QuellcodeRahmen}{% \begin{addmargin*}[1em]{-1em}% \begin{minipage}{\linewidth}% \rule{\linewidth}{2pt}% }{% \rule[.25\baselineskip]{\linewidth}{2pt}% \end{minipage}% \end{addmargin*}% } \end{lstlisting} Wird obiger Quellcode in einer solchen Umgebung gesetzt, so ergibt sich: \begin{ShowOutput} \newenvironment{QuellcodeRahmen}{% \begin{addmargin*}[1em]{-1em}% \begin{minipage}{\linewidth}% \rule{\linewidth}{2pt}% }{% \rule[.25\baselineskip]{\linewidth}{2pt}% \end{minipage}% \end{addmargin*}% } Sie definieren sich oder überhaupt zunächst die folgende Umgebung: \begin{QuellcodeRahmen} \begin{lstlisting} \newenvironment{\QuellcodeRahmen}{% \begin{addmargin*}[1em]{-1em}% \begin{minipage}{\linewidth}% \rule{\linewidth}{2pt}% }{% \rule[.25\baselineskip]{\linewidth}{2pt}% \end{minipage}% \end{addmargin*}% } \end{lstlisting} \end{QuellcodeRahmen} Das mag praktisch sein oder unpraktisch, zumindest jedoch zeigt es, wie die Umgebung verwendet werden kann. \end{ShowOutput} Das optionale Argument der \Environment{addmargin*}-Umgebung sorgt dafür, dass der innere Rand um den Wert 1\Unit{em} vergrößert wird. Dafür wird der äußere Rand um den negativen Wert vergrößert, also in Wirklichkeit um 1\Unit{em} verkleinert. Dies resultiert in einer Verschiebung um 1\Unit{em} nach außen. Selbstverständlich kann statt \PValue{1em} auch eine Länge, beispielsweise \PValue{2\Macro{parindent}}, verwendet werden. \end{Example} Ein Problem mit der \Environment{addmargin*}-Umgebung soll nicht verschwiegen werden. Tritt ein Seitenumbruch mitten in einer \Environment{addmargin*}-Umgebung auf, so findet der Einzug auf der zweiten Seite vertauscht statt. Das heißt, dass der \PName{innere Einzug} plötzlich außen vorgenommen wird. Es empfiehlt sich daher, in dieser Umgebung den Seitenumbruch ganz zu verhindern. Das kann man erreichen, indem man zusätzlich eine \Macro{parbox} oder wie in obigem Beispiel eine \Environment{minipage} verwendet. Dabei wird von dem Umstand Gebrauch gemacht, dass weder das Argument einer \Macro{parbox} noch der Inhalt einer \Environment{minipage} umbrochen wird. Leider handeln Sie sich damit einen anderen Nachteil ein: Seiten können unter Umständen nicht mehr korrekt gefüllt werden. Dies führt dann auch zu entsprechenden Warnungen. Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens zuverlässig nicht beim ersten \LaTeX-Durchlauf festgestellt werden. Siehe dazu die Erklärung zur Anweisung \Macro{ifthispageodd} und \Macro{ifthispagewasodd} in \autoref{sec:maincls.pageStyle}, \autopageref{desc:maincls.macro.ifthispageodd}.% % \EndIndex{Env}{addmargin}% \begin{Explain} \looseness=-1 Eine abschließende Bemerkung zu den Listenumgebungen: Im Internet und im Support wird häufig gefragt, warum nach einer Listenumgebung ein Einzug\Index{Einzug} wie bei einem Absatz erfolge. Tatsächlich ist dies gar nicht der Fall, sondern der Effekt resultiert daraus, dass der Anwender einen Absatz verlangt. Bei {\LaTeX} werden Leerzeilen als Absatz interpretiert. Dies gilt auch vor und nach Listenumgebungen. Soll eine Listenumgebung also innerhalb eines Absatzes gesetzt werden, ist weder davor noch danach eine Leerzeile zu setzen. Um die Umgebung trotzdem in der \LaTeX-Datei besser vom Rest abzusetzen, kann man davor und dahinter eine leere Kommentarzeile setzen, also eine Zeile, die direkt mit einem Prozentzeichen beginnt und nichts weiter enthält.\par \end{Explain} \EndIndex[indexother]{}{Listen} \subsection{Randnotizen} \label{sec:maincls.marginNotes} \begin{Declaration} \Macro{marginpar}\OParameter{Randnotiz links}\Parameter{Randnotiz}\\ \Macro{marginline}\Parameter{Randnotiz} \end{Declaration}% \BeginIndex{Cmd}{marginpar}% \BeginIndex{Cmd}{marginline}% Für Randnotizen\Index[indexmain]{Randnotizen} ist bei {\LaTeX} normalweise die Anweisung \Macro{marginpar} vorgesehen. Die Randnotizen werden dabei im äußeren Rand gesetzt. Bei einseitigen Dokumenten wird der rechte Rand verwendet. Zwar kann bei \Macro{marginpar} optional eine abweichende Randnotiz angegeben werden, falls die Randnotiz im linken Rand landet, jedoch werden Randnotizen immer im Blocksatz ausgegeben. Die Erfahrung zeigt, dass bei Randnotizen statt dem Blocksatz oft je nach Rand linksbündiger oder rechtsbündiger Flattersatz zu bevorzugen ist. {\KOMAScript} bietet hierfür die Anweisung \Macro{marginline}. \begin{Example} In der Einleitung ist an einer Stelle die Klassenangabe \Class{scrartcl} im Rand zu finden. Diese kann mit: \begin{lstlisting} \marginline{\texttt{scrartcl}} \end{lstlisting} erreicht werden.\footnote{Tatsächlich wurde nicht \Macro{texttt}, sondern eine semantische Auszeichnung verwendet. Um nicht unnötig zu verwirren, wurde diese im Beispiel ersetzt.} Statt \Macro{marginline} wäre auch die Verwendung von \Macro{marginpar} möglich gewesen. Tatsächlich wird bei obiger Anweisung intern nichts anders gemacht als: \begin{lstlisting} \marginpar[\raggedleft\texttt{scrartcl}] {\raggedright\texttt{scrartcl}} \end{lstlisting} Letztlich ist \Macro{marginline} also nur eine abkürzende Schreibweise. \end{Example} \begin{Explain} Leider funktioniert \Macro{marginpar} im doppelseitigen\Index{doppelseitig} Layout nicht immer ganz korrekt. Die Entscheidung, ob eine Randnotiz links oder rechts landet, wird bereits bei der Auswertung von \Macro{marginpar} getroffen. Verschiebt nun die Ausgaberoutine eine Randnotiz über einen Seitenumbruch auf die nächste Seite, so ist die Formatierung nicht mehr korrekt. Dieses Verhalten ist tief in {\LaTeX} verankert und wurde vom \LaTeX3-Team deshalb als Feature deklariert. \Macro{marginline} ändert nichts an diesem unerwünschten Verhalten. Mit dem Paket \Package{mparhack}\IndexPackage{mparhack} (siehe \cite{package:mparhack}) existiert aber eine Standardlösung für dieses Problem, von der dann natürlich auch \Macro{marginline} profitiert. Es sei darauf hingewiesen, dass \Macro{marginpar} und \Macro{marginline} innerhalb von Gleitumgebungen wie Tabellen und Abbildungen nicht verwendet werden können. Auch in abgesetzten Formeln funktionieren diese Anweisungen nicht. \end{Explain} % \EndIndex{Cmd}{marginpar}% \EndIndex{Cmd}{marginline}% \subsection{Tabellen und Abbildungen} \label{sec:maincls.floats} \begin{Explain} {\LaTeX} bietet mit den Gleitumgebungen einen sehr leistungsfähigen und komfortablen Mechanismus für die automatische Anordnung von Abbildungen\Index{Abbildungen} und Tabellen\Index{Tabellen}. Genau genommen sollte von »Tafeln«\Index{Tafeln} statt von »Tabellen«\Index{Tabellen} die Rede sein. Dies wäre auch zur Unterscheidung der Umgebungen \Environment{table}\IndexEnv{table} und \Environment{tabular}\IndexEnv{tabular} von Vorteil. Es hat sich im Deutschen aber für beides die Bezeichnung »Tabelle« eingebürgert. Das kommt vermutlich daher, dass man in \Environment{table}-Umgebungen üblicherweise \Environment{tabular}-Umgebungen setzt. Häufig werden die Gleitumgebungen\Index[indexmain]{Gleitumgebung} von Anfängern nicht richtig verstanden. So wird oft die Forderung aufgestellt, eine Tabelle oder Abbildung genau an einer bestimmten Position im Text zu setzen. Dies ist jedoch nicht erforderlich, da auf Gleitumgebungen im Text über eine Referenz verwiesen wird. Es ist auch nicht sinnvoll, da ein solches Objekt an einer Stelle nur dann gesetzt werden kann, wenn auf der Seite noch genügend Platz für das Objekt vorhanden ist. Ist dies nicht der Fall, müsste das Objekt auf die nächste Seite umbrochen werden und auf der aktuellen Seite würde ein möglicherweise sehr großer leerer Raum bleiben. Häufig findet sich in einem Dokument auch bei jedem Gleitobjekt das gleiche optionale Argument zur Platzierung des Objekts. Auch dies ist nicht sinnvoll. In solchen Fällen sollte man besser den Standardwert global ändern. Näheres dazu ist \cite{DANTE:FAQ} zu entnehmen.\par \end{Explain} Ein wichtiger Hinweis sei diesem Abschnitt noch vorangestellt: Die meisten Mechanismen, die hier vorgestellt werden und über die Fähigkeiten der Standardklassen hinaus gehen, funktionieren nicht mehr, wenn Sie ein Paket verwenden, das in die Generierung von Tabellen- und Abbildungstiteln eingreift und deren Aussehen verändert. Dies sollte selbstverständlich sein, wird aber leider häufig nicht bedacht. \begin{Declaration} \Macro{caption}\OParameter{Verzeichniseintrag}\Parameter{Titel}\\ \Macro{captionbelow}\OParameter{Verzeichniseintrag}\Parameter{Titel}\\ \Macro{captionabove}\OParameter{Verzeichniseintrag}\Parameter{Titel} \end{Declaration}% \BeginIndex{Cmd}{caption}% \BeginIndex{Cmd}{captionabove}% \BeginIndex{Cmd}{captionbelow}% Tabellen und Abbildungen werden bei den Standardklassen mit Hilfe der Anweisung \Macro{caption} mit einem \PName{Titel} in Form einer Unterschrift\Index{Tabellen>Unterschrift} versehen. Bei Abbildungen ist dies grundsätzlich korrekt. Bei Tabellen wird gestritten, ob der \PName{Titel} als Überschrift über oder konsistent mit der Bildunterschrift\Index{Bildunterschrift} unter die Tabelle gehört. Daher bietet \KOMAScript{} im Gegensatz zu den Standardklassen die Anweisungen \Macro{captionbelow} für \PName{Titel} in Form von Unterschriften und \Macro{captionabove} für \PName{Titel} in Form von Überschriften. \Macro{caption} verhält sich bei Abbildungen immer wie \Macro{captionbelow}. Bei Tabellen lässt sich das Verhalten von \Macro{caption} hingegen mit den beiden Optionen \Option{tablecaptionabove}\IndexOption{tablecaptionabove} und \Option{tablecaptionbelow}\IndexOption{tablecaptionbelow} steuern (siehe \autoref{sec:maincls.formattingOptions}, \autopageref{desc:maincls.option.tablecaptionabove}). Aus Gründen der Kompatibilität ist voreingestellt, dass sich \Macro{caption} auch bei Tabellen wie \Macro{captionbelow} verhält. % \begin{Example} Sie wollen mit Tabellenüberschriften\Index{Tabellen>Ueberschrift=Überschrift} statt mit Tabellenunterschriften arbeiten, weil Sie teilweise Tabellen haben, die über mehr als eine Seite gehen. Mit den Standardklassen bliebe Ihnen nur die Möglichkeit: \begin{lstlisting} \begin{table} \caption{Dies ist nur eine Beispieltabelle} \begin{tabular}{llll} Dies & ist & ein & Beispiel.\\\hline Bitte & lassen & Sie & den \\ Inhalt & dieser & Tabelle & unbeachtet. \end{tabular} \end{table} \end{lstlisting} Damit hätten Sie das unschöne Ergebnis: \begin{ShowOutput}\centering {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} Dies ist nur eine Beispieltabelle}\\ \begin{tabular}{llll} Dies & ist & ein & Beispiel.\\\hline Bitte & lassen & Sie & den \\ Inhalt & dieser & Tabelle & unbeachtet. \end{tabular} \end{ShowOutput} Bei \KOMAScript{} schreiben Sie hingegen: \begin{lstlisting} \begin{table} \captionabove{Dies ist nur eine Beispieltabelle} \begin{tabular}{llll} Dies & ist & ein & Beispiel.\\\hline Bitte & lassen & Sie & den \\ Inhalt & dieser & Tabelle & unbeachtet. \end{tabular} \end{table} \end{lstlisting} Sie erhalten dann das gewünschte Ergebnis: \begin{ShowOutput}\centering {\usekomafont{caption}{\usekomafont{captionlabel}\tablename~30.2:} Dies ist nur eine Beispieltabelle}\\\vskip\abovecaptionskip \begin{tabular}{llll} Dies & ist & ein & Beispiel.\\\hline Bitte & lassen & Sie & den \\ Inhalt & dieser & Tabelle & unbeachtet. \end{tabular} \end{ShowOutput} Da Sie konsistent alle Tabellen mit Überschriften versehen, können Sie stattdessen natürlich auch die Option \Option{tablecaptionabove} setzen (siehe \autoref{sec:maincls.formattingOptions}, \autopageref{desc:maincls.option.tablecaptionabove}). Dann genügt es, wenn Sie wie bei den Standardklassen \Macro{caption} verwenden. Sie erhalten trotzdem das Ergebnis von \Macro{captionabove}. \end{Example} \begin{Explain} Einige werden nun einwenden, dass man das Gleiche auch mit dem \Package{topcapt}-Paket\IndexPackage{topcapt} und der dort definierten Anweisung \Macro{topcaption} erreichen kann (siehe \cite{package:topcapt}). Dies ist jedoch nicht der Fall. \Macro{topcaption} bleibt von Paketen, die direkt das \Macro{caption}-Makro umdefinieren, unberücksichtigt. Ein Beispiel dafür ist das \Package{hyperref}-Paket (siehe \cite{package:hyperref}). Demgegenüber sind \Macro{captionabove} und \Macro{captionbelow} so implementiert, dass sich die Änderungen auch auf diese beiden Anweisungen auswirken. \phantomsection\label{desc:maincls.macro.caption.longtable}% Bei Verwendung des \Package{longtable}-Pakets\IndexPackage{longtable} wird dafür gesorgt, dass auch die Tabellenüberschriften, die innerhalb einer \Environment{longtable}-Umgebung gesetzt werden, in Aussehen und Form denen einer normalen \Environment{table}-Umgebung entsprechen. Es gelten damit auch dieselben Einstellmöglichkeiten. Bitte beachten Sie, dass beim \Package{longtable}-Paket normalerweise die maximale Breite einer Tabellenüberschrift begrenzt werden kann und per Voreinstellung auf 4\Unit{in} begrenzt ist (siehe \cite{package:longtable}). Bei Verwendung von \KOMAScript{} funktioniert der entsprechende Mechanismus aus \Package{longtable} jedoch nur, wenn die Klassenoption \Option{origlongtable} (siehe \autoref{sec:maincls.formattingOptions}, \autopageref{desc:maincls.option.origlongtable}) gesetzt wird. Ist das Paket \Package{caption2}\IndexPackage{caption2} oder \Package{caption}\IndexPackage{caption} (siehe \cite{package:caption}) geladen, so werden die Tabellenüberschriften von jenem Paket behandelt. Bitte beachten Sie, dass sich \Macro{captionabove} und \Macro{captionbelow} innerhalb einer \Environment{float}-Umgebung, die mit Hilfe des \Package{float}-Pakets\IndexPackage{float} definiert wurde, genau wie in \cite{package:float} für die \Macro{caption}-Anweisung beschrieben verhalten. In diesem Fall kontrolliert allein der float-Stil, ob es sich um eine Überschrift oder um eine Unterschrift handelt. \end{Explain} \begin{Declaration} \Environment{captionbeside}\OParameter{Verzeichnistitel}% \Parameter{Titel}\OParameter{Anordnung}\OParameter{Breite}% \OParameter{Offset}\\% \XEnvironment{captionbeside}\OParameter{Verzeichnistitel}% \Parameter{Titel}\OParameter{Anordnung}\OParameter{Breite}% \OParameter{Offset}\PValue{*} \end{Declaration} \BeginIndex{Env}{captionbeside}% Neben \ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}}% den Unter- und Überschriften findet man insbesondere bei kleineren Abbildungen häufiger Beschreibungen, die neben der Abbildung gesetzt werden. Dabei schließt normalerweise die Unterkante der Beschreibung mit der Unterkante der Abbildung ab. Natürlich kann man mit etwas Geschick und beispielsweise zwei \Macro{parbox}-Anweisungen dergleichen auch in den Standardklassen erreichen. \KOMAScript{} bietet jedoch eine spezielle Umgebung. Diese Umgebung kann innerhalb der Gleitumgebungen verwendet werden. Der erste optionale Parameter \PName{Verzeichnistitel} und der obligatorische Parameter \PName{Titel} entsprechen dabei genau den gleichnamigen Parametern von \Macro{caption}, \Macro{captionabove} oder \Macro{captionbelow}. Der \PName{Titel} wird dabei neben den Inhalt der Umgebung gesetzt. Ob der \PName{Titel} rechts oder links daneben gesetzt wird, kann mit dem optionalen Parameter \PName{Anordnung} bestimmt werden. Es darf genau einer der folgenden Buchstaben angegeben werden: \begin{labeling}[~--]{\PValue{o}} \item[\PValue{l}] links \item[\PValue{r}] rechts \item[\PValue{i}] innen, also auf rechten Seiten links und auf linken Seiten rechts \item[\PValue{o}] außen, also auf rechten Seiten rechts und auf linken Seiten links \end{labeling} Voreingestellt ist rechts neben dem Inhalt der Umgebung. Bei Verwendung von \PValue{o} oder \PValue{i} für \emph{Anordnung} außen oder innen werden unter Umständen zwei \LaTeX-Durchläufe benötigt, um die korrekte Anordnung zu erreichen. Normalerweise nehmen der Inhalt der Umgebung und der \PName{Titel} die gesamte verfügbare Breite ein. Es besteht jedoch die Möglichkeit, mit dem optionalen Parameter \PName{Breite} eine andere Breite anzugeben. Diese kann auch größer als die Breite des Textkörpers sein. Bei Angabe einer \PName{Breite} wird die genutzte Breite normalerweise bezüglich der Breite des Textkörpers zentriert. Mit dem optionalen Argument \PName{Offset} kann stattdessen eine Verschiebung relativ zum linken Rand angegeben werden. Ein positiver Wert entspricht einer Verschiebung nach rechts, ein negativer Wert einer Verschiebung nach links. Mit einem \PName{Offset} von 0\Unit{pt} erfolgt die Ausgabe linksbündig. Wird hinter den optionalen Parameter \PName{Offset} noch ein Stern gesetzt, so stellt der \PName{Offset} im doppelseitigen Druck auf linken Seiten eine Verschiebung relativ zum rechten Rand dar. Ein positiver Wert entspricht dann einer Verschiebung nach außen, während ein negativer Wert für eine Verschiebung nach innen steht. Ein \PName{Offset} von 0\Unit{pt} wäre dann also bündig zum inneren Rand. Diese Variante benötigt unter Umständen zwei \LaTeX-Durchläufe, um die korrekte Verschiebung zu erreichen. \begin{Example} Ein Beispiel für die Verwendung der \Environment{captionbeside}-Umgebung ist in \autoref{fig:maincls.captionbeside} zu finden. Gesetzt wurde diese Abbildung mit: \begin{lstlisting} \begin{figure} \begin{captionbeside}[Beispiel für Bildbeschreibung]% {Eine Bildbeschreibung weder über noch unter der Abbildung, sondern daneben}[i][\linewidth]% [2em]* \fbox{% \parbox[b][5\baselineskip][c]{.25\textwidth}{% \hspace*{\fill}\KOMAScript\hspace*{\fill}% \par}} \end{captionbeside} \label{fig:maincls.captionbeside} \end{figure} \end{lstlisting} \begin{figure} \begin{captionbeside}[Beispiel f"ur Bildbeschreibung]% {Eine Bildbeschreibung weder über noch unter der Abbildung, sondern daneben}[i][\linewidth][2em]* \fbox{% \parbox[b][5\baselineskip][c]{.25\textwidth}{% \hspace*{\fill}\KOMAScript\hspace*{\fill}\par}} \end{captionbeside} \label{fig:maincls.captionbeside} \end{figure} Die Gesamtbreite ist also die aktuell verfügbare Breite \PValue{\Macro{linewidth}}. Diese wird jedoch um \PValue{2em} nach außen verschoben. Der Titel oder die Beschreibung steht innen neben der Abbildung. Damit erscheint die Abbildung selbst um 2\Unit{em} in den Rand gerückt. \end{Example} % \EndIndex{Env}{captionbeside} \BeginIndex[indexother]{}{Schriftart}% Die Schriftart\ChangedAt{v2.8p}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} für die Beschreibung und das Label~-- »Abbildung« oder »Tabelle« gefolgt von der Nummer und einem Trennzeichen -- kann über die in \autoref{sec:maincls.font} beschriebenen Anweisungen verändert werden. Zuständig sind hier die Elemente \FontElement{caption}\IndexFontElement{caption} und \FontElement{captionlabel}\IndexFontElement{captionlabel} (siehe \autoref{tab:maincls.elementsWithoutText}, \autopageref{tab:maincls.elementsWithoutText}). Dabei wird die Schriftart für das Element \FontElement{caption} zunächst auch auf das Element \FontElement{captionlabel} angewandt, bevor dessen spezifische Schriftart Anwendung findet. Die Vorbelegungen sind \autoref{tab:maincls.captionFont} zu entnehmen. % \begin{table} \centering% \caption[{Schriftvoreinstellungen für die Elemente der Tabellen- oder\newline Abbildungsunterschrift bzw. "~überschrift}]{Schriftvoreinstellungen für die Elemente der Tabellen- oder Abbildungsunterschrift bzw. "~überschrift} \begin{tabular}{ll} \toprule Element & Voreinstellung \\ \midrule \FontElement{caption} & \Macro{normalfont} \\ \FontElement{captionlabel} & \Macro{normalfont} \\ \bottomrule \end{tabular} \label{tab:maincls.captionFont} \end{table} % \begin{Example} Sie wollen, dass Tabellen- und Abbildungsbeschreibungen in einer kleineren Schriftart gesetzt werden. Also setzen Sie beispielsweise in der Präambel Ihres Dokuments: \begin{lstlisting} \addtokomafont{caption}{\small} \end{lstlisting} Außerdem hätten Sie gerne, dass das Label serifenlos und fett gedruckt wird. Sie setzen also außerdem: \begin{lstlisting} \setkomafont{captionlabel}{\sffamily\bfseries} \end{lstlisting} Wie Sie sehen, kann auch hier einfach eine Erweiterung der Vorbelegung verwendet werden. \end{Example} % \EndIndex[indexother]{}{Schriftart} % \EndIndex{Cmd}{caption}% \EndIndex{Cmd}{captionabove}% \EndIndex{Cmd}{captionbelow}% \begin{Explain} \begin{Declaration} \FloatStyle{komaabove}\\ \FloatStyle{komabelow} \end{Declaration}% \BeginIndex{Floatstyle}{komaabove}% \BeginIndex{Floatstyle}{komabelow}% \OnlyAt{\Package{float}}Bei Verwendung des \Package{float}-Pakets\IndexPackage{float} wird das Aussehen der damit definierten Gleitumgebungen allein vom \emph{float}-Stil bestimmt. Dies schließt auch die Frage ein, ob mit Überschriften oder Unterschriften gearbeitet wird. Im \Package{float}-Paket gibt es keinen vordefinierten Stil, der im Aussehen dem von \KOMAScript{} entspricht und dieselben Einstellmöglichkeiten (siehe unten) bietet. \KOMAScript{} definiert deshalb zusätzlich die beiden Stile \PValue{komaabove} und \PValue{komabelow}. Diese können bei Verwendung des \Package{float}-Pakets wie die dort definierten Stile \PValue{plain}\IndexFloatstyle{plain}, \PValue{boxed}\IndexFloatstyle{boxed} oder \PValue{ruled}\IndexFloatstyle{ruled} aktiviert werden. Siehe dazu \cite{package:float}. Beim Stil \PValue{komaabove} werden \Macro{caption}, \Macro{captionabove} und \Macro{captionbelow} als Überschrift, beim Stil \PValue{komabelow} als Unterschrift gesetzt. % \EndIndex{Floatstyle}{komaabove}% \EndIndex{Floatstyle}{komabelow}% \end{Explain} \begin{Declaration} \Macro{captionformat} \end{Declaration}% \BeginIndex{Cmd}{captionformat}% Bei {\KOMAScript} gibt es verschiedene Eingriffsmöglichkeiten, um die Formatierung der Beschreibung zu ändern. Die Änderung der Schriftart wurde bereits erläutert. Das oder die Trennzeichen zwischen dem Label und dem eigentlichen Beschreibungstext sind im Makro \Macro{captionformat} abgelegt. Abweichend von allen anderen \Macro{\dots}format-Anweisungen ist hier also nicht der Zähler, sondern nur die auf den Zähler folgenden Angaben enthalten. Die Originaldefinition lautet: \begin{lstlisting} \newcommand*{\captionformat}{:\ } \end{lstlisting} Auch diese kann mit \Macro{renewcommand} geändert werden. \begin{Example} Aus mir unerfindlichen Gründen wollen Sie als Trennzeichen keinen Doppelpunkt gefolgt von einem Leerzeichen, sondern einen Gedankenstrich einschließlich der notwendigen Leerzeichen. Daher definieren Sie: \begin{lstlisting} \renewcommand*{\captionformat}{~--~} \end{lstlisting} Diese Definition sollten Sie beispielsweise in die Präambel Ihres Dokuments stellen. \end{Example} % \EndIndex{Cmd}{captionformat}% \begin{Declaration} \Macro{figureformat}\\ \Macro{tableformat} \end{Declaration}% \BeginIndex{Cmd}{figureformat}% \BeginIndex{Cmd}{tableformat}% Es wurde schon darauf hingewiesen, dass \Macro{captionformat} keine Formatierung für das Label selbst enthält. Dieses sollte nun keineswegs über Umdefinierung der Anweisungen für die Zählerausgabe, \Macro{thefigure} oder \Macro{thetable}, verändert werden. Eine solche Umdefinierung hätte nämlich auch Auswirkungen auf die Ausgabe von \Macro{ref} oder der Verzeichnisse. Stattdessen bietet {\KOMAScript} auch hier zwei \Macro{\dots format}-Anweisungen. Diese sind wie folgt vordefiniert: \begin{lstlisting} \newcommand*{\figureformat}{\figurename~\thefigure\autodot} \newcommand*{\tableformat}{\tablename~\thetable\autodot} \end{lstlisting} Sie können ebenfalls mit \Macro{renewcommand} eigenen Anforderungen angepasst werden. \begin{Example} Hin und wieder wird gewünscht, dass die Beschreibungstexte ganz ohne Label und natürlich auch ohne Trennzeichen ausgegeben werden. Bei {\KOMAScript} genügen folgende Definitionen, um dies zu erreichen: \begin{lstlisting} \renewcommand*{\figureformat}{} \renewcommand*{\tableformat}{} \renewcommand*{\captionformat}{} \end{lstlisting} Dabei ist jedoch zu beachten, dass die Nummerierung damit zwar nicht ausgegeben aber dennoch fortgezählt wird. Dies ist insbesondere dann von Bedeutung, wenn die Umdefinierungen nur auf einzelne \Environment{figure}- oder \Environment{table}-Umgebungen angewendet werden. \end{Example} % \EndIndex{Cmd}{figureformat}% \EndIndex{Cmd}{tableformat}% \begin{Declaration} \Macro{setcapindent}\Parameter{Einzug}\\ \Macro{setcapindent*}\Parameter{XEinzug}\\ \Macro{setcaphanging} \end{Declaration}% \BeginIndex{Cmd}{setcapindent}% \BeginIndex{Cmd}{setcapindent*}% \BeginIndex{Cmd}{setcaphanging}% Wie bereits erwähnt wurde, werden in den Standardklassen die Beschreibungen nicht hängend gesetzt. Das heißt: In mehrzeiligen Beschreibungen beginnt die zweite Zeile direkt unter dem Labeltext. Es gibt bei den Standardklassen auch keinen Mechanismus, dies direkt zu beeinflussen. Bei {\KOMAScript} werden hingegen alle Zeilen ab der zweiten so weit eingerückt, dass diese nicht mehr unter dem Label, »Abbildung~\dots:« oder »Tabelle~\dots:«, sondern unter dem eigentlichen Text der ersten Zeile beginnen. Dieses Verhalten, das der Verwendung der Anweisung \Macro{setcaphanging} entspricht, kann bei {\KOMAScript} jederzeit durch Verwendung der Anweisung \Macro{setcapindent} oder \Macro{setcapindent*} geändert werden. Dabei gibt der Parameter \PName{Einzug} an, wie weit ab der zweiten Zeile eingerückt werden soll. Soll nach dem Label und vor dem Beschreibungstext noch ein Zeilenumbruch erfolgen, so definieren Sie die Einrücktiefe \PName{XEinzug} der Beschreibung stattdessen mit der Sternvariante der Anweisung: \Macro{setcapindent*}. Mit einem negativen \PName{Einzug} erreicht man hingegen, dass vor der Beschreibung ebenfalls ein Umbruch erfolgt und nur die erste Zeile der Beschreibung, nicht jedoch die folgenden, um -\PName{Einzug} eingerückt werden. Ob einzeilige Beschreibungen wie mehrzeilige Beschreibungen gesetzt werden oder eine Sonderbehandlung erfahren, wird über die Klassenoptionen \Option{onelinecaption} und \Option{noonelinecaption} gewählt. Siehe hierzu die Erklärung zu diesen Optionen in \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.noonelinecaption}. \begin{Example} Die Beispiele entnehmen Sie bitte den Abbildungen~\ref{fig:maincls.caption.first} bis \ref{fig:maincls.caption.last}. Dabei zeigt sich auch, dass bei geringer Spaltenbreite der komplett hängende Einzug unvorteilhaft ist. Der Quelltext der zweiten Abbildung sei hier mit abgewandelter Unterschrift beispielhaft wiedergegeben: \begin{lstlisting} \begin{figure} \setcapindent{1em} \fbox{\parbox{.95\linewidth}{% \centering\KOMAScript}} \caption{Beispiel mit teilweise hängendem Einzug ab der zweiten Zeile} \end{figure} \end{lstlisting} Wie zu sehen ist, kann die Formatierung also auch lokal innerhalb der \Environment{figure}-Umgebung\IndexEnv{figure} geändert werden. Die Änderung gilt dann nur für die eine Abildung. Nachfolgende Abbildungen werden wieder mit den Grundeinstellungen oder den globalen Einstellungen, die Sie beispielsweise in der Dokumentpräambel vorgenommen haben, gesetzt. Das gilt für Tabellen natürlich genauso. \begin{figure} \typeout{^^J--- Ignore underfull and overfull \string\hbox:} \addtokomafont{caption}{\small} \addtokomafont{captionlabel}{\bfseries} \centering% \begin{minipage}{.9\linewidth} \begin{minipage}[t]{.48\linewidth}\sloppy \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} \caption[Beispiel f"ur Bildunterschrift]% {Mit der Stan\-dard\-ein\-stell\-ung, also wie bei Verwendung von \Macro{setcaphanging}} \label{fig:maincls.caption.first} \end{minipage} \hspace{.02\linewidth} \begin{minipage}[t]{.48\linewidth}\sloppy \setcapindent{1em} \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} \caption[Beispiel f"ur Bildunterschrift]% {Mit teilweise h"ang"-endem Einzug ab der zweiten Zeile durch Verwendung von \Macro{setcapindent}\PParameter{1em}} \end{minipage} \end{minipage} \vspace*{2ex}\noindent% \begin{minipage}{.9\linewidth} \begin{minipage}[t]{.48\linewidth}\sloppy \setcapindent*{1em} \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} \caption[Beispiel f"ur Bildunterschrift]% {Mit h"angendem Einzug ab der zweiten Zeile und Umbruch vor der Beschreibung durch Verwendung von \Macro{setcapindent*}\PParameter{1em}} \end{minipage} \hspace{.02\linewidth} \begin{minipage}[t]{.48\linewidth}\sloppy \setcapindent{-1em} \fbox{\parbox{.95\linewidth}{\centering{\KOMAScript}}} \caption[Beispiel f"ur Bildunterschrift]% {Mit Einzug lediglich in der zweiten Zeile und einem Umbruch vor der Beschreibung durch Verwendung von \Macro{setcapindent}\PParameter{-1em}} \label{fig:maincls.caption.last} \end{minipage} \end{minipage} \typeout{^^J--- Don't ignore underfull and overfull \string\hbox:^^J} \end{figure} \end{Example} % \EndIndex{Cmd}{setcapindent}% \EndIndex{Cmd}{setcapindent*}% \EndIndex{Cmd}{setcaphanging}% \begin{Declaration} \Macro{setcapwidth}\OParameter{Ausrichtung}\Parameter{Breite}\\ \Macro{setcapmargin}\OParameter{Rand links}\Parameter{Rand}\\ \Macro{setcapmargin*}\OParameter{Rand innen}\Parameter{Rand} \end{Declaration} \BeginIndex{Cmd}{setcapwidth}% \BeginIndex{Cmd}{setcapmargin}% \BeginIndex{Cmd}{setcapmargin*}% Mit% \ChangedAt{v2.8q}{% \Class{scrbook}\and\Class{scrreprt}\and\Class{scrartcl}} Hilfe dieser drei Befehle kann die Breite und Anordnung der Beschreibung beeinflusst werden. Normalerweise steht die gesamte Text- oder Spaltenbreite für den Text der Beschreibung zur Verfügung. Mit der Anweisung \Macro{setcapwidth} kann diese \PName{Breite} reduziert werden. Dabei gibt das obligatorische Argument die maximale \PName{Breite} der Beschreibung an. Als optionales Argument kann genau ein Buchstabe übergeben werden, der die horizontale Ausrichtung der Beschreibung angibt. Die möglichen Ausrichtungen finden Sie in der folgenden Liste. \begin{labeling}[~--]{\PValue{o}} \item[\PValue{l}] linksbündig \item[\PValue{c}] zentriert \item[\PValue{r}] rechtsbündig \item[\PValue{i}] innen, also auf rechten Seiten linksbündig und auf linken Seiten rechtsbündig \item[\PValue{o}] außen, also auf rechten Seiten rechtsbündig und auf linken Seiten linksbündig \end{labeling} Die Ausrichtung innen und außen entspricht im einseitigen Satz linksbündig und rechtsbündig. Innerhalb von \Package{longtable}\IndexPackage{longtable}-Tabellen funktioniert die Ausrichtung innen und außen nicht korrekt. Insbesondere werden Beschreibungen von Folgeseiten bei diesen Tabellen immer nach den Beschreibungen der ersten Teiltabelle ausgerichtet. Dies ist ein konzeptionelles Problem des Paketes \Package{longtable}. Mit der Anweisung \Macro{setcapmargin} kann statt der Breite der Beschreibung ein \PName{Rand} angegeben werden, der neben der Beschreibung zusätzlich zum normalen Textrand eingehalten werden soll. Sollen der Rand rechts und links nicht identisch gewählt werden, kann mit dem optionalen Argument ein von \PName{Rand} abweichender \PName{Rand links} von der Beschreibung eingestellt werden. Bei der Sternvariante \Macro{setcapmargin*} wird statt dem \PName{Rand links} im doppelseitigen Satz der \PName{Rand innen} abweichend definiert. Hier ergibt sich bei \Package{longtable}\IndexPackage{longtable}-Tabellen das gleiche Problem wie bei der Ausrichtung außen oder innen bei der Anweisung \Macro{setcapwidth}. Die Verwendung von \Macro{setcapmargin} oder \Macro{setcapmargin*} schaltet außerdem die Option \Option{noonelinecaption} (siehe \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.noonelinecaption}) für die Beschreibungen ein, die mit dieser Randeinstellung gesetzt werden. \begin{Explain} \Package{longtable} packt die Beschreibung in eine Box, die auf Folgeseiten nach Bedarf erneut ausgegeben wird. Bei der Ausgabe einer Box werden die Makros, die bei der Erzeugung der Box durchlaufen wurden, nicht erneut ausgewertet. Damit ist es \KOMAScript{} unmöglich, die Randeinstellung im doppelseitigen Satz auf geraden Seiten zu vertauschen. Dies wäre aber notwendig, um eine Ausrichtung, die nach außen oder innen verschoben ist, zu ermöglichen. Man kann übrigens auch negative Werte für \PName{Rand} und \PName{Rand rechts} oder \PName{Rand außen} angeben. Dadurch erreicht man, dass die Beschreibung in den entsprechenden Rand hineinragt. \end{Explain} \begin{Example} Ein etwas ausgefallenes Problem ist, wenn die Bildunterschrift zentriert unter einer Abbildung stehen und dabei genauso breit wie die Abbildung selbst sein soll. Ist die Breite der Abbildung bekannt, ist die Lösung mit \KOMAScript{} sehr einfach. Angenommen, die Abbildung ist 8\Unit{cm} breit, so genügt: \begin{lstlisting} \setcapwidth[c]{8cm} \end{lstlisting} unmittelbar vor \Macro{caption} oder \Macro{captionbelow}. Ist die Breite nicht bekannt, so muss zunächst in der Präambel des Dokuments eine Länge definiert werden: \begin{lstlisting} \newlength{\Abbildungsbreite} \end{lstlisting} Nun kann in vielen Fällen die Breite direkt mit Hilfe der \LaTeX-Anweisung \Macro{settowidth} (siehe \cite{latex:usrguide}) ermittelt werden. Eine Lösung kann dann wie folgt aussehen: \begin{lstlisting} \begin{figure} \centering% \settowidth{\Abbildungsbreite}{% \fbox{\quad\KOMAScript\quad}% }% \fbox{\quad\KOMAScript\quad}% \setcapwidth[c]{\Abbildungsbreite} \caption{Beispiel einer unter der Abbildung zentrierten Bildunterschrift} \end{figure} \end{lstlisting} Allerdings ist es unpraktisch den Inhalt zweimal zu schreiben. Ebenso ist es unpraktisch, \Macro{setcapwidth} jedesmal neu aufzurufen. Aber nichts ist einfacher, als in der Präambel einen Befehl zu definieren, der die drei Schritte: \begin{enumerate} \item Bestimmung der Breite des Arguments \item Festlegung der Breite der Bildunterschrift \item Ausgabe des Arguments \end{enumerate} verbirgt: \begin{lstlisting} \newcommand{\Abbildung}[1]{% \settowidth{\Abbildungsbreite}{#1}% \setcapwidth[c]{\Abbildungsbreite}% #1% } \end{lstlisting} Mit diesem Befehl verkürzt sich das Beispiel zu: \begin{lstlisting} \begin{figure} \centering% \Abbildung{\fbox{\quad\KOMAScript\quad}}% \caption{Beispiel einer unter der Abbildung zentrierten Bildunterschrift} \end{figure} \end{lstlisting} Nun hat ein Befehl jedoch den Nachteil, dass Fehler in den Makros des Arguments bei mehrzeiligen Argumenten von \LaTeX{} nicht mit einer sehr genauen Zeilenzahl gemeldet werden. Deshalb ist in manchen Fällen eine Umgebung praktischer. Es stellt sich dann aber die Frage, wie die Breite des Inhalts der Umgebung bestimmt werden kann. Die Lösung besteht in der \Environment{lrbox}-Umgebung, die in \cite{latex:usrguide} beschrieben ist: \begin{lstlisting} \newsavebox{\Abbildungsbox} \newenvironment{AbbildungSetztCaptionBreite}{% \begin{lrbox}{\Abbildungsbox}% }{% \end{lrbox}% \global\setbox\Abbildungsbox=\box\Abbildungsbox% \aftergroup\SetzeAbbildungsbox% } \newcommand{\SetzeAbbildungsbox}{% \Abbildung{\usebox{\Abbildungsbox}}} \end{lstlisting} Dabei wird der oben definierte Befehl \Macro{Abbildung} eingesetzt. In der Anwendung ergibt sich dann: \begin{lstlisting} \begin{figure} \centering% \begin{AbbildungSetztCaptionBreite} \fbox{\hspace{1em}\KOMAScript\hspace{1em}} \end{AbbildungSetztCaptionBreite} \caption{Beispiel einer unter der Abbildung zentrierten Bildunterschrift} \end{figure} \end{lstlisting} Zugegeben, in diesem Beispiel ist die Umgebung überflüssig. Aber ihre Definition mit Verwendung von \Macro{global} ist gleichzeitig recht trickreich. Es ist deshalb davon auszugehen, dass viele Anwender mit der Forderung, die Umgebung selbst zu erstellen, überfordert wären. Da sie aber sehr nützlich sein kann, wurde sie hier als Beispiel vorgestellt. Gäbe es die \Environment{captionbeside}-Umgebung nicht, so könnte man die Bildunterschrift trotzdem recht einfach rechts neben der Abbildung setzen. Dazu müsste \Macro{SetzeAbbildungsbox} aus obigem Beispiel zunächst umdefiniert werden: \begin{lstlisting} \renewcommand{\SetzeAbbildungsbox}{% \settowidth{\Abbildungsbreite}{% \usebox{\Abbildungsbox}% }% \parbox[b]{\Abbildungsbreite}{% \usebox{\Abbildungsbox}% }% \hfill% \addtolength{\Abbildungsbreite}{1em}% \addtolength{\Abbildungsbreite}{-\hsize}% \setlength{\Abbildungsbreite}{-\Abbildungsbreite}% \setcapwidth[c]{\Abbildungsbreite}% } \end{lstlisting} Anschließend müsste lediglich noch die \Macro{caption}-Anweisung in eine \Macro{parbox} gepackt werden: \begin{lstlisting} \begin{figure} \centering% \begin{AbbildungSetztCaptionBreite} \fbox{\rule{0pt}{5\baselineskip}% \hspace{1em}\KOMAScript\hspace{1em}} \end{AbbildungSetztCaptionBreite} \parbox[b]{\Abbildungsbreite}{% \caption{Beispiel einer neben die Abbildung gesetzten mehrzeiligen Bildinformation} } \end{figure} \end{lstlisting} Die \Macro{rule}-Anweisung in diesem Beispiel dient lediglich als unsichtbare Stütze, um eine Beispielabbildung mit größerer vertikaler Ausdehnung zu erreichen. \end{Example} % \EndIndex{Cmd}{setcapwidth}% \EndIndex{Cmd}{setcapmargin}% \EndIndex{Cmd}{setcapmargin*}% \subsection{Textauszeichnung} \label{sec:maincls.emphasis} \begin{Explain} \LaTeX{} bietet verschiedene Möglichkeiten der Textauszeichnung\Index{Textauszeichnung}. Streng genommen stellt eine Überschrift ebenfalls eine Auszeichnung dar. In diesem Abschnitt beschäftigen wir uns aber ausschließlich mit unmittelbaren Auszeichnungen, also solchen, die keine zusätzliche Bedeutungen in sich besitzen, sondern die für verschiedene Zwecke verwendet werden können. Näheres zu den normalerweise definierten Möglichkeiten sind \cite{l2kurz}, \cite{latex:usrguide} und \cite{latex:fntguide} zu entnehmen. \end{Explain} \begin{Declaration} \Macro{textsubscript}\Parameter{Text} \end{Declaration} \BeginIndex{Cmd}{textsubscript}% In \autoref{sec:maincls.footnotes}, \autopageref{desc:maincls.macro.textsuperscript} wurde bereits \Macro{textsuperscript}\IndexCmd{textsuperscript} als Bestandteil des \LaTeX-Kerns vorgestellt. Leider bietet \LaTeX{} selbst keine entsprechende Anweisung, um Text tief\Index{Tiefstellung} statt hoch\Index{Hochstellung} zu stellen. \KOMAScript{} definiert dafür \Macro{textsubscript}. % \begin{Example} Sie schreiben einen Text über den menschlichen Stoffwechsel. Darin kommen hin und wieder einfache chemische Summenformeln vor. Dabei sind einzelne Ziffern tief zu stellen. Im Sinne des logischen Markup definieren Sie zunächst in der Dokumentpräambel oder einem eigenen Paket: \begin{lstlisting} \newcommand*{\Molek}[2]{#1\textsubscript{#2}} \end{lstlisting} \newcommand*{\Molek}[2]{#1\textsubscript{#2}} Damit schreiben Sie dann: \begin{lstlisting} Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich allerdings auf den Stoffwechsel sehr nachteilig aus. \end{lstlisting} Das Ergebnis sieht daraufhin so aus: \begin{ShowOutput} Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich allerdings auf den Stoffwechsel sehr nachteilig aus. \end{ShowOutput} Etwas später entscheiden Sie, dass Summenformeln grundsätzlich serifenlos geschrieben werden sollen. Nun zeigt sich, wie gut die Entscheidung für konsequentes logisches Markup war. Sie müssen nur die \Macro{Molek}-Anweisung umdefinieren: \begin{lstlisting} \newcommand*{\Molek}[2]{% \textsf{#1\textsubscript{#2}}% } \end{lstlisting} \renewcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}} Schon ändert sich die Ausgabe im gesamten Dokument: \begin{ShowOutput} Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich allerdings auf den Stoffwechsel sehr nachteilig aus. \end{ShowOutput} \end{Example} \begin{Explain} Im Beispiel wird die Schreibweise »\verb|\Molek C6|« verwendet. Dabei wird Nutzen aus der Tatsache gezogen, dass Argumente, die nur aus einem Zeichen bestehen, nicht geklammert werden müssen. Damit ist »\verb|\Molek C6|« gleichbedeutend mit »\verb|\Molek{C}{6}|«. Bekannt ist dieser Umstand hauptsächlich von Indizes und Potenzen in mathematischen Umgebungen, etwa »\verb|$x^2$|« statt »\verb|$x^{2}$|« für »$x^2$«. \end{Explain} % \EndIndex{Cmd}{textsubscript}% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Der Schlussteil} \label{sec:maincls.appendix} Im Schlussteil eines Dokuments finden sich üblicherweise die Anhänge\Index{Anhang}, das Literaturverzeichnis\Index{Literaturverzeichnis} und gegebenenfalls ein Stichwortverzeichnis\Index{Stichwortverzeichnis}. \begin{Declaration} \Macro{appendix} \end{Declaration}% \BeginIndex{Cmd}{appendix}% Der Anhang wird in den Standardklassen und den {\KOMAScript}-Klassen mit der Anweisung \Macro{appendix} eingeleitet. Diese Anweisung schaltet unter anderem die Kapitelnummerierung auf Großbuchstaben um und sorgt gleichzeitig dafür, dass die Regeln für die Nummerierung der Gliederungsebenen nach \cite{DUDEN} eingehalten werden. Diese Regeln sind in der Beschreibung der Klassenoptionen \Option{pointednumbers} und \Option{pointlessnumbers} in \autoref{sec:maincls.formattingOptions}, \autopageref{desc:maincls.option.pointlessnumbers} näher erläutert. Bitte beachten Sie, dass es sich bei \Macro{appendix} um eine Anweisung und \emph{nicht} um eine Umgebung handelt! Die Anweisung erwartet auch nicht etwa ein Argument. Die Kapitel beziehungsweise Abschnitte des Anhangs werden ganz normal mit \Macro{chapter} und \Macro{section} gesetzt. % \EndIndex{Cmd}{appendix} \begin{Declaration} \Macro{appendixmore} \end{Declaration}% \BeginIndex{Cmd}{appendixmore}% Bei den {\KOMAScript}-Klassen gibt es innerhalb der Anweisung \Macro{appendix} eine Besonderheit. Ist nämlich die Anweisung \Macro{appendixmore} definiert, so wird sie von der \Macro{appendix}-Anweisung ebenfalls ausgeführt. Intern wird dies von den {\KOMAScript}-Klassen \Class{scrbook} und \Class{scrreprt} für die Realisierung der Layoutoptionen \Option{appendixprefix} und \Option{noappendixprefix} genutzt (siehe \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.appendixprefix}). Dies sollten Sie unbedingt beachten, falls Sie selbst das Makro \Macro{appendixmore} definieren oder umdefinieren wollen. Ist eine dieser beiden Optionen gesetzt, so erhalten Sie bei \verb|\newcommand{\appendixmore}{|\dots\verb|}| eine Fehlermeldung. Dadurch soll verhindert werden, dass Sie die Optionen 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 Layoutoptionen \Option{chapterprefix} und \Option{nochapterprefix} in \autoref{sec:maincls.layoutOptions}, \autopageref{desc:maincls.option.chapterprefix}). Damit die Konsistenz gewahrt bleibt, wollen Sie auch nicht, dass eine solche Zeile im Anhang verwendet wird. Stattdessen sollen 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 weder die Layoutoption \Option{appendixprefix} noch \Option{noappendixprefix}, sondern definieren in der Dokumentpräambel: \begin{lstlisting} \newcommand*{\appendixmore}{% \renewcommand*{\chapterformat}{% \appendixname~\thechapter\autodot\enskip} \renewcommand*{\chaptermarkformat}{% \appendixname~\thechapter\autodot\enskip} } \end{lstlisting} \looseness=1 Sollten Sie später dann doch noch entscheiden, dass Sie die Option \Option{appendixprefix} verwenden 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. Dazu schreiben Sie in die Präambel Ihres Dokuments: \begin{lstlisting} \newcommand*{\appendixmore}{% \renewcommand*{\othersectionlevelsformat}[1]{% \ifthenelse{\equal{##1}{section}}{% \appendixname~}{}% \csname the##1\endcsname\autodot\enskip} \renewcommand*{\sectionmarkformat}{% \appendixname~\thesection\autodot\enskip} } \end{lstlisting} Sie benötigen dafür außerdem das \Package{ifthen}-Paket\IndexPackage{ifthen} (siehe \cite{package:ifthen}). Die Erklärung zu den umdefinierten Anweisungen finden Sie in \autoref{sec:maincls.structure}, \autopageref{desc:maincls.macro.partformat} und \autopageref{desc:maincls.macro.chaptermark}. \end{Example} % \EndIndex{Cmd}{appendixmore}% \begin{Declaration} \Macro{setbibpreamble}\Parameter{Präambel} \end{Declaration}% \BeginIndex{Cmd}{setbibpreamble}% Mit der Anweisung \Macro{setbibpreamble} kann eine Präambel für das Literaturverzeichnis\Index{Literaturverzeichnis} gesetzt werden. Bedingung dafür ist, dass die Präambel vor der Anweisung zum Setzen des Literaturverzeichnisses gesetzt wird. Dies muss nicht unmittelbar davor sein. Es kann also beispielsweise am Anfang des Dokuments erfolgen. Ebenso wie die Klassenoptionen \Option{bibtotoc} und \Option{bibtotocnumbered} kann die Anweisung aber nur erfolgreich sein, wenn nicht ein Paket geladen wird, das dies durch Umdefinierung der \Environment{thebibliography}-Umgebung verhindert. Obwohl das \Package{natbib}-Paket\IndexPackage{natbib} unautorisiert interne Makros von {\KOMAScript} verwendet, konnte erreicht werden, dass \Macro{setbibpreamble} auch mit der aktuellen Version von \Package{natbib} funktioniert (siehe \cite{package:natbib}). \begin{Example} Sie wollen darauf hinweisen, dass das Literaturverzeichnis nicht in der Reihenfolge der Zitierung im Dokument, sondern alphabetisch sortiert ist. Daher setzen Sie folgende Anweisung: \begin{lstlisting} \setbibpreamble{Die Literaturangaben sind alphabetisch nach den Namen der Autoren sortiert. Bei mehreren Autoren wird nach dem ersten Autor sortiert.\par\bigskip} \end{lstlisting} Die Anweisung \Macro{bigskip}\IndexCmd{bigskip} sorgt dafür, dass zwischen der Präambel und der ersten Literaturangabe ein großer Zwischenraum gesetzt wird.% \end{Example} % \EndIndex{Cmd}{setbibpreamble} \begin{Declaration} \Macro{setindexpreamble}\Parameter{Präambel} \end{Declaration}% \BeginIndex{Cmd}{setindexpreamble}% Analog zur Präambel des Literaturverzeichnisses können Sie auch das Stichwortverzeichnis mit einer Präambel versehen. Dies findet häufig dann Anwendung, wenn es mehr als einen Index gibt oder im Index unterschiedliche Arten der Referenzierung durch unterschiedliche Hervorhebung der Seitenzahlen markiert werden. \begin{Example} Sie haben ein Dokument, in dem Begriffe sowohl definiert als auch verwendet werden. Die Seitenzahlen der Begriffsdefinitionen sind fett dargestellt. Natürlich möchten Sie gerne auf diesen Umstand hinweisen. Also setzen Sie eine entsprechende Präambel für den Index: \begin{lstlisting} \setindexpreamble{Alle \textbf{fett} gedruckten Seitenzahlen sind Referenzen auf die Definition des jeweiligen Begriffs. Demgegenüber geben normal gedruckte Seitenzahlen die Seiten der Verwendung des jeweiligen Begriffs wieder.\par\bigskip} \end{lstlisting} \end{Example} Bitte beachten Sie, dass für die erste Seite des Index der Seitenstil umgeschaltet wird. Welcher Seitenstil hierbei Verwendung findet, ist im Makro \Macro{indexpagestyle} abgelegt (siehe \autoref{sec:maincls.pageStyle}, \autopageref{desc:maincls.macro.titlepagestyle}). Für die Erstellung, Sortierung und Ausgabe des Stichwortverzeichnisses sind die üblichen Standard-\LaTeX-Pakete und Zusatzprogramme zuständig. Von {\KOMAScript} werden genau wie von den Standardklassen lediglich die grundlegenden Makros und Umgebungen dafür zur Verfügung gestellt. % \EndIndex{Cmd}{setindexpreamble}% \section{Obsoletes} \label{sec:maincls.obsolete} \begin{Explain} In diesem Abschnitt finden Sie Anweisungen, die der Anwender nicht mehr verwenden sollte. Diese Anweisungen waren in früheren Versionen von \KOMAScript{} zu finden und ihre Benutzung war dokumentiert. In der aktuellen Version von \KOMAScript{} können sie aus Gründen der Kompatibilität noch immer in gleicher Weise verwendet werden. Es existieren jedoch neue Mechanismen oder Benutzerschnittstellen, die stattdessen benutzt werden sollten. Dokumentiert sind die veralteten Anweisungen hier nur, damit es dem Anwender leichter fällt, alte Dokumente zu verstehen. Darüber hinaus steht es Paketautoren frei, weiterhin diese Makros zu verwenden. \begin{Declaration} \Macro{sectfont} \end{Declaration} \BeginIndex{Cmd}{sectfont}% Dieses Makro beinhaltet die Schriftart, die für alle Überschriften der Gliederung und der Zusammenfassung, den Haupttitel und die oberste Ebene unter \Macro{part} im Inhaltsverzeichnis verwendet wird. Verwenden Sie stattdessen die in \autoref{sec:maincls.font} vorgestellten Anweisungen für das Element \FontElement{disposition}.% % \EndIndex{Cmd}{sectfont}% \begin{Declaration} \Macro{capfont} \\ \Macro{caplabelfont} \end{Declaration} \BeginIndex{Cmd}{capfont}% \BeginIndex{Cmd}{caplabelfont}% Das Makro \Macro{capfont} beinhaltet die Schriftart, die für Tabellenunter"~ oder "~überschriften und Abbildungunterschriften verwendet wird. Das Makro \Macro{caplabelfont} beinhaltet die Schriftart, die davon abweichend für die Bezeichnung und Nummer verwendet wird. Verwenden Sie stattdessen die in \autoref{sec:maincls.font} vorgestellten Anweisungen für die Elemente \FontElement{caption} und \FontElement{captionlabel}.% % \EndIndex{Cmd}{capfont}% \EndIndex{Cmd}{caplabelfont}% \begin{Declaration} \Macro{descfont} \end{Declaration} \BeginIndex{Cmd}{descfont}% Dieses Makro beinhaltet die Schriftart, die für die Stichworte, also die optionalen \Macro{item}-Argumente, einer \Environment{description}-Umgebung verwendet wird. Verwenden Sie stattdessen die in \autoref{sec:maincls.font} vorgestellten Anweisungen für das Element \FontElement{descriptionlabel}. % \EndIndex{Cmd}{descfont}% \end{Explain} %%% Local Variables: %%% mode: latex %%% TeX-master: "../guide" %%% End: