我在运行文本中使用无衬线字体。为了在运行文本中使用 \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}