π entrée dans les commandes siunitx

Aug 30 2020

Ce que j'essaie de faire est de composer la valeur μ₀ (4π × 10⁻⁷ SI) avec siunitx en utilisant une entrée unicode.

Sans unicode, cela ressemblerait à ceci:

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

Et cela fonctionne. Sur la base des symboles mathématiques et de l'entrée unicode-math dans les commandes siunitx ainsi que de la documentation siunitx définissant la valeur par défaut de input-symbolsto {\pi \dots}, j'ai essayé ce qui suit:

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

Mais cela se traduit par: ! Package siunitx Error: Invalid token 'π' in numerical input.

Qu'est-ce que je rate?

Réponses

1 Skillmon Aug 31 2020 at 21:44

La question pourquoi vous ne pouvez pas mettre \sisetupdans \AtBeginDocumentvotre préambule, que le mauvais catcode est utilisé. Dans LuaTeX πest de catégorie 11 dans le préambule, mais avec unicode-mathce sera de catégorie 12 dans le document. Vous devez donc changer le catcode avant d'utiliser \AtBeginDocument(avec mathrm=symmerci à 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}