我\colorbox
在幻灯片中使用 来突出显示部分文本(就像用标记突出显示一样)。该命令还接受投影仪叠加规范(例如\colorbox<1>{yellow}{Text}
)。然而,奇怪的是,在与叠加规范不匹配的幻灯片上,文本被纯黑色矩形替换。更具体地说,colorbox<1>{yellow}{Text}
在幻灯片 1 上生成带有黄色背景的“文本”,在后续幻灯片上生成黑色矩形(就像由 生成的一样\colorbox{black}{Text}
)。有什么想法可以解释为什么会发生这种情况以及如何修复?
非常感谢,
以下是 MWE:
\documentclass{beamer}
\begin{document}
\begin{frame}
\centering
\colorbox<1>{yellow}{Text}
\onslide<2->{Some other text}
\end{frame}
\end{document}
答案1
您可以重新定义\colorbox
:
\renewcommand<>\colorbox[2]{\only#3{\beameroriginal\colorbox{#1}{#2}}}
但也许最好定义一个新命令:
\newcommand<>\hlbox[2]{\only#3{\colorbox{#1}{#2}}}
例子
\documentclass{beamer}
\newcommand<>\hlbox[2]{\only#3{\colorbox{#1}{#2}}}
\begin{document}
\begin{frame}
\centering
\hlbox<1>{yellow}{Text}
\par
Text
\par
\onslide<1-2>{Some other text}
\end{frame}
\end{document}
如果你想要类似的东西
你可以使用
\documentclass{beamer}
\newcommand<>\highlightbox[2]{%
\alt#3{\makebox[\dimexpr\width-2\fboxsep]{\colorbox{#1}{#2}}}{#2}%
}
\begin{document}
\begin{frame}{Some Fancy Title}
\centering
Text \highlightbox<2>{yellow}{Text} Text
\par
Text Text Text
\end{frame}
\end{document}
答案2
我认为在您的代码中,colorbox
仅在第 1 帧上将设置为黄色,但在所有其他帧上将其设置为黑色(可能是标准值?)。only
在周围添加一个额外的内容colorbox
以确保它仅在第 1 帧上显示。
<1>
我尝试从 中删除覆盖规范 ( ) colorbox
,因为它似乎是多余的。代码编译,但文本向左移动...
\documentclass{beamer}
\begin{document}
\begin{frame}
\centering
\only<1>{\colorbox<1>{yellow}{Text}}
\onslide<2->{Some other text}
\end{frame}
\end{document}