考虑以下代码:
\documentclass{beamer}
\usepackage{tcolorbox}
\begin{document}
\begin{frame}
some text before
\pause
\begin{tcolorbox}
\begin{tabular}{cc}
cell1 & cell2\\\pause
cell3 & cell4
\end{tabular}
\end{tcolorbox}
\pause
some text after
\end{frame}
\end{document}
预期的结果是“之后的一些文本”仅出现在第四张幻灯片上,但“之后的一些文本”在第二张幻灯片上已经可见,然后在第三张幻灯片上消失,然后在第四张幻灯片上重新出现。
有什么迹象表明发生了什么事?
笔记:
tabularx
如果使用 tcolorbox 键而不是 tabular 键,则会出现相同的结果- 我对此的实际解决方法是使用
\only
或\uncover
,但我更感兴趣的是为什么它不起作用。
编辑:似乎 tcolorbox 环境会干扰暂停计数器。如果后你放置的 tcolorbox 环境
\setcounter{beamerpauses}{#}
其中#
等于\pause
发行的数量前tcolorbox 环境一切运行正常。
嗯,实际上这只在非常特殊的情况下才有效
答案1
首先,你不应该使用\pause
inside ......正如手册所述:tabular
beamer
amsmath
此命令在像这样的环境中不起作用align
,因为它们会做出非常邪恶的事情。
您的主要问题是与 无关tabular
,它甚至与自身无关。模式与(据我所知使用)tcolorbox
之间的交互很差。 以下示例显示,当中有更多 -s时,解释器无法隐藏即将到来的暂停(注意:即使在之后的另一个中)。setbeamercovered{invisible}
beamer
\endpgfpicture
tcolorbox
TikZ/pgf
\pause
tikzpicture
tikzpicture
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
some text before
\pause
\begin{tikzpicture}
\node at (0, 3) {Hello};
\pause
\node at (0, 2) {World};
\pause
\node at (0, 1) {and you};
\pause
\node at (0, 0) {and you};
\end{tikzpicture}
\pause
some text after
\end{frame}
\end{document}
((作为一种解决方法,可以使用\setbeamercovered{transparent=0}
。但这仍然存在问题tabular
...你不应该使用\pause
...以及一些颜色问题\tcolorbox
...))
所以:
- 避免
\pause
在内部使用tabular
- 避免使用
\pause
insidetikz
因此 insidetcolorbox
- 避免使用上述任何组合