En el siguiente ejemplo mínimo, ¿qué hay de malo en mi dmath
ecuación? ¿Por qué Hyperref lo llama Figura, mientras que autoref
obtiene el texto del enlace correcto para una ecuación definida con\begin{equation}
\documentclass{amsart}
\usepackage{breqn}
\usepackage[colorlinks]{hyperref}
\begin{document}
\begin{equation}
\label{multiplication}
2 * 1 = 2
\end{equation}
\begin{figure}
\caption{Something strange}
\label{fig}
\end{figure}
\begin{dmath}\label{addition}
1 + 1 = 2
\end{dmath}
I want to talk about \autoref{addition}, not \autoref{fig}.
\begin{equation}
\label{subtraction}
2 - 1 = 1
\end{equation}
And \autoref{multiplication} is not very interesting. Let me speak of \autoref{addition}.
\end{document}
El documento tiene tres hipervínculos a las ecuaciones y uno a la figura. Pero el resultado dice "Figura" tres veces y "Ecuación" sólo una vez. Todos los enlaces a entornos breqn son incorrectos.
Está utilizando el número correcto, pero el texto incorrecto, combinado para formar la "Figura 2" que en realidad no existe en el documento.
Cambiar el orden de \usepackage
las líneas no hace ninguna diferencia.
¿Cuál es la forma correcta de utilizarlo \label
en entornos \begin{dmath}
y \begin{dgroup}
?
Respuesta1
El entorno dmath
del paquete breqn
no se utiliza \refstepcounter
para el incremento del contador equation
. El paquete hyperref
se engancha \refstepcounter
para agregar un hiperancla como destino del enlace. Por lo tanto, su ejemplo utiliza el ancla antes de ( figure.1
) y obtiene la figura anterior como destino del enlace.
\eq@setnumber
Solución alternativa: se deben utilizar los siguientes parches de ejemplo \refstepcounter
en lugar de \stepcounter
:
\documentclass{amsart}
\usepackage{breqn}
\usepackage{etoolbox}
\usepackage[colorlinks]{hyperref}
\makeatletter
\patchcmd\eq@setnumber{\stepcounter}{\refstepcounter}{}{%
\errmessage{Patching \noexpand\eq@setnumber failed}%
}
\makeatother
\begin{document}
\begin{figure}
\caption{Something strange}
\label{fig}
\end{figure}
\begin{figure}
\caption{Something strange}
\label{fig2}
\end{figure}
\begin{dmath}\label{addition}
1 + 1 = 2
\end{dmath}
I want to talk about \autoref{addition}, not \autoref{fig}.
\begin{equation}
\label{subtraction}
2 - 1 = 1
\end{equation}
And \autoref{subtraction} is not very interesting. Let me speak of
\autoref{addition}.
\end{document}