使用 beamer 和 '\colorbox' 进行覆盖规范

使用 beamer 和 '\colorbox' 进行覆盖规范

\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 幻灯片 2

答案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}

相关内容