hyperref 提前停止有什么副作用?

hyperref 提前停止有什么副作用?

在此处输入图片描述

\documentclass{beamer}
\usepackage{lmodern}
\usepackage{caption}
\begin{document}
\begin{frame}{Are you kidding?}
No! I am not a good joker.
\end{frame}
\end{document}

以下内容摘自 Ulrike 的评论:

beamer 使用选项 加载 hyperref implicit=false。此选项 在 hyperref 的\endinput命令中 插入一个\MaybeStopEarly,导致 hyperref 的大约 2000 行代码未执行。这 2000 行包含大量定义和重新定义。例如,其中之一是它在 \@caption命令 中插入。因此,通过给出一个空定义\hyper@makecurrent{\@captype}来消除警告 \hyper@makecurrent很可能不会启用超链接支持

下一个问题是:为什么 Beamer 无法完全加载 hyperref?目的是什么?

答案1

查看caption软件包文档,以下几行是导致警告的原因:

\caption@IfPackageLoaded{hyperref}[2003/11/30 v6.74m]{%
 \@ifundefined{hyper@makecurrent}{% hyperref has stopped early
 \caption@WarningNoLine{%
 Hyperref support is turned off\MessageBreak
 because hyperref has stopped early}%
 }{%

hyperref因此,由于使用文档类时包未完全加载,因此会产生警告beamer

所以如果你真的需要使用该caption包并且想要摆脱警告,你可以添加以下几行

\makeatletter
\newcommand\hyper@makecurrent[1]{}
\makeatother

正在加载caption包。

相关内容