latex 使用enumitem包来调整itemize,enumerate列表间距

目录

使用enumitem有什么好处?

不建议使用itemindent

 


使用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}

 

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值