意外的乳胶错误:文本行包含无效字符

意外的乳胶错误:文本行包含无效字符

我的乳胶开始显示此错误:

Error | line 3|! Text line contains an invalid character.

不知从何而来。实际上,它显示了 100 个这样的错误,都在同一行。

我开始调查并尝试测试错误可能来自何处。最后我得到了以下代码:

\documentclass[12pt,twoside]{report}
\begin{document}
  Hello $1,2,3$.
\end{document}

并出现相同的错误。我尝试删除 \documentclass,但出现相同的错误。以下是错误的屏幕截图;

错误图像

如果你们中有谁能帮助我,这真是让我发疯了!

日志文件:

日志文件:这是 pdfTeX,版本 3.1415926-2.5-1.40.14(MiKTeX 2.9 64 位)(预加载格式=pdflatex 2015.6.27)2015 年 8 月 3 日 17:47 进入扩展模式

**main.tex ("C:\Users\Admin\Dropbox\Mestrado\Tese\Latex\Minhatese\main.tex" LaTeX2e <2011/06/27> Babel 和英语、南非荷兰语、古希腊语、阿拉伯语、亚美尼亚语、阿萨姆语、巴斯克语、孟加拉语、博克马尔语、保加利亚语、加泰罗尼亚语、科普特语、克罗地亚语、捷克语、丹麦语、荷兰语、世界语、爱沙尼亚语、波斯语、芬兰语、法语、加利西亚语、德语、german-x-2013-05-26、希腊语、古吉拉特语、印地语、匈牙利语、冰岛语、印度尼西亚语、国际语、爱尔兰语、意大利语、卡纳达语、库尔曼吉语、拉丁语、拉脱维亚语、立陶宛语、马拉雅拉姆语、马拉地语、蒙古语、mongolianlmc 的连字符模式, monogreek、ngerman、n german-x-2013-05-26、nynorsk、oriya、panjabi、拼音、波兰语、葡萄牙语、roman ian、俄语、梵语、塞尔维亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、瑞典语、swissgerm an、泰米尔语、泰卢固语、土耳其语、土库曼语、ukenglish、乌克兰语、uppersorbian、usengl ishmax、威尔士语、loaded。

(“C:\Program Files\MiKTeX2.9\tex\latex\base\report.cls” 文档类:>report 2007/10/19 v1.4h 标准 LaTeX 文档类 (“C:\Program >Files\MiKTeX 2.9\tex\latex\base\size12.clo” 文件:size12.clo 2007/10/19 v1.4h 标准 >LaTeX 文件(大小选项)) \c@part=\count79 \c@chapter=\count80 \c@section=\count81 \c@subsection=\count82 \c@subsubsection=\count83 \c@paragraph=\count84 \c@subparagraph=\count85 \c@figure=\count86 \c@table=\count87 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 )

(“C:\Users\Admin\Dropbox\Mestrado\Tese\Latex\Minha tese\main.aux”!

文本行包含无效字符。l.3 ... 刚刚输入了一个我无法读懂的奇怪符号。继续,我会忘记这件事发生过。!文本行包含无效字符。l.3 ... 刚刚输入了一个我无法读懂的奇怪符号。继续,我会忘记这件事发生过。

[...同样的错误一遍又一遍...]

!==> 发生致命错误,未生成输出 PDF 文件!

答案1

有时我会因为辅助文件损坏而收到此类错误,例如由于终止 pdflatex 而导致 *.aux 被截断或类似错误。其他原因可能是文件中“不可见”的垃圾,例如偷偷溜进来的控制字符,甚至是一些滑稽的东西,比如终端转义符会返回并用空格覆盖一些垃圾。另一种可能是文件中的字符正常,但事实并非如此(例如,现代系统显示 UTF-8 文本几乎没有问题;希腊字母 omicron 看起来像拉丁字母 o,但它们是不同的字符;除非你为 UTF-8 设置编码,否则你会遇到麻烦)。实用解决方案:删除全部中间文件并重试。如果问题仍然存在,请打开文件并重新输入有问题的行,删除原始行。有时您需要重写一个段落来解决这个问题。

更新:刚刚经历了一轮令人恼火的循环,pdflatex因为不知何故我插入了一些奇怪的字符(看起来像撇号,但实际上不是 --- 几乎是看不见的)。

答案2

我的猜测是使用了错误的输入文件。LaTeX 得到的不是源文件,而是二进制文件,例如 PDF 文件。

另一个选择是编码错误。对 UTF-8 有一定的支持。但不支持 UTF-16 和 UTF-32。添加的零字节也会导致此类错误。

TeX 运行时会生成一个扩展名为 的文件.log。此日志会显示输入文件以及完整的错误消息。请更新问题以包含该.log文件(至少从启动到第一个错误消息,不需要所有错误消息)。

答案3

我想将@melissa_boiko 的评论提升为完整答案,因为它解决了我的相关问题。检查您是否latexmk -pvc在另一个终端窗口中运行。如果是,请使用 Ctrl-C 将其终止,删除所有生成的文件(重要的是.aux,可能.bbl还有其他文件)并重新编译。

@melissa_boiko 的原始评论(在@vonbrand 的回答)自2018年2月起:

添加一些文本后,我在一个随机的、不相关的行上遇到了这个带有尾随 NUL(^@)的错误,而且我无法在源代码中 grep 它们,也无法找出它与更改之间的关系。我尝试注释掉看起来危险的行,但它似乎没有反应的规律。然后我注意到,无论是否注释,xelatex 都会给我不同的结果;从相同的源连续两次运行可能会编译成功,也可能会因无效字符而中断。原来是我忘记了在另一个选项卡中运行 latexmk -pvc 进程,而我正在与自己竞争。

我向他们表示衷心的感谢。

答案4

我刚刚自己解决了这个问题,其原因与上面讨论的那些问题不同。对我来说,问题是由 Dropbox 选择性同步引起的。我将包含 tex 文件和所有输入文件的文件夹更改为本地存储。这为我解决了这个问题。

相关内容