TeX e LaTeX. Correggere gli underfull e gli overfull

Dopo aver compilato un documento LaTeX, c'è una buona probabilità di trovare nel log molti warning relativi a testo che sfora dai margini o a troppo spazio tra un paragrafo e l'altro. Vediamo ora alcuni modi per affrontare questi problemi. Come prima cosa ricordiamo che tali modifiche vanno fatto SOLAMENTE alla fine, quando il testo, le figure, l'impaginazione ecc non cambieranno più.

Problemi orizzontali

Nei titoli usare gli argomenti opzionali dei comandi di sezionamento.

Mettendo nel preambolo il comando \overfullrule=... (dove al posto dei puntini dovete mettere una lunghezza di svariati mm) tutti gli overfull verranno evidenziati con un rettangolone nero. La prima cosa da riguardare è se il testo è scritto correttamente (basta poco perché si ottenga un risultato completamente diverso). Poi si può forzare la sillabazione o sul posto (fri\-go\-ri\-fe\-ro) o nel preambolo aggiungendo parole al dizionario. Si può riformulare il capoverso. Se tutto questo non dovesse funzionare o non si può applicare, allora si può passare alle maniere forti. Questo un link interessante: http://www.tex.ac.uk/FAQ-overfull.html. Per riassumere il link, la cosa più semplice da fare è inserire il capoverso incriminato all'interno di un ambiente sloppypar. Esempio

...

\begin{sloppypar}
....
\end{sloppypar}

...

Questo un altro link interessante sul funzionamento di TeX.

Problemi verticali

Spostare le figure e le tabelle può aiutare molto. Per spostarle basta spostare il codice della figura/tabella di qualche capoverso. Oppure si possono dare dei \clearpage manuali.

Se comunque rimangono delle righe orfane (prima riga di un capoverso che finisce da sola alla fine di una pagina) o vedove (ultima riga di un capoverso che finisce da sola in cima a una pagina nuova) si può agire in vari modi. Come al solito ricontrollare il tutto e vedere se si può riformulare il capoverso. Se non funziona o non si può fare, allora si può provare a usare \looseness. Si riferisce al capoverso in cui si trovano. Il numero indica le righe che LaTeX deve provare ad aggiungere (togliere se negativo).

...
...

\looseness=1
...
...

\looseness=-1
...
...

...

Un altro approccio è usare \enlargethispage. In pratica allarga o restringe la pagina di una certa quantità. Chiaramente se due pagine sono affiancate sarà brutto vedere una che finisce più in fondo dell'altra. In questo caso darlo in entrambe le pagine. Usando come unità di misura \baselineskip si evitano problemi di impaginazione perché così si toglie o aggiunge un numero intero di righe.

\enlargethispage{1\baselineskip}
\enlargethispage{-1\baselineskip}

Se si vuole aggiungere questi comandi nell'indici di un documento:

\addtocontents{toc}{\protect\enlargethispage*{\baselineskip}}