The amsxtra package

American Mathematical Society Michael Downes

28 October 1996 Version 1.02

1 Introduction

The amsxtra package contains a few rarely used commands that were present in version 1.1 of the amstex package: \fracwithdelims, accentedsymbol, \sphat,

\spcheck, \sptilde, \spdot, \spddot, \spdddot, \spbreve. If any of these

commands were used in existing documents, the amsxtra package provides a way to get them. But for 99% of documents using the amstex package these commands are just wasted overhead.

\ProvidesPackage{amsxtra}[1996/10/28 v1.2b]

We need to ensure that either the amstex package or the amsmath package is loaded. This means we need something a little more complicated than

\RequirePackage.
\@ifpackageloaded{amstex}{}{%
  \RequirePackage{amsmath}[1996/10/01 v1.2]}

Superscripted accent characters.

\def\sphat{^{\mathchoice{}{}%
 {\,\,\smash[b]{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}%
 {\,\smash[b]{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}}
\def\spcheck{^\vee}
\def\sptilde{^\sim}
\def\spdot{^{\hbox{\raise\ex@\hbox{\normalfont .}}}}
\def\spddot{^{\hbox{\raise\ex@\hbox{\normalfont ..}}}}
\def\spdddot{^{\hbox{\raise\ex@\hbox{\normalfont...}}}}
\def\spbreve{^{\!\smash[b]{\hbox{\lower4\ex@\hbox{\u{}}}}}}

The \fracwithdelims command is skipped if the base package is amsmath; it is only needed if the base package is amstex.

\@ifpackageloaded{amstex}{%
\def\fracwithdelims#1#2{\new@ifnextchar[{\fracwithdelims@#1#2}%
  {\fracwithdelims@#1#2[\@empty]}}
\def\fracwithdelims@#1#2[#3]#4#5{\relax
  \ifx\@empty#3{#4\overwithdelims#1#2#5}\else
  {#4\abovewithdelims#1#2#3\relax#5}\fi}
}{}

Perhaps \accentedsymbol should use \newsavebox, but I don’t know of any compelling reason at the moment.[mjd,5-Sep-1994] \accentedsymbol can only produce a single size of the given symbol, so you’d need two different versions for main size and subscript size.

  \def\accentedsymbol#1#2{\expandafter\newbox\csname\expandafter
    \@gobble\string#1@box\endcsname
   \expandafter\setbox\csname\expandafter\@gobble
     \string#1@box\endcsname\hbox{$\m@th#2$}%
    \newcommand{#1}{%
      \expandafter\copy\csname\expandafter\@gobble\string#1@box
      \endcsname{}}%
  }

Change the definition of ~ to automatically remove a preceding space as well as a following space, if present.

  \def~{\nobreakspace}
  \DeclareRobustCommand{\nobreakspace}{\unskip\nobreak\ \ignorespaces}

The usual \endinput to ensure that random garbage at the end of the file doesn’t get copied by docstrip.

  \endinput