Boxes PT

Você também pode gostar

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 4

Caixas e mais caixas saxiac siam e saxiaC

I. R. Pagnossin 20 de maro de 2009


A Caixas so ao mesmo tempo um conceito fundamental do TEX/LTEX e uma ferramenta muito til para o usurio, embora seja muito pouco conhecida. Acredito A que isto se deva ao sucesso do LTEX em prover uma interface de mais alto nvel ao TEX, que permite-nos produzir documentos de qualidade sem nos conscientizarmos delas. Ainda assim til conhec-las pois nos permitem compreender melhor o TEX, ajudam-nos a evitar e a resolver problemas e mesmo a propor solues para situaes inusitadas. Neste artigo veremos o que so as caixas e reproduziremos o efeito de reexo do ttulo deste trabalho com o intuito de obter algum conhecimento acerca delas. A Dentre os ingredientes fundamentais de um documento LTEX, existem as caixas: retngulos imaginrios que envolvem letras, linhas, pginas, pargrafos, guras, tabelas etc. De fato, o TEX no trabalha com letras, linhas. . . mas com caixas! A Voc provavelmente j utilizou caixas para evitar que o LTEX separasse uma palavra qualquer, ou talvez para destacar uma expresso matemtica. Mas elas servem para muito mais que isso. Um exemplo simples mas instrutivo o efeito de reexo do ttulo deste artigo, que utiliza apenas uma caixa personalizada. Vejamos o que podemos aprender com ele. Comecemos com o bsico. A gura 1 mostra a caixa associada letra g. Ela tem trs diA menses: altura, largura e profundidade. So com essas dimenses que o LTEX se importa de A fato, no com o contedo da caixa. Em outras palavras, o LTEX no v a letra g, s a caixa. Este o fato importante a se apreender. A Mas no precisamos car apenas na abstrao; podemos pedir ao LTEX que nos mostre essa caixa: basta escrever \framebox{g} (antes disso voc deve atribuir a \fboxsep o comprimento zero para remover o espao extra ao redor de g: \setlength{\fboxsep}{0pt}). Muito mais importante do que mostrar a caixa, o comando \framebox constri uma caixa com o que voc quiser dentro dela. Por exemplo, \framebox{Caixas}. Agora Caixas uma nica caixa e to indivisvel quanto a prpria letra g. Alis, esta outra propriedade importante: caixas so indivisveis. Mas a propriedade que nos interessa mesmo esta: o contedo de uma caixa no precisa estar dentro dela. Voc deve ter percebido que, dado o contedo como argumento, o comando \framebox ajusta as dimenses da caixa s do contedo (na verdade, s das sub-

height

depth

g
width

baseline

reference-point Figura 1: as dimenses de uma caixa. Tudo o que visvel num documento produzido A com o LTEX (ou, mais corretamente, est em) uma ou mais caixas. Por isso so fundamentais.

caixas que compem o contedo). Mas voc tambm pode den-los ao bel prazer. Por exemplo,

\framebox[2cm]{Caixas}
produz Caixas , uma caixa com dois centmetros de largura. Ou seja, uma caixa que ocupa mais espao que seu contedo. Voc tambm pode denir o alinhamento do contedo pela caixa, esquerda (l), no centro (c) ou direita (r), conforme abaixo: \framebox[2cm][l]{Caixas} produces Caixas \framebox[2cm][c]{Caixas} produces Caixas \framebox[2cm][r]{Caixas} produces Caixas Da mesma forma, podemos criar uma caixa que ocupe menos espao que seu contedo; uma caixa com comprimento zero, por exemplo:

\framebox[0cm][l]{Caixas}
Experimente e veja que Caixas sobrepe-se ao texto sua direita. Isto ocorre porque, como A vimos, o LTEX posiciona as letras (caixas) lado a lado com base em suas dimenses. Mas a caixa que criamos no ocupa espao (horizontal). . . quase como se ela no existisse, embora o seu contedo continue ali (experimente tambm alterar o parmetro de alinhamento). Outro comando que nos interessa, denido no pacote graphicx, o \scalebox, cuja sintaxe \scalebox{ f x }[ f y ]{caixa}. Ele modica as dimenses da caixa e de seu contedo conforme os fatores de escala vertical ( f y ) e horizontal ( f x ) e cria uma nova caixa que envolve este novo contedo. No nosso caso, para obter Caixas escrevemos saxiaC

\scalebox{1}[-1]{Caixas}Caixas
A Isto signica que instruimos o LTEX a multiplicar a largura por f x = 1 (e nada muda na horizontal) e a altura (> 0) e a profundidade (= 0) por f y = 1. Uma observao: os comandos do

saxiaC

Caixas

pacote graphicx aceitam caixas como argumentos, no apenas guras (que tambm so caixas). comum achar que eles s se aplicam a elas, j que o pacote destina-se especialmente incluso de guras. Mas isto no verdade. Mas continuemos. Como colocar embaixo de Caixas? s faz-la no ocupar espao horizontal, ou seja, s coloc-la numa caixa de largura zero: saxiaC saxiaC

\makebox[0cm][l]{\scalebox{1}[-1]{Caixas}}Caixas
Aqui ns utilizamos \makebox ao invs de \framebox apenas para omitir a moldura da caixa: estes dois comandos so equivalentes, exceto que o \framebox desenha a moldura e o \makebox no. Finalmente, resta escolher a cor da reexo (voc precisar do pacote xcolor):

Caixas

A sequncia abaixo ilustra a variao no comprimento da caixa, desde sua largura natural (denida pelo seu contedo) at zero. Note que a Caixas no invertida comea sempre imediatamente aps a moldura (a caixa), no aps o contedo ( ). saxiaC saxiaC saxiaC saxiaC saxiaC Caixas Caixas Caixas Caixas saxiaC Caixas Caixas saxiaC

Podemos construir caixas mais complexas que essas. Na verdade, tudo o que visvel num A documento produzido com o LTEX uma ou mais caixas. At mesmo alguns elementos invisveis do seu documento tambm so. Um exemplo a endentao dos pargrafos, que nada mais do que uma caixa vazia de comprimento \parindent. De qualquer forma, os conceitos que vimos h pouco permanecem vlidos. Vejamos um exemplo. A linha abaixo contm quatro caixas mais algumas linhas de preenchimento (que tambm so caixas): a primeira voc j conhece, a segunda um pargrafo, a terceira uma gura e a quarta, uma tabela. Cada uma delas tem altura, largura e profundidade, so indivisveis e so posicionadas lado a lado com os pontos-de-referncia alinhados (g. 1), formando uma linha imaginria chamada linha-base, que representamos pelas linhas de preenchimento.

Caixas saxiaC

Sed feugiat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut pellentesque augue sed urna. Vestibulum diam eros, fringilla et, consectetuer eu, nonummy id, sapien. Nullam at lectus. In sagittis ultrices mauris. Curabitur malesuada erat sit amet massa. Fusce blandit. Aliquam erat volutpat. Aliquam euismod. Aenean vel lectus. Nunc imperdiet justo nec dolor.

cos sin 0 sin cos 0 0 0 1

A caixa Caixas tem altura e profundidade iguais (a linha contnua corta-a ao meio), da mesma forma que a caixa contendo o pargrafo. J a gura, inserida ali com o comando \includegraphics (do pacote graphicx) tem profundidade zero. E a tabela tem altura e profundidade desiguais (o cdigo que produz esta linha est no nal do artigo). O importante aqui perceber que o posicionamento de todas essas caixas segue exatamente as saxiaC

saxiaC
Linha-base

\makebox[0cm][l]{\scalebox}{1}[-1]{\textcolor{blue!30}{Caixas}}Caixas

Caixas

mesmas regras que aquelas usadas para letras, haja vista que todas elas so (ou esto em) caixas. Assim, toda vez que voc inserir uma gura ou uma tabela no seu documento, enxergue-as como grandes letras g. Em outras palavras, veja as caixas! Para aprender mais sobre o assunto, estude o ambiente minipage, os comandos \parbox, \raisebox e \rule na seo 4.7 de [1] e/ou no apndice A.2 de [2]. O captulo 11 de [3] mandatrio. Alm disso, veja os comandos denidos pelo pacote graphicx.

A. Uma linha de texto incomum

O cdigo abaixo aquele utilizado para produzir a linha de texto incomum discutida acima neste trabalho. Voc precisar dos pacotes graphicx, amsmath e lipsum para compil-lo.
\ setlength \ fboxsep {0 pt } \ noindent \ hrulefill \ makebox [0 cm ][ l ]{\ scalebox {1}[ -1]{\ textcolor { blue !30}{ Boxes }}} % Boxes \ hrulefill \ fbox {\ begin { minipage }{0.3\ textwidth } \ setlength {\ parindent }{0.1\ textwidth } \ tiny \ lipsum [11] % \ end { minipage }}\ hrulefill \ fbox {\ includegraphics [ width =0.17\ textwidth ]{ TeX }}\ hrulefill \ fbox {$\ left (\ begin { matrix } \ cos \ varphi & -\ sin \ varphi & 0 \\ \ sin \ varphi & \ cos \ varphi & 0 \\ 0 & 0 & 1 \ end { matrix }\ right )$}\ hrulefill \ null

Referncias
A [1] H. Kopka and P W. Daly. A Guide to LTEX. Addison-Wesley, 3 edio, 2004. . A [2] F. Mittelbach and M. Goossens. The LTEX Companion. Addison-Wesley, 2 edio, 2004.

[3] D. E. Knuth. The TEXbook. Addison-Wesley, 1984.

Você também pode gostar