summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/circuitikz
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/circuitikz')
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/changelog.tex51
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdfbin17619 -> 17617 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex12
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdfbin877095 -> 897426 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex171
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty15
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz.sty9
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex30
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex40
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex5
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex5
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex5
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex5
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex16
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex5
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex5
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex33
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex21
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex16
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex16
21 files changed, 423 insertions, 45 deletions
diff --git a/graphics/pgf/contrib/circuitikz/doc/changelog.tex b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
index 9a745ee128..8c56ba379d 100644
--- a/graphics/pgf/contrib/circuitikz/doc/changelog.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
@@ -4,6 +4,57 @@ here. See \url{https://github.com/circuitikz/circuitikz/commits} for a
full list of changes.
\begin{itemize}
+\tightlist
+\item
+ Version 1.0 (2020-02-04)
+\end{itemize}
+
+And finally\ldots{} version 1.0 (2020-02-04) of \texttt{circuitikz} is
+released.
+
+The main updates since version 0.8.3, which was the last release before
+Romano started co-maintaining the project, are the following --- part
+coded by Romano, part by several collaborators around the internet:
+
+\begin{itemize}
+\item
+ The manual has been reorganized and extended, with the addition of a
+ tutorial part; tens of examples have been added all over the map.
+\item
+ Around 74 new shapes where added. Notably, now there are chips,
+ mux-demuxes, multi-terminal transistors, several types of switches,
+ flip-flops, vacuum tubes, 7-segment displays, more amplifiers, and so
+ on.
+\item
+ Several existing shapes have been enhanced; for example, logic gates
+ have a variable number of inputs, transistors are more configurable,
+ resistors can be shaped more, and more.
+\item
+ You can style your circuit, changing relative sizes, default thickness
+ and fill color, and more details of how you like your circuit to look;
+ the same you can do with labels (voltages, currents, names of
+ components and so on).
+\item
+ A lot of bugs have been squashed; especially the (very complex)
+ voltage direction conundrum has been clarified and you can choose your
+ preferred style here too.
+\end{itemize}
+
+A detailed list of changes can be seen below.
+
+\begin{itemize}
+\item
+ Version 1.0.0-pre3 (not released)
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Added a Reed switch
+ \item
+ Put the copyright and license notices on all files and update them
+ \item
+ Fixed the loading of style; we should not guard against reload
+ \end{itemize}
\item
Version 1.0.0-pre2 (2020-01-23)
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
index 1861747f2b..18ae7854f6 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
index 4b6ee8db0d..766499ba0c 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
@@ -1,3 +1,15 @@
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
\usemodule[circuitikz]
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
index c0fc6167d8..88c21dac4a 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
index b0a108d60c..fc156f1fc2 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
@@ -5,6 +5,19 @@
% !TeX spellcheck = en_US
% !TeX encoding = utf8
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+%
+
\documentclass[a4paper, titlepage]{article}
\usepackage{a4wide} % smaller borders
\usepackage{titling}
@@ -154,7 +167,17 @@
\tableofcontents
\cleardoublepage
+
\section{Introduction}
+
+\hfill\begin{minipage}[t]{0.5\textwidth}
+ \small\slshape\raggedleft
+ Lorenzo and Mirella, 57 years ago, started a trip that eventually lead to a lot of things --- among them, \Circuitikz{} \texttt{v1.0}.
+
+ In loving memory
+ --- R.\@G.\@, 2020-02-04
+\end{minipage}
+
\subsection{About}
\Circuitikz\ was initiated by Massimo Redaelli in 2007, who was working as a research assistant at the Polytechnic University of Milan, Italy, and needed a tool for creating exercises and exams.
After he left University in 2010 the development of \Circuitikz\ slowed down, since \LaTeX\ is mainly established in the academic world. In 2015 Stefan Lindner and Stefan Erhardt, both working as research assistants at the University of Erlangen-Nürnberg, Germany, joined the team and now maintain the project together with the initial author. In 2018 Romano Giannetti, full professor of Electronics at Comillas Pontifical University of Madrid, joined the team.
@@ -162,7 +185,12 @@ After he left University in 2010 the development of \Circuitikz\ slowed down, si
The use of \Circuitikz\ is, of course, not limited to academic teaching. The package gets widely used by engineers for typesetting electronic circuits for articles and publications all over the world.
\subsection{License}
-Copyright \copyright\ 2007--2019 Massimo Redaelli. This package is author-maintained. Permission is granted to copy, distribute and/or modify this software under the terms of the \LaTeX\ Project Public License, version 1.3.1, or the GNU Public License. This software is provided ‘as is’, without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
+Copyright \copyright{}
+2007--2020 by Massimo Redaelli,
+2013-2020 by Stefan Erhardt,
+2015-2020 by Stefan Lindner,
+and 2018-2020 by Romano Giannetti.
+This package is author-maintained. Permission is granted to copy, distribute and/or modify this software under the terms of the \LaTeX\ Project Public License, version 1.3.1, or the GNU Public License. This software is provided ‘as is’, without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
\subsection{Loading the package}
\begin{table}[h]
@@ -3419,6 +3447,7 @@ These are all of the to-style type:
\circuitdescbip[pushbutton]{push button}{Normally open push button}{normally open push button, nopb}
\circuitdescbip[ncpushbutton]{normally closed push button}{Normally closed push button}{ncpb}
\circuitdescbip[toggleswitch]{toggle switch}{Toggle switch}{}
+ \circuitdescbip*{reed}{Reed switch}{}
\end{groupdesc}
while this is a node-style component:
@@ -4259,6 +4288,23 @@ The code that implemented the printing of the numbers (which in \texttt{muxdemux
}
\end{lstlisting}
+You can use these shapes to draw a lot of symbols that are unavailable; using a bit of \LaTeX{} command trickery you can use them quite naturally too...
+
+\begin{LTXexample}[varwidth=true]
+\def\tgate#1{
+ node[simple triangle, anchor=left, no input leads](#1-LR){}
+ (#1-LR.right) node[simple triangle, xscale=-1,
+ anchor=left](#1-RL){}
+ ([yshift=.5ex]#1-RL.btpin 1) node[ocirc]{}}
+\begin{circuitikz}[
+ simple triangle/.style={muxdemux, muxdemux def={
+ NL=1, NR=1, NB=1, NT=1, w=2, Lh=2, Rh=0,
+ }}]
+ \draw (0,0) \tgate{A} (0,-2) \tgate{B};
+ \draw (A-RL.bpin 1) -- (B-RL.tpin 1);
+\end{circuitikz}
+\end{LTXexample}
+
\subsection{Chips (integrated circuits)}
\texttt{CircuiTikZ} supports two types of variable-pin chips: DIP (Dual-in-Line Package) and QFP (Quad-Flat Package).
@@ -5933,6 +5979,28 @@ which leads to:
\end{circuitikz}
\end{LTXexample}
+Now you can check if the voltage labels are correct for your new component:
+
+\begin{LTXexample}[varwidth]
+\begin{circuitikz}[]
+ \draw (0,0) to[spring] ++(2,0)
+ to[viscoe, v=V] ++(2,0);
+\end{circuitikz}
+\end{LTXexample}
+
+If you think they are too tight or too loose you can use a (developer-only) key to adjust the distance:
+
+\begin{LTXexample}[varwidth]
+\begin{circuitikz}
+ \ctikzset{bipoles/viscoe/voltage/additional label shift/.initial=1}
+ \draw (0,0) to[spring] ++(2,0)
+ to[viscoe, v=V] ++(2,0);
+\end{circuitikz}
+\end{LTXexample}
+
+Notice that by default the key \texttt{bipoles/\emph{mybipole}/voltage/additional label shift} is not defined, so if you want to use it you must create it before (this is the meaning of the \texttt{.initial} here).
+
+
As a final note, notice that the \texttt{viscoe} element is already added to the standard package.
\subsection{Node-style component}
@@ -6092,6 +6160,107 @@ The best way of contributing is forking the project, adding your component in th
\end{circuitikz}
\end{LTXexample}
+\ctikzloadstyle{romano}
+\scalebox{0.707}{%
+\begin{circuitikz}[american, romano circuit style]
+ \ctikzset{bipoles/cuteswitch/thickness=0.5}
+ \draw (0,0) node[ground](GND0){} to[sV, l=$v_{cm}$] ++(0,1)
+ to [R, l=$R_c$, -*] ++(0,1.5) coordinate(vcm) --++(0,0.5) coordinate(diffc);
+ \draw (diffc) -| ++(-0.5, 0.5) to[sV,l=$v_+$, name=vplus] ++(0,1) --++(0,2)
+ -- ++(2.5,0) coordinate(skin+ a) to[battery2, l=$E_+$, name=eplus] ++(1,0)
+ to[R=$R_+$, name=rplus] ++(2,0) coordinate(skin+ b) -- ++(0.5,0)
+ -- ++(4,0) coordinate(hpin+) to[highpass] ++(2,0)
+ node[inst amp, anchor=+, noinv input up,
+ circuitikz/amplifiers/scale=1.6,
+ circuitikz/tripoles/inst amp/width=1](LNA){LNA}
+ (LNA.out);
+ \coordinate (skin- a) at (LNA.- -| skin+ a);
+ \draw (diffc) -| ++(0.5,0.5) to[sV,l_=$v_-$, name=vminus] ++(0, 1) |- (skin- a);
+ \draw (skin- a) to[battery2, l_=$E_-$, name=eminus] ++(1,0)
+ to[R, l_=$R_-$, name=rminus] ++(2,0) coordinate(skin- b) -- ++(2.5,0)
+ -- (skin- b -| hpin+) to[highpass] (LNA.-);
+ \coordinate (gnd a) at (vcm -| skin+ a);
+ \draw (vcm) -- (gnd a) to[battery2, l_=$E_\mathrm{gnd}$, name=egnd] ++(1,0)
+ to[R, l_=$R_\mathrm{gnd}$, name=rgnd] ++(2,0) coordinate(gnd b);
+ % switch set
+ \def\swdown{-3.2}
+ \draw (skin- b) ++(1,0) coordinate(sw1) to[cosw, invert, mirror, l=1, *-, name=s1] ++(0,\swdown) to[short, -*] ++(0, -1.5);
+ \draw (sw1) ++(1,0) coordinate(sw2) to[cosw, invert, mirror, l=2, *-] ++(0,\swdown) to[R=$R$, -*] ++(0, -1.5);
+ \draw (sw2|-skin+ b) ++(1,0) coordinate(sw3) to[short, *-] (sw3|-sw2) to[cosw, invert, mirror, l=3,] ++(0,\swdown) to[R=$R$, -*] ++(0, -1.5);
+ \draw (sw3) ++(1,0) coordinate(sw4) to[short, *-] (sw4|-sw2) to[cosw, invert, mirror, l=4, name=s4] ++(0,\swdown) to[short] ++(0, -1.5) coordinate(endsw);
+ \draw (gnd b) |- (endsw) node[rectjoinfill]{};
+ % boxes
+ \node [rectangle, draw, dashed, fit=(GND0) (vplus) (vpluslabel) (vminuslabel)](body){};
+ \node [anchor=south east, align=center] at (body.south east) {Body} ;
+ \node [rectangle, draw, dashed, fit=(rplus) (eplus) (epluslabel) (rpluslabel)](top){};
+ \node [rectangle, draw, dashed, fit=(eminus) (rminus) (eminuslabel) (rminuslabel)](bot){};
+ \node [anchor=center, align=center] at ($(top.south)!0.5!(bot.north)$) {electrodes} ;
+ \node [rectangle, draw, dashed, fit=(egnd) (rgnd) (egndlabel) (rgndlabel)](gnd){};
+ \node [below, align=center] at (gnd.south) {ground\\ electrode} ;
+ \node [rectangle, draw, dashed, fit=(s1) (s4label), inner ysep=8pt](switches){};
+ % ADC and micro
+ \draw (LNA.out) -- ++(0.5,0) node[msport,circuitikz/RF/scale=2](ADC){ADC};
+ \draw (ADC.right) -- ++(0.5,0) node[twoportshape, anchor=left, t=$\upmu$C](uC){};
+ \draw (uC.south) -- (uC.south |- switches.east) -- ++(-4,0)
+ node[align=left, anchor=east](DCS){\small digitally\\ controlled\\ switches};
+ \draw[-Stealth] (DCS.west) -- (switches.east);
+ % components
+ \node [anchor=north west] at ([xshift=-10pt, yshift=-5pt]switches.south east) {ADG1414};
+ \node [anchor=north west] at ([yshift=-5pt]LNA.refv down) {AD8429};
+\end{circuitikz}
+} % scalebox
+
+\begin{lstlisting}[basicstyle=\small\ttfamily]
+\ctikzloadstyle{romano}
+\scalebox{0.707}{%
+\begin{circuitikz}[american, romano circuit style]
+ \ctikzset{bipoles/cuteswitch/thickness=0.5}
+ \draw (0,0) node[ground](GND0){} to[sV, l=$v_{cm}$] ++(0,1)
+ to [R, l=$R_c$, -*] ++(0,1.5) coordinate(vcm) --++(0,0.5) coordinate(diffc);
+ \draw (diffc) -| ++(-0.5, 0.5) to[sV,l=$v_+$, name=vplus] ++(0,1) --++(0,2)
+ -- ++(2.5,0) coordinate(skin+ a) to[battery2, l=$E_+$, name=eplus] ++(1,0)
+ to[R=$R_+$, name=rplus] ++(2,0) coordinate(skin+ b) -- ++(0.5,0)
+ -- ++(4,0) coordinate(hpin+) to[highpass] ++(2,0)
+ node[inst amp, anchor=+, noinv input up,
+ circuitikz/amplifiers/scale=1.6,
+ circuitikz/tripoles/inst amp/width=1](LNA){LNA}
+ (LNA.out);
+ \coordinate (skin- a) at (LNA.- -| skin+ a);
+ \draw (diffc) -| ++(0.5,0.5) to[sV,l_=$v_-$, name=vminus] ++(0, 1) |- (skin- a);
+ \draw (skin- a) to[battery2, l_=$E_-$, name=eminus] ++(1,0)
+ to[R, l_=$R_-$, name=rminus] ++(2,0) coordinate(skin- b) -- ++(2.5,0)
+ -- (skin- b -| hpin+) to[highpass] (LNA.-);
+ \coordinate (gnd a) at (vcm -| skin+ a);
+ \draw (vcm) -- (gnd a) to[battery2, l_=$E_\mathrm{gnd}$, name=egnd] ++(1,0)
+ to[R, l_=$R_\mathrm{gnd}$, name=rgnd] ++(2,0) coordinate(gnd b);
+ % switch set
+ \def\swdown{-3.2}
+ \draw (skin- b) ++(1,0) coordinate(sw1) to[cosw, invert, mirror, l=1, *-, name=s1] ++(0,\swdown) to[short, -*] ++(0, -1.5);
+ \draw (sw1) ++(1,0) coordinate(sw2) to[cosw, invert, mirror, l=2, *-] ++(0,\swdown) to[R=$R$, -*] ++(0, -1.5);
+ \draw (sw2|-skin+ b) ++(1,0) coordinate(sw3) to[short, *-] (sw3|-sw2) to[cosw, invert, mirror, l=3,] ++(0,\swdown) to[R=$R$, -*] ++(0, -1.5);
+ \draw (sw3) ++(1,0) coordinate(sw4) to[short, *-] (sw4|-sw2) to[cosw, invert, mirror, l=4, name=s4] ++(0,\swdown) to[short] ++(0, -1.5) coordinate(endsw);
+ \draw (gnd b) |- (endsw) node[rectjoinfill]{};
+ % boxes
+ \node [rectangle, draw, dashed, fit=(GND0) (vplus) (vpluslabel) (vminuslabel)](body){};
+ \node [anchor=south east, align=center] at (body.south east) {Body} ;
+ \node [rectangle, draw, dashed, fit=(rplus) (eplus) (epluslabel) (rpluslabel)](top){};
+ \node [rectangle, draw, dashed, fit=(eminus) (rminus) (eminuslabel) (rminuslabel)](bot){};
+ \node [anchor=center, align=center] at ($(top.south)!0.5!(bot.north)$) {electrodes} ;
+ \node [rectangle, draw, dashed, fit=(egnd) (rgnd) (egndlabel) (rgndlabel)](gnd){};
+ \node [below, align=center] at (gnd.south) {ground\\ electrode} ;
+ \node [rectangle, draw, dashed, fit=(s1) (s4label), inner ysep=8pt](switches){};
+ % ADC and micro
+ \draw (LNA.out) -- ++(0.5,0) node[msport,circuitikz/RF/scale=2](ADC){ADC};
+ \draw (ADC.right) -- ++(0.5,0) node[twoportshape, anchor=left, t=$\upmu$C](uC){};
+ \draw (uC.south) -- (uC.south |- switches.east) -- ++(-4,0)
+ node[align=left, anchor=east](DCS){\small digitally\\ controlled\\ switches};
+ \draw[-Stealth] (DCS.west) -- (switches.east);
+ % components
+ \node [anchor=north west] at ([xshift=-10pt, yshift=-5pt]switches.south east) {ADG1414};
+ \node [anchor=north west] at ([yshift=-5pt]LNA.refv down) {AD8429};
+\end{circuitikz}
+} % scalebox
+\end{lstlisting}
\begin{tabular}{l}\label{ex:compatibility}
\IfFileExists{compatibility.pdf}
diff --git a/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty b/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
index ae4035128c..8d364404f0 100644
--- a/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
+++ b/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
@@ -1,9 +1,24 @@
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ctikzmanutils}[2019/07/26 utilities for formatting circuitikz manual]
\RequirePackage{ifthen}
\RequirePackage{xparse}
\RequirePackage{showexpl}
\RequirePackage{ragged2e}
+% for some example we need them...
+\usetikzlibrary{calc,fit}
+\RequirePackage{upgreek}
%
% The following trick is used to silence showexpl a bit, so that the
% logs are readable...
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
index 40f37add53..162020c387 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
@@ -1,4 +1,7 @@
-% Copyright 2007-2019 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -9,8 +12,8 @@
\NeedsTeXFormat{LaTeX2e}
-\def\pgfcircversion{1.0.0-pre2}
-\def\pgfcircversiondate{2020/01/23}
+\def\pgfcircversion{1.0}
+\def\pgfcircversiondate{2020/02/04}
\ProvidesPackage{circuitikz}%
[\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion]
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
index e8c27efbee..f550af644b 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
@@ -1,3 +1,16 @@
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%
%% Key managements
\long\def\pgf@circ@comment#1{}
@@ -254,13 +267,8 @@
% load a style file: search ctikzstyle-NAME.tex in path
\def\ctikzloadstyle#1{%
- \edef\pgf@temp{#1}%
- % guard against re-loading
- \expandafter\ifx\csname pgf@circ@style@\pgf@temp @loaded\endcsname\relax%
- \expandafter\global\expandafter\let\csname pgf@circ@style@\pgf@temp @loaded\endcsname=\pgfutil@empty
\pgfutil@InputIfFileExists{ctikzstyle-#1}{}{%
\tikzerror{I did not find the circuitikz style #1}}%
- \fi
}
% load and enact a style
@@ -635,6 +643,10 @@
\ctikzset{bipoles/ncs/height/.initial=.35}
\ctikzset{bipoles/ncs/width/.initial=.35}
\ctikzset{bipoles/ncs/depth/.initial=.2}
+%%% reed switch
+\ctikzset{bipoles/reed/height/.initial=.4}
+\ctikzset{bipoles/reed/width/.initial=.8}% 0.35 in nos
+\ctikzset{bipoles/reed/depth/.initial=.4}
% misc
@@ -675,13 +687,21 @@
\ctikzset{bipoles/voltmeter/width/.initial=.60}
\ctikzset{bipoles/smeter/height/.initial=.60}
\ctikzset{bipoles/smeter/width/.initial=.60}
+\ctikzset{bipoles/smeter/voltage/additional label shift/.initial=1}
\ctikzset{bipoles/qmeter/depth/.initial=.40}
\ctikzset{bipoles/qmeter/height/.initial=.80}
\ctikzset{bipoles/qmeter/width/.initial=.60}
+% this must be specified for each one
+\ctikzset{bipoles/qvprobe/voltage/additional label shift/.initial=.5}
+\ctikzset{bipoles/qiprobe/voltage/additional label shift/.initial=.5}
+\ctikzset{bipoles/qpprobe/voltage/additional label shift/.initial=.5}
\ctikzset{bipoles/iloop/width/.initial=.40}
\ctikzset{bipoles/iloop/height/.initial=.60}
+
\ctikzset{bipoles/oscope/height/.initial=.60}
\ctikzset{bipoles/oscope/width/.initial=.60}
+\ctikzset{bipoles/oscope/voltage/additional label shift/.initial=1}
+
% option to not rotate the new (Romano's) instruments
\newif\ifpgf@circuit@straightinstruments\pgf@circuit@straightinstrumentstrue
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
index 5e4cf0e174..cd4b14fcab 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2832,6 +2835,41 @@
\pgftransformshift{\pgfpoint{2\pgf@circ@res@right}{0pt}}
\pgfnode{ocirc}{center}{}{}{\pgfusepath{draw}}
}
+%%% reed switches
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/reed/depth}}
+{reed}
+{\ctikzvalof{bipoles/reed/height}}
+{\ctikzvalof{bipoles/reed/width}}
+{
+ % this is designed to be the same as a "nos".
+ \pgfmathsetmacro{\@@tmpx}{0.9*\ctikzvalof{bipoles/nos/width}/\ctikzvalof{bipoles/reed/width}}
+ \pgfmathsetmacro{\@@tmpy}{\ctikzvalof{bipoles/nos/height}/\ctikzvalof{bipoles/reed/height}}
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % eclosure
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@up}{\pgf@circ@res@up}}
+ \pgfpatharc{90}{-90}{\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@up}{-\pgf@circ@res@up}}
+ \pgfpatharc{270}{90}{\pgf@circ@res@up}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % switch
+ \pgfpathmoveto{\pgfpoint{\@@tmpx\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@right}{\@@tmpy\pgf@circ@res@up}}
+ % connection lines
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+ \endpgfscope
+ % connection lines
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
% cute switch "to" shapes help function
% #1 -> name
% #2 -> barposition
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
index b0d2a989bd..b8cf055590 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
index c90b986eba..b7bb8b9767 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
index 0542e905ef..1aff5b9a06 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
index 88ca4711da..2da88c450b 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
index 6c175c4b73..4c8d6d4e49 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
@@ -1,5 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
-% Copyright 2019 by Romano Giannetti
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -9,7 +11,7 @@
% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Multipoles
+%% Multipoles by Romano Giannetti
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
index eb319b1ad8..337443da27 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
@@ -1,3 +1,15 @@
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
\def\pgf@circ@direction{0.0}
@@ -804,6 +816,10 @@
\compattikzset{multiwire/.style = {\circuitikzbasekey,
/tikz/to path=\pgf@circ@multiwire@path, l=#1}}
+% reed switches
+\def\pgf@circ@reed@path#1{\pgf@circ@bipole@path{reed}{#1}}
+\compattikzset{reed/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@reed@path, l=#1}}
+
% Transistor like bipoles
\def\pgf@circ@trans@path#1#2{
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
index 31890ea44d..68ecb33d4a 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
index 3ccf5abfcb..823ff5b632 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
index 4e8a010fb9..9957fdee5a 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3531,9 +3534,12 @@
\pgf@circ@scaled@Rlen=\scaledRlen
% Triangle
- % Includes output terminals to ensure that diagonal joins are properly displayed
+ % Includes output terminals in the traingular shape
+ % to ensure that diagonal joins are properly displayed
+ % we first draw the main triangle and the leads with normal thickness,
+ % and the redraw the main triangle with the component shape
\pgfscope
- \pgf@circ@setlinewidth{quadpoles}{\pgflinewidth}
+ % shift origin a bit to ease calculations
\pgftransformxshift{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
\pgf@circ@res@step=\pgf@circ@res@right
\advance\pgf@circ@res@step by -\pgf@circ@res@left
@@ -3562,8 +3568,25 @@
\pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
\pgfpathclose
- \pgf@circ@draworfill
- \endpgfscope
+ \pgfusepath{stroke}
+
+ % ok, now we'll redraw the triangle with the class specific
+ % thickness and optionally fill
+
+ \pgfscope
+ \pgf@circ@setlinewidth{quadpoles}{\pgflinewidth}
+
+ % Initial point (right vertex)
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ % Top vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ % Bottom vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope % thick and fill
+ \endpgfscope % shift
% Negative input terminal
\pgfpathmoveto{\pgfpoint
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
index 5748009f13..81192ba913 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -7,22 +10,6 @@
%
% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt 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
\def\pgf@temp{}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
index d793320247..0a87b5e6ed 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
@@ -1,4 +1,7 @@
-% Copyright 2007-2009 by Massimo Redaelli
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -192,8 +195,17 @@
{ \edef\bumpb{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/bump b}} }
{ \edef\bumpb{\ctikzvalof{voltage/bump b}} }
\edef\shiftv{\ctikzvalof{voltage/shift}}
+ % additional per-bipole voltage shift (internal)
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/additional label shift}
+ \pgfkeysifdefined{\pgf@temp}
+ {
+ \edef\addvshift{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/additional label shift}}
+ }
+ {
+ \edef\addvshift{0}
+ }
\newdimen{\absvshift}
- \pgfmathsetlength{\absvshift}{\shiftv*\distfromline+\distfromline}
+ \pgfmathsetlength{\absvshift}{(1+\shiftv+\addvshift)*(\distfromline)}
% put this to true to see the voltage label coordinate anchors
\newif\ifpgf@circ@debugv\pgf@circ@debugvfalse
}
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
index d2a510866d..03ec7191c5 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
@@ -1,5 +1,17 @@
-\def\pgfcircversion{1.0.0-pre2}
-\def\pgfcircversiondate{2020/01/23}
+% Copyright 2018-2020 by Romano Giannetti
+% Copyright 2015-2020 by Stefan Lindner
+% Copyright 2013-2020 by Stefan Erhardt
+% Copyright 2007-2020 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+\def\pgfcircversion{1.0}
+\def\pgfcircversiondate{2020/02/04}
\writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
\usemodule[tikz]