嵌套列表中的项目符号颜色

嵌套列表中的项目符号颜色

我想为列表中的项目符号添加颜色(例如,表示已完成或未完成/困难或容易等的任务),包括嵌套列表。

我发现并成功使用了它。因为我想用不同的颜色标记同一个列表中的不同项目符号,所以我使用该\def函数定义了一些快捷方式,它在下面的代码中起作用,但嵌套列表的结果并不理想。

\documentclass{article}

\usepackage{color}

\def\itemr{\item[\textcolor{red}{\textbullet}]}
\def\itemg{\item[\textcolor{green}{\textbullet}]}

\begin{document}

\section*{Hey!}

\begin{itemize}
   \item Now we test the colors
   \itemr This one should be in red
   \itemg This one green
   \itemg Only the bullets themselves are colored, which is the goal
   \begin{itemize}
         \item Now notice what happens when I color the nested list bullets too
         \item While the uncolored are dashes
         \itemr The colored ones are level 1 bullets again
         \itemr While I would like them to be colored dashes
   \end{itemize}
\end{itemize}
\end{document}

在 Overleaf 中编译

我知道为什么会这样 -\textbullet指的是特定类型的项目符号。我知道我可以为不同的级别定义不同的快捷方式。问题是,是否有一个主代码用于“此级别中的默认项目符号标签,无论我们处于哪个级别”,我都可以使用它来代替\textbullet,这样我就不必每次都思考我在哪个级别(可能有四个嵌套级别,也许更多)。

我也很感激任何其他方式来完成我所要求的事情,只要它不会给流程带来很多麻烦。

提前致谢!

答案1

以下是在 中每个级别设置的标签的定义itemize。它们的形式为\labelitem<level>,其中<level>是罗马数字(取自article.cls):

\newcommand\labelitemi  {\labelitemfont \textbullet}
\newcommand\labelitemii {\labelitemfont \bfseries \textendash}
\newcommand\labelitemiii{\labelitemfont \textasteriskcentered}
\newcommand\labelitemiv{ \labelitemfont \textperiodcentered}
\newcommand\labelitemfont{\normalfont}

您可以点击/更新\labelitemfont为您感兴趣的颜色,然后按照以下方式照常设置该项目:

\def\itemr{{\renewcommand{\labelitemfont}{\color{red}}\item\leavevmode\ignorespaces}}
\def\itemg{{\renewcommand{\labelitemfont}{\color{green}}\item\leavevmode\ignorespaces}}

或者更简单:

\def\itemr{{\color{red}\item\leavevmode\ignorespaces}}
\def\itemg{{\color{green}\item\leavevmode\ignorespaces}}

以上两种方法均不使用与之相关的可选参数\item,因此将标签设置在该级别。

在此处输入图片描述

\documentclass{article}

\usepackage{xcolor}

\def\itemr{{\color{red}\item\leavevmode\ignorespaces}}
\def\itemg{{\color{green}\item\leavevmode\ignorespaces}}

\begin{document}

\section*{Hey!}

\begin{itemize}
  \item Now we test the colors
  \itemr This one should be in red
  \itemg This one green
  \itemg Only the bullets themselves are colored, which is the goal
  \begin{itemize}
    \item Now notice what happens when I color the nested list bullets too
    \item While the uncolored are dashes
    \itemr The colored ones are level 1 bullets again
    \itemr While I would like them to be colored dashes
  \end{itemize}
\end{itemize}

\end{document}

相关内容