¿Por qué 'wrapfigure' y su párrafo no se muestran juntos?

¿Por qué 'wrapfigure' y su párrafo no se muestran juntos?

wrapfigPor lo general, se usa con la intención de componerlo al lado de un texto determinado que debe envolverlo. Sin embargo, cuando uso muchos flotadores cerca wrapfig, una parte de todo el texto no permanecerá cerca de la figura envuelta. Además, la figura no está en orden con el resto. ¿Cómo puedo solucionar esto?

ingrese la descripción de la imagen aquí

Mi MWE

\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}

Respuesta1

wrapfigureno tiene conexión con el mecanismo flotante habitual, por lo que si usa ambos, debe gestionar cualquier problema que surja. Aquí creo que obtiene un resultado aceptable si evita que el recorte se realice en la página siguiente, a través de

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

restringiéndolo así a 8 líneas (en lugar de las 10 que usaría por defecto)

ingrese la descripción de la imagen aquí

Respuesta2

ingrese la descripción de la imagen aquí

LaTeX no se considerará wrapfigureun flotante a menos que esté escrito dentro figuredel entorno. Todo lo que existe dentro figureo tableen el entorno debe mostrarse a la vez en cualquier página que LaTeX seleccione. Por lo tanto, una buena solución es

\begin{figure}

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

  <the text that should wrap the figure>

\end{figure}

De esa manera, los párrafos que se supone que están cerca de la figura envuelta se verán obligados a permanecer allí incluso si el material a su alrededor tiene muchos flotadores. Además, LaTeX colocará todos los flotantes en el orden en que aparecieron en el código fuente, por lo que esto también resuelve el problema de orden mencionado.

\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}

información relacionada