目录
使用enumitem有什么好处?
1.可以使用enumitem的内置指令,例如nosep,更简明地调整列表间距。
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}
\usepackage{enumitem}
\title{Test}
\author{Test}
\date{September 2020}
\begin{document}
\maketitle
\begin{itemize}
\setlength{\itemsep}{0pt}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
\item 无序列表项目1
\item 无序列表项目2
\item 无序列表项目3
\end{itemize}
\begin{itemize}[nosep]
\item 无序列表项目1(nosep)
\item 无序列表项目2
\item 无序列表项目3
\end{itemize}
\end{document}
2.可以全局地设置各级列表样式,除了上文提及的间距属性之外,还可以设置引用(观察代码中的label ref)样式、更灵活地设置标签样式(对应setlist中的label属性)。
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}
\usepackage{enumitem}
\title{Test}
\author{Test}
\date{September 2020}
\begin{document}
\setlist[enumerate,1]{label = \arabic*.,
ref = \arabic*}
\setlist[enumerate,2]{label = \emph{\alph*}),
ref = \theenumi.\emph{\alph*}}
\setlist[enumerate,3]{label = \roman*),
ref = \theenumii.\roman*}
\maketitle
\begin{enumerate}
\item 有序列表项目1
\begin{enumerate}
\item 儿子有序列表1
\item 儿子有序列表2
\begin{enumerate}
\item 孙有序列表1
\item 孙有序列表2\label{ENUM:grandson2}
\end{enumerate}
\end{enumerate}
\item 有序列表项目2
\item 有序列表项目3
\end{enumerate}
展示引用孙有序列表2时的效果\ref{ENUM:grandson2}。
\end{document}
3.单独设置列表间距属性能够覆盖全局设置;设置列表项目缩进。
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}
\usepackage{enumitem}
\title{Test}
\author{Test}
\date{September 2020}
\begin{document}
\setlist[enumerate,1]{label = \arabic*.,
ref = \arabic*, itemsep=0pt}
\setlist[enumerate,2]{label = \emph{\alph*}),
ref = \theenumi.\emph{\alph*}}
\setlist[enumerate,3]{label = \roman*),
ref = \theenumii.\roman*}
\newlist{legal}{enumerate}{10}
\setlist[legal]{label*=\arabic*.}
\maketitle
\begin{enumerate}
\item 有序列表项目1(全局设置)
\item 有序列表项目2(全局设置)
\item 有序列表项目3(全局设置)
\end{enumerate}
\begin{enumerate}[itemsep=50pt]
\item 有序列表项目1(单独设置)
\item 有序列表项目2(单独设置)
\end{enumerate}
\section{一个测试section}
\subsection{一个测试subsection}
% label
\begin{enumerate}
\item 对比有序列表,与subsection编号位置对齐。
\begin{enumerate}
\item 子列表缩进观察
\end{enumerate}
\item 对比有序列表
\end{enumerate}
% leftmargin=* : begins at a variable place depending on the label
\begin{enumerate}[labelindent=\parindent,leftmargin=*]
\item 缩进列表
\begin{enumerate}
\item 子列表缩进观察
\end{enumerate}
\item 缩进列表
\end{enumerate}
\end{document}
不建议使用itemindent代替labelindent
itemindent在文档中的作用范围如下图所示,其只会对item的第一行的文本缩进。如果item中出现换行,分段,或是嵌入子列表,缩进样式就会变得不美观。
实验代码如下所示:
\documentclass[UTF8]{ctexart}
\usepackage{amsmath}
\usepackage{enumitem}
\title{Test}
\author{Test}
\date{September 2020}
\begin{document}
\setlist[enumerate,1]{label = \arabic*.,
ref = \arabic*, itemsep=0pt}
\setlist[enumerate,2]{label = \emph{\alph*}),
ref = \theenumi.\emph{\alph*}}
\setlist[enumerate,3]{label = \roman*),
ref = \theenumii.\roman*}
\newlist{legal}{enumerate}{10}
\setlist[legal]{label*=\arabic*.}
\maketitle
\section{一个测试section}
\subsection{一个测试subsection}
% label
% leftmargin=* : begins at a variable place depending on the label
\begin{enumerate}[labelindent=\parindent,leftmargin=*]
\item 缩进列表
换行效果
\begin{enumerate}
\item 子列表缩进观察
\end{enumerate}
\item 缩进列表
\end{enumerate}
\begin{enumerate}[itemindent=\parindent]
\item 缩进列表2
换行效果
\begin{enumerate}
\item 子列表缩进观察
\end{enumerate}
\item 缩进列表2
\end{enumerate}
% left=<labelindent> .. <leftmargin>
% in enumitem v3.0+
\begin{enumerate}[left=\parindent]
\item 缩进列表3(与缩进列表1效果相同)
换行效果
\begin{enumerate}
\item 子列表缩进观察
\end{enumerate}
\item 缩进列表3
\end{enumerate}
\end{document}