# How do I stack more than two arrows in math mode?

The command \rightrightarrows (from amssymb) draws two arrows, one on top of another. How do I get three arrows arranged in a similar fashion? An example of this (and other fancy arrow stackings) appears on page 3 of this paper, for which a source file unfortunately does not seem to be available. Commands like \stackrel and \overset do not size or space things properly.

-
I’m rather surprised that there is no package with these symbols. For three arrows there is even a Unicode symbol (which unicode-math exposes as \rightthreearrows). –  Caramdir Sep 2 '10 at 9:37

Use TikZ!

\documentclass{article}

\usepackage{tikz}

\newcommand{\triplerightarrow}{%
\tikz[minimum height=0ex]
\path[->]
node (a)            {}
node (b) at (1em,0) {}
(a.north)  edge (b.north)
(a.center) edge (b.center)
(a.south)  edge (b.south);%
}

\begin{document}

$A \triplerightarrow B$
\end{document}


The minimum height=0ex doesn't do anything. I included it to show how to increase the separation of the arrows if desired. To get longer arrows, increase the 1em (this could be made an optional parameter, of course, and with a bit of work could be made so that there was a(nother) parameter specifying some text on top whereupon the arrows scaled to the correct length).

-
TikZ is kind of overkill, I think, and the arrows look different from \rightrightarrows. –  Hendrik Vogt Dec 17 '10 at 10:37
@Hendrik: On the first point I concede, except for the fact that I tend to load TikZ for every document nowadays so as it's already there, why not use it for this construction? On the second, I don't see that much difference. The lines look a little crisper in the TikZ one at 400 magnification, and are perhaps 1pt too long (corrected with shorten >=1pt). If you want the arrows to touch, use inner sep=.3em. I think that a TikZ arrow looks much better than that typeset by, say, \xrightarrow so I'd count the discrepancy as a minus for \rightrightarrows than the other way around. –  Loop Space Dec 17 '10 at 10:55
Well, of course it's a good question which arrow looks better. But you conceded that you do see a difference, and that was my point. If you use different arrows (e.g. the simple \to), then they should look the same, have the same spacing and so on. And it's quite hard to get it so close with TikZ that you can't see a difference. –  Hendrik Vogt Dec 18 '10 at 8:04

\newcommand\rightthreearrow{%
\mathrel{\vcenter{\mathsurround0pt
\ialign{##\crcr
\noalign{\nointerlineskip}$\rightarrow$\crcr
\noalign{\nointerlineskip}$\rightarrow$\crcr
\noalign{\nointerlineskip}$\rightarrow$\crcr
}%
}}%
}


This is basically how \overbrace works except that it uses a fill and a \vbox instead of a \vcenter.

-
You could add some spacing to cause the arrows to not overlap. I didn't even notice it until just now though. –  TH. Sep 3 '10 at 8:30
I think you should use \mathrel, not \mathop for correct spacing (\rightrightarrows are \mathrel). –  Hendrik Vogt Dec 17 '10 at 10:38
@Hendrik: Thanks. Fixed. (I didn't change the picture though.) –  TH. Dec 17 '10 at 10:43

Use \substack



You might adjust the spacing using the optional argument, perhaps choose another arrow with a smaller tip if you like.

-