Optische Anzeige, wenn ein Schwimmer zu hoch ist

Optische Anzeige, wenn ein Schwimmer zu hoch ist

Im Entwurfsmodus druckt LaTeX eine schwarze Markierung, wenn Text nicht umbrochen werden kann und in den Rand hineinragt (überfüllte Hbox). Ist es möglich, einen ähnlichen visuellen Indikator zu haben, wenn ein Float zu hoch für die Seite ist und in den Fußzeilenbereich hineinragt?

Antwort1

LaTeX macht eine Warnung im Protokoll, Sie können gleichzeitig etwas ausdrucken lassen:

Bildbeschreibung hier eingeben

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

Beachten Sie, dass \smashhier das Problem behoben wird, das in den Kommentaren angesprochen wurde, dass der ursprüngliche Code bei einigen Schriftarten in einer Schleife laufen könnte. Ohne diese \smashhätte ich angenommen, dass der Großbuchstabentext FLOAT TOO BIGkeine Tiefe hätte, aber die Schriftmetriken einiger Schriftarten geben Großbuchstaben eine Tiefe ungleich Null.

Antwort2

Die Überfüllregel funktioniert nur für horizontale Kartons.

Auch Verletzungen des Footer-Bereichs sind leichter zu erkennen, wenn sich um den Body-Bereich eine Box befindet. Das Paket geometrykennzeichnet das Seitenlayout mit Boxen, wenn es mit der Option verwendet wird showframe. Wenn geometryes nicht verwendet wird, passweist die Option darauf hin geometry, die Layout-Parameter nicht zu verändern:

\usepackage[pass, showframe]{geometry}

verwandte Informationen