TikZ 中的 \xleftrightarrows 命令,箭头与 LaTeX 字体匹配

TikZ 中的 \xleftrightarrows 命令,箭头与 LaTeX 字体匹配

有一个命令\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}

在此处输入图片描述

相关内容