枚举和多列导致垂直空间不均匀

枚举和多列导致垂直空间不均匀

在这个最小的例子中,我遇到了垂直间距故障:

\documentclass[11pt,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{microtype,textcomp}
\usepackage[total={6.25in,10in},left=1.25in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{enumitem}
\usepackage{tabularx}
\usepackage{multicol}

\begin{document}

\begin{enumerate}
    \item %Blabla
        \begin{multicols}{2}
        \begin{enumerate}[label=\alph*),itemsep=11pt]
            \item This is a simple test.
            \item This is a simple test.
        \end{enumerate}
        \end{multicols}
    \smallskip % Without this command, the spacing is too small!
    \item %Blabla
        \begin{multicols}{2}
        \begin{enumerate}[label=\alph*),itemsep=11pt]
            \item This is a simple test.
            \item This is a simple test.
        \end{enumerate}
        \end{multicols}
    \smallskip
    \item Blabla bla blabla bla bla bla blabla.
\end{enumerate}

\end{document}

预览此代码的作用,以及用红色显示的故障: 在此处输入图片描述

与绿色空间相比,红色空间太大。它不均匀,我不明白为什么。如果我删除命令\smallskip,它就太小了。如果我删除babel包(我不想这样做!),那么问题就解决了。

那么我在这里做错了什么?如何修复此问题,同时保留法语 babel 命令?

请注意,我需要将多列环境保留在枚举内。完整文档中有很多这样的环境。

答案1

babel-french当法语为主要语言时,自定义列表中的垂直间距(即,,,\itemsep) ,但提供恢复为标准设置的选项。\parsep\partopsep\topsep\frenchsetup{StandardListSpacing}

在此示例中,enumitem已加载。它比 更能控制列表babel-french,因此我强烈建议使用选项 StandardListSpacing并让enumitem 独自的自定义列表。

使用 后,上述故障便消失了\frenchsetup{StandardListSpacing}。实际上,第 3 项上方的垂直空间减少了babel-french(没有此选项),这看起来不对,第 1 项和第 2 项之间的垂直空间保持不变。

答案2

这是不是这个问题的解决方案我认为是 babel 的法语 ldf 文件中的一个错误,但是如果你担心空间不足,那么似乎有效的方法是减少 multicol 在环境上方和下方添加的额外空间,例如添加

\AddToHook{env/enumerate/begin}{\setlength\multicolsep{\itemsep}}

回到你的序言。但正如我所说,这需要从 babel 代码中查看,我认为这里有一个错误。

答案3

我不知道这是否是你需要的,但只需在第一个枚举中添加一个 itemsep 就可以了

我的代码输出

 \documentclass[11pt,twoside]{book}
    \usepackage[T1]{fontenc}
    \usepackage[french]{babel} % Removing this command rise some vertical space!
    \usepackage{microtype,textcomp}
    \usepackage[total={6.25in,10in},left=1.25in,top=0.5in,includehead,includefoot]{geometry}
    \usepackage{enumitem}
    \usepackage{tabularx}
    \usepackage{multicol}
\begin{document}
    \begin{enumerate}[itemsep=11pt]
        \item
            \begin{multicols}{2}
            \begin{enumerate}[label=\alph*)]
                \item TTTTTTTTTTTT
                \item TTTTTTTTTTTT
            \end{enumerate}
            \end{multicols}
     \item
            \begin{multicols}{2}
            \begin{enumerate}[label=\alph*)]
                \item TTTTTTTTTTTT
                \item TTTTTTTTTTTT
            \end{enumerate}
            \end{multicols}
    \item TTTTTTTTTTTT
    \end{enumerate}
\end{document}

相关内容