views:

34

answers:

1

Hi everybody!

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?

+3  A: 

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.

Jack Kelly
Interesting. I think that structuring the documents with a header, footer, and content document will probably work better. That would also allow me to maintain a common set of packages, etc. for all of the lecture notes. Thanks Jack!
Bradley Powers