我正在使用该subfig
包在环境中创建许多子浮点数figure
。只要您意识到它会跟踪环境中的空白,它就会运行良好float
。
它还具有使用命令将图形拆分到多页的\ContinuedFloat
选项。这意味着,一旦多个子图填满一页,您就可以结束该图形并在新页面中使用此\ContinuedFloat
命令开始一个图形 - 然后它将继续布局子图(保留计数等)。
请注意,usepackage 命令应如所述,并且caption
包captcont
应不是被加载,因为它会导致不必要的重新定义和不兼容。
\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
环境可以是多页的并接受标题。这当然会忽略t
、b
、h
选项:
\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
提供
- 将任意数量(可能大小不同)的子图形纳入类似图形*的结构中,
- 能够让这个类似图形的结构看起来就像是一个漂浮的物体,
- 在单栏和双栏文档中均可很好地运行。
答案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}