答案1
这是一种可能的方法——当然其他方法也可能有效!
标记本身非常简单,label*=...
使用父级标签的语法即可。
对齐并不那么简单。所有元素都必须相对于左边距左对齐,因此对于更深的级别,左边距必须是全部0pt
,并且所有级别的标签宽度必须相等。30pt
此处的只是一个任意值。
\documentclass{article}
\usepackage{showframe}
\usepackage{enumitem}
\setlist[enumerate]{align=left}
\setlist[enumerate,1]{labelwidth=30pt,leftmargin={\dimexpr\labelwidth+\labelsep}}
\setlist[enumerate,2]{labelwidth=30pt,leftmargin=0pt,label*={\arabic*}}
\setlist[enumerate,3]{labelwidth=30pt,leftmargin=0pt,label*={.\arabic*}}
\setlist[enumerate,4]{labelwidth=30pt,leftmargin=0pt,label*={.\arabic*}}
\usepackage{blindtext}
\begin{document}
\begin{enumerate}
\item \blindtext
\begin{enumerate}
\item \blindtext
\begin{enumerate}
\item \blindtext
\begin{enumerate}
\item \blindtext
\item \blindtext
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{document}
这是一个更简单的方法,使用\newlist
命令:
\documentclass{article}
\usepackage{showframe}
\usepackage{enumitem}
\newlength{\mylabelwidth}
\setlength{\mylabelwidth}{40pt}
\newlist{leftenum}{enumerate}{4}
\setlist[leftenum]{align=left,labelwidth={\mylabelwidth},topsep=5pt,leftmargin=0pt,label*={\arabic*.}}
\setlist[leftenum,1]{leftmargin={\dimexpr\labelwidth+\labelsep}}
\usepackage{blindtext}
\begin{document}
\begin{leftenum}
\item \blindtext
\begin{leftenum}
\item \blindtext
\begin{leftenum}
\item \blindtext
\begin{leftenum}
\item \blindtext
\item \blindtext
\end{leftenum}
\end{leftenum}
\end{leftenum}
\end{leftenum}
\end{document}
答案2
这里有一种方法enumitem
:
\documentclass{article}
\usepackage{enumitem}
\usepackage{calc}
\usepackage[showframe]{geometry}
\usepackage{lipsum}
\setlist[enumerate]{wide=0pt, align=parleft, itemindent=0pt, labelsep=\widthof{9.9.9.9\quad}, leftmargin=0cm}
\setlist[enumerate, 1]{label=\thesection.1, leftmargin=\widthof{9.9.9.9\quad}}
\setlist[enumerate, 2]{label=\theenumi.\arabic*}
\setlist[enumerate, 3]{label=\theenumii.\arabic*}
\setlist[enumerate, 4]{label=\theenumiii.\arabic*}
\begin{document}
\setcounter{section}{1}
Some text some text some text some text some text some text some text some text some text some text some text.
\begin{enumerate}
\item \lipsum[2]
\begin{enumerate}
\item\label{test} \lipsum[2]
\item We can see from \ref{test} cross-references work.
\begin{enumerate}
\item\label{test} \lipsum[3]
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{document}%