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 輸入以及定義預設值input-symbolsto的 siunitx 文檔{\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。所以你必須在使用之前更改catcode \AtBeginDocumentmathrm=sym感謝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}

相關內容