我试图用它在我的文档中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}