summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/circuitikz/doc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-12-23 03:00:28 +0000
committerNorbert Preining <norbert@preining.info>2019-12-23 03:00:28 +0000
commita1dedaefa2becaafcd09daa0489ec89a84908e34 (patch)
tree0ea567121e62ae07380883d54d5c2c295ecce47f /graphics/pgf/contrib/circuitikz/doc
parent00707dfd6ac16ef1f4dc0cf9512c42f2fd20ad35 (diff)
CTAN sync 201912230300
Diffstat (limited to 'graphics/pgf/contrib/circuitikz/doc')
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/changelog.tex30
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdfbin15492 -> 17620 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex3
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdfbin815539 -> 845023 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex261
5 files changed, 283 insertions, 11 deletions
diff --git a/graphics/pgf/contrib/circuitikz/doc/changelog.tex b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
index 463e72e5c6..a64775720a 100644
--- a/graphics/pgf/contrib/circuitikz/doc/changelog.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
@@ -5,6 +5,34 @@ full list of changes.
\begin{itemize}
\item
+ Version 1.0.0-pre1 (2019-12-22)
+
+ Last additions before the long promised 1.0! In this pre-release we
+ feature a flip-flop library, a revamped configurability of amplifiers
+ (and a new amplifier as a bonus) and some bug fix around the clock.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Added a flip-flop library
+ \item
+ Added a single-input generic amplifier with the same dimension as
+ ``plain amp''
+ \item
+ Added border anchors to amplifiers
+ \item
+ Added the possibility (expert only!) to add transparency to poles
+ (after a suggestion from user @matthuszagh on GitHub)
+ \item
+ Make plus and minus symbol on amplifiers configurable
+ \item
+ Adjusted the position of text in triangular amplifiers
+ \item
+ Fixed ``plain amp'' not respecting ``noinv input up''
+ \item
+ Fixed minor incompatibility with ConTeXt and Plain TeX
+ \end{itemize}
+\item
Version 0.9.7 (2019-12-01)
The important thing in this release is the new position of
@@ -25,7 +53,7 @@ full list of changes.
The highlights of this release are the new multiple terminals BJTs and
several stylistic addition and fixes; if you like to pixel-peep, you
- will like the fixed transistors arrows. Additionally, the transforms
+ will like the fixed transistors arrows. Additionally, the transformers
are much more configurable now, the ``pmos'' and ``nmos'' elements
have grown an optional bulk connection, and you can use the ``flow''
arrows outside of a path.
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
index 4149774548..34f8ec98c0 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
index aa752551d4..4b6ee8db0d 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
@@ -15,7 +15,8 @@ A simple example to test the installation.
to [generic, i=$i_1$, v=$v_1$] (4,-.5) -- (4,-1.5)
(0,2) -- (0,-1.5) to[V, v_=4\volt] (2,-1.5)
to [R, l=1\kilo\ohm] (4,-1.5)
- (5,2) node[dipchip, anchor=pin 1]{};
+ (5,2) node[dipchip, anchor=pin 1]{}
+ (5,-2) node[flipflop JK, anchor=pin 1]{};
\stopcircuitikz
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
index 4de70f73d5..1d2dc85a79 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
index e34526c6f8..af05238cc1 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
@@ -209,6 +209,8 @@ instead of \texttt{circuitikz}. This is also advantageous for ``future resilienc
So, if loaded with said option, one must write \verb!(0,0) to[*R] (2,0)! and, for transistors on a path, \verb!(0,0) to[*Tnmos] (2,0)!, and so on (but \verb!(0,0) node[nmos] {}!). See example at page~\pageref{ex:compatibility}.
+Another thing to take into account is that any \TikZ{} figure (and \Circuitikz{} ones qualify) \textbf{will} have problems if you use the \texttt{babel} package with a language that changes active characters (most of them). The solution is normally to add the line \verb|\usetikzlibrary{babel}| in your preamble, after loading \TikZ{} or \Circuitikz. This will normally solve the problem; some language also requires using \verb|\deactivatequoting| or the option \texttt{shorthands=off} for \texttt{babel}. Please check the documentation of \TikZ{} or this question \href{https://tex.stackexchange.com/questions/166772/problem-with-babel-and-tikz-using-draw}{on \TeX{} stackexchange site}.
+
\subsection{Known bugs and limitation}\label{sec:bugs}
\Circuitikz{} will \textbf{not work} correctly with global (in the main \texttt{circuitikz} environment, or in \texttt{scope} environments) \emph{negative} scale parameters (\texttt{scale}, \texttt{xscale} or \texttt{yscale}), unless \texttt{transform shape} is also used, and even in this cases the behavior is not guaranteed.
@@ -227,7 +229,7 @@ You can check the used version at your local installation using the macro \verb!
\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.
\item After v0.9.0: voltage and current directions/sign (plus and minus signs in case of \texttt{american voltages} and arrows in case of \texttt{european voltages} have been rationalized with a couple of new options (see details in section~\ref{curr-and-volt}. The default case is still the same as v0.8.3.
- \item Since v0.8.2: voltage and current label directions(v<= / i<=) do NOT change the orientation of the drawn source shape anymore. Use the "invert" option to rotate the shape of the source. Furthermore, from this version on, the current label(i=) at current sources can be used independent of the regular label(l=).
+ \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
@@ -297,8 +299,8 @@ Feel free to load the package with your own cultural options:
\item \texttt{europeanresistors}: uses rectangular empty shape for resistors, as per european standards;
\item \texttt{americanresistors}: uses zig-zag shape for resistors, as per american standards;
\item \texttt{europeaninductors}: uses rectangular filled shape for inductors, as per european standards;
- \item \texttt{americaninductors}: uses "4-bumps" shape for inductors, as per american standards;
- \item \texttt{cuteinductors}: uses my personal favorite, "pig-tailed" shape for inductors;
+ \item \texttt{americaninductors}: uses ``4-bumps'' shape for inductors, as per american standards;
+ \item \texttt{cuteinductors}: uses my personal favorite, ``pig-tailed'' shape for inductors;
\item \texttt{americanports}: uses triangular logic ports, as per american standards;
\item \texttt{europeanports}: uses rectangular logic ports, as per european standards;
\item \texttt{americangfsurgearrester}: uses round gas filled surge arresters, as per american standards;
@@ -897,10 +899,11 @@ Mirroring and flipping of node components is obtained by using the \TikZ\ keys \
\end{circuitikz}
\end{LTXexample}
-To simplify this task, \Circuitikz{} has three helper macros --- \verb|\ctikzflipx{}|, \verb|\ctikzflipy{}|,
+To simplify this task, \Circuitikz{} when used in \LaTeX{} has three helper macros --- \verb|\ctikzflipx{}|, \verb|\ctikzflipy{}|,
and \verb|\ctikzflipxy{}|, that can be used to ``un-rotate'' the text of nodes drawn with, respectively,
\texttt{xscale=-1}, \texttt{yscale=-1}, and \texttt{scale=-1} (which is equivalent to
\texttt{xscale=-1, yscale=-1}).
+In other formats they are undefined; contributions to fill the gap are welcome.
\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
\begin{circuitikz}[scale=0.7, transform shape]
@@ -2254,7 +2257,7 @@ Basically they are the same as the normal \texttt{npn} and \texttt{pnp}, and the
\circuitdesc{hemt}{hemt}{}
\end{groupdesc}
-\textsc{nfet}s and \textsc{pfet}s have been incorporated based on code provided by Clemens Helfmeier and Theodor Borsche. Use the package options \texttt{fetsolderdot}/\texttt{nofetsolderdot} to enable/disable solderdot at some fet-transistors. Additionally, the solderdot option can be enabled/disabled for single transistors with the option "solderdot" and "nosolderdot", respectm ively.
+\textsc{nfet}s and \textsc{pfet}s have been incorporated based on code provided by Clemens Helfmeier and Theodor Borsche. Use the package options \texttt{fetsolderdot}/\texttt{nofetsolderdot} to enable/disable solderdot at some fet-transistors. Additionally, the solderdot option can be enabled/disabled for single transistors with the option \texttt{solderdot} and \texttt{nosolderdot}, respectively.
\begin{groupdesc}
\circuitdesc{nfet}{nfet}{Q}
@@ -2362,7 +2365,7 @@ You can use the \texttt{body ...} anchors to add more or different things to the
\end{circuitikz}
\end{LTXexample}
-\paragraph{Base/Gate terminal.} The Base/Gate connection of all transistors can be disabled by the options \textit{nogate} or \textit{nobase}, respectively. The Base/Gate anchors are floating, but there is an additional anchor "nogate"/"nobase", which can be used to point to the unconnected base:
+\paragraph{Base/Gate terminal.} The Base/Gate connection of all transistors can be disabled by the options \textit{nogate} or \textit{nobase}, respectively. The Base/Gate anchors are floating, but there is an additional anchor \texttt{nogate}/\texttt{nobase} , which can be used to point to the unconnected base:
\begin{LTXexample}[varwidth=true]
\begin{circuitikz}
\draw (2,0) node[npn,nobase](npn){};
@@ -3080,8 +3083,9 @@ Remember that the default \texttt{pgfkeys} directory is \texttt{/tikz} for nodes
\circuitdesc*{inst amp}{plain instrumentation amplifier}{}( up/90/0.2, down/-90/0.2, refv up/45/0.2, refv down/-45/0.2 )
\circuitdesc*{fd inst amp}{Fully differential instrumentation amplifier}{}
\circuitdesc*{inst amp ra}{instrumentation amplifier with amplification resistance terminals}{}( ra+/180/0.1, ra-/180/0.1 )
- \circuitdesc*{plain amp}{Plain amplifier}{}(+/180/0.2, -/180/0.2, out/0/0.2, up/90/0.2)
- \circuitdesc*{buffer}{Buffer}{}(in/180/0.2, out/0/0.2)
+ \circuitdesc*{plain amp}{Plain amplifier, unmarked, two inputs}{}(in up/180/0.1, in down/180/0.1, up/90/0.2, out/0/0.2, bin up/145/0.2, bin down/-145/0.2, bout/45/0.3)
+ \circuitdesc*{plain mono amp}{Plain amplifier, one input}{}(in/180/0.2, out/0/0.2, up/90/0.2, center/-30/0.6, bin/145/0.1, bout/45/0.3)
+ \circuitdesc*{buffer}{Buffer}{}(in/180/0.2, out/0/0.2, center/-30/0.6, bin/145/0.1, bout/45/0.3)
\end{groupdesc}
\subsubsection{Amplifiers anchors}
@@ -3124,7 +3128,7 @@ The fully differential op amp defines two outputs:
;\end{circuitikz}
\end{LTXexample}
-The instrumentation amplifier inst amp defines also references (normally you use the "down", unless you are flipping the component):
+The instrumentation amplifier inst amp defines also references (normally you use the \texttt{down}, unless you are flipping the component):
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
(0,0) node[inst amp] (opamp) {}
@@ -3168,6 +3172,21 @@ The instrumentation amplifier with resistance terminals (\texttt{inst amp ra}) d
;\end{circuitikz}
\end{LTXexample}
+Amplifiers have also ``border'' anchors (just add \texttt{b}, without space, to the anchor, like \texttt{b+} or \texttt{bin up} and so on). These can be useful to add ``internal components'' or to modify the component. Also the \texttt{leftedge} anchors (on the border midway between input) is available.
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[]
+ \draw (0,2.2) node[op amp](OA){IA1};
+ \node[oosourceshape, rotate=90, scale=0.5]
+ at (OA.leftedge) {};
+ \draw (0,0) node[plain amp](A){$A$};
+ \draw [color=red] (A.bin up) -- ++(0.2,0)
+ coordinate (tmp)
+ to[R, resistors/scale=0.5]
+ (tmp|-A.bin down) -- (A.bin down);
+\end{circuitikz}
+\end{LTXexample}
+
\subsubsection{Amplifiers customization}
You can scale the amplifiers using the key \texttt{amplifiers/scale} and setting it to something different from \texttt{1.0}. The font used for symbols will not scale, so it's your responsibility to change it if the need arises.
@@ -3192,6 +3211,43 @@ All these amplifier have the possibility to flip input and output (if needed) po
When you use the \texttt{noinv input/output ...} keys the anchors (\texttt{+}, \texttt{-}, \texttt{out +}, \texttt{out -}) will change with the effective position of the terminals. You have also the anchors \texttt{in up}, \texttt{in down}, \texttt{out up}, \texttt{out down} that will not change with the positive or negative sign.
+You can change the symbols ``$+$'' or ``$-$'' appearing in the amplifiers if you want, both globally and on component-by-component basis. The plus and minus symbols can be changed with \verb|\ctikzset| of the keys \texttt{amplifiers/plus} and +\texttt{amplifiers/minus} (which defaults to the math mode plus or minus cited before), or using the styles \texttt{amp plus} and \texttt{amp minus}.
+
+The font used is set in several keys, but you can change it globally with \verb|\tikzset{amp symbol font}|, which has a default of 10-point (in \LaTeX, and the corresponding one in \ConTeXt). You can change it for example with
+\begin{lstlisting}
+ \tikzset{amp symbol font={%
+ \color{blue}\fontsize{12}{12}\selectfont\boldmath}}
+\end{lstlisting}
+to have plus and minus symbols that are bigger and blue.
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[]
+ % change in this circuit only
+ \tikzset{amp symbol font={\color{blue}\small\boldmath}}
+ % local change
+ \draw (0,2.2) node[op amp, amp plus=$\oplus$]{};
+ \draw (0,0) node[op amp]{};
+ % from now on...
+ \ctikzset{amplifiers/plus={$\oplus$}}
+ \ctikzset{amplifiers/minus={$\ominus$}}
+ \draw (0,-2.2) node[fd op amp]{};
+\end{circuitikz}
+\end{LTXexample}
+
+If you want different symbols for input and output you can use a null symbol and put them manually using the border anchors.
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[]
+ \ctikzset{amplifiers/plus={}}
+ \ctikzset{amplifiers/minus={}}
+ \draw (0,0) node[fd op amp](A){};
+ \node [font=\small\bfseries, right] at(A.bin up) {1};
+ \node [font=\small\bfseries, right] at(A.bin down) {2};
+ \node [font=\small\bfseries, below] at(A.bout up) {3};
+ \node [font=\small\bfseries, above] at(A.bout down) {4};
+\end{circuitikz}
+\end{LTXexample}
+
\paragraph{European-style amplifier customization}
Thanks to the suggestions from David Rouvel (\email{david.rouvel@iphc.cnrs.fr}) there are several possible customization for the European-style amplifiers.
@@ -3749,7 +3805,170 @@ In the case of \textsc{not}, there are only \texttt{in} and \texttt{out} (althou
;\end{circuitikz}
\end{LTXexample}
+\subsection{Flip-flops}\label{sec:flipflops}
+
+Flip-flops are an hybrid between the logic ports and the chips. They have a class by themselves (\texttt{flipflops}) but the default parameters are set at the same values as the logic gates one.
+
+The default flip flop is empty: it is just a rectangular box like a blank \texttt{dipchip} with 6 pins.
+\begin{groupdesc}
+ \circuitdesc*{flipflop}{Blank (void) flip flop}{FF}(
+ pin 1/180/0.2, pin 2/180/0.2, pin 3/180/0.2,
+ bpin 1/120/0.3, bpin 6/60/0.3, up/90/0.2, down/-90/0.2, bup/30/0.2, bdown/-30/0.2,
+ pin 6/0/0.2, pin 5/0/0.2, pin 4/0/0.2)
+\end{groupdesc}
+
+As you can see, in a void flip flop no external pins are drawn: you have to define the meaning of each of them to see them.
+To define a specific flip-flop, you have to set a series of keys under the \verb|\ctikzset| directory \texttt{multipoles/flipflop/}, corresponding to pins \texttt{1}\dots \texttt{6}, \texttt{u} for ``up'' and \texttt{d} for ``down'':
+\begin{itemize}
+ \item a \emph{text} value \texttt{t0}, \texttt{t1}, \dots \texttt{t6}, and \texttt{tu} and \texttt{td} (the last ones for up and down) which will set a label on the pin;
+ \item a \emph{clock wedge} flag (\texttt{c0}, \dots \texttt{c6}, \texttt{cu}, \texttt{cd}), with value \texttt{0} or \texttt{1}, which will draw a triangle shape on the border of the correspondig pin;
+ \item a \emph{negation} flag (\texttt{n0}, \dots \texttt{n6}, \texttt{nu}, \texttt{nd}), with value \texttt{0} or \texttt{1}, which will put and \texttt{ocirc} shape on the outer border of the correspondig pin.
+\end{itemize}
+
+To set all this keys, an auxiliary style \texttt{flipflop def} is defined, so that you can do the following thing:
+
+\begingroup
+\tikzset{flipflop AB/.style={flipflop,
+ flipflop def={t1=A, t3=B, t6=Q, t4={\ctikztextnot{Q}},
+ td=rst, nd=1, c2=1, n2=1, t2={\texttt{CLK}}},
+}}
+
+\begin{lstlisting}
+\tikzset{flipflop AB/.style={flipflop,
+ flipflop def={t1=A, t3=B, t6=Q, t4={\ctikztextnot{Q}},
+ td=rst, nd=1, c2=1, n2=1, t2={\texttt{CLK}}},
+}}
+\end{lstlisting}
+
+to obtain:
+
+\begin{groupdesc}
+ \circuitdesc*{flipflop AB}{Example custom flip flop}{}(
+ pin 1/180/0.2, pin 2/180/0.2, pin 3/180/0.2,
+ bpin 1/120/0.3, bpin 6/60/0.3, down/-90/0.2, bdown/-30/0.2,
+ pin 6/0/0.2)
+\end{groupdesc}
+\endgroup
+
+\verb|\ctikztextnot{}| is a small utility macro to set a overbar to a text, like \ctikztextnot{RST} (created by \verb|\ctikztextnot{RST}|).
+
+
+By default, the following flip-flops are defined:
+\begin{groupdesc}
+ \circuitdesc*{latch}{D-type latch}{}
+ \circuitdesc*{flipflop SR}{flip-flop SR}{}
+ \circuitdesc*{flipflop D}{Edge-triggered synchronous flip-flop D}{}
+ \circuitdesc*{flipflop T}{Edge-triggered synchronous flip-flop T}{}
+ \circuitdesc*{flipflop JK}{Edge-triggered synchronous flip-flop JK}{}
+\end{groupdesc}
+
+If you prefer that the negated output is labelled \texttt{Q} and a dot indicating negation is shown, you can add the \texttt{dot on notQ} key:
+
+\begin{groupdesc}
+ \circuitdesc*{flipflop JK, dot on notQ}{synchronous flip-flop JK with asynchronous set and reset}{}
+\end{groupdesc}
+
+You can also add ``vertical'' asynchronous set and reset (active low) adding the style \texttt{add async SR} to all of them:
+
+\begin{groupdesc}
+ \circuitdesc*{flipflop JK, add async SR}{synchronous flip-flop JK with asynchronous set and reset}{}
+\end{groupdesc}
+
+\subsubsection{Custom flip-flops}
+
+If you like different pin distributions, you can easily define different flip-flops to your taste. For example, somebody likes the clock pin on the bottom pin:
+
+\begingroup
+\tikzset{flipflop myJK/.style={flipflop,
+ flipflop def={t1=J, t2=K, t6=Q, t4={\ctikztextnot{Q}}, c3=1}}
+}
+
+\begin{lstlisting}
+\tikzset{flipflop myJK/.style={flipflop,
+ flipflop def={t1=J, t2=K, t6=Q, t4={\ctikztextnot{Q}}, c3=1}}
+}
+\end{lstlisting}
+
+\begin{groupdesc}
+ \circuitdesc*{flipflop myJK}{Example custom flip flop}{}
+\end{groupdesc}
+\endgroup
+
+The standard definition of the default flip-flops are the following (you can find them in the file \texttt{pgfcircmultipoles.tex}):
+
+\begin{lstlisting}[basicstyle=\small\ttfamily]
+\tikzset{
+ % async
+ latch/.style={flipflop, flipflop def={t1=D, t6=Q, t3=CLK, t4=\ctikztextnot{Q}}},
+ flipflop SR/.style={flipflop, flipflop def={t1=S, t3=R, t6=Q, t4=\ctikztextnot{Q}}},
+ % sync
+ flipflop D/.style={flipflop, flipflop def={t1=D, t6=Q, c3=1, t4=\ctikztextnot{Q}}},
+ flipflop T/.style={flipflop, flipflop def={t1=T, t6=Q, c3=1, t4=\ctikztextnot{Q}}},
+ flipflop JK/.style={flipflop,
+ flipflop def={t1=J, t3=K, c2=1, t6=Q, t4=\ctikztextnot{Q}}},
+ % additional features
+ add async SR/.style={flipflop def={%
+ tu={\ctikztextnot{SET}}, td={\ctikztextnot{RST}}}},
+ dot on notQ/.style={flipflop def={t4={Q}, n4=1}},
+}
+\end{lstlisting}
+
+
+\subsubsection{Flip-flops anchors}
+
+Flip-flops have all the standard geometrical anchors, although it should be noticed that the external pin are \emph{outside} them. The pins are accessed by the number \texttt{1} to \texttt{6} for the lateral ones (like in DIP chips), and with the \texttt{up} and \texttt{down} anchors for the top and bottom one. All the pins have the ``border'' variant (add a \texttt{b} in front of them, no spaces).
+
+\begin{quote}
+ \geocoord{flipflop JK}\qquad
+ \showanchors{flipflop JK, add async SR, external pins width=0.5}{}(%
+ pin 1/180/0.5, pin 2/180/0.5, pin 3/180/0.5,
+ up/90/0.2, down/-90/0.2,
+ pin 6/0/0.5, pin 5/0/0.5, pin 4/0/0.5,
+ bpin 1/120/0.3, bpin 2/135/0.3, bpin 3/-120/0.2,
+ bup/30/0.3, bdown/-30/0.3,
+ bpin 6/60/0.3, bpin 5/30/0.3, bpin 4/-30/0.4)
+\end{quote}
+
+If you have negated pins, you can access the \texttt{ocirc} shapes with the name as \texttt{\textsl{<nodename>}-N\textsl{<pin number>}}, and all the respective anchors (for example --- \verb|myFFnode-N4.west|).
+
+\subsubsection{Flip-flops customization}
+
+
+Flip-flop's size is controlled by the class parameters (like \texttt{flipflops/scale}) and the specific \verb|\ctikzset| keys \texttt{multipoles/flipflop/width} and \texttt{multipoles/flipflop/pin spacing}. Class parameters are also used for line thickness and fill color. The default values are matched with the logic ports ones.
+
+The fonts used for the pins \texttt{1}\dots \texttt{6} is set by the key \texttt{multipoles/flipflop/font} (by default \verb|\small| in \LaTeX{} and the equivalent in other formats) and the font used for pins \texttt{u} and \texttt{d} is \texttt{multipoles/flipflop/fontud} (\verb|\tiny| by default).
+You can change it globally or specifically for each flip flop.
+
+As in chips, you can change the length of the external pin with the key \texttt{external pins width}; you can for example have a pinless flip-flop like this:
+
+\begin{groupdesc}
+ \circuitdesc*{flipflop JK, add async SR, external pins width=0}{synchronous flip-flop JK}{}
+\end{groupdesc}
+
+Notice however that negated pins when the pins width is zero has to be handled with care. As explained in the poles sections, the \texttt{ocirc} shape is drawn at the end of the shape to cancel out the wires below; so if you use a pinless flipflop when you do the connection you should take care of connecting the symbol correctly. To this end, the shapes of the negation circles are made available as \texttt{\textsl{<nodename>}-N\textsl{<pin number>}}, as you can see in the next (contrived) example.
+
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}[scale=3, transform shape]
+ \clip (0.2,0.5) rectangle (1.2,-1.3);
+ \node [flipflop JK,
+ flipflop def={n5=1,n4=1,t5={/c},c5=1},
+ external pins width=0,
+ ](A){};
+ \draw (A-N5.east) -- ++(1,0); % correct
+ \draw (A.pin 4) -- ++(1,0); % wrong
+\end{circuitikz}
+\end{LTXexample}
+
+Normally the symbols on the flip-flop are un-rotated when you rotate the symbol, but as in case of chips, you can avoid it.
+\begin{LTXexample}[pos=t]
+\begin{tikzpicture}
+ \draw (0,0) node[flipflop JK, add async SR]{};
+ \draw (3,0) node[flipflop JK, add async SR, rotate=90]{};
+ \draw (7,0) node[flipflop JK, add async SR, rotate=90, rotated numbers]{};
+\end{tikzpicture}
+\end{LTXexample}
\subsection{Chips (integrated circuits)}
@@ -4940,6 +5159,30 @@ There are several predefined shorthand as the above; in the following pages you
\draw (0,0) to[R, d-*] (2,0);
\end{circuitikz}
\end{LTXexample}
+
+\subsubsection{Transparent poles}
+
+``Open-poles'' terminals (\texttt{ocirc}, \texttt{odiamondpole}, and \texttt{osquarepole}) are normally filled with the background color at full opacity. This is because, for simplicity of operation, the nodes are placed \emph{after} the wires are drawn and have to ``white-out'' the underlying lines.
+
+Anyway, \emph{if you know what you are doing}, you can change it with the key \texttt{poles/open fill opacity} (with \verb|\ctikzset|) or the style \texttt{open poles opacity}. Notice that you will have artifacts if you don't use the border anchors of the poles to connect wires, and you need to do that by hand.
+
+\begin{LTXexample}[pos=t, basicstyle=\small\ttfamily]
+\begin{circuitikz}[scale=3, transform shape]
+ \fill[cyan] (0,0) rectangle (4.1,-0.6);
+ \tikzset{halfwhite/.style={fill opacity=0.5, fill=white, open poles opacity=0.5}}
+ % automatic positioning when opacity is not 1.0 creates artifacts
+ \draw[halfwhite] (0,0) to[generic, -o] ++(2,0) --++(0,-0.5);
+ % you have to use manual positioning
+ \draw[halfwhite] (2.2,0) -- ++(0.5,0) node[ocirc, anchor=180]{};
+ \draw[halfwhite] (3,0) node[ocirc](B){} (B.0) --++(0.5,0) (B.-90) --++(0,-0.5);
+ % maybe really useful only for terminals going out of the circuit...
+ \draw (3.6,0) -- ++(0.2,0) node[ocirc, halfwhite, anchor=180]{};
+\end{circuitikz}
+\end{LTXexample}
+
+You also have the similar keys for the ``full'' poles (albeit they are probably not useful at all).
+
+
\subsection{Mirroring and Inverting}
Bipole paths can also mirrored and inverted (or reverted) to change the drawing direction.