这是https://tex.stackexchange.com/a/266431/3929
考虑下面的 MWE。现在,忽略我们无法提供参数\wrapfigure
,我想理解的是:
为什么如果我将\intextsep
全局设置为零,则不会向包装的图形添加任何额外的垂直填充。但是不是足以将其在包装器环境中设置为零。乌尔里克已经回答了,它在示例中的第一个图像中确实消失了。但是尝试添加该部分,图像将向下移动。
为什么?
\documentclass{article}
\usepackage{wrapfig}
\usepackage{kantlipsum}
\newcommand\fig{\rule{3cm}{15mm}}
%\setlength\intextsep{0pt}
\newenvironment{mw}{%
\setlength\intextsep{0pt}
\wrapfigure[4]{l}{3cm}
}{\endwrapfigure}
\begin{document}
%\section{Test}
\begin{mw}
\fig%
\end{mw}
\kant[1]
\begin{mw}
\fig%
\end{mw}
\kant[1]
\end{document}
MWE 的结果:
添加部分的结果
\intextsep
全局设置为零的结果
答案1
文档说
如果你将一个换行图放在 parbox 或 minipage 中,或者任何其他类型的分组中,则文本换行应该在组结束之前结束。
因此,如果您放入\wrapfig
环境组,那么您也必须将您的(康德)文本放入其中。
答案2
由于您有一个非常具体的 wrapfig 并且不想传递选项,您可以在 wrapfig 内插入一个 vspace:
\documentclass{article}
\usepackage{wrapfig}
\usepackage{kantlipsum}
\def\mw{\wrapfigure[4]{l}{3cm}\ifdim\pagetotal=0pt \else\vspace{-\intextsep}\fi}
\let\endmw\endwrapfigure
\newcommand\fig{\rule{3cm}{15mm}}
\begin{document}
%\section{Test}
\begin{mw}
\fig%
\end{mw}
\kant[1]
\begin{mw}
\fig%
\end{mw}
\kant[1]
\end{document}