Sono sinceramente impressionato.
Ti assicuro che non è poi così difficile 🙂
Vediamo come funziona: \sectionwithref è una macro con un solo argomento, anche se poi l’uso è come se fosse con un argomento obbligatorio, uno opzionale e un altro obbligatorio.
Il lavoro di \sectionwithref è di raccogliere il primo argomento e immagazzinarlo in una macro per l’uso successivo. Poi chiama \@dblarg{\@sectionwithref}, un trucco per fare in modo che se non c’è l’argomento opzionale, sia implicitamente uguale a quello obbligatorio.
Adesso definiamo la macro più importante, \@sectionwithref’; l’argomento “opzionale” è #1, mentre quello “obbligatorio” è #2. La prima cosa che si fa è di cominciare una sezione e definire l’etichetta con
`\section[#1]{#2}\label{pippo}`
(qui assumo che l’etichetta sia “pippo”).
Poi definisco il comando \titleref@pippo che si espande al titolo lungo (#2) e analogamente il comando \abbrtitleref@pippo.
A questi comandi non ci si riferisce direttamente, ma vengono chiamati con \titleref{pippo} e \abbrtitleref{pippo}.
Ciao
Enrico