我正在写一篇论文,需要几个非标准箭头。我需要一个\Rightarrow
和\Leftarrow
,它们的设置类似于$\overrightarrow{A}$
和$\underleftarrow{B}$
。我能够找到包右箭头在 CTAN 上,但我不知道如何获得类似物$\Leftarrow$
。
有人能帮忙吗?你知道带有这些箭头的包裹吗?
答案1
为了在某个东西上放置双箭头,有两种简单的方法:\overset
来自的宏amsmath
和\accentset
来自accents
包的宏:
\documentclass{article}
\usepackage{amsmath} % for \overset
\usepackage{accents} % for \accentset
\begin{document}
\begin{tabular}{ll}
\verb+\accentset+ & $\accentset{\Rightarrow}{A}$ \\
\verb+\overset+ & $\overset{\Rightarrow}{A}$ \\
\verb+\overset+ (with tweaking) & $\overset{\,\Rightarrow\!}{A}$
\end{tabular}
\end{document}
请注意,\accentset
设置“重音”\scriptscriptstyle
并考虑字符的倾斜度。“重音”\overset
略大一些(\scriptstyle
),需要稍微调整一下才能正确放置。
如果箭头需要可扩展,快速查看amsmath
(第 907ff 行)会有所帮助。在那里,设置了一些可扩展箭头,但并非所有箭头都有用户级宏。根据 Barbara Beeton 的评论
amsmath
是在宏名的内存空间严重受限的情况下创建的。因此,只有绝对必要的最小值被冻结到包中,并且假设用户可以通过类比来定义附加项
所以我们可以通过类比来定义
\documentclass{article}
\usepackage{amsmath}
\makeatletter
% cf. amsmath.sty lines 907-920
\newcommand*{\overRightarrow}{\mathpalette{\overarrow@\Rightarrowfill@}}
\newcommand*{\overLeftarrow}{\mathpalette{\overarrow@\Leftarrowfill@}}
\makeatother
\begin{document}
$\overRightarrow{ABCD}$ \quad $\overRightarrow{\!ABCD\,\,}$
\end{document}
请注意,这里我们可能还需要手动添加一些空格。
希望这个包的作者overrightarrow
不会太讨厌我,我建议不要使用它。这个包依赖于一个\overarrow@
未定义的宏。它在 中定义amsmath
,但之前调用它overrightarrow
会引发错误,并且反转顺序将覆盖其他宏的定义。可能有一种有意义的使用方法,overrightarrow
但遗憾的是,我找不到它。(这肯定是我的缺点。)