Hallo allerseits,
und zwar benötige ich in einem Inhaltsverzeichnis Abschnitte, bei denen Einträge innerhalb eines Absatzes nacheinander erfolgen.. Ich dachte schon, so etwas Spezielles müsste ich mir selbst basteln. Aber dann ist mir klar geworden, dass toctext
scheinbar genau dies tut!
Prinzipiell funktioniert es auch. Jedoch stoße ich auf mehrere Probleme:
Zunächst einmal wird der tocbeforeskip
des nachfolgenden Eintrags aus irgendeinem Grund komplett verschluckt.. - Ist das ein Bug oder mache ich etwas falsch?!
Und dann hätte ich gerne vor und nach dem toctext
-Absatz einen Abstand von .25\baselineksip
. Ich habe das über afterpar, onstartfirstentry und onendlastentry
und mit \vspace, \vskip und \addvspace
in allen möglichen Kombinationen versucht, aber das einzige was funktioniert, ist das Einfügen eine Abstandes nach dem Absatz mittels afterpar
... - Stehe ich auf dem Schlauch?
Hier ist mein Minimalbeispiel:
\documentclass[a5paper]{scrbook} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[ngerman]{babel} \usepackage{hyperref} \setcounter{tocdepth}{5} \DeclareTOCStyleEntry[level=5,indent=3em,rightindent=3em,pagenumberformat={},prepagenumber=\hspace{.5em},onendentry=\hspace{.5em} --\hspace{.5em}]{toctext}{preface} \newcommand*{\tocpreface}[1]{% \phantomsection% \addtocentrydefault{preface}{}{#1}% } \begin{document} \tableofcontents \addchap{Eine sehr lange Einleitung} \tocpreface{Interessantes Thema} \tocpreface{auch sehr spannend} \tocpreface{diese Sache ebenfalls} \part{Erstes Thema}% tocbeforeskip wird hier komplett verschluckt \part{Zweites Thema}% hier der normale tocbeforeskip \end{document}
Bug
Ich kann schon einmal bestätigen, dass das Verschlucken des vertikalen Abstandes ein Bug in KOMA-Script 3.30 ist.
Kein Problem
Es ist doch als Anwenderin immer schön, wenn es mal nicht am eigenen Unvermögen sondern an der Software liegt.. ;-)
Ich hatte auch gesehen, dass
toctext
ein, im Vergleich, noch relativ neues Feature ist. Und es wird sicherlich auch nicht übermäßig oft angewendet. Daher hielt ich es für nicht so unwahrscheinlich, dass es vielleicht tatsächlich noch nicht ganz ausgereift bzw. fehlerfrei ist, weshalb ich die Frage auch direkt hier in diesem Forum gestellt habe..Vertikale Abstand vor dem toctext-Absatz
An der Stelle ich ein Fehler in der Anleitung. Tatsächlich muss nicht der Anwender sicherstellen, dass
onstartfirstentry
den Absatz nicht bereits beginnt, er muss vielmehr beachten, dassonstartfirstentry
den Absatz bereits beginnt und er ihn (genau wie beionstartentry
nicht beenden darf. Damit darf man darüber auch keinen vertikalen Abstand per\vskip
,\vspace
oder\addvspace
einfügen.Eine einfache Möglichkeit, um vertikalen Abstand am Anfang des Absatzes einzufügen, ist eine unsichtbare Stütze:
Prinzipiell könnte ich an der Stelle aber auch zusätzlich Option
beforeskip
, die schon vom Stiltocline
bekannt ist, unterstützen. Mir ist schlicht im Traum nicht eingefallen, dass das jemand haben wollen könnte.Tippfehler
Vielen Dank für die Erläuterungen.
Es geht natürlich um vertikale Abstände. Die Befehle für horizontale Abstände waren quasi Tippfehler. Ich habe die gerade in der Frage korrigiert.
Ja, das wäre natürlich "ein Traum" gewesen, wenn man den Abstand einfach über
beforeskip
hätte einfügen können.. ;-)Insofern sich das als kleine Verbesserung ansehen lässt und nicht als neues Feature betrachtet werden muss (von welchen Du, wenn ich mich richtig erinnere, Ende letzten Jahres einmal angekündigt hattest, das solche nicht mehr hinzukommen werden), wäre es gar nicht so schlecht, wenn sich dieser einfache und bekannte Befehl dafür verwenden ließe.
Zu spät
Der Wunsch kommt zu spät. Ich habe das nämlich schon um 12:54 Uhr dokumentiert und ins Repository hochgeladen. ;-)
Ich habe nur noch keine neue Prerelease erstellt, weil ich an einem anderen Feature noch etwas ändern will.
Vertikaler Abstand nach dem Absatz
Hier ist hingegen die Anleitung korrekt und eindeutig. Dass man mit
\vskip
keinen vertikalen Abstand peronendlastentry
einfügen darf, geht schon darauf hervor, dass man peronendlastentry
den Absatz keinesfalls beenden darf. Genau das macht\vskip
aber.\addvspace
scheidet schon deshalb aus, weil man das im horizontalen Modus ohnehin nicht verwenden darf.\vspace
geht aber. Da sich ein Abstand mit\vspace
vor\addvspace
verbirgt, addiert er sich aber in Deinem Beispiel zu dem Abstand zum nachfolgenden Kapiteleintrag (wenn man eine Version ohne den genannten Bug verwendet).Wenn Du nicht willst, dass sich der Abstand nach dem Absatz und der Abstand vor dem nächsten Eintrag addieren, muss in der Tat
verwendet werden. Dann wird der Befehl zwar nach dem Absatz für jeden einzelnen Eintrag im Absatz ausgeführt, da sich der immer gleiche Abstand bei
\addvspace
aber nicht addiert, führt das trotzdem zum gewünschten Ergebnis.