我已经阅读了此网站上有关 Beamer 中相对叠加规范这一主题的问题,具体来说相对叠加澄清,还有 Beamer 手册、一些博客文章等等。
我必须承认,我对此不太理解。据我所知,当您编写类似<+->
覆盖命令的内容时,您应该期望命令或文本在上一张幻灯片之后呈现。
但是当我编译以下代码时,我没有观察到预期的结果:
\documentclass[xcolor=dvipsnames, 12pt, c]{beamer}
\begin{document}
\begin{frame}{Test}
Blah, blah,\dots (First slide)
\onslide<+->{¡Hola! (Should it be the second slide?)}
\onslide<+->{Perhaps third? No clear\dots}
\end{frame}
\end{document}
onslide
实际上,它会创建第一张幻灯片,其中包含第一张幻灯片的文本,你好!(应该是第二张幻灯片吗?),以及第二部分和最后一部分,以及最后一段文字,也许是第三个?不清楚……。
我认为它应该制作第一张幻灯片,而不任何命令中的文本onslide
,然后是第二张幻灯片,其中包含第一张onslide
文本,依此类推。我是否误解了叠加规范?我认为是这样,但我希望专家能进一步澄清。
答案1
所以,我现在清楚了这个问题,我想把它放在这里以供将来参考,因为虽然链接的问题说明了一切,但它以一种我并不总是容易理解的方式做到了。
首先,使用\onslide
覆盖所有代码的规范后规范和直到下一段代码带有覆盖层。这意味着通常不需要将它们与括号一起使用,除非你想这样做真的奇怪的东西。
其次,symbol+
维护计数器,然后增加其值,以便渲染后续内容在上一张幻灯片中,稍后将增加其他幻灯片的计数器。这意味着使用和叠加规范类似<+->
将在同一张幻灯片中渲染其代码,稍后将帧计数器加 1。
然后,如果出现某些先前的文本已渲染且需要文本或任何代码的情况,在下一张幻灯片中,必须指定<+(1)->
。这样就添加了帧计数器前渲染文本。如果需要连续渲染更多代码,则<+(1)->
必须添加覆盖规范。
这个最小的工作示例显示了第一张幻灯片中带有一些文本的框架,然后依次显示了其他部分,采用了相对叠加:
\documentclass[12pt]{beamer}
\begin{document}
\begin{frame}{Test frame}
First slide: Blah, blah,\dots
\onslide<+(1)-> Second slide, with text \textbf{after} the first line has been rendered.
%From this line on, slides will continue because there is an "\onslide" command, like in the previous line...:
\onslide<+(1)-> Third slide, because again I add 1 to the frame counter before I render it.
\onslide<+(1)-> And this the forth, for the same reson than the previous\dots
\end{frame}
\end{document}
最后,Joseph Wright 针对有关在调用之前链接的覆盖的问题写了一篇文章相对叠加澄清对覆盖进行了很好的长篇解释,所以我在这里将它链接起来,以便有兴趣扩展这里所写内容的读者:https://tug.org/TUGboat/tb35-1/tb109wright.pdf(以及我自己的参考)。