我快要放弃了我的战斗为了Mn符号在unicode 数学。我意识到我已经替换了这么多缺失和错误的字符,以至于 MnSymol 几乎已经所剩无几了。所以将来我可能会反过来,使用不同的数学字体,用 MnSymbol 替换我不喜欢的符号。
然而,在我将 MnSymbol 送入坟墓之前,请允许我问最后一个问题:
显然 MnSymbol 中缺少句号:
$\Bigg[\bigg(\big[ 42 \big]\bigg)\Bigg].$
当我用不同的字体替换句号时,所有括号后面都会跟着一个\cdot
:
\setmathfont[range={"002E} ]{XITS Math}
如果我替换整个数学字体,这种情况就不会发生:
\setmathfont{XITS Math}
除了寻找解决方案之外,我实际上想知道
为什么?
我正在替换某个 Unicode 字符,其他字符也受到影响,这毫无意义?
完整 MWE:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmathfont{MnSymbol}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Minion Pro}
\setmathfont[range={"005B,"005D,"0028,"0029,"007B,"007D} ]{XITS Math} % brackets
\begin{document}
$\Bigg[\bigg(\big[ 42 \big]\bigg)\Bigg].$
\setmathfont[range={"002E} ]{XITS Math}
$\Bigg[\bigg(\big[ 42 \big]\bigg)\Bigg].$
\setmathfont{XITS Math}
$\Bigg[\bigg(\big[ 42 \big]\bigg)\Bigg].$
\end{document}
备查:
可以找到完整的解决方案这里, 但
\Udelcodenum`.=1073741824
需要更改为
\Udelcodenum`.=0
答案1
我改变了字体,但问题与字体无关。
输出\showlists
显示,在第一种情况下,设置为从在经典 TeX 设置中用于文本的罗马字体中.
拉出,就像用于和朋友一样,但罗马字符来自 Unicode 字体上平面的罗马字母,并且实际上显示为没有字符。.
\fam0
\fam0
\log
unicode-math
\fam1
\texfont0
\nullfont
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmathfont{MnSymbol}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Arial}
\setmathfont[range={"005B,"005D,"0028,"0029,"007B,"007D} ]{XITS Math} % brackets
\begin{document}
\showoutput
\showthe\textfont0
$\Bigg[\bigg(\big[ 42 \big]\bigg)\Bigg].\showlists$
\setmathfont[range={"002E} ]{XITS Math}
$\Bigg[\bigg(\big[ 42 \big]\bigg)\Bigg].\showlists$
\setmathfont{XITS Math}
$\Bigg[\bigg(\big[ 42 \big]\bigg)\Bigg].$
\end{document}