Was ist im folgenden Minimalbeispiel falsch an meiner dmath
Gleichung? Warum nennt hyperref sie eine Abbildung, während autoref
der Linktext für eine Gleichung, die mit definiert ist, korrekt ist?\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}
Das Dokument enthält drei Hyperlinks zu Gleichungen und einen zur Abbildung. In der Ausgabe steht jedoch dreimal „Abbildung“ und nur einmal „Gleichung“. Alle Links zu breqn-Umgebungen sind falsch.
Dabei wird die richtige Zahl verwendet, jedoch der falsche Text, kombiniert zu der so genannten „Abbildung 2“, die im Dokument gar nicht vorkommt.
Das Vertauschen der Zeilenreihenfolge \usepackage
ändert nichts.
Wie verwendet man „ \label
on“ \begin{dmath}
und „ \begin{dgroup}
-Umgebungen“ richtig?
Antwort1
Die Umgebung dmath
des Pakets breqn
wird nicht \refstepcounter
für die Erhöhung des Zählers verwendet equation
. Das Paket hyperref
greift zu \refstepcounter
, um einen Hyperanker als Linkziel hinzuzufügen. Daher verwendet Ihr Beispiel den Anker vor ( figure.1
) und Sie erhalten die vorherige Abbildung als Linkziel.
Problemumgehung: Die folgenden Beispiel-Patches \eq@setnumber
können \refstepcounter
stattdessen verwendet werden \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}