使用 subcaption 包对图形进行水平对齐的问题

使用 subcaption 包对图形进行水平对齐的问题

子图未水平对齐,(a) 子图比 (b) 子图低约 3 厘米。您能看看我做错了什么吗?

\documentclass[english]{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{float}
\usepackage{epstopdf}

\begin{document}
\begin{figure}
\caption{Coloured lines}
\centering
   \begin{subfigure}[a]{0.45\textwidth}
     \centering
     \includegraphics[width=\textwidth]{Colourlines1}
     \caption{No treatment}
   \end{subfigure}
   \begin{subfigure}[b]{0.45\textwidth}
     \centering
     \includegraphics[width=\textwidth]{Colourlines2}
     \caption{Treatment}
   \end{subfigure}
\end{figure}
\end{document}

答案1

看起来您使用可选参数[a][b]环境subfigure作为对子图进行编号的方法。不幸的是,这无法正常工作,因为 (i) 该选项应为位置/对齐说明符,而不是编号说明符,并且 (ii) “ a”不是有效的位置说明符。(如果您检查编译代码时生成的日志文件,您会发现一条警告消息。)“ b”恰好可以工作,因为它代表“底部”。要对齐子图,请使用[t](“top”) 或[b](“bottom”) 作为位置说明符两个都子图。

\centering另外,您在环境中提供的两条指令subfigure并不是必需的,因为图表已经占据了相应环境的整个宽度。您可能还想在两个浮点数之间插入更多空白;我建议您通过添加指令来实现这一点\hspace{\fill}

以下修改后的 MWE 形式实现了这些想法:

\documentclass{article}
\usepackage[demo]{graphicx} % remove 'demo' option for real document
\usepackage{caption,subcaption}
\begin{document}
\begin{figure}
\caption{Coloured lines}
   \begin{subfigure}[t]{0.45\textwidth}
     \includegraphics[width=\textwidth]{Colourlines1}
     \caption{No treatment}
   \end{subfigure}
   \hspace{\fill} % separate the two subfigures...
   \begin{subfigure}[t]{0.45\textwidth}
     \includegraphics[width=\textwidth]{Colourlines2}
     \caption{Treatment}
   \end{subfigure}
\end{figure}
\end{document}

在此处输入图片描述

相关内容