我想在我的文档中设置 bra-ket 方程式,该文档使用 Asana Math(带有 lualatex、fontspec 和 unicode-math)。commath 也是某些内容的必需项。但是,在这个特定的组合中,尖括号无法使用某些修饰符(如\big
etc)正确缩放。
考虑一下这个 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”,但这只是我的观点)。