Saltar para o conteúdo
Topos Uranos

Resumo

Esta aula ensina a compilar com segurança e a corrigir o que falha. Explica que uma compilação se faz em passagens, por que as referências cruzadas e o sumário precisam de uma segunda, e como o latexmk repete as passagens por conta própria, no Texmaker e no terminal. Ensina a ler o log: onde ele está, como se lê um erro com sua linha de exclamação, seu número de linha e seu contexto partido em dois, e o que distingue um erro de uma advertência e de um aviso de caixa transbordada. Percorre os erros mais frequentes com suas mensagens reais, os modos de interação do motor e uma estratégia de depuração: ler primeiro o primeiro erro, dividir o código-fonte ao meio, reduzir o problema a um exemplo mínimo, limpar os arquivos auxiliares e buscar o texto da mensagem. Termina com as advertências às quais convém dar atenção.

Objetivos de aprendizagem

  1. Explicar por que um documento com referências cruzadas ou sumário precisa de mais de uma passagem, e compilá-lo com o latexmk.
  2. Ler um erro do log e identificar sua mensagem, a linha em que o motor o detectou e o ponto exato dessa linha.
  3. Reconhecer os erros mais frequentes por sua mensagem e relacionar cada um com suas causas prováveis.
  4. Localizar a causa real de um erro quando ela não está na linha indicada, lendo primeiro o primeiro erro e dividindo o código-fonte ao meio.
  5. Distinguir as advertências que exigem uma correção das que podem ser ignoradas.

O que faz uma compilação

O motor lê o código-fonte uma única vez, do começo ao fim, e compõe cada página à medida que avança. Essa leitura única tem uma consequência: quando na segunda página aparece uma referência à seção cinco, ou quando o sumário da primeira página deve listar seções que ainda não foram lidas, o motor ainda não pode saber que número ou que página lhes corresponde. A solução do LaTeX é trabalhar em passagens. Em cada uma, ele anota no arquivo .aux o número e a página de cada rótulo (os que se colocam com \label), e no arquivo .toc os títulos das seções; na passagem seguinte, lê esses arquivos no início e usa o que foi anotado. Segue-se daí que, na primeira compilação, as referências aparecem como dois pontos de interrogação e o sumário sai vazio, e que basta compilar outra vez para que se completem. Se uma alteração desloca os números, pode ser necessária uma terceira passagem; a bibliografia, como se verá em sua unidade, acrescenta mais um programa, o Biber, entre as passagens.

Contar passagens à mão é tedioso e sujeito a esquecimentos. Para isso existe o latexmk, um programa que vem com as distribuições: executa o motor, examina o log e os arquivos auxiliares e repete as passagens, ou chama o Biber, até que nada mude. Sua opção -lualatex indica que use o LuaLaTeX, e sua opção -c apaga os arquivos auxiliares, conservando o PDF.

ExemploO latexmk no terminal

A primeira ordem compila tese.tex com o LuaLaTeX tantas vezes quantas forem necessárias; a segunda limpa os arquivos auxiliares.

Terminal
$ latexmk -lualatex tese.tex$ latexmk -c tese.tex

No Texmaker, uma das sequências predefinidas da compilação rápida usa o latexmk (LatexMk + View PDF); na lista de comandos da janela de configuração, o comando do latexmk é trocado por latexmk -lualatex -synctex=1 -interaction=nonstopmode %.tex, para que use o LuaLaTeX e conserve a sincronização com o PDF.