Indicador visual quando um flutuador é muito alto

Indicador visual quando um flutuador é muito alto

No modo rascunho, o LaTeX imprime um marcador preto se o texto não puder ser quebrado e se estender até a margem (hbox cheio demais). É possível ter um indicador visual semelhante se um flutuador for muito alto para a página e se estender até a área do rodapé?

Responder1

LaTeX faz um aviso no log, você pode fazer com que ele imprima algo ao mesmo tempo:

insira a descrição da imagem aqui

\documentclass{article}

\usepackage{color}
\makeatletter


\def \@largefloatcheck{%
  \ifdim \ht\@currbox>\textheight
    \@tempdima -\textheight
    \advance \@tempdima \ht\@currbox
    \@latex@warning {Float too large for page by \the\@tempdima}%
    \global\setbox\@currbox\hbox{%
      \box\@currbox
      {\color{red}\smash{\llap{FLOAT TOO BIG}}\vrule width 5pt}}%
    \ht\@currbox \textheight
  \fi
}

\makeatother
\begin{document}


\begin{figure}

\rule{2cm}{19cm}
\caption{a figure}
\end{figure}

\end{document}

Observe que \smashaqui foi adicionado para corrigir o problema levantado nos comentários de que o código original poderia fazer um loop para algumas fontes. Sem \smasheu estava assumindo que o texto em maiúsculas FLOAT TOO BIGnão teria profundidade, mas as métricas de fonte de algumas fontes fornecem profundidade diferente de zero às letras maiúsculas.

Responder2

A regra overfull funciona apenas para caixas horizontais.

Violações na área do rodapé também podem ser vistas mais facilmente, se houver uma caixa ao redor da área do corpo. O pacote geometrymarca o layout da página com caixas, se for usado com a opção showframe. Caso geometrycontrário, a opção passnotifica geometrypara não alterar os parâmetros de layout:

\usepackage[pass, showframe]{geometry}

informação relacionada