我正在尝试制作演示文稿的讲义版本:即每组幻灯片中只有最后一张幻灯片的版本。阅读完后,我安装pgfpages
并更改了:
\documentclass{beamer}
到
\documentclass[handout]{beamer}
\usepackage{pgfpages}
但是,我收到了错误:
! Class beamer Error: Overprints may not overlap.
(我会注意到演示文稿的原始版本可以编译,没有问题。)
有什么想法吗?我是不是搞错了,还有其他方法可以制作讲义吗?
答案1
这是因为 Beamer 折叠幻灯片的方式handout
。除非另有说明,否则一切最终以handout
版本为准。除了少数情况下它会尝试正确地执行操作(例如\alt
命令)外,它不会试图表现得太聪明,找出什么与什么相冲突。
(这是一件好事:这些决定通常很棘手,应该由人来做。最好是撰写演示文稿的人。)
但幻灯片上的内容可能不应该一起显示。一个简单的例子可能是使用一些\only
s 来表示一组更复杂的替代文本。例如,\(\pi = \only<1>{3}\only<2>{22/7}\only<3>{3.1415}\)
。那么很明显,幻灯片上应该只有一个handout
,但 beamer 会默认显示所有这些。
幸运的是,Beamer 可以轻松控制handout
帧上的内容。叠加规范可以有一个“讲义特定”部分,其形式为handout:XYZ
。规范的不同部分由条形分隔,因此复杂的规范可以是:<2-3|handout:0|trans:1>
。“默认”为,beamer
因此它显示为:“在beamer
模式下,在幻灯片 2 和 3 上显示此内容,handout
完全不表现出来,在transparency
模式下,在幻灯片 1 上显示此内容。”。
注意“完全不表现出来“。指定幻灯片0
意味着“不显示”。
在特定情况下,您使用的是overprint
环境。在此环境中,使用\onslide
s 来分隔内容,并且这些内容必须具有互斥的叠加规范(因为材料要在不同的幻灯片上指定)。由于模式handout
将它们全部折叠,即使它们在 中是互斥的,beamer
它们也不在 中handout
。所以我们必须通过输入“不显示”规范使它们再次互斥。由于版本中通常只有一张每帧幻灯片handout
,这意味着将handout:0
规范放在除一张之外的所有\onslide
s 上。
因此,在overprint
环境中,改变如下内容:
\onslide<2-3>
到
\onslide<2-3|handout:0>