Skip to content
This repository has been archived by the owner. It is now read-only.
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

pset: The simplest LaTeX problem-set templating engine that could possibly work.

This project was abandoned not for any technical reason, but simply because I lost interest.


pset is a LaTeX generator. It reads extensive configuration data from YAML or JSON files in parent directories, as well as from command-line arguments and interactively from the user, and generates a ready-to-use document template.

The primary use case of pset is to typeset problem sets in a university setting. It works equally well to quickly generate a skeleton for personal use, or to create a template to send out to others.

Guiding principles

  • Adhere to LaTeX best practices at all time.
  • Value concision in output.
  • Make configurable everything that can reasonably be configured.


pset was created as a replacement for hmcpset, an antiquitated one-size-fits-none LaTeX template in widespread use at Harvey Mudd College. The advantages of pset over hmcpset are as follows:

  • pset generates LaTeX code that is as minimal as possible, while still formatted consistently and readably. Furthermore, you can configure pset to avoid the insertion of any particular package that you do not like. None of this is possible with hmcpset.

  • You may customize the pset template globally, per class, per assignment, and interactively using hierarchical configuration merging.

  • pset can be quickly updated to fix bugs, improve default behavior, and add new features -- all without breaking old documents.

  • pset follows best practices for its scripting language, Python, and its target language, LaTeX, while hmcpset is a mess of poorly formatted spaghetti code that produces LaTeX code of questionable quality and visual appeal.


πŸ’€ ABANDONED: The simplest LaTeX problem-set templating engine that could possibly work.




No releases published


No packages published