Zeichnen eines logischen Gatterdiagramms mit dem Circuitikz-Paket

Zeichnen eines logischen Gatterdiagramms mit dem Circuitikz-Paket

Mein Ziel ist ein Diagramm, das so aussieht: Ergebnis

Ich möchte dies mit dem circuitikz-Paket erreichen. Bisher habe ich bereits diesen Code geschrieben:

\begin{circuitikz} \draw
    (0,2) node[and port] (and) {}
    (0,0) node[xor port] (xor) {}
    (and.in 1) node[above left=.5cm](a) {$a_0$}
    (and.in 2) node[below left = .5cm](b) {$b_0$}
    (and.out) node[below](s) {$s_1$}
    (xor.out) node[below](s) {$s_0$}    
    (a) -| (and.in 1)
    (b) -| (and.in 2)
    (a) -| (xor.in 1)
    (b) -| (xor.in 2);  
\end{circuitikz}

Was zu diesem Ergebnis führt: bisherige_Ergebnisse

Ich wäre mehr als glücklich, wenn Sie mir helfen könnten, das zweite Bild mehr wie das erste aussehen zu lassen. Vielen Dank!

Edit: Mir ist es gerade gelungen, ein etwas besseres Bild zu erhalten, indem ich die Position in der dritten Zeile von (0,0) auf (2,2) geändert habe.

Da es sich hierbei nur um einen schmutzigen Hack handelt, der sich nicht auf komplexere Diagramme skalieren lässt, wäre ich dennoch für Hilfe bei einer allgemeineren Lösung dankbar!

Antwort1

Die wichtigste Änderung besteht darin, separate x-Koordinaten für die vertikalen Linien zu haben, was sich beispielsweise ändert

(a) -| (and.in 1)
(a) -| (xor.in 1)

Zu

(a) -- +(0.5,0) |- (and.in 1)
(a) -- +(0.5,0) |- (xor.in 1)

Um die Schaltung noch ähnlicher der Beispielschaltung zu machen, kann man sich a_0nach unten bewegen.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz} \draw
    (0,2) node[and port] (and) {}
    (0,0) node[xor port] (xor) {}
    (and.in 1) node[below left=.5cm](a) {$a_0$}
    (and.in 2) node[below left = .5cm](b) {$b_0$}
    (and.out) node[below](s) {$s_1$}
    (xor.out) node[below](s) {$s_0$}    
    (a) -- +(0.5,0) |- (and.in 1)
    (b) -| (and.in 2)
    (a) -- +(0.5,0) |- (xor.in 1)
    (b) -| (xor.in 2);  
\end{circuitikz}
\end{document}

verwandte Informationen