Ersetzen Sie fehlende Zeichen (Minus) in der Textschriftart zur Verwendung in siunitx mit Fontspec

Ersetzen Sie fehlende Zeichen (Minus) in der Textschriftart zur Verwendung in siunitx mit Fontspec

Ich bin gezwungen, einen kommerziellen (Univers) Schriftart in meinen Präsentationen, die offensichtlich keine eigene\minus , das von. (Obwohl ich nicht sicher bin, ob es das ist \minusoder etwas anderes.) Wenn ich also tippe

\SI{-1984}{m^{-42}}

Bei mir wird kein Minus angezeigt. Leider habe ich keine kostenlose Schriftart mit dem gleichen Verhalten gefunden. Aber ich hoffe, ihr versteht, was ich meine.

Wie kann ich die fehlendenMinuszeichenvon einer anderen Schriftart in meine Textschriftart zu bekommenum richtig zu funktionieren?


Hier ist ein 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}

was mir die Ausgabe gibt:

Bildbeschreibung hier eingeben

Mit anderen Schriftarten habe ich das Problem nicht.


Ich habe verschiedene Dinge ausprobiert, die ersten beiden führten zu Syntaxfehlern:

\setmainfont[\minus="2212]{XITS Math}

oder wie ich es für die Mathematikschriftart gewohnt bin:

\setmainfont[range={="2212}]{XITS Math}

Und ich habe auch diesen Code gefunden,

\newunicodechar{"2212}{{\fontspec{XITS Math}"2212}}
\newunicodechar{\minus}{{\fontspec{XITS Math}\minus}}
\newunicodechar{-}{{\fontspec{XITS Math}-}}

keiner von ihnen funktioniert.

Noch weitere Vorschläge?


Die von mir verwendete Schriftart enthält das Zeichen \char"2013, aber nicht\char"2212 aber es scheint mir, dass dies diejenige ist, die aufgerufen wird vonwenn das Minus eingegeben wird.

egregs Vorschlag

\usepackage{newunicodechar}
\newunicodechar{^^^^2212}{\char"2013}

arbeitet für die Einheit

\SI{-1984}{m^{^^^^2212 42}}) 

Dies gilt jedoch nicht für die Zahl, da ^^^^2212es sich um ein ungültiges numerisches Zeichen handelt.

verwandte Informationen