Skip to content

cvxgrp/paper_template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

paper_template

PLEASE ADJUST this template for the needs of cvxgrp.

A starter template for writing academic papers in LaTeX, with a reproducible build and automated PDF compilation on every push.

Layout

.
├── paper/
│   ├── main.tex          # the paper
│   ├── make_figures.py   # generates the figures (uv / PEP 723 script)
│   ├── refs/
│   │   └── references.bib  # bibliography
│   └── figures/          # generated figures (PDF)
├── Makefile              # build / figures / clean targets
└── .github/workflows/  # CI that builds the PDF

Building

You need a LaTeX distribution (e.g. TeX Live or MacTeX) with pdflatex and bibtex.

make          # show the available targets
make compile  # build paper/main.pdf
make clean    # remove build artifacts (keeps the PDF)

Figures

Figures are generated by paper/make_figures.py, a self-contained uv script (its dependencies are pinned inline via PEP 723, so no environment setup is needed). It writes PDFs into paper/figures/.

make figures            # choose a figure interactively
make figures FIG=all    # build every figure
make figures FIG=sine   # build just one

Add a figure by writing a figure_* function and registering it in the Target enum in make_figures.py.

Continuous integration

Two GitHub Actions workflows run automatically:

  • build.yml — compiles the PDF on every push and pull request, uploads it as a workflow artifact, attaches it to tagged releases, and (on pushes to main) publishes it to the pdf branch.
  • arxiv.yml — on pushes to main, assembles a self-contained arXiv submission tarball (source .tex, references.bib, pre-built .bbl, and figure PDFs), verifies it compiles standalone, and publishes it to the arxiv branch.

License

MIT

Releases

Contributors

Languages