π input all'interno dei comandi siunitx

Aug 30 2020

Quello che sto cercando di fare è scrivere il valore μ₀ (4π × 10⁻⁷ SI) con siunitx usando l'input Unicode.

Senza Unicode sarebbe simile a questo:

\documentclass{standalone}
\usepackage{siunitx}
\begin{document}
    \SI{4 \pi e-7}{SI}
\end{document}

E questo funziona. Sulla base dei simboli matematici e dell'input unicode-math all'interno dei comandi siunitx e della documentazione di siunitx che definisce il valore predefinito di input-symbolsto {\pi \dots}, ho provato quanto segue:

\documentclass{standalone}
\usepackage[input-symbols = {π}]{siunitx}
\usepackage{unicode-math}
\begin{document}
    \SI{4πe-7}{SI}
\end{document}

Ma questo si traduce in: ! Package siunitx Error: Invalid token 'π' in numerical input.

Cosa mi sto perdendo?

Risposte

1 Skillmon Aug 31 2020 at 21:44

Il problema perché non si può mettere \sisetupin \AtBeginDocumentnel vostro preambolo è, che il catcode sbagliata viene utilizzato. In LuaTeX πè di categoria 11 nel preambolo, ma con unicode-mathesso sarà di categoria 12 nel documento. Quindi devi cambiare il catcode prima di usarlo \AtBeginDocument(con mathrm=symgrazie a Ulrike):

\documentclass{standalone}
\usepackage{siunitx}
\usepackage[mathrm=sym]{unicode-math}
\begingroup
\catcode`\π=12
\AtBeginDocument{\sisetup{input-symbols=π}}
\endgroup
\begin{document}
    \SI{4πe-7}{SI}
\end{document}