有\rightrightarrows
制作两支平行箭、\longrightarrow
制作一支较长的箭和\xrightarrow
制作一支可伸缩箭的方法。但是有没有一种简单的方法可以制作两支较长的平行箭(比如\longrightrightarrows
)和两支可伸缩的平行箭(比如\xrightrightarrows
)?
我试过使用\atop
、\overset
、\underset
,但总是不完美。使用\atop
,两个平行箭头之间的距离太大。使用\overset
,两个平行箭头的长度不同。更一般地说,我需要的是:可以改变箭头的长度,箭头之间的距离,并且它应该相对于默认的垂直位置对称。此外,它应该可以在内联数学模式和显示数学模式下输入。如果它可以在 mathoverflow 中输入,那就太好了。(在 mathoverflow 网站中,不能不使用\xymatrix
....)
例子如下:
答案1
我写了extpfeil
包,允许创建新的可扩展箭头类型(使用 amsmath 在其内置箭头内部使用的相同机制)。
有了这个,你可以写一次
\newextarrow{\xbigtoto}{{20}{20}{20}{20}}
{\bigRelbar\bigRelbar{\bigtwoarrowsleft\rightarrow\rightarrow}}
进而:
$ A \xbigtoto[d_1]{d_2} B $
这将包含在下一版本的软件包中 - 但我不确定什么时候会发布。(你可以从Github)这是来自包文档的屏幕截图:
该包尚未提供对三个平行箭头的支持 - 您需要类似于\bigRelbar
绘制三条线的东西,以及类似于\bigtwoarrowsleft
绘制三个箭头的东西。
答案2
\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}