Hyperref spring an die falsche Seite bei addcontentsline

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


te.foobar
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 15. Apr 2010, 15:05

Hyperref spring an die falsche Seite bei addcontentsline

Beitrag von te.foobar »

Ich benutze die Klasse book, und hätte gerne einen Eintrag für mein Literaturverzeichnis im Inhaltsverzeichnis. Das klappt so auch, da steht auch die richtige Seitenzahl, nur Hyperref spring immer auf die Seite 2 Seiten vor demLiteraturverzeichnis.
Beispiel: Im Inhaltsverzeichnis steht:

Literaturverzeichnis ..... 109
Wenn ich mit dem Mauszeiger da draufzeige, erscheint "Zu Seite 107 gehen", sowohl mit evince, als auch mit dem acroread.
Warum?
\newcommand{\clearchapter}{\clearpage\clearemptydoublepage}
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
\newcommand{\dotprod}{{\scriptscriptstyle \stackrel{\bullet}{{}}}}
\documentclass[a4paper,twoside,12pt]{book} 
\usepackage{textcomp} 
\usepackage[utf8x]{inputenc}
\usepackage{ngerman}  
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{color} 
\usepackage{floatflt}
\usepackage{changepage}
\usepackage{subfigure}
\usepackage{placeins}
\usepackage{units}
\usepackage[margin=10pt,font=small,labelfont=bf,labelsep=colon]{caption}
\usepackage[colorlinks=true,linkcolor=darkblue,citecolor=darkblue]{hyperref}
\interfootnotelinepenalty=10000 
\definecolor{darkblue}{rgb}{0,0,0}  

 
\begin{document}
 
\pagenumbering{Roman}       

\include{titel}

\tableofcontents	
\cleardoublepage

\include{motivation}
\include{theorie}
\include{experiment}
\include{ergeb}
\include{disk}
\include{zus}

\appendix
\include{anhang} 

\cleardoublepage 
\addcontentsline{toc}{chapter}{Literaturverzeichnis}
\bibliographystyle{unsrt}
\bibliography{thesis} 

\include{dank}

\end{document}

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

Beitrag von DonCube »

Hallo

dein Problem kann ich leider nicht nachvollziehen. Wenn ich deinen Code nehme und ihn kompiliere, kommt ein Dokument mit 3 leeren Seiten raus. Es gibt nur ein leeres Inhaltsverzeichnis und erst recht kein Literaturverzeichnis.

Folgende Fehlermeldungen spuckt er bei mir aus.
No file motivation.tex.
No file theorie.tex.
No file experiment.tex.
No file ergeb.tex.
No file disk.tex.
No file zus.tex.
No file anhang.tex.
(LaTeX1.bbl
LaTeX Warning: Empty `thebibliography' environment on input line 3.

) [3

]
No file dank.tex.
Poste mal einen Code der das Problem zeigt. Dieser tuts nicht.

Viele Grüße
DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

te.foobar
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 15. Apr 2010, 15:05

Beitrag von te.foobar »

Mea culpa, maxima mea culpa.

So kompilliert es jetzt.
Datei thesis.tex:
\documentclass[a4paper,twoside,12pt]{book} 
\usepackage[utf8x]{inputenc}
\usepackage{ngerman}  
\usepackage{color}
\usepackage[colorlinks=true,linkcolor=darkblue,citecolor=darkblue]{hyperref}
\definecolor{darkblue}{rgb}{0,0,0}   % Schwarz 
\begin{document}
\pagenumbering{Roman}       
\tableofcontents	
\cleardoublepage
\pagenumbering{arabic}   
\chapter{Motivation}
Hier ist ein Zitat~\cite{berendsen1984mdc}.
\chapter{Theorie}
Hier ist ein Zitat~\cite{berendsen1984mdc}.
\appendix
\chapter{Sonstiges}
Hier steht auch was.
\cleardoublepage 
\addcontentsline{toc}{chapter}{Literaturverzeichnis}
\bibliographystyle{unsrt}
\bibliography{thesis} 
\end{document}
Und die Datei thesis.bib:
article{berendsen1984mdc,
  title={{Molecular dynamics with coupling to an external bath}},
  author={Berendsen, H. J. C. and Postma, J. P. M.  and van Gunsteren, W. F. and DiNola, A. and Haak, J. R.},
  journal={J. of Chem. Phys.},
  volume={81},
  pages={3684},
  year={1984},
  publisher={AIP}
}
Kompilliert mit pdflatex thesis; bibtex thesis; pdflatex thesis;pdflatex thesis

Wenn man auf den Eintrag "Literaturverzeichnis" im Inhaltsverzeichnis klickt (hinter dem korrekterweise Seite 7 steht), landet man auf Seite 5.

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

Beitrag von KOMA »

Da das Literaturverzeichnis nicht nummeriert wird und das \addcontentsline sogar vor der Überschrift steht, fehlt davor ein \phantomsection (siehe hyperref-Anleitung).

te.foobar
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 15. Apr 2010, 15:05

Beitrag von te.foobar »

Super, das funktioniert. Danke.

ellocco
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 67
Registriert: Fr 30. Apr 2010, 14:09
Wohnort: Ulm
Kontaktdaten:

Beitrag von ellocco »

Zu den Problemen mit Hyperref habe ich eine interessante Seite gefunden:
hyperref problems
Die Hinweise haben zwar meine Probleme nicht gelöst,
aber vielleicht sind die Hinweise für andere hilfreich.
Ich hatte auch das Problem mit einer falschen Seitenverlinkung:
Auf dem Ausdruck oder am Bildschirm steht zwar die korrekte Seite,
aber die Sprunganweisung im PDF-Dokument ist falsch.
Vermutlich steht es in der Hyperref-Anleitung drin, aber ich bin in der
Dokumentation nicht fündig geworden (u.a. taucht das Wort "wrong" nur zwei oder
dreimal auf).
Also habe ich rumprobiert, ich habe einfach vor die Labels, die Hyperref
nicht korrekt verarbeitet, ein Phantomsection-Befehl gesetzt und nun
werden die problematischen Labels korrekt angesprungen.
Woran es liegt weiß ich nicht, es tritt nur bei einigen Labels auf und ob meine
Lösung elegant ist, weiß ich auch nicht, aber es liefert die richtigen Ergebnisse.
An der (teilweisen) Inkompatibilität mit dem Paket "varioref" liegt es scheinbar
nicht, auch Verweise mit \pageref{labeltyp:labelname} führen in die Irre.
Aber sicherheitshalber habe ich nach dem Laden des Paketes "varioref"
noch das Hyperref-eigene Paket "nameref" geladen, dieses Paket versucht unter
anderem Inkompatibilitäten zum Paket "varioref" abzumildern.

Antworten