Template for writing an academic paper in LaTeX with Claude Code as an assistant, with a make and latexmk build that runs beside vimtex, references from dblp, and rules for sources and scratch work.
Go to file Use this template
2026-10-13 14:13:03 +02:00
.claude Add assistant permissions 2026-10-13 14:06:42 +02:00
appendix Add LaTeX paper skeleton 2026-10-13 14:06:10 +02:00
bib Split bibliography into dblp.bib and refs.bib 2026-10-13 14:13:03 +02:00
context Add README, context, scratch and ingest folders 2026-10-13 14:06:10 +02:00
figures Add LaTeX paper skeleton 2026-10-13 14:06:10 +02:00
ingest Add README, context, scratch and ingest folders 2026-10-13 14:06:10 +02:00
macros Add LaTeX paper skeleton 2026-10-13 14:06:10 +02:00
scratch Add README, context, scratch and ingest folders 2026-10-13 14:06:10 +02:00
sections Add LaTeX paper skeleton 2026-10-13 14:06:10 +02:00
venue Add LaTeX paper skeleton 2026-10-13 14:06:10 +02:00
.gitignore Add make and latexmk build 2026-10-13 14:06:10 +02:00
.latexmkrc Add make and latexmk build 2026-10-13 14:06:10 +02:00
.mcp.json Add assistant rules, style guide and commands 2026-10-13 14:06:10 +02:00
CLAUDE.md Split bibliography into dblp.bib and refs.bib 2026-10-13 14:13:03 +02:00
claudese.md Add assistant rules, style guide and commands 2026-10-13 14:06:10 +02:00
main.tex Split bibliography into dblp.bib and refs.bib 2026-10-13 14:13:03 +02:00
Makefile Add make and latexmk build 2026-10-13 14:06:10 +02:00
README.md Split bibliography into dblp.bib and refs.bib 2026-10-13 14:13:03 +02:00
writing-style-guide.md Add assistant rules, style guide and commands 2026-10-13 14:06:10 +02:00

Paper template

This repository is a template for an academic paper in LaTeX, written with Claude Code as an assistant. It compiles as it is and contains placeholder content.

Layout

main.tex uses the article class; a marked block at its top switches it to a venue class, whose files go in venue/. It loads the macros in macros/ and inputs the sections in sections/ and the proofs in appendix/. Every symbol of the paper is a macro in macros/notation.tex, listed with its meaning in context/notation.md. Figures are standalone TikZ files in figures/src/ that read their data from figures/data/, and the paper includes their compiled PDFs from figures/build/. The references are in bib/dblp.bib and bib/refs.bib, processed by biblatex with biber.

context/ contains the material Claude Code works from: the outline with the claims of the paper and the goal of each section, the notation table, and referee reviews, which Claude Code does not edit; and the related papers, which Claude Code downloads into context/related-papers/ as <year>-<first-author-surname>-<title-slug>.pdf, each with a .md file of notes. When a download is blocked, you save the file from Firefox into ingest/, and Claude Code moves it to context/related-papers/. scratch/ contains explorations, one dated folder each, indexed in scratch/README.md. .claude/ contains the permissions of Claude Code and the commands /review-section, /check-notation, /tighten-prose and /new-scratch. CLAUDE.md contains the rules Claude Code follows and imports two files: writing-style-guide.md, the style guide, and claudese.md, the list of banned words and phrases. .mcp.json registers the dblp MCP server.

Entries from dblp, through the dblp MCP server or dblp-cli bibtex <key>, go in bib/dblp.bib and may be added at any time. A reference not in dblp goes in bib/refs.bib, with the BibTeX doi.org returns for its DOI.

Building

make compiles the figures, then the paper with latexmk into build/make/, and copies the PDF to main.pdf. make figures compiles each figures/src/*.tex into figures/build/, and recompiles a figure when its source or a file in figures/data/ has changed. make watch runs latexmk in continuous mode into build/, the folder vimtex also uses through .latexmkrc; since make writes into build/make/, it can run while vimtex or make watch is compiling. make clean removes build/ and figures/build/. make arxiv writes build/arxiv.tar.gz with the sources, the compiled figures and the .bbl file, without context/, scratch/, ingest/, .claude/, CLAUDE.md, writing-style-guide.md, claudese.md and .mcp.json. make wordcount runs texcount over sections/ and appendix/.