\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
包。