带逗号的尖括号和 Asana Math 太大(或太小)

带逗号的尖括号和 Asana Math 太大(或太小)

我想在我的文档中设置 bra-ket 方程式,该文档使用 Asana Math(带有 lualatex、fontspec 和 unicode-math)。commath 也是某些内容的必需项。但是,在这个特定的组合中,尖括号无法使用某些修饰符(如\bigetc)正确缩放。

考虑一下这个 MWE

%!TEX program = lualatex

\documentclass{article}

\usepackage{amsmath}
% math typesetting (differentials etc.)
\usepackage{commath}

\usepackage{fontspec}
\usepackage[bold-style=ISO]{unicode-math}
\setmathfont{Asana Math}

\begin{document}
  \begin{equation}
    \bigl\langle x \big\vert H \big\vert y \bigr\rangle
  \end{equation}
\end{document}

产生这个结果

尖括号太大

与同样设置的 相比,尖括号太大了\vert。此外,遍历从 到\big的所有大小\Bigg会产生一些匹配和一些不匹配的变体。

避免该问题的有效方法:

  • 使用其他括号
  • 停用通讯
  • 从 Asana Math 切换到默认数学字体

不幸的是,这两个选项都不适合我。\big是最小的修饰符,但已经太大了。跳过它会产生太小的尖括号。

是否有任何(合适的)方法可以\big根据我的包装要求在正常尺寸和尺寸之间获得尖括号?

答案1

commath.sty加载时\bigl产生的尺寸比未加载时大得多。执行\tracingall并比较差异本质上只是显示

< \hbox(8.35597+2.93596)x4.22 []}
---
> \hbox(12.92+7.5)x4.55 []}

这解释了身高差异的原因,但不能解释其原因。

由于commath非常有问题,我建议你不要加载它;参见commath 和 \ifinner

如果您只需要它的\dif命令,请以正确的方式定义它并忘记以非常错误的方式定义它的包,可以通过尝试看到\dif(x+y)

\newcommand{\dif}{\mathop{}\!\mathrm{d}}

(我更喜欢斜体的“d”,但这只是我的观点)。

相关内容