我在处理图形时遇到了一些问题。当我的页面上有一些文本,然后出现了一个具有 H 属性的图形,该图形与文本无法放在同一页中时,文本本身就会散布在该页中。
有什么方法可以删除这些空格吗?我希望页面末尾留空(尽管有些人可能认为这不是最好的做法)。是我想要的输出图像。
有什么办法可以做到这一点吗?
答案1
该\raggedbottom
声明使所有页面的高度都与该页面上的文本高度相同;不添加额外的垂直空间。将其添加到文档序言中,我相信您将获得所需的行为。
答案2
我假设您正在使用一种book
文档类,因为它们通常设置\flushbottom
为默认值,这会导致您遇到这种行为。因此,一个简单的解决方案当然是将该设置更改为\raggedbottom
文档的序言中(如果这是私有类,则更改为类中的设置)。但是,这种方法的缺点是,所有页面都会显示不规则的行为,这对于书籍或手册来说通常是不希望的。
另外,您也可以使用类似命令,\maybeflushthispage
在所有可能需要缩短页面的地方前面(即,在您的情况下,在所有类型的图形前面[H]
)使有问题的页面变短。
\documentclass{book}
\usepackage{lipsum,float}
\setlength\textheight{26\baselineskip}
\newcommand\maybeflushthispage{\vfil\penalty1000\vfilneg}
\begin{document}
\lipsum[1-2]
\maybeflushthispage
\begin{figure}[H] \rule{5pt}{4cm} \end{figure}
One line here \ldots
\maybeflushthispage
\begin{figure}[H] \rule{5pt}{4cm} \end{figure}
\lipsum[1]
\end{document}
如果你运行这个,那么\maybeflushthispage
在休息时将会刷新页面(第一页),但在其他情况下不会执行任何操作(第二页):