Sie sind hier

Kann man bei KOMA-Script alle Überschrifte mit einer Präfixzeile setzen?

Bild von Markus Kohm

Wieder einmal hat mich eine Frage erreicht, die ich euch nicht vorenthalten will. Dieses Mal sucht der Fragesteller nach einer einfachen Möglichkeit, alle Überschriften von KOMA-Script mit einer Präfixzeile zu versehen. Dabei soll in der Präfixzeile nur die Nummer stehen, während darunter dann der Text steht. Zwischen den beiden Zeilen soll kein Abstand sein.

Wie so oft wurde auch gleich vermutet, dass das mit KOMA-Script nicht ginge oder sehr kompliziert sei. Wollen mal sehen …

forum: 
Bild von Markus Kohm

Ab KOMA-Script 3.19 sollte folgendes funktionieren:

\listfiles
\documentclass[chapterprefix]{scrreprt}
\renewcommand*{\chapterformat}{\thechapter\autodot}
\RedeclareSectionCommand[innerskip=0pt]{chapter}
\renewcommand*{\sectionlinesformat}[4]{%
  \hspace*{#2}%
  \parbox[t]{\dimexpr\linewidth-#2\relax}{\raggedsection
    \ifstr{#3}{}{}{#3\\}%
    #4}%
}
\usepackage{mwe}
\begin{document}
\Blinddocument
\end{document}

Dabei wird bei mehrzeiligen Überschriften im Falle eines definierten Einzugs, nicht nur die Nummer, sondern die gesamte Überschrift eingezogen. Will man, dass in diesem Fall nur die Nummer eingezogen wird, so gelingt das bereits mit:

\documentclass[chapterprefix]{scrreprt}
\renewcommand*{\chapterformat}{\thechapter\autodot}
\RedeclareSectionCommand[innerskip=0pt]{chapter}
\renewcommand*{\sectionlinesformat}[4]{%
  \hskip #2#3\\*
  #4%
}
\usepackage{mwe}
\begin{document}
\Blinddocument
\end{document}

Den Unterschied zeigt:

\listfiles
\documentclass[chapterprefix]{scrreprt}
\renewcommand*{\chapterformat}{\thechapter\autodot}
\RedeclareSectionCommand[innerskip=0pt]{chapter}
\renewcommand*{\sectionlinesformat}[4]{%
  \hskip #2#3\\*
  #4%
}
\RedeclareSectionCommand[indent=2em]{section}
\usepackage{mwe}
\begin{document}
\chapter{Unterschiede}
Bei den folgenden beiden Abschnitten zeigen sich die Unterschiede der
Definition, die nur mit Einzug (siehe
\verb|\RedeclareSectionCommand[indent=2em]{section}|) eine Rolle spielen. Ich
empfehle die etwas kompliziertere Form.
\section{Das ist ein Abschnitt bei dem dieser Text mehr als eine Zeile hat}
\blindtext
\renewcommand*{\sectionlinesformat}[4]{%
  \hspace*{#2}%
  \parbox[t]{\dimexpr\linewidth-#2\relax}{\raggedsection
    \ifstr{#3}{}{}{#3\\}%
    #4}%
}
\section{Das ist ein Abschnitt bei dem dieser Text mehr als eine Zeile hat}
\blindtext
\chapter{Kein Unterschied}
Ohne Einzug ergeben beide Definitionen das gleiche Ergebnis:
\RedeclareSectionCommand[indent=0em]{section}
\renewcommand*{\sectionlinesformat}[4]{%
  \interlinepenalty10000\hskip #2#3\\*
  #4%
}
\section{Das ist ein Abschnitt bei dem dieser Text mehr als eine Zeile hat}
\blindtext
\renewcommand*{\sectionlinesformat}[4]{%
  \hspace*{#2}%
  \parbox[t]{\dimexpr\linewidth-#2\relax}{\raggedsection
    \ifstr{#3}{}{}{#3\\}%
    #4}%
}
\section{Das ist ein Abschnitt bei dem dieser Text mehr als eine Zeile hat}
\blindtext
 
\Blinddocument
\end{document}
Comments for "Kann man bei KOMA-Script alle Überschrifte mit einer Präfixzeile setzen?" abonnieren