我想将两个图形并排放置,但位于两端,即第一个子图形应位于最左侧,第二个子图形应位于最右侧。如何做到这一点?我使用下面显示的代码
\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 的评论:
无穷大的顺序为fil
、fill
和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 评论
虽然subfig
和subfigure
包已弃用,不应再使用。注意:subfig
支持hyperref
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}