O Futuro do LaTeX, Parte I – A importância de linguagens de marcação

Esse parágrafo que você está lendo não tem nenhum recurso de formatação
especial. Há uma fonte, de um determinado tamanho, com algumas margens,
espaçamento entre linhas, mas isso é o mínimo para um texto ser
apresentável; são detalhes tão básicos que o leitor quase nem se dá
conta. Na prática, são apenas caracteres, um após o outro, formando a
mensagem que eu, escritor, quero passar a você, leitor.

Este parágrafo têm uma ênfase. Esse recurso imediatamente chama
atenção para uma palavra determinada, e altera a mensagem. Nas minhas
resenhas de livro, eu dizer que um livro é extremamente bom ou
extremamente bom são coisas diferentes, apesar da palavra ser a
mesma. Ou, quando falo de apps, dizer que um app é levemente
caro ou levemente caro provoca sentimentos diferentes por parte de
quem está lendo. Quando eu digo que algo é levemente caro, eu estou
sendo irônico, ou estou apenas dizendo que o produto não é nem caro nem
barato?

A forma da escrita afeta o conteúdo. Ênfase, ênfase ou ênfase são
três formas de escrever a mesma palavra, mas a interpretação do leitor
varia conforme o uso dos recursos.

Outro exemplo: eu poderia simplesmente dizer que Aristóteles falou que o
todo é maior que a soma das partes. Ou poderia escrever:

O todo é maior que a soma das partes – Aristóteles

Aqui, eu não alterei a forma de uma letra, mas sim a apresentação de uma
frase. Observe como eu consigo imediatamente chamar mais a atenção.

Agora, um detalhe: eu poderia configurar este site para exibir este
texto com uma outra fonte, mas eu não precisaria escrever o texto de
novo, em outra fonte. De fato, a fonte na qual eu estou escrevendo o
texto não é a mesma no qual você está lendo. Mais: eu poderia trocar os
negritos por itálicos e não precisaria reescrever essas palavras.
Poderia trocar a forma como a citação acima é exibida. Como isso é
possível?

É possível porque esses recursos são visuais. Eles não fazem parte do
conteúdo, mas se relacionam com ele. Na prática, as informações de forma
e de conteúdo são armazenadas de forma indepedente nos computadores.

O formato mais básico de texto é o chamado texto puro, plain text em
inglês. É o texto que o leitor digita no Bloco de Notas do Windows, por
exemplo, ou no TextEdit no OS X, ou em algum editor básico do Linux. São
apenas caracteres, sem formatação nenhuma. O programa exibe o texto em
alguma fonte padrão, com algum espaçamento.

Esse formato é tão básico que se o leitor escrever algum texto no Bloco
de Notas no Windows e mandar para mim, eu vou conseguir abrir no meu
iPhone. Todos os sistemas modernos conseguem interpretar texto puro.
Além disso, esse formato é extremamente leve. Repito: são apenas letras.

Porém, como já vimos, a formatação é essencial. Eu poderia escrever
todos os meus textos em texto puro e mandar para os leitores, mas isso
está longe de ser ideal. É preciso uma maneira de, usando texto puro (um
formato que o computador consegue entender), marcar o texto,
produzindo um texto rico (um formato que o leitor consegue entender). Em
vez de armazenar as palavras em negrito, armazenam-se comandos para
produzir negrito. E, então, um programa analisa essas instruções e
produz o resultado visual desejado.

Uma linguagem que marque o texto com recursos de formatação é chamada de
linguagem de marcação (markup language).

Uma linguagem de marcação usada todos os dias

O leitor é exposto a uma linguagem de marcação todo dia, sempre que
navega pela internet em um browser. As páginas da Web são escritas em
HTML (HyperText Markup Language); é função dos navegadores interpretar
o HTML e exibir os recursos gráficos na sua tela, convertendo comandos
em pixels.

Por exemplo, este parágrafo tem a seguinte estrutura em HTML:

<p>Por exemplo, este parágrafo tem a seguinte estrutura em HTML:</p>

Repare nos elementos adicionais: <p> e </p>. Repito: um arquivo de
texto num computador é armazenado como uma sequência de caracteres,
incluindo espaços e quebras de linha. O arquivo de texto não sabe o que
é um parágrafo. O que esse comandos fazem então é instruir ao
navegador: “exiba essa sequência de caracteres como se fosse um
parágrafo, isto é, com um espaçamento antes e depois, com uma certa
tabulação etc”. Os detalhes da formatação podem ser alterados com uma
linguagem auxiliar chamada de CSS, sigla para Cascading Style Sheets
(que determinam a fonte, as margens e outros detalhes do estilo).

O parágrafo acima é interessante porque tem vários detalhes
tipográficos. Repare na sua versão em HTML:

<p>Repare nos elementos adicionais: <code><p></code> e <code></p></code>. Repito: um arquivo de texto num computador é armazenado como uma sequência de caracteres, incluindo espaços e quebras de linha. O arquivo de texto não sabe o que é um <em>parágrafo</em>. O que esse comandos fazem então é instruir ao navegador: “exiba essa sequência de caracteres como se fosse um parágrafo, isto é, com um espaçamento antes e depois, com uma certa tabulação etc”. Os detalhes da formatação podem ser alterados com uma linguagem auxiliar chamada de CSS, sigla para <em>Cascading Style Sheets</em> (que determinam a fonte, as margens e outros detalhes do <em>estilo</em>).</p>

Na maioria dos navegadores, é possível ver o código-fonte da página,
para ver como aquele site foi escrito em HTML. Recomendo como um
exercício interessante.

Separação entre produtor e consumidor

Este não é um tutorial de HTML então vamos voltar ao conceito. Uma
linguagem de marcação fundamentalmente separa o produtor do consumidor
de conteúdo. O produtor usa os comandos e os recursos da linguagem
escolhida para criar recursos gráficos.

Mas que tipo de recursos? Basta pensar em tudo que não é texto puro:

  • Margens
  • Tipo de fonte
  • Tamanho de fonte
  • Figuras
  • Tabelas
  • Equações
  • Diagramas
  • Negrito, itálico, sublinhado
  • Alinhamento dos parágrafos
  • Citações

Naturalmente, as boas linguagens permitem aos usuários criarem os seus
recursos adicionais.

Processadores de texto como o Word da Microsoft e o Pages da Apple
também usam uma linguagem de marcação, mas que fica invisível ao
público. Em vez de haver um comando para transformar uma palavra em
negrito, o usuário seleciona um texto e clica num botão. O ato de clicar
num botão efetivamente produz o comando internamente e atualiza a tela
para mostrar uma nova palavra em negrito.

A vantagem principal dessa abordagem é que ela é muito fácil de
aprender. No HTML, é preciso consultar alguma referência que o negrito é
produzido assim: <b>negrito</b>. Nos processadores, basta apertar um
botão.

Uma das “vantagens” alardeadas é que processadores são do tipo WYSIWYG,
what you see is what you get, significando que o que o leitor vê é
aquilo que está acontecendo. Se o usuário do Word está editando um texto
em Arial, o texto impresso vai estar em Arial; quando o arquivo for
mandado para outra pessoa, ele também vai estar em Arial, no mesmo
tamanho. As instruções de formatação estão codificadas internamente no
arquivo (mas independentes do conteúdo, lembre-se). O mesmo arquivo
usado para escrever o texto é usado para visualizá-lo.

Processadores de texto violam a separação entre produtor e consumidor, o
que é na verdade uma desvantagem.

O que um autor de página da Web vê quando escreve uma página em HTML é
bem diferente do que um leitor vê quando usa o Safari, Chrome, Firefox
ou outro navegador. O autor faz testes, mas quando ele está escrevendo,
ele não está preocupado com detalhes como margem e fonte. As (boas)
linguagens de marcação estimulam a boa prática de escrever e marcar o
texto de maneira apropriada, e só depois implementar a formatação. É
importante saber que em determindo lugar há uma ênfase, mas não de que
forma essa ênfase vai aparecer. É importante saber que ali há uma
tabela, mas não qual a espessura da linha.

A linguagem HTML reforça isso ainda mais ao requerer uma segunda
linguagem (o CSS) para definir detalhes de estilo. O código em HTML
define a estrutura: o que é um título, o que é um parágrafo, o que é uma
tabela, e o estilo em CSS define os detalhes: qual fonte o título usa,
qual a margem dos parágrafos, qual o tamanho das células nas tabelas.

Abordagens WYSIWYG distraem. Você está escrevendo e vê um texto poluído
cheio de imagens, e repara que uma não está corretamente alinhada. Você
interrompe a sua linha de raciocínio para arrumar a imagem. Algum tempo
depois, para de novo porque acha que a fonte não está boa. O autor é
praticamente instruído a escrever e formatar o conteúdo ao mesmo tempo,
o que é altamente improdutivo. É preciso ter muita força de vontade para
escrever sem se deixar distrair pelos detalhes.

Para piorar, as linguagens de marcação por trás de processadores
comerciais de texto não são nem um pouco robustas. Quantas vezes o
leitor já abriu um documento do Word para encontrar o trabalho da semana
toda desorganizado? Algum erro interno na hora de salvar e abrir de novo
o documento provocou um desastre.

Para produzir documentos sérios, em que se controla a aparência final
com precisão, é preciso usar uma linguagem de marcação que esteja
explícita, e não que esteja escondida.

E o LaTeX?

Esse texto começou pequeno na minha cabeça e já se tornou grande demais.
Num post futuro, vou falar especificamente do LaTeX e em como ele se
encaixa nesse cenário.

Advertisements

4 thoughts on “O Futuro do LaTeX, Parte I – A importância de linguagens de marcação

  1. Quando li seu excelente texto sobre o Futuro do LaTeX fiquei na expectativa de ler a segunda parte, mas não o encontrei. De todo modo, parabéns pelo texto.

    1. Obrigado, Thiago. De fato, tinha muitas ideias para esse tema, mas acabei abandonando depois desse texto. Pode ser uma boa oportunidade agora para continuar, já que amadureci muitos pensamento sobre o LaTeX desde então, depois de concluir minha dissertação.

      > > >

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s