Заменить отсутствующий символ (минус) в текстовом шрифте для использования в siunitx с помощью fontspec

Заменить отсутствующий символ (минус) в текстовом шрифте для использования в siunitx с помощью fontspec

Я вынужден использовать рекламу (Универс) шрифт в моих презентациях, который, очевидно, не содержит выделенного \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это недопустимый числовой символ.

Связанный контент