两个子图并排但位于两端

两个子图并排但位于两端

我想将两个图形并排放置,但位于两端,即第一个子图形应位于最左侧,第二个子图形应位于最右侧。如何做到这一点?我使用下面显示的代码

    \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 的评论

无穷大的顺序为filfillfilll(从最低到最高还有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支持hyperrefBUGS!

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

相关内容