Recebendo inesperadamente o erro "flutuação muito grande para a página" ao usar uma figura menor que a página

Recebendo inesperadamente o erro "flutuação muito grande para a página" ao usar uma figura menor que a página

Estou recebendo o seguinte erro ao usar figuree subfigurecriar um ambiente 2 x 1 para minhas figuras (ou seja, uma figura em cima e duas figuras em baixo) em uma situação inesperada.

O documento foi gerado com sucesso e meus números cabem claramente em uma única página e posso confirmar isso até visualmente, ou seja, a página ainda tem muito espaço vazio! Mas ainda quero entender porque esse erro é gerado.

Flutuação muito grande para a página em 14.86864pt na linha de entrada 58.

Este é o bloco de código que estou usando:

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

Eu já tentei:

  1. Remover\centering
  2. Remover [htbp!](na primeira linha)
  3. Remover [b](aqueles próximos aos subfigurecomandos)

Responder1

Se o float se estender até a área do rodapé, então o float ainda será muito grande.

O layout da página pode ficar visível por opção showframede package geometry. Adicione esta opção ou se o pacote não for usado adicione:

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

A macro \DebugBox, definida abaixo, imprime as dimensões no console e no .logarquivo e adiciona bordas. As linhas de borda são colocadas dentro da caixa para evitar que a caixa com borda fique maior.

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

A macro \DebugBoxpode ser usada como \mbox, exemplo:

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

informação relacionada