# Arrow heights

• To: math-font-discuss@cogs.susx.ac.uk
• Subject: Arrow heights
• From: alanje@cogs.susx.ac.uk (Alan Jeffrey)
• Date: Fri, 20 Aug 93 15:41 BST

I've been looking at the arrows in cm* and ms*, and in particular how
accent positioning works with arrows.  In doing so, I've discovered some
interesting facts about the AMS arrows:

* The heights of the single arrows are very different.  In increasing
order of height we have:

* \rightarrow = \rightharpoonup = \rightharpoondown
* \rightsquigarrow
* \multimap = \looprightarrow

This produces fairly odd results if you use \mathop superscripts to
put labels onto arrows, see the accompanying test document.

* The \leftrightarrows aren't vertically centered.

* There's a vast disparity in the amount of vertical space around the
arrows.  Compare \rightarrow with \twoheadrightarrow for example.

For limit and accent positioning, it might be nice to include some
restrictions on the allowed heights for arrows. I was thinking of breaking
the arrows into five sizes:

* All the single arrows (\rightarrow, \rightharpoonup,
\rightarrowtail, \multimap and \looprightarrow etc.) must be the
same height.

* All the double arrows (\Rightarrow etc.) must be the same height.

* All the triple arrows (\Rrightarrow etc.) must be the same height.

* All the two-arrows (\rightrightarrows, \leftrightarrows etc.) must be
the same height.

* All the two-harpoons (\leftrightharpoons) must be the same height.

Are these reasonable restrictions?  Is there some good reason for the
AMS arrows being different heights?  Should we split up some of these
classes (it's not obvious what to do with \looparrowright for example)?
Should we collapse some of these classes (the two-arrows and the
triple-arrows perhaps)?  Should we be worried abut not being upwardly
compatible with the current arrows?

Alan.

--- cut here for test document ---

\documentstyle{article}

\font\msam=msam10
\textfont15=\msam

\mathchardef\rightsquigarrow"3F20
\mathchardef\rightarrowtail"3F1A
\mathchardef\looprightarrow"3F23
\mathchardef\Rrightarrow"3F56
\mathchardef\rightrightarrows"3F1C
\mathchardef\leftrightarrows"3F13
\mathchardef\leftrightharpoons"3F0B
\mathchardef\multimap"3F28

\def\doarrows{
\do\rightarrow
\do\rightharpoonup
\do\rightharpoondown
\do\rightsquigarrow
\do\rightarrowtail
\do\multimap
\do\looprightarrow
\do\Rightarrow
\do\Rrightarrow
\do\rightrightarrows
\do\leftrightarrows
\do\leftrightharpoons
}

\fboxsep=0pt

\begin{document}

$$\def\do#1{\fbox{#1}} \doarrows$$

$$\def\do#1{\mathop{#1}\limits^x} \doarrows$$

\end{document}