A dire il vero non sapevo nemmeno che l’ambiente centering esistesse.
Ma che fa in realtà. Perché se scrivo una roba tipo
`testo testo testo\begin{centering}
altro testo da centrare
\end{centering}e poi ancora testo`
Infatti non esiste alcun ambiente centering, ma per come è costruito LaTeX ogni comando può essere usato come “pseudoambiente”. Per esempio \begin{alpha}\end{alpha} produce, in modo matematico, lo stesso risultato di \alpha. Naturalmente questo è un esempio stupido, a volte usare una dichiarazione come \large o simili può essere utile. Ma occorre ricordare in questi casi di inserire un \par (o una riga vuota) prima di chiudere l’ambiente. La definizione di \centering è
`\let\\\@centercr
\rightskip\@flushglue
\leftskip \@flushglue
\parindent\z@
\parfillskip\z@skip`
La prima assegnazione dice che \\ deve funzionare come \center@cr, una variante del fine riga; la seconda e la terza dicono che \leftskip e \rightskip devono essere espandibili “all’infinito”; poi viene posto il rientro normale a zero e viene ordinato di non aggiungere nulla alla fine dei capoversi (di solito si esegue invece un comando equivalente a \hspace*{\fill}, per riempire di bianco la riga finale).
Scrivere \begin{centering} equivale essenzialmente a dire \begingroup\centering, mentre \end{centering} equivale a \relax\endgroup, perché \endcentering non è definito.
Adesso vedi il problema? Nel tuo input il \par (cioè la riga vuota) viene dopo \endgroup, quando cioè le impostazioni di \leftskip, \rightskip e \parfillskip sono state annullate. TeX usa quei parametri con il valore valido al momento del \par. Quindi comporrà il testo all’interno dello pseudoambiente con \leftskip e \rightskip nulli e \parfillskip uguale al valore usuale: il \centering è come se non ci fosse!
Il mio esempio è analogo: ci sono solo due spazi spuri in più, ma nessuna centratura.
Un altro parametro che viene valutato solo alla fine del capoverso è \baselineskip: per questo, per scrivere un capoverso in corpo maggiore occorre scrivere, per esempio,
`{\Large Ecco un testo più grande …\par}`
altrimenti l’avanzamento di riga usato sarebbe quello valido fuori dalle graffe e non quello impostato da \Large.
Dunque, mai usare \begin{centering} o \begin{Large} se non si sa ciò che si sta facendo. C’è poi il problema degli spazi spuri, che entra anche qui.
Ciao
Enrico