我正在做一个小项目,并使用 enumitem 包原因超出了这个示例。我阅读了文档并设法制作了这个示例。目前,我在 \begin{description} 上使用 before 参数(取消注释第 6 行的部分)。
为了便于重用,我想将其移至描述环境的全局设置中(第 4 行)。但是,这似乎超出了我的理解范围。
谢谢您的帮助
\documentclass{article}
\usepackage{enumitem}
%\setlist[description]{before={\renewcommand{\makelabel}[1]{\textit{##1}: }}} % Illegal parameter number in definition of \enit@@description.
\begin{document}
\begin{description}%[before={\renewcommand{\makelabel}[1]{\textit{##1}: }}]
\item[square]{a four-sided polygon is a square if and only if all sides are equal and its vertex angles are all right angles.}
\end{description}
\end{document}
答案1
如果您的目标只是更改描述标签的格式,那么您before
根本不应该使用参数,而应该只指定标签的格式。如果您只是更改字体属性,则可以使用参数font
(例如font=\normalfont\itshape
)如果您想向标签添加材料(如您在评论中所述),最好的方法是创建一个命令来添加冒号(或执行您想要的任何其他格式)并将该命令用作参数中的最后一个。通常,对于格式化列表本身的各个部分,参数format
的需求很少。before
\documentclass{article}
\usepackage{enumitem}
\newcommand\addcolon[1]{#1:}
\setlist[description]{format=\normalfont\itshape\addcolon}.
\begin{document}
\begin{description}
\item[square]{a four-sided polygon is a square if and only if all sides are
equal and its vertex angles are all right angles.}
\end{description}
\end{document}
答案2
该包显然通过三个级别的宏定义传递该参数,因此您需要
\documentclass{article}
\usepackage{enumitem}
\setlist[description]{before={\renewcommand{\makelabel}[1]{\textit{########1}: }}} % Illegal parameter number in definition of \enit@@description.
\begin{document}
\begin{description}%[before={\renewcommand{\makelabel}[1]{\textit{##1}: }}]
\item[square]{a four-sided polygon is a square if and only if all sides are equal and its vertex angles are all right angles.}
\item[square]{a four-sided polygon is a square if and only if all sides are equal and its vertex angles are all right angles.}
\end{description}
\end{document}