PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \pdfbookmark verlinkt falsch



stephcar
05-04-2006, 16:53
servus,
ich hab ein Problem mit \pdfbookmark bei meiner Diplomarbeit.
Bei \pdfbookmark[1]... wird im pdf auf die falsche Stelle - hier: auf die übergeordnete Seite "Titel" verlinkt (s.u.). Bei \pdfbookmark[2]... stimmt die Verlinkung, aller dings wird der Abstract natürlich als Unterpunkt von "Titel" behandelt:


Titel
|-Abtract
Inhalt
|
...




%abstract.tex
\thispagestyle{empty}
\begin{abstract}
\section*{Zusammenfassung}
\pdfbookmark[1]{Abstract}{}
Blabla blabla blaaaa...


abtract.tex wird dabei wie alle anderen Kapitel auch über \include in das dokument eingelesen.



\begin{document}

\include{mainmatter/titel}
\include{mainmatter/abstract}
\include{mainmatter/toc}
...


Ich hoffe, dass ihr einen Tipp habt und die angegebenen Infos reichen ;)

Gruß Stephan

bischi
05-04-2006, 17:11
Ich hoffe, dass ihr einen Tipp habt und die angegebenen Infos reichen ;)

Nicht wirklich - denn meine Glaskugel ist zur Zeit gerade in Reparatur; Wie wärs mit nem Minimalbeispiel?

MfG Bischi

stephcar
06-04-2006, 13:56
Okay :)
Hier also ein Minibeispiel:
die beiden files titel.tex und abtract.tex werden über \include eingebunden. Wie gesagt im pdf-dokument zielt der link in Abstract nicht auf die gewünschte sondern auf die Titelseite.



\documentclass[a4paper,12pt]{scrartcl}

\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[activate=normal]{pdfcprot}
\usepackage{hyperref}
\hypersetup{
pdfauthor={name},
pdftitle={title},
pdfsubject={Diplomarbeit},
pdfproducer={LaTeX with hyperref},
pdfproducer={LaTeX},
pdfview=FitV, % FitH
pdfstartview=FitV,
pdfhighlight=/I,
pdfborder=0 0 0, % keine Box um die Links!
bookmarksopen=true,
bookmarksnumbered=false,
plainpages=false,
}


\begin{document}
\include{titel}
\include{abstract}

\newpage

\tableofcontents
\pdfbookmark[1]{\contentsname}{toc}

\newpage

\section{Kapitel 1}
Kapitel 1

\end{document}




%titel.tex
\thispagestyle{empty} % erzeugt Seite ohne Kopf- / Fusszeile
\begin{titlepage}
\pdfbookmark[1]{Titelseite}{}
\begin{center}
{\Large \bfseries Titelseite\\}
\end{center}
\end{titlepage}




%abstract.tex
\thispagestyle{empty}{
\begin{abstract}
\section*{Zusammenfassung}
bla bla bla
\pdfbookmark[1]{Abstract}{}
\end{abstract}

stephcar
07-04-2006, 09:15
Servus,

leider konnte ich das Problem bislang noch nicht selbst lösen. Ich hoffe, das Minibeispiel oben ist das gewünschte - das Problem stellt es zumindest dar - und ihr könnt mir helfen.

Gruß
Stephan

rais
07-04-2006, 13:02
Moin moin,
hast Du das Problem eigentlich auch noch, wenn Du \input statt \include für titel und abstract verwendest?
Afaik wird bei \include eine eigene aux-Datei generiert, die hinterher in die aux-Datei der Hauptdatei per \(@)input eingebunden wird... wenn \pdfbookmark also irgend etwas in der aux lassen will, dann bliebe dies hier lokal.
MfG,

stephcar
10-04-2006, 11:42
Moin Rainer,

leider funktioniert es so auch nicht. Der pdf-Link "Abstract" verweist immer ncoh auf "Titel".

Gruß Stephan

stephcar
10-04-2006, 11:53
Ich habe den Fehler in den Warnungen gefunden. Bei


\pdfbookmark[1]{Abstract}{}


kommt folgende Warnmeldung.



!pdfTeX warning (ext4): destination with the same identifier (name{.1}) has been already used, duplicate ignored


Leider weiss ich dadurch noch immer nicht, wie das Problem zu beheben ist. In titel.tex wird der Link ja mit dem anderen Titel \pdfbookmark[1]{Titelseite}{} initialisiert.

Gruß Stephan

rais
10-04-2006, 12:56
Moin Stephan,
das hört sich immer noch so an, als ob es an zwei gleichen "Namen" in unterschiedlichen aux-Dateien liegt, die ja hinterher zusammengefügt werden.
Hast Du bei dem Test die (Haupt)-aux-Datei _vor_ dem Kompilieren mit \input's mal gelöscht? Da steht ja sonst immer noch drin, daß Datei sowieso.aux noch dazugehört...
MfG,

stephcar
10-04-2006, 15:14
Danke schonmal für deine geistigen Mühen,

Allerdings: auch das Löschen der aux-files bringt leider nichts.
Hier mal das Ergebnis der log-file:


...

(C:\programme\miktex\texmf\tex\latex\hyperref\name ref.sty
Package: nameref 2003/12/03 v2.21 Cross-referencing by name of section
\c@section@level=\count104
)
LaTeX Info: Redefining \ref on input line 24.
LaTeX Info: Redefining \pageref on input line 24.
(LaTeX1.out) (LaTeX1.out) (titel.tex [1

{psfonts.map}])
(abstract.tex
! pdfTeX warning (ext4): destination with the same identifier (name{.1}) has been already used, duplicate ignored
<recently read> V

l.5 \pdfbookmark[1]{Abstract}{}
) [2] (LaTeX1.toc)
\tf@toc=\write4
[3] [4] (LaTeX1.aux) )
(\end occurred inside a group at level 1)

...

stephcar
10-04-2006, 15:55
So, die Lösung ist eigentlich recht einfach:
Die Zeile muss so heisen:


\pdfbookmark[1]{Abstract}{abstract}


Gruß Stephan