我正在尝试使所有项目符号和描述项目都采用当前文本颜色。虽然这对itemize
和有效enumerate
,但对 无效description
。我在这里遗漏了什么?
\documentclass{beamer}
\setbeamercolor*{item}{fg=.}
%\setbeamercolor*{item}{fg=magenta}
\begin{document}
\begin{frame}{Description Test}
\color{red}
\begin{description}
\color{blue}
\item[Label] Test
\item[Label] Test
\end{description}
\begin{itemize}
\color{orange}
\item Test
\end{itemize}
\end{frame}
\end{document}
如果我将其更改fg=.
为fg=magenta
,它会变成洋红色,所以这是我使用的正确模板,但它不能正确应用。
答案1
描述标签的定义明确地首先将颜色(和字体)重置为正常颜色,以确保您获得与周围设置无关的内容。您可以重新定义它:
\documentclass{beamer}
\setbeamercolor*{item}{fg=.}
\makeatletter
\long\def\beamer@descriptionitem#1{%
\GetTitleString{#1}%
\let\@currentlabelname\GetTitleStringResult
\def\insertdescriptionitem{#1}%
\hfil\hspace\labelsep{\usebeamertemplate*{description item}}} %* instead of **
\makeatother
\begin{document}
\begin{frame}{Description Test}
\color{red}
\begin{description}
\color{blue}
\item[Label] Test
\item[Label] Test
\end{description}
\begin{itemize}
\color{orange}
\item Test
\end{itemize}
\end{frame}
\end{document}
答案2
您可以这样做:
\documentclass{beamer}
\setbeamercolor*{item}{fg=.}
%\setbeamercolor*{item}{fg=magenta}
\begin{document}
\begin{frame}{Description Test}
\begin{description}
\color{blue}
\item[\color{blue} Label] Test
\item[\color{blue} Label] Test
\end{description}
\begin{itemize}
\color{orange}
\item Test
\end{itemize}
\end{frame}
\end{document}
这是你想要的吗?我想你可以使用renewcommand
命令来控制description
环境中标签的颜色,这样标签就会是蓝色,然后再更新为黑色或你想要的任何颜色。
答案3
如果加载`enumitem,问题就会消失(必须重新定义 itemize 的项目符号):
\documentclass{beamer}
\usepackage{enumitem}
\setbeamercolor*{item}{fg=.}
%\setbeamercolor*{item}{fg=magenta}
\begin{document}
\begin{frame}{Description Test}
\color{red}
{\begin{description}
\color{blue}
\item[Label] Test
\item[Label] Test
\end{description}}
\begin{itemize}[label=$\blacktriangleright$]
\color{orange}
\item Test
\end{itemize}
\end{frame}
\end{document}