Sie sind hier

scrbook/addchap und hyperref?

Hallo

ich versuche über liststotoc und idxtotoc die entsprechenden Einträge auch in die PDF Bookmark-Leiste aufzunehmen.

Dabei gibt es Unterschiede zwischen den nummerierten Kapiteln und den Lists/Index Sprung-Zielen (Aus den Bookmarks und aus dem Inhaltsverzeichnis)

Bei \chapter Einträgen wird die Zeile mit dem Chapter-Head angesprungen.
Bei den Index/Lists und \addchap Einträgen wird der Inhalt des Kapitels angesprungen.

Gibt es dazu einen Workaround?

Frank

forum: 

ich habe eine Lösung/Workaround für liststotoc und idxtotoc gefunden.
(damit passts in dem Dokument an dem ich gerade arbeite)

Mit liststotocnumbered und \frontmatter passen die Einträge.
Für den Index habe ich zusätzlich idxtotocnumbered eingebaut und \backmatter verwendet.

Für "normale" \addchap Einträge müßte das Macro umgeschrieben werden.

Sind \chapter und \addchap absichtlich unterschiedlich implementiert?
Ich hätte eher eine Kopie der \chapter Macros erwartet, die in \@addchap kein \thechapter ausgibt.

Frank

Bild von Markus Kohm

> Sind \chapter und \addchap absichtlich unterschiedlich implementiert?

\chapter und \addchap sind nicht wirklich unterschiedlich implementiert. Tatsächlich verwenden \addchap den Code von \chapter*. Früher waren die beiden Anweisungen komplett getrennt implementiert, was dazu führte, dass hyperref für \addchap überhaupt keine Anker setzen konnte. Durch die Änderung funktioniert dies nun.

Leider bietet hyperref aber Klassen und Pakete keine dokumentierte Schnittstelle, um die Position von Ankern festzulegen. Wäre dem so, dann könnte ich dafür sorgen, dass der Anker immer am Anfang der Überschrift eingefügt wird. Zwar ist das theoretisch auch mit der jetzigen hyperref-Version möglich, ich müsste mich aber auf undokumentierte Interna von hyperref verlassen. Das würde bedeuten, dass ich selbst die Funktion bei jeder neuen hyperref-Version überprüfen müsste. Das lehne ich ab.

Ich habe schon früher Heiko auf dieses Problem angesprochen. Er hat aber nach eigenen Aussagen keine Zeit, hyperref entsprechend zu überarbeiten und eine Schnittstelle zu dokumentieren. Beschwerden also bitte an die hyperref-Autoren.

>Ich hätte eher eine Kopie der \chapter Macros erwartet, die in \@addchap kein \thechapter ausgibt.

Das wäre ganz schlecht. Es würde nämlich zum einen bedeuten, dass hyperref damit nichts anfangen kann, zum anderen würde dann ja der chapter-Zähler hochgezählt, was wiederum zu Löchern in der Kapitelnummerieung führen würde. Stattdessen wird von KOMA-Script das einzig Richtige gemacht: der Code von \chapter* für \addchap verwendet.

Hallo

>> Sind \chapter und \addchap absichtlich unterschiedlich implementiert?

> \chapter und \addchap sind nicht wirklich unterschiedlich
> implementiert. Tatsächlich verwenden \addchap den Code von
> \chapter*. Früher waren die beiden Anweisungen komplett getrennt
> implementiert, was dazu führte, dass hyperref für \addchap überhaupt
> keine Anker setzen konnte. Durch die Änderung funktioniert dies nun.

das bezog sich auf den mehrfachen Aufruf von \@schapter.
Bei \chapter wird das einmal (nach \@chapter) aufgerufen.
Bei \addchap in \@addchap und danach nochmal in \@saddchap

> Leider bietet hyperref aber Klassen und Pakete keine dokumentierte
> Schnittstelle, um die Position von Ankern festzulegen. Wäre dem so,
> dann könnte ich dafür sorgen, dass der Anker immer am Anfang der
> Überschrift eingefügt wird. Zwar ist das theoretisch auch mit der
> jetzigen hyperref-Version möglich, ich müsste mich aber auf
> undokumentierte Interna von hyperref verlassen. Das würde bedeuten,
> dass ich selbst die Funktion bei jeder neuen hyperref-Version
> überprüfen müsste. Das lehne ich ab.

das verstehe ich ... ich muß beruflich eigene Patchsets für mehrere SW-Packete pflegen .. die Anpassung an neue Releases ist da teilweise mehr Aufwand als die ursprüngliche Implementierung das Patches

> Ich habe schon früher Heiko auf dieses Problem angesprochen. Er hat
> aber nach eigenen Aussagen keine Zeit, hyperref entsprechend zu
> überarbeiten und eine Schnittstelle zu dokumentieren. Beschwerden
> also bitte an die hyperref-Autoren.

>> Ich hätte eher eine Kopie der \chapter Macros erwartet, die in
>> \@addchap kein \thechapter ausgibt.

> Das wäre ganz schlecht. Es würde nämlich zum einen bedeuten, dass
> hyperref damit nichts anfangen kann, zum anderen würde dann ja der
> chapter-Zähler hochgezählt, was wiederum zu Löchern in der
> Kapitelnummerieung führen würde. Stattdessen wird von KOMA-Script
> das einzig Richtige gemacht: der Code von \chapter* für \addchap
> verwendet.

ok .. anders ausgedrückt .. Kopie mit einem anders implementierten
\@chapter (\@addchap ohne hochzählen, ohne \thechapter ...)
Wie oben schon geschrieben verstehe ich den doppelten \@schapter Aufruf nicht.

Frank

PS: Wir hatte uns mal über Erweiterungen der titlepage (subtitle etc.) unterhalten (Vortrag in Darmstadt Anfang 2003) .. ich habe meine alten Änderungen an script.sty und script2e in scrbook eingebaut. Bei Interesse schicke ich Dir den Patch zu.

Bild von Markus Kohm

Das Problem sollte inzwischen der Vergangenheit angehören.

Comments for "scrbook/addchap und hyperref?" abonnieren