我被迫使用商业广告(尤尼韦尔斯) 字体在我的演示文稿中,显然不包含专用的\minus
符号,它被称为希尼奇。(虽然我不确定它是\minus
还是别的什么。)所以如果我输入
\SI{-1984}{m^{-42}}
我没有看到任何减号。不幸的是,我没有找到任何具有相同行为的免费字体。但我希望你明白我的意思。
我怎样才能包括缺失的减号从另一种字体到我的文本字体希尼奇正常工作?
以下是 MWE:
\documentclass{beamer}
\usefonttheme{professionalfonts}
\usepackage{siunitx}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Univers 45 Light}
\setmathfont{XITS Math}
\setbeamerfont{normal text}{family=\rmfamily,series=\normalfont}
\AtBeginDocument{
\usebeamerfont{normal text}
\sisetup{detect-all}
\sisetup{math-rm=\mathrm, text-rm=\rmfamily}
\sisetup{per-mode=fraction,fraction-function=\sfrac}
}
\begin{document}
\begin{frame}
The dash - is working. But the minus sign in \alert{siunitx} (e.g. \SI{-1984}{m^{-42}}) isn't, apart from when it is used in math-mode (e.g. $\SI{-1984}{m^{-42}}$). But in text I'd like to use my text font.
\end{frame}
\end{document}
给我输出:
使用其他字体时我没有遇到这个问题。
我尝试了各种方法,前两种方法出现了语法错误:
\setmainfont[\minus="2212]{XITS Math}
或者像我习惯使用的数学字体那样:
\setmainfont[range={="2212}]{XITS Math}
我也找到了这个代码,
\newunicodechar{"2212}{{\fontspec{XITS Math}"2212}}
\newunicodechar{\minus}{{\fontspec{XITS Math}\minus}}
\newunicodechar{-}{{\fontspec{XITS Math}-}}
他们都没有工作。
还有其他建议吗?
我使用的字体确实包含该字符\char"2013
,但它不包含\char"2212
,但在我看来,这是由希尼奇当输入减号时。
egreg 的建议
\usepackage{newunicodechar}
\newunicodechar{^^^^2212}{\char"2013}
为单位工作
\SI{-1984}{m^{^^^^2212 42}})
但对于数字则不行,因为^^^^2212
它是一个无效的数字字符。