
Basierend auf der FrageKOMA-script-Listen und LOF haben ungleichen Platz unter der ÜberschriftIch habe das Beispiel um ein TOC erweitert. Ich verwende in meinem Dokument das etoc-Paket und die KOMA-Option parskip=half
ändert den vertikalen Abstand zwischen dem TOC-Kapiteltitel und den TOC-Einträgen. Der Abstand von LOF, LOF ... bleibt gleich. Wie kann man diese Inkompatibilität vermeiden? Die Bilder sollten das Problem verdeutlichen. Vielen Dank im Voraus!
Edit: Ich kompiliere mit xelatex
MWE:
\documentclass[
10pt,
oneside,
listof=totoc,
bibliography=totoc,
]{scrbook}
\usepackage{scrhack}
\usepackage{setspace}
\usepackage{graphicx}
\usepackage{listings}
\usepackage{etoc}
\onehalfspacing
\KOMAoptions{parskip=half}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings
\chapter{A Chapter}
\begin{figure}
\centering\includegraphics[width=0.5\linewidth]{example-image}
\caption{First figure}
\end{figure}
\begin{table}
\caption{First table}
\centering
\begin{tabular}[width=0.5\linewidth]{ccc}
Cell 1 & Cell 2 & Cell 3
\end{tabular}
\end{table}
\begin{lstlisting}[caption={First listing}]
Some code
\end{lstlisting}
\end{document}
Antwort1
tocbasic
In den Listen, die von (lof, lot, lol) gesteuert werden, \parskip
wird ein Final eingefügt, bevor der Absatzabstand ausgeschaltet wird. Diese Einfügung kann deaktiviert werden durch
\doforeachtocfile{\setuptoc{#1}{noparskipfake}}
Allerdings ist dann zwischen der Listenüberschrift und dem ersten Eintrag weniger vertikaler Abstand als zwischen normalen Kapitelüberschriften und normalem Text.
Daher wäre es besser, dies \parskip
vor dem Ausschalten des Absatzabstands zum Inhaltsverzeichnis (toc) hinzuzufügen, das von gesteuert wird etoc
. Dies \etocscrbookstyle
wird von nicht \parskip
berücksichtigt. Sie können jedoch einen Patch verwenden, \etocscrbookstyle
um den entsprechenden Code hinzuzufügen \parskip
(kopiert von tocbasic
):
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\etocscrbookstyle}
{\setlength {\parskip }{\z@ }}
{%
\etoc@Iftocfeature{\@currext}{noparskipfake}{}{%
\ifvmode
\@tempskipa\lastskip
\vskip-\lastskip
\addtolength{\@tempskipa}{\parskip}%
\vskip\@tempskipa
\fi
}%
\setlength {\parskip }{\z@ }%
}{}{\PatchFailed}
\makeatother
\etocstandarddisplaystyle
Beispiel:
\documentclass[
10pt,
oneside,
listof=totoc,
bibliography=totoc,
]{scrbook}
\usepackage{scrhack}
\usepackage{setspace}
\usepackage{graphicx}
\usepackage{listings}
\usepackage{etoc}
\onehalfspacing
\KOMAoptions{parskip=half}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\etocscrbookstyle}
{\setlength {\parskip }{\z@ }}
{%
\etoc@Iftocfeature{\@currext}{noparskipfake}{}{%
\ifvmode
\@tempskipa\lastskip
\vskip-\lastskip
\addtolength{\@tempskipa}{\parskip}%
\vskip\@tempskipa
\fi
}%
\setlength {\parskip }{\z@ }%
}{}{\PatchFailed}
\makeatother
\etocstandarddisplaystyle
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings
\chapter{A Chapter}
Some text
\begin{figure}
\centering\includegraphics[width=0.5\linewidth]{example-image}
\caption{First figure}
\end{figure}
\begin{table}
\caption{First table}
\centering
\begin{tabular}[width=0.5\linewidth]{ccc}
Cell 1 & Cell 2 & Cell 3
\end{tabular}
\end{table}
\begin{lstlisting}[caption={First listing}]
Some code
\end{lstlisting}
\end{document}