我面临的问题是,我使用 来排版,并将其MinionPro-Regular.otf
作为主字体和MinionPro-Cn.otf
标题。但是,我必须为整个文档声明一种数学字体,因此数学符号和小siunitx
东西不会被压缩。
不幸的是,在序言中, \setmathsfont
frommathspec
只起作用一次。有没有办法像使用 更改文本字体一样更改数学字体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}
然后,这将使用当前文本字体作为单位,因此数学字体不会产生影响。(未经测试,因为我没有合适的字体。)