我有 6 张图表,在展示时必须将它们放在一起。我必须让它们的宽度与文本宽度几乎相同,否则图表将无法正常显示。因此,我无法将它们并排添加,但必须将它们垂直放置,一个接一个,跨越大约两页。现在我的问题是,我该怎么做?
我曾尝试在subfloat
或中使用它们subfigure
,也尝试将它们放在一个图形环境中。但图形只出现在一页中,并且只有两三个(高度与页面高度匹配)图形可见。
如果我强制它们浮动到我放置图形的确切位置(在图形环境中提供 [H] 选项),它会在起始页中保留大量空间,如果我省略 [H] 选项,则图形不会组合在一起。 有什么好方法可以将它们组合在一起吗?
如果我可以为所有六个数字制作一个单一的标题,即所有六个数字将出现在分布在多个页面上的单一标题下,那就更好了。
答案1
诀窍是\ContinuedFloat
从subfig
包中使用。正如您在包文档第 5 页中看到的那样,
有时,尤其是在使用子浮点数时,单个图形需要跨页延续。该
\ContinuedFloat
命令放置在浮动环境的开头或在\@captype
浮动环境内部更改后,以使下一个图形、表格或其他浮动成为相同类型的\caption
最后一个浮动的延续\caption
。它通过在内部保存子浮点数并阻止浮动数前进来实现这一点。
因此,您描述的情况的 MWE 变成如下形式,
\documentclass{article}
\usepackage{subfig}
\usepackage{pgf}
\usepackage[a4paper,top=10.0mm,bottom=15.0mm]{geometry}
\begin{document}
\listoffigures
\def\mygraphcaption{Here are my graphs.}
\newlength{\mygraphwidth}\setlength{\mygraphwidth}{0.9\textwidth}
\begin{figure}[!tbp]
\centering
\subfloat[First Graph]{\pgfimage[width=\mygraphwidth]{mygraph1}}
\subfloat[Second Graph]{\pgfimage[width=\mygraphwidth]{mygraph2}}
\subfloat[Third Graph]{\pgfimage[width=\mygraphwidth]{mygraph3}}
\caption{\mygraphcaption}%
\label{fig:firstthree}%
\end{figure}
\begin{figure}[!tbp]
\ContinuedFloat
\centering
\subfloat[Fourth Graph]{\pgfimage[width=\mygraphwidth]{mygraph4}}
\subfloat[Fifth Graph]{\pgfimage[width=\mygraphwidth]{mygraph5}}
\subfloat[Sixth Graph]{\pgfimage[width=\mygraphwidth]{mygraph6}}
\caption{{\itshape(continued)} \mygraphcaption}%
\label{fig:lastthree}%
\end{figure}
\end{document}
以下是输出页面,
由于您指出图表的宽度几乎与文本宽度相同,并且您希望使用单个标题,因此我使用了长度和宏来解决这些问题。但您肯定知道,您可以调整它们或使用您自己的尺寸或更多针对该场景的自定义文本。
我认为该解决方案的唯一缺点是您必须手动决定在哪里拆分组。您需要反复试验,将一些放在一页中,将其余的放在下一页中,依此类推。但我假设您没有很多此类图形的实例,您可以忍受手动调整。请记住将图形环境放在源文件中紧密的位置。
!
另外,请注意之前的内容tbp
很重要,这将有助于将图表的子组保持在一起。
使用captcont
包裹将是另一种选择。