siunitx+fontspec+lualatex:使用数学字体填充一个缺失的文本字形(减号)

siunitx+fontspec+lualatex:使用数学字体填充一个缺失的文本字形(减号)

我正在重新询问2015 年未解答的问题。这是我正在使用的:

NOTO 文本字体缺少减号按照设计,因此\qty{1}{\joule\per\meter}在之前会得到一个矩形m

有没有办法用衬线字体来替代缺失的字形(减号)? unicode-math 有一个range=选项\setmathfont,但我无法将其传递给\setmainfont


注意:我想使用 NOTO Sans Math 来保持一致的风格,但我遇到了这个问题

答案1

希望我理解正确。此代码使用\setmainfont\setmathfont。它还指定了XITS Math(但可以是任何其他字体)用于MINUS SIGN (U+2212),如果您的主字体中缺少 :

\documentclass{article}

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

\setmainfont{Noto Sans}
\setmathfont{XITS Math}
\newfontface{\xits}{XITS Math}
 
\iffontchar\font "2212\relax % do nothing if font has required glyph
\else
    \newunicodechar{^^^^2212}{{\xits −}} % use double braces to limit the scope
\fi

\begin{document}

\noindent HYPHEN-MINUS (U+002D) shown in \textbf{Noto Sans}: - \\
MINUS SIGN (U+2212) shown in \textbf{XITS Math} (Text mode) −

\end{document}

相关内容