LaTeX 多样列表:enumitem 宏包

enumitem 宏包简介

enumitem 宏包 是 LaTeX 中一个非常实用的工具,它提供了一种简单且灵活的方式来定制列表环境(包括无序列表 itemize、有序列表 enumerate 以及描述列表 description)的格式和样式。通过使用 enumitem 宏包,用户可以轻松地控制列表项之间的垂直间距、水平缩进、标签样式(包括编号或符号)、悬挂缩进等参数,并能够在文档的不同部分应用不同的列表设置。

以下是一些 enumitem 宏包的主要功能:

  1. 自定义间距

    • \setlist 命令允许全局或局部设定各类列表环境的间距参数,如:
      • \topsep:列表与上下文正文之间的垂直间距。
      • \itemsep:列表中相邻项目之间的垂直间距。
      • \parsep:同一项目内段落间的垂直间距。
      • \partopsep:在列表顶部或底部有空白行时额外增加的垂直间距。
      • \leftmargin\rightmargin:列表整体的左右边距。
      • \labelwidth\labelindent:标签区域的宽度和缩进。
  2. 自定义标签

    • 可以改变默认的编号样式,例如将 enumerate 的数字标签替换为罗马数字、字母或其他自定义格式。
    • 设置标签对齐方式,如左对齐、右对齐或居中对齐。
    • 使用 \newlist\setlist 创建并配置新的列表环境,具有特定的样式。
  3. 嵌套列表

    • 支持多级嵌套列表,并可以分别调整每一级列表的样式和间距。
  4. 交叉引用

    • 提供了列表项目的自动编号功能,并支持交叉引用列表项。
  5. 其他选项

    • 控制列表前后的换页行为,防止页面断开或者强制列表在同一页面上完成。
    • 添加前缀或后缀到每个列表项的标签前或后面。

enumitem 宏包极大地增强了 LaTeX 用户对列表环境的控制能力,使其能够根据文档排版需求来精确调整列表格式。

enumitem 宏包的使用

加载宏包

在 LaTeX 文档的导言区加载 enumitem 宏包:

1
\usepackage{enumitem}

环境设置

enumitem 宏包提供了 \setlist 命令来设置列表环境的参数,其语法格式如下:

1
\setlist[<list type>]{<format>}

其中 <list type> 为列表类型,可以是 itemizeenumeratedescription,也可以是用户自定义的列表环境名称;<format> 为列表格式,可以是一个或多个列表参数,多个参数之间用逗号分隔。

例如,下面的代码将全局设置 itemize 环境的垂直间距为 0pt,并将标签缩进设置为 1em

1
\setlist[itemize]{noitemsep, leftmargin=1em}

有序列表 enumerate

下面是一个简单的 enumerate 环境的例子:

1
2
3
4
\begin{enumerate}[label=\alph*)] % 将列表标签设为小写字母
\item 第一项内容
\item 第二项内容
\end{enumerate}

编译后的效果如下:

enumerate 示例

自定义列表

下面是一个自定义列表环境的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
% 创建并使用新的列表环境
\newlist{mylist}{enumerate}{2}
\setlist[mylist, 1]{label*=\arabic*.}
\setlist[mylist, 2]{label=(\roman*)}

\begin{mylist}
\item 主要条目
\begin{mylist}[resume]
\item 子条目1
\item 子条目2
\end{mylist}
\item 另一个主要条目
\end{mylist}

编译后的效果如下:

自定义列表示例