更改 itemize 中每个项目的颜色

更改 itemize 中每个项目的颜色

考虑以下简单的代码:

\documentclass[11pt]{article} 
\begin{document}        
\begin{itemize}
    \item plain text
    \item I want this to be blue
    \item another text
\end{itemize}
\end{document}

代码的结果是

在此处输入图片描述

现在,假设我想将第二个项目的文本颜色设为蓝色。可以手动使用该textcolor命令,但问题是,在我的实际示例中,有很多地方可以更改文本,并且这些地方经常被修改。因此,最好编写一个宏来简单地更改颜色。

问题:我如何定义类似这样的自定义命令\blueitem,以便将上述代码中\item的替换为\blueitem可得到所需的结果?或者,作为替代方案,也可以考虑使用宏来代替\item[color=blue]\item给出结果。

编辑:Sandy G 的答案在与环境一起使用时不起作用proof。例如:

\documentclass[11pt]{article}
\usepackage{amsthm}
\usepackage{xcolor}
\let\olditem\item\renewcommand{\item}[1][black]{\color{#1}\olditem} 
\begin{document}
\begin{itemize}
    \item[blue] abc
    \begin{proof}
        abc.
    \end{proof}
\end{itemize}
\end{document}

此代码给出错误消息

Package xcolor Error: Undefined color `\hskip \labelsep \itshape Proof\relax '. a

结果是:

在此处输入图片描述

请注意,没有“证明”符号。

答案1

您可以重新定义\item使用来接受颜色的可选参数xcolor

在此处输入图片描述

\documentclass[11pt]{article} 
\usepackage{xcolor}

\let\olditem\item\renewcommand{\item}[1][black]{\color{#1}\olditem}

\begin{document}        
\begin{itemize}
    \item plain text
    \item[blue] I want this to be blue
    \item[red] another text
    \item one more
\end{itemize}
\end{document}

这种方法的主要问题是某些环境使用列表,并且会产生不良后果。值得注意的是,prooffromamsthm是一个列表,因此这种方法行不通。更好的解决方案是创建一个新命令,例如\citem接受可选颜色参数:

\newcommand{\citem}[1][black]{\color{#1}\item}

在此处输入图片描述

这种方法的一个缺点是会改变列表中位于其下方的\citem所有 s 的颜色。因此,使用无颜色(默认为黑色)将列表的其余部分改回黑色。然后,您可以在同一个列表中使用和。\item\citem\item\citem

\documentclass[11pt]{article}
\usepackage{amsthm}
\usepackage{xcolor}
\newcommand{\citem}[1][black]{\color{#1}\item} 
\begin{document}

\begin{itemize}
  \citem[blue] abc
    \begin{proof}
        abc.
    \end{proof}
  \citem[red] abc
    \begin{proof}
        abc.
    \end{proof}
    
\end{itemize}
\end{document}

答案2

这是实现此目的的一种方法:

\documentclass[11pt]{article}                                                     
\usepackage{xcolor}                                                               
                                                                                  
\newcommand\colitem[2]{%                                                          
  {\color{#1}\item {#2}}                                                          
}                                                                                 
                                                                                  
\newcommand\reditem[1]{%                                                          
  \colitem{red}{#1}                                                               
}                                                                                 
                                                                                  
\newcommand\blueitem[1]{%                                                         
  \colitem{blue}{#1}                                                              
}                                                                                 
                                                                                  
\begin{document}                                                                  
\begin{itemize}                                                                   
    \reditem {plain text}                                                         
    \blueitem {I want this to be blue}                                            
    \item another text                                                            
\end{itemize}                                                                     
\end{document}

输出将会像这样:

在此处输入图片描述

相关内容