Reemplace el carácter faltante (menos) en la fuente del texto para usar en siunitx con fontspec

Reemplace el carácter faltante (menos) en la fuente del texto para usar en siunitx con fontspec

Me veo obligado a utilizar un comercial (universo) fuente en mis presentaciones, que obviamente no contiene un \minussigno dedicado, que es llamado por. (Aunque no estoy seguro de si lo es \minuso algo más). Entonces, si estoy escribiendo

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

No me aparece ningún inconveniente. Lamentablemente no encontré ninguna fuente gratuita con el mismo comportamiento. Pero espero que entiendas lo que quiero decir.

¿Cómo puedo incluir lo que falta?signo menosde otra fuente a mi fuente de texto para obtenerpara funcionar correctamente?


Aquí hay un 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}

dándome la salida:

ingrese la descripción de la imagen aquí

No tengo el problema con otras fuentes.


Probé varias cosas, las dos primeras me dieron errores de sintaxis:

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

o como suelo hacer con la fuente matemática:

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

Y encontré este código también,

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

ninguno de ellos trabajando.

¿Alguna sugerencia más?


La fuente que utilicé si contiene el carácter \char"2013pero no lo contiene \char"2212pero me parece que este es el que llamacuando se escribe el menos.

sugerencia de egreg

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

trabaja para la unidad

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

pero no para el número, ya que ^^^^2212es un carácter numérico no válido.

información relacionada