ビーマーのオーバーレイ:異なる色のアイテムを項目別に表示する

ビーマーのオーバーレイ:異なる色のアイテムを項目別に表示する

Beamer に問題があります。異なる色のアイテムが 1 つずつ表示されるリストを使用しようとしています。

これが私の 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 ページあり、箇条書きの番号が増分されます。ただし、項目はすべて最初の色からになります。

MWE の 4 ページ目

置き換えることで

\begin{itemize}[<+->]

\begin{itemize}

1ページしか表示されませんが、色は正しいです

望ましい結果

なぜこれが機能しないのか知っていますか? そして、それを実行する最善の方法は何ですか?

答え1

なぜ機能しないのかを明確に説明するには、おそらく Beamer を詳しく調べる必要があります。私の推測では、\item は、同じスライドに表示されるはずのその後のテキストから分離されています。この問題を解決する 1 つの方法は、コマンド内にまとめておくことです。以下は、\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 引数をオプションにすることで実現できます。

関連情報