关于unicode-math和范围设置

关于unicode-math和范围设置

在学习使用unicode-math及其选项时,我尝试编译以下内容:

\documentclass{article}
\usepackage{mathtools}
\newcommand{\diff}{\symup{d}}
\newcommand{\npder}[3]{\frac{\partial^{#1} #2}{\partial #3^{#1}}}
\newcommand{\vect}[1]{\symbfup{#1}}
\usepackage{luaotfload} %% only for use with LuaTeX
\usepackage{unicode-math}
\setmathfont{STIX2Math.otf}
\setmathfont[range={scr,bfscr},StylisticSet=1]{STIX2Math.otf} %% line A
\setmathfont[range={\int},StylisticSet=8]{STIX2Math.otf} %% line B

\begin{document}
\begin{gather*}
   \symcal{L} = -\increment\symcal{U} = -q\increment\symcal{V} \\
   \increment\symscr{E} = \symscr{Q} - \symscr{L}
\end{gather*}
\begin{align*}
     &\int_0^{+\infty} \frac{5x+1}{3x^2-x-10} \,\diff{x} = \\
   = &\lim_{\alpha \to 0^+} \left[ \frac{2}{3} \left.\ln\left(3x+5\right)\right|_0^{\frac{1}{\alpha}} + \left.\ln\left(2-x\right)\right|_0^{2-\alpha} + \left.\ln\left(x-2\right)\right|_{2+\alpha}^{\frac{1}{\alpha}} \right] = \\
   = &\lim_{\alpha \to 0^+} -\frac{5}{3}\ln\alpha = +\infty
\end{align*}
\begin{equation*}
   \begin{dcases}
      \nabla^2\vect{E} - \frac{1}{c^2}\npder{2}{\vect{E}}{t} = \vect{0} \\
      \nabla^2\vect{B} - \frac{1}{c^2}\npder{2}{\vect{B}}{t} = \vect{0}
   \end{dcases}
\end{equation*}
\end{document}

我遇到了几个问题,并将它们追溯到 A 行和 B 行,我在其中为某些字形范围声明了新选项。特别是:

  • 如果我评论这两行:除了 LuaTeX 中已知的整数限制字距调整问题之外,我使用 XeTeX 和 LuaTeX 都获得了预期的结果(这就是为什么我想用 XeTeX 来编译它,因为它可以得到最好的结果)。
  • 如果我只注释掉第 B 行:在 LuaTeX 中,仍然只有积分下限位移,但其他一切都符合预期;然而,使用 XeTeX,我得到了几个豆腐,正好位于点分隔符的位置。 LuaTeX 最终结果

XeTeX 最终结果

  • 如果我只注释掉 A 行:我实际上得到了与前一种情况相同的结果,当然是使用直立积分并且没有脚本字母。我也得到了 XeTeX 豆腐块...
  • 如果我没有评论任何行:我发现结果与前一种情况完全相同,好像 B 行“覆盖”了 A 行,所以我无法同时获得直立积分和大写字母。当然,使用 XeTeX 我仍然得到豆腐块。

我哪里理解错了“范围”部分?

PS:附注:每一个案件我收到了错误Undefined control sequence \end{align*},但是 PDF 输出结果与预期一致......

相关内容