Differences between AMS-L^{A}TEX version 1.1 and AMS-L^{A}TEX version 1.2

American Mathematical Society (Michael Downes) January 1995

1 Overview

1.1 Transition to L^{A}TEX 2ε Version 1.1 of AMS-L^{A}TEX was designed to work with L^{A}TEX2.09, which became obsolete as of June 1994; version 1.2 of AMS-L^{A}TEX is designed to work with the new L^{A}TEX, aka L^{A}TEX 2ε. Generally speaking, pre-existing documents that were written for L^{A}TEX2.09 can be processed by current L^{A}TEX through a ‘compatibility mode’ that is automatically entered when a document uses \documentstyle instead of \documentclass (see below).

For generic L^{A}TEX the emulation provided by L^{A}TEX’s compatibility mode is extremely good—at least for well-formed documents that avoided commands not documented in the L^{A}TEX manual; the most common point of failure is due to use of internal font commands such as \fivrm or \tenrm, or to the loading of an option file that uses old internal commands (font-related or otherwise). For third-party extensions such as AMS-L^{A}TEX the quality of the emulation in compatibility mode varies; at the time of writing (18-Jan-1995) the emulation is fairly good for AMS packages such as amstex or amssymb, but less good for the AMS documentstyles amsart and amsbook; work to improve the accuracy of the emulation is on-going.

In general, version 1.2 of AMS-L^{A}TEX adheres as faithfully as possible to the L^{A}TEX conventions and command set described in the second edition of L^{A}TEX: A document preparation system (Lamport, 1994). For end users the changes lie primarily in the use of \documentclass and \usepackage instead of \documentstyle plus options, and in the changed syntax of font commands—

e.g., \textbf{...} and \mathbf{...} instead of {\bf...}.

For example, to use the amsbsy package with a general document class such as article, you should no longer write

\documentstyle[amsbsy]{article}% obsolete

but write instead

\documentclass{article}
\usepackage{amsbsy}

For pre-existing documents running in compatibility mode the old forms \bf, \it, etc., for the standard font commands now behave as described in the first edition of the L^{A}TEX manual. Depending on the installation options used for your copy of AMS-L^{A}TEX version 1.1, this may be the ‘right’ behavior for your existing AMS-L^{A}TEX 1.1 documents; if not, you will need to update the options list of the \documentstyle command by adding newlfont, for example:

\documentstyle[newlfont]{amsart}

Internally the changes in version 1.2 of AMS-L^{A}TEX were somewhat more extensive; various parts were rewritten to take advantage of the most recent version of the font selection scheme, for example, as well as the new methods for managing packages and document classes, for defining robust commands, for writing technical commentary in typesettable form, and for providing installation scripts. In other words this version of AMS-L^{A}TEX is thoroughly integrated with current L^{A}TEX, not just jury-rigged.

The user’s guide for AMS-L^{A}TEX 1.2 describes only the current behavior; it doesn’t attempt to describe the ways in which current behavior differs from the behavior of previous versions (that’s the purpose of this document).

1.2 Packages amsfonts, amssymb moved to the AMSFonts distribution In version 1.2, L^{A}TEX support for the use of fonts in the AMSFonts distribution was moved out of the AMS-L^{A}TEX distribution and into the AMSFonts distribution, where it more properly belong. This means the packages amsfonts, amssymb, euscript, and eufrak, as well as associated font definition files. Please note that certain Computer Modern fonts that were formerly found only^{1} in the AMSFonts distribution are considered standard in L^{A}TEX 2ε: cmmib and cmbsy in sizes 5–9, and cmex in sizes 7–9. I.e., when you get a copy of L^{A}TEX 2ε (and you cannot use AMS-L^{A}TEX otherwise), those fonts should be included. If they are not, please inquire to the source where you obtained L^{A}TEX 2ε. If you obtained L^{A}TEX 2ε from CTAN, you can get Metafont source files for those fonts

in the directory /tex-archive/fonts/latex/mf.

As .fd files for those particular fonts are provided in the basic L^{A}TEX distribution, the AMSFonts distribution does not redundantly provide them.

1.3 Package amstex renamed to amsmath The amstex package has been renamed amsmath. The old name ‘amstex’ came from the fact that version 1.0 was a more or less straight port into L^{A}TEX of selected portions from the macro package AMS-TEX written by Michael Spivak, but the historical origins of the package are likely of less interest to the general usership—especially looking to the future—than a straightforward declaration in the name ‘amsmath’ of the sort of features that are provided.

Another important reason for the name change was to make possible some progress that would be out of the question (because of the impact on existing documents) if the name ‘amstex’ were retained. For example, unlike amstex, amsmath doesn’t automatically load the amsfonts package, as that package was moved out to the AMSFonts distribution as described above. If this change were not accompanied by a name change, many existing documents would have to be updated by hand (adding \usepackage{amsfonts}) in order to run without error. A frozen version of amstex.sty is provided for processing pre-existing documents; it won’t have active maintainence henceforth except for bug fixes. For new documents authors should use the amsmath package (not just because we advise it, but because it’s a better package than its predecessor in a number of ways).

1Here ‘only’ is an oversimplification, in light of the availability of (for example) the Sauter versions of the CM Metafont source files.

1.4 New documentclass amsproc A new documentclass amsproc for collections of articles, such as the proceedings of a conference, is now provided in addition to amsart and amsbook.

2 Differences in the amsmath package

Here we describe differences that users will see in the amsmath package, as the successor of amstex version 1.1. In general, commands and options that were dropped during the creation of the amsmath package are retained in the frozen version of amstex that is provided for compatibility mode use.

 (1) The options intlim, nosumlim, nonamelm, righttag, ctagsplt for the

amstex package are superseded by more intelligible names intlimits,

     nosumlimits, nonamelimits, reqno, centertags for the amsmath pack-

age.

(2) The @ character is no longer used as a special command prefix, except for the amscd package, and then only within the CD environment. Practically speaking, this means primarily that it is no longer necessary to use doubled @@ to get a single printed @ character (e.g., in e-mail addresses).

(3) The extensible arrow commands @>>> and @<<< are no longer available outside of the CD environment of the amscd package; alternative commands

     \xleftarrow and \xrightarrow are provided by the amsmath package.

The sub and superscripts are given through an optional resp. mandatory argument, for example

               X\xleftarrow[a]{b}Y  X ⟵_{a}^{b} Y
               X'\xrightarrow[\alpha]{\beta}Y' X′ ⟶_{α}^{β} Y′

(4) The command \bold has been superseded by the command \mathbf, as the latter is now the standard name provided by L^{A}TEX for this purpose.

(5) The commands \newsymbol, \frak, \Bbb are no longer available because the amsfonts package is not loaded by amsmath. (In any case those commands now have new names—see the amsfonts documentation for details.)

(6) The amsmath package provides \lvert and \rvert for | symbols when they act as delimiters (compare \langle, \rangle for ⟨… ⟩ delimiters).

This is to address the problem that the | character is overloaded to represent several different notations with different typographical treatment. Although this overloading is handled easily enough in reading by the discriminatory powers of the knowledgeable reader, it presents more difficult obstacles to the processing of electronic documents by various computer tools. Commands \lVert and \rVert are likewise provided in stead of \| for paired-delimiter use of the ∥ symbol. Further discussion is found in the AMS-L^{A}TEX user’s guide (amsldoc.tex).

(7) The ~ command is left unchanged by amsmath; the change that makes it remove a redundant preceding or following space character is now done only by AMS documentclasses (in version 1.1 this was done by the amstex package).

(8) The following rarely used commands are gone: \accentedsymbol, \sphat,

\spcheck, \sptilde, \spdot, \spddot, \spdddot, \spbreve, \@))),

\@(((. They can be obtained through the amsxtra package if necessary.

(9) The six generalized fraction commands \over, \overwithdelims, \atop,

\atopwithdelims, \above, \abovewithdelims are expressly forbidden by

the amsmath package; use of the recommended forms \frac, \binom, and variants is now required, instead of merely recommended, and a new command \genfrac has been added to fill in the access gaps that used to exist. Use of the \genfrac command is discussed in the AMS-L^{A}TEX user’s guide

(amsldoc.tex).

Not only is the unusual syntax of the primitive TEX fraction commands rather out of place in L^{A}TEX, but furthermore that syntax seems to be solely responsible for one of the most significant flaws in TEX’s mathematical typesetting capabilities: the fact that the current mathstyle at any given point in a math formula cannot be determined until the end of the formula, because of the possibility that a following generalized fraction command will change the mathstyle of the preceding material. As the side effects are a bit technical in nature, they are discussed in technote.tex rather than here.

(10) The \fracwithdelims command is gone, as \genfrac provides equivalent functionality (and a little more).

(11) The optional argument of \frac that allowed changing the thickness of the fraction line is gone. That functionality is now provided only through \genfrac: the need to change the line thickness is so rare in practice that it seems better not to burden the ubiquitous \frac command with the somewhat time-consuming look-ahead process required for an optional argument. I.e., this change will contribute in a small way to making your documents run faster.

(12) The commands \lcfrac and \rcfrac for left or right alignment of continued fraction numerators are gone; they are replaced by an optional

argument of the \cfrac command.

(13) A new command \DeclareMathOperator is provided for defining new operator names:

\DeclareMathOperator{\Tr}{Tr}
\DeclareMathOperator*{\xlim}{x-lim}

The * form makes the operator name produce limit-style sub and superscripts, like \max or \lim. This is now the preferred method, instead of using the old command \operatorname (which is, however, retained for now). The command \operatornamewithlimits has been renamed \operatorname*. These commands now can also be obtained through a separate package amsopn, so it’s not necessary to load the entire amsmath package just to get that feature.

(14) The environments Sb and Sp for multiline subscripts have been replaced by a single command \substack, used as follows:

\sum_{\substack{first line\\second line}}

This command can be used equally well in a subscript or superscript, and provides better vertical positioning (as compared to Sb, Sp) if a multiline subscript is placed on the side, as perhaps for an integral. There is also a slightly generalized alternative, an environment subarray that allows you to specify either centering or left alignment for the contents:

\sum_{\begin{subarray}{l}first line\\second line\end{subarray}}

(15) A command \nobreakdash is provided to suppress the possibility of a linebreak after the following hyphen or dash. For example, if you write ‘pages 1–9’ as pages 1\nobreakdash--9 then a linebreak will never occur between the dash and the 9. You can also use \nobreakdash to prevent undesirable hyphenations in combinations like $p$-adic. For frequent use, it’s advisable to make abbreviations, e.g.,

\newcommand{\p}{$p$\nobreakdash}% for "\p-adic"
\newcommand{\Ndash}{\nobreakdash--}% for "pages 1\Ndash 9"

(16) The [xx]align[at] family of environments has been thoroughly revised: now the xalignat environment is gone, as its function has been merged into the align environment (it’s no longer necessary to specify how many side-by-side structures, as was required for xalignat, because align automatically handles any number of them). Similarly, the xxalignat environment has been replaced by an environment flalign that doesn’t require you to specify how many side-by-side structures will be needed. Certain numbering problems (presence of an equation number when it should be absent, or vice versa) have also been cleared up.

(17) The placement of equation numbers has been substantially improved for align, gather, and split. Numbers will now never overlap on top of the equation body (as far as we can ascertain), and they are much less likely to be shifted up or down unnecessarily when there is actually adequate space to leave the number in the normal place. In a few remaining cases, an equation number will be shifted unnecessarily because technical complications make accurate measurement of the available room too difficult; for those cases a \raisetag command is provided that allows you to manually adjust the vertical position of the equation number. (Thanks to David M. Jones for his substantial [volunteer] work behind this change and the preceding one.)

(18) The seldom-used command \oldnos is gone; if you need it, you should consult the L^{A}TEX documentation on using fonts (e.g., fntguide.tex) to find out how to construct an equivalent command.

(19) A new subequations environment causes all numbered equation environments within its scope to be numbered (4.9a) (4.9b) (4.9c) etc., if the preceding numbered equation was 4.8. A \label command immediately after \begin{subequations} will produce a \ref of the parent number ‘4.9’, not ‘4.9a’. The counters used by the subequations environment

are parentequation and equation and standard uses of \addtocounter,

\setcounter, etc., are possible with those counter names.

(20) The amsmath package (unlike amstex) respects the setting provided by the documentclass for putting equation numbers on the right or the left. [Technical note: a documentclass that has leqno as the default should explicitly pass that option to the amsmath package with \PassOptionsToPackage in order for it to be effective.]

(21) The fleqn option for left-aligned instead of centered equations is now supported (thanks to David M. Jones).

3 Differences in the amsart and amsbook document classes

(1) Instructions for using AMS documentclasses are no longer included in amsldoc.tex (also known formerly as amslatex.tex). They are now found in instr-l.tex in the classes subdirectory. This is a copy of the file instr-l.tex that is found in the author-info area of e-math.ams.org. That area contains additional information pertaining specifically to the submission of L^{A}TEX or AMS-TEX documents to AMS publications.

(2) As mentioned earlier, a companion document class amsproc is now provided for books that consist of a collection of articles, such as the proceedings of a conference.

(3) The abstract should now be entered before the \maketitle command. This provides maximum control over the position and vertical spacing 3. DIFFERENCES IN THE AMSART AND AMSBOOK DOCUMENT CLASSES7

when printing the abstract information at different places, as required by different AMS publications—for example, in some publications the abstract may be required to fall between certain other elements in the beginning section of a document, or it may be postponed to the end of the document, or it might even be omitted entirely. If an abstract is entered after \maketitle, it will still be printed, but with a warning (and possibly in the wrong place or with wrong spacing).

(4) As the AMS document classes automatically load the amsmath package, all changes described above for the amsmath package affect the AMS classes also. Note in particular that the @ character is no longer a special command prefix, so to produce a printed @ in an e-mail address you should now write simply @ instead of @@.

(5) The nonbreaking dash commands @-, @--, @--- are no longer available because @ as a special command prefix has disappeared. An alternative \nobreakdash command is provided in the amsmath package, as described above.

(6) The AMS document classes now take an option nomath that suppresses the automatic loading of the amsmath package. This is sometimes helpful in converting a pre-existing document to AMS style if you only want to do a quick conversion without attempting to deal with any of the math.

(7) The old environments pf, pf* are superseded by a single proof environment. It takes an optional argument to specify an alternative heading text.

If you are converting an older document to run with \documentclass instead of \documentstyle, here is how you could provide backwardcompatible definitions for pf and pf*:

\newenvironment{pf}{\proof[\proofname]}{\endproof}
\newenvironment{pf*}[1]{\proof[#1]}{\endproof}

(8) Formerly \small produced the same typesize as \footnotesize (8pt). Now they produce different sizes, normally 9 and 8 respectively. Furthermore, documentclass options 8pt, 9pt, 11pt, 12pt are now offered in addition to the default 10pt. Also the range of typesize-changing commands is filled out to include, below \normalsize, the following: \small,

\Small, \SMALL, \tiny, \Tiny. \footnotesize and \scriptsize are re-

tained as synonyms of \Small and \SMALL respectively. As it stands \tiny no longer produces the same typesize as it did before (now 6 instead of 5), except in compatibility mode. This might affect some existing documents if they are updated to use \documentclass instead of \documentstyle. Similarly, \large now produces 11pt if the base size is 10pt, where formerly it produced 12pt. Finally, new commands \larger and \smaller are provided for changing the typesize relative to the current size. These commands take an optional integer argument to specify how many steps to go up or down: \larger[2] means go up two sizes, and \larger without an optional argument is the same as \larger[1]. The list of sizes is a standard progression of type sizes and associated linespacing values as defined by the documentclass. If you need finer control over type size or linespacing, consult the L^{A}TEX documentation about the \fontsize command.

(9) The \qed symbol is now an open square, not a filled black square, and it is positioned at the right margin, instead of at a fixed horizontal distance from the preceding text.

(10) The command \rom, for making numbers and punctuation roman/upright in italic text, has been renamed \upn “upright punctuation or number”. It will in most cases suffice to leave this refinement undone until a document is sent to a publisher for final typesetting, and furthermore, certain publications at the AMS now use special in-house italic fonts that have upright numbers and punctuation built in, making the use of \upn unnecessary even then. For general preprint-type use, this refinement is one that most users probably won’t care to bother with.