考虑一下代码
% !TEX TS-program = XeLaTeX
% !TEX encoding = UTF-8 Unicode
\documentclass[11pt]{book}
\usepackage{unicode-math}
\setmainfont [Ligatures=TeX] {TeX Gyre Pagella}
\setmathfont [Scale=1.05] {Latin Modern Math}
\setmathfont [range=\mathbb] {TeX Gyre Pagella Math}
\def\csdef #1{\expandafter\def\csname#1\endcsname}
\def\foo #1{\mathop{\mathcal{#1\kern 0pt }}\nolimits}
\def\Newfunction #1#2{\csdef{#1}{\mathop{\mathrm {\rm #2}\kern 0pt}\nolimits}}
\def\bor {\mathcal{B}\mathit{or}}
\Newfunction{Bor}{\mathcal{B}\mathit{or}}
\Newfunction{Imp}{\mathcal{I}\mkern -2mu \textit{mp}}
\parskip 5pt
\begin{document}
1) $\foo{B} + \foo{I}$ \par
2) $\bor+\Bor$ \par
3) $\Imp$ \par
4) $\bigl(( \quad )\bigr)$ \par
\end{document}
使用 XeTeX,版本 3.14159265-2.6-0.99992(TeX Live 2015),除了第 4 项中的 \big 之外,一切正常。
使用 XeTeX,版本 3.14159265-2.6-0.99996(TeX Live 2016)时,第 2、3 项中的 mathcal 消失了。
在第 4 项中, \big 太小,并且在括号之间添加了一个额外的空格。
我还是不明白为什么第 1 项总是正确的......
计算机:MacMini 2012 年底 + Mac OSX El Capitan 10.11.5
答案1
感谢@egreg 报告的错误unicode-math
。这两个问题现已修复
- https://github.com/wspr/unicode-math/commit/3147086b80244df9e737e79f2f6808539bf47c69和
- https://github.com/wspr/unicode-math/commit/0f245c2ec4c527397a67f3ff04aea8107a6cbe31。
相关版本是 2018-02-01 的 v0.8l。