我有一个逐步发现的逐项列表(代码如下)。
如何防止第 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}