What does each AMS package do?

Most of the answer was extracted from the Introduction sections of the documentation of amsmath and amsthm:

  1. amsmath provides miscellaneous enhancements for improving the information structure and printed output of documents containing mathematical formulas. Some of the features provided by this package are:

    • The \DeclareMathOperator command (through the auxiliary package amsopn) to define new "operator name" commands analogous to \sin and \lim, including proper side spacing and automatic selection of the correct font style and size (even when used in sub- or superscripts).
    • Multiple substitutes for the eqnarray environment to make various kinds of equation arrangements easier to write.
    • Equation numbers automatically adjust up or down to avoid overprinting on the equation contents (unlike eqnarray).
    • Spacing around equals signs matches the normal spacing in the equation environment (unlike eqnarray).
    • A way to produce multiline subscripts as are often used with summation or product symbols.
    • An easy way to substitute a variant equation number for a given equation instead of the automatically supplied number.
    • An easy way to produce subordinate equation numbers of the form (1.3a) (1.3b) (1.3c) for selected groups of equations.
    • The \text command (through the auxiliary package amstext) for typesetting a fragment of text inside a display.
  2. amsthm helps to define theorem-like structures; the introduction to the documentation gives a nice concise description of the package:

    The amsthm package provides an enhanced version of LaTeX's \newtheorem command for defining theorem-like environments. The enhanced \newtheorem recognizes a \theoremstyle specification (as in Mittelbach's theorem package) and has a * form for defining unnumbered environments. The amsthm package also defines a proof environment that automatically adds a QED symbol at the end. AMS document classes incorporate the amsthm package, so everything described here applies to them as well.

    If the amsthm package is used with a non-AMS document class and with the amsmath package, amsthm must be loaded after amsmath, not before.

  3. amssymb provides an extended symbol collection. For example, after loading amssymb you have the following additional binary relation symbols: \barwedge, \boxdot, \boxminus, \boxplus, \boxtimes, \Cap, \Cup (and many more), the arrow \leadsto, and some other symbols such as \Box and \Diamond. Another useful feature is the \mathbb command to produce blackboard bold characters

Since amssymb internally loads amsfonts, it's enough to load the former.

As far as I know, there's not a single package loading amsmath, amsthm, and amssymb so all three of them will have to be loaded when using the standard classes (book, report, article).

If one of the document classes of the AMS-collection (amsbook, amsart) is being used, there's no need to load amsmath, or amsthm; amssymb will have to be explicitly loaded.


Here is the package dependency hierarchy in terms of the AMS-LaTeX bundle:

  • amsmath
    • amstext
      • amsgen *
    • amsbsy
      • amsgen *
    • amsopn
      • amsgen *
  • amssymb
    • amsfonts *
  • amsthm

At the moment, there exists no (say) ams-all package that would load the entire bundle.

* This package has no dependencies.