Will man lediglich eine vertikale Linie fester Höhe nach der Kapitelnummer, so ist die einfachste Lösung, \chapterformat
entsprechend umzudefinieren:
\documentclass{scrreprt}
\renewcommand*{\chapterformat}{%
\thechapter\autodot\enskip\rule[-\dp\strutbox]{1pt}{\baselineskip}\enskip
}
\usepackage{blindtext}
\begin{document}
\chapter{Lorem ipsum}
\blindtext
\chapter{Lorem ipsum dolor sit amet, consectetur adipisici elit,
sed eiusmod tempor incidunt}
\blindtext
\end{document}
Im Ergebnis erhält man so sowohl bei der einzeiligen Überschrift von Kapitel 1 als auch bei der mehrzeiligen Überschrift von Kapitel 2 eine gleich hohe vertikale Linie nach der Kapitelnummer.
Will man jedoch, dass sich die Tiefe der Linie im Fall von Kapitel 2 auf die gesamte Höhe der mehrzeiligen Überschrift erstreckt, so ist das nicht mehr einfach durch eine Umdefinierung von \chapterformat
zu erreichen, weil man innerhalb von \chapterformat
weder den Text der Überschrift noch dessen Höhe und Tiefe oder die Anzahl der benötigten Zeilen kennt. Hier bietet sich an, stattdessen die Anweisung \chapterlinesformat
umzudefinieren, die sowohl Zugriff auf die (bereits formatierte) Nummer als auch auf den Text bietet:
\documentclass{scrreprt}
\usepackage{tabularx}
\renewcommand*{\chapterformat}{\thechapter\autodot}% Abstand nach \autodot entfernt
\renewcommand*{\chapterlinesformat}[3]{% #1 = chapter, #2 = formatierte Nummer, #3 Text
\IfUseNumber{%
\setlength{\arrayrulewidth}{1pt}%
\begin{tabularx}{\linewidth}{@{}l|>{\raggedright}X@{}}
#2 & #3
\end{tabularx}%
}{#3}% Keine Kapitelnummer
}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\chapter{Lorem ipsum}
\blindtext
\chapter{Lorem ipsum dolor sit amet, consectetur adipisici elit,
sed eiusmod tempor incidunt}
\blindtext
\end{document}
Der Test mit \IfUseNumber
dient dazu, im Falle einer Überschrift ohne Nummer, beispielsweise der des Inhaltsverzeichnisses, lediglich den Text der Überschrift auszugeben. Ohne die Fallunterscheidung würde stattdessen auch in diesem Fall eine Linie links neben dem Text erscheinen. Die tabularx
ist die einfachste Möglichkeit, um die vertikale Linie zu erzeugen und die Spalte mit dem Text automatisch auf die maximale Breite zu setzen. Es sei erwähnt, dass \IfUseNumber
nur innerhalb von Überschriften gültig ist.
Will man eine solche Formatierung für alle Überschriften, kann es hingegen sinnvoll sein, der linken Spalte mit der Nummer ebenfalls eine feste Breite zu geben. Dann kann man die Berechnung der Breite der rechten Spalte auch selbst vornehmen:
\documentclass{scrreprt}
\usepackage{array}
\renewcommand*{\chapterformat}{\thechapter\autodot}% Abstand nach \autodot entfernt
\renewcommand*{\chapterlinesformat}[3]{% #1 = chapter, #2 = formatierte Nummer, #3 Text
\IfUseNumber{%
\setlength{\arrayrulewidth}{1pt}%
\begin{tabular}{@{}>{\raggedleft}p{\numcolwidth}|
>{\raggedright}p{\dimeval{\linewidth-\numcolwidth-2\tabcolsep-\arrayrulewidth}}@{}}
#2 & #3
\end{tabular}%
}{#3}%
}
\renewcommand*{\sectionformat}{\thesection\autodot}
\renewcommand*{\subsectionformat}{\thesubsection\autodot}
\renewcommand*{\subsubsectionformat}{\thesubsubsection\autodot}
\setcounter{secnumdepth}{\subsubsectionnumdepth}
\renewcommand*{\sectionlinesformat}[4]{%
\IfUseNumber{%
\setlength{\arrayrulewidth}{1pt}%
\begin{tabular}{@{}>{\raggedleft}p{\numcolwidth}|%
>{\raggedright}p{\dimeval{\linewidth-\numcolwidth-2\tabcolsep-\arrayrulewidth}}@{}}
#3 & #4
\end{tabular}%
}{\hskip#2#4}%
}
\newlength{\numcolwidth}\setlength{\numcolwidth}{.5in}% für die Nummer reservierte Breite
\usepackage{mwe}
\begin{document}
\tableofcontents
\chapter{Lorem ipsum}
\lipsum[1][1-2]
\section{Nam dui ligula}
\lipsum[2][1-2]
\subsection{Nulla malesuada}
\lipsum[3][1-3]
\subsubsection{Quisque ullamcorper}
\lipsum[4]
\chapter{Lorem ipsum dolor sit amet, consectetur adipisici elit,
sed eiusmod tempor incidunt}
\lipsum[1][1-2]
\section{Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi}
\lipsum[2][1-2]
\subsection{Nulla malesuada porttitor diam. Donec felis erat, congue non,
volutpat at, tincidunt tristique, libero.}
\lipsum[3][1-3]
\subsubsection{Quisque ullamcorper placerat ipsum. Cras nibh. Morbi vel justo
vitae lacus tincidunt ultrices.}
\lipsum[4]
\end{document}