I'd like to make an arrowhead that is a filled circle surrounded by an arc. I can make this by putting an Arc Barb
and a Circle
on each other, but the problem is their spacing breaks up depending on the arrowhead is at the start or at the end:
\documentclass[margin=3mm,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{circuits.ee.IEC}
\newcommand*{\ioport}{[sep=1mm]{Arc Barb}[reversed,scale=1.6,sep=-1mm]{Circle}}
\tikzset
{ >={direction ee}
}
\pgfsetarrowoptions{direction ee}{5pt}
\begin{document}
\begin{tikzpicture}
\draw[{\ioport<}-{<\ioport}] (0,0) -- (10,0);
\draw[{\ioport>}-{>\ioport}] (10,-1) -- (0,-1);
\end{tikzpicture}
\end{document}
As the result shows, the arrowhead is exactly as I'd like at the end of lines, but it falls apart at the start of lines:
I'd like to change \ioport
so that it can be used at both ends of edges.
One horrible workaround I've found is to create two distinct commands for the two line-ends:
\newcommand*{\ioportstart}{[sep=1mm]{Circle}[sep=0mm]{Arc Barb}[reversed,sep=-1mm,scale=1.6]}
\newcommand*{\ioportend}{[sep=1mm]{Arc Barb}[reversed,sep=-1mm,scale=1.6]{Circle}[sep=0mm]}
but I really want to avoid having to use a different name at the two line-ends.