Как удалить дополнительный пробел под wrapfigure при использовании vspace в тексте

Как удалить дополнительный пробел под wrapfigure при использовании vspace в тексте

Я создаю несколько пользовательских сред. Одна из них будет размещена внутри \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}

введите описание изображения здесь

Связанный контент