由于该acronym
包是使用描述环境构建的,并且描述环境与 Enumitem 一起工作\setlist{nosep}
,为什么 Acronym 包不受此命令的影响?我需要重置环境AC@deflist
才能获得类似的效果,这是一个比简单命令复杂得多的解决方案。是否可以配置 Acronym 以对该\setlist{nosep}
命令做出反应?
\renewenvironment{AC@deflist}[1]{
\ifAC@nolist%
\else%
\raggedright\begin{list}{}{
\settowidth{\labelwidth}{\AC@makelabel{\aclabelfont{#1}}}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{0pt}
\setlength{\parsep}{0pt}
\setlength{\parskip}{0pt}
\renewcommand{\makelabel}{\AC@makelabel}
}
\fi
}{
\ifAC@nolist%
\else%
\end{list}%
\fi
}
答案1
可以AC@deflist
使用以下代码重新定义环境以使用描述而不是列表。这样,该\setlist{nosep}
命令也将应用于首字母缩略词列表。
\documentclass{article}
\usepackage{acronym}
\usepackage{enumitem}
\setlist{nosep}
\makeatletter
\renewenvironment{AC@deflist}[1]%
{\begin{description}[leftmargin=!, labelwidth=3cm, labelsep=0pt, itemindent=0pt]}%
{\end{description}}
\makeatother
\begin{document}
\begin{acronym}
\acro{AI}{Artificial Intelligence}
\acro{ML}{Machine Learning}
\end{acronym}
\end{document}