假设我需要使用某种无衬线字体(不是 Arial,但我在示例中使用了它,因为它广泛可用)。因此,我需要使用无衬线数学字体。
主字体显然没有完整的数学调色板,所以我需要无衬线数学。我的想法是使用包arevmath
,因为我喜欢这些符号,而且我认为它们很合适——除了数字。所以我的想法是使用unicode-math
以便使用主字体中的直立数字和拉丁字母。
\documentclass{article}
\usepackage{fontspec}
\usepackage{arevmath}
\usepackage{unicode-math}
\setmainfont{arial}
%\setmathfont{firamath} %% <--- using this, it will work
\setmathfont{arial}[range={up/{num,latin}}]
\begin{document}
test 123 $123$
\end{document}
上述代码产生以下错误:
Package unicode-math Error: No main maths font has been set up yet.
(unicode-math) If you simply want ‘the default’, use:
(unicode-math) \setmathfont{latinmodern-math.otf}
我认为这是因为arevmath
使用“经典” LaTeX 字体选择方法而unicode-math
依赖于较新的技术,因此字体未正确“注册”。
如果我取消注释该行\setmathfont{firamath}
,它就可以工作,但恕我直言,字体匹配得不是很好。
如何使用 Arev(及其相关字体)表示数学符号,但仍使用主字体表示数字和拉丁字母?
答案1
如果您想使用 arevmath,您可以尝试使用文本字体作为运算符字体:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{arial}[NFSSFamily=arial]
\usepackage{arevmath}
\SetSymbolFont{operators} {normal}{TU}{arial}{m}{n}
\SetSymbolFont{operators} {bold}{TU}{arial}{b}{n}
\begin{document}
test 123 $123 test$ \mathversion{bold} $123 test$
\end{document}