for example, I have the wires that run from the node b_2 which I want it to split to both label_g2 and XOR1.in 1, currently, I have 2 things I don't like about it:
- I have to do it with two different \draw functions and it looks like there's overlap in the first segment (rendering that part thicker)
- the wire split is too far, I want to make it halfway between b_2 and the x position of XOR1.in 1 (without using exact coordinates)
- I want to know if there's a way to automatically adjust nodes in relation to other nodes, for example here I've set the location of the g1,g0 nodes by hand, but I would have liked to have some way to make a straight line from the logic gate output (or whatever node) directly to g1/g0 generally.
\begin{document}
\begin{circuitikz}
\node[anchor=base] (label_b2) at (-2,1.5) {$b_2$};
\node[anchor=base] (label_b1) at (-2,0) {$b_1$};
\node[anchor=base] (label_b0) at (-2,-1.5) {$b_0$};
\node[anchor=base] (label_g2) at (3,1.5) {$g_2$};
\node[anchor=base] (label_g1) at (3,0.26) {$g_1$};
\node[anchor=base] (label_g0) at (3,-1.24) {$g_0$};
\node[ieeestd xor port, scale=0.75] (XOR1) at (0.5,0.3) {};
\draw (label_b2) -|node[circ]{} (XOR1.in 1) node[anchor=east] {\scriptsize $b_2$};
\draw (label_b1) -- (XOR1.in 2) node[below] {\scriptsize $b_1$};
\draw (XOR1.out) |-node{} (label_g1) ;
\draw (label_b2) -- (label_g2) ;
\node[ieeestd xor port, scale=0.75] (XOR2) at (0.5,-1.2) {};
\draw (label_b1) -|node[circ]{} (XOR2.in 1) node[anchor=east] {\scriptsize $b_1$};
\draw (label_b0) -- (XOR2.in 2) node[below] {\scriptsize $b_0$};
\draw (XOR2.out) |-node{} (label_g0) ;
\end{circuitikz}
\end{document}
this is the rendered output: