使用 siunitx 和 unicode-math 时出现组分隔符问题

使用 siunitx 和 unicode-math 时出现组分隔符问题

我想在siunitx宏中使用 unicode“π”符号。和许多其他人一样,我遇到了几个问题,并使用 TeX StackExchange 逐一了解并解决这些问题。

但是,仍然存在一个问题:如果我使用组分隔符siunitx就会产生混淆,因为“π”被认为是类似于常规数字的符号,数字无法正确分隔。

以下 MWE 有助于形象化地描述这种情况:

代码

\documentclass[11pt,landscape]{standalone}
\usepackage{siunitx}
\usepackage{fontspec}
\usepackage[mathrm=sym]{unicode-math}
\setmainfont{Libertinus Serif}
\setmathfont{Libertinus Math}
\sisetup{
    group-separator = {.},
    input-symbols=π,
}
\begin{document}
    \SI{2000π}{\radian\per\second}
\end{document}

编译后将得到以下输出(就lualatex我的情况而言):

输出

错误输出

因此,数字部分显示为“20.000”,这显然是错误的。

一个明显的解决方法是输入\num{2000}π \si{\radian\per\second},但我想知道是否有更好的解决方案。

答案1

您不想在第一个参数中解析数字。

\documentclass[11pt,border=4]{standalone}
\usepackage{siunitx}
\usepackage{fontspec}
\usepackage[mathrm=sym]{unicode-math}

\setmainfont{Libertinus Serif}
\setmathfont{Libertinus Math}

\sisetup{
    group-separator = {.},
}

\begin{document}

\SI[parse-numbers=false]{2000π}{\radian\per\second}

\end{document}

在此处输入图片描述

相关内容