Nesta nossa jornada dentro da mistura do LaTeX com o Emacs, já vimos um pouco sobre por quê usar Emacs, como criar uma configuração, e como integrá-lo em um workflow voltado para a produção de um documento.
Mas, até agora, não vimos de fato como esse processo funciona; só encaixamos as peças e criamos o ambiente. Agora, antes de seguir para coisas mais avançadas como revisão ortográfica, controle de versão ou organização de um projeto, vamos fazer uma pausa e rever a sequência de eventos que leva de criar um novo arquivo do zero até obter o PDF resultante dele.
Fluxo de Trabalho
Escrever um documento é um processo cíclico – escrevemos uma parte, revisamos, alteramos algumas coisas, adicionamos outras, revisamos novamente, e vamos fazendo isso num processo incremental até chegar em um resultado que seja satisfatório. Tirando algumas etapas iniciais – já vamos falar delas – é um loop, como deve ser. Ninguém senta pra escrever com algo pronto na cabeça e faz tudo de uma vez.

O primeiro passo, naturalmente, é criar o arquivo. Na verdade, raramente eu crio um arquivo completamente vazio; na maioria das vezes o ponto de partida é um documento recente, que já tem um preâmbulo razoável que eu posso adaptar para a necessidade imediata. Mas, pra deixar as coisas um pouco mais simples, vamos com algo “do zero”.
Configuração inicial
Antes de mais nada, vem a configuração inicial do documento – classe, parâmetros, fontes, e assim por diante.
O \documentclass define a classe do documento – article, report, book, ou alguma outra opção, como classes específicas de alguma revista ou algo assim.
Em seguida, pacotes iniciais; estamos no XeLaTeX, então temos:
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{polyglossia}
\setmainlanguage{brazil}
\setotherlanguages{english}
\setmainfont{Linux Libertine O}
\setsansfont{Roboto Condensed}
\setmathfont{XITS Math}
O exemplo acima é de um documento que eu preparei recentemente; fontspec e unicode-math são a espinha dorsal do documento: eles controlam as fontes que são usadas no documento, tanto no texto quanto na matemática. As fontes definem o tamanho dos caracteres, espaçamento, kerning e outros parâmetros tipográficos, e isso define a forma como o documento vai ser composto.
Uma das vantagens do XeLaTeX é que ele facilita muito o uso de fontes. Podemos só nomear uma fonte que esteja instalada no sistema – incluindo fonte TrueType – e seguir em frente.
Outro pacote importante é o polyglossia – com ele podemos definir o idioma do documento e acrescentar idiomas adicionais – inglês, por exemplo – o que ajuda na hifenização, nomeação de elementos como tabelas e figuras, e outras regras tipográficas.
FInalmente, definimos as fontes padrão a serem usadas no documento – com serifa, sem serifa e matemática.
Outros pacotes podem ser adicionados – mas este post não é sobre isso, então vamos ficar só com esse padrão. Cada um escolhe os pacotes que achar mais importantes.
Escrevendo
Com o preâmbulo fora do caminho, estamos livres do peso de pensar na organização do texto na página ao mesmo tempo em que vamos escrevendo. O LateX vai se virar com o conteúdo que dermos pra ele, e por isso o importante fica em evidência aqui: como escrever o que queremos.
Abrindo o arquivo .tex no Emacs, já entramos no LaTeX-mode automaticamente, e com isso todas as configurações que montamos já estão ativas.
Conforme vamos escrevendo, company-mode e company-auctex vão sugerindo formas de completas a escrita, impulsionando nossa eficiência sem invadir nosso espaço; afinal, é uma ferramenta local. É parecido com o Clippy, aquele assistente do Word de antigamente, mas sem ser intrusivo.

company-auctexPor exemplo, se começarmos a escrever \sec, já vai surgir uma sugestão para completar o \section, junto com outras possíveis variações que comecem com os mesmos caracteres.
Além disso, também podemos usar C-c C-e para incluir ambientes como figure ou table, com o Emacs já perguntando quais propriedades usar (legenda, etiqueta, posicionamento, número de colunas, e assim por diante), de acordo com o ambiente que estivermos incluindo.
O outline-minor-mode permite visualizar capítulos, seções, subseções, figuras e tabelas. Usando C-c = ele nos mostra a estrutura do documento, com capítulos, seções, figuras, tabelas e assim por diante, onde podemos navegar pelo documento:


O visual-line-mode impede a quebra “dura” de linhas, de forma que as linhas muito longas se “dobram” sem de fato serem quebradas, mantendo a sequência lógica. Uma mesma linha vai continuar com o mesmo número de linha, como na figura ao lado. Aliás, note também que a linha atual mostra de fato em qual linha do documento estamos – mas as outras linhas têm números relativos, o que facilita na hora de entender o tamanho de uma parte do texto.
Etiquetas, referências e citações
Numeração e referência automáticas de elementos do texto é provavelmente uma das maiores bênçãos de usar LaTeX no lugar de outras ferramentas – números de figuras, equações e tabelas, além de citações, são gerenciados automagicamente, e se mudamos alguma coisa no texto não precisamos perder nossa sanidade verificando se os números estão certos.
Etiquetas podem ser incluídas com C-c (. o AUCTeX é inteligente o suficiente para saber que tipo de etiqueta você quer incluir: ele sugere um prefixo de acordo com o ponto do texto onde você está, indicando se é uma figura, tabela, seção ou outra coisa.
Uma referência é incluída com C-c ), o que abre um menu perguntando que tipo de referência vai ser usada: referência direta, nota de rodapé, ou uma referência de página, por exemplo.
Citações vão com C-c [, e de novo ele pergunta que tipo de citação vai ser usado: padrão, Autor-Ano, sobrescrita, etc. Escolhido o tipo de citação, ele pede uma expressão regular para busca e mostra as entradas de bibliografia que ele encontrar. Daí marcamos as que quisermos com m (e desmarcamos com u, caso seja um engano), e insere automaticamente o comando de citação quando apertamos o Enter.
Compilação
Para compilar o arquivo, usamos C-c C-c. Esse comando é o gatilho para o Emacs/AUCTeX iniciarem o LatexMk, que usa a configuração que definimos lá no .latexmkrc para fazer a compilação. O Emacs inclusive dá a opção de acompanhar o processo, usando C-c C-l, que abre outra janela para mostrar a saída da compilação. Se houver erros, podemos alternar para o buffer que mostra a compilação, ir até a linha onde o erro aparece e, com Enter, ele pula direto para a linha do fonte onde o problema aconteceu.
Terminada a compilação (supondo que não haja erros, que também podem ser encontrados na janela que mostra a saída do processo), podemos visualizar o PDF com C-c C-v. O arquivo é aberto direto dentro do Emacs, e dá pra fazer o referenciamento entre o fonte e o PDF diretamente – clicando com o botão direito do mouse no PDF ou C-c C-v no fonte (da primeira vez ele já abre o arquivo direto no ponto onde estivermos).

A figura acima mostra a janela do Emacs com um documento aberto. No buffer da esquerda, está o fonte LaTeX, e à direita está a visualização do arquivo PDF. Para abrir esse PDF, eu usei o atalho C-c C-v que eu mencionei lá em cima. Note que, no PDF, tem uma discreta setinha vermelha indicando onde no PDF está a parte correspondente ao ponto onde está o cursor no fonte.
Conclusão: Seguindo o fluxo
A partir daqui, é só repetir até acabar. Com o fonte de um lado e o PDF do outro, é só ir trabalhando no texto até que ele esteja pronto.
Depois de rever as vantagens do LaTeX, a escolha do Emacs (e a história da computação…), a configuração dos pacotes e ferramentas necessários e uma visão geral do processo de escrita, finalmente podemos ter uma visão um pouco mais ampla a respeito do processo todo.
É necessário admitir que, para muita gente, ter esse trabalho todo não é atraente. E eu entendo isso; muita gente só quer abrir o programa e sair escrevendo, sem ter que ficar se debruçando sobre configurações, pacotes, escolhas, ferramentas, e assim por diante. E tá tudo bem com isso!
Mas, pelo menos pra mim, é fundamental conhecer mais profundamente o processo todo, e saber como ele funciona, saber quais opções foram tomadas e a razão por trás de cada uma delas. Considerando a maneira como a minha cabeça funciona, eu me sinto mais confortável montar o sistema como se fosse um quebra-cabeças.
Essa abordagem é mais lenta, principalmente no começo. Ela exige tempo, atenção, paciência e muitas – muitas! – decisões. Em troca, o produto final é completamente consistente e se comporta de forma estável. Eu não fico dependendo de um servidor externo, nem de uma ferramenta que, efetivamente, é uma “caixa-preta”.
Não se trata apenas de preferência técnica. Em uma perspectiva bem mais pessoal, ter um sistema previsível, com regras claras, onde cada peça tem um papel definido, reduz a carga cognitiva do processo. Ao escrever, não preciso ficar pensando em como as coisas estão acontecendo – ter a imagem das diferentes partes móveis trabalhando em conjunto pode parecer complexo, mas na verdade é um fator de conforto.
Construindo um ambiente que é conhecido, previsível, consistente, que interfere o mínimo possível, que permite que o foco se mantenha no conteúdo e que, portanto, diminui o risco de sair em tangentes, e ajuda a manter o foco para que a gente possa trabalhar na parte realmente difícil: escrever algo que preste.
E agora?
A partir daqui, o núcleo do workflow está completo.
Nos próximos posts, a ideia é expandir o sistema, adicionando partes que não são essenciais – mas ajudam muito. Organizar projetos maiores, estruturar templates, fazer controle de versão com Git e revisão ortográfica, por exemplo. Cada pedaço vai ampliar o processo que criamos até agora, de acordo com a necessidade.


Deixe um comentário