enumitem:在嵌套列表中使用时,topsep 发生了变化

enumitem:在嵌套列表中使用时,topsep 发生了变化

topsep=0pt可以帮助减少enumitem列表前的垂直空间,使得垂直间距与普通文档相同:

在此处输入图片描述

reference line和之间的空格1st line of list正是我希望的。但在嵌套列表中使用时,它不会产生完全相同的效果:

在此处输入图片描述

label 1在第二种情况下,和之间的间距对我来说看起来很完美,但和label 2之间的垂直间距比第一种情况大。如何在不改变外部列表间距的情况下修复它?reference line1st 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,则:

在此处输入图片描述

相关内容