按颜色字母顺序显示 itemize 中的项目

按颜色字母顺序显示 itemize 中的项目

我想知道是否可以按字母顺序排列项目并为其添加颜色。这是上一个问题的延伸。 按字母顺序显示 itemize 中的项目

以下是 MWE:

\documentclass{article}
\usepackage{datatool}% http://ctan.org/pkg/datatool
\newcommand{\sortitem}[1]{%
  \DTLnewrow{list}% Create a new entry
  \DTLnewdbentry{list}{description}{#1}% Add entry as description
}
\newenvironment{sortedlist}{%
  \DTLifdbexists{list}{\DTLcleardb{list}}{\DTLnewdb{list}}% Create new/discard old list
}{%
  \DTLsort{description}{list}% Sort list
  \begin{itemize}%
    \DTLforeach*{list}{\theDesc=description}{%
      \item \theDesc}% Print each item
  \end{itemize}%
}
\begin{document}

Sorted:
\begin{sortedlist}
  \sortitem{ISDYNSTP:}
  \sortitem{ISCDCA:}
  \sortitem{\textcolor{magenta}{MVAR}}
  \sortitem{IS2TL}
\end{sortedlist}

\end{document}

我希望“MVAR”以特定颜色显示。我还尝试用 \sortitem{color{magenta}MVAR} 替换第三项,但这似乎也不起作用。

任何帮助都将不胜感激,谢谢!

答案1

您可以添加一个可选参数,用于设置颜色或其他风格选项。

\documentclass{article}
\usepackage{xcolor}
\usepackage{datatool}% http://ctan.org/pkg/datatool
\newcommand{\sortitem}[2][\empty]{%
  \DTLnewrow{list}% Create a new entry
  \DTLnewdbentry{list}{description}{#2}% Add entry as description
  \DTLnewdbentry{list}{font}{#1}% Add entry as font
}
\newenvironment{sortedlist}{%
  \DTLifdbexists{list}{\DTLcleardb{list}}{\DTLnewdb{list}}% Create new/discard old list
}{%
  \DTLsort{description}{list}% Sort list
  \begin{itemize}%
    \DTLforeach*{list}{\theDesc=description,\myFont=font}{%
      \item {\myFont\theDesc}}% Print each item
  \end{itemize}%
}
\begin{document}

Sorted:
\begin{sortedlist}
  \sortitem{ISDYNSTP:}
  \sortitem{ISCDCA:}
  \sortitem{PFT}
  \sortitem[\protect\color{magenta}]{MVAR}
  \sortitem{IS2TL}
\end{sortedlist}

\end{document}

在此处输入图片描述

相关内容