为什么当前颜色不适用于描述项目?

为什么当前颜色不适用于描述项目?

我正在尝试使所有项目符号和描述项目都采用当前文本颜色。虽然这对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} 

在此处输入图片描述

相关内容