假设需要更改大多数 itemize 或 enumerate 参数全球(在每个 itemize 或 enumerate 环境中都更改参数并不优雅)。如果要编写类似
\renewcommand{\@listI}{
\leftmargin=5mm
\labelsep=5mm
\itemindent=0mm
\listparindent=3mm}
它不适用于标准 LaTeX 类。此外,还可以创建自己的 itemize,例如
\newenvironment{itemizetest}
{\begin{list}{$\bullet$}{
\leftmargin=5mm
\labelwidth=3mm
\labelsep=3mm
}}{\end{list}}
但它只是单级项目(不嵌套)。
- 是否可以全局更改 itemize/enumerate 的默认参数(在序言中)?
- 如果要创建自己的项目或枚举,是否可以创建第二级(嵌套)?
答案1
enumitem
提供了一种专门处理此问题的方法。有关更多信息,请参阅5 全局设置(第 9 页)enumitem
文档。
主界面提供:
\setlist[enumerate,<levels>]{<format>}
\setlist[itemize,<levels>]{<format>}
\setlist[description,<levels>]{<format>}
\setlist[<levels>]{<format>}
可用于<format>
为不同<levels>
的列表设置enumerate
、itemize
和description
,或为所有列表设置 。如果没有<levels>
,则适用于所有级别。
下图显示了左侧使用默认设置的嵌套enumerate
/列表,而右侧已应用相同的嵌套结构:itemize
\setlist[enumerate]{noitemsep,label*=\arabic*.}
正如所见,只有enumerate
项目之间没有分离,并且嵌套 \arabic*.
标签样式通过 提供\setlist
。
\documentclass{article}
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\begin{document}
\noindent
\begin{minipage}[t]{0.5\textwidth}
\begin{enumerate}
\item First item
\begin{itemize}
\item Second item
\item Third item
\begin{enumerate}
\item Fourth item
\item Fifth item
\end{enumerate}
\item Sixth item
\begin{itemize}
\item Seventh item
\item Eighth item
\end{itemize}
\item Ninth item
\end{itemize}
\item Tenth item
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.5\textwidth}
\setlist[enumerate]{noitemsep,label*=\arabic*.}
\begin{enumerate}
\item First item
\begin{itemize}
\item Second item
\item Third item
\begin{enumerate}
\item Fourth item
\item Fifth item
\end{enumerate}
\item Sixth item
\begin{itemize}
\item Seventh item
\item Eighth item
\end{itemize}
\item Ninth item
\end{itemize}
\item Tenth item
\end{enumerate}
\end{minipage}
\end{document}