当一个标题溢出到下一行时,使用调整框将子图/小页面中的图像顶部对齐

当一个标题溢出到下一行时,使用调整框将子图/小页面中的图像顶部对齐

我正在尝试使用该adjustbox包来垂直对齐两个子图(据我所知,是minipages)。


\documentclass{beamer}
\usepackage{subcaption}
\usepackage{adjustbox}

\begin{document}

\begin{frame}{My Slide}
    \begin{figure}
    \begin{centering}
    \adjustbox{valign=t}{
    \begin{subfigure}{0.5\textwidth}
    \caption{Short caption}
    \includegraphics[width=\textwidth]{example-image}
    \end{subfigure}}%
    \adjustbox{valign=t}{
    \begin{subfigure}{0.5\textwidth}
    \caption{Longer caption that spills over to next line}
    \includegraphics[width=\textwidth]{example-image}
    \end{subfigure}}
    \end{centering}
\end{figure}
\end{frame}
\end{document}

在此处输入图片描述

答案1

您没有包含您正在使用的文档类。我将使用类作为示例。正如@Miyase 所评论的那样。您需要提供完整的 MWE,其中包括从到的article代码。您可以查看更多详细信息\documentclass\end{document}adjustbox。这里不需要。subfigure选项 args 中有自己的对齐规范。如果您希望图形对齐,则取决于您可以选择的标题的位置tb对齐方式。通常,图形的标题位于图形的底部。

\documentclass{article}
\usepackage{graphicx}
\usepackage{showframe}
\usepackage{subcaption}

\begin{document}
\begin{figure}
\centering
\begin{subfigure}[b]{0.5\linewidth}
\caption{Short caption}
\includegraphics[width=\linewidth]{example-image}
\end{subfigure}%
\begin{subfigure}[b]{0.5\linewidth}
\caption{Longer caption that spills over to next line}
\includegraphics[width=\linewidth]{example-image}
\end{subfigure}%
\end{figure}

\begin{figure}
\centering
\begin{subfigure}[t]{0.5\linewidth}
\includegraphics[width=\linewidth]{example-image}
\caption{Short caption}
\end{subfigure}%
\begin{subfigure}[t]{0.5\linewidth}
\includegraphics[width=\linewidth]{example-image}
\caption{Longer caption that spills over to next line}
\end{subfigure}%
\end{figure}
\end{document}

在此处输入图片描述

回答你的评论:你可以手动添加\vskip

\documentclass{beamer}
\usepackage{subcaption}

\begin{document}

\begin{frame}{My Slide}
    \begin{figure}
    \begin{centering}
    \begin{subfigure}[t]{0.5\textwidth}
    \caption{Short caption}\vskip11pt
    \includegraphics[width=\textwidth]{example-image}
    \end{subfigure}%
    \begin{subfigure}[t]{0.5\textwidth}
    \caption{Longer caption that spills over to next line}
    \includegraphics[width=\textwidth]{example-image}
    \end{subfigure}
    \end{centering}
\end{figure}
\end{frame}
\end{document}

在此处输入图片描述

答案2

如果您更改为:,您将获得adjustbox所需的结果:\valign=tvalign=b

\documentclass{article}
\usepackage[export]{adjustbox}
\usepackage[labelfont=bf]{subcaption}

\begin{document}
    \begin{figure}
\adjustbox{valign=b}{
\begin{subfigure}{0.48\textwidth}
\caption{Short caption}
\includegraphics[width=\linewidth]{example-image-a.jpg}
\end{subfigure}}%
\hfill
\adjustbox{valign=b}{
\begin{subfigure}{0.48\textwidth}
\caption{Longer caption that spills over to next line}
\includegraphics[width=\linewidth]{example-image-b.jpg}
\end{subfigure}}
    \end{figure}
\end{document}

结果与下面的 MWE 相同。但是,以这种方式定位子图是一种过度的解决方案。adjustbox通过添加子图位置选项,您将获得相同的结果,而无需使用 od,如@Tom 在他的回答中所示(+1)。

另一个可能的解决方案:

1.3 版软件包subcaption也支持\subfloat旧版软件包中定义的指令subfig,使用它,图中代码为:

\documentclass{article}
\usepackage{graphicx}
\usepackage[labelfont=bf,  
            position=top,
            ]{subcaption}

\begin{document}
    \begin{figure}
    \setkeys{Gin}{width=0.48\linewidth}
\subfloat[b][Short caption]{\includegraphics{example-image-a}}
\hfill
\subfloat[b][Longer caption that spills over to next line]{\includegraphics{example-image-b}}
    \end{figure}
\end{document}

这使:

在此处输入图片描述

相关内容