答案1
您可以使用“标准”声明(请注意,在公式中我使用了 ASCII 连字符,外面是减号 U+2212)。
\documentclass{article}
\usepackage{mathspec}
\setmainfont{DejaVu Sans}
\setmathsfont(Digits,Latin,Greek){DejaVu Sans}
\setmathrm{DejaVu Sans}
\makeatletter
\DeclareMathSymbol{=}{\mathrel}{\eu@DigitsArabic@symfont}{`=}
\DeclareMathSymbol{+}{\mathbin}{\eu@DigitsArabic@symfont}{`+}
\XeTeXDeclareMathSymbol{-}{\mathbin}{\eu@DigitsArabic@symfont}{"2212}
\makeatother
\begin{document}
\(\mathrm{e}^{\mathrm{i}\pi}=-1+1-1\) = −1+1−1
\end{document}
您还可以添加
\XeTeXDeclareMathSymbol{^^^^2212}{\mathbin}{\eu@DigitsArabic@symfont}{"2212}
为了完整性。
更完整的版本(还有amsmath
):
\documentclass{article}
\usepackage{amsmath}
\usepackage{mathspec}
\setmainfont{DejaVu Sans}
\setmathsfont(Digits,Latin,Greek){DejaVu Sans}
\setmathrm{DejaVu Sans}
\makeatletter
\DeclareMathSymbol{=}{\mathrel}{\eu@DigitsArabic@symfont}{`=}
\DeclareMathSymbol{+}{\mathbin}{\eu@DigitsArabic@symfont}{`+}
\DeclareMathSymbol{.}{\mathord}{\eu@DigitsArabic@symfont}{`.}
\DeclareMathSymbol{\ldotp}{\mathpunct}{\eu@DigitsArabic@symfont}{`.}
\DeclareMathSymbol{;}{\mathpunct}{\eu@DigitsArabic@symfont}{`;}
\DeclareMathSymbol{,}{\mathpunct}{\eu@DigitsArabic@symfont}{`,}
\DeclareMathSymbol{\cdot}{\mathbin}{\eu@DigitsArabic@symfont}{"00B7}
\DeclareMathSymbol{\cdotp}{\mathpunct}{\eu@DigitsArabic@symfont}{"00B7}
\AtBeginDocument{%
\XeTeXDeclareMathSymbol{-}{\mathbin}{\eu@DigitsArabic@symfont}{"2212}%
\XeTeXDeclareMathSymbol{^^^^2212}{\mathbin}{\eu@DigitsArabic@symfont}{"2212}%
}
\makeatother
\begin{document}
\(\mathrm{e}^{\mathrm{i}\pi}=−1+1−1\) = −1+1−1
\(;.,\ldots\cdots\)
\(,\dots,\) \(a+\dots+z\)
\end{document}
答案2
您可以使用以下
\documentclass{minimal}
\usepackage{mathspec}
\setmainfont{DejaVu Sans}
\setmathsfont(Digits,Latin,Greek){DejaVu Sans}
\setmathrm{DejaVu Sans}
% 0 (large) \mathop, 1 (binary) \mathbin, 2 (vary) \mathbin, 3 (relation) \mathrel, 4 (opening) \mathopen, 5 (closing) \mathclose, 6 (punctuation) \mathpunct, 7 (alphabetic) \mathalpha
\Umathcode`=="3 \csname symLatin:m:n\endcsname `=
\Umathcode`-="2 \csname symLatin:m:n\endcsname `-
\Umathcode`×="2 \csname symLatin:m:n\endcsname `× \def\times{×}
\begin{document}
\(\mathrm{e}^{\mathrm{i}\pi}=-1\) = -1
\end{document}
给予
按照要求。
但是,请注意,-
并且U+002D HYPHEN-MINUS
还有−
U+2212 MINUS SIGN
,您可能希望使用它:
为此,将相关行替换为
\Umathcode`-="2 \csname symLatin:m:n\endcsname `−
(行中的最后一个字符是U+2212 MINUS SIGN
)。
我从@egreg 的回答对我的问题XeLaTeX 中的符号。