将 arevmath (或类似函数) 与 unicode-math 结合起来

将 arevmath (或类似函数) 与 unicode-math 结合起来

假设我需要使用某种无衬线字体(不是 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}

在此处输入图片描述

相关内容