我使用以下代码将字体更改为无衬线字体。我想使用 TeX Gyre Heroes,并复制了从拖船。
\documentclass{article}
\usepackage{tgheros}
\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif
\usepackage[T1]{fontenc}
\usepackage{siunitx}
\begin{document}
2 K, 2 Kelvin, \SI{2}{K}, \SI{2}{Kelvin}
\end{document}
然而结果却不如预期:
字体略有不同。省略\usepackage{tgheroes}
out 会导致
看起来还不错。\renewcommand...
现在使用衬线字体,去掉 out 似乎也可以。
siunitx
这是所有三者( 、tgheroes
、renew...
)组合的副作用吗?
答案1
声明\renewcommand{\familydefault}{\sfdefault}
不会改变\mathsf
字体;siunitx
意识到它处于无衬线上下文中,因此使用\mathsf
。
添加
\DeclareMathAlphabet{\mathsf}{OT1}{\sfdefault}{m}{n}
\SetMathAlphabet{\mathsf}{bold}{OT1}{\sfdefault}{b}{n}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tgheros}
\usepackage{siunitx}
\DeclareMathAlphabet{\mathsf}{OT1}{\sfdefault}{m}{n}
\SetMathAlphabet{\mathsf}{bold}{OT1}{\sfdefault}{b}{n}
\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif
\begin{document}
2 K, 2 Kelvin, \SI{2}{K}, \SI{2}{Kelvin}
\bfseries
2 K, 2 Kelvin, \SI[detect-weight]{2}{K}, \SI[detect-weight]{2}{Kelvin}
\end{document}
第二行只是为了查看在您需要的(不太可能的)情况下是否选择了正确的字体detect-weight
。
或者,添加选项mode=text
(但我不推荐这样做):
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tgheros}
\usepackage{siunitx}
\sisetup{mode=text}
\renewcommand*\familydefault{\sfdefault} %% Only if the base font of the document is to be sans serif
\begin{document}
2 K, 2 Kelvin, \SI{2}{K}, \SI{2}{Kelvin}
\bfseries
2 K, 2 Kelvin, \SI[detect-weight]{2}{K}, \SI[detect-weight]{2}{Kelvin}
\end{document}