O que estou tentando fazer é digitar o valor μ₀ (4π×10⁻⁷ SI) com siunitx usando entrada Unicode.
Sem unicode ficaria assim:
\documentclass{standalone}
\usepackage{siunitx}
\begin{document}
\SI{4 \pi e-7}{SI}
\end{document}
E isso funciona. Baseado emSímbolos matemáticos e entrada matemática unicode dentro dos comandos siunitxbem como a documentação do siunitx que define o valor padrão de input-symbols
to {\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?
Responder1
A questão pela qual você não pode inserir \sisetup
seu \AtBeginDocument
preâmbulo é que o código de gato errado é usado. No LuaTeX π
é da categoria 11 no preâmbulo, mas com unicode-math
ele será da categoria 12 no documento. Então você tem que alterar o catcode antes de usar \AtBeginDocument
( mathrm=sym
agradecimentos 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}