I have a large notebook (~300 pages and growing at ~50 per month) with:
- Deep hierarchy (I use parts, chapters, sections, subsections, subsubsections and paragraphs)
- Document is broken into many parts (30-40 files in total) which are
\inputted at all levels of the section hierarchy (some files are a whole chapter, some files are a single paragraph)
- Many images and tables
- A fair number of references with (
- Most floats are anchored with
H!because I don't want them to move
- Lots of commands like
\nopagebreakto fine tune typesetting
- Large floats which contain blocks of text (and many overfull boxes)
Compiling this takes a few dozen seconds. This is fine most of the time, but if I need to fine tune the size of a picture (needing repeated compiles) the process becomes agonizingly slow. I know that the first step to speed things up is using
\include, so parts that haven't changed don't need to be recompiled. But what's a good policy for deciding when to
\include and when to
Since I can't (unfortunately)
\include everything, should I:
- Always try to
\includetop level files and
\inputeverything below that? This has less overhead (after I
\includeeach chapter or part I can stop worrying and use only
\inputfrom then on) but if I am working on a very large chapter, it will kill most of my performance benefit.
- Always try to
\includethe lowest level file, such as individual chapter or
\paragraphs. The problem with this is that if a section
Sthat was previously small enough to fit in one file needs to be split into files
S1), I now have to go back find where the
\includewas so I can turn it into
\includes force a pagebreak and mess up my layout.
\includesomewhere in the middle. This is the most flexible option, but it is also the most work, since the previous issue of hunting down and shuffling
\includes is now much worse.
What do I do? Is there a single optimal strategy for managing a large, complex Latex project?