虚线 \xRightarrow

虚线 \xRightarrow

我正在寻找肥箭,我可以在箭头上方和下方写东西,就像\xRightarrow[x]{y},但我希望箭头是虚线就像\dashrightarrow这样:

虚线箭头

我似乎无法在任何包中找到类似的东西。

编辑(MWE):

\documentclass{article}
\usepackage{mathtools}

\begin{document}
I would love to have dashed lines on the following arrow:
$\xRightarrow[x]{y}$
\end{document}

答案1

获取所需符号的一种方法是查看如何mathtools创建任何箭头。

例如,\xRightarrow定义为

\providecommand*\xRightarrow[2][]{%
  \ext@arrow 0055{\Rightarrowfill@}{#1}{#2}}

amsmath定义\Rightarrowfill@为产生\cleaders具有重叠框的。

由于我们希望它们之间有空间而不是重叠,所以这种方法不太管用。相反,我们可以修改定义以使用\xleaders一些正空间。

这是一小套虚线可扩展箭头。

\usepackage{amsmath}
\usepackage{mathtools}

\makeatletter
\def\dasharrowfill@#1#2#3#4{%
        $\m@th
        \thickmuskip0mu
        \medmuskip\thickmuskip
        \thinmuskip\thickmuskip
        \relax
        #4#1\mkern2mu
        \xleaders\hbox{$#4\mkern2mu#2\mkern2mu$}\hfill
        \mkern2mu
        #3$%
}

\def\dashleftarrowfill@{\dasharrowfill@\leftarrow\relbar\relbar}
\def\dashrightarrowfill@{\dasharrowfill@\relbar\relbar\rightarrow}
\def\dashleftrightarrowfill@{\dasharrowfill@\leftarrow\relbar\rightarrow}
\def\dashLeftarrowfill@{\dasharrowfill@\Leftarrow\Relbar\Relbar}
\def\dashRightarrowfill@{\dasharrowfill@\Relbar\Relbar\Rightarrow}
\def\dashLeftrightarrowfill@{\dasharrowfill@\Leftarrow\Relbar\Rightarrow}

\providecommand*\xdashleftarrow[2][]{%
  \ext@arrow 0055{\dashleftarrowfill@}{#1}{#2}}
\providecommand*\xdashrightarrow[2][]{%
  \ext@arrow 0055{\dashrightarrowfill@}{#1}{#2}}
\providecommand*\xdashleftrightarrow[2][]{%
  \ext@arrow 0055{\dashleftrightarrowfill@}{#1}{#2}}
\providecommand*\xdashLeftarrow[2][]{%
  \ext@arrow 0055{\dashLeftarrowfill@}{#1}{#2}}
\providecommand*\xdashRightarrow[2][]{%
  \ext@arrow 0055{\dashRightarrowfill@}{#1}{#2}}
\providecommand*\xdashLeftrightarrow[2][]{%
  \ext@arrow 0055{\dashLeftrightarrowfill@}{#1}{#2}}
\makeatother

您可以照常使用它们。例如,\xdashRightarrow[subscript]{superscript}

在此处输入图片描述

使用的主要缺点\xleaders是组成箭头的框之间的空间将均匀分布。因此冲刺不一致。

在此处输入图片描述

一个解决方案就是限制下标和上标具有组成 所需的整数个盒子\xleaders,这可能通过对 进行修改来实现\ext@arrow

相关内容