我有三个子图连成一行,并明确设置了它们的高度,因为前两个子图的宽度不同,但需要显示相同的高度。第三个子图需要标题(它只是一个图例),但如果我省略它的图例,它将出现在与其他两个不同的行上。
更令人困惑的是,它出现在多于前两个子图(尽管它是最后一个子图)。代码如下:
\begin{figure}[t!]
\setlength{\subfigheight}{16em}
\centering
\begin{subfigure}[t]{0.45\textwidth}
\centering
\caption{caption1}
\includegraphics[height=\subfigheight]{figures/VectorCorrelations0.pdf}
\label{fig:vector_corr0}
\end{subfigure}%
\begin{subfigure}[t]{0.45\textwidth}
\centering
\caption{caption2}
\includegraphics[height=\subfigheight]{figures/VectorCorrelations1.pdf}
\label{fig:vector_corr1}
\end{subfigure}%
\begin{subfigure}[t]{0.05\textwidth}
\centering
%\caption{I don't want this caption}
\includegraphics[height=0.83\subfigheight]{figures/VectorCorrelationsColorbar.pdf}
\label{fig:vector_corr1}
\end{subfigure}%
\caption{TODO do this caption}
\label{fig:vector_correlations}
\end{figure}
如果我取消注释该行\caption{I don't want this caption}
,问题就解决了,但现在我有一个不想要的标题。
答案1
subfigure
您可以使用底部对齐。可以使用附加可选参数(实际上是minipage
)将第三个窄图形的顶层设置为其他两个图像。
在示例中,我设置了图像的宽度,因为我不知道你的图像有多宽。
\documentclass{article}
\usepackage{subcaption}
\usepackage[demo]{graphicx}
\newlength{\subfigheight}
\begin{document}
\begin{figure}[tp!]
\setlength{\subfigheight}{16em}
\centering
\begin{subfigure}[b]{0.45\textwidth}
\centering
\caption{caption1}
\label{fig:vector_corr0}
\includegraphics[height=\subfigheight,width=.9\textwidth]{figures/VectorCorrelations0.pdf}
\end{subfigure}%
\begin{subfigure}[b]{0.45\textwidth}
\centering
\caption{caption2}
\label{fig:vector_corr1}
\includegraphics[height=\subfigheight,width=.9\textwidth]{figures/VectorCorrelations1.pdf}
\end{subfigure}%
\begin{subfigure}[b][\subfigheight][t]{0.05\textwidth}
\centering
\includegraphics[height=0.83\subfigheight,width=\textwidth]{figures/VectorCorrelationsColorbar.pdf}
\end{subfigure}
\caption{TODO do this caption}
\label{fig:vector_correlations}
\end{figure}
\end{document}
如果希望图例相对于两个图像垂直居中,请更改
\begin{subfigure}[b][\subfigheight][t]{0.05\textwidth}
进入
\begin{subfigure}[b][\subfigheight][c]{0.05\textwidth}