
Я создаю несколько пользовательских сред. Одна из них будет размещена внутри \wrapfigure
, а вторая будет содержать текст, который должен обтекать первую.
Когда я добавляю текст \vspace
между абзацами, пустое пространство под \wrapfiture
словом «окружающая среда» становится больше.
Есть ли способ убрать это пустое место?
Я не могу указать точное количество строк, которое \wrapfigure
потребуется, поскольку оно может варьироваться. Я хотел бы иметь возможность настраивать интервал между абзацами во второй среде.
Ниже я подготовил MWE текста без \vspace
и с \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 в середине абзаца имеет немного странные эффекты, почти всегда лучше закончить абзац пустой строкой перед добавлением пробела).
Здесь я локально установил интервал между абзацами на 50 пунктов и настроил wrapfig
так, чтобы каждый конец абзаца считался дополнительными 4 строками (на самом деле 5 строк — это лучший интервал, но 5*12, т. е. 60 > 50, будет означать, что вы фактически перекомпенсировали и может остаться недостаточно места. 12 пунктов — это базовый интервал по умолчанию).
\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}