在排版图表时,经常会碰到“LaTeX里的插图怎么总是飘来飘去,烦死了!”这样的问题。
殊不知,这是 LaTeX的精髓之一,请参考 https://www.latexstudio.net/archives/12049.html 的“LianTze-presentation-0320-forReading.pdf”中第 8 页-第 18 页的讲解。
关于浮动体,《LaTeX2ε插图指南》第 87 页也明确指出:
但是,总是有把图表布置于紧随当前文本位置或是不远位置的需求和习惯。浮动体无法布置于指定位置,其主要原因是没有足够的空间。此时,可以有三种方式来实现这一需求。
如果当前页为图表留下的空间只差少量几行文本的话,可以适当精简图表位置之前的文本,为图表腾出足空间即可。
注意:在排版中,也应该尽量避免孤字成行或2-3个字成行这样的现象。
当页面留下的空间太小,通过精简文本也无法为浮动体留足空间时,可以适当润色丰富当前的文本,将图表浮动体“挤到”下一页中。
必要时,需要适当调整图表的尺寸,以将浮动体布置于指定的位置。对于用includegraphics
命令实现的插图,可以用height
、width
、keepaspectratio
、scale
等可选参数调整插图尺寸,以满足排版空间要求。
显然手动调整插图尺寸的话,将是一个比较繁琐的过程。其实,LaTeX 是可以自动计算一页到底还剩多少空间可用。请参考 https://www.latexstudio.net/archives/4683.html 中林前辈的说明,用如下代码实现这一计算:
\begin{figure}[h!]
\centering
\includegraphics[
height=dimexprpagegoal-pagetotal-4baselineskiprelax,
width=textwidth,
keepaspectratio]{examle-image}
\caption{Survey results}
\end{figure}
一般来讲,在使用LaTeX排版时,没有定稿以前,尽量不要操心图表位置这些事,就让它们浮动到它们想浮动的位置。在定稿以后,再做适当调整,以实现特殊的需求。
另外,如果是投稿,有的期刊会要求所有图、表都排在文章最后。此时,不要去做非要将图、表排在当前位置这样出力不讨好的事。
Happy LaTeXing!