You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LaTeX子图排版:子图后添加的文字错误显示在图片前方

LaTeX子图后正文前置问题修复

问题场景

LaTeX撰写硕士学位论文时插入3幅子图,预期子图后紧跟说明文字,但实际排版中文字出现在图片前方,对应实现代码如下:

\begin{figure}[hbt!]
  \centering
  \subfloat[Absolute correlations of initial states in case A]{\includegraphics[width=0.7\textwidth]{Images/Results/correlation_best.png}}

  \subfloat[Absolute correlations of initial states of Callisto and Jupiter in case B]{\includegraphics[width=0.7\textwidth]{Images/Results/correlations_vlbi.png}}
  
  \subfloat[Absolute correlations of initial states of Callisto and Jupiter in case C]{\includegraphics[width=0.7\textwidth]{Images/Results/correlations_worst.png}}
  \caption{Absolute correlations for Callisto and Jupiter}
\end{figure}
We highlight case B and case C

实际排版效果:
子图与文字顺序错乱的排版效果

问题原因

figure是LaTeX的浮动环境,排版时会按照设定的位置参数自动寻找合适的放置位置。示例中3张子图总高度较高,当代码所在位置的当前页面剩余垂直空间不足以容纳整个图块时,LaTeX会自动将图块后移到有足够空间的页面;但图块后的正文属于普通文档流,会按代码顺序正常排版,最终就出现文字显示在图片前方的错位问题。

可行解决方案

  • 强制固定图片位置(学位论文排版优先选这个方案):先在文档导言区引入float宏包,再把figure环境的位置参数改成H,就能强制图片在代码插入的位置输出,完全不会浮动移位。操作步骤:
    1. 导言区加一行代码:\usepackage{float}
    2. 把原来的\begin{figure}[hbt!]修改为:\begin{figure}[H]
  • 缩小图块整体高度:适当调小单张子图的宽度(比如从0.7\textwidth改成0.6\textwidth),三张图叠起来的总高度会同步降低,只要当前页剩余垂直空间放得下整个图块,LaTeX就会按代码顺序先排图片、再排后面的文字。
  • 调整浮动体排版规则:如果不想强制固定位置,可以在导言区加参数调整代码,降低页面最低正文占比要求,允许图片占据更多页面空间,减少图块被挤到后面的概率:
    % 允许页面正文占比最低为10%,顶部浮动体占比最高90%
    \renewcommand{\textfraction}{0.1}
    \renewcommand{\topfraction}{0.9}
    

内容的提问来源于stack exchange,提问作者Gianmarco Broilo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 20:39:21