Missing character: There is no * in font cmr10

xelatex.exe提示:“Missing character: There is no * in font cmr10!”

问题描述

最近Tex Live某次更新后,用xelatex编译文件会出现提示:
Missing character
这几天Tex Live的后续更新也没有修复这个问题。

调查

  1. 之前遇到类似错误是因为字体不全,后来添加了两个font相关的collection都解决了:
    font related collections
    于是这次又尝试了几个可能有关的collection,也用Tex Live Shell重新生成了fontmaps,还试了回退ghostscript版本。
    在这个过程中,还发现一些collection的Info窗口信息提示安装不完整,也删除重装了,都没有效果;
  2. 搜索Tex Live程序目录,发现最近更新的文件(xetex.dll)确实包含了这段字符串提示:
    在这里插入图片描述
    既然官方不打算解决,那可能算是新增加的特性吧,只能继续从自身找原因;
  3. 利用二分法很快定位了一个引发提示的内容:
    difference
    利用文本编辑器的高亮搜索结果功能,很容易发现上一行是错误的,下一行是正确的。
    都是在 $公式环境$ 中包含的假空格字符引起的。
    比如原先应该是空格的地方对应的十六进制内容为:f4 80 80 80,改成英文空格或删掉就解决了。

结论

假空格应该是从其他文件复制过来的,偶尔也因为在文件内部复制公式蔓延开来。
从其他文件复制内容后,最好先把空格清理一遍,特别是在公式环境中,避免包含假空格导致多余的提示。

猜你喜欢

转载自blog.csdn.net/feiyunw/article/details/121606801
今日推荐