Em um mundo eternamente provisório, efêmeras letras elétricas nas telas de dispositivos eletrônicos.
20
Fev 11
publicado por José Geraldo, às 00:01link do post | comentar

Adormeci na frente do computador, sem terminar a monografia. Com o prazo quase esgotado, passara mais de quatro horas digitando como louco a partir de notas desconexas que reunira nos meses de pesquisa, mas em vão. Tanto esforço que minha mente começou a sair de controle e acabei caindo de cara no teclado no meio da madrugada, apesar de todo o café.

Não sei quanto tempo fiquei apagado. Podem ter sido segundos ou horas, porque não estava prestando atenção ao relógio quando dormi. Sei que quando tomei um susto e joguei a cabeça para trás em um gesto brusco, eram 04:12 e fora disparado o maldito alarme de um automóvel que dormia na rua.

Levantei grogue de sono, com a cabeça pesando meia tonelada, e fui tomar um banho antes de ir dormir. O calor não estava mais insuportável, mas eu tinha suado demais. Tomei um banho rápido e frio, dos que gosto quando vou me deitar. Quando voltei do banheiro, pelado e me enxugando na toalha felpuda que cheirava a mofo e a álcool, tomei um susto, que espantou todo sono que ainda pudesse ter.

Tinha deixado o computador ligado. Saíra tão depressa para o banho que não o desligara. O documento da monografia estava aberto no editor de textos e o cursor piscava na tela de fósforo verde. Então notei que o ponto de luz não estava parado à espera do toque seguinte: movia-se rápido pela tela, deixando atrás um rastro de letras e números, mesclados a códigos de formatação LATEX.

Minha primeira reação teria sido — ou deveria ter sido — entrar desastradamente na frente do aparelho e ver que raio era aquilo, mas eu costumava ser um sujeito frio, não o tipo que se apavora e surta. Fiquei parado onde estava, ainda sob o batente da porta, olhando de soslaio para o monitor. Acredito que o computador não me “viu”, pois continuou cuspindo código como se os Digitadores do Inferno estivessem ali. Permaneci observando a cena, tentando decifrar mentalmente a sucessão de códigos que aparecia. Olhei a tomada, na esperança de ver o modem conectado à linha telefônica, mas não. Teria sido fácil admitir como explicação que alguém havia tomado o controle de meu computador doméstico e estava fodendo com a minha pobre monografia, mas não poderia haver acesso remoto se não havia conexão. Ou poderia?

O computador não chegou a notar minha presença. Quando finalmente parou, havia sido digitado \fi e uma sequencia de linhas em branco, como eu tinha por hábito fazer ao terminar os capítulos. Eu não teria notado mudança no código do documento se não tivesse tomado o banho rápido demais.

Sentei-me fingindo que estava tudo bem, dei Control-End e digitei algumas ideias aleatórias do capítulo seguinte. Depois salvei o arquivo no disco rígido, sempre fazendo a cópia de backup no disquete e desliguei aquela máquina do diabo.

Não consegui dormir. Tinha a curiosidade de saber que raio de conteúdo teria sido inserido em meu texto, sabe lá por quem ou que. Poderia ter compilado e impresso o documento, mas teria demorado muitos minutos se houvesse uma matriz XY. Também o computador poderia desconfiar. Preferi deixar para o dia seguinte e tentar pensar melhor.

Quando amanheceu, desisti de tentar dormir e levei o disquete comigo à universidade. Sentei-me diante de um terminal público na biblioteca e abri o arquivo para analisar, como legítimo “escovador de bits”, embora soubesse pouca programação. Logo achei indícios da patranha.

Ao final do terceiro capítulo, havia um \iffalse\iffalse\fi e pouco antes de onde começaria o capítulo seguinte, um \iffalse\fi\fi. Estas enganosas sequências de códigos realizavam algo diferente do que prometiam ao olhar distraído. Tanto o início quanto o fim do código oculto estavam, na verdade, ocultando os comandos de início e fim dos comandos de ocultação, se é que você consegue entender. Talvez esta história maluca só faça sentido para quem manja um pouco de LATEX. Mas digamos que tudo após \iffalse é ignorado, até chegar um \fi. Quem tiver algum talento lógico perceberá a malícia.

O bloco de código não era legível. Era uma sucessão de comandos descrevendo curvas, gráficos, matrizes. Talvez alguém realmente louco de usar LATEX conseguisse o milagre de visualizar a plotagem daquelas fórmulas, mas para mim era como contemplar uma sopa de letrinhas verdes no quadro negro do monitor. Queria logo compilar e descobrir no que dava.

Para isso teria, porém, que ter permissão da bibliotecária, porque os terminais tinham capacidade limitada e a fila de uso era grande. Ela não se opôs, diante da pequena quantidade de alunos que estava na faculdade naquele dia anterior a um feriado prolongado. Dirigi-me ao terminal, então, e ordenei:

latex mono.tex

Naquele tempo os computadores podiam levar horas a compilar documentos complexos, como parecia ser o meu. Por isso logo me cansei de ver a dança interminável das letras elétricas que brilhavam verdes como a fosforescência de uma aparição. Fossem quais fossem os erros, não teria mesmo chance de consertar porque não sabia o que continha o misterioso código. Ainda fiquei uns minutos refletindo sobre mensagens de overfull hbox, lamentando a quebra da margem direita, ou underfull vbox, lamentando os parágrafos separados demais; mas logo me levantei e fui até à cantina tomar um café.

Não contei os minutos na cantina. Ninguém faz isso, a não ser os que já estão loucos e eu não estava. Voltei com um copo cheio de café preto, para espantar o sono que ficara da noite sem dormir, e biscoitos salgados que controlariam a fome enquanto não pudesse ter uma alimentação saudável na lanchonete mais próxima.

Quando retornei ao saguão da biblioteca, notei uma movimentação estranha em frente ao computador que deixara compilando. Havia uns três ou quatro caras do último período de Sistemas que contemplavam a dança das letras parecendo fascinados.

— Caralho, o que é isso que esse louco fez? Vai fritar os circuitos do terminal antes de compilar! — dizia um deles, risonho e preocupado. Aproximei-me quieto, tentando captar a conversa, mas falavam pouco e olhavam muito.

— A Alana precisa ver isso — finalmente disse um, dirigindo-se à porta em frente, com rapidez de elfo. Pigarreei para anunciar minha presença e os outros olharam com respeito inesperado. Os caras de Sistemas não têm o hábito de olhar com essa expressão quem não é de sua própria estirpe.

— Isto aqui é seu? — perguntou um deles, um grandalhão de cabelos ressecados e de cor de cenoura.

— É sim, por que?

— Como pode alguém de Matemática ser besta de programar um loop num documento LATEX?

— Um loop? Merda!

— Eu não sei de nada, a gente estava passando, viu o computador compilando sozinho e resolvemos olhar o código, para tentar adivinhar o que é. Foi aí que notamos que o código está em loop. O que você estava querendo fazer?

Meus olhos percorreram o cabeamento da sala, notando para meu imenso espanto que aquele terminal, sim, estava conectado.

— Contaram quantos loops ele deu? — perguntei, já me sentando.

— Uns dez ou doze nesse meio tempo em que estamos aqui.

— Dez ou doze, hem? Que diabo será isso?

— Você não sabe?

Eu tinha vergonha de confessar, mas preferi ser honesto, afinal eu precisava de ajuda para não ter que, humilhantemente, apertar o botão de reset, como um novato. Eu jamais seria encarado com respeito, sequer pelas namoradas dos caras de Sistemas, aquelas garotas de peitos grandes que cursam “Estudos Sociais” e só passam de ano porque são líderes de torcida.

— Não sei. Achei um documento cheio de códigos os mais estranhos e resolvi compilar para ver o que era.

— Caralho, você é maluco? Sabe-se lá se não é um código malicioso!

— Bem, eu não sei se é nocivo, mas malicioso isso tenho certeza que é.

Eles me olharam, sem entender.

— Alguém entende de LATEX?

O outro cara, que tinha ficado quieto esse tempo todo olhando a dança das letras elétricas, acenou com a cabeça e fez o característico “ahã” dos que estão dizendo que sim.

— Devemos deixar compilar ou tentar interromper?

LATEX não vai fritar os circuitos, a menos que comece a ficar recursivo. É exatamente isso que eu estou tentando entender, se é um loop recursivo ou se é apenas circular. Se for recursivo, você vai ter que desligar no botão de reinício porque vai travar os sistemas de entrada e saída.

Ele tomava notas no seu bloco, em um tipo de taquigrafia pessoal que parecia árabe. Demorou quatro minutos ate ele finalmente decretar:

— Parece que não é recursivo. Deve haver uma condicional em algum lugar que está fazendo o TEX dar várias passagens no mesmo código. Mas essa condicional pode resultar verdadeira em algum momento, então o loop acaba e o arquivo imprimível é gerado.

Alana chegou. Era a única mulher do último ano de Sistemas, era obcecada com criptografia e lia todo tipo de teoria de conspiração. Não era bonita e nem simpática, mas os caras da turma queriam tê-la por perto, fosse como bicho de estimação ou fonte permanente de análise matemática apurada. Era um legítimo “crânio”, capaz de efetuar cálculos mentalmente com facilidade humilhante. Acima de tudo, tinha a capacidade algo sobrenatural de visualizar gráficos a partir de suas fórmulas. Mais que isso, contribuía sob pseudônimo para vários projetos de programação de várias faculdades, inclusive a nossa. Alana não assinava seu nome em documento algum.

No momento em que ainda estava sendo informada do acontecido, dois pares de peitos loiros surgiram à porta chamando os rapazes de forma que nem Alana e nem eu soubéssemos. Não sei se ela soube, mas tenho a visão periférica muito desenvolvida. Os dois caras se despediram e saíram dizendo que tinham que estudar para uma prova e foram levar as duas a alguma festinha. Alana e eu ficamos olhando a tela onde dançavam infernalmente as letras.

— Você já sabe o que é isso, Alana?

— Ainda não.

— Eu imaginei que…

— Não sou uma máquina, Tony — ela me interrompeu.

Tive vergonha do modo como a tratava. Naquele dia, em que justamente o seu lado maquinal estava sendo usado, ela me jogava na cara que era um ser humano. De certa forma, mesmo eu não a achando bonita, naquele dia eu me sentia ligeiramente atraído. Talvez fosse por notar que as suas orelhas tinham um formato curiosamente harmonioso, suas mãos minúsculas pareciam esculpidas. Era só não olhar para seus dentes que teimavam em querer sair dos lábios ou os óculos pesados, que ela parecia ter roubado de sua avó.

Subitamente as letras mudaram de feição. A dança infernal parou e o monitor começou a cuspir uma série de linhas com nomes de arquivo. Era o fecho da compilação. O loop fora interrompido ao encontrar valor positivo. O prompt de comando apareceu então, desafiando enigmaticamente nossa curiosidade. O cursor piscava como se estivesse rindo de mim. Alana foi rápida. Curvou-se sobre o teclado e recuou a sequência de comandos até identificar o arquivo que eu compilara. Então digitou:

more mono.tex

O terminal começou a listar o código, página a página, enquanto ela, ainda curvada, parecia ignorar que eu, olhando por dentro do decote folgado do vestido, contemplava seus dois belos seios, que pareciam as divinas mamas da Vênus de Milo e exalavam um perfume madeirado delicioso. Ela não se interessou nem minimamente pelo meu trabalho, mas quando chegou ao famigerado bloco de código, arregalou os olhos como se tivesse achado um pote de ouro e usou o braço esquerdo para se apoiar no encosto da cadeira, tocando com ele minha nuca, que arrepiou como se estivesse ligado a uma tomada elétrica. Comecei a suar, talvez de sono ou embriaguez do perfume diabólico e da visão daqueles seios miúdos, que pareciam duros como pedras e me imploravam para que os pegasse nas mãos e apertasse gentilmente como botões para abrir uma passagem secreta ao paraíso. Mas quando tentei dizer alguma coisa, acabei dizendo:

— Não prefere se sentar?

Ela ergueu-se, acusando alguma dor nas costas devido à posição, e arrastou uma cadeira. Sentou-se tão perto que todo seu lado esquerdo encostou no meu corpo. Um daqueles seios pontudos cutucava minha axila e minha mente rodopiava sem controle. Queria perder os sentidos rapidamente, antes que ficasse louco e tentasse algo inadequado. Mas não aconteceu nada, porque Alana era rápida com os dedos e com a mente: não demorou a terminar de listar o código. Levantou-se e andou em círculos batendo os saltos pesados dos tamancos nos tacos coloridos do chão da biblioteca enquanto gesticulava e balbuciava multiplicações.

— Acho melhor você não entregar a monografia — disse, por fim.

— Preciso entregar, ou não consigo créditos para passar em trigonometria.

— Tenho um mau pressentimento sobre isso. De onde disse mesmo que saiu esse documento?

Eu não tinha dito nada, mas ela me olhava com a expressão aguda, como se soubesse até as vezes que tinha me masturbado no semestre anterior. Alana intimidava, parecia saber de tudo. Mas não me importava, naquele momento, eu sabia que nenhuma outra mulher do universo teria graça para mim.

— Não sei, nesse exato momento só consigo me lembrar que dormi mal essa noite e preciso sair com você na sexta-feira.

Esta frase a desarmou. Talvez fosse a última coisa que imaginava de mim.

— Sair… comigo? Na sexta-feira?

— No sábado, se preferir.

— Mas por que isso logo agora?

— É a primeira vez que consigo conversar com você a sós.

— Eu… preciso pensar.

— Posso ligar?

Ela deu o número de seu telefone e saiu apressada da biblioteca, me deixando sozinho com minha obra. Então, aproveitando que o lugar estava vazio, comecei a imprimir o dvi, sem testemunhas.

A impressora matricial deu alguns arrotos e rosnados, antes de finalmente acertar a margem do papel. Então o cabeçote começou a dançar, rabiscando linhas interrompidas que formavam o desenho de letras e gráficos.

Uma página, duas, três, vinte, quarenta, noventa e cinco. Quando a impressão terminou, dobrei com cuidado toda aquela tripa de formulário contínuo e guardei com carinho na maleta e voltei ao meu apartamento no campus.

A primeira coisa que fiz, porém, foi ligar. Sentia-me idiota por estar apaixonado, mas nenhum idiota era tão feliz, e não importava nada mais se ela apenas dissesse que sairia comigo. E ela disse. Mas depois disso, enfatizou:

— Você não deve entregar a monografia.

— Tem alguma ideia do que é aquele código?

— Sim. Os comandos lá codificam instruções vetoriais em PostScript. Alguém inseriu no seu texto um código que “desenha” coisas em uma ou mais páginas.

— “Coisas”, que coisas?

— Não sei. Podem ser gráficos, desenhos, uma fonte, um texto até…

Assim que desliguei o telefone, tratei de cortar e encadernar as noventa e cinco páginas, com todo cuidado para que nenhuma rasgasse. Fixei-as num fichário e comecei a folhear, tentando ver onde haviam sido feitas mudanças. Ao fim do terceiro capítulo começava a coisa. Saltava uma página, no meio da qual haviam posto algo que parecia uma ofensa direta contra mim:

«Esta página foi intencionalmente deixada em branco.

«E as anteriores deveriam ter sido mantidas assim também.»

A página seguinte era outra capa, com meu nome, identificação da faculdade, o mesmo título, um subtítulo ligeiramente diferente e um reinício do documento, inclusive numeração, sumário, tudo. Se o tema ainda era «Método de plotagem trigonométrica de órbitas para satélites geoestacionários», o conteúdo quase não tinha a ver. Meu texto ainda estava em grande parte lá, mas entremeado de uma montanha de citações de autores de que nunca ouvira falar e fórmulas de cálculo avançado que eu nem sabia o que eram. Algumas me pareciam referenciar coisas avançadíssimas de física quântica. Várias citações eram em alemão (Schrödinger, Planck, Heidegger, Cantor, Kant), outras em francês (Lamaître, Galois). Autores clássicos eram citados ao lado de outros que talvez fossem novos e pouco conhecidos. Vários trechos não tinham citação, mas fórmulas acompanhadas de ousadas afirmações à banca, do tipo “como se pode provar pelo cálculo a seguir”.

Li todo o trabalho e fiquei embasbacado por não conseguir entender nem metade do que ali estava, muito embora meu estilo de redação estivesse em cada parágrafo. Do pouco que entendi, cheguei à conclusão de que propunha um método através do qual satélites poderiam ser içados a uma órbita, em vez de lançados até ela por um foguete. Os cálculos provariam que a energia necessária a tal sistema seria dezenas de vezes menor, reduzindo o custo do lançamento de satélites a uma fração do então possível, algo revolucionário demais. Eu tinha de entregar a monografia, apesar do alerta de Alana. E o fiz.

Na sexta-feira pela manhã fui buscá-la em seu apartamento. Estava vestida do modo sóbrio de sempre. Trazia apenas bagagem de mão e hesitou em entrar no meu carro. Seus seios pareciam invisíveis naquele vestido. A maioria dos caras da faculdade a chamavam «tábua de carne» por isso. Era difícil crer que uma mulher aparentemente tão reta tivesse seios tão curiosamente belos e harmônicos, e de um formato e consistência tão atraentes.

Almoçamos em um restaurante à beira mar, fomos ao cinema e tomamos cerveja no bar panorâmico do píer; terminando a tarde no meu apartamento, ouvindo Stones e conversando descontraidamente. Não ousei muito coisa. Eu sonhava Alana como se fosse para sempre, e algo que é para sempre não precisa de pressa. Apenas nos beijamos, e nesse beijo senti seus seios contra meu peito e tive a certeza do que queria.

— Alana, pode me achar louco por dizer isso, mas acho que a amo. Acredita em amor à primeira vista?

— Acredito, Tony. Mas amor à primeira vista tem que esperar o mesmo tempo que o amor à décima oitava vista — disse ela, algo cruel, apertando o botão da gola do vestido sem decote que usava.

— Ora, Alana. O que a gente sonha para sempre não precisa começar agora.

Ela riu e me beijou nos lábios, com um tremor na boca que só mais tarde soube ser amor também.

— Por favor, Tony. Leve-me para casa antes que implore para fazer amor com você. Isso não seria bom para nenhum de nós dois agora. Estou me sentindo totalmente frágil e insegura. Não se aproveite de mim.

Os dias seguintes foram de expectativa. Ninguém da Banca Examinadora me contactara ainda, mas eu tinha a estranha sensação de que quando lessem o meu trabalho o meu telefone fatalmente tocaria.

Saí com Alana na sexta-feira seguinte mais uma vez. Não havíamos tido encontro no fim de semana porque ela viajara para visitar os pais, numa distante fazenda nas chatas planícies do Norte. Da segunda vez o encontro se desenvolveu com muito mais fluidez, em parte graças ao traiçoeiro vinho licoroso que lhe servi. Porém, quando ela percebeu que sua cabeça não estava mais tão firme sobre o pescoço, mais uma vez me pediu que a levasse para casa e eu, mais uma vez, me vi moralmente forçado a isso.

Levei-a de volta ao seu apartamento no campus. Àquela hora quase não havia viva alma na universidade. Somente os pobres e que vinham de longe, como nós dois, passávamos os feriados lá. Quando saía, ela me chamou para dizer, depois de jogar um beijo:

— Não entregou aquela monografia, entregou?

Fiquei envergonhado:

— Alana, me perdoe, mas eu a entreguei naquele mesmo dia.

Ela levou as duas mãos à boca, com os olhos totalmente arregalados, e me pediu para entrar. Atirou-me a um sofá e começou a trancar obsessivamente janelas e portas. Depois se atirou sobre mim e quando finalmente percebi o que estava acontecendo já estávamos nus fazendo amor. Ao terminamos, ainda estendidos no tapete macio da sala, tive que perguntar:

— Por que isso, Alana? Não tínhamos que esperar, não havia aquela história de que o que é para sempre não precisa começar hoje.

— Querido, lamento, mas precisava disso. Se não fosse hoje, talvez não fosse nunca. O que vai terminar hoje precisa começar hoje.

Faróis altos brilharam no pátio e um ruído sibilante cortou o ar. Exceto por ele, porém, não havia nenhum outro som em todo o campus. Bateram à porta.

— Oh, querido, lamento muito, muito.

Bateram de novo à porta.

Alana se enrolava no tapete para cobrir sua esguia nudez, enquanto eu tentava me vestir, procurando as peças de roupa espalhadas.

Arrebentaram a porta.

Lá fora uma luz fria e azul oscilava. Entraram homens altos e magros, magros como Alana. Falavam uma língua estranha e eram estranhamente pálidos, como Alana. Senti algo picar o meu peito, olhei e vi um dardo tranquilizante.

Acordei aqui. Você tem que acreditar em mim. Não sei de nada da morte da Alana. Tem que acreditar em mim.

— É difícil, Tony. Muito difícil. Você entregou à Banca Examinadora um bilhete contendo a confissão de que pretendia matá-la, e fez exatamente o que o bilhete dizia. Seu esperma foi encontrado no corpo, suas impressões digitais estão por toda parte, e a polícia o achou lá, ao lado do cadáver ainda quente. O que tem para me convencer de que nada dessa história é verdade?

— Você tem que acreditar em mim, Rick. Os aliens, eles usam a rede elétrica para comunicar-se, alguns são brincalhões e ficam corrompendo arquivos em nossos computadores, ou talvez queiram nos avisar. Alguns estão espionando por aí. Alana era uma espiã, Rick.

— Por isso a matou?

— Não a matei, Rick. Mesmo ela sendo uma deles não a matei porque a amava, porque era a mulher mais interessante que conheci em toda a minha vida. Não a matei, foram eles. Mataram-na porque me avisou para não entregar a monografia, mas não me impediu.

— Tudo bem, Tony. Vou ver o que posso fazer. Mas acho que é melhor alegar insanidade. Se não fizer isso, vai encarar o corredor da morte. Alana poderia ser alienígena, mas apareceram dois pais pobres, lá do interior do Canadá, que confiavam no diploma da única filha para seu sustento na velhice. Uma história comovente, Tony. Nenhum jurado desse país terá simpatia por você.


07
Dez 09
publicado por José Geraldo, às 21:36link do post | comentar

Quando você analisa um documento preparado através do LaTeX em comparação com outro preparado em um editor de textos tradicional, salta à vista o quanto o primeiro é mais polido do que o segundo — especialmente se as fontes padrão do TeX não forem usadas (pois elas têm problemas de legibilidade devido, pasmem, à alta resolução das modernas telas e impressoras. A maior parte das razões para essa discrepância é por demais sutil para que um observador casual as perceba, mas o efeito geral é perceptível até para um leigo.

As razões da diferença podem ser resumidas em seis, das quais as cinco primeiras são universais no mundo TeX e a última é específica de certos documentos mais recentes, e mais avançados:

  1. Ligaturas
  2. Ajustes de transição entre caracteres (kerning)
  3. Algoritmo de cálculo dinâmico da espessura dos caracteres (hinting)
  4. Algoritmo de hifenização por parágrafo
  5. Ajuste vertical de espaçamento
  6. Microtipografia

Ligaturas

Ligaturas são símbolos que substituem seqüências de caracteres. Há três categorias básicas de ligaturas: as que são usadas para aumentar a legibilidade, as que são usadas segundo a tradição tipográfica e as que são usadas por razões meramente estéticas.

Um exemplo de ligatura útil para aumentar a legibilidade é a ligatura “fi”. Na maioria das fontes o arremate do “f” colide com o pingo do “i”, um detalhe quase imperceptível, mas que distrai o olho durante a leitura de um texto mais extenso.

As ligaturas históricas são as que foram abolidas após a invenção da tipografia moderna (a partir do século XIX). Algumas são até bonitas, mas a maioria prejudicaria a leitura porque não estamos acostumados a ver dois “oo” entrelaçados, ou um “s” que se conecta com o “t” seguinte, coisas assim.

As ligaturas estéticas não tem raiz história, mas podem ser inventadas livremente pelo tipógrafo. Entre elas, recentemente, surgiu o interrobang, uma junção de um ponto de exclamação com um ponto de interrogação.

O LaTeX tem a capacidade de inserir automaticamente as ligaturas essenciais, além de ter mecanismos para acessar as outras. Uma outra vantagem de usar ligaturas é economia de espaço. Dependendo da fonte, algumas ligaturas podem economizar, em uma página, o espaço equivalente a quase um quarto de uma linha.

Kerning

Esse é um ajuste, feito manualmente, do posicionamento dos caracteres em relação aos demais. O objetivo do kerning é diminuir os espaços em branco e tornar o texto mais fluido durante a leitura. Um software que não seja capaz de usar esse ajuste vai produzir espaços entre letras em seqüências como “AVA, To, LT, ij” etc. — o que é muito tosco.

Hinting

Trata-se de um algoritmo que calcula a espessura de uma fonte de acordo com o tamanho, de forma que os tamanhos menores fiquem mais finos e os maiores mais grossos. No caso do LaTeX isso não é tão importante, visto que as fontes padrão possuem versões diferentes para os diferentes tamanhos, mas se você está usando fontes não-padrão (e você certamente quererá fazer isso) então perceberá que os documentos feitos com o LaTeX têm fontes mais pesadas e legíveis.

Hifenização

Normalmente a hifenização está desativada nos processadores de textos e, quando ativada, ela é calculada linha a linha. O LaTeX possui um poderoso algoritmo de hifenização que considera parágrafos inteiros, resultando em um texto muito mais compactado.

Ajuste Vertical

A menos que você tenha usado a opção raggedbottom, o LaTeX cuidará de preencher inteiramente a página até a última linha, evitando que a margem inferior varie de largura (tente fazer isso em qualquer processador de texto!). Em vez de deixar espaço em branco no fim da página, ele acrescenta imperceptíveis espaços adicionais entre os parágrafos (mas se a sua página tiver poucos parágrafos tais espaços serão perceptíveis).

O ajuste vertical é um tanto problemático se você usa a opção de controle automático de linhas órfãs e viúvas, porque nesses casos a quantidade de espaço adicionado será maior. De qualquer forma, esse problema teria mesmo que ser contornado manualmente através de ajustes de espaçamento.

Microtipografia

Disponível apenas com o compilador pdfTeX, a opção microtype adiciona a capacidade de ajuste fino do espaçamento entre os caracteres, possibilitando a compressão ou expansão de um parágrafo, além de oferecer protusão de caracteres no início da linha ou extrusão de caracteres no final de linha.

Protusão quer dizer puxar para a esquerda, para fora da margem, uma parte de algum caracteres que tenha desequilíbrio para a esquerda, como por exemplo o “W”. A primeira base da letra fica sobre a margem e o braço esquerdo fica fora. Com isso, a linha escura da margem fica mais regular.

Extrusão quer dizer empurrar mais para a dirieta, para fora da margem, um caractere ou parte de caractere que não ocupa plenamente seu espaço. Por exemplo, uma vírgula ou a haste de um “f”. Ficando fora da margem, esses detalhes não interferem na linha escura, permitindo uma “mancha” de página mais regular.

Concluindo

Utilizando o LaTeX para produzir seus documentos imprimíveis você tem como conseguir uma qualidade de lay-out muito superior ao que obteria com outro software. Quer um exemplo claro? O texto deste post formatado pelo OpenOffice e pelo pdfLaTeX, em ambos os casos usando a fonte URW Arial, tamanho 10.


27
Mai 09
publicado por José Geraldo, às 11:10link do post | comentar

O processo de preparação do arquivo para impressão envolve duas coisas distintas: 1) separar miolo de capa e 2) preparar a capa em formato aberto.

Separação e Preparo da Capa

Esta foi a parte mais fácil, mas demorou até que eu percebesse o óbvio: pdfpages. Graças a este sensacional comando eu pude extrair a primeira e a última páginas do arquivo PDF contendo a revista inteira e montar as duas em formato aberto, exigido pela gráfica.

Para isto eu recorri ao seguinte código:

\documentclass{article}\usepackage{geometry}\geometry{ verbose,paperheight=30.34cm, % o tamanho exigido é umpaperwidth=42.61cm,  % pouco maior que o A3 tmargin=0mm,        % por causa do corte. bmargin=0mm, lmargin=0mm, rmargin=0mm, headsep=0mm, footskip=0mm}\usepackage{pdfpages}\begin{document}\thispagestyle{empty}\includepdf[pages={32,1},nup=2x1]{Demo.pdf}\end{document}

Notem a simplicidade e a elegância desta solução! O pacote pdfpages é realmente sensacional!

Separação e preparo do miolo

Agora só precisamos de um comando que separe as páginas do miolo. A solução que estou usando é o pdftk, mas este é um programa em Java (o que não me agrada muito porque para instalá-lo é preciso puxar mais de 30 MB de arquivos da rede. Enquanto não aparece solução melhor, fica ele mesmo, que pelo menos não reconverte o PDF, ao contrário de outras opções que testei.

O comando para separar o miolo é esse aqui:

pdftk Demo.pdf cat 3-30 output Miolo.pdf

E desta forma temos um arquivo chamado Capa.pdf gerado pela compilação do Capa.tex integralmente transcrito no início desta postagem e um arquivo Miolo.pdf gerado pelo comando acima listado. Basta encaminhar os dois para a gráfica e aguardar.


26
Mai 09
publicado por José Geraldo, às 10:35link do post | comentar

Minha mais recente aventura, enquanto convalesço de uma cirurgia para retirada de uma vesícula supurada, é fazer uma revista literária para a comunidade "Novos Escritores do Brasil" — da qual vocês já devem ter ouvido falar anteriormente.

Boa parte do que eu fiz para esta revista aproveita um estilo chamado dtp-like.sty que eu havia criado originalmente em 2007. Por esta razão muita coisa eu simplesmente não sei mais como funciona. Este registro tem, entre outras motivações, deixar registrado o processo para quando eu quiser utilizar de novo aquelas idéias.

Resumo geral:

  1. Digitar o conteúdo,
  2. Criar a capa e a contracapa,
  3. Criar os índices e referências automáticos,
  4. Inserir ilustrações e acertar as arestas,
  5. Compilar,
  6. Cortar o PDF separando capa de miolo
  7. Encaminhar para a Lulu

Neste processo é preciso ter em conta que o número de páginas deve ser múltiplo de 4, para evitar que a gráfica insira páginas em branco que vão enfeiar o produto final (são aceitáveis em um livro de dezenas de páginas, mas não em uma revista).

Preâmbulo do Documento

Queremos uma revista que ocupe ao máximo uma folha de papel A4, alternando quantidade de colunas (uma, duas, três) e com layout diferenciado frente e verso. Para isso as configurações básicas são:

\documentclass[a4paper,10pt,twoside,twocolumn]{article}
Atenção para os comandos twoside, twocolumn e 10pt!
\usepackage{epic,multicol}
O pacote epic é para usar figuras como plano de fundo e o multicol permite criar seções em colunas em uma página de uma coluna só ou até dentro de uma coluna.
\usepackage{dtp-like}
Esse é o meu pacote de configuração da revista, ainda tosco e sem comentários, mas eficiente. Quando a revista tiver saído eu vou fazer uma atualização dele e pôr aqui para download.
\usepackage[brazil]{polyglossia}\usepackage{fontspec}\usepackage{xunicode}\usepackage{xltxtra}
Usaremos o XeTeX para ter acesso liberado a fontes do sistema. Além disso o XeTeX introduz alguns comandos muito úteis, como o \addfontfeature, através do qual podemos controlar a cor e o tamanho do texto de forma muito precisa. Essa revista não poderia ter sido feita no pdfTeX.
\def\Name{o verbo}\title{\Name}\def\Nome{Revista dos Novos Escritores do Brasil}\author{\Nome}\def\edition{MAIO}\def\Year{2009}\def\Numero{1}\def\Ano{I}\def\Editora{Lulu Inc.}
Algumas predefinições para uso futuro.
\newcommand{\issue}{Ano \Ano, No.\ \numero, \edition/\Year}
Aqui criamos o comando "\issue" que sempre imprimirá os dados da edição atual da revista.
\def\style{Liberation}\def\MainFont{\style\space Serif}\def\SansFont{\style\space Sans}\def\MonoFont{\style\space Mono}\def\logofont{\style\space Serif}\newcommand\LogoFont[1]{{\fontspec[Scale=12.5]{\logofont}\bfseries\em\color{white} #1}}\newcommand\MarqueeFont[1]{{\fontspec[Scale=5]{\logofont}\bfseries\em #1}}\newcommand\IssueFont[1]{{\fontspec[Scale=1.25]{\SansFont}\color[gray]{0.9} #1}}\newcommand\issuefont[1]{{\fontspec[Scale=1]{\SansFont} #1}}\newcommand\newsfont[1]{{\fontspec[Scale=3.25]{\SansFont}\bfseries\em #1}}\newcommand\coverfootfont[1]{\sffamily #1}\newcommand\mailfont{\fontspec[Scale=MatchLowercase]{Droid Sans Fallback}}\defaultfontfeatures{Mapping=tex-text,RawFeature={+kern}}\setromanfont{\MainFont}\setsansfont[Scale=MatchLowercase]{\SansFont}\setmonofont[Scale=MatchLowercase]{Droid Sans Fallback}
Ufa! Aqui temos algo um pouco mais complexo. Ao longo da revista utilizaremos diversas variedades de tamanhos e estilos de fontes, todos definidos aqui. Desta forma, se quisermos mudar na revista inteira, bastará mudar aqui. Atenção para a macro \style através da qual armazenamos um nome básico de fonte que depois é replicado nos demais estilos. Essa macro é para usar conjuntos completos de fontes, dando aparência harmoniosa à revista. Exemplos desses conjuntos são:
  • Liberation (Ascender Corp., para Red Hat Inc.)
  • Droid (Ascender Corp., para Google Inc.)
  • Free (Free Software Foundation)
  • DejaVu (Bitstream Inc. para Free Software Foundation)
  • Aboriginal (Ascender Corp., para o Governo do Canadá)
  • Nimbus (URW++ GmbH para Free Software Foundation)
  • Bitstream Vera (Bitstream Inc. para Gnome Foundation)
  • Luxi (Bigelow & Holmes)
  • Lucida (Bigelow & Holmes para Sun Inc.)
Combinar fontes que não fazem parte de um conjunto é possível também, mas além de ser esteticamente arriscado se você não tiver bom gosto, ainda exigirá que você faça modificações no meu código aí... rsrs
\news{Poemas\\\medskip Contos\\\medskip Crônicas\\\medskip Crítica}\coverfoot{{\addfontfeature{Scale=0.9}\printindex}}
Os comandos \news e \coverfoot (definidos no estilo dtp-like) preenchem o conteúdo da capa.
\usepackage{makeidx}\makeindex\usepackage{nomencl}\makenomenclature
Estes comandos são muito importantes porque através deles será gerada a relação de autores, que terá duas formas: uma, na capa, acompanhada do número da página em que aparecem, funcionará como substituta do índice, e a outra, na quarta capa, acompanhada do e-mail. O comando \makeindex gera o comando \printindex e o comando \makenomenclature gera o \printnomenclature (no fim das contas ainda não usaremos este, mas ainda é preciso usar o \makenomenclature.

Página de abertura

A revista começa na página três, contendo os seguintes elementos: um quadro — exibindo o nome da revista, seu slogan e a identificação do número — o editorial, uma lista de diários virtuais favoritos (que você pode trocar por outra coisa) e o “expediente”.

\makecover\thispagestyle{empty}\clearpage\marquee\section*{Editorial}\section*{Blogs favoritos}\vfill\par\hrulefill\parIdentificação da revista, responsáveis, editora, etc.\onecolumn
E assim você começa a digitar o conteúdo.

Regras para digitação do conteúdo

Em primeiro lugar, você já deverá saber alternar entre uma e duas colunas (\onecolumn e \twocolumn) e usar o pacote multicols. Fica a critério de seu bom senso e bom gosto distribuir o texto e as ilustrações pelo corpo da revista. Não tenho como ensinar tudo aqui. O “pulo do gato” não é para qualquer onça dar...

Mas eu vou ensinar o truque para gerar os índices. Ele se baseia na utilização de um comando personalizado para abrir as seções. O comando é esse aqui:

\addsection{Nome do autor}{email do autor}{nome do texto}

Fique à vontade para criar o conteúdo da revista como preferir. Apenas use esse comando para armazenar os dados dos textos e autores. Inclusive, se preferir, você poderá gerar um índice tradicional usando o comando \tableofcontents. Vai funcionar direitim tamém.

Principais definições do estilo dtp-like

Algumas coisas que eu alterei são apenas opções de configuração de pacotes normais do LaTeX. Esta parte eu vou deixar a critério do bom gosto e do bom senso do leitor, apenas vou explicar os novos códigos que criei.

\RequirePackage{graphicx}\RequirePackage[hang]{footmisc}\RequirePackage{xcolor}\RequirePackage{eso-pic} % figura de fundo\RequirePackage{fancybox} % caixas de texto coloridas\RequirePackage{paralist,enumitem} % listas mais bonitas\setlist{nolistsep}
Estes pacotes são essenciais.
\RequirePackage{longtable} % tabelas que passam da página\RequirePackage{booktabs} % tabelas estilo livro\RequirePackage{colortbl} % tabelas coloridas\RequirePackage{lettrine} % capitulares\RequirePackage{cuted} % trecho em coluna única em página \twocolumn\RequirePackage{hyphenat} % controlar hífens\RequirePackage{verse} % formatar versos\definecolor{url}{gray}{0.2}
Estes podem ser ou não, dependendo do que você quiser fazer
\newcommand{\mytocentry}[3]{{\bfseries #1}, por #2}
Primeiro comando realmente importante. Este comando permite que a sua \tableofcontents exiba o título da obra em negrito, seguido pela frase “por Autor”, o que fica muito mais bonito que o sumário tradicional.
\renewcommand{\thesection}{}\newcommand{\addsection}[3]{\section[\sbtocentry{#3}{#1}{#2}]{#3}\index{#1}{\hfill\em\noindent{#1}}\nomenclature{#1}{(\url{#2})}}
Este código define um novo comando de abertura de seção, que armazena dados para os índices e para nosso sumário personalizado.
\makeatletter\providecommand\BackgroundPicture[1]{%  \setlength{\unitlength}{1pt}%  \put(0,\strip@pt\paperheight){%  \parbox[t][1\paperheight]{1\paperwidth}{%  \vfill\begin{center}    \includegraphics[width=1\paperwidth,keepaspectratio]{#1}\end{center}\vfill}}}\makeatother
Esse código cria um comando para inserção simplificada de uma figura de fundo na capa. A configuração é de centralizar a figura na área de página total.
\providecommand{\@news}{}\newcommand{\news}[1]{\renewcommand{\@news}{\vfill\begin{flushright}\newsfont{#1}\\\bigskip\end{flushright}}}\providecommand{\@coverfoot}{}\newcommand{\coverfoot}[1]{\renewcommand{\@coverfoot}{\coverfootfont{#1}}}
Criação dos comandos de manchete (\news) e rodapé da capa (\coverfoot).
\fancypagestyle{cover}{\fancyhf{}\renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}\fancyfoot{}}\makeatletter\providecommand{\makecover}{%\thispagestyle{cover}\onecolumn\begin{minipage}[H]{1\textwidth}\begin{center}\LogoFont{\Name}\\\bigskip\IssueFont{\Nome}\space\space\IssueFont{\issue}\end{center}\end{minipage}\pagecolor{covercolor}\AddToShipoutPicture*{\BackgroundPicture{FiguraCapa}}{\color{white}\@news\@coverfoot}\twocolumn\pagecolor{white}}\makeatother
Este comando cria uma capa personalizada, com uma figura de plano de fundo e da cor covercolor (que você deverá ter definido antes a seu gosto). Se o arquivo da figura da capa se chamar literalmente FiguraCapa você não precisa editar nada. Se tiver outro nome, você deverá mudar. Dããã...
\newcommand\marquee{\begin{center}\noindent\MarqueeFont{\Name}\par\medskip\noindent{\large\scshape\Nome}\smallskip\noindent\issuefont{\issue}\par\hrulefill\par\end{center}}
O comando marquee criará um selo de identificação da revista, que você poderá posicionar onde quiser. Na configuração padrão ele fica acima do Editorial.
\RequirePackage{sectsty}\allsectionsfont{\centering\sffamily}
Este código é importante se você quiser que a fonte dos títulos seja diferente da fonte do texto.
\renewenvironment{theindex}{\textbf{Apresentando:\quad\quad}\renewcommand\item{}}{}
Aqui nós estamos mudando o comportamento padrão do índice remissivo para que apresente os autores em um parágrafo só.

Configurações do makeindex

Utilizo o pacote makeindex para gerar um índice remissivo de autores, com indicação da página em que estão publicados. Este índice é formatado segundo as seguintes configurações, que devem estar armazenadas em um arquivo de extensão *.ist do mesmo nome do documento base:

actual '='quote '!'level '>'preamble"\\nopagebreak\\begin{theindex}"postamble"\\end{theindex}\\quad\\quad"item_x1   "\n \\subitem "item_x2   "\n \\subsubitem "delim_0   " ("delim_t    ")\\quad"group_skip ""lethead_prefix   "{\\bfseries "lethead_suffix   "\\hfil}\\nopagebreak\n"lethead_flag       0heading_prefix   "{\\bfseries "heading_suffix   "\\hfil}\\nopagebreak\n"headings_flag       0

O comando para gerar o índice é:

makeindex -s "$doc_base.ist" "$doc_base"

Configurações do nomencl

Utilizo o pacote nomencl para gerar um índice de autores acompanhado por seus e-mails. Esta não é a finalidade original do pacote, que se presta a criar glossários. Por isso eu não consegui fazer esta parte funcionar perfeitamente. Em vez do comando \printnomenclature eu estou simplesmente incluindo o arquivo de extensão *.nls que é gerado pelo comando:

makeindex "$doc_base.nlo" -s nomencl.ist -t "$doc_base.nlg" -o "$doc_base.nls"

Antes de fazer a inclusão é necessário limpar do arquivo *.nls algumas marcas de formatação, o que eu faço usando o sed:

sed -e 's/\\item \[/\\quad\\textbf\{/g' sed -e 's/\]\\begingroup /\}\\quad/g'sed -e 's/^[ \t]*//' -e '/nompageref/d' sed -e '/description/d'

No meu editor de LaTeX eu criei um script no menu que executa tudo isso como um one-liner, mas talvez seja melhor criar um shell script que automatize isso já no processo do makeindex. Preciso da ajuda de um guru de shell para isso, pois sou cru nessa área.

Por fim, faça a inclusão:

\renewcommand{\nomeqref}[1]{\iffalse{#1}\fi}\noindent\hrulefill\\\input{Demo.nls}\noindent\hrulefill

A redefinição do comando \nomeqref é essencial para não dar erro, mas as linhas (\hrulefill) são só estética, gosto meu...

Conclusões

Espero ter conseguido provar que dá para fazer um layout de revista usando o LaTeX (algo que pouca gente supunha possível). Dentro de alguns dias a revista vai estar disponível à venda e vou postar o link aqui para quem quiser conferir. Garanto que ficou muito bacana.


24
Mar 09
publicado por José Geraldo, às 22:54link do post | comentar

Os arquivos paperback.tex, hardcover.tex, pocket.tex e screen.tex são responsáveis pela definição do tamanho de página em que será impresso o livro. Notem que eu não carreguei junto com a classe as definições padrão de tamanho de página (a5paper). Isto é porque o pacote geometry permite um controle muito mais refinado.

O formato padrão de livro que eu utilizei ao publicar pela Lulu.com foi o que eles chamam de “paperback”, que tem várias opções de tamanho de papel. Devido à minha familiaridade com os padrões de papel da iso eu preferi usar o tamanho A5, que é bastante adequado para a maioria dos formatos de livro.

Para fazer o seu livro em formato A5, use a seguinte configuração em seu preâmbulo:

\usepackage[a5paper,bmargin=2cm,tmargin=2cm,%rmargin=2cm,lmargin=2cm,%includefoot, footskip=6ex]{geometry}

No exemplo acima você percebe que o pacote é carregado com as opções de tamanho de papel A5 e definindo margens “quadradas” de 2cm em todos os lados. A opção “includefoot” significa que o rodapé da página (onde ficarão os números de página) será posto “dentro” da margem de 2cm. Por isso, se você quer uma margem inferior bonita, poderá optar por definir uma “bmargin” menor que 2cm. Eu tentei e não gostei, mas gosto é gosto.

Depois de definir o formato A5 para o meu livro eu descobri, para meu desgosto, que as opções de tamanho de papel para as versões em capa dura não incluíam o tamanho que eu escolhera. Para contornar isso eu retirei as configurações de tamanho de página do preâmbulo e salvei em um arquivo à parte. Depois criei outro arquivo contendo as definições necessárias para o formato de papel não-padrão que a Lulu usa para edições de capa dura. Agora eu podia alternar entre os formatos na hora de compilar o arquivo!

As definições para o formato em capa dura são:

\usepackage{fontspec}\usepackage{xunicode}\usepackage{xltxtra}\usepackage[paperheight=9in,paperwidth=6in,%hmarginratio=3:2]{geometry}\defaultfontfeatures{Scale=1.1,Mapping=tex-text,%RawFeature={+kern}}

Aqui temos um pouco de magia negra em ação. Eu tive de remover também a configuração padrão de fontes e incluir nos arquivos que geram os formatos diferentes. Isto foi necessário porque compilando o mesmo livro em dois tamanhos de papel diferentes, com margens diferentes, é também necessário usar tamanhos de fonte diferentes. A versão em capa dura tem um papel maior, por isso nela eu uso uma fonte 10% maior.

Eu tive de definir um formato de papel fora do padrão (“paperheight” e “paperwidth”) e simplifiquei a definição de margens simplesmente revertendo o padrão do LaTeX, que é colocar margens mais largas do lado de fora a fim de acomodar as notas marginais. De resto, confiei na sabedoria do LaTeX e não me arrependi.

Os pacotes fontspec, xunicode e xltxtra, bem como as defaultfontfeatures tiveram de ser copiadas e colocadas no arquivo paperback.tex também (lá a opção "Scale" foi retirada).

assuntos: , ,

24
Fev 09
publicado por José Geraldo, às 16:53link do post | comentar

Através do LaTeX é possível obter um grau razoável de separação entre conteúdo e apresentação, o suficiente para ter certo controle sobre a forma do documento. Em nossa experiência tentaremos gerar quatro versões de um mesmo documento (um texto de romance com 140 páginas em a5):

  • uma versão em paperback tamanho a5
  • uma versão "hardcover" com papel ligeiramente maior
  • uma versão "pocket" com papel menor e bem mais estreito
  • uma versão otimizada para leitura on-line

A segunda versão terá menos páginas (cerca de 15% de páginas a menos) e a terceira terá bem mais páginas (cerca de 30% a mais). A versão para leitura on-line terá mais ou menos a mesma quantidade de páginas que a versão "pocket".

Para isso o documento será composto de oito arquivos:

  • arquivo mestre
    • arquivo de configurações básicas
    • arquivo de configuração de papel
    • arquivo de hifenização
    • arquivo de configuração de fontes
    • arquivo de configurações avançadas
    • gerador de capa e conteúdo pré-textual
    • conteúdo

Sugiro que você crie uma pasta com o nome do documento e dentro dela um arquivo nomedodocumento.tex. Os demais arquivos se chamarão:

  • preamble.tex
  • paperback.tex / hardcover.tex / pocket.tex / screen.tex
  • hyphenation.tex
  • fontspec.tex
  • config.tex
  • maketitle.tex
  • content.tex

Você poderá mudar os nomes dos arquivos sempre que quiser, mas eu recomendo começar com esses nomes — que são os que eu uso — para simplificar.

Arquivo mestre

O arquivo mestre deve conter o seguinte:

\RequirePackage{ifpdf}\ifpdf\documentclass[pdftex,twoside,12pt]{scrbook}\usepackage[brazil]{babel}\else\documentclass[twoside,12pt]{scrbook}\usepackage[brazil]{polyglossia}\fi\newcommand\book{} % título do livro\newcommand\covertop{} %  aqui dividimos o título em até três\newcommand\covermid{} % partes a fim de facilitar a formatação\newcommand\coverbottom{}\title{\book}\usepackage{sectsty}\partfont{\thispagestyle{empty}\huge}\chapterfont{\centering\Large}\sectionfont{\centering\large\sffamily}\newcommand\flourish{\fontspec{DejaVu Sans}❦} % separador\newcommand\genre{} % para uso na ficha catalográfica\newcommand\indiceum{Novela: Século \textsc{xxi}: Ficção brasileira}\newcommand\indicedois{Ficção: Novela: Novelas brasileiras}\newcommand\covertopfont{\fontsize{40bp}{40bp}\selectfont\bfseries}\newcommand\covermidfont{\fontsize{40bp}{40bp}\selectfont\bfseries}\newcommand\coverbottomfont{\fontsize{40bp}{40bp}\selectfont\bfseries}% os comandos das três linhas acima formatarão a capa\input{paperback} % configura o tamanho do papel\input{hyphenation} % arquivo global de hifenização, opcional\ifpdf\input{pdflatex} % configura as fontes, se usar pdfTeX\else\input{fontspec} % configura as fontes, se usar XeTeX\fi\input{config} % outras configurações avançadas\input{maketitle} % capa personalizada\input{content}
Observe na configuração acima que o mesmo arquivo pode ser compilado tanto pelo pdfTeX (mais conservador, apenas fontes do LaTeX) quanto pelo XeTeX (mais avançado e menos estável, incluindo fontes em geral).Se não quiser utilizar ainda todas as configurações avançadas, comente as linhas {paperback}, {config} e {maketitle}, crie um arquivo content.tex com o seu texto e vamos experimentar o que o LaTeX pode fazer.

23
Jan 09
publicado por José Geraldo, às 16:04link do post | comentar | ver comentários (1)

A maioria de nós está acostumada com um padrão porco de layout de texto. Não nos importa mais a qualidade porque nunca conhecemos a qualidade, ou então a julgamos algo inatingível. Ao longo desta postagem, no entanto, você conhecerá livros feitos com altíssimo padrão de qualidade de design, feitos com LATEX, e então se perguntará: por que eu não desejo que meus trabalhos tenham esta qualidade?

A maioria de nós está acostumada com a idéia de que devemos pagar a outras pessoas para que façam por nós aquilo que desejamos. Nada errado com isso se você tem condições de pagar. Mas para a maioria de nós que não tem dinheiro sobrando, a opção de fazer por conta própria é uma necessidade. Através do LATEX podemos obter isso, a um custo baixo.

LATEX é talvez o melhor e o mais estável programa de leiaute de documentos de texto do mundo.
Ele vem sendo aperfeiçoado e debugado há mais de vinte anos, além de ter sido originalmente feito de acordo com séculos de conselhos de tipógrafos. Herman Zapf (o sobrenome te diz alguma coisa) ajudou Donald M. Knuth a desenvolver o TEX original.
É o único programa que permite a impressão correta de fórmulas matemáticas.
Mas não pense por isso que ele se limita à matemática: a seguir você verá romances e obras de ciências humanas compostas com LATEX.
É software livre e gratuito e está disponível para todos os sistemas operacionais.
A principal conseqüência disso é que você não ficará preso a uma empresa e poderá obter a mesma qualidade tipográfica em todos os seus computadores.
Nenhum formato de arquivo de texto é tão estável e portável
Documentos gerados há vinte anos ainda podem ser corretamente impressos. Se você usa apenas os comandos padrão, sem depender de pacotes de terceiros, o seu documento poderá ser compartilhado com todos os usuários do programa, sem problemas.
O código fonte é um arquivo de texto
Você não corre risco de “corrupção do arquivo” e nem terá problemas apra mandá-lo por correio eletrônico.
LATEX não é mais difícil do que HTML.
Portanto, a menos que você realmente rejeite de antemão aprendê-lo, você tem como usá-lo sem dificuldades.
Sua única grande fraqueza é não ser visual
Mas isto pode ser uma qualidade, pois você não dependerá de uma interface gráfica pesada e poderá rodá-lo em um sistema antigo.

Dario Taraborelli compilou uma série de exemplos de como o LATEX é superior ao MS Word e aos demais processadores de texto visuais. Gerben Wierda também possui uma lista de exemplos muito interessante, mas nada se compara aos exemplos da Tseng Books.

Como você pode ver, qualidade não é algo que dependa de um programa de cinco mil reais a licença ou de pagar mil reais a alguém que faça por você. Vamos pôr as mãos à obra?

Blogged with the Flock Browser
assuntos: ,

16
Jan 09
publicado por José Geraldo, às 17:42link do post | comentar

Para a maioria das pessoas o LATEX parecerá um modo muito estranho de se trabalhar com documentos de texto. Afinal, texto é uma informação essencialmente visual e o LATEX trabalha com ela de forma não-visual e não-interativa. Pode parecer um contra-senso, mas na verdade é apenas uma forma conceitualmente diferente de se abordar o mesmo problema.

Processamento de Texto

Quando os primeiros computadores foram criados não havia nenhuma idéia de que eles algum dia fossem usados para produzir conteúdo, para compor livros, para trocar informações em texto. A idéia do computador era a de uma super máquina de calcular, que, aliás, é o que significa a palavra. Por esta razão os computadores não foram dotados, inicialmente, de toda a capacidade de geração e formatação de textos que estava disponível nos linotipos, as antigas máquinas de composição tipográfica.

Originalmente os computadores só incluíam 96 caracteres, que correspondiam às 52 letras (maiúsculas e minúsculas) os 10 algarismos e alguns sinais de pontuação e operadores matemáticos essenciais. Muitas simplificações foram feitas para economia de espaço. Por exemplo, as “aspas iniciais e finais” com formato diferente foram consolidadas em um único símbolo, as "aspas duplas". Os três tipos de símbolos de barras (hífen, sinal de menos e travessão) foram consolidados em um só. As ligaturas (letras especiais destinadas a facilitar a leitura) foram deixadas de fora. Nada disto era um problema muito sério quando o texto produzido pelo computador era em fonte monoespaçada e não se caracterizava pela complexidade. Demorou muito tempo até que alguém tivesse a idéia de armazenar no computador obras literárias.

Quando estas máquinas começaram a ser introduzidas no mercado editorial aconteceu uma queda sensível na qualidade gráfica de jornais, revistas e livros. As limitações do computador foram repassadas ao meio impresso porque as pessoas já haviam se acostumado a não mais usar coisas como aspas diferentes, ligaturas, travessões, etc. Demorou muito tempo até que o problema começasse a ser enfrentado.

O TEX, criado por Donald M. Knuth entre 1976 e 1983 foi uma dessas pioneiras tentativas. Outras surgiram depois. Todo programa de computador que se propõe a transferir texto armazenado em meio eletrônico para ser impresso é um processador de textos. Basicamente há três categorias de processadores de texto: os formatadores de texto, os formatadores baseados em linguagens de marcação e os interativos.

Um formatador de texto é um programa que utiliza um arquivo de texto qualquer e o transforma em um conteúdo imprimível, normalmente se limitando a formatar parágrafos e introduzir títulos segundo convenções básicas, que existem desde os primórdios da informática. Uma destas convenções é a de *texto entre asteriscos* quer dizer negrito e /texto entre barras/ quer dizer itálico.

Um formatador de textos baseado em linguagem de marcação é mais poderoso e também mais complexo: ele depende que o texto seja mesclado a comandos de formatação específico. Através destes comandos o LATEX pode, por exemplo, gerar equações impressas da forma correta.

Um processador de textos interativo lhe permite trabalhar simultaneamente no conteúdo e na apresentação de seu texto, ou seja, você digita e tem uma idéia quase segura de como o seu texto aparecerá impresso. Um exemplo desta abordagem é o Microsoft Word.

Controvérsia sobre o Processamento de Textos

Existe uma grande controvérsia [texto em espanhol] se esta “interatividade” (palavra que está na moda e passa grande credibilidade) é de fato algo bom. Para alguns autores, a visão simultânea do texto e de seu aspecto formatado funciona como uma distração, dificultando que o autor se concentre no conteúdo enquanto se preocupa com coisas de importância secundária, tais como alinhamento de parágrafos, linhas órfãs e viúvas, tipo e tamanho de letra, etc. Segundo esta visão, se o autor tiver a opção de trabalhar focado exclusivamente no conteúdo ele produzirá mais. Portanto, a separação de conteúdo e apresentação se apresenta como uma alternativa mais funcional. Esta é a estratégia que você adotará ao trabalhar com LATEX.

Ao instalar os programas que recomende em meu post anterior, você não verá nenhum programa novo em seu menu de programas. Você procurará e nada achará porque o LATEX não é um programa que possui interface de usuário! Depois de instalado e configurado, você precisará escolher a sua interface.

Eis um novo conceito ao qual o leitor talvez não esteja acostumado: escolha. A grande maioria dos usuários de computador está acostumado a soluções prontas, que supostamente “funcionam” out-of-the-box e se sente desconfortável com a perspectiva de ter de usar um programa que lhe pede escolhas. Isto, porém, não é uma desvantagem, mas uma vantagem: existem várias formas de se trabalhar com LATEX e você pode escolher a que melhor lhe sirva.

No site LATEX Llinks Page você encontra uma lista de editores populares para Windows. Se você usa Linux, suas escolhas óbvias recairão sobre o Kile ou algum editor de textos com suporte a LATEX, como o gVim, o TEA ou o Moo-Edit (mEdit). Uma abordagem diferente pode ser tentada através do LYX, mas ela só é recomendável se você realmente tiver muita dificuldade de digitar sem feedback visual.

Seu Primeiro Documento em LATEX

Uma vez instalado e configurado o seu editor de textos, tudo que você tem a fazer é escrever o seu texto, incluindo as marcas de formatação que julgar necessárias, e depois “compilar” o documento através do LATEX. A edição, teoricamente, poderia ser feita até no Bloco de Notas do Windows, a única coisa que os editores de LATEX fazem por você é automatizar tarefas como abrir e fechar chaves ou inserir automaticamente seqüências de comandos. Alguns permitem ainda que você compile de dentro deles o seu documento e execute o visualizador de documentos para saber como ficou.

O TEX (pronúncia correta igual ao inglês tech) é um programa de computador que faz a conversão de um arquivo de texto com marcas de formatação para um arquivo imprimível contendo a descrição da página. Atualmente o TEX original é considerado obsoleto, e a maioria das distribuições usa o pdfTEX de Han The Tan em seu lugar.

LATEX (pronúncia correta lay tech) é uma linguagem de macro que facilita o uso do TEX por leigos (aliás a primeira sílaba do nome se pronuncia exatamente igual à palavra inglesa lay, que significa "leigo"). Cada comando LATEX é um atalho para um conjunto de comandos TEX. Em outras palavras, LATEX é um tipo de interface de usuário para o TEX.

Um documento LATEX contém vários comandos, que especificam como ele será impresso. Alguns desses comandos são opções globais (fonte, tamanho de página, estilo do documento, etc.) outros são locais (itálico, negrito, etc.) e outros são ferramentas para permitir a inserção e controle de citações, referências cruzadas, etc. Estas ferramentas existem proque o LATEX foi desenvolvido para o preparo de textos acadêmicos. Se você usá-lo para formatar sua tese de Engenharia, por exemplo, aprenderá a amá-lo!

\documentclass[a4paper,oneside,12pt,titlepage]{scrreprt}\usepackage{ifpdf,html,mathptmx,courier,indentfirst,geometry}\usepackage[scaled=0.9]{helvet}\title{Título}\author{Autor}\date{\today}\begin{document}\maketitle\tableofcontents\chapter{Título do capítulo}Texto do capítulo.\begin{enumerate}\item item de uma enumeração\end{enumerate}\section{Título da seção}Texto da seção\begin{itemize}\item item de uma lista\end{itemize}mais algum texto\begin{quotation}Texto de uma citação\end{quotation}\end{document}

Um documento LATEX, como você pode ver, nada mais é do que texto mesclado a comandos. No documento acima temos os seguintes comandos:

  1. Escolha do tipo de documento (“documentclass”)
  2. Seleção de alguns pacotes de estilo (“usepackage”)
  3. Definição do título e do autor do documento
  4. Definição da data de composição como hoje
  5. Início do documento
  6. Colocação do título e do índice
  7. Primeiro capítulo
  8. Texto
  9. Uma enumeração
  10. Uma seção
  11. Uma lista de itens
  12. Uma citação
  13. Fim do documento

Tendo obtido um documento corretamente digitado, você executa sobre ele o comando de alguma variedade do LATEX, que pode ser o LATEX original, para impressão, o pdfLATEX para gerar um arquivo PDF ou o XELATEX, para gerar um PDF em Unicode usando fontes OpenType.

No próximo post eu vou apresentar uma série de modelos de documentos com os quais você pode gerar um livro formatado em alta qualidade.

assuntos: , ,

14
Jan 09
publicado por José Geraldo, às 16:39link do post | comentar

Para começarmos, devemos instalar o LaTeX em seu computador. Para isto é altamente recomendável que você tenha uma internet de alta velocidade pois será necessário baixar algumas centenas de megabytes de arquivos. De qualquer forma, o método de instalação menos exigente em termos de acesso à internet é a utilização do instalador do TeXlive em rede, que você encontra no site do Grupo de Usuários do TeX, aqui.

TeX, LaTeX, TUG!!! Hem?

Vamos primeiro nos entender quanto ao que são esses programas. Em primeiro lugar, TEX é o nome de um programa de computador criado entre 1976 e 1983 por Donald M. Knuth, da Universidade de Stanford, nos Estados Unidos com a finalidade de formatar suas obras sobre matemática. Knuth havia percebido que desde que os antigos linotipos foram substituídos por computadores, a qualidade gráfica de seus livros havia caído e ele queria criar um sistema que lhe permitisse controlar a apresentação de suas equações. Acabou criando um dos mais populares programas de formatação de texto do mundo.

Em 1989 o inglês Leslie Lamport criou o LATEX, um sistema de macros para o TEX que permitia que ele fosse usado por não-matemáticos (o próprio Knuth admitiu que criou o TEX para seu uso pessoal e que a princípio não imaginou que alguém mais o fosse usar). No início dos anos 90, Han The Than criou o pdfTEX, uma nova versão do TEX que produzia arquivos PDF em vez de apenas imprimir. Começou aí a popularização do LATEX, que passou a ser incorporado em todas as distribuições Unix e Linux do mundo.

Ainda nos anos 90 começou-se a desenvolver um projeto de internacionalização do TEX, para permitir que ele fosse usado para criar documentos em outras línguas. Depois de muitos anos de desenvolvimento, chegou-se, em 2005, ao XETEX, um programa que se comporta como o TEX, mas que aceita quaisquer caracteres e fontes. Agora, finalmente, documentos tipográficos de qualidade estavam disponíveis, no mesmo nível, para pessoas de todas as culturas.

O TUG (TEX Users Group) é a maior associação de usuários em todo o mundo. Ele é o responsável pela criação e pela distribuição do TEXLive, uma das mais populares distribuições TEX do mundo. O TEXLive inclui todos os programas de que precisamos, por isso é ele que eu estou recomendando.

Procedimentos de Instalação

Tendo baixado o programa de instalação linkado lá em cima (note que existem várias versões, para diversos sistemas operacionais), descompacte-o em algum lugar e depois execute-o. Ele vai fazer uma série de checagens para saber se o seu sistema suporta o TEXLive e, em caso positivo, o orientará durante a instalação.

O procedimento de instalação é simples, basta que você selecione quais pacotes você quer instalar. Se você não se importa em ficar muitas horas baixando e se tem 3 GB de espaço, talvez queira instalar tudo. Nesse caso basta escolher o pacote texlive-full e esperar. Mas isso não é necessário para obter o que queremos, basta instalar a seguinte lista de pacotes:

  • bin-lacheck
  • bin-pdftools
  • bin-texlive
  • collection-basic
  • collection-basicbin
  • collection-humanities
  • collection-langportuguese
  • collection-xetex
  • enumerate
  • enumitem
  • fancybox
  • fancyhdr
  • fancyref
  • fontspec
  • footmisc
  • hyperref
  • hyphen-portuguese
  • ifthenelse
  • lettrine
  • lshort-portuguese
  • makeindex
  • paralist
  • pdfpages
  • picinpar
  • poemscol
  • polyglossia
  • sectsty
  • setspace
  • titlesec
  • tocloft
  • url
  • xcolor
  • xunicode

Selecionando estes pacotes (e suas respectivas dependências) você já está preparado para usar o XETEX, mas não para usar o pdfTEX. Se você preferir usar este, deverá instalar uma série de outros pacotes, entre os quais os principais são:

  • babel
  • charter
  • collections-fontbin
  • collections-fontsrecommended
  • fontinst
  • fourier
  • fouriernc
  • gfs-artemisia
  • gfs-neohellenic
  • helvet
  • iwona
  • kerkis
  • kpfonts
  • libertine
  • mathdesign
  • mathpazo
  • mathptmx
  • pdftex
  • psfnss
  • pxfonts
  • ucs
  • txfonts
  • type1cm
  • zapfding

Em sua maioria estes pacotes adicionais são fontes e pacotes de suporte a fontes. Eles são necessários porque ao contrário do XETEX, que usa as fontes disponíveis no seu sistema, o pdfTEX precisa de fontes especiais, localizadas em uma estrutura especial em seu disco rígido.

Como tudo na vida, existem vantagens e desvantagens em ambos. O XETEX é mais fácil de usar, mas ao custo de se perder um pouco a qualidade tipográfica. O pdfTEX requer uma instalação muito maior e é mais difícil de usar (só um pouquinho, na verdade) mas obtém-se com ele um resultado gráfico superior.

O processo de instalação é bastante intuitivo e você não deve ter problemas. No próximo post eu lhe explico como interagir com o TEX.


mais sobre mim
Março 2013
Dom
Seg
Ter
Qua
Qui
Sex
Sab

1
2

3
4
5
6
7
8
9

10

17
18
19
20
21
22
23

24
25
26
27
28
29
30

31


comentários novos
Ótima informação, recentemente usei uma charge e p...
Muito bom o seu texto mostra direção e orientaçaoh...
Fechei para textos de ficção. Não vou mais blogar ...
Eu tenho acompanhado esses casos, não só contra vo...
Lamento muito que isso tenha ocorrido. Como sabe a...
Este saite está bem melhor.
Já ia esquecendo de comentar: sou novo por aqui e ...
Essa modificação do modo de ensino da língua portu...
Chico e Caetano, respectivamente, com os "eco...
Vai sair em inglês no CBSS esta sexta-feira... :)R...
Posts mais comentados
1 comentário
pesquisar neste blog
 
arquivos
subscrever feeds
blogs SAPO