A estrutura das mensagens de erro do TeX

Mensagens de erro do TeX lembram uma época em que o próprio TeX foi concebido (anos 70): elas não são muito fáceis de usar, mas contêm toda a informação que o TeX pode oferecer, geralmente de forma bem concisa. Todos os relatórios de erro do TeX tem a mesma estrutura:

A mensagem de erro vai estar relacionada à condição do TeX que estiver causando um problema. Infelizmente, no caso de pacotes de macros complexos como o LaTeX, o problema subjacente do TeX pode ser superficialmente difícil de ser correlacionado com o problema nas macros de “alto nível”. Muitos problemas detectados pelo LaTeX se manifestam como erros “genéricos”, com texto de erro fornecido pelo próprio LaTeX (ou por uma classe ou pacote LaTeX).

O contexto do erro é uma representação estilizada do que o TeX estava fazendo no momento em que detectou o erro. Como descrito em Como lidar com erros, um pacote de macros pode dizer ao TeX quanto de contexto ele deve exibir, e o usuário talvez tenha que desfazer o que o pacote fez. Cada linha de contexto é dividida no momento do erro; se o erro realmente tiver ocorrido em um macro solicitada na linha em questão, a quebra estará no ponto da solicitação. (Se o objeto solicitado for definido com argumentos, o “ponto de solicitação” é depois de todos os argumentos terem sido lidos.) Por exemplo:

\blah and so on
produz o relatório de erro
! Undefined control sequence.
l.4 \blah
          and so on
enquanto:
\newcommand{\blah}[1]{\bleah #1}
\blah{to you}, folks
produz o relatório de erro
! Undefined control sequence.
\blah #1->\bleah 
                 #1
l.5 \blah{to you}
                 , folks
Se o próprio argumento estiver incorreto, veremos coisas do tipo
\newcommand{\blah}[1]{#1 to you}
\blah{\bleah}, folks
produzindo
! Undefined control sequence.
 \bleah 
                  
l.5 \blah{\bleah}
                 , folks

O prompt aceita comandos de caractere único: a lista do que está disponível pode ter ser obtida ao digitar ? . Um comando imediatamente valioso é o h, que te dá uma expansão do resumo original do TeX, por vezes acompanhada por uma dica de como contornar o problema em curto prazo. Se você simplesmente teclar ‘return’ (ou o que o seu sistema use para assinalar o fim de uma linha) no prompt, o TeX vai tentar prosseguir (geralmente com pouco êxito).


Do you have any question? Ask on: latex.net.br - we love qood questions!