Salve a tutti!
Ho un problema ed ho paura che possa essere un bug di tetex-3.0_r6 (uso Linux).
In un file con delle figure ho la seguente caption:
\begin{figure}
…………
\caption{\$left| \alpha \right \rangle$}
\end{figure}Se compilo va tutto x il verso giusto. Tuttavia, se richiedo anche la lista delle figure, mi viene stampato il seguente errore:
Missing number, treated as zero. …bla bla bla}{[numero]}{[numero figura]}
Se guardo il file principale.lof mi trovo la seguente scritta:
\contentsline {figure}{\numberline {5.3}{\ignorespaces $\left |\alpha \right \delimiter “526930B $}}{[numero]}{figure. [numero rigura]}
L’errore è dovuto al fatto che c’è uno spazio tra “\left” e “|”. Chi lo ha inserito????
C’è di più: se compilo con la sillabazione NON ITALIANA, l’errore svanisce.A qualcuno succede la stessa cosa? è magari colpa mia?
L’errore non dipende dallo spazio aggiunto (è il meccanismo di scrittura sui file ausiliari il responsabile) perché spazi dopo un comando sono sempre ignorati.
Il problema è che con il modulo italiano di babel il carattere ” diventa attivo, cioè si comporta come se fosse un comando, e il meccanismo di scrittura espande il comando \rangle; purtroppo la definizione contiene ” che in condizioni normali serve a dire che il numero che segue è in formato esadecimale (\delimiter si aspetta di essere seguito da un numero). Ma con il modulo per l’italiano in vigore tutto va storto.
Soluzione:
`\caption{$| \alpha \protect\rangle$}`
Ciao
Enrico