From c667de615db3c132e784c84cf43a0e9849ecd7e2 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 22 Jun 2020 03:02:09 +0000 Subject: CTAN sync 202006220302 --- .../contrib/circuitikz/doc/circuitikzmanual.tex | 321 +++++++++++++++++++-- 1 file changed, 300 insertions(+), 21 deletions(-) (limited to 'graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex') diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex index fdf6d43878..9ecca9a39a 100644 --- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex +++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex @@ -280,6 +280,8 @@ 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.2.0: voltage arrows, symbols and label positions are calculated with a rewritten routine. There should be little change, \emph{unless} you touched internal values\dots + \item After v1.1.3: during the 1.1.0 --- 1.1.2 version, the inverted Schmitt buffer in IEEE style ports was called \texttt{inv schmitt} (with an additional space). The correct name is \texttt{invschmitt port} (the same as the legacy american port). \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). @@ -294,13 +296,13 @@ You can check the used version at your local installation using the macro \verb! If you have older projects that show compatibility problems, you have two options: \begin{itemize} \item you can use an older version locally using the git-version and picking the correct commit from the repository (branch gh-pages) or the main GitHub site directly; - \item if you are using \LaTeX, the distribution has embedded several important old versions: \texttt{0.4}, \texttt{0.6}, \texttt{0.7}, \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6} and \texttt{1.0}. + \item if you are using \LaTeX, the distribution has embedded several important old versions: \texttt{0.4}, \texttt{0.6}, \texttt{0.7}, \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6}, \texttt{1.0} and \texttt{1.1.2}. To switch to use them, you simply change your \verb|\usepackage| invocation like \begin{lstlisting} \usepackage[]{circuitikz-0.8.3} % or circuitikz-0.4, 0.6... \end{lstlisting} You have to take care of the options that may have changed between versions; - \item if you are using \ConTeXt, only versions \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6} and \texttt{1.0} are packaged for now; if can use it with + \item if you are using \ConTeXt, only versions \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6}, \texttt{1.0} and \texttt{1.1.2} are packaged; if can use it with \begin{lstlisting} \usemodule[circuitikz-0.8.3] \end{lstlisting} @@ -512,6 +514,7 @@ And finally, this is still \TikZ, so that you can freely mix other graphics elem \end{circuitikz} \end{LTXexample} +\clearpage \subsection{A more complex tutorial: circuits, Romano style.} \begingroup % do not propagate to the rest of the manual @@ -745,9 +748,251 @@ and you will obtain the following diagram with the exact same code (I just remov \draw [blockdef] (vi2|-VEE) ++(0,-2) \coord(tmp) -- node[midway, fill=white]{bloque 2} (vo2|- tmp); \end{circuitikz} - \endgroup +\clearpage +\subsection{Tutorial: a logic circuit} + +\begingroup % let's keep the tutorial thing separated. +\tikzset{sr-ff/.style={flipflop, flipflop def={ + t1=S, t2=CP, t3=R, t4={\ctikztextnot{Q}},t6=Q, td=~, nd=1}}, +} +\ctikzset{ + logic ports=ieee, + logic ports/scale=0.7, +} +\newcommand*{\myblock}[1]{% the parameter will be prepended to the relevant node names + node[sr-ff](#1-FF){} (#1-FF.bup) node[above]{SR-FF} + (#1-FF.pin 1) -- ++(-1,0) node[and port, anchor=out](#1-AND1){} + % notice the second coordinate here, so that I have just one number + % to change if I want more or less space + (#1-FF.pin 3) -- (#1-FF.pin 3 -| #1-AND1.out) node[and port, anchor=out](#1-AND2){} + % go left again to put the not insert point + (#1-AND1.in 1) to[short, -*] ++(-1,0) coordinate(#1-in) + % let's position the NOT in the center to be really finicky + % this is using the calc tikz library + % ($(not up)!0.5!(not up|- #1-AND2.in 2)$) node[not port, rotate=-90](#1-NOT){} + % and connect it + % (not up) -- (#1-NOT.in) (#1-NOT.out) |- (#1-AND2.in 2) + % with the new path-style not + to[inline not] (#1-in |- #1-AND2.in 2) -- (#1-AND2.in 2); +} +\newcommand*{\fullcirc}[1][]{% +\begin{circuitikz} + \draw (0,0) \myblock{A}; + \draw (0,-4) \myblock{B}; + % + % do the connection + % + \draw (A-AND1.in 2) to[short, -*] (A-AND2.in 1) + to[short, -*] (B-AND1.in 2) to[short, -*] (B-AND2.in 1) + -- ++(0, -2) coordinate(down) node[below]{ENABLE}; + \draw (A-FF.pin 2) to[short, -*] (B-FF.pin 2) + -- (B-FF.pin 2 |- down) node[below]{CP}; + % look at the manual again here + \draw (B-FF.down) to[short, -*] ++(0,-0.3) coordinate(dd); + \draw (A-FF.down) -- ++(0,-.5) -- ++(1.5,0) |- (dd) + -- (dd |- down) node[below]{RESET}; + \draw (A-in) -- ++(-0.5, 0) node[below]{$a_0$}; + \draw (B-in) -- ++(-0.5, 0) node[below]{$a_1$}; + % + #1 + % +\end{circuitikz}% +} + +\begin{minipage}{0.45\linewidth} +\parskip=6pt plus 12pt minus 2pt + +Let's suppose we want to reproduce the circuit on the right\footnotemark, maybe as part of a more complex one. + +Looking at the circuit to draw, I see that there is a basic block: the flip-flop with the added three-port circuit to its left, marked with the red dashed rectangle. +The main distance to respect here is that we want the two ANDs in line with the flip-flop inputs, so I'll start with the flip-flop and then add the rest of the block. + +The shapes are very similar to the IEEE logic gates (see section~\ref{sec:ieeestdports}); +after a first check, the standard size of the port is a bit too big with respect to the flip-flop, so I scale them down a bit. + +\begin{lstlisting} +\ctikzset{ + logic ports=ieee, + logic ports/scale=0.7, +} +\end{lstlisting} +\end{minipage}\hfill +\begin{minipage}{0.5\linewidth} + \fullcirc[{ + \node[draw, red, dashed, fit=(A-in) (A-FF)]{}; + }] +\end{minipage} +\footnotetext{It seems a quite popular one on \href{https://tex.stackexchange.com/q/545317/38080}{tex.stackexchange}\dots} + +I want a reusable block, so I will start from a coordinate and then use only relative, defining coordinates along the way. + +\begin{minipage}{0.7\linewidth} + The first thing is to define a suitable flip-flop. The standard SR~(see \ref{sec:flipflops}) is \emph{almost} what we need, but not exactly the same. So let's define a new one: + \begin{lstlisting} +\tikzset{sr-ff/.style={flipflop, flipflop def={ + t1=S, t2=CP, t3=R, t4={\ctikztextnot{Q}}, + t6=Q, nd=1}}, +} + \end{lstlisting} +\end{minipage}\hfill +\begin{minipage}{0.2\linewidth} + \begin{circuitikz}[scale=0.8, transform shape] + \tikzset{sr-ff/.style={flipflop, flipflop def={ + t1=S, t2=CP, t3=R, t4={\ctikztextnot{Q}}, + t6=Q, nd=1}}, + } + \node[sr-ff]{}; + \end{circuitikz} +\end{minipage} + +\begin{minipage}{0.7\linewidth} + + If you look closer, you can notice that the new flip-flop has no lead in the bottom pin; this is due to the fact that there is no label here, and leads are drawn in flip-flops only if there is a label. This can be fixed by adding a blank label (like \verb|td=~|); otherwise you have to utilize the anchors on the internal ``not'' circle. + +\end{minipage}\hfill +\begin{minipage}{0.2\linewidth} + \begin{circuitikz}[scale=0.8, transform shape] + \node[sr-ff]{}; + \end{circuitikz} +\end{minipage} + +Now we can add the ``and'' gates. For example, we can add the gates to the right like this: + +\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] +\begin{circuitikz}[] + \draw (0,0) node[sr-ff](FF){} (FF.bup) + node[above]{SR-FF}; + \draw (FF.pin 1) -- ++(-1,0) node[and port, + anchor=out](AND1){} + (FF.pin 3) -- ++(-1,0) node[and port, + anchor=out](AND2){}; +\end{circuitikz} +\end{LTXexample} + +You can notice a pair of things here: first of all, the use of the \texttt{anchor=out} in the port, to tell \TikZ{} that we want the node moved so that the \texttt{out} anchor is the reference one. The second one is that we have repeated the absolute shift (the \texttt{++(-1, 0)}) twice. This is a bad practice; it is much better to have the ``free'' parameters of a schematic just stated once, so that we can change them in just one point. + +You can of course use a macro, like \verb|\newcommand{\andshift}{(-1,0)}| but it is much more elegant to do something like this: +\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] +\begin{circuitikz}[] + \draw (0,0) node[sr-ff](FF){} (FF.bup) + node[above]{SR-FF}; + \draw (FF.pin 1) -- ++(-1,0) node[and port, + anchor=out](AND1){} + (FF.pin 3) -- (FF.pin 3 -| AND1.out) + node[and port, anchor=out](AND2){}; +\end{circuitikz} +\end{LTXexample} + +In this snippet, the coordinate \texttt{(FF.pin 3 -| AND1.out)} is the \TikZ{} way to say ``the point which is horizontally straight from \texttt{FF.pin 3} and vertically form \texttt{AND1.out}''. That way one can change the number \texttt{-1} to move both AND ports nearer or farther away. + +Now we can add the not port. Since version~\texttt{1.1.3} you can use a path-style not port, so you can just say: this: + +\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] +\begin{circuitikz}[scale=0.8, transform shape] +\draw (0,0) node[sr-ff](FF){} (FF.bup) + node[above]{SR-FF} (FF.pin 1) -- ++(-1,0) + node[and port, anchor=out](AND1){} + (FF.pin 3) -- (FF.pin 3 -| AND1.out) + node[and port, anchor=out](AND2){} + (AND1.in 1) to[short, -*] ++(-1,0) coordinate(in) + to[inline not] (in |- AND2.in 2) -- (AND2.in 2); +\end{circuitikz} +\end{LTXexample} + +In earlier version, you should have found the center point between the two terminal, position the ``not'' shape and ten connect it, like for example (this code must stay into the \verb|\draw| command): + +\begin{lstlisting} + % let's position the NOT in the center + % this is using the calc tikz library + ($(in)!0.5!(in |- AND2.in 2)$) node[not port, rotate=-90](NOT){} + % and connect it + (in) -- (NOT.in) (NOT.out) |- (AND2.in 2) +\end{lstlisting} + +Now we have the basic block; we have to use it twice, so one of the possible way to do it is to prepare a command. +We will change the names of the nodes and the coordinates to be different for any ``call'' of the block (another option is to use a \texttt{pic}; but this is more straightforward). + +\begin{lstlisting} +\newcommand*{\myblock}[1]{% Add #1- to the node and coord names + node[sr-ff](#1-FF){} (#1-FF.bup) node[above]{SR-FF} + (#1-FF.pin 1) -- ++(-1,0) node[and port, anchor=out](#1-AND1){} + (#1-FF.pin 3) -- (#1-FF.pin 3 -| #1-AND1.out) + node[and port, anchor=out](#1-AND2){} + (#1-AND1.in 1) to[short, -*] ++(-1,0) coordinate(#1-in) + to[inline not] (#1-in |- #1-AND2.in 2) -- (#1-AND2.in 2); +} +\end{lstlisting} + + +\begin{minipage}{0.45\linewidth} +\parskip=6pt plus 12pt minus 2pt + +So now we can draw two of our blocks: +\begin{lstlisting} + \draw (0,0) \myblock{A}; + \draw (0,-4) \myblock{B}; +\end{lstlisting} +Part of the anchors and coordinates that we have accessible are marked in red in the diagram at the side. + +Now we have to just connect the relevant parts and add the labels. The names of the inputs are quite easy: +\begin{lstlisting} + \draw (A-in) -- ++(-0.5, 0) node[below]{$a_0$}; + \draw (B-in) -- ++(-0.5, 0) node[below]{$a_1$}; +\end{lstlisting} +And finally: +\end{minipage}\hfill +\begin{minipage}{0.5\linewidth} + \begingroup + \def\showcoord(#1)<#2:#3>{% + node[circle, red, draw, inner sep=1pt,pin={% + [red, inner sep=0.5pt, font=\small, + pin distance=#3cm, pin edge={red, }% + ]#2:#1}](){}} + \begin{circuitikz}[] + \draw (0,0) \myblock{A}; + \draw (0,-4) \myblock{B}; + \foreach \b in {A, B} + \foreach \n in {in, AND1.in 2, AND2.in 1, FF.pin 2, FF.down} + \path (\b-\n) \showcoord(\b-\n)<45:0.6>; + \end{circuitikz} + \endgroup +\end{minipage} + +\begin{lstlisting} + \draw (A-AND1.in 2) to[short, -*] (A-AND2.in 1) + to[short, -*] (B-AND1.in 2) to[short, -*] (B-AND2.in 1) + -- ++(0, -2) coordinate(down) node[below]{ENABLE}; + \draw (A-FF.pin 2) to[short, -*] (B-FF.pin 2) + -- (B-FF.pin 2 |- down) node[below]{CP}; + \draw (B-FF.down) to[short, -*] ++(0,-0.3) coordinate(dd); + \draw (A-FF.down) -- ++(0,-.5) -- ++(1.5,0) |- (dd) + -- (dd |- down) node[below]{RESET}; +\end{lstlisting} + +Will create the final diagram: + +\begin{circuitikz}[scale=0.8, transform shape] + \draw (0,0) \myblock{A}; + \draw (0,-4) \myblock{B}; + % + % do the connection + % + \draw (A-AND1.in 2) to[short, -*] (A-AND2.in 1) + to[short, -*] (B-AND1.in 2) to[short, -*] (B-AND2.in 1) + -- ++(0, -2) coordinate(down) node[below]{ENABLE}; + \draw (A-FF.pin 2) to[short, -*] (B-FF.pin 2) + -- (B-FF.pin 2 |- down) node[below]{CP}; + % look at the manual again here + \draw (B-FF.down) to[short, -*] ++(0,-0.3) coordinate(dd); + \draw (A-FF.down) -- ++(0,-.5) -- ++(1.5,0) |- (dd) + -- (dd |- down) node[below]{RESET}; + \draw (A-in) -- ++(-0.5, 0) node[below]{$a_0$}; + \draw (B-in) -- ++(-0.5, 0) node[below]{$a_1$}; + % +\end{circuitikz} +\endgroup \section{The components} @@ -1618,12 +1863,12 @@ Notice that source and generators are divided in three classes that can be style \subsubsection{Stationary sources} \begin{groupdesc} - \circuitdescbip*[vsource]{european voltage source}{Voltage source (european style)}{} + \circuitdescbip*[vsource]{european voltage source}{Voltage source (european style)}{vsource} \circuitdescbip*[vsourceC]{cute european voltage source}{Voltage source (cute european style)}{vsourceC, ceV} - \circuitdescbip*[vsourceAM]{american voltage source}{Voltage source (american style)}{} - \circuitdescbip*[isource]{european current source}{Current source (european style)}{} + \circuitdescbip*[vsourceAM]{american voltage source}{Voltage source (american style)}{vsourceAM} + \circuitdescbip*[isource]{european current source}{Current source (european style)}{isource} \circuitdescbip*[isourceC]{cute european current source}{Current source (cute european style)}{isourceC, ceI} - \circuitdescbip*[isourceAM]{american current source}{Current source (american style)}{} + \circuitdescbip*[isourceAM]{american current source}{Current source (american style)}{isourceAM} \end{groupdesc} \begin{framed} @@ -1649,12 +1894,12 @@ Similarly, if (default behaviour) \texttt{europeanvoltages} option is active (or \subsubsection{Controlled sources} \begin{groupdesc} - \circuitdescbip*[cvsource]{european controlled voltage source}{Controlled voltage source (european style)}{} + \circuitdescbip*[cvsource]{european controlled voltage source}{Controlled voltage source (european style)}{cvsource} \circuitdescbip*[cvsourceC]{cute european controlled voltage source}{Voltage source (cute european style)}{cvsourceC, cceV} - \circuitdescbip*[cvsourceAM]{american controlled voltage source}{Controlled voltage source (american style)}{} - \circuitdescbip*[cisource]{european controlled current source}{Controlled current source (european style)}{} + \circuitdescbip*[cvsourceAM]{american controlled voltage source}{Controlled voltage source (american style)}{cvsourceAM} + \circuitdescbip*[cisource]{european controlled current source}{Controlled current source (european style)}{cisource} \circuitdescbip*[cisourceC]{cute european controlled current source}{Current source (cute european style)}{cisourceC, cceI} - \circuitdescbip*[cisourceAM]{american controlled current source}{Controlled current source (american style)}{} + \circuitdescbip*[cisourceAM]{american controlled current source}{Controlled current source (american style)}{cisourceAM} \circuitdescbip*[ecsource]{empty controlled source}{Empty controlled source}{ecsource} \end{groupdesc} @@ -3885,7 +4130,7 @@ Logic gates, with two or more input, are supported. Albeit in principle these co \circuitdesc*{american not port}{American \textsc{not} port}{} \end{groupdesc} -There is no ``european'' version of the following symbols (but you can probably use the \texttt{schmitt symbol} of the IEEE standard ports. +There is no ``european'' version of the following symbols; for now they are used both in \texttt{american} and \texttt{european} styles, but iy may change in the future. \begin{groupdesc} \circuitdesc*{schmitt}{Non-Inverting Schmitt trigger}{} @@ -3910,7 +4155,7 @@ These ports are completely independent from the legacy set (either \texttt{ameri \circuitdesc*{ieeestd buffer port}{IEEE standard buffer port}{}(in 1/180/0.2, bin 1/-155/0.2, up/30/0.2, down/-30/0.2) \circuitdesc*{ieeestd not port}{IEEE standard ``not'' port}{}(in/180/0.2, bin/-155/0.2, out/0/0.2, bout/45/0.2) \circuitdesc*{ieeestd schmitt port}{Schmitt port matched to IEEE standard ports}{}(in/180/0.2, out/0/0.2, bout/45/0.2) - \circuitdesc*{ieeestd inv schmitt port}{Inverting Schmitt port matched to IEEE standard ports}{} + \circuitdesc*{ieeestd invschmitt port}{Inverting Schmitt port matched to IEEE standard ports}{} \circuitdesc*{notcirc}{Inverting dot for IEEE ports}{}(west/180/0.1, east/0/0.1) \circuitdesc*{schmitt symbol}{Schmitt symbol to add to input pins if needed}{}(north west/145/0.1, south east/-45/0.1) \end{groupdesc} @@ -3928,15 +4173,37 @@ These ports are completely independent from the legacy set (either \texttt{ameri \end{groupdesc} \begin{framed} -If (default behaviour) \texttt{americanports} option is active (or the style \texttt{[american ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{not port}, \texttt{nand port}, \texttt{not port}, \texttt{xor port}, and \texttt{xnor port} are equivalent to the american version of the respective logic port. +If (default behaviour) \texttt{americanports} option is active (or the style \texttt{[american ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{buffer port}, \texttt{nand port}, \texttt{nor port}, \texttt{not port}, \texttt{xor port}, \texttt{xnor port}, \texttt{schmitt port} and \texttt{invschmitt port} are equivalent to the american version of the respective logic port. -If otherwise \texttt{europeanports} option is active (or the style \texttt{[european ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{not port}, \texttt{nand port}, \texttt{not port}, \texttt{xor port}, and \texttt{xnor port} are equivalent to the european version of the respective logic port. +If otherwise \texttt{europeanports} option is active (or the style \texttt{[european ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{buffer port}, \texttt{nand port}, \texttt{nor port}, \texttt{not port}, \texttt{xor port}, \texttt{xnor port} are equivalent to the european version of the respective logic port; \texttt{schmitt port} and \texttt{invschmitt port} are the same as in \texttt{american ports} style. Finally, for version \texttt{1.1.0} and up, you can use the style \texttt{ieee ports} to set the shorthands to the set of \texttt{ieeestd} ports. (There is no global option for this). \end{framed} +\subsubsection{Path-style logic ports} + +The one-input, one-output ports have a handy path-style equivalent; they are the following: + +\begin{groupdesc} + \ctikzset{logic ports=ieee} + \circuitdescbip*{inline not}{``not'' logic port}{} + \circuitdescbip*{inline buffer}{``buffer'' logic port}{} + \circuitdescbip*{inline schmitt}{Schmitt logic port}{} + \circuitdescbip*{inline invschmitt}{Inverting Schmitt logic port}{} +\end{groupdesc} + +Those ports follows the current selected style, although you can change it on the fly (even if it has not a lot of sense); you can apply labels, annotations and (again, not a lot of sense) voltages to them. The assigned value is typeset as if it were the main text of the node. + +\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] +\begin{circuitikz}[american] + \ctikzset{logic ports=ieee} + \draw (0,0) to[inline not=I1, l=label, v=$\Delta V$] ++(2,0); + \draw (0,-2) to[inline not, a=ann, european ports] ++(2,0); +\end{circuitikz} +\end{LTXexample} + -\subsubsection{American port usage} +\subsubsection{American ports usage} Since version \texttt{1.0.0}, the default shape of the family of american ``or'' ports has changed to a more ``pointy'' one, for better distinguish them from the ``and''-type ports. You can still going back to the previous aspect with the key \texttt{american or shape} that can be set to \texttt{pointy} or \texttt{roundy}. The \texttt{legacy} style will enact the old, roundy style also. @@ -4023,7 +4290,7 @@ This is useful if you need to draw a generic port, like the one following here: \end{circuitikz} \end{LTXexample} -The flag works also for the european-style ports, and it suppress only the input leads because the negated ports in european style are ill-specified if you do not draw the output leads (and moreover, it seems really less useful). +In an analogous manner, there is a setting \texttt{logic ports draw output leads} (and a corresponding style \texttt{no output leads}) that suppresses the drawing of the output lead. A shortcut boolean key \texttt{logic ports draw leads} will suppress or enable all leads (the corresponding styles are \texttt{no leads} and \texttt{all leads}). You can tweak the appearance of american ``or'' family (\texttt{or}, \texttt{nor}, \texttt{xor} and \texttt{xnor}) ports, too, with the parameters \texttt{inner} (how much the base circle go ``into'' the shape, default 0.3) and \texttt{angle} (the angle at which the base starts, default 70). @@ -4133,6 +4400,18 @@ In the case of \textsc{not}, there are only \texttt{in} and \texttt{out} (althou ;\end{circuitikz} \end{LTXexample} +This last circuit could be drawn also (and probably in a more natural manner) using the path-style components: + +\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] +\begin{circuitikz}[american] + \draw (0,0) node[ground]{} to[C] ++(0,1.5) + coordinate(c) + to[inline not] ++(2.5,0) -- ++(0,1) + -| ++(-5,-1) + to[inline not] (c); +\end{circuitikz} +\end{LTXexample} + @@ -5593,7 +5872,7 @@ Use option \texttt{americanvoltage} or set \verb![american voltages]! or use the \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. +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.4}) for the latter. \begin{LTXexample}[varwidth=true] \begin{circuitikz}[american voltages] @@ -5684,7 +5963,7 @@ This could be especially useful if you define a style, to use like this: \tikz \draw (0,0) to[C, i=$\imath$] (2,0); \end{LTXexample} -However, you can override the properties \texttt{voltage/distance from node} (how distant from the initial and final points of the path the arrow starts and ends) and \texttt{voltage/bump b} (how high the bump of the arrow is --- how curved it is)\footnote{Prior to 0.9.4 you had also \texttt{voltage/european label distance} (how distant from the bipole the voltage label will be) but this is deprecated, and the european-style label is printed near the bump)} on a per-component basis, in order to fine-tune the voltages: +However, you can override the properties \texttt{voltage/distance from node} (how distant from the initial and final points of the path the arrow starts and ends, default \texttt{0.5}) and \texttt{voltage/bump b} (how high the bump of the arrow is --- how curved it is, default \texttt{1.5}), and also \texttt{voltage/european label distance} (how distant from the ``bump'' the voltage label will be, default \texttt{1.4}) on a per-component basis, in order to fine-tune the voltages: \begin{LTXexample}[varwidth=true] @@ -6572,13 +6851,13 @@ If you think they are too tight or too loose you can use a (developer-only) key \begin{LTXexample}[varwidth] \begin{circuitikz} - \ctikzset{bipoles/viscoe/voltage/additional label shift/.initial=1} + \ctikzset{bipoles/viscoe/voltage/additional shift/.initial=1} \draw (0,0) to[spring] ++(2,0) to[viscoe, v=V] ++(2,0); \end{circuitikz} \end{LTXexample} -Notice that by default the key \texttt{bipoles/\emph{mybipole}/voltage/additional label shift} is not defined, so if you want to use it you must create it before (this is the meaning of the \texttt{.initial} here). +Notice that by default the key \texttt{bipoles/\emph{mybipole}/voltage/additional shift} is not defined, so if you want to use it you must create it before (this is the meaning of the \texttt{.initial} here). As a final note, notice that the \texttt{viscoe} element is already added to the standard package. -- cgit v1.2.3