Vertikale Abstände von Gliederungsebenen mit etoc

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


mofehl
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 62
Registriert: Mi 27. Aug 2014, 13:07

Vertikale Abstände von Gliederungsebenen mit etoc

Beitrag von mofehl »

Moin,

ich habe folgendes Problem. Das Paket etoc bietet mit seinem \etocsetstyle Befehl die Möglichkeit, jeweils Befehle auszuführen, wenn nach der aktuellen Gliederungsebene eine höhere kommt. Ich nutze dies, um die vertikalen Abstände zwischen den Ebenen einzustellen. Leider reicht die Funktion des Befehls \etocsetstyle nicht aus, um meine Vorstellungen zu verwirklichen. In der Dokumentation bin ich nicht fündig geworden, weshalb ich hoffe, dass mir dieses Forum helfen kann.

Die folgende Beschreibung bezieht sich aufs Inhaltsverzeichnis.

- Ich möchte, dass zwischen Kapiteleinträgen, sofern sie keine Abschnitte beherbergen, der Abstand von 3ex kommt.

- Falls ein Kapitel doch Abschnitte enthält, soll nach dem Kapiteleintrag nicht 3ex, sondern nur 1ex eingefügt werden.

- Falls Abschnitte Unterabschnitte beherbergen, soll nach dem letzten Unterabschnitt des jeweiligen übergeordneten Abschnitts zum darauffolgenden Abschnitt ein Abstand von 2ex eingefügt werden.

- Folgt nach dem letzten Unterabschnitt jedoch kein weiterer Abschnitt, sondern das nächste Kapitel, soll wieder nur der Abstand von 3ex eingefügt werden.

Das folgende MWE verdeutlicht mein Problem. Die ersten drei Punkte lassen sich verwirklichen, nicht aber der letzte. Nach dem letzten Unterabschnitt folgt ein Kapitel und es wird der Abstand von 5ex eingefügt, also die Summe der 2ex aus subsection plus 3ex aus section. Wer weiß eine Lösung?
\documentclass{scrreprt}

\usepackage{etoc}

\etocsetstyle{chapter}
	{}
	{}
	{\makebox[3em][l]{\etocnumber}\etocname\par\vspace{3ex}}
	{}

\etocsetstyle{section}
	{\vspace{-2ex}} % Muss von den 3ex aus Chapter abgezogen werden
	{}
	{\makebox[3em][l]{\etocnumber}\etocname\par}
	{\vspace{3ex}} % 3ex falls danach Chapter kommt

\etocsetstyle{subsection}
	{\vspace{0ex}}
	{}
	{\makebox[3em][l]{\etocnumber}\etocname\par}
	{\vspace{2ex}} % 2ex falls danach Section kommt

\begin{document}

\tableofcontents

\chapter{Kapitel}
\chapter{Kapitel}
\section{Sektion}
\section{Sektion}
\chapter{Kapitel}
\section{Sektion}
\subsection{Untersektion}
\subsection{Untersektion}
\section{Sektion}
\subsection{Untersektion}
\subsection{Untersektion}
\chapter{Kapitel}

\end{document}
Bild
Dateianhänge
Problem mit etoc.png
Problem mit etoc.png (22.88 KiB) 1381 mal betrachtet

Noch so einer

Beitrag von Noch so einer »

\documentclass{scrreprt}

\usepackage{etoc}

\etocsetstyle{chapter}
   {}
   {}
   {\makebox[3em][l]{\etocnumber}\etocname\par\vspace{3ex}}
   {}

\etocsetstyle{section}
   {\vspace{-2ex}} % Muss von den 3ex aus Chapter abgezogen werden
   {}
   {\makebox[3em][l]{\etocnumber}\etocname\par}
   {\addvspace{3ex}} % 3ex falls danach Chapter kommt

\etocsetstyle{subsection}
   {\vspace{0ex}}
   {}
   {\makebox[3em][l]{\etocnumber}\etocname\par}
   {\addvspace{2ex}} % 2ex falls danach Section kommt

\begin{document}

\tableofcontents

\chapter{Kapitel}
\chapter{Kapitel}
\section{Sektion}
\section{Sektion}
\chapter{Kapitel}
\section{Sektion}
\subsection{Untersektion}
\subsection{Untersektion}
\section{Sektion}
\subsection{Untersektion}
\subsection{Untersektion}
\chapter{Kapitel}

\end{document}
Zum Unterschied zwischen \vspace und \addvspace siehe: Was ist der Unterschied zwischen \vspace und \addvspace?

mofehl
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 62
Registriert: Mi 27. Aug 2014, 13:07

Beitrag von mofehl »

Allerbesten Dank, es funktioniert einwandfrei.

Antworten