我正在用 LaTeX 写一篇相对较长的文字。有时我需要使用\figure
和包含一堆大图(每页 2 个图,没有文字) \includegraphics
。为了避免页面只有一个图,我使用[H]
/[P]
位置说明符。问题是 LaTeX 出于某种原因在有图的页面之间放置了一个空白页。
我最终得到的结果是这样的:文本页 - 带有 2 个数字的页面 - 空白页 - 带有 2 个数字的页面。
答案1
你没有提供一个最小示例,因此很难说清楚到底发生了什么。但是,如果你只是想“避免页面只有一个图”,将两个\includegraphics
宏放入里面一 figure
环境(并使用 添加一些垂直空间\vspace{floatsep}
)。
编辑:与 Mico 的断言相反,可以创建对内部图形的单独交叉引用figure
——请参阅我更新的示例。
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
A cross-reference to figures~\ref{first} and~\ref{second}.
\begin{figure}
\centering
\rule{1cm}{8cm}% placeholder for graphics
\caption{First}\label{first}
\vspace{\floatsep}
\rule{1cm}{8cm}% placeholder for graphics
\caption{Second}\label{second}
\end{figure}
\end{document}
答案2
如果你确定两个浮动元素(包括其标题)可以放在一页上,则可以使用以下方法——另请参阅这个问题和相关答案-- 强制 LaTeX 将浮动图放在一页上。通过创建两个单独的图形浮动图(每个图像一个),而不是包含两个图像和两个标题(以及用于交叉引用的任何相关标签)的一个浮动图,可以保留代码与软件包的兼容性hyperref
。如果您目前不使用hyperref
,并且如果您预计将来不需要使用hyperref
,那么 @lockstep 的答案中提供的更简单的方法也可以。
\afterpage
下面的示例代码使用了该包的命令afterpage
。它还使用虚拟图像(实际上是黑色方块)作为真实图形的占位符(最有可能使用该\includegraphics
命令加载)。该示例还加载了该lipsum
包以提供填充文本。最后,hyperref
还加载了该包,以证明该方法与 hyperref 兼容。(请确保编译该程序两次,以便让 LaTeX 解析交叉引用。)
\documentclass{article}
\usepackage{afterpage,lipsum,hyperref,graphicx}
\begin{document}
First, some cross-references to Figures \ref{fig:first} and \ref{fig:second}.
\section{Some random thoughts}
\afterpage{
\clearpage % This `\clearpage` instruction serves to relax temporarily some
% of LaTeX's restrictions on how floats may be placed.
\begin{figure}[t]
\caption{First figure} \label{fig:first}
\centering
\rule{1in}{1in} % dummy image
%\includegraphics{fig1} % insert real file name
\end{figure}
\begin{figure}[h]
\caption{Second figure} \label{fig:second}
\centering
\rule{1in}{1in} % dummy image
%\includegraphics{fig2} % insert real file name
\end{figure}
\clearpage % This second \clearpage instruction forces LaTeX to typeset both
% accumulated floats
} % end of \afterpage{} group
\lipsum[1-8]
\end{document}
如果您有多个页面,并且每个页面应包含两个浮点数,则您不必afterpage
每次都开始一个新组。相反,在第二\clearpage
条指令之后,您只需提供代码来排版另外两个图形,然后是一条\clearpage
指令;依此类推,直到所有此类图形都已放置完毕。
如果您发现 LaTeX 无法将两个浮动元素放在一页上,您可能需要尝试减少长度参数的值\floatsep
(主字体大小为 10pt 的文档的默认值:“12pt 加 2pt 减 2pt”)。例如,您可以发出命令
\setlength\floatsep{0.5\baselineskip plus 1pt minus 2pt}
在序言中。