未定义控制序列 \subfloat - 使用子标题

未定义控制序列 \subfloat - 使用子标题

我得到了同样的错误在这个问题中,但是我之前已经从该subfig软件包切换subcaption到了。我正尝试在 Linux 上重新编译一个 TeX 文件,而之前在 OS X 上这个文件是没问题的。

所以我在我的课程文件中找到了这个:

% \usepackage{subfig} % --- this replaces subfigure 
\usepackage{subcaption} % --- this replaces subfig

我查看了subcaption文档,在§3.4.4 中确实提到了该\subfloat命令。

阅读有关此问题的其他 Stackexchange 帖子,我发现很多人subcaption认为不是定义subfloat,而其他人则坚持认为获取该命令。我的解释是,这可能subfloat是特定版本的一部分subcaption,后来可能被删除了?

答案1

这个旧代码……

\begin{figure}
\centering
\subfloat[sub-caption1]{
  \includegraphics{...}
  \label{fig:sub1}
}
\subfloat[sub-caption2]{
  \centering\includegraphics{...}
  \label{fig:sub2}
}
\caption{main caption}
\label{fig:main}
\end{figure}

…可以粗略地重写为

\begin{figure}
\centering
\begin{subfigure}{0.48\textwidth}
  \centering\includegraphics{...}
  \caption{sub-caption1}\label{fig:sub1}
\end{subfigure}
\begin{subfigure}{0.48\textwidth}
  \centering\includegraphics{...}
  \caption{sub-caption2}\label{fig:sub2}
\end{subfigure}
\caption{main caption}
\label{fig:main}
\end{figure}

请注意,您必须找到合适的宽度参数并使用附加\centering命令,否则标题现在是左对齐的。

相关内容