Layout vertical de páginas flutuantes

Por padrão, o LaTeX centraliza verticalmente as caixas flutuantes em uma página flutuante; o presente autor não está sozinho em não gostar desse arranjo. Infelizmente, o controle do posicionamento está “enterrado” nos comandos internos do LaTeX, sendo necessário algum cuidado para alterar o layout.

As páginas flutuantes usam três medidas lineares (lengths) do LaTeX (i.e., saltos (skips) do TeX) para definir seu layout:

\@fptop
define a distância do topo da página até o topo da primeira caixa flutuante,
\@fpsep
defines the separation between floats, and
\@fpbot
define a distância da base da última caixa flutuante de uma página até o final da página.
(Na verdade, a rotina de saída coloca um salto de \@fpsep acima de cada flutuante e, então, o salto \@fptop é sempre seguido de uma correção para isso.)

Os padrões do LaTeX são:

\@fptop = 0pt + 1fil
\@fpsep = 8pt + 2fil
\@fpbot = 0pt + 1fil
de modo que as lacunas se expandam para preencher (fill) o espaço não ocupado pelos flutuantes, mas se houver mais de um flutuante na página, o espaço entre eles se expandirá para o dobro do espaço do topo e da base.

Aqueles que entendem essas coisas poderão "jogar" com isso de maneiras elaboradas, mas o requisito mais usual, de que os flutuantes comecem no topo da página, é uma coisa simples de fazer:

\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
Surpreendentemente, você pode achar que essa configuração deixa seus flutuantes muito altos na página. Pode-se justificar um valor de 5pt (em vez de 0pt) — que é, aproximadamente, a diferença entre \topskip e a altura de texto normal (10pt).

Observe que essa é uma configuração “global” (melhor estabelecida em um arquivo de classe ou, na pior das hipóteses, no preâmbulo do documento); fazer a mudança para uma única página flutuante é provável (no mínimo) que seja bem complicado.


Do you have any question? Ask on: latex.net.br - we love qood questions!