使用小于页面的图形时意外收到“浮动对于页面而言太大”错误

使用小于页面的图形时意外收到“浮动对于页面而言太大”错误

figure在意外情况下使用并subfigure为我的图形创建 2 x 1 环境(即,顶部一个图形,底部两个图形)时出现以下错误。

文档已成功生成,我的图表显然适合放在一页上,我甚至可以直观地确认这一点,即页面上仍有很多空白空间!但我仍然想了解为什么会产生此错误。

在输入行 58 处,浮动对于页面来说太大,为 14.86864pt。

这是我正在使用的代码块:

\documentclass[12pt,a4paper,oneside,pdftex]{report}
\usepackage[demo]{graphicx}
\usepackage{subcaption}

\begin{document}
\begin{figure}[htbp!]
  \centering
  \begin{subfigure}[b]{1\linewidth}
    \includegraphics[width=\linewidth]{files/Feb1.pdf}
     \caption{No. 1 }
  \end{subfigure}
  \begin{subfigure}[b]{0.4\linewidth}
    \includegraphics[width=\linewidth]{files/Feb2.pdf}
    \caption{No. 2 }
  \end{subfigure}
    \begin{subfigure}[b]{0.4\linewidth}
    \includegraphics[width=\linewidth]{files/Feb3.pdf}
    \caption{No. 3 }
  \end{subfigure}
  \caption{\textit{40 characters here in the original version} 544 characters here}
  \label{fig:thesefiguresdonotmatter}
\end{figure}
\end{document}

我已经尝试过:

  1. 消除\centering
  2. 删除[htbp!](第一行)
  3. 删除[b](命令旁边的subfigure

答案1

如果浮动延伸到页脚区域,那么浮动仍然太大。

showframe可以通过包的选项使页面布局可见geometry。添加此选项,或者如果未使用该包,则添加:

\usepackage[pass, showframe]{geometry}% pass does not change the layout

下面定义的宏\DebugBox将尺寸打印到控制台和文件.log并添加边框。边框线放在框内,以防止带边框的框变大。

\newcommand*{\DebugBox}[1]{%
  \begingroup
    \sbox0{#1}%
    \typeout{\string\DebugBox: wd=\the\wd0, ht=\the\ht0, dp=\the\dp0}%
    \setlength{\fboxrule}{.1pt}% thin border line
    \setlength{\fboxsep}{-\fboxrule}% border line inside
    \fbox{\box0}%
  \endgroup
}

\DebugBox可以像这样使用\mbox,例如:

\DebugBox{\includegraphics[width=\linewidth]{files/Feb1.pdf}}

相关内容