% Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%% %%%%% %%%%% %%%%% Se c'è l'opzione symbol, fallback to siunitx con warning %%%%% %%%%% \NeedsTeXFormat{LaTeX2e} \def\pgfcircversion{0.4} \def\pgfcircversiondate{2012/12/20} \ProvidesPackage{circuitikz-0.4}% [\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion] %% Version 2.0 of pgf/TikZ is required \RequirePackage{tikz} \usetikzlibrary{calc} \usepgflibrary{decorations.pathmorphing,arrows} \DeclareOption{european}{ \ctikzset{voltage=european} \ctikzset{current=european} \ctikzset{inductor=european} \ctikzset{resistor=european} \ctikzset{logic ports=european} \ctikzset{gas filled surge arrester = european} } \DeclareOption{american}{ \ctikzset{voltage=american} \ctikzset{current=american} \ctikzset{resistor=american} \ctikzset{inductor=american} \ctikzset{gas filled surge arrester = american} \ctikzset{logic ports = american} } \DeclareOption{fulldiodes}{ \ctikzset{diode = full} } \DeclareOption{emptydiodes}{ \ctikzset{diode = empty} } \DeclareOption{europeanvoltages}{ \ctikzset{voltage=european} } \DeclareOption{americanvoltages}{ \ctikzset{voltage=american} } \DeclareOption{europeancurrents}{ \ctikzset{current = european} } \DeclareOption{americancurrents}{ \ctikzset{current = american} } \DeclareOption{europeanvoltages}{ \ctikzset{voltage = european} } \DeclareOption{americanresistors}{ \ctikzset{resistor = american} } \DeclareOption{europeanresistors}{ \ctikzset{resistor = european} } \DeclareOption{americaninductors}{ \ctikzset{inductor = american} } \DeclareOption{europeaninductors}{ \ctikzset{inductor = european} } \DeclareOption{cuteinductors}{ \ctikzset{inductor = cute} } \DeclareOption{americanports}{ \ctikzset{logic ports = american} } \DeclareOption{europeanports}{ \ctikzset{logic ports = european} } \DeclareOption{americangfsurgearrester}{ \ctikzset{gas filled surge arrester = american} } \DeclareOption{europeangfsurgearrester}{ \ctikzset{gas filled surge arrester = european} } \DeclareOption{siunitx}{ \pgf@circ@siunitxtrue } \DeclareOption{nosiunitx}{ \pgf@circ@siunitxfalse } \DeclareOption{arrowmos}{ \pgf@circuit@mos@arrowstrue } \DeclareOption{noarrowmos}{ \pgf@circuit@mos@arrowsfalse } \DeclareOption{straightlabels}{ \ctikzset{label/align = straight} } \DeclareOption{rotatelabels}{ \ctikzset{label/align = rotate} } \DeclareOption{smartlabels}{ \ctikzset{label/align = smart} } \DeclareOption{fulldiode}{ \ctikzset{diode = full} } \DeclareOption{emptydiode}{ \ctikzset{diode = empty} } \DeclareOption{europeanvoltage}{ \ctikzset{voltage=european} } \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} } \DeclareOption{europeanport}{ \ctikzset{logic ports = european} } \DeclareOption{betterproportions}{ \ctikzset{monopoles/ground/width/.initial=.15} \ctikzset{bipoles/resistor/height/.initial=.23} \ctikzset{bipoles/resistor/width/.initial=.6} \ctikzset{bipoles/capacitor/height/.initial=.4} \ctikzset{bipoles/capacitor/width/.initial=.1} \ctikzset{bipoles/potentiometer/height/.initial=.6} \ctikzset{bipoles/potentiometer/height 2/.initial=.23} \ctikzset{bipoles/potentiometer/width/.initial=.6} \ctikzset{bipoles/photoresistor/height/.initial=.6} \ctikzset{bipoles/photoresistor/height 2/.initial=.23} \ctikzset{bipoles/photoresistor/width/.initial=.6} \ctikzset{bipoles/thermistor/main/.initial=.7} \ctikzset{bipoles/thermistor/height/.initial=.328}%.23/.7 \ctikzset{bipoles/thermistor/width/.initial=.6} \ctikzset{bipoles/thermistorntc/width/.initial=.6} \ctikzset{bipoles/thermistorntc/main/.initial=.7} \ctikzset{bipoles/thermistorntc/height/.initial=.328}%.23/.7 \ctikzset{bipoles/thermistorntc/height 2/.initial=.75}%.23/.7 \ctikzset{bipoles/thermistorptc/width/.initial=.6} \ctikzset{bipoles/thermistorptc/main/.initial=.7} \ctikzset{bipoles/thermistorptc/height/.initial=.328}%.23/.7 \ctikzset{bipoles/varistor/main/.initial=.7} \ctikzset{bipoles/varistor/height/.initial=.328}%.23/.7 \ctikzset{bipoles/varistor/width/.initial=.6} \ctikzset{bipoles/vresistor/height/.initial=.45} \ctikzset{bipoles/vresistor/width/.initial=.6} \ctikzset{bipoles/cuteinductor/height/.initial=.23} \ctikzset{bipoles/cuteinductor/width/.initial=.6} \ctikzset{bipoles/cuteinductor/coils/.initial=6} \ctikzset{bipoles/americaninductor/height/.initial=.23} \ctikzset{bipoles/americaninductor/height 2/.initial=.1} \ctikzset{bipoles/americaninductor/width/.initial=.6} \ctikzset{bipoles/americaninductor/coils/.initial=4} \ctikzset{bipoles/vcuteinductor/height/.initial=.6} \ctikzset{bipoles/vcuteinductor/coil height/.initial=.23} \ctikzset{bipoles/vcuteinductor/width/.initial=.6} \ctikzset{bipoles/vcuteinductor/coils/.initial=6} \ctikzset{bipoles/vamericaninductor/height/.initial=.45} \ctikzset{bipoles/vamericaninductor/height 2/.initial=.2} \ctikzset{bipoles/vamericaninductor/width/.initial=.6} \ctikzset{bipoles/vamericaninductor/coils/.initial=4} \ctikzset{bipoles/generic/height/.initial=.23} \ctikzset{bipoles/generic/width/.initial=.6} \ctikzset{bipoles/generic potentiometer/height/.initial=.6} \ctikzset{bipoles/generic potentiometer/height 2/.initial=.23} \ctikzset{bipoles/generic potentiometer/width/.initial=.6} \ctikzset{bipoles/ageneric/height/.initial=.23} \ctikzset{bipoles/ageneric/width/.initial=.6} \ctikzset{bipoles/memristor/height/.initial=.23} \ctikzset{bipoles/memristor/wave height/.initial=.375} \ctikzset{bipoles/memristor/width/.initial=.60} \ctikzset{bipoles/tgeneric/height/.initial=.525} \ctikzset{bipoles/tgeneric/width/.initial=.6} \ctikzset{bipoles/tfullgeneric/height/.initial=.525} \ctikzset{bipoles/tfullgeneric/width/.initial=.60} \ctikzset{bipoles/fullgeneric/height/.initial=.23} \ctikzset{bipoles/fullgeneric/width/.initial=.6} \ctikzset{bipoles/diode/height/.initial=.3} \ctikzset{bipoles/diode/width/.initial=.25} \ctikzset{tripoles/thyristor/height/.initial=.66} \ctikzset{tripoles/thyristor/height 2/.initial=.3} \ctikzset{tripoles/thyristor/width/.initial=.6} \ctikzset{tripoles/thyristor/diode height/.initial=.3} \ctikzset{tripoles/thyristor/diode width left/.initial=.4} \ctikzset{tripoles/thyristor/diode width right/.initial=.3} \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} } %%%%%%%%% %%%%%%%%%%% Springe nach circuitikz.code %%%---------- open: circuitikz.code.tex %% 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}} \newif\ifpgf@circuit@inputarrow \ctikzset{inputarrow/.is choice} \ctikzset{inputarrow/true/.code={\pgf@circuit@inputarrowtrue}} \ctikzset{inputarrow/false/.code={\pgf@circuit@inputarrowfalse}} \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{monopoles/chassis/width/.initial=.25} \ctikzset{monopoles/alternative chassis/width/.initial=.25} \ctikzset{monopoles/equipotentiality/width/.initial=.25} \ctikzset{monopoles/tlinestub/width/.initial=.25} \ctikzset{monopoles/antenna/width/.initial=.25} \ctikzset{monopoles/antenna/label/xanchor/.initial=.4} \ctikzset{monopoles/antenna/label/yanchor/.initial=.75} \ctikzset{monopoles/txantenna/label/xanchor/.initial=.4} \ctikzset{monopoles/txantenna/label/yanchor/.initial=.75} \ctikzset{monopoles/txantenna/width/.initial=.25} \ctikzset{monopoles/rxantenna/label/xanchor/.initial=.4} \ctikzset{monopoles/rxantenna/label/yanchor/.initial=.75} \ctikzset{monopoles/rxantenna/width/.initial=.25} \ctikzset{monopoles/tground/thickness/.initial=3} \ctikzset{monopoles/vcc/width/.initial=.2} \ctikzset{monopoles/match/width/.initial=.4} \ctikzset{monopoles/oscillator/width/.initial=.7} \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/photoresistor/height/.initial=.6} \ctikzset{bipoles/photoresistor/height 2/.initial=.3} \ctikzset{bipoles/photoresistor/width/.initial=.8} \ctikzset{bipoles/thermistor/main/.initial=.7} \ctikzset{bipoles/thermistor/height/.initial=.428}%.3/.7 \ctikzset{bipoles/thermistorntc/width/.initial=.8} \ctikzset{bipoles/thermistorntc/main/.initial=.7} \ctikzset{bipoles/thermistorntc/height/.initial=.428}%.3/.7 \ctikzset{bipoles/thermistorntc/height 2/.initial=.75}%.3/.7 \ctikzset{bipoles/thermistorptc/width/.initial=.8} \ctikzset{bipoles/thermistorptc/main/.initial=.7} \ctikzset{bipoles/thermistorptc/height/.initial=.428}%.3/.7 \ctikzset{bipoles/thermistorptc/height 2/.initial=.75}%.3/.7 \ctikzset{bipoles/thermistor/width/.initial=.8} \ctikzset{bipoles/varistor/main/.initial=.7} \ctikzset{bipoles/varistor/height/.initial=.428}%.3/.7 \ctikzset{bipoles/varistor/width/.initial=.8} \ctikzset{bipoles/vresistor/height/.initial=.6} \ctikzset{bipoles/vresistor/width/.initial=.8} \ctikzset{bipoles/cuteinductor/height/.initial=.3} \ctikzset{bipoles/cuteinductor/width/.initial=.8} \ctikzset{bipoles/cuteinductor/coils/.initial=6} \ctikzset{bipoles/americaninductor/height/.initial=.3} \ctikzset{bipoles/americaninductor/height 2/.initial=.1} \ctikzset{bipoles/americaninductor/width/.initial=.8} \ctikzset{bipoles/americaninductor/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/vamericaninductor/height/.initial=.6} \ctikzset{bipoles/vamericaninductor/height 2/.initial=.2} \ctikzset{bipoles/vamericaninductor/width/.initial=.8} \ctikzset{bipoles/vamericaninductor/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/vsourcesquare/height/.initial=.60} \ctikzset{bipoles/vsourcesquare/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/battery1/height/.initial=.6} \ctikzset{bipoles/battery1/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/european gas filled surge arrester/height/.initial=.30} \ctikzset{bipoles/european gas filled surge arrester/width/.initial=.80} \ctikzset{bipoles/european gas filled surge arrester/inside/.initial=.30} \ctikzset{bipoles/american gas filled surge arrester/height/.initial=.60} \ctikzset{bipoles/american gas filled surge arrester/width/.initial=.60} \ctikzset{bipoles/american gas filled surge arrester/inside/.initial=.15} \ctikzset{bipoles/american gas filled surge arrester/dot x/.initial=.25} \ctikzset{bipoles/american gas filled surge arrester/dot y/.initial=.45} \ctikzset{bipoles/american gas filled surge arrester/size/.initial=.1} \ctikzset{bipoles/fuse/height/.initial=.20} \ctikzset{bipoles/fuse/width/.initial=.50} \ctikzset{bipoles/afuse/height/.initial=.20} \ctikzset{bipoles/afuse/width/.initial=.50} \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=.70} \ctikzset{bipoles/tgeneric/width/.initial=.80} \ctikzset{bipoles/tfullgeneric/height/.initial=.70} \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/buffer/height/.initial=1} \ctikzset{bipoles/buffer/width/.initial=1} \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} \ctikzset{bipoles/tline/height/.initial=.3} \ctikzset{bipoles/tline/width/.initial=.8} \ctikzset{bipoles/squid/height/.initial=.60} \ctikzset{bipoles/squid/width/.initial=.60} \ctikzset{bipoles/barrier/height/.initial=.60} \ctikzset{bipoles/barrier/width/.initial=.60} \ctikzset{bipoles/thermocouple/height/.initial=.250} \ctikzset{bipoles/thermocouple/height 2/.initial=.60} \ctikzset{bipoles/thermocouple/width/.initial=.140} \ctikzset{bipoles/pushbutton/height/.initial=.5} \ctikzset{bipoles/pushbutton/height 2/.initial=.0} \ctikzset{bipoles/pushbutton/width/.initial=.50} \ctikzset{bipoles/twoport/width/.initial=.7} \ctikzset{bipoles/twoport/height/.initial=.7} \ctikzset{bipoles/twoport/text/.initial=} \ctikzset{bipoles/vco/width/.initial=.7} \ctikzset{bipoles/bandpass/width/.initial=.7} \ctikzset{bipoles/highpass/width/.initial=.7} \ctikzset{bipoles/lowpass/width/.initial=.7} \ctikzset{bipoles/adc/width/.initial=.7} \ctikzset{bipoles/dac/width/.initial=.7} \ctikzset{bipoles/dsp/width/.initial=.7} \ctikzset{bipoles/fft/width/.initial=.7} \ctikzset{bipoles/amp/width/.initial=.7} \ctikzset{bipoles/vamp/width/.initial=.7} \ctikzset{bipoles/piattenuator/width/.initial=.7} \ctikzset{bipoles/vpiattenuator/width/.initial=.7} \ctikzset{bipoles/tattenuator/width/.initial=.7} \ctikzset{bipoles/vtattenuator/width/.initial=.7} \ctikzset{bipoles/phaseshifter/width/.initial=.7} \ctikzset{bipoles/vphaseshifter/width/.initial=.7} \ctikzset{bipoles/detector/width/.initial=.7} \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} \ctikzset{tripoles/isfet/width/.initial=1} \ctikzset{tripoles/isfet/gate height/.initial=.35} \ctikzset{tripoles/isfet/base height/.initial=.5} \ctikzset{tripoles/isfet/height/.initial=1.1} \ctikzset{tripoles/isfet/base width/.initial=.3} \ctikzset{tripoles/isfet/gate width/.initial=.5} \ctikzset{tripoles/isfet/wave width/.initial=.16} \ctikzset{tripoles/isfet/wave amp/.initial=.06} \ctikzset{tripoles/isfet/waves y sep/.initial=.22} \ctikzset{tripoles/isfet/waves x sep/.initial=.8} \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/plain amp/width/.initial=1.7} \ctikzset{tripoles/plain amp/port width/.initial=.7} \ctikzset{tripoles/plain amp/height/.initial=1.4} \ctikzset{tripoles/plain amp/input height/.initial=.5} \ctikzset{tripoles/plain 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{tripoles/spdt/width/.initial=.85} \ctikzset{tripoles/spdt/height/.initial=.45} \ctikzset{tripoles/spdt/margin/.initial=.45} \ctikzset{tripoles/toggleswitch/height/.initial=.8} \ctikzset{tripoles/toggleswitch/height 2/.initial=.0} \ctikzset{tripoles/toggleswitch/width/.initial=.80} \ctikzset{tripoles/mixer/width/.initial=0.7} \ctikzset{tripoles/adder/width/.initial=0.7} \ctikzset{tripoles/circulator/width/.initial=.7} \ctikzset{tripoles/wilkinson/height/.initial=1.3} \ctikzset{tripoles/wilkinson/width/.initial=1.3} \ctikzset{quadpoles/transformer/width/.initial=1.5} \ctikzset{quadpoles/transformer/width1/.initial=.4} \ctikzset{quadpoles/transformer/height/.initial=1.5} \ctikzset{quadpoles/transformer/height1/.initial=.8} \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{quadpoles/coupler/width/.initial=1.3} \ctikzset{quadpoles/coupler/height/.initial=1.3} \ctikzset{bipole/.is family} \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} % special cases \ctikzset{bipoles/generic/voltage/distance from node/.initial=.4} \ctikzset{bipoles/generic/voltage/bump b/.initial=2} \ctikzset{bipoles/generic/voltage/european label distance/.initial=1.8} %\ctikzset{bipoles/thermocouple/voltage/distance from node/.initial=.3} \ctikzset{bipoles/thermocouple/voltage/bump b/.initial=2.2} \ctikzset{bipoles/thermocouple/voltage/european label distance/.initial=1.5} \ctikzset{bipoles/ageneric/voltage/distance from node/.initial=.4} \ctikzset{bipoles/ageneric/voltage/bump b/.initial=2} \ctikzset{bipoles/ageneric/voltage/european label distance/.initial=1.8} \ctikzset{bipoles/fullgeneric/voltage/distance from node/.initial=.4} \ctikzset{bipoles/fullgeneric/voltage/bump b/.initial=2} \ctikzset{bipoles/fullgeneric/voltage/european label distance/.initial=1.8} \ctikzset{bipoles/memristor/voltage/distance from node/.initial=.4} \ctikzset{bipoles/memristor/voltage/bump b/.initial=2} \ctikzset{bipoles/memristor/voltage/european label distance/.initial=1.8} %\ctikzset{bipoles/tline/voltage/distance from node/.initial=.2} \ctikzset{bipoles/tline/voltage/bump b/.initial=2.4} \ctikzset{bipoles/tline/voltage/european label distance/.initial=2.1} %\ctikzset{bipoles/varistor/voltage/distance from node/.initial=.2} \ctikzset{bipoles/varistor/voltage/bump b/.initial=2.4} \ctikzset{bipoles/varistor/voltage/european label distance/.initial=2} %\ctikzset{bipoles/photoresistor/voltage/distance from node/.initial=.2} \ctikzset{bipoles/photoresistor/voltage/bump b/.initial=2} \ctikzset{bipoles/photoresistor/voltage/european label distance/.initial=1.8} %\ctikzset{bipoles/thermistor/voltage/distance from node/.initial=.2} \ctikzset{bipoles/thermistor/voltage/bump b/.initial=2.4} \ctikzset{bipoles/thermistor/voltage/european label distance/.initial=2} %\ctikzset{bipoles/thermistorntc/voltage/distance from node/.initial=.2} \ctikzset{bipoles/thermistorntc/voltage/bump b/.initial=1.6} %\ctikzset{bipoles/thermistorptc/voltage/distance from node/.initial=.2} \ctikzset{bipoles/thermistorptc/voltage/bump b/.initial=1.6} \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 } } \newif\ifpgf@circuit@europeangfsurgearrester \ctikzset{gas filled surge arrester/.is choice} \ctikzset{gas filled surge arrester/european/.code= {\pgf@circuit@europeangfsurgearrestertrue } } \ctikzset{gas filled surge arrester/american/.code= {\pgf@circuit@europeangfsurgearresterfalse } } \tikzset{american gas filled surge arrester/.style = { \circuitikzbasekey/gas filled surge arrester = american } } \tikzset{european gas filled surge arrester/.style = { \circuitikzbasekey/gas filled surge arrester = 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, european gas filled surge arrester } } \tikzset{american/.style = { american currents, american voltages, american resistors, american inductors, american ports, american gas filled surge arrester } } \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 } \ctikzset{label/align/.is choice} \ctikzset{label/align/straight/.code={\ctikzsetvalof{label/align}{straight}}} \ctikzset{label/align/rotate/.code={\ctikzsetvalof{label/align}{rotate}}} \ctikzset{label/align/smart/.code={\ctikzsetvalof{label/align}{smart}}} %% dependencies %%%%%%%%%% new \pgfkeys{\circuitikzbasekey/.search also={/tikz}} %%%%%%%%%%% Springe nach pgfcircutils %%%---------- open: pgfcircutils.tex % Copyright 2007-2009 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 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 \def\pgf@temp{} \StrBetween{#1}{<}{>}[\pgf@circ@handleSI@unit] \StrLen{\pgf@circ@handleSI@unit}[\pgf@circ@handleSI@unit@len] \ifnum\pgf@circ@handleSI@unit@len=0 \pgf@circ@siunitx@resfalse \else \IfEndWith{#1}{>}{ \pgf@circ@siunitx@restrue \noexpandarg \StrBefore{#1}{<}[\pgf@circ@handleSI@val] %\typeout{si |#1|} }{ \pgf@circ@siunitx@resfalse %\typeout{no si |#1|} } \fi } \def\pgf@circ@finallabel#1{% \edef\pgf@temp{}% \edef\pgf@circ@temp{\ctikzvalof{bipole/#1label/unit}}% \ifx\pgf@temp\pgf@circ@temp% \ctikzvalof{bipole/#1label/name}% \else% $\SI{\ctikzvalof{bipole/#1label/name}}{\ctikzvalof{bipole/#1label/unit}}$% \fi% } \def\pgf@circ@ifkeyempty#1{ \pgfextra{ \ctikzset{#1/.get=\pgf@circ@temp} \edef\pgf@temp{} } \ifx\pgf@circ@temp\pgf@temp } %%%---------- close: pgfcircutils %%%%%%%%%%% Springe nach pgfcircmath %%%---------- open: pgfcircmath.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Math routines \def\pgf@circ@stripdecimals#1.#2\pgf@nil{#1} % angle between 0 and 360 \def\pgf@circ@slope#1#2{% \pgf@process{#1}% \pgf@xa=\pgf@x% \pgf@ya=\pgf@y% \pgf@process{#2}% \advance\pgf@x by-\pgf@xa% \advance\pgf@y by-\pgf@ya% \ifdim\pgf@x<0.1pt \ifdim\pgf@x>-0.1pt % vertical \ifdim\pgf@y<0pt \def\pgfmathresult{-90.0} \else \def\pgfmathresult{+90.0} \fi \else % oblique with dx < 0 \pgfmathdivide{\pgf@y}{\pgf@x} \pgfmathatan{\pgfmathresult} \ifdim\pgf@x<0pt \pgfmathsubtract{\pgfmathresult}{+180} \fi \fi \else % oblique with dx > 0 \pgfmathdivide{\pgf@y}{\pgf@x} \pgfmathatan{\pgfmathresult} \ifdim\pgf@x<0pt \pgfmathsubtract{\pgfmathresult}{+180} \fi \fi \pgf@x=\pgfmathresult pt \ifdim\pgf@x<0pt \pgfmathadd{\pgfmathresult}{+360} \fi } %%%---------- close: pgfcircmath %%%%%%%%%%% Springe nach pgfcircshapes %%%---------- open: pgfcircshapes.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Other shapes %% Nothing \pgfdeclareshape{emptyshape}{ \savedanchor{\northeast}{% \pgf@x=.5\wd\pgfnodeparttextbox% \pgf@y=.5\ht\pgfnodeparttextbox% } \anchor{north}{ \northeast \pgf@x=0cm } \anchor{east}{% \northeast \pgf@y=0cm } \anchor{south}{% \northeast \pgf@y=-\pgf@y \pgf@x=0cm } \anchor{west}{ \northeast \pgf@y=0cm \pgf@x=-\pgf@x } \anchor{text}{% \pgfpointorigin } \anchor{center}{ \pgfpointorigin } } %% Full terminal \pgfdeclareshape{circ}{ \anchor{center}{ \pgfpointorigin } \anchorborder{ \pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up} }{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}} } \behindforegroundpath{ \pgfscope \pgfpathcircle{\pgfpointorigin}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw,fill} \endpgfscope } } %% Empty terminal \pgfdeclareshape{ocirc}{ \anchor{center}{ \pgfpointorigin } \anchorborder{ \pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up} }{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}}} } \behindforegroundpath{ \pgfscope \pgfpathcircle{\pgfpointorigin}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfsetfillcolor{white} \pgfusepath{draw,fill} \endpgfscope } } %% Current arrow \pgfdeclareshape{currarrow}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgfscope \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \divide \pgf@circ@res@step by 16 \pgfpathmoveto{\pgfpoint{-.7\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{-.7\pgf@circ@res@step}{-.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{-.7\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-.7\pgf@circ@res@step}{0pt}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw,fill} \endpgfscope } } %% Current arrow \pgfdeclareshape{inputarrow}{ \savedanchor{\tip}{ \pgfpointorigin } \anchor{center}{ \tip } \anchor{tip}{ \tip } \behindforegroundpath{ \pgfscope \pgf@circ@res@step = \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \divide \pgf@circ@res@step by 16 \pgfpathmoveto{\pgfpoint{-1.7\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{-1.7\pgf@circ@res@step}{-.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0pt}{0pt}} \pgfpathlineto{\pgfpoint{-1.7\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-1.7\pgf@circ@res@step}{0pt}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{fill} \endpgfscope } } %%%---------- close: pgfcircshapes %%%%%%%%%%% Springe nach pgfcircmonopoles %%%---------- open: pgfcircmonopoles.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Monopoles %% Ground symbol \pgfdeclareshape{ground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth %\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } \pgfdeclareshape{rground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } \pgfdeclareshape{tground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} %\pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/monopoles/tground/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } \pgfdeclareshape{sground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0}{-1.8\pgf@circ@res@step}} \pgfpathclose \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % noiseless ground \pgfdeclareshape{nground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth %\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{1.3\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpatharc{0}{180}{1.3\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % protective ground \pgfdeclareshape{pground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth %\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathcircle{\pgfpoint{0pt}{-\pgf@circ@res@step}} {1.2\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.8\pgf@circ@res@step}{-1.2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.4\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.6\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % chassis ground \pgfdeclareshape{cground}{ \anchor{center}{ \pgfpointorigin } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/chassis/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-1.5\pgf@circ@res@step}{-2\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-2\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{0pt}{-\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-2\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } % Contributed by Leonardo Azzinnari \pgfdeclareshape{tlinestub}{ \anchor{center}{\pgfpointorigin} \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@res@step=\ctikzvalof{bipoles/tline/width} \pgf@circ@Rlen \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \pgfscope \pgfpathellipse{\pgfpoint{0.5\pgf@circ@res@step}{0\pgf@circ@res@step}}{\pgfpoint{0.125\pgf@circ@res@step}{0\pgf@circ@res@step}}{\pgfpoint{0\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{1.5\pgf@circ@res@step}{0.25\pgf@circ@res@step}} \pgfpatharc{90}{-90}{0.125\pgf@circ@res@step and 0.25\pgf@circ@res@step} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{-0.25\pgf@circ@res@step}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope } } \pgfdeclareshape{antenna}{ \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@Rlen \pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=6\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/antenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/antenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@Rlen % \pgfpathmoveto{\pgfpointorigin} % \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step}{0pt}} % \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} % \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgftransformxshift{ -4\pgf@circ@res@step } \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfsetlinewidth{\pgfstartlinewidth} } } \pgfdeclareshape{txantenna}{ \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@Rlen \pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=6\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/txantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/txantenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@Rlen \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step}{0pt}} \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{5.5\pgf@circ@res@step}{6\pgf@circ@res@step}} % \pgfpatharc{60}{-60}{\pgf@circ@res@step and \pgf@circ@res@step} \pgfpatharc{30}{-30}{2\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6\pgf@circ@res@step}{6.25\pgf@circ@res@step}} \pgfpatharc{30}{-30}{2.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6.5\pgf@circ@res@step}{6.5\pgf@circ@res@step}} \pgfpatharc{30}{-30}{3\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7\pgf@circ@res@step}{6.75\pgf@circ@res@step}} \pgfpatharc{30}{-30}{3.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7.5\pgf@circ@res@step}{7\pgf@circ@res@step}} \pgfpatharc{30}{-30}{4\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} } } \pgfdeclareshape{rxantenna}{ \anchor{center}{\pgfpointorigin} \savedanchor{\northeast}{ \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@Rlen \pgf@x=5\pgf@circ@res@step%-0.5\pgflinewidth \pgf@y=6\pgf@circ@res@step } \anchor{text}{ \northeast \pgf@x=\ctikzvalof{monopoles/rxantenna/label/xanchor}\pgf@x \pgf@y=\ctikzvalof{monopoles/rxantenna/label/yanchor}\pgf@y } \behindforegroundpath{ \pgfstartlinewidth=\pgflinewidth \pgf@circ@res@step=\ctikzvalof{monopoles/rxantenna/width}\pgf@circ@Rlen \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step}{0pt}} \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{0pt}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{5\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{4\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{3\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{4\pgf@circ@res@step-0.5\pgflinewidth}{6\pgf@circ@res@step}} \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{6\pgf@circ@res@step}{7\pgf@circ@res@step}} % \pgfpatharc{60}{-60}{\pgf@circ@res@step and \pgf@circ@res@step} \pgfpatharc{150}{210}{4\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{6.5\pgf@circ@res@step}{6.75\pgf@circ@res@step}} \pgfpatharc{150}{210}{3.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7\pgf@circ@res@step}{6.5\pgf@circ@res@step}} \pgfpatharc{150}{210}{3\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{7.5\pgf@circ@res@step}{6.25\pgf@circ@res@step}} \pgfpatharc{150}{210}{2.5\pgf@circ@res@step} \pgfpathmoveto{\pgfpoint{8\pgf@circ@res@step}{6\pgf@circ@res@step}} \pgfpatharc{150}{210}{2\pgf@circ@res@step} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} } } % Vcc \pgfdeclareshape{vcc}{ \anchor{center}{ \pgfpointorigin } \anchor{text}{ \pgf@x=0pt \pgf@y=\ctikzvalof{monopoles/vcc/width}\pgf@circ@Rlen \pgf@y=2\pgf@y \advance \pgf@y by 0.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{0pt}{1.5\pgf@circ@res@step}} \pgfusepath{draw} \pgfstartlinewidth=\pgflinewidth \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0}{1.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{.8\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % match \pgfdeclareshape{match}{ \anchor{center}{ \pgfpointorigin } \anchor{text}{ \pgf@x=\ctikzvalof{monopoles/match/width}\pgf@circ@Rlen \pgf@x=1.5\pgf@x \advance \pgf@x by -.5\wd\pgfnodeparttextbox \pgf@y=-1.5\ht\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/match/width}\pgf@circ@Rlen \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{2\pgf@circ@res@step}{0}} \pgfusepath{fill} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } % oscillator \pgfdeclareshape{oscillator}{ \anchor{center}{ \pgfpointorigin } \anchor{north}{ \pgf@x=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen \pgf@x=-0.5\pgf@x \pgf@y=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen \pgf@y=0.5\pgf@y } \anchor{south}{ \pgf@x=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen \pgf@x=-0.5\pgf@x \pgf@y=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen \pgf@y=-0.5\pgf@y } \anchor{east}{ \pgfpointorigin \pgf@x=-\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen } \anchor{west}{ \pgfpointorigin } \anchor{text}{ \pgf@x=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen \pgf@x=-2\pgf@x \advance \pgf@x by -.5\wd\pgfnodeparttextbox \pgf@y=-\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen \advance \pgf@y by -1.5\ht\pgfnodeparttextbox } \behindforegroundpath{ \pgf@circ@res@step=\ctikzvalof{monopoles/oscillator/width}\pgf@circ@Rlen \pgf@circ@res@step=.5\pgf@circ@res@step \pgfscope \pgfpathmoveto{\pgfpointorigin} \pgfstartlinewidth=\pgflinewidth % draw circle \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{-\pgf@circ@res@step}{0}} {\pgf@circ@res@step} \pgfusepath{draw} % draw inner sine waves \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-1.5\pgf@circ@res@step}{0\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \endpgfscope } } %%%---------- close: pgfcircmonopoles %%%%%%%%%%% Springe nach pgfcircbipoles %%%---------- open: pgfcircbipoles.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %% Generic macro for defining a bipole shape % #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 \long\def\pgfcircdeclarebipole#1#2#3#4#5#6{ \pgfdeclareshape{#3shape}{ \savedanchor{\northeast}{ \pgf@y=#4\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=#5\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor{\northeastborder}{ \pgf@y=#4\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y \pgf@x=#5\pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x } \savedanchor{\southwestborder}{ \pgf@y=-#2\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y \pgf@x=-#5\pgf@circ@Rlen \pgf@x=.5\pgf@x \pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x } \savedanchor{\southwest}{ \pgf@y=-#2\pgf@circ@Rlen \pgf@y=.5\pgf@y \pgf@x=-#5\pgf@circ@Rlen \pgf@x=.5\pgf@x } \savedanchor{\centerpoint}{ \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 \pgf@y=.5\pgf@y } \anchor{center}{\pgfpointorigin} \anchor{n}{ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@x=0cm } \anchor{ne}{ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi } \anchor{nw}{ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@x=-\pgf@x } \anchor{e}{% \ifpgf@circuit@bipole@reversed\else\southwest\northeast\fi \pgf@y=0cm } \anchor{s}{% \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi \pgf@x=0cm } \anchor{se}{% \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi \pgf@x=-\pgf@x } \anchor{sw}{% \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi } \anchor{w}{ \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi \pgf@y=0cm } \anchor{north}{ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@x=0cm } \anchor{east}{% \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@y=0cm } \anchor{south}{% \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi \pgf@x=0cm } \anchor{west}{ \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi \pgf@y=0cm } \anchor{right}{ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@y=0cm } \anchor{above}{ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@x=0cm } \anchor{left}{% \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi \pgf@y=0cm } \anchor{below}{% \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi \pgf@x=0cm } \anchor{a}{% \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@y=0cm } \anchor{b} { \ifpgf@circuit@bipole@reversed\northeast\else\southwest\fi \pgf@y=0cm } \savedanchor{\textanchor}{% \pgf@y=\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \anchor{text}{% \textanchor } \anchorborder{% \def\pgf@temp{false} \ifpgf@circuit@bipole@reversed\pgf@temp \pgf@circ@res@left=-\pgf@x \pgf@circ@res@right=-\pgf@y \else \pgf@circ@res@left=\pgf@x \pgf@circ@res@right=\pgf@y \fi \ifdim\pgf@circ@res@right>0cm \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@right}}{\northeastborder} \else \southwestborder \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@right}}{\pgfpoint{-\pgf@x}{-\pgf@y}} \fi } #1 \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \northeast \pgf@circ@res@up = \pgf@y \pgf@circ@res@zero = 0cm \pgf@circ@res@left = -\pgf@x \pgf@circ@res@right = \pgf@x \southwest \pgf@circ@res@down = \pgf@y \pgfstartlinewidth=\pgflinewidth #6 \pgfsetlinewidth{\pgfstartlinewidth} } } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Standard bipole shapes declarations %% Resistor \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 \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@up}} \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@up}} \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@up}} \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} } %% 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} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \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 \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\myfrac\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\myfrac\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\myfrac\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\myfrac\pgf@circ@res@down}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\myfrac\pgf@circ@res@up}} \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\myfrac\pgf@circ@res@down}} \advance\pgf@circ@res@other by \pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Capacitor \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 \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \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}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/battery/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 6 \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}} \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}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{.5\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} } %% Battery 1 \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/battery1/height}}{battery1}{\ctikzvalof{bipoles/battery1/height}}{\ctikzvalof{bipoles/battery1/width}}{ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} } %% cute inductor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cuteinductor/height}}{cuteinductor}{\ctikzvalof{bipoles/cuteinductor/height}}{\ctikzvalof{bipoles/cuteinductor/width}}{ \pgf@circ@res@step=\ctikzvalof{bipoles/cuteinductor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by \ctikzvalof{bipoles/cuteinductor/coils} \pgfdecorationsegmentamplitude=\ctikzvalof{bipoles/cuteinductor/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} } %% american inductor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/americaninductor/height 2}}{americaninductor}{\ctikzvalof{bipoles/americaninductor/height}}{\ctikzvalof{bipoles/americaninductor/width}}{ \pgf@circ@res@step=\ctikzvalof{bipoles/americaninductor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by \ctikzvalof{bipoles/americaninductor/coils} \pgfdecorationsegmentamplitude=\ctikzvalof{bipoles/americaninductor/height}\pgf@circ@Rlen \pgfdecorationsegmentamplitude=.45\pgfdecorationsegmentamplitude \pgfdecorationsegmentlength = 1.99\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} } %% Independent voltage source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsource/height}}{vsource}{\ctikzvalof{bipoles/vsource/height}}{\ctikzvalof{bipoles/vsource/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} } %% Independent voltage source - American style \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourceam/height}}{vsourceAM}{\ctikzvalof{bipoles/vsourceam/height}}{\ctikzvalof{bipoles/vsourceam/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{$+$} \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{$-$} \pgfusepath{draw} } %% Independent sinusoidal voltage source \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}} \pgfusepath{draw} \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } % contributed by Alistair Kwan \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vsourcesquare/height}}{vsourcesquare}{\ctikzvalof{bipoles/vsourcesquare/height}}{\ctikzvalof{bipoles/vsourcesquare/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfusepath{draw} \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@up}{0cm}} \pgfpathlineto{\pgfpoint{-1\pgf@circ@res@up}{1\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0\pgf@circ@res@up}{1\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0\pgf@circ@res@up}{-1\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@up}{-1\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1\pgf@circ@res@up}{0\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Independent current source \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}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfusepath{draw} } %% Independent current source - American \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}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{.5\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope } %% Independent sinusoidal current source \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}} \pgfusepath{draw} \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Controlled voltage source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsource/height}}{cvsource}{\ctikzvalof{bipoles/cvsource/height}}{\ctikzvalof{bipoles/cvsource/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} } %% Controlled voltage source - American \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourceam/height}}{cvsourceAM}{\ctikzvalof{bipoles/cvsourceam/height}}{\ctikzvalof{bipoles/cvsourceam/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{$+$} \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{$-$} \pgfusepath{draw} } %% Controlled sinusoidal voltage source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourcesin/height}}{cvsourcesin}{\ctikzvalof{bipoles/cvsourcesin/height}}{\ctikzvalof{bipoles/cvsourcesin/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \endpgfscope \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Controlled sinusoidal current source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cvsourcesin/height}}{cisourcesin}{\ctikzvalof{bipoles/cvsourcesin/height}}{\ctikzvalof{bipoles/cvsourcesin/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \endpgfscope \pgf@circ@res@up = .5\pgf@circ@res@up \pgfscope \pgftransformrotate{90} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{.5\pgf@circ@res@up}{-.5\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Controlled current source \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cisource/height}}{cisource}{\ctikzvalof{bipoles/cisource/height}}{\ctikzvalof{bipoles/cisource/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfusepath{draw} } %% Controlled current source - American \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/cisourceam/height}}{cisourceAM}{\ctikzvalof{bipoles/cisourceam/height}}{\ctikzvalof{bipoles/cisourceam/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{.5\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfnode{currarrow}{center}{}{}{\pgfusepath{draw}} \endpgfscope } %% Black generic diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulldiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} } %% Black Zener diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.2\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Black Schottky diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullsdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{.8\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.2\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.2\pgf@circ@res@left}{.8\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Black tunnel diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulltdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Black light emitting diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fulllediode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{2\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@right}{1.8\pgf@circ@res@up}} \pgfusepath{draw} } %% Black photodiode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{fullpdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsstart{latex'} \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{2\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@right}{1.8\pgf@circ@res@up}} \pgfusepath{draw} } %% Black varcap \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/varcap/height}}{fullvarcap}{\ctikzvalof{bipoles/varcap/height}}{\ctikzvalof{bipoles/varcap/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{0pt}} \pgfusepath{draw,fill} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Empty generic diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptydiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} } %% Empty Zener diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptyzdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.2\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Empty Schottky diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptysdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{.8\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.2\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.2\pgf@circ@res@left}{.8\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Empty tunnel diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptytdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Empty light emitting diode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptylediode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{2\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@right}{1.8\pgf@circ@res@up}} \pgfusepath{draw} } %% Empty photodiode \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/diode/height}}{emptypdiode}{\ctikzvalof{bipoles/diode/height}}{\ctikzvalof{bipoles/diode/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsstart{latex'} \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{2\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{1.2\pgf@circ@res@right}{1.8\pgf@circ@res@up}} \pgfusepath{draw} } %% Empty varcap \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/varcap/height}}{emptyvarcap}{\ctikzvalof{bipoles/varcap/height}}{\ctikzvalof{bipoles/varcap/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgftransformxshift{\pgf@circ@res@left} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.8\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% Closing SPST \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/interr/height 2}}{cspst}{\ctikzvalof{bipoles/interr/height}}{\ctikzvalof{bipoles/interr/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{.9\pgf@circ@res@left}{.9\pgf@circ@res@up}} \pgfpatharc{65}{25}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/interr/width}\pgf@circ@Rlen} %\pgfsetarrowsend{latex'} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.1\pgf@circ@res@right}{-.25\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.14\pgf@circ@res@right}{-.35\pgf@circ@res@up}} \pgfsetarrowsend{latex'} \pgfusepath{draw} } %% Opening SPST \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/interr/height 2}}{ospst}{\ctikzvalof{bipoles/interr/height}}{\ctikzvalof{bipoles/interr/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{.3\pgf@circ@res@right}{.1\pgf@circ@res@down}} \pgfpatharc{15}{50}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/interr/width}\pgf@circ@Rlen} %\pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.85\pgf@circ@res@left}{1.25\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.87\pgf@circ@res@left}{1.26\pgf@circ@res@up}} \pgfsetarrowsend{latex'} \pgfusepath{draw} } %% Push Button \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/pushbutton/height 2}}{pushbutton}{\ctikzvalof{bipoles/pushbutton/height}}{\ctikzvalof{bipoles/pushbutton/width}}{ %\pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{0}{.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@up}} \pgfusepath{draw} \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{ocirc}{center}{}{}{\pgfusepath{draw}} \pgftransformshift{\pgfpoint{2\pgf@circ@res@right}{0pt}} \pgfnode{ocirc}{center}{}{}{\pgfusepath{draw}} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Ammeter \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 \else \def\pgf@circ@temp{below} \ifx\tikz@res@label@pos\pgf@circ@temp \pgf@circ@res@step=-1.2\pgf@circ@res@up \else \pgf@circ@res@step=1.2\pgf@circ@res@up \fi \fi \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpointorigin \pgf@circ@res@other = \pgf@x \advance \pgf@circ@res@other by -\pgf@circ@res@up \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up} \pgfusepath{draw} \endpgfscope \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetarrowsend{} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfnode{circle}{center}{\textbf{A}}{}{} } %% Voltmeter \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 \else \def\pgf@circ@temp{below} \ifx\tikz@res@label@pos\pgf@circ@temp \pgf@circ@res@step=-1.2\pgf@circ@res@up \else \pgf@circ@res@step=1.2\pgf@circ@res@up \fi \fi \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpointorigin \pgf@circ@res@other = \pgf@x \advance \pgf@circ@res@other by -\pgf@circ@res@up \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up} \pgfusepath{draw} \endpgfscope \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetarrowsend{} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfnode{circle}{center}{\textbf{V}}{}{} } %% Short circuit \pgfcircdeclarebipole{}{0}{short}{0}{0}{ } %% Open circuit \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}}{ %\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} } %% fuse \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/fuse/height}}{fuse}{\ctikzvalof{bipoles/fuse/height}}{\ctikzvalof{bipoles/fuse/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfusepath{draw} \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} } %% Generic bipole, filled - used as inductor by some (bleah) \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 \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,fill} } %% Generic asymmetric bipole \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} } %% asymmetric fuse \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/afuse/height}}{afuse}{\ctikzvalof{bipoles/afuse/height}}{\ctikzvalof{bipoles/afuse/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfusepath{draw} \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} \pgfpathrectanglecorners{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{stroke,fill} } %% Generic empty tunable \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tgeneric/height}}{tgeneric}{\ctikzvalof{bipoles/tgeneric/height}}{\ctikzvalof{bipoles/tgeneric/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{.4\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{.4\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Photoresistor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/photoresistor/height 2}}{photoresistor}{\ctikzvalof{bipoles/photoresistor/height}}{\ctikzvalof{bipoles/photoresistor/width}}{ \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 \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.3\pgf@circ@res@right}{-1.2\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.45\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.05\pgf@circ@res@right}{-1.2\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Thermistor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/thermistor/height}}{thermistor}{\ctikzvalof{bipoles/thermistor/height}}{\ctikzvalof{bipoles/thermistor/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistor/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistor/main}\pgf@circ@res@up}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} %\pgfscope \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{-\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} %\endpgfscope } %% Thermistor PTC \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/thermistorptc/height 2}}{thermistorptc}{\ctikzvalof{bipoles/thermistorptc/height}}{\ctikzvalof{bipoles/thermistorptc/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistorptc/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistorptc/main}\pgf@circ@res@up}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{-\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgftext[top,x=.85\pgf@circ@res@left,y=.75\pgf@circ@res@down]{\tiny$\vartheta$} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.62\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.62\pgf@circ@res@left}{.7\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.45\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.45\pgf@circ@res@left}{.7\pgf@circ@res@down}} \pgfusepath{draw} } %% Thermistor NTC \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/thermistorntc/height 2}}{thermistorntc}{\ctikzvalof{bipoles/thermistorntc/height}}{\ctikzvalof{bipoles/thermistorntc/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistorntc/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\pgfkeysvalueof{/tikz/circuitikz/bipoles/thermistorntc/main}\pgf@circ@res@up}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{-\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgftext[top,x=.85\pgf@circ@res@left,y=.75\pgf@circ@res@down]{\tiny$\vartheta$} \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.62\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.62\pgf@circ@res@left}{.7\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.45\pgf@circ@res@left}{.7\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.45\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} } %% thermocouple \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/thermocouple/height 2}}{thermocouple}{\ctikzvalof{bipoles/thermocouple/height}}{\ctikzvalof{bipoles/thermocouple/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfusepath{draw} } %% Varistor \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/varistor/height}}{varistor}{\ctikzvalof{bipoles/varistor/height}}{\ctikzvalof{bipoles/varistor/width}}{ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/varistor/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\pgfkeysvalueof{/tikz/circuitikz/bipoles/varistor/main}\pgf@circ@res@up}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{-\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfusepath{draw} \pgftext[top,x=.65\pgf@circ@res@left,y=1.2\pgf@circ@res@down]{{\tiny\textsf{U}}} } %% 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}{.4\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{.4\pgf@circ@res@down}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw,fill} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-.5\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{latex'} \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/vamericaninductor/height 2}}{vamericaninductor}{\ctikzvalof{bipoles/vamericaninductor/height}}{\ctikzvalof{bipoles/vamericaninductor/width}}{ \pgf@circ@res@step=\ctikzvalof{bipoles/vamericaninductor/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by \ctikzvalof{bipoles/vamericaninductor/coils} \pgfdecorationsegmentamplitude=\ctikzvalof{bipoles/vamericaninductor/height}\pgf@circ@Rlen \pgfdecorationsegmentamplitude=.45\pgfdecorationsegmentamplitude \pgfdecorationsegmentamplitude=.45\pgfdecorationsegmentamplitude % per freccia \pgfdecorationsegmentlength = 1.99\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{latex'} \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@left}{\pgf@circ@res@up}} \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{latex'} \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 \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}} %% The output routine \def\drawpoles{ \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{bipole/nodes/left}} \def\pgf@temp{empty} } \ifx\pgf@temp\pgf@circ@temp { (\tikztostart) node[ocirc] {} } \else \pgfextra{ \def\pgf@temp{full} } \ifx\pgf@temp\pgf@circ@temp { (\tikztostart) node[circ] {} } \fi \fi \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{bipole/nodes/right}} \def\pgf@temp{empty} } \ifx\pgf@temp\pgf@circ@temp { (\tikztotarget) node[ocirc] {} } \else \pgfextra{ \def\pgf@temp{full} } \ifx\pgf@temp\pgf@circ@temp { (\tikztotarget) node[circ] {} } \fi \fi } %% Lamp \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/lamp/height}}{lamp}{\ctikzvalof{bipoles/lamp/height}}{\ctikzvalof{bipoles/lamp/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{.7071*\pgf@circ@res@left}{.7071*\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.7071*\pgf@circ@res@right}{.7071*\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{.7071*\pgf@circ@res@left}{.7071*\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{.7071*\pgf@circ@res@right}{.7071*\pgf@circ@res@up}} \pgfusepath{draw} } \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tline/height} }{tline}{\ctikzvalof{bipoles/tline/height} }{\ctikzvalof{bipoles/tline/width} } { \pgf@circ@res@step=.2\pgf@circ@res@right % half x axis \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{0}} {\pgfpoint{\pgf@circ@res@step}{0}} {\pgfpoint{0}{-\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@step}{\pgf@circ@res@up}} \pgfpatharc{-90}{90}{-\pgf@circ@res@step and -\pgf@circ@res@up} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{\pgf@circ@res@down}} \pgfusepath{draw} } %% SQUID added by Cor Molenaar 5 March 2010 \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/squid/height}}{squid}{\ctikzvalof{bipoles/squid/height}}{\ctikzvalof{bipoles/squid/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{1.35*\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{0.65*\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{0.65*\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{1.35*\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{1.35*\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{0.65*\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{0.65*\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{1.35*\pgf@circ@res@down}} \pgfusepath{draw} } % Generic barrier added by Cor Molenaar 5 March 2010 \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/barrier/height}}{barrier}{\ctikzvalof{bipoles/barrier/height}}{\ctikzvalof{bipoles/barrier/width}}{ \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@step}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{0.35*\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{0.35*\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{0.35*\pgf@circ@res@left}{0.35*\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.35*\pgf@circ@res@right}{0.35*\pgf@circ@res@up}} \pgfusepath{draw} } % Contributed by Danilo Piazzalunga \pgfdeclareshape{buffer} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/bipoles/buffer/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/bipoles/buffer/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 \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}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \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} } } \pgfdeclareshape{plain amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \savedanchor\up{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/width}\pgf@x \pgf@x=.5\pgf@x \pgf@circ@res@up = \pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpointlineattime{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/up pos}}{ \pgfpoint{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} {\pgfpoint{.7\pgf@circ@res@right}{0pt}} } \anchor{up}{ \up } \anchor{down}{ \up \pgf@y=-\pgf@y } \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 \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/plain amp/input height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} \pgfusepath{draw} \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}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \endpgfscope } } %% Generic two port box \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/twoport/height}}{twoport}{\ctikzvalof{bipoles/twoport/height}}{\ctikzvalof{bipoles/twoport/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgftext[center,x=0,y=0]{\ctikzvalof{bipoles/twoport/text}} } %% voltage controled oscillator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vco/width}}{vco}{\ctikzvalof{bipoles/twoport/width}}{\ctikzvalof{bipoles/vco/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vco/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw circle \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{0}{0}} {\pgf@circ@res@step} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner sine waves \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-.5\pgf@circ@res@step}{0\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} } %% bandpass filter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/bandpass/width}}{bandpass}{\ctikzvalof{bipoles/bandpass/width}}{\ctikzvalof{bipoles/bandpass/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/bandpass/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{0.35\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.65\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.65\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{-0.35\pgf@circ@res@step}} \pgfusepath{draw} } %% highpass filter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/highpass/width}}{highpass}{\ctikzvalof{bipoles/highpass/width}}{\ctikzvalof{bipoles/highpass/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/highpass/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.15\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.15\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.65\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{-0.35\pgf@circ@res@step}} \pgfusepath{draw} } %% lowpass filter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/lowpass/width}}{lowpass}{\ctikzvalof{bipoles/lowpass/width}}{\ctikzvalof{bipoles/lowpass/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/lowpass/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 224 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{0.35\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.65\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.15\pgf@circ@res@step}{-0.15\pgf@circ@res@step}} \pgfpathlineto{\pgfpoint{0.15\pgf@circ@res@step}{0.15\pgf@circ@res@step}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.5\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathsine{\pgfpoint{.25\pgf@circ@res@step}{-.25\pgf@circ@res@step}} \pgfpathcosine{\pgfpoint{.25\pgf@circ@res@step}{.25\pgf@circ@res@step}} \pgfusepath{draw} } %% ADC \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/adc/width}}{adc}{\ctikzvalof{bipoles/adc/width}}{\ctikzvalof{bipoles/adc/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/adc/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\texti{A} \def\textii{D} \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \def\texti{D} \def\textii{A} \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \def\texti{D} \def\textii{A} \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \def\texti{A} \def\textii{D} \fi\fi % draw inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgftext[center,x=0.45\pgf@circ@res@left,y=0.45\pgf@circ@res@up]{\textsf{\texti}} \pgftext[center,x=0.45\pgf@circ@res@right,y=0.45\pgf@circ@res@down]{\textsf{\textii}} } %% DAC \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/dac/width}}{dac}{\ctikzvalof{bipoles/dac/width}}{\ctikzvalof{bipoles/dac/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/dac/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\texti{D} \def\textii{A} \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \def\texti{A} \def\textii{D} \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible \def\texti{A} \def\textii{D} \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \def\texti{D} \def\textii{A} \fi\fi % draw inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgftext[center,x=0.45\pgf@circ@res@left,y=0.45\pgf@circ@res@up]{\textsf{\texti}} \pgftext[center,x=0.45\pgf@circ@res@right,y=0.45\pgf@circ@res@down]{\textsf{\textii}} } %% DSP \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/dsp/width}}{dsp}{\ctikzvalof{bipoles/dsp/width}}{\ctikzvalof{bipoles/dsp/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/dsp/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgftext[center,x=0,y=0]{\textsf{DSP}} } %% FFT \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/fft/width}}{fft}{\ctikzvalof{bipoles/fft/width}}{\ctikzvalof{bipoles/fft/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/fft/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgftext[center,x=0,y=0]{\textsf{FFT}} } %% Amplifier \pgfcircdeclarebipole{}{ %\ifpgf@circuit@box \ctikzvalof{bipoles/twoport/width} %\else % \ctikzvalof{bipoles/amp/width} %\fi }{amp}{ %\ifpgf@circuit@box \ctikzvalof{bipoles/twoport/width} %\else % \ctikzvalof{bipoles/amp/width} % \fi }{ % \ifpgf@circuit@box \ctikzvalof{bipoles/twoport/width} % \else % \ctikzvalof{bipoles/amp/width} % \fi }{ \pgf@circ@res@step = \ctikzvalof{bipoles/amp/width}\pgf@circ@Rlen % draw outer box %\ifpgf@circuit@box % \pgfnode{box}{center}{}{pgf@box}{\pgfusepath{draw}} %\fi % draw outer box % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % draw input arrow \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@left}{0.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.63\pgf@circ@res@right}{0}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.75\pgf@circ@res@down}} \pgfpathclose \pgfusepath{draw} } %% variable amplifier \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vamp/width}}{vamp}{\ctikzvalof{bipoles/vamp/width}}{\ctikzvalof{bipoles/vamp/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vamp/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@left}{0.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.63\pgf@circ@res@right}{0}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.75\pgf@circ@res@down}} \pgfpathclose \pgfusepath{draw} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.7\pgf@circ@res@up}} \pgfusepath{draw} } %% pi attenuator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/piattenuator/width}}{piattenuator}{\ctikzvalof{bipoles/piattenuator/width}}{\ctikzvalof{bipoles/piattenuator/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/piattenuator/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0.4\pgf@circ@res@left}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.4\pgf@circ@res@right}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} } %% variable pi attenuator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vpiattenuator/width}}{vpiattenuator}{\ctikzvalof{bipoles/vpiattenuator/width}}{\ctikzvalof{bipoles/vpiattenuator/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vpiattenuator/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0.4\pgf@circ@res@left}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.4\pgf@circ@res@right}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfusepath{draw} } %% T attenuator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/tattenuator/width}}{tattenuator}{\ctikzvalof{bipoles/tattenuator/width}}{\ctikzvalof{bipoles/tattenuator/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/tattenuator/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0pt}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0pt}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} } %% variable T attenuator \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/vtattenuator/width}}{vtattenuator}{\ctikzvalof{bipoles/vtattenuator/width}}{\ctikzvalof{bipoles/vtattenuator/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vtattenuator/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % draw inner symbol \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0pt}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0pt}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.8\pgf@circ@res@up}} \pgfusepath{draw} } %% phase shifter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/phaseshifter/width}}{phaseshifter}{\ctikzvalof{bipoles/phaseshifter/width}}{\ctikzvalof{bipoles/phaseshifter/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/phaseshifter/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % inner symbol \pgftext[center,x=0,y=0]{\Large$\varphi$} } %% variable phase shifter \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/phaseshifter/width}}{vphaseshifter}{\ctikzvalof{bipoles/vphaseshifter/width}}{\ctikzvalof{bipoles/vphaseshifter/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/vphaseshifter/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % rotate inner symbol \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135 \pgftransformrotate{270} \fi\fi \ifnum \pgfcircmathresult > 135 \ifnum \pgfcircmathresult < 225 \pgftransformrotate{180} \fi\fi \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315 \pgftransformrotate{90} \fi\fi % inner symbol \pgftext[center,x=0,y=0]{\Large$\varphi$} \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{0.65\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.65\pgf@circ@res@up}} \pgfusepath{draw} } %% detector \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/detector/width}}{detector}{\ctikzvalof{bipoles/detector/width}}{\ctikzvalof{bipoles/detector/width}}{ \pgf@circ@res@step = \ctikzvalof{bipoles/detector/width}\pgf@circ@Rlen \divide \pgf@circ@res@step by 2 \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 % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \ifpgf@circuit@inputarrow { \advance \pgf@circ@res@left by -.5\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}} } \fi % draw inner stuff \pgfsetlinewidth{0.8\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{0.75\pgf@circ@res@right}{0}} \pgfusepath{draw} \ifpgf@circuit@fulldiode \pgfmathparse{2\pgf@circ@res@up / \pgf@circ@Rlen / \ctikzvalof{bipoles/generic/width}} \pgftransformscale{\pgfmathresult} \pgfnode{fulldiodeshape}{center}{}{pgf@fulldiode}{\pgfusepath{fill}} \else \pgfmathparse{2\pgf@circ@res@up / \pgf@circ@Rlen / \ctikzvalof{bipoles/resistor/width}} \pgftransformscale{\pgfmathresult} \pgfnode{emptydiodeshape}{center}{}{pgf@emptydiode}{\pgfusepath{fill}} \fi } %% european gas filled surge arrester \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/european gas filled surge arrester/height}}{european gas filled surge arrester}{\ctikzvalof{bipoles/european gas filled surge arrester/height}}{\ctikzvalof{bipoles/european gas filled surge arrester/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} \pgfscope \pgfsetarrowsend{latex'} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/bipoles/european gas filled surge arrester/inside}\pgf@circ@res@left}{0pt}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfusepath{draw} \endpgfscope } %% american gas filled surge arrester \pgfcircdeclarebipole{}{\ctikzvalof{bipoles/american gas filled surge arrester/height}}{american gas filled surge arrester}{\ctikzvalof{bipoles/american gas filled surge arrester/height}}{\ctikzvalof{bipoles/american gas filled surge arrester/width}}{ %\def\pgf@circ@temp{right} %\ifx\tikz@res@label@pos\pgf@circ@temp % \pgf@circ@res@step=-1.2\pgf@circ@res@up %\else % \def\pgf@circ@temp{below} % \ifx\tikz@res@label@pos\pgf@circ@temp % \pgf@circ@res@step=-1.2\pgf@circ@res@up % \else % \pgf@circ@res@step=1.2\pgf@circ@res@up % \fi % \fi \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpointorigin \pgf@circ@res@other = \pgf@x \advance \pgf@circ@res@other by -\pgf@circ@res@up \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfscope \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up} \pgfusepath{draw} \endpgfscope \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfnode{circle}{center}{}{}{} \pgfscope \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/inside}\pgf@circ@res@right}{\pgf@circ@res@zero}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfpathlineto{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/inside}\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfusepath{draw} \endpgfscope{} %\pgftransformshift{\pgfpoint{.25\pgf@circ@res@left}{.45\pgf@circ@res@down}} %\pgfnode{circ}{center}{}{}{} %\pgftransformshift{} \pgfcircle{\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/dot x}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/dot y}\pgf@circ@res@down}}{\pgfkeysvalueof{/tikz/circuitikz/bipoles/american gas filled surge arrester/size}\pgf@circ@res@down} \pgfusepath{fill} } %%%---------- close: pgfcircbipoles %%%%%%%%%%% Springe nach pgfcirctripoles %%%---------- open: pgfcirctripoles.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Tripoles \pgfdeclareshape{mixer} { \savedanchor\northwest{ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/mixer/width}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/mixer/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{in 1}{ \northwest \pgf@y=0pt } \anchor{in1}{ \northwest \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{in 2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{in2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \pgf@y=0pt \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/mixer/width}\pgf@circ@Rlen \pgfscope \pgfstartlinewidth=\pgflinewidth % draw outer circle \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step} \pgfusepath{draw} % draw inner stuff \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpointpolar{135}{0.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpointpolar{-45}{0.5\pgf@circ@res@step}} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpointpolar{45}{0.5\pgf@circ@res@step}} \pgfpathlineto{\pgfpointpolar{-135}{0.5\pgf@circ@res@step}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope } } \pgfdeclareshape{adder} { \savedanchor\northwest{ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/adder/width}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/adder/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{in 1}{ \northwest \pgf@y=0pt } \anchor{in1}{ \northwest \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{in 2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{in2}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \pgf@y=0pt \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/adder/width}\pgf@circ@Rlen \pgfscope \pgfstartlinewidth=\pgflinewidth % draw outer circle \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step} \pgfusepath{draw} % draw inner stuff \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpointpolar{0}{0.3\pgf@circ@res@step}} \pgfpathlineto{\pgfpointpolar{180}{0.3\pgf@circ@res@step}} \pgfpathmoveto{\pgfpointorigin} \pgfpathmoveto{\pgfpointpolar{90}{0.3\pgf@circ@res@step}} \pgfpathlineto{\pgfpointpolar{270}{0.3\pgf@circ@res@step}} \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope } } \pgfdeclareshape{spdt} { \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/spdt/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out 1}{ \northwest \pgf@x=-\pgf@x } \anchor{out 2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{center}{ \pgf@y=0pt \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \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/tripoles/spdt/margin}\pgf@circ@res@left \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfusepath{draw} \pgfscope \pgftransformshift{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}} \pgfnode{ocirc}{center}{}{spdt1}{\pgfusepath{stroke}} \endpgfscope \pgfscope \pgftransformshift{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}} \pgfnode{ocirc}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \pgfscope \pgftransformshift{\pgfpoint{\pgf@circ@res@other}{0pt}} \pgfnode{ocirc}{center}{}{spdt2}{\pgfusepath{stroke}} \endpgfscope \pgfscope \pgfpathmoveto{\pgfpointshapeborder{spdt2}{\pgfpointorigin}} \pgfpathlineto{ \pgfpointadd{\pgfpointshapeborder{spdt1}{\pgfpoint{-\pgf@circ@res@other}{-100pt}}} {\pgfpoint{-.05\pgf@circ@res@up}{-.05\pgf@circ@res@up}} } \pgfsetlinewidth{2\pgflinewidth} \pgfusepath{draw} \endpgfscope } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Logic ports %% \long\def\pgfcircdeclarelogicport#1#2{ \pgfdeclareshape{american #1 port} { \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \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/american #1 port/width}\pgf@x \pgf@x=.5\pgf@x } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/american #1 port/height}\pgf@y \pgf@y=.5\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/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 } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \northwest \pgf@y=0pt \pgf@x=-.8\pgf@x } \anchor{east}{ \left \pgf@x=-.8\pgf@x } \anchor{west}{ \left } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \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 #2 } } } \pgfcircdeclarelogicport{and}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\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/american and port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\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/american and port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\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/american and port/port width}\pgf@circ@res@right} {.5\pgf@circ@res@down}} {\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american and port/port width}\pgf@circ@res@right} {0pt}} \pgfpathcurveto {\pgfpoint {\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/american and port/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} \pgfusepath{draw} } \pgfcircdeclarelogicport{nand}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nand port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\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/american nand port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\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/american nand port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \pgfsetlinewidth{2\pgflinewidth} \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}} \pgfpathcurveto {\pgfpoint{.0\pgf@circ@res@left}{\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{.5\pgf@circ@res@down}} {\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@step}{0pt}} \pgfpathcurveto {\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/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}} {\pgfpoint{.5\pgf@circ@res@step}{0pt}} {\pgfpoint{0pt}{.5\pgf@circ@res@step}} \pgfusepath{draw} } \pgfcircdeclarelogicport{nor}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american nor port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {(\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/american nor port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {(\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/american nor port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \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/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/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/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/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 {\pgfpoint{\pgf@circ@res@other-.5\pgf@circ@res@step}{0pt}} {\pgfpoint{.5\pgf@circ@res@step}{0pt}} {\pgfpoint{0pt}{.5\pgf@circ@res@step}} \pgfusepath{draw} } \pgfcircdeclarelogicport{or}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american or port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {(\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/american or port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {(\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/american or port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \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/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/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/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/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} } \pgfcircdeclarelogicport{xor}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xor port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {(\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/american xor port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {(\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/american xor port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \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/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/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/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/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/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/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/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} } \pgfcircdeclarelogicport{xnor}{ \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/american xnor port/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {(\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/american xnor port/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {(\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/american xnor port/port width}\pgf@circ@res@right} {0pt}} \pgfusepath{draw} \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/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/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/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/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/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/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/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}} \pgfpathellipse {\pgfpoint{\pgf@circ@res@other-.5\pgf@circ@res@step}{0pt}} {\pgfpoint{.5\pgf@circ@res@step}{0pt}} {\pgfpoint{0pt}{.5\pgf@circ@res@step}} \pgfusepath{draw} } \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 } \savedanchor\left{% \pgf@y=0pt } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{east}{ \left \pgf@x=-.8\pgf@x } \anchor{west}{ \left } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \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 } \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 } \anchor{east}{ \left \pgf@x=-.8\pgf@x } \anchor{west}{ \left } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \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} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \long\def\pgfcircdeclaretransistor#1#2#3{ \pgfdeclareshape{#1} { \anchor{center}{\pgfpointorigin} \savedanchor\northeast{% upper right \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 % } \savedanchor\left{%center left \pgf@y=0pt \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/width}\pgf@x } \anchor{text}{ \northeast \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}{ % south \northeast \pgf@y=-\pgf@y } \anchor{right}{ \northeast } \anchor{north}{ \northeast \pgf@circ@res@step=\pgf@y \left \pgf@y=\pgf@circ@res@step \pgf@x=.5\pgf@x } \anchor{west}{ \left } \anchor{east}{ \pgf@x=0pt \pgf@y=0pt } \anchor{south}{ \northeast \pgf@circ@res@step=\pgf@y \left \pgf@y=-\pgf@circ@res@step \pgf@x=.5\pgf@x } \anchor{south west}{ \northeast \pgf@circ@res@step=\pgf@y \left \pgf@y=-\pgf@circ@res@step } \anchor{north east}{ \northeast } \anchor{north west}{ \northeast \pgf@circ@res@step=\pgf@y \left \pgf@y=\pgf@circ@res@step } \anchor{south east}{ \northeast \pgf@y=-\pgf@y } #2 \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} % % \northeast \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 % } } } \long\def\pgfcircdeclaremos#1#2#3{ \pgfcircdeclaretransistor{#1}{ \anchor{G}{ \left } \anchor{gate}{ \left } \anchor{B}{ \left \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@x } \anchor{base}{ \left \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/tripoles/#1/base width}\pgf@x } #2 } {#3} } \pgfcircdeclaremos{nmos}{ \anchor{D}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \pgf@y=-\pgf@y } }{% \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}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/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/nmos/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@up}} \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} \pgfusepath{draw} \endpgfscope \ifpgf@circuit@mos@arrows \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \pgftransformlineattime{.6}{% \pgfpoint% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}% }{% \pgfpoint {\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/gate height}\pgf@circ@res@down}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \fi \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/nmos/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} } \pgfcircdeclaremos{pmos}{ \anchor{S}{ \northeast } \anchor{source}{ \northeast } \anchor{D}{ \northeast \pgf@y=-\pgf@y } \anchor{drain}{ \northeast \pgf@y=-\pgf@y } }{% \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}} \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} \ifpgf@circuit@mos@arrows \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgfresetnontranslationattimefalse \pgftransformlineattime{.4}{% \pgfpoint% {\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}% }{% \pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \fi \pgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base height}\pgf@circ@res@up}} \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 \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate height}\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/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} \pgfpathcircle{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pmos/gate width}\pgf@circ@res@left - \pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}} {\pgf@circ@res@up+\pgf@circ@res@down}}{\pgfkeysvalueof{/tikz/circuitikz/nodes width}*\pgfkeysvalueof{/tikz/circuitikz/bipoles/length}} \pgfusepath{draw,fill} } \pgfcircdeclaretransistor{pnp}{ \anchor{E}{ \northeast } \anchor{emitter}{ \northeast } \anchor{B}{ \left } \anchor{base}{ \left } \anchor{C}{ \northeast \pgf@y=-\pgf@y } \anchor{collector}{ \northeast \pgf@y=-\pgf@y } }{ \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}} \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 \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/base height}\pgf@circ@res@up}} \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 \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}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/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/pnp/gate height}\pgf@circ@res@up}% }{% \pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/gate height 2}\pgf@circ@res@up}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/pnp/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{npn}{ \anchor{C}{ \northeast } \anchor{collector}{ \northeast } \anchor{B}{ \left } \anchor{base}{ \left } \anchor{E}{ \northeast \pgf@y=-\pgf@y } \anchor{emitter}{ \northeast \pgf@y=-\pgf@y } }{% \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}} \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 \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/base height}\pgf@circ@res@up}} \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 \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}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/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/npn/gate width}\pgf@circ@res@left}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate height 2}\pgf@circ@res@down}% }{% \pgfpoint{\pgf@circ@res@right}% {\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/gate height}\pgf@circ@res@down}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/npn/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{pigbt}{ \anchor{E}{ \northeast } \anchor{emitter}{ \northeast } \anchor{B}{ \left } \anchor{base}{ \left } \anchor{C}{ \northeast \pgf@y=-\pgf@y } \anchor{collector}{ \northeast \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}{ \northeast } \anchor{collector}{ \northeast } \anchor{B}{ \left } \anchor{base}{ \left } \anchor{E}{ \northeast \pgf@y=-\pgf@y } \anchor{emitter}{ \northeast \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{B}{ \left \pgf@x=\pgf@circ@res@right } \anchor{base}{ \left \pgf@x=\pgf@circ@res@right } #2 } {#3} } \pgfcircdeclarefet{nfet}{ \anchor{D}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \pgf@y=-\pgf@y } \anchor{G}{ \left } \anchor{gate}{ \left } }{% \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}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \pgf@y=-\pgf@y } \anchor{G}{ \left } \anchor{gate}{ \left } }{% \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}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \pgf@y=-\pgf@y } \anchor{G}{ \northeast \pgf@circ@res@step=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@y \left \pgf@y=-\pgf@circ@res@step } \anchor{gate}{ \northeast \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\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}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \pgf@y=-\pgf@y } \anchor{G}{ \northeast \pgf@circ@res@step=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@y \left \pgf@y=-\pgf@circ@res@step } \anchor{gate}{ \northeast \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\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}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \pgf@y=-\pgf@y } \anchor{G}{ \northeast \pgf@circ@res@step=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@y \left \pgf@y=-\pgf@circ@res@step } \anchor{gate}{ \northeast \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\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}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \pgf@y=-\pgf@y } \anchor{G}{ \northeast \pgf@circ@res@step=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\pgf@y \left \pgf@y=-\pgf@circ@res@step } \anchor{gate}{ \northeast \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/nigfete/gate height}\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}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \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}{ \northeast } \anchor{source}{ \northeast } \anchor{D}{ \northeast \pgf@y=-\pgf@y } \anchor{drain}{ \northeast \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} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ISFET \pgfcircdeclarefet{isfet}{ \anchor{D}{ \northeast } \anchor{drain}{ \northeast } \anchor{S}{ \northeast \pgf@y=-\pgf@y } \anchor{source}{ \northeast \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/isfet/gate height}\pgf@circ@res@up}} % DRAIN \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@up}} \pgfusepath{draw} % GATE, DEPLETION TYPE \pgfscope %% added \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/base height}\pgf@circ@res@down}} \pgfsetlinewidth{2\pgflinewidth} %% added \pgfusepath{draw} %% added \endpgfscope %% added % BULK \pgfpathmoveto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/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/isfet/base width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/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/isfet/gate width}\pgf@circ@res@left} % {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate height}\pgf@circ@res@up}} %\pgfpathlineto{\pgfpoint % {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/gate width}\pgf@circ@res@left} % {\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/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/isfet/base width}\pgf@circ@res@left}% {\pgf@circ@res@up+\pgf@circ@res@down}% } \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}} \endpgfscope \pgfusepath{draw} % Wavy lines \pgfscope \pgfpathmoveto{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves x sep}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves y sep}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves x sep}\pgf@circ@res@up}{0cm}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves x sep}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/waves y sep}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathsine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfpathcosine{\pgfpoint{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave width}\pgf@circ@res@up}{-\pgfkeysvalueof{/tikz/circuitikz/tripoles/isfet/wave amp}\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope } %% 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} } \pgfcircdeclarebipole{ \anchor{out 1}{ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@y=0cm } \anchor{out 2}{ \ifpgf@circuit@bipole@reversed\southwest\else\northeast\fi \pgf@y=.8\pgf@y } }{\ctikzvalof{tripoles/toggleswitch/height 2}}{toggleswitch}{\ctikzvalof{tripoles/toggleswitch/height}}{\ctikzvalof{tripoles/toggleswitch/width}}{ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{.3\pgf@circ@res@left}{0pt}} \pgfusepath{draw} \pgfscope \pgfpathmoveto{\pgfpoint{.3\pgf@circ@res@left}{0pt}} \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{.5\pgf@circ@res@up}} \pgfusepath{draw} \endpgfscope \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@right}{0}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@right}{.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@right}{.15\pgf@circ@res@up}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetdash{{.08\pgf@circ@res@up}{.04\pgf@circ@res@up}{.7\pgf@circ@res@up}{.04\pgf@circ@res@up}{.8\pgf@circ@res@up}}{0cm} \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{.8\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@left}{.6\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0}{.2\pgf@circ@res@up}} \pgfusepath{draw} \pgfsetdash{}{0cm} } \pgfdeclareshape{op amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y } \anchor{north}{ \northwest } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \savedanchor\up{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x \pgf@circ@res@up = \pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpointlineattime{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/up pos}}{ \pgfpoint{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} {\pgfpoint{.7\pgf@circ@res@right}{0pt}} } \anchor{up}{ \up } \anchor{down}{ \up \pgf@y=-\pgf@y } \anchor{out}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \left } \anchor{east}{ \left \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 \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}]{\scriptsize\ $-$} \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}]{\scriptsize\ $+$} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}} \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}} \pgfusepath{draw} \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}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \endpgfscope } } %% 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{latex'} \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } %% Generic tunable \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{latex'} \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@down}} \pgfusepath{draw} \endpgfscope } \pgfdeclareshape{circulator} { \savedanchor\northwest{ \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/circulator/width}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/circulator/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{center}{ \pgfpointorigin } \anchor{left}{% \northwest \pgf@y=0pt } \anchor{1}{ \northwest \pgf@y=0pt } \anchor{2}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{3}{ \northwest \pgf@y=-\pgf@y \pgf@x=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \backgroundpath{ \pgfsetcolor{\pgfkeysvalueof{/tikz/circuitikz/color}} \pgf@circ@res@step=\ctikzvalof{tripoles/circulator/width}\pgf@circ@Rlen \pgfscope \pgfstartlinewidth=\pgflinewidth % draw outer circle \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step} \pgfusepath{draw} % inner arrow \pgfsetdash{}{0pt} % always draw solid line for inner symbol \pgfsetlinewidth{\pgfstartlinewidth} \pgfsetarrowsend{latex} \pgfpathmoveto{\pgfpoint{-0.25\pgf@circ@res@step}{0}} \pgfpatharc{180}{-90} {0.25\pgf@circ@res@step} \pgfpathlineto{\pgfpoint{-5pt}{-0.2\pgf@circ@res@step}} \pgfusepath{draw} \endpgfscope } } % Wilkinson divider \pgfdeclareshape{wilkinson}{ \anchor{center}{ \northwest \pgf@x=0pt \pgf@y=0pt } \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/wilkinson/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=.5\pgf@x \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/wilkinson/width}\pgf@x } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{in}{ \northwest \pgf@y=0pt } \anchor{out1}{ \northwest \pgf@x=-\pgf@x \pgf@y=-0.5\pgf@y } \anchor{out2}{ \northwest \pgf@x=-\pgf@x \pgf@y=0.5\pgf@y } \anchor{text}{ \northwest \advance \pgf@y by 0.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \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 \pgfstartlinewidth=\pgflinewidth % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % draw inner stuff \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0pt}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0pt}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetdash{}{0pt} % always draw solid line for inner symbol % draw inner resisitor - european or american style is recognised { \pgftransformshift{\pgfpoint{0.5\pgf@circ@res@right}{0pt}} \pgftransformrotate{90} % calculate size of resistor \ifpgf@circuit@europeanresistor \pgfmathparse{\pgf@circ@res@up / \pgf@circ@Rlen / \ctikzvalof{bipoles/generic/width} / 2} \pgftransformscale{\pgfmathresult} \pgfnode{genericshape}{center}{}{pgf@generic}{\pgfusepath{fill}} \else \pgfmathparse{\pgf@circ@res@up / \pgf@circ@Rlen / \ctikzvalof{bipoles/resistor/width} / 2} \pgftransformscale{\pgfmathresult} \pgfnode{resistorshape}{center}{}{pgf@resistor}{\pgfusepath{fill}} \fi } \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} } } %%%---------- close: pgfcirctripoles %%%%%%%%%%% Springe nach pgfcircquadpoles %%%---------- open: pgfcircquadpoles.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Quadripoles \long\def\pgfcircdeclarequadpole#1#2#3{ \pgfdeclareshape{#1} { \anchor{center}{ \northwest \pgf@x=0pt } \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=.5\pgf@x \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/width}\pgf@x } \anchor{A2}{ \northwest \pgf@y=-\pgf@y } \anchor{B1}{ \northwest \pgf@x=-\pgf@x } \anchor{A1}{ \northwest } \anchor{B2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{base}{ \northwest \pgf@x=0pt } #3 \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@Rlen=\pgfkeysvalueof{/tikz/circuitikz/bipoles/length} #2 } } } \def\pgf@circ@drawtransformerbasicanchor{ \pgfkeysvalueof{/tikz/circuitikz/quadpoles/trans/height} \anchor{AA2}{ \northwest \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=-\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{BB1}{ \northwest \pgf@x=-\pgf@x \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{AA1}{ \northwest \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{BB2}{ \northwest \pgf@x=-\pgf@x \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=-\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } } \def\pgf@circ@drawtransformerbasicbody{ \def\stretto{.4} \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgftransformlineattime{.5}{% \pgfpoint% {\stretto\pgf@circ@res@left}% {\pgf@circ@res@up}% }{% \pgfpoint {\stretto\pgf@circ@res@left}% {\pgf@circ@res@down}% } \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 \pgfallowupsidedownattimetrue \pgftransformlineattime{.5}{% \pgfpoint% {\stretto\pgf@circ@res@right}% {\pgf@circ@res@down}% }{% \pgfpoint {\stretto\pgf@circ@res@right}% {\pgf@circ@res@up}% } \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}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpointanchor{pgf@inductor1}{b}} \pgfpathmoveto{\pgfpointanchor{pgf@inductor1}{a}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpointanchor{pgf@inductor2}{a}} \pgfpathmoveto{\pgfpointanchor{pgf@inductor2}{b}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} } % contrib Kristofer M. Monisit \pgfdeclareshape{fd op amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y } \anchor{north}{ \northwest } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \savedanchor\up{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x \pgf@circ@res@up = \pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpointlineattime{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/up pos}}{ \pgfpoint{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} {\pgfpoint{.7\pgf@circ@res@right}{0pt}} } \anchor{up}{ \up } \anchor{down}{ \up \pgf@y=-\pgf@y } \anchor{out +}{ \northwest \pgf@y=.5\pgf@y \pgf@x=-.7\pgf@x } \anchor{out -}{ \northwest \pgf@y=-.5\pgf@y \pgf@x=-.7\pgf@x } \anchor{west}{ \left } \anchor{east}{ \left \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 % Negative input terminal \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}]{\scriptsize\ $-$} % Positive input terminal \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}]{\scriptsize\ $+$} % Negative output terminal \pgfpathmoveto{\pgfpoint {0.7\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{0.3\pgf@circ@res@left}{.3\pgf@circ@res@down}]{\scriptsize\ $-$} % Positive output terminal \pgfpathmoveto{\pgfpoint {0.7\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{0.3\pgf@circ@res@left}{.3\pgf@circ@res@up}]{\scriptsize\ $+$} % Draw them all! \pgfusepath{draw} % Triangle \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}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \endpgfscope } } \pgfcircdeclarequadpole{transformer}{ \pgf@circ@drawtransformerbasicbody }{\pgf@circ@drawtransformerbasicanchor} \pgfcircdeclarequadpole{transformer core}{ \pgf@circ@drawtransformerbasicbody \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} }{\pgf@circ@drawtransformerbasicanchor} \pgfcircdeclarequadpole{gyrator}{ \def\stretto{.4} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@left}{.7*\stretto\pgf@circ@res@down}} \pgfpatharc{90}{270}{.7*\stretto\pgf@circ@res@down} \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@right}{.7*\stretto\pgf@circ@res@up}} \pgfpatharc{-90}{90}{.7*\stretto\pgf@circ@res@down} \pgfusepath{draw} }{} %% coupler % defines a general outer box for couplers % TikZ usage: % \draw (0,0) node[coupler](coup){\SI{-3}{dB}} % (coup.port1) to[short,-o] ++(-1,0) % \long\def\pgfcircdeclarecoupler#1#2{ \pgfdeclareshape{#1}{ \anchor{center}{ \northwest \pgf@x=0pt \pgf@y=0pt } \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/coupler/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=.5\pgf@x \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/quadpoles/coupler/width}\pgf@x } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{port1}{ \northwest \pgf@y=-0.5\pgf@y } \anchor{port2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-0.5\pgf@y } \anchor{port3}{ \northwest \pgf@x=-\pgf@x \pgf@y=0.5\pgf@y } \anchor{port4}{ \northwest \pgf@y=0.5\pgf@y } \anchor{1}{ \northwest \pgf@y=-0.5\pgf@y } \anchor{2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-0.5\pgf@y } \anchor{3}{ \northwest \pgf@x=-\pgf@x \pgf@y=0.5\pgf@y } \anchor{4}{ \northwest \pgf@y=0.5\pgf@y } \anchor{text}{ \northwest \advance \pgf@y by 0.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \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 \pgfstartlinewidth=\pgflinewidth % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % draw inner stuff #2 } } } % straight coupler \pgfcircdeclarecoupler{coupler}{ \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfsetarrows{latex-latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.4\pgf@circ@res@down}} \pgfsetarrows{latex-latex} \pgfusepath{draw} } % "bended" coupler \pgfcircdeclarecoupler{coupler2}{ \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}} \pgfpatharc{0}{90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}} \pgfpatharc{0}{-90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}} \pgfpatharc{180}{90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}} \pgfpatharc{-180}{-90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} } %%%---------- close: pgfcircquadpoles %%%%%%%%%%% Springe nach pgfcircnpoles %%%---------- open: pgfcircnpoles.tex % % 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% N-poles \pgfkeys{/tikz/circuitikz,lab/.code={ }} \long\def\pgfcircdeclarenpole#1#2#3{ \pgfdeclareshape{#1} { \anchor{center}{ \northwest \pgf@x=0pt } \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=.5\pgf@x \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/quadpoles/#1/width}\pgf@x } \anchor{A2}{ \northwest \pgf@y=-\pgf@y } \anchor{B1}{ \northwest \pgf@x=-\pgf@x } \anchor{A1}{ \northwest } \anchor{B2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{base}{ \northwest \pgf@x=0pt } #3 \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@Rlen=\pgfkeysvalueof{/tikz/circuitikz/bipoles/length} #2 } } } \def\pgf@circ@drawtransformerbasicanchor{ \pgfkeysvalueof{/tikz/circuitikz/quadpoles/trans/height} \anchor{AA2}{ \northwest \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=-\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{BB1}{ \northwest \pgf@x=-\pgf@x \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{AA1}{ \northwest \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } \anchor{BB2}{ \northwest \pgf@x=-\pgf@x \pgf@x=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/width1}\pgf@x \pgf@x=.7\pgf@x \pgf@y=-\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/transformer/height1}\pgf@y } } \def\pgf@circ@drawtransformerbasicbody{ \def\stretto{.4} \pgfscope \pgfslopedattimetrue \pgfallowupsidedownattimetrue \pgftransformlineattime{.5}{% \pgfpoint% {\stretto\pgf@circ@res@left}% {\pgf@circ@res@up}% }{% \pgfpoint {\stretto\pgf@circ@res@left}% {\pgf@circ@res@down}% } \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 \pgfallowupsidedownattimetrue \pgftransformlineattime{.5}{% \pgfpoint% {\stretto\pgf@circ@res@right}% {\pgf@circ@res@down}% }{% \pgfpoint {\stretto\pgf@circ@res@right}% {\pgf@circ@res@up}% } \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}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpointanchor{pgf@inductor1}{b}} \pgfpathmoveto{\pgfpointanchor{pgf@inductor1}{a}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpointanchor{pgf@inductor2}{a}} \pgfpathmoveto{\pgfpointanchor{pgf@inductor2}{b}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} } % contrib Kristofer M. Monisit \pgfdeclareshape{fd op amp} { \anchor{center}{\pgfpointorigin} \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{south}{ \northwest \pgf@y=-\pgf@y } \anchor{north}{ \northwest } \savedanchor\left{% \pgf@y=0pt } \savedanchor\inOne{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x } \anchor{-}{ \inOne } \anchor{+}{ \inOne \pgf@y=-\pgf@y } \savedanchor\up{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/width}\pgf@x \pgf@x=.5\pgf@x \pgf@circ@res@up = \pgf@y \pgf@circ@res@right = -\pgf@x \pgf@circ@res@left = \pgf@x \pgfpointlineattime{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/up pos}}{ \pgfpoint{ \pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgf@circ@res@up}} {\pgfpoint{.7\pgf@circ@res@right}{0pt}} } \anchor{up}{ \up } \anchor{down}{ \up \pgf@y=-\pgf@y } \anchor{out +}{ \northwest \pgf@y=.5\pgf@y \pgf@x=-.7\pgf@x } \anchor{out -}{ \northwest \pgf@y=-.5\pgf@y \pgf@x=-.7\pgf@x } \anchor{west}{ \left } \anchor{east}{ \left \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 % Negative input terminal \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}]{\scriptsize\ $-$} % Positive input terminal \pgfpathmoveto{\pgfpoint {\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}\pgf@circ@res@left}{\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}]{\scriptsize\ $+$} % Negative output terminal \pgfpathmoveto{\pgfpoint {0.7\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@down}} \pgftext[left, at=\pgfpoint{0.3\pgf@circ@res@left}{.3\pgf@circ@res@down}]{\scriptsize\ $-$} % Positive output terminal \pgfpathmoveto{\pgfpoint {0.7\pgf@circ@res@right} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/port width}} {\pgfkeysvalueof{/tikz/circuitikz/tripoles/op amp/input height}\pgf@circ@res@up}} \pgftext[left, at=\pgfpoint{0.3\pgf@circ@res@left}{.3\pgf@circ@res@up}]{\scriptsize\ $+$} % Draw them all! \pgfusepath{draw} % Triangle \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}{0pt}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}} \pgfusepath{draw} \endpgfscope } } \pgfcircdeclarequadpole{transformer}{ \pgf@circ@drawtransformerbasicbody }{\pgf@circ@drawtransformerbasicanchor} \pgfcircdeclarequadpole{transformer core}{ \pgf@circ@drawtransformerbasicbody \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} }{\pgf@circ@drawtransformerbasicanchor} \pgfcircdeclarequadpole{gyrator}{ \def\stretto{.4} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} \pgfsetlinewidth{2\pgflinewidth} \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@left}{.7*\stretto\pgf@circ@res@down}} \pgfpatharc{90}{270}{.7*\stretto\pgf@circ@res@down} \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@right}{.7*\stretto\pgf@circ@res@up}} \pgfpatharc{-90}{90}{.7*\stretto\pgf@circ@res@down} \pgfusepath{draw} }{} %% coupler % defines a general outer box for couplers % TikZ usage: % \draw (0,0) node[coupler](coup){\SI{-3}{dB}} % (coup.port1) to[short,-o] ++(-1,0) % \long\def\pgfcircdeclarecoupler#1#2{ \pgfdeclareshape{#1}{ \anchor{center}{ \northwest \pgf@x=0pt \pgf@y=0pt } \savedanchor\northwest{% \pgf@y= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@y=\pgfkeysvalueof{/tikz/circuitikz/quadpoles/coupler/height}\pgf@y \pgf@y=.5\pgf@y \pgf@x= \pgfkeysvalueof{/tikz/circuitikz/bipoles/length} \pgf@x=.5\pgf@x \pgf@x=-\pgfkeysvalueof{/tikz/circuitikz/quadpoles/coupler/width}\pgf@x } \anchor{north}{ \northwest \pgf@x=0pt } \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y } \anchor{west}{ \northwest \pgf@y=0pt } \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x } \anchor{south west}{ \northwest \pgf@y=-\pgf@y } \anchor{north east}{ \northwest \pgf@x=-\pgf@x } \anchor{north west}{ \northwest } \anchor{south east}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y } \anchor{port1}{ \northwest \pgf@y=-0.5\pgf@y } \anchor{port2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-0.5\pgf@y } \anchor{port3}{ \northwest \pgf@x=-\pgf@x \pgf@y=0.5\pgf@y } \anchor{port4}{ \northwest \pgf@y=0.5\pgf@y } \anchor{1}{ \northwest \pgf@y=-0.5\pgf@y } \anchor{2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-0.5\pgf@y } \anchor{3}{ \northwest \pgf@x=-\pgf@x \pgf@y=0.5\pgf@y } \anchor{4}{ \northwest \pgf@y=0.5\pgf@y } \anchor{text}{ \northwest \advance \pgf@y by 0.5\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } \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 \pgfstartlinewidth=\pgflinewidth % draw outer box \pgfsetlinewidth{\pgfkeysvalueof{/tikz/circuitikz/bipoles/thickness}\pgfstartlinewidth} \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}} \pgfusepath{draw} % draw inner stuff #2 } } } % straight coupler \pgfcircdeclarecoupler{coupler}{ \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.4\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.4\pgf@circ@res@up}} \pgfsetarrows{latex-latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.7\pgf@circ@res@left}{0.4\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@right}{0.4\pgf@circ@res@down}} \pgfsetarrows{latex-latex} \pgfusepath{draw} } % "bended" coupler \pgfcircdeclarecoupler{coupler2}{ \pgfsetlinewidth{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@up}} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0.5\pgf@circ@res@down}} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}} \pgfpatharc{0}{90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}} \pgfpatharc{0}{-90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}} \pgfpatharc{180}{90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}} \pgfpatharc{-180}{-90} {0.4\pgf@circ@res@up} \pgfsetarrowsend{latex} \pgfusepath{draw} } %%%---------- close: pgfcircnpoles %%%%%%%%%%% Springe nach pgfcirclabel %%%---------- open: pgfcirclabel.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Bipole label positioning %% Options \ctikzset{label/.style = { l=#1 } } \ctikzset{l/.code = { \pgfkeys{/tikz/circuitikz/bipole/label/name=#1} \ctikzsetvalof{bipole/label/unit}{} \ifpgf@circ@siunitx \pgf@circ@handleSI{#1} \ifpgf@circ@siunitx@res \edef\pgf@temp{\pgf@circ@handleSI@val} \pgfkeyslet{/tikz/circuitikz/bipole/label/name}{\pgf@temp} \edef\pgf@temp{\pgf@circ@handleSI@unit} \pgfkeyslet{/tikz/circuitikz/bipole/label/unit}{\pgf@temp} \else \fi \else \fi }} \ctikzset{label above/.code = { l=#1, \circuitikzbasekey/bipole/label/position=90 } } \ctikzset{l^/.style = { l=#1, \circuitikzbasekey/bipole/label/position=90 } } \ctikzset{label below/.code = { l=#1, \circuitikzbasekey/bipole/label/position=-90 } } \ctikzset{l_/.style = { l=#1, \circuitikzbasekey/bipole/label/position=-90 } } \def\pgf@circ@drawlabel{ \pgfextra{ \edef\pgf@temp{\ctikzvalof{label/align}} \def\pgf@circ@temp{straight} } \ifx\pgf@temp\pgf@circ@temp %straight \pgf@circ@drawreglabel \else \pgfextra{\def\pgf@circ@temp{rotate}} \ifx\pgf@temp\pgf@circ@temp %rotate \pgf@circ@drawrotlabel \else % smart \pgf@circ@drawsmartlabel \fi \fi } \def\pgf@circ@drawsmartlabel{ \pgfextra{ %\pgfmathadd{\pgf@circ@direction}{360} \pgfmathmod{\pgf@circ@direction}{90} \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} } \ifnum \pgfcircmathresult > 20 \ifnum \pgfcircmathresult < 70 % NON quasi retto \pgf@circ@drawrotlabel \else \pgf@circ@drawreglabel \fi \else \pgf@circ@drawreglabel \fi } %% Output routing %% #1 - node name \def\pgf@circ@drawrotlabel{ \pgfextra{ % calcolo rotazione label \def\pgf@circ@temp{\ctikzvalof{bipole/label/position}} %%% àncora label \edef\pgfcirclabrot{\pgf@circ@direction} % primo e quarto quadrante \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil} \ifnum \pgfcircmathresult > 90 \ifnum \pgfcircmathresult < 270 % terzo e secondo \pgfmathsubtract{\pgf@circ@direction}{180} \edef\pgfcirclabrot{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \pgfmathadd{\pgf@circ@temp}{180} %%% \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} %%% \fi\fi \ifnum \ctikzvalof{mirror value} = -1 \pgfmathadd{\pgf@circ@temp}{180} \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \fi } coordinate (labelcoor) at ($(\ctikzvalof{bipole/name})!2!(\ctikzvalof{bipole/name}.north)$) (labelcoor) node [rotate=\pgfcirclabrot] {\pgf@circ@finallabel{}} % c'era un transform shape } \def\pgf@circ@drawreglabel{ \pgfextra{ \pgfmathsubtract{\pgf@circ@direction}{90} \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \edef\pgf@circ@temp{\ctikzvalof{bipole/label/position}} %%% àncora label \ifnum \pgf@circ@temp < 0 \pgfmathadd{\pgf@circ@labanc}{180} \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \fi \ifnum \ctikzvalof{mirror value} = -1 \pgfmathadd{\pgf@circ@labanc}{180} \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil} \fi } node [ anchor = \pgf@circ@labanc] at (\ctikzvalof{bipole/name}.\pgf@circ@temp) {\pgf@circ@finallabel{}} } \ctikzset{text/.style = { t=#1 } } \ctikzset{t/.code = { \ctikzsetvalof{bipoles/twoport/text}{#1} }} %%%---------- close: pgfcirclabel %%%%%%%%%%% Springe nach pgfcircvoltage %%%---------- open: pgfcircvoltage.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Voltage management \ctikzset{v^>/.style = { v = #1, \circuitikzbasekey/bipole/voltage/direction = forward, \circuitikzbasekey/bipole/voltage/position = above } } \ctikzset{v^/.style = { v = #1, \circuitikzbasekey/bipole/voltage/direction = forward, \circuitikzbasekey/bipole/voltage/position = below } } \ctikzset{v_/.style = {v = #1, \circuitikzbasekey/bipole/voltage/direction = forward} } \ctikzset{v4 \ifnum\pgfcircmathresult <86 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{north west} \else \def\pgf@circ@bipole@voltage@label@anchor{south east} \fi \fi\fi \ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{west} \else \def\pgf@circ@bipole@voltage@label@anchor{east} \fi \fi\fi \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{south west} \else \def\pgf@circ@bipole@voltage@label@anchor{north east} \fi \fi\fi \ifnum\pgfcircmathresult >175 \ifnum\pgfcircmathresult <185 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{south} \else\def\pgf@circ@bipole@voltage@label@anchor{north} \fi \fi\fi \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{south east} \else\def\pgf@circ@bipole@voltage@label@anchor{north west} \fi \fi\fi \ifnum\pgfcircmathresult >265 \ifnum\pgfcircmathresult <275 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{east} \else \def\pgf@circ@bipole@voltage@label@anchor{west} \fi \fi\fi \ifnum\pgfcircmathresult >284 \ifnum\pgfcircmathresult <356 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{north east} \else\def\pgf@circ@bipole@voltage@label@anchor{south west} \fi \fi\fi \ifnum\pgfcircmathresult >-1 \ifnum\pgfcircmathresult <5 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{north} \else\def\pgf@circ@bipole@voltage@label@anchor{south} \fi \fi\fi \ifnum\pgfcircmathresult >355 \ifnum\pgfcircmathresult <361 \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@anchor{north} \else\def\pgf@circ@bipole@voltage@label@anchor{south} \fi \fi\fi \ifpgf@circuit@bipole@voltage@below \def\pgf@circ@bipole@voltage@label@where{-90} \else \def\pgf@circ@bipole@voltage@label@where{90} \fi \edef\pgf@temp{/tikz/circuitikz/bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance} \pgfkeysifdefined{\pgf@temp} { \edef\eudist{\ctikzvalof{bipoles/\pgfkeysvalueof{/tikz/circuitikz/bipole/kind}/voltage/european label distance}} } { \edef\eudist{\ctikzvalof{voltage/european label distance}} } } \ifpgf@circuit@bipole@isvoltage \pgf@circ@drawvoltagegenerator \else \pgf@circ@drawvoltagegeneric \fi (\ctikzvalof{bipole/name}.\pgf@circ@bipole@voltage@label@where) coordinate (Vlab) at ($(\ctikzvalof{bipole/name}.center) ! \ifpgf@circuit@europeanvoltage\eudist\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/} } } % 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 %%%---------- close: pgfcircvoltage %%%%%%%%%%% Springe nach pgfcirccurrent %%%---------- open: pgfcirccurrent.tex % Copyright 2007-2009 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Current handling %% Options \ctikzset{i^>/.style = { i = #1, \circuitikzbasekey/bipole/current/direction = forward, \circuitikzbasekey/bipole/current/x position = after, \circuitikzbasekey/bipole/current/y position = above } } \ctikzset{i_>/.style = { i = #1, \circuitikzbasekey/bipole/current/direction = forward, \circuitikzbasekey/bipole/current/x position = after, \circuitikzbasekey/bipole/current/y position = below } } \ctikzset{i>^/.style = { i = #1, \circuitikzbasekey/bipole/current/direction = forward, \circuitikzbasekey/bipole/current/x position = before, \circuitikzbasekey/bipole/current/y position = above } } \ctikzset{i>_/.style = { i = #1, \circuitikzbasekey/bipole/current/direction = forward, \circuitikzbasekey/bipole/current/x position = before, \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{ \ifpgf@circuit@bipole@current@before \ifpgf@circuit@bipole@current@backward { (\ctikzvalof{bipole/name}.left) -- node [currarrow, pos=\ctikzvalof{current/distance}, sloped, allow upside down] (Iarrow) {} (\tikztostart) } \else { (\tikztostart) -- node [currarrow, pos=\ctikzvalof{current/distance}, sloped, allow upside down] (Iarrow) {} (\ctikzvalof{bipole/name}.left) } \fi \else \ifpgf@circuit@bipole@current@backward { (\tikztotarget) -- node [currarrow, pos=\ctikzvalof{current/distance}, sloped, allow upside down] (Iarrow) {} (\ctikzvalof{bipole/name}.right) } \else { (\ctikzvalof{bipole/name}.right) -- node [currarrow, pos=\ctikzvalof{current/distance}, sloped, allow upside down] (Iarrow) {} (\tikztotarget) } \fi \fi } %% Output routine %% #1 - node name \def\pgf@circ@drawcurrent{ \pgfextra{ \edef\pgf@circ@ffffff{\pgf@circ@direction} \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@ffffff\pgf@nil} \ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{north west} \else \def\pgf@circ@dir{south east} \fi \fi\fi \ifnum\pgfcircmathresult >85 \ifnum\pgfcircmathresult <95 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{west} \else \def\pgf@circ@dir{east} \fi \fi\fi \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{south west}\else \def\pgf@circ@dir{north east} \fi \fi\fi \ifnum\pgfcircmathresult >175 \ifnum\pgfcircmathresult <185 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{south}\else\def\pgf@circ@dir{north} \fi \fi\fi \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{south east}\else\def\pgf@circ@dir{north west} \fi \fi\fi \ifnum\pgfcircmathresult >265 \ifnum\pgfcircmathresult <275 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{east}\else \def\pgf@circ@dir{west} \fi \fi\fi \ifnum\pgfcircmathresult >284 \ifnum\pgfcircmathresult <356 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{north east}\else\def\pgf@circ@dir{south west} \fi \fi\fi \ifnum\pgfcircmathresult <5 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south} \fi \fi \ifnum\pgfcircmathresult >355 \ifpgf@circuit@bipole@current@below \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south} \fi \fi \ifpgf@circuit@bipole@current@below \def\pgf@circ@bipole@current@label@where{-90} \else \def\pgf@circ@bipole@current@label@where{+90} \fi } \pgfextra{ \def\pgf@temp{short} \edef\pgf@circ@temp{\ctikzvalof{bipole/kind}} } \ifx\pgf@circ@temp\pgf@temp % caso di corrente (centrata) su un corto \ifpgf@circuit@bipole@current@backward { (\tikztotarget) -- node [currarrow, pos=\ctikzvalof{current/distance}, sloped, allow upside down] (Iarrow) {} (\tikztostart) } \else { (\tikztostart) -- node [currarrow, pos=\ctikzvalof{current/distance}, sloped, allow upside down] (Iarrow) {} (\tikztotarget) } \fi \else % altri bipoli - e quindi tra nodo e target \ifpgf@circuit@bipole@iscurrent \ifpgf@circuit@europeancurrent \pgf@circ@drawnormalcurrent \else \fi \else \pgf@circ@drawnormalcurrent \fi \fi \ifpgf@circuit@bipole@iscurrent node [anchor=\pgf@circ@dir] at (\ctikzvalof{bipole/name}.\pgf@circ@bipole@current@label@where) { \pgf@circ@finallabel{current/} } \else (Iarrow.\pgf@circ@bipole@current@label@where) node [anchor=\pgf@circ@dir] { \pgf@circ@finallabel{current/} } \fi } %%%---------- close: pgfcirccurrent %%%%%%%%%%% Springe nach pgfcircinputarrows %%%---------- open: pgfcircinputarrows.tex % Copyright 2013 by Stefan Erhardt % % 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 file doc/LICENSE for more details. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Show input arrows for selected parts \ctikzset{>/.style = { \circuitikzbasekey/inputarrow = true } } %%%---------- close: pgfcircinputarrows %%%---------- close: circuitikz.code \ExecuteOptions{europeancurrents,europeanvoltages,americanports,americanresistors,cuteinductors,europeangfsurgearrester,nosiunitx,noarrowmos,smartlabels,nocompatibility} \ProcessOptions\relax \ifpgf@circ@siunitx \RequirePackage{xstring}[2009/03/13] %\expandafter\let\csname angstrom\endcsname\relax \RequirePackage{siunitx} \fi %%%%%%%%%%% Springe nach circuitikz1.code %%%---------- open: circuitikz1.code.tex %%%%%%%%%%%% %% 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/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} } ($(\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@thermistor@path#1{\pgf@circ@bipole@path{thermistor}{#1}} \def\pgf@circ@thermistorptc@path#1{\pgf@circ@bipole@path{thermistorptc}{#1}} \def\pgf@circ@thermistorntc@path#1{\pgf@circ@bipole@path{thermistorntc}{#1}} \def\pgf@circ@varistor@path#1{\pgf@circ@bipole@path{varistor}{#1}} \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@battery1@path#1{\pgf@circ@bipole@path{battery1}{#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@vsourcesquare@path#1{\pgf@circ@bipole@path{vsourcesquare}{#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@pushbutton@path#1{\pgf@circ@bipole@path{pushbutton}{#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@photoresistor@path#1{\pgf@circ@bipole@path{photoresistor}{#1}} \def\pgf@circ@thyristor@path#1{\pgf@circ@bipole@path{thyristor}{#1}} \def\pgf@circ@toggleswitch@path#1{\pgf@circ@bipole@path{toggleswitch}{#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}} \def\pgf@circ@tline@path#1{\pgf@circ@bipole@path{tline}{#1}} \def\pgf@circ@squid@path#1{\pgf@circ@bipole@path{squid}{#1}} \def\pgf@circ@barrier@path#1{\pgf@circ@bipole@path{barrier}{#1}} \def\pgf@circ@thermocouple@path#1{\pgf@circ@bipole@path{thermocouple}{#1}} \def\pgf@circ@fuse@path#1{\pgf@circ@bipole@path{fuse}{#1}} \def\pgf@circ@afuse@path#1{\pgf@circ@bipole@path{afuse}{#1}} \def\pgf@circ@twoport@path#1{\pgf@circ@bipole@path{twoport}{#1}} \def\pgf@circ@vco@path#1{\pgf@circ@bipole@path{vco}{#1}} \def\pgf@circ@bandpass@path#1{\pgf@circ@bipole@path{bandpass}{#1}} \def\pgf@circ@highpass@path#1{\pgf@circ@bipole@path{highpass}{#1}} \def\pgf@circ@lowpass@path#1{\pgf@circ@bipole@path{lowpass}{#1}} \def\pgf@circ@adc@path#1{\pgf@circ@bipole@path{adc}{#1}} \def\pgf@circ@dac@path#1{\pgf@circ@bipole@path{dac}{#1}} \def\pgf@circ@dsp@path#1{\pgf@circ@bipole@path{dsp}{#1}} \def\pgf@circ@fft@path#1{\pgf@circ@bipole@path{fft}{#1}} \def\pgf@circ@amp@path#1{\pgf@circ@bipole@path{amp}{#1}} \def\pgf@circ@vamp@path#1{\pgf@circ@bipole@path{vamp}{#1}} \def\pgf@circ@piattenuator@path#1{\pgf@circ@bipole@path{piattenuator}{#1}} \def\pgf@circ@vpiattenuator@path#1{\pgf@circ@bipole@path{vpiattenuator}{#1}} \def\pgf@circ@tattenuator@path#1{\pgf@circ@bipole@path{tattenuator}{#1}} \def\pgf@circ@vtattenuator@path#1{\pgf@circ@bipole@path{vtattenuator}{#1}} \def\pgf@circ@phaseshifter@path#1{\pgf@circ@bipole@path{phaseshifter}{#1}} \def\pgf@circ@vphaseshifter@path#1{\pgf@circ@bipole@path{vphaseshifter}{#1}} \def\pgf@circ@detector@path#1{\pgf@circ@bipole@path{detector}{#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{varistor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@varistor@path, l=#1}} \tikzset{photoresistor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@photoresistor@path, l=#1}} \tikzset{thermistor/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thermistor@path, l=#1}} \tikzset{thermistor ptc/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thermistorptc@path, l=#1}} \tikzset{thermistor ntc/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thermistorntc@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{battery1/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@battery1@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{tline/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tline@path, l=#1}} \tikzset{transmission line/.style = {tline = #1}} \tikzset{TL/.style = {tline = #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{square voltage source/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vsourcesquare@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{squid/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@squid@path}} \tikzset{barrier/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@barrier@path}} \tikzset{thermocouple/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@thermocouple@path}} \tikzset{fuse/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fuse@path}} \tikzset{asymmetric fuse/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@afuse@path}} \tikzset{twoport/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@twoport@path}} \tikzset{vco/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vco@path}} \tikzset{bandpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@bandpass@path}} \tikzset{highpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@highpass@path}} \tikzset{lowpass/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@lowpass@path}} \tikzset{adc/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@adc@path}} \tikzset{dac/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@dac@path}} \tikzset{dsp/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@dsp@path}} \tikzset{fft/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@fft@path}} \tikzset{amp/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@amp@path}} \tikzset{vamp/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vamp@path}} \tikzset{piattenuator/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@piattenuator@path}} \tikzset{vpiattenuator/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vpiattenuator@path}} \tikzset{tattenuator/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@tattenuator@path}} \tikzset{vtattenuator/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vtattenuator@path}} \tikzset{phaseshifter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@phaseshifter@path}} \tikzset{vphaseshifter/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@vphaseshifter@path}} \tikzset{detector/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@detector@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{push button/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@pushbutton@path, l=#1}} \tikzset{toggle switch/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@toggleswitch@path}} \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{vsourcesquare/.style = {square 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{phR/.style= {photoresistor = #1}} \tikzset{thR/.style= {thermistor = #1}} \tikzset{thRp/.style= {thermistor ptc= #1}} \tikzset{thRn/.style= {thermistor ntc= #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{sqV/.style = {square 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}} \tikzset{afuse/.style = {asymmetric fuse=#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} } ($(\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} %%%---------- close: circuitikz1.code \newenvironment{circuitikz}{\begin{tikzpicture}}{\end{tikzpicture}} \endinput