尽管进行了设置,Siunitx 仍无法识别旧式数字,detect-all
您能帮帮我吗?
MNWE:
\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\newfontfamily\oldstyle[Numbers={Monospaced,OldStyle}]{TeX Gyre Pagella}
\usepackage[detect-all]{siunitx}
\begin{document}
\oldstyle\num{123}123
\end{document}
其结果是:
答案1
只需说服希尼奇使用您新创建的字体系列:
\sisetup{text-rm=\oldstyle}
完整示例:
\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\newfontfamily\oldstyle[Numbers={Monospaced,OldStyle}]{TeX Gyre Pagella}
\usepackage[detect-all]{siunitx}
\AtBeginDocument{
\sisetup{text-rm=\oldstyle}
}
\begin{document}
\oldstyle\num{123}123
\end{document}
您必须这样做,正如手册中所述:
siunitx 包控制用于打印输出的字体,不受周围材料的干扰。标准方法是完全忽略周围材料,并使用当前的正文字体。
为了解决这个问题,只有几种可能性:
detect-all
结合以下四个单个命令
detect-weight
detect-family
detect-shape
detect-mode
所以它没有检测到全部- 因此这个名字有点误导。
数字样式是一种比较特殊的字体设置,并不包含在内detect-all
。
作为希尼奇旨在用于数字和单位的科学符号,数字样式不能轻易改变,这是可以理解的,因为它看起来不太“科学”不再。我在论文中也使用旧式数字作为章节编号等。实际上,我siunitx
最初希望采用这种设置,但很高兴它没有采用。