2010-04-30 9 views
11

Ich versuche, einen Verweis auf ein Float erstellen, die keine Beschriftung verwendet. Wenn ich \ label {foo} innerhalb des Floats einschließe und es mit \ pageref {foo} referenziere, wird die korrekte Seitennummer in meinem PDF - Dokument angezeigt, aber der vom hyperref - Paket erstellte Hyperlink verweist auf eine andere Seite (die erste Seite des Sektion). Wenn ich eine Überschrift vor dem Label im Float einfüge, wird der Hyperref-Link auf die richtige Seite gesetzt.LaTeX Hyperref Link geht zur falschen Seite

Gibt es eine Möglichkeit, die Hyperref-Verknüpfung korrekt zu funktionieren, ohne eine Beschriftung in den Float aufzunehmen? Oder gibt es eine Möglichkeit, die Anzeige einer Beschriftung zu unterdrücken, so dass ich eine hinzufügen kann, ohne dass sie angezeigt wird?

Unten ist ein minimales Beispiel. Wenn ich es mit pdflatex bearbeite, bekomme ich drei Seiten. Die "Figur" wird auf der zweiten Seite angezeigt, und die dritte Seite sagt richtig "Siehe Abbildung auf Seite 2." Aber der Hyperlink auf der '2' sagt "Gehe zu Seite 1", und wenn ich darauf klicke, gehe ich auf Seite 1.

Wenn ich eine leere \ caption {} vor die \ label {foo} stelle, dann Der Hyperlink funktioniert korrekt, aber ich möchte keine Beschriftung für meinen Float anzeigen.

\documentclass[11pt]{memoir} 

\usepackage{hyperref} 

\begin{document} 

some text 
\clearpage 


\begin{figure} 
    a figure 
    \label{foo} 
\end{figure} 

more text 
\clearpage 


See figure on page \pageref{foo}. 

\end{document} 
+2

ich davon ausgegangen, dies mit einer Beschriftung in dem Schwimmer wie erwartet funktioniert? – Mica

+0

Richtig - wenn ich eine Beschriftung einfüge, geht der Hyperlink zur rechten Seite. – ecto

+1

Setzen Sie \ caption vor \ label in den Float? LaTeX erzeugt sonst falsche Zahlen. Bitte poste ein minimales Beispiel, damit wir es versuchen können. – sastanin

Antwort

13

Der Befehl \label verweist auf den letzten Aufruf von \refstepcounter. \caption erkennt, dass es sich um eine Figurenumgebung handelt und ruft \refstepcounter{figure} auf. Sie können \refstepcounter selbst anrufen.

Um zu vermeiden, dass eine Zahl in der Zahlenreihe übersprungen wird, können Sie mit \newcounter{dummy} einen eigenen, bedeutungslosen Zähler erstellen. Das Ergebnis lautet:

\documentclass{scrreprt} 
\usepackage{hyperref} 
\newcounter{dummy} 
\begin{document} 

\chapter{First} 

\newpage 
\begin{figure} 
{\Huge FIGURE} 
\refstepcounter{dummy} 
\label{fig:figure} 
\end{figure} 

\chapter{Second} 

Goto \pageref{fig:figure} 

\end{document} 

Erstellt einen Hyperlink zum Ende der Abbildung. (funktioniert auf meiner Maschine :-) Hinweis als \ref{fig:figure} ist bedeutungslos.

0

das caption Paket Laden soll Beschriftung Ausgabe von leeren Beschriftungen unterdrücken. Die Beschriftungen für Gleitkommazahlen werden immer durch den Beschriftungsbefehl vor dem Beschriftungsbefehl festgelegt.

+0

Warum wird die Seitenzahl für \ pageref korrekt angezeigt, wenn ich keine Beschriftung einfüge? Nur der Hyperlink ist falsch. Ich habe gerade versucht, das Titelpaket zu laden, aber leider hat es die Untertitelausgabe nicht unterdrückt. Es zeigt immer noch als "Abbildung 0.1:". – ecto

3

Kurz vor dem Etikett Verwendung \ phantom, etwa so:

\documentclass{memoir} 
\usepackage{hyperref} 
\begin{document} 
some text 
\clearpage 
\begin{figure} 
a figure 
\phantomsection 
\label{foo} 
\end{figure} 
more text 
\clearpage 
See figure on page \pageref{foo}. 
\end{document} 

:)