topsep=0pt
可以帮助减少enumitem
列表前的垂直空间,使得垂直间距与普通文档相同:
reference line
和之间的空格1st line of list
正是我希望的。但在嵌套列表中使用时,它不会产生完全相同的效果:
label 1
在第二种情况下,和之间的间距对我来说看起来很完美,但和label 2
之间的垂直间距比第一种情况大。如何在不改变外部列表间距的情况下修复它?reference line
1st line of list
完整代码:
\documentclass{article}
\usepackage{enumitem, lipsum, calc}
\setlength{\parindent}{0pt}
\begin{document}
{\bf 1st case:}
reference line (in document main body)
\begin{enumerate}[leftmargin=*, labelindent=0pt, label=\bfseries label \arabic*.,
topsep=0pt, noitemsep
]
\item{1st line of list}
\item{2nd line of list}
\end{enumerate}
\vspace{1cm}
{\bf 2nd case:}
\begin{enumerate}[leftmargin=*, labelindent=0pt, label=\bfseries label \arabic*.,
]
\item{blah}
\item{reference line (in a list)
\begin{enumerate}[leftmargin=*, labelindent=0pt, label=\bfseries (nested) label \arabic*.,
topsep=0pt, noitemsep
]
\item{1st line of list}
\item{2nd line of list}
\end{enumerate}
}
\end{enumerate}
\end{document}
答案1
事实证明,解决方案可能是将内部列表的设置为外部列表的topsep
负数:topsep
\begin{enumerate}[leftmargin=*, labelindent=0pt, label=\bfseries label \arabic*.]
\item{
blah
}
\item{
\newlength{\negativeSep}
\setlength{\negativeSep}{-\the\topsep}
reference line (in a list)
\begin{enumerate}[leftmargin=*, labelindent=0pt, label=\bfseries (nested) label \arabic*.,
topsep=\negativeSep, noitemsep]
\item{1st line}
\item{2nd line}
\end{enumerate}
}
\end{enumerate}
现在,如果外部列表的间距不变而topsep
内部列表的间距为 0,则: