summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-11-27 01:23:48 +0000
committerKarl Berry <karl@freefriends.org>2009-11-27 01:23:48 +0000
commitc2891584a71bef79217edf0f155772dae1f68b61 (patch)
treeaa182bbf18e9a50a6a3c89f4809535b30322f736 /Master/texmf-dist
parent5647d8caa246f321a52c4b2e3a3c863ebf7be802 (diff)
circuitikz 0.2.3 (26nov09)
git-svn-id: svn://tug.org/texlive/trunk@16183 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/CHANGELOG26
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/README10
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdfbin262939 -> 337782 bytes
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex500
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/context.pdfbin0 -> 48571 bytes
-rw-r--r--Master/texmf-dist/doc/latex/circuitikz/context.tex20
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/circuitikz.code.tex486
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty703
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/circuitikz1.code.tex437
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/pgfcircbipoles.sty417
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/pgfcirccurrent.sty26
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/pgfcirclabel.sty19
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/pgfcircmonopoles.sty7
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/pgfcircquadpoles.sty73
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty1747
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty19
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/pgfcircvoltage.sty120
-rw-r--r--Master/texmf-dist/tex/latex/circuitikz/t-circuitikz.tex95
18 files changed, 3613 insertions, 1092 deletions
diff --git a/Master/texmf-dist/doc/latex/circuitikz/CHANGELOG b/Master/texmf-dist/doc/latex/circuitikz/CHANGELOG
index 64227cc2576..89e1fc2f755 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/CHANGELOG
+++ b/Master/texmf-dist/doc/latex/circuitikz/CHANGELOG
@@ -1,12 +1,36 @@
CircuiTikz - Changelog
+* Version 0.2.3
+ - fixed compatibility problem with label option from tikz
+ - Fixed resizing problem for shape ground
+ - Variable capacitor
+ - polarized capacitor
+ - ConTeXt support (read the manual!)
+ - nfet, nigfete, nigfetd, pfet, pigfete, pigfetd (contribution of Clemens Helfmeier and Theodor
+Borsche)
+ - njfet, pjfet (contribution of Danilo Piazzalunga)
+ - pigbt, nigbt
+ - *backward incompatibility* potentiometer is now the standard resistor-with-arrow-in-the-middle; the old potentiometer is now known as variable resistor (or vR), similarly to variable inductor and variable capacitor
+ - triac, thyristor, memristor
+ - new property "name" for bipoles
+ - fixed voltage problem for batteries in american voltage mode
+ - european logic gates
+ - *backward incompatibility* new american standard inductor. Old american inductor now called "cute inductor"
+ - *backward incompatibility* transformer now linked with the chosen type of inductor, and version with core, too. Similarly for variable inductor
+ - *backward incompatibility* styles for selecting shape variants now end are in the plural to avoid conflict with paths
+ - new placing option for some tripoles (mostly transistors)
+ - mirror path style
+
+
* Version 0.2.2 - 20090520
- - Added the shape for lamps.
+ - Added the shape for lamps.
- Added options \texttt{europeanresistor}, \texttt{europeaninductor}, \texttt{americanresistor} and \texttt{americaninductor}, with corresponding styles.
- FIXED: error in transistor arrow positioning and direction under negative \texttt{xscale} and \texttt{yscale}.
+
* Version 0.2.1 - 20090503
- Op-amps added
- added options arrowmos and noarrowmos, to add arrows to pmos and nmos
+
* Version 0.2 - 20090417
First public release on CTAN
- *Backward incompatibility*: labels ending with \texttt{:}\textit{angle} are not parsed for positioning anymore.
diff --git a/Master/texmf-dist/doc/latex/circuitikz/README b/Master/texmf-dist/doc/latex/circuitikz/README
index 883d4728dc2..8dfab0ddae4 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/README
+++ b/Master/texmf-dist/doc/latex/circuitikz/README
@@ -1,4 +1,4 @@
-This is CircuiTikz, version 0.2.2.
+This is CircuiTikz, version 0.2.3.
This package provides a set of macros for naturally typesetting electrical and (somewhat less naturally, perhaps) electronical networks.
@@ -9,8 +9,8 @@ So I based everything with the very impressive (if somewhat verbose at times) \T
--------------
** Requirements
-Tikz graphics library
-
+Tikz graphics library, version 2
+xstrings not older than 2009/03/13
** Installation
Unpack everything in a directory in the TeX search path and refresh the TeX db.
@@ -19,6 +19,10 @@ Unpack everything in a directory in the TeX search path and refresh the TeX db.
Just place
\usepackage{circuitikz}
+
+or, for ConTeXt,
+
+ \usemodule[circuitikz]
in the preamble and compile away, both with PS and PDF target output.
diff --git a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.pdf
index eeb44b5d24b..51eaa7711eb 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 ffd294534d1..d00398a98eb 100644
--- a/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
+++ b/Master/texmf-dist/doc/latex/circuitikz/circuitikzmanual.tex
@@ -1,12 +1,12 @@
\documentclass[a4paper]{article}
-
+\usepackage{xltxtra}
\usepackage[siunitx]{circuitikz}
\usepackage{showexpl}
\usepackage{framed}
\usepackage{hyperref}
\hypersetup{
bookmarks=false, % show bookmarks bar?
- pdftitle={CircuitTikZ v. 0.2.2 - manual}, % title
+ pdftitle={CircuitTikZ v. \pgfcircversion\ - manual}, % title
pdfauthor={Massimo Redaelli}, % author
pdfsubject={CircuitTikZ manual}, % subject of the document
pdfkeywords={}, % list of keywords
@@ -17,22 +17,34 @@
urlcolor=black % color of external links
}
-\def\circuititem#1#2#3{\item #2 (\texttt{#1}) \par \begin{center}\begin{circuitikz} \draw (0,0) node[#1] {}; \end{circuitikz} \end{center}
+%\usepackage{xeindex}
+
+%\IndexList{mylist}{resistor, }
+
+\def\circuititem#1#2#3{\item {#2} (\texttt{#1}) \par \begin{center}\begin{circuitikz} \draw (0,0) node[#1] {}; \end{circuitikz} \end{center}
\par}
-\newcommand{\circuititembip}[3]{\item #2 (\texttt{#1}%
+\newcommand{\circuititembip}[3]{\item {#2} (\texttt{#1}%
\ifthenelse{\equal{#3}{}}{%
}{%
, or \texttt{#3}%
}%
)\par \begin{center}\begin{circuitikz} \draw (0,0) to[#1] (2,0); \end{circuitikz} \end{center}\par}
+
+\long\def\comment#1{}
+
\begin{document}
+\setcounter{secnumdepth}{3}
+\setcounter{tocdepth}{3}
+
\def\TikZ{Ti\emph{k}Z}
+\def\Circuitikz{Circui\TikZ}
+\def\ConTeXt{Con\TeX t}
\lstset{frameround=fttt}
\lstloadlanguages{TeX}
-\title{Circui\TikZ \\{\large version 0.2.2}}
+\title{\Circuitikz \\{\large version \pgfcircversion}}
\author{Massimo A. Redaelli}
\date{\today}
@@ -73,7 +85,7 @@ Much appreciated: \href{mailto:mredaelli@elet.polimi.it}{\texttt{mredaelli@elet.
\subsection{Requirements}
\begin{itemize}
\item \texttt{tikz}, version $\ge 2$;
- \item \texttt{xstring};
+ \item \texttt{xstring}, not older than 2009/03/13;
\item \texttt{siunitx}, if using \texttt{siunitx} option.
\end{itemize}
@@ -81,31 +93,91 @@ Much appreciated: \href{mailto:mredaelli@elet.polimi.it}{\texttt{mredaelli@elet.
None, as far as I know.
+\subsection{Introduction to version 0.2.3}
+
+Having waited a long time before updating the package, many feature requests piled on my desk. They should all be implemented now.
+
+There are a number of backward incompatibilities — I'm sorry, but I had to make a choice in order not to have a schizophrenic interface. They are mostly, in my opinion, minor problems that can be dealt with with appropriate package options:
+\begin{itemize}
+ \item \texttt{potentiometer} is now the standard resistor-with-arrow-in-the-middle; the old potentiometer is now known as \texttt{variable resistor} (or \texttt{vR}), similarly to \texttt{variable inductor} and \texttt{variable capacitor};
+ \item \texttt{american inductor} was not really the standard american inductor. The old american inductor has been renamed \texttt{cute inductor};
+ \item \texttt{transformer}, \texttt{transformer core} and \texttt{variable inductor} are now linked with the chosen type of \texttt{inductor};
+ \item styles for selecting shape variants (like \texttt{[american resistors]}) are now in the plural to avoid conflict with paths (like \texttt{to[american resistor]}).
+\end{itemize}
+
+\subsection{\ConTeXt\ compatibility}
+
+As requested by some users, I fixed the package for it to be compatible with \ConTeXt. Just use \verb!\usemodule[circuitikz]! in your preamble and include the code between \verb!\startcircuitikz! and \verb!\endcircuitikz!. Please notice that the package \texttt{siunitx} in \emph{not} available for \ConTeXt: the option \texttt{siunitx} simply defines a few measurement units typical in electric sciences.
+
+\medskip
+
+In actually using \Circuitikz\ with \TikZ\ version 2 in \ConTeXt\ an error comes up, saying something like
+\begin{verbatim}
+! Undefined control sequence.
+\tikz@cc@mid@checks -> \pgfutil@ifnextchar!
+\end{verbatim}
+
+
+The solution has been suggested to me by Aditya Mahajan, and involves modifying a file in \TikZ:
+\begin{verbatim}
+Here is the fix. In tikzlibrarycalc.code.tex change
+
+\def\tikz@cc@mid@checks{
+ \pgfutil@ifnextchar !{%AM: Added space
+ \tikz@cc@mid%
+ }{%
+ \advance\pgf@xa by\tikz@cc@factor\pgf@xb%
+ \advance\pgf@ya by\tikz@cc@factor\pgf@yb%
+ \tikz@cc@parse% continue
+ }%
+}
+
+\def\tikz@cc@mid !{%AM Added space
+ \pgfutil@ifnextchar({%
+ \tikz@scan@one@point\tikz@cc@project%
+ }{%
+ \tikz@cc@mid@num%
+ }%
+}
+\end{verbatim}
+
+As far as I know, this is a bug in \TikZ, and I notified the author, but until he fixes it, you know the workaround.
\section{Options}
\begin{itemize}
- \item \texttt{europeanvoltage}: uses arrows to define voltages, and uses european-style voltage sources;
- \item \texttt{americanvoltage}: uses $-$ and $+$ to define voltages, and uses american-style voltage sources;
- \item \texttt{europeancurrent}: uses european-style current sources;
- \item \texttt{americancurrent}: uses american-style current sources;
- \item \texttt{europeanresistor}: uses rectangular empty shape for resistors, as per european standards;
- \item \texttt{americanresistor}: uses zig-zag shape for resistors, as per american standards;
- \item \texttt{europeaninductor}: uses rectangular filled shape for inductors, as per european standards;
- \item \texttt{americaninductor}: uses coil shape for inductors, as per american standards;
- \item \texttt{european}: equivalent to \texttt{europeancurrent}, \texttt{europeanvoltage}, \texttt{europeanresistor}, \texttt{europeaninductor};
- \item \texttt{american}: equivalent to \texttt{americancurrent}, \texttt{americanvoltage}, \texttt{americanresistor}, \texttt{americaninductor};
+ \item \texttt{europeanvoltages}: uses arrows to define voltages, and uses european-style voltage sources;
+ \item \texttt{americanvoltages}: uses $-$ and $+$ to define voltages, and uses american-style voltage sources;
+ \item \texttt{europeancurrents}: uses european-style current sources;
+ \item \texttt{americancurrents}: uses american-style current sources;
+ \item \texttt{europeanresistors}: uses rectangular empty shape for resistors, as per european standards;
+ \item \texttt{americanresistors}: uses zig-zag shape for resistors, as per american standards;
+ \item \texttt{europeaninductors}: uses rectangular filled shape for inductors, as per european standards;
+ \item \texttt{americaninductors}: uses "4-bumps" shape for inductors, as per american standards;
+ \item \texttt{cuteinductors}: uses my personal favorite, "pig-tailed" shape for inductors;
+ \item \texttt{americanports}: uses triangular logic ports, as per american standards;
+ \item \texttt{europeanports}: uses rectangular logic ports, as per european standards;
+ \item \texttt{european}: equivalent to \texttt{europeancurrents}, \texttt{europeanvoltages}, \texttt{europeanresistors}, \texttt{europeaninductors}, \texttt{europeanports};
+ \item \texttt{american}: equivalent to \texttt{americancurrents}, \texttt{americanvoltages}, \texttt{americanresistors}, \texttt{americaninductors}, \texttt{americanports};
\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{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 Un-filled diode can always be forced with \texttt{Do}, \texttt{sDo}, \ldots
- \item \texttt{emptydiode}: the various diodes are drawn \emph{but not} filled by default, i.e. when using styles such as \texttt{diode}, \texttt{D}, \texttt{sD}, \ldots Filled diode can always be forced with \texttt{D*}, \texttt{sD*}, \ldots
+ \item \texttt{fulldiodes}: the various diodes are drawn \emph{and} filled by default, i.e. when using styles such as \texttt{diode}, \texttt{D}, \texttt{sD}, \ldots Un-filled diode can always be forced with \texttt{Do}, \texttt{sDo}, \ldots
+ \item \texttt{emptydiodes}: the various diodes are drawn \emph{but not} filled by default, i.e. when using styles such as \texttt{diode}, \texttt{D}, \texttt{sD}, \ldots Filled diode can always be forced with \texttt{D*}, \texttt{sD*}, \ldots
\item \texttt{arrowmos}: pmos and nmos have arrows analogous to those of pnp and npn transistors;
\item \texttt{noarrowmos}: pmos and nmos do not have arrows analogous to those of pnp and npn transistors.
\end{itemize}
+The old options in the singular (like \texttt{american voltage}) are still available for compatibility, but are discouraged.
+
+\medskip
+
Loading the package with no options is equivalent to my own personal liking, that is to the following options:\\
- \texttt{[european current, european voltage, american resistor, american inductor, nosiunitx, noarrowmos]}.
+ \texttt{[europeancurrents, europeanvoltages, americanresistors, cuteinductors, americanports, nosiunitx, noarrowmos]}.
+
+\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}.
\section{The components}
@@ -113,7 +185,7 @@ Here follows the list of all the shapes defined by Circui\TikZ. These are all \t
\medskip
-Each bipole is shown using the following command, where \verb!#1! is the name of the component\footnote{If \texttt{\#1} is the name of the bipole/the style, then the actual name of the shape is \texttt{\#1shape}.}:
+Each bipole (plus triac and thyristors) are shown using the following command, where \verb!#1! is the name of the component\footnote{If \texttt{\#1} is the name of the bipole/the style, then the actual name of the shape is \texttt{\#1shape}.}:
\begin{verbatim}
\begin{center}\begin{circuitikz} \draw
@@ -128,6 +200,8 @@ The other shapes are shown with:
; \end{circuitikz} \end{center}
\end{verbatim}
+Please notice that for user convenience transistors can also be inputted using the syntax for bipoles. See section~\ref{sec:transasbip}.
+
\subsection{Monopoles}
\begin{itemize}
\circuititem{ground}{Ground}{}
@@ -136,39 +210,46 @@ The other shapes are shown with:
\subsection{Bipoles}
-\paragraph{Instruments}
+\subsubsection{Instruments}
\begin{itemize}
\circuititembip{ammeter}{Ammeter}{}
\circuititembip{voltmeter}{Voltmeter}{}
\end{itemize}
-\paragraph{Basic resistive bipoles}
+\subsubsection{Basic resistive bipoles}
\begin{itemize}
\circuititembip{short}{Short circuit}{}
\circuititembip{open}{Open circuit}{}
- \circuititembip{pR}{Potentiometer}{potentiometer}
\circuititembip{lamp}{Lamp}{}
\circuititembip{generic}{Generic (symmetric) bipole}{}
+ \circuititembip{tgeneric}{Tunable generic bipole}{}
\circuititembip{ageneric}{Generic asymmetric bipole}{}
- \circuititembip{fullgeneric}{Generic asymmetric bipole}{}
+ \circuititembip{fullgeneric}{Generic asymmetric bipole (full)}{}
+ \circuititembip{tfullgeneric}{Tunable generic bipole (full)}{}
+ \circuititembip{memristor}{Memristor}{Mr}
\end{itemize}
-\paragraph{The resistor}
+\subsubsection{Resistors and the like}
-If \texttt{europeanresistor} option is active (or the style \texttt{[european resistor]} is used), the resistor is displayed as follows:
+If (default behaviour) \texttt{americanresistors} option is active (or the style \texttt{[american resistors]} is used), the resistor is displayed as follows:
\begin{itemize}
- \ctikzset{european resistor=true}
- \circuititembip{R}{Resistor}{resistor}
+ \ctikzset{resistor=american}
+ \circuititembip{R}{Resistor}{american resistor}
+ \circuititembip{vR}{Variable resistor}{american variable resistor}
+ \circuititembip{pR}{Potentiometer}{american potentiometer}
\end{itemize}
-If instead (default behaviour) \texttt{americanresistor} option is active (or the style \texttt{[american resistor]} is used), the resistor is displayed as follows:
+
+If instead \texttt{europeanresistors} option is active (or the style \texttt{[european resistors]} is used), the resistors, variable resistors and potentiometers are displayed as follows:
\begin{itemize}
- \ctikzset{european resistor=false}
- \circuititembip{R}{Resistor}{resistor}
+ \ctikzset{resistor=european}
+ \circuititembip{R}{Resistor}{european resistor}
+ \circuititembip{vR}{Variable resistor}{european variable resistor}
+ \circuititembip{pR}{Potentiometer}{european potentiometer}
+ \ctikzset{resistor=american} % reset default
\end{itemize}
-
-\paragraph{Stationary sources}
+\subsubsection{Stationary sources}
\begin{itemize}
\circuititembip{battery}{Battery}{}
\circuititembip{european voltage source}{Voltage source (european style)}{}
@@ -178,13 +259,14 @@ If instead (default behaviour) \texttt{americanresistor} option is active (or th
\end{itemize}
\begin{framed}
-The options \texttt{europeancurrent} [resp. \texttt{europeanvoltage}] (the default) and \texttt{americancurrent} [resp. \texttt{americanvoltage}] define which current [resp. voltage] source is selected by default when the abbreviated styles \texttt{current source}, \texttt{csource}, \texttt{I} [resp. \texttt{voltage source}, \texttt{vsource}, \texttt{V}] are used.
+If (default behaviour) \texttt{europeancurrents} option is active (or the style \texttt{[european currents]} is used), the shorthands \texttt{current source}, \texttt{isource}, and \texttt{I} are equivalent to \texttt{european current source}. Otherwise, if \texttt{americancurrents} option is active (or the style \texttt{[american currents]} is used) they are equivalent to \texttt{american current source}.
-One can also use the related styles \texttt{[european current]} [resp. \texttt{[european voltage]}] and \texttt{[american current]} [resp. \texttt{[american voltage]}].
+Similarly, if (default behaviour) \texttt{europeanvoltages} option is active (or the style \texttt{[european voltages]} is used), the shorthands \texttt{voltage source}, \texttt{vsource}, and \texttt{V} are equivalent to \texttt{european voltage source}. Otherwise, if \texttt{americanvoltages} option is active (or the style \texttt{[american voltages]} is used) they are equivalent to \texttt{american voltage source}.
\end{framed}
-\paragraph{Diodes and such}
+
+\subsubsection{Diodes and such}
\begin{itemize}
\circuititembip{empty diode}{Empty diode}{Do}
\circuititembip{empty Schottky diode}{Empty Schottky diode}{sDo}
@@ -203,27 +285,39 @@ One can also use the related styles \texttt{[european current]} [resp. \texttt{[
\end{itemize}
\begin{framed}
-The options \texttt{fulldiode} and \texttt{emptydiode} (and the styles \texttt{[full diode]} and \texttt{[full diode]}) define which shape will be used by abbreviated commands such that \texttt{D}, \texttt{sD}, \texttt{zD}, \texttt{tD}, \texttt{pD}, \texttt{leD}, and \texttt{VC}.
+The options \texttt{fulldiodes} and \texttt{emptydiodes} (and the styles \texttt{[full diodes]} and \texttt{[empty diodes]}) define which shape will be used by abbreviated commands such that \texttt{D}, \texttt{sD}, \texttt{zD}, \texttt{tD}, \texttt{pD}, \texttt{leD}, and \texttt{VC}.
\end{framed}
-\paragraph{Basic dynamical bipoles}
+\subsubsection{Basic dynamical bipoles}
\begin{itemize}
\circuititembip{capacitor}{Capacitor}{C}
+ \circuititembip{polar capacitor}{Polar capacitor}{pC}
+ \circuititembip{variable capacitor}{Variable capacitor}{vC}
\end{itemize}
-If \texttt{europeaninductor} option is active (or the style \texttt{[european inductor]} is used), the inductor is displayed as follows:
+If (default behaviour) \texttt{cuteinductors} option is active (or the style \texttt{[cute inductors]} is used), the inductors are displayed as follows:
+\begin{itemize}
+ \ctikzset{inductor=cute}
+ \circuititembip{L}{Inductor}{cute inductor}
+ \circuititembip{vL}{Variable inductor}{variable cute inductor}
+\end{itemize}
+
+If \texttt{americaninductors} option is active (or the style \texttt{[american inductors]} is used), the inductors are displayed as follows:
\begin{itemize}
- \ctikzset{european inductor=true}
- \circuititembip{L}{Inductor}{inductor}
+ \ctikzset{inductor=american}
+ \circuititembip{L}{Inductor}{american inductor}
+ \circuititembip{vL}{Variable inductor}{variable american inductor}
\end{itemize}
-If instead (default behaviour) \texttt{americaninductor} option is active (or the style \texttt{[american inductor]} is used), the inductor is displayed as follows:
+
+Finally, if \texttt{europeaninductors} option is active (or the style \texttt{[european inductors]} is used), the inductors are displayed as follows:
\begin{itemize}
- \ctikzset{european inductor=false}
- \circuititembip{L}{Inductor}{inductor}
+ \ctikzset{inductor=european}
+ \circuititembip{L}{Inductor}{european inductor}
+ \circuititembip{vL}{Variable inductor}{variable european inductor}
\end{itemize}
-\paragraph{Sinusoidal sources} Here because I was asked for them. But how do you distinguish one from the other?!
+\subsubsection{Sinusoidal sources} Here because I was asked for them. But how do you distinguish one from the other?!
\begin{itemize}
\circuititembip{sinusoidal voltage source}{Sinusoidal voltage source}{vsourcesin, sV}
\circuititembip{sinusoidal current source}{Sinusoidal current source}{isourcesin, sI}
@@ -232,10 +326,10 @@ If instead (default behaviour) \texttt{americaninductor} option is active (or th
%\begin{framed}
%The options \texttt{europeancurrent} [resp. \texttt{europeanvoltage}] (the default) and \texttt{americancurrent} [resp. \texttt{americanvoltage}] define which sinusoidal current [resp. voltage] source is selected by default when the abbreviated styles \texttt{sinusoidal current source}, \texttt{csourcesin}, \texttt{cI} [resp. \texttt{sinusoidal voltage source}, \texttt{vsourcesin}, \texttt{cV}] are used.
-%One can also use the related styles \texttt{[european current]} [resp. \texttt{[european voltage]}] and \texttt{[american current]} [resp. \texttt{[american voltage]}].
+%One can also use the related styles \texttt{[european currents]} [resp. \texttt{[european voltages]}] and \texttt{[american currents]} [resp. \texttt{[american voltages]}].
%\end{framed}
-\paragraph{Switch}
+\subsubsection{Switch}
\begin{itemize}
\circuititembip{closing switch}{Closing switch}{cspst}
\circuititembip{opening switch}{Opening switch}{ospst}
@@ -244,7 +338,7 @@ If instead (default behaviour) \texttt{americaninductor} option is active (or th
\subsection{Tripoles}
-\paragraph{Controlled sources} Admittedly, graphically they are bipoles. But I couldn't\ldots
+\subsubsection{Controlled sources} Admittedly, graphically they are bipoles. But I couldn't\ldots
\begin{itemize}
\circuititembip{european controlled voltage source}{Controlled voltage source (european style)}{}
\circuititembip{american controlled voltage source}{Controlled voltage source (american style)}{}
@@ -253,9 +347,9 @@ If instead (default behaviour) \texttt{americaninductor} option is active (or th
\end{itemize}
\begin{framed}
-The options \texttt{europeancurrent} [resp. \texttt{europeanvoltage}] (the default) and \texttt{americancurrent} [resp. \texttt{americanvoltage}] define which controlled current [resp. voltage] source is selected by default when the abbreviated styles are used.
+If (default behaviour) \texttt{europeancurrents} option is active (or the style \texttt{[european currents]} is used), the shorthands \texttt{controlled current source}, \texttt{cisource}, and \texttt{cI} are equivalent to \texttt{european controlled current source}. Otherwise, if \texttt{americancurrents} option is active (or the style \texttt{[american currents]} is used) they are equivalent to \texttt{american controlled current source}.
-One can also use the related styles \texttt{[european current]} [resp. \texttt{[european voltage]}] and \texttt{[american current]} [resp. \texttt{[american voltage]}].
+Similarly, if (default behaviour) \texttt{europeanvoltages} option is active (or the style \texttt{[european voltages]} is used), the shorthands \texttt{controlled voltage source}, \texttt{cvsource}, and \texttt{cV} are equivalent to \texttt{european controlled voltage source}. Otherwise, if \texttt{americanvoltages} option is active (or the style \texttt{[american voltages]} is used) they are equivalent to \texttt{american controlled voltage source}.
\end{framed}
\begin{itemize}
@@ -265,43 +359,104 @@ One can also use the related styles \texttt{[european current]} [resp. \texttt{[
-\paragraph{Transistors}
+\subsubsection{Transistors}
\begin{itemize}
- \circuititem{nmos}{nmos}{}
- \circuititem{pmos}{pmos}{}
- \circuititem{npn}{npn}{}
- \circuititem{pnp}{pnp}{}
+ \circuititem{nmos}{\scshape nmos}{}
+ \circuititem{pmos}{\scshape pmos}{}
+ \circuititem{npn}{\scshape npn}{}
+ \circuititem{pnp}{\scshape pnp}{}
+ \circuititem{nigbt}{\scshape npigbt}{}
+ \circuititem{pigbt}{\scshape pigbt}{}
\end{itemize}
If the option \texttt{arrowmos} is used (or after the commant \verb!\ctikzset{tripoles/mos style/arrows}! is given), this is the output:
\ctikzset{tripoles/mos style/arrows}
\begin{itemize}
- \circuititem{nmos}{nmos}{}
- \circuititem{pmos}{pmos}{}
+ \circuititem{nmos}{\scshape nmos}{}
+ \circuititem{pmos}{\scshape pmos}{}
\end{itemize}
\ctikzset{tripoles/mos style/no arrows}
+\textsc{nfet}s and \textsc{pfet}s have been incorporated based on code provided by Clemens Helfmeier and Theodor
+Borsche:
+\begin{itemize}
+ \circuititem{nfet}{\scshape nfet}{}
+ \circuititem{nigfete}{\scshape nigfete}{}
+ \circuititem{nigfetd}{\scshape nigfetd}{}
+ \circuititem{pfet}{\scshape pfet}{}
+ \circuititem{pigfete}{\scshape pigfete}{}
+ \circuititem{pigfetd}{\scshape pigfetd}{}
+\end{itemize}
+
+\textsc{njfet} and \textsc{pjfet} have been incorporated based on code provided by Danilo Piazzalunga:
+\begin{itemize}
+ \circuititem{njfet}{\scshape njfet}{}
+ \circuititem{pjfet}{\scshape pjfet}{}
+\end{itemize}
+
+\subsubsection{Other bipole-like tripoles}\label{sec:othertrip} The following tripoles are entered with the usual command of the form
+\begin{itemize}
+ \circuititembip{triac}{triac}{Tr}
+ \circuititembip{thyristor}{thyristor}{Ty}
+ %\circuititembip{IGBT}{IGBT}{}
+\end{itemize}
+
\subsection{Double bipoles}
+Transformers automatically use the inductor shape currently selected. These are the three possibilities:
\begin{itemize}
- \circuititem{transformer}{Transformer}{}
- \circuititem{gyrator}{Gyrator}{}
+ \ctikzset{inductor=cute}
+ \circuititem{transformer}{Transformer (cute inductor)}{}
+ \ctikzset{inductor=american}
+ \circuititem{transformer}{Transformer (american inductor)}{}
+ \ctikzset{inductor=european}
+ \circuititem{transformer}{Transformer (european inductor)}{}
+\end{itemize}
+
+
+Transformers with core are also available:
+\begin{itemize}
+ \ctikzset{inductor=cute}
+ \circuititem{transformer core}{Transformer core (cute inductor)}{}
+ \ctikzset{inductor=american}
+ \circuititem{transformer core}{Transformer core (american inductor)}{}
+ \ctikzset{inductor=european}
+ \circuititem{transformer core}{Transformer core (european inductor)}{}
+ \ctikzset{inductor=cute} % reset default
\end{itemize}
+\begin{itemize}
+ \circuititem{gyrator}{Gyrator}{}
+\end{itemize}
\subsection{Logic gates}
\begin{itemize}
- \circuititem{and port}{AND port}{}
- \circuititem{or port}{OR port}{}
- \circuititem{not port}{NOT port}{}
- \circuititem{nand port}{NAND port}{}
- \circuititem{nor port}{NOR port}{}
- \circuititem{xor port}{XOR port}{}
- \circuititem{xnor port}{XNOR port}{}
+ \circuititem{american and port}{American \textsc{and} port}{}
+ \circuititem{american or port}{American \textsc{or} port}{}
+ \circuititem{american not port}{American \textsc{not} port}{}
+ \circuititem{american nand port}{American \textsc{nand} port}{}
+ \circuititem{american nor port}{American \textsc{nor} port}{}
+ \circuititem{american xor port}{American \textsc{xor} port}{}
+ \circuititem{american xnor port}{American \textsc{xnor} port}{}
\end{itemize}
+\begin{itemize}
+ \circuititem{european and port}{European \textsc{and} port}{}
+ \circuititem{european or port}{European \textsc{or} port}{}
+ \circuititem{european not port}{European \textsc{not} port}{}
+ \circuititem{european nand port}{European \textsc{nand} port}{}
+ \circuititem{european nor port}{European \textsc{nor} port}{}
+ \circuititem{european xor port}{European \textsc{xor} port}{}
+ \circuititem{european xnor port}{European \textsc{xnor} port}{}
+\end{itemize}
+
+\begin{framed}
+If (default behaviour) \texttt{americanports} option is active (or the style \texttt{[american ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{not port}, \texttt{nand port}, \texttt{not port}, \texttt{xor port}, and \texttt{xnor port} are equivalent to the american version of the respective logic port.
+
+If otherwise \texttt{europeanports} option is active (or the style \texttt{[european ports]} is used), the shorthands \texttt{and port}, \texttt{or port}, \texttt{not port}, \texttt{nand port}, \texttt{not port}, \texttt{xor port}, and \texttt{xnor port} are equivalent to the european version of the respective logic port.
+\end{framed}
\subsection{Operational Amplifier}
\begin{itemize}
@@ -462,54 +617,54 @@ Also
\subsection{Voltages}
-\paragraph{European style} The default, with arrows. Use option \texttt{europeanvoltage} or style \verb![european voltage]!.
+\subsubsection{European style} The default, with arrows. Use option \texttt{europeanvoltage} or style \verb![european voltages]!.
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[european voltage]
+\begin{circuitikz}[european voltages]
\draw (0,0) to[R, v^>=$v_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[european voltage]
+\begin{circuitikz}[european voltages]
\draw (0,0) to[R, v^<=$v_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[european voltage]
+\begin{circuitikz}[european voltages]
\draw (0,0) to[R, v_>=$v_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[european voltage]
+\begin{circuitikz}[european voltages]
\draw (0,0) to[R, v_<=$v_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
-\paragraph{American style} For those who like it (not me). Use option \texttt{americanvoltage} or set \verb![american voltage]!.
+\subsubsection{American style} For those who like it (not me). Use option \texttt{americanvoltage} or set \verb![american voltages]!.
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[R, v^>=$v_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[R, v^<=$v_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[R, v_>=$v_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[R, v_<=$v_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
@@ -566,6 +721,7 @@ Also
\end{circuitikz}
\end{LTXexample}
+
\subsection{Special components}
For some components label, current and voltage behave as one would expect:
@@ -602,36 +758,36 @@ For some components label, current and voltage behave as one would expect:
\end{circuitikz}
\end{LTXexample}
-The following results from using the option \texttt{americancurrent} or using the style \verb![american current]!.
+The following results from using the option \texttt{americancurrent} or using the style \verb![american currents]!.
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american current]
+\begin{circuitikz}[american currents]
\draw (0,0) to[I=$a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american current]
+\begin{circuitikz}[american currents]
\draw (0,0) to[I, i=$a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american current]
+\begin{circuitikz}[american currents]
\draw (0,0) to[cI=$k\cdot a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american current]
+\begin{circuitikz}[american currents]
\draw (0,0) to[sI=$a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american current]
+\begin{circuitikz}[american currents]
\draw (0,0) to[csI=$k\cdot a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
@@ -670,44 +826,43 @@ The same holds for voltage sources:
\end{circuitikz}
\end{LTXexample}
-The following results from using the option \texttt{americanvoltage} or the style \verb![american voltage]!.
+The following results from using the option \texttt{americanvoltage} or the style \verb![american voltages]!.
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[V=$a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[V, v=$a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[cV=$k\cdot a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[sV=$a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
\begin{LTXexample}[varwidth=true]
-\begin{circuitikz}[american voltage]
+\begin{circuitikz}[american voltages]
\draw (0,0) to[csV=$k\cdot a_1$] (2,0);
\end{circuitikz}
\end{LTXexample}
-
\subsection{Integration with {\ttfamily siunitx}}
-If the option {\ttfamily siunitx} is active, then the following are equivalent:
+If the option {\ttfamily siunitx} is active (and \emph{not} in \ConTeXt), then the following are equivalent:
\begin{LTXexample}[varwidth=true]
\begin{circuitikz}
@@ -745,6 +900,45 @@ If the option {\ttfamily siunitx} is active, then the following are equivalent:
\end{circuitikz}
\end{LTXexample}
+
+
+\subsection{Mirroring}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+ \draw (0,0) to[pD] (2,0);
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+ \draw (0,0) to[pD, mirror] (2,0);
+\end{circuitikz}
+\end{LTXexample}
+
+At the moment, placing labels and currents on mirrored bipoles works:
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+ \draw (0,0) to[ospst=T] (2,0);
+\end{circuitikz}
+\end{LTXexample}
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+ \draw (0,0) to[ospst=T, mirror, i=$i_1$] (2,0);
+\end{circuitikz}
+\end{LTXexample}
+
+But voltages don't:
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz}
+ \draw (0,0) to[ospst=T, mirror, v=v] (2,0);
+\end{circuitikz}
+\end{LTXexample}
+
+Sorry about that.
+
\subsection{Putting them together}
\begin{LTXexample}[varwidth=true]
\begin{circuitikz}
@@ -760,12 +954,11 @@ If the option {\ttfamily siunitx} is active, then the following are equivalent:
\end{circuitikz}
\end{LTXexample}
-%} %comment
\section{Not only bipoles}
-Since only bipoles can be placed "along a line", components with more than two terminals are placed as nodes:
+Since only bipoles (but see section~\ref{sec:transasbip}) can be placed "along a line", components with more than two terminals are placed as nodes:
\begin{LTXexample}[varwidth=true]
\tikz \node[npn] at (0,0) {};
\end{LTXexample}
@@ -774,7 +967,7 @@ Since only bipoles can be placed "along a line", components with more than two t
In order to allow connections with other components, all components define anchors.
-\paragraph{Logical ports} All logical ports, except NOT, have to inputs and one output. They are called respectively \texttt{in 1}, \texttt{in 2}, \texttt{out}:
+\subsubsection{Logical ports} All logical ports, except \textsc{not}, have to inputs and one output. They are called respectively \texttt{in 1}, \texttt{in 2}, \texttt{out}:
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
@@ -795,7 +988,7 @@ In order to allow connections with other components, all components define ancho
;\end{circuitikz}
\end{LTXexample}
-In the case of NOT, there are only \texttt{in} and \texttt{out}:
+In the case of \textsc{not}, there are only \texttt{in} and \texttt{out} (although for compatibility reasons \texttt{in 1} is still defined and equal to \texttt{in}):
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
@@ -808,7 +1001,7 @@ In the case of NOT, there are only \texttt{in} and \texttt{out}:
;\end{circuitikz}
\end{LTXexample}
-\paragraph{Transistors} For MOS transistors one has \texttt{base}, \texttt{gate}, \texttt{source} and \texttt{drain} anchors (which can be abbreviated with \texttt{B}, \texttt{G}, \texttt{S} and \texttt{D}):
+\subsubsection{Transistors} For \textsc{nmos}, \textsc{pmos}, \textsc{nfet}, \textsc{nigfete}, \textsc{nigfetd}, \textsc{pfet}, \textsc{pigfete}, and \textsc{pigfetd} transistors one has \texttt{base}, \texttt{gate}, \texttt{source} and \texttt{drain} anchors (which can be abbreviated with \texttt{B}, \texttt{G}, \texttt{S} and \texttt{D}):
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
@@ -822,15 +1015,26 @@ In the case of NOT, there are only \texttt{in} and \texttt{out}:
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
- (0,0) node[pmos] (mos) {}
- (mos.B) node[anchor=west] {B}
- (mos.G) node[anchor=east] {G}
- (mos.D) node[anchor=north] {D}
- (mos.S) node[anchor=south] {S}
+ (0,0) node[pigfete] (pigfete) {}
+ (pigfete.B) node[anchor=west] {B}
+ (pigfete.G) node[anchor=east] {G}
+ (pigfete.D) node[anchor=south] {D}
+ (pigfete.S) node[anchor=north] {S}
;\end{circuitikz}
\end{LTXexample}
-For BJT transistors the anchors are \texttt{base}, \texttt{emitter} and \texttt{collector} anchors (which can be abbreviated with \texttt{B}, \texttt{E} and \texttt{C}):
+Similarly \textsc{njfet} and \textsc{pjfet} have \texttt{gate}, \texttt{source} and \texttt{drain} anchors (which can be abbreviated with \texttt{G}, \texttt{S} and \texttt{D}):
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz} \draw
+ (0,0) node[pjfet] (pjfet) {}
+ (pjfet.G) node[anchor=east] {G}
+ (pjfet.D) node[anchor=north] {D}
+ (pjfet.S) node[anchor=south] {S}
+;\end{circuitikz}
+\end{LTXexample}
+
+For \textsc{npn}, \textsc{pnp}, \textsc{nigbt}, and \textsc{pigbt} transistors the anchors are \texttt{base}, \texttt{emitter} and \texttt{collector} anchors (which can be abbreviated with \texttt{B}, \texttt{E} and \texttt{C}):
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
@@ -843,10 +1047,10 @@ For BJT transistors the anchors are \texttt{base}, \texttt{emitter} and \texttt
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
- (0,0) node[pnp] (pnp) {}
- (pnp.B) node[anchor=east] {B}
- (pnp.C) node[anchor=north] {C}
- (pnp.E) node[anchor=south] {E}
+ (0,0) node[pigbt] (pigbt) {}
+ (pigbt.B) node[anchor=east] {B}
+ (pigbt.C) node[anchor=north] {C}
+ (pigbt.E) node[anchor=south] {E}
;\end{circuitikz}
\end{LTXexample}
@@ -863,7 +1067,30 @@ Here is one composite example (please notice that the \texttt{xscale=-1} style w
(pnp1.B) node[circ] {} |- (pnp2.C) node[circ] {}
;\end{circuitikz}
\end{LTXexample}
-\paragraph{Operational amplifier} The op amp defines the inverting input (\texttt{-}), the non-inverting input (\texttt{+}) and the output (\texttt{out}) anchors:
+
+Similarly, transistors can be reflected vertically:
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz} \draw
+ (0,0) node[pigfete, yscale=-1] (pigfete) {}
+ (pigfete.B) node[anchor=west] {B}
+ (pigfete.G) node[anchor=east] {G}
+ (pigfete.D) node[anchor=north] {D}
+ (pigfete.S) node[anchor=south] {S}
+;\end{circuitikz}
+\end{LTXexample}
+
+\subsubsection{Other tripoles} When inserting a thrystor, a triac or a potentiometer, one needs to refer to the third node — gate (\texttt{gate} or \texttt{G}) for the former two; wiper (\texttt{wiper} or \texttt{W}) for the latter one. This is done by giving a name to the bipole:
+
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz} \draw
+ (0,0) to[Tr, n=TRI] (2,0)
+ to[pR, n=POT] (4,0);
+ \draw[dashed] (TRI.G) -| (POT.wiper)
+;\end{circuitikz}
+\end{LTXexample}
+
+
+\subsubsection{Operational amplifier} The op amp defines the inverting input (\texttt{-}), the non-inverting input (\texttt{+}) and the output (\texttt{out}) anchors:
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
@@ -888,7 +1115,7 @@ There are also two more anchors defined, \texttt{up} and \texttt{down}, for the
\end{LTXexample}
-\paragraph{Double bipoles} All the (few, actually) double bipoles/quadrupoles have
+\subsubsection{Double bipoles} All the (few, actually) double bipoles/quadrupoles have
the four anchors, two for each port. The first port, to the left, is port \texttt{A}, having the anchors \texttt{A1} (up) and \texttt{A2} (down); same for port \texttt{B}. They also expose the \texttt{base} anchor, for labelling:
\begin{LTXexample}[varwidth=true]
@@ -913,6 +1140,33 @@ the four anchors, two for each port. The first port, to the left, is port \textt
;\end{circuitikz}
\end{LTXexample}
+\subsection{Transistor paths}\label{sec:transasbip}
+
+For syntactical convenience transistors can be placed using the normal path notation used for bipoles. The transitor type can be specified by simply adding a ``T'' (for transistor) in front of the node name of the transistor. It will be placed with the base/gate orthogonal to the direction of the path:
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz} \draw
+ (0,0) node[njfet] {1}
+ (-1,2) to[Tnjfet=2] (1,2)
+ to[Tnjfet=3, mirror] (3,2);
+;\end{circuitikz}
+\end{LTXexample}
+
+Access to the gate and/or base nodes can be gained by naming the transistors with the \texttt{n} or \texttt{name} path style:
+\begin{LTXexample}[varwidth=true]
+\begin{circuitikz} \draw[yscale=1.1, xscale=.8]
+ (2,4.5) -- (0,4.5) to[Tpmos, n=p1] (0,3)
+ to[Tnmos, n=n1] (0,1.5)
+ to[Tnmos, n=n2] (0,0) node[ground] {}
+ (2,4.5) to[Tpmos,n=p2] (2,3) to[short, -*] (0,3)
+ (p1.G) -- (n1.G) to[short, *-o] ($(n1.G)+(3,0)$)
+ (n2.G) ++(2,0) node[circ] {} -| (p2.G)
+ (n2.G) to[short, -o] ($(n2.G)+(3,0)$)
+ (0,3) to[short, -o] (-1,3)
+;\end{circuitikz}
+\end{LTXexample}
+
+The \texttt{name} property is available also for bipoles, although this is useful mostly for triac, potentiometer and thyristor (see~\ref{sec:othertrip}).
+
\section{Customization}
\subsection{Parameters}
@@ -941,8 +1195,8 @@ All can be varied using the \verb!\ctikzset! command, anywhere in the code:
\begin{LTXexample}[varwidth=true]
\tikz \draw (0,0) node[nand port] {}; \par
-\ctikzset{tripoles/nand port/input height=.2}
-\ctikzset{tripoles/nand port/port width=.2}
+\ctikzset{tripoles/american nand port/input height=.2}
+\ctikzset{tripoles/american nand port/port width=.2}
\tikz \draw (0,0) node[nand port] {};
\end{LTXexample}
@@ -956,8 +1210,8 @@ All can be varied using the \verb!\ctikzset! command, anywhere in the code:
Admittedly, not all graphical properties have understandable names, but for the time it will have to do:
\begin{LTXexample}[varwidth=true]
\tikz \draw (0,0) node[xnor port] {};
-\ctikzset{tripoles/xnor port/aaa=.2}
-\ctikzset{tripoles/xnor port/bbb=.6}
+\ctikzset{tripoles/american xnor port/aaa=.2}
+\ctikzset{tripoles/american xnor port/bbb=.6}
\tikz \draw (0,0) node[xnor port] {};
\end{LTXexample}
@@ -1131,7 +1385,29 @@ And yes: this is a bug and \emph{not} a feature\ldots
\section{Revision history}
\begin{itemize}
-
+\item[\itshape version 0.2.3] (20091118).
+ \begin{enumerate}
+ \item fixed compatibility problem with label option from tikz
+ \item Fixed resizing problem for shape ground
+ \item Variable capacitor
+ \item polarized capacitor
+ \item ConTeXt support (read the manual!)
+ \item nfet, nigfete, nigfetd, pfet, pigfete, pigfetd (contribution of Clemens Helfmeier and Theodor
+Borsche)
+ \item njfet, pjfet (contribution of Danilo Piazzalunga)
+ \item pigbt, nigbt
+ \item \emph{backward incompatibility} potentiometer is now the standard resistor-with-arrow-in-the-middle; the old potentiometer is now known as variable resistor (or vR), similarly to variable inductor and variable capacitor
+ \item triac, thyristor, memristor
+ \item new property "name" for bipoles
+ \item fixed voltage problem for batteries in american voltage mode
+ \item european logic gates
+ \item \emph{backward incompatibility} new american standard inductor. Old american inductor now called "cute inductor"
+ \item \emph{backward incompatibility} transformer now linked with the chosen type of inductor, and version with core, too. Similarly for variable inductor
+ \item \emph{backward incompatibility} styles for selecting shape variants now end are in the plural to avoid conflict with paths
+ \item new placing option for some tripoles (mostly transistors)
+ \item mirror path style
+\end{enumerate}
+
\item[\itshape version 0.2.2] (20090520).
\begin{enumerate}
\item Added the shape for lamps.
diff --git a/Master/texmf-dist/doc/latex/circuitikz/context.pdf b/Master/texmf-dist/doc/latex/circuitikz/context.pdf
new file mode 100644
index 00000000000..ec6b653d1bd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/circuitikz/context.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/circuitikz/context.tex b/Master/texmf-dist/doc/latex/circuitikz/context.tex
new file mode 100644
index 00000000000..13f3ade1cde
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/circuitikz/context.tex
@@ -0,0 +1,20 @@
+
+\usemodule[circuitikz]
+
+\starttext
+
+A simple example to test the installation.
+
+\startcircuitikz[scale=1.2]
+ \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)
+ 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);
+\stopcircuitikz
+
+\stoptext
diff --git a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.code.tex b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.code.tex
new file mode 100644
index 00000000000..d229aa280ff
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.code.tex
@@ -0,0 +1,486 @@
+
+%% Options
+
+
+
+
+%% Keys
+
+\long\def\pgf@circ@comment#1{}
+
+\def\circuitikzbasekey{/tikz/circuitikz}
+
+\pgfkeys{\circuitikzbasekey/.is family}
+
+\def\circuitikzset#1{\pgfkeys{\circuitikzbasekey,#1}}
+\let\ctikzset\circuitikzset
+\def\ctikzvalof#1{\pgfkeysvalueof{\circuitikzbasekey/#1}}
+\def\ctikzsetvalof#1#2{\pgfkeyssetvalue{\circuitikzbasekey/#1}{#2}}
+
+\ctikzset{bipoles/.is family}
+\ctikzset{bipoles/border margin/.initial=1.1}
+\ctikzset{bipoles/thickness/.initial=2}
+\ctikzset{bipoles/length/.initial=1.4cm}
+\ctikzset{nodes width/.initial=.04}
+\newdimen\pgf@circ@Rlen
+\ctikzset{bipoles/length/.code={\pgf@circ@Rlen = #1}}
+\ctikzset{monopoles/.is family}
+\ctikzset{monopoles/ground/width/.initial=.25}
+\ctikzset{bipoles/resistor/height/.initial=.3}
+\ctikzset{bipoles/resistor/width/.initial=.8}
+\ctikzset{bipoles/potentiometer/height/.initial=.8}
+\ctikzset{bipoles/potentiometer/height 2/.initial=.3}
+\ctikzset{bipoles/potentiometer/width/.initial=.8}
+\ctikzset{bipoles/vresistor/height/.initial=.6}
+\ctikzset{bipoles/vresistor/width/.initial=.8}
+\ctikzset{bipoles/cute inductor/height/.initial=.3}
+\ctikzset{bipoles/cute inductor/width/.initial=.8}
+\ctikzset{bipoles/cute inductor/coils/.initial=6}
+\ctikzset{bipoles/american inductor/height/.initial=.3}
+\ctikzset{bipoles/american inductor/height 2/.initial=.1}
+\ctikzset{bipoles/american inductor/width/.initial=.8}
+\ctikzset{bipoles/american inductor/coils/.initial=4}
+\ctikzset{bipoles/vcuteinductor/height/.initial=.6}
+\ctikzset{bipoles/vcuteinductor/coil height/.initial=.3}
+\ctikzset{bipoles/vcuteinductor/width/.initial=.8}
+\ctikzset{bipoles/vcuteinductor/coils/.initial=6}
+\ctikzset{bipoles/vamerican inductor/height/.initial=.6}
+\ctikzset{bipoles/vamerican inductor/height 2/.initial=.2}
+\ctikzset{bipoles/vamerican inductor/width/.initial=.8}
+\ctikzset{bipoles/vamerican inductor/coils/.initial=4}
+\ctikzset{bipoles/isource/height/.initial=.60}
+\ctikzset{bipoles/isource/width/.initial=.60}
+\ctikzset{bipoles/isourceam/height/.initial=.60}
+\ctikzset{bipoles/isourceam/width/.initial=.60}
+\ctikzset{bipoles/vsource/height/.initial=.60}
+\ctikzset{bipoles/vsource/width/.initial=.60}
+\ctikzset{bipoles/vsourceam/height/.initial=.60}
+\ctikzset{bipoles/vsourceam/width/.initial=.60}
+\ctikzset{bipoles/vsourceam/margin/.initial=.7}
+\ctikzset{bipoles/isourcesin/height/.initial=.60}
+\ctikzset{bipoles/isourcesin/width/.initial=.60}
+\ctikzset{bipoles/vsourcesin/height/.initial=.60}
+\ctikzset{bipoles/vsourcesin/width/.initial=.60}
+\ctikzset{bipoles/cisource/height/.initial=.7}
+\ctikzset{bipoles/cisource/width/.initial=.7}
+\ctikzset{bipoles/cisourceam/height/.initial=.7}
+\ctikzset{bipoles/cisourceam/width/.initial=.7}
+\ctikzset{bipoles/cvsource/height/.initial=.7}
+\ctikzset{bipoles/cvsource/width/.initial=.7}
+\ctikzset{bipoles/cvsourceam/height/.initial=.7}
+\ctikzset{bipoles/cvsourceam/width/.initial=.7}
+\ctikzset{bipoles/cvsourceam/margin/.initial=.7}
+\ctikzset{bipoles/cvsourceam/text scale/.initial=1}
+\ctikzset{bipoles/cisourcesin/width/.initial=.7}
+\ctikzset{bipoles/cvsourcesin/height/.initial=.7}
+\ctikzset{bipoles/cvsourcesin/width/.initial=.7}
+\ctikzset{bipoles/capacitor/height/.initial=.6}
+\ctikzset{bipoles/capacitor/width/.initial=.2}
+\ctikzset{bipoles/pcapacitor/height/.initial=.6}
+\ctikzset{bipoles/pcapacitor/width/.initial=.2}
+\ctikzset{bipoles/pcapacitor/bend width/.initial=1.1}
+\ctikzset{bipoles/vcapacitor/height/.initial=.6}
+\ctikzset{bipoles/vcapacitor/width/.initial=.5}
+\ctikzset{bipoles/vcapacitor/capacitor width/.initial=.4}
+\ctikzset{bipoles/battery/height/.initial=.6}
+\ctikzset{bipoles/battery/width/.initial=.3}
+\ctikzset{bipoles/diode/height/.initial=.50}
+\ctikzset{bipoles/diode/width/.initial=.40}
+\ctikzset{bipoles/varcap/height/.initial=.50}
+\ctikzset{bipoles/varcap/width/.initial=.45}
+\ctikzset{bipoles/interr/height/.initial=.35}
+\ctikzset{bipoles/interr/width/.initial=.35}
+\ctikzset{bipoles/interr/height 2/.initial=.1}
+\ctikzset{bipoles/generic/height/.initial=.30}
+\ctikzset{bipoles/generic/width/.initial=.80}
+\ctikzset{bipoles/generic potentiometer/height/.initial=.80}
+\ctikzset{bipoles/generic potentiometer/height 2/.initial=.30}
+\ctikzset{bipoles/generic potentiometer/width/.initial=.80}
+\ctikzset{bipoles/ageneric/height/.initial=.30}
+\ctikzset{bipoles/ageneric/width/.initial=.80}
+\ctikzset{bipoles/memristor/height/.initial=.30}
+\ctikzset{bipoles/memristor/wave height/.initial=.5}
+\ctikzset{bipoles/memristor/width/.initial=.80}
+\ctikzset{bipoles/tgeneric/height/.initial=.50}
+\ctikzset{bipoles/tgeneric/width/.initial=.80}
+\ctikzset{bipoles/tfullgeneric/height/.initial=.50}
+\ctikzset{bipoles/tfullgeneric/width/.initial=.80}
+\ctikzset{bipoles/fullgeneric/height/.initial=.30}
+\ctikzset{bipoles/fullgeneric/width/.initial=.80}
+\ctikzset{bipoles/open/height/.initial=.25}
+\ctikzset{bipoles/open/width/.initial=.8}
+\ctikzset{bipoles/ammeter/height/.initial=.60}
+\ctikzset{bipoles/ammeter/width/.initial=.60}
+\ctikzset{bipoles/voltmeter/height/.initial=.60}
+\ctikzset{bipoles/voltmeter/width/.initial=.60}
+\ctikzset{bipoles/not port/width/.initial=1}
+\ctikzset{bipoles/not port/height/.initial=.8}
+\ctikzset{bipoles/not port/circle width/.initial=.15}
+\ctikzset{bipoles/lamp/height/.initial=.60}
+\ctikzset{bipoles/lamp/width/.initial=.60}
+
+\newif\ifpgf@circuit@mos@arrows
+\ctikzset{tripoles/mos style/.is choice}
+\ctikzset{tripoles/mos style/no arrows/.code={\pgf@circuit@mos@arrowsfalse}}
+\ctikzset{tripoles/mos style/arrows/.code={\pgf@circuit@mos@arrowstrue}}
+\ctikzset{tripoles/nmos/width/.initial=.7}
+\ctikzset{tripoles/nmos/gate height/.initial=.35}
+\ctikzset{tripoles/nmos/base height/.initial=.5}
+\ctikzset{tripoles/nmos/height/.initial=1.1}
+\ctikzset{tripoles/nmos/base width/.initial=.5}
+\ctikzset{tripoles/nmos/gate width/.initial=.62}
+\ctikzset{tripoles/pmos/width/.initial=.7}
+\ctikzset{tripoles/pmos/gate height/.initial=.35}
+\ctikzset{tripoles/pmos/base height/.initial=.5}
+\ctikzset{tripoles/pmos/height/.initial=1.1}
+\ctikzset{tripoles/pmos/base width/.initial=.5}
+\ctikzset{tripoles/pmos/gate width/.initial=.62}
+
+\ctikzset{tripoles/nfet/width/.initial=.7}
+\ctikzset{tripoles/nfet/gate height/.initial=.35}
+\ctikzset{tripoles/nfet/base height/.initial=.5}
+\ctikzset{tripoles/nfet/height/.initial=1.1}
+\ctikzset{tripoles/nfet/base width/.initial=.5}
+\ctikzset{tripoles/nfet/gate width/.initial=.62}
+
+\ctikzset{tripoles/pfet/width/.initial=.7}
+\ctikzset{tripoles/pfet/gate height/.initial=.35}
+\ctikzset{tripoles/pfet/base height/.initial=.5}
+\ctikzset{tripoles/pfet/height/.initial=1.1}
+\ctikzset{tripoles/pfet/base width/.initial=.5}
+\ctikzset{tripoles/pfet/gate width/.initial=.62}
+
+\ctikzset{tripoles/nigfete/width/.initial=.7}
+\ctikzset{tripoles/nigfete/gate height/.initial=.35}
+\ctikzset{tripoles/nigfete/base height/.initial=.5}
+\ctikzset{tripoles/nigfete/height/.initial=1.1}
+\ctikzset{tripoles/nigfete/base width/.initial=.5}
+\ctikzset{tripoles/nigfete/gate width/.initial=.62}
+
+\ctikzset{tripoles/nigfetd/width/.initial=.7}
+\ctikzset{tripoles/nigfetd/gate height/.initial=.35}
+\ctikzset{tripoles/nigfetd/base height/.initial=.5}
+\ctikzset{tripoles/nigfetd/height/.initial=1.1}
+\ctikzset{tripoles/nigfetd/base width/.initial=.5}
+\ctikzset{tripoles/nigfetd/gate width/.initial=.62}
+
+\ctikzset{tripoles/pigfete/width/.initial=.7}
+\ctikzset{tripoles/pigfete/gate height/.initial=.35}
+\ctikzset{tripoles/pigfete/base height/.initial=.5}
+\ctikzset{tripoles/pigfete/height/.initial=1.1}
+\ctikzset{tripoles/pigfete/base width/.initial=.5}
+\ctikzset{tripoles/pigfete/gate width/.initial=.62}
+
+\ctikzset{tripoles/pigfetd/width/.initial=.7}
+\ctikzset{tripoles/pigfetd/gate height/.initial=.35}
+\ctikzset{tripoles/pigfetd/base height/.initial=.5}
+\ctikzset{tripoles/pigfetd/height/.initial=1.1}
+\ctikzset{tripoles/pigfetd/base width/.initial=.5}
+\ctikzset{tripoles/pigfetd/gate width/.initial=.62}
+
+\ctikzset{tripoles/npn/width/.initial=.6}
+\ctikzset{tripoles/npn/gate height/.initial=.45}
+\ctikzset{tripoles/npn/gate height 2/.initial=.15}
+\ctikzset{tripoles/npn/base height/.initial=.4}
+\ctikzset{tripoles/npn/height/.initial=1.1}
+\ctikzset{tripoles/npn/gate width/.initial=.5}
+
+
+
+\ctikzset{tripoles/pnp/width/.initial=.6}
+\ctikzset{tripoles/pnp/gate height/.initial=.45}
+\ctikzset{tripoles/pnp/gate height 2/.initial=.15}
+\ctikzset{tripoles/pnp/base height/.initial=.4}
+\ctikzset{tripoles/pnp/height/.initial=1.1}
+\ctikzset{tripoles/pnp/gate width/.initial=.5}
+
+\ctikzset{tripoles/pigbt/width/.initial=.6}
+\ctikzset{tripoles/pigbt/gate height/.initial=.45}
+\ctikzset{tripoles/pigbt/gate height 2/.initial=.15}
+\ctikzset{tripoles/pigbt/base height/.initial=.4}
+\ctikzset{tripoles/pigbt/height/.initial=1.1}
+\ctikzset{tripoles/pigbt/gate width/.initial=.62}
+\ctikzset{tripoles/pigbt/base width/.initial=.5}
+\ctikzset{tripoles/nigbt/width/.initial=.6}
+\ctikzset{tripoles/nigbt/gate height/.initial=.45}
+\ctikzset{tripoles/nigbt/gate height 2/.initial=.15}
+\ctikzset{tripoles/nigbt/base height/.initial=.4}
+\ctikzset{tripoles/nigbt/height/.initial=1.1}
+\ctikzset{tripoles/nigbt/gate width/.initial=.62}
+\ctikzset{tripoles/nigbt/base width/.initial=.5}
+
+\ctikzset{tripoles/njfet/width/.initial=.7}
+\ctikzset{tripoles/njfet/gate height/.initial=.5}
+\ctikzset{tripoles/njfet/gate height 2/.initial=.35}
+\ctikzset{tripoles/njfet/gate width/.initial=.5}
+\ctikzset{tripoles/njfet/height/.initial=1.1}
+\ctikzset{tripoles/pjfet/width/.initial=.7}
+\ctikzset{tripoles/pjfet/gate height/.initial=.5}
+\ctikzset{tripoles/pjfet/gate height 2/.initial=.35}
+\ctikzset{tripoles/pjfet/gate width/.initial=.5}
+\ctikzset{tripoles/pjfet/height/.initial=1.1}
+
+\newif\ifpgf@circuit@europeanlogicport
+\ctikzset{logic ports/.is choice}
+\ctikzset{logic ports/european/.code= {\pgf@circuit@europeanlogicporttrue } }
+\ctikzset{logic ports/american/.code= {\pgf@circuit@europeanlogicportfalse } }
+
+\newif\ifpgf@circuit@bipole@voltage@backward
+\ctikzset{bipole/voltage/direction/.is choice}
+\ctikzset{bipole/voltage/direction/forward/.code={\pgf@circuit@bipole@voltage@backwardfalse}}
+\ctikzset{bipole/voltage/direction/backward/.code={\pgf@circuit@bipole@voltage@backwardtrue}}
+
+\ctikzset{tripoles/american and port/width/.initial=1.1}
+\ctikzset{tripoles/american and port/height/.initial=.8}
+\ctikzset{tripoles/american and port/port width/.initial=.7}
+\ctikzset{tripoles/american and port/input height/.initial=.5}
+\ctikzset{tripoles/american nand port/width/.initial=1.1}
+\ctikzset{tripoles/american nand port/height/.initial=.8}
+\ctikzset{tripoles/american nand port/port width/.initial=.7}
+\ctikzset{tripoles/american nand port/circle width/.initial=.15}
+\ctikzset{tripoles/american nand port/input height/.initial=.5}
+\ctikzset{tripoles/american or port/width/.initial=1.1}
+\ctikzset{tripoles/american or port/height/.initial=.8}
+\ctikzset{tripoles/american or port/port width/.initial=.7}
+\ctikzset{tripoles/american or port/input height/.initial=.5}
+\ctikzset{tripoles/american or port/input skip/.initial=.25}
+\ctikzset{tripoles/american or port/aaa/.initial=.6}
+\ctikzset{tripoles/american or port/bbb/.initial=.4}
+\ctikzset{tripoles/american or port/ccc/.initial=.5}
+\ctikzset{tripoles/american or port/ddd/.initial=.0}
+\ctikzset{tripoles/american nor port/width/.initial=1.1}
+\ctikzset{tripoles/american nor port/height/.initial=.8}
+\ctikzset{tripoles/american nor port/port width/.initial=.7}
+\ctikzset{tripoles/american nor port/input height/.initial=.5}
+\ctikzset{tripoles/american nor port/input skip/.initial=.25}
+\ctikzset{tripoles/american nor port/circle width/.initial=.15}
+\ctikzset{tripoles/american nor port/aaa/.initial=.6}
+\ctikzset{tripoles/american nor port/bbb/.initial=.4}
+\ctikzset{tripoles/american nor port/ccc/.initial=.5}
+\ctikzset{tripoles/american nor port/ddd/.initial=.0}
+\ctikzset{tripoles/american xor port/width/.initial=1.1}
+\ctikzset{tripoles/american xor port/height/.initial=.8}
+\ctikzset{tripoles/american xor port/port width/.initial=.7}
+\ctikzset{tripoles/american xor port/input height/.initial=.5}
+\ctikzset{tripoles/american xor port/input skip/.initial=.15}
+\ctikzset{tripoles/american xor port/distance/.initial=.1}
+\ctikzset{tripoles/american xor port/aaa/.initial=.6}
+\ctikzset{tripoles/american xor port/bbb/.initial=.4}
+\ctikzset{tripoles/american xor port/ccc/.initial=.5}
+\ctikzset{tripoles/american xor port/ddd/.initial=.0}
+\ctikzset{tripoles/american xnor port/width/.initial=1.1}
+\ctikzset{tripoles/american xnor port/height/.initial=.8}
+\ctikzset{tripoles/american xnor port/port width/.initial=.7}
+\ctikzset{tripoles/american xnor port/input height/.initial=.5}
+\ctikzset{tripoles/american xnor port/input skip/.initial=.15}
+\ctikzset{tripoles/american xnor port/distance/.initial=.1}
+\ctikzset{tripoles/american xnor port/aaa/.initial=.6}
+\ctikzset{tripoles/american xnor port/bbb/.initial=.4}
+\ctikzset{tripoles/american xnor port/ccc/.initial=.5}
+\ctikzset{tripoles/american xnor port/ddd/.initial=.0}
+\ctikzset{tripoles/american xnor port/circle width/.initial=.15}
+\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}
+\ctikzset{tripoles/european and port/input height/.initial=.6}
+\ctikzset{tripoles/european or port/width/.initial=1.4}
+\ctikzset{tripoles/european or port/height/.initial=.65}
+\ctikzset{tripoles/european or port/reserved/.initial=.6}
+\ctikzset{tripoles/european or port/input height/.initial=.6}
+\ctikzset{tripoles/european xor port/width/.initial=1.4}
+\ctikzset{tripoles/european xor port/height/.initial=.65}
+\ctikzset{tripoles/european xor port/reserved/.initial=.6}
+\ctikzset{tripoles/european xor port/input height/.initial=.6}
+\ctikzset{tripoles/european nand port/width/.initial=1.4}
+\ctikzset{tripoles/european nand port/not height/.initial=.3}
+\ctikzset{tripoles/european nand port/not width/.initial=.8}
+\ctikzset{tripoles/european nand port/height/.initial=.65}
+\ctikzset{tripoles/european nand port/reserved/.initial=.6}
+\ctikzset{tripoles/european nand port/input height/.initial=.6}
+\ctikzset{tripoles/european not port/width/.initial=1.4}
+\ctikzset{tripoles/european not port/not height/.initial=.3}
+\ctikzset{tripoles/european not port/not width/.initial=.8}
+\ctikzset{tripoles/european not port/height/.initial=.65}
+\ctikzset{tripoles/european not port/reserved/.initial=.6}
+\ctikzset{tripoles/european not port/input height/.initial=0}
+\ctikzset{tripoles/european xnor port/width/.initial=1.4}
+\ctikzset{tripoles/european xnor port/not height/.initial=.3}
+\ctikzset{tripoles/european xnor port/not width/.initial=.8}
+\ctikzset{tripoles/european xnor port/height/.initial=.65}
+\ctikzset{tripoles/european xnor port/reserved/.initial=.6}
+\ctikzset{tripoles/european xnor port/input height/.initial=.6}
+\ctikzset{tripoles/european nor port/width/.initial=1.4}
+\ctikzset{tripoles/european nor port/not height/.initial=.3}
+\ctikzset{tripoles/european nor port/not width/.initial=.8}
+\ctikzset{tripoles/european nor port/height/.initial=.65}
+\ctikzset{tripoles/european nor port/reserved/.initial=.6}
+\ctikzset{tripoles/european nor port/input height/.initial=.6}
+\ctikzset{tripoles/op amp/width/.initial=1.7}
+\ctikzset{tripoles/op amp/port width/.initial=.7}
+\ctikzset{tripoles/op amp/height/.initial=1.4}
+\ctikzset{tripoles/op amp/input height/.initial=.5}
+\ctikzset{tripoles/op amp/up pos/.initial=.45}
+
+\ctikzset{tripoles/thyristor/height/.initial=1.10}
+\ctikzset{tripoles/thyristor/height 2/.initial=.5}
+\ctikzset{tripoles/thyristor/width/.initial=1.0}
+\ctikzset{tripoles/thyristor/diode height/.initial=.5}
+\ctikzset{tripoles/thyristor/diode width left/.initial=.4}
+\ctikzset{tripoles/thyristor/diode width right/.initial=.3}
+
+\ctikzset{tripoles/triac/height/.initial=1.1}
+\ctikzset{tripoles/triac/width/.initial=1}
+\ctikzset{tripoles/triac/diode width left/.initial=.3}
+\ctikzset{tripoles/triac/diode width right/.initial=.3}
+
+\ctikzset{quadpoles/transformer/width/.initial=1.5}
+\ctikzset{quadpoles/transformer/height/.initial=1.5}
+\ctikzset{quadpoles/transformer core/width/.initial=1.5}
+\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{quadpoles/gyrator/width/.initial=1.5}
+\ctikzset{quadpoles/gyrator/height/.initial=1.5}
+
+\ctikzset{bipole/.is family}
+\ctikzset{bipole/direction/.initial = 0}
+\ctikzset{bipole/kind/.initial = }
+\ctikzset{bipole/name/.initial = }
+\newif\ifpgf@circuit@bipole@reversed
+\ctikzset{bipole/reversed/.is if=pgf@circuit@bipole@reversed}
+\newif\ifpgf@circuit@bipole@isvoltage
+\ctikzset{bipole/is voltage/.is if=pgf@circuit@bipole@isvoltage}
+\newif\ifpgf@circuit@bipole@iscurrent
+\ctikzset{bipole/is current/.is if=pgf@circuit@bipole@iscurrent}
+
+\ctikzset{bipole/voltage/.is family}
+\newif\ifpgf@circuit@bipole@voltage@backward
+\ctikzset{bipole/voltage/direction/.is choice}
+\ctikzset{bipole/voltage/direction/forward/.code={\pgf@circuit@bipole@voltage@backwardfalse}}
+\ctikzset{bipole/voltage/direction/backward/.code={\pgf@circuit@bipole@voltage@backwardtrue}}
+\newif\ifpgf@circuit@bipole@voltage@below
+\ctikzset{bipole/voltage/position/.is choice}
+\ctikzset{bipole/voltage/position/above/.code={\pgf@circuit@bipole@voltage@belowfalse}}
+\ctikzset{bipole/voltage/position/below/.code={\pgf@circuit@bipole@voltage@belowtrue}}
+
+\ctikzset{bipole/voltage/label/unit/.initial=}
+\ctikzset{bipole/voltage/label/name/.initial=}
+
+\ctikzset{bipole/current/.is family}
+\newif\ifpgf@circuit@bipole@current@backward
+\ctikzset{bipole/current/direction/.is choice}
+\ctikzset{bipole/current/direction/forward/.code={\pgf@circuit@bipole@current@backwardfalse}}
+\ctikzset{bipole/current/direction/backward/.code={\pgf@circuit@bipole@current@backwardtrue}}
+\newif\ifpgf@circuit@bipole@current@before
+\ctikzset{bipole/current/x position/.is choice}
+\ctikzset{bipole/current/x position/after/.code={\pgf@circuit@bipole@current@beforefalse}}
+\ctikzset{bipole/current/x position/before/.code={\pgf@circuit@bipole@current@beforetrue}}
+\newif\ifpgf@circuit@bipole@current@below
+\ctikzset{bipole/current/y position/.is choice}
+\ctikzset{bipole/current/y position/above/.code={\pgf@circuit@bipole@current@belowfalse}}
+\ctikzset{bipole/current/y position/below/.code={\pgf@circuit@bipole@current@belowtrue}}
+
+\ctikzset{bipole/current/label/unit/.initial=}
+\ctikzset{bipole/current/label/name/.initial=}
+
+\ctikzset{bipole/label/.is family}
+\ctikzset{bipole/label/position/.initial=90}
+\ctikzset{bipole/label/unit/.initial=}
+\ctikzset{bipole/label/name/.initial=}
+
+
+
+\ctikzset{bipole/nodes/.is family}
+\ctikzset{bipole/nodes/left/.is choice}
+\ctikzset{bipole/nodes/left/none/.code={\ctikzsetvalof{bipole/nodes/left}{none}}}
+\ctikzset{bipole/nodes/left/empty/.code={\ctikzsetvalof{bipole/nodes/left}{empty}}}
+\ctikzset{bipole/nodes/left/full/.code={\ctikzsetvalof{bipole/nodes/left}{full}}}
+\ctikzset{bipole/nodes/right/.is choice}
+\ctikzset{bipole/nodes/right/none/.code={\ctikzsetvalof{bipole/nodes/right}{none}}}
+\ctikzset{bipole/nodes/right/empty/.code={\ctikzsetvalof{bipole/nodes/right}{empty}}}
+\ctikzset{bipole/nodes/right/full/.code={\ctikzsetvalof{bipole/nodes/right}{full}}}
+
+
+\newif\ifpgf@circuit@europeanresistor
+\ctikzset{resistor/.is choice}
+\ctikzset{resistor/american/.code = \pgf@circuit@europeanresistorfalse }
+\ctikzset{resistor/european/.code = \pgf@circuit@europeanresistortrue }
+
+\ctikzset{inductor/.is choice}
+\ctikzset{inductor/cute/.code={\ctikzsetvalof{inductor}{cute}}}
+\ctikzset{inductor/european/.code={\ctikzsetvalof{inductor}{european}}}
+\ctikzset{inductor/american/.code={\ctikzsetvalof{inductor}{american}}}
+
+\newif\ifpgf@circuit@fulldiode
+\ctikzset{diode/.is if=pgf@circuit@fulldiode}
+\ctikzset{diode/.is choice}
+\ctikzset{diode/empty/.code = \pgf@circuit@fulldiodefalse }
+\ctikzset{diode/full/.code = \pgf@circuit@fulldiodetrue }
+\ctikzset{thickness/.initial=2}
+\ctikzset{color/.initial=black}
+\pgfkeys{/tikz/color/.add code={}{\ctikzset{color=#1}}}
+
+
+\newif\ifpgf@circ@siunitx
+\newif\ifpgf@circ@siunitx@res
+
+\ctikzset{voltage/.is family}
+\ctikzset{voltage/distance from node/.initial=.5} %\pgf@circ@Rlen units
+\ctikzset{voltage/distance from line/.initial=.08} % pos, tra 0 e 1
+\ctikzset{voltage/bump a/.initial=1.2}
+\ctikzset{voltage/bump b/.initial=1.5}
+\ctikzset{voltage/european label distance/.initial=1.4}
+\ctikzset{voltage/american label distance/.initial=1.1}
+
+\ctikzset{current/.is family}
+\ctikzset{current/distance/.initial = .5}
+
+\tikzset{american currents/.style = { \circuitikzbasekey/current = american } }
+\tikzset{european currents/.style = { \circuitikzbasekey/current = european } }
+\tikzset{american voltages/.style = { \circuitikzbasekey/voltage = american } }
+\tikzset{european voltages/.style = { \circuitikzbasekey/voltage = european } }
+\tikzset{american resistors/.style = { \circuitikzbasekey/resistor = american } }
+\tikzset{european resistors/.style = { \circuitikzbasekey/resistor = european } }
+\tikzset{american inductors/.style = { \circuitikzbasekey/inductor = american } }
+\tikzset{european inductors/.style = { \circuitikzbasekey/inductor = european } }
+\tikzset{cute inductors/.style = { \circuitikzbasekey/inductor = cute } }
+\tikzset{full diodes/.style = { \circuitikzbasekey/diode = full } }
+\tikzset{empty diodes/.style = { \circuitikzbasekey/diode = empty } }
+\tikzset{american ports/.style = { \circuitikzbasekey/logic ports = american } }
+\tikzset{european ports/.style = { \circuitikzbasekey/logic ports = european } }
+\tikzset{european/.style = { european currents, european voltages, european resistors, european inductors, european ports } }
+\tikzset{american/.style = { american currents, american voltages, american resistors, american inductors, american ports } }
+\tikzset{cute/.style = { european currents, european voltages, american resistors, cute inductors, american ports } }
+
+% I should try to make the tree clearer (this voltaege conflicts with the options above)
+
+\newif\ifpgf@circuit@europeanvoltage
+\ctikzset{voltage/.is choice}
+\ctikzset{voltage/american/.code = {\pgf@circuit@europeanvoltagefalse } }
+\ctikzset{voltage/european/.code = {\pgf@circuit@europeanvoltagetrue } }
+
+\newif\ifpgf@circuit@europeancurrent
+\ctikzset{current/.is choice}
+\ctikzset{current/american/.code = \pgf@circuit@europeancurrentfalse }
+\ctikzset{current/european/.code = \pgf@circuit@europeancurrenttrue }
+
+%% dependencies
+
+
+\input pgfcircutils.sty
+\input pgfcircmath.sty
+
+\input pgfcircshapes.sty
+\input pgfcircmonopoles.sty
+\input pgfcircbipoles.sty
+\input pgfcirctripoles.sty
+\input pgfcircquadpoles.sty
+
+\input pgfcirclabel.sty
+\input pgfcircvoltage.sty
+\input pgfcirccurrent.sty
+
+
+
+
+
diff --git a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
index ba41b39100d..7d17188cf48 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty
@@ -8,74 +8,92 @@
% See the file doc/LICENSE for more details.
+%%%%%
+%%%%%
+%%%%%
+%%%%% Se c'è l'opzione symbol, fallback to siunitx con warning
+%%%%%
+%%%%%
+
\NeedsTeXFormat{LaTeX2e}
-\def\pgfcircversion{0.2.1}
+\def\pgfcircversion{0.2.3}
\ProvidesPackage{circuitikz}%
- [2009/04/17 The CircuiTikz circuit drawing package version \pgfcircversion]
+ [2009/11/18 The CircuiTikz circuit drawing package version \pgfcircversion]
%% Version 2.0 of pgf/TikZ is required
\RequirePackage{tikz}
-\RequirePackage{xstring}
\usetikzlibrary{calc}
\usepgflibrary{decorations.pathmorphing}
+\DeclareOption{european}{
+ \ctikzset{voltage=european} \ctikzset{current=european} \ctikzset{inductor=european}
+ \ctikzset{resistor=european} \ctikzset{logic ports=european}
+}
-%% Options
+\DeclareOption{american}{
+ \ctikzset{voltage=american} \ctikzset{current=american} \ctikzset{resistor=american} \ctikzset{inductor=american}
+ \ctikzset{logic ports = american}
+}
-\DeclareOption{fulldiode}{
- \ctikzset{full diode=true}
+\DeclareOption{fulldiodes}{
+ \ctikzset{diode = full}
}
-\DeclareOption{emptydiode}{
- \ctikzset{full diode=false}
+\DeclareOption{emptydiodes}{
+ \ctikzset{diode = empty}
}
-\DeclareOption{europeanvoltage}{
- \ctikzset{european voltage=true}
+\DeclareOption{europeanvoltages}{
+ \ctikzset{voltage=european}
}
-\DeclareOption{americanvoltage}{
- \ctikzset{european voltage=false}
+\DeclareOption{americanvoltages}{
+ \ctikzset{voltage=american}
}
-\DeclareOption{europeancurrent}{
- \ctikzset{european current=true}
+\DeclareOption{europeancurrents}{
+ \ctikzset{current = european}
}
-\DeclareOption{americancurrent}{
- \ctikzset{european current=false}
+\DeclareOption{americancurrents}{
+ \ctikzset{current = american}
}
-\DeclareOption{europeanvoltage}{
- \ctikzset{european voltage=true}
+\DeclareOption{europeanvoltages}{
+ \ctikzset{voltage = european}
}
-\DeclareOption{americanresistor}{
- \ctikzset{european resistor=false}
+\DeclareOption{americanresistors}{
+ \ctikzset{resistor = american}
}
-\DeclareOption{europeanresistor}{
- \ctikzset{european resistor=true}
+\DeclareOption{europeanresistors}{
+ \ctikzset{resistor = european}
}
-\DeclareOption{americaninductor}{
- \ctikzset{european inductor=false}
+\DeclareOption{americaninductors}{
+ \ctikzset{inductor = american}
}
-\DeclareOption{europeaninductor}{
- \ctikzset{european inductor=true}
+\DeclareOption{europeaninductors}{
+ \ctikzset{inductor = european}
}
-\DeclareOption{european}{
- \ctikzset{european voltage=true} \ctikzset{european current=true} \ctikzset{european inductor=true} \ctikzset{european resistor=true}
+\DeclareOption{cuteinductors}{
+ \ctikzset{inductor = cute}
}
-\DeclareOption{american}{
- \ctikzset{european voltage=false} \ctikzset{european current=false} \ctikzset{european resistor=false} \ctikzset{european inductor=false}
+\DeclareOption{americanports}{
+ \ctikzset{logic ports = american}
}
+\DeclareOption{europeanports}{
+ \ctikzset{logic ports = european}
+}
+
+
\DeclareOption{siunitx}{
\pgf@circ@siunitxtrue
}
@@ -92,563 +110,92 @@
\pgf@circuit@mos@arrowsfalse
}
+%%%%%%%%% Compatibility
+
+
+\DeclareOption{fulldiode}{
+ \ctikzset{diode = full}
+}
+
+\DeclareOption{emptydiode}{
+ \ctikzset{diode = empty}
+}
+
+\DeclareOption{europeanvoltage}{
+ \ctikzset{voltage=european}
+}
-%% Keys
-
-\newcommand{\pgf@circ@comment}[1]{}
-
-\def\circuitikzbasekey{/tikz/circuitikz}
-
-\pgfkeys{\circuitikzbasekey/.is family}
-
-\def\circuitikzset#1{\pgfkeys{\circuitikzbasekey,#1}}
-\let\ctikzset\circuitikzset
-\def\ctikzvalof#1{\pgfkeysvalueof{\circuitikzbasekey/#1}}
-\def\ctikzsetvalof#1#2{\pgfkeyssetvalue{\circuitikzbasekey/#1}{#2}}
-
-\ctikzset{bipoles/.is family}
-\ctikzset{bipoles/border margin/.initial=1.1}
-\ctikzset{bipoles/thickness/.initial=2}
-\ctikzset{bipoles/length/.initial=1.4cm}
-\ctikzset{nodes width/.initial=.04}
-\newdimen\pgf@circ@Rlen
-\ctikzset{bipoles/resistor/height/.initial=.3}
-\ctikzset{bipoles/resistor/width/.initial=.8}
-\ctikzset{bipoles/potentiometer/height/.initial=.6}
-\ctikzset{bipoles/potentiometer/width/.initial=.8}
-\ctikzset{bipoles/inductor/height/.initial=.3}
-\ctikzset{bipoles/inductor/width/.initial=.8}
-\ctikzset{bipoles/inductor/coils/.initial=6}
-\ctikzset{bipoles/isource/height/.initial=.60}
-\ctikzset{bipoles/isource/width/.initial=.60}
-\ctikzset{bipoles/isourceam/height/.initial=.60}
-\ctikzset{bipoles/isourceam/width/.initial=.60}
-\ctikzset{bipoles/vsource/height/.initial=.60}
-\ctikzset{bipoles/vsource/width/.initial=.60}
-\ctikzset{bipoles/vsourceam/height/.initial=.60}
-\ctikzset{bipoles/vsourceam/width/.initial=.60}
-\ctikzset{bipoles/vsourceam/margin/.initial=.7}
-\ctikzset{bipoles/isourcesin/height/.initial=.60}
-\ctikzset{bipoles/isourcesin/width/.initial=.60}
-\ctikzset{bipoles/vsourcesin/height/.initial=.60}
-\ctikzset{bipoles/vsourcesin/width/.initial=.60}
-\ctikzset{bipoles/cisource/height/.initial=.7}
-\ctikzset{bipoles/cisource/width/.initial=.7}
-\ctikzset{bipoles/cisourceam/height/.initial=.7}
-\ctikzset{bipoles/cisourceam/width/.initial=.7}
-\ctikzset{bipoles/cvsource/height/.initial=.7}
-\ctikzset{bipoles/cvsource/width/.initial=.7}
-\ctikzset{bipoles/cvsourceam/height/.initial=.7}
-\ctikzset{bipoles/cvsourceam/width/.initial=.7}
-\ctikzset{bipoles/cvsourceam/margin/.initial=.7}
-\ctikzset{bipoles/cvsourceam/text scale/.initial=1}
-\ctikzset{bipoles/cisourcesin/width/.initial=.7}
-\ctikzset{bipoles/cvsourcesin/height/.initial=.7}
-\ctikzset{bipoles/cvsourcesin/width/.initial=.7}
-\ctikzset{bipoles/capacitor/height/.initial=.6}
-\ctikzset{bipoles/capacitor/width/.initial=.2}
-\ctikzset{bipoles/battery/height/.initial=.6}
-\ctikzset{bipoles/battery/width/.initial=.3}
-\ctikzset{bipoles/diode/height/.initial=.50}
-\ctikzset{bipoles/diode/width/.initial=.40}
-\ctikzset{bipoles/varcap/height/.initial=.50}
-\ctikzset{bipoles/varcap/width/.initial=.45}
-\ctikzset{bipoles/interr/height/.initial=.35}
-\ctikzset{bipoles/interr/width/.initial=.35}
-\ctikzset{bipoles/interr/height 2/.initial=.08}
-\ctikzset{bipoles/generic/height/.initial=.30}
-\ctikzset{bipoles/generic/width/.initial=.80}
-\ctikzset{bipoles/ageneric/height/.initial=.30}
-\ctikzset{bipoles/ageneric/width/.initial=.80}
-\ctikzset{bipoles/fullgeneric/height/.initial=.30}
-\ctikzset{bipoles/fullgeneric/width/.initial=.80}
-\ctikzset{bipoles/open/height/.initial=.25}
-\ctikzset{bipoles/open/width/.initial=.8}
-\ctikzset{bipoles/ammeter/height/.initial=.60}
-\ctikzset{bipoles/ammeter/width/.initial=.60}
-\ctikzset{bipoles/voltmeter/height/.initial=.60}
-\ctikzset{bipoles/voltmeter/width/.initial=.60}
-\ctikzset{bipoles/not port/width/.initial=1}
-\ctikzset{bipoles/not port/height/.initial=.8}
-\ctikzset{bipoles/not port/circle width/.initial=.15}
-\ctikzset{bipoles/lamp/height/.initial=.60}
-\ctikzset{bipoles/lamp/width/.initial=.60}
-
-\newif\ifpgf@circuit@mos@arrows
-\ctikzset{tripoles/mos style/.is choice}
-\ctikzset{tripoles/mos style/no arrows/.code={\pgf@circuit@mos@arrowsfalse}}
-\ctikzset{tripoles/mos style/arrows/.code={\pgf@circuit@mos@arrowstrue}}
-\ctikzset{tripoles/nmos/width/.initial=.7}
-\ctikzset{tripoles/nmos/gate height/.initial=.35}
-\ctikzset{tripoles/nmos/base height/.initial=.5}
-\ctikzset{tripoles/nmos/height/.initial=1.1}
-\ctikzset{tripoles/nmos/base width/.initial=.5}
-\ctikzset{tripoles/nmos/gate width/.initial=.6}
-\ctikzset{tripoles/pmos/width/.initial=.7}
-\ctikzset{tripoles/pmos/gate height/.initial=.35}
-\ctikzset{tripoles/pmos/base height/.initial=.5}
-\ctikzset{tripoles/pmos/height/.initial=1.1}
-\ctikzset{tripoles/pmos/base width/.initial=.5}
-\ctikzset{tripoles/pmos/gate width/.initial=.6}
-
-\ctikzset{tripoles/npn/width/.initial=.6}
-\ctikzset{tripoles/npn/gate height/.initial=.45}
-\ctikzset{tripoles/npn/gate height 2/.initial=.15}
-\ctikzset{tripoles/npn/base height/.initial=.4}
-\ctikzset{tripoles/npn/height/.initial=1.1}
-\ctikzset{tripoles/npn/gate width/.initial=.5}
-
-\ctikzset{tripoles/pnp/width/.initial=.6}
-\ctikzset{tripoles/pnp/gate height/.initial=.45}
-\ctikzset{tripoles/pnp/gate height 2/.initial=.15}
-\ctikzset{tripoles/pnp/base height/.initial=.4}
-\ctikzset{tripoles/pnp/height/.initial=1.1}
-\ctikzset{tripoles/pnp/gate width/.initial=.5}
-
-\ctikzset{tripoles/and port/width/.initial=1.1}
-\ctikzset{tripoles/and port/height/.initial=.8}
-\ctikzset{tripoles/and port/port width/.initial=.7}
-\ctikzset{tripoles/and port/input height/.initial=.5}
-\ctikzset{tripoles/nand port/width/.initial=1.1}
-\ctikzset{tripoles/nand port/height/.initial=.8}
-\ctikzset{tripoles/nand port/port width/.initial=.7}
-\ctikzset{tripoles/nand port/circle width/.initial=.15}
-\ctikzset{tripoles/nand port/input height/.initial=.5}
-\ctikzset{tripoles/or port/width/.initial=1.1}
-\ctikzset{tripoles/or port/height/.initial=.8}
-\ctikzset{tripoles/or port/port width/.initial=.7}
-\ctikzset{tripoles/or port/input height/.initial=.5}
-\ctikzset{tripoles/or port/input skip/.initial=.25}
-\ctikzset{tripoles/or port/aaa/.initial=.6}
-\ctikzset{tripoles/or port/bbb/.initial=.4}
-\ctikzset{tripoles/or port/ccc/.initial=.5}
-\ctikzset{tripoles/or port/ddd/.initial=.0}
-\ctikzset{tripoles/nor port/width/.initial=1.1}
-\ctikzset{tripoles/nor port/height/.initial=.8}
-\ctikzset{tripoles/nor port/port width/.initial=.7}
-\ctikzset{tripoles/nor port/input height/.initial=.5}
-\ctikzset{tripoles/nor port/input skip/.initial=.25}
-\ctikzset{tripoles/nor port/circle width/.initial=.15}
-\ctikzset{tripoles/nor port/aaa/.initial=.6}
-\ctikzset{tripoles/nor port/bbb/.initial=.4}
-\ctikzset{tripoles/nor port/ccc/.initial=.5}
-\ctikzset{tripoles/nor port/ddd/.initial=.0}
-\ctikzset{tripoles/xor port/width/.initial=1.1}
-\ctikzset{tripoles/xor port/height/.initial=.8}
-\ctikzset{tripoles/xor port/port width/.initial=.7}
-\ctikzset{tripoles/xor port/input height/.initial=.5}
-\ctikzset{tripoles/xor port/input skip/.initial=.15}
-\ctikzset{tripoles/xor port/distance/.initial=.1}
-\ctikzset{tripoles/xor port/aaa/.initial=.6}
-\ctikzset{tripoles/xor port/bbb/.initial=.4}
-\ctikzset{tripoles/xor port/ccc/.initial=.5}
-\ctikzset{tripoles/xor port/ddd/.initial=.0}
-\ctikzset{tripoles/xnor port/width/.initial=1.1}
-\ctikzset{tripoles/xnor port/height/.initial=.8}
-\ctikzset{tripoles/xnor port/port width/.initial=.7}
-\ctikzset{tripoles/xnor port/input height/.initial=.5}
-\ctikzset{tripoles/xnor port/input skip/.initial=.15}
-\ctikzset{tripoles/xnor port/distance/.initial=.1}
-\ctikzset{tripoles/xnor port/aaa/.initial=.6}
-\ctikzset{tripoles/xnor port/bbb/.initial=.4}
-\ctikzset{tripoles/xnor port/ccc/.initial=.5}
-\ctikzset{tripoles/xnor port/ddd/.initial=.0}
-\ctikzset{tripoles/xnor port/circle width/.initial=.15}
-\ctikzset{tripoles/op amp/width/.initial=1.7}
-\ctikzset{tripoles/op amp/port width/.initial=.7}
-\ctikzset{tripoles/op amp/height/.initial=1.4}
-\ctikzset{tripoles/op amp/input height/.initial=.5}
-\ctikzset{tripoles/op amp/up pos/.initial=.45}
-
-\ctikzset{quadpoles/transformer/width/.initial=1.5}
-\ctikzset{quadpoles/transformer/height/.initial=1.5}
-\ctikzset{quadpoles/gyrator/width/.initial=1.5}
-\ctikzset{quadpoles/gyrator/height/.initial=1.5}
-
-\ctikzset{bipole/.is family}
-\ctikzset{bipole/direction/.initial = 0}
-\ctikzset{bipole/kind/.initial = }
-\ctikzset{bipole/name/.initial = }
-\newif\ifpgf@circuit@bipole@reversed
-\ctikzset{bipole/reversed/.is if=pgf@circuit@bipole@reversed}
-\newif\ifpgf@circuit@bipole@isvoltage
-\ctikzset{bipole/is voltage/.is if=pgf@circuit@bipole@isvoltage}
-\newif\ifpgf@circuit@bipole@iscurrent
-\ctikzset{bipole/is current/.is if=pgf@circuit@bipole@iscurrent}
-
-\ctikzset{bipole/voltage/.is family}
-\newif\ifpgf@circuit@bipole@voltage@backward
-\ctikzset{bipole/voltage/direction/.is choice}
-\ctikzset{bipole/voltage/direction/forward/.code={\pgf@circuit@bipole@voltage@backwardfalse}}
-\ctikzset{bipole/voltage/direction/backward/.code={\pgf@circuit@bipole@voltage@backwardtrue}}
-\newif\ifpgf@circuit@bipole@voltage@below
-\ctikzset{bipole/voltage/position/.is choice}
-\ctikzset{bipole/voltage/position/above/.code={\pgf@circuit@bipole@voltage@belowfalse}}
-\ctikzset{bipole/voltage/position/below/.code={\pgf@circuit@bipole@voltage@belowtrue}}
-
-\ctikzset{bipole/voltage/label/unit/.initial=}
-\ctikzset{bipole/voltage/label/name/.initial=}
-
-\ctikzset{bipole/current/.is family}
-\newif\ifpgf@circuit@bipole@current@backward
-\ctikzset{bipole/current/direction/.is choice}
-\ctikzset{bipole/current/direction/forward/.code={\pgf@circuit@bipole@current@backwardfalse}}
-\ctikzset{bipole/current/direction/backward/.code={\pgf@circuit@bipole@current@backwardtrue}}
-\newif\ifpgf@circuit@bipole@current@before
-\ctikzset{bipole/current/x position/.is choice}
-\ctikzset{bipole/current/x position/after/.code={\pgf@circuit@bipole@current@beforefalse}}
-\ctikzset{bipole/current/x position/before/.code={\pgf@circuit@bipole@current@beforetrue}}
-\newif\ifpgf@circuit@bipole@current@below
-\ctikzset{bipole/current/y position/.is choice}
-\ctikzset{bipole/current/y position/above/.code={\pgf@circuit@bipole@current@belowfalse}}
-\ctikzset{bipole/current/y position/below/.code={\pgf@circuit@bipole@current@belowtrue}}
-
-\ctikzset{bipole/current/label/unit/.initial=}
-\ctikzset{bipole/current/label/name/.initial=}
-
-\ctikzset{bipole/label/.is family}
-\ctikzset{bipole/label/position/.initial=90}
-\ctikzset{bipole/label/unit/.initial=}
-\ctikzset{bipole/label/name/.initial=}
-
-
-
-\ctikzset{bipole/nodes/.is family}
-\ctikzset{bipole/nodes/left/.is choice}
-\ctikzset{bipole/nodes/left/none/.code={\ctikzsetvalof{bipole/nodes/left}{none}}}
-\ctikzset{bipole/nodes/left/empty/.code={\ctikzsetvalof{bipole/nodes/left}{empty}}}
-\ctikzset{bipole/nodes/left/full/.code={\ctikzsetvalof{bipole/nodes/left}{full}}}
-\ctikzset{bipole/nodes/right/.is choice}
-\ctikzset{bipole/nodes/right/none/.code={\ctikzsetvalof{bipole/nodes/right}{none}}}
-\ctikzset{bipole/nodes/right/empty/.code={\ctikzsetvalof{bipole/nodes/right}{empty}}}
-\ctikzset{bipole/nodes/right/full/.code={\ctikzsetvalof{bipole/nodes/right}{full}}}
-
-
-\newif\ifpgf@circuit@europeanvoltage
-\ctikzset{european voltage/.is if=pgf@circuit@europeanvoltage}
-\newif\ifpgf@circuit@europeancurrent
-\ctikzset{european current/.is if=pgf@circuit@europeancurrent}
-\newif\ifpgf@circuit@europeanresistor
-\ctikzset{european resistor/.is if=pgf@circuit@europeanresistor}
-\newif\ifpgf@circuit@europeaninductor
-\ctikzset{european inductor/.is if=pgf@circuit@europeaninductor}
-\newif\ifpgf@circuit@fulldiode
-\ctikzset{full diode/.is if=pgf@circuit@fulldiode}
-\ctikzset{thickness/.initial=2}
-\ctikzset{color/.initial=black}
-\pgfkeys{/tikz/color/.add code={}{\ctikzset{color=#1}}}
-
-\tikzset{european voltage/.code= {\ctikzset{european voltage=true} } }
-\tikzset{european current/.code= {\ctikzset{european current=true} } }
-\tikzset{american voltage/.code= {\ctikzset{european voltage=false} } }
-\tikzset{american current/.code= {\ctikzset{european current=false} } }
-\tikzset{european inductor/.code= {\ctikzset{european inductor=true} } }
-\tikzset{european resistor/.code= {\ctikzset{european resistor=true} } }
-\tikzset{american inductor/.code= {\ctikzset{european inductor=false} } }
-\tikzset{american resistor/.code= {\ctikzset{european resistor=false} } }
-\tikzset{american/.code= {\ctikzset{european current=false} \ctikzset{european voltage=false} \ctikzset{european resistor=false} \ctikzset{european inductor=false}} }
-\tikzset{european/.code= {\ctikzset{european current=true} \ctikzset{european voltage=true} \ctikzset{european resistor=true} \ctikzset{european inductor=true}} }
-\tikzset{full diode/.code= {\ctikzset{full diode=true} } }
-\tikzset{empty diode/.code= {\ctikzset{full diode=false} } }
-
-\newif\ifpgf@circ@siunitx
-\newif\ifpgf@circ@siunitx@res
-
-\ctikzset{voltage/.is family}
-\ctikzset{voltage/distance from node/.initial=.5} %\pgf@circ@Rlen units
-\ctikzset{voltage/distance from line/.initial=.08} % pos, tra 0 e 1
-\ctikzset{voltage/bump a/.initial=1.2}
-\ctikzset{voltage/bump b/.initial=1.5}
-\ctikzset{voltage/european label distance/.initial=1.4}
-\ctikzset{voltage/american label distance/.initial=1.1}
-
-\ctikzset{current/.is family}
-\ctikzset{current/distance/.initial = .5}
-
-
-
-%% dependencies
-
-
-\input pgfcircutils.sty
-\input pgfcircmath.sty
-
-\input pgfcircshapes.sty
-\input pgfcircmonopoles.sty
-\input pgfcircbipoles.sty
-\input pgfcirctripoles.sty
-\input pgfcircquadpoles.sty
-
-\input pgfcirclabel.sty
-\input pgfcircvoltage.sty
-\input pgfcirccurrent.sty
-
-
-
-\ExecuteOptions{european current, european voltage, american resistor, american inductor, nosiunitx, noarrowmos}
-
-\ProcessOptions
+\DeclareOption{americanvoltage}{
+ \ctikzset{voltage=american}
+}
+
+\DeclareOption{europeancurrent}{
+ \ctikzset{current = european}
+}
+
+\DeclareOption{americancurrent}{
+ \ctikzset{current = american}
+}
+
+\DeclareOption{europeanvoltage}{
+ \ctikzset{voltage = european}
+}
+
+\DeclareOption{americanresistor}{
+ \ctikzset{resistor = american}
+}
+
+\DeclareOption{europeanresistor}{
+ \ctikzset{resistor = european}
+}
+
+\DeclareOption{americaninductor}{
+ \ctikzset{inductor = american}
+}
+
+\DeclareOption{europeaninductor}{
+ \ctikzset{inductor = european}
+}
+
+\DeclareOption{cuteinductor}{
+ \ctikzset{inductor = cute}
+}
+
+\DeclareOption{americanport}{
+ \ctikzset{logic ports = american}
+}
+
+\DeclareOption{europeanport}{
+ \ctikzset{logic ports = european}
+}
+
+
+
+%%%%%%%%%
+
+
+
+\input circuitikz.code.tex
+
+\ExecuteOptions{europeancurrents,europeanvoltages,americanports,americanresistors,cuteinductors,nosiunitx,noarrowmos}
+
+\ProcessOptions\relax
\ifpgf@circ@siunitx
+ \RequirePackage{xstring}[2009/03/13]
+ %\expandafter\let\csname angstrom\endcsname\relax
\RequirePackage{siunitx}
\fi
-
-
-%%%%%%%%%%%%
-%% Dimensions
-
-% coordinate bipoli
-\newdimen\pgf@circ@res@up \newdimen\pgf@circ@res@down \newdimen\pgf@circ@res@zero
-\newdimen\pgf@circ@res@left \newdimen\pgf@circ@res@right
-\newdimen\pgf@circ@res@other
-\newdimen\pgf@circ@res@step
-
-% thickness iniziale
-\newdimen \pgfstartlinewidth
-
-\pgf@circ@Rlen = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
-
-
-% Initialize paths
-\def\pgfcircresetpath{
- \ctikzset{bipole/name=, bipole/direction=, bipole/label/name=, bipole/label/position=90,
- bipole/reversed=false, bipole/kind=,
- bipole/voltage/direction=backward, bipole/voltage/label/name=, bipole/voltage/position=below,
- bipole/nodes/left=none, bipole/nodes/right=none, bipole/is voltage=false,
- bipole/is current=false, bipole/current/label/name=, bipole/current/x position=after,
- bipole/current/y position=above, bipole/current/direction=forward }
-}
-
-
-%% Generic bipole path
-\def\pgf@circ@bipole@path#1#2{
- \pgfextra{
- \pgf@circ@Rlen = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
- \ctikzset{bipole/kind = #1}
- \def\pgf@temp{open}
- \def\pgf@circ@temp{#1}
- \pgfmathrandominteger{\pgf@circ@rand}{1000}{9999}
- \ctikzset{bipole/name = #2\pgf@circ@rand}
- }
- \ifpgf@circuit@bipole@reversed
- (\tikztostart) node[coordinate] (\ctikzvalof{bipole/name}end) {}
- (\tikztotarget) node[coordinate] (\ctikzvalof{bipole/name}start) {}
- \else
- (\tikztostart) node[coordinate] (\ctikzvalof{bipole/name}start) {}
- (\tikztotarget) node[coordinate] (\ctikzvalof{bipole/name}end) {}
- \fi
- \pgfextra{
- \pgf@circ@slope{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}}
- {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}}
- \edef\pgf@circ@direction{\pgfmathresult}
- \ctikzset{bipole/direction = \pgfmathresult}
- }
- ($(\tikztostart)!.5!(\tikztotarget)$)
- node[#1shape, rotate=\pgf@circ@direction] (\ctikzvalof{bipole/name}) {}
- \ifx\pgf@temp\pgf@circ@temp % if it is an open
- \else
- (\ctikzvalof{bipole/name}start.center) -- (\ctikzvalof{bipole/name}.left)
- (\ctikzvalof{bipole/name}.right) -- (\ctikzvalof{bipole/name}end.center)
- \fi
- \pgf@circ@ifkeyempty{bipole/label/name}\else
- \pgf@circ@drawlabel\fi
- \drawpoles
- \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else\pgf@circ@drawvoltage\fi
- \pgf@circ@ifkeyempty{bipole/current/label/name}\else\pgf@circ@drawcurrent\fi
- % reset
- \pgfextra{
- \pgfcircresetpath
- }
- (\tikztotarget) \tikztonodes % e si continua
-}
-
-
-%% Path definitions
-
-\def\pgf@circ@resistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{generic}{#1}\else\pgf@circ@bipole@path{resistor}{#1}\fi}
-\def\pgf@circ@potentiometer@path#1{\pgf@circ@bipole@path{potentiometer}{#1}}
-\def\pgf@circ@capacitor@path#1{\pgf@circ@bipole@path{capacitor}{#1}}
-\def\pgf@circ@battery@path#1{\pgf@circ@bipole@path{battery}{#1}}
-\def\pgf@circ@inductor@path#1{\ifpgf@circuit@europeaninductor\pgf@circ@bipole@path{fullgeneric}{#1}\else\pgf@circ@bipole@path{inductor}{#1}\fi}
-\def\pgf@circ@lamp@path#1{\pgf@circ@bipole@path{lamp}{#1}}
-\def\pgf@circ@vsource@path#1{\pgf@circ@bipole@path{vsource}{#1}}
-\def\pgf@circ@vsourceam@path#1{\pgf@circ@bipole@path{vsourceAM}{#1}}
-\def\pgf@circ@vsourcesin@path#1{\pgf@circ@bipole@path{vsourcesin}{#1}}
-\def\pgf@circ@isource@path#1{\pgf@circ@bipole@path{isource}{#1}}
-\def\pgf@circ@isourcesin@path#1{\pgf@circ@bipole@path{isourcesin}{#1}}
-\def\pgf@circ@isourceam@path#1{\pgf@circ@bipole@path{isourceAM}{#1}}
-\def\pgf@circ@cvsource@path#1{\pgf@circ@bipole@path{cvsource}{#1}}
-\def\pgf@circ@cvsourceam@path#1{\pgf@circ@bipole@path{cvsourceAM}{#1}}
-\def\pgf@circ@cvsourcesin@path#1{\pgf@circ@bipole@path{cvsourcesin}{#1}}
-\def\pgf@circ@cisource@path#1{\pgf@circ@bipole@path{cisource}{#1}}
-\def\pgf@circ@cisourceam@path#1{\pgf@circ@bipole@path{cisourceAM}{#1}}
-\def\pgf@circ@cisourcesin@path#1{\pgf@circ@bipole@path{cisourcesin}{#1}}
-\def\pgf@circ@fulldiode@path#1{\pgf@circ@bipole@path{fulldiode}{#1}}
-\def\pgf@circ@fullzdiode@path#1{\pgf@circ@bipole@path{fullzdiode}{#1}}
-\def\pgf@circ@fullsdiode@path#1{\pgf@circ@bipole@path{fullsdiode}{#1}}
-\def\pgf@circ@fulltdiode@path#1{\pgf@circ@bipole@path{fulltdiode}{#1}}
-\def\pgf@circ@fulllediode@path#1{\pgf@circ@bipole@path{fulllediode}{#1}}
-\def\pgf@circ@fullpdiode@path#1{\pgf@circ@bipole@path{fullpdiode}{#1}}
-\def\pgf@circ@fullvarcap@path#1{\pgf@circ@bipole@path{fullvarcap}{#1}}
-\def\pgf@circ@emptydiode@path#1{\pgf@circ@bipole@path{emptydiode}{#1}}
-\def\pgf@circ@emptyzdiode@path#1{\pgf@circ@bipole@path{emptyzdiode}{#1}}
-\def\pgf@circ@emptysdiode@path#1{\pgf@circ@bipole@path{emptysdiode}{#1}}
-\def\pgf@circ@emptytdiode@path#1{\pgf@circ@bipole@path{emptytdiode}{#1}}
-\def\pgf@circ@emptylediode@path#1{\pgf@circ@bipole@path{emptylediode}{#1}}
-\def\pgf@circ@emptypdiode@path#1{\pgf@circ@bipole@path{emptypdiode}{#1}}
-\def\pgf@circ@emptyvarcap@path#1{\pgf@circ@bipole@path{emptyvarcap}{#1}}
-\def\pgf@circ@short@path#1{\pgf@circ@bipole@path{short}{#1}}
-\def\pgf@circ@cspst@path#1{\pgf@circ@bipole@path{cspst}{#1}}
-\def\pgf@circ@ospst@path#1{\pgf@circ@bipole@path{ospst}{#1}}
-\def\pgf@circ@open@path#1{\pgf@circ@bipole@path{open}{#1}}
-\def\pgf@circ@generic@path#1{\pgf@circ@bipole@path{generic}{#1}}
-\def\pgf@circ@ageneric@path#1{\pgf@circ@bipole@path{ageneric}{#1}}
-\def\pgf@circ@fullgeneric@path#1{\pgf@circ@bipole@path{fullgeneric}{#1}}
-\def\pgf@circ@ammeter@path#1{\pgf@circ@bipole@path{ammeter}{#1}}
-\def\pgf@circ@voltmeter@path#1{\pgf@circ@bipole@path{voltmeter}{#1}}
-\def\pgf@circ@empty@path#1{}
-
-
-%% Styles
-
-\tikzset{resistor/.style= {to path=\pgf@circ@resistor@path, l=#1}}
-\tikzset{ammeter/.style= {to path=\pgf@circ@ammeter@path, l=#1}}
-\tikzset{voltmeter/.style= {to path=\pgf@circ@voltmeter@path, l=#1}}
-\tikzset{potentiometer/.style = {to path=\pgf@circ@potentiometer@path, l=#1}}
-\tikzset{capacitor/.style = {to path=\pgf@circ@capacitor@path, l=#1}}
-\tikzset{battery/.style = {to path=\pgf@circ@battery@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
-\tikzset{inductor/.style = {to path=\pgf@circ@inductor@path, l=#1}}
-\tikzset{european voltage source/.style = {to path=\pgf@circ@vsource@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
-\tikzset{american voltage source/.style = {to path=\pgf@circ@vsourceam@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
-\tikzset{european current source/.style = {to path=\pgf@circ@isource@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
-\tikzset{american current source/.style = {to path=\pgf@circ@isourceam@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
-\tikzset{european controlled voltage source/.style = {to path=\pgf@circ@cvsource@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
-\tikzset{american controlled voltage source/.style = {to path=\pgf@circ@cvsourceam@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
-\tikzset{european controlled current source/.style = {to path=\pgf@circ@cisource@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
-\tikzset{american controlled current source/.style = {to path=\pgf@circ@cisourceam@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
-\tikzset{sinusoidal voltage source/.style = {to path=\pgf@circ@vsourcesin@path, \circuitikzbasekey/bipole/is voltage=true, v=#1 }}
-\tikzset{sinusoidal current source/.style = {to path=\pgf@circ@isourcesin@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
-\tikzset{controlled sinusoidal voltage source/.style = {to path=\pgf@circ@cvsourcesin@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
-\tikzset{controlled sinusoidal current source/.style = {to path=\pgf@circ@cisourcesin@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
-
-\tikzset{voltage source/.style = {\ifpgf@circuit@europeanvoltage european \else american \fi voltage source, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
-\tikzset{current source/.style = {\ifpgf@circuit@europeancurrent european \else american \fi current source, \circuitikzbasekey/bipole/is current=true, i=#1}}
-\tikzset{controlled voltage source/.style = {\ifpgf@circuit@europeanvoltage european \else american \fi controlled voltage source, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
-\tikzset{controlled current source/.style = {\ifpgf@circuit@europeancurrent european \else american \fi controlled current source, \circuitikzbasekey/bipole/is current=true, i=#1}}
-
-
-\tikzset{generic/.style = {to path=\pgf@circ@generic@path, l=#1}}
-\tikzset{ageneric/.style = {to path=\pgf@circ@ageneric@path, l=#1}}
-\tikzset{fullgeneric/.style = {to path=\pgf@circ@fullgeneric@path, l=#1}}
-\tikzset{short/.style = {to path=\pgf@circ@short@path}}
-\tikzset{open/.style = {to path=\pgf@circ@open@path}}
-
-\tikzset{lamp/.style = {to path=\pgf@circ@lamp@path}}
-
-\tikzset{full diode/.style = {to path=\pgf@circ@fulldiode@path}}
-\tikzset{full Schottky diode/.style = {to path=\pgf@circ@fullsdiode@path}}
-\tikzset{full Zener diode/.style = {to path=\pgf@circ@fullzdiode@path}}
-\tikzset{full tunnel diode/.style = {to path=\pgf@circ@fulltdiode@path}}
-\tikzset{full photodiode/.style = {to path=\pgf@circ@fullpdiode@path}}
-\tikzset{full led/.style = {to path=\pgf@circ@fulllediode@path}}
-\tikzset{full varcap/.style = {to path=\pgf@circ@fullvarcap@path}}
-
-\tikzset{empty diode/.style = {to path=\pgf@circ@emptydiode@path}}
-\tikzset{empty Schottky diode/.style = {to path=\pgf@circ@emptysdiode@path}}
-\tikzset{empty Zener diode/.style = {to path=\pgf@circ@emptyzdiode@path}}
-\tikzset{empty tunnel diode/.style = {to path=\pgf@circ@emptytdiode@path}}
-\tikzset{empty photodiode/.style = {to path=\pgf@circ@emptypdiode@path}}
-\tikzset{empty led/.style = {to path=\pgf@circ@emptylediode@path}}
-\tikzset{empty varcap/.style = {to path=\pgf@circ@emptyvarcap@path}}
-
- \tikzset{Schottky diode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi Schottky diode}}
- \tikzset{Zener diode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi Zener diode}}
- \tikzset{tunnel diode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi tunnel diode}}
- \tikzset{photodiode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi photodiode}}
- \tikzset{led/.style = {\ifpgf@circuit@fulldiode full \else empty \fi led}}
- \tikzset{varcap/.style = {\ifpgf@circuit@fulldiode full \else empty \fi varcap}}
- \tikzset{diode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi diode}}
-
-\tikzset{closing switch/.style = {to path=\pgf@circ@cspst@path, l=#1}}
-\tikzset{opening switch/.style = {to path=\pgf@circ@ospst@path, l=#1}}
-
-\tikzset{ammeter/.style = {to path=\pgf@circ@ammeter@path}}
-\tikzset{voltmeter/.style = {to path=\pgf@circ@voltmeter@path}}
-
-% short forms
-\tikzset{vsource/.style = {voltage source = #1}}
-\tikzset{isource/.style = {current source = #1}}
-\tikzset{cisource/.style = {controlled current source = #1}}
-\tikzset{cvsource/.style = {controlled voltage source = #1}}
-\tikzset{vsourcesin/.style = {sinusoidal voltage source = #1}}
-\tikzset{isourcesin/.style = {sinusoidal current source = #1}}
-\tikzset{cisourcesin/.style = {controlled sinusoidal current source = #1}}
-\tikzset{cvsourcesin/.style = {controlled sinusoidal voltage source = #1}}
-
-\tikzset{controlled vsource/.style = {controlled voltage source = #1}}
-\tikzset{controlled isource/.style = {controlled current source = #1}}
-\tikzset{controlled vsourcesin/.style = {controlled sinusoidal voltage source = #1}}
-\tikzset{controlled isourcesin/.style = {controlled sinusoidal current source = #1}}
-
-\tikzset{R/.style= {resistor = #1}}
-\tikzset{pR/.style= {potentiometer = #1}}
-\tikzset{C/.style = {capacitor = #1}}
-\tikzset{L/.style = {inductor = #1}}
-\tikzset{V/.style = {voltage source = #1}}
-\tikzset{cV/.style = {controlled voltage source = #1}}
-\tikzset{sV/.style = {sinusoidal voltage source = #1}}
-\tikzset{csV/.style = {controlled sinusoidal voltage source = #1}}
-\def\pgf@temp#1{
- \tikzset{V#1/.style = {voltage source, v#1=##1} }
- \tikzset{cV#1/.style = {controlled voltage source, v#1=##1} }
- \tikzset{sV#1/.style = {sinusoidal voltage source, v#1=##1} }
- \tikzset{csV#1/.style = {controlled sinusoidal voltage source, v#1=##1} }
-}
-\pgf@temp{_>} \pgf@temp{_<} \pgf@temp{^>} \pgf@temp{^<}
-\pgf@temp{>} \pgf@temp{<} \pgf@temp{^} \pgf@temp{_}
-\tikzset{I/.style = {current source = #1}}
-\tikzset{cI/.style = {controlled current source = #1}}
-\tikzset{sI/.style = {sinusoidal current source = #1}}
-\tikzset{csI/.style = {controlled sinusoidal current source = #1}}
-\def\pgf@temp#1{
- \tikzset{I#1/.style = {current source, i#1=##1} }
- \tikzset{cI#1/.style = {controlled current source, i#1=##1} }
- \tikzset{sI#1/.style = {sinusoidal current source, i#1=##1} }
- \tikzset{csI#1/.style = {controlled sinusoidal current source, i#1=##1} }
-}
-\pgf@temp{_>} \pgf@temp{_<} \pgf@temp{^>} \pgf@temp{^<}
-\pgf@temp{>_} \pgf@temp{<_} \pgf@temp{>^} \pgf@temp{<^}
-\pgf@temp{>} \pgf@temp{<} \pgf@temp{^} \pgf@temp{_}
-\tikzset{Do/.style = {empty diode}}
-\tikzset{tDo/.style = {empty tunnel diode}}
-\tikzset{zDo/.style = {empty Zener diode}}
-\tikzset{sDo/.style = {empty Schottky diode}}
-\tikzset{pDo/.style = {empty photodiode}}
-\tikzset{leDo/.style = {empty led}}
-\tikzset{VCo/.style = {empty varcap}}
-\tikzset{D*/.style = {full diode}}
-\tikzset{tD*/.style = {full tunnel diode}}
-\tikzset{zD*/.style = {full Zener diode}}
-\tikzset{sD*/.style = {full Schottky diode}}
-\tikzset{pD*/.style = {full photodiode}}
-\tikzset{leD*/.style = {full led}}
-\tikzset{VC*/.style = {full varcap}}
-\tikzset{D/.style = {diode}}
-\tikzset{tD/.style = {tunnel diode}}
-\tikzset{zD/.style = {Zener diode}}
-\tikzset{sD/.style = {Schottky diode}}
-\tikzset{pD/.style = {photodiode}}
-\tikzset{leD/.style = {led}}
-\tikzset{VC/.style = {varcap}}
-
-\tikzset{cspst/.style = {closing switch = #1}}
-\tikzset{ospst/.style = {opening switch = #1}}
-
-%% The environment
+\input circuitikz1.code.tex
\newenvironment{circuitikz}{
\begin{tikzpicture}}{\end{tikzpicture}}
\endinput
+* Da fare
+
+Uniformare il path dei bipoli e dei transistor
+Perché non ribalda gli induttori?
+Uniformare i casi dell'induttore tra il path del bipolo e la scelta del nodo nel trasformatore
diff --git a/Master/texmf-dist/tex/latex/circuitikz/circuitikz1.code.tex b/Master/texmf-dist/tex/latex/circuitikz/circuitikz1.code.tex
new file mode 100644
index 00000000000..5df83a52d05
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/circuitikz/circuitikz1.code.tex
@@ -0,0 +1,437 @@
+%%%%%%%%%%%%
+%% Dimensions
+
+% coordinate bipoli
+\newdimen\pgf@circ@res@up \newdimen\pgf@circ@res@down \newdimen\pgf@circ@res@zero
+\newdimen\pgf@circ@res@left \newdimen\pgf@circ@res@right
+\newdimen\pgf@circ@res@other
+\newdimen\pgf@circ@res@step
+
+% thickness iniziale
+\newdimen \pgfstartlinewidth
+
+\pgf@circ@Rlen = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+
+
+
+% Names
+\ctikzset{name/.style = { n=#1 } }
+\ctikzset{n/.code = {
+ \pgfkeys{/tikz/circuitikz/bipole/name=#1}
+}}
+
+% Reflect the node along
+\ctikzset{mirrored/.is choice}
+\ctikzset{mirror value/.initial=1}
+\ctikzset{mirrored/true/.code = {\ctikzsetvalof{mirror value}{-1}} }
+\ctikzset{mirrored/false/.code = {\ctikzsetvalof{mirror value}{1}} }
+\ctikzset{mirror/.style = {/tikz/circuitikz/mirrored=true}}
+
+% Initialize paths
+\def\pgfcircresetpath{
+ \ctikzset{bipole/name=, bipole/direction=, bipole/label/name=, bipole/label/position=90,
+ bipole/reversed=false, bipole/kind=,
+ bipole/voltage/direction=backward, bipole/voltage/label/name=, bipole/voltage/position=below,
+ bipole/nodes/left=none, bipole/nodes/right=none, bipole/is voltage=false,
+ bipole/is current=false, bipole/current/label/name=, bipole/current/x position=after,
+ bipole/current/y position=above, bipole/current/direction=forward, mirrored=false }
+}
+
+
+%% Generic bipole path
+\def\pgf@circ@bipole@path#1#2{
+ \pgfextra{
+ \ctikzset{bipole/kind = #1}
+
+ \edef\pgf@temp{\pgfkeysvalueof{/tikz/circuitikz/bipole/name}}
+ \def\pgf@circ@temp{}
+ \ifx\pgf@temp\pgf@circ@temp % if it has not a name
+ \pgfmathrandominteger{\pgf@circ@rand}{1000}{9999}
+ \ctikzset{bipole/name = #2\pgf@circ@rand} % create it
+ \fi
+
+ \def\pgf@temp{open}
+ \def\pgf@circ@temp{#1}
+ }
+ \ifpgf@circuit@bipole@reversed
+ (\tikztostart) node[coordinate] (\ctikzvalof{bipole/name}end) {}
+ (\tikztotarget) node[coordinate] (\ctikzvalof{bipole/name}start) {}
+ \else
+ (\tikztostart) node[coordinate] (\ctikzvalof{bipole/name}start) {}
+ (\tikztotarget) node[coordinate] (\ctikzvalof{bipole/name}end) {}
+ \fi
+ \pgfextra{
+ \pgf@circ@slope{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}}
+ {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}}
+ \edef\pgf@circ@direction{\pgfmathresult}
+ \ctikzset{bipole/direction = \pgfmathresult}
+ }
+ ($(\tikztostart) ! .5 ! (\tikztotarget)$)
+ node[#1shape, rotate=\pgf@circ@direction, yscale=\ctikzvalof{mirror value}]
+ (\ctikzvalof{bipole/name}) {}
+ \ifx\pgf@temp\pgf@circ@temp % if it is an open
+ \else
+ (\ctikzvalof{bipole/name}start.center) -- (\ctikzvalof{bipole/name}.left)
+ (\ctikzvalof{bipole/name}.right) -- (\ctikzvalof{bipole/name}end.center)
+ \fi
+ \pgf@circ@ifkeyempty{bipole/label/name}\else
+ \pgf@circ@drawlabel\fi
+ \drawpoles
+ \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else\pgf@circ@drawvoltage\fi
+ \pgf@circ@ifkeyempty{bipole/current/label/name}\else\pgf@circ@drawcurrent\fi
+ % reset
+ \pgfextra{
+ \pgfcircresetpath
+ }
+ (\tikztotarget) \tikztonodes % e si continua
+}
+
+
+%% Path definitions
+
+\def\pgf@circ@resistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{generic}{#1}\else\pgf@circ@bipole@path{resistor}{#1}\fi}
+\def\pgf@circ@vresistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{tgeneric}{#1}\else\pgf@circ@bipole@path{vresistor}{#1}\fi}
+\def\pgf@circ@potentiometer@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{genericpotentiometer}{#1}\else\pgf@circ@bipole@path{potentiometer}{#1}\fi}
+\def\pgf@circ@capacitor@path#1{\pgf@circ@bipole@path{capacitor}{#1}}
+\def\pgf@circ@polarcapacitor@path#1{\pgf@circ@bipole@path{polarcapacitor}{#1}}
+\def\pgf@circ@vcapacitor@path#1{\pgf@circ@bipole@path{vcapacitor}{#1}}
+\def\pgf@circ@battery@path#1{\pgf@circ@bipole@path{battery}{#1}}
+\def\pgf@circ@europeaninductor@path#1{\pgf@circ@bipole@path{fullgeneric}{#1}}
+\def\pgf@circ@americaninductor@path#1{\pgf@circ@bipole@path{americaninductor}{#1}}
+\def\pgf@circ@cuteinductor@path#1{\pgf@circ@bipole@path{cuteinductor}{#1}}
+\def\pgf@circ@inductor@path#1{%
+ \pgfextra{
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ }
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgf@circ@europeaninductor@path{#1}%
+ \else%
+ \pgfextra{ \def\pgf@temp{cute} }%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgf@circ@cuteinductor@path{#1}%
+ \else%
+ \pgf@circ@americaninductor@path{#1}%
+ \fi%
+ \fi%
+}
+\def\pgf@circ@vinductor@path#1{
+ \pgfextra{
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ }
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgf@circ@veuropeaninductor@path{#1}%
+ \else%
+ \pgfextra{ \def\pgf@temp{cute} }%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgf@circ@vcuteinductor@path{#1}%
+ \else%
+ \pgf@circ@vamericaninductor@path{#1}%
+ \fi%
+ \fi%
+}
+\def\pgf@circ@veuropeaninductor@path#1{\pgf@circ@bipole@path{tfullgeneric}{#1}}
+\def\pgf@circ@vamericaninductor@path#1{\pgf@circ@bipole@path{vamericaninductor}{#1}}
+\def\pgf@circ@vcuteinductor@path#1{\pgf@circ@bipole@path{vcuteinductor}{#1}}
+\def\pgf@circ@lamp@path#1{\pgf@circ@bipole@path{lamp}{#1}}
+\def\pgf@circ@vsource@path#1{\pgf@circ@bipole@path{vsource}{#1}}
+\def\pgf@circ@vsourceam@path#1{\pgf@circ@bipole@path{vsourceAM}{#1}}
+\def\pgf@circ@vsourcesin@path#1{\pgf@circ@bipole@path{vsourcesin}{#1}}
+\def\pgf@circ@isource@path#1{\pgf@circ@bipole@path{isource}{#1}}
+\def\pgf@circ@isourcesin@path#1{\pgf@circ@bipole@path{isourcesin}{#1}}
+\def\pgf@circ@isourceam@path#1{\pgf@circ@bipole@path{isourceAM}{#1}}
+\def\pgf@circ@cvsource@path#1{\pgf@circ@bipole@path{cvsource}{#1}}
+\def\pgf@circ@cvsourceam@path#1{\pgf@circ@bipole@path{cvsourceAM}{#1}}
+\def\pgf@circ@cvsourcesin@path#1{\pgf@circ@bipole@path{cvsourcesin}{#1}}
+\def\pgf@circ@cisource@path#1{\pgf@circ@bipole@path{cisource}{#1}}
+\def\pgf@circ@cisourceam@path#1{\pgf@circ@bipole@path{cisourceAM}{#1}}
+\def\pgf@circ@cisourcesin@path#1{\pgf@circ@bipole@path{cisourcesin}{#1}}
+\def\pgf@circ@fulldiode@path#1{\pgf@circ@bipole@path{fulldiode}{#1}}
+\def\pgf@circ@fullzdiode@path#1{\pgf@circ@bipole@path{fullzdiode}{#1}}
+\def\pgf@circ@fullsdiode@path#1{\pgf@circ@bipole@path{fullsdiode}{#1}}
+\def\pgf@circ@fulltdiode@path#1{\pgf@circ@bipole@path{fulltdiode}{#1}}
+\def\pgf@circ@fulllediode@path#1{\pgf@circ@bipole@path{fulllediode}{#1}}
+\def\pgf@circ@fullpdiode@path#1{\pgf@circ@bipole@path{fullpdiode}{#1}}
+\def\pgf@circ@fullvarcap@path#1{\pgf@circ@bipole@path{fullvarcap}{#1}}
+\def\pgf@circ@emptydiode@path#1{\pgf@circ@bipole@path{emptydiode}{#1}}
+\def\pgf@circ@emptyzdiode@path#1{\pgf@circ@bipole@path{emptyzdiode}{#1}}
+\def\pgf@circ@emptysdiode@path#1{\pgf@circ@bipole@path{emptysdiode}{#1}}
+\def\pgf@circ@emptytdiode@path#1{\pgf@circ@bipole@path{emptytdiode}{#1}}
+\def\pgf@circ@emptylediode@path#1{\pgf@circ@bipole@path{emptylediode}{#1}}
+\def\pgf@circ@emptypdiode@path#1{\pgf@circ@bipole@path{emptypdiode}{#1}}
+\def\pgf@circ@emptyvarcap@path#1{\pgf@circ@bipole@path{emptyvarcap}{#1}}
+\def\pgf@circ@short@path#1{\pgf@circ@bipole@path{short}{#1}}
+\def\pgf@circ@cspst@path#1{\pgf@circ@bipole@path{cspst}{#1}}
+\def\pgf@circ@ospst@path#1{\pgf@circ@bipole@path{ospst}{#1}}
+\def\pgf@circ@open@path#1{\pgf@circ@bipole@path{open}{#1}}
+\def\pgf@circ@generic@path#1{\pgf@circ@bipole@path{generic}{#1}}
+\def\pgf@circ@ageneric@path#1{\pgf@circ@bipole@path{ageneric}{#1}}
+\def\pgf@circ@tgeneric@path#1{\pgf@circ@bipole@path{tgeneric}{#1}}
+\def\pgf@circ@fullgeneric@path#1{\pgf@circ@bipole@path{fullgeneric}{#1}}
+\def\pgf@circ@tfullgeneric@path#1{\pgf@circ@bipole@path{tfullgeneric}{#1}}
+\def\pgf@circ@ammeter@path#1{\pgf@circ@bipole@path{ammeter}{#1}}
+\def\pgf@circ@voltmeter@path#1{\pgf@circ@bipole@path{voltmeter}{#1}}
+\def\pgf@circ@empty@path#1{}
+\def\pgf@circ@thyristor@path#1{\pgf@circ@bipole@path{thyristor}{#1}}
+\def\pgf@circ@memristor@path#1{\pgf@circ@bipole@path{memristor}{#1}}
+\def\pgf@circ@triac@path#1{\pgf@circ@bipole@path{triac}{#1}}
+
+%% Styles
+
+%% Aggiungere per thyristor e tripoli semplici
+
+%\def\ctikzsetbipole#1#2{%
+% \tikzset{#1/.style= {to path=#2, \circuitikzbasekey, l=##1}}%
+%}
+%\ctikzsetbipole{resistor}{\pgf@circ@resistor@path}
+
+\tikzset{resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@resistor@path, l=#1}}
+\tikzset{american resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{resistor}{#1}, l=#1}}
+\tikzset{european resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{generic}{#1}, l=#1}}
+\tikzset{ammeter/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@ammeter@path, l=#1}}
+\tikzset{voltmeter/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@voltmeter@path, l=#1}}
+\tikzset{potentiometer/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@potentiometer@path, l=#1}}
+\tikzset{american potentiometer/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{potentiometer}{#1}, l=#1}}
+\tikzset{european potentiometer/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{genericpotentiometer}{#1}, l=#1}}
+\tikzset{variable resistor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vresistor@path, l=#1}}
+\tikzset{variable american resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{vresistor}{#1}, l=#1}}
+\tikzset{variable european resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@bipole@path{tgeneric}{#1}, l=#1}}
+\tikzset{capacitor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@capacitor@path, l=#1}}
+\tikzset{polar capacitor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@polarcapacitor@path, l=#1}}
+\tikzset{variable capacitor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vcapacitor@path, l=#1}}
+\tikzset{battery/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@battery@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
+\tikzset{inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@inductor@path, l=#1}}
+\tikzset{american inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@americaninductor@path, l=#1}}
+\tikzset{cute inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cuteinductor@path, l=#1}}
+\tikzset{european inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@europeaninductor@path, l=#1}}
+\tikzset{variable inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vinductor@path, l=#1}}
+\tikzset{variable european inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@veuropeaninductor@path, l=#1}}
+\tikzset{variable american inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vamericaninductor@path, l=#1}}
+\tikzset{variable cute inductor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vcuteinductor@path, l=#1}}
+\tikzset{european voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsource@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
+\tikzset{american voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsourceam@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
+\tikzset{european current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@isource@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
+\tikzset{american current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@isourceam@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
+\tikzset{european controlled voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cvsource@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
+\tikzset{american controlled voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cvsourceam@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
+\tikzset{european controlled current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cisource@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
+\tikzset{american controlled current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cisourceam@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
+\tikzset{sinusoidal voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsourcesin@path, \circuitikzbasekey/bipole/is voltage=true, v=#1 }}
+\tikzset{sinusoidal current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@isourcesin@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
+\tikzset{controlled sinusoidal voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cvsourcesin@path, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
+\tikzset{controlled sinusoidal current source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cisourcesin@path, \circuitikzbasekey/bipole/is current=true, i=#1}}
+
+\tikzset{voltage source/.style = {\ifpgf@circuit@europeanvoltage european \else american \fi voltage source, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
+\tikzset{current source/.style = {\ifpgf@circuit@europeancurrent european \else american \fi current source, \circuitikzbasekey/bipole/is current=true, i=#1}}
+\tikzset{controlled voltage source/.style = {\ifpgf@circuit@europeanvoltage european \else american \fi controlled voltage source, \circuitikzbasekey/bipole/is voltage=true, v=#1}}
+\tikzset{controlled current source/.style = {\ifpgf@circuit@europeancurrent european \else american \fi controlled current source, \circuitikzbasekey/bipole/is current=true, i=#1}}
+
+
+\tikzset{generic/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@generic@path, l=#1}}
+\tikzset{ageneric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ageneric@path, l=#1}}
+\tikzset{tgeneric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tgeneric@path, l=#1}}
+\tikzset{fullgeneric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullgeneric@path, l=#1}}
+\tikzset{tfullgeneric/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tfullgeneric@path, l=#1}}
+\tikzset{short/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@short@path}}
+\tikzset{open/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@open@path}}
+
+\tikzset{lamp/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@lamp@path}}
+
+\tikzset{full diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fulldiode@path}}
+\tikzset{full Schottky diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullsdiode@path}}
+\tikzset{full Zener diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullzdiode@path}}
+\tikzset{full tunnel diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fulltdiode@path}}
+\tikzset{full photodiode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullpdiode@path}}
+\tikzset{full led/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fulllediode@path}}
+\tikzset{full varcap/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fullvarcap@path}}
+
+\tikzset{empty diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptydiode@path}}
+\tikzset{empty Schottky diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptysdiode@path}}
+\tikzset{empty Zener diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptyzdiode@path}}
+\tikzset{empty tunnel diode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptytdiode@path}}
+\tikzset{empty photodiode/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptypdiode@path}}
+\tikzset{empty led/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptylediode@path}}
+\tikzset{empty varcap/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@emptyvarcap@path}}
+
+ \tikzset{Schottky diode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi Schottky diode}}
+ \tikzset{Zener diode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi Zener diode}}
+ \tikzset{tunnel diode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi tunnel diode}}
+ \tikzset{photodiode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi photodiode}}
+ \tikzset{led/.style = {\ifpgf@circuit@fulldiode full \else empty \fi led}}
+ \tikzset{varcap/.style = {\ifpgf@circuit@fulldiode full \else empty \fi varcap}}
+ \tikzset{diode/.style = {\ifpgf@circuit@fulldiode full \else empty \fi diode}}
+
+\tikzset{thyristor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thyristor@path}}
+\tikzset{memristor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@memristor@path}}
+\tikzset{triac/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@triac@path}}
+
+\tikzset{closing switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@cspst@path, l=#1}}
+\tikzset{opening switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ospst@path, l=#1}}
+
+\tikzset{ammeter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@ammeter@path}}
+\tikzset{voltmeter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@voltmeter@path}}
+
+% short forms
+\tikzset{vsource/.style = {voltage source = #1}}
+\tikzset{isource/.style = {current source = #1}}
+\tikzset{cisource/.style = {controlled current source = #1}}
+\tikzset{cvsource/.style = {controlled voltage source = #1}}
+\tikzset{vsourcesin/.style = {sinusoidal voltage source = #1}}
+\tikzset{isourcesin/.style = {sinusoidal current source = #1}}
+\tikzset{cisourcesin/.style = {controlled sinusoidal current source = #1}}
+\tikzset{cvsourcesin/.style = {controlled sinusoidal voltage source = #1}}
+
+\tikzset{controlled vsource/.style = {controlled voltage source = #1}}
+\tikzset{controlled isource/.style = {controlled current source = #1}}
+\tikzset{controlled vsourcesin/.style = {controlled sinusoidal voltage source = #1}}
+\tikzset{controlled isourcesin/.style = {controlled sinusoidal current source = #1}}
+
+\tikzset{R/.style= {resistor = #1}}
+\tikzset{vR/.style= {variable resistor = #1}}
+\tikzset{pR/.style= {potentiometer = #1}}
+\tikzset{C/.style = {capacitor = #1}}
+\tikzset{pC/.style = {polar capacitor = #1}}
+\tikzset{vC/.style = {variable capacitor = #1}}
+\tikzset{L/.style = {inductor = #1}}
+\tikzset{vL/.style = {variable inductor = #1}}
+\tikzset{V/.style = {voltage source = #1}}
+\tikzset{cV/.style = {controlled voltage source = #1}}
+\tikzset{sV/.style = {sinusoidal voltage source = #1}}
+\tikzset{csV/.style = {controlled sinusoidal voltage source = #1}}
+\def\pgf@temp#1{
+ \tikzset{V#1/.style = {voltage source, v#1=##1} }
+ \tikzset{cV#1/.style = {controlled voltage source, v#1=##1} }
+ \tikzset{sV#1/.style = {sinusoidal voltage source, v#1=##1} }
+ \tikzset{csV#1/.style = {controlled sinusoidal voltage source, v#1=##1} }
+}
+\pgf@temp{_>} \pgf@temp{_<} \pgf@temp{^>} \pgf@temp{^<}
+\pgf@temp{>} \pgf@temp{<} \pgf@temp{^} \pgf@temp{_}
+\tikzset{I/.style = {current source = #1}}
+\tikzset{cI/.style = {controlled current source = #1}}
+\tikzset{sI/.style = {sinusoidal current source = #1}}
+\tikzset{csI/.style = {controlled sinusoidal current source = #1}}
+\def\pgf@temp#1{
+ \tikzset{I#1/.style = {current source, i#1=##1} }
+ \tikzset{cI#1/.style = {controlled current source, i#1=##1} }
+ \tikzset{sI#1/.style = {sinusoidal current source, i#1=##1} }
+ \tikzset{csI#1/.style = {controlled sinusoidal current source, i#1=##1} }
+}
+\pgf@temp{_>} \pgf@temp{_<} \pgf@temp{^>} \pgf@temp{^<}
+\pgf@temp{>_} \pgf@temp{<_} \pgf@temp{>^} \pgf@temp{<^}
+\pgf@temp{>} \pgf@temp{<} \pgf@temp{^} \pgf@temp{_}
+\tikzset{Do/.style = {empty diode}}
+\tikzset{tDo/.style = {empty tunnel diode}}
+\tikzset{zDo/.style = {empty Zener diode}}
+\tikzset{sDo/.style = {empty Schottky diode}}
+\tikzset{pDo/.style = {empty photodiode}}
+\tikzset{leDo/.style = {empty led}}
+\tikzset{VCo/.style = {empty varcap}}
+\tikzset{D*/.style = {full diode}}
+\tikzset{tD*/.style = {full tunnel diode}}
+\tikzset{zD*/.style = {full Zener diode}}
+\tikzset{sD*/.style = {full Schottky diode}}
+\tikzset{pD*/.style = {full photodiode}}
+\tikzset{leD*/.style = {full led}}
+\tikzset{VC*/.style = {full varcap}}
+\tikzset{D/.style = {diode}}
+\tikzset{tD/.style = {tunnel diode}}
+\tikzset{zD/.style = {Zener diode}}
+\tikzset{sD/.style = {Schottky diode}}
+\tikzset{pD/.style = {photodiode}}
+\tikzset{leD/.style = {led}}
+\tikzset{VC/.style = {varcap}}
+
+\tikzset{Tr/.style = {triac}}
+\tikzset{Mr/.style = {memristor}}
+\tikzset{Ty/.style = {thyristor}}
+
+\tikzset{cspst/.style = {closing switch = #1}}
+\tikzset{ospst/.style = {opening switch = #1}}
+
+\def\inheritlogicport#1#2{
+ \pgfdeclareshape{#2 port}{
+ \inheritsavedanchors[from=#1 #2 port]
+ \inheritbackgroundpath[from=#1 #2 port]
+ \inheritanchor[from=#1 #2 port]{in}
+ \inheritanchor[from=#1 #2 port]{in 1}
+ \inheritanchor[from=#1 #2 port]{in 2}
+ \inheritanchor[from=#1 #2 port]{out}
+ \inheritanchor[from=#1 #2 port]{center}
+ \inheritanchor[from=#1 #2 port]{left}
+ }
+}
+
+\ifpgf@circuit@europeanlogicport
+ \inheritlogicport{european}{and}
+ \inheritlogicport{european}{or}
+ \inheritlogicport{european}{xor}
+ \inheritlogicport{european}{not}
+ \inheritlogicport{european}{nand}
+ \inheritlogicport{european}{nor}
+ \inheritlogicport{european}{xnor}
+\else
+ \inheritlogicport{american}{and}
+ \inheritlogicport{american}{or}
+ \inheritlogicport{american}{xor}
+ \inheritlogicport{american}{not}
+ \inheritlogicport{american}{nand}
+ \inheritlogicport{american}{nor}
+ \inheritlogicport{american}{xnor}
+\fi
+
+% Transistor like bipoles
+
+\def\pgf@circ@trans@path#1#2{
+ \pgfextra{
+ \edef\pgf@temp{\pgfkeysvalueof{/tikz/circuitikz/bipole/name}}
+ \def\pgf@circ@temp{#2}
+ \ifx\pgf@temp\pgf@circ@temp % if it has not a name
+ \pgfmathrandominteger{\pgf@circ@rand}{1000}{9999}
+ \ctikzset{bipole/name = trans\pgf@circ@rand} % create it
+ \fi
+ }
+ \ifpgf@circuit@bipole@reversed
+ (\tikztostart) node[coordinate] (\ctikzvalof{bipole/name}end) {}
+ (\tikztotarget) node[coordinate] (\ctikzvalof{bipole/name}start) {}
+ \else
+ (\tikztostart) node[coordinate] (\ctikzvalof{bipole/name}start) {}
+ (\tikztotarget) node[coordinate] (\ctikzvalof{bipole/name}end) {}
+ \fi
+ \pgfextra{
+ \pgf@circ@slope{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}}
+ {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}}
+ \pgfmathadd{\pgfmathresult}{-90}
+ \edef\pgf@circ@direction{\pgfmathresult}
+ \ctikzset{bipole/direction = \pgfmathresult}
+ }
+ ($(\tikztostart) ! .5 ! (\tikztotarget)$)
+ node[#1, /tikz/rotate=\pgf@circ@direction, xscale=\ctikzvalof{mirror value}]
+ (\ctikzvalof{bipole/name}) {} node {\ctikzvalof{bipole/label/name}}
+ (\ctikzvalof{bipole/name}start.center) -- (\ctikzvalof{bipole/name}.left)
+ (\ctikzvalof{bipole/name}.right) -- (\ctikzvalof{bipole/name}end.center)
+ \pgfextra{
+ \pgfcircresetpath
+ }
+ (\tikztotarget) \tikztonodes % e si continua
+}
+
+
+\def\pgf@circ@definetranspath#1{
+ \tikzset{T#1/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@trans@path{#1}{}, l=##1}}
+}
+
+\pgf@circ@definetranspath{nmos}
+\pgf@circ@definetranspath{pmos}
+\pgf@circ@definetranspath{npn}
+\pgf@circ@definetranspath{pnp}
+\pgf@circ@definetranspath{nfet}
+\pgf@circ@definetranspath{nigfete}
+\pgf@circ@definetranspath{nigfetd}
+\pgf@circ@definetranspath{pfet}
+\pgf@circ@definetranspath{pigfete}
+\pgf@circ@definetranspath{pigfetd}
+\pgf@circ@definetranspath{njfet}
+\pgf@circ@definetranspath{pjfet}
+\pgf@circ@definetranspath{pigbt}
+\pgf@circ@definetranspath{nigbt}
diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcircbipoles.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcircbipoles.sty
index 1e5a363a743..96cd4ca2551 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/pgfcircbipoles.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcircbipoles.sty
@@ -8,46 +8,48 @@
% See the file doc/LICENSE for more details.
%% Generic macro for defining a bipole shape
-% #1 - lower y-size of the bipole (from the center). If empty, same ad #3
-% #2 - #shape is the name of the shape
-% #3 - upper y-size of the bipole (from the center)
-% #4 - macros drawing the bipole
+% #1 - additional anchors
+% #2 - lower y-size of the bipole (from the center).
+% #3 - #shape is the name of the shape
+% #4 - upper y-size of the bipole (from the center)
+% #5 - width of the bipole
+% #6 - macros drawing the bipole
-\newcommand{\pgfcircdeclarebipole}[5][]{
- \pgfdeclareshape{#2shape}{
+\long\def\pgfcircdeclarebipole#1#2#3#4#5#6{
+ \pgfdeclareshape{#3shape}{
\savedanchor{\northeast}{
- \pgf@y=#3\pgf@circ@Rlen
+ \pgf@y=#4\pgf@circ@Rlen
\pgf@y=.5\pgf@y
- \pgf@x=#4\pgf@circ@Rlen
+ \pgf@x=#5\pgf@circ@Rlen
\pgf@x=.5\pgf@x
}
\savedanchor{\northeastborder}{
- \pgf@y=#3\pgf@circ@Rlen
+ \pgf@y=#4\pgf@circ@Rlen
\pgf@y=.5\pgf@y
\pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y
- \pgf@x=#4\pgf@circ@Rlen
+ \pgf@x=#5\pgf@circ@Rlen
\pgf@x=.5\pgf@x
\pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x
}
\savedanchor{\southwestborder}{
- \pgf@y=-#1\pgf@circ@Rlen
+ \pgf@y=-#2\pgf@circ@Rlen
\pgf@y=.5\pgf@y
\pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y
- \pgf@x=-#4\pgf@circ@Rlen
+ \pgf@x=-#5\pgf@circ@Rlen
\pgf@x=.5\pgf@x
\pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x
}
\savedanchor{\southwest}{
- \pgf@y=-#1\pgf@circ@Rlen
+ \pgf@y=-#2\pgf@circ@Rlen
\pgf@y=.5\pgf@y
- \pgf@x=-#4\pgf@circ@Rlen
+ \pgf@x=-#5\pgf@circ@Rlen
\pgf@x=.5\pgf@x
}
\savedanchor{\centerpoint}{
- \pgf@circ@res@down=-#1\pgf@circ@Rlen
- \pgf@circ@res@up=#3\pgf@circ@Rlen
+ \pgf@circ@res@down=-#2\pgf@circ@Rlen
+ \pgf@circ@res@up=#4\pgf@circ@Rlen
\pgfpointorigin
\pgf@y=\pgf@circ@res@up
\advance\pgf@y by\pgf@circ@res@down
@@ -147,6 +149,9 @@
\pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@right}}{\pgfpoint{-\pgf@x}{-\pgf@y}}
\fi
}
+
+ #1
+
\backgroundpath{
\pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
@@ -160,7 +165,7 @@
\pgfstartlinewidth=\pgflinewidth
- #5
+ #6
\pgfsetlinewidth{\pgfstartlinewidth}
}
@@ -171,7 +176,7 @@
%% Standard bipole shapes declarations
%% Resistor
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/resistor/height}]{resistor}{\ctikzvalof{bipoles/resistor/height}}{\ctikzvalof{bipoles/resistor/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/resistor/height}}{resistor}{\ctikzvalof{bipoles/resistor/height}}{\ctikzvalof{bipoles/resistor/width}}{
\pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen
\divide \pgf@circ@res@step by 12
@@ -197,10 +202,10 @@
}
-%% Potentiometer
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/potentiometer/height}]{potentiometer}{\ctikzvalof{bipoles/potentiometer/height}}{\ctikzvalof{bipoles/potentiometer/width}}{
- \pgf@circ@res@step = \ctikzvalof{bipoles/potentiometer/width}\pgf@circ@Rlen
+%% Variable resistor
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vresistor/height}}{vresistor}{\ctikzvalof{bipoles/vresistor/height}}{\ctikzvalof{bipoles/vresistor/width}}{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vresistor/width}\pgf@circ@Rlen
\divide \pgf@circ@res@step by 12
\def\myfrac{.5}
@@ -236,7 +241,7 @@
%% Capacitor
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/capacitor/height}]{capacitor}{\ctikzvalof{bipoles/capacitor/height}}{\ctikzvalof{bipoles/capacitor/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/capacitor/height}}{capacitor}{\ctikzvalof{bipoles/capacitor/height}}{\ctikzvalof{bipoles/capacitor/width}}{
\pgf@circ@res@step = \ctikzvalof{bipoles/capacitor/width}\pgf@circ@Rlen
\divide \pgf@circ@res@step by 5
@@ -249,9 +254,32 @@
\pgfusepath{draw}
}
+
+%% Polar Capacitor
+
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/pcapacitor/height}}{polarcapacitor}{\ctikzvalof{bipoles/pcapacitor/height}}{\ctikzvalof{bipoles/pcapacitor/width}}{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/pcapacitor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 5
+
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+ \ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgftransformrotate{-90}
+ \pgfpathsine{\pgfpoint{\pgf@circ@res@up}{-\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@left}}
+ \pgfpathcosine{\pgfpoint{\pgf@circ@res@up}{\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@left}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+}
+
%% Battery
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/battery/height}]{battery}{\ctikzvalof{bipoles/battery/height}}{\ctikzvalof{bipoles/battery/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/battery/height}}{battery}{\ctikzvalof{bipoles/battery/height}}{\ctikzvalof{bipoles/battery/width}}{
\pgf@circ@res@step = \ctikzvalof{bipoles/battery/width}\pgf@circ@Rlen
\divide \pgf@circ@res@step by 6
@@ -273,21 +301,41 @@
-%% Inductor
+%% cute inductor
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/inductor/height}]{inductor}{\ctikzvalof{bipoles/inductor/height}}{\ctikzvalof{bipoles/inductor/width}}{
- \pgf@circ@res@step=\ctikzvalof{bipoles/inductor/width}\pgf@circ@Rlen
- \divide \pgf@circ@res@step by \ctikzvalof{bipoles/inductor/coils}
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cute inductor/height}}{cuteinductor}{\ctikzvalof{bipoles/cute inductor/height}}{\ctikzvalof{bipoles/cute inductor/width}}{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/cute inductor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/cute inductor/coils}
- \pgfdecorationsegmentamplitude=\ctikzvalof{bipoles/inductor/height}\pgf@circ@Rlen
+ \pgfdecorationsegmentamplitude=\ctikzvalof{bipoles/cute inductor/height}\pgf@circ@Rlen
\pgfdecorationsegmentamplitude=.5\pgfdecorationsegmentamplitude
\pgfdecorationsegmentlength = \pgf@circ@res@step
\pgfdecorationsegmentaspect=.6
- \begin{pgfdecoration}{{coil}{\pgfdecoratedremainingdistance}}
+ \pgfdecoration{{coil}{\pgfdecoratedremainingdistance}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \endpgfdecoration
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+ \pgfusepath{stroke}
+}
+
+
+
+%% american inductor
+
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/american inductor/height 2}}{americaninductor}{\ctikzvalof{bipoles/american inductor/height}}{\ctikzvalof{bipoles/american inductor/width}}{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/american inductor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/american inductor/coils}
+
+ \pgfdecorationsegmentamplitude=\ctikzvalof{bipoles/american inductor/height}\pgf@circ@Rlen
+ \pgfdecorationsegmentamplitude=.5\pgfdecorationsegmentamplitude
+ \pgfdecorationsegmentlength = 1.9\pgf@circ@res@step
+
+ \pgfdecoration{{bumps}{\pgfdecoratedremainingdistance}}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
\pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
- \end{pgfdecoration}
+ \endpgfdecoration
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfusepath{stroke}
}
@@ -295,9 +343,10 @@
+
%% Independent voltage source
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/vsource/height}]{vsource}{\ctikzvalof{bipoles/vsource/height}}{\ctikzvalof{bipoles/vsource/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsource/height}}{vsource}{\ctikzvalof{bipoles/vsource/height}}{\ctikzvalof{bipoles/vsource/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -310,7 +359,7 @@
%% Independent voltage source - American style
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/vsourceam/height}]{vsourceAM}{\ctikzvalof{bipoles/vsourceam/height}}{\ctikzvalof{bipoles/vsourceam/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourceam/height}}{vsourceAM}{\ctikzvalof{bipoles/vsourceam/height}}{\ctikzvalof{bipoles/vsourceam/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -327,7 +376,7 @@
%% Independent sinusoidal voltage source
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/vsourcesin/height}]{vsourcesin}{\ctikzvalof{bipoles/vsourcesin/height}}{\ctikzvalof{bipoles/vsourcesin/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourcesin/height}}{vsourcesin}{\ctikzvalof{bipoles/vsourcesin/height}}{\ctikzvalof{bipoles/vsourcesin/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
@@ -348,7 +397,7 @@
%% Independent current source
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/isource/height}]{isource}{\ctikzvalof{bipoles/isource/height}}{\ctikzvalof{bipoles/isource/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/isource/height}}{isource}{\ctikzvalof{bipoles/isource/height}}{\ctikzvalof{bipoles/isource/width}}{
\pgfpointorigin
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
@@ -362,7 +411,7 @@
%% Independent current source - American
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/isourceam/height}]{isourceAM}{\ctikzvalof{bipoles/isourceam/height}}{\ctikzvalof{bipoles/isourceam/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/isourceam/height}}{isourceAM}{\ctikzvalof{bipoles/isourceam/height}}{\ctikzvalof{bipoles/isourceam/width}}{
\pgfpointorigin
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
@@ -382,7 +431,7 @@
%% Independent sinusoidal current source
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/isource/height}]{isourcesin}{\ctikzvalof{bipoles/isource/height}}{\ctikzvalof{bipoles/isource/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/isource/height}}{isourcesin}{\ctikzvalof{bipoles/isource/height}}{\ctikzvalof{bipoles/isource/width}}{
\pgfpointorigin
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
@@ -404,7 +453,7 @@
%% Controlled voltage source
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/cvsource/height}]{cvsource}{\ctikzvalof{bipoles/cvsource/height}}{\ctikzvalof{bipoles/cvsource/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsource/height}}{cvsource}{\ctikzvalof{bipoles/cvsource/height}}{\ctikzvalof{bipoles/cvsource/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -422,7 +471,7 @@
%% Controlled voltage source - American
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/cvsourceam/height}]{cvsourceAM}{\ctikzvalof{bipoles/cvsourceam/height}}{\ctikzvalof{bipoles/cvsourceam/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourceam/height}}{cvsourceAM}{\ctikzvalof{bipoles/cvsourceam/height}}{\ctikzvalof{bipoles/cvsourceam/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -439,7 +488,7 @@
%% Controlled sinusoidal voltage source
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/cvsourcesin/height}]{cvsourcesin}{\ctikzvalof{bipoles/cvsourcesin/height}}{\ctikzvalof{bipoles/cvsourcesin/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourcesin/height}}{cvsourcesin}{\ctikzvalof{bipoles/cvsourcesin/height}}{\ctikzvalof{bipoles/cvsourcesin/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -468,7 +517,7 @@
%% Controlled sinusoidal current source
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/cvsourcesin/height}]{cisourcesin}{\ctikzvalof{bipoles/cvsourcesin/height}}{\ctikzvalof{bipoles/cvsourcesin/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourcesin/height}}{cisourcesin}{\ctikzvalof{bipoles/cvsourcesin/height}}{\ctikzvalof{bipoles/cvsourcesin/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -498,7 +547,7 @@
%% Controlled current source
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/cisource/height}]{cisource}{\ctikzvalof{bipoles/cisource/height}}{\ctikzvalof{bipoles/cisource/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cisource/height}}{cisource}{\ctikzvalof{bipoles/cisource/height}}{\ctikzvalof{bipoles/cisource/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -517,7 +566,7 @@
%% Controlled current source - American
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/cisourceam/height}]{cisourceAM}{\ctikzvalof{bipoles/cisourceam/height}}{\ctikzvalof{bipoles/cisourceam/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cisourceam/height}}{cisourceAM}{\ctikzvalof{bipoles/cisourceam/height}}{\ctikzvalof{bipoles/cisourceam/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -539,7 +588,7 @@
%% Black generic diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{fulldiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulldiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -558,7 +607,7 @@
%% Black Zener diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{fullzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -579,7 +628,7 @@
%% Black Schottky diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{fullsdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullsdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -604,7 +653,7 @@
%% Black tunnel diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{fulltdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulltdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -625,7 +674,7 @@
%% Black light emitting diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{fulllediode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulllediode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -654,7 +703,7 @@
%% Black photodiode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{fullpdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullpdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -682,7 +731,7 @@
%% Black varcap
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/varcap/height}]{fullvarcap}{\ctikzvalof{bipoles/varcap/height}}{\ctikzvalof{bipoles/varcap/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/varcap/height}}{fullvarcap}{\ctikzvalof{bipoles/varcap/height}}{\ctikzvalof{bipoles/varcap/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -704,7 +753,7 @@
%% Empty generic diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{emptydiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptydiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -724,7 +773,7 @@
%% Empty Zener diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{emptyzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptyzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -745,7 +794,7 @@
%% Empty Schottky diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{emptysdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptysdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -770,7 +819,7 @@
%% Empty tunnel diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{emptytdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptytdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -791,7 +840,7 @@
%% Empty light emitting diode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{emptylediode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptylediode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -819,7 +868,7 @@
%% Empty photodiode
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/diode/height}]{emptypdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptypdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -847,7 +896,7 @@
%% Empty varcap
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/varcap/height}]{emptyvarcap}{\ctikzvalof{bipoles/varcap/height}}{\ctikzvalof{bipoles/varcap/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/varcap/height}}{emptyvarcap}{\ctikzvalof{bipoles/varcap/height}}{\ctikzvalof{bipoles/varcap/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
\pgfscope
@@ -869,7 +918,7 @@
%% Closing SPST
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/interr/height 2}]{cspst}{\ctikzvalof{bipoles/interr/height}}{\ctikzvalof{bipoles/interr/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/interr/height 2}}{cspst}{\ctikzvalof{bipoles/interr/height}}{\ctikzvalof{bipoles/interr/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -884,7 +933,7 @@
%% Opening SPST
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/interr/height 2}]{ospst}{\ctikzvalof{bipoles/interr/height}}{\ctikzvalof{bipoles/interr/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/interr/height 2}}{ospst}{\ctikzvalof{bipoles/interr/height}}{\ctikzvalof{bipoles/interr/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
@@ -901,7 +950,7 @@
%% Ammeter
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/ammeter/height}]{ammeter}{\ctikzvalof{bipoles/ammeter/height}}{\ctikzvalof{bipoles/ammeter/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/ammeter/height}}{ammeter}{\ctikzvalof{bipoles/ammeter/height}}{\ctikzvalof{bipoles/ammeter/width}}{
\def\pgf@circ@temp{right}
\ifx\tikz@res@label@pos\pgf@circ@temp
\pgf@circ@res@step=-1.2\pgf@circ@res@up
@@ -947,7 +996,7 @@
%% Voltmeter
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/voltmeter/height}]{voltmeter}{\ctikzvalof{bipoles/voltmeter/height}}{\ctikzvalof{bipoles/voltmeter/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/voltmeter/height}}{voltmeter}{\ctikzvalof{bipoles/voltmeter/height}}{\ctikzvalof{bipoles/voltmeter/width}}{
\def\pgf@circ@temp{right}
\ifx\tikz@res@label@pos\pgf@circ@temp
\pgf@circ@res@step=-1.2\pgf@circ@res@up
@@ -993,17 +1042,17 @@
%% Short circuit
-\pgfcircdeclarebipole[0]{short}{0}{0}{ }
+\pgfcircdeclarebipole{}{0}{short}{0}{0}{ }
%% Open circuit
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/open/height}]{open}{\ctikzvalof{bipoles/open/height}}{\ctikzvalof{bipoles/open/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/open/height}}{open}{\ctikzvalof{bipoles/open/height}}{\ctikzvalof{bipoles/open/width}}{
}
%% Generic bipole - used as resistor by some (bleah)
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/generic/height}]{generic}{\ctikzvalof{bipoles/generic/height}}{\ctikzvalof{bipoles/generic/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/generic/height}}{generic}{\ctikzvalof{bipoles/generic/height}}{\ctikzvalof{bipoles/generic/width}}{
\pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen
\divide \pgf@circ@res@step by 14
@@ -1017,7 +1066,7 @@
%% Generic bipole, filled - used as inductor by some (bleah)
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/fullgeneric/height}]{fullgeneric}{\ctikzvalof{bipoles/fullgeneric/height}}{\ctikzvalof{bipoles/fullgeneric/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/fullgeneric/height}}{fullgeneric}{\ctikzvalof{bipoles/fullgeneric/height}}{\ctikzvalof{bipoles/fullgeneric/width}}{
\pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen
\divide \pgf@circ@res@step by 14
@@ -1031,12 +1080,40 @@
%% Generic asymmetric bipole
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/ageneric/height}]{ageneric}{\ctikzvalof{bipoles/ageneric/height}}{\ctikzvalof{bipoles/ageneric/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/ageneric/height}}{ageneric}{\ctikzvalof{bipoles/ageneric/height}}{\ctikzvalof{bipoles/ageneric/width}}{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 14
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+
+ \pgfusepath{draw}
+
+ \pgfpathrectanglecorners{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{stroke,fill}
+}
+
+
+
+%% Memristor
+
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/memristor/height}}{memristor}{\ctikzvalof{bipoles/memristor/height}}{\ctikzvalof{bipoles/memristor/width}}{
\pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen
\divide \pgf@circ@res@step by 14
\pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.72*\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.72*\pgf@circ@res@left}{\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.35*\pgf@circ@res@left}{\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.35*\pgf@circ@res@left}{-\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.05*\pgf@circ@res@left}{-\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.05*\pgf@circ@res@left}{\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.42*\pgf@circ@res@right}{\ctikzvalof{bipoles/memristor/wave height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.42*\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.8*\pgf@circ@res@right}{0pt}}
\pgfusepath{draw}
@@ -1046,20 +1123,143 @@
+
+%% Generic empty tunable
+
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tgeneric/height}}{tgeneric}{\ctikzvalof{bipoles/tgeneric/height}}{\ctikzvalof{bipoles/tgeneric/width}}{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 14
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfsetarrowsend{to}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Generic full tunable
+
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tfullgeneric/height}}{tfullgeneric}{\ctikzvalof{bipoles/tfullgeneric/height}}{\ctikzvalof{bipoles/tfullgeneric/width}}{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 14
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+ \pgfusepath{draw,fill}
+
+ \pgfscope
+ \pgfsetarrowsend{to}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+
+%% Variable Cute Inductor
+
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vcuteinductor/height}}{vcuteinductor}{\ctikzvalof{bipoles/vcuteinductor/height}}{\ctikzvalof{bipoles/vcuteinductor/width}}{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/vcuteinductor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/vcuteinductor/coils}
+
+ \pgfdecorationsegmentamplitude=\ctikzvalof{bipoles/vcuteinductor/coil height}\pgf@circ@Rlen
+ \pgfdecorationsegmentamplitude=.5\pgfdecorationsegmentamplitude
+ \pgfdecorationsegmentlength = \pgf@circ@res@step
+ \pgfdecorationsegmentaspect=.6
+
+ \pgfdecoration{{coil}{\pgfdecoratedremainingdistance}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \endpgfdecoration
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+ \pgfusepath{stroke}
+
+ \pgfscope
+ \pgfsetarrowsend{to}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+
+%% variable american inductor
+
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vamerican inductor/height 2}}{vamericaninductor}{\ctikzvalof{bipoles/vamerican inductor/height}}{\ctikzvalof{bipoles/vamerican inductor/width}}{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/vamerican inductor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/vamerican inductor/coils}
+
+ \pgfdecorationsegmentamplitude=\ctikzvalof{bipoles/vamerican inductor/height}\pgf@circ@Rlen
+ \pgfdecorationsegmentamplitude=.5\pgfdecorationsegmentamplitude
+ \pgfdecorationsegmentamplitude=.5\pgfdecorationsegmentamplitude % per freccia
+ \pgfdecorationsegmentlength = 1.9\pgf@circ@res@step
+
+ \pgfdecoration{{bumps}{\pgfdecoratedremainingdistance}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \endpgfdecoration
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+ \pgfusepath{stroke}
+
+ \pgfscope
+ \pgfsetarrowsend{to}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+
+
+
+%% Variable Capacitor
+
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vcapacitor/height}}{vcapacitor}{\ctikzvalof{bipoles/vcapacitor/height}}{\ctikzvalof{bipoles/vcapacitor/width}}{
+ %\pgf@circ@res@step = \ctikzvalof{bipoles/vcapacitor/width}\pgf@circ@Rlen
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vcapacitor/capacitor width} \pgf@circ@res@right
+
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+ \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@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfsetarrowsend{to}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{0pt}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfusepath{draw}
+}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Handling of terminals
%% Easily usable styles
-\tikzset{*-/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=none}}
-\tikzset{*-o/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=empty}}
-\tikzset{*-*/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=full}}
-\tikzset{o-/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=none}}
-\tikzset{o-o/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=empty}}
-\tikzset{o-*/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=full}}
-\tikzset{-o/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=empty}}
-\tikzset{-*/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=full}}
+\ctikzset{*-/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{*-o/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=empty}}
+\ctikzset{*-*/.style = {\circuitikzbasekey/bipole/nodes/left=full, \circuitikzbasekey/bipole/nodes/right=full}}
+\ctikzset{o-/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{o-o/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=empty}}
+\ctikzset{o-*/.style = {\circuitikzbasekey/bipole/nodes/left=empty, \circuitikzbasekey/bipole/nodes/right=full}}
+\ctikzset{-o/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=empty}}
+\ctikzset{-*/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=full}}
\tikzset{reversed/.style = {\circuitikzbasekey/bipole/reversed=true}}
@@ -1101,75 +1301,6 @@
-\pgfdeclareshape{not port}
- {
- \anchor{center}{\pgfpointorigin}
- \savedanchor\northwest{%
- \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
- \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf@y
- \pgf@y=.5\pgf@y
- \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
- \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf@x
- \pgf@x=.5\pgf@x
- }
- \anchor{south}{
- \northwest
- \pgf@y=-\pgf@y
- }
- \savedanchor\left{%
- \pgf@y=0pt
- }
- \anchor{in}{
- \northwest
- \pgf@y=0pt
- }
- \anchor{out}{
- \northwest
- \pgf@y=0pt
- \pgf@x=-\pgf@x
- }
-
- \backgroundpath{
- \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
-
-
- \northwest
- \pgf@circ@res@up = \pgf@y
- \pgf@circ@res@down = -\pgf@y
- \pgf@circ@res@right = -\pgf@x
- \pgf@circ@res@left = \pgf@x
-
- \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/circle width}\pgf@circ@res@right
-
- \pgfscope
- \pgfsetlinewidth{2\pgflinewidth}
- \pgftransformxshift{.7\pgf@circ@res@left}
- \pgf@circ@res@step=\pgf@circ@res@right
- \advance\pgf@circ@res@step by -\pgf@circ@res@left
- \pgf@circ@res@step=.7\pgf@circ@res@step
-
- \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}}
- \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
- \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
- \pgfpathlineto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}}
- \pgfusepath{draw}
- \pgfpathellipse
- {\pgfpoint{\pgf@circ@res@step-.5\pgf@circ@res@other}{0pt}}
- {\pgfpoint{.5\pgf@circ@res@other}{0pt}}
- {\pgfpoint{0pt}{.5\pgf@circ@res@other}}
- \pgfusepath{draw}
- \endpgfscope
-
- \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
- \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
-
- \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
- \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
-
- \pgfusepath{draw}
-
- }
- }
@@ -1177,7 +1308,7 @@
%% Lamp
-\pgfcircdeclarebipole[\ctikzvalof{bipoles/lamp/height}]{lamp}{\ctikzvalof{bipoles/lamp/height}}{\ctikzvalof{bipoles/lamp/width}}{
+\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/lamp/height}}{lamp}{\ctikzvalof{bipoles/lamp/height}}{\ctikzvalof{bipoles/lamp/width}}{
\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcirccurrent.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcirccurrent.sty
index c86d57635da..05926bbcbdb 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/pgfcirccurrent.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcirccurrent.sty
@@ -13,7 +13,7 @@
%% Options
-\tikzset{i^>/.style = {
+\ctikzset{i^>/.style = {
i = #1,
\circuitikzbasekey/bipole/current/direction = forward,
\circuitikzbasekey/bipole/current/x position = after,
@@ -21,7 +21,7 @@
}
}
-\tikzset{i_>/.style = {
+\ctikzset{i_>/.style = {
i = #1,
\circuitikzbasekey/bipole/current/direction = forward,
\circuitikzbasekey/bipole/current/x position = after,
@@ -29,7 +29,7 @@
}
}
-\tikzset{i>^/.style = {
+\ctikzset{i>^/.style = {
i = #1,
\circuitikzbasekey/bipole/current/direction = forward,
\circuitikzbasekey/bipole/current/x position = before,
@@ -37,7 +37,7 @@
}
}
-\tikzset{i>_/.style = {
+\ctikzset{i>_/.style = {
i = #1,
\circuitikzbasekey/bipole/current/direction = forward,
\circuitikzbasekey/bipole/current/x position = before,
@@ -45,7 +45,7 @@
}
}
-\tikzset{i^</.style = {
+\ctikzset{i^</.style = {
i = #1,
\circuitikzbasekey/bipole/current/direction = backward,
\circuitikzbasekey/bipole/current/x position = after,
@@ -53,7 +53,7 @@
}
}
-\tikzset{i_</.style = {
+\ctikzset{i_</.style = {
i = #1,
\circuitikzbasekey/bipole/current/direction = backward,
\circuitikzbasekey/bipole/current/x position = after,
@@ -61,7 +61,7 @@
}
}
-\tikzset{i<^/.style = {
+\ctikzset{i<^/.style = {
i = #1,
\circuitikzbasekey/bipole/current/direction = backward,
\circuitikzbasekey/bipole/current/x position = before,
@@ -69,7 +69,7 @@
}
}
-\tikzset{i<_/.style = {
+\ctikzset{i<_/.style = {
i = #1,
\circuitikzbasekey/bipole/current/direction = backward,
\circuitikzbasekey/bipole/current/x position = before,
@@ -77,7 +77,7 @@
}
}
-\tikzset{i/.code = {
+\ctikzset{i/.code = {
% \ifpgf@circuit@bipole@iscurrent
% \pgfkeys{\circuitikzbasekey/bipole/current/position=above}
% \else
@@ -102,10 +102,10 @@
}
}
-\tikzset{i</.style = { i = #1, \circuitikzbasekey/bipole/current/direction = backward } }
-\tikzset{i_/.style = { i = #1, \circuitikzbasekey/bipole/current/y position = below } }
-\tikzset{i>/.style = {i = #1, \circuitikzbasekey/bipole/current/direction = forward } }
-\tikzset{i^/.style = { i= #1, \circuitikzbasekey/bipole/current/y position = above } }
+\ctikzset{i</.style = { i = #1, \circuitikzbasekey/bipole/current/direction = backward } }
+\ctikzset{i_/.style = { i = #1, \circuitikzbasekey/bipole/current/y position = below } }
+\ctikzset{i>/.style = {i = #1, \circuitikzbasekey/bipole/current/direction = forward } }
+\ctikzset{i^/.style = { i= #1, \circuitikzbasekey/bipole/current/y position = above } }
\def\pgf@circ@drawnormalcurrent{
diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcirclabel.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcirclabel.sty
index 436bd941666..8ce4a72d9a3 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/pgfcirclabel.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcirclabel.sty
@@ -11,8 +11,8 @@
%% Bipole label positioning
%% Options
-\tikzset{label/.style = { l=#1 } }
-\tikzset{l/.code = {
+\ctikzset{label/.style = { l=#1 } }
+\ctikzset{l/.code = {
\pgfkeys{/tikz/circuitikz/bipole/label/name=#1}
\ctikzsetvalof{bipole/label/unit}{}
\ifpgf@circ@siunitx
@@ -28,20 +28,20 @@
\fi
}}
-\tikzset{label above/.code = {
+\ctikzset{label above/.code = {
l=#1,
\circuitikzbasekey/bipole/label/position=90 }
}
-\tikzset{l^/.style = {
+\ctikzset{l^/.style = {
l=#1,
\circuitikzbasekey/bipole/label/position=90 }
}
-\tikzset{label below/.code = {
+\ctikzset{label below/.code = {
l=#1,
\circuitikzbasekey/bipole/label/position=-90 }
}
-\tikzset{l_/.style = {
+\ctikzset{l_/.style = {
l=#1,
\circuitikzbasekey/bipole/label/position=-90 }
}
@@ -54,7 +54,12 @@
\def\pgf@circ@temp{\ctikzvalof{bipole/label/position}}
\edef\pgf@circ@ffffff{\pgf@circ@direction}
\def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@ffffff\pgf@nil}
-
+
+ \ifnum \ctikzvalof{mirror value}=-1
+ \pgfmathadd{\pgfcircmathresult}{+180}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+
\ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86
\ifnum\pgf@circ@temp>0
\def\pgf@circ@dir{south east} \else \def\pgf@circ@dir{north west}
diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcircmonopoles.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcircmonopoles.sty
index 4d24bd2d13e..1d8f46376d2 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/pgfcircmonopoles.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcircmonopoles.sty
@@ -17,12 +17,9 @@
\pgfpointorigin
}
\behindforegroundpath{
+ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen
- \pgfscope
- \pgf@circ@res@step = \pgf@circ@Rlen
- \divide \pgf@circ@res@step by 4
-
-
+ \pgfscope
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
\pgfusepath{draw}
diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcircquadpoles.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcircquadpoles.sty
index 29a8eb327f3..8a736173244 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/pgfcircquadpoles.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcircquadpoles.sty
@@ -10,7 +10,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Quadripoles
-\newcommand{\pgfcircdeclarequadpole}[2]{
+\long\def\pgfcircdeclarequadpole#1#2{
\pgfdeclareshape{#1}
{
\anchor{center}{
@@ -84,12 +84,9 @@
+\def\pgf@circ@drawtransformerbasic{
-
-
-\pgfcircdeclarequadpole{transformer}{
-
- \def\stretto{.4}
+\def\stretto{.4}
\pgfscope
\pgfslopedattimetrue
\pgfallowupsidedownattimetrue
@@ -102,7 +99,21 @@
{\stretto\pgf@circ@res@left}%
{\pgf@circ@res@down}%
}
- \pgfnode{inductorshape}{center}{}{pgf@inductor1}{\pgfusepath{stroke}}
+
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{fullgenericshape}{center}{}{pgf@inductor1}{\pgfusepath{stroke}}
+ \else%
+ \def\pgf@temp{cute}
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{cuteinductorshape}{center}{}{pgf@inductor1}{\pgfusepath{stroke}}
+ \else%
+ \pgfnode{americaninductorshape}{center}{}{pgf@inductor1}{\pgfusepath{stroke}}
+ \fi%
+ \fi%
+
+
\endpgfscope
\pgfscope
\pgfslopedattimetrue
@@ -116,7 +127,20 @@
{\stretto\pgf@circ@res@right}%
{\pgf@circ@res@up}%
}
- \pgfnode{inductorshape}{center}{}{pgf@inductor2}{\pgfusepath{stroke}}
+
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{fullgenericshape}{center}{}{pgf@inductor2}{\pgfusepath{stroke}}
+ \else%
+ \def\pgf@temp{cute}
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{cuteinductorshape}{center}{}{pgf@inductor2}{\pgfusepath{stroke}}
+ \else%
+ \pgfnode{americaninductorshape}{center}{}{pgf@inductor2}{\pgfusepath{stroke}}
+ \fi%
+ \fi%
+
\endpgfscope
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
@@ -137,9 +161,42 @@
\pgfusepath{draw}
+}
+
+
+\pgfcircdeclarequadpole{transformer}{
+
+ \pgf@circ@drawtransformerbasic
}
+\pgfcircdeclarequadpole{transformer core}{
+
+ \pgf@circ@drawtransformerbasic
+
+ \pgfmoveto{\pgfpoint%
+ {\ctikzvalof{quadpoles/transformer core/core width}\pgf@circ@res@right}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}%
+ }
+ \pgflineto{
+ \pgfpoint
+ {\ctikzvalof{quadpoles/transformer core/core width}\pgf@circ@res@right}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}%
+ }
+
+ \pgfmoveto{\pgfpoint%
+ {\ctikzvalof{quadpoles/transformer core/core width}\pgf@circ@res@left}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}%
+ }
+ \pgflineto{
+ \pgfpoint
+ {\ctikzvalof{quadpoles/transformer core/core width}\pgf@circ@res@left}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}%
+ }
+
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgflinewidth}
+ \pgfusepath{draw}
+}
\pgfcircdeclarequadpole{gyrator}{
diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty
index f41034e0a6d..6fae7459b46 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcirctripoles.sty
@@ -12,15 +12,15 @@
-\newcommand{\pgfcircdeclarelogicport}[2]{
- \pgfdeclareshape{#1 port}
+\long\def\pgfcircdeclarelogicport#1#2{
+ \pgfdeclareshape{american #1 port}
{
\savedanchor\northwest{%
\pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
- \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1 port/height}\pgf@y
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf@y
\pgf@y=.5\pgf@y
\pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
- \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1 port/width}\pgf@x
+ \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/width}\pgf@x
\pgf@x=.5\pgf@x
}
\anchor{south}{
@@ -32,16 +32,19 @@
}
\savedanchor\inOne{%
\pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
- \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1 port/height}\pgf@y
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf@y
\pgf@y=.5\pgf@y
- \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1 port/input height}\pgf@y
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/input height}\pgf@y
\pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
- \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1 port/width}\pgf@x
+ \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/width}\pgf@x
\pgf@x=.5\pgf@x
}
\anchor{in 1}{
\inOne
}
+ \anchor{in}{
+ \inOne
+ }
\anchor{in 2}{
\inOne
\pgf@y=-\pgf@y
@@ -77,47 +80,47 @@
\pgfcircdeclarelogicport{and}{
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/input height}\pgf@circ@res@up}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/input height}\pgf@circ@res@up}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/input height}\pgf@circ@res@down}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/input height}\pgf@circ@res@down}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@down}}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right}
{0pt}}
\pgfusepath{draw}
\pgfsetlinewidth{2\pgflinewidth}
\pgfpathmoveto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left}
{\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left}
{\pgf@circ@res@down}}
\pgfpathcurveto
{\pgfpoint{.0\pgf@circ@res@left}{\pgf@circ@res@down}}
{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right}
{.5\pgf@circ@res@down}}
{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right}
{0pt}}
\pgfpathcurveto
{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right}
{.5\pgf@circ@res@up}}
{\pgfpoint{.0\pgf@circ@res@left}{\pgf@circ@res@up}}
{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/and port/port width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left}
{\pgf@circ@res@up}}
\pgfusepath{draw}
}
@@ -127,29 +130,29 @@
\pgfcircdeclarelogicport{nand}{
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/input height}\pgf@circ@res@up}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/port width}\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/input height}\pgf@circ@res@up}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/input height}\pgf@circ@res@down}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/port width}\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/input height}\pgf@circ@res@down}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@down}}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@right}
{0pt}}
\pgfusepath{draw}
\pgfsetlinewidth{2\pgflinewidth}
- \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/circle width}\pgf@circ@res@right
- \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/port width}\pgf@circ@res@right
+ \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@right
\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}}
@@ -161,7 +164,7 @@
{\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{.5\pgf@circ@res@up}}
{\pgfpoint{.0\pgf@circ@res@left}{\pgf@circ@res@up}}
{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/port width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/port width}\pgf@circ@res@left}
{\pgf@circ@res@up}}
\pgfpathellipse
{\pgfpoint{\pgf@circ@res@other-.5\pgf@circ@res@step}{0pt}}
@@ -175,46 +178,46 @@
\pgfcircdeclarelogicport{nor}{
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/input height}\pgf@circ@res@up}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint
- {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/input skip})*\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/input height}\pgf@circ@res@up}}
+ {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input skip})*\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/input height}\pgf@circ@res@down}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint
- {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/input skip})*\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/input height}\pgf@circ@res@down}}
+ {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input skip})*\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@down}}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/port width}\pgf@circ@res@right}
{0pt}}
\pgfusepath{draw}
- \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/port width}\pgf@circ@res@right
- \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/nand port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/port width}\pgf@circ@res@right
+ \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/circle width}\pgf@circ@res@right
\pgfsetlinewidth{2\pgflinewidth}
\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/bbb}\pgf@circ@res@left}{0pt}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/bbb}\pgf@circ@res@left}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/ccc}\pgf@circ@res@down}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}}
{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}}
- {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ccc}\pgf@circ@res@down}}
{\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}}
{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathellipse
@@ -233,43 +236,43 @@
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/input height}\pgf@circ@res@up}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint
- {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/input skip})*\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/input height}\pgf@circ@res@up}}
+ {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input skip})*\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/input height}\pgf@circ@res@down}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint
- {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/input skip})*\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/input height}\pgf@circ@res@down}}
+ {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input skip})*\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@down}}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/port width}\pgf@circ@res@right}
{0pt}}
\pgfusepath{draw}
- \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/port width}\pgf@circ@res@right
+ \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/port width}\pgf@circ@res@right
\pgfsetlinewidth{2\pgflinewidth}
\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/bbb}\pgf@circ@res@left}{0pt}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/bbb}\pgf@circ@res@left}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/ccc}\pgf@circ@res@down}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}}
{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}}
- {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ccc}\pgf@circ@res@down}}
{\pgfpoint{\pgf@circ@res@other}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/or port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}}
{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfusepath{draw}
}
@@ -279,55 +282,55 @@
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/input height}\pgf@circ@res@up}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint
- {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/input skip})*\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/input height}\pgf@circ@res@up}}
+ {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input skip})*\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/input height}\pgf@circ@res@down}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint
- {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/input skip})*\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/input height}\pgf@circ@res@down}}
+ {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input skip})*\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@down}}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/port width}\pgf@circ@res@right}
{0pt}}
\pgfusepath{draw}
- \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/port width}\pgf@circ@res@right
+ \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/port width}\pgf@circ@res@right
\pgfsetlinewidth{2\pgflinewidth}
\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/bbb}\pgf@circ@res@left}{0pt}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/ccc}\pgf@circ@res@down}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}}
{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}}
- {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@down}}
{\pgfpoint{\pgf@circ@res@other}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@res@other}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}}
{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
- \def\pgf@circ@temp{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/distance}\pgf@circ@res@right+}
+ \def\pgf@circ@temp{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/distance}\pgf@circ@res@right+}
\pgfpathmoveto{\pgfpoint{\pgf@circ@temp-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathcurveto
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@up}}
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/bbb}\pgf@circ@res@left}{0pt}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/ccc}\pgf@circ@res@down}}
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@down}}
{\pgfpoint{\pgf@circ@temp-\pgf@circ@res@other}{.95*\pgf@circ@res@down}}
\pgfusepath{draw}
@@ -339,57 +342,57 @@
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/input height}\pgf@circ@res@up}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint
- {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/input skip})*\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/input height}\pgf@circ@res@up}}
+ {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input skip})*\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint
{\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/input height}\pgf@circ@res@down}}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint
- {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/input skip})*\pgf@circ@res@left}
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/input height}\pgf@circ@res@down}}
+ {(\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/port width}-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input skip})*\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@down}}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
\pgfpathlineto{\pgfpoint
- {\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/port width}\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/port width}\pgf@circ@res@right}
{0pt}}
\pgfusepath{draw}
- \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/port width}\pgf@circ@res@right
- \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@other=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/port width}\pgf@circ@res@right
+ \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/circle width}\pgf@circ@res@right
\pgfsetlinewidth{2\pgflinewidth}
\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/bbb}\pgf@circ@res@left}{0pt}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/ccc}\pgf@circ@res@down}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/aaa}\pgf@circ@res@left}{\pgf@circ@res@down}}
{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}}
\pgfpathcurveto
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}}
- {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@down}}
{\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ddd}\pgf@circ@res@left}{\pgf@circ@res@up}}
{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
- \def\pgf@circ@temp{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/distance}\pgf@circ@res@right+}
+ \def\pgf@circ@temp{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/distance}\pgf@circ@res@right+}
\pgfpathmoveto{\pgfpoint{\pgf@circ@temp-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathcurveto
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@up}}
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/ccc}\pgf@circ@res@up}}
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/bbb}\pgf@circ@res@left}{0pt}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{0pt}}
\pgfpathcurveto
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/ccc}\pgf@circ@res@down}}
- {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/xnor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/bbb}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/ccc}\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@temp\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/aaa}\pgf@circ@res@left}{.95*\pgf@circ@res@down}}
{\pgfpoint{\pgf@circ@temp-\pgf@circ@res@other}{.95*\pgf@circ@res@down}}
@@ -402,19 +405,228 @@
}
+\pgfdeclareshape{american not port}
+ {
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/height}\pgf@y
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/width}\pgf@x
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
+
+
+ \northwest
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@down = -\pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+
+ \pgf@circ@res@other = \pgfkeysvalueof{/tikz/circuitikz/bipoles/not port/circle width}\pgf@circ@res@right
+
+ \pgfscope
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgftransformxshift{.7\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=.7\pgf@circ@res@step
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \pgfpathellipse
+ {\pgfpoint{\pgf@circ@res@step-.5\pgf@circ@res@other}{0pt}}
+ {\pgfpoint{.5\pgf@circ@res@other}{0pt}}
+ {\pgfpoint{0pt}{.5\pgf@circ@res@other}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+
+ \pgfusepath{draw}
+
+ }
+ }
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% #1 - name
+% #2 - text inside
+% #3 - number of inputs
+% #4 - is it a not
+
+\long\def\pgfcircdeclareeurologicport#1#2#3#4{
+ \pgfdeclareshape{european #1 port}
+ {
+ \savedanchor\northwest{%
+ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/height}\pgf@y
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/width}\pgf@x
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{south}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \savedanchor\inOne{%
+ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/height}\pgf@y
+ \pgf@y=.5\pgf@y
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@y
+ \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/width}\pgf@x
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \inOne
+ }
+ \anchor{in 1}{
+ \inOne
+ }
+ \anchor{in 2}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{center}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-.8\pgf@x
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
+ \northwest
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@down = -\pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \def\pgf@temp{1}
+ \def\pgf@circ@temp{#3}
+ \ifx\pgftemp\pgf@circ@temp % one input
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{
+ \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@left}{0pt}}
+ \else % two inputs
+ \pgfpathmoveto{
+ \pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{
+ \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@circ@res@up}}
+ %
+ \pgfpathmoveto{
+ \pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{
+ \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/input height}\pgf@circ@res@down}}
+ \fi%
+ %
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{
+ \pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@right}{0pt}}
+ %
+ \edef\pgf@temp{not}
+ \edef\pgf@circ@temp{#4}
+ \ifx\pgf@temp\pgf@circ@temp % is a not
+ \pgfpathmoveto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/not width}\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@right}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/not height}\pgf@circ@res@up}}
+ \fi
+ %
+ \pgfusepath{draw}
+ %
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgftext{#2}
+ %
+ %
+ %
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfpathrectanglecorners
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/european #1 port/reserved}\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+%
+%
+ }
+ }
+}
+
+
+\pgfcircdeclareeurologicport{and}{$\&$}{2}{}
+\pgfcircdeclareeurologicport{or}{$\ge 1$}{2}{}
+\pgfcircdeclareeurologicport{xor}{$=1$}{2}{}
+\pgfcircdeclareeurologicport{not}{$1$}{1}{not}
+\pgfcircdeclareeurologicport{nand}{$\&$}{2}{not}
+\pgfcircdeclareeurologicport{nor}{$\ge 1$}{2}{not}
+\pgfcircdeclareeurologicport{xnor}{$=1$}{2}{not}
-\newcommand{\pgfcircdeclaretransistor}[3]{
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\long\def\pgfcircdeclaretransistor#1#2#3{
\pgfdeclareshape{#1}
{
- \anchor{center}{\pgfpointorigin}
+ \anchor{center}{\pgfpointorigin}
\savedanchor\north{%
\pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
\pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/height}\pgf@y
\pgf@y=.5\pgf@y
\pgf@x=0pt
}
+ \savedanchor\northeast{%
+ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/height}\pgf@y
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/width}\pgf@x
+ }
\anchor{south}{
\north
\pgf@y=-\pgf@y
@@ -424,20 +636,35 @@
\pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
\pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/width}\pgf@x
}
+ \anchor{text}{
+ \north
+ \pgfpoint
+ {12\pgf@circ@res@right +0.2*(\pgf@circ@res@right-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate width}\pgf@circ@res@left)}
+ {0.6\pgf@y}
+ }
+ %
+ % pseudo-bipole
+ \anchor{left}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{right}{
+ \north
+ }
#2
\backgroundpath{
\pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}}
-
-
+ %
+ %
\north
\pgf@circ@res@up = \pgf@y
\pgf@circ@res@down = -\pgf@y
\pgf@circ@res@right = \pgf@x
\left
\pgf@circ@res@left = \pgf@x
-
+ %
#3
-
+ %
}
}
}
@@ -447,7 +674,7 @@
-\newcommand{\pgfcircdeclaremos}[3]{
+\long\def\pgfcircdeclaremos#1#2#3{
\pgfcircdeclaretransistor{#1}{
\anchor{G}{
\left
@@ -492,33 +719,33 @@
\pgf@y=-\pgf@y
}
}{%
- \pgfmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@up}}
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base height}\pgf@circ@res@down}}
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
\pgfusepath{draw}
\pgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}}
\pgfsetlinewidth{2\pgflinewidth}
@@ -544,10 +771,10 @@
\fi
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left}
{\pgf@circ@res@up+\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
\pgfusepath{draw}
}
@@ -568,10 +795,10 @@
\pgf@y=-\pgf@y
}
}{%
- \pgfmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}}
\pgfusepath{draw}
@@ -595,34 +822,34 @@
\fi
\pgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base height}\pgf@circ@res@down}}
\pgfsetlinewidth{2\pgflinewidth}
\pgfusepath{draw}
\endpgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}}
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left}
{\pgf@circ@res@up+\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
\pgfusepath{draw}
}
@@ -654,31 +881,31 @@
\pgf@y=-\pgf@y
}
}{
- \pgfmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate height 2}\pgf@circ@res@up}}
\pgfusepath{draw}
\pgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/base height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/base height}\pgf@circ@res@down}}
\pgfsetlinewidth{2\pgflinewidth}
\pgfusepath{draw}
\endpgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate height 2}\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate height}\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
\pgfusepath{draw}
\pgfscope
@@ -697,13 +924,11 @@
\pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
\endpgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate width}\pgf@circ@res@left}
{\pgf@circ@res@up+\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
\pgfusepath{draw}
-
-
}
@@ -732,32 +957,32 @@
\north
\pgf@y=-\pgf@y
}
-}{
- \pgfmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate height 2}\pgf@circ@res@up}}
\pgfusepath{draw}
\pgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/base height}\pgf@circ@res@up}}
- \pgflineto{\pgfpoint
+ \pgfpathlineto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/base height}\pgf@circ@res@down}}
\pgfsetlinewidth{2\pgflinewidth}
\pgfusepath{draw}
\endpgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate width}\pgf@circ@res@left}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate height 2}\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate height}\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
\pgfusepath{draw}
\pgfscope
@@ -775,20 +1000,1137 @@
\pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
\endpgfscope
- \pgfmoveto{\pgfpoint
+ \pgfpathmoveto{\pgfpoint
{\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate width}\pgf@circ@res@left}
{\pgf@circ@res@up+\pgf@circ@res@down}}
- \pgflineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+
+}
+
+
+
+\pgfcircdeclaretransistor{pigbt}{
+ \anchor{E}{
+ \north
+ }
+ \anchor{emitter}{
+ \north
+ }
+ \anchor{B}{
+ \left
+ }
+ \anchor{base}{
+ \left
+ }
+ \anchor{C}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{collector}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height 2}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base height}\pgf@circ@res@down}}
+ %\pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{.5}{%
+ \pgfpoint%
+ {\pgf@circ@res@right}%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height 2}\pgf@circ@res@up}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+
+}
+
+
+
+\pgfcircdeclaretransistor{nigbt}{
+ \anchor{C}{
+ \north
+ }
+ \anchor{collector}{
+ \north
+ }
+ \anchor{B}{
+ \left
+ }
+ \anchor{base}{
+ \left
+ }
+ \anchor{E}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{emitter}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height 2}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base height}\pgf@circ@res@down}}
+ %\pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{.5}{%
+ \pgfpoint%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/base width}\pgf@circ@res@left}%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigbt/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+
+}
+
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Contrib
+
+
+%%
+% IGFET (e.g. MOSFET)
+\long\def\pgfcircdeclarefet#1#2#3{
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{G}{
+ \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/width}\pgf@x
+ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/height}\pgf@y
+ \pgf@y=.5\pgf@y
+ \pgf@y= -\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{gate}{
+ \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/width}\pgf@x
+ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/height}\pgf@y
+ \pgf@y=.5\pgf@y
+ \pgf@y= -\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{B}{
+ \left
+ \pgf@x=\pgf@circ@res@right
+ }
+ \anchor{base}{
+ \left
+ \pgf@x=\pgf@circ@res@right
+ }
+ #2
+ }
+ {#3}
+}
+
+
+
+\pgfcircdeclarefet{nfet}{
+ \anchor{D}{
+ \north
+ }
+ \anchor{drain}{
+ \north
+ }
+ \anchor{S}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{source}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate height}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base height}\pgf@circ@res@up*0.45}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base height}\pgf@circ@res@up*0.25}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base height}\pgf@circ@res@down*0.25}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base height}\pgf@circ@res@down*0.45}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base height}\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{.6}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nfet/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+
+\pgfcircdeclarefet{pfet}{
+ \anchor{D}{
+ \north
+ }
+ \anchor{drain}{
+ \north
+ }
+ \anchor{S}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{source}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base height}\pgf@circ@res@up*0.45}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base height}\pgf@circ@res@up*0.25}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base height}\pgf@circ@res@down*0.25}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base height}\pgf@circ@res@down*0.45}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate height}\pgf@circ@res@down}}
+ %\pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{.6}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \pgftransformrotate{180}
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pfet/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+
+
+% N-CHANNEL IGFET ENHANCEMENT TYPE
+\pgfcircdeclarefet{nigfete}{
+ \anchor{D}{
+ \north
+ }
+ \anchor{drain}{
+ \north
+ }
+ \anchor{S}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{source}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ % DRAIN CONNECTION
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@up}}
+ % DRAIN
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@up}}
+
+ % GATE, ENHANCEMENT TYPE (DASHED)
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base height}\pgf@circ@res@up*0.45}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base height}\pgf@circ@res@up*0.25}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base height}\pgf@circ@res@down*0.25}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base height}\pgf@circ@res@down*0.45}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base height}\pgf@circ@res@down}}
+
+ % BULK
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ % SOURCE
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ % GATE
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % ARROW
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{.6}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ % GATE CONNECTION
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+% N-CHANNEL IGFET DEPLETION TYPE
+\pgfcircdeclarefet{nigfetd}{
+ \anchor{D}{
+ \north
+ }
+ \anchor{drain}{
+ \north
+ }
+ \anchor{S}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{source}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ % DRAIN CONNECTION
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate height}\pgf@circ@res@up}}
+ % DRAIN
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate height}\pgf@circ@res@up}}
+
+ % GATE, DEPLETION TYPE
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/base height}\pgf@circ@res@down}}
+
+ % BULK
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ % SOURCE
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate height}\pgf@circ@res@down}}
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ % GATE
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % ARROW
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{.6}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ % GATE CONNECTION
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate height}\pgf@circ@res@down}}
+ %\pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfetd/gate height}\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+% P-CHANNEL IGFET ENHANCEMENT TYPE
+\pgfcircdeclarefet{pigfete}{
+ \anchor{D}{
+ \north
+ }
+ \anchor{drain}{
+ \north
+ }
+ \anchor{S}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{source}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ % DRAIN CONNECTION
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@up}}
+ % DRAIN
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % GATE, DASHED, BOLD
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base height}\pgf@circ@res@up*0.45}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base height}\pgf@circ@res@up*0.25}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base height}\pgf@circ@res@down*0.25}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base height}\pgf@circ@res@down*0.45}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % BULK
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ % SOURCE
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@down}}
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ % GATE
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@down}}
+ %\pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % ARROW
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ % Arrow has to be rotated, as this is a p-channel fet
+ \pgftransformrotate{180}
+ \pgftransformlineattime{-.6}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ % GATE CONNECTION (in line with source)
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@down}}
+ %\pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/gate height}\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+% P-CHANNEL IGFET DEPLETION TYPE
+\pgfcircdeclarefet{pigfetd}{
+ \anchor{D}{
+ \north
+ }
+ \anchor{drain}{
+ \north
+ }
+ \anchor{S}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{source}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ % DRAIN CONNECTION
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate height}\pgf@circ@res@up}}
+ % DRAIN
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate height}\pgf@circ@res@up}}
+
+ \pgfusepath{draw}
+
+
+ % GATE DEPLETION TYPE
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/base height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % BULK
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+
+ % SOURCE
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/base width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate height}\pgf@circ@res@down}}
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ % GATE
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate height}\pgf@circ@res@down}}
+ %\pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % ARROW
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ % PFET!
+ \pgftransformrotate{180}
+ \pgftransformlineattime{-.6}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfete/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ % GATE CONNECTION
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate height}\pgf@circ@res@down}}
+ %\pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/pigfetd/gate height}\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Contrib Danilo Piazzalunga
+
+
+
+
+
+
+\pgfcircdeclaretransistor{njfet}{
+ \anchor{G}{
+ \left
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/height}\pgf@y
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@y
+ \pgf@y=-.5\pgf@y
+ }
+ \anchor{gate}{
+ \left
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/height}\pgf@y
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@y
+ \pgf@y=-.5\pgf@y
+ }
+ \anchor{D}{
+ \north
+ }
+ \anchor{drain}{
+ \north
+ }
+ \anchor{S}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{source}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{.6}{%
+ \pgfpoint{\pgf@circ@res@left}%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left}%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/njfet/gate height 2}\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+
+\pgfcircdeclaretransistor{pjfet}{
+ \anchor{G}{
+ \left
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/height}\pgf@y
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@y
+ \pgf@y=.5\pgf@y
+ }
+ \anchor{gate}{
+ \left
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/height}\pgf@y
+ \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@y
+ \pgf@y=.5\pgf@y
+ }
+ \anchor{S}{
+ \north
+ }
+ \anchor{source}{
+ \north
+ }
+ \anchor{D}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+ \anchor{drain}{
+ \north
+ \pgf@y=-\pgf@y
+ }
+}{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
\pgfusepath{draw}
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height}\pgf@circ@res@down}}
+ \pgfsetlinewidth{2\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{.4}{%
+ \pgfpoint%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left}%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\pgf@circ@res@left}%
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate width}\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}
+ {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pjfet/gate height 2}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+
+
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%% Black thyristor
+
+\pgfcircdeclarebipole{
+ \anchor{gate}{
+ \northeast
+ }
+ \anchor{anode}{
+ \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi
+ \pgf@y=0cm
+ }
+ \anchor{G}{
+ \northeast
+ }
+ \anchor{cathode}{
+ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi
+ \pgf@y=0cm
+ }
+}{\ctikzvalof{tripoles/thyristor/height 2}}{thyristor}{\ctikzvalof{tripoles/thyristor/height}}{\ctikzvalof{tripoles/thyristor/width}}{
+
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+
+ \pgf@circ@res@other = \ctikzvalof{tripoles/thyristor/diode width left}\pgf@circ@res@left
+ \pgf@circ@res@step = \ctikzvalof{tripoles/thyristor/diode width right}\pgf@circ@res@right
+
+ \pgfscope
+ \pgftransformxshift{\pgf@circ@res@other}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}}
+
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw,fill}
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step-\pgf@circ@res@other}{0pt}}
+ \pgfpathlineto{\pgfpoint{2*\pgf@circ@res@step-2*\pgf@circ@res@other}{\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{2*\pgf@circ@res@step-2*\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@down}}
+
+ \pgfusepath{draw}
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+
+ \pgfusepath{draw}
+
}
+%% Empty triac
+\pgfcircdeclarebipole{
+ \anchor{gate}{
+ \northeast
+ }
+ \anchor{G}{
+ \northeast
+ }
+ \anchor{anode}{
+ \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi
+ \pgf@y=0cm
+ }
+ \anchor{cathode}{
+ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi
+ \pgf@y=0cm
+ }
+}{\ctikzvalof{tripoles/triac/height}}{triac}{\ctikzvalof{tripoles/triac/height}}{\ctikzvalof{tripoles/triac/width}}{
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+ \pgf@circ@res@other = \ctikzvalof{tripoles/triac/diode width left}\pgf@circ@res@left
+ \pgf@circ@res@step = \ctikzvalof{tripoles/triac/diode width right}\pgf@circ@res@right
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathlineto{\pgfpoint{0.95\pgf@circ@res@step}{0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2)
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{0.95\pgf@circ@res@other}{-0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2)
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}}
+
+ \pgfusepath{draw}
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{-0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2)
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2)
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} % sqrt(1/2)
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+
+ \pgfusepath{draw}
+
+}
@@ -922,4 +2264,77 @@
+
+%% Potentiometer
+\pgfcircdeclarebipole{
+ \anchor{wiper}{
+ \northeast
+ \pgfpoint{0pt}{\pgf@y}
+ }
+ \anchor{W}{
+ \northeast
+ \pgfpoint{0pt}{\pgf@y}
+ }
+}{\ctikzvalof{bipoles/potentiometer/height 2}}{potentiometer}{\ctikzvalof{bipoles/potentiometer/height}}{\ctikzvalof{bipoles/potentiometer/width}}{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/potentiometer/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 12
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgf@circ@res@other = \pgf@circ@res@left
+ \advance\pgf@circ@res@other by \pgf@circ@res@step
+
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by \pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsend{to}
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+
+%% Generic bipole - used as resistor by some (bleah)
+
+\pgfcircdeclarebipole{
+ \anchor{wiper}{
+ \northeast
+ \pgfpoint{0pt}{\pgf@y}
+ }
+}{\ctikzvalof{bipoles/generic potentiometer/height 2}}{genericpotentiometer}{\ctikzvalof{bipoles/generic potentiometer/height}}{\ctikzvalof{bipoles/generic potentiometer/width}}{
+
+ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 14
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth}
+
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsend{to}
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+
+
\endinput
diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty
index 49c3cef228a..9ac9ade73d6 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcircutils.sty
@@ -7,9 +7,24 @@
%
% See the file doc/LICENSE for more details.
+%\def\pgf@circ@handleSI#1{%
+ % \pgf@circ@siunitx@resfalse
+%
+ % \edef\len{\stringlength[e]{#1}}
+ %\testmatchingchar[e]{#1}{\len}{>}%
+ %\ifmatchingchar%
+ % \ifnum\findchars{#1}{<}=0
+ % \def\pgf@circ@handleSI@val{\substring{#1}{1}{\findchars{#1}{<}-1}}
+ %\def\pgf@circ@handleSI@unit{\substring{#1}{\findchars{#1}{<}-1}+1}{\stringlength{#1}}
+ %\pgf@circ@siunitx@restrue
+% \else
+% \fi
+ %\else
+ %\fi
+%}
\def\pgf@circ@handleSI#1{
-% \noexpandarg
+ \noexpandarg
\def\pgf@temp{}
\StrBetween{#1}{<}{>}[\pgf@circ@handleSI@unit]
\StrLen{\pgf@circ@handleSI@unit}[\pgf@circ@handleSI@unit@len]
@@ -19,7 +34,7 @@
\else
\IfEndWith{#1}{>}{
\pgf@circ@siunitx@restrue
-% \noexpandarg
+ \noexpandarg
\StrBefore{#1}{<}[\pgf@circ@handleSI@val]
}{
\pgf@circ@siunitx@resfalse
diff --git a/Master/texmf-dist/tex/latex/circuitikz/pgfcircvoltage.sty b/Master/texmf-dist/tex/latex/circuitikz/pgfcircvoltage.sty
index ecd97c2869b..bccd7eb9859 100644
--- a/Master/texmf-dist/tex/latex/circuitikz/pgfcircvoltage.sty
+++ b/Master/texmf-dist/tex/latex/circuitikz/pgfcircvoltage.sty
@@ -11,28 +11,28 @@
%% Voltage management
-\tikzset{v^>/.style = {
+\ctikzset{v^>/.style = {
v = #1,
\circuitikzbasekey/bipole/voltage/direction = forward,
\circuitikzbasekey/bipole/voltage/position = above
}
}
-\tikzset{v^</.style = {
+\ctikzset{v^</.style = {
v = #1,
\circuitikzbasekey/bipole/voltage/direction = backward,
\circuitikzbasekey/bipole/voltage/position = above
}
}
-\tikzset{v_>/.style = {
+\ctikzset{v_>/.style = {
v = #1,
\circuitikzbasekey/bipole/voltage/direction = forward,
\circuitikzbasekey/bipole/voltage/position = below
}
}
-\tikzset{v_</.style = {
+\ctikzset{v_</.style = {
v = #1,
\circuitikzbasekey/bipole/voltage/direction = backward,
\circuitikzbasekey/bipole/voltage/position = below
@@ -42,7 +42,7 @@
% Default position varies whether the component is a voltage source
% or not
-\tikzset{v/.code = {
+\ctikzset{v/.code = {
\ifpgf@circuit@bipole@isvoltage
\pgfkeys{\circuitikzbasekey/bipole/voltage/position=above,
\circuitikzbasekey/bipole/voltage/direction=forward}
@@ -66,16 +66,20 @@
}
}
-\tikzset{v_/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position = below} }
-\tikzset{v^/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position = above} }
-\tikzset{v>/.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = forward} }
-\tikzset{v</.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = backward} }
+\ctikzset{v_/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position = below} }
+\ctikzset{v^/.style = {v = #1, \circuitikzbasekey/bipole/voltage/position = above} }
+\ctikzset{v>/.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = forward} }
+\ctikzset{v</.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = backward} }
%% Output routine for generic bipoles
\def\pgf@circ@drawvoltagegeneric{
\pgfextra{
+ \ifnum \ctikzvalof{mirror value}=-1
+ \ifpgf@circuit@bipole@voltage@below\pgf@circuit@bipole@voltage@belowfalse\else\pgf@circuit@bipole@voltage@belowtrue\fi
+ \fi
+
\ifpgf@circuit@bipole@voltage@below
\def\pgf@circ@voltage@angle{90}
\else
@@ -83,36 +87,18 @@
\fi
}
- coordinate (pgfcirc@mid) at ($(\tikztostart)!
- \ctikzvalof{voltage/distance from node}!
- (\ctikzvalof{bipole/name}.left) $)
- coordinate (pgfcirc@Vfrom) at ($ (pgfcirc@mid)!
- -\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen!
- \pgf@circ@voltage@angle:
- (\ctikzvalof{bipole/name}.left) $)
-
- coordinate (pgfcirc@mid) at ($(\tikztotarget)!
- \ctikzvalof{voltage/distance from node} !
- (\ctikzvalof{bipole/name}.right)$)
- coordinate (pgfcirc@Vto) at ($ (pgfcirc@mid)!
- \ctikzvalof{voltage/distance from line}\pgf@circ@Rlen!
- \pgf@circ@voltage@angle:
- (\ctikzvalof{bipole/name}.right) $)
+ coordinate (pgfcirc@mid) at ($(\tikztostart) ! \ctikzvalof{voltage/distance from node} ! (\ctikzvalof{bipole/name}.left)$)
+ coordinate (pgfcirc@Vfrom) at ($(pgfcirc@mid) ! -\ctikzvalof{voltage/distance from line}\pgf@circ@Rlen ! \pgf@circ@voltage@angle:(\ctikzvalof{bipole/name}.left)$)
+
+ coordinate (pgfcirc@mid) at ($(\tikztotarget) ! \ctikzvalof{voltage/distance from node} ! (\ctikzvalof{bipole/name}.right)$)
+ coordinate (pgfcirc@Vto) at ($(pgfcirc@mid) ! \ctikzvalof{voltage/distance from line}\pgf@circ@Rlen ! \pgf@circ@voltage@angle : (\ctikzvalof{bipole/name}.right)$)
\ifpgf@circuit@bipole@voltage@below
- coordinate (pgfcirc@Vcont1) at ($ (\ctikzvalof{bipole/name}.center) !
- \ctikzvalof{voltage/bump b} !
- (\ctikzvalof{bipole/name}.-110) $)
- coordinate (pgfcirc@Vcont2) at ($ (\ctikzvalof{bipole/name}.center) !
- \ctikzvalof{voltage/bump b} !
- (\ctikzvalof{bipole/name}.-70) $)
+ coordinate (pgfcirc@Vcont1) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump b} ! (\ctikzvalof{bipole/name}.-110)$)
+ coordinate (pgfcirc@Vcont2) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump b} ! (\ctikzvalof{bipole/name}.-70)$)
\else
- coordinate (pgfcirc@Vcont1) at ($ (\ctikzvalof{bipole/name}.center) !
- \ctikzvalof{voltage/bump b} !
- (\ctikzvalof{bipole/name}.110) $)
- coordinate (pgfcirc@Vcont2) at ($ (\ctikzvalof{bipole/name}.center) !
- \ctikzvalof{voltage/bump b} !
- (\ctikzvalof{bipole/name}.70) $)
+ coordinate (pgfcirc@Vcont1) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump b} ! (\ctikzvalof{bipole/name}.110)$)
+ coordinate (pgfcirc@Vcont2) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump b} ! (\ctikzvalof{bipole/name}.70)$)
\fi
\ifpgf@circuit@europeanvoltage
@@ -139,28 +125,36 @@
%% Output routine for voltage sources
\def\pgf@circ@drawvoltagegenerator{
- \ifpgf@circuit@europeanvoltage
- \ifpgf@circuit@bipole@voltage@below
- coordinate (pgfcirc@Vcont1) at ($ (\ctikzvalof{bipole/name}.center) !
- \ctikzvalof{voltage/bump a} !
- (\ctikzvalof{bipole/name}.-120) $)
- coordinate (pgfcirc@Vcont2) at ($ (\ctikzvalof{bipole/name}.center) !
- \ctikzvalof{voltage/bump a} !
- (\ctikzvalof{bipole/name}.-60) $)
- \else
- coordinate (pgfcirc@Vcont1) at ($ (\ctikzvalof{bipole/name}.center) !
- \ctikzvalof{voltage/bump a} !
- (\ctikzvalof{bipole/name}.120) $)
- coordinate (pgfcirc@Vcont2) at ($ (\ctikzvalof{bipole/name}.center) !
- \ctikzvalof{voltage/bump a} !
- (\ctikzvalof{bipole/name}.60) $)
- \fi
+ \ifpgf@circuit@bipole@voltage@below
+ coordinate (pgfcirc@Vcont1) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.-120)$)
+ coordinate (pgfcirc@Vcont2) at ($(\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.-60)$)
+ \else
+ coordinate (pgfcirc@Vcont1) at ($ (\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.120)$)
+ coordinate (pgfcirc@Vcont2) at ($ (\ctikzvalof{bipole/name}.center) ! \ctikzvalof{voltage/bump a} ! (\ctikzvalof{bipole/name}.60)$)
+ \fi
+ \ifpgf@circuit@europeanvoltage
\ifpgf@circuit@bipole@voltage@backward
(pgfcirc@Vcont2) -- node[currarrow, sloped, allow upside down, pos=1] {} (pgfcirc@Vcont1)
\else
(pgfcirc@Vcont1) -- node[currarrow, sloped, allow upside down, pos=1] {} (pgfcirc@Vcont2)
\fi
+
+ \else % american voltage
+
+ \pgfextra{
+ \edef\pgf@temp{\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}}
+ \def\pgf@circ@temp{battery}
+ }
+
+ \ifx\pgf@temp\pgf@circ@temp % if it is a battery, must put + and -
+ \ifpgf@circuit@bipole@voltage@backward
+ (pgfcirc@Vcont2) node {$-$} (pgfcirc@Vcont1) node {$+$}
+ \else
+ (pgfcirc@Vcont1) node {$-$} (pgfcirc@Vcont2) node {$+$}
+ \fi
+ \fi
+
\fi
}
@@ -239,10 +233,28 @@
\pgf@circ@drawvoltagegeneric
\fi
- coordinate (Vlab) at ($(\ctikzvalof{bipole/name}.center)!
- \ifpgf@circuit@europeanvoltage\ctikzvalof{voltage/european label distance}\else\ctikzvalof{voltage/american label distance}\fi!
+ coordinate (Vlab) at ($(\ctikzvalof{bipole/name}.center) !
+ \ifpgf@circuit@europeanvoltage\ctikzvalof{voltage/european label distance}\else\ctikzvalof{voltage/american label distance}\fi !
(\ctikzvalof{bipole/name}.\pgf@circ@bipole@voltage@label@where)$)
node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=0]
at (Vlab) { \pgf@circ@finallabel{voltage/} }
}
+
+
+\endinput
+
+ coordinate (pgfcirc@Vcont1) at ($ (\ctikzvalof{bipole/name}.center) !
+ \ctikzvalof{voltage/bump b} !
+ (\ctikzvalof{bipole/name}.-110) $)
+ coordinate (pgfcirc@Vcont2) at ($ (\ctikzvalof{bipole/name}.center) !
+ \ctikzvalof{voltage/bump b} !
+ (\ctikzvalof{bipole/name}.-70) $)
+ \else
+ coordinate (pgfcirc@Vcont1) at ($ (\ctikzvalof{bipole/name}.center) !
+ \ctikzvalof{voltage/bump b} !
+ (\ctikzvalof{bipole/name}.110) $)
+ coordinate (pgfcirc@Vcont2) at ($ (\ctikzvalof{bipole/name}.center) !
+ \ctikzvalof{voltage/bump b} !
+ (\ctikzvalof{bipole/name}.70) $)
+ \fi
diff --git a/Master/texmf-dist/tex/latex/circuitikz/t-circuitikz.tex b/Master/texmf-dist/tex/latex/circuitikz/t-circuitikz.tex
new file mode 100644
index 00000000000..12671123ff3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/circuitikz/t-circuitikz.tex
@@ -0,0 +1,95 @@
+\def\pgfcircversion{0.2.3}
+\writestatus{loading}{2009/11/18 The CircuiTikz circuit drawing package version \pgfcircversion}
+\startmodule[circuitikz]
+
+\usemodule[tikz]
+\usepgflibrary[decorations.pathmorphing]
+\usetikzlibrary[calc]
+
+\unprotect
+
+\input circuitikz.code.tex
+
+% defaults
+
+\setupmodule[current=european, voltage=european, resistor=american, inductor=cute, logic=american, siunitx=true, arrowmos=false]
+
+\processaction[\currentmoduleparameter{voltage}]
+ [ european=>\ctikzset{voltage=european},
+ american=>\ctikzset{voltage=american}
+ ]
+
+\processaction[\currentmoduleparameter{current}]
+ [ european=>\ctikzset{ current=european},
+ american=>\ctikzset{ current=american}
+ ]
+
+\processaction[\currentmoduleparameter{resistor}]
+ [ european=>\ctikzset{ resistor=european},
+ american=>\ctikzset{ resistor=american}
+ ]
+
+\processaction[\currentmoduleparameter{inductor}]
+ [ european=>\ctikzset{ inductor=european},
+ american=>\ctikzset{ inductor=american},
+ cute=>\ctikzset{ inductor=cute}
+ ]
+
+\processaction[\currentmoduleparameter{diode}]
+ [ full=>\ctikzset{ diode=full},
+ empty=>\ctikzset{ diode=empty}
+ ]
+
+\processaction[\currentmoduleparameter{logic}]
+ [ european=>\ctikzset{ logic ports=european},
+ american=>\ctikzset{ logic ports=american}
+ ]
+
+\processaction[\currentmoduleparameter{siunitx}]
+ [ true=>\def\SI#1#2{#1\,#2}
+ \def\ampere{\rm{A}}
+ \def\volt{\rm{V}}
+ \def\ohm{\Omega}
+ \def\siemens{\rm{S}}
+ \def\farad{\rm{F}}
+ \def\henry{\rm{H}}
+ \def\second{\rm{s}}
+ \def\coulomb{\rm{C}}
+ \def\siemens{\rm{S}}
+ \def\radians{\rm{rad}}
+ \def\milli{\rm{m}}
+ \def\micro{\mu}
+ \def\nano{\rm{n}}
+ \def\pico{\rm{p}}
+ \def\kilo{\rm{k}}
+ \def\mega{\rm{M}}
+ \def\giga{\rm{G}}
+ \def\tera{\rm{T}},
+ false=>%,
+% \s!default=>\pgf@circ@siunitxtrue
+ ]
+
+\processaction[\currentmoduleparameter{arrowmos}]
+ [ true=>\pgf@circuit@mos@arrowstrue,
+ false=>\pgf@circuit@mos@arrowsfalse%,
+% \s!default=>\pgf@circuit@mos@arrowstrue
+ ]
+
+
+\ifpgf@circ@siunitx
+ % nothing! siunitx and xstrings don't work in context
+\fi
+
+
+\input circuitikz1.code.tex
+
+
+% define the environment
+\long\def\startcircuitikz#1\stopcircuitikz{\starttikzpicture#1\stoptikzpicture}
+
+\protect
+
+\stopmodule
+
+
+\endinput