我的文件夹中有以下两个文件:
mymainfile.tex
:
\documentclass{article}
\usepackage{subfiles}
\begin{document}
%\end{document}
\subfile{mysubfile.tex}
\end{document}
mysubfile.tex
:
\documentclass[mymainfile.tex]{subfiles}
\begin{document}
hello
\end{document}
编译mymainfile.tex
(使用 pdflatex)工作正常,并包含了 的内容mysubfile.tex
,这是应该的。但是,mysubfile.tex
单独编译会导致以下错误描述:
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.3 h
ello
?
即编译器的行为就像下面这行代码一样
%\end{document}
未被注释掉。如果删除此行,则两个文件都可以编译。
编译器读取注释掉的行时,好像它根本不是注释一样,这让我很不安,我以为编译器始终忽略注释是我能一直指望的事情!原因可能是什么?
答案1
对我来说,这似乎是subfiles
软件包中的一个错误。我只能假设子文件软件包有自己的代码来解析主文档,而主文档没有完整、正确的 latex 解析功能。
事实上,我认为即使它正确解析了\end{document}
,它也应该能够编译成功,因为它实际上只需要来自的标题mymainfile.tex
,因此应该在第一行(未注释的)处停止\begin{document}
。