逐项排列中的交替颜色

逐项排列中的交替颜色

我想创建一个自动逐项列举环境,其中项目的颜色字体是交替的。

假设有以下列表:

\begin{itemize}
   \item A
   \item B
   \item C
   \item D
   \item E
\end{itemize}

我想要一个代码,其中 A、C 和 E 有颜色 #1,而 B 和 D 有颜色 #2。

是的,我知道我可以创建一个替代的 \item 命令(\coloreditem 或类似命令),但我希望使用自动化方法。因此,如果我在列表中的其他两个项目之间动态插入一个新项目,则无需(手动)更改新项目后每个项目的配色方案。

答案1

像这样?

\documentclass[]{article}

\usepackage{xcolor}
\usepackage{duckuments}
\usepackage{letltxmacro}

\newif\iffirstcoloreditem
\newcommand*\colorizeitemize[2]
  {%
    \LetLtxMacro\itemBAK\item
    \renewcommand*\item[1][]
      {%
        \iffirstcoloreditem
          \firstcoloreditemfalse
          \color{#1}%
        \else
          \firstcoloreditemtrue
          \color{#2}%
        \fi
        \if\relax\detokenize{##1}\relax
          \itemBAK
        \else
          \itemBAK[##1]%
        \fi
      }%
  }

\begin{document}
\bgroup
\colorizeitemize{blue}{red}
\duckitemize
\duckenumerate
\duckdescription
\egroup
\end{document}

在此处输入图片描述

答案2

\item您可以在包中的每个宏前添加自定义宏xpatch。在下面的示例中,\choosecolor宏被定义为使用切换按钮来交替颜色。

梅威瑟:

\documentclass{article}
\usepackage{xcolor}
\usepackage{xpatch}
\newtoggle{tcolor}
\newcommand{\choosecolor}{%
\iftoggle{tcolor}%
{\color{\colorone}\togglefalse{tcolor}}%
{\color{\colortwo}\toggletrue{tcolor}}%
}
\pretocmd{\item}{\choosecolor}{}{}

\begin{document}
\def\colorone{red}
\def\colortwo{blue}
\begin{itemize}
\item first item
\item second item
\item third item
\end{itemize}
Text after itemize
\end{document}

结果:

在此处输入图片描述

相关内容