由于 \DeclareMathAlphabet,\mathcal{J} 和 \mathcal{K} 上的帽子“偏离中心”

由于 \DeclareMathAlphabet,\mathcal{J} 和 \mathcal{K} 上的帽子“偏离中心”

我使用 NCM (NewComputerModern) 作为我的主要字体。因为我不喜欢Euler 字体\mathcal{…}提供的oder样式。unicode-mathLatin ModernComputer Modern

我认为我应该切换到Computer Modern Symbolcmsy

\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}

我从这里

如果您将 cmd 与in进行比较,则会导致\hat{…}cmd 稍微偏离中心。unicode-mathLatin Modern Math

第一个是欧拉字体。我认为字母的间距mathcal被用来设置hat符号,这导致它稍微偏离中心(但我可能错了)。

在此处输入图片描述

我如何获得“正确”的位置?

它看起来应该是这样的(尽管这个帽子符号的宽度很奇怪):

在此处输入图片描述

梅威瑟:

\documentclass{scrartcl}
\usepackage{unicode-math}
\setmainfont{NewCM10-Book.otf}
\setmathfont[CharacterVariant=1]{NewCMMath-Book.otf}
\setmathfont[range={scr,bfscr}]{XITS Math}
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}

\begin{document}
    $\hat{\mathcal{J}} \hat{\mathcal{K}} $
\end{document}

类似帖子: 这里这里

答案1

我认为我可能找到了比我以前使用的“更好”的解决方案。

我假设(但实际上只是猜测)\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n} 内部使用了其他字体的字体形状和字符宽度,这导致\hat{…}\mathcal{J}未对齐\mathcal{K}

经过测试和尝试后,我查找了cmsy实际所谓的已安装文件。

事实证明该文件被调用cmsy10(实际上范围从5到10;所以cmsy5,,cmsy6...)。

现在来讨论固定的 MWE:

\documentclass{scrartcl}
\usepackage{unicode-math}
\setmathfont[CharacterVariant=1]{NewCMMath-Book.otf}
\setmathfont[range={scr,bfscr}]{XITS Math}
\setmathfont[range={cal}]{cmsy10} % the FIXED implementation of the CM Calligraphic Font
\setmathfont[StylisticSet=1,range={bfcal}]{XITS Math} % not necessary but allows also for bfcal

\begin{document}
    $\hat{\mathcal{J}} \hat{\mathcal{K}} $
    \\[2ex]
    $\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
    \\[2ex]
    $\mathbfcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
    \\[2ex]
    $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
    \\[2ex]
    $\mathbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
    \\[2ex]
    $\mathbb{abcdefghijklmnopqrstuvwxyz}$
\end{document}

在此处输入图片描述

相关内容