- Clone this repository to setup new LaTeX projects.
- Place your own content inside the
src
directory and adjust settings inlatexmkrc
according to your personal preferences. Note: If you're working on overleaf, move the root file of your project to the project root directory instead and adapt the configuration inlatexmkrc
according to the comments therein. Also make sure to change the LaTeX engine for your overleaf project tolualatex
. - Compile your projects using
latexmk
on windows, macOS and linux. To force recompilation, uselatexmk -g
instead. - Temporary artefacts are moved into
tmp
, which is generated during compilation automatically. - Output artefacts are moved to
build
, which is generated during compilation automatically. - Assuming you have not made severy changes to this project structure, you may safely delete directories
build
andtmp
at any time without harming the project integrity. Hence,build
andtmp
should never be put under version control.
- All source code should be placed in
src
to keep the top-level project directory de-cluttered. - Only notes and configuration files must reside in the top level project directory.
- Any lasting LaTeX setup should be put inside the package
customizations.sty
to ease reuse and declutter the root document. - When using LaTeX packages
tikz
,pgfplots
,bodeplot
and similar, you should put any pictures in separate*.tikz
files, to declutter code and possible speed up compilation by caching (see next point). - The auxiliary package
goodexternalize.sty
is available for loading in your documents.goodexternalize.sty
is a custom-written wrapper for the TeX macro\input
, which branches off inputting oftikz
-like graphics. Beforetikz
-like graphics are input, the comand\tikzsetnextfilename
is executed to replicate the directory structure undersrc
intotmp
when comiling, e.g. to input a filesrc/path/to/glory.tikz
, the document author must call\input{path/to/glory.tikz}
or\input{src/path/to/glory.tikz}
, and all temporary artefacts concering the creation ofglory.tikz
will be stored undertmp/path/to/glory.log|.aux|...
respectively. Keeping a synchronized structure tremendously helps with finding, updating and deleting parts of the cache.