编译我的文本文档时,我收到以下警告:
[5] [6] [7pdfTeX warning (ext4): destination with the same identifier (name{equ
ation.2.0.10}) has been already used, duplicate ignored
\AtBegShi@Output ...ipout \box \AtBeginShipoutBox
\fi \fi
l.210 \end{equation}
快速谷歌搜索显示,这是 hyperref 与抑制方程式编号有关的问题:它建议使用
\begin{align*} ... \end{align*}
代替
\begin{align} ... \notag \end{align}
其视觉效果与不显示方程编号相同。到目前为止,一切顺利。 但如果我想为对齐环境的最后一行添加一个方程编号,而只抑制所有前面行的编号,该怎么办?
\notag
尽管我一直使用这个警告,但它只出现一次,这让我感到困惑。
这是一个简单的例子:
\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[T1]{fontenc}
\usepackage[pdftex, colorlinks=true,bookmarksnumbered=true]{hyperref}
\usepackage{amsmath}
\usepackage[hyperref, amsmath, thmmarks]{ntheorem}
\begin{document}
\begin{equation}
\begin{split}
(a+b)^2 = \\
a^2 + 2ab + b^2
\end{split}
\end{equation}
\end{document}
有问题的包是ntheorem
,有问题的命令是分割环境,如果我删除其中任何一个,我就不会再收到任何警告。
答案1
至少对于您的最小示例,用 替换equation
环境就足够了gather
。正如 hyperref 自述文件所述:\let\equation\gather \let\endequation\endgather
。您还应该在 amsmath 之后加载 hyperref(通常 hyperref 应该是最后加载的包,但 ntheorem 比较特殊,应该放在后面)。