Como o LATEX Funciona

Com o LATEX temos três passos distintos e bem definidos:

  1. Escrever o formato do texto.
  2. Escrever o texto.
  3. Compilar o texto para obter o arquivo para impressão.

Compilar? Sim compilar, nós programadores, pobres desgraçados, entendemos compilar como um processo através do qual pegamos um texto escrito em uma linguagem de programação qualquer e transformamos este texto em um programa que pode ser entendido por um computador. No caso do LATEX o processo é quase o mesmo. Temos que ter um compilador que vai pegar nosso texto e compilar em um formato que possa ser entendido por uma impressora ou que possa ser visto no monitor. Esse compilador é o próprio LATEX. Desculpe força do hábito, precisamente o TEX. Votaremos a isso em algumas linhas…

Arquivos de texto compilados

A saída, o produto final, aquilo que você vai obter depois de finalizar o seu texto em LATEX é um arquivo que poderá ser impresso, ou visualizado, exatamente como o autor deseja. Aqui cabem algumas considerações sobre dvi, ps e pdf. Eu avisei que ia piorar!

O Postscript começa a brilhar

Imprimir textos, como você já deve ter deduzido a essa altura do campeonato, não é a coisa mais simples do mundo. Existem muitas variáveis envolvidas neste processo e controlar todas elas é trabalhoso, delicado e complicado. Há muito tempo a indústria da informação percebeu a complexidade deste problema. Algumas das maiores mentes, da área de tecnologia, do século passado se debruçaram sobre esse problema e algumas dezenas de soluções pipocaram lá e acolá. Uma das primeiras tentativa bem sucedida foi o postscritp (.ps para os íntimos).

O postscript, atualmente na sua versão 3, é uma linguagem de programação de impressão. Opa! Parou! Linguagem de programação de impressão? Isso mesmo. Em 1976 os Sr. John Warnock, que trabalhava em uma empresa de computação gráfica criou o postscript uma linguagem de programação para descrever páginas impressas. Antes disso ele trabalhou nos Laboratórios PARC da Xerox, com Charles M. ‘Chuck’ Geschke.

john warnock criador do postscript
Figura 1 – John Warnock

Deste laboratório saíram algumas das mais interessantes invenções do nosso tempo. A interface gráfica, a ethernet e a impressora a laser para citar poucas.

A década de 80 foi especialmente fecunda para a publicação digital. Depois de fundar a Adobe e criar o postscript, em 1985 atendendo aos apelos do Sr. Steve Jobs o postscript foi adaptado para uso em impressoras a laser.

Se parece que foi no século passado e já é história é porque foi mesmo. O resto desta história você pode imaginar. Vou dar só uma dica: Adobe.

Deixo uma pequena linha do tempo para os que não passaram por isso e para os que gostariam de relembrar.

  • 1980: A especificação do padrão Ethernet é publicada.
  • 1981: O PC da IBM se cria o real, e popular, computador pessoal.
  • 1982: A Sony lança o primeiro monitor trinitron, A Sun e a Adobe são fundadas.
  • 1983: A Apple lança o Lisa, primeiro computador com interface gráfica.
  • 1984: A Apple lança o Apple Macintosh is launched, Adobe lança o PostScript
  • 1985: A Apple LaserWriter e o Aldus PageMaker iniciam a revolução digital.
  • 1986: Aparece o Ventura Publisher para PCs.
  • 1987: A Quark lança o QuarkXPress 1.0, Adobe Illustrator 1.0 chega as lojas e a Linotype começa a desenvolver tipografia para o PostScript.
  • 1988: A NeXT começa a vender o NeXTcube, A Aldus lança o FreeHand 1.0 e a Adobe lança o PhotoShop.
  • 1989: Finalmente é lançado o CorelDRAW 1.0.

Caixa do primeiro Photoshop

O postscript é, de fato, uma linguagem de programação que define uma página e como ela deve ser impressa. Nada há de simples neste processo. A maior parte das impressoras a laser e algumas das impressoras jato de tinta entendem essa linguagem de programação e são capazes de imprimir a página desejada corretamente. Já as impressoras mais baratas, em geral, não possuem essa funcionalidade. Assim, antes de imprimir em uma destas impressoras a CPU do seu computador tem um trabalho extra. Transformar o que está em postscritp em uma imagem bitmap. A esse processo damos o nome de rasterizar.  Outro? Sim, mas lembre-se que eu avisei.

Rasterizar é o processo de pegar a informação vetorial (um conjunto de equações que definem retas e com elas fazem qualquer desenho) em uma matriz de pontos que representa a imagem (bitmap). Eu ainda prefiro renderizar mas, vá lá, o pessoal da área usa renderizar. Uma vez rasterizado o arquivo postscript pode ser enviado para impressora ou para a tela do monitor.

Viu como é simples? Uma Linguagem de programação define a página que pode ser entendida por umas impressoras e não por outras. Neste caso temos que rasterizar e converter vetorial em bitmap para enviar para as impressoras que não entendem postscript e para a tela do monitor. Simplíssimo. Ainda assim, um sucesso de público e vendas.

Pdf? Para que outro formato?

Ao final da década de 80 o mercado de impressão pessoal, feita com auxílio de computadores, o Desktop Publishing já era um mercado consolidado e promissor. Havia, no entanto, um problema. Impressoras laser, ou com capacidade de rodar o postscript eram caras.  A Adobe já possuía duas tecnologias chaves neste mercado, o postscript e o Adobe Illustrator. Este último um bom exemplo de um aplicativo capaz de rodar em 99% das máquinas disponíveis na época e capaz de abrir arquivos postscript mesmo que eles fossem criados em outra plataforma. Agora Imagine ser capaz de enviar um arquivo por e-mail, visualizar e imprimir localmente sem perda de qualidade, ou formato. Com essa idéia em mente os engenheiros da Adobe criaram um novo formato o PDF (Printable Document Format) que não deixa de ser um postscript melhorado, e um conjunto de aplicativos para criar, modificar e visualizar este formato de arquivo.  O resultado nem precisa de comentários. O pdf é o padrão mundial para troca de documentos, de fato e de direito.

Hoje o pdf é um padrão aberto em 2001, uma versão nova do Acrobat (aplicativo para criação de pdfs da Adobe) recebeu o codinome Brazil e trouxe uma série de modificações ao padrão necessárias para atender a indústria gráfica, a baixo custo, resolvendo definitivamente problemas de uniformidade de cor entre monitor e impressora. Essa virada na direção do formato culminou em 2008 com a abertura do formato, então PDF 1.7 e o reconhecimento e aceitação do formato pela ISSO (ISO 32000-1:2008). Em resumo agora eu posso fazer um aplicativo para criar, ler ou modificar documentos pdf. Você também!

Há uma linha de tempo, gráfica e em inglês, muito interessante no site da própria Adobe sobre a história do pdf, se estiver curioso, souber inglês e quiser mais dados, visite: http://www.adobe.com/pdf/about/history/

Chegamos aos dias de hoje, mas temos que voltar uns 40 anos

Ainda em 1979, já existia a necessidade de um formato de arquivos que fosse independente do dispositivo. Um mesmo formato que pudesse ser usado nas impressoras e nos terminais de vídeo.  David R. Fuchs um dos colaboradores do TEX em seus primeiros dias criou um formato chamado DVI (DeVice Independent, ou independente de dispositivo) para satisfazer essa necessidade de mercado.

O DVI é um formato de arquivo que foi criado sem nunca ter tido o objetivo de ser lido por seres humanos (Wikipedia Contributors, 2009). Desenvolvido em linguagem de máquina o DVI foi criado para permitir a visualização de documentos desenvolvidos em TEX em monitores de computador e sua impressão. O formato não é criptografado, o que quer dizer que podemos, sem muito esforço conseguir o texto original a partir do documento em dvi mas, essa operação não será necessariamente precisa.

O processo de compilação do texto usando a marcação  LATEX não é biunívoco. Caramba! Fiz de novo! Bom, pelo menos desta vez percebi a tempo. Dizemos que alguma coisa é biunívoca quando existe uma forma de relacionar cada elemento de um conjunto a um específico elemento de outro conjunto e vice-versa. No caso do problema, marcação em LATEX em um conjunto e comandos compilados em DVI do outro não há essa relação. Não entendeu? Isso tudo foi para dizer que um comando LATEX pode gerar coisas completamente diferentes DVI.

Assim como acontece com pdf ou o postscript, para vermos os arquivos em DVI vamos precisar de um programa especial. No caso do DVI, este programa é chamado de DVI Driver.

A tríade está completa

O postscript, o pdf e o DVI são os três principais formatos de arquivos compilados que usaremos. Nenhum deles é gerado nativamente pelo LATEX. Pelo menos não oficialmente. Os códigos necessários para gerar o DVI, por antiguidade e parentesco, já estão incluídos em todos os pacotes e distribuições que conheço e pude pesquisar. Os filtros para pdf e postscript também são muito comuns. Filtros?

Outro conceito novo, vivendo e aprendendo. Nos processadores de texto de hoje diríamos que poderíamos exportar em formatos postscript e pdf. Na linguagem LATEX dizemos filtrar. Então os códigos que geram arquivos pdf, postscritp ou DVI são conhecidos como filtros. Na pesquisa para escrever estes textos achei alguns filtros surpreendentes, mas vamos falar sobre eles na hora certa. Agora, o que precisamos ter entendido é que os arquivos compilados são muito mais comuns que imaginávamos. Só não tínhamos nos dado conta disto.

Escrevendo o formato do texto

Eu comecei pela compilação do texto em um formato que poder ser impresso. Muito antes disto teremos que escrever o formato do texto. Será este formato que aplicaremos ao nosso texto, com o nosso conteúdo, escrito com a linguagem de marcação LATEX, Já posso falar assim correto? A essa altura do campeonato já temos clara a idéia do que é linguagem de marcação e eu posso tomar a liberdade de chamar essa nossa pelo nome do formato.

Pronto contei a surpresa antes da hora! Agora Inês é morta.

Se você não se recorda eu chamei o LATEX anteriormente de “um dos idiomas do TEX” pura verdade. È isso mesmo. Mas é também a linguagem na qual escrevemos os formatos dos textos que queremos escrever. Se você quer escrever um livro. Primeiro deve escrever um formato em LATEX para este livro. Se quer escrever um artigo, vale a mesma regra. Essa regra vale para qualquer texto. Antes de compilar seu texto, você precisa ter um formato definido para ele.

A boa notícia é que a maioria destes formatos já existe e está pronto para uso. Tudo que você precisa fazer é aprender a linguagem de marcação e aplicar o formato e os filtros corretos e, como mágica, seu texto sai impresso sem erros e no formato correto. Não fique muito excitado, na verdade não é mágica e dá trabalho mas, funciona. E funciona muito bem.

Escrevendo o seu próprio texto

Por fim, tudo o que falta você fazer é escrever o seu próprio texto. Na verdade, isso é tudo que você fará na maior parte das vezes. Os filtros para compilar estão prontos, os formatos estão prontos, o compilador está pronto então sente e escreva.

Escrever em LATEX é tão simples quanto escrever em qualquer idioma. Você precisa apenas aprender uma sintaxe própria para ordenar suas idéias de forma que as pessoas que vão ler o texto o entendam. No caso específico do LATEX, quem vai entender o texto é o próprio LATEX. È essa peça de código que será responsável por aplicar o formato e transformar o seu texto em algo que possa ser compilado em um formato próprio para a visualização ou impressão.

Uma nova sintaxe pode ser um problema para alguns. Eu, há muito desisti de me tornar mestre em português, por exemplo. Falo muito bem em C, C++, PHP, entre outros mas, tenho cá meus problemas com a língua de Machado de Assis. Me sinto mais seguro escrevendo em linguagens de programação por que conheço as regras mais profundamente. Com o LÁTEX, vai se passar o mesmo. As regras de sintaxe são simples, lógicas e diretas. Com muito pouco esforço você entende o princípio e com algumas horas de digitação vai aprender onde fica a contrabarra no teclado e os problemas acabarão. Um exemplo a seguir:

O texto:

\begin{equation} y_{i+1} = x_{i}^{2n} – \sqrt{5}x_{i-1}^{n} + \sqrt{x_{i-2}^7} -1 \end{equation}

Gera a equação:

equação exemplo em latex

Equação 1 – Exemplo de resultado em látex

Peguei este exemplo na internet há alguns dias, rodei, compilei gerei um pdf, fiz um printscreen e colei aqui. Por isso a qualidade está ruim. Na hora certa vamos simplificar esse processo.

Observe, no exemplo o texto digitado. Começa com uma contrabarra (\) já achou no teclado? Você vai precisar muito dela. Todos so comandos LATEX começam com uma contrabarra e são seguidos de uma palavra chave. Essa é a tal da sintaxe. Alguns comandos podem requerer argumentos. Os argumentos são as opções que passamos para o comando. Por exemplo para começar um documento usamos: \documentclass[12pt]{article}

Veremos todos esses comandos, um a um. Antes temos que ter um local para trabalho. Um ambiente de trabalho dentro do seu computador, com os programas, editores, compiladores e visualizadores que você precisa para trabalhar.

Em um processador de texto WYSIWYG, como o Word ou Write, o processo de edição e impressão de textos é formado de apenas dois passos:

  1. Escrever, já formatando o texto
  2. Imprimir.

O resultado na tela do computador, o que você vê enquanto está digitando, é muito próximo do resultado que você obterá quando imprimir o documento. Os comandos que definem o formato do texto, dos tipos, dos parágrafos e mesmo das margens são invisíveis para o usuário final. Além disso, o engine que monta o texto na tela já se preocupa em apresentar o texto metaforicamente igual ao produto impresso. O processador de textos também se encarrega de converter o seu texto e os comandos de formatação em alguma coisa que a impressora entenda permitindo a impressão. Simples, belo e você precisa enxergar para fazer isso.

Sun OpenOffice.org Team
photo credit: jcorrius

Desculpe, eu me entusiasmei e saí escrevendo sem prestar a atenção. Pessoas da área de tecnologia da informação, sofredores que são, têm o péssimo hábito de usar palavras em inglês. Não sou diferente, tento me policiar mas, às vezes escapa. Usamos engine (motor em português) para indicar o programa, ou parte dele, que faz alguma coisa funcionar. A parte principal do Firefox, por exemplo, é o engine. Neste caso, o engine é responsável por montar a página na tela.

Aqui temos que fazer um novo parêntese: Até pouco tempo o formato proprietário da Microsoft para textos, o DOC era composto de comandos crípticos comprimidos em um formato proprietário que tornava praticamente impossível para uma pessoa comum, ler os códigos de formatação. Pessoas comuns que me desculpem, os nerds, leram o formato Word e até fizeram alguns aplicativos capazes de ler e gravar nesse formato.

Com o passar do tempo, evolução da Internet e criação de formatos abertos como o ODF, baseados em XML (outra linguagem de marcação) a Microsoft acabou por optar por um formato legível, por seres humanos, para ser usado nos processadores de texto para os comandos de formatação de texto. Este formato é conhecido como OpenXML. Arquivos criados nesse formato pelo Microsoft Word ou criados em ODF pelo OpenOffice Write podem ser lidos por seres humanos, entendidos e modificados sem a necessidade dos processadores de texto. Isso mesmo, você não está maluco.

Vou escrever de novo. Com o passar do tempo os processadores de texto passaram a usar uma linguagem de marcação para definir o formato do texto. Contudo, se você quiser imprimir estes artigos ainda precisará de um processador de textos capaz de abrir, entender e principalmente renderizar – lembra do renderizar? Uma espécie de sinônimo de montar – o texto em um formato metaforicamente igual ao que será impresso e converter esse formato em algo que as impressoras entendam. Simples?

Não se preocupe, ainda vai piorar muito antes de melhorar.

Ficaremos com LATEX2Є, a última versão mantida pelo HTTP:/www.latex-project.org. Escolha pessoal baseada apenas no tamanho da turba. Explico: Existem mais textos e pessoas trabalhando com o LATEX2Є que com qualquer um dos outros idiomas do TEX. Isso somado a minha experiência com software livre e de código aberto me dá a sensação que o futuro da preparação de textos técnicos esteja com esse idioma do TEX. Eu sei, só quem ganha dinheiro com sensação é a Nestlé e as moças de vida nada fácil. Ainda assim, mesmo que eu esteja errado e que, em algum momento do futuro, outro idioma qualquer se destaque na massa os conceitos que você vai aprender aqui, provavelmente continuarão válidos e úteis. Dito isso, doravante vou usar LA TEX para me referir ao LA TEX2Є.

Knuth is My Homeboy!
Creative Commons License photo credit: lumachrome

Estou usando a palavra idioma de forma completamente livre e descompromissada para me referir a uma das versões desta linguagem de marcação criada pelo Sr. Knuth. Se você se sentir mais confortável pode usar versão, sabor, derivado, conjunto ou qualquer outro termo que lhe venha à mente.

O LATEX é muito mais “linguagem de marcação” que o velho formato plain, desenvolvido pelo Sr. Knut, Este formato, ou idioma, foi desenvolvido tendo em vista a formatação de documentos complexos, do ponto de vista do autor e para facilitar a vida deste. O LATEX fornece uma série de comandos que permitem o uso de cabeçalhos, citações, tabelas e figuras flutuantes, numeração de equações e figuras e muitos outros recursos modernos de diagramação sem que o autor tome conhecimento do que é necessário fazer para aplicar estes estilos. Pronto, usei uma nomenclatura de editor WYSIWYG. Não fique aborrecido comigo, foi só para facilitar o entendimento.

O LATEXtambém permite o uso de classes extras com funcionalidades interessantes que não estão incluídas no pacote original. Essas classes agregam praticamente tudo o que você imaginar em termos de formatação, exportação ou manipulação de documentos.

O LATEX entra na história

Ninguém é perfeito. Além de não entender hexa a absoluta maioria da população mundial detesta trabalho. Trabalho extra então… nem pensar! Percebendo que boas intenções não bastam e que digitar algumas centenas de caracteres desnecessários no texto principal só para obter o efeito desejado no documento impresso não seria, nem uma boa estratégia de marketing, nem um forte argumento a favor do uso do TEX, o Sr. Knuth dotou-o da capacidade de usar macros.

Macros são conjuntos de caracteres armazenados que podem ser chamados com poucos toques no teclado. Esses conjuntos de caracteres – já posso chamar de macros? – Facilitam a digitação e a preparação dos textos. Documentos compostos de um conjunto destas macros com um objetivo específico é chamado de formato.

O próprio Sr. Knuth criou um formato, o plain, que foi muito popular durante algum tempo e ainda hoje tem muitos seguidores (deveria ter dito fervorosos torcedores em uma referência aos hooligans). Com macros ou sem macros, com fanáticos ou sem fanáticos, o TEX é excessivamente complexo e, eventualmente, prolixo.

Em 1985 entra em cena Leslie Lamport  (Lamport, 2009), enquanto planejava um novo livro acabou criando um novo formato para o TEX com um conjunto de macros que acrescentava diversas funcionalidades ao sistema e tornava a preparação do texto mais simples e direta. O Sr. Lamport usou o engine e sistema de macros do TEX para criar uma descrição declarativa de um documento baseado na linguagem de marcação Scribe, desenvolvida 1982 por Brian Reid (Mittelbach & Goossens, 2004).

Em 1986 esse trabalho foi publicado no livro LATEX: A Document Preparation System e, mais tarde deu origem a um projeto web chamado HTTP://www.Latex-project.org onde colaboradores do mundo inteiro ajudam a manter as macros e a expandir a linguagem mantendo-a moderna e eficiente.

O Scribe foi muito importante para o desenvolvimento da tecnologia de processamento de texto por ser a primeira vez que alguém criou uma linguagem de marcação que separava a estrutura do texto de seu formato. Algo que ainda hoje perseguimos avidamente vide HTML e CSS. Há aqui uma interessante relação histórica entre Brian Reid (Reid) e o movimento do software livre ainda em sua fase embrionária. Na primeira versão comercial de um editor de textos baseado no Scribe, o Sr. Reid concordou em colocar algumas funções de tempo que desativariam as versões gratuitas do Scribe o que criou uma celeuma com Richard Stallman.

A idéia central do Scribe e do LATEX é que o autor deve se preocupar apenas com o conteúdo e com a estrutura lógica do seu texto e não com detalhes de formatação e aparência. Este foi o ponto chave para a aceitação do LATEX

Uma vez publicado o LATEX se tornou um dos idiomas mais utilizados do TEX. Com o advento do software livre e de código aberto, do Linux e da internet o LATEX foi expandido, e é hoje uma das melhores, se não a melhor opção para preparação de textos científicos. A versão atual do LATEX é a LATEX2Є a qual será alvo deste texto.  Mesmo com a larga vantagem comercial que os processadores WYSIWYG possuem por atender a grande maioria dos usuários e sendo adepto dessa tecnologia gráfica resolvi escrever este texto e voltar ao LATEX. Por quê?

Marys Venus Heart
photo credit: h.koppdelaney

A grande maioria dos usuários não basta

Não uso látex há muito tempo. Comecei este texto assim e não disse por que resolvi voltar a usar. A razão é simples: a grande maioria dos usuários não basta.

Os editores WYSIWYG possuem um problema intrínseco e irremediável que torna o LATEX a melhor opção para uma parcela significativa da nossa sociedade. Não! Não estou falando dos cientistas malucos até por que o percentual destes não é tão alto. O problema a que me refiro é o S de WYSIWYG.

Este S representa o See (ver). Os editores WYSIWYG foram projetados e otimizados para pessoas capazes de enxergar, os videntes, e temos uma parte significativa da nossa população que simplesmente não vê, os não videntes. Para estes, além dos cientistas malucos, o LATEX é a melhor solução.

Coisa difícil mas, vamos ser honestos. Tirante os deficientes visuais e a cambada das Exatas, ninguém precisa do LATEX. Ou será que essa frase ficou excessivamente petulante? Esta é a pergunta de 10 capítulos e você terá que ler todos eles… J

Continua…

Introdução

Não escrevo nada usando LATEX há muitos anos. Se não me falha a memória, a última vez foi nos idos de 1993. Um artigo que não cheguei a publicar e cujo original em formato eletrônico há muito se perdeu entre os diversos hd’s  que troquei desde então. Com o passar do tempo, como a grande maioria dos usuários de computadores, adotei os processadores de texto gráficos. Primeiro porque escrever fórmulas matemáticas não faz parte do meu dia-a-dia, segundo porque o conjunto todo ficou muito mais simples e agradável.

Apesar do tempo, o LATEX não morreu, está vivo e vibrante na comunidade científica. Descobri recentemente que do grupo de amigos que usava LATEX , eu e somente eu havia abandonado o barco. Não me arrependo. Os textos que escrevo são ricos em imagens e não em fórmulas e, apesar de digitar bem e rápido, sou adepto fervoroso das interfaces gráficas.  Ainda mais recentemente me dei conta que para uma grande parte da população, o LATEX ainda pode ser a melhor opção como ferramenta de edição e preparação de textos. Deixe-me voltar um pouco. Na verdade, deixe-me voltar muito.

latex - uma introdução

Um vislumbre do futuro

Em Maio de 1977, Donald Knuth, um dos magos históricos da computação, professor Emérito da Universidade de Stanford e autor da série The art of Computer Programming (Knuth, 2009), se debruçou sobre um problema interessante: O processamento eletrônico de textos. Era uma época diferente, muito mais simples. O mundo da computação era formado de gigantescos main-frames, caros, lentos e ineficientes se comparados com as máquinas que temos hoje em nossas mesas.

Em Fevereiro de 1977 o Sr. Knuth ficou maravilhado com o resultado da impressão de uma máquina de tipografia de alta resolução (Syropoulos, Tsolomitis, & Sofroniou, 2002). Naquele momento ele percebeu que muito em breve a impressão dependeria única e exclusivamente de bits e bytes. Mais tarde, no mesmo ano, enquanto lutava com a formatação de The art of Computer Programming ele resolveu se dedicar ao tema da tipografia eletrônica e ao processamento eletrônico de textos.

Hoje em dia, não é nenhum bicho de sete cabeças. Fazemos isso todos os dias, eventualmente várias vezes por dia. Escrever um texto e imprimir para distribuição. Mesmo simples e óbvio para a maioria de nós, esse problema pode ser resumido, a título de entendimento e didatismo em quatro passos  (Kopka & Daly, 1999):

  1. A digitação do texto em um computador para armazenamento e edição (correções, acréscimos e modificações).
  2. Formatação do texto em linhas de mesmo comprimento em páginas de um determinado tamanho.
  3. A visualização do texto em um monitor de computador.
  4. A impressão através de uma impressora eletrônica.

Alguns meses de trabalho depois e o Sr. Knuth apresentou o TEX (tau épsilon chi – pronuncia-se TEK) ao mundo.  “Um sistema de tipografia eletrônico cujo objetivo é produzir livros lindos… Usando TEX você será capaz de dizer ao computador exatamente como seu texto será impresso com qualidade comparável as melhores impressoras do mundo” (Knuth D. E., 1991). O Sr. Knuth também liberou to código fonte do TEX eras antes de qualquer pessoa falar em software livre ou código aberto. A licença garante que você pode fazer o que quiser com o código. A única restrição é que você só poderá chamar o resultado do seu trabalho de TEX se ele passar por uma série de testes que o Sr. Knuth também forneceu gratuitamente. O resultado disso é que não importa o sistema operacional que você use, provavelmente existe uma versão do TEX para você.

Com o TEX o Sr. Knuth criou uma versão, talvez a primeira, do que chamamos hoje de linguagem de marcação (markup language) específica para criar livros e documentos tendo em vista, qualidade de impressão, facilidade de edição e digitação.

Uma linguagem de marcação é uma espécie de idioma especial onde incluímos comandos de controle, usando caracteres específicos para separar esses comandos do texto principal. Estes comandos poderão ser interpretados por um programa específico agregando ao texto principal qualidades extras. Tais como detalhes de espaçamento, tipografia e alinhamento. Um bom exemplo de linguagem de marcação é o HTML que é utilizado para a criação de páginas web. O HTML não é nada mais que uma série de comandos de texto simples, limitados pelos sinais de < e >, que determinam como o navegador irá montar (dizemos renderizar) a página web.

Alguns autores se referem ao TEX como uma verdadeira linguagem de programação para a preparação de textos para impressão (Syropoulos, Tsolomitis, & Sofroniou, 2002). Na simplificação do problema do processamento eletrônico de textos o TEX se preocupa apenas com o segundo item, a preparação do texto para impressão e neste quesito ele é imbatível.

Voltaremos à história em alguns momentos. Deixe-me pegar essa história de criar livros e documentos, sem perder de vista a qualidade da impressão, facilidade de edição e tempo de digitação e abrir um parêntese.

Editores de texto WYSIWYG

Não sei se você estava neste planeta mas, de 1977 para cá, algumas coisas mudaram. Os computadores saíram das grandes salas refrigeradas operados por doutores em matemática e foram parar nos bolsos de estudantes, cheios de espinhas e pouco juízo, espalhados por todo o mundo. Programas processadores de texto como o Word da Microsoft, o Write do OpenOffice, para citar apenas dois, são corriqueiros e de operação simples além de permitirem uma grande flexibilidade em criação, edição e formatação de textos. Certo?

Mais ou menos.  A grande verdade é que os editores de texto ditos WYSIWYG (What You See Is What You Get, Aquilo que você vê é aquilo que você obtém) deveriam ser chamado de: Aquilo que você vê é aproximadamente aquilo que você obtém. Sem entrar no mérito da qualidade dos tipos (fontes) que melhorou muito recentemente mas, ainda está longe da perfeição ou dos problemas de posicionamento de imagens que ainda requer doutorado. Vou ressaltar só um problema: Lentidão! Estes editores são muito lentos.

Não me leve a mal, eu conheço muito bem os processadores de texto WYSiWYG. Se compararmos o processo de edição de textos de hoje, com o processo que tínhamos há, digamos, 35 anos, veremos sem sombra de dúvida, que evoluímos de forma inequívoca e assustadora. Da concepção à impressão um texto leva poucas horas, um folder pode ser impresso e distribuído em alguns minutos. Um cartaz rebuscado, colorido e cheio de arte em fica pronto em um dia ou dois. Essa aparente velocidade e facilidade mudou o mundo mas, teve um preço. Estrutura lógica e tempo.

Para o usuário mediano, a atualização constante da tela com tipos e proporções minimamente corretas, gráficos e equações arranjados em tempo real é uma benção. Para o autor de textos técnicos, matemáticos e livros é uma distração desnecessária (Cottrell, 2009). Assim, produzir esse material nos dias de hoje acaba sendo mais lento que na era pós TEX e pré WYSIWYG. Experimente escrever uma dedução de fórmula no Write (ou no Word), trata-se de um trabalho extenuante e frustrante. A coisa simplesmente é muito bonitinha mas não anda. Você coloca uma fórmula e outra sai do lugar, leva dez minutos procurando a letra grega certa e acaba colocando uma parecida. Muda a letra grega e La se vai a formatação. Esta é a principal razão para o LATEX ser tão popular entre os acadêmicos de ciências exatas, precisão e facilidade exatamente no tipo de texto que eles usam com maior freqüência. Ouso dizer que nerd que é nerd só escreve em LATEX e se fosse macho além de nerd só escreveria em hexa. Como ninguém é perfeito, entraram em cena as macros.

Continua….