2010-04-30 16 views
11

Estoy intentando crear una referencia a un flotador que no usa una leyenda. Si incluyo \ label {foo} dentro del float y hago referencia a él usando \ pageref {foo}, el número de página correcto se muestra en mi documento pdf pero el hipervínculo creado por el paquete hyperref vincula a una página diferente (la primera página del sección). Si incluyo un título antes de la etiqueta en el flotador, el enlace hiperref va a la página correcta.El hiperref de LaTeX va a la página incorrecta

¿Hay alguna manera de que el enlace hyperref funcione correctamente sin incluir un título en el flotante? ¿O hay alguna forma de suprimir la visualización de un título para que pueda incluir uno sin que se muestre?

A continuación se muestra un ejemplo mínimo. Si lo proceso usando pdflatex, obtengo tres páginas. La "figura" se muestra en la segunda página, y la tercera página dice, correctamente, "Ver figura en la página 2". Pero el hipervínculo en el '2' dice "Ir a la página 1", y si hago clic en él me lleva a la página 1.

Si puse un \ caption {} vacío antes de la \ label {foo}, entonces el hipervínculo funciona correctamente, pero no quiero mostrar un título para mi flotador.

\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

que asume esto funciona como se esperaba con una leyenda en el flotador? – Mica

+0

Correcto: si incluyo un título, el hipervínculo va a la página correcta. – ecto

+1

¿Pone \ caption before \ label en el flotador? LaTeX produce números de figura incorrectos de lo contrario. Por favor, publique un ejemplo mínimo para que podamos intentarlo. – sastanin

Respuesta

13

El comando \label hace referencia a la última invocación de \refstepcounter. \caption reconoce que está en un entorno figura y llama al \refstepcounter{figure}. Puede llamar al \refstepcounter por su cuenta.

Para evitar omitir un número en la serie de figuras, puede crear un contador propio, sin sentido con \newcounter{dummy}. El resultado:

\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} 

Crea un hipervínculo hasta el final de la figura. (funciona en mi máquina :-) Nota que \ref{fig:figure} no tiene sentido.

0

Carga del paquete de caption debe suprimir la salida de subtítulos de subtítulos vacíos. Las etiquetas para flotantes siempre están determinadas por el comando caption que precede al comando de etiqueta.

+0

¿Por qué entonces el número de página se muestra correctamente para \ pageref si no incluyo un título? Solo el hipervínculo es incorrecto. Acabo de intentar cargar el paquete de subtítulos, pero lamentablemente no suprimió la salida de subtítulos. Todavía se muestra como "Figura 0.1:". – ecto

3

Justo antes de la etiqueta, el uso de \ phantomsection, así:

\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} 

:)

Cuestiones relacionadas