# Double curved arrow

I found out that amssymb has double arrow the code is $\rightleftarrows$.

My question is: do we have a command for double curve arrow, that the one above is concave down (the arrow is from left to right) and the one below is concave up (the arrow is right to left)?

In case we do not have it. Can we make it and used it as a single code?

Below is a pic of the kind of curved arrow I am looking for.

• You might try your luck on detexify. – Skillmon Dec 20 '17 at 0:22
• You might draw something using tikz and define a command for that... – Skillmon Dec 20 '17 at 0:37
• I thought about that, but I have limited using to tiki. if possible give me more idea about it. or you can post an answer. – henry Dec 20 '17 at 0:51

The following doesn't look too bad, imho:

\documentclass[]{article}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{arrows}

\newcommand*\curvedrightleft{%
\mathrel{%
\begin{tikzpicture}[scale=0.5]%
\draw[->] (0,0.05) to [out=30,in=150] (1,0.05);%
\draw[->] (1,-0.05) to [out=-150,in=-30] (0,-0.05);%
\end{tikzpicture}%
}%
}

\begin{document}
$A \curvedrightleft B$
\end{document}


• This is perfect answer for my question. – henry Dec 20 '17 at 1:12

There are matching symbols in mathabx, which only have to be stacked on top of each other. It can be easily made to look decent in all sizes.

\documentclass{article}
\usepackage{amsmath}

\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
<5> <6> <7> <8> <9> <10> gen * mathb
<10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
}{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}

\DeclareMathSymbol{\curvearrowleft}    {\mathrel}{mathb}{"F0}
\DeclareMathSymbol{\curvearrowbotright}{\mathrel}{mathb}{"F4}

\makeatletter
\newcommand\curvearrowleftbotright{%
\mathord{\mathpalette\@curvearrowleftbotright\relax}%
}
\newcommand\@curvearrowleftbotright[2]{%
\raisebox{.3ex}{$#1\m@th\curvearrowleft$}%
\llap{\raisebox{-.3ex}{$#1\m@th\curvearrowbotright$}}%
}
\makeatother

\begin{document}

\begin{equation*}
A \curvearrowleftbotright B_{A \curvearrowleftbotright B_{A \curvearrowleftbotright B}}
\end{equation*}

\begin{equation*}
\mathcal{K}_3 = V / \curvearrowleftbotright = \{ \bar{B}_1, \bar{B}_2, \dotsc \}
\end{equation*}

\end{document}


This is an attempt to combine the advantages of Henri Menke's answer (automatic scaling) and Skillmon's answer (flexibility of Tikz). The basic idea is to scale the picture according to the width of a reference character (here A), and to use \mathchoice.

\documentclass[]{article}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{arrows}

\newcommand*\curvedrightleft{%
\ifmmode\mathchoice{\mathrel{%
\begin{tikzpicture}[scale=height("A")/0.45cm]%
\draw[->] (0,0.05) to [out=30,in=150] (1,0.05);%
\draw[->] (1,-0.05) to [out=-150,in=-30] (0,-0.05);%
\end{tikzpicture}%
}%
}
{
\begin{tikzpicture}[scale=height("A")/0.4cm]%
\draw[->] (0,0.05) to [out=30,in=150] (1,0.05);%
\draw[->] (1,-0.05) to [out=-150,in=-30] (0,-0.05);%
\end{tikzpicture}%
}%
{\mathrel{%
\begin{tikzpicture}[scale=height("A")/0.6cm]%
\draw[->] (0,0.05) to [out=30,in=150] (1,0.05);%
\draw[->] (1,-0.05) to [out=-150,in=-30] (0,-0.05);%
\end{tikzpicture}%
}%
}
{\mathrel{%
\begin{tikzpicture}[scale=height("A")/0.8cm]%
\draw[->] (0,0.05) to [out=30,in=150] (1,0.05);%
\draw[->] (1,-0.05) to [out=-150,in=-30] (0,-0.05);%
\end{tikzpicture}%
}%
}
\else
\begin{tikzpicture}[scale=height("A")/0.4cm]%
\draw[->] (0,0.05) to [out=30,in=150] (1,0.05);%
\draw[->] (1,-0.05) to [out=-150,in=-30] (0,-0.05);%
\end{tikzpicture}
\fi
}
\begin{document}
$A \curvedrightleft B$

$X_{A \curvedrightleft B_{A \curvedrightleft B}}$

{\tiny A \curvedrightleft B}

{\Large A \curvedrightleft B}

\end{document}