Is there a way to use subfiles, in a way that you can compile the middle chapters, let me explain by example.
main.tex (root folder)
--Chapter 1 (Chapter 1 folder)
----Section 1.1 (Chapter 1 folder)
Capter 1 is subfile in main.tex
Section 1.1 is subfile in Chapter 1 docment
What I can do is that I can build and view every section, and the main.tex, but I cannot build Chapter on its own. The code:
%main.tex
\usepackage{subfiles}
\begin{document}
\subfile{chap1/chapter1}
...
\end{document}
%chapter1.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Introduction}
\subfile{chap1/purpose}
...
\end{document}
%purpose.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
\section{Purpose}
\end{document}
The trouble I am in stems from the relative paths I believe, if I change the subfile in the chapters to:
\subfile(../chap1/purpose)
I can build the chapter and view it. But then it won't work from the main.tex files. Any idea how to do it right ?
Edit:
If there is a method or command to get the absolute path, I would be able to solve it easily, is there such a thing ?
Best Answer
I have had the same issue as you.
It is important to note that
\providecommand
only defines\main
one time which is the first time it is run.So when providing
\main
in a subfile then it is also provided inmaster.tex
andmaster.tex
will not redefine it.That is also why it needs to be done before the document class in subfiles as this is where the
master.tex
code is executed.If you use
\def\main{..}
instead then it will be overridden every time you include a subfile.It was solved as:
I hope someone will find is useful.
Edit:
One can also solve this by providing \input@path. This makes the solution work without inserting \main in all path's