No exemplo mínimo a seguir, o que há de errado com minha dmath
equação? Por que o hyperref chama isso de Figura, enquanto autoref
corrige o texto do link para uma equação definida com\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}
O documento possui três hiperlinks para equações e um para a figura. Mas a saída diz “Figura” três vezes e “Equação” apenas uma vez. Todos os links para ambientes breqn estão errados.
Ele está usando o número correto, mas o texto errado, combinado para formar a "Figura 2" que na verdade não existe no documento.
Trocar a ordem das \usepackage
linhas não faz diferença.
Qual é a maneira correta de usar \label
em \begin{dmath}
ambientes \begin{dgroup}
?
Responder1
O ambiente dmath
do pacote breqn
não se utiliza \refstepcounter
para a incrementação do contador equation
. O pacote hyperref
é conectado \refstepcounter
para adicionar uma hiperâncora como destino do link. Portanto, seu exemplo usa a âncora antes de ( figure.1
) e você obtém a figura anterior como destino do link.
Solução alternativa: os seguintes patches de exemplo \eq@setnumber
devem ser usados \refstepcounter
em vez 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}