
В черновом режиме LaTeX печатает черный маркер, если текст не может быть перенесен и он выходит за пределы поля (переполненный hbox). Возможно ли иметь аналогичный визуальный индикатор, если float слишком высок для страницы и выходит за область нижнего колонтитула?
решение1
LaTeX выводит предупреждение в журнал, вы можете заставить его одновременно что-то распечатать:
\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}
Обратите внимание, что \smash
здесь добавлено исправление проблемы, поднятой в комментариях, что исходный код мог зацикливаться для некоторых шрифтов. Без этого \smash
я предполагал, что заглавный текст FLOAT TOO BIG
не будет иметь глубины, но метрики шрифта некоторых шрифтов действительно дают заглавным буквам ненулевую глубину.
решение2
Правило переполнения действует только для горизонтальных ящиков.
Нарушения в области нижнего колонтитула также можно увидеть более легко, если вокруг области тела есть рамка. Пакет geometry
помечает макет страницы рамками, если он использует с опцией showframe
. Если geometry
он не использует иным образом, то опция pass
уведомляет geometry
не трогать параметры макета:
\usepackage[pass, showframe]{geometry}