
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:
\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 \smash
hier 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 \smash
hätte ich angenommen, dass der Großbuchstabentext FLOAT TOO BIG
keine 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 geometry
kennzeichnet das Seitenlayout mit Boxen, wenn es mit der Option verwendet wird showframe
. Wenn geometry
es nicht verwendet wird, pass
weist die Option darauf hin geometry
, die Layout-Parameter nicht zu verändern:
\usepackage[pass, showframe]{geometry}