Workspacethesis/README
LaTeX Skeleton
Use your department's template instead if one exists. Port these chapter files into it
now, not at the end. Find out in month one — see guide/07-defense-and-submission.md.
Layout
main.tex document structure, chapter includes
preamble.tex packages, drafting macros, \sysname
refs.bib auto-exported from Zotero via Better BibTeX
Makefile build, watch, diff, pre-submission check
front/ title page, declaration, abstract, acknowledgements, abbreviations
chapters/ 01-introduction .. 08-conclusion
appendix/ a-reproduction
figures/ vector PDFs, generated by scripts (see ../experiments)
Each chapter stub carries its page budget and the guidance for that chapter as comments.
The reasoning behind the structure is in guide/04-thesis-structure.md.
Build status
Verified: compiles clean with TeX Live 2026, exit 0, no warnings, 35 pages with the placeholder content in place.
Install the toolchain
Neither LaTeX nor make is currently installed on this machine. You need both.
xcode-select --install # provides make
brew install --cask mactex-no-gui # full TeX Live, ~5 GB, no GUI apps
# or, much smaller, then add packages as latexmk complains:
brew install --cask basictex
Open a new shell afterwards so /Library/TeX/texbin is on your PATH, then verify:
cd thesis && make
If you used BasicTeX rather than the full distribution, expect a missing-package error or
two; install what it asks for with sudo tlmgr install <package>.
Alternatively, build in a container without installing anything locally:
docker run --rm -v "$PWD:/work" -w /work texlive/texlive:latest latexmk -pdf main.tex
Build
make # build main.pdf
make watch # rebuild on every save while writing
make check # pre-submission sweep for \todo, undefined refs, overfull boxes
make words # body-text word count
make words-detail # per-chapter word count, for tracking against page budgets
make diff REV=HEAD~5 # marked-up PDF of changes since a revision
make clean
Conventions worth keeping
One sentence per line in the source. Not a style preference — it makes git diffs reviewable at sentence granularity, which is what makes version control useful on prose. Reflowed paragraphs produce diffs you cannot read.
Commit daily, with real messages. The point is recovering a paragraph you deleted in week 34 and want back in week 38.
\todo{} freely while drafting, never edit while drafting. When you cannot find a word
or a number, mark it and move on. make check finds them all later.
Define your system name once via \sysname in preamble.tex, so renaming it in month
eight is one edit. You will rename it.
booktabs rules, not \hline. \toprule, \midrule, \bottomrule. Vertical rules in
tables are a typographic tell.
siunitx for units: \SI{200}{\nano\second} rather than 200ns, so spacing and
formatting stay consistent across 85 pages.
cleveref for references: \Cref{fig:headline} produces "Figure 3.2" automatically, so
you never write "Figure~\ref{}" and never have a mismatch after reordering.