LaTeX Packages

Jump to: plstx pfsteps ottalt subref crush listproc

The plstx Package

This package provides a configurable environment plstx for high-quality typesetting of grammars for programming language theory.

Dependencies: listproc

The pfsteps Package

This package provides three facilities for making it easier to write proofs in LaTeX:

  1. proof step counters and references, inspired by Rémy’s locallabel package, but with a different interface;
  2. a proof display environment pfsteps for printing line-by-line proofs with justifications; and
  3. the byCases environment for proofs by cases.

Dependencies: listproc

The ottalt Package

Ott is a tool for writing definitions of programming languages and calculi. It can generate LaTeX definitions for typesetting grammars and inference rules written in its domain-specific language for describing such things.

This package redefines several macros that Ott generates for typesetting grammars and rules, and it provides several new macros that make it easy to include grammars and rules in a document on an individual basis.

Dependencies: listproc mathpartir

The subref Package

This package provides macros for referring to nested references. I use this when I have a theorem with multiple parts in order to attach labels to each part that refer to both the theorem number and the part number.

The crush Package

This package provides macros that are useful when text or math needs to overlap or spill outside its enclosing box. For example, the \crushr macro sets its argument right-aligned in a 0 width box, so it spills out to the left.

There is also a command \shrinkbox which equalizes the line lengths of its argument, including the last line. This is useful, for example, to make centered titles look good without resorting to manual line breaks.

The listproc Package

This package provides a variety of list processing macros, including sorting, compressing ranges, mapping and iteration. Several other packages on this page (ottalt, plstx, pfsteps) depend on listproc.