![由于 \DeclareMathAlphabet,\mathcal{J} 和 \mathcal{K} 上的帽子“偏离中心”](https://linux22.com/image/447415/%E7%94%B1%E4%BA%8E%20%5CDeclareMathAlphabet%EF%BC%8C%5Cmathcal%7BJ%7D%20%E5%92%8C%20%5Cmathcal%7BK%7D%20%E4%B8%8A%E7%9A%84%E5%B8%BD%E5%AD%90%E2%80%9C%E5%81%8F%E7%A6%BB%E4%B8%AD%E5%BF%83%E2%80%9D.png)
我使用 NCM (NewComputerModern) 作为我的主要字体。因为我不喜欢Euler 字体\mathcal{…}
提供的oder样式。unicode-math
Latin Modern
Computer Modern
我认为我应该切换到Computer Modern Symbol
(cmsy
)
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
我从这里。
如果您将 cmd 与in进行比较,则会导致\hat{…}
cmd 稍微偏离中心。unicode-math
Latin 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}