Zwei Unterfiguren nebeneinander, aber an den äußersten Enden

Zwei Unterfiguren nebeneinander, aber an den äußersten Enden

Ich möchte zwei Figuren nebeneinander platzieren, aber an den äußersten Enden, d. h. die erste Unterfigur sollte ganz links und die zweite Unterfigur ganz rechts sein. Wie kann das gemacht werden? Ich verwende den unten gezeigten Code

    \begin{figure}[htp!]
        \begin{subfigure}{0.5\textwidth}
           \includegraphics[scale=0.17]{x.png}
        \end{subfigure}
        \begin{subfigure}{0.2\textwidth}
           \raggedright
           \includegraphics[scale=0.35]{y.png}
        \end{subfigure}
    \end{figure}

Antwort1

In (La)TeX können Sie Längen mit flexibler Breite einfügen, sogenannte Skips, und Sie können diese um den Betrag der Unendlichkeit strecken und schrumpfen. A \hfillverhält sich wie ein Skip mit 0pt Breite, der sich aber um den Betrag der Unendlichkeit streckt, sodass er so viel Platz wie möglich einnimmt (solange sich keine anderen \hfills im selben horizontalen Feld befinden). Daher können wir verwenden, \hfillum Ihre subfigures in dieser Zeile so weit wie möglich voneinander zu trennen.

BEARBEITENErgänzung und Erweiterung der Informationen inKommentar von @JohnKormylo:

Die Ordnungen der Unendlichkeit sind fil, fill, und filll(von der niedrigsten zur höchsten gibt es auch fi, aber das wird praktisch nie verwendet und ist nur in Lua(La)TeX verfügbar). Normalerweise sollten Paket- und Kernelcode Unendlichkeit zweiter oder dritter Ordnung sparsam verwenden und bei bleiben fil, damit Benutzer diese leicht überstimmen können. Dies gilt beispielsweise für \parfillskip, das an das Ende jedes Absatzes angehängt wird, um die letzte Zeile unregelmäßig zu setzen, und normalerweise den Wert hat 0pt plus 1fil. Wenn Sie jetzt verwenden würden \hfil(was gleichwertig ist \hskip 0pt plus 1fil), würden Sie das zweite Bild nicht ans Ende der Zeile schieben, sondern nur die Hälfte des verfügbaren Platzes verwenden, die andere Hälfte wird von ausgefüllt \parfillskip. Aus diesem Grund müssen wir zumindest Unendlichkeit zweiter Ordnung verwenden (die unendlich größer ist als die erste Ordnung) und verwenden \hfill.

\hfilllist übrigens nicht definiert und Sie müssten \hspace{0pt plus 1filll}(oder \hskip 0pt plus 1filll) verwenden.

\documentclass[]{article}

\usepackage{subcaption}
\usepackage[]{graphicx}

\begin{document}
\begin{figure}
  \begin{subfigure}{0.5\textwidth}
    \includegraphics[width=\linewidth, page=1]{example-image-duck}
    \caption{A pizza duck}
  \end{subfigure}\hfill
  \begin{subfigure}{0.2\textwidth}
    \raggedright
    \includegraphics[width=\linewidth, page=4]{example-image-duck-portrait}
    \caption{A clairvoyant duck}
  \end{subfigure}%
  \caption{Ducks}
\end{figure}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

In Bezug auf den Kommentar von @Skillmon

Allerdings sind subfigund subfigurePakete veraltet und sollten nicht mehr verwendet werden. Hinweis: subfigSupport hyperrefbei BUGS!

\usepackage{subfig} 
... 
\begin{figure}[!ht] 
  \subfloat[Picture 1\label{fig:1}]{% 
    \includegraphics[width=0.4\textwidth]{1.png} 
  } 
  \hfill 
  \subfloat[Picture 2\label{fig:2}]{% 
    \includegraphics[width=0.4\textwidth]{2.png} 
  } 
  \caption{Main figure caption} 
\end{figure}

verwandte Informationen