![具有相同标签的不同方程式会导致错误引用](https://linux22.com/image/424412/%E5%85%B7%E6%9C%89%E7%9B%B8%E5%90%8C%E6%A0%87%E7%AD%BE%E7%9A%84%E4%B8%8D%E5%90%8C%E6%96%B9%E7%A8%8B%E5%BC%8F%E4%BC%9A%E5%AF%BC%E8%87%B4%E9%94%99%E8%AF%AF%E5%BC%95%E7%94%A8.png)
我想实现类似的东西这个问题,除了我还想引用上述方程式。这是一个最小的例子:
\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}