兩個子圖並排但在兩端

兩個子圖並排但在兩端

我想並排放置兩個圖形,但在最末端,即第一個子圖應位於最左側,第二個子圖應位於最右側。如何才能做到這一點?我正在使用下面所示的程式碼

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

答案1

在 (La)TeX 中,您可以包含靈活寬度的長度,即所謂的跳躍,並且可以以無窮大的順序拉伸和收縮它們。 A 的\hfill行為類似於 0pt 寬度的跳過,但它以二階無窮大延伸,因此它將佔用盡可能多的可用空間(只要\hfill同一水平框中沒有其他 s)。因此我們可以在該行中盡可能\hfill分隔您的s 。subfigure

編輯附加並建立在中提供的資訊的基礎上@JohnKormylo 的評論:

無窮大的順序是filfill、 和filll(從最低到最高,還有fi,但實際上從未使用過,僅在 Lua(La)TeX 中可用)。通常,套件和內核程式碼應該稀疏地使用二階或三階無限大並堅持fil,以便用戶可以輕鬆地否決這些。例如,對於 來說,這是正確的\parfillskip,它被附加在每個段落的末尾以將最後一行設為參差不齊,並且通常具有值0pt plus 1fil。如果您現在使用\hfil(相當於\hskip 0pt plus 1fil),您不會將第二個影像推到行尾,而只使用一半的可用空間,另一半將由 填滿\parfillskip。這就是為什麼我們至少需要使用二階無窮大(比一階無限大)並使用\hfill.

\hfilll順便說一下,沒有定義,你必須使用\hspace{0pt plus 1filll}(或\hskip 0pt plus 1filll)。

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

在此輸入影像描述

答案2

關於@Skillmon 評論

儘管subfigsubfigure包已被棄用,不應再使用。注意:subfig支持hyperref有BUG!

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

相關內容