未定义控制序列。...sub\@captype }}}{\caption@subreffmt

未定义控制序列。...sub\@captype }}}{\caption@subreffmt

我正在尝试了解使用图形时遇到的特定错误subfloat。MWE 可重现该错误:

\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}

\begin{figure}
\centering
\subfloat[][A]{\includegraphics[width=0.5\textwidth]{example-image-a}\label{fig:1a}}
\subfloat[\label{fig:1b}][B]{\includegraphics[width=0.5\textwidth]{example-image-b}}
\caption[abc]{abcdefg}\label{fig:stuff}
\end{figure}

\end{document}

产生以下消息:

./mwe.tex:11: Undefined control sequence.
<argument> ...sub\@captype }}}{\caption@subreffmt 
                                                  {\@nameuse {p@sub\@captype...
l.11 ...textwidth]{example-image-a}\label{fig:1a}}
                                                  
? 

如果我移动第一个子浮点数 A 的标签[](就像对子浮点数 B 所做的那样),该示例将编译。subcaption从 MWE 中删除也会删除错误,而无需对 MWE 进行进一步更改,因此我不清楚这是否可能是子标题中的错误,或者是我不理解的子浮点数标签应该如何放置的惯例。

答案1

不要将包subfig与 一起加载subcaption。实际上,由于subcaption加载caption,因此行

\usepackage{subcaption}

足够了。

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}
\usepackage{subcaption}
\begin{document}

\begin{figure}
\centering
\subfloat[][A]{\includegraphics[width=0.5\textwidth]{example-image-a}\label{fig:1a}}
\subfloat[\label{fig:1b}][B]{\includegraphics[width=0.5\textwidth]{example-image-b}}
\caption[abc]{abcdefg}\label{fig:stuff}
\end{figure}

\end{document}

相关内容