PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : hyperref -> manche Verknüpfungen werden nicht richtig angesprungen



Hobbes
11-02-2007, 01:18
Guten Abend allerseits,

ich habe hier ein etwa 150seitiges Dokument geschrieben. Auf den ersten Seiten habe ich mit \pageref{name} einige Stellen im Dokument verlinkt. Wenn ich auf den Link klicke, werden auch fast alle Seiten im pdf-Dokument richtig angesprungen. Aber eben nur fast alle. Die Fehlerhaften Links sind alle auf einen bestimmten Seitenbereich begrenzt (sollen etwa auf Seiten 35-40 springen) und springen auf Seite 35. :confused:

Ein Minimalbeispiel in dem der Fehler auftritt ist mir leider noch nicht gelungen. Es ist für mich nicht reproduzierbar.

Hier mal das in meinen Augen wichtige:


\documentclass[12pt,a4paper,halfparskip,headsepline]{scrartcl}
% diverse Pakete

\usepackage[dvips,ps2pdf,bookmarksnumbered=true,bookmarksopen= true,%
bookmarksopenlevel=2,pdftitle={Titel},%
pdfauthor={mein Name}]{hyperref}

\usepackage[all]{hypcap}

\begin{document}
So sieht eine Verlinkung auf Seite \pageref{name} aus

Dann kommt viiiiieeeel Text

Und dann die \label{name}verlinkte Seite
\end{document}

Ich kompiliere in Kile (tetex/Linux) mit latex -> dvips -> ps2pdf und schaue mir die pdf-Datei mit dem AcrobatReader an.

Wie gehe ich bei einem so umfangreichen Dokument am besten auf Fehlersuche? Mein einziger Anhaltspunkt ist folgende Warnung beim kompilieren:

/usr/share/texmf/tex/latex/hyperref/hyperref.sty:0: You have requested, on input line 96, version`1997/11/10' of package keyval,but only version`'is available.

Ansonsten bin ich aber ziemlich ratlos :confused: Bin für jede Hilfe dankbar :)

PS Mein Projektverzeichnis habe ich auch schon aufgeräumt und alle beim kompilieren automatisch erstellten Dateien gelöscht. Hat aber keine Änderung gebracht.

MasterOfPuppets
11-02-2007, 18:26
Wie oft nacheinander kopilierst du denn deine Datei? Manchmal brauchts den ein oder anderen Durchlauf mehr.

Hobbes
11-02-2007, 19:36
Kile macht das automatisch zweimal, wenn neue Referenzen entdeckt werden. Inzwischen habe ich es aber so oft kompiliert, dass eigentlich alles auf aktuellem Stand sein sollte.

Ich habe mal in der *.aux-Datei nachgesehen und folgendes entdeckt:

Beispieleinträge für funktionierende Links


\newlabel{korrektur_polynomdivision}{{9.2}{112}{Re chenregeln für Polynome:\relax }{section*.88}{}}
\newlabel{korrektur_zeichnung}{{11.3}{135}{FPGA von ACTEL (field programmable gate arrays - FPGA)\relax }{subsection.11.3}{}}
\newlabel{korrektur_klammern}{{4.2}{50}{Aufgabe\re lax }{section*.43}{}}
\newlabel{korrektur_promille}{{A}{141}{Lösung:\rel ax }{section*.133}{}}

Einträge für nicht funktionierende Links, die (bis auf der letzte) alle an die gleiche Stelle springen:


\newlabel{korrektur_spalte_hinzu}{{4.1}{38}{Beispi el Kaffeemaschine\relax }{section*.33}{}}
\newlabel{korrektur_hilfsfunktion}{{4.1}{37}{Beisp iel Kaffeemaschine\relax }{section*.33}{}}
\newlabel{korrektur_pfeilrichtung}{{4.1}{37}{Beisp iel Kaffeemaschine\relax }{section*.33}{}}
\newlabel{tippfehler1}{{4.1}{37}{Beispiel Kaffeemaschine\relax }{section*.33}{}}
\newlabel{tippfehler2}{{4.6}{63}{GAL-Bausteine\relax }{subsection.4.6}{}}

Was sagen die Zahlen nach \relax aus?

EDIT
Die Zahlen 37,38,63 sind die Seiten, auf die gesprungen werden soll. Die stimmen also.

bischi
11-02-2007, 19:52
Um sicher zu gehen: Lösch mal alle nicht selbst erstellten Dateien und kompilier 3 mal neu...

MfG Bischi

Hobbes
11-02-2007, 20:28
Habe ich gemacht. Und es sind wieder genau die gleichen 5 Links falsch :confused: Wenigstens das ist reproduzierbar *seufz*

Ich habe die Labels schon an andere Stellen im Dokument verschoben. Dort wird richtig verlinkt. Aber sobald ich sie wieder an die richtigen Stellen setze... *seufz*

Auch wenn ich die vorherigen Kapitel auskommentiere, wird an die gleiche (falsche) Stelle im Dokument gesprungen. Also nicht auf die gleiche Seite (35), sondern inhaltlich die gleiche Stelle!

Die labels stehen im laufenden Text, also nicht in einer besonderen Umgebung.

Ratlose Grüße :confused:

rais
11-02-2007, 20:51
Moin moin,


Die labels stehen im laufenden Text, also nicht in einer besonderen Umgebung.

na... ein \label bezieht sich grundsätzlich auf einen Zähler, sei es section, figure, equation oder sonst etwas, und der muß dann auch noch mit \refstepcounter erhöht worden sein (was im Fall von \caption (für figure/table), section etc. auch veranlasst wird. Im laufenen Text kannst Du da nur selbst für sorgen:


\newcounter{blubb}
:
wichtiger Text\refstepcounter{blubb}\label{bla}...
:
\pageref{bla}

bzw.


\newcounter{blubb}
\newcommand{\mylabel}[1]{%
\refstepcounter{blubb}%
\label{#1}%
}
:
wichtiger Text\mylabel{bla}...
:
\pageref{bla}
(ungetestet)

MfG,

Hobbes
11-02-2007, 21:29
Cool, damit funktioniert es. Danke an alle, besonders an Rainer.

Was ich aber nicht verstehe: ich habe einige Labels im laufenden Text. Warum funktioniert das bei manchen davon und bei anderen nicht? Es ist für mich nicht nachvollziehbar, was bei den Problemlabels anders ist :confused:

Über eine Erklärung wäre ich dankbar.

rais
11-02-2007, 22:16
Was ich aber nicht verstehe: ich habe einige Labels im laufenden Text. Warum funktioniert das bei manchen davon und bei anderen nicht? Es ist für mich nicht nachvollziehbar, was bei den Problemlabels anders ist :confused:

das hängt mit davon ab, ob Du auf dieser `funzenden´ Seite gerade einen (Unter)Abschnitt angefangen hast (in dem Fall bezieht sich Dein label halt da drauf), oder eine Gleichung oder...
MfG,

Hobbes
12-02-2007, 18:58
Danke für die Erklärung. Das muss ich mal genauer anschauen wenn meine Prüfungen vorbei sind.

Gruß
Hobbes