问题描述
最近Tex Live某次更新后,用xelatex编译文件会出现提示:
这几天Tex Live的后续更新也没有修复这个问题。
调查
- 之前遇到类似错误是因为字体不全,后来添加了两个font相关的collection都解决了:
于是这次又尝试了几个可能有关的collection,也用Tex Live Shell重新生成了fontmaps,还试了回退ghostscript版本。
在这个过程中,还发现一些collection的Info窗口信息提示安装不完整,也删除重装了,都没有效果; - 搜索Tex Live程序目录,发现最近更新的文件(xetex.dll)确实包含了这段字符串提示:
既然官方不打算解决,那可能算是新增加的特性吧,只能继续从自身找原因; - 利用二分法很快定位了一个引发提示的内容:
利用文本编辑器的高亮搜索结果功能,很容易发现上一行是错误的,下一行是正确的。
都是在 $公式环境$ 中包含的假空格字符引起的。
比如原先应该是空格的地方对应的十六进制内容为:f4 80 80 80,改成英文空格或删掉就解决了。
结论
假空格应该是从其他文件复制过来的,偶尔也因为在文件内部复制公式蔓延开来。
从其他文件复制内容后,最好先把空格清理一遍,特别是在公式环境中,避免包含假空格导致多余的提示。