![在文本中使用 vspace 时,如何删除 wrapfigure 下的额外空间](https://linux22.com/image/405483/%E5%9C%A8%E6%96%87%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8%20vspace%20%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%20wrapfigure%20%E4%B8%8B%E7%9A%84%E9%A2%9D%E5%A4%96%E7%A9%BA%E9%97%B4.png)
我正在创建一些自定义环境。其中一个将被放置\wrapfigure
,第二个将包含应环绕第一个的文本。
当我在段落之间添加内容时,环境\vspace
下的空白空间会变得更高。\wrapfiture
有什么方法可以删除这个空白处吗?
我无法指定\wrapfigure
所需的确切行数,因为它可能会变化。我希望能够在第二个环境中配置段落之间的空间。
\vspace
下面我准备了包含和不包含 的文本的 MWE \vspace
:
\documentclass[a4paper,10pt]{article}
\usepackage{wrapfig}
\usepackage{blindtext}
\begin{document}
\begin{wrapfigure}{l}{0.29\linewidth}
\begin{enumerate}
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\end{enumerate}
\end{wrapfigure}
\blindtext[1]\\
\blindtext[1]\\
\blindtext[1]
\end{document}
\documentclass[a4paper,10pt]{article}
\usepackage{wrapfig}
\usepackage{blindtext}
\begin{document}
\begin{wrapfigure}{l}{0.29\linewidth}
\begin{enumerate}
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\end{enumerate}
\end{wrapfigure}
\blindtext[1]\\
\vspace{50pt}
\blindtext[1]\\
\vspace{50pt}
\blindtext[1]
\end{document}
答案1
您的示例文本(在 wrapfig 之外)只有一个段落,行与行之间插入了垂直空格。这很难发现(并且在段落中间使用 vspace 会产生稍微奇怪的效果,在添加空格之前用空白行结束段落几乎总是更好的选择。
在这里,我将段落间距本地设置为 50pt,并进行调整, wrapfig
以便每个段落末尾都算作额外的 4 行(实际上,5 行在这里可以获得更好的间距,但 5*12 为 60 > 50 意味着实际上您补偿过度,可能会导致剩余空间不足。12pt 是这里的默认基线空间。)
\documentclass[a4paper,10pt]{article}
\usepackage{wrapfig}
\usepackage{blindtext}
\begin{document}
\begingroup
\makeatletter
\setlength\parskip{50pt}
\def\WF@mypar{\relax
\WF@@par % what the rest of LaTeX expects \par to be (usually \@@par)
\ifnum\@@parshape=\z@ \let\WF@pspars\@empty \fi % reset `parshape'
\global\advance\c@WF@wrappedlines-\prevgraf \prevgraf\z@
\global\advance\c@WF@wrappedlines-4
\ifnum\c@WF@wrappedlines<\tw@ \WF@finale \fi}
\begin{wrapfigure}{l}{0.29\linewidth}
\begin{enumerate}
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\item Test item
\end{enumerate}
\end{wrapfigure}
\blindtext[1]
\blindtext[1]
\blindtext[1]
\endgroup
\end{document}