有什么简单的方法可以输入更多种类的箭头吗?

有什么简单的方法可以输入更多种类的箭头吗?

\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}

双重和三重右箭头

相关内容