15 Maggio 2011 alle 16:02
#58843
::
No, \edef esegue l\espansione del contenuto della definzione, quindi \etb@tempa non contiene più \detokenize{#1} ma contiene il parametro #1 detokenizzato, cioè come una stringa di caratteri a ciascuno dei quali è stato tolto il codice di categoria iniziale; e lo stesso succede per l’altra variabile\etb@tempb.
Quindi il test è vero quando le due stringhe sono identiche indipendentemente dai codici di categoria che ogni carattere poteva avere prima di essere detokenizzato. Se non ci fosse il comando \detokenise, l’espansione delle due stringhe andrebbe fino in fondo e non si fermerebbe al primo livello.