Menu

HowTo_NumbersAtLeftMargin

Wie die Überschriftennummern in den linken Rand ausgerückt werden können

KOMA-Script bietet dem erfahrenden Typografen Möglichkeiten, die auf den ersten Blick nicht zu ahnen sind. So ist es mit Umdefinierung einiger weniger, zudem in der Anleitung dokumentieren, Makros möglich, die Gliederungsnummern so in den linken Rand zu setzen, dass der Text der Gliederungsüberschriften linksbündig mit dem Textbereich abschließt. Dieses Vorgehen ist jedoch nur zu empfehlen, wenn der linke Rand entsprechend breit ist. In der Regel ist dies nur bei einseitigen Dokumenten der Fall.

\documentclass{scrreprt}
\usepackage{blindtext}

% Wie die Überschriftennummern in den linken Rand ausgerückt werden können
% → <https://sourceforge.net/p/koma-script/wiki-de/HowTo_Headings/HowTo_NumbersAtLeftMargin>
% How to print the heading numbers into the left margin
% → <https://sourceforge.net/p/koma-script/wiki-en/HowTo_Headings/HowTo_NumbersAtLeftMargin>

\Ifundefinedorrelax{chapterformat}{}{%
  \renewcommand*{\chapterformat}{\makebox[0pt][r]{\chapappifchapterprefix{\ }\thechapter\autodot\hspace{\marginparsep}}}%
}
\renewcommand*{\sectionformat}{\makebox[0pt][r]{\thesection\autodot\hspace{\marginparsep}}}
\renewcommand*{\subsectionformat}{\makebox[0pt][r]{\thesubsection\autodot\hspace{\marginparsep}}}
\renewcommand*{\subsubsectionformat}{\makebox[0pt][r]{\thesubsubsection\autodot\hspace{\marginparsep}}}

\setcounter{secnumdepth}{\subsubsectionnumdepth}% For demonstration number down to \subsubsections.

\begin{document}
\tableofcontents

\blinddocument
\end{document}

Der Trick bei der hier gezeigten Lösung besteht darin, die Überschriftennummern rechtsbündig in einer Box der angeblichen Breite Null zu setzen. Dadurch wird sie links von der aktuellen Position gesetzt. Solange nicht mit \RedeclareSectionCommand explizit einen Einzug definiert, ist die aktuelle Position bei Ausgabe der Nummer normalerweise der linke Rand des Textbereichs. Am Ende der Ausgabe wird noch ein Abstand von \marginparsep eingefügt. Das ist der Abstand, der normalerweise auch zwischen der Textspalte und Randnotizen eingefügt wird. Natürlich können Anwender stattdessen auch einen beliebigen anderen Abstand wählen.

Die Umdefinierung der Ausgabe der Kapitelnummer, \chapterformat, erfolgt nur dann, wenn die Anweisung zuvor auch definiert war. Mit der im Beispiel verwendeten Klasse scrreprt wäre diese Einschränkung nicht notwendig. Dasselbe gilt für scrbook. Mit scrartcl würde eine Umdefinierung von \chapterformat jedoch zu einem Fehler führen. Durch den Test mit \Ifundefinedorrelax kann der Code aber unverändert auch für scrartcl verwendet werden.

Für Dokumente mit Option chapterprefix=true oder mit Option appendixprefix=true ergibt die hier gezeigte Formatierung keinen Sinn. Die Umdefinierung sollte in diesem Fall unterbleiben.

Theoretisch könnte man die gezeigte Methode auch auf \paragraph und \subparagraph anwenden. Allerdings ist es bei Spitzmarken sehr unüblich, diese überhaupt zu nummerieren und dann womöglich die Nummer noch in den Rand auszurücken. Darüber hinaus werden die Überschriften der Ebene \subparagraph zusätzlich eingezogen, so dass es vollends unsinnig wäre, die Nummer in den Rand zu stellen. Ich rate daher von der Verwendung ähnlicher Definitionen bei diesen beiden Ebenen ab. Alternativ sollte man dann diese Ebenen ebenfalls als freistehende Überschriften statt als Spitzmarken umdefinieren. Dies ist mit \RedeclareSectionCommand einfach möglich.


Related

Wiki (Deutsch): HowTo_Headings
Wiki (Deutsch): HowTo_NumbersAtOuterMargin

MongoDB Logo MongoDB