unicode-math 改变它并 bfup 字体范围

unicode-math 改变它并 bfup 字体范围

\mathit如果我尝试专门为和/或\mathbf使用设置一个独立的字体

\setmathfont[range = it]{some italic font}
\setmathfont[range = bf]{some bold font}

unicode-math 不会改变它,而只是保留默认的 latex 字体。其他范围确实有效,即bfitup。尚未测试其他范围...

it有一个特殊问题。它会恢复为 vanilla latex 斜体字体、Computer Modern 或任何其他名称。如果使用不同的字体设置,fontspec那么它将恢复为斜体变体。

代码:

\documentclass{article}

\usepackage[english]{babel}
\usepackage{amsmath}

\usepackage{calc, geometry}
\usepackage{enumitem}
\usepackage{fancyhdr}

\usepackage{fontspec}
\usepackage{unicode-math}

\setmathfont[StylisticSet = 008]{STIX Two Math}
\setmathfont[range = bfup]{some upright bold font}
\setmathfont[range = it]{some italic font}

\begin{document}

\[ \mathbfit{F=ma} \quad \mathbf{F=ma} \quad F=ma \quad \mathit{F=ma}\]

\end{document}

答案1

我通过改变字体分配的顺序解决了这个问题。将unicode-math's \setmathfont命令放在fontspec's \setmainfont命令之前,如下所示

\newcommand{\garamondPremierPro}{
    ItalicFont = Garamond Premier Pro Italic Caption,
    BoldFont = Garamond Premier Pro Bold Caption,
    BoldItalicFont = Garamond Premier Pro Bold Italic Caption,  
}

\newcommand{\normalFontFeatures}{
    Kerning = On,
    Style = Historic,
    Ligatures = {Historic, Rare},
    % VerticalPosition = Denominator,
}

\setmathfont[StylisticSet = 008]{STIX Two Math}
\setmathfont[range = up/{Latin, latin}]{Garamond Premier Pro Caption}
\setmathfont[range = bfit/{Latin,latin}]{Garamond Premier Pro Bold Italic Caption}

\setmainfont[
    Language = English,
    \garamondPremierPro
    \normalFontFeatures
]{Garamond Premier Pro Caption}

PS 这是我使用的字体:)

相关内容