[Tex/LaTex] Recommended directory structure for separating presentation and content

dirtreeexternal filesinclude

For my bachelor thesis I am going to structure the files for my LaTeX document in a more sophisticated way, which means I would like to use different folders for different file types.

Is there a directory structure for reports in LaTeX which is recommended to follow? Currently I have the following folders:

  • content: containing tex files for the different chapters, which are included into the main document
  • images
  • bib

Whereas my main document thesis.tex remains in the root directory.

Best Answer

I'd say this is a reasonable structure, given the complexity of the bachelor thesis (or lack thereof, if you compare it to master thesis or dissertation). That being said, here are a few tips you might find useful:

  • Separation of the content into logical units is almost obligatory for any non-trivial document you write. You can keep this on the chapter/section level, but if you have complex and long sub-units, it doesn't hurt to put them in separate documents as well.

  • If you have borderline OCD like me, or simply are writing a lot of documents, you'd like to keep a separate res (resource) directory, with subdirectories for images, code and other include-able and importable stuff.

  • If you write a lot of documents with shared resources (including preambles), you'd like to expose a single location for all your documents, so there's no duplication of resources (or worse still, slightly different versions of e.g. images or code samples). Depending on your OS, you can do this with a symlink to your global resource directory. This is especially helpful for bibliographies, as I only keep one huge .bib database that contains every piece of writing I'm referencing.

  • Have the whole project structure created by a shell/batch script, so that every new document you start will have directories in exactly the same place as before, allowing you to even reuse whole chapters from your other documents with simple copy and paste. Since you have all pluggable resources in exactly the same place every time, these rarely need any change at all.