我想更改 Beamer 中的项目文本颜色。我检查了Beamer 用户指南并\color<>[]{}
在第 80 页找到了该命令。
\color<2-3>[rgb]{1,0,0} 此文本在第 2 和第 3 张幻灯片上为红色,在其他情况下为黑色。
enumerate
然后我找到了一个在环境中使用此命令的示例在教程中(第 15 页)。
\begin{enumerate}[A]
\item<2-5> James Madison
\item<3-5> Harry Truman
\item<4-> \color<6>[rgb]{0,0.6,0}Abraham Lincoln
\item<5-5> Calvin Coolidge
\end{enumerate}
然后我尝试了一个最小的例子,如下所示(该示例也可在以下网址公开获取:分享Latex。它是可读写的。因此您可以自由修改它。):
\documentclass[a4paper]{beamer}
\begin{document}
\begin{frame}
\begin{itemize}
\item \color<2>[rgb]{1,0,1}{text1}
\begin{itemize}
\item text11
\end{itemize}
\item text2
\begin{itemize}
\item text21
\end{itemize}
\item text3
\end{itemize}
\end{frame}
\end{document}
在第一张幻灯片上,这是可以的:
在第二张幻灯片(\color<2>[rgb]{1,0,1}{text1}
)上,所有三个外部分项文本(即 text1、text2 和 text3)都变成红色,如下图所示。但是,我只想更改第一个分项文本(即此处的 text1)的颜色。
因此,我的问题是:
- 如何使用命令更改单个项目文本(即此处的 text1)的颜色
\color<>[]{}
?- 如果该命令不可行(为什么?),那么有哪些替代方法?
答案1
当你调用\color<overlay>[colorsys]{color}
改变颜色的命令时从那时起(在当前组内)因为它只接受颜色规范作为参数,而不是需要着色的内容。这里发生的情况是,子项目处于它们自己的颜色环境中,因此它们不受您的命令的影响;相反,其他项目处于相同的颜色环境中。一个简单的例子来说明这个问题:
a {\color{red} a {\color{blue} a} a} a
要限制宏的效果\color
,您可以将其包含在一个组中
\documentclass[a4paper]{beamer}
\begin{document}
\begin{frame}
\begin{itemize}
\item {\color<2>[rgb]{1,0,1} text1}
\begin{itemize}
\item text11
\end{itemize}
\item text2
\begin{itemize}
\item text21
\end{itemize}
\item text3
\end{itemize}
\end{frame}
\end{document}
您还可以使用\textcolor<overlay>[colorsys]{color}{content}
仅将颜色更改应用于内容参数的宏。
\textcolor
是\color
什么\textbf
是 什么\bf
。
答案2
我建议制作一个新的自定义命令,例如
\newcommand{\adv}[1]{ {\color{blue} #1} }
这将减少在 tex 文件中使用它的工作量。要使用它:
\adv{This an advantage of the current method}