I am trying to draw a diagram with tikz
that has multiple arrows (here I have 4) between nodes, where the nodes are placed arbitrarily in a diagram. My best (that is, shortest and easiest to understand) solution has been to use the draw
option double
, but this creates unwanted overlap of the arrows, as in I cannot see the arrows below other arrows, and I would like to see all of them.
My current situation has the below code:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{state/.style={circle,draw=black, very thick,minimum size=8ex,fill=white}}
\begin{document}
\begin{tikzpicture}
\node (x) at (0,0) {};
\coordinate (1) at ($(x) + (125:2)$) ;
\coordinate (2) at ($(x) + (55:2)$) ;
\coordinate (3) at ($(x) + (350:2)$);
\coordinate (t1) at ($(x) + (190:2)$);
\foreach \i\j in {1/2,2/3,1/t1,2/t1,1/3,3/t1} {
\draw[draw=black,double distance=15pt] (\i) to (\j);
\draw[draw=black,double distance=5pt] (\i) to (\j);}
\node[state] (1a) at (1) {1};
\node[state] (2a) at (2) {2};
\node[state] (3a) at (3) {3};
\node[state] (t1a) at (t1) {3};
\draw[loosely dotted,ultra thick] ($(x)+(290:1.8)$) to [bend left=30] ($(x)+(250:1.8)$);
\end{tikzpicture}
\end{document}
Yielding the following result:
I want to see all the arrow lines, not just the ones drawn last.
This situation happens because with the double
option two lines are actually drawn, one thinner than the other, the inside one being colored white. Looking at some similar questions here, the solutions were either case-specific or used nodename.west
or similar directions along with a \foreach
loop and some \yshift
commands. However, since my arrows do not all go either horizontally or vertically, and I would like the normal distance between two adjacent arrows to be the same throughout, and since I am not a tikz
whiz, I could not adjust those solutions to my needs.
Any help on this issue is much appreciated.
to
syntax.