带有特殊修饰的枚举列表

带有特殊修饰的枚举列表

在枚举列表中,我想要一些“元”级注释:用粗体或其他颜色标记单个特定项目,或者从左边距用箭头指向它,或者用框将其包围。但宏\item不能嵌入其他宏中。有什么方法可以实现这一点吗?

答案1

当然,您可以嵌入\item到宏中。下面我定义\specialitem设置一个,\item并通过以下方式指定必要的非参数格式\setspecialitem

在此处输入图片描述

\documentclass{article}

\usepackage{xcolor}

\makeatletter
\newcommand{\setspecialitem}[1]{\def\specialitem@{#1}}
\newcommand{\specialitem}{%
  \begingroup
  \specialitem@
  \item\leavevmode
  \endgroup
}
\setspecialitem{}% Default
\begin{document}


\begin{enumerate}
  \item First

  \setspecialitem{\color{red}}
  \specialitem Second

  \setspecialitem{\itshape}
  \specialitem Third

  \item Last
\end{enumerate}

\end{document}

还可以做更复杂的事情(例如将特殊数字装箱)。下面显示了\boxeditem

在此处输入图片描述

\documentclass{article}

\makeatletter
\newcommand{\boxeditem}{%
  \begingroup
  \expandafter\expandafter\expandafter
    \let\expandafter\expandafter\expandafter
      \oldlabelenum@\expandafter\csname labelenum\romannumeral\the\@enumdepth\endcsname
  \@namedef{labelenum\romannumeral\the\@enumdepth}{\fbox{\oldlabelenum@}}
  \item\leavevmode%
  \endgroup
}

\makeatother

\begin{document}

\begin{enumerate}
  \item First

  \boxeditem Second

  \boxeditem Third

  \boxeditem Fourth

  \item Last
\end{enumerate}

\end{document}

相关内容