我创建了一个 beamer 演示文稿,我想使用 beamer 选项在同一页上显示注释show notes on second screen=right
。禁用此选项后,生成的 PDF 中的页码将与每一帧的帧号匹配。但是,当我启用此选项时,生成的 PDF 文档中的页码完全不正确,不再与帧号匹配。我希望此编号匹配,因为如果我愿意,它可以更轻松地在幻灯片之间跳转。
(请注意,我说的不是始终递增的绝对页码,而是可以在 PDF 中手动设置的页码。在下面的屏幕截图(在 Adobe Acrobat 中拍摄)中,我说的是页码 5,而不是 10。)
我创建了一个 MWE 来展示该问题:
\documentclass{beamer}
\setbeameroption{show notes on second screen=right}
\begin{document}
\frame{\titlepage}
\begin{frame}
\begin{itemize}
\item Page number should be \insertframenumber
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}
\item Page number should be \insertframenumber
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}
\item Page number should be \insertframenumber
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}
\item Page number should be \insertframenumber
\item<2-> Some extra items
\item<3-> To see whether weird things happen
\item<3-> When I add overlay specifications in a frame
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}
\item Page number should be \insertframenumber
\item<2-> Some extra items
\item<3-> To see whether weird things happen
\item<4-> When I add overlay specifications
\item<5-> In a frame
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}
\item Page number should be \insertframenumber
\item From this point on, the page numbers even start reversing
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}
\item Page number should be \insertframenumber
\item<2-> But it only gets weirder
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}
\item Page number should be \insertframenumber
\item<2-> But it keeps jumping to 6
\item<3-> and back
\item<4-> and back to 6
\end{itemize}
\end{frame}
\end{document}
MWE 不会加载除 beamer 类之外的任何包,并且它会将注释配置为显示在第二个屏幕上。其余代码只是创建一些框架,有时带有覆盖规范(它很可能被缩短,但我无法找出究竟是什么产生了问题)。
我已经尝试使用以下BeforeBeginEnvironment
命令实施修复(在我看来,这是一种黑客行为):etoolbox
\usepackage{etoolbox}
\BeforeBeginEnvironment{frame}{\renewcommand{\thepage}{\insertframenumber}}
虽然这确实会影响 PDF 中生成的页码,但仍然是不正确的。其他etoolbox
命令(例如AtBeginEnvironment
、AtEndEnvironment
和)AfterEndEnvironment
似乎没有任何效果。在命令\setcounter{page}{\insertframenumber}
中使用{Before/After/At}{Begin/End}Environment
也会导致不正确的结果。
下面,我总结了在我的系统上使用各种方法生成的 PDF 页码以及上面给出的 MWE。所有 PDF 文档都是用 生成的pdflatex
。我已对方法进行了编号,以使表格易于阅读。
- 无注释(正确编号)
- 注意,没有额外的命令
- 备注,
BeforeBeginEnvironment
续订\thepage
- 注释,
BeforeBeginEnvironment
设置page
计数器
绝对页码 | 方法 1 | 方法 2 | 方法 3 | 方法 4 |
---|---|---|---|---|
1 | 1 | 1 | 1 | 1 |
2 | 2 | 1 | 1 | 1 |
3 | 3 | 2 | 2 | 2 |
4 | 4 | 2 | 2 | 1 |
5 | 5 | 3 | 3 | 3 |
6 | 5 | 3 | 3 | 2 |
7 | 5 | 4 | 4 | 4 |
8 | 6 | 4 | 4 | 3 |
9 | 6 | 5 | 5 | 5 |
10 | 6 | 5 | 5 | 4 |
11 | 6 | 5 | 5 | 5 |
12 | 6 | 6 | 5 | 5 |
十三 | 7 | 5 | 5 | 5 |
14 | 8 | 7 | 5 | 6 |
15 | 8 | 6 | 6 | 6 |
16 | 9 | 8 | 6 | 5 |
17 | 9 | 6 | 6 | 6 |
18 | 9 | 9 | 6 | 6 |
19 | 9 | 6 | 6 | 6 |
导致此问题的原因是什么?我该如何修复它,以便我既可以使用注释又可以获得正确的编号?
编辑:我对这种行为做了一些进一步的研究,发现它实际上是由pdfpages
用于在beamer
框架旁边插入注释页的包引起的。pgfpages
文档也对此发出警告:
另一个需要注意的是:使用
pgfpages
将在文件中产生错误的页码.aux
。
类似的问题几年前就有人问过,虽然它确实有答案,但遗憾的是,当我在 MWE 中包含该答案中提供的代码时,我无法获得编译后的 PDF。相反,pdflatex
似乎进入了一个无限循环,不断产生新的页面。对此答案的评论证实了这种行为。此外,虽然我可能能够理解该问题的答案中发生了什么,但我不知道如何调试遇到的问题,更不用说修复它了。