具有相同标签的不同方程式会导致错误引用

具有相同标签的不同方程式会导致错误引用

我想实现类似的东西这个问题,除了我还想引用上述方程式。这是一个最小的例子:

\documentclass[12pt]{article}
\usepackage[hidelinks]{hyperref}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathtools}

\begin{document}
\section*{Chapter A}
\begin{equation}\label{star1}\tag{$\star$}
    a^2 + b^2 = c^2
\end{equation}
The main equation of this chapter is the Pythagorean theorem, \eqref{star1}.

\pagebreak

\section*{Chapter B}
\begin{equation}\label{star2}\tag{$\star$}
    i^2 = -1
\end{equation}
The main equation of this chapter is the definition of the imaginary unit, \eqref{star2}.
\end{document}

问题是\eqref{star2}指向毕达哥拉斯。我还收到了这个警告,我确信它是相关的: destination with the same identifier (name{equation.0.1}) has been already used, duplicate ignored <to be read again>

提前致谢。

答案1

该包hyperref应该最后加载:只有少数包需要在它之后加载,而 MWE 中的任何包都不需要加载。

但是,这并不能解决问题。问题在于竞争条件:如果在之前扫描了,equation则相关计数器将步进,然后重置为其先前的值,但为时已晚,并且已经提供了一个锚点。\tag\end{equation}hyperref

标签相同不是问题,尽管我会谨慎地这样做,因为它可能会让读者感到困惑。

使用equation*解决了该问题。

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage[hidelinks]{hyperref}

\begin{document}

\section*{Chapter A}
\begin{equation*}\label{star1}\tag{$\star$}
    a^2 + b^2 = c^2
\end{equation*}
The main equation of this chapter is the Pythagorean theorem, \eqref{star1}.

\pagebreak

\section*{Chapter B}
\begin{equation*}\label{star2}\tag{$\star$}
    i^2 = -1
\end{equation*}
The main equation of this chapter is the definition of the imaginary unit, \eqref{star2}.
\end{document}

相关内容