将宏作为参数传递

将宏作为参数传递

我试图对所有枚举列表使用相同类型的格式,因此我认为编写带有格式的宏会更容易,然后每次必须使用列表时只需在宏中写入即可,这样可以避免重复并弄乱格式,这里是代码。

\documentclass[11pt, a4paper]{article}
\usepackage{enumitem}

\setlist[itemize]{noitemsep, topsep=0pt}

\newcommand{\enumFormatting}{topsep=0pt,itemsep=-1ex,partopsep=1ex,parsep=1ex}

\begin{document}
\begin{enumerate}[\enumFormatting]
\item first item
\item second item
\item third item
\item fourth item     
\end{enumerate}


\end{document}

不幸的是,这没有奏效,因为当我将其用作\enumFormatting参数时返回了一个错误,我一定是弄错了什么。希望你能帮我解决这个问题,谢谢。

答案1

这不是执行此操作的“正确”方法,但可行(在这种情况下,可以扩展密钥列表而不会造成损害,如果它包含\bfseries,情况就会有所不同)。正确的方法大概可以在campa 的评论

\documentclass[11pt, a4paper]{article}
\usepackage{enumitem}

\setlist[itemize]{noitemsep, topsep=0pt}

\newcommand{\enumFormatting}{topsep=0pt,itemsep=-1ex,partopsep=1ex,parsep=1ex}

\begin{document}
\expanded{\noexpand\begin{enumerate}[\enumFormatting]}
\item first item
\item second item
\item third item
\item fourth item     
\end{enumerate}

\end{document}

相关内容