antonio.macrì” post=64657A me ne servono due 😕
Comunque, è l’approccio giusto mettere tanti \@firstofone a seconda di qual è il massimo numero di parentesi che si prevede di dover rimuovere?
Voglio che quel codice funzioni anche con 0 (classe book standard), una (\setenumerate con label e ref) e due (\setenumerate con label) coppie di parentesi spurie.
Come avrai visto, funziona anche con il primo riferimento che nel file .aux compare come
`\newlabel{cap}{{1}{1}{Numerato\relax }{chapter.1}{}}`
cioè senza graffe in più.
La definizione di \@firstofone è semplice:
`\long\def\@firstofone#1{#1}`
Perciò, se \x vale {2} (con le graffe in più), avremo successivamente
`\expandafter\@firstofone\x
\@firstofone{2}
2`
Se invece \x si espande a 1 (senza graffe), avremo
`\expandafter\@firstofone\x
\@firstofone 1
1`
Ma se anche \x si espandesse a 123, avremmo
`\expandafter\@firstofone\x
\@firstofone 123
123`
perché l’argomento di \@firstofone è 1.
Certo, ci sarebbe un problema se \x si espandesse a niente, ma \getrefnumber restituisce 0 se il riferimento non è ancora definito.
Ciao
Enrico