
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.
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}
Esta versión roba descaradamente a Fractal, pero lo reemplaza circ
con 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 circuitikz
es 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}