我已经创建了我的环境,并修改了枚举命令:
\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}