我有一个包含子文件/子章节的文档结构。到目前为止,我在 Windows 上使用过 TexMaker 和 TexLive,并且在每个子文件中都使用以下行,一切都运行良好。
%!TEX root = ../main.tex
朋友推荐 TexStudio 作为更好的编辑器,所以我尝试了一下,但我无法从子文件进行编译。问题是什么?
答案1
请使用表格% !TeX root = ../main.tex
有关详细信息,请参阅TeXstudio 用户手册。
背景信息% !TeX
这些“神奇”的注释最初由 TeXShop 引入。之后,其他编辑器开始采用它们,包括 TeXworks、Texmaker 和 TeXstudio。没有官方标准。因此,编辑器之间的功能以及对大写字母和空格的容忍度可能有所不同。以上形式是原始形式,应被所有编辑器接受。
额外提示
TeXstudio 具有集成的根检测功能。如果您打开了 main.tex 并在 main 中包含了 sub.tex。它会自动检测 main.tex 是根文档,因此即使编辑器的焦点在 sub.tex 上,它也会对其进行编译。
设置仍然是个好习惯,% !TeX root
因为这样即使没有打开根文档,一切都会正常工作。此外,您的 TeX 文件更具可移植性,因为据我所知,其他编辑器不支持自动根检测。
更多详细信息请参阅用户手册中关于多文件文档的部分。
答案2
我找了好久的答案,但在网上找不到答案。因此,我认为最好把这个问题和我找到的解决方案发布出来:
这个问题的解决办法很简单。上面提到的 root 命令在 TexStudio 中不起作用,但你可以手动设置一个 root 文件:
- 打开你的 root/main 文件
- TexStudio 菜单:选项
- 根文件
- 将当前文档定义为“主文档”
我希望这确实能帮助别人。
如果 TexStudio 有“%!TEX root =...”命令的替代方法,请随意写答案!