我正在寻找一种箭的符号,箭杆在中间“穿过一个环”。理想情况下,箭应该像普通的箭头符号一样,有一根直箭杆,但在中间“卷曲”成一个环,环的末端与开始时的高度相同。然后箭杆继续延伸,直到箭头末端。有没有至少有点像这样的符号(我查看了综合符号列表,但没找到)?如果没有,我想做一个,把一个水平倒置的$\hookrightarrow$
符号和一个直的符号放在一起$\hookrightarrow$
,这样钩子就可以组装成一个环,但我必须剪掉箭头的一些长度,这样合成的箭头就不会太长。有什么办法吗?
答案1
答案2
你可以稍微粉碎一下圆圈。以下方法也适用于所有数学风格。
\documentclass{article}
\usepackage{amsmath}
\usepackage{graphicx}
\makeatletter
\newcommand{\smashed@circ}{\mathpalette\smashed@@circ\relax}
\newcommand{\smashed@@circ}[2]{%
\scalebox{1}[0.5]{$\m@th#1\circ$}%
}
\newcommand{\loop@arrow}[3]{%
\mathrel{\mathpalette\loop@@arrow{{#1}{#2}{#3}}}%
}
\newcommand{\loop@@arrow}[2]{\loop@@@arrow#1#2}
\newcommand{\loop@@@arrow}[4]{%
\ooalign{%
\loop@raise{#1}%
\hidewidth\raisebox{\loop@raise@amount}{$\m@th#1#3\smashed@circ#4$}\hidewidth\cr
$\m@th#1#2$\cr
}%
}
\newcommand{\loop@raise}[1]{%
\settowidth\dimen@{$\m@th#1\mspace{1mu}$}%
\edef\loop@raise@amount{%
\ifx#1\displaystyle\the\dimexpr4\dimen@\else
\ifx#1\textstyle\the\dimexpr4\dimen@\else
\ifx#1\scriptstyle\the\dimexpr3.5\dimen@\else
\the\dimexpr3\dimen@\fi\fi\fi
}%
}
\newcommand{\looprightarrow}{\loop@arrow{\rightarrow}{\!}{}}
\newcommand{\loopleftarrow}{\loop@arrow{\leftarrow}{}{\!}}
\newcommand{\looplongrightarrow}{\loop@arrow{\longrightarrow}{\!}{}}
\newcommand{\looplongleftarrow}{\loop@arrow{\longleftarrow}{}{\!}}
\makeatother
\begin{document}
$A\looprightarrow B$
$\scriptstyle A\looprightarrow B$
$\scriptscriptstyle A\looprightarrow B$
$A\looprightarrow B\loopleftarrow C$
$A\looplongrightarrow B\looplongleftarrow C$
\end{document}