我知道这是一个常见问题:xelatex
我需要将文本和数学字体从衬线字体切换为无衬线字体,然后再切换回来。以下是我的设置,基于unicode-math
:
\usepackage[math-style=ISO,bold-style=ISO]{unicode-math}
\setmainfont[BoldItalicFont={Adobe Garamond Pro Bold Italic},
Ligatures=TeX]{SimonciniGaramondStd}
\setsansfont[BoldFont={Roboto Medium},Scale=MatchUppercase]{Roboto}
\newcommand{\mathstd}{%
\setmathfont{Garamond-Math.otf}[StylisticSet={5,7,9}]%
\setmathfont[range=it/{Latin,latin}]{SimonciniGaramondStd-Italic}%
\setmathfont[range=it/{Greek,greek},Scale=.9]{Gentium Plus Italic}%
请注意,我的主要数学字体将 Garamond-math 与 Simonicini Garamond(拉丁斜体)和 Gentium(希腊斜体字母)结合在一起。为了切换到 sans 数学字体,我可能会定义一个新的数学版本:
\setmathfont[version=sansserif]{Noto Sans Math}
然而,众所周知version
和range
选项不能一起工作,我确实需要用主数学字体替换斜体字母。
我想知道是否有办法。我记得前段时间有人提到过可以创建组合字体来替代range
,但我不知道在 xelatex 中是否可以做到这一点以及如何做到这一点。