马春杰杰博客
致力于深度学习经验分享!

记一次LaTeX图片位置调整的问题

文章目录
[隐藏]

今天在准备论文支撑材料的时候,需要对几个图片进行排版,结果出了很多奇怪的问题,正好这里记录下来,方便后续改正。

1、第一页顶部的双栏导图

想把某个大图放到第一页的顶部,之前用的是\begin{figure}[t],一点问题没有,老老实实放在了顶部的左上角,但是这个图本身比较大,如果单栏的话,字体就看不清了,于是我打算改成双栏顶部,于是设置了\begin{figure*}[t],然后问题出现了,这个图死活放不到第一页的顶部,即使空间很充足,仍然是跑到了第二页的顶部。

我百思不得其解,后来查资料发现,主要原因是:

我们将其放置在了 \maketitle 之后。 在双栏排版中,LaTeX 引擎无法在第一页标题已经生成的情况下,强行插入一个跨两栏的图形,因此它会忽略 [t] 参数,自动将该图推迟到下一页(第二页)的顶部。

解决方案就是改成 teaserfigure 环境,因为acmart 官方模板已经为这种导图准备好了专门的位置,因此只需要将\begin{figure*}[t]    \end{figure*}改为\begin{teaserfigure}  \end{teaserfigure},并调整到 \maketitle 之前即可。

2、莫名其妙丢失的图

还碰到个问题,就是一共图1-图6,突然图5没了,但是文中的顺序还在,只是图5消失了,正文引用处也是显示??

这主要是acmart 模板为了美观,会在文档结束(\end{document})时强制把最后一页的左右两栏文字拉平对齐。当这个机制触发时,如果你还有图片(比如图 5)卡在队列里没有输出,对齐引擎会直接中断排版,把队列里剩下的图片当作垃圾清理掉。

解决方案也很简单,就是在\end{document}前面加个\clearpage即可。这个命令的作用是:在触发末页对齐并关闭文档之前,强制拉起一张新的一页,把队列里所有还没发出去的图片全部安全地打印出来。

3、死活放不到指定页数的图

最后还有个问题,就是某个双栏图,总是自动跑到最后一页的顶部,但其实上一页还有空间,而且上一页的右下角有大片的空白,但这个双栏图就是不往上一页跑。

这个原因也很简单,这也是 LaTeX 双栏排版中非常经典的一个机制:跨栏图(figure*)通常会被强制推迟到它在代码中出现位置的“下一页”顶部。

所以,解决方案就是,把这个图放到上上一页的文字那,这样LaTeX在渲染的时候,就会把这个图放到上一页的顶部~

4、总结

这里总结了几个LaTeX排版时不太注意的小细节:

  1. LaTeX 的双栏(twocolumn)排版中,带星号的 \begin{figure*} 专门用于生成跨越两栏的宽图。但是,跨栏图片只允许出现在页面的顶部 (t) 或单独的浮动页 (p),因此注意双栏图不要用h;
  2. 如果你的文档(特别是 Appendix 附录部分)包含大量图片而文字较少,经常会遇到图片离奇失踪、正文引用变成 Figure ?? 的惨案。这通常是因为 acmart 等模板在文档末尾触发了“强制双栏对齐”机制,直接清空了还在排队的图片。养成一个好习惯:在 \end{document} 或参考文献声明之前,加上一行 \clearpage。这能强制拉起新页,安全打印出所有积压的图表;
  3. LaTeX 不是所见即所得的排版工具。在双栏模式下,跨栏大图默认会被排版在“代码声明位置的下一页顶部”。如果你希望某张大图完美出现在第 3 页的顶部,而不会导致页面下方出现大段异常空白,你需要将这张图的 LaTeX 代码剪切,往前放到第 2 页的正文段落里让它“提前排队”。
免费使用DeepSeek满血版

如果你对这篇文章有什么疑问或建议,欢迎下面留言提出,我看到会立刻回复!

打赏
未经允许不得转载:马春杰杰 » 记一次LaTeX图片位置调整的问题

留个评论吧~ 抢沙发 评论前登陆可免验证码!

私密评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填,便于回访^_^)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏