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

wrapfig遇章节/列表等元素时下方留白问题求助

解决wrapfig环绕特殊元素时的留白问题

wrapfig本身是基于段落结构实现文本环绕的,遇到章节标题、列表、枚举这类会打断常规段落流的元素时,它的自动高度计算很容易出错,进而导致下方出现大量留白。给你几个实用的解决办法:

1. 手动指定wrapfig的环绕行数/高度

不要依赖wrapfig的自动计算,直接在环境定义里指定需要环绕的行数(第一个参数),或者直接设置高度,让它匹配实际内容的高度:

% 指定环绕12行
\begin{wrapfigure}[12]{r}{0.3\textwidth}
    \centering
    \fbox{\begin{minipage}{0.28\textwidth}
        带框测试内容
    \end{minipage}}
\end{wrapfigure}

% 或者直接设置高度
\begin{wrapfigure}{r}{0.3\textwidth}[height=6cm]
    \includegraphics[width=\linewidth]{example-image}
\end{wrapfigure}

手动指定后,wrapfig就不会因为特殊元素的间距错误计算高度,留白自然就消失了。

2. 用\wrapfill强制填充留白

在wrapfig环境结束后、特殊元素(比如标题、列表)之前或者之后加\wrapfill命令,它会强制后续文本填充wrapfig留下的空白区域:

\begin{wrapfigure}{r}{0.3\textwidth}
    % 你的内容
\end{wrapfigure}

\subsection{测试子标题}
\lipsum[1]
\begin{itemize}
    \item 列表项1
    \item 列表项2
\end{itemize}
\wrapfill

3. 换用更兼容的包

如果wrapfig的局限性实在没法满足需求,可以试试这些替代包:

  • floatflt:对列表、标题的环绕支持比wrapfig更友好,用法和wrapfig类似,比如\begin{floatingfigure}{0.3\textwidth}
  • tcolorbox:如果是做带框内容的环绕,用tcolorbox的wrap选项,它的环绕逻辑更智能,能自动适配各种元素:
    \usepackage{tcolorbox}
    \tcbuselibrary{skins,breakable,wrap}
    
    \begin{tcolorbox}[wrap=r, width=0.3\textwidth, colback=gray!10]
        带框内容,自动环绕标题和列表
    \end{tcolorbox}
    
    \subsection{测试子标题}
    \begin{enumerate}
        \item 测试列表项
    \end{enumerate}
    

4. 临时调整元素间距(应急用)

如果只是某个标题导致的留白,可以手动减小标题的垂直间距,比如:

\subsection{测试子标题}\vspace{-8pt}

这个是临时 workaround,适合快速调整,但不推荐大规模使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 22:12:40