diff options
Diffstat (limited to 'graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex')
-rw-r--r-- | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex | 124 |
1 files changed, 112 insertions, 12 deletions
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex index c775d7f9fc..20a79f3d68 100644 --- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex +++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex @@ -193,6 +193,13 @@ Finally, the \TikZ{} library \texttt{bending} is loaded by the package, and its \subsection{Related and extension packages} +\subsubsection{Related packages} + +At the Friedrich-Alexander-Universität, a group of developers are implementing a graphical interface to draw circuits with \Circuitikz{}. +You can find more information \href{https://github.com/circuitikz/circuitikz/issues/782}{in this GitHub issue} or, better, in their \href{https://ussi.e-technik.uni-erlangen.de/}{main site}. + +\subsubsection{Extension packages} + \Circuitikz{} is meant to be, as much as possible, format-agnostic (which means that it can be used from \LaTeX{}, plain \TeX{} and~\ConTeXt). It is growing in functionality and components, but not everything can be added to the package. In this section, there is a list of packages, available at CTAN, that extend or enhance \Circuitikz{} but are distributed separately.\footnote{If you have a package or know a package that should be listed here, please contact the \Circuitikz{} authors, or, better, send a pull request to the project and it will be added.} \begin{description} @@ -212,6 +219,7 @@ This same issue creates a lot of problems with compatibility between \Circuitikz Also, notice that several components will interact in a funny way with global path options. Depending on the specific component, some parameters are inherited by the internal shape, and some others are reset. This is not easy to fix in general. We want some options to go through --- fill color, dashed pattern for example --- and some others to stay only in the outer path; and if the background shape needs some option for drawing the internal shape, like for example a rounded corner, it \emph{must} reset the external option. So there is no perfect solution, although since \texttt{v1.5.0} the shapes have been ``robustified'', so that by default arced corners and arrows parameters will \emph{not} be propagated into the shape. Arrows with \texttt{to[]} components don't work, anyway, so basically avoid this situation. +In some cases, also the engine you are using (as \texttt{pdflatex}, \texttt{xelatex}, and so on) can impact coloring in corner cases (or even not so in the corner, like in \href{https://tex.stackexchange.com/q/709273/38080}{american-style voltage source signs}). \begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] \begin{circuitikz}[] @@ -2049,6 +2057,7 @@ If you want the arrows to behave like the legacy symbols (which are shapes), \em \circuitdescbip{open}{Open circuit}{} \circuitdescbip*{generic}{Generic (symmetric) bipole}{} \circuitdescbip*{xgeneric}{Crossed generic (symmetric) bipole}{} + \circuitdescbip*{sgeneric}{Slashed generic bipole}{} \circuitdescbip*{tgeneric}{Tunable generic bipole}{} \circuitdescbip*{ageneric}{Generic asymmetric bipole}{} \circuitdescbip*{memristor}{Memristor}{Mr} @@ -2961,16 +2970,50 @@ A similar approach can be used for dependent sources. Just remember that the anc \subsection{Instruments} +\subsubsection{Basic round instruments} + \begin{groupdesc} - \circuitdescbip*{ammeter}{Ammeter}{} - \circuitdescbip*{voltmeter}{Voltmeter}{} - \circuitdescbip*{ohmmeter}{Ohmmeter}{} \circuitdescbip*{rmeter}{Round meter (use \texttt{t=...} for the symbol)}{}(left/135/0.2, right/45/0.2, center/-90/0.3) \circuitdescbip*{rmeterwa}{Round meter with arrow (use \texttt{t=...} for the symbol)}{}(left/135/0.2, right/45/0.2, center/-90/0.3) + \circuitdescbip*{ammeter}{Legacy ammeter}{} + \circuitdescbip*{voltmeter}{Legacy voltmeter}{} + \circuitdescbip*{ohmmeter}{Legacy ohmmeter}{} +\end{groupdesc} + +You can define styles if you want to use the new shapes for round instrument similarly to the legacy ones:% +\footnote{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/787}{user mxxmxn on GitHub}.} + +\begin{LTXexample}[varwidth=true] +\tikzset{vmeter/.style={rmeterwa, t=V}} +\tikzset{ameter/.style={rmeterwa, t=A}} +\tikzset{ometer/.style={rmeterwa, t=$\Omega$}} + +\begin{tikzpicture} + % Old meter style + \draw (0,2) to[voltmeter] ++(2,0) + to[ammeter] ++(2,0) + to[ohmmeter] ++(2,0); + % New meter style + \draw (0,0) to[vmeter] ++(2,0) + to[ameter] ++(2,0) + to[ometer] ++(2,0); +\end{tikzpicture} +\end{LTXexample} + +\subsubsection{Square instruments} + +Sometimes it is better to use a shape for instruments which is very different from the round symbols used for sources. + +\begin{groupdesc} \circuitdescbip*{smeter}{Square meter (use \texttt{t=...} for the symbol)}{}(left/135/0.2, right/45/0.2, center/-90/0.3, in 1/-135/.5, in 2/-45/.5) \circuitdescbip*{qiprobe}{QUCS-style current probe}{}(left/135/0.2, right/45/0.2, center/-90/0.3) \circuitdescbip*{qvprobe}{QUCS-style voltage probe}{}(left/135/0.2, right/45/0.2, center/-90/0.3) \circuitdescbip*{qpprobe}{QUCS-style power probe}{}(left/135/0.2, right/45/0.2, center/-90/0.3, v+/-135/.5, v-/-45/.5) +\end{groupdesc} + +\subsubsection{Oscilloscopes and current probes} + +\begin{groupdesc} \circuitdescbip*[oscope]{oscope}{Oscilloscope\footnotemark}{}(left/135/0.2, right/45/0.2, in 1/-135/0.4, in 2/-45/0.4) \footnotetext{Suggested by \texttt{@nobrl} on GitHub} @@ -4947,6 +4990,60 @@ The dashed line pattern can be changed by setting the key \texttt{tubes/partial \end{LTXexample} +\subsubsection{Multi-anode tube} + +The multi-anode tube (\texttt{matube}) is a component thought to be tailored for several different usages,\footnote{It was added in \texttt{v1.6.8} after suggestions by user \texttt{bogger33} on GitHub \href{https://github.com/circuitikz/circuitikz/issues/781}{here} and \href{https://github.com/circuitikz/circuitikz/issues/785}{here}.} as shown in the examples below. + +The anchors for the multiple anodes have also alias names to ease the use in the case of implementing nixie tubes, because in that case the anode/cathode roles are swapped. + +\begin{groupdesc} + \circuitdesc*{matube}{Multi-anode tube}{}(anode 1/110/0.2, anode 2/60/0.2, anode 3/-30/0.2, cathode/-90/0.2, control/180/0.2 ) + \circuitdesc*{matube, nixieanode, anodedot, nogrid}{Multi-anode tube used for nixie tubes}{}(nixie k1/110/0.2, nixie k2/60/0.2, nixie k3/-30/0.2, nixie a/-90/0.2) +\end{groupdesc} + +Basically all the parameters available for triodes are available. The main difference is that the \texttt{anode width} parameter define the length of \emph{all} the anodes; those tubes are normally used with a \texttt{width} parameter bigger than \texttt{height}, to have an elongated device. + +The additional parameters/flags available only for \texttt{matube}s are the following. + +\begin{tabular}{l | l | l} + Key/Flag & Default value & Description\\ + \hline + \texttt{anodes} & 3 & number of anodes \\ + \texttt{anodedot} & false & substitute anodes bar for dots \\ + \texttt{nixieanode} & false & substitute the cathode for the nixie-style anode \\ + \texttt{nogrid} & false & suppresses the drawing of the grid \\ +\end{tabular} + +In the next example, we define a 10-anodes VFD tube: + +\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] +\tikzset{vfd 10/.style={matube, filament, nocathode, + circuitikz/tubes/.cd, + width=3.6, height=1, anodes=10, anode width=0.6, + cathode width=0.1, +}} +\begin{circuitikz}[european] + \draw (0,0) node[vfd 10](A){}; + \foreach \i in {1,...,10} \path (A.anode \i) + node[red, ocirc]{} node[above]{\tiny \i}; +\end{circuitikz} +\end{LTXexample} + +And a 10-cathodes nixie tube: + + +\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] +\tikzset{nixie/.style={matube, nogrid, nixieanode, + anodedot, circuitikz/tubes/.cd, cathode width=0.6, + width=3.6, height=1, anodes=10, anode width=0.6, +}} +\begin{circuitikz}[european] +\draw (0,0) node[nixie](A){}; +\foreach \i in {1,...,10} \path (A.nixie k\i) + node[red, ocirc]{} node[above]{\tiny \i}; + \path (A.nixie a) node[red, ocirc]{}; +\end{circuitikz} +\end{LTXexample} \subsubsection{Other tubes-like components} @@ -5831,28 +5928,28 @@ The switches can be scaled with the key \texttt{switches/scale} (default \texttt These are all of the to-style type: \begin{groupdesc} - \circuitdescbip[cspst]{switch}{Switch}{spst} + \circuitdescbip[cspst]{switch}{Switch}{spst}(left/135/0.1, right/45/0.1, mid/90/0.3) \circuitdescbip[cspst]{closing switch}{Closing switch}{cspst} \circuitdescbip[ospst]{opening switch}{Opening switch}{ospst} - \circuitdescbip[nos]{normal open switch}{Normally open switch}{nos} + \circuitdescbip[nos]{normal open switch}{Normally open switch}{nos}(left/135/0.1, right/45/0.1, mid/90/0.3) \circuitdescbip[ncs]{normal closed switch}{Normally closed switch}{ncs} \circuitdescbip[oncs]{opening normal closed switch}{Opening normally closed switch}{oncs} \circuitdescbip[cncs]{closing normal closed switch}{Closing normally closed switch}{cncs} \circuitdescbip[onos]{opening normal open switch}{Opening normally open switch}{onos} \circuitdescbip[cnos]{closing normal open switch}{Closing normally open switch\footnotemark}{cnos} \footnotetext{These last four were contributed by \href{https://tex.stackexchange.com/questions/693446/new-switch-components-for-circuitikz}{Jakob «DraUX»}} - \circuitdescbip[pushbutton]{push button}{Normally open push button}{normally open push button, nopb}(tip/0/0.2) - \circuitdescbip[ncpushbutton]{normally closed push button}{Normally closed push button}{ncpb}(tip/0/0.2) - \circuitdescbip[pushbuttonc]{normally open push button closed}{Normally open push button (in closed position)}{nopbc}(tip/0/0.2) - \circuitdescbip[ncpushbuttono]{normally closed push button open}{Normally closed push button (in open position)}{ncpbo}(tip/0/0.2) - \circuitdescbip[toggleswitch]{toggle switch}{Toggle switch}{} - \circuitdescbip*{reed}{Reed switch}{} + \circuitdescbip[pushbutton]{push button}{Normally open push button}{normally open push button, nopb}(tip/0/0.2, mid/-90/0.2) + \circuitdescbip[ncpushbutton]{normally closed push button}{Normally closed push button}{ncpb}(tip/0/0.2, mid/-90/0.2) + \circuitdescbip[pushbuttonc]{normally open push button closed}{Normally open push button (in closed position)}{nopbc}(tip/0/0.2, mid/-90/0.2) + \circuitdescbip[ncpushbuttono]{normally closed push button open}{Normally closed push button (in open position)}{ncpbo}(tip/0/0.2, mid/-90/0.2) + \circuitdescbip[toggleswitch]{toggle switch}{Toggle switch}{}(out 1/0/0.2, out 2/0/0.2, in/135/0.1, mid/-90/0.2) + \circuitdescbip*{reed}{Reed switch}{}(left/135/0.1, right/45/0.1, mid/90/0.3) \end{groupdesc} while this is a node-style component: \begin{groupdesc} - \circuitdesc{spdt}{spdt}{}( in/180/0.2, out 1/0/0.2, out 2/0/0.2 ) + \circuitdesc{spdt}{spdt}{}(in/180/0.2, out 1/0/0.2, out 2/0/0.2, mid/90/0.2) \end{groupdesc} \begin{LTXexample}[varwidth=true] @@ -9610,6 +9707,7 @@ after loading \Circuitikz, and it will try to patch the default commands to keep Before 1.5.0, \Circuitikz{} used black as the default color. Now it tries to follow the current color, as \TikZ{} does normally; but notice that there is a difference with the fill strategy: + \begin{LTXexample}[pos=t] \color{red} Red text @@ -9639,6 +9737,8 @@ Basically, you should have no problem if: Nevertheless, if you really need to do strange things with colors you can read on; you can do almost everything but there are several glitches to take into account. +Moreover, in some cases, also the engine you are using (as \texttt{pdflatex}, \texttt{xelatex}, and so on) can impact corner cases (or even not so corner, like in \href{https://tex.stackexchange.com/q/709273/38080}{american-style voltage source signs}). + \subsection{Shape colors} The color of the components is stored in the key \verb!\circuitikzbasekey/color!. Circui\TikZ\ tries to follow the color set in \TikZ, although sometimes it fails. The following circuit will fail to draw the circuit in red if the patching of the inner commands of \TikZ{} fails, like for example in \ConTeXt{}. |