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 Users 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.