Why does the amsmath package define \std@minus and \std@equal?

the comment in the file amsmath.dtx reads thus:

The minus sign used in constructing these arrow fills is smashed so that superscripts above the arrows won't be too high. This primarily affects the \xleftarrow and \xrightarrow arrows.

since this file has been processed into a pdf file and is included in tex live, you can look at the details by asking for texdoc amsmath.pdf.

implicit in this setting is the knowledge that the minus sign in computer modern has the same height as the plus, which would certainly affect the positioning of superscripts unless adjusted.

although not commented explicitly, the equal sign is used as the extender for two-shaft arrows.


diffs-m.txt contains the remark

---Changed \relbar to use \std@minus---otherwise \underleftrightarrow works poorly in a \DeclareMathOperator definition.

and trying this out one can see the problem:

\documentclass[12pt]{article}%

\usepackage{amsmath}


\DeclareMathOperator{\test}{\underleftrightarrow{test}}

\begin{document}


\[\test\]

\makeatletter
\def\relbar{\mathrel{\mathpalette\mathsm@sh-}}

\[\test\]

\end{document}

enter image description here

Tags:

Amsmath