In umfangreicheren Inhaltsverzeichnissen passiert es mir immer wieder, dass auf einer Seite lediglich die Kapitelbezeichnug als oberste Ebene am Ende einer Seite auftaucht und die Angabe der darin enthaltenen Abschnitte und Unterabschnitte auf die nächste Seite umbricht. Auch ein Umbrechen einer Angabe des letzten (Unter-)Abschnitts eines Kapitels auf die nächste Seite tritt gelegentlich auf, sodass dieses "Hurenkind" (bzw. politisch korrekt diese Waise) dort alleine auftaucht.

Kann man das unterbinden?

gefragt 14 Okt '15, 21:16

feynman's gravatar image

feynman
1.0k132937
Akzeptiert-Rate: 23%

Wo ist das zugehörige VM? Ich frage, weil beispielsweise KOMA-Script einen Seitenumbruch zwischen einem Kapiteleintrag und einem Abschnittseintrag oder einem Abschnittseintrag und einem Unterabschnittseintrag etc. verhindert. Nur wenn man auf eine frühere Version zurückschaltet, die das noch nicht konnte, gibt es ggf. an diesen Stellen einen Umbruch oder natürlich, wenn man ein Paket lädt, das sich in die Verzeichnisse einmischt, ohne die volle Funktionalität selbst bereit zu stellen.

(14 Okt '15, 21:58) saputello

Die Standard-Klassen erlauben normalerweise keinen Seitenumbruch zwischen einem Eintrag für Abschnitte und dem ersten Eintrag für einen Unterabschnitt:

Open in Online-Editor
\documentclass{article}
\usepackage{mwe}
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\blinddocument
\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext

\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\end{document}

Kein Schusterjunge bei den Standardklassen

Wie man in der Abbildung hoffentlich erkennen kann, würde hier der Eintrag für den letzten Abschnitt noch auf die erste Seite des Inhaltsverzeichnisses passen. Trotzdem wird er mit dem Unterabschnitt auf die zweite umbrochen. Entsprechendes gilt auch bei report oder book für die oberen Ebenen.

Bei den KOMA-Script-Klassen gilt das entsprechend auch für die tieferen Ebenen:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{mwe}
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\blinddocument
\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsubsection{Unteunterrabschnitt}
\blindtext
\subsubsection{Unterunterabschnitt}
\blindtext

\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsubsection{Unterunterabschnitt}
\blindtext

\end{document}

Kein Schusterjunge mit KOMA-Script-Klassen

Hier kann man sehr deutlich erkennen, dass die unmittelbar aufeinander folgenden Einträge für Abschnitt, Unterabschnitt und Unterunterabschnitt zusammengehalten werden und dadurch der Umbruch deutlich früher erfolgt als zwingend notwendig.

Erst, wenn man auf eine frühe KOMA-Script-Version zurückschaltet, indem man entweder eine veraltete Option verwendet oder dies bewusst mit Option version erzwingt, wird aus Kompatibilitätsgründen diese Eigenschaft der KOMA-Script-Klassen abgeschaltet:

Open in Online-Editor
\documentclass[version=first]{scrartcl}
\usepackage{mwe}
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\blinddocument
\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsubsection{Unteunterrabschnitt}
\blindtext
\subsubsection{Unterunterabschnitt}
\blindtext

\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsubsection{Unterunterabschnitt}
\blindtext

\end{document}

KOMA-Script mit Kompatibilität zu Uraltversionen

Ich denke der Unterschied bei dieser Abbildung zur vorherigen ist klar zu erkennen.

Die Lösung für die Schusterjungen, die ja in Wirklichkeit gar keine sind, erhält man also normalerweise automatisch, außer man fordert explizit Kompatibilität zu einer KOMA-Script-Version, bei der das noch anders war.

Leider gibt es Pakete wie tocloft, die genau das nicht beherrschen. Wenn man also dieses Problem nicht haben will, sollte man solche Pakete nicht verwenden. Das experimentelle KOMA-Script-Paket tocstyle und das Paket etoc beherrschen dieses Feature jedoch ebenfalls.

Da Inhaltsverzeichniseinträge eigentlich immer eine volle Zeile darstellen, sind die angeblichen Hurenkinder in Wirklichkeit ohnehin keine. Wenn Du die trotzdem verhindern willst, musst Du manuell eingreifen, indem Du beispielsweise per

Open in Online-Editor
\addtocontents{toc}{\protect\pagebreak}

an passender Stelle im Dokument – meist unmittelbar vor oder hinter einer Überschrift – einen harten Umbruch ins Inhaltsverzeichnis einbaust, damit früher umbrochen wird, oder mit

Open in Online-Editor
 \addtocontents{toc}{\protect\enlargethispage{\protect\baselineskip}}

eine Verlängerung der entsprechenden Inhaltsverzeichnisseite, damit später umbrochen wird:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{mwe}
\usepackage{showframe}
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\blinddocument
\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsubsection{Unteunterrabschnitt}
\blindtext

\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsubsection{Unterunterabschnitt}
\blindtext

\addtocontents{toc}{\protect\enlargethispage{\protect\baselineskip}}
\subsubsection{Unterunterabschnitt}
\blindtext

\end{document}

Beispiel für klzzwxh:0013nlargethispage im Inhaltsverzeichnis

Wie im Ergebnis zu erkennen ist, wird hier die erste Seite des Inhaltsverzeichnisses so weit unter den eigentlichen unteren Rand des Textbereichs hinaus verlängert, dass die eine Zeile zusätzlich ausgegeben werden kann. Im konkreten Fall ist diese Lösung einem Umbruch noch vor dem letzten Abschnitt vermutlich vorzuziehen. Zum Vergleich will ich aber auch diesen noch zeigen:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{mwe}
\usepackage{showframe}
\begin{document}
\tableofcontents
\blinddocument
\blinddocument
\blinddocument
\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsubsection{Unteunterrabschnitt}
\blindtext

\addtocontents{toc}{\protect\pagebreak}
\section{Abschnitt}
\blindtext
\subsection{Unterabschnitt}
\blindtext
\subsubsection{Unterunterabschnitt}
\blindtext

\subsubsection{Unterunterabschnitt}
\blindtext

\end{document}

Beispiel für klzzwxh:0015agebreak im Inhaltsverzeichnis!

Permanenter link

beantwortet 14 Okt '15, 22:19

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 15 Okt '15, 08:28

Toller Erklärung! Merci

(15 Okt '15, 12:58) dzaic
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×78
×3
×2

gestellte Frage: 14 Okt '15, 21:16

Frage wurde gesehen: 11,626 Mal

zuletzt geändert: 15 Okt '15, 12:58