Prof, piccola spiegazione.
Se next è uguale (codice carattere – codice categoria) alla stringa amsmath non fa una mazza, altrimenti si ha
`\RequirePackage[opzioni]{pacchetto}`Ma non sarebbe stato uguale scrivere
`
\renewcommand{\RequirePackage}[2][]{%
\def\next{#2}\def\nxt{amsmath}%
\ifx\next\nxt\else\origRequirePackage[#1]{#2}\fi} `
❓o ci sono problemi di espansione?
Era esattamente come avevo provato io, ma poi mi sono scontrato con la sintassi di \RequirePackage, che prevede un argomento opzionale anche dopo quello obbligatorio (per la data di rilascio del pacchetto). Perciò occorre quel trucco di nascondere \origRequirePackage[#1]{#2} in una macro in modo da poter usare \expandafter per espandere il \fi e toglierlo dai piedi. A quel punto viene espanso \rightRequirePackage e tutto torna a posto.
Ciao
Enrico