Useful LaTeX Packages

Useful LaTeX Packages

by Leslie Lamport

Each package listed here is documented by comments at the beginning of its file.  To read the comments, open the file in any text editor or word processor using a fixed-width font.  The `pf2` package also has a separate document describing how to use it.  While I've tried to document all their idiosynchrasies, the `tla2` and `abbrev` styles are not as robust as the standard styles.  Use them at your own risk.

`pf2.sty`
7 September 2011
This package is for writing the kinds of structured proofs introduced in How to Write a Proof and the forthcoming How to Write a 21st Century Proof.  It has genuine documentation.  See also the pfnum program.

`tla2.sty`
18 November 1998
Helps in writing TLA (Temporal Logic of Actions) formulas and proofs, and TLA+ specifications.  It defines commands and environments for TLA+ modules, and also defines abbreviations that I find useful in math mode, such as  `[]`  for  `\Box`  and  `=>`  for  `\Rightarrow` .  The comments include instructions for how you can modify the package to produce the abbreviations that you will find useful.  The package loads the `pf2.sty` and `abbrev.sty` packages.

`abbrev.sty`
4 September 1994
Allows you to define your own abbreviations--for example to define  `(+)`  to be equivalent to  `\ensuremath{\oplus}` .

Obsolete Style Files

The following are obsolete, but they are here in case anyone encounters a source file for a document that uses them.
`tla.sty`
18 November 1998
Helps in writing TLA (Temporal Logic of Actions) formulas and proofs, and TLA+ specifications.  Defines commands and environments for TLA+ modules, and useful abbreviations, such as  `[]`  for  `\Box`  and  `=>`  for  `\Rightarrow` .  It loads `pf.sty` (described below) and `abbrev.sty` (described above).

`pf.sty`
19 January 1998
Defines commands and environments for writing formulas and structured proofs.

`spec92.sty`
29 October 1995
This is a LaTeX-2.09 document-style option, but it should also work as a LaTeX-2e packages  It defines a spec environment for printing an ASCII specification.  The environment is like verbatim, except that  `\`  works as usual, and various abbreviations are defined--for example,  `[]`  for  `\Box`  and  `=>`  for  `\Rightarrow` .

This page can be found by searching the Web for the 23-letter string uidlamportlatexpackages. Please do not put this string in any document that could wind up on the web--including email messages and pdf and Word documents.  You can refer to it in Web documents as "the string obtained by removing the - from uid-lamportlatexpackages".