summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-10-10 20:24:20 +0000
committerKarl Berry <karl@freefriends.org>2023-10-10 20:24:20 +0000
commitb3cd1cdbf5aba4dcabafc0ba9a14d6338229b475 (patch)
tree2b6a456ec17d78e82f073fa0f65d42588ae776ad
parent970e6738b9e18ce765141f2d686aed9189736875 (diff)
circuitikz (10oct23)
git-svn-id: svn://tug.org/texlive/trunk@68502 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdfbin13465 -> 13459 bytes
-rw-r--r--Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md14
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/changelog.tex47
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdfbin1683675 -> 1695110 bytes
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex89
-rw-r--r--Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex4
-rw-r--r--Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex290
-rw-r--r--Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex39
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty4
9 files changed, 424 insertions, 63 deletions
diff --git a/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf b/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
index cb7c63ffd98..e7bc7af8505 100644
--- a/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
+++ b/Master/texmf-dist/doc/context/third/circuitikz/circuitikz-context.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md b/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
index ca14148f86a..1df2545c02c 100644
--- a/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
+++ b/Master/texmf-dist/doc/generic/circuitikz/CHANGELOG.md
@@ -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 @@ The major changes among the different CircuiTikZ versions are listed here. See <
- 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)
diff --git a/Master/texmf-dist/doc/latex/circuitikz/changelog.tex b/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
index 87c6966223f..a0c556df40e 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
+++ b/Master/texmf-dist/doc/latex/circuitikz/changelog.tex
@@ -5,6 +5,41 @@ full list of changes.
\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 @@ full list of changes.
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 @@ full list of changes.
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 @@ A detailed list of changes can be seen below.
\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
diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
index 89935d1d3b4..5eef804aa8f 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
+++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
index d331f510b5f..1982bca4525 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
+++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
@@ -2500,7 +2500,7 @@ Notice that you can set both \texttt{gto gate end arrow} and \texttt{gto gate st
\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 @@ Notice that source and generators are divided in three classes that can be style
\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 @@ Similarly, if (default behavior) \texttt{europeanvoltages} option is active (or
\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 @@ Notice that if you choose the dashed style, the noise sources are fillable:
\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 @@ These two ``sources'' have additional anchors that reach the center of the symbo
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 @@ The symbol shapes used here seems to be the most common in publications; if you
\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 @@ You can do the same with the \texttt{american controlled voltage sources}, subst
\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 @@ These are all of the to-style type:
\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,6 +6045,32 @@ You can change that globally or locally, as ever. The tip specification is the o
\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.
@@ -6207,6 +6243,8 @@ The transmission gate (also known as ``bowtie'') components are not described in
\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,7 +6805,30 @@ The anchors for the tgate's control point are called \texttt{gate} and \texttt{n
\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}.
@@ -8994,7 +9055,7 @@ You can add nodes to the bipoles, positioned at the coordinates surrounding the
\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 @@ There are several predefined shorthand as the above; in the following pages you
\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.
diff --git a/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex b/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
index 44cf1e70ada..e76a91d9570 100644
--- a/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
+++ b/Master/texmf-dist/tex/context/third/circuitikz/t-circuitikz.tex
@@ -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}
diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex
index 1acb5a8d652..82e841212ae 100644
--- a/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex
+++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcircbipoles.tex
@@ -1791,7 +1791,7 @@
\ifx\pgf@temp\pgf@circ@temp%
\pgf@circ@europeaninductor@path{#1}%
\else%
- \pgfextra{ \def\pgf@temp{cute} }%
+ \pgfextra{ \def\pgf@temp{cute} }%
\ifx\pgf@temp\pgf@circ@temp%
\pgf@circ@cuteinductor@path{#1}%
\else%
@@ -1813,7 +1813,7 @@
\ifx\pgf@temp\pgf@circ@temp%
\pgf@circ@veuropeaninductor@path{#1}%
\else%
- \pgfextra{ \def\pgf@temp{cute} }%
+ \pgfextra{ \def\pgf@temp{cute} }%
\ifx\pgf@temp\pgf@circ@temp%
\pgf@circ@vcuteinductor@path{#1}%
\else%
@@ -1835,7 +1835,7 @@
\ifx\pgf@temp\pgf@circ@temp%
\pgf@circ@europeaninductivesens@path{#1}%
\else%
- \pgfextra{ \def\pgf@temp{cute} }%
+ \pgfextra{ \def\pgf@temp{cute} }%
\ifx\pgf@temp\pgf@circ@temp%
\pgf@circ@cuteinductivesens@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@circ@prim@delta
\newif\ifpgf@circ@prim@wye
+\newif\ifpgf@circ@prim@eyw
\newif\ifpgf@circ@prim@zig
\pgfkeys{tikz/prim/.is choice}
\pgfkeys{tikz/prim/delta/.add code={}{\pgf@circ@prim@deltatrue}}
\pgfkeys{tikz/prim/wye/.add code={}{\pgf@circ@prim@wyetrue}}
+\pgfkeys{tikz/prim/eyw/.add code={}{\pgf@circ@prim@eywtrue}}
\pgfkeys{tikz/prim/zig/.add code={}{\pgf@circ@prim@zigtrue}}
% % % secondary windings
\newif\ifpgf@circ@sec@delta
\newif\ifpgf@circ@sec@wye
+\newif\ifpgf@circ@sec@eyw
\newif\ifpgf@circ@sec@zig
\pgfkeys{tikz/sec/.is choice}
\pgfkeys{tikz/sec/delta/.add code={}{\pgf@circ@sec@deltatrue}}
\pgfkeys{tikz/sec/wye/.add code={}{\pgf@circ@sec@wyetrue}}
+\pgfkeys{tikz/sec/eyw/.add code={}{\pgf@circ@sec@eywtrue}}
\pgfkeys{tikz/sec/zig/.add code={}{\pgf@circ@sec@zigtrue}}
% % % tertiary windings (ooosource)
\newif\ifpgf@circ@tert@delta
\newif\ifpgf@circ@tert@wye
+\newif\ifpgf@circ@tert@eyw
\newif\ifpgf@circ@tert@zig
\pgfkeys{tikz/tert/.is choice}
\pgfkeys{tikz/tert/delta/.add code={}{\pgf@circ@tert@deltatrue}}
\pgfkeys{tikz/tert/wye/.add code={}{\pgf@circ@tert@wyetrue}}
+\pgfkeys{tikz/tert/eyw/.add code={}{\pgf@circ@tert@eywtrue}}
\pgfkeys{tikz/tert/zig/.add code={}{\pgf@circ@tert@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@circ@res@step = \ctikzvalof{bipoles/battery/width}\pgf@circ@scaled@Rlen
+ \divide \pgf@circ@res@step by 6
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{.5\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+\pgfcirc@activate@bipole@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@circ@sources@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@circ@delta#1{
@@ -2436,6 +2471,24 @@
\endpgfscope
}
+% reverse star
+\def\pgf@circ@eyw#1{
+ \pgfscope
+ \pgftransformscale{-.015*\ctikzvalof{\ctikzclass/symbol/eyw scale}*\pgf@circ@res@left*#1}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \pgftransformrotate{-\pgfcircmathresult}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{symbol/thickness}
+ \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{30}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{150}{\pgf@circ@res@down}}
+ \pgfusepath{stroke}
+ \endpgfscope
+}
+
% zigzag
\def\pgf@circ@zig#1{
\pgfscope
@@ -2514,13 +2567,19 @@
\pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
\pgf@circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
\endpgfscope
+
+ \else\ifpgf@circ@prim@eyw
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@eyw{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
\else\ifpgf@circ@prim@zig
\pgfscope
\pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
\pgf@circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
\endpgfscope
- \fi\fi\fi
+ \fi\fi\fi\fi
%%secondary winding
\ifpgf@circ@sec@delta
@@ -2534,13 +2593,19 @@
\pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
\pgf@circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
\endpgfscope
+
+ \else\ifpgf@circ@sec@eyw
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@eyw{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
\else\ifpgf@circ@sec@zig
\pgfscope
\pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
\pgf@circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
\endpgfscope
- \fi\fi\fi
+ \fi\fi\fi\fi
}
@@ -2716,13 +2781,19 @@
\pgftransformxshift{.6\pgf@circ@res@left}
\pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
\endpgfscope
+
+ \else\ifpgf@circ@prim@eyw
+ \pgfscope
+ \pgftransformxshift{.6\pgf@circ@res@left}
+ \pgf@circ@eyw{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
\else\ifpgf@circ@prim@zig
\pgfscope
\pgftransformxshift{.6\pgf@circ@res@left}
\pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
\endpgfscope
- \fi\fi\fi
+ \fi\fi\fi\fi
% % secondary winding
\ifpgf@circ@sec@delta
@@ -2737,13 +2808,19 @@
\pgftransformshift{\pgfpointpolar{60}{0.6\pgf@circ@res@right}}
\pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
\endpgfscope
+
+ \else\ifpgf@circ@sec@eyw
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{60}{0.6\pgf@circ@res@right}}
+ \pgf@circ@eyw{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
\else\ifpgf@circ@sec@zig
\pgfscope
\pgftransformshift{\pgfpointpolar{60}{0.6\pgf@circ@res@right}}
\pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
\endpgfscope
- \fi\fi\fi
+ \fi\fi\fi\fi
% % tertiary winding
\ifpgf@circ@tert@delta
@@ -2757,13 +2834,19 @@
\pgftransformshift{\pgfpointpolar{-60}{0.6\pgf@circ@res@right}}
\pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
\endpgfscope
+
+ \else\ifpgf@circ@tert@eyw
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{-60}{0.6\pgf@circ@res@right}}
+ \pgf@circ@eyw{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
\else\ifpgf@circ@tert@zig
\pgfscope
\pgftransformshift{\pgfpointpolar{-60}{0.6\pgf@circ@res@right}}
\pgf@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@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
- \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
- \pgf@circ@draworfill
+ \pgfscope
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@maybefill
+ \endpgfscope
+ \edef\@@angle{\ctikzvalof{bipoles/isourcesin/angle}}
+ \pgfpathmoveto{\pgfpointpolar{\@@angle}{\pgf@circ@res@up}}
+ \pgfpatharc{\@@angle}{-\@@angle}{\pgf@circ@res@up}
+ \pgfpathmoveto{\pgfpointpolar{180-\@@angle}{\pgf@circ@res@up}}
+ \pgfpatharc{180-\@@angle}{180+\@@angle}{\pgf@circ@res@up}
+ \pgfusepath{draw}
\pgf@circ@res@up = .5\pgf@circ@res@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@circ@set@switcharrow@style{%
+ % You *must* be sure that this is called inside a \pgfscope!
+ \pgfsetlinewidth{\ctikzvalof{switch arrows/relative thickness}\pgflinewidth}
+ \pgf@circ@subset@color@dash{switch arrows}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ }
%%>>>
%% Shapes Node for bipoles switches and similar things%<<<
@@ -4650,12 +4752,11 @@
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
\pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}}
\pgfusepath{draw}
-
\pgfscope
\pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
\pgfpathmoveto{\pgfpointpolar{90}{1.2\pgf@circ@res@right}}
\pgfpatharc{90}{-20}{1.2\pgf@circ@res@right}
- \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgf@circ@set@switcharrow@style
\pgfsetbeveljoin
\pgfusepath{draw}
\endpgfscope
@@ -4669,17 +4770,15 @@
{\ctikzvalof{bipoles/spst/height}}
{\ctikzvalof{bipoles/spst/width}}
{
-
\pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
\pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}}
\pgfusepath{draw}
-
\pgfscope
\pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
\pgfpathmoveto{\pgfpointpolar{-10}{1.2\pgf@circ@res@right}}
\pgfpatharc{-10}{90}{1.2\pgf@circ@res@right}
- \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgf@circ@set@switcharrow@style
\pgfsetbeveljoin
\pgfusepath{draw}
\endpgfscope
@@ -4693,7 +4792,6 @@
{\ctikzvalof{bipoles/nos/height}}
{\ctikzvalof{bipoles/nos/width}}
{
-
\pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
\pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@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@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpointpolar{-10}{.9\pgf@circ@res@right}}
+ \pgfpatharc{-10}{95}{.9\pgf@circ@res@right}
+ \pgf@circ@set@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@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpointpolar{90}{.9\pgf@circ@res@right}}
+ \pgfpatharc{90}{-35}{.9\pgf@circ@res@right}
+ \pgf@circ@set@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@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{.4\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpointpolar{-10}{.9\pgf@circ@res@right}}
+ \pgfpatharc{-10}{95}{.9\pgf@circ@res@right}
+ \pgf@circ@set@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@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{.4\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpointpolar{90}{.9\pgf@circ@res@right}}
+ \pgfpatharc{90}{-35}{.9\pgf@circ@res@right}
+ \pgf@circ@set@switcharrow@style
+ \pgfsetbeveljoin
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
%% Push Button
\pgfcircdeclarebipolescaled{switches}
{
@@ -4938,7 +5148,7 @@
\pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
\pgfpathmoveto{\pgfpointpolar{70}{1.2\pgf@circ@res@right}}
\pgfpatharc{70}{-10}{1.2\pgf@circ@res@right}
- \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgf@circ@set@switcharrow@style
\pgfusepath{draw}
}
@@ -4950,19 +5160,19 @@
\pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
\pgfpathmoveto{\pgfpointpolar{-10}{1.2\pgf@circ@res@right}}
\pgfpatharc{-10}{60}{1.2\pgf@circ@res@right}
- \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgf@circ@set@switcharrow@style
\pgfusepath{draw}
}
\pgfcircdeclarebipole{
- \anchor{out 1}{
- \northeast
- \pgf@y=0cm
- }
- \anchor{out 2}{
- \northeast
- \pgf@y=.8\pgf@y
- }
+ \anchor{out 1}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{out 2}{
+ \northeast
+ \pgf@y=.8\pgf@y
+ }
}
{\ctikzvalof{tripoles/toggleswitch/height 2}}
{toggleswitch}
@@ -5235,10 +5445,12 @@
{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up-1.5\pgf@circ@res@temp}}
{
\pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgfsetlinewidth{\ctikzvalof{switch arrows/relative thickness}\pgflinewidth}
+ \pgf@circ@subset@color@dash{switch arrows}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
\pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
\pgfpathmoveto{\pgfpointpolar{70}{1.5\pgf@circ@res@right}}
\pgfpatharc{70}{-50}{1.5\pgf@circ@res@right}
- \pgfcirc@set@arrows{switch}{}{latexslim}
\pgfusepath{draw}
}
@@ -5246,8 +5458,10 @@
{\pgfpoint{\pgf@circ@res@right}{0pt}}
{
\pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
- \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfsetlinewidth{\ctikzvalof{switch arrows/relative thickness}\pgflinewidth}
+ \pgf@circ@subset@color@dash{switch arrows}
\pgfcirc@set@arrows{switch}{latexslim}{latexslim}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
\pgfpathmoveto{\pgfpointpolar{-60}{1.5\pgf@circ@res@right}}
\pgfpatharc{-60}{60}{1.5\pgf@circ@res@right}
\pgfusepath{draw}
@@ -5257,10 +5471,12 @@
{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down+1.5\pgf@circ@res@temp}}
{
\pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgfsetlinewidth{\ctikzvalof{switch arrows/relative thickness}\pgflinewidth}
+ \pgf@circ@subset@color@dash{switch arrows}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
\pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
\pgfpathmoveto{\pgfpointpolar{-50}{1.5\pgf@circ@res@right}}
\pgfpatharc{-50}{70}{1.5\pgf@circ@res@right}
- \pgfcirc@set@arrows{switch}{}{latexslim}
\pgfusepath{draw}
}
% %>>>
@@ -5278,6 +5494,14 @@
\pgfcirc@style@to@style{nos}{normal open switch}
\pgfcirc@activate@bipole@simple{l}{ncs}
\pgfcirc@style@to@style{ncs}{normal closed switch}
+\pgfcirc@activate@bipole@simple{l}{oncs}
+\pgfcirc@style@to@style{oncs}{opening normal closed switch}
+\pgfcirc@activate@bipole@simple{l}{cncs}
+\pgfcirc@style@to@style{cncs}{closing normal closed switch}
+\pgfcirc@activate@bipole@simple{l}{onos}
+\pgfcirc@style@to@style{onos}{opening normal open switch}
+\pgfcirc@activate@bipole@simple{l}{cnos}
+\pgfcirc@style@to@style{cnos}{closing normal open switch}
\pgfcirc@activate@bipole{l}{pushbutton}{pushbutton}{push button}
\pgfcirc@style@to@style{push button}{nopb}
@@ -6810,7 +7034,7 @@
{\ctikzvalof{bipoles/american gas filled surge arrester/width}}{
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
- \pgfpointorigin \pgf@circ@res@other = \pgf@x \advance \pgf@circ@res@other by -\pgf@circ@res@up
+ \pgfpointorigin \pgf@circ@res@other = \pgf@x \advance \pgf@circ@res@other by -\pgf@circ@res@up
\pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
\pgfusepath{draw}
diff --git a/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex b/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex
index 2cef0358901..826c3eaad3d 100644
--- a/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex
+++ b/Master/texmf-dist/tex/generic/circuitikz/pgfcirctripoles.tex
@@ -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@circuit@europeanlogicport
\ctikzset{logic ports/.is choice}
\ctikzset{logic ports/european/.code= {\pgf@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@circ@text@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@circ@res@count}{not}
\pgfcircdeclareeurologicport{nor}{$\ge 1$}{\pgf@circ@res@count}{not}
\pgfcircdeclareeurologicport{xnor}{$=1$}{\pgf@circ@res@count}{not}
-
+\pgfcircdeclareeurologicport{blank}{}{\pgf@circ@res@count}{}
+\pgfcircdeclareeurologicport{blank not}{}{\pgf@circ@res@count}{not}
%% end european logic ports
% %>>>
diff --git a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
index 6cc3af44a20..464ad23f13f 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
@@ -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}