等式中的 Hyperref 和 nonumber/notag:

等式中的 Hyperref 和 nonumber/notag:

编译我的文本文档时,我收到以下警告:

[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 比较特殊,应该放在后面)。

相关内容