Funziona perfettamente!! 😀
Mi sapresti spiegare cosa fanno le righe di codice scritte?E che differenza c’è con quelle scritte prima?
A dire il vero non funziona proprio perfettamente, perché non si comporta bene con i comandi \leftroot e \uproot di amsmath. Mi pare di ricordare che esiste un pacchetto che fa la stessa cosa in modo più robusto, ma ritengo che quella piccola appendice sia brutta. Forse perché mi richiama alla memoria la triste distinzione fra radicali aritmetici e algebrici, un’assurdità nata nella mente bacata di certi scrittori di testi per le scuole superiori.
Ma torniamo alla spiegazione.
`\let\radice\sqrt`
dà al comando \radice lo stesso significato di \sqrt (attuale).
`\def\sqrt{\mathpalette\DHLhksqrt}
\renewcommand{\sqrt}[1][]{\def\IRAD{#1}\mathpalette\DHLhksqrt}`
Ho messo sia la prima versione che la seconda. Con la seconda, usi la possibilità di definire un comando con un argomento opzionale, che è più complicato con il comando \def. Poi metto il contenuto dell’argomento opzionale nel comando \IRAD che userò dopo.
`\def\DHLhksqrt#1#2{\setbox0=\hbox{$#1\radice{#2\,}$}\dimen0=\ht0
\def\DHLhksqrt#1#2{\setbox0=\hbox{$#1\radice[\IRAD]{#2\,}$}\dimen0=\ht0
…`
La differenza è chiara, spero: ho aggiunto a \radice il contenuto dell’argomento opzionale dato a \sqrt. Così, quando scrivi \sqrt[3]{x}, il risultato è come richiesto. Il resto della faccenda è abbastanza complesso e sorvolerei.
Ciao
Enrico