![投影機中的疊加:逐項列出不同顏色的項目](https://rvso.com/image/335489/%E6%8A%95%E5%BD%B1%E6%A9%9F%E4%B8%AD%E7%9A%84%E7%96%8A%E5%8A%A0%EF%BC%9A%E9%80%90%E9%A0%85%E5%88%97%E5%87%BA%E4%B8%8D%E5%90%8C%E9%A1%8F%E8%89%B2%E7%9A%84%E9%A0%85%E7%9B%AE.png)
我的投影機有問題。我正在嘗試使用包含不同顏色項目的列表,一次出現一次。
這是我的 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
要清楚地解釋為什麼它不起作用,您可能需要深入研究投影機。我的猜測是 \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}
如果還有一個預設顏色就好了。現在,顏色命令更改了預設值,並且 \item 列印的下一個項目符號具有相同的預設值。這可以透過讓顏色參數是可選的來完成。