IEEEtrantools
我在文档类环境中使用该包scrreprt
。我的问题是,当IEEEeqnarray
与一起使用时hyperref
,链接会跳转到节的开头而不是引用的方程式。我怎样才能使链接跳转到方程式?
例子:
\documentclass{scrreprt}
\usepackage[retainorgcmds]{IEEEtrantools}
\usepackage{hyperref}
\begin{document}
\section{The equation}
\newpage
\begin{IEEEeqnarray}{c}
\frac{1}{v(E)}\frac{\partial}{\partial t}\Psi(\mathbf{r},\mathbf{\Omega},E,t)
+ \mathbf{\Omega} \cdot \nabla \Psi(\mathbf{r},\mathbf{\Omega},E,t)
+ \Sigma_t(\mathbf{r},E,t) \Psi(\mathbf{r},\mathbf{\Omega},E,t)
= S(\mathbf{r},\mathbf{\Omega},E,t)
\IEEEeqnarraynumspace
\label{eq:Boltzmann}
\end{IEEEeqnarray}
\newpage
Referencing (\ref{eq:Boltzmann})...
\end{document}
答案1
\phantomsection
只需在 之前添加一个\begin{IEEEeqnarray}{c}
。虽然打印/pdf 中的外观将保持不变,但hyperref
会链接/跳转到那里,而不是\section
上面的(真实)。
已经看到你的下一个问题“对于每个IEEEeqnarray
?!”,你也可以使用
\usepackage{etoolbox}
\AtBeginEnvironment{IEEEeqnarray}{\phantomsection}
之后\usepackage{hyperref}
。在这种情况下,您不需要手动设置 s \phantomsection
。(并且您可能希望向维护者hyperref
Heiko Oberdiek 发送错误报告,他通常会非常乐于助人。)
最后要说的是:原则上,\phantomsection
应该直接位于 之前\label{eq:Boltzmann}
。如果你有一个IEEEeqnarray
包含多个 的\label
,那么超链接将始终指向环境的开头(而不是带有标记方程的行)。因此,你也可以声明(在 之后\usepackage{hyperref}
)
\newcommand{\plabel}[1]{\phantomsection \label{#1}}
\plabel
并在环境\label
内部使用IEEEeqnarray
。
答案2
IEEEtran.cls 1.8 版(以及 IEEEtrantools.sty 1.3 版)现已修复 IEEEeqnarray 下的 hyperref 问题。尽情享用吧!