如何正确排列三级枚举 1. 1.1. 1.1.1

如何正确排列三级枚举 1. 1.1. 1.1.1

我已经创建了我的环境,并修改了枚举命令:

\renewcommand{\labelenumi}{\arabic{enumi}.}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}.}
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}

\newenvironment{packed_enum}{
\begin{enumerate}
\setlength{\itemsep}{1pt}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
}{\end{enumerate}}

这就是我得到的:

乳胶问题

前两个级别对齐正确(我用蓝线标记),但第三个级别从左侧开始过多(红线)。你能帮我解决这个问题吗?我试过这样的方法(也改成了labelsep\leftmargin

\renewcommand{\labelenumi}{\arabic{enumi}.}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}.}
\renewcommand{\labelenumiii}{\setlength{\labelsep{5ex}\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}

或这个:

\renewcommand{\labelenumi}{\arabic{enumi}.}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}.}
\renewcommand{\labelenumiii}{\hbox{\hspace{5ex}\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}}

但都没有帮助。

答案1

在...的帮助下enumitem

\newenvironment{packed_enum}{%
  \renewcommand{\labelenumi}{\arabic{enumi}.}%
  \renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}.}%
  \renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}%
  \begin{enumerate}[itemsep=1pt,parsep=0pt,leftmargin=*]%
  }{\end{enumerate}}

该选项leftmargin=*可确保标签与周围文本对齐。请注意,我还在\renewcommand里面插入了所有 s,\newenvironment以便仅在本地进行更改。

梅威瑟:

\documentclass{article}
\usepackage{enumitem}

\newenvironment{packed_enum}{%
  \renewcommand{\labelenumi}{\arabic{enumi}.}%
  \renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}.}%
  \renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}%
  \begin{enumerate}[itemsep=1pt,parsep=0pt,leftmargin=*]%
  }{\end{enumerate}}

\begin{document}

\begin{packed_enum}
  \item First level
  \begin{packed_enum}
    \item Second level
    \begin{packed_enum}
      \item Third level
    \end{packed_enum}
  \end{packed_enum}
\end{packed_enum}

\end{document} 

输出:

在此处输入图片描述

答案2

如果你正在加载enumitem包,你不妨使用它提供的命令来创建列表类型的环境,即

\newlist{packed_enum}{enumerate}{5}
\setlist[packed_enum]{label*=\arabic*.,leftmargin=*}

这是一个完整的 MWE,它产生与其他答案相同的输出。

% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}
\usepackage{enumitem}

\newlist{packed_enum}{enumerate}{5}
\setlist[packed_enum]{label*=\arabic*.,leftmargin=*}

\begin{document}

\begin{packed_enum}
    \item First level
    \begin{packed_enum}
        \item Second level
        \begin{packed_enum}
            \item Third level
        \end{packed_enum}
    \end{packed_enum}
\end{packed_enum}

\end{document}

相关内容