
Mein Ziel ist ein Diagramm, das so aussieht:
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}
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_0
nach unten bewegen.
\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}