[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Arrow heights



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
    * \twoheadrightarrow = \rightarrowtail
    * \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, 
   \rightharpoondown, \rightsquigarrow, \twoheadrightarrow, 
   \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\twoheadrightarrow"3F10
\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\twoheadrightarrow
   \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}