我想要在文档中使用某种字体,呈现的数字如下所示。
{1234}
我也想控制小数点的位置,但是,一旦数字经过 \num,字体就会被 LaTex 默认字体取代
\num[group-separator={,}, group-minimum-digits=3, round-mode=places, round-precision=2]{1234}
在最新更新至 Ubuntu 22.04 后,这种情况开始发生。有什么解决方法吗?
谢谢!
修正:这是一个最小的工作示例:
\documentclass{article}
\RequirePackage{siunitx}
\RequirePackage{fontspec}
\defaultfontfeatures{
Ligatures = TeX,
Path = ./Fonts/ }
\IfFileExists{./Fonts/OpenSans-Regular.ttf}{
\setmainfont[ BoldFont = OpenSans-Bold, ItalicFont = OpenSans-Italic ]{OpenSans-Regular}
\setsansfont[ BoldFont = OpenSans-Bold, ItalicFont = OpenSans-Italic ]{OpenSans-Regular}
}{}
\begin{document}
{1234}
\addvspace{4ex}
\num[group-separator={,}, group-minimum-digits=3, round-mode=places, round-precision=2]{1234}
\end{document}
它必须用 xelatex 进行编译,并且应该有一个名为 Fonts 的子文件夹:
├── Fonts
│ ├── OpenSans-Bold.ttf
│ ├── OpenSans-Italic.ttf
│ ├── OpenSans-LightItalic.ttf
│ └── OpenSans-Regular.ttf
答案1
变化发生在我修改了siunitx
检测 sanserif 字体的方法时。具体来说,在版本 3 中,只需将文本字体“sanserif-looking”不会影响输出。这是因为标准设置使用数学模式,并且您会发现在演示中仍然使用 Computer Modern。
几乎可以肯定,您正在期待文本模式字体,因此添加\sisetup{mode = text}
将适用于更新的系统和旧系统。