::
L’autore di quel codice lo ha preso da amsmath.sty e ha cambiato le parentesi tonde in quadre. Ecco il codice che ti interessa, preso ora da amsmath.sty
`\def\maketag@@{\@ifstar\maketag@@@\tagform@}
\def\maketag@@@#1{\hbox{\m@th\normalfont#1}}
\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}`
una spiegazione sommaria te la posso dare anche io: \maketag@@@ che viene richiamato da \tagform@ compone una scatola orizzontale e \tagform@ dentro questa scatola inserisce la parentesi (, ignora eventuali spazi spuri, mette il numero #1, inserisce uno spazio negativo per attaccare la parentesi ) al numero e poi inserisce la correzione corsiva. Non mi chiedere perché non ha scritto un più semplice
`\def\tagform@#1{\maketag@@@{(#1)}}`
perché non ne ho idea. Tra l’altro dà lo stesso risultato. Meglio se aspettiamo Enrico.
Il comando \tag può essere nella forma *; ma \tag in realtà ha molte definizioni che dipendono dall’ambiente in cui si è. In sostanza, però, dopo aver fatto alcuni compiti amministrativi, chiama per ultimo il comando \maketag@@. Se dopo questo c’è l’asterisco, viene chiamato \maketag@@@, altrimenti viene chiamato \tagform@ e l’asterisco viene eliminato dalla lista di token.
A sua volta, \tagform@ è definito in termini di \maketag@@@. Se c’è l’asterisco, l’etichetta (tag) viene composta così com’è, senza aggiungere nulla, nel font normale del documento; il comando \m@th è una precauzione per possibili problemini. Altrimenti vengono aggiunte le parentesi.
Perché quelle strane aggiunte? Siccome c’è chi si allarga, potrebbe capitare che si trovi
`\tag{ * }`
che darebbe un risultato scorretto. Allora c’è \ignorespaces che elimina lo spazio davanti, mentre \unskip elimina lo spazio che segue; in fondo c’è \@@italiccorr che è l’alias di LaTeX per il comando primitivo \/ (che in LaTeX viene ridefinito). Infatti, se l’etichetta fosse in corsivo, si appiccicherebbe in modo scorretto alla parentesi di chiusura; con questa invece viene applicata la correzione corsiva relativa all’ultimo carattere. Non serve solo per il corsivo, a dire il vero: prova “f)” e “f\/)” e vedrai la differenza.
Ciao
Enrico