在枚举列表中,我想要一些“元”级注释:用粗体或其他颜色标记单个特定项目,或者从左边距用箭头指向它,或者用框将其包围。但宏\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}