在列表中发现项目后将其突出显示

在列表中发现项目后将其突出显示
\documentclass[xcolor=table ]{beamer}


\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}

\title[Your Short Title]{Your Presentation}
\author{You}
\institute{Where You're From}
\date{Date of Presentation}

\begin{document}


\begin{frame}{Introduction}

\begin{itemize}
  \item <1-> Your introduction goes here!
  \item <2> Use \texttt{itemize} to organize your main points.
\end{itemize}

\end{frame}
\begin{frame} 
\begin{itemize}
  \item Your introduction goes here!
  \item {\colorbox{yellow} {Use \texttt{itemize} to organize your main points.}}
\end{itemize}

\end{frame}

\end{document}

此 MWE 显示分项列表。显示两个连续项后,我希望第二个项突出显示第三步。我通过复制框架实现了这一点。可以通过叠加来实现,而无需手动复制框架吗

答案1

简单的解决方案是使用\only使\colorbox{yellow}代码部分有条件:

    \begin{frame}{Introduction}
        \begin{itemize}
            \item <1-> Your introduction goes here!
            \item <2-> \only<3>{\colorbox{yellow}}{Use \texttt{itemize} to organize your main points.}
        \end{itemize}
    \end{frame}

但是,这样做有一个问题:因为\colorbox填充了文本周围的一些区域,它会改变间距,从而导致明显的跳跃(尝试一下即可看到)。

可以通过始终使用 来解决这个问题\colorbox,但在不需要突出显示时用背景颜色填充它。由于这有点混乱,我将为此定义一个新命令:

\documentclass[xcolor=table]{beamer}
\usepackage[english]{babel}

\title[Your Short Title]{Your Presentation}
\author{You}
\institute{Where You're From}
\date{Date of Presentation}

\newcommand<>{\mycolorbox}[3][white]{{%
    % #1 = default color when overlay specification is not fulfilled (default: white)
    % #2 = color when overlay specification is fulfilled
    % #3 = text to be displayed
    % #4 = the actual overlay specification
    \def\mycolor{#1}%
    \only#4{\def\mycolor{#2}}%
    \colorbox{\mycolor}{#3}%
}}

\begin{document}
    \begin{frame}{Introduction}
        \begin{itemize}
            \item <1-> Your introduction goes here!
            \item <2-> \mycolorbox<3>{yellow}{Use \texttt{itemize} to organize your main points.}
        \end{itemize}
    \end{frame}
\end{document}

的语法在用户指南的第节\newcommand<>中进行了解释beamer9.6.1 使命令和环境覆盖规范感知。第一个参数是要定义的宏的名称(在本例中),然后是参数的数量(不包括覆盖规范),最后是第一个参数的默认值。在命令内部,可以使用字符后跟其数字\mycolorbox来引用参数( ,依此类推,参见注释)。##1#2

双括号{{}}用于创建 TeX 组,这意味着任何宏(重新)定义都会在最后被遗忘。外面的一对括号界定了命令的内容,而里面的一对括号则是 TeX 组。

然后我使用\def(我也可以使用\newcommand)来定义一个新的宏,\mycolor它最初是默认颜色。\only然后我使用有条件地将其重新定义为所需的颜色(本例中为黄色)。最后,我调用该\colorbox命令。

顺便说一句,也可以直接写\colorbox<3>{yellow}{text},但由于某种原因,它使用了黑色背景......

相关内容