我有一个包含包的 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}
您的输出仍然相同,并且错误与子图的冲突现在应该已经消失。
对于子图,您还可以使用\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}