如何将用包设置数值和单位的字体siunitx
改为文档中使用的主文本字体?
直观上看,主字体应该是标准字体设置。然而,似乎使用了数学字体,见下面的代码。
% !TeX program = lualatex
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Heros}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\usepackage{siunitx}
\begin{document}
The gain $G=\SI{2}{dB}$, which is \SI{1}{dB} higher than before.
\end{document}
答案1
摘自该包的用户指南第 5 页siunitx
:
默认情况下,所有文本都以当前的直立数学字体排版。可以通过设置适当的选项来更改:
\sisetup{detect-all}
将使用当前字体进行排版。
简而言之,发布\sisetup{detect-all}
序言中的指令(后加载siunitx
,自然)。这不仅会影响 的输出\SI
,还会影响\si
、\num
和包\numlist
的所有其他用户宏的输出siunitx
。
答案2
在最近的版本(版本 3?)中siunitx
,该\sisetup{detect-all}
选项仍然有效,但已被弃用(另请参阅在 GitHub 上打包代码)。如果你用这个进行编译,你将在日志文件中收到以下消息:
Package siunitx Info: Option "detect-all" has been deprecated in this release.
(siunitx)
(siunitx) Use "mode = match, propagate-math-font = true,
(siunitx) reset-math-version = false, reset-text-family = false,
(siunitx) reset-text-series = false, text-family-to-math = true,
(siunitx) text-series-to-math = true" as a replacement.
它的替代品是一系列更细粒度的命令,如上面的日志输出所示。您可以使用
\usepackage[
mode=match,
propagate-math-font=true,
reset-math-version=false,
reset-text-family=false,
reset-text-series=false,
text-family-to-math=true,
text-series-to-math=true
]{siunitx}
或使用
\sisetup{
mode=match,
propagate-math-font=true,
reset-math-version=false,
reset-text-family=false,
reset-text-series=false,
text-family-to-math=true,
text-series-to-math=true
}
每个选项均记录在用户手册的第 4 部分中。