为什么 hyperref 文档建议使用 gather 而不是 equation?

为什么 hyperref 文档建议使用 gather 而不是 equation?

hyperref 文档,有一个相当神秘的建议用来gather代替equation

“情况equation尚不明朗,因为没人有兴趣调查”

在此处输入图片描述

我理解为什么eqnarray不推荐,但这是我第一次听说有问题equation?如何解释?

答案1

这一切在历史中都有些失落,但是在使用hyperref许多带标签的东西时,需要有某种东西来在最终的 pdf 中创建一个可以跳转到的目的地。

这些不可见节点在某些情况下会影响间距,这是 TeX 中一个长期存在的问题。特别是,它们会阻止一个宏回顾并“看到”最后添加的垂直空间。您会看到类似的\color影响间距的问题(通常通过使用来解决\textcolor)。

equation是 TeX 原始$$构造周围的一个非常薄的包装器,因此对于在方程式上方添加垂直空间的位置(相对于 hyperref 想要注入的任何 whatsit 节点)几乎没有提供控制。

相反,amsmath环境已经抓取整个环境,测量宽度和对齐点,然后通过 tex 宏构建显示以插入主页,因此 hyperref 对注入 hyperref 节点的位置有更多的控制权。

话虽如此,该评论已经过时,可能意味着也可能不意味着当前的超链接代码确实存在问题equation

答案2

我也不推荐这种解决方案,我很高兴equation使用hyperref

我能想到的唯一一个是这个奇怪的小东西

\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage[colorlinks]{hyperref}
%\let\equation\gather
%\let\endequation\endgather
\begin{document}

\begin{equation}
  test \nonumber
\end{equation}


\begin{gather}
  test 
\end{gather}
\end{document}

如果不进行更改,equation您将收到此警告:

pdfTeX warning (ext4): destination with the same identifier (name{eq
uation.0.1}) has been already used, duplicate ignored

\AtBegShi@Output ...ipout \box \AtBeginShipoutBox 
                                                  \fi \fi 
l.19 \end{document}

equation如果你不知道+ 的组合\nonumber在以下情况下存在问题,那么调试起来会很麻烦:hyperref

如果你知道它们有问题,那么只需找到它们并移除\nonumber并替换equationequation*

我想知道是否还有其他原因

相关内容