问题

问题

问题

你好。我目前正在写论文,并将方程式按部分编号。我也使用subequations。但是,amsmath当我一起使用amsmathhyperrefcleveref时,我会收到 2 条有关具有相同标识符的目标的警告。结果是\cref{eq:2a}pdf 中的编号正确,但超链接指向eq:1a

数学方程

\documentclass{book}

\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{cleveref}

\numberwithin{equation}{section}

\begin{document}
This is a test.

\section{Section 1}

\begin{subequations}\label{eq:1}
\begin{align}
x=y\label{eq:1a}
\end{align}
\end{subequations}

\section{An error}

\begin{subequations}\label{eq:2}
\begin{align}
1=2\label{eq:2a}
\end{align}
\end{subequations}

\end{document}

辅助

果然,

\newlabel{eq:1}{{0.1.1}{1}{Section 1\relax }{equation.0.0.1.1}{}}
\newlabel{eq:1@cref}{{[equation][1][0,1]0.1.1}{1}}
\newlabel{eq:1a}{{0.1.1a}{1}{Section 1\relax }{equation.0.0.1a}{}}
\newlabel{eq:1a@cref}{{[equation][1][0,1]0.1.1a}{1}}
\@writefile{toc}{\contentsline {section}{\numberline {0.2}An error}{1}{section.0.2}}
\newlabel{eq:2}{{0.2.1}{1}{An error\relax }{equation.0.0.1.1}{}}
\newlabel{eq:2@cref}{{[equation][1][0,2]0.2.1}{1}}
\newlabel{eq:2a}{{0.2.1a}{1}{An error\relax }{equation.0.0.1a}{}}
\newlabel{eq:2a@cref}{{[equation][1][0,1]0.2.1a}{1}}

警告

pdfTeX warning (ext4): destination with the same identifier (name{equation.0.0.1a}) has been already used, duplicate ignored
pdfTeX warning (ext4): destination with the same identifier (name{equation.0.0.1.1}) has been already used, duplicate ignored

该怎么办?

所有软件包也都已更新。因此,我尝试了一些方法,可以让它在没有任何警告的情况下正常工作,但从我的角度来看,没有一个是理想的解决方案。

  1. 移除所有subequations
  2. 删除行\numberwithin{equation}{section}
  3. 删除包cleveref
  4. 删除包hyperref

这无疑与如果方程式带有 \tag 并且使用了 cleveref,则 Hyperref 会跳转到错误的方程式并且使用 `hyperref` 交叉引用链接到错误的方程式但我无法利用这些问答来帮助我。

如果有人能够阐明这个问题或者提出解决方法我将不胜感激。

提前致谢!

答案1

因此,我通过尝试调用包和行的时间找到了以下解决方案,结果表明,如果\numberwithin{}{}在之前调用该行\cleveref,则不会出现任何警告,并且超链接会按预期工作,即

\documentclass{book}

\usepackage{amsmath}
\usepackage{hyperref}
\numberwithin{equation}{section}
\usepackage{cleveref}

\begin{document}
...
\end{document}

我不知道这些软件包的底层发生了什么,所以我很想知道为什么会这样。这似乎(至少对我来说)hyperref和之间的行为相当奇怪,cleveref但也许这是可以预料到的。

同时,感谢所有帮我查看这个问题的人!

相关内容