siunitx コマンド内の π 入力

siunitx コマンド内の π 入力

私がやろうとしているのは、Unicode 入力を使用して siunitx で μ₀ 値 (4π×10⁻⁷ SI) をタイプセットすることです。

Unicode がなければ次のようになります:

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

そしてそれはうまくいきます。siunitx コマンド内の数学記号と Unicode 数学入力input-symbolssiunitx ドキュメントでtoのデフォルト値を定義しているほか{\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入れることができない理由は、間違った catcode が使用されているためです。LuaTeX では、プリアンブルではカテゴリ 11 ですが、ドキュメントではカテゴリ 12 になります。したがって、使用する前に catcode を変更する必要があります( Ulrike に感謝します)。\AtBeginDocumentπunicode-math\AtBeginDocumentmathrm=sym

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

関連情報