使用项目中的选项进行枚举

使用项目中的选项进行枚举

我想要一个枚举列表,其中每个数字必须是彩色背景上的白色圆圈。背景颜色必须作为选项传递给列表中的每个项目,而不排除颜色重复。代码必须是这样的:

\documentclass[12pt,a4paper]{book}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[italian]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{enumerate}
\begin{document}
    \begin{enumerate}
        \item[color1] Text
        \item[color1] Text
        \item[color2] Text
    \end{enumerate}
\end{document}

答案1

大量借用我在这里的回答,用圆圈和不同的颜色枚举。若未指定,则默认颜色为黑色。

附录根据 OP 请求,提供两位数容量。

\documentclass{article}
\usepackage{stackengine,xcolor}
\newcommand\circnum[2]{\stackinset{c}{}{c}{.1ex}{\small\textcolor{white}{#2}}%
  {\abovebaseline[-.7ex]{\Huge\textcolor{#1}{$\bullet$}}}}
\newenvironment{myenum}
{\let\svitem\item
 \renewcommand\item[1][black]{%
   \refstepcounter{enumi}\svitem[\circnum{##1}{\theenumi}]}%
\begin{enumerate}}{\end{enumerate}}
\begin{document}
\begin{myenum}
\item[red] first
\item[blue] next
\item[cyan] third
\item fourth
\item last
\end{myenum}
\end{document}

在此处输入图片描述


附录

\documentclass{article}
\usepackage{stackengine,xcolor,graphicx}
\newcommand\circnum[2]{\smash{\stackinset{c}{}{c}{.2ex}{\small\textcolor{white}{#2}}%
  {\abovebaseline[-1.43ex]{\Huge\textcolor{#1}{\scalebox{1.5}{$\bullet$}}}}}}
\newenvironment{myenum}
{\let\svitem\item
 \renewcommand\item[1][black]{%
   \refstepcounter{enumi}\svitem[\circnum{##1}{\theenumi}]}%
\begin{enumerate}}{\end{enumerate}}
\begin{document}
\begin{myenum}
\item[red] first
\item[blue] next
\item[cyan] third
\item fourth
\item ...
\item ...
\item ...
\item ...
\item ...
\item ...
\item[purple] last
\end{myenum}
\end{document}

在此处输入图片描述

答案2

以下内容也基于用圆圈和不同的颜色枚举,更新第一级以enumerate使用新的\item,其中可选参数指定颜色。如果您不提供可选参数,则使用默认配置。这允许您enumerate对有色\item列表使用相同的环境或不使用相同的环境。

在此处输入图片描述

\documentclass{article}

\usepackage{stackengine,xcolor,enumitem}

% https://tex.stackexchange.com/a/590844/5764
\newcommand\circnum[1]{\stackinset{c}{}{c}{.1ex}{\small\textcolor{white}{#1}}%
  {\abovebaseline[-.7ex]{\Huge\textcolor{enumicol}{\textbullet}}}}

\newcommand{\updateitem}{%
  \let\olditem\item% Store \item in \olditem
  \renewcommand{\item}[1][]{%
    % https://tex.stackexchange.com/a/53091/5764
    \if\relax\detokenize{##1}\relax
      % No optional argument supplied to \item
      \renewcommand{\labelenumi}{\theenumi.}% Default
    \else
      \colorlet{enumicol}{##1}% Update current circle label colour
      \renewcommand{\labelenumi}{\circnum{\theenumi}}% Set label as a circled number
    \fi
    \olditem% Call original \item
  }
}

\setlist[enumerate,1]{before=\updateitem}

\begin{document}

\begin{enumerate}
  \item[red] first
  \item[green] next
  \item[blue] third
  \item[black!50] fourth
  \item last
\end{enumerate}

\end{document}

相关内容