我想要对或环境\item
中的每个进行隐式分组,以将排版效果(着色、强调)限制到相应的。itemize
enumerate
\item
例如,
\begin{itemize}
\item\color{red}
Cat
\item
Dog
\begin{itemize}
应该表现得像这样:
\begin{itemize}
{\item\color{red}
Cat}
\item
Dog
\begin{itemize}
这将使我能够提供专门的\item
类型:
\begin{itemize}
\coloritem[red]
Cat
\item
Dog
\begin{itemize}
其中\coloritem
是专门类型的一个例子\item
,可以定义如下:
\let\itemaux\item
\newcommand{\coloritem}[1][blue]{\color{#1}\itemaux}
所提供的代码将“* Cat”的颜色更改为红色,但不限于\coloritem
,因此“* Dog”也显示为红色,而不是之前活动的颜色\begin{itemize}
。
答案1
我会重新定义\item
为(仅在citemize
环境内)在括号中有一个进一步的可选参数,以指定颜色。
诀窍是在环境开始时保存当前颜色。
\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum} % for context
\NewDocumentEnvironment{citemize}{}{%
\colorlet{current@color}{.}%
\NewCommandCopy{\latexitem}{\item}%
\RenewCommandCopy{\item}{\citem}%
\itemize
}{\enditemize}
\NewDocumentCommand{\citem}{d()o}{%
\IfNoValueTF{#1}{\color{current@color}}{\color{#1}}%
\IfNoValueTF{#2}{\latexitem}{\latexitem[#2]}%
}
\begin{document}
\color{gray!80}
\lipsum[1][1-3]
\begin{citemize}
\item(red) Cat
\item Dog
\end{citemize}
\lipsum[2][1-3]
\bigskip
\color{black}
\lipsum[1][1-3]
\begin{citemize}
\item(red) Cat
\item Dog
\end{citemize}
\lipsum[2][1-3]
\end{document}
ID不是用于itemize
该应用程序。