\hyperref 没有指向定义的标签

\hyperref 没有指向定义的标签

我有一个 beamer 类文档,并且在 \phantomsection 之后直接定义了一个标签。

\begin{frame}
\phantomsection
\label{sec:rotation}
<TEXT>
\end{frame}

但是,在其他地方使用 \hyperref[sec:rotation]{rotation} 引用标签会创建一个链接,该链接不会指向定义该标签的部分,而是指向文档的开头。如何解决这个问题?

答案1

beamerhyperref使用选项加载implicit=false。这会影响 的许多用户命令的行为hyperref。在您的例子中,\phantomsection现在是一个空宏(由 定义\let\phantomsection\@empty)。

要向框架添加标签,您可以使用label={<label name>}环境选项frame

\documentclass{beamer}


\begin{document}
\begin{frame}[label={sec:rotation}]
  content
\end{frame}

\begin{frame}
  % print "macro:->"
  \meaning\phantomsection 
  
  % clicking "rotation" jumps to first frame
  \hyperref[sec:rotation]{rotation}
\end{frame}
\end{document}

相关内容