diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty | 259 |
1 files changed, 133 insertions, 126 deletions
diff --git a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty b/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty index cd1637a3f72..7309dd6d18a 100644 --- a/Master/texmf-dist/tex/latex/circuitikz/circuitikz.sty +++ b/Master/texmf-dist/tex/latex/circuitikz/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) |