Skip to content

Paper template guide

The paper template creates a LaTeX manuscript with Overleaf as its main source, fixed paths for generated results and references, venue-aware style selection, local checks, and an arXiv export.

Generate and update

cruft create https://github.com/kaustubhharapanahalli/research-foundry --directory paper

From the generated repository:

cruft check
cruft update
make template-check

cruft check and make template-check report whether the template has moved on; cruft update brings its changes into the generated repository for review.

Questions and output

Where paper/cookiecutter.json has no custom prompt, Cookiecutter displays the key shown in backticks. A value in braces is rendered from an earlier answer.

Key Prompt Choices Default What the answer produces
project_name Project name, as people write it Text My Project Human-readable project name in the README and local guidance.
project_slug Project slug (the board label and session names use it) Text {project_name in lowercase with spaces replaced by hyphens} Stable project identifier in generated guidance and metadata.
repo_base Repository base name (may differ from the slug) Text {project_slug} Base used to derive the paper repository name.
repo_name repo_name Text {repo_base}-paper Name of the generated root directory and project metadata.
paper_title paper_title Text {project_name} Title passed to LaTeX in main.tex.
venue Venue style (article is a plain preprint layout) iclr, neurips, article iclr Selects the LaTeX package and bibliography style in main.tex, the venue-kit path and fetch recipe in Makefile, and venue instructions in the README. article uses geometry and natbib and needs no style kit.
venue_year Venue year (the style kit is per year) Text 2027 Forms the International Conference on Learning Representations (ICLR) or Neural Information Processing Systems (NeurIPS) style package, download path, and venue/<venue><year> directory name.
github_mirror Also mirror to GitHub, with CI? (Overleaf stays the main source) no, yes no yes keeps .github/dependabot.yml and .github/workflows/ci.yml; no removes .github/.
python_version python_version Text 3.14 Writes .python-version and selects the tool interpreter; support still begins at Python 3.12.

The internal _python_floor key fixes the supported floor at 3.12, and _template_kind records paper; neither is a question.

Every valid project also receives main.tex, latexmkrc, .chktexrc, references.bib, generated/numbers.tex, section stubs, and figures/, tables/, and venue/ directories, plus shared editor, Git, pre-commit, Make, and Python-tool metadata. Venue style files are not bundled; make venue fetches them for the chosen venue and year.

Refused combinations

The post-generation hook rejects a python_version below 3.12 with: python_version must be 3.12 or newer. No other combination is refused.

Governing decisions