INhaltsverzeichnis unter Bookmarks aber nicht im TOC

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

INhaltsverzeichnis unter Bookmarks aber nicht im TOC

Beitrag von IrenaSekuta »

Hallo liebe Gemeinde,

anbei ein Minimalbeispiel:
\documentclass[open = right,
               parskip = half,
               toc=listof
               ]{scrreprt}
\usepackage[T1]{fontenc}		% erweiterte TeX-Zeichensätze (vgl.Kopka, S. 222)
\usepackage[ansinew]{inputenc}   % Eingabekodierungen
\usepackage[ngerman]{babel}     % Sprachunterstützung
\usepackage[colorlinks=true,        % Das Hyperref-Packet (immer als letztes Packet laden!)
            linkcolor=black,
            bookmarksopen=true,
            bookmarksnumbered=true,
            bookmarksopenlevel=2]
            {hyperref}

\begin{document}

 % Inhaltsverzeichnis
 \tableofcontents

\chapter{Kapitel 1}
\label{Kapitel_1}

\section{Unterkapitel 1.1}
\label{Unterkapitel_1.1}

Ein bissel Text.

\end{document}
Nun möchte ich, dass das Inhaltsverzeichnis in die Bookmarks der PDF-Datei aufgenommen wird, jedoch nicht im Inhaltsverzeichnis erscheint.

Habe die hyperref-Dokumentation zur Hand, aber irgendwie finde ich darüber nichts. Mag jemand helfen?

Gruß,

Irena[/code]

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

Hallo,

grundsätzlich kannst du mit \pdfbookmark beliebige weitere Lesezeichen hinzufügen. Falls es etwas allgemeiner sein soll, ist hier ein Patch für \chapter*:
\CheckCommand*\@schapter[1]{%
	\H@old@schapter{#1}%
	\begingroup
		\let\@mkboth\@gobbletwo
		\Hy@GlobalStepCount\Hy@linkcounter
		\xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
		\Hy@raisedlink{%
			\hyper@anchorstart{\@currentHref}\hyper@anchorend
		}%
	\endgroup
}

\renewcommand*\@schapter[1]{%
	\begingroup
		\let\@mkboth\@gobbletwo
		\Hy@GlobalStepCount\Hy@linkcounter
		\xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
		\Hy@raisedlink{%
			\hyper@anchorstart{\@currentHref}\hyper@anchorend
		}%
		\Hy@writebookmark{}{#1}{\@currentHref}{\toclevel@chapter}{toc}%
	\endgroup
	\H@old@schapter{#1}%
}

skater
Forum-Guru
Forum-Guru
Beiträge: 356
Registriert: Do 12. Mär 2009, 14:34
Wohnort: Berlin

Beitrag von skater »

\pdfbookmark[1]{\contentsname}{toc}
\tableofcontents
Wobei die optionale ›1‹ hierbei als ›section‹ zu verstehen ist.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Danke

Beitrag von IrenaSekuta »

Hallo,

vielen Dank für eure Hilfe. Ich habe den Tipp von skater umgesetzt und er funktioniert einwandfrei.

phi, was genau meinst Du : "Falls es etwas allgemeiner sein soll, ist hier ein Patch für \chapter*"? Ehrlich gesagt weiß ich gar nicht, wie ich deinen Tipp überhaupt anwenden soll bzw. was er überhaupt macht.

Ferner interessiert mich auch, wo in der Doku des hyperref-Packets ich den Befehl \pdfbookmark und seine Syntax überhaupt nachlesen kann. Möchte schließlich lernen, solche Probleme anhand der Docu in Zukunft selbstständig zu lösen.

Gruß,

Irena

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Re: Danke

Beitrag von phi »

IrenaSekuta hat geschrieben:phi, was genau meinst Du : "Falls es etwas allgemeiner sein soll, ist hier ein Patch für \chapter*"? Ehrlich gesagt weiß ich gar nicht, wie ich deinen Tipp überhaupt anwenden soll bzw. was er überhaupt macht.
Diesen Patch habe ich selber mal verwendet, um alle nicht nummerierten Kapitel automatisch zu den Lesezeichen hinzfügen zu lassen. Die manuelle Variante ist für einzelne Abschnitte natürlich einfacher.
IrenaSekuta hat geschrieben:Ferner interessiert mich auch, wo in der Doku des hyperref-Packets ich den Befehl \pdfbookmark und seine Syntax überhaupt nachlesen kann.
Das Benutzerhandbuch von hyperref ist leider unvollständig. Eine Beschreibung zu \pdfbookmark findet sich nur in der Dokumentation des kommentierten Quelltextes:
Tobias Oetiker rightly points out that we need a way to force a bookmark entry. So we introduce \pdfbookmark, with two parameters, the title, and a symbolic name. By default this is at level 1, but we can reset that with the optional first argument.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Danke

Beitrag von KOMA »

phi hat geschrieben:Das Benutzerhandbuch von hyperref ist leider unvollständig. Eine Beschreibung zu \pdfbookmark findet sich nur in der Dokumentation des kommentierten Quelltextes:
Die Anleitung von hyperref besteht aus verschiedenen Teilen. Das Manual ist nur ein Teil davon. \pdfbookmark ist min. im README (aber nur in einem Code-Beispiel) in paper.pdf (mit Erklärung) und slides.pdf (mit Erklärung) zu finden.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Hallo zusammen,

herzlichen Dank für eure Antworten.

Ich habe bisher immer gedacht, dass unter "Doku" stets das "Manual" gemeint ist, und versucht, damit die für mich relevanten Fragestellungen zu beantworten.

Bei http://tug.ctan.org/cgi-bin/ctanPackage ... d=hyperref finde ich zwar sowohl die README als auch das Manual, die beiden anderen (slides, paper) von Markus zitierten Literaturangaben jedoch nicht.

Markus, woher weißt Du, dass slides und paper zur Dokumentation von hyperref gehören? Unter o.g. Link werden diese beiden Dateien nicht geführt.

Für Dich mag die Frage zwar idiotisch erscheinen, mir ermöglicht sie jedoch zu lernen, wo ich nach Literatur für ein bestimmtes Paket suchen muss bzw. warum bestimmte Literatur bei Packeten angefügt wird und andere nicht.

Gruß,

Irena[/i]

phi
Moderator
Moderator
Beiträge: 420
Registriert: Fr 6. Feb 2009, 21:28

Beitrag von phi »

IrenaSekuta hat geschrieben:Bei http://tug.ctan.org/cgi-bin/ctanPackage ... d=hyperref finde ich zwar sowohl die README als auch das Manual, die beiden anderen (slides, paper) von Markus zitierten Literaturangaben jedoch nicht.
Hier:
http://ctan.org/pkg/hyperref
Dort ist paper.pdf verlinkt, slides.pdf findet sich nur durch manuelles Durchsuchen des doc-Ordners:
http://tug.ctan.org/tex-archive/macros/ ... erref/doc/
Allerdings sind diese beiden Dokumente ziemlich veraltet (1999!).
IrenaSekuta hat geschrieben:Markus, woher weißt Du, dass slides und paper zur Dokumentation von hyperref gehören? Unter o.g. Link werden diese beiden Dateien nicht geführt.
Dies steht beispielsweise auf der ersten Seite der Quellcodedokumentation (hyperref.pdf).
IrenaSekuta hat geschrieben:Für Dich mag die Frage zwar idiotisch erscheinen, mir ermöglicht sie jedoch zu lernen, wo ich nach Literatur für ein bestimmtes Paket suchen muss bzw. warum bestimmte Literatur bei Packeten angefügt wird und andere nicht.
Häufig heißt das Handbuch zu einem Paket X einfach X.pdf. Bei älteren Paketen werden auch noch DVI- oder PostScript-Dateien als Handbuch ausgeliefert. Das Handbuch und die Readme-Datei sind immer die ersten Anlaufstellen. Der Inhalt der Handbücher (viele oder keine Beispiele, mit oder ohne Quelltextdokumentation…) richtet sich nach dem Ermessen der jeweiligen Paketautoren. Leider sind diese aufgrund ihrer Erfahrung meist nicht gerade gut darin, die Probleme von Anfängern einzuschätzen. Beim hyperref-Manual ist mir konkret aufgefallen, dass Abschnitt 4 nicht nur unvollständig, sondern auch viel zu kurz ist.
Meiner Meinung kann man nicht erwarten, dass ein Anwender in Vortragsfolien von 1999 oder im Quellcode nach einem nicht im Handbuch dokumentierten Befehl sucht.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

IrenaSekuta hat geschrieben:Markus, woher weißt Du, dass slides und paper zur Dokumentation von hyperref gehören? Unter o.g. Link werden diese beiden Dateien nicht geführt.
Zum einen hat mich noch nie interessiert, was CTAN glaubt, was zur Doku gehört. Ich verlasse mich lieber darauf, was der Paketautor zur Doku zählt. Zumindest kontrolliere ich das doc-Verzeichnis des installierten Pakets. Häufig schaue ich auch noch in die Sourcen. Distributoren machen nunmal Fehler.

Im konkreten Fall irrst Du aber. paper.pdf ist sehr wohl bei der Doku als "Paper on tagging and navigation" aufgeführt. slides.pdf dort aufzuführen, ist nicht wirklich notwendig. paper.pdf ist das Handout zu dem Vortrag. slides.pdf sind die Folien zu dem Vortrag. Alles, was in slided.pdf steht, steht auch in paper.pdf.

Aus dem Alter der Dateien zu schließen, dass es sich nicht lohnt, sie sich anzuschauen, wäre eine eigenartige Einstellung. Wie wäre es umgekehrt mit: »Die Doku ist über zehn Jahre unverändert gültig geblieben, also lohnt es sich bestimmt, sie mal anzuschauen.« oder zumindest: »Die Doku ist zwar alt, aber offenbar gibt es keine neuere Version. Also schaue ich mal, ob die nützliches enthält.«

Übrigens gibt es bei verschiedenen TeX-Distributionen Hilfsprogramme, um sich zugehörige Doku anzeigen zu lassen. Bei TeX-Live heißt das Programm texdoc. texdoc liefert zu hyperref ein hyperref.pdf, bei dem auf der ersten Seite alle Anleitungen aufgeführt sind. Bei MikTeX heißt das zugehörige Programm mthelp. Was das für hyperref anzeigt, weiß ich nicht. Wenn es nicht alle Hilfen anzeigt, dann wäre das aber kein Grund, auf irgendwen zu schimpfen - außer auf die Anwender, die das bereits entdeckt haben aber zu faul waren, Christian Schenk einen Bug-Report zu übermitteln.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

phi hat geschrieben:Meiner Meinung kann man nicht erwarten, dass ein Anwender in Vortragsfolien von 1999 oder im Quellcode nach einem nicht im Handbuch dokumentierten Befehl sucht.
Schreib das Heiko. Er wird Dir antworten, dass Du gerne die Anleitung ergänzen und ihm schicken darfst. Hast Du eine Ahnung, wieviel Arbeit es ist, diverse Pakete einschließlich Anleitung zu pflegen? (Für KOMA-Script kann ich es Dir sagen: Allein die Überarbeitung für Version 3.00 hat drei Monate Vollzeit gekostet - ohne die anschließende Korrekturarbeit.)

Ich teile durchaus die Einstellung, dass was nicht dokumentiert ist, auch nicht existiert. Dass aber alles in einer einzigen Datei dokumentiert sein muss, davon kann ebensowenig die Rede sein, wie dass ein freiwilliger Entwickler auch noch selbst die DAU-taugliche Anleitung schreiben muss. Ich betrachte es sogar als großen Mangel der LaTeX-Nutzergemeinschaft, dass diese Arbeit auch noch auf die wenigen Entwickler abgewälzt wird. Eigentlich sollte es genügen, wenn Entwickler stichwortartige Kurzanleitungen verfassen und der Rest von anderen erledigt wird.

Das hat beispielsweise bei scrjura sehr gut funktioniert. Natürlich gab es dabei die eine oder andere Rückfrage. Die Anleitung selbst hat aber ein ganz normaler Anwender verfasst. Vorteil dabei ist auch, dass der (oft gelesene) Vorwurf, dass mal wieder ein Informatiker von seiner hohen Warte herunter etwas unverständliches verzapft habe, in diesem Fall nicht greift.

Negativbeispiel ist die KOMA-Script-Anleitung von 2002 (oder war das schon 2001???). Damals hatte ich vorgeschlagen, interessierte Anwender beim Verfassen einer komplett neuen Anleitung zu unterstützen. Bis zu dem Zeitpunkt war die Anleitung eine 64-seitige Auflistung von Befehlen, deren Syntax und Funktion, jedoch fast ohne Anwendungsbeispiele. Damals haben sich fast ein Dutzend Leute gemeldet. Bei der Aufstellung der Anforderungen und der Planung der neuen Anleitung, haben dann noch ca. drei Leute ihren Senf beigetragen. Als es darum ging, wer welchen Teil übernehmen will, herrsche Totenstille. Ich habe dann selbst innerhalb eines halben Jahres, parallel zur Entwicklung von scrlttr2 die neue Anleitung geschrieben. Am Ende war ich so erledigt (ich hatte damals Haushalt, Familie, Beruf und LaTeX - noch heute sind die Prioritäten hier oft falsch verteilt), dass ich das Kapitel über scrlttr2 nur noch mühsam zusammengebacken habe. Das war bis Version 3.00 mit dem komplett neuen Kapitel (wieder von mir) einer der Hauptschwachpunkte. Als ich mich damals über dieses Verhalten beklagt habe, hat sich übrigens tatsächlich ein weiterer Freiwilliger gemeldet, der auch wirklich etwas abgeliefert hat. Heute stammt von Jens noch immer das Kapitel über scrpage2. Dessen große Überarbeitung wird aber ebenfalls an mir hängen bleiben. Inzwischen brauche ich übrigens für die Teile, die bereits in der Anleitung sind, keine Hilfe mehr - bei der Übersetzung schon. Trotzdem kostet die Anleitung auch heute noch oft mehr Zeit als die eigentliche Entwicklung.

Ich wollte das mal erwähnen, weil viele Anwender sich ganz falsche Vorstellungen machen. Sicher gibt es auch Entwickler, die das während ihrer normalen Arbeitszeit machen dürfen. Heutzutage dürfte das bei LaTeX aber die absolute Ausnahme sein.
BTW: Als ich schon einmal jemandem, der sich über mangelnde Doku beschwert hat, auf die Problematik hingewiesen habe, hat der damals gleich die erste Anleitung zu KOMA-Script genommen und die von ihm kritisierten Mängel beseitigt. Das rechne ich Harald heute noch sehr hoch an. Er hat damit nicht nur mir, sondern damals vor allen den anderen Anwendern einen großen Dienst erwiesen! Dass er aus Scham gleich noch seinen Vornamen geändert hat, wäre aber nicht nötig gewesen. :wink:

Und damit habe ich die beiden Stunden, die ich heute für LaTeX eingeplant hatte, auch schon wieder verbraucht. Ich werde mich also ggf. bei weiteren Beiträgen eher kurz fassen.

Antworten