期刊提交时出现“环境子图未定义”

期刊提交时出现“环境子图未定义”

我有一个包含包的 LaTeX 文件

\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage[colorlinks=true,citecolor=black,linkcolor=black,urlcolor=blue]{hyperref}
\usepackage{tikz,graphics,color,fullpage,float,epsf,caption,subcaption}

我使用的subfigure环境是:

\begin{figure}
\begin{subfigure}{1\textwidth}
...
\end{subfigure}

\vspace{5mm}

\begin{subfigure}{1\textwidth}
...
\end{subfigure}

\end{figure}

这在我的计算机上编译得很好。然而,当我将 LaTeX 文件提交给期刊并查看 PDF 输出时,它显示了一个错误

! LaTeX Error: Environment subfigure undefined.

我真的不知道该如何修复这个问题,因为正如我所说,它在我的机器上运行良好。我该怎么办?

编辑:我正在使用文档类

\documentclass[smallextended]{svjour3}

如果有必要,这个站点似乎有一些关于文档类别的信息:http://www.e-publications.org/springer/support/spr-chicago.html

答案1

如果其他方法都失败了,我建议采用一种变通方法,因为如果不亲自完成提交过程,很难测试这一点。在这方面,请subfigure完全避免使用环境,并默认使用tabular结构来排列子图。虽然这需要手动对子图进行编号,但手动维护引用并不困难。

这是一个可以向您展示实现方法的最小示例:

在此处输入图片描述

\documentclass[smallextended]{svjour3}
\usepackage{lipsum}% Just for this example
\usepackage{graphicx}
\begin{document}

See Figure~\ref{fig:myfig}(a) or~(b). \lipsum[1]

\begin{figure}
  \centering
  \begin{tabular}{@{}c@{}}
    \includegraphics[width=.7\linewidth,height=75pt]{example-image-a} \\[\abovecaptionskip]
    \small (a) An image
  \end{tabular}

  \vspace{\floatsep}

  \begin{tabular}{@{}c@{}}
    \includegraphics[width=.6\linewidth,height=100pt]{example-image-b} \\[\abovecaptionskip]
    \small (b) Another image
  \end{tabular}

  \caption{This is a figure caption}\label{fig:myfig}
\end{figure}

\lipsum[2]

\end{document}

答案2

或者你可以尝试:

\usepackage{subcaption}
\captionsetup{compatibility=false}

答案3

正如您提到的,您添加了包subcaption

\usepackage{tikz,graphics,color,fullpage,float,epsf,caption,subcaption}

然后,您可以按照以下方式解决此问题(就我的情况而言,此方法有效):

使用 subcaptiongroup 环境

\begin{figure}
  \centering
  \begin{subcaptiongroup}
    \centering
    \parbox[b]{.4\textwidth}{%
    \centering
    \includegraphics{cat}
    \caption{A cat}\label{cat}}%
    \parbox[b]{.4\textwidth}{%
    \centering
    \includegraphics{elephant}
    \caption{An elephant}\label{elephant}}%
  \end{subcaptiongroup}
  \caption{Two animals}\label{animals}
\end{figure}

示例 1

您的输出仍然相同,并且错误与子图的冲突现在应该已经消失。

对于子图,您还可以使用\phantomcaption

\begin{figure}
  \centering
  \begin{subcaptiongroup}
    \includegraphics{cat_with_a}
    \phantomcaption\label{cat}
    \includegraphics{elephant_with_b}
    \phantomcaption\label{elephant}
  \end{subcaptionblock}
  \captionsetup{subrefformat=parens}
  \caption{Two animals: \subref{cat} a cat, and \subref{elephant} an 
  elephant}
\label{animals}
\end{figure}

另外,通过使用以下subcaption软件包:

\usepackage{subcaption}
\captionsetup[sub]{⟨options⟩}

子字幕的默认设置为:

margin=0pt,font+=smaller,labelformat=parens,labelsep=space,
skip=6pt,list=false,hypcap=false

答案4

captionsetup 对我来说不起作用,但我可以通过简单地交换各个subfigure部分来保持相同的结构minipage,如下所示:

\begin{figure}[H]
    \centering
    \begin{minipage}{0.49\textwidth}
        \includegraphics[width=\linewidth, height=4.5cm]{images/test1.JPG} 
        \caption{Test 1}
    \end{minipage}
    \hfill
    \begin{minipage}{0.49\textwidth}
        \includegraphics[width=\linewidth, height=4.5cm]{images/test2.JPG}
        \caption{Test 2}
    \end{minipage}
\caption{Test figures for minipage \cite{testReference}}
\label{fig:test}
\end{figure}

相关内容