如果我有一个嵌套的枚举列表样式,我想在整个文档中使用,那么在 LaTeX 中最好的方法是什么,这样可以轻松更改文档中所有列表的样式。我所说的样式不仅指标签的样式,还包括列表中项目的样式。例如,第一级粗体、第二级斜体、第三级正常等。
我认为这是一项非常常见的任务,但我找不到关于如何执行此操作的明确描述。我是 LaTeX 新手,仍在尝试找出最好使用硬编码格式还是以编程方式执行。
我已经设法整理了一些可以完成我想要的代码,但我想知道是否有更优雅的方式(或标准方式)来实现这一点:
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\setlist[enumerate]{noitemsep,nosep}
\setlist[enumerate,1]{label*=\arabic*.,before=\normalfont\bfseries,after=\normalfont}
\setlist[enumerate,2]{label*=\arabic*.,before=\normalfont\itshape,after=\normalfont}
\setlist[enumerate,3]{label=\alph*.,before=\normalfont}
\begin{enumerate}
\item First Level A
\begin{enumerate}
\item Second Level A
\begin{enumerate}
\item Third Level A
\end{enumerate}
\item Second Level B
\item Second Level C
\end{enumerate}
\item First Level B
\begin{enumerate}
\item First Level A
\begin{enumerate}
\item Third Level A
\end{enumerate}
\item Second Level B
\item Second Level C
\end{enumerate}
\end{enumerate}
\end{document}
答案1
enumitem
通过全局设置(使用)或本地化定制(通过各自环境的可选参数)为标准列表环境( enumerate
、itemize
和)提供干净的接口。description
\setlist
另一种选择是定义您自己的深度智能列表环境。但是,这可能会消除enumitem
接口已经提供的一些代码可读性以及代码可移植性。
enumitem
因此很可能是最好的方法。