LyX 错误:找不到字符 '' 的 LaTeX 命令(代码点 0x2009)

LyX 错误:找不到字符 '' 的 LaTeX 命令(代码点 0x2009)

我一直尝试将一些代码复制并粘贴到 LyX 中(通过“程序列表”菜单项),当我编译文档时出现 LyX 错误:

Could not find LaTeX command for character '' (code point 0x2009)


LyX 还建议我将尝试复制和粘贴的文档转换为 UTF-8。但是,我运行了 afile --mime <mycodefile.py>和 a file --mime <mycodefile.py>,结果都返回了charset=us-ascii

如果我错了,那就更正吧,但是 ascii 不是 UTF-8 的子集吗?如果是,这个有问题的 0x2009 字符来自哪里,我该如何解决这个问题?


谢谢


注意:我没有复制粘贴,而是尝试使用“插入 > 文件 > 纯文本...”,但还是出现了同样的错误。所以,剪贴板中的文本并不是以某种方式重新编码的。

编辑

出于某种原因,在重新启动 lyx 后,我可以编译(拍额头)。当我最初复制/粘贴时,编码可能是 unicode,但后来我使用 cntl-Z 并使用 vim 将其切换到 UTF-8。这个错误不知何故一直持续到重新启动。

答案1

这个错误有点误导,因为有人可能会把引号误认为是违规字符,而事实上,真正的违规字符是一个细空格(见http://www.unicodemap.org/details/0x2009/index.html)。

从某些应用程序(例如 Adob​​e Reader)复制时,会复制诸如细空格和粗空格、短划线和省略号之类的 Unicode 字符。将其粘贴到 LyX(和其他文本编辑器)时会出现问题。即使 LaTeX 不将 Unicode 字符映射到字体中的相关字符,这些编辑器也会将 Unicode 字符接受为有效的纯文本字符,并且无论在文档源代码中选择了哪种编码,都会发生这种情况。

除了找出有问题的空格并用常规空格替换它们之外,我没有其他通用的解决方案,这是一项非常繁琐的任务。对于较长的文本,您应该使用搜索和替换。我希望其他人可以提出更自动化的解决方案。

答案2

将代码粘贴到文本编辑器中并保存为 ANSI。然后找出未正确显示的字符。

相关内容