siunitx、tgheroes、familydefault 组合可能产生的副作用

siunitx、tgheroes、familydefault 组合可能产生的副作用

我使用以下代码将字体更改为无衬线字体。我想使用 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 会导致

no_tgheroes

看起来还不错。\renewcommand...现在使用衬线字体,去掉 out 似乎也可以。

不续订

siunitx这是所有三者( 、tgheroesrenew...)组合的副作用吗?

答案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}

相关内容