我正在尝试使用 subcaption 包中的 subfigure 环境对齐两个图像的顶部。除非我误解了其他问题,否则我相信我已经阅读了多个询问相同问题的问题,使用子标题时按图形顶部边框对齐和如何防止子标题/子图中出现偏移是两个例子。问题是,这些答案似乎没有像我预期的那样起作用,而且我仍然无法使图像的顶部对齐。
例子:
\documentclass{article}
\usepackage{subcaption}
\usepackage{graphicx}
\usepackage{mwe}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[t]{0.45\textwidth}
\includegraphics[width=\linewidth, height=20em]{example-image-a}
\caption{taller image}
\end{subfigure}
\begin{subfigure}[t]{0.45\textwidth}
\includegraphics[width=\linewidth, height=15em]{example-image-b}
\caption{shorter image}
\end{subfigure}
\caption{two images}
\end{figure}
\end{document}
对我来说这会产生以下内容:
我原本希望它能对齐图像的顶部。我该怎么做?
答案1
问题是[t]
,第一条基线([b]
到最后一条基线)包含的段落,而不是内容的顶部。图像的基线位于其下边缘,因此[t]
对于两幅图像基本上没有影响。降低图像以包含顶部的基线或在它们上方添加一个空行(使用例如\vskip 0pt
)以使其起作用。
有关此问题的更多信息,请参见理解小页面 - 顶部对齐。请注意,内部subfigure
使用了minipage
(或等效的?)。
答案2
较新的解决方案
对于遇到 subcaption 包 >= v1.2 这个问题的人,有一个内置论据:
\begin{subcaptionblock}[⟨outer-pos⟩][⟨height⟩][⟨inner-pos⟩]{⟨width⟩}
... 除了⟨outer-pos⟩
'c'、't' 和 'b' 的值之外,子标题包还另外提供了值 'T' 和 'B',分别将子图与最顶部和最底部对齐。 (相比之下,'t' 和 'b' 将子图与顶部和底部基线对齐。)
基本上\begin{subfigure}[t]{0.45\textwidth}
对齐两个标题文本框的顶部。由于两个子标题文本的高度相同,因此效果不佳。\begin{subfigure}[T]{0.45\textwidth}
对齐两个外框(内的全部)的顶部subcaption
,这符合您的需要。