我有一個圖形,它有三個相似的子圖和一個不同大小的子圖(顯示其他三個的圖例)。我在使文件的尺寸和放置看起來良好時遇到問題。
這是我目前的程式碼:
\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
):
根據相關圖片估算的真實圖像,帶有圖例的圖片的寬度比其他圖片窄,因此 ti 不會突出到文字寬度之外。
如果影像的長寬比不是必需的,您可以將其寬度限制為可用寬度的一部分,例如:
\includegraphics[width=0.8\textwidth, height=\ht0]{example-image}
在這種情況下,圖片就變成了:
筆記:為了將影像定位在第二行中,放置參數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}