我想为列表中的项目符号添加颜色(例如,表示已完成或未完成/困难或容易等的任务),包括嵌套列表。
我发现这并成功使用了它。因为我想用不同的颜色标记同一个列表中的不同项目符号,所以我使用该\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}
我知道为什么会这样 -\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}