Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

How can I create a new component and include it in CircuiTikZ? For example a 4 bit adder?

share|improve this question

2 Answers 2

Components in CircuiTikz are defined in the pgfcirc*poles.sty files via pretty much low-level pgf commands. You can either

  1. try looking at the *sty files, in particular pgfcirctripoles.sty there 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 :)
  2. 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...
share|improve this answer
1  
I 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

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}

enter image description here

I have improved on my technique since then, as explained in the following tutorials.

http://www.elfsoft2000.com/projects/speaker.pdf

http://www.elfsoft2000.com/projects/multipole.pdf

http://www.elfsoft2000.com/projects/bipole.pdf

share|improve this answer
    
Welcome to TeX.SX! –  Papiro Aug 1 '13 at 16:24
    
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! –  ackey Mar 2 at 4:30
    
Thank you. Change made. (These small fonts kill me.) –  John Kormylo Mar 2 at 22:30

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.