我在使用的时候unicode-math
发现,\mathcal
给出的6种字体中并没有的默认表现texdoc unimath-symbols
。
\documentclass{article}
\begin{document}
$ \mathcal{DBFT} $
\end{document}
上面的代码将输出
我发现,unicode-math
性能\mathcal
和\mathscr
\documentclass{article}
\usepackage{unicode-math}
\begin{document}
$ \mathcal{DBFT}, \mathscr{DBFT} $
\end{document}
我发现了一个解决方案在 TeX.SE 上:
\documentclass{article}
\usepackage{unicode-math}
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
\begin{document}
$ \mathcal{DBFT}, \mathscr{DBFT} $
\end{document}
然而这又带来了一个新问题。我无法给字符添加\tilde
重音:\mathcal
\documentclass{article}
\usepackage{unicode-math}
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
\begin{document}
$ \tilde{\mathcal{B}} $
% $ \hat{\mathcal{B}} $
\end{document}
使用XeLaTeX编译后,出现错误:
! Internal error: bad native font flag in `map_char_to_glyph'
现在我可以用它\tilde{\text{$ \mathcal{B} $}}
来解决这个问题,但是这个解决方案看起来很奇怪。
我的要求:
我想
\mathcal
在使用unicode-math
包时使用 Computer Modern 的默认样式(本问题中的第一个图);我想用
\tilde{\mathcal{B}}
直来强调\mathcal{B}
。
这是 GitHub 上的同一个问题(https://github.com/CTeX-org/forum/issues/179)
答案1
您找到了与 不兼容的旧字体的解决方案unicode-math
。
由于 Unicode 将\mathcal
和映射到相同的字符,因此只有在使用选项\mathscr
加载新字体时,才能将它们设置为不同的字母表。例如,它对除和 之外的所有内容都使用 New Computer Modern Book ,它取自 STIX Two Math 的样式集:range=
\setmathfont
\mathscr
\mathbfscr
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{NewComputerModernBook}
\setmathfont{NewCMMath-Book}
\setmathfont{STIX Two Math}[
range={scr,bfscr},
Scale=MatchUppercase,
StylisticSet=1 ]
\begin{document}
\[ \tilde{\mathcal{B}} \; \hat{\mathcal{B}} \; \mathscr{B} \]
\end{document}
由于它现在从 OpenType 数学字体加载所有字母,因此数学重音符号可以正常工作。