siunitx 与 arev 组合时出现倾斜数字问题

siunitx 与 arev 组合时出现倾斜数字问题

siunitx和包之间存在奇怪的交互,即当使用或arev等命令时,所有数字都会显得倾斜。 \num\SI

\documentclass{article}
\usepackage{siunitx}
\usepackage{arev}
\begin{document}
\begin{itemize}
\item This is is some normal math: \( 1 + 1 = 2\). Looks OK. 
\item This is using the \verb|\num| macro from \texttt{siunitx}: \num{1.23e45}. Why are the numbers slanted? The problem only occurs with the \texttt{arev} font. 
\item It is only the numerals that appear slanted, the units themselves are OK: \SI{20}{km/s}  
\end{itemize}
\end{document}

有没有简单的方法可以解决这个问题?

答案1

这里发生的事情是,对于无衬线字体,siunitx在文档开始时获取样式更改并切换到\mathsf数学模式和\sffamily文本模式。但是,字体arev中的数字是倾斜的\mathsf,这导致了您看到的奇怪结果。如果您将

\sisetup{math-rm = \mathrm}

\begin{document}问题就会消失。或者,等到明天,CTAN 上就会有修复:我马上就搞定!

答案2

\documentclass{article}
\usepackage{siunitx}
\sisetup{detect-all=true}
\usepackage{arev}
\begin{document}
\begin{itemize}
\item This is is some normal math: \( 1 + 1 = 2\). Looks OK. 
\item This is using the \verb|\num| macro from \texttt{siunitx}: \num{1.23e45}. Why are the numbers slanted? The problem only occurs with the \texttt{arev} font. 
\item It is only the numerals that appear slanted, the units themselves are OK: \SI{20}{km/s}  
\end{itemize}
\end{document}

detect-all=true选项将检测当前模式和字体系列并使用它们。

实际上,您所需要的只是detect-mode=true检测您处于数学模式还是文本模式。但奇怪的是,如果您处于数学模式,这仍然会将内容设置为斜体:仍然是斜体。很奇怪。我认为这与关于数学模式默认为斜体的假设$\SI{20}{\kilo\metre\per\second}$有关。siunitx

相关内容