我定义了一个命令
\newcommand{\done}{\color[RGB]{124, 124, 255}}
有没有办法使用它作为
\item \done la-la
代替
\item {\done la-la}
总是加括号让我很烦。
所以基本上我只想\done
在 内有一个范围\item
。
答案1
使用重置颜色\item
\documentclass{article}
\usepackage{xcolor}
\newcommand\done{\color[RGB]{124, 124, 255}}
\let\Item\item
\renewcommand\item{\normalcolor\Item}
\begin{document}
\begin{enumerate}
\item \done la-la
\item foo
\item \done la-la
\end{enumerate}
\end{document}
答案2
\item
基于 Gonzalo 的解决方案,您可以改变环境内的定义Lenumerate
,而环境外的行为将照常。
\documentclass{article}
\newenvironment{Lenumerate}{%
\begingroup
\let\latexsaveditem\item
\renewcommand{\item}{\endgroup\begingroup\latexsaveditem}
\enumerate\begingroup%
}{%
\endgroup\endenumerate\endgroup%
}
\begin{document}
\begin{Lenumerate}
\item \bfseries a
\item \itshape b
\item \scshape c
\item d
\end{Lenumerate}
\end{document}
答案3
这个答案在某种程度上被认为是实验性的;我定义了三个命令:(\Mfitem
专门用于列表的第一项),\Mitem
(专门用于不同于第一项和最后一项的项目)和\Mlitem
(专门用于列表的最后一项)。\Mfitem
只需调用\item
并开始一个组(而不关闭它);\Mitem
结束一个组,打开另一个组,然后调用\item
(感谢 Caramdir 建议此顺序),并\Mlitem
在调用之前关闭最后一个组\item
。一个例子:
\documentclass{article}
\newcommand\Mfitem{\begingroup\item}
\newcommand\Mitem{\endgroup\begingroup\item}
\newcommand\Mlitem{\endgroup\item}
\begin{document}
\begin{enumerate}
\Mfitem \bfseries a
\Mitem \itshape b
\Mitem \scshape c
\Mlitem d
\end{enumerate}
\end{document}
编辑:根据 Caramdir 的建议,这里还有另一种选择:使用 定义一个新环境,但在开头和结尾environment
添加;现在命令和不再需要:\begingroup
\endgroup
\Mfitem
\Mlitem
\documentclass{article}
\newenvironment{Lenumerate}
{\enumerate\begingroup}
{\endgroup\endenumerate}
\newcommand\Mitem{\endgroup\begingroup\item}
\begin{document}
\begin{Lenumerate}
\Mitem \bfseries a
\Mitem \itshape b
\Mitem \scshape c
\Mitem d
\end{Lenumerate}
\end{document}