This is mainly a technical comment that the Implies
arrow of arrows.meta
claims to have a length parameter, but it does not really in the sense that changing the length does not have an impact. Can one rectify this? Yes. But let me warn you, at least this "fix" isn't pretty.
\documentclass{article}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\makeatletter
\pgfkeys{
/pgf/arrow keys/.cd,
xstretch/.store in=\pgfarrowxstretch,
xstretch=1,
ystretch/.store in=\pgfarrowystretch,
ystretch=1,
}
\ifcsname pgfutil@tempdimc\endcsname
\else
\newlength\pgfutil@tempdimc
\fi
\ifcsname pgfutil@tempdimd\endcsname
\else
\newlength\pgfutil@tempdimd
\fi
\pgfdeclarearrow{
name = varImplies,
setup code = {
\pgf@xa\pgfinnerlinewidth
\[email protected]\pgflinewidth
\pgfutil@tempdimc\pgfarrowxstretch\pgfutil@tempdima
\pgfutil@tempdimd\pgfarrowystretch\pgfutil@tempdima
\advance\pgfutil@tempdima by.25\pgf@xa%
\[email protected]\pgflinewidth
\advance\pgfutil@tempdimb by-.5\pgf@xa%
\pgfutil@tempdimb\pgfutil@tempdimb
\pgfarrowssettipend{2.06\pgfutil@tempdimc\advance\pgf@x by.5\pgfutil@tempdimb}
\pgfarrowssetbackend{-1.36\pgfutil@tempdimc\advance\pgf@x by.5\pgfutil@tempdimb}
\pgfarrowsupperhullpoint{-1.4\pgfutil@tempdimc}{2.8\pgfutil@tempdimd}
\pgfarrowsupperhullpoint{2\pgfutil@tempdimc}{.5\pgfutil@tempdimd}
\pgfarrowssavethe\pgfutil@tempdima
\pgfarrowssavethe\pgfutil@tempdimb
\pgfarrowssavethe\pgfutil@tempdimc
\pgfarrowssavethe\pgfutil@tempdimd
},
drawing code = {
\pgfmathsetmacro{\pft}{0.1/(\pgfutil@tempdimc/\pgfutil@tempdimd)}%
\pgftransformxshift{\pft\pgfutil@tempdima}
\pgfsetlinewidth{\pgfutil@tempdimb}
\pgfsetdash{}{+0pt}
\pgfsetroundcap
\pgfsetroundjoin
\pgfpathmoveto{\pgfpoint{-1.4\pgfutil@tempdimc}{2.65\pgfutil@tempdimd}}
\pgfpathcurveto
{\pgfpoint{-0.75\pgfutil@tempdimc}{1.25\pgfutil@tempdimd}}
{\pgfpoint{1\pgfutil@tempdimc}{0.05\pgfutil@tempdimd}}
{\pgfpoint{2\pgfutil@tempdimc}{0pt}}
\pgfpathcurveto
{\pgfpoint{1\pgfutil@tempdimc}{-0.05\pgfutil@tempdimd}}
{\pgfpoint{-.75\pgfutil@tempdimc}{-1.25\pgfutil@tempdimd}}
{\pgfpoint{-1.4\pgfutil@tempdimc}{-2.65\pgfutil@tempdimd}}
\pgfusepathqstroke
},
parameters = {}
}%
\makeatother
\newif\ifarrowordervar
\tikzset{arrow var/.is if=arrowordervar}
\arrowordervarfalse
\newcommand\arroworder[2][]{\begin{tikzpicture}[Rightarrow/.style={double equal sign distance,>={Implies},->},
triple/.style={-,preaction={draw,Rightarrow}},
Triple/.style={-,preaction={draw,double distance=0.75ex,
>={varImplies[xstretch=1,ystretch=1.4]},->}},
quadruple/.style={preaction={draw,Rightarrow,shorten >=0pt},shorten >=1.2pt,-,double,double
distance=0.2pt},
Quadruple/.style={draw,double distance=0.75ex,
>={varImplies[xstretch=1,ystretch=1.4]},->,
postaction={draw,line width=0.4pt,shorten >=1.4pt,-,double,double
distance=0.18ex}},#1]
\path[use as bounding box] (0,-0.6ex) rectangle
({width("$\Rightarrow$")*1pt},0.6ex);
\draw \ifcase#2
\or [->]
\or [Rightarrow]
\or \ifarrowordervar [Triple] \else [triple] \fi
\or \ifarrowordervar [Quadruple] \else [quadruple] \fi
\fi
(0.2pt,0) -- ({width("$\Rightarrow$")*1pt-0.8pt},0);
\end{tikzpicture}}
\begin{document}
$\to$ $\arroworder{1}$\par
$\Rightarrow$ $\arroworder{2}$\par
$\Rrightarrow$ $\arroworder[arrow var]{3}$ $\arroworder{3}$\par
$\Rrightarrow$ $\arroworder[arrow var]{4}$ $\arroworder{4}$\par
\end{document}
So this has some option arrow var
that switches to a mode in which the arrows look similar to their AMS counterparts. One could go on, make these scalable and so and so forth but I think that the first thing to do is to come up with a clear prescription of how these arrows are to be constructed and so on.
Please note that in a TikZy environment like tikz-cd
such arrows have, in my humble opinion, a much better motivation because there you can bend them and so on and so forth. I am posting this mainly as a reference for future attempts to mess around with the Implies
arrow head.