Siunitx 和 Sansmath:数学单位返回衬线

Siunitx 和 Sansmath:数学单位返回衬线

我读了这个问题siunitx关于和包的“可能冲突” sansmath,但这并没有真正解决我的问题。

我有一份文档,其中的文本采用罗马字体,而数学使用无衬线字体(感谢libertinesansmath包)。以下是序言:

\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}

\usepackage{lmodern}
\usepackage[T1]{fontenc}

\usepackage[detect-all]{siunitx}
\sisetup{text-rm=\sffamily,math-rm=\mathsf}

\usepackage{sansmath}
\sansmath

我注意到,每当我将任何命令放入siunitx数学“环境”( $ ... $) 中时,输出似乎都会“忽略”它应该使用 sans。这是我的 MWE,没有使用这些libertine包。

\begin{document}

Let \ang{30} be an acute angle. Also, \num{30} is a number and
\SI{30}{\metre} is not that far!

Let $\ang{30}$ be an acute angle. Also, $\num{30}$ is a number and
$\SI{30}{\metre}$ is not that far!
\end{document}

生成:

mwe 的输出

我做错了什么?这不是强制性的,但数学空间内的所有其他数字都是“无符号”,所以我希望底线也显示为无符号。

答案1

使用sfmath包而不是sansmath似乎可以工作(即您根本siunitx不需要更改字体首选项)。siunitx

如果这不是一个选项,那么在文本模式下设置数字就可以了:

\sisetup{
  mode=text,
  text-rm=\sffamily,
}

相关内容