编译错误:“扫描 \documentclass 时文件结束”(子文件包)

编译错误:“扫描 \documentclass 时文件结束”(子文件包)

自从在新笔记本电脑上安装新的 TexLive 和 TexStudio 以来,我不断遇到此错误。这在我的台式机上编译正常,但我不知道问题的真正根源是什么。

有很多问题,"File ended while scanning for use of <something>"但是每个问题似乎都有些独立。我看不到其他人有<something>="\documentclass"

在我的主文件中,我使用子文件包编写文档的不同章节(您可以在 LHS 上看到结构)。当我尝试编译时,TexStudio 似乎会抛出一个解析子文件头的解析错误。

我还深入研究了错误日志,似乎我得到了一些“失控参数”,其中编译中的某些点有一个额外的空格。例如,查看"R = \frac{h}{q^2}"选定的行,然后是“失控参数”错误"R = \frac {h}{q^2}..."(\frac 和参数之间的额外空格)。

我认为这种间距不匹配是导致解析错误的原因。知道发生了什么吗?编辑器中的原始文件看起来不错,在我的另一台电脑上编译也很好。

在此处输入图片描述

答案1

这种错误通常是由某种未封闭的结构引起的,即某种缺失}或未封闭的环境。

在用 编写复杂的演示文稿时,我经常遇到这种情况beamer。解决方案是缩小开始范围(可能通过仔细阅读文件*.log,查看获得的任何部分输出文件),并毫不留情地注释掉/删除文件的某些部分,直到将问题隔离到一小段,然后如果看不到问题,则进行二进制搜索。

如果您要求(重新)缩进一段代码,支持 LaTeX 的编辑器(我使用带有 AUC-TeX 的 emacs)会有所帮助,许多错误将表现为奇怪的缩进。

答案2

根据subfiles文档,你应该使用

\documentclass[<main_file_name>]{subfiles}
\begin{document}
....
\end{document}

这肯定已经更新了,因为我之前使用的版本可能在 2020 年之前,当时我不需要 \begin \end 命令。最后简单修复。

相关内容