✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。



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 宏包:

\usepackage{enumitem}

环境设置

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

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

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

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

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

有序列表 enumerate

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

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

编译后的效果如下:

enumerate 示例

自定义列表

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

% 创建并使用新的列表环境
\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}

编译后的效果如下:

自定义列表示例

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐