unicode-math 对拉丁字母使用不同的字体

unicode-math 对拉丁字母使用不同的字体

我正在尝试将其STIX Two Math用于数学。font作为非数学字体(符号方面,字母是数学模式的唯一内容),但仅用于涉及数学的字母,即 abcdefghijklmnopqrstuvwxyz 和 ABCDEFGHIJKLMNOPQRSTUVWXYZ。

在此处输入图片描述

\documentclass{article}

\usepackage{fontspec}
\usepackage[math-style = upright]{unicode-math}

% ======================================================

\renewcommand{\normalsize}{\fontsize{10}{11}\selectfont}

\newcommand{\currentFont}{
    ItalicFont = font Italic,
    BoldFont = font Bold,
    BoldItalicFont = font Bold Italic,
}

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

% ======================================================

\setmainfont[
    Language = English,
    \currentFont
    \normalFontFeatures
]{font}

\setmathfont[range = {"0028-"1D7CB}, StylisticSet = 008]{STIX Two Math}
\setmathfont[range = {"41-"7B,}]{font} % range = unicode range for alphabet

% ------------------------------------------------------

\setmathfont[range = {"41-"7B}]{font} % Ignore, check NOTE
\setmathfont[range = bfup -> up]{font Bold} % Ignore, check NOTE
\setmathfont[range = it -> up]{font Italic} % Ignore, check NOTE
\setmathfont[range = bfit -> up]{font Bold Italic} % Ignore, check NOTE

% ======================================================

\begin{document}

    \textit{F=ma}

    $$ \mathbfit{F=ma} \quad \mathbf{F=ma} \quad F=ma \quad \mathit{F=ma}$$

\end{document}

注意:unicode-math 无法决定使用哪种字体作为 Bold Italic,这是我的特定字体文件的问题。因此,我目前正在使用一种变通方法让它显示图像显示的方式。但这感觉很不自然,也很不方便,不是正确的方法。

威尔·罗伯逊解决了这个问题但我仍然遇到问题bfit。它拒绝以正确的字体显示\mathbfit{F=ma},但这可以通过添加以下方法解决:

\setmathfont[range = bfit -> up]{Bold Italic}

在序言中。

谢谢。

答案1

首先,这对我来说似乎有效:

\documentclass{article}
\usepackage{unicode-math}
\setmathfontface\mathrm{texgyreheros-regular.otf}
\begin{document}
$\mathrm{abc}$
\end{document}

请提供一个完整的最小示例来演示其余内容,我可能会更详细地回答。


这是另一个希望对您有用的示例:

\documentclass{article}
\usepackage[math-style=upright]{unicode-math}
\setmathfont{xits-math.otf}
\setmathfont{texgyreheros-regular.otf}[range=up/{Latin,latin}]
\begin{document}
    \[
       \symbfit{F=ma} \quad \symbf{F=ma} \quad F=ma \quad \symit{F=ma}
    \]
\end{document}

这就是你想要实现的目标吗?

相关内容