我想使用如下命令
\xleftrightarrows[#1]{#2}
即带有可选上标和下标的双箭头的可扩展箭头 Mathtools 包提供
\xleftrightarrow[#1]{#2}
即延长箭头以形成双箭头,但我想要两个方向的箭头。有什么线索吗?
答案1
修订的解决方案(自动可扩展性):
有两个参数:上移和下移文本(在 中设置\scriptstyle
)。您可以使用我的 MWE 中的值1.7
,这将改变相对于文本长度的箭头长度(较小的值将延长箭头)。
\documentclass{article}
\usepackage{stackengine}
\usepackage{scalerel}
\usepackage{fp}
\def\clipeq{\!\mathrm{=}\!}
\def\Lla{\Longleftarrow\!\!\!\!\!\!}
\def\Lra{\!\!\!\!\!\!\Longrightarrow}
\newcount\argwidth
\newcount\clipeqwidth
\savestack\tempstack{\stackon{$\clipeq$}{}}%
\clipeqwidth=\wd\tempstackcontent\relax
\newcommand\xleftrightarrows[2]{%
\savestack\tempstack{\stackon{$\scriptstyle#1$}{$\scriptstyle#2$}}%
\argwidth=\wd\tempstackcontent\relax%
\FPdiv\scalefactor{\the\argwidth}{\the\clipeqwidth}%
\FPsub\scalefactor{\scalefactor}{1.7}% <---CAN PLAY WITH THIS VALUE
\FPmax\scalefactor{\scalefactor}{.05}%
\mathrel{%
\stackunder[2pt]{\stackon[3pt]{$\Lla\hstretch{\scalefactor}{\clipeq}\Lra$}%
{$\scriptstyle#1$}}{$\scriptstyle#2$}%
}%
}
\parskip 1ex
\begin{document}
$Z \xleftrightarrows{ABC}{defghi} R$
$\xleftrightarrows{}{}$
$\xleftrightarrows{a}{}$
$\xleftrightarrows{ab}{}$
$\xleftrightarrows{abc}{}$
$\xleftrightarrows{abcd}{}$
$\xleftrightarrows{abcde}{}$
\end{document}
原始解决方案(手动可扩展性):
我创建了您要求的宏,其中包含两个强制参数和一个可选参数。强制参数是上移和下移文本(在 中设置\scriptstyle
)。可选参数是一个实数,表示箭头的长度比例(大致等于您希望使默认箭头变长的字符数)。
注意:我包装了\mathrel{}
有关堆叠命令的内容,假设这是您想要使用它的方式。此外,堆栈的宽度将与堆栈最长元素的宽度一致。如果您希望堆栈的宽度与箭头宽度一致,而不管上置和下置文本的长度如何,您可以将其添加\def\useanchorwidth{T}
到定义的开头\xleftrightarrows
。您还可以调整上置和下置间隔距离(当前分别设置为 3pt 和 2pt)。
\documentclass{article}
\usepackage{stackengine}
\usepackage{scalerel}
\def\clipeq{\!\mathrm{=}\!}
\def\Lla{\Longleftarrow\!\!\!\!}
\def\Lra{\!\!\!\!\Longrightarrow}
\newcommand\xleftrightarrows[3][0]{%
\mathrel{%
\ifthenelse{\equal{#1}{0}}%
{\stackunder[2pt]{\stackon[3pt]{$\Lla\Lra$}%
{$\scriptstyle#2$}}{$\scriptstyle#3$}}%
{\stackunder[2pt]{\stackon[3pt]{$\Lla\hstretch{#1}{\clipeq}\Lra$}%
{$\scriptstyle#2$}}{$\scriptstyle#3$}}%
}%
}
\begin{document}
$Q \xleftrightarrows{ABC}{defghi} Z \xleftrightarrows[3]{ABC}{defghi} R$
\end{document}