franen” post=80241Perdonami, ma non ho capito la tua risposta. Che c’entra [tt]\cs_new…[/tt]?
Io con questo codice riesco a compilare. Non uso arogomenti espandibili, quindi non ho la certezza che tutto funzioni a dovere, Roberto ci dirà.
Ecco, appunto: non hai fatto alcuna prova. 🙂
Ora provo a rispiegare. Il codice
`\cs_new_protected:Npn \robitex_numx:nx #1#2 { \num[#1]{#2} }`
è del tutto equivalente a
`\protected\long\gdef\robitex_numx:nx #1#2{\num[#1]{#2}}`
(se si eccettua il fatto che viene prima controllato che [tt]\robitex_numx:nx[/tt] non sia definita). Non è che solo per il nome succedano cose magiche; se anche usassi
`\cs_new_protected:Nn \robitex_numx:nx { \num[#1]{#2} }`
non avresti niente di diverso, perché questa variante si limita a contare il numero di caratteri dopo i due punti fornire la corretta lista di parametri (in questo caso [tt]#1#2[/tt]).
Ripeto: con [tt]\cs_new:Npn[/tt] (e con le funzioni della stessa famiglia) si definiscono solo funzioni con argomenti di tipo [tt]N[/tt] o [tt]n[/tt]. Se ti occorrono varianti con argomenti di tipo diverso ([tt]cvVfxo…[/tt]) devi adoperare [tt]\cs_generate_variant:Nn[/tt].
Ciao
Enrico