summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex')
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex146
1 files changed, 145 insertions, 1 deletions
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
index 04431723a1..74d74b4dcd 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
@@ -2339,6 +2339,8 @@ The package options \texttt{fulldiode}, \texttt{strokediode}, and \texttt{emptyd
\circuitdescbip*[emptylaserdiode]{empty laser diode}{Empty laser diode\footnotemark}{lasD}
\footnotetext{Added by André Alves in \texttt{v1.4.4}}
\circuitdescbip*[emptyvarcap]{empty varcap}{Empty varcap}{VCo}
+ \circuitdescbip*[emptytvsdiode]{empty TVS diode}{Empty TVS diode, transorb\footnotemark}{tvsDo}
+ \footnotetext{Transobs were suggested by \href{Anisio Braga}{https://tex.stackexchange.com/q/642219/38080}}
\circuitdescbip*[emptybidirectionaldiode]{empty bidirectionaldiode}{Empty bidirectionaldiode}{biDo}
\circuitdescbip[fulldiode] {full diode}{Full diode}{D*}
\circuitdescbip[fullsdiode]{full Schottky diode}{Full Schottky diode}{sD*}
@@ -2349,6 +2351,7 @@ The package options \texttt{fulldiode}, \texttt{strokediode}, and \texttt{emptyd
\circuitdescbip[fulllediode]{full led}{Full led}{leD*}
\circuitdescbip[fulllaserdiode]{full laser diode}{Full laser diode}{lasD*}
\circuitdescbip[fullvarcap]{full varcap}{Full varcap}{VC*}
+ \circuitdescbip[fulltvsdiode]{full TVS diode}{Full TVS diode, transorb}{tvsD*}
\circuitdescbip[fullbidirectionaldiode]{full bidirectionaldiode}{Full bidirectionaldiode}{biD*}
\end{groupdesc}
@@ -3977,6 +3980,8 @@ The position of the circle on collector and emitter by default is the one shown
relative thickness & 1.0 & multiply the class thickness \\
color & default & stroke color: \texttt{default} is the same as the component \\
dash & none & dash pattern: none means unbroken line\footnotemark \\
+ partial borders & none & draw only part of the circle border: none means draw all \\
+ partial border dash & \{\{2pt\}\{2pt\}\} & dash pattern used in partial borders \\
\bottomrule
\end{tabular}
\footnotetext{Follows the syntax of the pattern sequence \texttt{\textbackslash pgfsetdash} --- see \TikZ{} manual for details; phase is always zero. Basically you pass pairs of dash-length -- blank-length dimensions, see the examples.}
@@ -4007,6 +4012,48 @@ Finally, using the class style you can do quite interesting things.
\end{circuitikz}
\end{LTXexample}
+\paragraph{Partially drawn circle borders}
+
+In some circuits, transistor are drawn with partial or dashed border (to convey the meaning of several active components encased in the same physical package, or to signify thermal contact). To achieve this effect, you can use the \texttt{transistor circle/partial border}\footnote{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/602}{Jether Fernandes Reis} for tubes, implemented by Romano in \texttt{v1.5.2}.} key (default \texttt{none}). This key can be set to \texttt{none}, or must be a sequence of \textbf{exactly} 4 numbers, that can have value \texttt{0}, \texttt{1}, or \texttt{2}. Each number define the style of a part of the border to be not drawn, solid or dashed respectively.
+
+The part of the border are numbered from 1 to 4 as shown below:
+\begin{quote}
+\begin{circuitikz}[circuitikz/transistors/fill=cyan!20,
+ circuitikz/transistor circle/partial borders=1212]
+ \draw (0,0) node[npn, tr circle](T){};
+ \draw[red, font=\ttfamily\small\bfseries]
+ ([shift={(.3,-.2)}]T.north east) node{1}
+ ([shift={(.3,.2)}]T.south east) node{2}
+ ([shift={(.2,.2)}]T.south west) node{3}
+ ([shift={(.2,-.2)}]T.north west) node{4}
+ ;
+ \end{circuitikz}
+\end{quote}
+The dashed line pattern can be changed by setting the key \texttt{transistor circle/partial border dash} (default \verb|{{2pt}{2pt}}|). Be careful with the extra set of braces here.
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}[]
+ \ctikzset{transistors/thickness=4, transistors/fill=cyan!30,
+ transistor circle/relative thickness=0.25,
+ transistor circle/partial borders=2211}
+ \draw (0,0) node[npn, tr circle](Q1){};
+ \ctikzset{transistor circle/dash={{2pt}{2pt}}}
+ \draw (1.5,0) node[npn, tr circle, xscale=-1](Q2){};
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}[]
+ \ctikzset{transistors/thickness=4, transistors/fill=cyan!30,
+ transistor circle/relative thickness=0.25,
+ transistor circle/partial borders=0011}
+ \draw (0,0) node[npn, tr circle](Q1){};
+ \ctikzset{transistor circle/dash={{2pt}{2pt}}}
+ \draw (1.5,0) node[npn, tr circle, xscale=-1](Q2){};
+ \draw[dashed] (Q1.circle top) -- (Q2.circle top);
+ \draw[dashed] (Q1.circle bottom) -- (Q2.circle bottom);
+\end{circuitikz}
+\end{LTXexample}
\subsubsection{Transistors anchors}
@@ -4094,6 +4141,12 @@ Additionally, you can access the position for the flyback diodes and possibly sn
\showanchors{pnp}{}(body C in/-45/0.4, body E in/45/0.4, body C out/0/0.4, body E out/0/0.4)
\end{quote}
+Transistor circles also have several anchors on them:
+\begin{quote}
+\showanchors{npn, tr circle}{}(circle center/-135/0.6, circle top/90/0.3, circle left/180/0.2, circle right/0/0.2, circle bottom/-90/0.3, circle C/45/0.2, circle E/-45/0.2)
+\showanchors{pigfete, bodydiode, tr circle}{}(circle center/-135/0.6, circle top/90/0.3, circle left/180/0.2, circle right/0/0.2, circle bottom/-90/0.3, circle C/-45/0.2, circle E/45/0.2)
+\end{quote}
+
The multi-terminal transistors have all the geographical anchors; note though that the \texttt{center} anchor is not the geometrical center of the component, but the logical one (at the same height than the base).
The additional anchors \texttt{vcenter} (vertical geometric center of the collector--emitter zone) and \texttt{gcenter} (graphical center) are provided, as shown in the following picture. They have no bodydiode anchors nor \texttt{inner \emph{up/down}} ones.
@@ -4301,7 +4354,7 @@ Example triode amplifier:
\end{circuitikz}
\end{lstlisting}
-\begin{circuitikz}
+\begin{circuitikz}[scale=0.7, transform shape]
\draw (0,0) node (start) {}
to[sV=$V_i$] ++(0,2+\ctikzvalof{tubes/height})
to[C=$C_i$] ++(2,0) coordinate(Rg)
@@ -4321,6 +4374,72 @@ Example triode amplifier:
\draw (Tri.east) node[right] {12AX7};
\end{circuitikz}
+\subsubsection{Tubes anchors}
+
+Apart from the geographic anchors, which take into account the leads of the components, you have several anchors on the border:
+\begin{quote}
+\geolrcoord{pentode, scale=0.8}
+\geolrcoord{triode, circuitikz/tubes/width=1.4, circuitikz/tubes/height=1, scale=0.8}
+\geolrcoord{triode, circuitikz/tubes/width=1, circuitikz/tubes/height=1, scale=0.8}
+
+\showanchors{pentode, circuitikz/tubes/height=1.8}{}(%
+tube top/90/0.3, tube left/180/0.2, tube right/0/0.2, tube bottom/-90/0.3,
+tube top right/30/0.2, tube top left/150/0.4, tube bottom right/-45/0.4, tube bottom left/-150/0.2,
+tube top center/75/0.5, tube bottom center/-105/0.5)
+\showanchors{pentode,circuitikz/tubes/width=2.6, circuitikz/tubes/tube radius=0.3}{}(%
+tube top/90/0.5, tube left/160/0.5, tube right/0/0.2, tube bottom/-90/0.6,
+tube top right/70/0.4, tube top left/150/0.4, tube bottom right/-45/0.4, tube bottom left/-120/0.4,
+tube right center/30/0.4, tube left center/-120/0.4)
+\end{quote}
+
+\subsubsection{Partially drawn tube borders}\label{sec:partial-tube-borders}
+
+In some circuits, tubes are drawn with partial or dashed border (to convey the meaning of several active components encased in the same physical tube). To achieve this effect, you can use the \texttt{tubes/partial border}\footnote{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/602}{Jether Fernandes Reis}, implemented by Romano in \texttt{v1.5.2}.} key (default \texttt{none}). This key can be set to \texttt{none}, or must be a sequence of \textbf{exactly} 6 numbers, that can have value \texttt{0}, \texttt{1}, or \texttt{2}. Each number define the style of a part of the border to be not drawn, solid or dashed respectively.
+
+The part of the border are numbered from 1 to 6 as shown below:
+\begin{quote}
+\begin{circuitikz}[circuitikz/tubes/fill=cyan!20,
+ circuitikz/tubes/partial borders=121212]
+ \draw (0,0) node[pentode,anchor=control](V){};
+ \draw (4,0) node[pentode,anchor=control,
+ circuitikz/tubes/width=1.4,
+ circuitikz/tubes/height=1](H){};
+ \draw[red, font=\ttfamily\small\bfseries]
+ ([shift={(-.2,-.2)}]V.ne) node{1}
+ ([shift={(.1,0)}]V.e) node{2}
+ ([shift={(-.2,.2)}]V.se) node{3}
+ ([shift={(.2,.2)}]V.sw) node{4}
+ ([shift={(-.1,0)}]V.w) node{5}
+ ([shift={(.2,-.2)}]V.nw) node{6}
+ ([shift={(.2,-.2)}]H.nw) node{1}
+ ([shift={(0,.1)}]H.n) node{2}
+ ([shift={(-.2,-.2)}]H.ne) node{3}
+ ([shift={(-.2,.2)}]H.se) node{4}
+ ([shift={(0,-.1)}]H.s) node{5}
+ ([shift={(.2,.2)}]H.sw) node{6}
+ ;
+ \end{circuitikz}
+\end{quote}
+(notice that the straight parts, if they exist, are numbered \texttt{2} and \texttt{5} in both tubes, vertical or horizontal).
+
+The dashed line pattern can be changed by setting the key \texttt{tubes/partial border dash} (default \verb|{{2pt}{2pt}}|).\footnote{Follows the syntax of the pattern sequence \texttt{\textbackslash pgfsetdash} --- see \TikZ{} manual for details; phase is always zero. Basically you pass pairs of dash-length -- blank-length dimensions, see the examples.} Be careful with the extra set of braces here.
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[circuitikz/tubes/fill=cyan!20,
+ circuitikz/tubes/partial borders=012012]
+ \draw (0,0) node[pentode]{};
+ \draw (2,0) node[pentode,
+ circuitikz/tubes/width=1.4,
+ circuitikz/tubes/height=1]{};
+ \draw (1,-2) node[triode,
+ circuitikz/tubes/height=1,
+ circuitikz/tubes/partial border dash=%
+ {{3pt}{1pt}{1pt}{1pt}}]{};
+\end{circuitikz}
+\end{LTXexample}
+
+
+
\subsubsection{Other tubes-like components}
The \texttt{magnetron} and \texttt{dynode} shapes will also scale with \texttt{tubes/scale}.
@@ -5199,6 +5318,31 @@ Finally, the switches are normally drawn using the \texttt{ocirc} shape, but you
\end{circuitikz}
\end{LTXexample}
+\subsubsection{Proximity switches}
+
+\begin{groupdesc}
+ \circuitdesc*{proximeter}{proximeter}{text}(hlines nw/135/0.4, hlines ne/45/0.4, hlines sw/-135/0.4, hlines se/-45/0.4, center/-90/0.4)
+ \circuitdescbip*{inline proximeter}<proximeter>{proximeter switch, inline}{}(left/135/0.4, right/45/0.4)
+\end{groupdesc}
+
+The \texttt{proximeter} shape\footnote{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/631}{Anisio Rogerio Braga}, implemented in \texttt{v1.5.2}; see also \href{https://knowledge.autodesk.com/support/autocad-electrical/learn-explore/caas/CloudHelp/cloudhelp/2019/ENU/AutoCAD-Electrical/files/GUID-1B18023D-241C-4E50-822A-94F873FC258B-htm.html}{here}.} can be used as a dipole with the \texttt{inline proximeter} variant.
+
+It has been assigned to the \texttt{switches} class; you can adjust the (relative) thickness of the inside horizontal lines with the key \texttt{proximeter/hlines thickness} (default \texttt{0.5}) and their vertical position with \texttt{proximeter/hlines position} (default \texttt{0.3}). You can also change the default size of \emph{all} proximeter symbols by changing \texttt{proximeter/width} (only safe at picture level; better set in the preamble if you need to change it. The default value is \texttt{0.3}).
+
+Notice in the following example that, as ever for node-type shape, the text is not included in the bounding box:
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{tikzpicture}
+ \tikzset{small up proxi/.style={proximeter, solid,
+ circuitikz/switches/scale=0.707,
+ circuitikz/proximeter/hlines thickness=1,
+ circuitikz/proximeter/hlines position=0.1}}
+ \draw (0,0) to[inline proximeter, l=P1] ++(2,0)
+ to[ccgsw, name=P2] ++(2,0);
+ \draw[dashed] (P2.mid) -- ++(0,0.5)
+ node[small up proxi, above](P2p){Fe}
+ (P2p.north) ++ (0,0.5); % extend bounding box
+\end{tikzpicture}
+\end{LTXexample}
\subsubsection{Rotary switches}