Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Conditional Import in LaTeX?

I'm going to be taking a ton of lecture notes, and then compiling them into LaTeX so that I can have excellent documents for future me to look over. I'm trying to organize things so that I can have a bunch of little documents containing the notes from a lecture, and then compile them at the end of the semester into one large document containing all of them. I have used import/include etc. successfully in the past, but I've had to remove the content at the head and foot of the sub-documents before compiling the main document. For example, I would have to remove:

\begin{document}

and

\end{document}

from every sub-document before compiling the main document. This is fine for a report with 5 or so sections, but a pain in the ass for something with 100+. Any recommendations for ignoring the contents of a LaTeX file programmatically when using the import command?

like image 202
Bradley Powers Avatar asked Feb 26 '23 07:02

Bradley Powers


1 Answers

I see two approaches here. Either carefully structure your documents, or use some hacky TeX magic:

The smart way

Break your smaller documents into a header part, a footer part and a content part.

header.tex:

\documentclass{article}
...
\begin{document}

footer.tex:

\end{document}

foo-content.tex:

In this paper, we discuss an new approach to metasyntactic variables...

foo.tex (the small paper version):

\include{header}
\include{foo-content}
\include{footer}

In your .tex for the collected articles document:

\include{foo-content}

The hacky TeX way

Put this in some common include file, used by your individual files:

\ifx\ismaindoc\undefined
\newcommand{\inbpdocument}{\begin{document}}
\newcommand{\outbpdocument}{\end{document}}
\else
\newcommand{\inbpdocument}{}
\newcommand{\outbpdocument}{}
\fi

Use \inbpdocument and \outbpdocument in your individual files, in place of \begin{document} and \end{document}. In your main file, put in a \def \ismaindoc {} before including or importing anything.

like image 158
Jack Kelly Avatar answered Mar 20 '23 13:03

Jack Kelly