entrada π dentro dos comandos siunitx
O que estou tentando fazer é compor o valor μ₀ (4π × 10⁻⁷ SI) com siunitx usando a entrada Unicode.
Sem Unicode, seria assim:
\documentclass{standalone}
\usepackage{siunitx}
\begin{document}
\SI{4 \pi e-7}{SI}
\end{document}
E isso funciona. Com base em símbolos matemáticos e entrada unicode-math dentro de comandos siunitx , bem como na documentação siunitx que define o valor padrão de input-symbolsto {\pi \dots}, tentei o seguinte:
\documentclass{standalone}
\usepackage[input-symbols = {π}]{siunitx}
\usepackage{unicode-math}
\begin{document}
\SI{4πe-7}{SI}
\end{document}
Mas isso resulta em: ! Package siunitx Error: Invalid token 'π' in numerical input.
o que estou perdendo?
Respostas
A questão por que você não pode colocar \sisetupem \AtBeginDocumentem seu preâmbulo é, que o catcode errado é usado. Em LuaTeX πé da categoria 11 no preâmbulo, mas com unicode-mathele será da categoria 12 no documento. Portanto, você deve alterar o catcode antes de usar \AtBeginDocument( mathrm=symagradecendo 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}