- Macaulay 2 -- software for commutative algebra and algebraic geometry.
- LiE -- software for representations of semisimple Lie algebras
- GAP -- software for group theory.
- Stembridge's packages -- MAPLE packages for symmetric functions, posets, and Coxeter groups.
- polymake -- software for convex polyhedra and related objects

- My LaTeX preamble
- Typesetting finite and affine Dynkin diagrams with Tikz -- I had to add the line
`\usetikzlibrary{positioning}`to get this to work though

- Rotate even pages -- A bash script to rotate the even pages of a document. Can be modified to do odd pages. I found this script here.
- pdfoutline -- command line utility to add bookmarks to a pdf file. man page
- Removing the password from an encrypted PDF:

`gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=unencrypted.pdf -c .setpdfwrite -f encrypted.pdf`

I got this from here.

- tabmac—A macro for typesetting Young tableaux, more flexible than youngtab. According to the file, it's incomplete, but I've found it very useful.

- By default, LaTeX will only allow a matrix to have at most 10 columns. This
can be changed with the command
`\setcounter{MaxMatrixCols}{n}`where n is any number you want. - One approach to left exponents is to use the macro
`\newcommand{\leftexp}[2]{{\vphantom{#2}}^{#1}{#2}}`so that`\leftexp{a}{b}`produces b with a as its exponent on the left. The`\vphantom`is to match the height of the argument. Replace the ^ with _ for left subscripts. You can also combine them: unfortunately, this solution breaks down if you want left exponents and left subscripts, since they will left-align on an invisible object instead of right-aligning. - A really useful shorthand for
`\rightarrow`is`\to`. Similarly, a shorthand for`\leftarrow`is`\gets`. - When you want to write "f: X->Y", it's best to use
`f \colon X \to Y`because the command`\colon`produces different spacing from just using the character`:` - When doing a citation in a Theorem, the following will cause an error:
`\begin{theorem}[\cite[Theorem 1]{ssam}]`, and a fix is`\begin{theorem}[{\cite[Theorem 1]{ssam}}]`. Another fix is to use`\cite{ssam}*{Theorem 1}`instead. - I feel that the
`enumerate`,`itemize`,`description`environments used up too much space when using the`article`document class. The package`paralist`provides alternative environments which give space-saving and better looking output. A description of this package can be found here. - I like to end remarks, examples, etc. with a box just like the proof
environment. When an example ends with a displayed equation, it would be good
to be able to use
`\qedhere`to get the box on the same line as the equation. One way to define an example environment that lets you do this is

`\newtheorem{eg}{Example}`

\newenvironment{example}[1][]{\begin{eg}[#1]\pushQED{\qed}}{\popQED \end{eg}} - Forcing
`\ref`on renamed items to use the new names: link - To fix an issue with hyperlinks and tables / figures / etc. where clicking the link leads to the caption rather than the table or figure, load the package
`\usepackage[all]{hypcap}`after`hyperref`. Source.

- Open in Browser -- useful for displaying text files (such as source code or .tex files) in firefox