How can I create a new component and include it in CircuiTikZ? For example a 4 bit adder?
Asked
Active
Viewed 7,968 times
3 Answers
18
There is an easy way. Use an existing component as a base, such as
to[generic,color=white,n=myname] and draw anything you want in the space.
\newcommand{\speaker}[2] % #1 = name from to[generic,n=#1], #2 = rotation angle
{\draw[thick,rotate=#2] (#1) +(.2,.25) -- +(.7,.75) -- +(.7,-.75) -- +(.2,-.25);}
\begin{circuitikz}
\draw (0,2) to[C, l_=$C$, o-*] (2,2) to[short, -*] (3.5,2) to[short] (5,2);
\draw (0,0) to[short, o-*] (2,0) to[short, -*] (3.5,0) to[short] (5,0);
\draw (2,2) to[L=$L$] (2,0);
\draw (3.5,2) to[R=$R$] (3.5,0);
\draw (5,2) to[generic, n=S1](5,0);
\speaker{S1}{0}
\end{circuitikz}

I have improved on my technique since then, as explained in the following tutorials.
http://www.elfsoft2000.com/projects/speaker.pdf
John Kormylo
- 79,712
- 3
- 50
- 120
-
I just want to note that \speaker{S1}(0} should be \speaker{S1}{0}, but it won't let me do a single character edit. Great example! – Rinchen Mar 02 '14 at 04:30
16
Components in CircuiTikz are defined in the pgfcirc*poles.sty files via pretty much low-level pgf commands.
You can either
- try looking at the
*styfiles, in particularpgfcirctripoles.stythere most ports are defined, and cut&paste your way to a new component. If you manage to code it, please send it to me so I can add it for everyone to use :) - send me a PNG of how you want the adder to look, and wait for me to code it ^^ I have a few requests in queue, and it is time I updated the package afterall...
Seamus
- 73,242
Massimo Redaelli
- 161
-
2I don’t understand anything in the .sty files :( Couldn’t you make a Tutorial ? Thanks for your help, your package is very nice ! – Calixte May 28 '11 at 21:09
-
Would it be possible to add Darlington transistor? I do have some experience with PGF commands, but I was completely lost reading the style file. – Pygmalion Apr 05 '21 at 16:41
-
6
Just an update: notice that in version 0.9.0
- there is a loudspeaker component, and
- there is an (admittedly short) part about how to add components in the manual.
Unfortunately, to add components you should have a bit of knowledge of the pgf basic layer (part IX of the TikZ-PGF manual).
Rmano
- 40,848
- 3
- 64
- 125
-
I like necromancer badges! BTW, there is a mux-demux component since 1.0 that can be used to create adders, ALUs, etc... – Rmano Jun 06 '20 at 10:49
