LaTeX 在图片之间插入空白页

LaTeX 在图片之间插入空白页

我正在用 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}

在序言中。

相关内容