我使用 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}