xelatex 选择本地数学字体

xelatex 选择本地数学字体

我面临的问题是,我使用 来排版,并将其MinionPro-Regular.otf作为主字体和MinionPro-Cn.otf标题。但是,我必须为整个文档声明一种数学字体,因此数学符号和小siunitx东西不会被压缩。

不幸的是,在序言中, \setmathsfontfrommathspec只起作用一次。有没有办法像使用 更改文本字体一样更改数学字体fontspec?我不需要在标题中排版大公式,只需要排版一些使用 的数字siunitx

梅威瑟:

\documentclass[10pt,a4paper]{memoir} 
\usepackage[english]{babel}
z\usepackage[detect-all]{siunitx}
\usepackage[MnSymbol]{mathspec}

\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{MinionPro-Regular.otf}
\setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{MinionPro-Bold.otf}
\setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}]{MinionPro-It.otf}
\setmathfont[range=\mathbfit/{num,latin,Latin,greek,Greek}]{MinionPro-BoldIt.otf}

\defaultfontfeatures{Ligatures={TeX,NoCommon},Scale=MatchLowercase}
\setmainfont[BoldFont=MinionPro-Bold.otf,
               ItalicFont=MinionPro-It.otf,
               BoldItalicFont=MinionPro-BoldIt.otf,
               Color=black]{MinionPro-Regular.otf}         
               
\newfontfamily\captionfont[ItalicFont=MinionPro-MediumCnIt.otf]{%
                           MinionPro-Regular.otf}

\newcommand*{\mathtext}{\SI{2.3}{\micro\metre} %
2.3\,μm $x=2.3\,\mu m$}

\begin{document}\noindent
{\normalfont\itshape\mathtext} \\
{\captionfont\itshape\mathtext}\\

\end{document}

输出: 在此处输入图片描述

如果仔细观察, 第二行中\mu的符号不​​是从中选择的。此外,尽管我使用的是 Mnsymbol,但符号仍然来自 Computer Modern。siunitx\normalfont\captionfont

答案1

由于您有一个用于“单位”数量的可变字体,并且该字体是文本模式字体,因此我认为最好使用文本模式siunitx

\sisetup{unit-mode = text}

然后,这将使用当前文本字体作为单位,因此数学字体不会产生影响。(未经测试,因为我没有合适的字体。)

相关内容