wrapfigure 前的空格从何而来,如何消除?

wrapfigure 前的空格从何而来,如何消除?

以下 MWE 的代码(取自这里并稍作修改:在周围添加了小页面)应展示详细信息:

\documentclass{article}
\usepackage{lipsum,tikz,wrapfig}

\setlength\intextsep{0pt}%<- doesn't seem to matter

\begin{document}
%
\fbox{%
\begin{minipage}[t]{0.45\textwidth}%
    \begin{wrapfigure}{r}{4cm}%
        \begin{tikzpicture}%
            \fill (0, 0) rectangle (4, 4);%
        \end{tikzpicture}%
    \end{wrapfigure}%

    \lipsum[1]%
\end{minipage}%
}%
%
\fbox{%
\begin{minipage}[t]{0.45\textwidth}%
%   \begin{wrapfigure}{r}{4cm}%
%       \begin{tikzpicture}%
%       \fill (0, 0) rectangle (4, 4);%
%       \end{tikzpicture}%
%   \end{wrapfigure}%

    \lipsum[1]%
\end{minipage}%
}%
\end{document}

截屏:

在此处输入图片描述

问:如何消除间隙(参见屏幕截图中的红色问号)?(我的构建环境:Win7-64,Texstudio,TexLive2017,LuaLatex)

更新 1:

根据 cfr 的评论,我在 minipages 周围添加了 fbox。这表明没有添加任何空间 - 相反 minipage 环境似乎受到 wrapfig 的影响:请参见以下屏幕截图。

在此处输入图片描述

答案1

您正在对小页面进行顶部对齐。如果小页面(或其他框)以普通文本开头,则“顶部对齐”意味着其基线位于第一行文本的基线处。但如果它以某个 \vspace 开头,则这决定了基线。

在 minipage 内部,wrapfig 首先添加一个零 \vspace。“避免”间隙的最简单方法是向其他 minipage 添加类似的空间,以类似的方式调整它们的基线:

\documentclass{article}
\usepackage{lipsum,tikz}
\usepackage{wrapfig}

\setlength\intextsep{0pt}
\begin{document}

\fbox{%
\begin{minipage}[t]{0.32\textwidth}
    \begin{wrapfigure}{r}{2cm}%
        \begin{tikzpicture}%
            \fill (0, 0) rectangle (2, 2);%
        \end{tikzpicture}%
    \end{wrapfigure}%

    \lipsum[1]%
\end{minipage}%
}%
%
\fbox{%
\begin{minipage}[t]{0.32\textwidth}%
\vspace{0pt}
    \lipsum[1]%
\end{minipage}%
}%
\fbox{%
\begin{minipage}[t]{0.32\textwidth}%
    \lipsum[1]%
\end{minipage}%
}%

\end{document}

在此处输入图片描述

答案2

我修好了它 ;)

\documentclass{article}
\usepackage{lipsum,tikz,wrapfig}

\setlength\intextsep{-1.8pt}%<- doesn't seem to matter


\begin{document}

\begin{minipage}[t]{0.45\textwidth}%
    \begin{wrapfigure}{r}{4cm}%
        \begin{tikzpicture}%
            \fill (0, 0) rectangle (4, 4);%
        \end{tikzpicture}%
    \end{wrapfigure}%
    \vspace*{-6.7pt}

    \lipsum[1]%
\end{minipage}%
\begin{minipage}[t]{0.45\textwidth}%
%   \begin{wrapfigure}{r}{4cm}%
%       \begin{tikzpicture}%
%       \fill (0, 0) rectangle (4, 4);%
%       \end{tikzpicture}%
%   \end{wrapfigure}%

    \lipsum[1]%
\end{minipage}%
\end{document}

刚刚为您上传,看看您是否能弄清楚所需的数字是什么......

在此处输入图片描述

答案3

为什么要使用方框?环境中是否有它们的实际功能?如果没有,请忽略它们:简单就是最好的。在 wrapfig 环境中使用 vspace,使用正值或负值,以升高或降低图形的级别以匹配文本的级别。

相关内容