更改单个项目的颜色——使用命令来执行此操作?

更改单个项目的颜色——使用命令来执行此操作?

我的问题与幻灯片itemize item中的 s有关Beamer。我想要获取以下幻灯片:
在此处输入图片描述

这是由代码生成的:

\documentclass{beamer}
\begin{document}
\begin{frame}{Title}
\begin{itemize}
\setbeamercolor{local structure}{fg=red}
\item \textcolor{red}{Red}, other text
\setbeamercolor{local structure}{fg=green}
\item \textcolor{green}{Green}, other text
\setbeamercolor{local structure}{fg=blue} 
\item \textcolor{blue}{Blue}, other text
\end{itemize}
\end{frame}
\end{document}

问题。有没有办法定义一个命令\coloreditem{<color>},以便上面的幻灯片可以通过后面的简化代码来定义?

\begin{frame}{Title}
\begin{itemize}
\coloreditem{red} \textcolor{red}{Red}, other text
\coloreditem{green} \textcolor{green}{Green}, other text
\item \textcolor{blue}{Blue}, other text
\end{itemize}
\end{frame}

我的第一个猜测是定义

\newcommand\coloreditem[1]{\setbeamercolor{local structure}{fg=#1}\item}

但当然,本地结构改变的时间太长了。而且添加一对新结构{}不起作用。

答案1

你可以这样做:

\documentclass{beamer}
\newcommand\coloreditem[1]{\item[\textcolor{#1}{\usebeamertemplate{itemize \beameritemnestingprefix item}}]}
\begin{document}
\begin{frame}{Title}
\begin{itemize}
\coloreditem{red} blabl \textcolor{red}{Red}, other text
\coloreditem{green} blalba \textcolor{green}{Green}, other text
\item bnlabla
\end{itemize}
\end{frame}
\end{document}

在此处输入图片描述

答案2

如果可以定义带有两个参数的命令,则可以使用

\newcommand\coloreditem[2]{{\setbeamercolor{itemize item}{fg=#1}\item #2}}

然后改变的颜色就被限制在单个项目上。

\documentclass{beamer}
\newcommand\coloreditem[2]{{\setbeamercolor{itemize item}{fg=#1}\item #2}}
\begin{document}
\begin{frame}{Title}
\begin{itemize}
\item Normal color, other text
\coloreditem{green}{\textcolor{green}{Green}, other text}
\item Normal color, other text
\end{itemize}
\end{frame}
\end{document}

在此处输入图片描述

相关内容