未定义子类型‘subfigure’

未定义子类型‘subfigure’

我正在尝试在我的 tex 文档中输入一些子图,如下所示:

%%% FIGURE %%%
\begin{figure}[!hptb]
\begin{center}
%\includegraphics[width=15cm]{query.jpeg}
    \subfloat(a){\includegraphics[width=0.8\textwidth]{1.jpeg}} 
    \subfloat(b){\includegraphics[width=0.47\textwidth]{2.jpeg}} 
    \subfloat(c){\includegraphics[width=0.47\textwidth]{3.jpeg}} 
\end{center}
\caption{\small bla bla bla}
\label{fig:f_fig}
\end{figure}

我正在使用的软件包是

\usepackage{url,hyperref,lineno,microtype,subcaption}
\usepackage{graphicx}

%For subfigures
\usepackage{caption}
\usepackage{subcaption}

我正在使用 overleaf。我使用的模板是: https://it.overleaf.com/latex/templates/template-for-frontiers-journal/myxxkvjwqhrv

我收到的错误是:Undefined subtype 'subfigure'

关于如何修复它有什么建议吗?

答案1

我找到了一个很好的替代方法,可以避免因子浮点或子图而导致错误。它包括使用表格。例如:

\documentclass[utf8]{frontiersSCNS}

%For figurers and subfigures
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}

    %%%FIGURE%%%
    \begin{figure}[!htbp]
      \centering
        \begin{tabular}{c}
            \includegraphics[width=0.3\textwidth]{1.jpeg}
            \small(a)
        \end{tabular}
        \begin{tabular}{c}
            \includegraphics[width=0.3\textwidth]{2.jpeg}
            \small(b)
        \end{tabular}
      \caption
        {%
          \small bla bla bla}
          \label{fig:test}%
          
    \end{figure}

\end{document}

我希望这可以帮助其他使用(并且也在努力)该模板的研究人员。

答案2

使用最近的subcaption软件包(版本 1.3),这项工作如预期的那样:

\documentclass{article}
%For figurers and subfigures
\usepackage{graphicx}
\usepackage[font=small]{caption}
\usepackage{subcaption}

\begin{document}
    \begin{figure}[ht]
    \centering
\subfloat[][]{\includegraphics[width=0.3\textwidth]{example-image-duck}}%{1.jpeg}}
\hfil
\subfloat[][]{\includegraphics[width=0.3\textwidth]{example-image-duck}}%{2.jpeg}}
    \caption{bla bla bla}
    \label{fig:test}%
    \end{figure}
\end{document}

在此处输入图片描述

subfloat有关文档中定义的宏的详细信息subcaption,请参见第 7 节第 12 页。

附录 建议的解决方案不适用于frontiersSCNS文档类。显然它调用并重新定义了许多包。其中包括captionsubcaption包。考虑到这一点,对上述解决方案进行了一点修改:

\documentclass[utf8]{frontiersSCNS}

\begin{document}
   \begin{figure}[ht]
   \centering
   \small
\subfloat[][]{
\includegraphics[width=0.3\textwidth]{example-image-duck}}   \\%{1.jpeg}}
   (a)

   \medskip
\includegraphics[width=0.3\textwidth]{example-image-duck}   \\%{2.jpeg}}
    (b)
\caption{bla bla bla}
\label{fig:test}%
   \end{figure}
\end{document}

生产

在此处输入图片描述

我认为这不是想要的结果。在编译时它会subfigure抱怨没有定义的

但是,只有一个抱怨给出了以下解决方案:

\documentclass[utf8]{frontiersSCNS}

\begin{document}
    \begin{figure}[ht]
    \centering
    \small
\subfloat[][]{
\includegraphics[width=0.3\textwidth]{example-image-duck}}   \\%{1.jpeg}}
    (a)

    \medskip
\includegraphics[width=0.3\textwidth]{example-image-duck}   \\%{2.jpeg}}
     (b)
\caption{bla bla bla}
\label{fig:test}%
    \end{figure}
\end{document}

在此处输入图片描述

不清楚您是否喜欢有一列文档。在这种情况下,您需要\onecolumn在后面插入命令\begin{document}并附上图像,例如minipage

\documentclass[utf8]{frontiersSCNS}
\usepackage{lipsum}

\begin{document}
\onecolumn
\lipsum[66]
    \begin{figure}[ht]
    \small
\begin{minipage}{0.5\textwidth}
\centering
\includegraphics[width=0.6\textwidth]{example-image-duck}   \\%{1.jpeg}}
    (a)
\end{minipage}%
\begin{minipage}{0.5\textwidth}
\centering
\includegraphics[width=0.6\textwidth]{example-image-duck}   \\%{2.jpeg}}
     (b)
\end{minipage}
\caption{bla bla bla}
\label{fig:test}%
    \end{figure}
\end{document}

在此处输入图片描述

如果您喜欢在图像的右侧添加子标题,就像您在编译答案时所得到的那样,您只需要在命令\\后将其删除\includegraphics

相关内容