Почему «wrapfigure» и его абзац не отображаются вместе?

Почему «wrapfigure» и его абзац не отображаются вместе?

wrapfigобычно используется с намерением набрать его рядом с определенным текстом, который должен его обернуть. Однако, когда я использую много плавающих элементов рядом wrapfig, часть всего текста не будет оставаться рядом с обернутой фигурой. Кроме того, фигура не находится в порядке с остальными. Как мне решить эту проблему?

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

Мой МВЭ

\documentclass[a4paper,12pt]{article}

\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{blindtext}
\usepackage[showframe]{geometry}
\usepackage{ragged2e}


\begin{document}

    \newcommand{\commonfigwidth}{0.35\linewidth}

    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-a}
        \caption{My Fig}
    \end{figure}


    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-b}
        \caption{My Fig}
    \end{figure}

    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-c}
        \caption{My Fig}
    \end{figure}

    \begin{wrapfigure}{O}{\commonfigwidth} 
        \includegraphics[width=\linewidth]{example-image-a}
        \centering This is a circuit
    \end{wrapfigure}
    \blindtext

    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-b}
        \caption{My Fig}
    \end{figure}

    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-c}
        \caption{My Fig}
    \end{figure}

\end{document}

решение1

wrapfigureне имеет связи с обычным механизмом поплавка, поэтому, если вы используете оба, вам нужно будет решать любые возникающие проблемы. Здесь я думаю, что вы получите приемлемый результат, если предотвратите перенос выреза на следующую страницу, с помощью

    \begin{wrapfigure}[8]{O}{\commonfigwidth} 
    \includegraphics[width=\linewidth]{example-image-a}
    \centering This is a circuit
    \end{wrapfigure}

поэтому ограничим его 8 строками (вместо 10, которые он использовал бы по умолчанию)

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

решение2

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

LaTeX не будет считать его wrapfigureплавающим, если он не написан внутри figureсреды. Все, что существует внутри figureсреды table, должно быть показано сразу на любой странице, которую выбирает LaTeX. Таким образом, хорошим решением является

\begin{figure}

    \begin{wrapfigure}{<other wrapfig arguments>} 
        \includegraphics[width=\linewidth]{<image file name>}
    \end{wrapfigure}

  <the text that should wrap the figure>

\end{figure}

Таким образом, параграф(ы), которые должны быть рядом с обернутой фигурой, будут вынуждены оставаться там, даже если материал вокруг них имеет много плавающих элементов. Кроме того, LaTeX разместит все плавающие элементы в том порядке, в котором они появились в исходном коде, так что это также решает упомянутую проблему порядка.

\documentclass[a4paper,12pt]{article}

\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{blindtext}
\usepackage[showframe]{geometry}
\usepackage{ragged2e}


\begin{document}

    \newcommand{\commonfigwidth}{0.35\linewidth}

    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-a}
        \caption{My Fig}
    \end{figure}


    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-b}
        \caption{My Fig}
    \end{figure}

    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-c}
        \caption{My Fig}
    \end{figure}

    \begin{figure}

        \begin{wrapfigure}{O}{\commonfigwidth} 
            \includegraphics[width=\linewidth]{example-image-a}
            \centering This is a circuit
        \end{wrapfigure}

    \blindtext

    \end{figure}

    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-b}
        \caption{My Fig}
    \end{figure}

    \begin{figure}
        \centering
        \includegraphics[width=\commonfigwidth]{example-image-c}
        \caption{My Fig}
    \end{figure}

\end{document}

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