Masters portal

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.