
2 つの図を端に並べて配置したいのですが、最初のサブ図は左端に、2 番目のサブ図は右端に配置する必要があります。これはどのように実行できますか? 以下のコードを使用しています。
\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 では、スキップと呼ばれる柔軟な幅の長さを含めることができ、無限大のオーダーで伸縮できます。 は\hfill
0pt 幅のスキップとして動作しますが、2 番目の無限大のオーダーで伸縮するため、使用可能なスペースをすべて占有します (同じ水平ボックスに他の s がない限り\hfill
)。 そのため、 を使用して、その行で s を可能な限り\hfill
分離できます。subfigure
編集提供された情報を追加して構築する@JohnKormylo のコメント:
無限大の次数はfil
、、、fill
ですfilll
(最低から最高の順に、 もありますがfi
、これは実際には決して使用されず、Lua(La)TeX でのみ使用可能です)。通常、パッケージおよびカーネル コードでは、2 次または 3 次の無限大をまばらに使用し、 に固執して、fil
ユーザーが簡単にそれらを無効にできるようにします。これは、例えば の場合に当てはまります。 は\parfillskip
、最終行を不揃いに設定するために各段落の末尾に追加され、通常は値 を持ちます0pt plus 1fil
。ここで\hfil
( と同等\hskip 0pt plus 1fil
) を使用すると、2 番目のイメージを行末に押し出すことはなく、使用可能なスペースの半分のみを使用し、残りの半分は で埋められます\parfillskip
。そのため、少なくとも 2 次無限大(1 次より無限に大きい)を使用し、 を使用する必要があります\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
。
\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}