\ifcat confronta i due token che lo seguono (attenzione che espande fino a che ne trova due non espandibili).
Già lo sapevo 😀
\ifcat confronta i due token che lo seguono (attenzione che espande fino a che ne trova due non espandibili).
Se #1 è un carattere normale, \ifcat dà falso (puoi considerare che \relax abbia codice di categoria 16, a questo scopo). Se invece #1 è, per esempio, \omega, \ifcat dà vero.
L’unico caso in cui un token complesso (del tipo \abc) non ha codice 16 (ai fini di \ifcat) è quando è stato definito con \let\abc=
. Per esempio \ifcat\bgroup{ dà risultato vero.
Grazie, sei stato chiaro, anche se io forse avrei scritto una cosa più netta e diretta tipo
`\DeclareRobustCommand{\nero}[1]{\ifcat#1\alpha\bm{#1}\else\mathbf{#1}\fi}`
Ciao
Andrea