我正在尝试将其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}
这就是你想要实现的目标吗?