将子图拆分到多个页面中 - 但是通过编程!

将子图拆分到多个页面中 - 但是通过编程!

我正在使用该subfig包在环境中创建许多子浮点数figure。只要您意识到它会跟踪环境中的空白,它就会运行良好float

它还具有使用命令将图形拆分到多页的\ContinuedFloat选项。这意味着,一旦多个子图填满一页,您就可以结束该图形并在新页面中使用此\ContinuedFloat命令开始一个图形 - 然后它将继续布局子图(保留计数等)。

请注意,usepackage 命令应如所述,并且captioncaptcont不是被加载,因为它会导致不必要的重新定义和不兼容。

\usepackage[caption=false]{subfig}    % don't load caption or captcont

\begin{figure}
\subfloat[First]{\includegraphic{first} } \,
\subfloat[Second]{\includegraphic{second} } \,
\subfloat[Third]{\includegraphic{third} } \,
\end{figure}

然后稍后继续子图(大概在新页面上)

\begin{figure}
\ContinuedFloat
\subfloat[Fourth]{\includegraphic{fourth} } \,
\subfloat[Fifth]{\includegraphic{fifth} } \,
\subfloat[Sixth]{\includegraphic{sixth} } \,
\caption{All of my six subfigures}
\end{figure}

太棒了!但为此,您必须知道子图有多大,或者有多少个子图。我可能有 30、40 或 100 个子图,我想将它们排列在页面上的数组中,并继续到下一页。此外,根据数据集,图像的纵横比可能不同,有些图像每行有 5 张图像,而其他图像可能只有 3 张。这些基本上是对一些图像进行数据分析的结果,我正在以编程方式生成 tex 文件。

主要问题:有没有办法检测到 N 个子图之后页面已满,并在新的页面中继续剩余的子图?

或者也欢迎就如何处理此问题提出任何其他建议!

答案1

为什么不重新定义figure环境,以便您的figure环境可以是多页的并接受标题。这当然会忽略tbh选项:

\renewenvironment{figure}[1][]{%
  \def\@captype{figure}%
  \par\nobreak\begin{center}\nobreak}
  {\par\nobreak\end{center}}

我实际上正在编写一个float从 LaTeX 重新定义的包,并使用包提供的一些代码framed,以便浮动环境(例如table或)figure可以超过一页。我应该能够在周末之前将其上传到 CTAN。

答案2

我知道这是一个老话题,但我最近创建了一个包,figureSeries它可能是一个很好的答案,你可以在http://github.com/thomasWeise/figureSeries

该套餐figureSeries提供

  1. 将任意数量(可能大小不同)的子图形纳入类似图形*的结构中,
  2. 能够让这个类似图形的结构看起来就像是一个漂浮的物体,
  3. 在单栏和双栏文档中均可很好地运行。

答案3

不要使用浮点数,这样更容易换行。下面是一个仅使用小包的示例capt-of,它只定义一个命令,在使用浮点数时没有任何变化。如果您愿意,也可以通过子计数器来计数子浮点数。

\documentclass{article}
\usepackage[caption=false]{subfig} 
\usepackage[demo]{graphicx}
\usepackage{capt-of}

\newcommand\Image[3][]{%
  \tabular[b]{@{}c@{}}\includegraphics[#1]{#2}\\
    #3
  \endtabular}
\begin{document}

\Image[width=0.3\linewidth]{first}{a) First} \,
\Image[width=0.3\linewidth]{second}{b) Second} \,
\Image[width=0.3\linewidth]{third}{c) Third}

\Image[width=0.3\linewidth]{forth}{d) Forth} \,
\Image[width=0.3\linewidth]{fifth}{e) Fifth} \,
\Image[width=0.3\linewidth]{sixth}{f) Sixth}
\captionof{figure}{All of my six subfigures}

\end{document} 

相关内容