# Wire Crossings problem

I'm trying to understand how wire crossings work with CircuiTikz. I have seen the famous "Kink crossings" but I would like first trying to solve the problem with the crossings CircuiTikz provides.

For instance: How would you draw a crossing on that intersection using the CircuiTikz package? Without knowing the coordinates nor relative position of the turn from C to D.

This is the code I wrote:

\documentclass[a4paper,12pt]{article}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[]{circuitikzgit}
\begin{document}
\begin{circuitikz}
\draw (0,0)node[circ]{a} -- (4,0)node[circ]{b};
\draw (1,2)node[circ]{c} |- (3,-2)node[circ]{d};
\end{circuitikz}
\end{document}


It is important for me not to use the node-style format that the manual suggests, because this is for a bigger/more complex circuit I'm drawing and I would like to draw the crossing similar to a path style from one coordinate to another like:

\draw (1,2)node[circ]{c} to[crossing] |- (3,-2)node[circ]{d};


But obviously this does not work.

As you can see I have used the last release of CircuiTikz, this is were you can get it.

• Seems legit, but isn't there any other way to do this with the own tools CircuiTikz provides? It looks so simple and easy to implement that I think I am missing something... Dec 29 '19 at 13:28
• The manual that @jsbibra linked states that the crossing jumper will be put in the center of the subpath where the to[crossing] is issued, so sometime a bit of trial and error is needed to position it. As I understand it this means that you cannot use this kind of crossing if you don't know (or don't want to try out) where the crossing is, in case it is not in the center of a line. The same goes for explicit crossing nodes described below in the manual. Dec 29 '19 at 13:58

The problem is that (a) |- (b) is processed as two separate sections and to[crossing] can only handle one.

\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0)node[circ]{a} -- (4,0)node[circ]{b};
\draw (1,2)node[circ]{c} to[crossing] (1,2 |- 3,-2) -- (3,-2)node[circ]{d};

\end{circuitikz}
\end{document}


This version steals shamelessly from Fractal, but replaces the circ with a jump crossing.

\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{intersections}

\newlength{\crossing}
\makeatletter
\setlength{\crossing}{\ctikzvalof{bipoles/crossing/size}\pgf@circ@Rlen}
\makeatother

\begin{document}
\begin{circuitikz}
\draw[name path=ab] (0,0)node[circ]{a} -- (4,0)node[circ]{b};
\draw[name path=cd] (1,1)node[circ]{c} |- (3,-2)node[circ]{d};
\path[name intersections={of=ab and cd,by=e}];
\fill[color=white] (e) circle[radius=0.5\crossing];% erase plain crossing
\draw (e) node[jump crossing]{};
\end{circuitikz}
\end{document}


One can also use:

\path [name intersections={of=ab and cd,by=e}]
[fill=white] (e) circle[radius=0.5\crossing]% erase plain crossing
node[jump crossing,rotate=90]{};

• What if C is at (1,1)? Dec 29 '19 at 17:01
• That edit does not provide the wire jumping on the intersection! Dec 30 '19 at 14:59
• Ah, it uses the midpoint. I've never actually used to[crossing] before. Dec 30 '19 at 15:04
• Any idea how it could be accomplished? Dec 30 '19 at 15:26

As circuitikz is basically a (very good) extension of TikZ, I see absolutely no reasons why I should not use standard TikZ syntaxes for this.

\documentclass[a4paper,12pt]{article}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{circuitikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{circuitikz}
\draw[name path=ab] (0,0)node[circ]{a} -- (4,0)node[circ]{b};
\draw[name path=cd] (1,2)node[circ]{c} |- (3,-2)node[circ]{d};
\path[name intersections={of=ab and cd,by=e}] (e) node[circ] {e};
\end{circuitikz}
\end{document}


• This does not provide any kind of jump crossing in the intersection. Also if you replace the \node[circ](e){} by \node[jump crossing](){} you wont get a proper wire jumping because there will be still a line below it. Dec 30 '19 at 16:34
• @ElSabio Fair enough, I didn’t understand your question. Dec 30 '19 at 23:48