Warum werden „Wrapfigure“ und sein Absatz nicht zusammen angezeigt?

Warum werden „Wrapfigure“ und sein Absatz nicht zusammen angezeigt?

wrapfigwird normalerweise verwendet, um es neben einen bestimmten Text zu setzen, der es umschließen soll. Wenn ich jedoch viele Floats in der Nähe verwende wrapfig, bleibt ein Teil des gesamten Textes nicht in der Nähe der umschlossenen Figur. Außerdem ist die Figur nicht in der richtigen Reihenfolge wie der Rest. Wie löse ich dieses Problem?

Bildbeschreibung hier eingeben

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

Antwort1

wrapfigurehat keine Verbindung zum üblichen Float-Mechanismus. Wenn Sie also beide verwenden, müssen Sie alle auftretenden Probleme bewältigen. Ich denke, Sie erhalten ein akzeptables Ergebnis, wenn Sie verhindern, dass der Ausschnitt auf die nächste Seite übergeht.

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

Beschränkung auf 8 Zeilen (anstelle der 10, die standardmäßig verwendet werden)

Bildbeschreibung hier eingeben

Antwort2

Bildbeschreibung hier eingeben

LaTeX betrachtet es nicht wrapfigureals Float, es sei denn, es wird in einer figureUmgebung geschrieben. Alles, was in der Umgebung vorhanden ist, figuremuss tableauf jeder Seite, die LaTeX auswählt, gleichzeitig angezeigt werden. Daher ist ein guter Workaround

\begin{figure}

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

  <the text that should wrap the figure>

\end{figure}

Auf diese Weise werden die Absätze, die in der Nähe der umbrochenen Abbildung sein sollten, gezwungen, dort zu bleiben, auch wenn das Material um sie herum viele Floats enthält. Außerdem platziert LaTeX alle Floats in der Reihenfolge, in der sie im Quellcode erschienen sind, sodass auch das erwähnte Reihenfolgeproblem gelöst wird.

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

verwandte Informationen