Tengo código LaTeX usando elCircuitTikZ
paquete para dibujar un circuito lógico simple, pero no estoy convencido de que mi código sea la forma correcta de hacer lo que estoy tratando de hacer. Básicamente, tengo dos entradas y cada una de ellas debe ir a dos puertas. Así es como se ve el código:
\begin{circuitikz} \draw
(2,1) node[or port] (myor) {}
(2,-1) node[nand port] (mynand) {}
(4,0) node[and port] (myand) {}
(myor.out) -| (myand.in 1)
(mynand.out) -| (myand.in 2)
(0,1) |- (myor.in 1)
(0,1) |- (mynand.in 1)
(-1,0) to[short, -*] (0,0)
(0,-1) -| (myor.in 2)
(0,-1) -| (mynand.in 2)
(-1,-1) to[short, -*] (0.62,-1)
;\end{circuitikz}
Producción:
El resultado parece correcto, pero no me siento muy bien con la última línea donde dibujo (0.62,-1)
. ¿Existe una forma más limpia de hacer esto?
Respuesta1
Sí, tu circuito está bien. Otra opción para dibujar las líneas finales sería colocar coordenadas a lo largo de un camino y luego usar estas coordenadas:
\documentclass{article}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz} \draw
(2,1) node[or port] (myor) {}
(2,-1) node[nand port] (mynand) {}
(4,0) node[and port] (myand) {}
(myor.out) -| (myand.in 1)
(mynand.out) -| (myand.in 2)
(myor.in 1) -- ++(-0.5,0) |- (mynand.in 1) coordinate[pos=0.33] (a)
(a) to[short, *-] (-1,0|-a)
(myor.in 2) |- (mynand.in 2) coordinate[pos=0.43] (b)
(b) to[short, *-] (-1,0|-b)
;\end{circuitikz}
\end{document}
Observe que, por ejemplo,
(0,1) |- (myor.in 1)
(0,1) |- (mynand.in 1)
(-1,0) to[short, -*] (0,0)
fue reemplazado con
(myor.in 1) -- ++(-0.5,0) |- (mynand.in 1) coordinate[pos=0.33] (a)
(a) to[short, *-] (-1,0|-a)
y
(0,-1) -| (myor.in 2)
(0,-1) -| (mynand.in 2)
(-1,-1) to[short, -*] (0.62,-1)
fue reemplazado con
(myor.in 2) |- (mynand.in 2) coordinate[pos=0.43] (b)
(b) to[short, *-] (-1,0|-b)
y en ambos casos utilicé el sistema de coordenadas perpendiculares, donde, por ejemplo, (-1,0|-b)
significa la coordenada x (-1,0)
y la coordenada y de (b)
.