如何仅更改警报项目的项目符号的颜色?

如何仅更改警报项目的项目符号的颜色?

我有一个逐步发现的逐项列表(代码如下)。

如何防止第 3 项的文本被染成警报颜色?我只想改变项目符号的颜色。

\documentclass{beamer}

\begin{document}
\begin{frame}{Items}
  \begin{itemize}[<+->]
    \item A
    \item B
    \item<+-| alert@+-> CCCCC
    \item D
  \end{itemize}
\end{frame}

\end{document}

答案1

您可以定义自己的动作环境或者重新定义警报动作。

\documentclass{beamer}
% defining new action environment
\newenvironment{checkenv}{\only{\setbeamercolor{itemize item}{fg=green}}}{}
% redefining alert action
\renewenvironment{alertenv}{\only{\setbeamercolor{itemize item}{fg=red}}}{}

\begin{document}
\begin{frame}{Items}
  \begin{itemize}[<+->]
    \item A
    \item<+-| check@+-> B
    \item<+-| alert@+-> CCCCC
    \item D
  \end{itemize}
\end{frame}

\end{document}

在此处输入图片描述

编辑:按照 samcarter 的建议

只需重新定义警报操作(如上所示)即可基本禁用该\alert命令。使用etoolbox\AtBeginEnvironment可以仅针对itemize环境进行更改。但当然,\alert在环境内部不起作用。

\documentclass{beamer}
\usepackage{etoolbox}% not necessary with up-to-date beamer versions
% defining new action environment
\newenvironment{checkenv}{\only{\setbeamercolor{itemize item}{fg=green}}}{}
% redefining alert action only for itemize
\AtBeginEnvironment{itemize}{%
\renewenvironment{alertenv}{\only{\setbeamercolor{itemize item}{fg=red}}}{}}

\begin{document}
\begin{frame}{Items}
  Alert working outside itemize, \alert{before}
  \begin{itemize}[<+->]
    \item A alert \alert{not working} inside itemize
    \item<+-| check@+-> B
    \item<+-| alert@+-> CCCCC
    \item D
  \end{itemize}
  and \alert{after} it.
\end{frame}

\end{document}

在此处输入图片描述

相关内容