How to invert Logic Gate input in Circuitikz
4,124
Using the fresh new circuitikzgit
uploaded minutes ago, you can now do this:
\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}
See: https://github.com/circuitikz/circuitikz/issues/166 and https://github.com/circuitikz/circuitikz/pull/168
Related videos on Youtube
Author by
Roman Stadler
Updated on August 01, 2022Comments
-
Roman Stadler over 1 year
I have drawn the following circuit, but how could the inputs of a Logic Gate be inverted? (As in the scanned picture, but it does not matter which gate exactly, just generally)
\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}
-
Rmano over 4 yearsNice question. I'll look over it tomorrow (it's nighttime here), but I don't think it could be easily done with the current implementation. But seems a valuable enhancement proposal, anyway.
-
Rmano over 4 yearsI am considering it as a enhancement proposal; if you want you can open an issue at github.com/circuitikz/circuitikz/issues
-
Raaja_is_at_topanswers.xyz over 4 yearsWith current
circuitikz
you cannot achieve this. However, you can usetikz's
stockciruit
option to achieve it. Nevertheless, a very useful question though.
-
-
Raaja_is_at_topanswers.xyz over 4 yearswhen will it be available in CTAN?
-
Rmano over 4 years@Raaja I am completing a couple of things more (basically, manual overhaul and fillable shapes) and then I'll do a release. Three to five weeks, if RL doesn't create problems... ;-)
-
Raaja_is_at_topanswers.xyz over 4 yearsGood to know! Because, it seems many are interested in creating big-logic circuits with
ciruittikz
(see: tex.stackexchange.com/questions/480034/…). And, I think this is a really nice contribution indeed :).