%20%D0%B2%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%BC%20%D1%88%D1%80%D0%B8%D1%84%D1%82%D0%B5%20%D0%B4%D0%BB%D1%8F%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%20siunitx%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20fontspec.png)
Я вынужден использовать рекламу (Универс) шрифт в моих презентациях, который, очевидно, не содержит выделенного \minus
знака, который называетсяsiunitx. (Хотя я не уверен, так ли это \minus
или что-то еще.) Так что если я печатаю
\SI{-1984}{m^{-42}}
У меня не отображается ни один минус. К сожалению, я не нашел ни одного бесплатного шрифта с таким же поведением. Но я надеюсь, вы понимаете, что я имею в виду.
Как я могу включить отсутствующиезнак минусиз другого шрифта в мой текстовый шрифт, чтобы получитьsiunitxработать должным образом?
Вот 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
, но мне кажется, что это тот, который называетсяsiunitxкогда набран минус.
предложение egreg
\usepackage{newunicodechar}
\newunicodechar{^^^^2212}{\char"2013}
работает для подразделения
\SI{-1984}{m^{^^^^2212 42}})
но не для числа, так как ^^^^2212
это недопустимый числовой символ.