%%% ====================================================================
%%%  @LaTeX-file{
%%%     author          = "Alan Jeffrey",
%%%     version         = "0.01",
%%%     date            = "28 July 1993",
%%%     time            = "14:59:56 BST",
%%%     filename        = "arrowreq.tex",
%%%     address         = "School of Cognitive and Computing Sciences
%%%                        University of Sussex
%%%                        Brighton BN1 9QH
%%%                        UK",
%%%     telephone       = "+44 273 606755 x 3238",
%%%     FAX             = "+44 273 678188",
%%%     checksum        = "48808 181 567 6237",
%%%     email           = "[email protected]",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "companion font TeX",
%%%     supported       = "yes",
%%%     abstract        = "This is a requirements analysis document for a
%%%                        companion text font"
%%%     docstring       = "The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%     package         = "stands alone",
%%%     dependencies    = "none",
%%%  }
%%% ====================================================================
%
% 28 Jul 1993, v0.01: Finished v0.01.
%
% Copyright 1993 Alan Jeffrey.

\documentstyle{ltugboat}

\title{Requirements for setting math arrows}
\author{Alan Jeffrey}
\address{University of Sussex}
\netaddress{[email protected]}

\def\rtitlex{MFG discussion document}
\def\midrtitle{{\sl Task 2:
  Requirements analysis\/}}
\setcounter{page}{1}

\def\ignore#1{}

\def\T#1{$\fam0 T_{#1}$}
\def\X#1{$\fam0 X_{#1}$}
\def\psname#1{{\normalshape $\langle$#1$\rangle$}}
\def\psnon#1{{\it $\langle$#1\/$\rangle$}}
\def\errorglyph{{\vrule width 0.5em height 0.5em depth0em}}

\font\msamten=msam10
\def\msam#1{{\msamten\char"#1}}

\makeatletter % Stuff nicked from my .sty file.

\def\goesto{\@transition\rightarrowfill}

\def\@transition#1{\@ifnextchar[{\@@transition{#1}}{\@@transition{#1}[]}}
\newbox\@transbox
\newbox\@arrowbox
\@ifundefined{Rightarrowfill}
  {\def\Rightarrowfill{$\m@th\mathord=\mkern-6mu%
     \cleaders\hbox{$\mkern-2mu\mathord=\mkern-2mu$}\hfill
     \mkern-6mu\mathord\Rightarrow$}}
  {}
\def\@@transition#1[#2]%
  {\setbox\@transbox\hbox
     {\strut\hskip0.25em$\scriptstyle#2$\hskip0.25em}
  \ifdim\wd\@transbox<1.5em
     \setbox\@transbox\hbox to 1.5em{\hfil\box\@transbox\hfil}\fi
  \setbox\@arrowbox\hbox to \wd\@transbox{#1}
  \ht\@arrowbox\z@\dp\@arrowbox\z@
  \setbox\@transbox\hbox{$\mathop{\box\@arrowbox}\limits^{\box\@transbox}$}
  \ht\@transbox\z@\dp\@transbox\z@
  \mathrel{\box\@transbox}}

\makeatother

\begin{document}

\maketitle

\section{Introduction}

This document takes a brief look at the requirements for setting arrows
in math mode.  Arrows are used as mathords, as binary operators as
binary relations, as delimiters, and as accents, for example:
\[
  (X = \vec Y) \Rightarrow ({\rightarrow}) : X^2 \mathbin\rightarrow \vec Y
\]
and:
\[
  \left\uparrow\begin{array}{c} a \\ b \\ c \end{array}\right\downarrow
\]
In addition, arrows are often extended, and such extensions may be
arbitrarily long, for example:
\[
  D \goesto[f \circ ()_\bot \circ ({\rightarrow})  \circ \Delta] D
\]
Arrows may also be negated, for example:
\[
  P \not\rightarrow P
\]
In this document, we'll just consider arrows in math mode (rather than
used in pictures such as commuting diagrams).  The arrow accents will be
left for the accents document.

\section{A survey of arrows}

The following arrows are used in mathematics, there are probably more:
\begin{center}
${-}\!\vcenter{\hbox{$\scriptstyle\triangleright$}}$
$\vcenter{\hbox{$\scriptstyle\triangleleft$}}\!{-}\!
  \vcenter{\hbox{$\scriptstyle\triangleright$}}$
${-}\!\vcenter{\hbox{$\scriptstyle\bullet$}}$    \ignore{arrowrightbullet}
$\vcenter{\hbox{$\scriptstyle\bullet$}}\!{-}\!\vcenter{\hbox{$\scriptstyle\bullet$}}$
${-}\!\vcenter{\hbox{$\scriptstyle\circ$}}$
$\vcenter{\hbox{$\scriptstyle\circ$}}\!{-}\!\vcenter{\hbox{$\scriptstyle\circ$}}$
$\vcenter{\hbox{$\scriptstyle\circ$}}\!{-}\!\vcenter{\hbox{$\scriptstyle\bullet$}}$
$\Rightarrow$ \ignore{arrowrightdbl}
$\Leftrightarrow$
$\hookrightarrow$ \ignore{arrowrighthook}
$\mapsto$ \ignore{arrowrightmapsto}
$\rightarrow$ \ignore{arrowright}
$\leftrightarrow$ \\
$\rightharpoondown$ \ignore{harpoonrightdown}
$\rightharpoonup$ \ignore{harpoonrightup}
\msam{0A} \ignore{harpoonrightupharpoonleftdown}
\msam{10} \ignore{arrowrightheadright}
\msam{13} \ignore{arrowrightarrowright}
\msam{1A} \ignore{arrowrightheadleft}
\msam{1A}$\!\!\!\!\!\rightarrow$ \ignore{arrowrightheadleftheadright}
\msam{1D} \ignore{arrowrightarrowleft}
\msam{20} \ignore{arrowrightcurly}
\msam{21}
\msam{23} \ignore{arrowrightturn}
\msam{56} \ignore{arrowrighttrpl}
\end{center}
Each of these is used mirrored around the vertical axis, extended,
and negated.  The following are used facing vertically:
\begin{center}

$\uparrow$ \ignore{arrowup}
$\updownarrow$
$\Uparrow$ \ignore{arrowupdbl}
$\Updownarrow$
\msam{16} \ignore{arrowupharpoonright}
\msam{18} \ignore{arrowupharpoonleft}

\end{center}
Each of these is used mirrored around the horizontal axis,
extended and negated.  The following are used facing diagonally:
\begin{center}

$\uparrow$ \ignore{arrowne}
$\updownarrow$
$\Uparrow$ \ignore{arrownedbl}
$\Updownarrow$

\end{center}
Each of these is used facing north-east, south-east, south-west and
north-west, with two-headed versions, extended and negated.  There are
rare uses of north-north-east, north-north-west, south-south-east and
south-south-west.

There may be a demand for vertical and diagonal versions
of `\msam{20}' and `$\hookrightarrow$'.  Indeed, it would be pleasant if
all arrows were available in all eight directions, but this will probably
not be practical, and is heading in the direction of the work on category
theoretic diagrams.

\makesignature

\end{document}
ATDT 678387