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.tex321
1 files changed, 300 insertions, 21 deletions
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 port>{``not'' logic port}{}
+ \circuitdescbip*{inline buffer}<buffer port>{``buffer'' logic port}{}
+ \circuitdescbip*{inline schmitt}<schmitt port>{Schmitt logic port}{}
+ \circuitdescbip*{inline invschmitt}<invschmitt port>{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.