PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Versatz im ToC mit tocstyle



krihaa
29-10-2009, 06:02
Hallo zusammen,

habe hier unten stehendes Beispiel, welches mir an bestimmten Stellen im ToC eine Unstimmigkeit aufwirft. Je nachdem welche Gliederungsebene im Anhang definiert ist, ergibt sich im ToC beim 1. Kapitel ein Versatz.
Beispiel: Wenn eine section im Appendix vorhanden ist, entsteht nach genügendem Kompilieren (habe definitiv oft genug kompiliert!) ein Versatz zwischen "Überschrift auf Ebene 1" und dem darunter stehenden "1.1.1.". Ist im Appendix eine subsection vorhanden, so ergibt sich der Versatz zwischen "Überschrift auf Ebene 2" und "1.1.1.1.".
Ich habe versucht das Problem in tocstyle.sty zu orten, allerdings fehlt mir dafür ein wenig das tiefere Verständnis und das Know-How.
Wäre nett, wenn mir jemand sagen könnte, ob das ein Bug/Feature oder nur meine Inkompetenz ist und wie man es evtl. beheben könnte.

Danke und Gruß
Kristian

\listfiles
\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage[tocindentauto,tocgraduated]{tocstyle}
\usetocstyle{KOMAlike}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}

\begin{document}
\tableofcontents
\Blinddocument
\appendix
\chapter{asdf}
\section{asdf}
%\subsection{asdf}
\end{document}
Edit: Eben noch ein Komplett-Update gemacht und KOMA-Script 3.04a installiert. Problem besteht weiter.

lockstep
29-10-2009, 13:45
Sieht auch für mich aus wie ein Bug. Hängt möglicherweise mit einem bekannten tocstyle-Bug zusammen, bei dem manche unnummerierte Verzeichniseinträge bei Verwendung der (standardmäßig eingestellten) Option tocindentauto falsch eingezogen werden.

Als kurzfristige Abhilfe, wenn du weiterhin die Formatierungsmöglichkeiten von tocstyle nutzen möchtest, schlage ich das Ersetzen der Option tocindentauto durch tocindentmanual vor. Das bedeutet nicht, dass du die Einzüge manuell angeben musst; tocstyle schaltet damit lediglich auf voreingestellte (von deinem Dokumentinhalt unabhängige) Einzüge um. Diese sind meist etwas großzügiger, aber dafür konsistent.

lockstep

krihaa
29-10-2009, 19:50
Vielen Dank,

das hilft mir erst mal weiter, auch wenn der Abstand zwischen der Gliederungsnummer und der Überschrift nun doch schon recht groß ist. Aber immerhin konsistent. ;)
Werde Markus mal ne e-mail schreiben mit dem Hinweis, auch auf die Gefahr hin, dass dieses Problem vielleicht durch die von dir schon angemerkten Fehler verursacht wird und mein Beitrag damit redundant ist.

Gruß
Kristian

lockstep
29-10-2009, 22:43
das hilft mir erst mal weiter, auch wenn der Abstand zwischen der Gliederungsnummer und der Überschrift nun doch schon recht groß ist. Aber immerhin konsistent. ;)


Ich sehe, dein ästhetisches Empfinden ist gestört. Da ich das nachfühlen kann, habe ich mich noch etwas genauer im Code umgesehen. ;)

Die Option tocindentmanual scheint zu bewirken, dass tocstyle gar nichts in Bezug auf Einzüge tut. Genauer gesagt, es lässt die Standardabstände - die in der Dokumentklasse voreingestellt sind - unverändert. Nehmen wir also die entsprechenden Codezeilen aus scrbook (die im übrigen mit denen aus book ident sind) und schrauben wir ein bisschen an den Abständen.



\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage{blindtext}

\makeatletter
\renewcommand*\l@section{\bprot@dottedtocline{1}{1 .5em}{2.2em}}% statt 1.5em/2.3em
\renewcommand*\l@subsection{\bprot@dottedtocline{2 }{3.7em}{3.0em}}% statt 3.8em/3.2em
\renewcommand*\l@subsubsection{\bprot@dottedtoclin e{3}{6.7em}{3.8em}}% statt 7.0em/4.1em
\makeatother

\usepackage[tocindentmanual,tocgraduated]{tocstyle}
\usetocstyle{KOMAlike}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}

\begin{document}
\tableofcontents
\Blinddocument
\appendix
\chapter{asdf}
\section{asdf}
\subsection{asdf}
\end{document}


(Die 1.5em in l@section habe ich deswegen nicht angerührt, weil sie auch in der - nicht ganz so einfach abzuändernden - Definition von l@chapter vorkommen.)

Das Ergebnis ist hoffentlich in deinem Sinne. Warnhinweis: Wenn in irgendeiner Gliederungsebene eine zweistellige Zahl vorkommt, wirst du dir die größeren Abstände zurückwünschen.

lockstep