使用子标题对齐图像顶部

使用子标题对齐图像顶部

我正在尝试使用 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,这符合您的需要。

相关内容