wrapfigure 环境 vspace 图上方

wrapfigure 环境 vspace 图上方

我试图用它在我的文档中wrapfigure放置一个figure,但我注意到发生了一些奇怪的事情。

代码:

\documentclass{article}
\usepackage{lipsum,tikz,wrapfig}
\begin{document}    
\begin{wrapfigure}[9]{r}{4cm}
    \begin{tikzpicture}
        \fill (0, 0) rectangle (4, 4);
    \end{tikzpicture}   
\end{wrapfigure}
\lipsum[1]
\vspace{5mm}
\begin{wrapfigure}[10]{r}{4cm}
    \begin{tikzpicture}
        \fill (0, 0) rectangle (4, 4);
    \end{tikzpicture}   
\end{wrapfigure}
\lipsum[1]
\lipsum[1]
\end{document}

输出:

在此处输入图片描述

第一个图形按预期正确换行,但第二个图形似乎向下掉了一行。为什么会发生这种情况?我该如何阻止它?

答案1

至少从代码来看,输出正是预期的。

您可以通过设置删除空格\intextsep

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

\setlength\intextsep{0pt}

\begin{document}    

\begin{wrapfigure}{r}{4cm}
    \begin{tikzpicture}
        \fill (0, 0) rectangle (4, 4);
    \end{tikzpicture}   
\end{wrapfigure}

\lipsum[1]

\begin{wrapfigure}{r}{4cm}
    \begin{tikzpicture}
        \fill (0, 0) rectangle (4, 4);
    \end{tikzpicture}   
\end{wrapfigure}

\vspace{5mm}
\lipsum[1-2]
\end{document}

在此处输入图片描述

答案2

解决此问题的快速方法是使用\vspace{-fontsize}命令跳转一行(将字体大小更改为您正在使用的字体大小)。

\documentclass[11pt]{article}
\usepackage{lipsum,tikz,wrapfig}
\begin{document}    
\begin{wrapfigure}[9]{r}{4cm}
    \begin{tikzpicture}
        \fill (0, 0) rectangle (4, 4);
    \end{tikzpicture}   
\end{wrapfigure}
\lipsum[1]
\vspace{5mm}
\begin{wrapfigure}[10]{r}{4cm}
    \vspace{-11pt}
    \begin{tikzpicture}
        \fill (0, 0) rectangle (4, 4);
    \end{tikzpicture}   
\end{wrapfigure}
\lipsum[1]
\end{document}

输出

在此处输入图片描述

答案3

和:

\documentclass[a4paper,12pt]{article}
\usepackage{lipsum,tikz,wrapfig}

\begin{document}
\mbox{}

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

\vspace{2mm}

\begin{wrapfigure}{r}{4cm}
    \begin{tikzpicture}
        \fill (0, 0) rectangle (4, 4);
    \end{tikzpicture}
\end{wrapfigure}
\lipsum[1]
\end{document} 

我得到了以下视觉上正确的输出: 在此处输入图片描述

相关内容