Hallo,
in einem Inhaltsverzeichnis ohne Einzügen ist es
erforderlich, dass die Nummerierung jedes Eintrags sich aus der Nummer
des chapter, der section, der subsection zusammensetzt,
z.B. 1.1.2. für die zweite subsection der ersten section im ersten
Kapitel.
In einem Inhaltsverzeichnis mit Einzügen (tocgraduaded) ist
die Wiederholung der Ziffern der höheren Gliederungsebenen jedoch
redundant, weil die Einzüge (also die Position jedes Eintrags) ja auch
Information darstellen. Ein Inhaltsverzeichnis darf dann so aussehen:
Einleitung 1. Trift und Trat 1. Mark 2. Almende Zwischenfazit 2. Ein Pferd besitzen 1. In Rom mit Recht 2. Voll Grimm Zwischenfazit Schluss
Ein fertige Lösung habe ich dafür nicht gefunden. Auch das
tocstyle-Paket hat dafür - wenn ich mich nicht ganz täusche - keine
Lösung.
Wie bekomme ich das hin?
Was ich bisher versucht habe:
Weil ich für label / ref die aus mehreren Ziffern zusammengesetzten
Gliederungsnummerierung noch benötige, scheidet die Redefinition von
\thechapter
¹, \thesection
¹ usw. aus. Stattdessen habe ich die Macros
\addsectiontocentry
¹, \addsubsectiontocentry
¹ usw. redefiniert und dort
nicht die als Parameter übergebenen \thesection
¹, \thesubsection
¹
usw. weitergereicht, sondern neue Macros \mysection
¹, \mysubsection
¹,
welche die Ziffer der höheren Gliederungsebenen nicht enthalten.
Das klappt auch soweit. Ein Problem tritt nur noch bei der
Verwendung von \addsec
¹ auf, das einen nicht-numerieren Eintrag
erzeugen soll. Ich habe versucht, bei der Redefinition von
\addsection
¹. \addsubsection
¹ mit \ifnumbered
¹, das ich in der
KOMA-script-Anleitung gefunden habe, einen Test auszuführen. Aber das
bleibt ohne Erfolg. Wie komme ich ans Ziel?
Wenn ich folgendes Minimalbeispiel kompiliere, steht vor den Einträgen
"Zwischenfazit" noch eine Ziffer (und zwar die Ziffer des vorigen
Eintrags, weil der Zähler \c@section
¹ richtigerweise nicht weitergezählt
wird.)
Um die Funktion von \ifnumbered
¹ zu verstehen, steht das auch im
Dokumentkörper. Man sieht daran, dass es nicht zum Erfolg führt, da im
kompilierten Dokument immer "JA" ausgegeben wird.
\documentclass{scrbook} \usepackage{ngerman} \usepackage{blindtext} \usepackage[% tocgraduated,% Einzüge ]{tocstyle} \makeatletter % new helper macros without \thechapter in front % \newcommand*\mysection{% \@arabic\c@section } \newcommand*\mysubsection{% \@arabic\c@subsection } % TOC Entries \renewcommand*{\addsectiontocentry}[2]{% \addtocentrydefault{section}{\ifnumbered{section}{\mysection}{}}{#2}% } % alternative Definition \renewcommand*{\addsubsectiontocentry}[2]{% \protect\ifnumbered{subsection}{% \addtocentrydefault{subsection}{\mysubsection}{#2}% }{% falls \addsubsec definiert wäre \addtocentrydefault{subsection}{}{#2}% }% } \makeatother \begin{document} \tableofcontents \addchap{Einleitung} \ifnumbered{chapter}{JA}{NEIN} \blindtext \chapter{Trift und Trat} \ifnumbered{chapter}{JA}{NEIN} \section{Mark} \ifnumbered{section}{JA}{NEIN} \Blindtext \section{Almende} \ifnumbered{section}{JA}{NEIN} \Blindtext \addsec{Zwischenfazit} \ifnumbered{section}{JA}{NEIN} \Blindtext \chapter{Ein Pferd besitzen} \section{In Rom mit Recht} \Blindtext \section{Voll Grimm} \blindtext \addsec{Zwischenfazit} \Blindtext \addchap{Schluss} \end{document}
Grüße
clueck
[Admin-Edit:]
Eine vollständige Nummerierung
Eine vollständige Nummerierung im Inhaltsverzeichnis empfinde ich auch bei vorhandenen Einzügen als sinnvoll. Mich würde es eher irritieren, wenn die Nummerierung im Inhaltsverzeichnis nicht mit der im Dokument übereinstimmt oder bei einem längeren Inhaltsverzeichnis vielleicht erst zurückgeblättert werden muss, um die vollständige Gliederungsnummer eines Abschnittes oder gar Unterabschnittes zu bekommen.
Wenn Du jedoch
\addsectiontocentry
unbedingt umdefinieren möchtest, dann teste einfach ob das erste Argument leer ist. Wenn ja, rufe\addsectiontocentry
ebenfalls mit leerem ersten Argument auf. Wenn nein, übergib Dein neu definiertes Makro an diesen Befehl:Insgesamt also etwas wie
Der Befehl
\ifnumbered{section}{JA}{NEIN}
liefert in Deinem Beispiel immer JA, weil der Zählersecnumdepth
nicht kleiner als die im Befehl\sectionnumdepth
gespeicherte Nummer für die Gliederungsebenesection
ist. In der KOMA-Script Anleitung ist auch ausdrücklich erwähnt, dass bei Verwendung von\addsecmark
die Nummerierung der Abschnitte über diesen Test abgeschaltet wird, weil\addsecmark
den Zählersecnumdepth
lokal auf -1 setzt.Gruß
Elke
Vielen Dank!
Hallo Elke!
Vielen Dank, das klappt ja toll. Ich hab geahnt, dass das Problem die Abfrage war, nur welche Alternative ich hatte - dafür waren meine Kenntnisse nicht weitgehend genug. Und die Alternativen bekommt man ja auch nicht so leicht durch Lesen des koma-script-Quellcodes... Vielen Dank auch für die Aufklärung über
\ifnumbered
¹. Natürlich ist\thetocsection
¹ auch viel besser als\mysection
¹.Das mit den Inhaltsverzeichnissen, die sich über mehrere Seiten erstrecken stimmt. Aber zurückblättern würde ich eher für den Titel eines Kapitels, weniger für die Nummer.
Grüße
clueck
[Admin-Edit:]- <code></code> Tags eingefügt (siehe Formatierungshinweise)
- Beitrag verschoben