
類似したサブ図が 3 つあり、そのうち 1 つはサイズが異なる図です (他の 3 つの凡例を表示)。サイズを調整してドキュメントに配置するのがうまくいきません。
これが私の現在のコードです:
\begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_LS_os.pdf}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_IP_p.pdf}
\caption{}
\end{subfigure}%
\\
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_LS_p.pdf}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=5cm 1mm 5cm 5.2cm, clip=true]{./Data_Figures/Coeff_evo_legend.pdf}
\end{subfigure}%
\end{figure}
すべての図は可能な限り切り取られています。その結果、凡例が大きすぎる次のようになります。
しかし、例えば最後の数字を次のように変更してみると
\includegraphics[width=0.5\textwidth...]{...}
間隔がずれています:
他に試したことはどれも機能しませんでした。何かアイデアはありますか?
答え1
を使用すると、\sbox{...}
左の画像のサイズを測定し、凡例付きの画像をその高さに合わせることができます。
\documentclass{article}
\usepackage{subcaption}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-a}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-b}
\caption{}
\end{subfigure}
\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-c}
\caption{}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\centering
\sbox0{\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-c}}%
\includegraphics[height=\ht0,keepaspectratio]{example-image}
\end{subfigure}%
\end{figure}
\end{document}
example-image
結果は次のようになります (パッケージから使用graphicx
):
問題の画像から推定した実際の画像では、凡例付きの画像の幅は他の画像よりも狭くなっているため、結果的にテキスト幅からはみ出すことはありません。
画像のアスペクト比が重要でない場合は、その幅を使用可能な幅の一部に制限できます。次に例を示します。
\includegraphics[width=0.8\textwidth, height=\ht0]{example-image}
この場合、図は次のようになります。
注記:2 行目の画像を配置するには、配置パラメータをからsubfigure
に変更します。これは、画像の最初の行のサブ図に対しても行うとよいでしょう。[b]
[t]
補遺:画像を凡例に合わせる別の方法として、最後のサブ画像に次のコードを使用する方法があります。
\begin{subfigure}[t]{0.5\textwidth}
\sbox0{\includegraphics[width=0.9\textwidth,%
trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}%
\centering
\framebox{\includegraphics[trim=52mm -3.5ex 52mm 53mm,clip,height=\ht0]{./Data_Figures/Coeff_evo_legend}}
\end{subfigure}%
このコード部分を考慮し、元の画像を適切にトリミングした後、凡例を含む特別な画像を作成すると、私の MWE は次のようになります。
画像のトリミングが見やすくなるように、画像の周囲にフレームが追加されます。もちろん、実際の使用ではこれらのフレームは省略する必要があります。
画像の高さの測定は、画像全体の高さ(周囲の空白を含む)を考慮していることに注意してください。この高さを考慮すると凡例画像が高くなりすぎるため、左側の画像のグラフの下のテキスト(目盛りラベル、軸ラベル)をシミュレートする空白をその下に追加する必要があります。3ex
トリム値に追加する高さに相当する高さを推定します。
画像の周囲にフレームがある完全なコードは次のとおりです。
\documentclass{article}
\usepackage{subcaption}
\usepackage{calc}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_os}}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_IP_p}}
\caption{}
\end{subfigure}
\bigskip
\begin{subfigure}[t]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}
\caption{}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\sbox0{\includegraphics[width=0.9\textwidth,%
trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}%
\centering
\includegraphics[trim=52mm -3.5ex 52mm 53mm,clip,height=\ht0]{./Data_Figures/Coeff_evo_legend}
\end{subfigure}
\end{figure}
\end{document}
コードからわかるように、主な問題は凡例付きの画像のトリミングが適切でなかったことです (画像の左上と上部に空白があります)。
答え2
凡例がこのようにオフセットされている理由は、環境[b]
のオプションでsubfigure
内容を下部に揃えるように指示されているためです。そのため、凡例の下部は の下部と同じレベルに配置されています(c)
。
各サブ図の中央に揃えたい場合は を使用し[c]
、各サブ図の上部に揃えたい場合は を使用します[t]
。
\documentclass{article}
\usepackage{graphicx}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\begin{subfigure}[c]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth]{1.png}
\caption{Foo}
\end{subfigure}
\begin{subfigure}[c]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth]{2.png}
\caption{Bar}
\end{subfigure}
\end{figure}
\end{document}