Наложения в бимере: детализируйте элементы разных цветов

Наложения в бимере: детализируйте элементы разных цветов

У меня проблема с 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 страницы с увеличивающимся номером маркера. Однако все элементы относятся к первому цвету:

4-я страница MWE

Заменив

\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, имеет то же самое. Это можно сделать, сделав аргумент цвета необязательным.

Связанный контент