我在使用 Beamer 时遇到了问题。我尝试使用包含不同颜色项目的列表,每次只显示一个。
这是我的 MWE:
\documentclass{beamer}
\usetheme{Warsaw}
\newcommand\coloreditem[1]{\setbeamercolor{item projected}{bg=#1}\item}
\begin{document}
\begin{frame}
\begin{itemize}[<+->]
\coloreditem{red} First
\coloreditem{blue} Then
\coloreditem{green} Now
\coloreditem{orange} Last
\end{itemize}
\end{frame}
\end{document}
它有 4 页,项目符号数量递增。但是,项目全部来自第一种颜色:
通过更换
\begin{itemize}[<+->]
和
\begin{itemize}
我只得到一页,但颜色正确
您知道为什么这不起作用吗?最好的方法是什么?
答案1
要清楚地了解它为什么不起作用,您可能需要深入研究 beamer。我猜 \item 与其后的文本断开了,而这些文本应该显示在同一张幻灯片上。解决这个问题的一种方法是将它们放在一个命令中。下面是一个版本,其中 \citem{color}{text} 打印彩色项目符号,然后打印文本。带星号的版本一个接一个地出现。
\documentclass{beamer}
\usetheme{Warsaw}
\makeatletter
\def\citem{\@ifstar\c@itemstar\c@item}
\def\c@item#1#2{\c@@item[#1]{#2}}
\def\c@itemstar#1#2{\uncover<+->{\c@@item[#1]{#2}}}
\def \c@@item[#1]#2{\setbeamercolor{item}{fg=#1} \item #2}
\makeatother
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\begin{itemize}
\citem{red}{First}
\citem{blue}{Then}
\citem{green}{Now}
\citem{orange}{Last}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\begin{itemize}
\citem*{red}{First}
\citem*{blue}{Then}
\citem*{green}{Now}
\citem*{orange}{Last}
\end{itemize}
\end{frame}
\end{document}
最好也有一个默认颜色。现在 color 命令会更改默认值,并且 \item 打印的下一个项目符号也具有相同的值。可以通过让 color 参数为可选来实现。