有一个命令\xrightarrow
可以插入一个箭头,箭头会随着你在上面和/或下面的文本而延伸。
还有一个命令\rightleftarrows
(注意末尾的“s”)可以显示两个箭头,一个在另一个下面,尽管它们是不是可扩展,并且(如果我没记错的话)还需要额外的包mathtools
。(当然,上述内容也适用于“双”左箭头)
据我所知,没有一个命令\xrightarrows
可以扩展其上方/下方的文本并创建类似箭头的命令\rightleftarrows
(我在 Google 上搜索过,但找不到任何直接的解决方案)。也许它包含在一些不太知名的软件包中 - 但如果我的发行版中还没有这个软件包,我宁愿不安装它(因为如果我想在其他地方编译我的文档,可能会出现问题!)。
因此:如何 \xrightarrows
在 TikZ 中编写此命令,以便
- 箭头尖看起来和 LaTeX 箭头尖一模一样(如果我改变 LaTeX 字体,TikZ 绘图中的箭头尖也会相应改变)
\xrightarrows
当下方或上方文本的参数为空(即没有文本)或文本太少而箭头不必延伸时,箭头本身看起来与产生的箭头完全一样。
答案1
就是这个。这应该作为起点。
\documentclass{article}
\usepackage{mathtools,amssymb} %% this is not needed. just for demo
\usepackage{tikz}
\usepackage{xparse}
\NewDocumentCommand{\xrightarrows}{ O{}O{} }{%
\mathrel{%
\vcenter{\hbox{%
\begin{tikzpicture}
\node[minimum width=1cm,minimum height=1ex,anchor=south,align=center] (a){\text{\vphantom{hg}#1}\\[0.5ex] \vphantom{hg}#2};
\draw[<-] ([yshift=0.35ex]a.west) -- ([yshift=0.35ex]a.east);
\draw[->] ([yshift=-0.35ex]a.west) -- ([yshift=-0.35ex]a.east);
\end{tikzpicture}
}}%
}%
}
\begin{document}
$\xleftarrow[under]{over}$
$\xrightarrow[under]{over} \rightleftarrows$
Now the new arrows
$A \xrightarrows B$ \quad $A \xrightarrows[some ght][some text again] B$
$A \xrightarrows[some text here] B$ \quad $A \xrightarrows[][some text again] B$
\end{document}