siunitx 不检测字体和大小

siunitx 不检测字体和大小

我正在使用来自 PNAS 的模板(http://www.pnas.org/site/authors/LaTex.xhtml) 在 sharelatex 上,当我添加如下单位时:

\SI{15}{\mL}

它们没有正确缩放,如附图所示。
siunitx 未正确缩放的示例
此外,有没有办法可以强制 siunitx 使用周围的字体。我曾尝试在序言中使用:

\sisetup{detect-weight=true, detect-family=true}

毫无进展。
任何帮助都将不胜感激。

编辑 1:添加了最小示例

\documentclass{pnastwo}
\usepackage[dvips]{graphicx}
\usepackage{amssymb,amsfonts,amsmath}
\usepackage{gensymb,fixltx2e}
\usepackage{fontspec}
\usepackage{siunitx}
\sisetup{detect-weight=true, detect-family=true}

\begin{document}
\begin{article}
\begin{materials}
This is a minimal example. The following units \SI{15}{\mL} do not render with the same typeface and size as the surrounding text. 
\end{materials}
\end{article}
\end{document}

答案1

该类不使用 nfss 来定义字体,因此 siunitx 绝对没有机会检测字体(另外提醒:使用非 ascii 字符时要小心。与 xelatex/lualatex 结合使用时,它们可能会出错或完全丢失)。您可以通过重新定义字体命令来解决这个问题:

\documentclass{pnastwo}

\usepackage{graphicx}
\usepackage{amssymb,amsfonts,amsmath}
\usepackage{gensymb,fixltx2e}
\usepackage{fontspec}
\renewcommand\materialfont{\sffamily\fontsize{7pt}{\baselineskip}\selectfont}
\usepackage{siunitx}
\sisetup{detect-weight=true, detect-family=true}

\begin{document}
\begin{article}
\begin{materials}
This is a minimal example. The following units \SI{15}{\mL} do not render with the same typeface and size as the surrounding text.
\end{materials}
\end{article}
\end{document}

答案2

(评论太长,因此以某种答案的形式发布。)

您的文档设置中肯定存在一些您迄今未告诉我们的问题。pnastwo文档类本身不会干扰字体,至少不会以影响包的宏的方式干扰字体\siunitx

请告诉我们——最好以平均能量损失——如何将文本字体更改为无衬线字体。

在此处输入图片描述

\documentclass{pnastwo}
\usepackage[detect-family=true]{siunitx}
\begin{document}
\sffamily
abc

\SI{15}{\milli\liter}
\end{document}

相关内容