如何使用数学字体全局确保 siunitx 单位直立?

如何使用数学字体全局确保 siunitx 单位直立?

我使用 mtpro2 作为文档(考试类)中的数学字体。当我使用 siunitx 包输入数量时,它会使用斜体显示单位。我不想这样;相反,我希望单位是直立的。

单位用斜体表示。不受欢迎。

单位用斜体表示。不受欢迎。

装置直立。符合要求。

装置直立。符合要求。

产生斜体单位的代码。

\documentclass[twoside,11pt]{exam}

% standard document packages
\usepackage[top=0.7in,bottom=0.7in,left=0.36in,right=0.36in]{geometry}
\usepackage[T1]{fontenc}
\usepackage{baskervald}
\usepackage[subscriptcorrection,slantedGreek,nofontinfo,mtpcal,mtpfrak,mtphrb]{mtpro2}
\usepackage[english]{babel}

% chemistry packages
\usepackage{siunitx}
\sisetup{math-rm=\ensuremath,inter-unit-product=\ensuremath{\cdot},per-mode=symbol}

% math packages
\usepackage{amsmath}

% exam class settings
\renewcommand{\choicelabel}{(\thechoice)}
\renewcommand{\choiceshook}{\setlength{\leftmargin}{18pt}}

\begin{document}
    \begin{choices}
        \choice \SI{1.5}{\hour}
        \CorrectChoice \SI{2.5}{\hour}
        \choice \SI{3.5}{\hour}
        \choice \SI{4.0}{\hour}
    \end{choices}
\end{document}

到目前为止,我能确定的唯一“解决方案”是使用 来\text环绕设备。所有其他尝试都失败了,包括对 的修改\sisetup

\begin{document}
    \begin{choices}
        \choice \SI{1.5}{\text{\hour}}
        \CorrectChoice \SI{2.5}{\text{\hour}}
        \choice \SI{3.5}{\text{\hour}}
        \choice \SI{4.0}{\text{\hour}}
    \end{choices}
\end{document}

这种“解决方案”既繁琐又不雅观,因为它要求我仔细检查考试的每一部分并输入\text单位。我想使用 mtpro2,但我需要单位是直立的。

在实现 mtpro2 时,如何重新定义 siunitx 包中的单位以全局使用直立文本?我是否可以将单位(例如,小时)定义为 baskervald,同时将值(例如,1.5)保留在 mtpro2 中?siunitx 文档指出数量定义为包括值和单位,所以这让我有不同的想法。


编辑1

我在这里附上了另一张图片来演示我省略时遇到的问题\math-rm=\ensuremath。如果我省略此代码,数量的大小将从 mtpro2 变为 baskervald,这是不希望的。在这种情况下,无论我添加\unit-mode=text还是省略它都无关紧要,因为数量在 baskervald 中,而不是 mtpro2 中。

幅度变化;单位直立。不理想

忽略\math-rm=\ensuremath会产生 baskervald 中的量级,而不是 mtpro2。不理想。

\math-rm=\ensuremath据我所知,保留会强制 siunitx 使用 mtpro2 作为字体。添加\unit-mode=text会将单位从斜体更改为直立,因为我猜它会将字体从 mtpro2 恢复为专门针对单位的 baskervald,同时忽略幅度。使用\unit-mode=textwith\math-rm=\ensuremath会创建所需的输出。

期望输出。

mtpro2 中的震级和直立单位。所需输出。


编辑2

似乎有几个人不同意\math-rm=\ensuremath结合使用来\unit-mode=text创造这种效果。有没有更合适的方法来实现所需的输出而不\math-rm使用 mtpro2?


问题

确保给定量的大小(例如 1.5)符合以下要求的最适当方法是什么?任何单位(例如 h)为任何不同使用 siunitx 指定所需字体?不使用 是否可以做出这种区分\math-rm

答案1

您可以选择\mathnormal代替\mathrm例如

unit-math-rm = \mathnormal

这是一个有据可查的可能性:有些字体没有正确设置,无法\mathrm工作。

相关内容