Às vezes, tenho dois (ou mais) ambientes de figuras que desejo colocar em uma página e colocar uma régua horizontal no centro. Para conseguir isso, coloquei um \vfill\hrule\vfill entre os dois ambientes. No entanto, isso só funciona se eu criar uma minipágina abrangendo toda a região de texto de uma página.
No entanto, se eu fizer isso, recebo um estouro de hbox ou vbox, dependendo da classe do documento. Para artigo é um hbox overflow de 15pt, para phdthesis (um cls que peguei da web) é um vbox overflow também de 15pt.
Este é um exemplo mínimo de trabalho:
\documentclass{article}
\newlength{\minipagewidth}
\newlength{\minipageheight}
\begin{document}%
%results in: Badbox, line 9: Overfull \hbox (15.0pt too wide) in paragraph at lines 9-26
\setlength{\minipagewidth}{\textwidth}%
\setlength{\minipageheight}{\textheight}%
\begin{minipage}[t][\minipageheight]{\minipagewidth}%
Top of the page
\vfill\hrule\vfill
Bottom of the page
\end{minipage}
% no vbox or hbox overflow:
\addtolength{\minipagewidth}{-15pt}%
%\addtolength{\minipageheight}{-15pt}%
\begin{minipage}[t][\minipageheight]{\minipagewidth}%
Top of the page
\vfill\hrule\vfill
Bottom of the page
\end{minipage}%
\end{document}
A segunda minipágina não gera esse aviso, mas tive que subtrair 15 pontos da largura. De onde vem esses 15pt? por que \textwidth é maior que a largura da área textual?
Responder1
É o recuo padrão. No que diz respeito ao LaTeX, a minipage
é como uma letra grande. Assim \begin{minipage}
começa um parágrafo, se ainda não estiver dentro de um.
\noindent\begin{minipage}{\textwidth}
resolve o problema.
Sobre a altura, não tenho certeza do que você realmente deseja alcançar.
Para uma flutuação de página inteira, você pode fazer como
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum} % just for the example
\begin{document}
\lipsum[1-3]
\begin{figure}[p]
\centering
\begin{minipage}[c][\dimexpr\textheight-\baselineskip+\topskip\relax][s]{\textwidth}
\centering
\includegraphics[width=8cm]{example-image-a}
\caption{A caption to the first figure}
\vfill
\hrule
\vfill
\includegraphics[width=8cm]{example-image-b}
\caption{A caption to the second figure}
\end{minipage}
\end{figure}
\lipsum[4-10]
\end{document}