• Aucun résultat trouvé

Corpos Flutuantes

Hoje, a maior parte das publicações contém um grande número de figuras e tabelas. Estes elementos precisam de um tratamento especial, porque não podem ser partidos entre páginas. Uma maneira seria começar uma nova página sempre que uma figura ou uma tabela é demasiado grande para caber na página actual. Esta abordagem pode deixar páginas parcialmente vazias, o que fica muito mal.

A solução para este problema é fazer as figuras ou tabelas que não cabem na página actual “flutuar” para uma página posterior, enquanto se preenche a página actual com o texto seguinte. O LATEX oferece dois ambientes para corpos flutuantes; um para tabelas e um para figuras. Para ter todas as vantagens destes dois ambientes, é importante perceber de uma forma apro-ximada como o LATEX maneja estas flutuações internamente. Doutro modo, estes elementos podem vir a ser uma grande fonte de frustração porque o LATEX nunca os colocará onde os deseja.

Primeiro, vamos dar uma vista de olhos aos comandos que o LATEX a-presenta para corpos flutuantes:

Qualquer material incluso num ambiente figureou tableserá tratado como uma matéria flutuante. Ambos os ambientes suportam parâmetros adicionais

\begin{figure}[especificação de colocação] \begin{table}[. . . |]|

chamados de especificação de colocação. Estes parâmetros são usados para dizer ao LATEX a localização para a qual o corpo flutuante se pode mover.

Aespecificação de colocação é construída por um conjunto de caracteres de permissões de colocação de corpos flutuantes. Veja a tabela 2.8.

Uma tabela pode ser iniciada com a seguinte linha

\begin{table}[!hbp]

A especificação de colocação [!hbp]indica ao LATEX para colocar a tabela exactamente aqui (h) ou no fundo (b) de alguma página ou em alguma página especial para corpos flutuantes (p), e tudo isto mesmo que não fique muito bonito (!). Se nenhuma especificação for dada, é assumida a[tbp].

O LATEX irá colocar cada corpo flutuante de acordo com a especificação de colocação dada pelo autor. Se um destes não pode ser colocado na página actual, será enviado para a fila de espera correspondente21 (para figuras ou tabelas). Quando uma nova página é iniciada, o LATEX verifica primeiro se é possível preencher uma página especial de ‘flutuações’ com os objectos da lista de espera. Se isto não é possível, o primeiro objecto de cada uma das filas de espera é tratado como se tivesse ocorrido naquele momento no texto:

o LATEX tenta de novo colocar de acordo com a respectiva especificação de colocação (excepto o ‘h,’ que não volta a ser válido). Qualquer objecto que

21Estas filas são FIFO—‘first in first out’, o primeiro a entrar é o primeiro a sair

Tabela 2.8: Permissões de Colocação de Corpos Flutuantes.

Espec. Permissão para colocar em. . .

h hereaqui neste exacto local onde ocorreu no meio do texto. É útil para pequenos objectos.

t notopo da página

b nofundo (bottom) da página

p numa página especial apenas com corpos flutuantes..

! sem considerar a maior parte dos parâmetros in-ternosa que podem fazer com que o corpo flutu-ante não seja colocado.

aComo o número máximo destes objectos permitidos por página.

ocorra no texto será enviado para a fila de espera. O LATEX mantém estri-tamente a ordem original em que aparecem cada um dos tipos de objectos flutuantes. Esta é a razão pela qual uma figura que não pode ser colocada empurra todas as outras figuras para o fim do documento. Portanto:

Se o LATEX não está a colocar os objectos flutuantes como espe-rava é normal que seja apenas um deles numa das filas de espera que esteja a empatar o serviço!

Enquanto que é possível dar ao LATEX especificadores de colocação úni-cos, isto causa problemas. Se o objecto não cabe na localização pretendida, fica preso, a bloquear os objectos seguintes. Em particular, nunca deve uti-lizar apenas a opção [h]—esta é tão má que em versões recentes do LATEX é automaticamente substituída por [ht].

Depois de ter explicado a parte difícil, aqui estão mais algumas coisas a mencionar sobre os ambientestable e figure. Com o comando

\caption{legenda}

pode definir uma legenda para o objecto. Um número será automaticamente criado juntamente com o texto “Figure” ou “Table” e adicionado no início da legenda.

Os dois comandos

\listoffigurese\listoftables

funcionam de forma análoga ao comando \tableofcontents, imprimindo uma lista de figuras ou tabelas, respectivamente. Nestas listas, a legenda completa será repetida. Se tem tendência a usar grandes legendas, deve definir uma versão mais curta para as listas. Isto pode ser feito introduzindo a versão mais pequena entre parêntesis rectos depois do comando\caption.

\caption[Pequeno]{Looooooooooooooooooongoooooooooooo}

Com \label e \ref, pode criar uma referência para o corpo flutuante no meio do texto.

O seguinte exemplo desenha um quadrado e insere-o no documento. Pode usar isto se desejar reservar espaço para imagens que vai colar no documento pronto.

Figura~\ref{branco} é um exemplo de Arte-Pop.

\begin{figure}[!hbp]

\makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}}

\caption{Cinco por Cinco em Centímetros.\label{branco}}

\end{figure}

No exemplo anterior, o LATEX irá tentar mesmo (!) colocar a figura jus-tamente aqui ( h).22 Se isto não é possível, então tenta colocar a figura no fundo( b) da página. Se falhar a colocação da figura na página actual, determina se é possível criar uma página de corpos flutuantes que contenha esta figura e possivelmente algumas tabelas da fila de espera respectiva. Se não existir material suficiente para esta página especial, o LATEX inicia uma nova página, e uma vez mais trata-a como se tivesse ocorrido nesse momento no texto.

Em algumas circunstâncias, pode ser necessário usar o comando

\clearpageou mesmo o\cleardoublepage

que ordenam o LATEX a colocar imediatamente no documento todos os obje-ctos restantes das filas de espera e depois iniciar uma nova página. O

\cleardoublepage obriga a começar a página do lado direito.

Irá aprender a incluir desenhosPostScriptno seu documento LATEX 2ε mais tarde nesta introdução.