Sie sind hier

Probleme mit Bookmark-Hierarchy mit hyperref

Hallo,

ich möchte ein Dokument basierend auf scrbook erstellen, wobei die "chapter"-Nummerierung bei jedem neuen "part" wieder mit 1 beginnen. Daher habe ich in der Datei "scrbook.cls" die Zeile
\newcounter{chapter}
durch
\newcounter{chapter}[part]
ersetzt.

Das funktioniert auch zuverlässig, aber leider wirft es die PDF-Bookmarks durcheinanden, die hyperref erzeugt.

Hier ein Minimalbeispiel
(Ersetzung in "scrbook.cls" muss man allerdings eigenhändig vornehmen.):

\documentclass{scrbook}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\newpage
\part{Erster Teil}
\chapter{Erstes Kapitel}
\section{Erster Abschnitt}
Text
\section{Zweiter Abschnitt}
Text
\chapter{Zweiter Kapitel}
\section{Dritter Abschnitt}
Text
\section{Vierter Abschnitt}
Text
\part{Zweiter Teil}
\chapter{Erster Kapitel}
\section{Fuenfter Abschnitt}
Text
\section{Sechster Abschnitt}
Text
\chapter{Zweites Kapitel}
\section{Siebter Abschnitt}
Text
\section{Achter Abschnitt}
Text
\end{document}

Hier eine ausführlichere Beschreibung des Problems:

Jedes Kapitel wird auf die gleiche Hierarchieebene wie dir vorangegangene Section gesetzt und jeder neue Teil wird auf die Ebene des vorhergehenden Kapitels gesetzt. Auf dies Weise wandern die Lesezeichen im Laufe des Dokuments immer weiter nach rechts. Es entsteht ein Baum an Lesezeichen, der in der ersten Ebene nur aus einem Eintrag - nämlich dem ersten Teil - besteht.

(Das gleiche Problem tritt auch dann auch, wenn ich scrbook.cls nicht modifiziere, dafür aber den counter "chapter" bei jedem Beginn eines neuen Teils mit \setcounter auf 0 setze.)

Ich habe versucht zu verstehen, wie in hyperref.sty die Lesezeichen in PDF erzeugt, aber Blicke nicht ganz durch. Die Hierarchie wird offensichtlich mit den folgenden Befehlen festgelegt:

\expandafter\ifx\csname chapter\endcsname\relax \def\toclevel@part{0}% \else
\def\toclevel@part{-1}% \fi
\def\toclevel@chapter{0}
\def\toclevel@section{1}
\def\toclevel@subsection{2}
\def\toclevel@subsubsection{3}
\def\toclevel@paragraph{4}
\def\toclevel@subparagraph{5}
\def\toclevel@figure{0}
\def\toclevel@table{0}

Den Fehler mit den Lesezeichen kann man einfach dadurch beheben, dass man alle Zahlen im oben genannten Abschnitt auf 0 setzen, aber dann ist die Hierarchie der Lesezeichen komplett glattgebügelt, was auch nicht ideal ist.

Kann mir jemand helfen?

Bild von Markus Kohm

... wird mit Inkompatibilitäten, Bugs und der Unmöglichkeit, Support zu erhalten, nicht unter der Grenze des Wahnsinns bestraft!

Du solltest als erstes lppl-de.txt lesen (ist zwingender Bestandteil jeder Verteilung von KOMA-Script). An einem Verstoß dagegen bist Du gerade noch vorbeigeschrammt, wenn die geänderte Klasse alleine Dir zugänglich ist. Desweiteren solltest Du den modguide lesen (ist zwingender Bestandteil jeder LaTeX-Verteilung). AFAIK wird dort empfohlen, das was für die Verteilung verboten ist, auch nicht für sich selbst zu machen, damit man nicht versehentlich in Teufels Küche kommt.

Dann solltest Du die De-TeX-FAQ danach durchsuchen, wie man einen Zähler in Abhängigkeit eines anderen korrekt zurücksetzt, ohne an Klassen oder Paketen herumzupfuschen.

Außerdem dürfte Dein eigentliches Problem sein, dass Du jede Menge »destination with same identifier« um die Ohren geworfen bekommst. Die Lösung dafür ist dann, nach dem Laden von hyperref noch \renewcommand*{\theHchapter}{\theHpart.\thechapter} einzufügen.

Wenn ich mir dann das Ergebnis der korrekten Lösung anschaue, sind auch die Bookmark-Hierarchien korrekt.

Fazit: Wenn man nicht murkst, dann klappt es auch.

... für die umgehende Anwort.

Grüße
Thomas

Comments for "Probleme mit Bookmark-Hierarchy mit hyperref" abonnieren