7

There is \rightrightarrows to produce two parallel arrows, \longrightarrow to produce a longer arrow and \xrightarrow to produce an extendable arrow. But is there an easy way to produce two long parallel arrows (say \longrightrightarrows) and two extendable parallel arrows (say \xrightrightarrows)?

I have tried to use \atop, \overset, \underset, but it's always imperfect. Using \atop, the distance between the two parallel arrows are too large. Using \overset, the length of the two parallel arrows are different. More generally, what I need are: one can change the length of arrows, the distance betweens the arrows and it should be symmetrical with respect to default vertical position. Also, it should can be typed in both inline math mode and display math mode. And if it can be typed in mathoverflow, it would be great. (In the site mathoverflow, one can't not use \xymatrix....)

The examples looks like:

migrated from stackoverflow.com Aug 6 '11 at 18:19

This question came from our site for professional and enthusiast programmers.

5

I wrote the extpfeil package, which allows creating new extensible arrow types (using the same mechanism which amsmath uses internally for its build-in arrows).

With this, you can write once

\newextarrow{\xbigtoto}{{20}{20}{20}{20}}
   {\bigRelbar\bigRelbar{\bigtwoarrowsleft\rightarrow\rightarrow}}

and then:

$ A \xbigtoto[d_1]{d_2} B $

This will be included in the next version of the package - but I'm not sure when this will be. (You can grab it from Github, though.) This is a screenshot from the package documentation:

screenshot

The package does not yet provide support for three parallel arrows – you would need something analogous to \bigRelbar which draws three lines, and something analogous to \bigtwoarrowsleft which draws three arrows.

6
\documentclass[a4paper]{article}
\usepackage{amsmath}

\makeatletter
\newcommand*{\doublerightarrow}[2]{\mathrel{
  \settowidth{\@tempdima}{$\scriptstyle#1$}
  \settowidth{\@tempdimb}{$\scriptstyle#2$}
  \ifdim\@tempdimb>\@tempdima \@tempdima=\@tempdimb\fi
  \mathop{\vcenter{
    \offinterlineskip\ialign{\hbox to\dimexpr\@tempdima+1em{##}\cr
    \rightarrowfill\cr\noalign{\kern.5ex}
    \rightarrowfill\cr}}}\limits^{\!#1}_{\!#2}}}
\newcommand*{\triplerightarrow}[1]{\mathrel{
  \settowidth{\@tempdima}{$\scriptstyle#1$}
  \mathop{\vcenter{
    \offinterlineskip\ialign{\hbox to\dimexpr\@tempdima+1em{##}\cr
    \rightarrowfill\cr\noalign{\kern.5ex}
    \rightarrowfill\cr\noalign{\kern.5ex}
    \rightarrowfill\cr}}}\limits^{\!#1}}}
\makeatother

\begin{document}
$A\doublerightarrow{a}{bcdefgh}B$

$A\triplerightarrow{d_0,d_1,d_2}B$
\end{document}

Double and triple right arrow

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.