以下代码会报错
\documentclass{beamer}
\begin{document}
\begin{frame}
\mode
<presentation>
some text
\mode
<article>
\begin{exampleblock}{Exemple}
tttttt
\end{exampleblock}
\mode
<all>
\end{frame}
\end{document}
它似乎与 有关系exampleblock
:如果我将其替换为block
,则不会出现错误。但由于规范\mode
,beamer 在读取该行时应该处于吞噬状态。另外,如果我删除规范\mode
,也不会出现错误。
我怀疑这是 beamer 的一个 bug。我刚刚通过 tlmgr 升级到最新版本:这种情况仍然会发生。
不过,也许我做错了什么?
如果这确实是一个错误,我该如何解决它直到它被纠正?
(有人可能想知道为什么我在文章模式中使用块;这是因为我无法在演示文稿中展示一系列示例,但我仍然希望在 beamerarticle 版本中拥有它们全部,并且我希望在那里保持外观的一致性)
答案1
该解决方案需要格式和系统修改。
首先,\mode
, 后面应该跟着所需的模式,<presentation>
或者<article>
,然后紧接着 里面的文本{}
。
这正是您收到“额外} 或忘记的 \endgroup”错误的原因。
当 beamer 排版你的文本时,它总是处于以下五种模式之一:
beamer
是默认模式。second
是排版可选第二个屏幕的幻灯片时使用的模式。handout
是创建讲义的模式。trans
是创建透明胶片的模式。article
是当控制权已转移到另一个类(如 article.cls)时的模式。请注意,如果控制权已转移到 book.cls,则模式也是 article。
除了这些模式之外,beamer 还可以识别以下模式集名称:
all
指所有模式。presentation
指前四种模式,即除冠词模式之外的所有模式。
这是工作代码。
\documentclass{beamer}
\begin{document}
\begin{frame}
\mode<presentation>{some text}
\mode<article>{
\begin{exampleblock}{Exemple}
tttttt
\end{exampleblock}}
\mode<all>{\begin{exampleblock}{Exemple}
tttttt
\end{exampleblock}}
\mode<all>{Some text for example purposes}
\end{frame}
\end{document}
结果是