texlive[51634] Master/texmf-dist: circuitikz (13jul19)

commits+karl at tug.org commits+karl at tug.org
Sat Jul 13 23:39:36 CEST 2019


Revision: 51634
          http://tug.org/svn/texlive?view=revision&revision=51634
Author:   karl
Date:     2019-07-13 23:39:36 +0200 (Sat, 13 Jul 2019)
Log Message:
-----------
circuitikz (13jul19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
    trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
    trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
    trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
    trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircmonopoles.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircmultipoles.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex
    trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex
    trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty

Modified: trunk/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md	2019-07-13 21:39:36 UTC (rev 51634)
@@ -1,6 +1,11 @@
 <!--- CircuiTikz - Changelog --->
 The major changes among the different circuitikz versions are listed here. See <https://github.com/circuitikz/circuitikz/commits> for a full list of changes.
 
+* Version 0.9.3 (2019-07-13)
+    - Added the option to have "dotless" P-MOS (to use with arrowmos option)
+    - Fixed a (puzzling) problem with coupler2
+    - Fixed a compatibility problem with newer PGF (>3.0.1a)
+
 * Version 0.9.2 (2019-06-21)
     - (hopefully) fixed ConTeXt compatibility. Most new functionality is not tested; testers and developers for the ConTeXt side are needed.
     - Added old ConTeXt version for 0.8.3

Modified: trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex	2019-07-13 21:39:36 UTC (rev 51634)
@@ -6,6 +6,19 @@
 \begin{itemize}
 \tightlist
 \item
+  Version 0.9.3 (2019-07-13)
+
+  \begin{itemize}
+  \tightlist
+  \item
+    Added the option to have ``dotless'' P-MOS (to use with arrowmos
+    option)
+  \item
+    Fixed a (puzzling) problem with coupler2
+  \item
+    Fixed a compatibility problem with newer PGF (\textgreater{}3.0.1a)
+  \end{itemize}
+\item
   Version 0.9.2 (2019-06-21)
 
   \begin{itemize}

Modified: trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex	2019-07-13 21:39:36 UTC (rev 51634)
@@ -320,10 +320,10 @@
             \begin{itemize}
                 \item \texttt{oldvoltagedirection}: Use old way of voltage direction having a difference between european and american direction, with wrong default labelling for batteries;
                 \item \texttt{nooldvoltagedirection}: The standard from 0.5 onward, utilize the (German?) standard of voltage arrows in the  direction of electric fields (without fixing batteries);
-                \item \texttt{RPvoltages} (meaning Rising Potential voltages): the arrow is in direction of rising potential, like in \texttt{oldvoltagedirections}, but batteries and current sources are fixed to follow the passive/active standard;
-                \item \texttt{EFvoltages} (meaning Electric Field voltages): the arrow is in direction of the electric field, like in \texttt{nooldvoltagedirections}, but batteries are fixed;
+                \item \texttt{RPvoltages} (meaning Rising Potential voltages): the arrow is in direction of rising potential, like in \texttt{oldvoltagedirection}, but batteries and current sources are fixed to follow the passive/active standard;
+                \item \texttt{EFvoltages} (meaning Electric Field voltages): the arrow is in direction of the electric field, like in \texttt{nooldvoltagedirection}, but batteries are fixed;
             \end{itemize}
-            If none of these option are given, the package will default to \texttt{nooldvoltagedirections}, but will give a warning. The behavior is also selectable circuit by circuit with the \texttt{voltage dir} style.
+            If none of these option are given, the package will default to \texttt{nooldvoltagedirection}, but will give a warning. The behavior is also selectable circuit by circuit with the \texttt{voltage dir} style.
         \item \texttt{betterproportions}\footnote{May change in the future!}: nicer proportions of transistors in comparision to resistors;
     \end{itemize}
 
@@ -1579,17 +1579,17 @@
 \subsection{Transistors}
 
 \begin{groupdesc}
-    \circuitdesc{nmos}{\scshape nmos}{}( G/180/0.2,D/0/0.2,S/0/0.2 )
-    \circuitdesc{pmos}{\scshape pmos}{}
-    \circuitdesc{hemt}{\scshape hemt}{}
-    \circuitdesc{npn}{\scshape npn}{}( B/180/0.2,C/0/0.2,E/0/0.2 )
-    \circuitdesc{pnp}{\scshape pnp}{}
-    \circuitdesc{npn,photo}{\scshape npn}{}( nobase/0/0.4 )
-    \circuitdesc{pnp,photo}{\scshape pnp}{}
-    \circuitdesc{nigbt}{\scshape nigbt}{}
-    \circuitdesc{pigbt}{\scshape pigbt}{}
-    \circuitdesc{Lnigbt}{\scshape Lnigbt}{}
-    \circuitdesc{Lpigbt}{\scshape Lpigbt}{}
+    \circuitdesc{nmos}{nmos}{}( G/180/0.2,D/0/0.2,S/0/0.2 )
+    \circuitdesc{pmos}{pmos}{}
+    \circuitdesc{hemt}{hemt}{}
+    \circuitdesc{npn}{npn}{}( B/180/0.2,C/0/0.2,E/0/0.2 )
+    \circuitdesc{pnp}{pnp}{}
+    \circuitdesc{npn,photo}{npn}{}( nobase/0/0.4 )
+    \circuitdesc{pnp,photo}{pnp}{}
+    \circuitdesc{nigbt}{nigbt}{}
+    \circuitdesc{pigbt}{pigbt}{}
+    \circuitdesc{Lnigbt}{Lnigbt}{}
+    \circuitdesc{Lpigbt}{Lpigbt}{}
 \end{groupdesc}
 
 For all transistors a body diode (or freewheeling diode) can automatically be drawn. Just use the global option bodydiode, or for single transistors, the tikz-option bodydiode:
@@ -1614,19 +1614,39 @@
 \end{LTXexample}
 
 If the option \texttt{arrowmos} is used (or after the command \verb!\ctikzset{tripoles/mos style/arrows}! is given), this is the output:
-\ctikzset{tripoles/mos style/arrows}
 \begin{groupdesc}
-	\circuitdesc{nmos}{\scshape nmos}{}
-	\circuitdesc{pmos}{\scshape pmos}{}
+        \ctikzset{tripoles/mos style/arrows}
+	\circuitdesc{nmos}{nmos}{}
+	\circuitdesc{pmos}{pmos}{}
 \end{groupdesc}
-\ctikzset{tripoles/mos style/no arrows}
+
+You can go back to the no-arrows mos with \texttt{noarrowmos} locally or with
+\texttt{\textbackslash ctikzset\{tripoles/mos style/no arrows\}}.
+
 To draw the PMOS circle non-solid, use the option \texttt{emptycircle} or the command
-\\\verb!\ctikzset{tripoles/pmos style/emptycircle}!.
+\\\verb!\ctikzset{tripoles/pmos style/emptycircle}!. To remove the dot completely (only useful if you have \texttt{arrowmos} enabled, otherwise ther ewill be no difference between P-MOS and N-MOS), you can use the option \texttt{nocircle} or \verb|\ctikzset{tripoles/pmos style/nocircle}|.
 
 \begin{groupdesc}
-    \circuitdesc{pmos,emptycircle}{\scshape pmos}{}
+    \circuitdesc{pmos,emptycircle}{pmos}{}
+    \circuitdesc{pmos,nocircle,arrowmos}{pmos}{}
 \end{groupdesc}
 
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}[
+    info/.style={left=1cm, blue, text width=5em, align=right},]
+    \draw (0,1) node{pmos} (2,1) node{nmos};
+    \draw (0,0) node[info]{default} node[pmos]{} (2,0) node[nmos]{};
+    \ctikzset{tripoles/mos style/arrows}
+    \draw (0,-2) node[info]{arrows} node[pmos]{} (2,-2) node[nmos]{};
+    \ctikzset{tripoles/pmos style/emptycircle}
+    \draw (0,-4) node[info]{emptycircle} node[pmos]{} (2,-4) node[nmos]{};
+    \ctikzset{tripoles/pmos style/nocircle}
+    \draw (0,-6) node[info]{nocircle} node[pmos]{} (2,-6) node[nmos]{};
+    \ctikzset{tripoles/mos style/no arrows}
+    \draw (0,-8) node[info, red]{no circle, no arrows, DON'T do it}
+          node[pmos]{} (2,-8) node[nmos]{};
+\end{circuitikz}\end{LTXexample}
+
 If you prefer a different position of the arrows in transistors and FETs, you can adjust them like this (it works for the other BJT-based transistors, too):
 \begin{LTXexample}[varwidth=true]
 \begin{circuitikz}
@@ -1647,26 +1667,26 @@
 
 
 \begin{groupdesc}
-    \circuitdesc{nfet}{\scshape nfet}{}
-    \circuitdesc{nigfete}{\scshape nigfete}{}
-    \circuitdesc{nigfete,solderdot}{\scshape nigfete}{}
-    \circuitdesc{nigfetebulk}{\scshape nigfetebulk}{}
-    \circuitdesc{nigfetd}{\scshape nigfetd}{}
-    \circuitdesc{pfet}{\scshape pfet}{}
-    \circuitdesc{pigfete}{\scshape pigfete}{}
-    \circuitdesc{pigfetebulk}{\scshape pigfetebulk}{}
-    \circuitdesc{pigfetd}{\scshape pigfetd}{}
+    \circuitdesc{nfet}{nfet}{}
+    \circuitdesc{nigfete}{nigfete}{}
+    \circuitdesc{nigfete,solderdot}{nigfete}{}
+    \circuitdesc{nigfetebulk}{nigfetebulk}{}
+    \circuitdesc{nigfetd}{nigfetd}{}
+    \circuitdesc{pfet}{pfet}{}
+    \circuitdesc{pigfete}{pigfete}{}
+    \circuitdesc{pigfetebulk}{pigfetebulk}{}
+    \circuitdesc{pigfetd}{pigfetd}{}
 \end{groupdesc}
 
 \textsc{njfet} and \textsc{pjfet} have been incorporated based on code provided by Danilo Piazzalunga:
 \begin{groupdesc}
-    \circuitdesc{njfet}{\scshape njfet}{}
-    \circuitdesc{pjfet}{\scshape pjfet}{}
+    \circuitdesc{njfet}{njfet}{}
+    \circuitdesc{pjfet}{pjfet}{}
 \end{groupdesc}
 
 \textsc{isfet}
 \begin{groupdesc}
-    \circuitdesc{isfet}{\scshape isfet}{}
+    \circuitdesc{isfet}{isfet}{}
 \end{groupdesc}
 
 \subsubsection{Transistors anchors}
@@ -1785,11 +1805,17 @@
 
 \begin{groupdesc}
 	\circuitdesc*{diodetube}{Tube Diode}{}(anode/90/0.2, cathode/-90/0.2 )
-	\circuitdesc*{triode}{Triode}{}(anode/90/0.2, cathode/-90/0.2, grid/180/0.2 )
-	\circuitdesc*{tetrode}{Tetrode}{}(anode/90/0.2, cathode/-90/0.2, grid/190/0.2,screen/170/0.2 )
-	\circuitdesc*{pentode}{Pentode}{}(anode/90/0.2, cathode/-90/0.2, grid/190/0.2,screen/180/0.2,suppressor/170/0.2 )
+	\circuitdesc*{triode}{Triode}{}(anode/90/0.2, cathode/-90/0.2, control/180/0.2 )
+	\circuitdesc*{tetrode}{Tetrode}{}(anode/90/0.2, cathode/-90/0.2, control/190/0.2,screen/170/0.2 )
+	\circuitdesc*{pentode}{Pentode}{}(anode/90/0.2, cathode/-90/0.2, control/190/0.2,screen/180/0.2,suppressor/170/0.2 )
 \end{groupdesc}
 
+Some pentodes have the suppressor grid internally connected to the control grid, which saves a pin on the tube's housing.
+
+\begin{groupdesc}
+	\circuitdesc*{pentode suppressor to cathode}{Pentode with suppressor grid connected to cathode}{}( anode/90/0.2, cathode/-90/0.2, control/190/0.2,screen/180/0.2 )
+\end{groupdesc}
+
 Note that the \verb|diodetube| is used as component name to avoid clashes with the semiconductor diode.
 Normally, the filament is not drawn. If you want a filament, put the \verb|filament| option in the node description:
 
@@ -1853,7 +1879,7 @@
                 to[C=$C_i$] ++(2,0) node (Rg) {}
                 to[R=$R_g$] (Rg |- start)
 (Rg)            to[short,*-] ++(1,0)
-                node[triode,anchor=grid] (Tri) {} ++(2,0)
+                node[triode,anchor=control] (Tri) {} ++(2,0)
 (Tri.cathode)   to[R=$R_c$,-*] (Tri.cathode |- start)
 (Tri.anode)     to [R=$R_a$] ++(0,2)
                 to [short] ++(3.5,0) node(Vatop) {}
@@ -1874,7 +1900,7 @@
                 to[C=$C_i$] ++(2,0) node (Rg) {}
                 to[R=$R_g$] (Rg |- start)
 (Rg)            to[short,*-] ++(1,0)
-                node[triode,anchor=grid] (Tri) {} ++(2,0)
+                node[triode,anchor=control] (Tri) {} ++(2,0)
 (Tri.cathode)   to[R=$R_c$,-*] (Tri.cathode |- start)
 (Tri.anode)     to [R=$R_a$] ++(0,2)
                 to [short] ++(3.5,0) node(Vatop) {}
@@ -3286,13 +3312,14 @@
 \begin{itemize}
     \item \texttt{oldvoltagedirection}, or the key style \texttt{voltage dir=old}: Use old way of voltage direction having a difference between european and american direction, with wrong default labelling for batteries (it was the default before version 0.5);
     \item \texttt{nooldvoltagedirection}, or the key style \texttt{voltage dir=noold}: The standard from version 0.5 onward, utilize the (German?) standard of voltage arrows in the  direction of electric fields (without fixing batteries);
-    \item \texttt{RPvoltages} (meaning Rising Potential voltages), or the key style \texttt{voltage dir=RP}: the arrow is in direction of rising potential, like in \texttt{oldvoltagedirections}, but batteries and current sources are fixed so that they follow the passive/active standard: the default direction of \texttt{v} and \texttt{i} are chosen so that, when both values are positive:
+    \item \texttt{RPvoltages} (meaning Rising Potential voltages), or the key style \texttt{voltage dir=RP}: the arrow is in direction of rising potential, like in \texttt{oldvoltagedirection}, but batteries and current sources are fixed so that they follow the passive/active standard: the default direction of \texttt{v} and \texttt{i} are chosen so that, when both values are positive:
         \begin{itemize}
             \item in passive component, the element is \emph{dissipating power};
             \item in active components (generators), the element is \emph{generating power}.
         \end{itemize}
-    \item \texttt{EFvoltages} (meaning Electric Field voltages), or the key style \texttt{voltage dir=EF}: the arrow is in direction of the electric field, like in \texttt{nooldvoltagedirections}, but batteries are fixed;
+    \item \texttt{EFvoltages} (meaning Electric Field voltages), or the key style \texttt{voltage dir=EF}: the arrow is in direction of the electric field, like in \texttt{nooldvoltagedirection}, but batteries are fixed;
 \end{itemize}
+Notice that the four styles are designed to be used at the environment level: that is, you should use them at the start of your environment as in \verb|\begin{circuitikz}[voltage dir=old] ...| and not as a key for single components, in which case the behaviour is not guaranteed.
 
 The standard direction of currents, flows and voltages are changed by these options; notice that the default drops in case of passive and active elements is normally different. Take care that in the case of \texttt{noold} and \texttt{EFvoltages} also the currents can switch directions. It is much easier to understand the several behaviors by looking at the following examples, that have been generated by the code:
 
@@ -3717,7 +3744,7 @@
 \tikz \draw (0,0) to[C, i=$\imath$] (2,0);
 \end{LTXexample}
 
-\noindent However, you can override the properties \verb!voltage/distance from node!\footnote{That is, how distant from the initial and final points of the path the arrow starts and ends.}, \verb!voltage/bump b!\footnote{Controlling how high the bump of the arrow is --- how curved it is.} and \verb!voltage/european label distance!\footnote{Controlling how distant from the bipole the voltage label will be.} on a per-component basis, in order to fine-tune the voltages:
+\noindent However, you can override the properties \texttt{voltage/distance from node}\footnote{That is, how distant from the initial and final points of the path the arrow starts and ends.}, \texttt{voltage/bump b}\footnote{Controlling how high the bump of the arrow is --- how curved it is.} and \texttt{voltage/european label distance}\footnote{Controlling how distant from the bipole the voltage label will be.} on a per-component basis, in order to fine-tune the voltages:
 
 \begin{LTXexample}[varwidth=true]
 \tikz \draw (0,0) to[R, v=1<\volt>] (1.5,0)
@@ -3760,7 +3787,7 @@
 \end{circuitikz}
 \end{LTXexample}
 
-You can define shortcuts for the \texttt{bipole bodes} you use most; for example if you want a shortcut for a bipole with open square node in red in the right side you can:
+You can define shortcuts for the \texttt{bipole nodes} you use most; for example if you want a shortcut for a bipole with open square node in red in the right side you can:
 
 \begin{LTXexample}[varwidth=true,
         basicstyle=\small\ttfamily

Modified: trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
===================================================================
--- trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex	2019-07-13 21:39:36 UTC (rev 51634)
@@ -1,5 +1,5 @@
-\def\pgfcircversion{0.9.2}
-\def\pgfcircversiondate{2019/06/21}
+\def\pgfcircversion{0.9.3}
+\def\pgfcircversiondate{2019/07/13}
 \writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
 
 \usemodule[tikz]

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirc.defines.tex	2019-07-13 21:39:36 UTC (rev 51634)
@@ -1,6 +1,8 @@
+%% Counters
 
-%% Options
-
+\newcount\pgf at circ@count at a
+\newcount\pgf at circ@count at b
+\newcount\pgf at circ@count at c
 %%%%%%%%%%%%
 %% Dimensions
 
@@ -427,6 +429,8 @@
 \ctikzset{tripoles/mos style/.is choice}
 \ctikzset{tripoles/mos style/no arrows/.code={\pgf at circuit@mos at arrowsfalse}}
 \ctikzset{tripoles/mos style/arrows/.code={\pgf at circuit@mos at arrowstrue}}
+\pgfkeys{/tikz/arrowmos/.add code={}{\pgf at circuit@mos at arrowstrue}}
+\pgfkeys{/tikz/noarrowmos/.add code={}{\pgf at circuit@mos at arrowsfalse}}
 
 % Option solderdot for fet
 \newif\ifpgf at circuit@fet at solderdot
@@ -468,10 +472,17 @@
 
 % Option draw pmos with empty circle
 \newif\ifpgf at circuit@pmos at emptycircle
-\newif\ifpgf at circuit@pmos at emptycircle
 \pgf at circuit@pmos at emptycirclefalse
 \pgfkeys{/tikz/emptycircle/.add code={}{\pgf at circuit@pmos at emptycircletrue}}
 \ctikzset{tripoles/pmos style/emptycircle/.add code={}{\pgf at circuit@pmos at emptycircletrue}}
+% Option draw pmos with no circle
+\newif\ifpgf at circuit@pmos at nocircle
+\pgf at circuit@pmos at nocirclefalse
+\pgfkeys{/tikz/nocircle/.add code={}{\pgf at circuit@pmos at nocircletrue}}
+\ctikzset{tripoles/pmos style/nocircle/.add code={}{\pgf at circuit@pmos at nocircletrue}}
+% back to normal
+\pgfkeys{/tikz/fullcircle/.add code={}{\pgf at circuit@pmos at emptycirclefalse\pgf at circuit@pmos at nocirclefalse}}
+\ctikzset{tripoles/pmos style/fullcircle/.add code={}{\pgf at circuit@pmos at emptycirclefalse\pgf at circuit@pmos at nocirclefalse}}
 
 
 \newif\ifpgf at circuit@trans at ntype

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircmonopoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircmonopoles.tex	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircmonopoles.tex	2019-07-13 21:39:36 UTC (rev 51634)
@@ -286,11 +286,11 @@
     \pgfpathclose
     \pgfusepath{clip}
     % ...and build the waves as clipped circles
-    \c at pgf@counta=8\pgf at circ@res at other=0.5\pgf at circ@res at step
+    \pgf at circ@count at a=8\pgf at circ@res at other=0.5\pgf at circ@res at step
     \pgfmathloop%
-    \ifnum\c at pgf@counta>2
-        \pgfpathcircle{\pgfpoint{0pt}{\pgf at circ@res at step}}{\the\c at pgf@counta*\pgf at circ@res at other}
-        \advance\c at pgf@counta-1\relax%
+    \ifnum\pgf at circ@count at a>2
+        \pgfpathcircle{\pgfpoint{0pt}{\pgf at circ@res at step}}{\the\pgf at circ@count at a*\pgf at circ@res at other}
+        \advance\pgf at circ@count at a-1\relax%
         \repeatpgfmathloop
         \pgfusepath{draw}
     \endpgfscope

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircmultipoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircmultipoles.tex	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircmultipoles.tex	2019-07-13 21:39:36 UTC (rev 51634)
@@ -13,8 +13,6 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 % counters for pin accounting...
-\newcount\pgf at circ@count at c
-\newcount\pgf at circ@count at b
 \def\pgf at circ@dip at pin@shift{0.5}
 \def\pgf at circ@qfp at pin@shift{0.25}
 
@@ -28,8 +26,8 @@
 
 \pgfdeclareshape{dipchip}{
     \savedmacro\numpins{%
-            \c at pgf@counta=\pgfkeysvalueof{/tikz/circuitikz/multipoles/dipchip/num pins}%
-            \def\numpins{\the\c at pgf@counta}
+            \pgf at circ@count at a=\pgfkeysvalueof{/tikz/circuitikz/multipoles/dipchip/num pins}%
+            \def\numpins{\the\pgf at circ@count at a}
     }
     \savedanchor\centerpoint{%
         \pgf at x=-.5\wd\pgfnodeparttextbox%
@@ -94,8 +92,8 @@
         \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
         % Adding the pin number
         \ifpgf at circuit@chip at shownumbers
-            \c at pgf@counta=\numpins\relax
-            \divide\c at pgf@counta by 2 \pgf at circ@count at b=\c at pgf@counta
+            \pgf at circ@count at a=\numpins\relax
+            \divide\pgf at circ@count at a by 2 \pgf at circ@count at b=\pgf at circ@count at a
             % thanks to @marmot: https://tex.stackexchange.com/a/473571/38080
             \ifpgf at circuit@chip at straightnumbers
                 \pgfgettransformentries\a\b\temp\temp\temp\temp
@@ -108,53 +106,53 @@
             \def\pgf at circ@strut{\vrule width 0pt height 1em depth 0.4em\relax}
             \def\mytext{\pgfkeysvalueof{/tikz/circuitikz/multipoles/font}\space\pgf at circ@strut\the\pgf at circ@count at c\space}
             \pgfmathloop%
-            \ifnum\c at pgf@counta>0
+            \ifnum\pgf at circ@count at a>0
                 \ifcase\quadrant % rotation 0
                     % left
-                    \pgf at circ@count at c=\c at pgf@counta
+                    \pgf at circ@count at c=\pgf at circ@count at a
                     \pgftext[left,
-                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % right
-                    \pgf at circ@count at c=\numexpr2*\pgf at circ@count at b-\c at pgf@counta+1\relax
+                    \pgf at circ@count at c=\numexpr2*\pgf at circ@count at b-\pgf at circ@count at a+1\relax
                     \pgftext[right,
-                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                 \or % rotation -90
                     % left
-                    \pgf at circ@count at c=\c at pgf@counta
+                    \pgf at circ@count at c=\pgf at circ@count at a
                     \pgftext[top,
-                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % right
-                    \pgf at circ@count at c=\numexpr2*\pgf at circ@count at b-\c at pgf@counta+1\relax
+                    \pgf at circ@count at c=\numexpr2*\pgf at circ@count at b-\pgf at circ@count at a+1\relax
                     \pgftext[bottom,
-                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                 \or %rotation 180
                     % left
-                    \pgf at circ@count at c=\c at pgf@counta
+                    \pgf at circ@count at c=\pgf at circ@count at a
                     \pgftext[right,
-                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % right
-                    \pgf at circ@count at c=\numexpr2*\pgf at circ@count at b-\c at pgf@counta+1\relax
+                    \pgf at circ@count at c=\numexpr2*\pgf at circ@count at b-\pgf at circ@count at a+1\relax
                     \pgftext[left,
-                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                 \or % rotation +90
                     % left
-                    \pgf at circ@count at c=\c at pgf@counta
+                    \pgf at circ@count at c=\pgf at circ@count at a
                     \pgftext[bottom,
-                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % right
-                    \pgf at circ@count at c=\numexpr2*\pgf at circ@count at b-\c at pgf@counta+1\relax
+                    \pgf at circ@count at c=\numexpr2*\pgf at circ@count at b-\pgf at circ@count at a+1\relax
                     \pgftext[top,
-                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                 \fi
-                \advance\c at pgf@counta-1\relax%
+                \advance\pgf at circ@count at a-1\relax%
                 \repeatpgfmathloop
             \fi
             \endpgfscope
@@ -161,32 +159,32 @@
             \ifdim\pgf at circ@res at other>0pt
             \pgfscope
                 \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/multipoles/external pins thickness}\pgflinewidth}
-                \c at pgf@counta=\numpins\relax
-                \divide\c at pgf@counta by 2 \pgf at circ@count at b=\c at pgf@counta
+                \pgf at circ@count at a=\numpins\relax
+                \divide\pgf at circ@count at a by 2 \pgf at circ@count at b=\pgf at circ@count at a
                 \pgfmathloop%
-                \ifnum\c at pgf@counta>0
+                \ifnum\pgf at circ@count at a>0
                     \edef\padfrac{\pgfkeysvalueof{/tikz/circuitikz/multipoles/external pad fraction}}
                     \ifnum\padfrac>0
                         \pgf at circ@res at temp=\pgf at circ@res at step\divide\pgf at circ@res at temp by \padfrac
                         % left side pads
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
                         % right side pads
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
                     \else
                         % left side pins
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
                         % right side pins
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{\pgf at circ@res at up+(\pgf at circ@dip at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
                     \fi
-                    \advance\c at pgf@counta by -1\relax%
+                    \advance\pgf at circ@count at a by -1\relax%
                 \repeatpgfmathloop
                 \pgfusepath{stroke}
             \endpgfscope
@@ -196,19 +194,19 @@
         % and is executed just before a node is drawn.
         \pgfutil at g@addto at macro\pgf at sh@s at dipchip{%
             % Start with the maximum pin number and go backwards.
-            \c at pgf@counta=\numpins\relax
+            \pgf at circ@count at a=\numpins\relax
             \pgfmathloop%
-            \ifnum\c at pgf@counta>0
+            \ifnum\pgf at circ@count at a>0
                 % we will create two anchors per pin: the "normal one" like `pin 1` for the
                 % electrical contact, and the "border one" like `bpin 1` for labels.
                 % they will coincide if `external pins width` is set to 0.
-                \expandafter\xdef\csname pgf at anchor@dipchip at pin\space\the\c at pgf@counta\endcsname{%
-                    \noexpand\pgf at circ@dippinanchor{\the\c at pgf@counta}{1}%
+                \expandafter\xdef\csname pgf at anchor@dipchip at pin\space\the\pgf at circ@count at a\endcsname{%
+                    \noexpand\pgf at circ@dippinanchor{\the\pgf at circ@count at a}{1}%
                 }
-                \expandafter\xdef\csname pgf at anchor@dipchip at bpin\space\the\c at pgf@counta\endcsname{%
-                    \noexpand\pgf at circ@dippinanchor{\the\c at pgf@counta}{0}%
+                \expandafter\xdef\csname pgf at anchor@dipchip at bpin\space\the\pgf at circ@count at a\endcsname{%
+                    \noexpand\pgf at circ@dippinanchor{\the\pgf at circ@count at a}{0}%
                 }
-                \advance\c at pgf@counta by -1\relax%
+                \advance\pgf at circ@count at a by -1\relax%
                 \repeatpgfmathloop%
             }%
         }
@@ -217,8 +215,8 @@
 
 \pgfdeclareshape{qfpchip}{
     \savedmacro\numpins{%
-            \c at pgf@counta=\pgfkeysvalueof{/tikz/circuitikz/multipoles/qfpchip/num pins}%
-            \def\numpins{\the\c at pgf@counta}
+            \pgf at circ@count at a=\pgfkeysvalueof{/tikz/circuitikz/multipoles/qfpchip/num pins}%
+            \def\numpins{\the\pgf at circ@count at a}
     }
     \savedanchor\centerpoint{%
         \pgf at x=-.5\wd\pgfnodeparttextbox%
@@ -291,8 +289,8 @@
         % Adding the pin number
         \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
         \ifpgf at circuit@chip at shownumbers
-            \c at pgf@counta=\numpins%
-            \divide\c at pgf@counta by 4 \pgf at circ@count at b=\c at pgf@counta
+            \pgf at circ@count at a=\numpins%
+            \divide\pgf at circ@count at a by 4 \pgf at circ@count at b=\pgf at circ@count at a
             % thanks to @marmot: https://tex.stackexchange.com/a/473571/38080
             \ifpgf at circuit@chip at straightnumbers
                 \pgfgettransformentries\a\b\temp\temp\temp\temp
@@ -305,93 +303,93 @@
             \def\pgf at circ@strut{\vrule width 0pt height 1em depth 0.4em\relax}
             \def\mytext{\pgfkeysvalueof{/tikz/circuitikz/multipoles/font}\space\pgf at circ@strut\the\pgf at circ@count at c\space}
             \pgfmathloop%
-            \ifnum\c at pgf@counta>0
+            \ifnum\pgf at circ@count at a>0
                 \ifcase\quadrant % rotation 0
                     % left
-                    \pgf at circ@count at c=\c at pgf@counta
+                    \pgf at circ@count at c=\pgf at circ@count at a
                     \pgftext[left,
-                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % bottom
-                    \pgf at circ@count at c=\numexpr\pgf at circ@count at b+\c at pgf@counta\relax
+                    \pgf at circ@count at c=\numexpr\pgf at circ@count at b+\pgf at circ@count at a\relax
                     \pgftext[bottom,
-                        at=\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down},
+                        at=\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down},
                         rotate=\rot]{\mytext}
                     % right
-                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b-\c at pgf@counta+1\relax
+                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b-\pgf at circ@count at a+1\relax
                     \pgftext[right,
-                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % top
-                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b+\c at pgf@counta\relax
+                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b+\pgf at circ@count at a\relax
                     \pgftext[top,
-                        at=\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up},
+                        at=\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up},
                         rotate=\rot]{\mytext}
                 \or % rotation -90
                     % left
-                    \pgf at circ@count at c=\c at pgf@counta
+                    \pgf at circ@count at c=\pgf at circ@count at a
                     \pgftext[top,
-                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % bottom
-                    \pgf at circ@count at c=\numexpr\pgf at circ@count at b+\c at pgf@counta\relax
+                    \pgf at circ@count at c=\numexpr\pgf at circ@count at b+\pgf at circ@count at a\relax
                     \pgftext[left,
-                        at=\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down},
+                        at=\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down},
                         rotate=\rot]{\mytext}
                     % right
-                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b-\c at pgf@counta+1\relax
+                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b-\pgf at circ@count at a+1\relax
                     \pgftext[bottom,
-                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % top
-                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b+\c at pgf@counta\relax
+                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b+\pgf at circ@count at a\relax
                     \pgftext[right,
-                        at=\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up},
+                        at=\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up},
                         rotate=\rot]{\mytext}
                 \or %rotation 180
                     % left
-                    \pgf at circ@count at c=\c at pgf@counta
+                    \pgf at circ@count at c=\pgf at circ@count at a
                     \pgftext[right,
-                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % bottom
-                    \pgf at circ@count at c=\numexpr\pgf at circ@count at b+\c at pgf@counta\relax
+                    \pgf at circ@count at c=\numexpr\pgf at circ@count at b+\pgf at circ@count at a\relax
                     \pgftext[top,
-                        at=\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down},
+                        at=\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down},
                         rotate=\rot]{\mytext}
                     % right
-                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b-\c at pgf@counta+1\relax
+                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b-\pgf at circ@count at a+1\relax
                     \pgftext[left,
-                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % top
-                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b+\c at pgf@counta\relax
+                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b+\pgf at circ@count at a\relax
                     \pgftext[bottom,
-                        at=\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up},
+                        at=\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up},
                         rotate=\rot]{\mytext}
                 \or % rotation +90
                     % left
-                    \pgf at circ@count at c=\c at pgf@counta
+                    \pgf at circ@count at c=\pgf at circ@count at a
                     \pgftext[bottom,
-                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % bottom
-                    \pgf at circ@count at c=\numexpr\pgf at circ@count at b+\c at pgf@counta\relax
+                    \pgf at circ@count at c=\numexpr\pgf at circ@count at b+\pgf at circ@count at a\relax
                     \pgftext[right,
-                        at=\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down},
+                        at=\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down},
                         rotate=\rot]{\mytext}
                     % right
-                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b-\c at pgf@counta+1\relax
+                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b-\pgf at circ@count at a+1\relax
                     \pgftext[top,
-                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step},
+                        at=\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step},
                         rotate=\rot]{\mytext}
                     % top
-                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b+\c at pgf@counta\relax
+                    \pgf at circ@count at c=\numexpr3*\pgf at circ@count at b+\pgf at circ@count at a\relax
                     \pgftext[left,
-                        at=\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up},
+                        at=\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up},
                         rotate=\rot]{\mytext}
                 \fi
-                \advance\c at pgf@counta-1\relax%
+                \advance\pgf at circ@count at a-1\relax%
                 \repeatpgfmathloop
             \fi
             \endpgfscope
@@ -398,48 +396,48 @@
             \ifdim\pgf at circ@res at other>0pt
             \pgfscope
                 \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/multipoles/external pins thickness}\pgflinewidth}
-                \c at pgf@counta=\numpins%
-                \divide\c at pgf@counta by 4 \pgf at circ@count at b=\c at pgf@counta
+                \pgf at circ@count at a=\numpins%
+                \divide\pgf at circ@count at a by 4 \pgf at circ@count at b=\pgf at circ@count at a
                 \pgfmathloop%
-                \ifnum\c at pgf@counta>0
+                \ifnum\pgf at circ@count at a>0
                     \edef\padfrac{\pgfkeysvalueof{/tikz/circuitikz/multipoles/external pad fraction}}
                     \ifnum\padfrac>0
                         \pgf at circ@res at temp=\pgf at circ@res at step\divide\pgf at circ@res at temp by \padfrac
                         % left side pads
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
                         % bottom side pads
-                        \pgfpathmoveto{\pgfpoint{-\pgf at circ@res at temp+\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down}}
-                        \pgfpathlineto{\pgfpoint{-\pgf at circ@res at temp+\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down-\pgf at circ@res at other}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down-\pgf at circ@res at other}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down}}
+                        \pgfpathmoveto{\pgfpoint{-\pgf at circ@res at temp+\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down}}
+                        \pgfpathlineto{\pgfpoint{-\pgf at circ@res at temp+\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down-\pgf at circ@res at other}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down-\pgf at circ@res at other}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down}}
                         % right side pads
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right}{-\pgf at circ@res at temp+\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
                         % top side pads
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up+\pgf at circ@res at other}}
-                        \pgfpathlineto{\pgfpoint{-\pgf at circ@res at temp+\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up+\pgf at circ@res at other}}
-                        \pgfpathlineto{\pgfpoint{-\pgf at circ@res at temp+\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up+\pgf at circ@res at other}}
+                        \pgfpathlineto{\pgfpoint{-\pgf at circ@res at temp+\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up+\pgf at circ@res at other}}
+                        \pgfpathlineto{\pgfpoint{-\pgf at circ@res at temp+\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up}}
                     \else
                         % left side pins
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgf at circ@res at other}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
                         % bottom side pins
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at down-\pgf at circ@res at other}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at down-\pgf at circ@res at other}}
                         % right side pins
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+\pgf at circ@res at other}{\pgf at circ@res at up+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}}
                         % top side pins
-                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up}}
-                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\c at pgf@counta)*\pgf at circ@res at step}{\pgf at circ@res at up+\pgf at circ@res at other}}
+                        \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up}}
+                        \pgfpathlineto{\pgfpoint{\pgf at circ@res at right+(\pgf at circ@qfp at pin@shift-\the\pgf at circ@count at a)*\pgf at circ@res at step}{\pgf at circ@res at up+\pgf at circ@res at other}}
                     \fi
-                    \advance\c at pgf@counta-1\relax%
+                    \advance\pgf at circ@count at a-1\relax%
                 \repeatpgfmathloop
                 \pgfusepath{stroke}
             \endpgfscope
@@ -449,16 +447,16 @@
         % and is executed just before a node is drawn.
         \pgfutil at g@addto at macro\pgf at sh@s at qfpchip{%
             % Start with the maximum pin number and go backwards.
-            \c at pgf@counta=\numpins%
+            \pgf at circ@count at a=\numpins%
             \pgfmathloop%
-            \ifnum\c at pgf@counta>0
-                \expandafter\xdef\csname pgf at anchor@qfpchip at pin\space\the\c at pgf@counta\endcsname{%
-                    \noexpand\pgf at circ@qfppinanchor{\the\c at pgf@counta}{1}%
+            \ifnum\pgf at circ@count at a>0
+                \expandafter\xdef\csname pgf at anchor@qfpchip at pin\space\the\pgf at circ@count at a\endcsname{%
+                    \noexpand\pgf at circ@qfppinanchor{\the\pgf at circ@count at a}{1}%
                 }
-                \expandafter\xdef\csname pgf at anchor@qfpchip at bpin\space\the\c at pgf@counta\endcsname{%
-                    \noexpand\pgf at circ@qfppinanchor{\the\c at pgf@counta}{0}%
+                \expandafter\xdef\csname pgf at anchor@qfpchip at bpin\space\the\pgf at circ@count at a\endcsname{%
+                    \noexpand\pgf at circ@qfppinanchor{\the\pgf at circ@count at a}{0}%
                 }
-                \advance\c at pgf@counta-1\relax%
+                \advance\pgf at circ@count at a-1\relax%
                 \repeatpgfmathloop%
             }%
         }
@@ -619,18 +617,19 @@
             \endpgfscope
         \fi
 
-        % \typeout{CHANNELS\space\channels\space ANGLE\space\angle}
-        \c at pgf@counta=\channels\relax
+        % \typeout{CHANNELS\space\channels\space ANGLE\space\angle STEPA\space\stepa}
+        \pgf at circ@count at a=\channels\relax
         \pgfmathsetmacro{\currenta}{-\angle}
         \pgfmathloop%
-        \ifnum\c at pgf@counta>0
-            % \typeout{LOOP\space\the\c at pgf@counta\space CURRENTA\space\currenta\space RIGHT\space\the\pgf at circ@res at right}
+        \ifnum\pgf at circ@count at a>0
+            % \typeout{LOOPIN\space\space\the\pgf at circ@count at a\space CURRENTA\space\currenta\space RIGHT\space\the\pgf at circ@res at right}
             \pgfscope
                 \pgftransformshift{\pgfpointadd{\pgfpoint{\pgf at circ@res at left}{0pt}}{\pgfpointpolar{\currenta}{2\pgf at circ@res at right}}}
-                \pgfnode{\cshape}{center}{}{\thisshape-out \the\c at pgf@counta}{\pgfusepath{stroke}}
+                \pgfnode{\cshape}{center}{}{\thisshape-out \the\pgf at circ@count at a}{\pgfusepath{stroke}}
             \endpgfscope
             \pgfmathsetmacro{\currenta}{\currenta+\stepa}
-            \advance\c at pgf@counta by -1\relax%
+            % \typeout{LOOPOUT\space\the\pgf at circ@count at a\space CURRENTA\space\currenta\space RIGHT\space\the\pgf at circ@res at right}
+            \advance\pgf at circ@count at a by -1\relax%
         \repeatpgfmathloop
 
         \pgfscope % input
@@ -642,25 +641,25 @@
     % and is executed just before a node is drawn.
     \pgfutil at g@addto at macro\pgf at sh@s at rotaryswitch{%
         % Start with the maximum pin number and go backwards.
-        \c at pgf@counta=\channels\relax
+        \pgf at circ@count at a=\channels\relax
         \pgfmathloop%
-        \ifnum\c at pgf@counta>0
+        \ifnum\pgf at circ@count at a>0
         % we will create two anchors per pin: the "normal one" like `pin 1` for the
         % electrical contact, and the "border one" like `bpin 1` for labels.
         % they will coincide if `external pins width` is set to 0.
-        \expandafter\xdef\csname pgf at anchor@rotaryswitch at out\space\the\c at pgf@counta\endcsname{%
-            \noexpand\pgf at circ@rotaryanchor{\the\c at pgf@counta}{1}{0}%
+        \expandafter\xdef\csname pgf at anchor@rotaryswitch at out\space\the\pgf at circ@count at a\endcsname{%
+            \noexpand\pgf at circ@rotaryanchor{\the\pgf at circ@count at a}{1}{0}%
         }
-        \expandafter\xdef\csname pgf at anchor@rotaryswitch at cout\space\the\c at pgf@counta\endcsname{%
-            \noexpand\pgf at circ@rotaryanchor{\the\c at pgf@counta}{0}{0}%
+        \expandafter\xdef\csname pgf at anchor@rotaryswitch at cout\space\the\pgf at circ@count at a\endcsname{%
+            \noexpand\pgf at circ@rotaryanchor{\the\pgf at circ@count at a}{0}{0}%
         }
-        \expandafter\xdef\csname pgf at anchor@rotaryswitch at aout\space\the\c at pgf@counta\endcsname{%
-            \noexpand\pgf at circ@rotaryanchor{\the\c at pgf@counta}{0}{1}%
+        \expandafter\xdef\csname pgf at anchor@rotaryswitch at aout\space\the\pgf at circ@count at a\endcsname{%
+            \noexpand\pgf at circ@rotaryanchor{\the\pgf at circ@count at a}{0}{1}%
         }
-        \expandafter\xdef\csname pgf at anchor@rotaryswitch at sqout\space\the\c at pgf@counta\endcsname{%
-            \noexpand\pgf at circ@rotarysqanchor{\the\c at pgf@counta}{0}%
+        \expandafter\xdef\csname pgf at anchor@rotaryswitch at sqout\space\the\pgf at circ@count at a\endcsname{%
+            \noexpand\pgf at circ@rotarysqanchor{\the\pgf at circ@count at a}{0}%
         }
-        \advance\c at pgf@counta by -1\relax%
+        \advance\pgf at circ@count at a by -1\relax%
         \repeatpgfmathloop%
     }%
 }

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircquadpoles.tex	2019-07-13 21:39:36 UTC (rev 51634)
@@ -464,23 +464,30 @@
     \pgfpathlineto{\pgfpoint{\pgf at circ@res at right}{0.5\pgf at circ@res at down}}
     \pgfusepath{draw}
 
-    \pgfpathmoveto{\pgfpoint{0.1\pgf at circ@res at left}{0pt}}
-    \pgfpatharc{0}{90} {0.4\pgf at circ@res at up}
-    \pgfsetarrowsend{latex}
-    \pgfusepath{draw}
-    \pgfpathmoveto{\pgfpoint{0.1\pgf at circ@res at left}{0pt}}
-    \pgfpatharc{0}{-90} {0.4\pgf at circ@res at up}
-    \pgfsetarrowsend{latex}
-    \pgfusepath{draw}
-
-    \pgfpathmoveto{\pgfpoint{0.1\pgf at circ@res at right}{0pt}}
-    \pgfpatharc{180}{90} {0.4\pgf at circ@res at up}
-    \pgfsetarrowsend{latex}
-    \pgfusepath{draw}
-    \pgfpathmoveto{\pgfpoint{0.1\pgf at circ@res at right}{0pt}}
-    \pgfpatharc{-180}{-90} {0.4\pgf at circ@res at up}
-    \pgfsetarrowsend{latex}
-    \pgfusepath{draw}
+    \pgfscope
+        \pgfpathmoveto{\pgfpoint{0.1\pgf at circ@res at left}{0pt}}
+        \pgfpatharc{0}{90} {0.4\pgf at circ@res at up}
+        \pgfsetarrowsend{latex}
+        \pgfusepath{draw}
+    \endpgfscope
+    \pgfscope
+        \pgfpathmoveto{\pgfpoint{0.1\pgf at circ@res at left}{0pt}}
+        \pgfpatharc{0}{-90} {0.4\pgf at circ@res at up}
+        \pgfsetarrowsend{latex}
+        \pgfusepath{draw}
+    \endpgfscope
+    \pgfscope
+        \pgfpathmoveto{\pgfpoint{0.1\pgf at circ@res at right}{0pt}}
+        \pgfpatharc{180}{90} {0.4\pgf at circ@res at up}
+        \pgfsetarrowsend{latex}
+        \pgfusepath{draw}
+    \endpgfscope
+    \pgfscope
+        \pgfpathmoveto{\pgfpoint{0.1\pgf at circ@res at right}{0pt}}
+        \pgfpatharc{-180}{-90} {0.4\pgf at circ@res at up}
+        \pgfsetarrowsend{latex}
+        \pgfusepath{draw}
+    \endpgfscope
 }
 
 % contrib Kristofer M. Monisit

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex	2019-07-13 21:39:36 UTC (rev 51634)
@@ -1644,13 +1644,15 @@
         \pgfpathlineto{\pgfpoint{\pgf at circ@res at left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf at circ@res at up+\pgf at circ@res at down}}
         \pgfusepath{draw}
     \fi
-    \pgfpathcircle{\pgfpoint
-        {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf at circ@res at left - \pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
-    {\pgf at circ@res at up+\pgf at circ@res at down}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
-    \ifpgf at circuit@pmos at emptycircle
-        \pgfsetfillcolor{white}
+        \ifpgf at circuit@pmos at nocircle\else
+        \pgfpathcircle{\pgfpoint
+            {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf at circ@res at left - \pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
+        {\pgf at circ@res at up+\pgf at circ@res at down}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgf at circ@Rlen}
+        \ifpgf at circuit@pmos at emptycircle
+            \pgfsetfillcolor{white}
+        \fi
+        \pgfusepath{draw,fill}
     \fi
-    \pgfusepath{draw,fill}
 }
 
 %% HEMT FET Transistor
@@ -4193,21 +4195,21 @@
 % Draw tube outline
 \def\pgf at circ@tubes at drawtube{%
 	\ifdim\ctikzvalof{tubes/width}pt>\ctikzvalof{tubes/height}pt\relax
-		\pgfpathmoveto{\pgfpoint{0pt}{\pgf at circ@res at up}}
-		\pgfutil at tempdima=\pgf at circ@res at right
-		\advance\pgfutil at tempdima by -\pgf at circ@res at up
-		\pgfpathlineto{\pgfpoint{\pgfutil at tempdima}{\pgf at circ@res at up}}
-		\pgfpatharc{90}{-90}{\pgf at circ@res at up}
-		\pgfpathlineto{\pgfpoint{-\pgfutil at tempdima}{-\pgf at circ@res at up}}
-		\pgfpatharc{270}{90}{\pgf at circ@res at up}
+	\pgfpathmoveto{\pgfpoint{0pt}{\pgf at circ@res at up}}
+	\pgfutil at tempdima=\pgf at circ@res at right
+	\advance\pgfutil at tempdima by -\pgf at circ@res at up
+	\pgfpathlineto{\pgfpoint{\pgfutil at tempdima}{\pgf at circ@res at up}}
+	\pgfpatharc{90}{-90}{\pgf at circ@res at up}
+	\pgfpathlineto{\pgfpoint{-\pgfutil at tempdima}{-\pgf at circ@res at up}}
+	\pgfpatharc{270}{90}{\pgf at circ@res at up}
 	\else
-		\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at right}{0pt}}
-		\pgfutil at tempdima=\pgf at circ@res at up
-		\advance\pgfutil at tempdima by -\pgf at circ@res at right
-		\pgfpathlineto{\pgfpoint{-\pgf at circ@res at right}{\pgfutil at tempdima}}
-		\pgfpatharc{180}{0}{\pgf at circ@res at right}
-		\pgfpathlineto{\pgfpoint{\pgf at circ@res at right}{-\pgfutil at tempdima}}
-		\pgfpatharc{180}{0}{-\pgf at circ@res at right}
+	\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at right}{0pt}}
+	\pgfutil at tempdima=\pgf at circ@res at up
+	\advance\pgfutil at tempdima by -\pgf at circ@res at right
+	\pgfpathlineto{\pgfpoint{-\pgf at circ@res at right}{\pgfutil at tempdima}}
+	\pgfpatharc{180}{0}{\pgf at circ@res at right}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at right}{-\pgfutil at tempdima}}
+	\pgfpatharc{180}{0}{-\pgf at circ@res at right}
 	\fi
 	\pgfpathclose
 }
@@ -4218,52 +4220,52 @@
 %% \pgfcircdeclaretube{tube name}{grid anchors}{grid drawing code}
 \long\def\pgfcircdeclaretube#1#2#3{%
 	\pgfdeclareshape{#1}{
-	    \anchor{center}{
-	        \pgfpointorigin
-	    }
-	    \savedanchor\northwest{%
-	        \pgf at circ@res at up=\ctikzvalof{tubes/height}\pgf at circ@Rlen
+		\anchor{center}{
+			\pgfpointorigin
+		}
+		\savedanchor\northwest{%
+			\pgf at circ@res at up=\ctikzvalof{tubes/height}\pgf at circ@Rlen
 			\pgf at circ@res at right=\ctikzvalof{tubes/width}\pgf at circ@Rlen
 			% x and y should be half the Rlen
-	        \pgf at y=\pgf at circ@res at up
-	        \pgf at y=.5\pgf at y
-	        \pgf at x=-\pgf at circ@res at right
-	        \pgf at x=.5\pgf at x
-	    }
+			\pgf at y=\pgf at circ@res at up
+			\pgf at y=.5\pgf at y
+			\pgf at x=-\pgf at circ@res at right
+			\pgf at x=.5\pgf at x
+		}
 		\anchor{north} {%
 			\northwest
 			\pgf at x=0pt
 		}
-	    \anchor{east}{%
-	        \northwest
-	        \pgf at x=-\pgf at x
-	        \pgf at y=0pt
-	    }
+		\anchor{east}{%
+			\northwest
+			\pgf at x=-\pgf at x
+			\pgf at y=0pt
+		}
 		\anchor{south}{%
-	        \northwest
-	        \pgf at y=-\pgf at y
+			\northwest
+			\pgf at y=-\pgf at y
 			\pgf at x=0pt
 		}
-	    \anchor{west}{%
-	        \northwest
-	        \pgf at y=0pt
-	    }
-	    \anchor{north west}{%
-	        \northwest
-	    }
-	    \anchor{north east}{%
-	        \northwest
-	        \pgf at x=-\pgf at x
-	    }
-	    \anchor{south east}{
-	        \northwest
-	        \pgf at x=-\pgf at x
-	        \pgf at y=-\pgf at y
-	    }
-	    \anchor{south west}{
-	        \northwest
-	        \pgf at y=-\pgf at y
-	    }
+		\anchor{west}{%
+			\northwest
+			\pgf at y=0pt
+		}
+		\anchor{north west}{%
+			\northwest
+		}
+		\anchor{north east}{%
+			\northwest
+			\pgf at x=-\pgf at x
+		}
+		\anchor{south east}{
+			\northwest
+			\pgf at x=-\pgf at x
+			\pgf at y=-\pgf at y
+		}
+		\anchor{south west}{
+			\northwest
+			\pgf at y=-\pgf at y
+		}
 		\anchor{anode} {%
 			\northwest
 			\pgf at x=0pt
@@ -4295,86 +4297,86 @@
 			\pgf at x=-\pgfmathresult\pgf at x
 			\pgf at y=-\pgf at y
 		}
-
+		
 		% Extra anchors
 		#2
-
+		
 		\backgroundpath{
 			\pgfscope
-				% Line width for tripoles
-				\pgfsetlinewidth{\ctikzvalof{tripoles/thickness}\pgflinewidth}
-	
-				% Setup to draw tube
-				\pgf at circ@res at up=\ctikzvalof{tubes/height}\pgf at circ@Rlen
-				\pgf at circ@res at right=\ctikzvalof{tubes/width}\pgf at circ@Rlen
-				\pgf at circ@res at up=\ctikzvalof{tubes/tube radius}\pgf at circ@res at up
-				\pgf at circ@res at right=\ctikzvalof{tubes/tube radius}\pgf at circ@res at right
-	
-				% Tube fill color (if any)
-				\ifx\tikz at fillcolor\pgfutil at empty
-				\else
-					\pgfscope
-						\pgfsetfillcolor{\tikz at fillcolor}
-						\pgf at circ@tubes at drawtube
-						\pgfusepath{fill}
-					\endpgfscope
-				\fi
-	
-				% Tube outline
-				\pgf at circ@tubes at drawtube
-
-				% Setup to draw grid, filament, anode and cathode
-				\pgf at circ@res at up=\ctikzvalof{tubes/height}\pgf at circ@Rlen
-				\pgf at circ@res at right=\ctikzvalof{tubes/width}\pgf at circ@Rlen
-				\pgf at circ@res at up=0.5\pgf at circ@res at up
-				\pgf at circ@res at right=0.5\pgf at circ@res at right
-
-				% Grid drawing
-				#3
-				
-				% Filament (is not drawn by default)
-				\ifpgf at circuit@tubes at filament
-					\pgf at circ@res at temp=-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up
-					\advance\pgf at circ@res at temp by -\ctikzvalof{tubes/filament distance}\pgf at circ@res at up
-					\pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
-					\pgf at xa=\pgfmathresult\pgf at circ@res at right
-					\pgfmathparse{\ctikzvalof{tubes/tube radius}+\ctikzvalof{tubes/tube radius}*cos(\ctikzvalof{tubes/filament angle}}
-					\pgf at ya=\pgfmathresult\pgf at circ@res at up
-					\pgfpathmoveto{\pgfpoint{0pt}{\pgf at circ@res at temp}}
-					\pgfpathlineto{\pgfpoint{-\pgf at xa}{-\pgf at ya}}
-					\pgfpathlineto{\pgfpoint{-\pgf at xa}{-\pgf at circ@res at up}}
-					\pgfpathmoveto{\pgfpoint{0pt}{\pgf at circ@res at temp}}
-					\pgfpathlineto{\pgfpoint{\pgf at xa}{-\pgf at ya}}
-					\pgfpathlineto{\pgfpoint{\pgf at xa}{-\pgf at circ@res at up}}
-					\pgf at circuit@tubes at filamentfalse
-				\fi
-	
-				% Anode (or plate)
-				\pgfpathmoveto{\pgfpoint{0pt}{\pgf at circ@res at up}} % north
-				\pgfpathlineto{\pgfpoint{0pt}{\ctikzvalof{tubes/anode distance}\pgf at circ@res at up}}
-				\pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/anode width}\pgf at circ@res at right}{\ctikzvalof{tubes/anode distance}\pgf at circ@res at up}}
-				\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/anode width}\pgf at circ@res at right}{\ctikzvalof{tubes/anode distance}\pgf at circ@res at up}}
-	
-				% Cathode
-				\ifpgf at circuit@tubes at nocathode
-					\pgf at circuit@tubes at nocathodefalse
-				\else
-					\pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf at circ@res at up}{\ctikzvalof{tubes/cathode corners}\pgf at circ@res at up}}
-					\pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\pgf at circ@res at up}}
-					\pgfpathlineto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up}}
-					\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up}}
-					\ifpgf at circuit@tubes at fullcathode
-						\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\pgf at circ@res at up}}
-						\pgf at circuit@tubes at fullcathodefalse
-					\else
-						\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up-\ctikzvalof{tubes/cathode right extend}\pgf at circ@res at up}}
-					\fi
-				\fi
-
-				% Draw the background	
-				\pgfusepath{draw}
-
+			% Line width for tripoles
+			\pgfsetlinewidth{\ctikzvalof{tripoles/thickness}\pgflinewidth}
+			
+			% Setup to draw tube
+			\pgf at circ@res at up=\ctikzvalof{tubes/height}\pgf at circ@Rlen
+			\pgf at circ@res at right=\ctikzvalof{tubes/width}\pgf at circ@Rlen
+			\pgf at circ@res at up=\ctikzvalof{tubes/tube radius}\pgf at circ@res at up
+			\pgf at circ@res at right=\ctikzvalof{tubes/tube radius}\pgf at circ@res at right
+			
+			% Tube fill color (if any)
+			\ifx\tikz at fillcolor\pgfutil at empty
+			\else
+			\pgfscope
+			\pgfsetfillcolor{\tikz at fillcolor}
+			\pgf at circ@tubes at drawtube
+			\pgfusepath{fill}
 			\endpgfscope
+			\fi
+			
+			% Tube outline
+			\pgf at circ@tubes at drawtube
+			
+			% Setup to draw grid, filament, anode and cathode
+			\pgf at circ@res at up=\ctikzvalof{tubes/height}\pgf at circ@Rlen
+			\pgf at circ@res at right=\ctikzvalof{tubes/width}\pgf at circ@Rlen
+			\pgf at circ@res at up=0.5\pgf at circ@res at up
+			\pgf at circ@res at right=0.5\pgf at circ@res at right
+			
+			% Grid drawing
+			#3
+			
+			% Filament (is not drawn by default)
+			\ifpgf at circuit@tubes at filament
+			\pgf at circ@res at temp=-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up
+			\advance\pgf at circ@res at temp by -\ctikzvalof{tubes/filament distance}\pgf at circ@res at up
+			\pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+			\pgf at xa=\pgfmathresult\pgf at circ@res at right
+			\pgfmathparse{\ctikzvalof{tubes/tube radius}+\ctikzvalof{tubes/tube radius}*cos(\ctikzvalof{tubes/filament angle}}
+			\pgf at ya=\pgfmathresult\pgf at circ@res at up
+			\pgfpathmoveto{\pgfpoint{0pt}{\pgf at circ@res at temp}}
+			\pgfpathlineto{\pgfpoint{-\pgf at xa}{-\pgf at ya}}
+			\pgfpathlineto{\pgfpoint{-\pgf at xa}{-\pgf at circ@res at up}}
+			\pgfpathmoveto{\pgfpoint{0pt}{\pgf at circ@res at temp}}
+			\pgfpathlineto{\pgfpoint{\pgf at xa}{-\pgf at ya}}
+			\pgfpathlineto{\pgfpoint{\pgf at xa}{-\pgf at circ@res at up}}
+			\pgf at circuit@tubes at filamentfalse
+			\fi
+			
+			% Anode (or plate)
+			\pgfpathmoveto{\pgfpoint{0pt}{\pgf at circ@res at up}} % north
+			\pgfpathlineto{\pgfpoint{0pt}{\ctikzvalof{tubes/anode distance}\pgf at circ@res at up}}
+			\pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/anode width}\pgf at circ@res at right}{\ctikzvalof{tubes/anode distance}\pgf at circ@res at up}}
+			\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/anode width}\pgf at circ@res at right}{\ctikzvalof{tubes/anode distance}\pgf at circ@res at up}}
+			
+			% Cathode
+			\ifpgf at circuit@tubes at nocathode
+			\pgf at circuit@tubes at nocathodefalse
+			\else
+			\pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf at circ@res at up}{\ctikzvalof{tubes/cathode corners}\pgf at circ@res at up}}
+			\pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\pgf at circ@res at up}}
+			\pgfpathlineto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up}}
+			\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up}}
+			\ifpgf at circuit@tubes at fullcathode
+			\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\pgf at circ@res at up}}
+			\pgf at circuit@tubes at fullcathodefalse
+			\else
+			\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf at circ@res at right}{-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up-\ctikzvalof{tubes/cathode right extend}\pgf at circ@res at up}}
+			\fi
+			\fi
+			
+			% Draw the background    
+			\pgfusepath{draw}
+			
+			\endpgfscope
 		}
 	}
 }
@@ -4383,10 +4385,14 @@
 
 \pgfcircdeclaretube{triode}
 {
-	\anchor{grid} {%
-        \northwest
+	\anchor{grid} {% should not be used
+		\northwest
 		\pgf at y=\ctikzvalof{tubes/grid shift}\pgf at y
-    }
+	}
+	\anchor{control} {%
+		\northwest
+		\pgf at y=\ctikzvalof{tubes/grid shift}\pgf at y
+	}
 }
 {
 	% Grid protrusion
@@ -4397,40 +4403,47 @@
 	% Grid dashes: calculations
 	\pgf at xb=2\pgf at circ@res at right
 	\pgf at circ@res at step=\ctikzvalof{tubes/tube radius}\pgf at xb
-	\@tempcnta=\ctikzvalof{tubes/grid dashes}  % dashes*2+1
-	\multiply\@tempcnta by 2\relax
-	\advance\@tempcnta by 1\relax
+	\pgf at circ@count at a=\ctikzvalof{tubes/grid dashes}  % dashes*2+1
+	\multiply\pgf at circ@count at a by 2\relax
+	\advance\pgf at circ@count at a by 1\relax
 	\advance\pgf at circ@res at step by -\pgf at xa
-	\divide\pgf at circ@res at step by \@tempcnta
+	\divide\pgf at circ@res at step by \pgf at circ@count at a
 	% Grid dashes: draw
 	\pgf at circ@res at temp=\pgf at xa
-	\@tempcnta=\ctikzvalof{tubes/grid dashes}
+	\pgf at circ@count at a=\ctikzvalof{tubes/grid dashes}
 	\loop
-		\advance\pgf at circ@res at temp by\pgf at circ@res at step
-		\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\ctikzvalof{tubes/grid shift}\pgf at circ@res at up}}
-		\advance\pgf at circ@res at temp by\pgf at circ@res at step
-		\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp}{\ctikzvalof{tubes/grid shift}\pgf at circ@res at up}}
-		\advance\@tempcnta by-1
-		\ifnum\@tempcnta>0\relax
+	\advance\pgf at circ@res at temp by\pgf at circ@res at step
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\ctikzvalof{tubes/grid shift}\pgf at circ@res at up}}
+	\advance\pgf at circ@res at temp by\pgf at circ@res at step
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp}{\ctikzvalof{tubes/grid shift}\pgf at circ@res at up}}
+	\advance\pgf at circ@count at a by-1
+	\ifnum\pgf at circ@count at a>0\relax
 	\repeat
 }
 
 \pgfcircdeclaretube{tetrode}
 {
-	\anchor{grid} {%
-        \northwest
+	\anchor{grid} {% should not be used
+		\northwest
 		\pgfutil at tempdima=\pgf at y
 		\pgf at y=-\ctikzvalof{tubes/grid separation}\pgf at y
 		\pgf at y=0.5\pgf at y
 		\advance\pgf at y by \ctikzvalof{tubes/grid shift}\pgfutil at tempdima
-    }
+	}
+	\anchor{control} {%
+		\northwest
+		\pgfutil at tempdima=\pgf at y
+		\pgf at y=-\ctikzvalof{tubes/grid separation}\pgf at y
+		\pgf at y=0.5\pgf at y
+		\advance\pgf at y by \ctikzvalof{tubes/grid shift}\pgfutil at tempdima
+	}
 	\anchor{screen} {%
-        \northwest
+		\northwest
 		\pgfutil at tempdima=\pgf at y
 		\pgf at y=\ctikzvalof{tubes/grid separation}\pgf at y
 		\pgf at y=0.5\pgf at y
 		\advance\pgf at y by \ctikzvalof{tubes/grid shift}\pgfutil at tempdima
-    }
+	}
 }
 {
 	% Grid x/y points
@@ -4450,44 +4463,50 @@
 	% Grid dashes: calculations
 	\pgf at xb=2\pgf at circ@res at right
 	\pgf at circ@res at step=\ctikzvalof{tubes/tube radius}\pgf at xb
-	\@tempcnta=\ctikzvalof{tubes/grid dashes}  % dashes*2+1
-	\multiply\@tempcnta by 2\relax
-	\advance\@tempcnta by 1\relax
+	\pgf at circ@count at a=\ctikzvalof{tubes/grid dashes}  % dashes*2+1
+	\multiply\pgf at circ@count at a by 2\relax
+	\advance\pgf at circ@count at a by 1\relax
 	\advance\pgf at circ@res at step by -\pgf at xa
-	\divide\pgf at circ@res at step by \@tempcnta
+	\divide\pgf at circ@res at step by \pgf at circ@count at a
 	% Grid dashes: draw
 	\pgf at circ@res at temp=\pgf at xa
-	\@tempcnta=\ctikzvalof{tubes/grid dashes}
+	\pgf at circ@count at a=\ctikzvalof{tubes/grid dashes}
 	\loop
-		\advance\pgf at circ@res at temp by\pgf at circ@res at step
-		\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdima}}
-		\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdima}}
-		\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdimb}}
-		\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdimb}}
-		\advance\pgf at circ@res at temp by\pgf at circ@res at step
-		\advance\@tempcnta by-1
-		\ifnum\@tempcnta>0\relax
+	\advance\pgf at circ@res at temp by\pgf at circ@res at step
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdima}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdima}}
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdimb}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdimb}}
+	\advance\pgf at circ@res at temp by\pgf at circ@res at step
+	\advance\pgf at circ@count at a by-1
+	\ifnum\pgf at circ@count at a>0\relax
 	\repeat
 }
 
 \pgfcircdeclaretube{pentode}
 {
-	\anchor{grid} {%
-        \northwest
+	\anchor{grid} {% should not be used
+		\northwest
 		\pgfutil at tempdima=\pgf at y
 		\pgf at y=-\ctikzvalof{tubes/grid separation}\pgf at y
 		\advance\pgf at y by \ctikzvalof{tubes/grid shift}\pgfutil at tempdima
-    }
+	}
+	\anchor{control} {%
+		\northwest
+		\pgfutil at tempdima=\pgf at y
+		\pgf at y=-\ctikzvalof{tubes/grid separation}\pgf at y
+		\advance\pgf at y by \ctikzvalof{tubes/grid shift}\pgfutil at tempdima
+	}
 	\anchor{screen} {%
-        \northwest
+		\northwest
 		\pgf at y=\ctikzvalof{tubes/grid shift}\pgf at y
-    }
+	}
 	\anchor{suppressor} {%
-        \northwest
+		\northwest
 		\pgfutil at tempdima=\pgf at y
 		\pgf at y=\ctikzvalof{tubes/grid separation}\pgf at y
 		\advance\pgf at y by \ctikzvalof{tubes/grid shift}\pgfutil at tempdima
-    }
+	}
 }
 {
 	% Grid x/y points
@@ -4497,37 +4516,102 @@
 	\pgfutil at tempdimb=-\pgfutil at tempdima
 	\advance\pgfutil at tempdima by \ctikzvalof{tubes/grid shift}\pgf at circ@res at up
 	\advance\pgfutil at tempdimb by \ctikzvalof{tubes/grid shift}\pgf at circ@res at up
-	\@tempdimc=\ctikzvalof{tubes/grid shift}\pgf at circ@res at up
+	\pgf at circ@res at other=\ctikzvalof{tubes/grid shift}\pgf at circ@res at up
 	% Grid protrusion
 	\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at right}{\pgfutil at tempdimb}}
 	\pgfpathlineto{\pgfpoint{\pgf at xa}{\pgfutil at tempdimb}}
 	\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at right}{\pgfutil at tempdima}}
 	\pgfpathlineto{\pgfpoint{\pgf at xa}{\pgfutil at tempdima}}
-	\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at right}{\@tempdimc}}
-	\pgfpathlineto{\pgfpoint{\pgf at xa}{\@tempdimc}}
+	\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at right}{\pgf at circ@res at other}}
+	\pgfpathlineto{\pgfpoint{\pgf at xa}{\pgf at circ@res at other}}
 	% Grid dashes: calculations
 	\pgf at xb=2\pgf at circ@res at right
 	\pgf at circ@res at step=\ctikzvalof{tubes/tube radius}\pgf at xb
-	\@tempcnta=\ctikzvalof{tubes/grid dashes}  % dashes*2+1
-	\multiply\@tempcnta by 2\relax
-	\advance\@tempcnta by 1\relax
+	\pgf at circ@count at a=\ctikzvalof{tubes/grid dashes}  % dashes*2+1
+	\multiply\pgf at circ@count at a by 2\relax
+	\advance\pgf at circ@count at a by 1\relax
 	\advance\pgf at circ@res at step by -\pgf at xa
-	\divide\pgf at circ@res at step by \@tempcnta
+	\divide\pgf at circ@res at step by \pgf at circ@count at a
 	% Grid dashes: draw
 	\pgf at circ@res at temp=\pgf at xa
-	\@tempcnta=\ctikzvalof{tubes/grid dashes}
+	\pgf at circ@count at a=\ctikzvalof{tubes/grid dashes}
 	\loop
-		\advance\pgf at circ@res at temp by\pgf at circ@res at step
-		\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdima}}
-		\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdima}}
-		\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdimb}}
-		\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdimb}}
-		\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\@tempdimc}}
-		\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\@tempdimc}}
-		\advance\pgf at circ@res at temp by\pgf at circ@res at step
-		\advance\@tempcnta by-1
-		\ifnum\@tempcnta>0\relax
+	\advance\pgf at circ@res at temp by\pgf at circ@res at step
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdima}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdima}}
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdimb}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdimb}}
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgf at circ@res at other}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgf at circ@res at other}}
+	\advance\pgf at circ@res at temp by\pgf at circ@res at step
+	\advance\pgf at circ@count at a by-1
+	\ifnum\pgf at circ@count at a>0\relax
 	\repeat
 }
 
+\pgfcircdeclaretube{pentode suppressor to cathode}
+{
+	\anchor{grid} {% should not be used
+		\northwest
+		\pgfutil at tempdima=\pgf at y
+		\pgf at y=-\ctikzvalof{tubes/grid separation}\pgf at y
+		\advance\pgf at y by \ctikzvalof{tubes/grid shift}\pgfutil at tempdima
+	}
+	\anchor{control} {%
+		\northwest
+		\pgfutil at tempdima=\pgf at y
+		\pgf at y=-\ctikzvalof{tubes/grid separation}\pgf at y
+		\advance\pgf at y by \ctikzvalof{tubes/grid shift}\pgfutil at tempdima
+	}
+	\anchor{screen} {%
+		\northwest
+		\pgf at y=\ctikzvalof{tubes/grid shift}\pgf at y
+	}
+}
+{
+	% Grid x/y points
+	\pgf at xa=-\ctikzvalof{tubes/tube radius}\pgf at circ@res at right
+	\advance\pgf at xa by -\ctikzvalof{tubes/grid protrusion}\pgf at circ@res at right
+	\pgfutil at tempdima=\ctikzvalof{tubes/grid separation}\pgf at circ@res at up
+	\pgfutil at tempdimb=-\pgfutil at tempdima
+	\advance\pgfutil at tempdima by \ctikzvalof{tubes/grid shift}\pgf at circ@res at up
+	\advance\pgfutil at tempdimb by \ctikzvalof{tubes/grid shift}\pgf at circ@res at up
+	\pgf at circ@res at other=\ctikzvalof{tubes/grid shift}\pgf at circ@res at up
+	% Grid protrusion
+	\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at right}{\pgfutil at tempdimb}}
+	\pgfpathlineto{\pgfpoint{\pgf at xa}{\pgfutil at tempdimb}}
+	\pgfpathmoveto{\pgfpoint{-\pgf at circ@res at right}{\pgf at circ@res at other}}
+	\pgfpathlineto{\pgfpoint{\pgf at xa}{\pgf at circ@res at other}}
+	% Grid dashes: calculations
+	\pgf at xb=2\pgf at circ@res at right
+	\pgf at circ@res at step=\ctikzvalof{tubes/tube radius}\pgf at xb
+	\pgf at circ@count at a=\ctikzvalof{tubes/grid dashes}  % dashes*2+1
+	\multiply\pgf at circ@count at a by 2\relax
+	\advance\pgf at circ@count at a by 1\relax
+	\advance\pgf at circ@res at step by -\pgf at xa
+	\divide\pgf at circ@res at step by \pgf at circ@count at a
+	% Grid dashes: draw
+	\pgf at circ@res at temp=\pgf at xa
+	\pgf at circ@count at a=\ctikzvalof{tubes/grid dashes}
+	\loop
+	\advance\pgf at circ@res at temp by\pgf at circ@res at step
+	\ifnum\pgf at circ@count at a>1\relax
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdimb}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdimb}}
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgf at circ@res at other}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgf at circ@res at other}}
+	\fi
+	\pgfpathmoveto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdima}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp+\pgf at circ@res at step}{\pgfutil at tempdima}}
+	\advance\pgf at circ@res at temp by\pgf at circ@res at step
+	\advance\pgf at circ@count at a by-1
+	\ifnum\pgf at circ@count at a>0\relax
+	\repeat
+	% Grid: connection from suppressor to cathode
+	\pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf at circ@res at up}{\ctikzvalof{tubes/cathode corners}\pgf at circ@res at up}}
+	\pgfpathlineto{\pgfpoint{\pgf at circ@res at temp}{\pgfutil at tempdima-2*\ctikzvalof{tubes/grid separation}\pgf at circ@res at up}}
+	\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf at circ@res at right-0.4142136*\ctikzvalof{tubes/cathode corners}\pgf at circ@res at right}{-\ctikzvalof{tubes/cathode distance}\pgf at circ@res at up-0.4142136*\ctikzvalof{tubes/cathode corners}\pgf at circ@res at up}}
+	
+}
+
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty	2019-07-13 21:39:16 UTC (rev 51633)
+++ trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty	2019-07-13 21:39:36 UTC (rev 51634)
@@ -9,8 +9,8 @@
 
 \NeedsTeXFormat{LaTeX2e}
 
-\def\pgfcircversion{0.9.2}
-\def\pgfcircversiondate{2019/06/21}
+\def\pgfcircversion{0.9.3}
+\def\pgfcircversiondate{2019/07/13}
 
 \ProvidesPackage{circuitikz}%
 [\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion]
@@ -344,7 +344,7 @@
 \input pgfcirccurrent.tex
 \input pgfcircflow.tex
 
-% notice that the default is nooldvoltagedirections; it's not explicitly set to allow for the warning
+% notice that the default is nooldvoltagedirection; it's not explicitly set to allow for the warning
 \ExecuteOptions{nofetbodydiode, nofetsolderdot, europeancurrents, europeanvoltages,americanports, americanresistors, cuteinductors ,europeangfsurgearrester, nosiunitx, noarrowmos, smartlabels}
 
 \ProcessOptions\relax
@@ -360,7 +360,7 @@
 \ifpgf at circ@explicitvdir\else
     \PackageWarningNoLine{circuitikz}{%
         You did not specify one of the voltage directions:\MessageBreak
-        \space\space    oldvoltagedirections, nooldvoltagedirections, \MessageBreak
+        \space\space    oldvoltagedirection, nooldvoltagedirection, \MessageBreak
         \space\space    RPvoltages or EFvoltages \MessageBreak
         Default directions may have changed, \MessageBreak
         please check the manual%



More information about the tex-live-commits mailing list