Lezione 15

Affrontare gli errori

Questa lezione descrive alcuni errori comuni nei documenti LaTeX, ne mostra il significato e insegna come evitarli.

A differenza di quanto accade in un comune elaboratore di testi, il ciclo modifica-esegui-visualizza proprio di LaTeX è più vicino a quello dei compilatori di linguaggi di programmazione. Come nella programmazione, infatti, gli utenti di LaTeX possono commettere ‘errori’ nella scrittura dei file sorgente, e quindi debbono saper gestire i relativi messaggi segnalati dal sistema.

Errori comuni

Questa pagina contiene alcuni esempi di errori comuni nella scrittura del codice e dei relativi messaggi d’errore. Di ogni messaggio, poi, descriveremo brevemente la forma.

Ti raccomandiamo di provare gli esempi e di modificare il codice direttamente nel browser per provare a correggere i documenti e verificare di essere in grado di risolvere gli errori.

pdflatex non viene trovato

Un primo errore comune in cui tipicamente gli utenti alle prime armi si imbattono è il seguente:

'pdflatex' is not recognized as an internal or external command,
operable program or batch file.

su Windows, o

bash: pdflatex: command not found

su Linux e sistemi di tipo Unix.

Questo non è un errore segnalato da TeX, ma del sistema operativo, il quale lamenta che TeX non è installato o non è stato trovato. Spesso, infatti, si installa un editor come TeXworks o TeXShop senza avere installato un sistema TeX come TeX Live o MiKTeX.

Anatomia di un messaggio d’errore di TeX

\documentclass{article}
\usepackage[T1]{fontenc}

\newcommand\miocomando{\textbold{hmmm}}

\begin{document}

Il mio comando è adoperato qui: \miocomando.

\end{document}

La composizione di questo codice produce un messaggio di più righe nel file di registro e nella console del tuo editor, se attiva

! Undefined control sequence.
\miocomando ->\textbold 
                       {hmmm}
l.8 Il mio comando è adoperato qui: \miocomando
                                      .
? 

Ecco che cosa significa.

Osserva, a questo punto, che TeX non vede l’errore nel punto in cui il comando è stato definito: infatti, se \miocomando fosse solo definito ma non effettivamente adoperato, TeX non si lamenterebbe. Quindi, sebbene l’errore venga individuato alla riga 8, l’errore vero sta nella definizione alla riga 4, quindi è importante esaminare l’intero messaggio di errore.

Fa’ attenzione: alcuni editor mostrano un ‘riepilogo’ del registro degli errori lungo una riga soltanto. La cosa può essere particolarmente fuorviante se mostrata come

line 8: undefined command: ...\miocomando

Infatti, sembra che il comando \miocomando non sia definito (quando, invece, lo è).

Graffe spaiate

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[leqno}{amsmath}

\begin{document}

\end{document}

Qui l’errore è la graffa di chiusura } dopo leqno: a questo punto del corso, dovresti sapere che un argomento facoltativo è racchiuso tra parentesi quadre. Perciò, l’analisi delle opzioni di LaTeX fallisce, ma questa volta l’errore non è così chiaro:

! Argument of \@fileswith@ptions has an extra }.

Se la descrizione dell’errore non è utile, le due righe successive del messaggio ne mostrano con precisione la posizione mediante la solita interruzione della riga, che mostra fino a dove TeX aveva letto:

l.4 \usepackage[leqno}
                      {amsmath}

File mancanti

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{amsmathz}

\begin{document}

\end{document}

Questo codice produce l’errore

! LaTeX Error: File `amsmathz.sty' not found.

Osserva che questo stesso errore può essere dovuto a due cause diverse: o a un semplice errore di battitura come qui, eliminabile correggendo il nome del pacchetto; o al fatto che il file manca davvero e pertanto deve essere installato nel sistema.

Righe vuote nella matematica in display

\documentclass{article}
\usepackage[T1]{fontenc}

\begin{document}

Some text
\begin{equation}

  1=2

\end{equation}

\end{document}

Produce l’errore un po’ misterioso

! Missing $ inserted.

Ma la spiegazione è semplice: negli ambienti matematici le righe vuote non sono ammesse. Per correggere l’errore, dunque, basta eliminarle.

Esercizi

Prova a correggere gli errori nei codici d’esempio di questa pagina.

Scrivi piccoli documenti contenenti errori diversi e prendi nota
della forma dei messaggi d’errore.