我有一个 MWE,显示使用 将系列默认值设置为无衬线字体\renewcommand{\familydefault}{\sfdefault}
。完成此操作后,无论我尝试使用 siunitx 的什么设置(如示例中所示),我都无法让数学模式($$
和\[\]
)以罗马衬线字体显示单位和数字。
\documentclass[12pt]{article} % use larger type; default would be 10pt
\renewcommand{\familydefault}{\sfdefault}
\usepackage{siunitx}
\sisetup{detect-mode=false,detect-family=false,
detect-display-math=false,detect-shape=false,
mode=math}
\begin{document}
text where you have \SI{450}{\volt}\\
$\textrm{inline math} \quad \sin^2(x) \quad \SI{450}{\volt}\\
\textrm{textrm V}$
\[\textrm{math environment}\quad \SI{450}{\volt}\]
\end{document}
结果是
理想情况下,我希望文本中给出的单位以无衬线字体排版(即使 SI 标准认为这不合适),并且文本中的单位以罗马字体$$
或\[\]
当前数学字体排版。
我注意到,如果使用\sfseries
而不是\familydefault
,则效果会好一半,这意味着文本和$$
将以无衬线字体排版,而\[\]
可以以罗马字体排版。该解决方案对我的文档来说是个问题,因为我也使用无衬线字体作为章节标题。
答案1
约瑟夫用这个问题给我指明了正确的方向我可以让 siunitx 命令像 beamer 中的其他数学一样使用衬线字体吗?。除了按照\AtBeginDocument
那里的建议添加之外,我还将其更改text-rm=\rmfamily
为text-rm=\sffamily
以获取无衬线中间文本,然后删除mode
设置并更改detect-mode=true
。
\documentclass[12pt]{article} % use larger type; default would be 10pt
\renewcommand{\familydefault}{\sfdefault}
\usepackage{siunitx}
\sisetup{detect-mode=true,detect-family=false,
detect-display-math=false,detect-shape=false}
\AtBeginDocument{\sisetup{math-rm=\mathrm, text-rm=\sffamily}}
\begin{document}
text where you have \SI{450}{\volt}\\
$\textrm{inline math} \quad \sin^2(x) \quad \SI{450}{\volt}\\
\textrm{textrm V}$
\[\textrm{math environment}\quad \SI{450}{\volt}\]
\end{document}