## 编译环境
- 操作系统
- [x] Windows 10
- [ ] Windows 8/8.1
- [ ] Windows 7
- [ ] 更早版本的 Windows
-...
## 编译环境
- 操作系统
- [x] Windows 10
- [ ] Windows 8/8.1
- [ ] Windows 7
- [ ] 更早版本的 Windows
- [ ] macOS
- [ ] Linux(请附发行版)
- TeX 发行版
- [x] TeX Live 2020
- [ ] MiKTeX
- [ ] CTeX 套装 2.9.2.164
- [ ] 更早版本的 CTeX 套装
## 描述问题
先提出我的产生问题的需求. 在使用 `unicode-math` 的过程中, 发现默认的 5 个字体中都不包含默认的 `\mathcal` 的样式, 文中指的默认样式如下
```latex
\documentclass{article}
\begin{document}
$ \mathcal{DBFT} $
\end{document}
```
![defaultcal.jpg](https://i.loli.net/2021/01/10/eRV4xO3NESXBogu.jpg)
但是默认的 `unicode-math` 宏包的 `\mathcal` 的输出样式与 `\mathscr` 相同
```latex
\documentclass{article}
\usepackage{unicode-math}
\begin{document}
$ \mathcal{DBFT}, \mathscr{DBFT} $
\end{document}
```
![unimathcal.jpg](https://i.loli.net/2021/01/10/KmflFduQWw9Zyi6.jpg)
于是我在 StackExchange 上搜索到了一个[解决方法](https://tex.stackexchange.com/a/305501/180617), 如下
```
\documentclass{article}
\usepackage{unicode-math}
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
\begin{document}
$ \mathcal{DBFT}, \mathscr{DBFT} $
\end{document}
```
![unimathsolution.jpg](https://i.loli.net/2021/01/10/GWZpPu91S6Mq5HV.jpg)
但是这样做会产生一个新的问题, 即无法在 `\mathcal{}` 的字上无法添加部分重音(这里的部分是因为我只测试了会用到的 `\tilde` 与 `\hat`)
```latex
\documentclass{article}
\usepackage{unicode-math}
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
\begin{document}
$ \tilde{\mathcal{B}} $
% $ \hat{\mathcal{B}} $
\end{document}
```
会产生一个错误提示
```
! Internal error: bad native font flag in `map_char_to_glyph'
```
目前可以使用 `\tilde{\text{$ \mathcal{B} $}}` 这样的方式来处理, 但是这未免看起来有一些蠢.
我的问题是: 有没有方法可以直接使用 `\tilde{\mathcal{B}}` 来在 `\mathcal` 上加重音.
## 最小工作示例(MWE)
```latex
\documentclass{article}
\usepackage{unicode-math}
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
\begin{document}
$ \tilde{\mathcal{B}} $
% $ \hat{\mathcal{B}} $
\end{document}
```
(用 XeLaTeX 编译后)输出
```latex
! Internal error: bad native font flag in `map_char_to_glyph'
```
一周热门 更多>