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