Неожиданное получение ошибки «слишком большой плавающий объект для страницы» при использовании числа, которое меньше страницы

Неожиданное получение ошибки «слишком большой плавающий объект для страницы» при использовании числа, которое меньше страницы

Я получаю следующую ошибку при использовании figureи subfigureсоздании среды 2 x 1 для моих фигур (т. е. одна фигура сверху и две фигуры снизу) в неожиданной ситуации.

Документ успешно сформирован, и мои цифры четко помещаются на одной странице, и я могу подтвердить это даже визуально, т. е. на странице все еще остается много пустого места! Но я все еще хочу понять, почему возникает эта ошибка.

Слишком большой плавающий элемент для страницы на 14,86864 пт во входной строке 58.

Вот блок кода, который я использую:

\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}}

Связанный контент