背景
所有书中的人物均设置为“肯定在这里”(因为它们必须出现在介绍它们的文本之后)。
问题
列表类型(枚举和项目符号)之间的间距太大。原因似乎是因为 TeX 引擎想要尽可能多地利用页面上的空间,因为下一页本质上是一张大图像,无法放在当前页面上。例如:
相关链接
- 删除逐项列表或枚举列表中项目符号周围的空格
- http://www.ctan.org/tex-archive/macros/latex/contrib/paralist/paralist.pdf
- http://www.ctan.org/tex-archive/macros/latex/contrib/enumitem/enumitem.pdf
问题
如何才能使列表中的文本保持在一起(即使这意味着页面底部有足够的空间)?
答案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