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