我正在尝试使用该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 中有自己的对齐规范。如果您希望图形对齐,则取决于您可以选择的标题的位置t
或b
对齐方式。通常,图形的标题位于图形的底部。
\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=t
valign=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}
这使: