![Наложения в бимере: детализируйте элементы разных цветов](https://rvso.com/image/335489/%D0%9D%D0%B0%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B2%20%D0%B1%D0%B8%D0%BC%D0%B5%D1%80%D0%B5%3A%20%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D0%B8%D0%B7%D0%B8%D1%80%D1%83%D0%B9%D1%82%D0%B5%20%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B%20%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85%20%D1%86%D0%B2%D0%B5%D1%82%D0%BE%D0%B2.png)
У меня проблема с 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
Чтобы получить четкое объяснение, почему это не работает, вам, вероятно, нужно глубоко разобраться в бимере. Я предполагаю, что \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, имеет то же самое. Это можно сделать, сделав аргумент цвета необязательным.