diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex | 183 |
1 files changed, 169 insertions, 14 deletions
diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex index f5fd98ad7a1..fdf6d43878e 100644 --- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex +++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex @@ -280,6 +280,7 @@ They \texttt{use fpu reciprocal} key seems to have no side effects, but given th Here, we will provide a list of incompabilitys between different version of circuitikz. We will try to hold this list short, but sometimes it is easier to break with old syntax than including a lot of switches and compatibility layers. You can check the used version at your local installation using the macro \verb!\pgfcircversion{}!. \begin{itemize} + \item After v1.1.2: the position of \texttt{american} voltages for the \texttt{open} bipoles (you can revert to old behavior, see section~\ref{sec:sub-voltage-position}). \item After v0.9.7: the position of the text of transistor nodes has changed; see section~\ref{sec:transistors-labels}. \item After v0.9.4: added the concept of styling of circuits. It should be backward compatible, but it's a big change, so be ready to use the \texttt{0.9.3} snapshot (see below for details). \item After v0.9.0: the parameters \texttt{tripoles/american or port/aaa}, \texttt{...bbb}, \texttt{...ccc} and \texttt{...ddd} are no longer used and are silently ignored; the same stands for \texttt{nor}, \texttt{xor}, and \texttt{xnor} ports. @@ -287,7 +288,7 @@ You can check the used version at your local installation using the macro \verb! \item Since v0.8.2: voltage and current label directions (\texttt{v<=} / \texttt{i<=}) do NOT change the orientation of the drawn source shape anymore. Use the \texttt{invert} option to rotate the shape of the source. Furthermore, from this version on, the current label (\texttt{i=}) at current sources can be used independent of the regular label (\texttt{l=}). \item Since v0.7?: The label behaviour at mirrored bipoles has changes, this fixes the voltage drawing, but perhaps you have to adjust your label positions. \item Since v0.5.1: The parts pfet, pigfete, pigfetebulk and pigfetd are now mirrored by default. Please adjust your yscale-option to correct this. - \item Since v0.5: New voltage counting direction, here exists an option to use the old behaviour + \item Since v0.5: New voltage counting direction, there exists an option to use the old behaviour. \end{itemize} If you have older projects that show compatibility problems, you have two options: @@ -1726,8 +1727,20 @@ Notice that if you choose the dashed style, the noise sources are fillable: \circuitdescbip*{pvsource}{Photovoltaic-voltage source}{} \circuitdescbip*[oosource]{ioosource}{Double Zero style current source}{} \circuitdescbip*[oosource]{voosource}{Double Zero style voltage source}{} + \circuitdescbip*[oosourcetrans]{oosourcetrans}{transformer source}{} + \circuitdescbip*[ooosource]{ooosource}{transformer with three windings}{}(left/175/0.2, right/5/0.5, prim1/130/.2, prim2/-130/.2, sec1/45/.2, sec2/60/.2, sec3/90/.2, tert1/0/.2, tert2/-45/.2, tert3/-90/.2) \end{groupdesc} +The transformershapes vector group options can be specified for the primary (prim$=<value>$), the secondary (sec$=<value>$) and tertiary (tert$=<value>$) three-phase vector groups: \textbf{delta}, \textbf{wye} and \textbf{zig}. + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz} + \draw (0,0) to[oosourcetrans,prim=zig,sec=delta,o-] ++(2,0) + to[oosourcetrans, prim=delta, sec=wye,-o] ++(0,-2) + to[ooosource, prim=wye,sec=zig,tert=delta] (0,0); +\end{circuitikz} +\end{LTXexample} + \subsubsection{DC sources} \begin{groupdesc} \circuitdescbip*{dcvsource}{DC voltage source}{} @@ -2049,12 +2062,15 @@ This are simple drawings to indicate multiple wires. \begin{groupdesc} \circuitdescbip{multiwire}{Single line multiple wires}{multiwire} \circuitdescbip{bmultiwire}{Double line multiple wires}{bmultiwire} +\circuitdescbip{tmultiwire}{Triple line multiple wires\footnotemark}{tmultiwire} +\footnotetext{added by \texttt{olfline}} \end{groupdesc} \begin{LTXexample}[varwidth=true] \begin{circuitikz} \draw (0,0) to[multiwire=4] ++(1,0); \draw (0,-2) to[bmultiwire=6] ++(1,0); + \draw (0,-4) to[tmultiwire=3] ++(1,0); \end{circuitikz} \end{LTXexample} @@ -2209,6 +2225,8 @@ It also has a \texttt{zero} anchor if you need to rotate it about its real cente \circuitdesc*{oscillator}{oscillator}{} \circuitdesc*{circulator}{circulator}{} \circuitdesc*{wilkinson}{wilkinson divider}{}( in/180/0.1, out2/45/0.1, out1/-45/0.1 ) + \circuitdesc*{gridnode}{gridnode\footnotemark}{}(left/135/0.2, right/45/0.2, center/-100/0.4, up/90/0.2, down/-45/.2) + \footnotetext{added by \texttt{olfline}} \end{groupdesc} \begin{groupdesc} @@ -2232,6 +2250,11 @@ It also has a \texttt{zero} anchor if you need to rotate it about its real cente \circuitdescbip*{phaseshifter}{phase shifter}{} \circuitdescbip*{vphaseshifter}{var.\ phase shifter}{} \circuitdescbip*{detector}{detector}{} + \circuitdescbip*{sacdc}{sacdc}{} + \circuitdescbip*{sdcac}{sdcac}{} + \circuitdescbip*{tacdc}{tacdc}{} + \circuitdescbip*{tdcac}{tdcac\footnotemark}{}(left/170/0.5, right/5/0.5, center/-90/0.3, ac1/45/0.1, ac2/-5/.3, ac3/-45/.1, dc1/135/.3, dc2/185/.3) + \footnotetext{the 4 converter blocks added by \texttt{olfline}} \end{groupdesc} \begin{groupdesc} @@ -3437,7 +3460,7 @@ If you want different symbols for input and output you can use a null symbol and \end{LTXexample} The amplifier label (given as the text of the node) is normally more or less centered in the shape (in the case of the triangular shape, it is shifted a bit to the left to \emph{seem} visually centered); since version \texttt{1.1.0} you can move it at the left side plus a fixed offset setting the key \texttt{component text} or the style with the same name to \texttt{left}; by default the key is \texttt{center}. -You can change the offset with the key \texttt{left text distance} (default \texttt{0.3em}; you must use a length here). +You can change the offset with the key \texttt{left text distance} (default \texttt{0.3em}; you must use a length here). These parameters are shared with IEEE-style logic ports. \begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] \begin{circuitikz}[] @@ -4218,7 +4241,7 @@ You can use the additional elements (the \texttt{notcirc} and the \texttt{schmit \end{circuitikz} \end{LTXexample} -Notice the key \texttt{component text=left} that moves the label near to the left border of the component. There is also a \verb|\ctikzset{component text=left}| if you prefer to have it as a default for all the IEEE ports.\footnote{There is a plan to extend this to other components, too.} +Notice the key \texttt{component text=left} that moves the label near to the left border of the component. There is also a \verb|\ctikzset{component text=left}| if you prefer to have it as a default for all the IEEE ports.\footnote{You can use the same key with amplifiers, too.} \paragraph{Stacking and aligning IEEE standard gates.} The standard gates are designed so that they stacks up nicely when positioned using the external leads as anchors. Notice that the ports \textbf{do} have different sizes, but the leads lengths are designed to counter the differences. @@ -4352,7 +4375,8 @@ Most of the anchors can be seen in the following diagram: } \end{circuitikz} -The inputs anchor are \texttt{in \emph{number}} (on the tip of the lead) and \texttt{bin \emph{number}} (\textbf{b}order \textbf{in}puts) on the component's border (useful if you draw the ports with \texttt{no inut leads}. Additionally, you have \texttt{ibin \emph{number}} (\textbf{i}nner \textbf{b}order \textbf{in}puts) for the \emph{x}-type ports. The anchor named \texttt{left} is where a central border input would be. +The inputs anchor are \texttt{in \emph{number}} (on the tip of the lead) and \texttt{bin \emph{number}} (\textbf{b}order \textbf{in}puts) on the component's border (useful if you draw the ports with \texttt{no inut leads}). +Additionally, you have \texttt{ibin \emph{number}} (\textbf{i}nner \textbf{b}order \textbf{in}puts) for the \emph{x}-type ports. The anchor named \texttt{left} is where a central border input would be. In one-input ports (\texttt{not port}, the buffer, and Schmitt-type ports) you can use plain \texttt{in} or \texttt{in 1} indifferently. @@ -5373,9 +5397,9 @@ As an alternative for the current arrows, you can also use the following flows. \end{LTXexample} \subsection{Voltages} -See introduction note at Currents (chapter \ref{curr-and-volt}, page \pageref{curr-and-volt})! +See introduction note at Currents and Voltages (chapter \ref{curr-and-volt}, page \pageref{curr-and-volt}) for the direction of the voltage and currents. -\subsubsection{European style} The default, with arrows. Use option \texttt{europeanvoltage} or style \verb![european voltages]!. +\subsubsection{European style} The default, with arrows. Use option \texttt{europeanvoltage} or style \verb![european voltages]!, or setting (even locally) \texttt{voltage=european}. \begin{LTXexample}[varwidth=true] \begin{circuitikz}[european voltages] @@ -5443,11 +5467,77 @@ See introduction note at Currents (chapter \ref{curr-and-volt}, page \pageref{cu \end{circuitikz} \end{LTXexample} +\subsubsection{Straight European style} Using straight arrows. Use option \texttt{straightvoltages} or style \verb![straight voltages]!, or setting (even locally) \texttt{voltage=straight}. Notice that this is an only lightly tested option, so use with care. + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[R, v^>=$v_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[R, v^<=$v_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[R, v_>=$v_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[R, v_<=$v_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[V=10V, i_=$i_1$] (2,0); +\end{circuitikz} +\end{LTXexample} +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[V<=10V, i_=$i_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[I=1A, v_=$u_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[I<=1A, v_=$u_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[I=$~$,l=1A, v_=$u_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[I,l=1A, v_=$u_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[straight voltages] + \draw (0,0) to[battery,l_=1V, v=$u_1$, i=$i_1$] (2,0); +\end{circuitikz} +\end{LTXexample} \subsubsection{American style} -Use option \texttt{americanvoltage} or set \verb![american voltages]!. +Use option \texttt{americanvoltage} or set \verb![american voltages]! or use the option \texttt{voltage=american}. \begin{LTXexample}[varwidth=true] \begin{circuitikz}[american voltages] @@ -5485,7 +5575,7 @@ Use option \texttt{americanvoltage} or set \verb![american voltages]!. \end{circuitikz} \end{LTXexample} -\subsubsection{Voltage position} It is possible to move away the arrows and the plus or minus signs with the key \texttt{voltages shift} (default value is \texttt{0}, which gives the standard position): +\subsubsection{Voltage position}\label{sec:sub-voltage-position} It is possible to move away the arrows and the plus or minus signs with the key \texttt{voltages shift} (default value is \texttt{0}, which gives the standard position): \begin{LTXexample}[varwidth=true] \begin{circuitikz}[] @@ -5503,6 +5593,15 @@ Use option \texttt{americanvoltage} or set \verb![american voltages]!. \end{circuitikz} \end{LTXexample} +You can fine-tune the position of the \texttt{+} and \texttt{-} symbols and the label in independent way using \texttt{voltage/shift} (default \texttt{0.0} for the former and \texttt{voltage/american label distance} (the distance of the label form the lines of the symbols, default \texttt{1.1}) for the latter. + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[american voltages] + \ctikzset{voltage/american label distance=0.2, voltage/shift=2} + \draw (0,0) to[R, v=$v_1$, i=$i_1$] (2,0); +\end{circuitikz} +\end{LTXexample} + Notes that \texttt{american voltage} also affects batteries. \begin{LTXexample}[varwidth=true] @@ -5517,9 +5616,23 @@ Notes that \texttt{american voltage} also affects batteries. \end{circuitikz} \end{LTXexample} +When using \texttt{american} or \texttt{straight} voltage style, the \texttt{open} component is treated differently, and the voltage is placed in the middle of the open space\footnote{Since \texttt{v1.1.2}, thank to an \href{https://github.com/circuitikz/circuitikz/issues/374}{issue opened by user \texttt{rhandley} on GitHub}.}: + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz}[american voltages] + \draw (0,1.5) -- ++(0.5,0) + to[open, v=$v_o$, o-o] ++(2,0) -- ++(0.5,0); + \draw (0,0) -- ++(0.5,0) + to[open, v=$v_o$, voltage=straight, *-*] ++(2,0) + -- ++(0.5,0); +\end{circuitikz} +\end{LTXexample} + +If you want or need to maintain the old behavior for \texttt{open} voltage, you can set the key \texttt{american open voltage} to \texttt{legacy} (the default is the new behavior, which correspond to the value \texttt{center}). + \subsubsection{American voltages customization} -Since 0.9.0, you can change the font\footnote{There where a bug before, noticed by the user \texttt{dzereb} on \href{https://tex.stackexchange.com/questions/487683/odd-minus-style-when-drawing-american-voltage}{tex.stackexchange.com} which made the symbols using different fonts in a basically random way. In the same page, user \texttt{campa} found the problem. Thanks!} used by the \texttt{american voltages} style, by setting to something different from nothing the key \texttt{voltage/american font} (default: nothing, using the current font) style: +Since 0.9.0, you can change the font\footnote{There was a bug before, noticed by the user \texttt{dzereb} on \href{https://tex.stackexchange.com/questions/487683/odd-minus-style-when-drawing-american-voltage}{tex.stackexchange.com} which made the symbols using different fonts in a basically random way. In the same page, user \texttt{campa} found the problem. Thanks!} used by the \texttt{american voltages} style, by setting to something different from nothing the key \texttt{voltage/american font} (default: nothing, using the current font) style: \begin{LTXexample}[varwidth=true] \begin{circuitikz}[american] @@ -6511,6 +6624,10 @@ The best way of contributing is forking the project, adding your component in th \section{Examples} +Here a series of example, contributed by several people, is shown with their code. + +\subsection{A red diode} + \begin{LTXexample}[pos=t,varwidth=true] \begin{circuitikz}[scale=1.4]\draw (0,0) to[C, l=10<\micro\farad>] (0,2) -- (0,3) @@ -6523,6 +6640,9 @@ The best way of contributing is forking the project, adding your component in th ;\end{circuitikz} \end{LTXexample} +\newpage +\subsection{Using the (experimental) \texttt{siunitx} syntax} + \begin{LTXexample}[pos=t,varwidth=true] \begin{circuitikz}[scale=1.2]\draw (0,0) node[ground] {} @@ -6535,9 +6655,11 @@ The best way of contributing is forking the project, adding your component in th (0,2) -- (0,3) to[L, l=2<\milli\henry>] (5,3) -- (5,2) {[anchor=south east] (0,2) node {1} (2,2) node {2} (4,2) node {3}} -;\end{circuitikz} +; +\end{circuitikz} \end{LTXexample} + \begin{LTXexample}[pos=t,varwidth=true] \begin{circuitikz}[scale=1.2]\draw (0,0) node[anchor=east] {B} @@ -6551,6 +6673,9 @@ The best way of contributing is forking the project, adding your component in th ;\end{circuitikz} \end{LTXexample} +\newpage +\subsection{Photodiodes} + \begin{LTXexample}[pos=t,varwidth=true] \begin{circuitikz}[scale=1]\draw (0,0) node[transformer] (T) {} @@ -6559,6 +6684,7 @@ The best way of contributing is forking the project, adding your component in th ;\end{circuitikz} \end{LTXexample} +\subsection{A Sallen-Key cell} \begin{LTXexample}[pos=t,varwidth=true] \begin{circuitikz}[scale=1]\draw @@ -6572,6 +6698,9 @@ The best way of contributing is forking the project, adding your component in th ;\end{circuitikz} \end{LTXexample} +\newpage +\subsection{Mixing circuits and graphs} + \begin{LTXexample}[pos=t,varwidth=true] \begin{circuitikz}[scale=1.2, american]\draw (0,2) to[I=1<\milli\ampere>] (2,2) @@ -6597,6 +6726,9 @@ The best way of contributing is forking the project, adding your component in th \end{circuitikz} \end{LTXexample} +\newpage +\subsection{RF circuit} + \begin{LTXexample}[pos=t,varwidth=true] \begin{circuitikz}[scale=1] \ctikzset{bipoles/detector/width=.35} @@ -6627,6 +6759,8 @@ The best way of contributing is forking the project, adding your component in th \end{circuitikz} \end{LTXexample} +\subsection{A styled low noise input stage} + \ctikzloadstyle{romano} \scalebox{0.707}{% \begin{circuitikz}[american, romano circuit style] @@ -6729,10 +6863,12 @@ The best way of contributing is forking the project, adding your component in th } % scalebox \end{lstlisting} -\begin{tabular}{l}\label{ex:compatibility} +\subsection{An example with the \texttt{compatibility} option} +\label{ex:compatibility} + \IfFileExists{compatibility.pdf} {\fbox{\includegraphics{compatibility.pdf}}} -\\ + \begin{lstlisting} \documentclass{standalone} @@ -6751,8 +6887,27 @@ The best way of contributing is forking the project, adding your component in th to[*D](3,2); \end{tikzpicture} \end{document} - \end{lstlisting} -\end{tabular} +\end{lstlisting} + +\newpage +\subsection{3-phases block schematic} + +\begin{LTXexample}[varwidth=true,pos=t] +\begin{circuitikz}[smallR/.style={european resistor, resistors/scale=0.5}] + \draw (0,0) node[tacdcshape, anchor=ac2](acdc){} to[smallR] ++(-2,0) -- node[circ](point){} ++(-.5,0); + \draw (acdc.ac1) to[nos, invert, mirror, name=switch,color=red] ++(-2,0) -- (point); + \draw (acdc.ac3) to[smallR] ++(-2,0) + -- (point) + to[oosourcetrans,prim=wye,sec=delta,l=transformer] ++(-1.5,0) + to[tmultiwire] ++(-.5,0) + node[gridnode, anchor=right]{}; + \node[above=.3cm,color=red] at (switch) {fault}; + \draw (acdc.dc1) to[smallR,l=HVDC line] ++(2,0) node[tdcacshape, anchor=dc1](dcac){}; + \draw (acdc.dc2) -- (dcac.dc2); + \draw (dcac.right) to[ooosource,prim=delta,sec=delta,tert=wye,invert] ++(1.5,0) + to[tmultiwire] ++(.5,0) node[gridnode,anchor=left]{}; +\end{circuitikz} +\end{LTXexample} % % changelog.tex will be updated by makefile from CHANGELOG.md \section{Changelog and Release Notes} |