ContinuedFloat 和 Subfloat

ContinuedFloat 和 Subfloat

在我的论文中,我有很多带有共同标题和多个子图(a、b、c..等)的图表。我想将它们拆分到各个页面,因为我不想将它们全部放在一页中,因此我使用了命令\subfloat\ContinuedFloat。这很有帮助,但是:

  1. 图形的编号从 0 开始,例如图 1.0,但事实并非如此。
  2. 编号不是按顺序排列的,一开始是这样的:图 1.0、图 1.1、图 1.2,然后回到图 1.1,然后是图 1.2……等等,甚至在子图中,编号也不是按顺序排列的,就像:图 1.0 (a) 和图 1.1 (b),而不是图 1.0 (b)……

这是我使用的代码:

%\clearpage
\begin{figure}[h!]
%\subfigure[]{
\centering
\subfloat{\includegraphics[width=1.0\columnwidth]{fig1.eps} } \, 
\label{int1}}%
\end{figure}
%\clearpage
\begin{figure}[h!]
\ContinuedFloat
%\subfigure[]{
\centering
\subfloat{\includegraphics[width=1.0\columnwidth]{fig2.eps} } \, 
\label{int2}}%
\caption{my figures (a) and (b).}
\label{int}
\end{figure}

然后就是复制和粘贴其他图形(和子图形)的问题。

答案1

不幸的是,subfig 包提供的算法\ContinuedFloat基于每个图形都有一个 的假设\caption。因此,自 3.2 版起,该caption包提供了一个名为 的命令\phantomcaption(不带任何参数),它不会排版标题,但可以满足 的需求\ContinuedFloat

对于 caption 包 3.1 版本的使用,可以定义\phantomcaption为:

\makeatletter
\providecommand\phantomcaption{\caption@refstepcounter\@captype}
\makeatother

由于这种用途,\providecommand它不会与字幕包的未来版本发生冲突。

顺便说一句:caption 包的当前版本 3.3 提供了\ContinuedFloat不需要的定义\caption,但由于 subfig 包附带了它自己的定义\ContinuedFloat(覆盖了包定义的定义),所以在使用该包时caption您仍然需要。\phantomcaptionsubfig

梅威瑟:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{subfig}

\begin{document}

\begin{figure}
\centering
\subfloat[]{\includegraphics[width=1.0\columnwidth]{fig1.eps} \, 
\label{int1}}
\phantomcaption  % <=== This line added to compensate for the missing \caption
\end{figure}

\begin{figure}
\ContinuedFloat
\centering
\subfloat[]{\includegraphics[width=1.0\columnwidth]{fig2.eps} \, 
\label{int2}}%
\caption{my figures (a) and (b).}
\label{int}
\end{figure}

\end{document}

相关内容