我有一份相当大的用户指南,用于我与合作者一起开发的代码。每个章节都位于顶级目录的子目录中,其中包含 .tex 文件,该文件抓取并拼接所有单个章节的 .tex 文件以形成完整的文档。
有时单独编译和查看一章很有用。这让我很好奇 (La)TeX 是否可以处理以下内容: (La)TeX 能否在编译期间确定 .tex 文件是从另一个文件\input
编译而来还是\include
从另一个文件编译而来?
一个示例用例是,如果文件是,则仅包含\documentclass
、等。\begin{document}
不是 \include
'ed 或\input
'ed 来自另一个文件。 是的,我知道可以通过其他方式解决这个问题,即智能使用\includeonly
,但我很好奇是否可以以更自动化的方式完成这。
对于那些熟悉的人来说Python
,我真正寻找的是相当于通常的
if __name__ == "__main__":
检查当前文件是否是主模块,或者是否已被import
另一个文件修改。
答案1
原始\input
(\@@input
在 LaTeX2e 中) 简单地将子文件“包含在这里”,就好像它是主文件的一部分一样。因此,最好的办法是在 TeX 之上构建机制来跟踪子文件(这就是 LaTeX 所做的)。没有内置的子文件概念。
答案2
除了决定文件是否被\include
编译之外\input
,还有其他选项允许您单独编译某些主.tex
文件的“子文件”。subfiles
文档类. 正如在类文档,您的主文件和“子文件”文档具有以下结构:
或者,combine
文档类提供了类似的功能。阅读包装文档了解更多信息。