xelatex 和 lualatex 之间的 widetilde 和 widehat 区别

xelatex 和 lualatex 之间的 widetilde 和 widehat 区别

NewCM 的一位用户指出,xelatex 和 lualatex 在相同的简单 tex 代码上产生不同的结果(不仅仅是 NewCM)。代码

\documentclass{article}
\usepackage[regular]{newcomputermodern}
\begin{document}
\[
\widetilde{X}, \widetilde{B}, \widetilde{Y}, \widetilde{V}, \widetilde{A}
\]
\[
\widehat{X}, \widehat{B}, \widehat{Y}, \widehat{V}, \widehat{A}
\]
\end{document}

使用 xelatex 产生预期结果(例如波浪符号)

在此处输入图片描述

但使用 Lualatex 则是错误的:

在此处输入图片描述

由于我开发了 NewCM,我想知道我是否可以对此做些什么,或者这是引擎的问题,应该在其他地方报告。除了 NewCM 之外,lualatex 字体也存在此问题。

答案1

它归结为一个众所周知的事实/问题,即 xetex 和 luatex 在数学上处理斜体校正的方式不同。luatex 仅在后面跟着另一个字符时插入斜体校正,而这里并非如此,Y 明显较小,并且选择了较小的重音变体。

\documentclass{article}
\usepackage[regular]{newcomputermodern}

\begin{document}\showoutput
{\fontspec{NewCMMath-Regular.otf}\fbox{^^^^^^01d44c}\fbox{^^^^^^01d434}}

\[
\widetilde{Y} \widetilde{A}
\]

\[
\widetilde{Y\Uchar"200D} \widetilde{A} %with zero-width joiner
\]

\end{document}

使用 lualatex

在此处输入图片描述

使用 xelatex

在此处输入图片描述

从日志中也可以看出区别:

使用 lualatex

...\vbox(8.84+0.0)x7.9, direction TLT
.....\hbox(6.51+0.0)x0.0, shifted 1.45001, direction TLT 
......\TU/NewCMMath-Regular.otf(1)/m/n/10 ̃
.....\kern-4.5 (font)     
.....\hbox(6.83+0.0)x5.81, direction TLT %<-------- 5.81 width
......\TU/NewCMMath-Regular.otf(1)/m/n/10 

相关内容