PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : falsche Seitenangabe bei \vref{}



miwieg
20-11-2006, 09:53
Hallo!

Ich habe das Problem, dass die Seitenangaben bei der Verwendung von \vref{} nicht immer stimmen. Momentan verfasse ich eine tex-Datei, die 103 Seiten lang ist (wenn konvertiert in .ps-Format). Es scheint so, als wären nur die Referenzen auf "labels", die sich auf den Seiten 60-103 befinden, falsch. Es wird immer auf die vorherige Seite verwiesen. Also wenn \vref{} auf Seite 89 verweisen sollte, weil sich dort z.B. die entsprechende Graphik mit dem entsprechenden label befindet, zeigt es auf Seite 88.

Ich kann absolut keinen Fehler im tex-code feststellen. Kann es vielleicht daran liegen, das ich in einer falschen Reihenfolge kompiliere? Momentan benutze ich ein Shellskript, das die folgenden Kommandos ausführt:



latex abc.tex
bibtex abc
latex abc.tex
latex abc.tex
dvips abc.dvi > abc.ps
rm -f *~ *.log *.aux *.bbl *.toc *.lot *.lof *.log *.blg *.dvi


Wo liegt der Fehler?

Vielen Dank im Voraus!

rais
20-11-2006, 20:54
Moin moin,

Also wenn \vref{} auf Seite 89 verweisen sollte, weil sich dort z.B. die entsprechende Graphik mit dem entsprechenden label befindet, zeigt es auf Seite 88.

eigentlich hört es sich so an, als würdest Du bei der entsprechenden Graphik erst das \label setzen und danach die \caption - das solltest Du umdrehen, sonst bezieht sich das \label wohlmöglich auf die vorangegangene \section (oder was auch immer zuletzt, wenn auch intern, \refstepcounter benutzt hat.
Andernfalls könntest Du eine so fehlverlinkte Graphik einmal in ein neues Dokument kopieren, ebenso Deine Präambel, vllt noch etwas blindtext (damit die Graphik halt nicht auf der ersten Seite landet), schaust nach, ob der Fehler in dieser neuen, wesentlich kürzeren Datei auch noch auftritt und wenn ja, fängst Du an, Pakete und Befehle aus der Präambel auszukommentieren, bis da praktisch nur noch


\documentclass{scrartcl}
\usepackage{blindtext,graphicx,varioref,hyperref}
\begin{document}
text...
graphik...
\end{document}
übrig ist. Wenn der Fehler damit dann noch auftritt, dann kannst Du diesen Code hier posten - wenn nicht, dann hast Du den Fehler wohl gerade selbst entdeckt ;)

PS) heißt es wirklich ``dvips foo.dvi > foo.ps''? Ich dachte, ein ``dvips foo.dvi'' tät's bereits...
MfG,

miwieg
21-11-2006, 09:39
Hallo!

Also die Reihenfolge caption-label habe ich IMMER eingehalten. Das Problem tritt ja nicht nur bei Graphiken bzw. Figures auf sondern bei allen Referenzen auf Labels ab Seite 60. Wenn ich z.B. einen Label irgendwo auf Seite 55 setze, der vorher auf Seite 65 war, so wird auf einmal die richtige Seitenzahl angegeben.
Vielleicht ist es auch gar kein Fehler im Code, sondern an der Latex Version, die ich benutze. Ich habe nämlich gerade eben, die Datei mit pdflatex kompiliert. Hier wurden alle Referenzen auf Labels mit der richtigen Seitenzahl aufgelöst.
Das ist mir einfach ein Rätsel.

rais
21-11-2006, 22:36
Moin moin,


Also die Reihenfolge caption-label habe ich IMMER eingehalten.

immer mit der Ruhe :)
da Du keinen Code gepostet hast (wär' in diesem Fall auch eher lästig) und ich gerade mal wieder im Auftrag des Herrn unterwegs bin (und ich weigere mich partout, meine Glaskugel mit auf Reisen zu nehmen), bin ich hierbei gezwungen, aus dem Kaffeesatz zu lesen :p
Otoh sagte ich "es hört sich so an" -- und bei den aus Post#1 gelesenen Informationen tat's das für mich auch...


Das Problem tritt ja nicht nur bei Graphiken bzw. Figures auf sondern bei allen Referenzen auf Labels ab Seite 60. Wenn ich z.B. einen Label irgendwo auf Seite 55 setze, der vorher auf Seite 65 war, so wird auf einmal die richtige Seitenzahl angegeben.

OK, dann nimm den etwas längeren Weg:
kopier' die gesamte Datei in ein neues Dokument, (d.h., wenn Du Dein Dokument in mehrere Dateien untergliedert hast, dann quastest Du erstmal _alles_ in eine Datei, also statt \include{bla} bzw \input{bla} packst Du den Inhalt von bla.tex an die Stelle von eben \include/\input - und dann schaust Du, ob sich allein dadurch bereits ein Unterschied im Verlinken ergeben hat (der Teufel steckt ja bekanntlich im Detail)). Dann fängst Du an, blockweise auszukommentieren, also z.B. alles im Dokumentteil von Seite 1 bis 59... tritt der Fehler noch auf, dann verschiebst Du \end{document} an die Stelle , wo ehemals Seite, hmm, 61 gewesen sein mag. Tritt der Fehler noch auf? Theoretisch hast Du jetzt nur noch zwei Seiten, aber das wär mir immer noch zu viel: versuch Dich mal nach dem binären Suchmuster selbst weiter vorzutasten.
Fein, ich hätte natürlich auch sagen können:"Erstell bitte ein Minimalbeispiel (http://www.minimalbeispiel.de)", aber eigentlich dachte ich, das wär' aus meinem vorherigen Post schon klargeworden - und Dein Problem hört sich ja wirklich knifflig an, aber ohne Minimalbeispiel kann ich auch nur sagen:


Das ist mir einfach ein Rätsel.
MfG,

voss
21-11-2006, 22:46
Hallo!

Ich habe das Problem, dass die Seitenangaben bei der Verwendung von \vref{} nicht immer stimmen. Momentan verfasse ich eine tex-Datei, die 103 Seiten lang ist (wenn konvertiert in .ps-Format). Es scheint so, als wären nur die Referenzen auf "labels", die sich auf den Seiten 60-103 befinden, falsch. Es wird immer auf die vorherige Seite verwiesen. Also wenn \vref{} auf Seite 89 verweisen sollte, weil sich dort z.B. die entsprechende Graphik mit dem entsprechenden label befindet, zeigt es auf Seite 88.


hast du vor Seite 60 sowas wie \section*, also mit Stern?

Herbert

miwieg
23-11-2006, 10:15
Also so etwas wie section* taucht an fraglicher Stelle nicht auf. Ich habe jetzt auch aufgegeben, nach einem Fehler zu suchen. Bin mittlerweile davon überzeugt, dass es an dem fehlerhaften compiling liegen muss, sonst müsste ja pdflatex auch nicht funktionierten.