Latex – Agora vamos ver como o treco funciona…

Standard

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.

2 thoughts on “Latex – Agora vamos ver como o treco funciona…

  1. Mateus

    Aguardando ansiosamente a continuição dos artigos sobre Latex! 🙂
    Estão muito bons, divertidos e didáticos ao mesmo tempo!

  2. Oi Mateus, muito obrigado. Não se preocupe, você não perde por esperar…:) volto a carga essa semana… com os artigos sobre a instalação dos ambientes para trabalho…

Comments are closed.