使用子文件包时,我是否仍应将主文件定义为主文档?

使用子文件包时,我是否仍应将主文件定义为主文档?

这是一个非常简单的问题,也可能是一个非常幼稚的问题,但我需要知道:

我正在使用该subfiles包来管理我的项目文件,并且我已设置所有路径,以便每个文件都能正确编译。但是,我注意到我仍然将主文档定义为 master。如果我将其取消定义为 master 并尝试编译任何从属文件,我会收到大量有关参考、参考书目、图形等的错误,具体取决于我在当前文件中使用的内容。

我的理解是从属文件应该编译他们自己没有问题,但我可能误解了整个事情。那么,如果我使用子文件,我应该有一个主文件吗?如果不是这种情况,那么我得到的错误很可能是由于路径设置错误造成的,为了解决问题,我将面临一场噩梦般的反复试验。

我觉得这不需要 MWE,但如果有必要,我很乐意包括一个。

* 编辑以澄清:我使用的是 TexMaker,其中一个选项允许将主 tex 文件定义为主文档,它使用所有\include\input文件构建文件结构。这样做是为了在打开任何文件时进行快速编译(因此每次需要快速编译时不必从文件切换到主文件等)。

答案1

来自子文件文档

如果子文件是单独排版的,则以主文件(包括其\documentclass)的开头作为前导,其余部分按正常排版。

这取决于你所说的“取消定义”是什么意思(而且我没有足够的代表在评论中要求你澄清),但我把它理解为以下两件事之一:

  1. \documentclass[master.tex]{subfiles}从子文件中删除
  2. 您重命名了 master.tex 文档,但没有更改\documentclass子文件中的参数

无论如何,根据上面的引述,这意味着subfiles当您单独编译子文件时,主文档中的前言不会包含在子文件中(由包包含)。因此,您提到的所有基本包导入(参考、书目、图形)都不会包含在文件中,因此文件不会单独编译。

只有当您通过子文件重新连接主文档\documentclass\usepackage在子文件本身的前言中包含所需的命令时,它才会这样做。

相关内容