Le soluzione per estendere l’uso di ° anche in modo matematico funzionano, ovviamente, in maniera perfetta.
Bene. C’è una soluzione che non richiede di sapere in anticipo la codifica che si usa.
`\DeclareTextSymbolDefault{\degreesymbol}{TS1}
\DeclareTextSymbol{\degreesymbol}{TS1}{176}
\DeclareRobustCommand{\textdegree}{%
\ifmmode\mbox{\degreesymbol}\else\degreesymbol\fi}
\let\degree\textdegree`
Ridefinisco \textdegree, che è la macro richiamata da LaTeX quando interpreta il carattere ° (in latin1, utf8 o qualsiasi altra codifica che lo preveda) in modo che faccia la cosa giusta, cioè stampi il simbolo in una \mbox se siamo in una formula oppure direttamente. Definisco poi \degree come equivalente a \textdegree.
Meglio non ricorrere all’usuale trucco di creare un alias a \textdegree: con i comandi definiti da \DeclareTextSymbol non funziona.
Ciao
Enrico