Problema de cruces de cables

Problema de cruces de cables

Estoy tratando de entender cómo funcionan los cruces de cables con CircuiTikz. He visto los famosos "cruces Kink", pero primero me gustaría intentar solucionar el problema con los cruces que proporciona CircuiTikz.

Por ejemplo: ¿Cómo dibujarías un cruce en esa intersección usando el paquete CircuiTikz? Sin conocer las coordenadas ni la posición relativa del giro de C a D.

ingrese la descripción de la imagen aquí

Este es el código que escribí:

\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}

Es importante para mí no utilizar el formato de estilo de nodo que sugiere el manual, porque esto es para un circuito más grande/complejo que estoy dibujando y me gustaría dibujar el cruce similar a un estilo de ruta de una coordenada a otra. como:

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

Pero obviamente esto no funciona.

Como puedes ver he usado la última versión de CircuiTikz,aquí es donde puedes conseguirlo.

Respuesta1

El problema es que (a) |- (b)se procesa como dos secciones separadas y to[crossing]sólo se puede manejar una.

\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}

manifestación


Esta versión roba descaradamente a Fractal, pero lo reemplaza circcon un archivo 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}

También se puede utilizar:

\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]{};

Respuesta2

As circuitikzes básicamente una (muy buena) extensión de TikZ, no veo absolutamente ninguna razón por la que no deba utilizar Ti estándarkSintaxis Z para esto.

\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}

ingrese la descripción de la imagen aquí

información relacionada