Revista Do Linux
EDIÇÃO DO MÊS
 CD do Mês

 Capa
 Entrevista
 Corporativo
 Editoração
 Segurança
 Hardware
 Produtos
 Programação
 Sistema
 

A perfeição matemática do TeX

Uma grande vantagem desse software é ser uma opção de longo prazo. Com o código fonte e um compilador C você terá TeX para o resto dos dias

O TeX é um programa de tipografia e sua finalidade é "a criação de livros bonitos e especialmente livros que tenham muita matemática", segundo seu criador, o professor Donald E. Knuth, da Universidade de Standford.

O TeX é um projeto especial da Sociedade Americana de Matemática, e o prof. Knuth trabalhou nele de 1977 a 1990, quando deixou o projeto. Ele considera que o TeX seja um programa tão perfeito e livre de bugs quanto um software pode ser.

plain TeX e LaTeX

O TeX é um programa totalmente genérico de tipografia e, por isso, pode ser usado em qualquer tipo de escrita (horizontais, verticais) e com qualquer tipo de alfabeto ou mesmo ideogramas. Ninguém realmente formata um documento em TeX puro e simples. Se alguém lhe diz que escreve em TeX, ele ou ela quer dizer que usa plain TeX — plain é um conjunto de comandos básicos para a língua inglesa. Porém a grande maioria usa mesmo LaTeX, um conjunto de macros desenvolvido por Leslie Lamport em 1985 para simplificar a formatação de documentos sofisticados. O LaTeX, ao contrário do TeX, está sendo ativamente desenvolvido. Neste artigo, quando me referir ao TeX, estou falando do programa executável.

O que é preciso para usar TeX e LaTeX?

Antes de mais nada disposição para aprender e um pouco de paciência com os tropeços iniciais. Essencialmente, aprender LaTeX é como aprender uma linguagem de programação.

O início é duro, mas o resultado compensa.

Existem implementações de TeX para todos os sistemas operacionais. Você não fica, nem vai ficar, amarrado a um sistema específico se for usar TeX. Uma grande vantagem do sistema TeX/LaTeX é que ele pode ser uma opção de longo prazo. Com o código fonte e um compilador C você terá TeX para o resto dos dias. Comecei a usar LaTeX em 1987, quantas pessoas você conhece que usam o mesmo processador ou editor de textos há 14 anos?

Para ter TeX no seu Linux, sugiro teTeX, que é a implementação mais usual de TeX para ambientes Unix.

No Conectiva Linux o programa costuma vir no segundo CD. Você pode obter o pacote rpm na maioria dos sites de distribuição Linux ou em tug.cs.umb.edu/tetex/. São sete pacotes ao todo e vão ocupar em torno de 110 Mb (esse número tende a aumentar à medida que as fontes vão sendo geradas). Para instalar, utilize o rpm como usuário root:

rpm -i tetex*

Após a instalação com pacotes rpm você terá tudo localizado no diretório /usr/share/texmf. No restante deste artigo vou assumir que você instalou o teTeX nesse diretório. Uma dica importante: sempre que fizer alterações nesse diretório execute texconfig e selecione a opção R.

Documentação

TeX, LaTeX e seus pacotes e estilos possuem uma rica documentação localizada no diretório doc. Sugiro que você inicie pelos documentos localizados em doc/latex/general. Existem ainda dezenas de livros, dos quais recomendo em especial o de Donald Knuth (criador do TeX), o de Leslie Lamport (criador do LaTeX) e de Michael Gossen e colaboradores (mantenedores da atual versão do LaTeX). As referências completas você encontra no final deste artigo.

MetaFont, as fontes do TeX

As fontes do TeX são geradas a partir de um programa, também desenvolvido por Knuth, chamado Metafont. Esse programa é acionado automaticamente para criar as fontes necessárias para visualizar ou imprimir seus documentos. Cada família de fontes é gerada a partir de equações matemáticas elaboradíssimas, garantindo que as fontes tenham a melhor resolução possível para sua impressora ou seu monitor. As fontes podem ser geradas sem qualquer limite de resolução. Se daqui a dez anos você tiver uma impressora de 6.000 dpi (dez vezes a resolução típica de uma impressora caseira) você vai poder continuar usando TeX normalmente.

O TeX utiliza arquivos com extensão *.tfm (TeX Font Metric), que conta ao programa o formato básico de cada letra, sempre garantindo que seu texto utilize as fontes da maneira mais otimizada e bonita possível.

A menos que você deseje desenhar novas fontes para o TeX, você não vai interagir com esse programa, mas é importante saber de sua existência e o que ele faz.

Comandos básicos

Todos os comandos são precedidos por um \ (backslash). Depois dele pode vir ou uma seqüência de letras maiúsculas ou minúsculas ou então um único caractere não-letra, tipo & ou $.

Por exemplo, o comando \LaTeX formata o nome do LaTeX de modo especial, o \large (grande) aumenta o tamanho de todo o texto seguinte.

Outros exemplos são o \$ , que gera o símbolo de cifrão, uma vez que o caractere $ tem significado especial para o TeX — indica início e fim do ambiente matemático —, ou o comando \\, que força uma troca de linha.

Após um comando com uma seqüência de letras, o TeX espera encontrar qualquer coisa diferente de uma letra para saber que o comando terminou, por exemplo \small Teste, aqui o TeX sabe que o comando é small (pequeno), pois entre o comando e a palavra seguinte há um espaço.

Se você escrever \smallTeste o TeX vai achar que se trata do comando smallTeste, como esse comando não existe você vai receber uma boa reclamação do TeX. Já para comandos com caracteres como \$ não há preocupação, pois o TeX sabe que virá apenas um único caractere após o \.

A diferença entre os dois tipos de comandos é essencial para que você não tenha problemas nas suas edições. Mas onde vai agir o comando? Essa pergunta é importante, pois o TeX mistura os comandos de formatação com seu texto. Vejamos um exemplo: o comando \underline tem por função sublinhar o caractere ou grupo de caracteres que vem na seqüência.

\underline Teste vai sublinhar apenas o T da palavra Teste. Para sublinhar toda a palavra você precisa colocá-la entre chaves, formando assim um grupo: \underline{Teste}.

Evidentemente, é impossível listar aqui todos os comandos disponíveis, sobretudo porque você mesmo pode gerar novos comandos. Por exemplo:

\newcommand{\FT}{{\bf Fulano de Tal}} 

cria o novo comando \FT, agora toda vez que você digitar \FT no seu texto, o LaTeX formatará Fulano de Tal em negrito (\bf de bold face).

Onde vão esses comandos? Como começar?

Utilize um simples editor como o vi, emacs ou kedit e crie um arquivo com extensão .tex, que tal exemplo.tex? É importante que o editor não insira seus próprios comandos ou caracteres de formatação.

Primeiro você conta ao LaTeX que classe de documento quer criar, digamos que seja um relatório (report), então a primeira linha do exemplo.tex será \documentclass{report}, se seu texto é em português (latin1), é bom dizer ao LaTeX que você vai usar caracteres acentuados e que você quer a separação silábica correspondente (Exemplo 1 acima).

O que estamos fazendo aqui é usar pacotes (packages) com funções bem específicas. O pacote babel tem como função passar palavras predefinidas para a língua que você optou, no caso, o português. Por exemplo, o comando \today (hoje) formata a data de hoje no seu documento. Se você não usar o babel fica assim "April 24, 2001", mas com a opção de língua portuguesa vira "24 de Abril de 2001".

Em versões antigas do LaTeX era necessário usar comandos especiais para acentuação, o que deixava os textos com acentua\c c\~ao com um aspecto horr\’\i vel e dif\’\i cil de ler. Com o pacote inputenc isso se resolveu.

Se estivermos prontos para começar nosso documento, escrevemos \begin{document} e tudo o que vem antes desse comando é chamado de preâmbulo. Iniciamos agora a primeira seção de nosso relatório dizendo \section{Introdução} E em seguida digitamos o texto.

Informamos ao TeX que um parágrafo terminou quando deixamos uma linha em branco separando os parágrafos. De resto o TeX não vai dar a mínima para suas quebras de linha, quer você coloque centenas de palavras numa linha imensa ou uma palavra por linha.

Para começar outra seção recorremos novamente ao comando \section, para subseções usamos \subsection e assim por diante.

Tudo é numerado automaticamente: seções, equações etc. Quando seu documento estiver pronto escreva o comando final \end{document}Processando, vendo e imprimindo o seu texto

Abra um terminal (como o kvt), vá ao diretório onde se localiza seu exemplo.tex e escreva latex exemplo.tex Isso dará início ao processamento do seu texto, o LaTeX terá gerado dois novos arquivos: exemplo.aux com informações auxiliares e exemplo.dvi. Esse último arquivo de extensão .dvi é o produto importante, ele contém todas as informações da formatação independente do dispositivo (DeVice Independent). Para exibir o resultado de sua formatação na tela use o kdvi (ou o antigo xdvi):

kdvi exemplo

A primeira coisa que o kdvi vai fazer é gerar as fontes necessárias para visualizar o seu documento, isso pode levar alguns minutos, mas é feito apenas uma vez para cada família de fontes. Só depois disso é que seu texto aparece na tela. Você pode imprimir o seu texto a partir do kdvi ou ainda gerar um arquivo PostScript com o programa dvips:

dvips -o exemplo.ps exemplo

Inclusão de figuras

A maneira de incluir figuras depende do tipo de arquivos-figuras que você tem. A minha recomendação, já que você está usando Linux, é sempre usar PostScript encapsulado (EPS). Qualquer que seja o formato original das suas figuras, passe-as para EPS (normalmente a extensão é .eps) usando, por exemplo, o Gimp. Fisicamente as figuras são incluídas num estágio posterior à geração do .dvi, por isso você não conseguirá visualizar seu texto na tela junto com as figuras no kdvi. Tudo que o LaTeX vai fazer é reservar espaço no texto para sua figura.

Você deverá recorrer ao dvips e depois usar o PS viewer ou o GhostView (gv). No preâmbulo inclua: \usepackage{epsfig} \psfigdriver{dvips}

O segundo comando revela que tipo de conversor de arquivo dvi você usa.

Para incluir a figura em qualquer lugar do texto (Exemplo 2 abaixo).

Aqui o arquivo se chama teste.eps e você especifica que deve ter 3 cm de altura por 3 cm de largura, clip= apenas assegura que nenhuma porção da figura apareça fora da sua área definida. Se você especificar apenas file=, o TeX pesquisa a própria figura e reserva o espaço a partir de seu tamanho original.

Edição matemática — a grande força do TeX

É no campo da edição de equações matemáticas que o TeX reina absoluto. A você cabe apenas digitar alguns comandos que vão representar suas equações, tal como \int para integrais, \sum para somatórias ou \frac para frações. O TeX cuidará da tipografia calculando a melhor posição e tamanho dos símbolos, usando para isso uma série de algoritmos sofisticados que vão garantir o melhor aspecto para suas fórmulas.

Nada de ficar "catando" pedaços de símbolos e agrupá-los "a olho", sabemos que assim se deformam a qualquer mudança de tamanho de texto. As posições e o tamanho dos símbolos são calculados internamente com precisão de um centésimo de comprimento de onda da luz visível.

Isso é comparável à distância entre um átomo e outro num sólido! Com tanta precisão assim, o TeX garante sua compatibilidade com qualquer impressora existente ou a ser inventada.

Você precisa contar ao TeX a diferença entre seu texto e suas equações. Isso é feito de dois modos. Se sua equação for destacada, inicie com um \begin{equation} e termine por \end{equation}, o que vier no meio vai ser entendido como símbolos matemáticos. Se a equação for no meio do texto então comece e termine por $.

Interfaces para LaTeX

Uma opção para quem quer usar LaTeX, mas não se adapta a apreender os comandos, são as interfaces gráficas como o Klyx que acompanham o KDE. O Klyx faz todas as tarefas de formatação através de menus como os processadores de textos usuais e ainda roda o LaTeX e chama o viewer, ou imprime o texto. É ótimo para iniciantes, mas impede que você realmente aprenda LaTeX. Já para quem conhece bem LaTeX, usar um programa como o Klyx equivale a bordar com luvas de boxe. Equações no StarOffice

O editor de fórmulas do StarOffice possui uma janela de comandos que vai sendo preenchida à medida que você escolhe os símbolos matemáticos. Esses comandos possuem uma surpreendente semelhança com o plain TeX. Por exemplo, o comando \sum^n_{i=1} x_i=\int^\infty_0 xdx\rightarrow \lim_{n\rightarrow\infty}y_k^n pode ser copiado para a janela de comandos do StarOffice, removendo todos os \: sum^n_{i=1} x_i=int^infty_0 xdx rightarrow lim_{n rightarrow infty} y_k^n

Para letras gregas, no entanto, você teve trocar \ por %, como em \alpha que vira %alpha no StarOffice. Os comandos básicos são os do plain TeX e não o do LaTeX. Por exemplo, o comando de gerar frações \frac do LaTeX deve ser trocado pelo \over do plain TeX.

O curioso é que a documentação do StarOffice não traz qualquer menção ao TeX, mas é claro que a semelhança aqui não pode ser mera coincidência.

Embora o StarOffice utilize notação parecida com o TeX, o resultado ainda fica a dever em termos de qualidade, mas é superior à de outros processadores de texto como o MS Word, que não foram projetados para essa finalidade.

E o que mais?

Uma vez tendo seu documento pronto em LaTeX, você pode gerar páginas em HTML ou arquivos em PDF. Índices remissivos e glossários são muito fáceis de gerar com o programa makeindex. Você também pode desenhar com LaTeX, ou gerar partituras musicais, e ainda "coisas estranhas" como diagramas de Feynman.

Se seus textos contêm muitas referências bibliográficas, o programa bibtex será um verdadeiro achado para você, ele pesquisa suas citações no meio do seu texto, faz a busca em uma base bibliográfica e formata a bibliografia em dezenas de formas diferentes. Não dá para descrever tudo neste artigo, mas espero ter dado um "gostinho" da imensa potencialidade que o TeX e LaTeX possuem.

Quem precisa de TeX ou LaTeX?

Todos que não se satisfazem com a formatação pobre de equações como feita pelo MS Word ou StarOffice. Veja um exemplo de equação formatada em LaTex (Figura 1) e outra semelhante feita no StarOffice (Figura 2).

Se você formata textos longos, com muitas citações e bibliografias, como uma tese, por exemplo, o LaTeX pode aliviar muito sua tarefa.

Vejamos alguns exemplos

Ao escrever:

\begin{equation}
\int^\infty_0 xdx
\end{equation}

você estará instruindo o TeX a montar uma integral (\int) cujo limite inferior é zero (_0) e superior é infinito (^\infty) (Figura 3).

Se sua equação for incluída no meio do texto corrente, $\int^\infty_0 xdx$, o TeX se encarrega de fazer os ajustes necessários automaticamente (Figura 4).

Como você já deve ter notado, índices subscritos ou superescritos são obtidos mediante o uso de _ e ^, respectivamente. Se seu índice tiver mais de um caractere ou comando, usamos chaves para agrupá-los como em x^{i-1}.

Isso é uma facilidade fundamental no TeX, já que índices são o que há de mais comum em matemática.

O ajuste do tamanho de símbolos de agrupamento como chaves, colchetes e parênteses é feito com os comandos \left (esquerda) e \right (direita). Por exemplo, o par \left[ \right) produzirá um colchete à esquerda e um parêntese à direita, perfeitamente ajustados com qualquer coisa que esteja no meio deles (Figura 5).

Ao mudar o tamanho do texto, com o comando \tiny (minúsculo), por exemplo, o TeX ajustará tudo de acordo (Figura 6). Note que não dissemos ao TeX que fontes deveria usar para montar nossas equações. Na verdade o TeX assume sempre um modo itálico especial para equações matemáticas chamado math italic, já que o correto é formatar equações em itálico (algo que o Word nunca lhe contou e você não entendia por que suas equações ficavam horrorosas).

Por outro lado funções matemáticas como seno e tangente não são escritas em itálico e possuem um tipo de espaçamento diferente entre as letras. Para distingui-las usamos os comandos \sin (com i mesmo) e \tan. Veja no exemplo a diferença entre usar (esquerda) ou não usar (direita) o comando \sin e \cos (Figura 7).

Uma lista completa de símbolos matemáticos você encontra em doc/latex/general/symbols.dvi

Para saber mais

  • TeXbook, Donald Ervin Knuth, Addison-Wesley Pub Co; ISBN:0-201-13448-9
    Livro recomendado apenas para quem precisa se aprofundar em TeX, ou para quem precisa aprender mais sobre tipografia para computador, ou ainda para quem deseja ler um livro saborosamente bem escrito por um dos papas da informática.
  • LaTeX: A Documentation Preparation System User’s Guide and Reference Manual, Leslie Lamport, Addison-Wesley Pub Co; ISBN: 0-201-52983-1
    Este é o livro básico de LaTeX, bom para iniciantes.
  • The LaTeX Companion, Michel Goossens, Frank Mittelbach, Alexander Samarin, Addison-Wesley Pub Co; ISBN: 0-201-54199-8
    Se você quiser ir além do trivial e já tem um pouco de experiência, este livro é absolutamente obrigatório.
  • The Metafont Book, Donald Ervin Knuth, Addison-Wesley Pub Co; ISBN: 0-201-13444-6
    Para quem precisa se aprofundar em teoria básica de desenho de fontes para tipografia por computador este é um livro altamente recomendado. Segue o mesmo padrão da obra TeXBook e é igualmente bem escrito.
  • sites

    Qualquer programa, macro, documentação etc. de TeX podem ser obtidos de ctan.tug.org

    Site dos usuários (La)TeX do Brasil: biquinho.furg.br/tex-br/ (espelho: minmei.iqm.unicamp.br/tex-br) com muitos links para documentos e tutoriais em português e uma lista de discussão.


    A Revista do Linux é editada pela Conectiva S/A
    Todos os Direitos Reservados.

    Política de Privacidade
    Anuncie na Revista do Linux