| chapter | ||
| dissertation-style | ||
| front-matter | ||
| .gitignore | ||
| .latexmkrc | ||
| bibliography.bib | ||
| definitions-extra.tex | ||
| definitions.tex | ||
| LICENSE | ||
| main.tex | ||
| Makefile | ||
| README.md | ||
Dissertation LaTeX Template
A clean, modular LaTeX template for PhD dissertations. Designed for compatibility with both Overleaf (web-based, no installation) and local toolchains like VimTeX.
Quick Start
Overleaf (Recommended for Beginners)
- Download this repository as a ZIP file.
- In Overleaf, click New Project → Upload Project and select the ZIP.
- Open
definitions.texand fill in your metadata (name, title, committee, etc.). - Write your chapters in
chapter/<name>/main.texfiles. - Add bibliography entries to
bibliography.bib. - Click Recompile to build.
Note: Overleaf automatically detects
.latexmkrcand uses the correct build settings. No manual compiler configuration needed.
Local Build (VimTeX / CLI)
Prerequisites: A working TeX distribution (TeX Live, MiKTeX, or MacTeX) with latexmk and biber installed.
Build:
latexmk main.tex
Clean auxiliary files:
latexmk -c main.tex
Clean everything (including PDF):
latexmk -C main.tex
Continuous preview (auto-rebuild on save):
latexmk -pvc main.tex
Or use the Makefile:
make # Build
make clean # Clean aux files
make distclean # Clean everything
make watch # Continuous preview
VimTeX users: The included .latexmkrc is automatically picked up by VimTeX. Just open main.tex in Neovim/Vim and use your usual VimTeX mappings (e.g., <localleader>ll to compile, <localleader>lv to view).
Project Structure
.
├── main.tex # Root document (do not edit structure lightly)
├── definitions.tex # Your metadata: name, title, committee, etc.
├── definitions-extra.tex # Extra preamble: custom commands, theorem styles
├── bibliography.bib # BibLaTeX bibliography database
├── .latexmkrc # Build configuration (Overleaf + local)
├── Makefile # CLI shortcuts
├── README.md # This file
│
├── dissertation-style/ # Internal style files (rarely need editing)
│ ├── preamble.tex # Package imports and setup
│ ├── front-matter.tex # Title page, abstract, TOC, etc.
│ └── back-matter.tex # Appendix setup
│
├── front-matter/ # Content for roman-numeraled pages
│ ├── abstract.tex # Dissertation abstract
│ ├── dedication.tex # Optional dedication page
│ └── acknowledgements.tex # Optional acknowledgements
│
└── chapter/ # Your chapters
├── introduction/
│ └── main.tex # Introduction chapter
└── conclusion/
└── main.tex # Conclusion chapter
# Add more: chapter/<name>/main.tex, then \input in main.tex
Customization Guide
1. Set Your Metadata
Edit definitions.tex:
\def\dissertationtitle{Your Actual Title}
\def\fullname{Your Full Name}
\def\defenseyear{2027}
\def\defensemonth{May}
\def\defenseday{15}
\def\advisor{Dr. Advisor Name}
Also update:
\university,\department,\degree(defaults to Duke Math PhD)- Committee members in
\committeelist
2. Enable/Disable Optional Pages
In definitions.tex, toggle these flags:
\dedicationtrue % Dedication page
\tablestrue % List of Tables
\figurestrue % List of Figures
\symbolstrue % List of Symbols (requires makeglossaries)
\acknowledgementstrue % Acknowledgements
\appendixtrue % Appendices
Comment out or set \...false to disable.
3. Add a New Chapter
- Create the directory:
chapter/my_chapter/ - Create
chapter/my_chapter/main.tex:\chapter{My Chapter Title} \section{First Section} Your content here. - Add to
main.tex:\input{chapter/my_chapter/main.tex}
4. Add Bibliography Entries
Edit bibliography.bib:
@article{smith2024,
author = {Smith, Alice and Jones, Bob},
title = {A Great Paper},
journal = {Journal of Examples},
year = {2024},
volume = {42},
pages = {1--20}
}
Cite in your text: \cite{smith2024}.
5. Define Symbols (Optional)
If \symbolstrue is enabled, add symbols in definitions.tex:
\glsxtrnewsymbol[description={the special linear group}]{SL2}{\ensuremath{\mathrm{SL}(2, \mathbb{R})}}
They will appear in the List of Symbols.
Troubleshooting
| Problem | Solution |
|---|---|
| "Missing bibliography" error | Ensure bibliography.bib exists and has at least one entry. Run latexmk twice. |
| "Missing glossary" error | The .latexmkrc runs makeglossaries automatically. If building manually, run makeglossaries main between pdflatex passes. |
| Overleaf won't compile | Check that definitions.tex has no unfilled %% FILL IN %% comments left in active macro definitions. |
VimTeX not detecting .latexmkrc |
Ensure your VimTeX config does not override g:vimtex_compiler_latexmk. The defaults work. |
License
MIT License — see LICENSE for details.
You are free to use, modify, and distribute this template for personal or departmental use.