다음 최소 예에서 내 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개가 있습니다. 그러나 출력에는 "Figure"가 세 번 표시되고 "Equation"은 한 번만 표시됩니다. 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}