为列表中的部分项目着色

为列表中的部分项目着色

我知道如何将列表中所有编号的项目设为单一颜色。但我需要有选择地选择要着色的项目。例如,我希望第一和第二个项目的编号为彩色,但第三个项目不为彩色。

答案1

姆韦

\documentclass{article}
\usepackage{xcolor}
\def\reditem{\item[\color{red} \addtocounter{enumi}{1}\arabic{enumi}.]}
\begin{document}

\begin{enumerate}
\reditem foo 
\reditem foo 
\item foo

\end{enumerate}
\end{document}

当然,在嵌套列表中不能使用此自定义项目,但其他的与enumii计数器,等等。

答案2

为了解决@Circumscribe 的评论,这里提供了一个\item使用常规命令来允许引用的版本。

使用包提供的label选项设置颜色。此选项通常在处理项目之前展开,因此每个项目都将以列表开头设置的颜色打印,但是使用此展开会延迟到实际处理项目时。\begin{enumerate}enumitem\noexpand

对于引用,enumitem提供了另一个ref控制引用外观的选项,在下面的 MWE 中,它没有指定颜色,也没有点。

为了使设置颜色更容易,我定义了一个小的额外命令\setcl来(重新)定义该\itemcolor命令。

代码

\documentclass{article}
\usepackage{xcolor}
\usepackage{enumitem}
\def\setcl#1{\def\itemcolor{#1}}
\begin{document}

\begin{enumerate}[label=\color{\noexpand\itemcolor}\arabic*.,ref=\arabic*]
\setcl{red}
\item foo
\item foo\label{second}
\setcl{black}
\item foo
\end{enumerate}
We are interested in item \ref{second}.
\end{document}

结果:

在此处输入图片描述

答案3

使用语法来指定要着色的项目:

\documentclass{article}
\usepackage{enumitem,xcolor}

\newenvironment{emphenumerate}[1][red!90!green]
 {%
  \colorlet{emphenumerate}{#1}%
  \enumerate[label=\protect\maybecoloritem\arabic*.,ref=\arabic*]
 }
 {\endenumerate}

\newcommand{\maybecoloritem}{\ifcoloritem\color{emphenumerate}\fi\global\coloritemfalse}
\newcommand{\emphitem}{\global\coloritemtrue\item}
\newif\ifcoloritem

\begin{document}

\begin{emphenumerate}
\emphitem First
\emphitem Second
\item Third
\end{emphenumerate}

\begin{emphenumerate}[.]
\emphitem First
\emphitem Second
\item Third
\end{emphenumerate}

\end{document}

仅提供第一级,但您可以使用enumitem设施进行改进。

您可以使用可选参数更改颜色\begin{emphenumerate};在示例中我展示了如何删除颜色,但您可以使用任何xcolor定义颜色的规范。

在此处输入图片描述

避免使用纯色,它们太鲜艳了。

相关内容