siunitx 命令中的 π 输入

siunitx 命令中的 π 输入

我想要做的是使用 unicode 输入通过 siunitx 排版 μ₀ 值(4π×10⁻⁷ SI)。

如果没有 unicode,它看起来会像这样:

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

这确实有效。基于siunitx 命令中的数学符号和 unicode-math 输入以及 siunitx 文档定义 的默认值input-symbols{\pi \dots}我尝试了以下方法:

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

但这会导致:! Package siunitx Error: Invalid token 'π' in numerical input.

我错过了什么?

答案1

\sisetup您无法将其放入\AtBeginDocument序言中的原因是使用了错误的类别代码。在 LuaTeX 中π,序言中的类别为 11,但unicode-math在文档中则为 12。因此,您必须在使用之前更改类别代码\AtBeginDocument(感谢mathrm=symUlrike):

\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}

相关内容