背景

背景

背景

所有书中的人物均设置为“肯定在这里”(因为它们必须出现在介绍它们的文本之后)。

问题

列表类型(枚举和项目符号)之间的间距太大。原因似乎是因为 TeX 引擎想要尽可能多地利用页面上的空间,因为下一页本质上是一张大图像,无法放在当前页面上。例如:

相关链接

问题

如何才能使列表中的文本保持在一起(即使这意味着页面底部有足够的空间)?

答案1

由于“页面底部有足够的空间”似乎对您来说是可以接受的,请尝试将其添加\raggedbottom到您的序言中(书籍类的默认值为\flushbottom)。

更好的解决方案不是将每个浮动设置为“肯定在这里”,而是使用\usepackage{flafter}。flafter 包确保浮动不会在文内引用之前进行排版。

答案2

我处理这种情况的方法是使用“\itemsep”+长度方法:

\begin{itemize} 
\itemsep0em 
\item one
\item two
\item three
\end{itemize}

其中“长度”甚至可以是负值。

答案3

“enumitem” 包

使用enumitem打包,我们可以实现很多目标。我们不仅可以减少物品分离,而且我们还可以减少列表分离

\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{enumitem}

\begin{document}
    A normal list:
    \begin{itemize}
        \item one
        \item two
        \item three
    \end{itemize}

    No item separation:
    \begin{itemize}[noitemsep]
        \item one
        \item two
        \item three
    \end{itemize}

    No item and no list separation:
    \setlist{nolistsep}
    \begin{itemize}[noitemsep]
        \item one
        \item two
        \item three
    \end{itemize}
\end{document}

示例输出

手动更新命令

或者你可以更新list命令:

\renewcommand{\@listI}{%
\leftmargin=25pt
\rightmargin=0pt
\labelsep=5pt
\labelwidth=20pt
\itemindent=0pt
\listparindent=0pt
\topsep=0pt plus 2pt minus 4pt
\partopsep=0pt plus 1pt minus 1pt
\parsep=0pt plus 1pt
\itemsep=\parsep}

另请检查stackoverflow 上的这篇文章

答案4

您可以尝试在列表后添加 \vfill:

\end{enumerate}
\vfill

~
The picture

需要 ~ 是因为页面末尾的空间可能不会显示。

另一种方法是使用以下方式明确更改页面\newpage

相关内容