Sie sind hier

Überschriften am äußeren Rand ausrichten mit Nummer im Rand

Bild von Markus Kohm

Gerade hat mich per E-Mail eine interessante Frage erreicht. Dabei möchte der Anwender sämtliche Überschriften am äußeren Rand ausgerichtet haben, wobei die Gliederungsnummern im Rand stehen sollen. Ausnahme sollen offenbar die Kapitelüberschriften sein. Diese werden zweizeilig gesetzt, weshalb die Nummern nicht im Rand stehen sollen.

Nachtrag: Wie ich nun erfahren habe, wurde die Frage ursprünglich auf TeX.Stackexchange gestellt.

Bild von Markus Kohm

Mit dem Paket marginote lässt sich das ganz einfach lösen:

\documentclass[chapterprefix]{scrbook}
\usepackage{marginnote}
\usepackage{mwe}
\renewcommand*{\raggedsection}{\ifthispageodd{\raggedleft}{\raggedright}}
\renewcommand*{\sectionformat}{%
  \marginnote{%
    \usekomafont{disposition}{\usekomafont{section}{%
        \thesection\autodot}}}}
\renewcommand*{\subsectionformat}{%
  \marginnote{%
    \usekomafont{disposition}{\usekomafont{subsection}{%
        \thesubsection\autodot}}}}
\renewcommand*{\subsubsectionformat}{%
  \marginnote{%
    \usekomafont{disposition}{\usekomafont{subsubsection}{%
        \thesubsubsection\autodot}}}}
\begin{document}
\blinddocument
\end{document}

Es ist jedoch zu beachten, dass im ersten Lauf die Gliederungsnummern nicht erscheinen. Es sind ggf. auch mehrere LaTeX-Läufe notwendig, damit die Nummer nach einer Änderung im richtigen Rand steht und die Überschriften korrekt ausgerichtet sind. Dafür benötigt diese Lösung nicht die neuste KOMA-Script-Version.

Bild von Markus Kohm

Seit KOMA-Script 3.19 geht das einfach über die Umdefinierung von \sectionlinesformat:

\documentclass[chapterprefix]{scrbook}
\usepackage{mwe}
\renewcommand*{\raggedsection}{\ifthispageodd{\raggedleft}{\raggedright}}
\renewcommand*{\sectionlinesformat}[4]{%
  \ifthispagewasodd
    #4\makebox[0pt][l]{\hskip\marginparsep #3}%
  \else
    \makebox[0pt][r]{#3\hskip\marginparsep}#4%
  \fi
}
\renewcommand*{\sectionformat}{\thesection\autodot}
\renewcommand*{\subsectionformat}{\thesubsection\autodot}
\renewcommand*{\subsubsectionformat}{\thesubsubsection\autodot}
\begin{document}
\blinddocument
\end{document}

Die Umdefinierung von \sectionformat, \subsectionformat und \subsubsectionformat ist dabei notwendig, weil sonst an die Ausgabe der Nummer bereits ein horizontaler Abstand (\enskip) angehängt wird,

Auch dabei werden mehrere LaTeX-Läufe benötigt, um nach Änderungen die Ausrichtung der Überschrift korrekt am äußeren Rand zu haben.

Für mehrzeilige Überschriften müsste man die Lösung auf ungeraden Seiten übrigens noch um eine \parbox erweitern, weil sonst die Nummer in der letzten Zeile der Überschrift steht, statt in der ersten. Das überlasse ich den Anwendern als Übung.

Bild von Markus Kohm

Es sei darauf hingewiesen, dass aufgrund einer angeblich sehr weit verbreiteten Konvention ab KOMA-Script 3.28 \ifthispageodd obsolet ist und daher ziemlich genau 18 Jahre nach der Erstimplementierung der Anweisung in KOMA-Script 2.8q durch \Ifthispageodd zu ersetzen ist.

Comments for "Überschriften am äußeren Rand ausrichten mit Nummer im Rand" abonnieren