17

I have a document structure with subfiles/subchapters. Until now, I worked with TexMaker and TexLive on Windows and with the following line in every subfile, everything just worked great.

%!TEX root = ../main.tex

Friends recommended TexStudio as a better editor, so I tried it, but I can't compile from subfiles. What is the problem?

3
  • Go to the master file, go to options -> current file as master, done :-)
    – Johannes_B
    Commented Jan 11, 2016 at 9:32
  • Thank you @Johannes_B. I allready found the solution, just posted this question to answer it by myself so that someone else doesn't have to search for so long as is did.
    – Spenhouet
    Commented Jan 11, 2016 at 9:38
  • is %!TEX root = ../main.tex a Texmaker's feature? I think you mean texworks?
    – touhami
    Commented Jan 11, 2016 at 16:27

2 Answers 2

22

Please use the form % !TeX root = ../main.tex

For details see the TeXstudio user manual.

Background information on % !TeX

These 'magic' comments were first introduced by TeXShop. Afterwards, other editors started to adopt them, including TeXworks, Texmaker and TeXstudio. There's no official standard. So capabilities, and tolerance towards capitalization and spaces may be different among the editors. The above form is the original one and should be accepted by all editors.

Additional hint

TeXstudio has an integrated root detection. If you have main.tex open and sub.tex included in main. It automatically detects that main.tex is the root document and thus compiles that even if the editor has focus on sub.tex.

It's still good practice to set % !TeX root because then everything works even without an open root document. Additionally, your TeX files are more portable since AFAIK other editors do not support automatic root detection.

For further details see the user manual section on multi file documents.

4
  • is %!TEX root = ../main.tex a Texmaker's feature? I can't find it any were!
    – touhami
    Commented Jan 11, 2016 at 21:24
  • @Tim Hoffman thank you for your reply. I got it to work. It seems TeXstudio has a bug. If you run subfiles without ever run the mainfile it's impossible to run subfiles. Since i only opened the mainfile, run it and then run a subfile everything works just fine. I found this problem with the solution in your bug tracker but it was closed. sourceforge.net/p/texstudio/feature-requests/474
    – Spenhouet
    Commented Jan 12, 2016 at 10:25
  • @besnep: That request was closed it worked for us and there was no additional feedback. You may file a new bug report. Please make sure to describe the issue as precise as possible. Commented Jan 12, 2016 at 22:09
  • @TimHoffmann: In my own document i couldn't reproduce this problem again. But with the original template this is reproduceable: sourceforge.net/p/texstudio/bugs/1629
    – Spenhouet
    Commented Jan 13, 2016 at 11:47
11

I was looking for an answer for quite some time but couldn't find an answer on the internet. Because of that i thought it would be good to post this problem with the solution i found:


The solution for this problem is quite simple. The mentioned root command doesn't work in TexStudio but you can set a root file manually:

  1. Open the you root/main file
  2. TexStudio menu: options
  3. Root document
  4. Define Current Document as 'Master Document'

I hope this does help someone else.


If there is a alternative to the "%!TEX root =..." command for TexStudio then please feel free to write an answer!

3

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .