为了编辑我的讲义和工作表,我使用了 enumitem 包。我经常进行全局更改,例如在序言中使用以下代码:
\setenumerate[1]{label={\bfseries\arabic*)}}
\setenumerate[2]{label={\bfseries\alph*.},nosep}
但现在我只想在已定义的环境中修改列表,例如定义和定理环境。当然,我随时可以在需要时进行更改:
\begin{definitions}
\begin{enumerate}[leftmargin=!,labelsep=1ex,labelindent=0pt,labelwidth=2.5ex,itemindent=3.5ex,label={\bfseries\arabic*.}]
\item ...
\item ...
\end{enumerate}
\end{definitions}
但是我怎样才能避免系统地复制和粘贴这些代码行呢?
感谢您的时间和帮助。
答案1
使用当前的 latex,您可以使用通用环境钩子
\documentclass{article}
\usepackage{enumitem}
\AddToHook{env/quote/begin}{\setenumerate[1]{label={\bfseries \arabic*)}}}
\begin{document}
\begin{enumerate}
\item a
\item b
\end{enumerate}
\begin{quote}
\begin{enumerate}
\item a
\item b
\end{enumerate}
\end{quote}
\begin{enumerate}
\item a
\item b
\end{enumerate}
\end{document}
答案2
正在加载enumitem
,您可以使用
\AtBeginEnvironment{definitions}{\setlist[enumerate,1]{…} \setlist[enumerate,2]{…}}
其他环境也类似。