Cómo invertir la entrada de Logic Gate en Circuitikz

Cómo invertir la entrada de Logic Gate en Circuitikz

He dibujado el siguiente circuito, pero ¿cómo se podrían invertir las entradas de una Puerta Lógica? (Como en la imagen escaneada, pero no importa qué puerta exactamente, solo en general)

El circuito

Las entradas negadas

\documentclass[a4paper,12pt]{article}

\usepackage{tikz} %vectorgraphics
\usetikzlibrary{shapes,arrows,shadows,
decorations.pathreplacing,backgrounds,calc} 
%graph/flowchart
\usepackage[siunitx]{circuitikz}

\begin{document}
\begin{circuitikz} \draw

(0,0) node[nand port] (nand1) {}
(3,0) node[nand port] (nand2) {}
(5,0) node[nand port] (nand3) {}

(3,2) node[nand port] (nand4) {}
(5,2) node[nand port] (nand5) {}

(3,4) node[nand port] (nand6) {}
(5,4) node[nand port] (nand7) {}

(0,4) node[nand port] (nand8) {}

(nand1.out) |- (nand2.in 2)
(nand2.out) -| node[circ,midway]{} (nand3.in 1)
(nand2.out) -| (nand3.in 2)

(nand8.out) |- (nand6.in 1)
(nand6.out) -| node[circ,midway]{} (nand7.in 2)
(nand6.out) -| (nand7.in 1)

(nand4.out) -| node[circ,midway]{} (nand5.in 2)
(nand4.out) -| (nand5.in 1)

(-2,1) node(B1)[anchor=east] {B}
(-2,1) -| node[circ,midway]{} (nand1.in 1) 
to[short,*-] (nand1.in 2)
(-2,1) -| (nand4.in 2)
(1,1) node[circ]{} |- (nand6.in 2)


(-2,3) node[anchor=east] {A}
(-2,3) -| node[circ,midway]{} (nand8.in 2) 
to[short,*-] (nand8.in 1)
(-2,3) -| (nand4.in 1)
(0.5,3) node[circ]{} |- (nand2.in 1)

(6,1.97) node[anchor=east] {O2}
(6,0.0) node[anchor=east] {O3}
(6,4) node[anchor=east] {O1}

;\end{circuitikz}

\end{document}

Respuesta1

Usando lo nuevo y frescocircuitikzgit subido hace minutos, ahora puedes hacer esto:

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikzgit}
\begin{document}
\begin{circuitikz}
    \draw (0,3) node[american and port] (A)  {P1};
    \node at (A.bin 1) [ocirc, left]{} ;
    \begin{scope}
        \ctikzset{tripoles/american or port/height=1.6}
        \draw (A.out) -- ++(0.5,0) node[american or port,
        number inputs=5, anchor=in 1] (B)  {P2};
        \node at (B.bin 3) [ocirc, left]{} ;
    \end{scope}
    \draw (0,1.5) node[american or port] (C)  {P3};
    \node at (C.bin 2) [ocirc, left]{} ;
    \draw (C.out) |- (B.in 2);
\end{circuitikz}
\end{document}

salida del fragmento anterior

Ver:https://github.com/circuitikz/circuitikz/issues/166yhttps://github.com/circuitikz/circuitikz/pull/168

información relacionada