次の最小限の例では、私のdmath
方程式のどこが間違っているのでしょうか? ハイパーリファレンスはこれを図と呼んでいるのに、autoref
次のように定義された方程式のリンクテキストを正しく取得するのはなぜでしょうか?\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}
ドキュメントには、方程式へのハイパーリンクが 3 つと、図へのハイパーリンクが 1 つあります。しかし、出力には「図」が 3 回表示され、「方程式」は 1 回しか表示されません。breqn 環境へのリンクはすべて間違っています。
正しい数字が使用されていますが、間違ったテキストが組み合わされて、実際にはドキュメントに存在しない「図 2」が形成されています。
行の順序を入れ替えても\usepackage
違いはありません。
および環境\label
での正しい使用方法は何ですか?\begin{dmath}
\begin{dgroup}
答え1
dmath
パッケージの環境は、カウンターの増分にはbreqn
使用されません。パッケージは、ハイパーアンカーをリンクターゲットとして追加するためにフックします。したがって、例では、() の前のアンカーを使用し、前の図をリンクターゲットとして取得します。\refstepcounter
equation
hyperref
\refstepcounter
figure.1
回避策:代わりに次のサンプル パッチを\eq@setnumber
使用します。\refstepcounter
\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}