summaryrefslogtreecommitdiff
path: root/graphics/pgf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-05-14 03:00:45 +0000
committerNorbert Preining <norbert@preining.info>2023-05-14 03:00:45 +0000
commite14ce2a2aedfdc10d3e64b5b632a0b5aef10a618 (patch)
tree8a7b37dcb53fc67c655fa38ee7db5fec296c48c5 /graphics/pgf
parentb083364ee56b8a47b344b455440f0fdc16c9306b (diff)
CTAN sync 202305140300
Diffstat (limited to 'graphics/pgf')
-rw-r--r--graphics/pgf/contrib/circuitikz/README.md6
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/changelog.tex38
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdfbin17645 -> 13455 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex26
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdfbin1657072 -> 1671007 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex94
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz.sty4
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex32
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex43
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex6
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex42
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex58
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex16
13 files changed, 264 insertions, 101 deletions
diff --git a/graphics/pgf/contrib/circuitikz/README.md b/graphics/pgf/contrib/circuitikz/README.md
index 0ddfc1fb82..28b4c20f3f 100644
--- a/graphics/pgf/contrib/circuitikz/README.md
+++ b/graphics/pgf/contrib/circuitikz/README.md
@@ -29,11 +29,13 @@ Just place
```
Be sure to check the options you like — you should at least state one of the "voltage direction" ones, like `RPvoltages` shown above, or the usage of `siunitx` special syntax. Be sure to check the relevant sections in the manual.
-For ConTeXt, use
+For ConTeXt, you should be able to use
```latex
\usemodule[circuitikz]
```
-in the preamble and compile away, both with PS and PDF target output. It is higly recommended to go through the [tutorials in the manual](https://circuitikz.github.io/circuitikz/circuitikzmanualgit.pdf#c) and to learn a bit of Ti*k*Z before for example, go through at least the [basic Ti*k*Z one](https://tikz.dev/tutorial), but there are more suggestions in the documentation.
+in the preamble and compile away, both with PS and PDF target output.
+
+It is higly recommended to go through the [tutorials in the manual](https://circuitikz.github.io/circuitikz/circuitikzmanualgit.pdf#c) and to learn a bit of Ti*k*Z before for example, go through at least the [basic Ti*k*Z one](https://tikz.dev/tutorial), but there are more suggestions in the documentation.
### Development or newer version
diff --git a/graphics/pgf/contrib/circuitikz/doc/changelog.tex b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
index 3f3b9c9a48..f41bdc4105 100644
--- a/graphics/pgf/contrib/circuitikz/doc/changelog.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
@@ -5,6 +5,40 @@ full list of changes.
\begin{itemize}
\item
+ Version 1.6.2 (2023-05-13)
+
+ Several more styling options for elements (body diodes, transformers,
+ crossing), a clock wedge shape for logical circuits, and documentation
+ updates for ConTeXt, mainly noticing the (upstream) elimination of the
+ thin \texttt{siunitx} layer compatibility macros.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ there is no \texttt{siunitx} support for ConTeXt, point to the
+ \texttt{units} package
+ \item
+ \texttt{context} compatibility can have glitches: please see
+ \href{https://github.com/circuitikz/circuitikz/issues/706}{this
+ issue}
+ \item
+ Add styling of \texttt{transform\ core} lines (suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/702}{user
+ \texttt{@myzinsky} on GitHub})
+ \item
+ Add \texttt{scale} to the bodydiode options (suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/703}{user
+ \texttt{@sputeanus} on GitHub})
+ \item
+ Add styling of crossing vertical line (suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/704}{user
+ \texttt{@lkjell} on GitHub})
+ \item
+ Add \texttt{clockwedge} shape (suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/705}{user
+ \texttt{@Mario1159} on GitHub})
+ \end{itemize}
+\item
Version 1.6.1 (2023-02-11)
New components: solder jumpers; a couple of small but very useful
@@ -150,7 +184,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)
@@ -1328,7 +1362,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/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
index c91f9d840f..38e09a504f 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
index 66b2c517ed..59eeb6f8b6 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
@@ -10,23 +10,33 @@
%
% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
-
+% This first line *shouldn't* be needed; it's here to work around a problem
+% in ConTeXt TikZ support when it switch to LMTX (fixed around May 2023)
+% See also https://github.com/circuitikz/circuitikz/issues/706
+% See https://github.com/pgf-tikz/pgf/issues/1248#issuecomment-1486235591
+% If your version of context errors out, try:
+% - update context
+% - or uncomment the following line
+% \usemodule[pgfrcs,pgfmat]
\usemodule[circuitikz]
\starttext
A simple example to test the installation.
-\startcircuitikz[scale=1.2]
+% removed all the "pseudo-SI commands". They were removed by ConTeXt,
+% when it moved to LMTX (March 2023).
+% For units you should use http://www.pragma-ade.nl/general/manuals/units-mkiv.pdf
+\startcircuitikz[scale=1.5]
\draw
- (0,2) to[I=1\milli\ampere] (2,2)
- to[R, l_=2\kilo\ohm, *-*] (0,0)
- to[R, l_=2\kilo\ohm] (2,0)
- to[V, v_=2\volt] (2,2)
+ (0,2) to[I=1~mA] (2,2)
+ to[R, l_=2~kΩ, *-*] (0,0)
+ to[R, l_=2~kΩ] (2,0)
+ to[V, v_=2~V] (2,2)
to[cspst, l=$t_0$] (4,2) -- (4,1.5)
to [generic, i=$i_1$, v=$v_1$] (4,-.5) -- (4,-1.5)
- (0,2) -- (0,-1.5) to[V, v_=4\volt] (2,-1.5)
- to [R, l=1\kilo\ohm] (4,-1.5)
+ (0,2) -- (0,-1.5) to[V, v_=4~V] (2,-1.5)
+ to [R, l=1~kΩ] (4,-1.5)
(5,2) node[dipchip, anchor=pin 1]{}
(5,-2) node[flipflop JK, anchor=pin 1]{};
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
index 766eaa430f..fdf7e67f8e 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
index 12c967afc9..983f759a43 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
@@ -140,7 +140,8 @@ This package is author-maintained. Permission is granted to copy, distribute and
\bottomrule
\end{tabular}
\end{table}
-\footnotetext{\ConTeXt\ support was added mostly thanks to Mojca Miklavec and Aditya Mahajan.}
+\footnotetext{\ConTeXt\ support was added mostly thanks to Mojca Miklavec and Aditya Mahajan.\textbf{Please notice} that since \ConTeXt{} switched to the new \texttt{lmtx} engine (March 2023), there can be problems to compile \TikZ{} which some version; in May 2023 the problem has been fixed. Please check \href{https://github.com/circuitikz/circuitikz/issues/706}{this issue} for details.}
+
\noindent \TikZ\ will be automatically loaded; additionally, the \TikZ{} libraries \texttt{calc}, \texttt{arrows.meta}, \texttt{bending}, and \texttt{fpu} are loaded (the last one is used only on demand).
@@ -173,11 +174,10 @@ instead of \texttt{circuitikz}. This is also advantageous for ``future resilienc
\item \texttt{siunitx}, if using \texttt{siunitx} option (better \texttt{v2} or newer).
\end{itemize}
-A similar approach for \ConTeXt\ is available, with the file \texttt{t-circuitikzgit.tex}.
+A similar approach for \ConTeXt\ is available, with the file \texttt{t-circuitikzgit.tex}; the compatibility in this case is not guaranteed, but provided on a \emph{best effort} base.
This manual has been typeset with \Circuitikz{} \pgfcircversion{} (\pgfcircversiondate) on \TikZ{} \pgfversion{} (\pgfversiondate).
-
\subsection{Incompatible packages}\label{sec:incompatible-packages}
\TikZ's own \texttt{circuit} library, which was based on \Circuitikz, (re?)defines several styles used by this library. In order to have them work together you can use the \texttt{compatibility} package option, which basically prefixes the names of all \Circuitikz\ \texttt{to[]} styles with an asterisk.
@@ -246,9 +246,10 @@ The \texttt{use fpu reciprocal} key seems to have no side effects, but given tha
\subsection{Incompabilities between versions}\label{sec:incompatible-changes}
-Here, we will provide a list of incompabilities between different versions of \Circuitikz. We will try to hold this list short, but sometimes it is easier to break with old syntax than include a lot of switches and compatibility layers. In general, changes that would invalidate a circuit (changes of polarity of components and so on) are almost always protected by a flag; the same is not true for purely aesthetic changes.
+Here, we will provide a list of incompatibilities between different versions of \Circuitikz. We will try to hold this list short, but sometimes it is easier to break with old syntax than include a lot of switches and compatibility layers. In general, changes that would invalidate a circuit (changes of polarity of components and so on) are almost always protected by a flag; the same is not true for purely aesthetic changes.
If unsure, you can check the version in your local installation by using the macro \verb!\pgfcircversion{}!.
\begin{itemize}
+ \item Since version \texttt{1.6.2} \texttt{siunitx} will \textbf{not} work anymore with \ConTeXt{} (it was a very poor simulation layer, anyway); it has been disabled in upstream \ConTeXt, in favor of \href{https://www.pragma-ade.nl/general/manuals/units-mkiv.pdf}{its own \texttt{units} module}.
\item Version \texttt{1.6.0} has a big rewrite of the block's code. In principle the changes are backward-compatible, but there were several bugs (wrong anchors, errors with rotations, and so on) that have been fixed in the process.
\item Since \texttt{v1.5.1}\footnote{Do not use \texttt{v1.5.0}, it's buggy.} color management (see section~\ref{sec:colors}) and the details of how the shapes are drawn and protected by the external drawing options has changed. There should be no substantial changes to the circuits, though.
\item The \TikZ{} fix for \texttt{to[...] +(x,y)} behavior (see~\ref{sec:path-relative-coordinates}) uncovered a bug in the positioning of the labels in \Circuitikz{} that had been present since \texttt{v0.8}. So you \textbf{must} upgrade to \texttt{v1.4.1} or better if you have \TikZ{} newer than \texttt{3.1.8} (and you want/need to use the \texttt{+(x,y)} syntax).
@@ -320,7 +321,7 @@ The easiest way to contact the authors is via the official GitHub repository: \u
Circuit people are very opinionated about their symbols. In order to satisfy the individual taste you can set a bunch of package options.
-There are arguably way too many options in \Circuitikz, as you can see in the following list. Since version \texttt{1.0}, it is recommended to just use the basic ones --- voltage directions (you \textbf{should} specify one of them), \texttt{siunitx}, the global style (\texttt{american} or \texttt{european}) and use styles (see~\ref{sec:styling}) for the remaining options.
+There are arguably way too many options in \Circuitikz, as you can see in the following list. Since version \texttt{1.0}, it is recommended to just use the basic ones --- voltage directions (you \textbf{should} specify one of them), \texttt{siunitx} (only for \LaTeX{}), the global style (\texttt{american} or \texttt{european}) and use styles (see~\ref{sec:styling}) for the remaining options.
The standard options are set by historical reason, and reflect the preferences of the author that introduced them. For example you get this:
@@ -374,7 +375,7 @@ Feel free to load the package with your own cultural options:
\item \texttt{europeangfsurgearrester}: uses rectangular gas filled surge arresters, as per european standards;
\item \texttt{european}: equivalent to \texttt{europeancurrents}, \texttt{europeanvoltages}, \texttt{europeanresistors}, \texttt{europeaninductors}, \texttt{europeanports}, \texttt{europeangfsurgearrester};
\item \texttt{american}: equivalent to \texttt{americancurrents}, \texttt{americanvoltages}, \texttt{americanresistors}, \texttt{americaninductors}, \texttt{americanports}, \texttt{americangfsurgearrester};
- \item \texttt{siunitx}: integrates with \texttt{SIunitx} package. If labels, currents or voltages are of the form \verb!#1<#2>! then what is shown is actually \verb!\SI{#1}{#2}!;
+ \item \texttt{siunitx}: integrates with \texttt{SIunitx} package. If labels, currents or voltages are of the form \verb!#1<#2>! then what is shown is actually \verb!\SI{#1}{#2}! (not supported in \ConTeXt; it has been disabled in upstream \ConTeXt, in favor of \href{https://www.pragma-ade.nl/general/manuals/units-mkiv.pdf}{its own \texttt{units} module});
\item \texttt{nosiunitx}: labels are not interpreted as above;
\item \texttt{fulldiode}: the various diodes are drawn \emph{and} filled by default, i.e. when using styles such as \texttt{diode}, \texttt{D}, \texttt{sD}, \ldots Other diode styles can always be forced with e.g. \texttt{Do}, \texttt{D-}, \ldots
\item \texttt{strokediode}: the various diodes are drawn \emph{and} stroke by default, i.e. when using styles such as \texttt{diode}, \texttt{D}, \texttt{sD}, \ldots Other diode styles can always be forced with e.g. \texttt{Do}, \texttt{D*}, \ldots
@@ -401,10 +402,9 @@ Feel free to load the package with your own cultural options:
\item \texttt{EFvoltages} (meaning Electric Field voltages): the arrow is in the direction of the electric field, like in \texttt{nooldvoltagedirection}, but batteries are fixed;
\end{itemize}
If none of these option are given, the package will default to \texttt{nooldvoltagedirection}. The behavior is also selectable circuit by circuit with the \texttt{voltage dir} style.
- \item \texttt{betterproportions}\footnote{May change in the future!}: nicer proportions of transistors in comparision to resistors;
+ \item \texttt{betterproportions}\footnote{May change in the future!}: nicer proportions of transistors in comparision to resistors; notice that this option is superseded by styles and it's kept just for compatibility, do not use it in new projects;
\end{itemize}
-
The old options in the singular (like \texttt{american voltage}) are still available for compatibility, but are discouraged.
\medskip
@@ -416,7 +416,7 @@ Feel free to load the package with your own cultural options:
\medskip
- In \ConTeXt\ the options are similarly specified: \texttt{current= european|american}, \texttt{voltage= european|american}, \texttt{resistor= american|european}, \texttt{inductor= cute|american|european}, \texttt{logic= american|european}, \texttt{siunitx= true|false}, \texttt{arrowmos= false|true}.
+ In \ConTeXt\ the options are similarly specified: \texttt{current= european|american}, \texttt{voltage= european|american}, \texttt{resistor= american|european}, \texttt{inductor= cute|american|european}, \texttt{logic= american|european}, \texttt{arrowmos= false|true}.
} %\stop the \sloppy processing
@@ -3238,8 +3238,37 @@ For a more powerful (and elegant) way you can use the crossing nodes:
Notice that the \texttt{plain crossing} and the \texttt{jump crossing} have a small gap in the straight wire, to enhance the effect of crossing (as a kind of shadow).
+\subsubsection{Crossing customization}
+
The size of the crossing elements can be changed with the key \texttt{bipoles/crossing/size} (default 0.2).
+While the horizontal line will be drawn with the current path values, you can change the style of the vertical line\footnote{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/704}{user lkjell on GitHub}, implemented in \texttt{v1.6.2}.} in a similar way to the one used for transistor's bodydiodes, by setting keys with the \verb!\ctikzset! command under the \texttt{crossing vertical} 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 default thickness (which is the same of the \texttt{choke} component).\\
+ 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}[every node/.append style={scale=2}]
+ \draw (0,2) node[jump crossing](A){};
+ \begin{scope}
+ \ctikzset{crossing vertical/.cd, color=red, dash={{2pt}{1pt}}}
+ \draw (0,1) node[jump crossing](B){};
+ \end{scope}
+ \ctikzset{crossing vertical/dash=none}
+ \draw[densely dotted, blue] (0,0) node[plain crossing](B){};
+ \end{circuitikz}
+\end{LTXexample}
+
\subsection{Arrows}\label{sec:arrows}
These are pseudo-arrows used in lot of places in the packages (for transistors, flows, currents, and so on). The first three arrows are magnified by a factor~3 in the boxes below; for the \texttt{trarrow}, the anchor \texttt{tip} is exactly on the tip and \texttt{btip} is slightly receded.
@@ -4224,7 +4253,7 @@ The position of the circle on collector and emitter by default is the one shown
\midrule
relative thickness & 1.0 & multiply the class thickness \\
color & default & stroke color: \texttt{default} is the same as the component \\
- dash & none & dash pattern: none means unbroken line\footnotemark \\
+ dash & default & dash pattern: none means solid line, default means keep the global pattern\footnotemark \\
partial borders & none & draw only part of the circle border: none means draw all \\
partial border dash & \{\{2pt\}\{2pt\}\} & dash pattern used in partial borders \\
\bottomrule
@@ -4302,7 +4331,7 @@ The dashed line pattern can be changed by setting the key \texttt{transistor cir
\subsubsection{Transistor bodydiode customization}\label{sec:trans-bodydiode-custom}
-You can change the style of the bodydiode\footnote{Suggested by \href{https://tex.stackexchange.com/questions/653348/drawing-mosfet-bodydiode-dashed}{user Alex Ghilas on TeX.SX}, implemented in \texttt{v1.5.4}.} in a similar way to the one used for circles (albeit with less options), by setting keys with the \verb!\ctikzset! command (or, like in the following example, directly in the node instantiation) under the \texttt{transistor bodydiode} hierarchy. The available keys are:
+You can change the style of the bodydiode\footnote{Suggested by \href{https://tex.stackexchange.com/questions/653348/drawing-mosfet-bodydiode-dashed}{user Alex Ghilas on TeX.SX}, implemented in \texttt{v1.5.4}; \texttt{scale} suggested by \href{https://github.com/circuitikz/circuitikz/issues/703}{user \texttt{@sputeanus} on GitHub} and added in version \texttt{1.6.2}.} in a similar way to the one used for circles (albeit with less options), by setting keys with the \verb!\ctikzset! command (or, like in the following example, directly in the node instantiation) under the \texttt{transistor bodydiode} hierarchy. The available keys are:
\begin{center}
\begin{tabular}{>{\ttfamily}l>{\ttfamily}lp{0.5\linewidth}}
@@ -4311,13 +4340,14 @@ You can change the style of the bodydiode\footnote{Suggested by \href{https://te
\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 \\
+ 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 \\
+ scale & 0.3 & scale of the diode, with respect to the basic (not scaled) diode dimension.\\
\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}
-The following is a quite extensive example. Obviously, a good strategy in this case is to define styles for the options.
+The following is a quite extensive example. Obviously, a good strategy in this case is to define styles for the options, or, better, set the option in your style file or in the preamble (for coherency).
\begin{LTXexample}[varwidth=true, pos=t, basicstyle=\small\ttfamily]
\begin{tikzpicture}[red solid thin bodydiode/.style={bodydiode,
@@ -4327,12 +4357,14 @@ The following is a quite extensive example. Obviously, a good strategy in this c
\draw (0,0) node (mosfet1) [nigfete,anchor=D,bodydiode] {$Q_1$};
\draw[densely dashed] (3,0) node (mosfet1) [nigfete,anchor=D,bodydiode] {$Q_2$};
\draw (6,0) node (mosfet1) [nigfete,anchor=D,bodydiode,
- circuitikz/transistor bodydiode/color=gray] {$Q_3$};
+ circuitikz/transistor bodydiode/color=gray,
+ circuitikz/transistor bodydiode/scale=0.2] {$Q_3$};
\draw (0,-2) node (mosfet1) [nigfete,anchor=D,bodydiode,
circuitikz/transistor bodydiode/dash={{2pt}{1pt}}] {$Q_4$};
\draw[densely dashed] (3,-2) node (mosfet1) [nigfete,anchor=D,
red solid thin bodydiode] {$Q_5$};
- \ctikzset{transistor bodydiode/relative thickness=.5}% from now on, in scope
+ \ctikzset{transistor bodydiode/relative thickness=.5,
+ transistor bodydiode/scale=0.6}% from now on, in scope
\draw[densely dotted] (6,-2) node (mosfet1) [nigfete,anchor=D,bodydiode,
circuitikz/transistor bodydiode/dash=none] {$Q_6$};
\path (7,0); %% adjust bounding box (node text is outside it!)
@@ -5071,6 +5103,29 @@ Transformers also inherit the \texttt{inductors/scale} (see~\ref{sec:tweak-l}) a
Transformers core line distance is specified by the parameter \texttt{quadpoles/transformer core/core width} (default \texttt{0.05}) and the thickness of the lines follows the choke one; in other words, you can set it changing \texttt{bipoles/cutechoke/cthick}.
+You can change the style of the core lines\footnote{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/702}{user myzinsky on GitHub}, implemented in \texttt{v1.6.2}.} in a similar way to the one used for transistor's bodydiodes, by setting keys with the \verb!\ctikzset! command under the \texttt{transformer core} 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 default thickness (which is the same of the \texttt{choke} component).\\
+ 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,0) node[transformer core](A){};
+ \ctikzset{transformer core/.cd, relative thickness=2, color=red, dash={{4pt}{2pt}}}
+ \draw (2,0) node[transformer core](B){};
+\end{circuitikz}
+\end{LTXexample}
+
Another very useful parameter is \texttt{quadpoles/*/inner} (default \texttt{0.4}) that determine which part of the component is the ``vertical'' one. So, setting that parameter to 1 will eliminate the horizontal part of the component (obviously, to maintain the general aspect ratio you need to change the width also):
@@ -6738,13 +6793,14 @@ to obtain:
\verb|\ctikztextnot{}| is a small utility macro to set a overbar to a text, like \ctikztextnot{RST} (created by \verb|\ctikztextnot{RST}|).
-By default, the following flip-flops are defined:
+By default, the following flip-flops are defined, as well as a support shape for the clock wedge:
\begin{groupdesc}
\circuitdesc*{latch}{D-type latch}{}
\circuitdesc*{flipflop SR}{flip-flop SR}{}
\circuitdesc*{flipflop D}{Edge-triggered synchronous flip-flop D}{}
\circuitdesc*{flipflop T}{Edge-triggered synchronous flip-flop T}{}
\circuitdesc*{flipflop JK}{Edge-triggered synchronous flip-flop JK}{}
+ \circuitdesc{clockwedge}{clock wedge shape}{text}(center/180/0.6, nw/90/0.2, sw/-90/0.2, right/45/0.5)
\end{groupdesc}
If you prefer that the negated output is labelled \texttt{Q} and a dot indicating negation is shown, you can add the \texttt{dot on notQ} key:
@@ -7475,7 +7531,7 @@ You can add ``decorations'' to the path-style components; there are basically fi
\end{LTXexample}
-Long names/styles for the bipoles can be used, of course, and there is a special syntax (that works only in simple cases --- use it with caution!) if you load the package with the `siunitx` options:
+Long names/styles for the bipoles can be used, of course, and there is a special syntax (that works only in simple cases, and olny with \LaTeX{} --- use it with caution!) if you load the package with the `siunitx` options:
\begin{LTXexample}[varwidth=true]
\begin{circuitikz}\draw
@@ -7603,7 +7659,7 @@ Notice that you \textbf{can't use} the compact \texttt{<...>} notation for \text
Since \texttt{v1.3.6} you have the same possibility with the \texttt{annotation} (just use \texttt{a2=...}, \verb|a2_=...|, \texttt{a2 valign} and so on. Notice that the default position for stacked annotation is \texttt{v2 halign=l}.
-The \texttt{l2} and \texttt{a2} will only work in LaTeX because they use a \texttt{tabular} environment in their implementation. For plain TeX and ConTeXt you have to use \texttt{l} and \texttt{a} and build the stack of labels externally.
+The \texttt{l2} and \texttt{a2} will only work in LaTeX because they use a \texttt{tabular} environment in their implementation. For plain TeX and \ConTeXt{} you have to use \texttt{l} and \texttt{a} and build the stack of labels externally.
%
% This is hacky --- better not to publish it for now
@@ -8801,7 +8857,7 @@ Another possibility is to have the arrow length based on the length of the compo
\subsection{Integration with {\ttfamily siunitx}}
-If the option {\ttfamily siunitx} is active\footnote{This option is still experimental --- personally (Romano) I would advise using the normal \texttt{\textbackslash SI\{\}\{\}} syntax.} (and \emph{not} in \ConTeXt), then the following are equivalent:
+If the option {\ttfamily siunitx} is active\footnote{This option is still experimental --- personally (Romano) I would advise using the normal \texttt{\textbackslash SI\{\}\{\}} syntax, or the \texttt{\textbackslash qty\{\}\{\}} one for \texttt{siunitx} \texttt{v3} and newer.}, then the following are equivalent (this will \textbf{not} work in \ConTeXt{}, it has been disabled in upstream \ConTeXt, in favor of \href{https://www.pragma-ade.nl/general/manuals/units-mkiv.pdf}{its own \texttt{units} module}):
\begin{LTXexample}[varwidth=true]
\begin{circuitikz}
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
index b9261717f5..6eeeb67642 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
@@ -16,8 +16,8 @@
\providecommand\DeclareRelease[3]{}
\providecommand\DeclareCurrentRelease[2]{}
-\def\pgfcircversion{1.6.1}
-\def\pgfcircversiondate{2023/02/11}
+\def\pgfcircversion{1.6.2}
+\def\pgfcircversiondate{2023/05/13}
\DeclareRelease{0.4}{2012/12/20}{circuitikz-0.4-body.tex}
\DeclareRelease{v0.4}{2012/12/20}{circuitikz-0.4-body.tex}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
index f3a7b7f42e..ec9f2a8a71 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
@@ -448,6 +448,24 @@
\fi
}
+% set the color and dash pattern for a subset of the shape, following keys #1/color
+% and #1/dash. The keys must exist, and check for none or default for both
+\def\pgf@circ@subset@color@dash#1{%
+ % You *must* be sure that this is called inside a \pgfscope!
+ \edef\@@none{none}\edef\@@default{default}
+ \edef\@@tmp{\ctikzvalof{#1/color}}
+ \ifx\@@tmp\@@default\else
+ \pgfsetcolor{\@@tmp}
+ \fi
+ \edef\@@tmp{\ctikzvalof{#1/dash}}
+ \ifx\@@tmp\@@default\else
+ \ifx\@@tmp\@@none
+ \pgfsetdash{}{0pt}% solid line, override dash
+ \else
+ \expandafter\pgfsetdash\expandafter{\@@tmp}{0cm}
+ \fi
+ \fi
+}
%%>>>
@@ -944,19 +962,7 @@
\def\pgf@circ@set@optoarrow@style{%
% You *must* be sure that this is called inside a \pgfscope!
\pgfsetlinewidth{\ctikzvalof{opto arrows/relative thickness}\pgflinewidth}
- \edef\@@none{none}\edef\@@default{default}
- \edef\@@tmp{\ctikzvalof{opto arrows/color}}
- \ifx\@@tmp\@@default\else
- \pgfsetcolor{\@@tmp}
- \fi
- \edef\@@tmp{\ctikzvalof{opto arrows/dash}}
- \ifx\@@tmp\@@default\else
- \ifx\@@tmp\@@none
- \pgfsetdash{}{0pt}% solid line, override dash
- \else
- \expandafter\pgfsetdash\expandafter{\@@tmp}{0cm}
- \fi
- \fi
+ \pgf@circ@subset@color@dash{opto arrows}
\pgfcirc@set@arrows{opto}{}{latexslim}
}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
index 31aa4eb073..f48aaac10e 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
@@ -1594,6 +1594,49 @@
\repeatpgfmathloop%
}%
}
+
+% clock wedge shape, for using in other shapes like muxdemuxes
+\pgfdeclareshape{clockwedge}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{flipflops}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{multipoles/flipflop/clock wedge size}*\ctikzvalof{multipoles/flipflop/pin spacing}*\pgf@circ@scaled@Rlen}
+ \pgf@y=\pgf@circ@res@step
+ \pgf@x=\pgf@circ@res@step
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{north west}{\northeast\pgf@x=0pt }
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt }
+ \anchor{north}{\northeast\pgf@x=0.5\pgf@x }
+ \anchor{east}{\northeast\pgf@y=0pt }
+ \anchor{south}{\northeast\pgf@x=0.5\pgf@x\pgf@y=-\pgf@y}
+ \anchor{west}{\pgfpointorigin}
+ \anchor{nw}{\northeast\pgf@x=0pt }
+ \anchor{ne}{\northeast}
+ \anchor{se}{\northeast\pgf@y=-\pgf@y}
+ \anchor{sw}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt }
+ \anchor{n}{\northeast\pgf@x=0.5\pgf@x }
+ \anchor{e}{\northeast\pgf@y=0pt }
+ \anchor{s}{\northeast\pgf@x=0.5\pgf@x\pgf@y=-\pgf@y}
+ \anchor{w}{\pgfpointorigin}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\northeast\pgf@y=0pt }
+ \anchor{text}{\northeast\advance \pgf@x by 2pt
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax}% to adjust text
+ \pgf@circ@draw@component{%
+ \northeast
+ \pgf@circ@res@up=\pgf@y
+ \pgf@circ@res@right=\pgf@x
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@up}}
+ \pgfusepath{stroke}
+ }
+}
+
% %>>>
%% Node shapes for mux-demuxes%<<<
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
index 127c2975df..32a85cb0c9 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
@@ -27,6 +27,9 @@
\ctikzset{quadpoles/transformer core/height/.initial=1.5}
\ctikzset{quadpoles/transformer core/core height/.initial=.5}
\ctikzset{quadpoles/transformer core/core width/.initial=.05}
+\ctikzset{transformer core/relative thickness/.initial=1}
+\ctikzset{transformer core/color/.initial=default}
+\ctikzset{transformer core/dash/.initial=default}
\ctikzset{quadpoles/gyrator/inner/.initial=0.4}
\ctikzset{quadpoles/gyrator/width/.initial=1.5}
\ctikzset{quadpoles/gyrator/height/.initial=1.5}
@@ -291,7 +294,8 @@
\pgf@circ@drawtransformerbasicbody
% use the chocke line thickness
- \pgfsetlinewidth{\ctikzvalof{bipoles/cutechoke/cthick}\pgflinewidth}
+ \pgfsetlinewidth{\ctikzvalof{bipoles/cutechoke/cthick}*\ctikzvalof{transformer core/relative thickness}*\pgflinewidth}
+ \pgf@circ@subset@color@dash{transformer core}
% Find the distance from center for the lines representing the core
% the 2.5 is for backward compatibility --- the distance was calculated as a fraction
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
index 07f3ac987b..6c0229c3d6 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
@@ -582,6 +582,10 @@
%% crossings%<<<
% full nodes for wire crossing
+% styling for the vertical wire (default: do none)
+\ctikzset{crossing vertical/relative thickness/.initial=1}
+\ctikzset{crossing vertical/color/.initial=default}
+\ctikzset{crossing vertical/dash/.initial=default}
\pgfdeclareshape{jump crossing}
{
@@ -591,18 +595,7 @@
\pgf@x=-\pgf@y
}
\anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
- \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
- \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
- \anchor{west}{ \northwest \pgf@y=0pt }
- \anchor{w}{ \northwest \pgf@y=0pt }
- \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
- \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
- \anchor{north}{ \northwest \pgf@x=0pt }
- \anchor{n}{ \northwest \pgf@x=0pt }
- \anchor{south west}{ \northwest \pgf@y=-\pgf@y }
- \anchor{north east}{ \northwest \pgf@x=-\pgf@x }
- \anchor{north west}{ \northwest }
- \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
+ \pgfcirc@northwest@symmetric@geoanchors
\pgf@circ@draw@component{
\northwest
\pgf@circ@res@up = \pgf@y
@@ -615,13 +608,17 @@
\pgfpatharc{0}{-180}{0.4*\pgf@circ@res@left}
\pgfsetbeveljoin
\pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
% vertical, broken path
+ % styling of vertical line
+ \pgfsetlinewidth{\ctikzvalof{crossing vertical/relative thickness}\pgflinewidth}
+ \pgf@circ@subset@color@dash{crossing vertical}
+ %
\pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint{0pt}{0.5\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint{0pt}{0.3\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
\pgfusepath{draw}
-
}
}
\pgfdeclareshape{plain crossing}
@@ -632,18 +629,7 @@
\pgf@x=-\pgf@y
}
\anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
- \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
- \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
- \anchor{west}{ \northwest \pgf@y=0pt }
- \anchor{w}{ \northwest \pgf@y=0pt }
- \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
- \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
- \anchor{north}{ \northwest \pgf@x=0pt }
- \anchor{n}{ \northwest \pgf@x=0pt }
- \anchor{south west}{ \northwest \pgf@y=-\pgf@y }
- \anchor{north east}{ \northwest \pgf@x=-\pgf@x }
- \anchor{north west}{ \northwest }
- \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
+ \pgfcirc@northwest@symmetric@geoanchors
\pgf@circ@draw@component{
\northwest
\pgf@circ@res@up = \pgf@y
@@ -653,13 +639,17 @@
% horizontal jumper
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
\pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
% vertical, broken path
+ % styling of vertical line
+ \pgfsetlinewidth{\ctikzvalof{crossing vertical/relative thickness}\pgflinewidth}
+ \pgf@circ@subset@color@dash{crossing vertical}
+ %
\pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint{0pt}{0.1\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint{0pt}{0.1\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
\pgfusepath{draw}
-
}
}
% %>>>
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
index d3bd3dd76c..39a01b5d90 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
@@ -3359,7 +3359,7 @@
\ctikzset{transistor circle/.is family}
\ctikzset{transistor circle/relative thickness/.initial=1}
\ctikzset{transistor circle/color/.initial=default}
-\ctikzset{transistor circle/dash/.initial=none}
+\ctikzset{transistor circle/dash/.initial=default}
\ctikzset{transistor circle/scale circle radius/.initial=1}
\ctikzset{transistor circle/default base in/.initial=0.9}
\ctikzset{transistor circle/njfet base in/.initial=1.05}
@@ -3380,7 +3380,37 @@
\ctikzset{transistor bodydiode/relative thickness/.initial=1}
\ctikzset{transistor bodydiode/color/.initial=default}
\ctikzset{transistor bodydiode/dash/.initial=default}
-
+% this is unfortunate, but needed for backward compatibility
+\ctikzset{transistor bodydiode/scale/.code={%
+ \ctikzset{tripoles/nmos/bodydiode scale=#1}%
+ \ctikzset{tripoles/pmos/bodydiode scale=#1}%
+ \ctikzset{tripoles/nmosd/bodydiode scale=#1}%
+ \ctikzset{tripoles/pmosd/bodydiode scale=#1}%
+ \ctikzset{tripoles/hemt/bodydiode scale=#1}%
+ \ctikzset{tripoles/nfet/bodydiode scale=#1}%
+ \ctikzset{tripoles/pfet/bodydiode scale=#1}%
+ \ctikzset{tripoles/nfetd/bodydiode scale=#1}%
+ \ctikzset{tripoles/pfetd/bodydiode scale=#1}%
+ \ctikzset{tripoles/nigfete/bodydiode scale=#1}%
+ \ctikzset{tripoles/nigfetd/bodydiode scale=#1}%
+ \ctikzset{tripoles/nigfetebulk/bodydiode scale=#1}%
+ \ctikzset{tripoles/pigfete/bodydiode scale=#1}%
+ \ctikzset{tripoles/pigfetd/bodydiode scale=#1}%
+ \ctikzset{tripoles/pigfetebulk/bodydiode scale=#1}%
+ \ctikzset{tripoles/npn/bodydiode scale=#1}%
+ \ctikzset{tripoles/pnp/bodydiode scale=#1}%
+ \ctikzset{tripoles/pigbt/bodydiode scale=#1}%
+ \ctikzset{tripoles/nigbt/bodydiode scale=#1}%
+ \ctikzset{tripoles/Lpigbt/bodydiode scale=#1}%
+ \ctikzset{tripoles/Lnigbt/bodydiode scale=#1}%
+ \ctikzset{tripoles/njfet/bodydiode scale=#1}%
+ \ctikzset{tripoles/pjfet/bodydiode scale=#1}%
+ \ctikzset{tripoles/nujt/bodydiode scale=#1}%
+ \ctikzset{tripoles/pujt/bodydiode scale=#1}%
+ \ctikzset{tripoles/isfet/bodydiode scale=#1}%
+ \ctikzset{tripoles/pgfet/bodydiode scale=#1}%
+ \ctikzset{tripoles/ngfet/bodydiode scale=#1}%
+}}
%%>>>
@@ -3441,15 +3471,7 @@
\pgfscope
\pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
\pgfsetlinewidth{\ctikzvalof{transistor circle/relative thickness}\pgflinewidth}
- \edef\@@none{none}\edef\@@default{default}
- \edef\@@tmp{\ctikzvalof{transistor circle/color}}
- \ifx\@@tmp\@@default\else
- \pgfsetcolor{\@@tmp}
- \fi
- \edef\@@tmp{\ctikzvalof{transistor circle/dash}}
- \ifx\@@tmp\@@none\else
- \expandafter\pgfsetdash\expandafter{\@@tmp}{0cm}
- \fi
+ \pgf@circ@subset@color@dash{transistor circle}
% radius of the circle
% \pgfmathsetlength{\pgf@circ@res@temp}{((#2+\extrabodydiodelen)-(#1)+(#3)*(#3)/((#2+\extrabodydiodelen)-(#1)))/2}
% \pgfpathcircle{\pgfpoint{#1+\pgf@circ@res@temp}{0pt}}{\pgf@circ@res@temp}
@@ -3940,19 +3962,7 @@
\ifpgf@circuit@fet@bodydiode
\pgfscope
\pgfsetlinewidth{\ctikzvalof{transistor bodydiode/relative thickness}\pgflinewidth}
- \edef\@@none{none}\edef\@@default{default}
- \edef\@@tmp{\ctikzvalof{transistor bodydiode/color}}
- \ifx\@@tmp\@@default\else
- \pgfsetcolor{\@@tmp}
- \fi
- \edef\@@tmp{\ctikzvalof{transistor bodydiode/dash}}
- \ifx\@@tmp\@@default\else
- \ifx\@@tmp\@@none
- \pgfsetdash{}{0pt}% solid line, override dash
- \else
- \expandafter\pgfsetdash\expandafter{\@@tmp}{0cm}
- \fi
- \fi
+ \pgf@circ@subset@color@dash{transistor bodydiode}
\drawbodydiode{#1}
\endpgfscope
\fi
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
index e0307a32fa..e5975cfb53 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
@@ -9,14 +9,18 @@
% 2. under the GNU Public License.
%
% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+%
+% This module file is normally overriden by the provided m-circuitikz.tex
+% in the newer ConTeXt distributions.
+%
+\startmodule[circuitikz]
+\usemodule[tikz]
-\def\pgfcircversion{1.6.1}
-\def\pgfcircversiondate{2023/02/11}
+\def\pgfcircversion{1.6.2}
+\def\pgfcircversiondate{2023/05/13}
\writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
-\usemodule[tikz]
-\startmodule[circuitikz]
\usetikzlibrary[calc]
\usetikzlibrary[arrows.meta, bending]
\usetikzlibrary[fpu] % may be needed for use fpu reciprocal (v1.0.1)
@@ -94,6 +98,10 @@
[european=>\ctikzset{ logic ports=european},
american=>\ctikzset{ logic ports=american}]
+% This tiny siunitx emulation layer (REALLY tiny) is practically never
+% enabled because recent ConTeXt releases override this file with
+% m-circuitikz.tex and in that file it has been removed.
+
\processaction
[\currentmoduleparameter{siunitx}]
[true=>\def\SI#1#2{#1\,#2}