siunitx 在文本中使用无衬线字体,但在数学中使用衬线字体

siunitx 在文本中使用无衬线字体,但在数学中使用衬线字体

我在运行文本中使用无衬线字体。为了在运行文本中使用 \SI{}{} 正确设置数字和单位,我使用了

\sisetup{detect-all}

效果很好:

在此处输入图片描述

但是,在数学模式下,使用衬线字体(这很好) \SI{}{} 现在设置无衬线字体中的单位:

在此处输入图片描述

我怎样才能阻止它这样做?

编辑:

最小示例:

\usepackage[a4paper, top=0cm,bottom=1cm,right=2cm,left=2cm]{geometry}
\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

\usepackage{siunitx}
\sisetup{detect-all}

\setmainfont{MarkPro.otf}[BoldFont={MarkPro-Bold.otf}]

\begin{document}

Some running text with embedded math like attenuation $A_{tot}$ and some SI units like \SI{53}{d\bel}.

\begin{equation}
P_{RX,e}\Big|_{P_{TX}=\SI{7}{d\bel m}} \approx \SI{-46}{d\bel m}
\end{equation}

\end{document} 

答案1

尝试将此放入\setmainfont{MarkPro.otf}[BoldFont={MarkPro-Bold.otf}]其中,而不是 \setmainfont{TeX Gyre Pagella}[Scale=1.0]使用引擎将尚未安装到我的电脑中XeLaTeX

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[a4paper, top=1cm,bottom=1cm,right=2cm,left=2cm]{geometry}
\usepackage{unicode-math}
\usepackage{siunitx}
\sisetup{detect-all}
\setmainfont{TeX Gyre Pagella}[Scale=1.0]
\setmathrm{Latin Modern Math}
\begin{document}
Some running text with embedded math like attenuation $A_{\text{tot}}$ and some SI units like \SI{53}{d\bel}.
\begin{equation}
P_{RX,e}\Big|_{P_{TX}=\SI{7}{d\bel m}} \approx \SI{-46}{d\bel m}
\end{equation}
\end{document} 

相关内容