有没有
\dashrightarrow
相当于:
\xrightarrow{\hspace*{4mm}} or \longrightarrow
或者用类似的方式来欺骗它?
答案1
这是一个选项:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\makeatletter
\newcommand{\xleftrightarrow}[2][]{\ext@arrow 3359\leftrightarrowfill@{#1}{#2}}
\newcommand{\xdashrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@@{#1}{#2}}
\newcommand{\xdashleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@@{#1}{#2}}
\newcommand{\xdashleftrightarrow}[2][]{\ext@arrow 3359\leftrightarrowfill@@{#1}{#2}}
\def\rightarrowfill@@{\arrowfill@@\relax\relbar\rightarrow}
\def\leftarrowfill@@{\arrowfill@@\leftarrow\relbar\relax}
\def\leftrightarrowfill@@{\arrowfill@@\leftarrow\relbar\rightarrow}
\def\arrowfill@@#1#2#3#4{%
$\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
\relax#4#1
\xleaders\hbox{$#4#2$}\hfill
#3$%
}
\makeatother
\begin{document}
$A \xrightarrow{\text{something}} B$
$A \xdashrightarrow{\text{something}} B$
$A \xleftarrow{\text{something}} B$
$A \xdashleftarrow{\text{something}} B$
$A \xleftrightarrow{\text{something}} B$
$A \xdashleftrightarrow{\text{something}} B$
\end{document}
上面定义了一种新的\arrowfill@@
风格(类似于\arrowfill@
已经定义的原始风格amsmath
。新样式删除了\mkern
用于构建可扩展箭头的元素之间的任何负数。此外,\cleaders
它使用而\xleaders
不是 来尽可能地展开破折号(参见想要用重复的字符串填充行)。
奇怪的是, byamsmath
并没有定义\xleftrightarrow
,尽管它为穿过的箭头提供了填充leftrightarrowfill@
……
答案2
使用 TikZ 可能是一种过度的解决方案。
它定义了\xdasharrow
将箭头上方的文本和箭头方向作为参数。后者是可选的。使用可选参数可以选择箭头尖端以及颜色。
代码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
% code by Werner:
% http://tex.stackexchange.com/a/152489/13304
\makeatletter
\newcommand{\xleftrightarrow}[2][]{\ext@arrow 3359\leftrightarrowfill@{#1}{#2}}
\makeatother
\newcommand{\xdasharrow}[2][->]{
% correct vertical setting by egreg:
% http://tex.stackexchange.com/a/59660/13304
\tikz[baseline=-\the\dimexpr\fontdimen22\textfont2\relax]{
\node[anchor=south,font=\scriptsize, inner ysep=1.5pt,outer xsep=2.2pt](x){#2};
\draw[shorten <=3.4pt,shorten >=3.4pt,dashed,#1](x.south west)--(x.south east);
}
}
\begin{document}
$A \xrightarrow{\text{something}} B$
$A \xdasharrow{\text{something}} B$
$A \xleftarrow{\text{something}} B$
$A \xdasharrow[<-,>=latex]{\text{something}} B$ % change of arrow tip
$A \xleftrightarrow{\text{something}} B$
$A \xdasharrow[<->]{\text{something}} B$
\end{document}
结果:
答案3
如果您只想要基本箭头,则可以避免加载繁重的程序包(这可能会导致意外的交互)。我们只使用 {color} 来擦除部分茎。结果具有与 \rightarrow 相同的箭头尖:
\usepackage{颜色} \newcommand\dashto{\mathrel{ -\mkern-6mu{\to}\mkern-20mu{\color{白色}\bullet}\mkern12mu }}
这也适用于下标/上标。
答案4
有点晚了,但还有\xymatrix
:
\documentclass[12pt]{amsart}
\usepackage[all]{xy}
\begin{document}
$
\xymatrix{
A\ar@{-->}[r]&B
}
$
\end{document}