::
Grazie, funziona perfettamente.
Mi spieghi come funziona?
Volentieri. Vista la domanda, ho cercato in giro e ho trovato una “soluzione” che consisteva nel fare “a occhio” quello che invece si può impostare con precisione; ed ecco la soluzione:
`\newcommand\flag{%
\settowidth{\dimen@}{\@nameuse{label\@enumctr}\hskip\labelsep}%
\makebox[0pt][r]{*\,\kern\dimen@}}`
Occorre sapere che, appena LaTeX incontra il comando \item in un ambiente enumerate, fa scattare il contatore e quindi l’espansione del comando \labelenumi (\labelenumii, \labelenumiii oppure \labelenumiv) è l’etichetta che viene posta davanti all’elemento della lista. Fra l’etichetta e il testo viene posto uno spazio di ampiezza \labelsep.
Come fa LaTeX a conoscere quale fra i quattro “\labelenumX” deve usare? A ogni livello di annidamento ne viene usato uno; al momento di \begin{enumerate} viene definito \@enumctr con espansione “enumi”, “enumii”, “enumiii” oppure “enumiv”. Con \@nameuse{label\@enumctr} è come se usassi \labelenumi, se \@enumctr si espande a “enumi”, e lo stesso negli altri casi.
A questo punto si può capire che fa \flag. La prima cosa è impostare \dimen@ all’ampiezza di “\labelenumi” (ma può essere \labelenumii, eccetera, se siamo a un livello di annidamento superiore) seguita da uno spazio \labelsep. Poi il trucco finale: inseriamo una box larga zero con allineamento al bordo destro: quindi il contenuto della box sporgerà sulla sinistra rispetto al punto in cui la box viene composta; il contenuto è proprio il segnale (l’asterisco), seguito da un piccolo spazio di separazione e, infine, uno spazio dell’ampiezza calcolata prima che ci permette di “saltare” l’etichetta.
Ci sono limitazioni: funziona solo se l’etichetta è, come nel caso standard di LaTeX, anche usando il pacchetto “enumerate”. composta a filo della separazione \labelsep. Se dovessi usare enumitem, occorre fare attenzione a come viene posta l’etichetta nello spazio che viene riservato. Seconda limitazione: \flag fa entrare in modo orizzontale, quindi un eventuale \begin{enumerate} che seguisse \item\flag andrebbe alla riga successiva.
Ciao
Enrico