texlive[68502] Master/texmf-dist: circuitikz (10oct23)

commits+karl at tug.org commits+karl at tug.org
Tue Oct 10 22:24:20 CEST 2023


Revision: 68502
          https://tug.org/svn/texlive?view=revision&revision=68502
Author:   karl
Date:     2023-10-10 22:24:20 +0200 (Tue, 10 Oct 2023)
Log Message:
-----------
circuitikz (10oct23)

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/pgfcircbipoles.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	2023-10-10 20:23:51 UTC (rev 68501)
+++ trunk/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md	2023-10-10 20:24:20 UTC (rev 68502)
@@ -1,6 +1,18 @@
 <!--- 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 1.6.4 (2023-10-10)
+
+    A bit of enhancement and fixes for the European-style logic ports, more switches (and a bit more configurabilityi for them), more option for some sources.
+
+    - The symbol in European logic ports is now rotation-invariant, and its font can be customized (suggested by [user `@sputeanus` on GitHub](https://github.com/circuitikz/circuitikz/issues/730))
+    - Added a couple of "blank" (no symbol) European logic ports
+    - Added new "traditional" switches (contributed by [Jakob "DraUX" on GitHub](https://github.com/circuitikz/circuitikz/issues/734))
+    - Added configurability (color, thickness, dash) to switch arrows
+    - Added "eyw"-symbol (reverse star) for "oo"-type sources (contributed by [Jakob "DraUX" on GitHub](https://github.com/circuitikz/circuitikz/pull/742))
+    - Added configurable open shape to the sinusoidal current source (contributed by [Maximilian Martin](https://github.com/circuitikz/circuitikz/pull/737))
+    - Documentation fixes
+
 * Version 1.6.3 (2023-06-23)
 
     The main change is that the definition of the "plus" and "minus" symbols used in several parts of the library has changed in order to achieve better alignment of voltages and amplifier symbols when using fonts different from Computer Modern.
@@ -9,7 +21,7 @@
     - Change the definition of the "minus" symbol (see [this issue](https://github.com/circuitikz/circuitikz/issues/721)) for details
     - Add documentation on how to contact the border of the source symbols (suggested by [user `@Tipounk` on GitHub](https://github.com/circuitikz/circuitikz/issues/722))
     - in transistors, solder dots and connection dots for body diodes [are now configurable](https://github.com/circuitikz/circuitikz/issues/720)
-    - Add anchors for the symbols on the `oo`-type sources, suggested [by user @lapreindl on GitHub](https://github.com/circuitikz/circuitikz/issues/725); the symbols have been slightly changed and repositioned in the process
+    - Add anchors for the symbols on the `oo`-type sources, suggested by [user `@lapreindl` on GitHub](https://github.com/circuitikz/circuitikz/issues/725); the symbols have been slightly changed and repositioned in the process
     - several documentation fixes
 
 * Version 1.6.2 (2023-05-13)

Modified: trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex	2023-10-10 20:23:51 UTC (rev 68501)
+++ trunk/Master/texmf-dist/doc/latex/circuitikz/changelog.tex	2023-10-10 20:24:20 UTC (rev 68502)
@@ -5,6 +5,41 @@
 
 \begin{itemize}
 \item
+  Version 1.6.4 (2023-10-10)
+
+  A bit of enhancement and fixes for the European-style logic ports,
+  more switches (and a bit more configurabilityi for them), more option
+  for some sources.
+
+  \begin{itemize}
+  \tightlist
+  \item
+    The symbol in European logic ports is now rotation-invariant, and
+    its font can be customized (suggested by
+    \href{https://github.com/circuitikz/circuitikz/issues/730}{user
+    \texttt{@sputeanus} on GitHub})
+  \item
+    Added a couple of ``blank'' (no symbol) European logic ports
+  \item
+    Added new ``traditional'' switches (contributed by
+    \href{https://github.com/circuitikz/circuitikz/issues/734}{Jakob
+    ``DraUX'' on GitHub})
+  \item
+    Added configurability (color, thickness, dash) to switch arrows
+  \item
+    Added ``eyw''-symbol (reverse star) for ``oo''-type sources
+    (contributed by
+    \href{https://github.com/circuitikz/circuitikz/pull/742}{Jakob
+    ``DraUX'' on GitHub})
+  \item
+    Added configurable open shape to the sinusoidal current source
+    (contributed by
+    \href{https://github.com/circuitikz/circuitikz/pull/737}{Maximilian
+    Martin})
+  \item
+    Documentation fixes
+  \end{itemize}
+\item
   Version 1.6.3 (2023-06-23)
 
   The main change is that the definition of the ``plus'' and ``minus''
@@ -31,10 +66,10 @@
     configurable}
   \item
     Add anchors for the symbols on the \texttt{oo}-type sources,
-    suggested
-    \href{https://github.com/circuitikz/circuitikz/issues/725}{by user
-    @lapreindl on GitHub}; the symbols have been slightly changed and
-    repositioned in the process
+    suggested by
+    \href{https://github.com/circuitikz/circuitikz/issues/725}{user
+    \texttt{@lapreindl} on GitHub}; the symbols have been slightly
+    changed and repositioned in the process
   \item
     several documentation fixes
   \end{itemize}
@@ -218,7 +253,7 @@
     B. Cameron, user \texttt{@cameroncb1} on GitHub)
   \item
     Added Shockley diode (suggested by
-    \href{https://tex.stackexchange.com/questions/646039/creating-a-shockley-diode-in-circuitikz}{@dauph})
+    {[}@dauph{]}(https://tex.stackexchange.com/questions/646039/creating-a-shockley-diode-in-circuitikz))
   \end{itemize}
 \item
   Version 1.5.2 (2022-05-08)
@@ -1396,7 +1431,7 @@
   \item
     Fixed varcap symbol at small scalings
   \item
-    New packet-option ``straightvoltages, to draw straight(no curved)
+    New packet-option "straightvoltages, to draw straight(no curved)
     voltage arrows
   \item
     New option ``invert'' to revert the node direction at paths

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	2023-10-10 20:23:51 UTC (rev 68501)
+++ trunk/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex	2023-10-10 20:24:20 UTC (rev 68502)
@@ -2500,7 +2500,7 @@
 
 \subsubsection{Diode customizations}\label{sec:tweak-d}
 
-You can change the scale of the diodes by setting the key \texttt{diodes/scale}  to something different from the default \texttt{1.0}. In Romano's opinion, diodes are somewhat big with the default style of the package, so a setting like \verb|\ctikzset{diode/scale=0.6}| is recommended.
+You can change the scale of the diodes by setting the key \texttt{diodes/scale}  to something different from the default \texttt{1.0}. In Romano's opinion, diodes are somewhat big with the default style of the package, so a setting like \verb|\ctikzset{diodes/scale=0.6}| is recommended.
 
 \begin{LTXexample}[varwidth=true]
 \begin{circuitikz}
@@ -2590,6 +2590,8 @@
     \circuitdescbip{battery}{Battery}{}
     \circuitdescbip{battery1}{Single battery cell}{}
     \circuitdescbip{battery2}{Single battery cell}{}
+    \circuitdescbip{baertty}{Randall Munroe's baertty\footnotemark}{}
+    \footnotetext{\href{https://xkcd.com/2818}{Mandatory xkcd}}
 \end{groupdesc}
 
 \subsubsection{Stationary sources}
@@ -2609,17 +2611,20 @@
 \end{framed}
 
 
-\subsubsection{Sinusoidal sources}\label{sec:sinusoidal-vi} These two are basically the same symbol; to distinguish among them, you have to add a label, which will be a voltage or a current.
+\subsubsection{Sinusoidal sources}\label{sec:sinusoidal-vi} These two are basically the same symbol; to distinguish among them, you have to add a label, which will be a voltage or a current. Another option would be to configure the \texttt{sinusoidal current source} as an open shape using \texttt{\textbackslash ctikzset\string{bipoles/isourcesin/angle=80\string}} similar to the \texttt{dcisource} in section~\ref{sec:dc-sources}.
 
 \begin{groupdesc}
     \circuitdescbip*[vsourcesin]{sinusoidal voltage source}{Sinusoidal voltage source}{vsourcesin, sV}
-    \circuitdescbip*[isourcesin]{sinusoidal current source}{Sinusoidal current source}{isourcesin, sI}
+    \circuitdescbip*[isourcesin]{sinusoidal current source}{Sinusoidal current source\footnotemark}{isourcesin, sI}
+      \footnotetext{The configurable open shape of the \texttt{sinusoidal current source} has been added by \href{https://github.com/circuitikz/circuitikz/pull/737}{Maximilian Martin}}.
 \end{groupdesc}
 
 \begin{LTXexample}[varwidth=true]
 \begin{circuitikz}[american]
-   \draw (0,1) to[sV=$V$] ++(3,0);
-   \draw (0,0) to[sI=$I$] ++(3,0);
+   \draw (0,2) to[sV=$V$] ++(3,0);
+   \draw (0,1) to[sI=$I$] ++(3,0);
+   \ctikzset{bipoles/isourcesin/angle=80}
+   \draw (0,0) to[sI] ++(3,0);
 \end{circuitikz}
 \end{LTXexample}
 
@@ -2714,13 +2719,13 @@
     \endgroup
 \end{groupdesc}
 
-The transformer shapes vector group options can be specified for the primary (\texttt{prim=\emph{value}}), the secondary (\texttt{sec=\emph{value}}) and tertiary (\texttt{tert=\emph{value}}) three-phase vector groups: the value can be one of \texttt{delta}, \texttt{wye} and \texttt{zig}.
+The transformer shapes vector group options can be specified for the primary (\texttt{prim=\emph{value}}), the secondary (\texttt{sec=\emph{value}}) and tertiary (\texttt{tert=\emph{value}}) three-phase vector groups: the value can be one of \texttt{delta}, \texttt{wye}, \texttt{eyw}\footnote{The \texttt{eyw} symbol was suggested by \href{https://github.com/circuitikz/circuitikz/pull/742}{Jakob «DraUX» on GitHub}} and \texttt{zig}.
 
 \begin{LTXexample}[varwidth=true]
 \begin{circuitikz}
     \draw (0,0) to[oosourcetrans, prim=zig, sec=delta, o-] ++(2,0)
     to[oosourcetrans, prim=delta, sec=wye,-o] ++(0,-2)
-    to[ooosource, prim=wye, sec=zig, tert=delta] (0,0);
+    to[ooosource, prim=eyw, sec=zig, tert=delta] (0,0);
 \end{circuitikz}
 \end{LTXexample}
 
@@ -2731,7 +2736,7 @@
     smalldot/.style={draw, circle,red, inner sep=0.2pt}]
     \draw (0,0) to[oosourcetrans, name=A,
             prim=delta, sec=wye] ++(1,0)
-        to[ooosource, name=B, prim=wye, sec=zig,
+        to[ooosource, name=B, prim=eyw, sec=zig,
             tert=delta] ++(1,0)
         (A.symbolsec) -- ++(-45:0.5) node[ground]{};
     \node [smalldot] at (A.symbolprim) {};
@@ -2778,7 +2783,7 @@
 \end{tikzpicture}
 \end{LTXexample}
 
-\subsubsection{DC sources}
+\subsubsection{DC sources}\label{sec:dc-sources}
 \begin{groupdesc}
     \circuitdescbip*{dcvsource}{DC voltage source}{}
     \circuitdescbip*{dcisource}{DC current source}{}
@@ -2851,9 +2856,9 @@
 \end{LTXexample}
 
 \paragraph{Three-phase symbols.}
-The three-phase symbols \texttt{delta}, \texttt{wye}, and \texttt{zig} follows the line thickness exactly as
+The three-phase symbols \texttt{delta}, \texttt{wye}, \texttt{eyw}, and \texttt{zig} follows the line thickness exactly as
 the waveform ones (see above). Additionally, you can scale them up and down by changing the value of the keys
-\texttt{sources/symbol/delta scale}, \texttt{.../wye scale}, and \texttt{.../zig scale} (default \texttt{1}).
+\texttt{sources/symbol/delta scale}, \texttt{.../wye scale}, \texttt{.../eyw scale}, and \texttt{.../zig scale} (default \texttt{1}).
 
 \begin{LTXexample}[varwidth=true]
 \begin{circuitikz}[scale=1.8, transform shape]
@@ -5728,6 +5733,11 @@
     \circuitdescbip[ospst]{opening switch}{Opening switch}{ospst}
     \circuitdescbip[nos]{normal open switch}{Normally open switch}{nos}
     \circuitdescbip[ncs]{normal closed switch}{Normally closed switch}{ncs}
+    \circuitdescbip[oncs]{opening normal closed switch}{Opening normally closed switch}{oncs}
+    \circuitdescbip[cncs]{closing normal closed switch}{Closing normally closed switch}{cncs}
+    \circuitdescbip[onos]{opening normal open switch}{Opening normally open switch}{onos}
+    \circuitdescbip[cnos]{closing normal open switch}{Closing normally open switch\footnotemark}{cnos}
+    \footnotetext{These last four were contributed by \href{https://tex.stackexchange.com/questions/693446/new-switch-components-for-circuitikz}{Jakob «DraUX»}}
     \circuitdescbip[pushbutton]{push button}{Normally open push button}{normally open push button, nopb}(tip/0/0.2)
     \circuitdescbip[ncpushbutton]{normally closed push button}{Normally closed push button}{ncpb}(tip/0/0.2)
     \circuitdescbip[pushbuttonc]{normally open push button closed}{Normally open push button (in closed position)}{nopbc}(tip/0/0.2)
@@ -6035,7 +6045,33 @@
 \end{circuitikz}
 \end{LTXexample}
 
+You can also have the option to change the color, relative thickness, and dash pattern  by setting keys with the \verb!\ctikzset! command under the \texttt{switch arrows} hierarchy. The available keys are:
 
+\begin{center}
+    \begin{tabular}{>{\ttfamily}l>{\ttfamily}lp{0.5\linewidth}}
+        \toprule
+     parameter &  default & description  \\
+     \midrule
+     relative thickness & 1.0 & multiply the class thickness \\
+     color & default & stroke color: \texttt{default} is the same as the component \\
+     dash & default & dash pattern: \texttt{default} means not to change the setting for the component; \texttt{none} means unbroken line; every other input is a dash pattern.\footnotemark \\
+        \bottomrule
+    \end{tabular}
+    \footnotetext{Follows the syntax of the pattern sequence \texttt{\textbackslash pgfsetdash} --- see \TikZ{} manual for details; phase is always zero. Basically you pass pairs of dash-length -- blank-length dimensions, see the examples.}
+\end{center}
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}
+\draw (0,2) to[spst] ++(1,0) to[cogsw]
+    ++(1,0) to[oncs] ++(1,0);
+\ctikzset{switch arrows/color=red}
+\ctikzset{switch arrows/relative thickness=0.5}
+\ctikzset{switch arrows/dash={{1pt}{1pt}}}
+\draw (0,0) to[spst] ++(1,0) to[cogsw, switch arrows/dash=none]
+    ++(1,0) to[oncs, switch arrows/color=blue] ++(1,0);
+\end{circuitikz}
+\end{LTXexample}
+
 \paragraph{Rotary switch arrows.} You can change the rotary switch arrow shape in the same way as you change the ones in regular switches. Notice however that if you set either \texttt{switch end arrow} or \texttt{switch start arrow} they will be followed only if you have set both arrows with \texttt{<->} or equivalent, otherwise just one will be used.
 
 \begin{LTXexample}[varwidth=true, pos=t]
@@ -6207,6 +6243,8 @@
     \circuitdesc*{european xnor port}{European \textsc{xnor} port}{}
     \circuitdesc*{european buffer port}{European \textsc{buffer} port}{}
     \circuitdesc*{european not port}{European \textsc{not} port}{}
+    \circuitdesc*{european blank port}{European blank port}{A}
+    \circuitdesc*{european blank not port}{European blank not port}{B}
 \end{groupdesc}
 
 \begin{framed}
@@ -6767,8 +6805,31 @@
 
 \subsubsection{European logic port usage}
 
-European logic port are the same class as american and IEEE-style ones, and they obey the same class modifier. Moreover, you can use the \texttt{no inputs pin} as in the other logic ports to suppress input pins.
+European logic port are in the same class as american and IEEE-style ones, and they obey the same class modifier. Moreover, you can use the \texttt{no inputs pin} as in the other logic ports to suppress input pins.
 
+The standard text inside the port does not rotate (not flip) with the component\footnote{since \texttt{1.6.4}, thanks to a suggestion by \href{https://github.com/circuitikz/circuitikz/issues/730}{user \texttt{@sputeanus} on GitHub}.}, but you can change the font (and color and so on) with the key \texttt{european ports font} (default nothing, which means it uses the standard font and color).
+For more complex customization, you can use the two ``blank'' European ports, and add the text you want on them.
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{tikzpicture}
+    \ctikzset{
+        logic ports=european,
+        logic ports origin=center,
+        logic ports/scale=1.5,
+        tripoles/european not symbol=ieee circle,
+    }
+    % Draw the Nand with big AND symbol
+    \ctikzset{european ports font=\Huge\color{red}}
+    \draw(0,0) node [nand port, rotate=90,
+        number inputs=4]{};
+    \draw(3,0) node [nand port, xscale=-1]{};
+    % the un-rotation is not automatic for node text!
+    \draw(0,-3) node [blank port, rotate=90,
+        ]{\rotatebox{-90}{\Huge ?}};
+    \draw(3,-3) node [blank not port, xscale=-1]{?};
+\end{tikzpicture}
+\end{LTXexample}
+
 \paragraph{European logic port customization} Normally the European-style logic port with inverted output are marked with a small triangle; if you want you can change it with the key \texttt{tripoles/european not symbol}; its default is \texttt{triangle} but you can set it to \texttt{circle} like in the following example. As you can see, the circle size is the same as the circuit poles; if you prefer the size used in the IEEE standard ports, you can use set it to \texttt{ieee circle}.
 
 \begin{LTXexample}[varwidth=true]
@@ -8994,7 +9055,7 @@
 \end{circuitikz}
 \end{LTXexample}
 
-These bipole nodes are added after the path is drawn, as every node in \TikZ\ --- this is the reason why they are always filled (with the main color the normal nodes, with white the open ones), in order to ``hide'' the wire below. You can override the fill color if you want; but notice that if you draw things in two different paths, you will have ``strange'' results; notice that in the second line of resistors the second wire is starting from the center of the white \texttt{ocirc} of the previous path.
+These bipole nodes are added \emph{after} any single path is drawn, as every node in \TikZ\ --- this is the reason why they are always filled (with the main color the normal nodes, with white the open ones), in order to ``hide'' the wire below. You can override the fill color if you want; but notice that if you draw things in two different paths, you will have ``strange'' results; notice that in the second line of resistors the second wire is starting from the center of the white \texttt{ocirc} of the previous path.
 
 \begin{LTXexample}[varwidth=true,
         pos=t
@@ -9112,7 +9173,7 @@
 
 \subsubsection{Transparent poles}\label{sec:transparent-poles}
 
-``Open-poles'' terminals (\texttt{ocirc}, \texttt{odiamondpole}, and \texttt{osquarepole}) are normally filled with the background color at full opacity. This is because, for simplicity of operation, the nodes are placed \emph{after} the wires are drawn and have to ``white-out'' the underlying lines.
+``Open-poles'' terminals (\texttt{ocirc}, \texttt{odiamondpole}, and \texttt{osquarepole}) are normally filled with the background color at full opacity. The is reason is that \TikZ{}, when stroking a path, places and draws the nodes \emph{after} the lines are drawn; that way the poles ``white-out'' the underlying lines. Clearly this works if the wires and poles are written \emph{in the same path command}, otherwise the explicit order is respected.
 
 Anyway, \emph{if you know what you are doing}, you can change it with the key \texttt{poles/open fill opacity} (with \verb|\ctikzset|) or the style \texttt{open poles opacity}. Notice that you will have artifacts if you don't use the border anchors of the poles to connect wires, and you need to do that by hand.
 

Modified: trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
===================================================================
--- trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex	2023-10-10 20:23:51 UTC (rev 68501)
+++ trunk/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex	2023-10-10 20:24:20 UTC (rev 68502)
@@ -16,8 +16,8 @@
 \startmodule[circuitikz]
 \usemodule[tikz]
 
-\def\pgfcircversion{1.6.3}
-\def\pgfcircversiondate{2023/06/23}
+\def\pgfcircversion{1.6.4}
+\def\pgfcircversiondate{2023/10/10}
 \writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
 
 

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex	2023-10-10 20:23:51 UTC (rev 68501)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex	2023-10-10 20:24:20 UTC (rev 68502)
@@ -1791,7 +1791,7 @@
     \ifx\pgf at temp\pgf at circ@temp%
         \pgf at circ@europeaninductor at path{#1}%
     \else%
-        \pgfextra{	\def\pgf at temp{cute} }%
+        \pgfextra{  \def\pgf at temp{cute} }%
         \ifx\pgf at temp\pgf at circ@temp%
             \pgf at circ@cuteinductor at path{#1}%
         \else%
@@ -1813,7 +1813,7 @@
     \ifx\pgf at temp\pgf at circ@temp%
         \pgf at circ@veuropeaninductor at path{#1}%
     \else%
-        \pgfextra{	\def\pgf at temp{cute} }%
+        \pgfextra{  \def\pgf at temp{cute} }%
         \ifx\pgf at temp\pgf at circ@temp%
             \pgf at circ@vcuteinductor at path{#1}%
         \else%
@@ -1835,7 +1835,7 @@
     \ifx\pgf at temp\pgf at circ@temp%
         \pgf at circ@europeaninductivesens at path{#1}%
     \else%
-        \pgfextra{	\def\pgf at temp{cute} }%
+        \pgfextra{  \def\pgf at temp{cute} }%
         \ifx\pgf at temp\pgf at circ@temp%
             \pgf at circ@cuteinductivesens at path{#1}%
         \else%
@@ -1884,6 +1884,7 @@
 \ctikzset{bipoles/vsourceam/height/.initial=.60}
 \ctikzset{bipoles/vsourceam/width/.initial=.60}
 \ctikzset{bipoles/vsourceam/margin/.initial=.7}
+\ctikzset{bipoles/isourcesin/angle/.initial=90}
 \ctikzset{bipoles/isourcesin/height/.initial=.60}
 \ctikzset{bipoles/isourcesin/width/.initial=.60}
 \ctikzset{bipoles/vsourcesin/height/.initial=.60}
@@ -1914,7 +1915,7 @@
 % noise sources
 \ctikzset{bipoles/noise sources/fillcolor/.initial=gray!50}
 
-% for special symbols in the sources: sin, square, triangle, delta, wye, zig, etc.
+% for special symbols in the sources: sin, square, triangle, delta, wye, eyw, zig, etc.
 \ctikzset{sources/symbol/thickness/.initial={1}}
 \ctikzset{csources/symbol/thickness/.initial={1}}
 \ctikzset{sources/symbol/rotate/.initial={90}}
@@ -1936,28 +1937,34 @@
 % % % primary windings
 \newif\ifpgf at circ@prim at delta
 \newif\ifpgf at circ@prim at wye
+\newif\ifpgf at circ@prim at eyw
 \newif\ifpgf at circ@prim at zig
 \pgfkeys{tikz/prim/.is choice}
 \pgfkeys{tikz/prim/delta/.add code={}{\pgf at circ@prim at deltatrue}}
 \pgfkeys{tikz/prim/wye/.add code={}{\pgf at circ@prim at wyetrue}}
+\pgfkeys{tikz/prim/eyw/.add code={}{\pgf at circ@prim at eywtrue}}
 \pgfkeys{tikz/prim/zig/.add code={}{\pgf at circ@prim at zigtrue}}
 
 % % % secondary windings
 \newif\ifpgf at circ@sec at delta
 \newif\ifpgf at circ@sec at wye
+\newif\ifpgf at circ@sec at eyw
 \newif\ifpgf at circ@sec at zig
 \pgfkeys{tikz/sec/.is choice}
 \pgfkeys{tikz/sec/delta/.add code={}{\pgf at circ@sec at deltatrue}}
 \pgfkeys{tikz/sec/wye/.add code={}{\pgf at circ@sec at wyetrue}}
+\pgfkeys{tikz/sec/eyw/.add code={}{\pgf at circ@sec at eywtrue}}
 \pgfkeys{tikz/sec/zig/.add code={}{\pgf at circ@sec at zigtrue}}
 
 % % % tertiary windings (ooosource)
 \newif\ifpgf at circ@tert at delta
 \newif\ifpgf at circ@tert at wye
+\newif\ifpgf at circ@tert at eyw
 \newif\ifpgf at circ@tert at zig
 \pgfkeys{tikz/tert/.is choice}
 \pgfkeys{tikz/tert/delta/.add code={}{\pgf at circ@tert at deltatrue}}
 \pgfkeys{tikz/tert/wye/.add code={}{\pgf at circ@tert at wyetrue}}
+\pgfkeys{tikz/tert/eyw/.add code={}{\pgf at circ@tert at eywtrue}}
 \pgfkeys{tikz/tert/zig/.add code={}{\pgf at circ@tert at zigtrue}}%
 
 % nullator and norator
@@ -2078,11 +2085,38 @@
     \pgfusepath{draw}
 }
 
+%%%
+%%% https://xkcd.com/2818/
+%%% Also https://chat.stackexchange.com/transcript/message/64238058#64238058
+%%%
+\pgfcircdeclarebipolescaled{batteries}
+{}
+{\ctikzvalof{bipoles/battery/height}}
+{baertty}
+{\ctikzvalof{bipoles/battery/height}}
+{\ctikzvalof{bipoles/battery/width}}
+{
+    \pgf at circ@res at step = \ctikzvalof{bipoles/battery/width}\pgf at circ@scaled at Rlen
+    \divide \pgf at circ@res at step by 6
+    \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{.5\pgf at circ@res at up}}
+    \pgfpathlineto{\pgfpoint{\pgf at circ@res at left}{.5\pgf at circ@res at down}}
+    \pgfpathmoveto{\pgfpoint{-\pgf at circ@res at step}{.5\pgf at circ@res at up}}
+    \pgfpathlineto{\pgfpoint{-\pgf at circ@res at step}{.5\pgf at circ@res at down}}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at step}{\pgf at circ@res at up}}
+    \pgfpathlineto{\pgfpoint{\pgf at circ@res at step}{\pgf at circ@res at down}}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up}}
+    \pgfpathlineto{\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at down}}
+    \pgfusepath{draw}
+}
+\pgfcirc at activate@bipole at simple@opt{v}{baertty}{\circuitikzbasekey/bipole/is voltage=true,
+    \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
 %%%%%%%%%%%
 %% Round and diamond sources
 %%%%%%%%%%%
 
-% % % symbol drawing macros (NOT for delta, wye, zig)
+% % % symbol drawing macros (NOT for delta, wye, eyw, zig)
 \def\pgf at circ@sources at symbol@setup{% called in a pgfscope
     \edef\@@@auto{auto}\edef\@@@rotate{\ctikzvalof{\ctikzclass/symbol/rotate}}
     \ifx\@@@auto\@@@rotate
@@ -2397,6 +2431,7 @@
 % % % winding symbols
 \ctikzset{sources/symbol/delta scale/.initial={1}}
 \ctikzset{sources/symbol/wye scale/.initial={1}}
+\ctikzset{sources/symbol/eyw scale/.initial={1}}
 \ctikzset{sources/symbol/zig scale/.initial={1}}
 % triangle
 \def\pgf at circ@delta#1{
@@ -2436,6 +2471,24 @@
     \endpgfscope
 }
 
+% reverse star
+\def\pgf at circ@eyw#1{
+	\pgfscope
+		\pgftransformscale{-.015*\ctikzvalof{\ctikzclass/symbol/eyw scale}*\pgf at circ@res at left*#1}
+		\def\pgfcircmathresult{\expandafter\pgf at circ@stripdecimals\pgf at circ@direction\pgf at nil}
+			\pgftransformrotate{-\pgfcircmathresult}
+	
+		\pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+		\pgf at circ@set at relative@thickness{symbol/thickness}
+		\pgfpathmoveto{\pgfpoint{0}{\pgf at circ@res at up}}
+		\pgfpathlineto{\pgfpointorigin}
+		\pgfpathlineto{\pgfpointpolar{30}{\pgf at circ@res at down}}
+		\pgfpathmoveto{\pgfpointorigin}
+		\pgfpathlineto{\pgfpointpolar{150}{\pgf at circ@res at down}}
+		\pgfusepath{stroke}
+	\endpgfscope
+}
+
 % zigzag
 \def\pgf at circ@zig#1{
     \pgfscope
@@ -2514,6 +2567,12 @@
             \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf at circ@res at left}
             \pgf at circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
         \endpgfscope
+        
+        \else\ifpgf at circ@prim at eyw
+        \pgfscope
+        \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf at circ@res at left}
+        \pgf at circ@eyw{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+        \endpgfscope
 
     \else\ifpgf at circ@prim at zig
         \pgfscope
@@ -2520,7 +2579,7 @@
             \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf at circ@res at left}
             \pgf at circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
         \endpgfscope
-    \fi\fi\fi
+    \fi\fi\fi\fi
 
     %%secondary winding
     \ifpgf at circ@sec at delta
@@ -2534,6 +2593,12 @@
             \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf at circ@res at right}
             \pgf at circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
         \endpgfscope
+        
+        \else\ifpgf at circ@sec at eyw
+        \pgfscope
+        \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf at circ@res at right}
+        \pgf at circ@eyw{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+        \endpgfscope
 
     \else\ifpgf at circ@sec at zig
         \pgfscope
@@ -2540,7 +2605,7 @@
             \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf at circ@res at right}
             \pgf at circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
         \endpgfscope
-    \fi\fi\fi
+    \fi\fi\fi\fi
 }
 
 
@@ -2716,6 +2781,12 @@
             \pgftransformxshift{.6\pgf at circ@res at left}
             \pgf at circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
         \endpgfscope
+        
+        \else\ifpgf at circ@prim at eyw
+        \pgfscope
+        \pgftransformxshift{.6\pgf at circ@res at left}
+        \pgf at circ@eyw{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+        \endpgfscope
 
     \else\ifpgf at circ@prim at zig
         \pgfscope
@@ -2722,7 +2793,7 @@
             \pgftransformxshift{.6\pgf at circ@res at left}
             \pgf at circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
         \endpgfscope
-    \fi\fi\fi
+    \fi\fi\fi\fi
 
 % %     secondary winding
     \ifpgf at circ@sec at delta
@@ -2737,6 +2808,12 @@
             \pgftransformshift{\pgfpointpolar{60}{0.6\pgf at circ@res at right}}
             \pgf at circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
         \endpgfscope
+        
+        \else\ifpgf at circ@sec at eyw
+        \pgfscope
+        \pgftransformshift{\pgfpointpolar{60}{0.6\pgf at circ@res at right}}
+        \pgf at circ@eyw{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+        \endpgfscope
 
     \else\ifpgf at circ@sec at zig
         \pgfscope
@@ -2743,7 +2820,7 @@
             \pgftransformshift{\pgfpointpolar{60}{0.6\pgf at circ@res at right}}
             \pgf at circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
         \endpgfscope
-    \fi\fi\fi
+    \fi\fi\fi\fi
 
 % %     tertiary winding
     \ifpgf at circ@tert at delta
@@ -2757,6 +2834,12 @@
             \pgftransformshift{\pgfpointpolar{-60}{0.6\pgf at circ@res at right}}
             \pgf at circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
         \endpgfscope
+        
+        \else\ifpgf at circ@tert at eyw
+        \pgfscope
+        \pgftransformshift{\pgfpointpolar{-60}{0.6\pgf at circ@res at right}}
+        \pgf at circ@eyw{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+        \endpgfscope
 
     \else\ifpgf at circ@tert at zig
         \pgfscope
@@ -2763,7 +2846,7 @@
             \pgftransformshift{\pgfpointpolar{-60}{0.6\pgf at circ@res at right}}
             \pgf at circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
         \endpgfscope
-    \fi\fi\fi
+    \fi\fi\fi\fi
 }
 
 %% Independent current source - American
@@ -2788,7 +2871,7 @@
     \endpgfscope
 }
 
-%% Independent sinusoidal current source
+%% Independent sinusoidal current source with open shape
 \pgfcircdeclarebipolescaled{sources}
 {}
 {\ctikzvalof{bipoles/isource/height}}
@@ -2798,8 +2881,16 @@
 {
     \pgfpointorigin
     \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
-    \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf at circ@res at up}}{\pgfpoint{\pgf at circ@res at left}{0}}
-    \pgf at circ@draworfill
+    \pgfscope
+        \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf at circ@res at up}}{\pgfpoint{\pgf at circ@res at left}{0}}
+        \pgf at circ@maybefill
+    \endpgfscope
+    \edef\@@angle{\ctikzvalof{bipoles/isourcesin/angle}}
+    \pgfpathmoveto{\pgfpointpolar{\@@angle}{\pgf at circ@res at up}}
+    \pgfpatharc{\@@angle}{-\@@angle}{\pgf at circ@res at up}
+    \pgfpathmoveto{\pgfpointpolar{180-\@@angle}{\pgf at circ@res at up}}
+    \pgfpatharc{180-\@@angle}{180+\@@angle}{\pgf at circ@res at up}
+    \pgfusepath{draw}
 
     \pgf at circ@res at up = .5\pgf at circ@res at up
     \pgfscope
@@ -4635,6 +4726,17 @@
 \ctikzset{tripoles/toggleswitch/height/.initial=.8}
 \ctikzset{tripoles/toggleswitch/height 2/.initial=.0}
 \ctikzset{tripoles/toggleswitch/width/.initial=.80}
+%% arrow configurability
+\ctikzset{switch arrows/.is family}
+\ctikzset{switch arrows/relative thickness/.initial=1}
+\ctikzset{switch arrows/color/.initial=default}
+\ctikzset{switch arrows/dash/.initial=default}
+\def\pgf at circ@set at switcharrow@style{%
+    % You *must* be sure that this is called inside a \pgfscope!
+    \pgfsetlinewidth{\ctikzvalof{switch arrows/relative thickness}\pgflinewidth}
+    \pgf at circ@subset at color@dash{switch arrows}
+    \pgfcirc at set@arrows{switch}{}{latexslim}
+    }
 %%>>>
 
 %% Shapes Node for bipoles switches and similar things%<<<
@@ -4650,12 +4752,11 @@
     \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{0pt}}
     \pgfpathlineto{\pgfpoint{.6\pgf at circ@res at right}{\pgf at circ@res at up}}
     \pgfusepath{draw}
-
     \pgfscope
         \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}}
         \pgfpathmoveto{\pgfpointpolar{90}{1.2\pgf at circ@res at right}}
         \pgfpatharc{90}{-20}{1.2\pgf at circ@res at right}
-        \pgfcirc at set@arrows{switch}{}{latexslim}
+        \pgf at circ@set at switcharrow@style
         \pgfsetbeveljoin
         \pgfusepath{draw}
     \endpgfscope
@@ -4669,17 +4770,15 @@
 {\ctikzvalof{bipoles/spst/height}}
 {\ctikzvalof{bipoles/spst/width}}
 {
-
     \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
     \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{0pt}}
     \pgfpathlineto{\pgfpoint{.6\pgf at circ@res at right}{\pgf at circ@res at up}}
     \pgfusepath{draw}
-
     \pgfscope
         \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}}
         \pgfpathmoveto{\pgfpointpolar{-10}{1.2\pgf at circ@res at right}}
         \pgfpatharc{-10}{90}{1.2\pgf at circ@res at right}
-        \pgfcirc at set@arrows{switch}{}{latexslim}
+        \pgf at circ@set at switcharrow@style
         \pgfsetbeveljoin
         \pgfusepath{draw}
     \endpgfscope
@@ -4693,7 +4792,6 @@
 {\ctikzvalof{bipoles/nos/height}}
 {\ctikzvalof{bipoles/nos/width}}
 {
-
     \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
     \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{0pt}}
     \pgfpathlineto{\pgfpoint{.9\pgf at circ@res at right}{\pgf at circ@res at up}}
@@ -4720,6 +4818,118 @@
     \pgfusepath{draw}
 }
 
+% Opening normal closed Switch
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/ncs/depth}}
+{oncs}
+{\ctikzvalof{bipoles/ncs/height}}
+{\ctikzvalof{bipoles/ncs/width}}
+{
+    \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{0pt}}
+    \pgfpathlineto{\pgfpoint{.9\pgf at circ@res at right}{\pgf at circ@res at up}}
+    \pgfusepath{draw}
+    \pgfsetlinewidth{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{0pt}}
+    \pgfpathlineto{\pgfpoint{.2\pgf at circ@res at right}{0pt}}
+    \pgfpathlineto{\pgfpoint{.2\pgf at circ@res at right}{\pgf at circ@res at up}}
+    \pgfusepath{draw}
+    \pgfscope
+        \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+        \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}}
+        \pgfpathmoveto{\pgfpointpolar{-10}{.9\pgf at circ@res at right}}
+        \pgfpatharc{-10}{95}{.9\pgf at circ@res at right}
+        \pgf at circ@set at switcharrow@style
+        \pgfsetbeveljoin
+        \pgfusepath{draw}
+    \endpgfscope
+}
+
+%% Closing normal closed Switch
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/ncs/depth}}
+{cncs}
+{\ctikzvalof{bipoles/ncs/height}}
+{\ctikzvalof{bipoles/ncs/width}}
+{
+    \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{0pt}}
+    \pgfpathlineto{\pgfpoint{.9\pgf at circ@res at right}{\pgf at circ@res at up}}
+    \pgfusepath{draw}
+    \pgfsetlinewidth{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{0pt}}
+    \pgfpathlineto{\pgfpoint{.2\pgf at circ@res at right}{0pt}}
+    \pgfpathlineto{\pgfpoint{.2\pgf at circ@res at right}{\pgf at circ@res at up}}
+    \pgfusepath{draw}
+    \pgfscope
+        \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+        \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}}
+        \pgfpathmoveto{\pgfpointpolar{90}{.9\pgf at circ@res at right}}
+        \pgfpatharc{90}{-35}{.9\pgf at circ@res at right}
+        \pgf at circ@set at switcharrow@style
+        \pgfsetbeveljoin
+        \pgfusepath{draw}
+    \endpgfscope
+}
+
+%% Opening normal open Switch
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/ncs/depth}}
+{onos}
+{\ctikzvalof{bipoles/ncs/height}}
+{\ctikzvalof{bipoles/ncs/width}}
+{
+    \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{0pt}}
+    \pgfpathlineto{\pgfpoint{.9\pgf at circ@res at right}{\pgf at circ@res at up}}
+    \pgfusepath{draw}
+    \pgfsetlinewidth{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{0pt}}
+    \pgfpathlineto{\pgfpoint{.2\pgf at circ@res at right}{0pt}}
+    \pgfpathlineto{\pgfpoint{.2\pgf at circ@res at right}{.4\pgf at circ@res at up}}
+    \pgfusepath{draw}
+    \pgfscope
+        \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+        \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}}
+        \pgfpathmoveto{\pgfpointpolar{-10}{.9\pgf at circ@res at right}}
+        \pgfpatharc{-10}{95}{.9\pgf at circ@res at right}
+        \pgf at circ@set at switcharrow@style
+        \pgfsetbeveljoin
+        \pgfusepath{draw}
+    \endpgfscope
+}
+
+%% Closing normal open Switch
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/ncs/depth}}
+{cnos}
+{\ctikzvalof{bipoles/ncs/height}}
+{\ctikzvalof{bipoles/ncs/width}}
+{
+    \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{0pt}}
+    \pgfpathlineto{\pgfpoint{.9\pgf at circ@res at right}{\pgf at circ@res at up}}
+    \pgfusepath{draw}
+    \pgfsetlinewidth{\pgfstartlinewidth}
+    \pgfpathmoveto{\pgfpoint{\pgf at circ@res at right}{0pt}}
+    \pgfpathlineto{\pgfpoint{.2\pgf at circ@res at right}{0pt}}
+    \pgfpathlineto{\pgfpoint{.2\pgf at circ@res at right}{.4\pgf at circ@res at up}}
+    \pgfusepath{draw}
+    \pgfscope
+        \pgf at circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+        \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}}
+        \pgfpathmoveto{\pgfpointpolar{90}{.9\pgf at circ@res at right}}
+        \pgfpatharc{90}{-35}{.9\pgf at circ@res at right}
+        \pgf at circ@set at switcharrow@style
+        \pgfsetbeveljoin
+        \pgfusepath{draw}
+    \endpgfscope
+}
+
 %% Push Button
 \pgfcircdeclarebipolescaled{switches}
 {
@@ -4938,7 +5148,7 @@
     \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}} % in node
     \pgfpathmoveto{\pgfpointpolar{70}{1.2\pgf at circ@res at right}}
     \pgfpatharc{70}{-10}{1.2\pgf at circ@res at right}
-    \pgfcirc at set@arrows{switch}{}{latexslim}
+    \pgf at circ@set at switcharrow@style
     \pgfusepath{draw}
     }
 
@@ -4950,19 +5160,19 @@
     \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}} % in node
     \pgfpathmoveto{\pgfpointpolar{-10}{1.2\pgf at circ@res at right}}
     \pgfpatharc{-10}{60}{1.2\pgf at circ@res at right}
-    \pgfcirc at set@arrows{switch}{}{latexslim}
+    \pgf at circ@set at switcharrow@style
     \pgfusepath{draw}
     }
 
 \pgfcircdeclarebipole{
-	\anchor{out 1}{
-		\northeast
-		\pgf at y=0cm
-	}
-	\anchor{out 2}{
-		\northeast
-		\pgf at y=.8\pgf at y
-	}
+    \anchor{out 1}{
+        \northeast
+        \pgf at y=0cm
+    }
+    \anchor{out 2}{
+        \northeast
+        \pgf at y=.8\pgf at y
+    }
 }
 {\ctikzvalof{tripoles/toggleswitch/height 2}}
 {toggleswitch}
@@ -5235,10 +5445,12 @@
 {\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at up-1.5\pgf at circ@res at temp}}
 {
     \pgf at circ@setlinewidth{bipoles}{\pgflinewidth}
+    \pgfsetlinewidth{\ctikzvalof{switch arrows/relative thickness}\pgflinewidth}
+    \pgf at circ@subset at color@dash{switch arrows}
+    \pgfcirc at set@arrows{switch}{}{latexslim}
     \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}} % in node
     \pgfpathmoveto{\pgfpointpolar{70}{1.5\pgf at circ@res at right}}
     \pgfpatharc{70}{-50}{1.5\pgf at circ@res at right}
-    \pgfcirc at set@arrows{switch}{}{latexslim}
     \pgfusepath{draw}
 }
 
@@ -5246,8 +5458,10 @@
 {\pgfpoint{\pgf at circ@res at right}{0pt}}
 {
     \pgf at circ@setlinewidth{bipoles}{\pgflinewidth}
+    \pgfsetlinewidth{\ctikzvalof{switch arrows/relative thickness}\pgflinewidth}
+    \pgf at circ@subset at color@dash{switch arrows}
+    \pgfcirc at set@arrows{switch}{latexslim}{latexslim}
     \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}} % in node
-    \pgfcirc at set@arrows{switch}{latexslim}{latexslim}
     \pgfpathmoveto{\pgfpointpolar{-60}{1.5\pgf at circ@res at right}}
     \pgfpatharc{-60}{60}{1.5\pgf at circ@res at right}
     \pgfusepath{draw}
@@ -5257,10 +5471,12 @@
 {\pgfpoint{\pgf at circ@res at right}{\pgf at circ@res at down+1.5\pgf at circ@res at temp}}
 {
     \pgf at circ@setlinewidth{bipoles}{\pgflinewidth}
+    \pgfsetlinewidth{\ctikzvalof{switch arrows/relative thickness}\pgflinewidth}
+    \pgf at circ@subset at color@dash{switch arrows}
+    \pgfcirc at set@arrows{switch}{}{latexslim}
     \pgftransformshift{\pgfpoint{\pgf at circ@res at left}{0pt}} % in node
     \pgfpathmoveto{\pgfpointpolar{-50}{1.5\pgf at circ@res at right}}
     \pgfpatharc{-50}{70}{1.5\pgf at circ@res at right}
-    \pgfcirc at set@arrows{switch}{}{latexslim}
     \pgfusepath{draw}
 }
 % %>>>
@@ -5278,6 +5494,14 @@
 \pgfcirc at style@to at style{nos}{normal open switch}
 \pgfcirc at activate@bipole at simple{l}{ncs}
 \pgfcirc at style@to at style{ncs}{normal closed switch}
+\pgfcirc at activate@bipole at simple{l}{oncs}
+\pgfcirc at style@to at style{oncs}{opening normal closed switch}
+\pgfcirc at activate@bipole at simple{l}{cncs}
+\pgfcirc at style@to at style{cncs}{closing normal closed switch}
+\pgfcirc at activate@bipole at simple{l}{onos}
+\pgfcirc at style@to at style{onos}{opening normal open switch}
+\pgfcirc at activate@bipole at simple{l}{cnos}
+\pgfcirc at style@to at style{cnos}{closing normal open switch}
 
 \pgfcirc at activate@bipole{l}{pushbutton}{pushbutton}{push button}
 \pgfcirc at style@to at style{push button}{nopb}
@@ -6810,7 +7034,7 @@
 {\ctikzvalof{bipoles/american gas filled surge arrester/width}}{
 
     \pgfpathmoveto{\pgfpoint{\pgf at circ@res at left}{\pgf at circ@res at zero}}
-    \pgfpointorigin	\pgf at circ@res at other =  \pgf at x  \advance \pgf at circ@res at other by -\pgf at circ@res at up
+    \pgfpointorigin \pgf at circ@res at other =  \pgf at x  \advance \pgf at circ@res at other by -\pgf at circ@res at up
     \pgfpathlineto{\pgfpoint{\pgf at circ@res at other}{\pgf at circ@res at zero}}
     \pgfusepath{draw}
 

Modified: trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex	2023-10-10 20:23:51 UTC (rev 68501)
+++ trunk/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex	2023-10-10 20:24:20 UTC (rev 68502)
@@ -25,7 +25,8 @@
 %
 \pgfkeys{/tikz/number inputs/.initial=0}
 \pgfkeys{/tikz/number inputs/.default=0}
-
+% by default, use the default font (and color, etc.)
+\ctikzset{european ports font/.initial={}}
 \newif\ifpgf at circuit@europeanlogicport
 \ctikzset{logic ports/.is choice}
 \ctikzset{logic ports/european/.code= {\pgf at circuit@europeanlogicporttrue
@@ -37,6 +38,8 @@
     \tikzset{nand port/.style={shape=european nand port}}%
     \tikzset{nor port/.style={shape=european nor port}}%
     \tikzset{xnor port/.style={shape=european xnor port}}%
+    \tikzset{blank port/.style={shape=european blank port}}%
+    \tikzset{blank not port/.style={shape=european blank not port}}%
     % there is no Schmitt ports in european style (yet)
     \tikzset{schmitt port/.style={shape=schmitt}}%
     \tikzset{invschmitt port/.style={shape=invschmitt}}%
@@ -52,6 +55,9 @@
     \tikzset{xnor port/.style={shape=american xnor port}}%
     \tikzset{schmitt port/.style={shape=schmitt}}%
     \tikzset{invschmitt port/.style={shape=invschmitt}}%
+    %%% there are no blank ports for american (no sense to have them)
+    \tikzset{blank port/.style={shape=european blank port}}%
+    \tikzset{blank not port/.style={shape=european blank not port}}%
 }}
 
 \ctikzset{logic ports origin/.is choice}
@@ -70,6 +76,8 @@
     \ctikzset{tripoles/european xnor port/origin/.initial=0.8}%
     \ctikzset{tripoles/european buffer port/origin/.initial=0.8}%
     \ctikzset{tripoles/european not port/origin/.initial=0.8}%
+    \ctikzset{tripoles/european blank port/origin/.initial=0.8}%
+    \ctikzset{tripoles/european blank not port/origin/.initial=0.8}%
     }%
 }
 \ctikzset{logic ports origin/center/.code={%
@@ -87,6 +95,8 @@
     \ctikzset{tripoles/european xnor port/origin/.initial=0}%
     \ctikzset{tripoles/european buffer port/origin/.initial=0}%
     \ctikzset{tripoles/european not port/origin/.initial=0}%
+    \ctikzset{tripoles/european blank port/origin/.initial=0}%
+    \ctikzset{tripoles/european blank not port/origin/.initial=0}%
     }%
 }
 
@@ -195,7 +205,7 @@
 \ctikzset{tripoles/american xnor port/inputs/.initial=2}
 \ctikzset{tripoles/american xnor port/angle/.initial=70}
 \ctikzset{tripoles/american xnor port/inner/.initial=0.3}
-
+%
 \ctikzset{tripoles/european and port/width/.initial=1.4}
 \ctikzset{tripoles/european and port/height/.initial=.65}
 \ctikzset{tripoles/european and port/reserved/.initial=.6}
@@ -255,6 +265,21 @@
 \ctikzset{tripoles/european buffer port/inputs/.initial=1}%
 \ctikzset{tripoles/european not port/origin/.initial=0.8}
 \ctikzset{tripoles/european not port/inputs/.initial=1}%
+%% "blank" ports
+\ctikzset{tripoles/european blank port/width/.initial=1.4}
+\ctikzset{tripoles/european blank port/height/.initial=.65}
+\ctikzset{tripoles/european blank port/reserved/.initial=.6}
+\ctikzset{tripoles/european blank port/input height/.initial=.6}
+\ctikzset{tripoles/european blank not port/width/.initial=1.4}
+\ctikzset{tripoles/european blank not port/not height/.initial=.3}
+\ctikzset{tripoles/european blank not port/not width/.initial=.9}
+\ctikzset{tripoles/european blank not port/height/.initial=.65}
+\ctikzset{tripoles/european blank not port/reserved/.initial=.6}
+\ctikzset{tripoles/european blank not port/input height/.initial=.6}
+\ctikzset{tripoles/european blank port/origin/.initial=0.8}
+\ctikzset{tripoles/european blank port/inputs/.initial=2}
+\ctikzset{tripoles/european blank not port/origin/.initial=0.8}
+\ctikzset{tripoles/european blank not port/inputs/.initial=2}
 %%% parameters that are not used anymore after multi-input
 %%% gates --- left for compatibility of source code.
 \ctikzset{tripoles/american xor port/aaa/.initial=.6}
@@ -1547,8 +1572,11 @@
         \fi
         \pgf at circ@text at strokecolor
         \pgfpathmoveto{\pgfpointorigin}
-        \pgftext{#2}
-        %
+        \pgfscope
+            % text is always in standard direction
+            \pgftransformresetnontranslations
+            \pgftext{\ctikzvalof{european ports font}#2}%
+        \endpgfscope
         }
     }
 }
@@ -1560,7 +1588,8 @@
 \pgfcircdeclareeurologicport{nand}{\&}{\pgf at circ@res at count}{not}
 \pgfcircdeclareeurologicport{nor}{$\ge 1$}{\pgf at circ@res at count}{not}
 \pgfcircdeclareeurologicport{xnor}{$=1$}{\pgf at circ@res at count}{not}
-
+\pgfcircdeclareeurologicport{blank}{}{\pgf at circ@res at count}{}
+\pgfcircdeclareeurologicport{blank not}{}{\pgf at circ@res at count}{not}
 %% end european logic ports
 % %>>>
 

Modified: trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty	2023-10-10 20:23:51 UTC (rev 68501)
+++ trunk/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty	2023-10-10 20:24:20 UTC (rev 68502)
@@ -16,8 +16,8 @@
 \providecommand\DeclareRelease[3]{}
 \providecommand\DeclareCurrentRelease[2]{}
 
-\def\pgfcircversion{1.6.3}
-\def\pgfcircversiondate{2023/06/23}
+\def\pgfcircversion{1.6.4}
+\def\pgfcircversiondate{2023/10/10}
 
 \DeclareRelease{0.4}{2012/12/20}{circuitikz-0.4-body.tex}
 \DeclareRelease{v0.4}{2012/12/20}{circuitikz-0.4-body.tex}



More information about the tex-live-commits mailing list.