summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pgf/contrib/circuitikz/tex/circuitikz.sty')
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz.sty259
1 files changed, 133 insertions, 126 deletions
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
index cd1637a3f7..7309dd6d18 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2021 by Romano Giannetti
+% Copyright 2015-2021 by Stefan Lindner
+% Copyright 2013-2021 by Stefan Erhardt
+% Copyright 2007-2021 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -12,8 +12,8 @@
\NeedsTeXFormat{LaTeX2e}
-\def\pgfcircversion{1.2.7}
-\def\pgfcircversiondate{2020/12/27}
+\def\pgfcircversion{1.3.0}
+\def\pgfcircversiondate{2021/01/19}
\ProvidesPackage{circuitikz}%
[\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion]
@@ -32,183 +32,174 @@
%
% global of options (better use styles!)
%
-\DeclareOption{european}{
+\DeclareOption{european}{\AtEndOfPackage{%
\ctikzset{voltage=european} \ctikzset{current=european} \ctikzset{inductor=european}
- \ctikzset{resistor=european} \ctikzset{logic ports=european} \ctikzset{gas filled surge arrester choice = european}
+\ctikzset{resistor=european} \ctikzset{logic ports=european} \ctikzset{gas filled surge arrester choice = european}}
}
-\DeclareOption{american}{
+\DeclareOption{american}{\AtEndOfPackage{%
\ctikzset{voltage=american} \ctikzset{current=american} \ctikzset{resistor=american} \ctikzset{inductor=american} \ctikzset{gas filled surge arrester choice = american}
- \ctikzset{logic ports = american}
-}
-\DeclareOption{siunitx}{
- \pgf@circ@siunitxtrue
-}
-\DeclareOption{nosiunitx}{
- \pgf@circ@siunitxfalse
-}
-\DeclareOption{compatibility}{
- \pgf@circuit@compattrue
+\ctikzset{logic ports = american}}
}
%
% voltages
%
-\DeclareOption{europeanvoltage}{
- \ctikzset{voltage=european}
+\DeclareOption{europeanvoltage}{\AtEndOfPackage{%
+ \ctikzset{voltage=european}}
}
-\DeclareOption{straightvoltages}{
- \ctikzset{voltage=straight}
+\DeclareOption{straightvoltages}{\AtEndOfPackage{%
+ \ctikzset{voltage=straight}}
}
-\DeclareOption{americanvoltage}{
- \ctikzset{voltage=american}
+\DeclareOption{americanvoltage}{\AtEndOfPackage{%
+ \ctikzset{voltage=american}}
}
-\DeclareOption{europeanvoltages}{
- \ctikzset{voltage=european}
+\DeclareOption{europeanvoltages}{\AtEndOfPackage{%
+ \ctikzset{voltage=european}}
}
-\DeclareOption{americanvoltages}{
- \ctikzset{voltage=american}
+\DeclareOption{americanvoltages}{\AtEndOfPackage{%
+ \ctikzset{voltage=american}}
}
% Voltage directions
-\DeclareOption{oldvoltagedirection}{
+\DeclareOption{oldvoltagedirection}{\AtEndOfPackage{%
\pgf@circ@oldvoltagedirectiontrue
\pgf@circ@explicitvdirtrue
- \pgf@circ@fixbatteriesfalse
+ \pgf@circ@fixbatteriesfalse}
}
-\DeclareOption{nooldvoltagedirection}{
+\DeclareOption{nooldvoltagedirection}{\AtEndOfPackage{%
\pgf@circ@oldvoltagedirectionfalse
\pgf@circ@explicitvdirtrue
- \pgf@circ@fixbatteriesfalse
+ \pgf@circ@fixbatteriesfalse}
}
-\DeclareOption{RPvoltages}{
+\DeclareOption{RPvoltages}{\AtEndOfPackage{%
\pgf@circ@oldvoltagedirectiontrue
\pgf@circ@explicitvdirtrue
- \pgf@circ@fixbatteriestrue
+ \pgf@circ@fixbatteriestrue}
}
-\DeclareOption{EFvoltages}{
+\DeclareOption{EFvoltages}{\AtEndOfPackage{%
\pgf@circ@oldvoltagedirectionfalse
\pgf@circ@explicitvdirtrue
- \pgf@circ@fixbatteriestrue
+ \pgf@circ@fixbatteriestrue}
}
%
% currents
%
-\DeclareOption{europeancurrent}{
- \ctikzset{current = european}
+\DeclareOption{europeancurrent}{\AtEndOfPackage{%
+ \ctikzset{current = european}}
}
-\DeclareOption{americancurrent}{
- \ctikzset{current = american}
+\DeclareOption{americancurrent}{\AtEndOfPackage{%
+ \ctikzset{current = american}}
}
-\DeclareOption{europeancurrents}{
- \ctikzset{current = european}
+\DeclareOption{europeancurrents}{\AtEndOfPackage{%
+ \ctikzset{current = european}}
}
-\DeclareOption{americancurrents}{
- \ctikzset{current = american}
+\DeclareOption{americancurrents}{\AtEndOfPackage{%
+ \ctikzset{current = american}}
}
%
% resistors
%
-\DeclareOption{americanresistor}{
- \ctikzset{resistor = american}
+\DeclareOption{americanresistor}{\AtEndOfPackage{%
+ \ctikzset{resistor = american}}
}
-\DeclareOption{europeanresistor}{
- \ctikzset{resistor = european}
+\DeclareOption{europeanresistor}{\AtEndOfPackage{%
+ \ctikzset{resistor = european}}
}
-\DeclareOption{americanresistors}{
- \ctikzset{resistor = american}
+\DeclareOption{americanresistors}{\AtEndOfPackage{%
+ \ctikzset{resistor = american}}
}
-\DeclareOption{europeanresistors}{
- \ctikzset{resistor = european}
+\DeclareOption{europeanresistors}{\AtEndOfPackage{%
+ \ctikzset{resistor = european}}
}
%
% inductors
%
-\DeclareOption{americaninductor}{
- \ctikzset{inductor = american}
+\DeclareOption{americaninductor}{\AtEndOfPackage{%
+ \ctikzset{inductor = american}}
}
-\DeclareOption{europeaninductor}{
- \ctikzset{inductor = european}
+\DeclareOption{europeaninductor}{\AtEndOfPackage{%
+ \ctikzset{inductor = european}}
}
-\DeclareOption{cuteinductor}{
- \ctikzset{inductor = cute}
+\DeclareOption{cuteinductor}{\AtEndOfPackage{%
+ \ctikzset{inductor = cute}}
}
-\DeclareOption{americaninductors}{
- \ctikzset{inductor = american}
+\DeclareOption{americaninductors}{\AtEndOfPackage{%
+ \ctikzset{inductor = american}}
}
-\DeclareOption{europeaninductors}{
- \ctikzset{inductor = european}
+\DeclareOption{europeaninductors}{\AtEndOfPackage{%
+ \ctikzset{inductor = european}}
}
-\DeclareOption{cuteinductors}{
- \ctikzset{inductor = cute}
+\DeclareOption{cuteinductors}{\AtEndOfPackage{%
+ \ctikzset{inductor = cute}}
}
%
% logic ports
%
-\DeclareOption{americanport}{
- \ctikzset{logic ports = american}
+\DeclareOption{americanport}{\AtEndOfPackage{%
+ \ctikzset{logic ports = american}}
}
-\DeclareOption{europeanport}{
- \ctikzset{logic ports = european}
+\DeclareOption{europeanport}{\AtEndOfPackage{%
+ \ctikzset{logic ports = european}}
}
-\DeclareOption{americanports}{
- \ctikzset{logic ports = american}
+\DeclareOption{americanports}{\AtEndOfPackage{%
+ \ctikzset{logic ports = american}}
}
-\DeclareOption{europeanports}{
- \ctikzset{logic ports = european}
+\DeclareOption{europeanports}{\AtEndOfPackage{%
+ \ctikzset{logic ports = european}}
}
%
% surge arresters (really?)
%
-\DeclareOption{americangfsurgearrester}{
- \ctikzset{gas filled surge arrester choice = american}
+\DeclareOption{americangfsurgearrester}{\AtEndOfPackage{%
+ \ctikzset{gas filled surge arrester choice = american}}
}
-\DeclareOption{europeangfsurgearrester}{
- \ctikzset{gas filled surge arrester choice = european}
+\DeclareOption{europeangfsurgearrester}{\AtEndOfPackage{%
+ \ctikzset{gas filled surge arrester choice = european}}
}
%
% diodes
%
-\DeclareOption{fulldiodes}{
- \ctikzset{diode = full}
+\DeclareOption{fulldiodes}{\AtEndOfPackage{%
+ \ctikzset{diode = full}}
}
-\DeclareOption{emptydiodes}{
- \ctikzset{diode = empty}
+\DeclareOption{emptydiodes}{\AtEndOfPackage{%
+ \ctikzset{diode = empty}}
}
-\DeclareOption{strokediodes}{
- \ctikzset{diode = stroke}
+\DeclareOption{strokediodes}{\AtEndOfPackage{%
+ \ctikzset{diode = stroke}}
}
-\DeclareOption{fulldiode}{
- \ctikzset{diode = full}
+\DeclareOption{fulldiode}{\AtEndOfPackage{%
+ \ctikzset{diode = full}}
}
-\DeclareOption{emptydiode}{
- \ctikzset{diode = empty}
+\DeclareOption{emptydiode}{\AtEndOfPackage{%
+ \ctikzset{diode = empty}}
}
-\DeclareOption{strokediode}{
- \ctikzset{diode = stroke}
+\DeclareOption{strokediode}{\AtEndOfPackage{%
+ \ctikzset{diode = stroke}}
}
%
% MOSes and FETs
%
-\DeclareOption{arrowmos}{
- \pgf@circuit@mos@arrowstrue
+\DeclareOption{arrowmos}{\AtEndOfPackage{%
+ \pgf@circuit@mos@arrowstrue}
}
-\DeclareOption{noarrowmos}{
- \pgf@circuit@mos@arrowsfalse
+\DeclareOption{noarrowmos}{\AtEndOfPackage{%
+ \pgf@circuit@mos@arrowsfalse}
}
-\DeclareOption{fetbodydiode}{
- \pgf@circuit@fet@bodydiodetrue
+\DeclareOption{fetbodydiode}{\AtEndOfPackage{%
+ \pgf@circuit@fet@bodydiodetrue}
}
-\DeclareOption{nofetbodydiode}{
- \pgf@circuit@fet@bodydiodefalse
+\DeclareOption{nofetbodydiode}{\AtEndOfPackage{%
+ \pgf@circuit@fet@bodydiodefalse}
}
-\DeclareOption{fetsolderdot}{
- \pgf@circuit@fet@solderdottrue
+\DeclareOption{fetsolderdot}{\AtEndOfPackage{%
+ \pgf@circuit@fet@solderdottrue}
}
-\DeclareOption{nofetsolderdot}{
- \pgf@circuit@fet@solderdotfalse
+\DeclareOption{nofetsolderdot}{\AtEndOfPackage{%
+ \pgf@circuit@fet@solderdotfalse}
}
-\DeclareOption{emptypmoscircle}{
- \pgf@circuit@pmos@emptycircletrue
+\DeclareOption{emptypmoscircle}{\AtEndOfPackage{%
+ \pgf@circuit@pmos@emptycircletrue}
}
-\DeclareOption{lazymos}{
+\DeclareOption{lazymos}{\AtEndOfPackage{%
\ctikzset{tripoles/nmos/width=.5}
\ctikzset{tripoles/nmos/gate height=.35}
\ctikzset{tripoles/nmos/base height=.35}
@@ -221,36 +212,36 @@
\ctikzset{tripoles/pmos/height/.initial=1.2}
\ctikzset{tripoles/pmos/base width=.5}
\ctikzset{tripoles/pmos/gate width=.65}
- \pgf@circuit@pmos@emptycircletrue
+\pgf@circuit@pmos@emptycircletrue}
}
%
% BJTs labels
%
-\DeclareOption{legacytransistorstext}{
- \pgf@circuit@transisors@fixlabelsfalse
+\DeclareOption{legacytransistorstext}{\AtEndOfPackage{%
+ \pgf@circuit@transisors@fixlabelsfalse}
}
-\DeclareOption{nolegacytransistorstext}{
- \pgf@circuit@transisors@fixlabelstrue
+\DeclareOption{nolegacytransistorstext}{\AtEndOfPackage{%
+ \pgf@circuit@transisors@fixlabelstrue}
}
-\DeclareOption{centertransistorstext}{
- \pgf@circuit@transisors@fixlabelstrue
+\DeclareOption{centertransistorstext}{\AtEndOfPackage{%
+ \pgf@circuit@transisors@fixlabelstrue}
}
%
% labels
%
-\DeclareOption{straightlabels}{
- \ctikzset{label/align = straight}
+\DeclareOption{straightlabels}{\AtEndOfPackage{%
+ \ctikzset{label/align = straight}}
}
-\DeclareOption{rotatelabels}{
- \ctikzset{label/align = rotate}
+\DeclareOption{rotatelabels}{\AtEndOfPackage{%
+ \ctikzset{label/align = rotate}}
}
-\DeclareOption{smartlabels}{
- \ctikzset{label/align = smart}
+\DeclareOption{smartlabels}{\AtEndOfPackage{%
+ \ctikzset{label/align = smart}}
}
%
% Several options (better use styles)
%
-\DeclareOption{betterproportions}{
+\DeclareOption{betterproportions}{\AtEndOfPackage{%
\ctikzset{monopoles/ground/width/.initial=.15}
\ctikzset{bipoles/resistor/height/.initial=.23}
\ctikzset{bipoles/resistor/width/.initial=.6}
@@ -308,7 +299,7 @@
\ctikzset{tripoles/triac/height/.initial=.66}
\ctikzset{tripoles/triac/width/.initial=.6}
\ctikzset{tripoles/triac/diode width left/.initial=.3}
- \ctikzset{tripoles/triac/diode width right/.initial=.3}
+ \ctikzset{tripoles/triac/diode width right/.initial=.3}}
}
% This is a nice hack that prints all the shapes declared
% by the package. Very useful for coverage testing and debugging.
@@ -321,8 +312,28 @@
%
%
%%%%%%%%%
+%%% These is the only direct options!
+\DeclareOption{siunitx}{
+ \pgf@circ@siunitxtrue
+}
+\DeclareOption{nosiunitx}{
+ \pgf@circ@siunitxfalse
+}
+\DeclareOption{compatibility}{
+ \pgf@circuit@compattrue
+}
+
+
+%% we have to load this before options to define the magics for compatibility
\input pgfcirc.defines.tex
+
+% setup option defaults and process them
+% notice that the default is nooldvoltagedirection; it's not explicitly set to allow for the warning
+\ExecuteOptions{nofetbodydiode, nofetsolderdot, europeancurrents, europeanvoltages, americanports, americanresistors, cuteinductors ,europeangfsurgearrester, nosiunitx, noarrowmos, smartlabels}
+\ProcessOptions\relax
+
\input pgfcircutils.tex
+\input pgfcircpath.tex
\input pgfcircshapes.tex
\input pgfcircmonopoles.tex
@@ -336,19 +347,14 @@
\input pgfcirccurrent.tex
\input pgfcircflow.tex
-% notice that the default is nooldvoltagedirection; it's not explicitly set to allow for the warning
-\ExecuteOptions{nofetbodydiode, nofetsolderdot, europeancurrents, europeanvoltages, americanports, americanresistors, cuteinductors ,europeangfsurgearrester, nosiunitx, noarrowmos, smartlabels}
-
-\ProcessOptions\relax
-
-\input pgfcircpath.tex
-
\ifpgf@circ@siunitx
\RequirePackage{xstring}[2009/03/13]
%\expandafter\let\csname angstrom\endcsname\relax
\RequirePackage{siunitx}
\fi
+%% This should be executed *after* all the options!
+\AtEndOfPackage{%
\ifpgf@circ@explicitvdir\else
\PackageWarningNoLine{circuitikz}{%
You did not specify one of the voltage directions:\MessageBreak
@@ -358,6 +364,7 @@
please check the manual%
}
\fi
+}
\newenvironment{circuitikz}{\begin{tikzpicture}}{\end{tikzpicture}}
%override (unused) circuitikz environment for compability to externalization)