summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname2581
-rw-r--r--FILES.byname.gzbin2414467 -> 2414801 bytes
-rw-r--r--FILES.last07days1963
-rw-r--r--fonts/etbb/README9
-rw-r--r--fonts/etbb/afm/ETbb-Bold.afm28
-rw-r--r--fonts/etbb/afm/ETbb-BoldItalic.afm28
-rw-r--r--fonts/etbb/afm/ETbb-Italic.afm28
-rw-r--r--fonts/etbb/afm/ETbb-Regular.afm59
-rw-r--r--fonts/etbb/doc/ETbb-doc.pdfbin270990 -> 350901 bytes
-rw-r--r--fonts/etbb/doc/ETbb-doc.tex53
-rw-r--r--fonts/etbb/doc/LICENSE2
-rw-r--r--fonts/etbb/enc/etbb1_3ccbvp.enc (renamed from fonts/etbb/enc/etbb_nvr6ig.enc)10
-rw-r--r--fonts/etbb/enc/etbb1_3ggaku.enc (renamed from fonts/etbb/enc/etbb1_6b4rhp.enc)18
-rw-r--r--fonts/etbb/enc/etbb1_6bhqsy.enc (renamed from fonts/etbb/enc/etbb_n6yk3i.enc)18
-rw-r--r--fonts/etbb/enc/etbb1_6dkfmm.enc (renamed from fonts/etbb/enc/etbb1_gcyiic.enc)18
-rw-r--r--fonts/etbb/enc/etbb1_d63baf.enc (renamed from fonts/etbb/enc/etbb_ue3xcj.enc)22
-rw-r--r--fonts/etbb/enc/etbb1_dpvwoq.enc (renamed from fonts/etbb/enc/etbb_6bb767.enc)22
-rw-r--r--fonts/etbb/enc/etbb1_eqc2ac.enc (renamed from fonts/etbb/enc/etbb_ujerr7.enc)10
-rw-r--r--fonts/etbb/enc/etbb1_frcze6.enc (renamed from fonts/etbb/enc/etbb_vbmlbb.enc)22
-rw-r--r--fonts/etbb/enc/etbb1_hah5or.enc (renamed from fonts/etbb/enc/etbb_55s5uq.enc)10
-rw-r--r--fonts/etbb/enc/etbb1_mfrons.enc (renamed from fonts/etbb/enc/etbb1_cp6bsz.enc)22
-rw-r--r--fonts/etbb/enc/etbb1_mgm6re.enc (renamed from fonts/etbb/enc/etbb_gojfsq.enc)10
-rw-r--r--fonts/etbb/enc/etbb1_pvrda3.enc (renamed from fonts/etbb/enc/etbb1_hbqmiu.enc)10
-rw-r--r--fonts/etbb/enc/etbb1_rluk7r.enc63
-rw-r--r--fonts/etbb/enc/etbb1_sb7odk.enc (renamed from fonts/etbb/enc/etbb1_u2xzqd.enc)18
-rw-r--r--fonts/etbb/enc/etbb1_vtabip.enc (renamed from fonts/etbb/enc/etbb1_4h6gms.enc)10
-rw-r--r--fonts/etbb/enc/etbb1_xaqh3v.enc (renamed from fonts/etbb/enc/etbb1_ifuncr.enc)10
-rw-r--r--fonts/etbb/enc/etbb1_yziesh.enc (renamed from fonts/etbb/enc/etbb_frt5zk.enc)10
-rw-r--r--fonts/etbb/enc/etbb_242knm.enc2
-rw-r--r--fonts/etbb/enc/etbb_2jmcdk.enc (renamed from fonts/etbb/enc/etbb_dv2xfw.enc)8
-rw-r--r--fonts/etbb/enc/etbb_2ynk4h.enc (renamed from fonts/etbb/enc/etbb_no4mhs.enc)12
-rw-r--r--fonts/etbb/enc/etbb_33mftd.enc2
-rw-r--r--fonts/etbb/enc/etbb_3ccbvp.enc (renamed from fonts/etbb/enc/etbb1_nvr6ig.enc)10
-rw-r--r--fonts/etbb/enc/etbb_3ggaku.enc (renamed from fonts/etbb/enc/etbb_6b4rhp.enc)18
-rw-r--r--fonts/etbb/enc/etbb_3obh62.enc (renamed from fonts/etbb/enc/etbb_pijcl4.enc)8
-rw-r--r--fonts/etbb/enc/etbb_3pymqv.enc (renamed from fonts/etbb/enc/etbb_p4wmli.enc)8
-rw-r--r--fonts/etbb/enc/etbb_3ygfa2.enc (renamed from fonts/etbb/enc/etbb_upf3od.enc)12
-rw-r--r--fonts/etbb/enc/etbb_42bwpg.enc (renamed from fonts/etbb/enc/etbb_ziol45.enc)12
-rw-r--r--fonts/etbb/enc/etbb_4hpi45.enc2
-rw-r--r--fonts/etbb/enc/etbb_4o3pf4.enc (renamed from fonts/etbb/enc/etbb_dz2nen.enc)10
-rw-r--r--fonts/etbb/enc/etbb_4sxvu4.enc2
-rw-r--r--fonts/etbb/enc/etbb_4xv7ax.enc (renamed from fonts/etbb/enc/etbb_rt4kro.enc)8
-rw-r--r--fonts/etbb/enc/etbb_5drz2o.enc (renamed from fonts/etbb/enc/etbb_3li7dq.enc)8
-rw-r--r--fonts/etbb/enc/etbb_5hqhd4.enc68
-rw-r--r--fonts/etbb/enc/etbb_5iollt.enc2
-rw-r--r--fonts/etbb/enc/etbb_5ll7zh.enc68
-rw-r--r--fonts/etbb/enc/etbb_5um4so.enc (renamed from fonts/etbb/enc/etbb_nfh2ow.enc)8
-rw-r--r--fonts/etbb/enc/etbb_65swoa.enc4
-rw-r--r--fonts/etbb/enc/etbb_6bhqsy.enc (renamed from fonts/etbb/enc/etbb1_n6yk3i.enc)18
-rw-r--r--fonts/etbb/enc/etbb_6dkfmm.enc (renamed from fonts/etbb/enc/etbb_gcyiic.enc)18
-rw-r--r--fonts/etbb/enc/etbb_6z6nrw.enc4
-rw-r--r--fonts/etbb/enc/etbb_7dlbn4.enc6
-rw-r--r--fonts/etbb/enc/etbb_7ipmvr.enc (renamed from fonts/etbb/enc/etbb_ea2dgh.enc)8
-rw-r--r--fonts/etbb/enc/etbb_7pzsmk.enc2
-rw-r--r--fonts/etbb/enc/etbb_7t4ywj.enc2
-rw-r--r--fonts/etbb/enc/etbb_7tqudy.enc6
-rw-r--r--fonts/etbb/enc/etbb_7uz5xh.enc6
-rw-r--r--fonts/etbb/enc/etbb_atf2m5.enc2
-rw-r--r--fonts/etbb/enc/etbb_b3flk2.enc (renamed from fonts/etbb/enc/etbb_4qfaj2.enc)8
-rw-r--r--fonts/etbb/enc/etbb_bb5xlm.enc (renamed from fonts/etbb/enc/etbb_agksat.enc)10
-rw-r--r--fonts/etbb/enc/etbb_boj3jd.enc2
-rw-r--r--fonts/etbb/enc/etbb_brounl.enc68
-rw-r--r--fonts/etbb/enc/etbb_cq6xx2.enc2
-rw-r--r--fonts/etbb/enc/etbb_cxbogn.enc2
-rw-r--r--fonts/etbb/enc/etbb_cyp5f5.enc2
-rw-r--r--fonts/etbb/enc/etbb_cyyszv.enc2
-rw-r--r--fonts/etbb/enc/etbb_d63baf.enc (renamed from fonts/etbb/enc/etbb1_ue3xcj.enc)22
-rw-r--r--fonts/etbb/enc/etbb_dkuysn.enc (renamed from fonts/etbb/enc/etbb_ay4ati.enc)8
-rw-r--r--fonts/etbb/enc/etbb_dpvwoq.enc (renamed from fonts/etbb/enc/etbb1_6bb767.enc)22
-rw-r--r--fonts/etbb/enc/etbb_e7zo2o.enc2
-rw-r--r--fonts/etbb/enc/etbb_ehl4wc.enc6
-rw-r--r--fonts/etbb/enc/etbb_elsw3h.enc2
-rw-r--r--fonts/etbb/enc/etbb_eqc2ac.enc (renamed from fonts/etbb/enc/etbb1_ujerr7.enc)10
-rw-r--r--fonts/etbb/enc/etbb_eqlboo.enc (renamed from fonts/etbb/enc/etbb_h4dyum.enc)8
-rw-r--r--fonts/etbb/enc/etbb_f55msl.enc2
-rw-r--r--fonts/etbb/enc/etbb_fpvlkw.enc2
-rw-r--r--fonts/etbb/enc/etbb_frcze6.enc (renamed from fonts/etbb/enc/etbb1_vbmlbb.enc)22
-rw-r--r--fonts/etbb/enc/etbb_fveuju.enc (renamed from fonts/etbb/enc/etbb_ydcfbc.enc)8
-rw-r--r--fonts/etbb/enc/etbb_fwcdph.enc2
-rw-r--r--fonts/etbb/enc/etbb_fyek6u.enc (renamed from fonts/etbb/enc/etbb_r34xpu.enc)8
-rw-r--r--fonts/etbb/enc/etbb_g2yynh.enc (renamed from fonts/etbb/enc/etbb_qqjyre.enc)8
-rw-r--r--fonts/etbb/enc/etbb_gteq3q.enc (renamed from fonts/etbb/enc/etbb_lolxkk.enc)8
-rw-r--r--fonts/etbb/enc/etbb_gtqfg2.enc2
-rw-r--r--fonts/etbb/enc/etbb_hah5or.enc (renamed from fonts/etbb/enc/etbb1_55s5uq.enc)10
-rw-r--r--fonts/etbb/enc/etbb_hdnox5.enc2
-rw-r--r--fonts/etbb/enc/etbb_hn62ay.enc4
-rw-r--r--fonts/etbb/enc/etbb_i2z4ax.enc (renamed from fonts/etbb/enc/etbb_3bao6x.enc)12
-rw-r--r--fonts/etbb/enc/etbb_i5ezvi.enc2
-rw-r--r--fonts/etbb/enc/etbb_izxro2.enc (renamed from fonts/etbb/enc/etbb_cpb6sd.enc)8
-rw-r--r--fonts/etbb/enc/etbb_j43iwo.enc (renamed from fonts/etbb/enc/etbb_ihmnlr.enc)8
-rw-r--r--fonts/etbb/enc/etbb_j4gzyc.enc2
-rw-r--r--fonts/etbb/enc/etbb_j7myeh.enc2
-rw-r--r--fonts/etbb/enc/etbb_jejpug.enc68
-rw-r--r--fonts/etbb/enc/etbb_jjhcst.enc (renamed from fonts/etbb/enc/etbb_m74he6.enc)10
-rw-r--r--fonts/etbb/enc/etbb_kvzzr3.enc2
-rw-r--r--fonts/etbb/enc/etbb_ladhhj.enc2
-rw-r--r--fonts/etbb/enc/etbb_m5kdwt.enc2
-rw-r--r--fonts/etbb/enc/etbb_mfrons.enc (renamed from fonts/etbb/enc/etbb_cp6bsz.enc)22
-rw-r--r--fonts/etbb/enc/etbb_mgm6re.enc (renamed from fonts/etbb/enc/etbb1_gojfsq.enc)10
-rw-r--r--fonts/etbb/enc/etbb_mpvq56.enc2
-rw-r--r--fonts/etbb/enc/etbb_n73bzf.enc (renamed from fonts/etbb/enc/etbb_ujmsnd.enc)8
-rw-r--r--fonts/etbb/enc/etbb_num7wi.enc (renamed from fonts/etbb/enc/etbb_3rdlap.enc)10
-rw-r--r--fonts/etbb/enc/etbb_nvfc5y.enc4
-rw-r--r--fonts/etbb/enc/etbb_oe3mzn.enc2
-rw-r--r--fonts/etbb/enc/etbb_ohc25e.enc2
-rw-r--r--fonts/etbb/enc/etbb_olodrh.enc (renamed from fonts/etbb/enc/etbb_xq7qra.enc)11
-rw-r--r--fonts/etbb/enc/etbb_onypnl.enc (renamed from fonts/etbb/enc/etbb_ftphfy.enc)8
-rw-r--r--fonts/etbb/enc/etbb_ooqfsa.enc (renamed from fonts/etbb/enc/etbb_qrk72g.enc)8
-rw-r--r--fonts/etbb/enc/etbb_ow4ien.enc (renamed from fonts/etbb/enc/etbb_rluk7r.enc)12
-rw-r--r--fonts/etbb/enc/etbb_oynaqb.enc2
-rw-r--r--fonts/etbb/enc/etbb_p6ehom.enc (renamed from fonts/etbb/enc/etbb_icp3zk.enc)11
-rw-r--r--fonts/etbb/enc/etbb_pqh27d.enc (renamed from fonts/etbb/enc/etbb_cluc7m.enc)8
-rw-r--r--fonts/etbb/enc/etbb_pvrda3.enc (renamed from fonts/etbb/enc/etbb_hbqmiu.enc)10
-rw-r--r--fonts/etbb/enc/etbb_q62n24.enc2
-rw-r--r--fonts/etbb/enc/etbb_rgl4wj.enc (renamed from fonts/etbb/enc/etbb_dep6cd.enc)8
-rw-r--r--fonts/etbb/enc/etbb_riohwx.enc2
-rw-r--r--fonts/etbb/enc/etbb_rzlqzq.enc2
-rw-r--r--fonts/etbb/enc/etbb_sb7odk.enc (renamed from fonts/etbb/enc/etbb_u2xzqd.enc)18
-rw-r--r--fonts/etbb/enc/etbb_sjtq2a.enc (renamed from fonts/etbb/enc/etbb_le3wsu.enc)10
-rw-r--r--fonts/etbb/enc/etbb_skushq.enc2
-rw-r--r--fonts/etbb/enc/etbb_t4d6nl.enc (renamed from fonts/etbb/enc/etbb_3pnwav.enc)11
-rw-r--r--fonts/etbb/enc/etbb_tbmtgo.enc2
-rw-r--r--fonts/etbb/enc/etbb_tunzhv.enc (renamed from fonts/etbb/enc/etbb_ghqdpy.enc)8
-rw-r--r--fonts/etbb/enc/etbb_ujzbb6.enc (renamed from fonts/etbb/enc/etbb_muumxe.enc)12
-rw-r--r--fonts/etbb/enc/etbb_v6nho7.enc2
-rw-r--r--fonts/etbb/enc/etbb_vazzz3.enc (renamed from fonts/etbb/enc/etbb_wplash.enc)8
-rw-r--r--fonts/etbb/enc/etbb_veuqiz.enc (renamed from fonts/etbb/enc/etbb_n5h2ym.enc)8
-rw-r--r--fonts/etbb/enc/etbb_vmilsn.enc (renamed from fonts/etbb/enc/etbb_e3m4fz.enc)8
-rw-r--r--fonts/etbb/enc/etbb_vqghpl.enc (renamed from fonts/etbb/enc/etbb_tif2yn.enc)8
-rw-r--r--fonts/etbb/enc/etbb_vtabip.enc (renamed from fonts/etbb/enc/etbb_4h6gms.enc)10
-rw-r--r--fonts/etbb/enc/etbb_xaqh3v.enc (renamed from fonts/etbb/enc/etbb_ifuncr.enc)10
-rw-r--r--fonts/etbb/enc/etbb_xe5wuh.enc2
-rw-r--r--fonts/etbb/enc/etbb_xmn5et.enc2
-rw-r--r--fonts/etbb/enc/etbb_xwgzeq.enc (renamed from fonts/etbb/enc/etbb_uoncjt.enc)8
-rw-r--r--fonts/etbb/enc/etbb_y6dqd4.enc (renamed from fonts/etbb/enc/etbb_ohvjcv.enc)8
-rw-r--r--fonts/etbb/enc/etbb_yadlkl.enc (renamed from fonts/etbb/enc/etbb_7vqeic.enc)12
-rw-r--r--fonts/etbb/enc/etbb_ybjyd4.enc2
-rw-r--r--fonts/etbb/enc/etbb_yiqwpu.enc2
-rw-r--r--fonts/etbb/enc/etbb_ytzykv.enc2
-rw-r--r--fonts/etbb/enc/etbb_yziesh.enc (renamed from fonts/etbb/enc/etbb1_frt5zk.enc)10
-rw-r--r--fonts/etbb/enc/etbb_yzoycr.enc2
-rw-r--r--fonts/etbb/enc/etbb_zpkt7y.enc2
-rw-r--r--fonts/etbb/map/ETbb.map416
-rw-r--r--fonts/etbb/opentype/ETbb-Bold.otfbin98868 -> 103300 bytes
-rw-r--r--fonts/etbb/opentype/ETbb-BoldItalic.otfbin95044 -> 98984 bytes
-rw-r--r--fonts/etbb/opentype/ETbb-Italic.otfbin88628 -> 92288 bytes
-rw-r--r--fonts/etbb/opentype/ETbb-Regular.otfbin111596 -> 116836 bytes
-rw-r--r--fonts/etbb/tex/ETbb.sty59
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-dnom-ot1--base.tfmbin0 -> 1232 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-dnom-ot1.tfmbin1236 -> 1236 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-dnom-t1--base.tfmbin1732 -> 1756 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-dnom-t1.tfmbin1740 -> 1760 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-inf-ot1--base.tfmbin0 -> 1236 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-inf-ot1.tfmbin1240 -> 1240 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-inf-t1--base.tfmbin1736 -> 1760 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-inf-t1.tfmbin1744 -> 1764 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-ot1--base.tfmbin0 -> 1288 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-ot1.tfmbin6220 -> 6212 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1--base.tfmbin1844 -> 1844 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1.tfmbin25824 -> 25908 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1--base.tfmbin1272 -> 1268 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1.tfmbin6064 -> 6108 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-sc-t1--base.tfmbin1856 -> 1816 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-sc-t1.tfmbin23672 -> 23700 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1--base.tfmbin0 -> 1292 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1.tfmbin5976 -> 5968 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-swash-t1--base.tfmbin1768 -> 1772 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-swash-t1.tfmbin23332 -> 23232 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-t1--base.tfmbin1764 -> 1768 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-lf-t1.tfmbin23860 -> 23756 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-ot1--base.tfmbin0 -> 1284 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-ot1.tfmbin6216 -> 6208 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1--base.tfmbin1836 -> 1836 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1.tfmbin25816 -> 25900 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1--base.tfmbin1264 -> 1260 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1.tfmbin6056 -> 6100 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-sc-t1--base.tfmbin1844 -> 1800 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-sc-t1.tfmbin23660 -> 23684 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1--base.tfmbin0 -> 1288 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1.tfmbin5972 -> 5964 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-swash-t1--base.tfmbin1764 -> 1768 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-swash-t1.tfmbin23328 -> 23228 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-t1--base.tfmbin1760 -> 1764 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-osf-t1.tfmbin23856 -> 23752 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-sup-ot1--base.tfmbin0 -> 1240 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-sup-ot1.tfmbin1244 -> 1248 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-sup-t1--base.tfmbin1852 -> 1876 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-sup-t1.tfmbin1860 -> 1880 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-ot1--base.tfmbin0 -> 1264 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-ot1.tfmbin6196 -> 6188 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1--base.tfmbin1816 -> 1816 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1.tfmbin25796 -> 25880 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1--base.tfmbin1244 -> 1240 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1.tfmbin6036 -> 6080 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1--base.tfmbin1824 -> 1784 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1.tfmbin23640 -> 23668 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1--base.tfmbin0 -> 1268 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1.tfmbin5952 -> 5944 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1--base.tfmbin1744 -> 1748 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1.tfmbin23308 -> 23208 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-t1--base.tfmbin1740 -> 1744 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tlf-t1.tfmbin23836 -> 23732 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-ot1--base.tfmbin0 -> 1260 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-ot1.tfmbin6192 -> 6184 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1--base.tfmbin1816 -> 1816 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1.tfmbin25796 -> 25880 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1--base.tfmbin1240 -> 1236 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1.tfmbin6032 -> 6076 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1--base.tfmbin1824 -> 1784 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1.tfmbin23640 -> 23668 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1--base.tfmbin0 -> 1264 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1.tfmbin5948 -> 5940 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1--base.tfmbin1740 -> 1744 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1.tfmbin23304 -> 23204 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-t1--base.tfmbin1736 -> 1740 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Bold-tosf-t1.tfmbin23832 -> 23728 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1--base.tfmbin0 -> 1416 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1.tfmbin1420 -> 1420 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1--base.tfmbin1920 -> 1936 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1.tfmbin1928 -> 1940 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1--base.tfmbin0 -> 1416 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1.tfmbin1420 -> 1420 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-inf-t1--base.tfmbin1916 -> 1932 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-inf-t1.tfmbin1924 -> 1936 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1--base.tfmbin0 -> 1472 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1.tfmbin4484 -> 4476 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1--base.tfmbin1476 -> 1472 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1.tfmbin5328 -> 5320 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1--base.tfmbin2036 -> 2008 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1.tfmbin28148 -> 25328 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1--base.tfmbin0 -> 1476 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1.tfmbin4396 -> 4388 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1--base.tfmbin1944 -> 1948 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-lf-t1--base.tfmbin1944 -> 1948 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1--base.tfmbin0 -> 1456 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1.tfmbin4468 -> 4460 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1--base.tfmbin1468 -> 1464 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1.tfmbin5320 -> 5312 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1--base.tfmbin2048 -> 2020 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1.tfmbin28160 -> 25340 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1--base.tfmbin0 -> 1460 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1.tfmbin4380 -> 4372 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1--base.tfmbin1936 -> 1940 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-osf-t1--base.tfmbin1936 -> 1940 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1--base.tfmbin0 -> 1464 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1.tfmbin1464 -> 1472 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-sup-t1--base.tfmbin2056 -> 2076 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-sup-t1.tfmbin2064 -> 2080 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1--base.tfmbin0 -> 1456 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1.tfmbin4468 -> 4460 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1--base.tfmbin1460 -> 1456 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1.tfmbin5312 -> 5304 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1--base.tfmbin2020 -> 1996 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1.tfmbin28132 -> 25316 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1--base.tfmbin0 -> 1460 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1.tfmbin4380 -> 4372 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1--base.tfmbin1912 -> 1916 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1--base.tfmbin1912 -> 1916 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1--base.tfmbin0 -> 1436 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1.tfmbin4448 -> 4440 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1--base.tfmbin1444 -> 1440 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1.tfmbin5296 -> 5288 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1--base.tfmbin2024 -> 1996 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1.tfmbin28136 -> 25316 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1--base.tfmbin0 -> 1440 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1.tfmbin4360 -> 4352 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1--base.tfmbin1916 -> 1920 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1--base.tfmbin1916 -> 1920 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-dnom-ot1--base.tfmbin0 -> 1436 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-dnom-ot1.tfmbin1440 -> 1440 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-dnom-t1--base.tfmbin1932 -> 1948 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-dnom-t1.tfmbin1940 -> 1952 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-inf-ot1--base.tfmbin0 -> 1432 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-inf-ot1.tfmbin1436 -> 1436 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-inf-t1--base.tfmbin1924 -> 1940 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-inf-t1.tfmbin1932 -> 1944 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-ot1--base.tfmbin0 -> 1472 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-ot1.tfmbin4644 -> 4636 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1--base.tfmbin1468 -> 1464 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1.tfmbin5948 -> 5940 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-sc-t1--base.tfmbin2016 -> 1996 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-sc-t1.tfmbin32568 -> 29416 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1--base.tfmbin0 -> 1472 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1.tfmbin4512 -> 4504 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-swash-t1--base.tfmbin1940 -> 1944 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-swash-t1.tfmbin23604 -> 23604 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-t1--base.tfmbin1940 -> 1944 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-lf-t1.tfmbin24000 -> 24000 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-ot1--base.tfmbin0 -> 1464 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-ot1.tfmbin4636 -> 4628 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1--base.tfmbin1468 -> 1464 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1.tfmbin5948 -> 5940 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-sc-t1--base.tfmbin2028 -> 2004 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-sc-t1.tfmbin32580 -> 29424 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1--base.tfmbin0 -> 1464 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1.tfmbin4504 -> 4496 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-swash-t1--base.tfmbin1944 -> 1948 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-swash-t1.tfmbin23608 -> 23608 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-t1--base.tfmbin1944 -> 1948 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-osf-t1.tfmbin24004 -> 24004 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-sup-ot1--base.tfmbin0 -> 1428 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-sup-ot1.tfmbin1432 -> 1436 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-sup-t1--base.tfmbin2052 -> 2072 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-sup-t1.tfmbin2060 -> 2076 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-ot1--base.tfmbin0 -> 1444 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-ot1.tfmbin4616 -> 4608 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1--base.tfmbin1452 -> 1448 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1.tfmbin5932 -> 5924 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1--base.tfmbin2000 -> 1980 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1.tfmbin32552 -> 29400 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1--base.tfmbin0 -> 1444 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1.tfmbin4484 -> 4476 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1--base.tfmbin1916 -> 1920 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1.tfmbin23580 -> 23580 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-t1--base.tfmbin1916 -> 1920 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tlf-t1.tfmbin23976 -> 23976 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-ot1--base.tfmbin0 -> 1436 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-ot1.tfmbin4608 -> 4600 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1--base.tfmbin1448 -> 1444 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1.tfmbin5928 -> 5920 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1--base.tfmbin2004 -> 1984 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1.tfmbin32556 -> 29404 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1--base.tfmbin0 -> 1436 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1.tfmbin4476 -> 4468 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1--base.tfmbin1916 -> 1920 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1.tfmbin23580 -> 23580 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-t1--base.tfmbin1916 -> 1920 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Italic-tosf-t1.tfmbin23976 -> 23976 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-dnom-ot1.tfmbin1320 -> 1320 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-dnom-t1--base.tfmbin1848 -> 1872 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-dnom-t1.tfmbin1856 -> 1876 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-inf-ot1.tfmbin1320 -> 1320 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-inf-t1--base.tfmbin1848 -> 1872 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-inf-t1.tfmbin1856 -> 1876 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-ly1.tfmbin28364 -> 28392 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-ot1.tfmbin6888 -> 6880 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1--base.tfmbin1900 -> 1904 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1.tfmbin27452 -> 27484 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1--base.tfmbin1292 -> 1292 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1.tfmbin6452 -> 6440 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-sc-t1--base.tfmbin1884 -> 1860 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-sc-t1.tfmbin43400 -> 37000 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1.tfmbin27800 -> 27828 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-swash-ot1.tfmbin6628 -> 6620 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-swash-t1--base.tfmbin1860 -> 1864 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-swash-t1.tfmbin47640 -> 47512 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-t1--base.tfmbin1856 -> 1860 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-lf-t1.tfmbin48408 -> 48276 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-ly1.tfmbin28360 -> 28388 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-ot1.tfmbin6888 -> 6880 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1--base.tfmbin1896 -> 1900 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1.tfmbin27448 -> 27480 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1--base.tfmbin1292 -> 1292 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1.tfmbin6452 -> 6440 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-sc-t1--base.tfmbin1884 -> 1860 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-sc-t1.tfmbin43400 -> 37000 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1.tfmbin27796 -> 27824 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-swash-ot1.tfmbin6628 -> 6620 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-swash-t1--base.tfmbin1860 -> 1864 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-swash-t1.tfmbin47640 -> 47512 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-t1--base.tfmbin1856 -> 1860 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-osf-t1.tfmbin48408 -> 48276 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-sup-ot1.tfmbin1292 -> 1296 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-sup-t1--base.tfmbin1948 -> 1976 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-sup-t1.tfmbin1956 -> 1980 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-ly1.tfmbin28340 -> 28368 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-ot1.tfmbin6868 -> 6860 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1--base.tfmbin1876 -> 1880 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1.tfmbin27428 -> 27460 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1--base.tfmbin1272 -> 1272 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1.tfmbin6432 -> 6420 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1--base.tfmbin1864 -> 1840 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1.tfmbin43380 -> 36980 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1.tfmbin27776 -> 27804 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-swash-ot1.tfmbin6608 -> 6600 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1--base.tfmbin1840 -> 1844 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1.tfmbin47620 -> 47492 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-t1--base.tfmbin1836 -> 1840 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tlf-t1.tfmbin48388 -> 48256 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-ly1.tfmbin28340 -> 28368 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-ot1.tfmbin6868 -> 6860 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1--base.tfmbin1876 -> 1880 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1.tfmbin27428 -> 27460 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1--base.tfmbin1272 -> 1272 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1.tfmbin6432 -> 6420 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1--base.tfmbin1864 -> 1840 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1.tfmbin43380 -> 36980 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1.tfmbin27776 -> 27804 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-swash-ot1.tfmbin6608 -> 6600 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1--base.tfmbin1840 -> 1844 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1.tfmbin47620 -> 47492 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-t1--base.tfmbin1836 -> 1840 bytes
-rw-r--r--fonts/etbb/tfm/ETbb-Regular-tosf-t1.tfmbin48388 -> 48256 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-dnom-t1--base.tfmbin1720 -> 0 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-dnom-t1.tfmbin22372 -> 0 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1--base.tfmbin1844 -> 1800 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1.tfmbin23612 -> 23648 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1--base.tfmbin1756 -> 1760 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1.tfmbin23324 -> 23228 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-lf-t1--base.tfmbin1752 -> 1756 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-lf-t1.tfmbin23852 -> 23752 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1--base.tfmbin1832 -> 1784 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1.tfmbin23600 -> 23632 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1--base.tfmbin1752 -> 1756 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1.tfmbin23320 -> 23224 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-osf-t1--base.tfmbin1748 -> 1752 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-osf-t1.tfmbin23848 -> 23748 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1--base.tfmbin1812 -> 1768 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1.tfmbin23580 -> 23616 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1--base.tfmbin1732 -> 1736 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1.tfmbin23300 -> 23204 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tlf-t1--base.tfmbin1728 -> 1732 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tlf-t1.tfmbin23828 -> 23728 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1--base.tfmbin1812 -> 1768 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1.tfmbin23580 -> 23616 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1--base.tfmbin1728 -> 1732 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1.tfmbin23296 -> 23200 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tosf-t1--base.tfmbin1724 -> 1728 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Bold-tosf-t1.tfmbin23824 -> 23724 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1--base.tfmbin1908 -> 0 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1.tfmbin21556 -> 0 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1--base.tfmbin2024 -> 1988 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1.tfmbin28120 -> 25304 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1--base.tfmbin1932 -> 1936 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1.tfmbin21856 -> 21860 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1--base.tfmbin1932 -> 1936 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1.tfmbin22128 -> 22132 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1--base.tfmbin2036 -> 2000 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1.tfmbin28132 -> 25316 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1--base.tfmbin1924 -> 1928 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1.tfmbin21848 -> 21852 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1--base.tfmbin1924 -> 1928 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1.tfmbin22120 -> 22124 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1--base.tfmbin2008 -> 1976 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1.tfmbin28104 -> 25292 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1--base.tfmbin1900 -> 1904 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1.tfmbin21824 -> 21828 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1--base.tfmbin1900 -> 1904 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1.tfmbin22096 -> 22100 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1--base.tfmbin2012 -> 1976 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1.tfmbin28108 -> 25292 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1--base.tfmbin1904 -> 1908 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1.tfmbin21828 -> 21832 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1--base.tfmbin1904 -> 1908 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1.tfmbin22100 -> 22104 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-dnom-t1--base.tfmbin1920 -> 0 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-dnom-t1.tfmbin23448 -> 0 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1--base.tfmbin2004 -> 1980 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1.tfmbin32540 -> 29396 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1--base.tfmbin1928 -> 1932 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1.tfmbin23584 -> 23588 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-lf-t1--base.tfmbin1928 -> 1932 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-lf-t1.tfmbin23980 -> 23984 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1--base.tfmbin2016 -> 1988 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1.tfmbin32552 -> 29404 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1--base.tfmbin1932 -> 1936 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1.tfmbin23588 -> 23592 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-osf-t1--base.tfmbin1932 -> 1936 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-osf-t1.tfmbin23984 -> 23988 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1--base.tfmbin1988 -> 1964 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1.tfmbin32524 -> 29380 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1--base.tfmbin1904 -> 1908 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1.tfmbin23560 -> 23564 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tlf-t1--base.tfmbin1904 -> 1908 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tlf-t1.tfmbin23956 -> 23960 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1--base.tfmbin1992 -> 1968 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1.tfmbin32528 -> 29384 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1--base.tfmbin1904 -> 1908 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1.tfmbin23560 -> 23564 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tosf-t1--base.tfmbin1904 -> 1908 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Italic-tosf-t1.tfmbin23956 -> 23960 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-dnom-t1--base.tfmbin1832 -> 0 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-dnom-t1.tfmbin46736 -> 0 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1--base.tfmbin1872 -> 1844 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1.tfmbin43424 -> 36932 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1--base.tfmbin1844 -> 1848 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1.tfmbin47856 -> 47732 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-lf-t1--base.tfmbin1840 -> 1844 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-lf-t1.tfmbin48640 -> 48512 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1--base.tfmbin1872 -> 1844 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1.tfmbin43424 -> 36932 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1--base.tfmbin1844 -> 1848 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1.tfmbin47856 -> 47732 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-osf-t1--base.tfmbin1840 -> 1844 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-osf-t1.tfmbin48640 -> 48512 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1--base.tfmbin1852 -> 1824 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1.tfmbin43404 -> 36912 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1--base.tfmbin1824 -> 1828 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1.tfmbin47836 -> 47712 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tlf-t1--base.tfmbin1820 -> 1824 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tlf-t1.tfmbin48620 -> 48492 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1--base.tfmbin1852 -> 1824 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1.tfmbin43404 -> 36912 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1--base.tfmbin1824 -> 1828 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1.tfmbin47836 -> 47712 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tosf-t1--base.tfmbin1820 -> 1824 bytes
-rw-r--r--fonts/etbb/tfm/Etbb1-Regular-tosf-t1.tfmbin48620 -> 48492 bytes
-rw-r--r--fonts/etbb/type1/ETbb-Bold.pfbbin120249 -> 127111 bytes
-rw-r--r--fonts/etbb/type1/ETbb-BoldItalic.pfbbin115292 -> 121056 bytes
-rw-r--r--fonts/etbb/type1/ETbb-Italic.pfbbin108769 -> 114572 bytes
-rw-r--r--fonts/etbb/type1/ETbb-Regular.pfbbin133270 -> 140862 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-dnom-ot1.vfbin0 -> 780 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-dnom-t1.vfbin1688 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-inf-ot1.vfbin0 -> 776 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-inf-t1.vfbin1688 -> 1716 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-lf-ot1.vfbin0 -> 808 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-lf-sc-ly1.vfbin1704 -> 1704 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-lf-sc-ot1.vfbin780 -> 816 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-lf-sc-t1.vfbin1728 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-lf-swash-ot1.vfbin0 -> 812 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-lf-swash-t1.vfbin1724 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-lf-t1.vfbin1720 -> 1716 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-osf-ot1.vfbin0 -> 808 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-osf-sc-ly1.vfbin1704 -> 1704 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-osf-sc-ot1.vfbin780 -> 820 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-osf-sc-t1.vfbin1732 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-osf-swash-ot1.vfbin0 -> 812 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-osf-swash-t1.vfbin1728 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-osf-t1.vfbin1720 -> 1716 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-sup-ot1.vfbin0 -> 776 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-sup-t1.vfbin1688 -> 1716 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tlf-ot1.vfbin0 -> 808 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tlf-sc-ly1.vfbin1704 -> 1704 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tlf-sc-ot1.vfbin780 -> 820 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tlf-sc-t1.vfbin1732 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tlf-swash-ot1.vfbin0 -> 812 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tlf-swash-t1.vfbin1728 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tlf-t1.vfbin1720 -> 1716 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tosf-ot1.vfbin0 -> 808 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tosf-sc-ly1.vfbin1708 -> 1708 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tosf-sc-ot1.vfbin780 -> 820 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tosf-sc-t1.vfbin1732 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tosf-swash-ot1.vfbin0 -> 816 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tosf-swash-t1.vfbin1728 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Bold-tosf-t1.vfbin1720 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-dnom-ot1.vfbin0 -> 784 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-dnom-t1.vfbin1696 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-inf-ot1.vfbin0 -> 784 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-inf-t1.vfbin1692 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-lf-ot1.vfbin0 -> 812 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ot1.vfbin792 -> 832 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-lf-sc-t1.vfbin1740 -> 1740 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ot1.vfbin0 -> 820 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-lf-swash-t1.vfbin1728 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-lf-t1.vfbin1724 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-osf-ot1.vfbin0 -> 812 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ot1.vfbin796 -> 832 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-osf-sc-t1.vfbin1744 -> 1740 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ot1.vfbin0 -> 820 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-osf-swash-t1.vfbin1728 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-osf-t1.vfbin1724 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-sup-ot1.vfbin0 -> 784 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-sup-t1.vfbin1692 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tlf-ot1.vfbin0 -> 812 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ot1.vfbin796 -> 832 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-t1.vfbin1744 -> 1740 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ot1.vfbin0 -> 820 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-t1.vfbin1728 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tlf-t1.vfbin1724 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tosf-ot1.vfbin0 -> 816 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ot1.vfbin796 -> 836 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-t1.vfbin1744 -> 1740 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ot1.vfbin0 -> 820 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-t1.vfbin1732 -> 1732 bytes
-rw-r--r--fonts/etbb/vf/ETbb-BoldItalic-tosf-t1.vfbin1724 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-dnom-ot1.vfbin0 -> 780 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-dnom-t1.vfbin1692 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-inf-ot1.vfbin0 -> 780 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-inf-t1.vfbin1688 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-lf-ot1.vfbin0 -> 808 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-lf-sc-ot1.vfbin788 -> 828 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-lf-sc-t1.vfbin1736 -> 1736 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-lf-swash-ot1.vfbin0 -> 816 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-lf-swash-t1.vfbin1724 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-lf-t1.vfbin1720 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-osf-ot1.vfbin0 -> 808 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-osf-sc-ot1.vfbin792 -> 828 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-osf-sc-t1.vfbin1740 -> 1736 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-osf-swash-ot1.vfbin0 -> 816 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-osf-swash-t1.vfbin1724 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-osf-t1.vfbin1720 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-sup-ot1.vfbin0 -> 780 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-sup-t1.vfbin1688 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tlf-ot1.vfbin0 -> 808 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tlf-sc-ot1.vfbin792 -> 828 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tlf-sc-t1.vfbin1740 -> 1736 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tlf-swash-ot1.vfbin0 -> 816 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tlf-swash-t1.vfbin1724 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tlf-t1.vfbin1720 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tosf-ot1.vfbin0 -> 812 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tosf-sc-ot1.vfbin792 -> 832 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tosf-sc-t1.vfbin1740 -> 1736 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tosf-swash-ot1.vfbin0 -> 816 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tosf-swash-t1.vfbin1728 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Italic-tosf-t1.vfbin1720 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-dnom-t1.vfbin1692 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-inf-t1.vfbin1692 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-lf-sc-ly1.vfbin1708 -> 1708 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-lf-sc-ot1.vfbin788 -> 788 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-lf-sc-t1.vfbin1732 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-lf-swash-t1.vfbin1728 -> 1724 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-lf-t1.vfbin1724 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-osf-sc-ly1.vfbin1708 -> 1708 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-osf-sc-ot1.vfbin788 -> 788 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-osf-sc-t1.vfbin1732 -> 1732 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-osf-swash-t1.vfbin1728 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-osf-t1.vfbin1724 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-sup-t1.vfbin1692 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tlf-sc-ly1.vfbin1708 -> 1708 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tlf-sc-ot1.vfbin788 -> 788 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tlf-sc-t1.vfbin1732 -> 1732 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tlf-swash-t1.vfbin1728 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tlf-t1.vfbin1724 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tosf-sc-ly1.vfbin1708 -> 1708 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tosf-sc-ot1.vfbin788 -> 788 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tosf-sc-t1.vfbin1736 -> 1732 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tosf-swash-t1.vfbin1732 -> 1728 bytes
-rw-r--r--fonts/etbb/vf/ETbb-Regular-tosf-t1.vfbin1724 -> 1720 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-dnom-t1.vfbin1768 -> 0 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-lf-sc-t1.vfbin1764 -> 1776 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-lf-swash-t1.vfbin1804 -> 1812 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-lf-t1.vfbin1792 -> 1800 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-osf-sc-t1.vfbin1764 -> 1780 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-osf-swash-t1.vfbin1808 -> 1816 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-osf-t1.vfbin1796 -> 1804 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-tlf-sc-t1.vfbin1764 -> 1780 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-tlf-swash-t1.vfbin1808 -> 1816 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-tlf-t1.vfbin1796 -> 1804 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-tosf-sc-t1.vfbin1768 -> 1780 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-tosf-swash-t1.vfbin1808 -> 1816 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Bold-tosf-t1.vfbin1796 -> 1804 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-dnom-t1.vfbin1784 -> 0 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-lf-sc-t1.vfbin1780 -> 1796 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-lf-swash-t1.vfbin1824 -> 1832 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-lf-t1.vfbin1812 -> 1820 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-osf-sc-t1.vfbin1784 -> 1796 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-osf-swash-t1.vfbin1824 -> 1832 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-osf-t1.vfbin1812 -> 1820 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-tlf-sc-t1.vfbin1784 -> 1796 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-tlf-swash-t1.vfbin1824 -> 1832 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-tlf-t1.vfbin1812 -> 1820 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-tosf-sc-t1.vfbin1784 -> 1800 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-tosf-swash-t1.vfbin1828 -> 1836 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-BoldItalic-tosf-t1.vfbin1816 -> 1824 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-dnom-t1.vfbin1772 -> 0 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-lf-sc-t1.vfbin1768 -> 1784 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-lf-swash-t1.vfbin1812 -> 1820 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-lf-t1.vfbin1800 -> 1808 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-osf-sc-t1.vfbin1772 -> 1784 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-osf-swash-t1.vfbin1812 -> 1820 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-osf-t1.vfbin1800 -> 1808 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-tlf-sc-t1.vfbin1772 -> 1784 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-tlf-swash-t1.vfbin1812 -> 1820 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-tlf-t1.vfbin1800 -> 1808 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-tosf-sc-t1.vfbin1772 -> 1788 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-tosf-swash-t1.vfbin1816 -> 1824 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Italic-tosf-t1.vfbin1804 -> 1812 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-dnom-t1.vfbin1776 -> 0 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-lf-sc-t1.vfbin1772 -> 1784 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-lf-swash-t1.vfbin1816 -> 1820 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-lf-t1.vfbin1804 -> 1808 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-osf-sc-t1.vfbin1772 -> 1788 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-osf-swash-t1.vfbin1816 -> 1824 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-osf-t1.vfbin1804 -> 1812 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-tlf-sc-t1.vfbin1772 -> 1788 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-tlf-swash-t1.vfbin1816 -> 1824 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-tlf-t1.vfbin1804 -> 1812 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-tosf-sc-t1.vfbin1776 -> 1788 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-tosf-swash-t1.vfbin1820 -> 1824 bytes
-rw-r--r--fonts/etbb/vf/Etbb1-Regular-tosf-t1.vfbin1808 -> 1812 bytes
-rw-r--r--fonts/hamnosys/hamnosys.sty312
-rw-r--r--graphics/pgf/contrib/circuitikz/README.md10
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/changelog.tex27
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdfbin17688 -> 17674 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdfbin1461547 -> 1485592 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex110
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex26375
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty21
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz.sty14
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circutikz-0.9.6.sty8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex26
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex31
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex17
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex8
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex112
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex26150
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex12
-rw-r--r--graphics/pgf/contrib/sankey/sankey.dtx258
-rw-r--r--graphics/pgf/contrib/sankey/sankey.pdfbin942336 -> 990719 bytes
-rw-r--r--macros/latex/contrib/animate/ChangeLog3
-rw-r--r--macros/latex/contrib/animate/animate.pdfbin3753532 -> 3753810 bytes
-rw-r--r--macros/latex/contrib/animate/animate.sty43
-rw-r--r--macros/latex/contrib/crefthe/README.md19
-rw-r--r--macros/latex/contrib/crefthe/crefthe-doc.pdfbin108754 -> 110051 bytes
-rw-r--r--macros/latex/contrib/crefthe/crefthe-doc.tex14
-rw-r--r--macros/latex/contrib/crefthe/crefthe.sty564
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx16
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin576025 -> 576018 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex4
-rw-r--r--macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdfbin40813 -> 40811 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdfbin201045 -> 201045 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-criticalnotes.pdfbin199196 -> 199196 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-sidenotes.pdfbin295847 -> 295847 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-tabular.pdfbin284803 -> 284803 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdfbin200373 -> 200373 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/1-verses.pdfbin200204 -> 200204 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-antilabe.pdfbin209856 -> 209856 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-cross_referencing.pdfbin199199 -> 199199 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdfbin202702 -> 202702 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-glossaries.pdfbin284462 -> 284462 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-indexing.pdfbin283598 -> 283598 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdfbin277764 -> 277764 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdfbin293260 -> 293260 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-linespacing.pdfbin288423 -> 288423 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdfbin290106 -> 290106 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-notes-width.pdfbin205925 -> 205925 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdfbin211562 -> 211562 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-performances.pdfbin286175 -> 286175 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdfbin31497 -> 31501 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdfbin309311 -> 309311 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdfbin287548 -> 287548 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdfbin199051 -> 199051 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdfbin23428 -> 23425 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdfbin174535 -> 174535 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdfbin32047 -> 32047 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdfbin288679 -> 288679 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdfbin199948 -> 199948 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdfbin199183 -> 199183 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdfbin177026 -> 177026 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdfbin199590 -> 199590 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdfbin198522 -> 198522 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdfbin198573 -> 198573 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdfbin198707 -> 198707 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdfbin213256 -> 213256 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdfbin211867 -> 211867 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdfbin204143 -> 204143 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdfbin297127 -> 297127 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdfbin203251 -> 203251 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdfbin224508 -> 224508 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdfbin249192 -> 249192 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdfbin203970 -> 203970 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdfbin199821 -> 199821 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdfbin301523 -> 301523 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdfbin206311 -> 206311 bytes
-rw-r--r--macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdfbin195383 -> 195383 bytes
-rw-r--r--macros/latex/contrib/reledmac/migration.pdfbin368877 -> 368877 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledmac.dtx7
-rw-r--r--macros/latex/contrib/reledmac/reledmac.pdfbin2064848 -> 2065249 bytes
-rw-r--r--macros/latex/contrib/reledmac/reledpar.pdfbin1006705 -> 1006705 bytes
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md8
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin607585 -> 607726 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-number.dtx24
-rw-r--r--macros/latex/contrib/siunitx/siunitx-print.dtx27
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin639462 -> 639466 bytes
-rw-r--r--macros/luatex/generic/lua-widow-control/README.md2
-rw-r--r--macros/luatex/generic/lua-widow-control/lua-widow-control.lua6
-rw-r--r--macros/luatex/generic/lua-widow-control/lua-widow-control.pdfbin313200 -> 318979 bytes
-rw-r--r--macros/luatex/generic/lua-widow-control/lua-widow-control.sty2
-rw-r--r--macros/luatex/generic/lua-widow-control/lua-widow-control.tex2
-rw-r--r--macros/luatex/generic/lua-widow-control/lwc-documentation.tex2
-rw-r--r--macros/luatex/generic/lua-widow-control/lwc-sample.tex15
-rw-r--r--macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl4
-rw-r--r--macros/xetex/latex/bidi/README13
-rw-r--r--macros/xetex/latex/bidi/bidi-doc-intro.ltx4
-rw-r--r--macros/xetex/latex/bidi/bidi-doc-title.ltx16
-rw-r--r--macros/xetex/latex/bidi/bidi-doc.ltx2
-rw-r--r--macros/xetex/latex/bidi/bidi-doc.pdfbin180395 -> 180744 bytes
-rw-r--r--macros/xetex/latex/bidi/bidi.dtx47
-rw-r--r--macros/xetex/latex/bidi/bidi.pdfbin3119340 -> 3120474 bytes
-rw-r--r--macros/xetex/latex/xepersian/README13
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc-basics.ltx6
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx8
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc-intro.ltx4
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx2
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc-title.ltx16
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc.ltx2
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc.pdfbin242527 -> 246658 bytes
-rw-r--r--macros/xetex/latex/xepersian/xepersian.dtx279
-rw-r--r--macros/xetex/latex/xepersian/xepersian.pdfbin757400 -> 765803 bytes
-rw-r--r--support/SQLTeX/Makefile.am9
-rw-r--r--support/SQLTeX/Makefile.in740
-rw-r--r--support/SQLTeX/README91
-rw-r--r--support/SQLTeX/README.md103
-rw-r--r--support/SQLTeX/SQLTeX.pdfbin271211 -> 0 bytes
-rw-r--r--support/SQLTeX/aclocal.m4740
-rw-r--r--support/SQLTeX/aclocal/ax_prog_perl_modules.m477
-rwxr-xr-xsupport/SQLTeX/configure3596
-rw-r--r--support/SQLTeX/configure.ac28
-rw-r--r--support/SQLTeX/doc/Makefile.am16
-rw-r--r--support/SQLTeX/doc/Makefile.in365
-rw-r--r--support/SQLTeX/doc/SQLTeX.pdfbin0 -> 270112 bytes
-rw-r--r--support/SQLTeX/doc/SQLTeX.tex (renamed from support/SQLTeX/SQLTeX.tex)387
-rwxr-xr-xsupport/SQLTeX/install69
-rwxr-xr-xsupport/SQLTeX/install-sh508
-rw-r--r--support/SQLTeX/man/Makefile.am15
-rw-r--r--support/SQLTeX/man/Makefile.in365
-rw-r--r--support/SQLTeX/man/SQLTeX.man154
-rwxr-xr-xsupport/SQLTeX/missing215
-rw-r--r--support/SQLTeX/src/Makefile.am20
-rw-r--r--support/SQLTeX/src/Makefile.in369
-rw-r--r--support/SQLTeX/src/SQLTeX.cfg (renamed from support/SQLTeX/SQLTeX.cfg)10
-rw-r--r--[-rwxr-xr-x]support/SQLTeX/src/SQLTeX.pl (renamed from support/SQLTeX/SQLTeX.pl)525
-rw-r--r--support/SQLTeX/src/SQLTeX_r.dat (renamed from support/SQLTeX/SQLTeX_r.dat)0
-rw-r--r--support/TeX4ht/source/ChangeLog6
-rw-r--r--support/TeX4ht/source/tex4ht-html4.tex13
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl4
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb197
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2348012 -> 2347164 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
845 files changed, 65666 insertions, 4977 deletions
diff --git a/FILES.byname b/FILES.byname
index bb57babff4..73d5a3d65d 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5206,7 +5206,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2022/02/03 | 150014 | FILES.last07days
+2022/02/04 | 170212 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -38539,152 +38539,147 @@
2011/03/22 | 539 | fonts/esstix/tex/latex/esstix/uesstixcal.fd
2011/03/23 | 551 | fonts/esstix/tex/latex/esstix/uesstixfrak.fd
2011/05/11 | 543452 | fonts/esstix.zip
-2021/12/21 | 211309 | fonts/etbb/afm/ETbb-Bold.afm
-2021/12/21 | 349629 | fonts/etbb/afm/ETbb-BoldItalic.afm
-2021/12/21 | 458766 | fonts/etbb/afm/ETbb-Italic.afm
-2021/12/21 | 776370 | fonts/etbb/afm/ETbb-Regular.afm
-2021/12/21 | 270990 | fonts/etbb/doc/ETbb-doc.pdf
-2021/12/21 | 30775 | fonts/etbb/doc/ETbb-doc.tex
-2021/09/03 | 1215 | fonts/etbb/doc/LICENSE
-2021/12/21 | 3099 | fonts/etbb/enc/etbb1_4h6gms.enc
-2021/12/21 | 2971 | fonts/etbb/enc/etbb1_55s5uq.enc
-2021/12/21 | 3362 | fonts/etbb/enc/etbb1_6b4rhp.enc
-2021/12/21 | 3370 | fonts/etbb/enc/etbb1_6bb767.enc
-2021/12/21 | 3441 | fonts/etbb/enc/etbb1_cp6bsz.enc
-2021/12/21 | 2978 | fonts/etbb/enc/etbb1_frt5zk.enc
-2021/12/21 | 3363 | fonts/etbb/enc/etbb1_gcyiic.enc
-2021/12/21 | 3027 | fonts/etbb/enc/etbb1_gojfsq.enc
-2021/12/21 | 2921 | fonts/etbb/enc/etbb1_hbqmiu.enc
-2021/12/21 | 3028 | fonts/etbb/enc/etbb1_ifuncr.enc
-2021/12/21 | 3313 | fonts/etbb/enc/etbb1_n6yk3i.enc
-2021/12/21 | 3042 | fonts/etbb/enc/etbb1_nvr6ig.enc
-2021/12/21 | 2931 | fonts/etbb/enc/etbb1_rluk7r.enc
-2021/12/21 | 3434 | fonts/etbb/enc/etbb1_u2xzqd.enc
-2021/12/21 | 3320 | fonts/etbb/enc/etbb1_ue3xcj.enc
-2021/12/21 | 2970 | fonts/etbb/enc/etbb1_ujerr7.enc
-2021/12/21 | 3369 | fonts/etbb/enc/etbb1_vbmlbb.enc
-2021/12/21 | 3035 | fonts/etbb/enc/etbb_242knm.enc
-2021/12/21 | 3019 | fonts/etbb/enc/etbb_33mftd.enc
-2021/12/21 | 2904 | fonts/etbb/enc/etbb_3bao6x.enc
-2021/12/21 | 2897 | fonts/etbb/enc/etbb_3li7dq.enc
-2021/12/21 | 3194 | fonts/etbb/enc/etbb_3pnwav.enc
-2021/12/21 | 3200 | fonts/etbb/enc/etbb_3rdlap.enc
-2021/12/21 | 3097 | fonts/etbb/enc/etbb_4h6gms.enc
-2021/12/21 | 3091 | fonts/etbb/enc/etbb_4hpi45.enc
-2021/12/21 | 3027 | fonts/etbb/enc/etbb_4qfaj2.enc
-2021/12/21 | 2954 | fonts/etbb/enc/etbb_4sxvu4.enc
-2021/12/21 | 2969 | fonts/etbb/enc/etbb_55s5uq.enc
-2021/12/21 | 3367 | fonts/etbb/enc/etbb_5hqhd4.enc
-2021/12/21 | 3023 | fonts/etbb/enc/etbb_5iollt.enc
-2021/12/21 | 3488 | fonts/etbb/enc/etbb_5ll7zh.enc
-2021/12/21 | 3154 | fonts/etbb/enc/etbb_65swoa.enc
-2021/12/21 | 3360 | fonts/etbb/enc/etbb_6b4rhp.enc
-2021/12/21 | 3368 | fonts/etbb/enc/etbb_6bb767.enc
-2021/12/21 | 3305 | fonts/etbb/enc/etbb_6z6nrw.enc
-2021/12/21 | 3497 | fonts/etbb/enc/etbb_7dlbn4.enc
-2021/12/21 | 3416 | fonts/etbb/enc/etbb_7pzsmk.enc
-2021/12/21 | 3441 | fonts/etbb/enc/etbb_7t4ywj.enc
-2021/12/21 | 3376 | fonts/etbb/enc/etbb_7tqudy.enc
-2021/12/21 | 3425 | fonts/etbb/enc/etbb_7uz5xh.enc
-2021/12/21 | 3387 | fonts/etbb/enc/etbb_7vqeic.enc
-2021/12/21 | 3272 | fonts/etbb/enc/etbb_agksat.enc
-2021/12/21 | 3417 | fonts/etbb/enc/etbb_atf2m5.enc
-2021/12/21 | 2952 | fonts/etbb/enc/etbb_ay4ati.enc
-2021/12/21 | 3504 | fonts/etbb/enc/etbb_boj3jd.enc
-2021/12/21 | 3417 | fonts/etbb/enc/etbb_brounl.enc
-2021/12/21 | 2817 | fonts/etbb/enc/etbb_cluc7m.enc
-2021/12/21 | 3439 | fonts/etbb/enc/etbb_cp6bsz.enc
-2021/12/21 | 3023 | fonts/etbb/enc/etbb_cpb6sd.enc
-2021/12/21 | 3092 | fonts/etbb/enc/etbb_cq6xx2.enc
-2021/12/21 | 3031 | fonts/etbb/enc/etbb_cxbogn.enc
-2021/12/21 | 3375 | fonts/etbb/enc/etbb_cyp5f5.enc
-2021/12/21 | 3106 | fonts/etbb/enc/etbb_cyyszv.enc
-2021/12/21 | 3229 | fonts/etbb/enc/etbb_dep6cd.enc
-2021/12/21 | 3272 | fonts/etbb/enc/etbb_dv2xfw.enc
-2021/12/21 | 3151 | fonts/etbb/enc/etbb_dz2nen.enc
-2021/12/21 | 2851 | fonts/etbb/enc/etbb_e3m4fz.enc
-2021/12/21 | 3424 | fonts/etbb/enc/etbb_e7zo2o.enc
-2021/12/21 | 3261 | fonts/etbb/enc/etbb_ea2dgh.enc
-2021/12/21 | 3426 | fonts/etbb/enc/etbb_ehl4wc.enc
-2021/12/21 | 2969 | fonts/etbb/enc/etbb_elsw3h.enc
-2021/12/21 | 3080 | fonts/etbb/enc/etbb_f55msl.enc
-2021/12/21 | 3026 | fonts/etbb/enc/etbb_fpvlkw.enc
-2021/12/21 | 2976 | fonts/etbb/enc/etbb_frt5zk.enc
-2021/12/21 | 2830 | fonts/etbb/enc/etbb_ftphfy.enc
-2021/12/21 | 3081 | fonts/etbb/enc/etbb_fwcdph.enc
-2021/12/21 | 3361 | fonts/etbb/enc/etbb_gcyiic.enc
-2021/12/21 | 3200 | fonts/etbb/enc/etbb_ghqdpy.enc
-2021/12/21 | 3025 | fonts/etbb/enc/etbb_gojfsq.enc
-2021/12/21 | 3075 | fonts/etbb/enc/etbb_gtqfg2.enc
-2021/12/21 | 2857 | fonts/etbb/enc/etbb_h4dyum.enc
-2021/12/21 | 2919 | fonts/etbb/enc/etbb_hbqmiu.enc
-2021/12/21 | 3496 | fonts/etbb/enc/etbb_hdnox5.enc
-2021/12/21 | 3165 | fonts/etbb/enc/etbb_hn62ay.enc
-2021/12/21 | 2974 | fonts/etbb/enc/etbb_i5ezvi.enc
-2021/12/21 | 3265 | fonts/etbb/enc/etbb_icp3zk.enc
-2021/12/21 | 3026 | fonts/etbb/enc/etbb_ifuncr.enc
-2021/12/21 | 2847 | fonts/etbb/enc/etbb_ihmnlr.enc
-2021/12/21 | 3433 | fonts/etbb/enc/etbb_j4gzyc.enc
-2021/12/21 | 3034 | fonts/etbb/enc/etbb_j7myeh.enc
-2021/12/21 | 3416 | fonts/etbb/enc/etbb_jejpug.enc
-2021/12/21 | 2955 | fonts/etbb/enc/etbb_kvzzr3.enc
-2021/12/21 | 3383 | fonts/etbb/enc/etbb_ladhhj.enc
-2021/12/21 | 3201 | fonts/etbb/enc/etbb_le3wsu.enc
-2021/12/21 | 2951 | fonts/etbb/enc/etbb_lolxkk.enc
-2021/12/21 | 3024 | fonts/etbb/enc/etbb_m5kdwt.enc
-2021/12/21 | 3193 | fonts/etbb/enc/etbb_m74he6.enc
-2021/12/21 | 2979 | fonts/etbb/enc/etbb_mpvq56.enc
-2021/12/21 | 3352 | fonts/etbb/enc/etbb_muumxe.enc
-2021/12/21 | 3201 | fonts/etbb/enc/etbb_n5h2ym.enc
-2021/12/21 | 3311 | fonts/etbb/enc/etbb_n6yk3i.enc
-2021/12/21 | 2972 | fonts/etbb/enc/etbb_nfh2ow.enc
-2021/12/21 | 3367 | fonts/etbb/enc/etbb_no4mhs.enc
-2021/12/21 | 3151 | fonts/etbb/enc/etbb_nvfc5y.enc
-2021/12/21 | 3040 | fonts/etbb/enc/etbb_nvr6ig.enc
-2021/12/21 | 3425 | fonts/etbb/enc/etbb_oe3mzn.enc
-2021/12/21 | 3018 | fonts/etbb/enc/etbb_ohc25e.enc
-2021/12/21 | 3232 | fonts/etbb/enc/etbb_ohvjcv.enc
-2021/12/21 | 3473 | fonts/etbb/enc/etbb_oynaqb.enc
-2021/12/21 | 2902 | fonts/etbb/enc/etbb_p4wmli.enc
-2021/12/21 | 2896 | fonts/etbb/enc/etbb_pijcl4.enc
-2021/12/21 | 3432 | fonts/etbb/enc/etbb_q62n24.enc
-2021/12/21 | 2900 | fonts/etbb/enc/etbb_qqjyre.enc
-2021/12/21 | 3151 | fonts/etbb/enc/etbb_qrk72g.enc
-2021/12/21 | 2901 | fonts/etbb/enc/etbb_r34xpu.enc
-2021/12/21 | 2985 | fonts/etbb/enc/etbb_riohwx.enc
-2021/12/21 | 2929 | fonts/etbb/enc/etbb_rluk7r.enc
-2021/12/21 | 2968 | fonts/etbb/enc/etbb_rt4kro.enc
-2021/12/21 | 2984 | fonts/etbb/enc/etbb_rzlqzq.enc
-2021/12/21 | 3163 | fonts/etbb/enc/etbb_skushq.enc
-2021/12/21 | 3152 | fonts/etbb/enc/etbb_tbmtgo.enc
-2021/12/21 | 3251 | fonts/etbb/enc/etbb_tif2yn.enc
-2021/12/21 | 3432 | fonts/etbb/enc/etbb_u2xzqd.enc
-2021/12/21 | 3318 | fonts/etbb/enc/etbb_ue3xcj.enc
-2021/12/21 | 2968 | fonts/etbb/enc/etbb_ujerr7.enc
-2021/12/21 | 2956 | fonts/etbb/enc/etbb_ujmsnd.enc
-2021/12/21 | 2861 | fonts/etbb/enc/etbb_uoncjt.enc
-2021/12/21 | 2889 | fonts/etbb/enc/etbb_upf3od.enc
-2021/12/21 | 3042 | fonts/etbb/enc/etbb_v6nho7.enc
-2021/12/21 | 3367 | fonts/etbb/enc/etbb_vbmlbb.enc
-2021/12/21 | 2955 | fonts/etbb/enc/etbb_wplash.enc
-2021/12/21 | 3095 | fonts/etbb/enc/etbb_xe5wuh.enc
-2021/12/21 | 3147 | fonts/etbb/enc/etbb_xmn5et.enc
-2021/12/21 | 3144 | fonts/etbb/enc/etbb_xq7qra.enc
-2021/12/21 | 3090 | fonts/etbb/enc/etbb_ybjyd4.enc
-2021/12/21 | 2906 | fonts/etbb/enc/etbb_ydcfbc.enc
-2021/12/21 | 2995 | fonts/etbb/enc/etbb_yiqwpu.enc
-2021/12/21 | 2944 | fonts/etbb/enc/etbb_ytzykv.enc
-2021/12/21 | 2939 | fonts/etbb/enc/etbb_yzoycr.enc
-2021/12/21 | 3422 | fonts/etbb/enc/etbb_ziol45.enc
-2021/12/21 | 3076 | fonts/etbb/enc/etbb_zpkt7y.enc
-2021/12/21 | 31506 | fonts/etbb/map/ETbb.map
-2021/12/21 | 95044 | fonts/etbb/opentype/ETbb-BoldItalic.otf
-2021/12/21 | 98868 | fonts/etbb/opentype/ETbb-Bold.otf
-2021/12/21 | 88628 | fonts/etbb/opentype/ETbb-Italic.otf
-2021/12/21 | 111596 | fonts/etbb/opentype/ETbb-Regular.otf
-2021/12/21 | 3045 | fonts/etbb/README
+2022/02/02 | 212491 | fonts/etbb/afm/ETbb-Bold.afm
+2022/02/02 | 350806 | fonts/etbb/afm/ETbb-BoldItalic.afm
+2022/02/02 | 459947 | fonts/etbb/afm/ETbb-Italic.afm
+2022/02/02 | 778298 | fonts/etbb/afm/ETbb-Regular.afm
+2022/02/04 | 350901 | fonts/etbb/doc/ETbb-doc.pdf
+2022/02/04 | 31577 | fonts/etbb/doc/ETbb-doc.tex
+2022/02/04 | 1215 | fonts/etbb/doc/LICENSE
+2022/02/04 | 3047 | fonts/etbb/enc/etbb1_3ccbvp.enc
+2022/02/04 | 3442 | fonts/etbb/enc/etbb1_3ggaku.enc
+2022/02/04 | 3393 | fonts/etbb/enc/etbb1_6bhqsy.enc
+2022/02/04 | 3443 | fonts/etbb/enc/etbb1_6dkfmm.enc
+2022/02/04 | 3402 | fonts/etbb/enc/etbb1_d63baf.enc
+2022/02/04 | 3452 | fonts/etbb/enc/etbb1_dpvwoq.enc
+2022/02/04 | 2975 | fonts/etbb/enc/etbb1_eqc2ac.enc
+2022/02/04 | 3451 | fonts/etbb/enc/etbb1_frcze6.enc
+2022/02/04 | 2976 | fonts/etbb/enc/etbb1_hah5or.enc
+2022/02/04 | 3523 | fonts/etbb/enc/etbb1_mfrons.enc
+2022/02/04 | 3032 | fonts/etbb/enc/etbb1_mgm6re.enc
+2022/02/04 | 2926 | fonts/etbb/enc/etbb1_pvrda3.enc
+2022/02/04 | 3514 | fonts/etbb/enc/etbb1_sb7odk.enc
+2022/02/04 | 3104 | fonts/etbb/enc/etbb1_vtabip.enc
+2022/02/04 | 3033 | fonts/etbb/enc/etbb1_xaqh3v.enc
+2022/02/04 | 2983 | fonts/etbb/enc/etbb1_yziesh.enc
+2022/02/04 | 3035 | fonts/etbb/enc/etbb_242knm.enc
+2022/02/04 | 3274 | fonts/etbb/enc/etbb_2jmcdk.enc
+2022/02/04 | 3354 | fonts/etbb/enc/etbb_2ynk4h.enc
+2022/02/04 | 3019 | fonts/etbb/enc/etbb_33mftd.enc
+2022/02/04 | 3050 | fonts/etbb/enc/etbb_3ccbvp.enc
+2022/02/04 | 3451 | fonts/etbb/enc/etbb_3ggaku.enc
+2022/02/04 | 2898 | fonts/etbb/enc/etbb_3obh62.enc
+2022/02/04 | 2904 | fonts/etbb/enc/etbb_3pymqv.enc
+2022/02/04 | 2876 | fonts/etbb/enc/etbb_3ygfa2.enc
+2022/02/04 | 3409 | fonts/etbb/enc/etbb_42bwpg.enc
+2022/02/04 | 3091 | fonts/etbb/enc/etbb_4hpi45.enc
+2022/02/04 | 3149 | fonts/etbb/enc/etbb_4o3pf4.enc
+2022/02/04 | 2954 | fonts/etbb/enc/etbb_4sxvu4.enc
+2022/02/04 | 2970 | fonts/etbb/enc/etbb_4xv7ax.enc
+2022/02/04 | 2899 | fonts/etbb/enc/etbb_5drz2o.enc
+2022/02/04 | 3023 | fonts/etbb/enc/etbb_5iollt.enc
+2022/02/04 | 2974 | fonts/etbb/enc/etbb_5um4so.enc
+2022/02/04 | 3155 | fonts/etbb/enc/etbb_65swoa.enc
+2022/02/04 | 3402 | fonts/etbb/enc/etbb_6bhqsy.enc
+2022/02/04 | 3452 | fonts/etbb/enc/etbb_6dkfmm.enc
+2022/02/04 | 3306 | fonts/etbb/enc/etbb_6z6nrw.enc
+2022/02/04 | 3491 | fonts/etbb/enc/etbb_7dlbn4.enc
+2022/02/04 | 3263 | fonts/etbb/enc/etbb_7ipmvr.enc
+2022/02/04 | 3416 | fonts/etbb/enc/etbb_7pzsmk.enc
+2022/02/04 | 3441 | fonts/etbb/enc/etbb_7t4ywj.enc
+2022/02/04 | 3370 | fonts/etbb/enc/etbb_7tqudy.enc
+2022/02/04 | 3419 | fonts/etbb/enc/etbb_7uz5xh.enc
+2022/02/04 | 3417 | fonts/etbb/enc/etbb_atf2m5.enc
+2022/02/04 | 3029 | fonts/etbb/enc/etbb_b3flk2.enc
+2022/02/04 | 3270 | fonts/etbb/enc/etbb_bb5xlm.enc
+2022/02/04 | 3504 | fonts/etbb/enc/etbb_boj3jd.enc
+2022/02/04 | 3092 | fonts/etbb/enc/etbb_cq6xx2.enc
+2022/02/04 | 3031 | fonts/etbb/enc/etbb_cxbogn.enc
+2022/02/04 | 3375 | fonts/etbb/enc/etbb_cyp5f5.enc
+2022/02/04 | 3106 | fonts/etbb/enc/etbb_cyyszv.enc
+2022/02/04 | 3411 | fonts/etbb/enc/etbb_d63baf.enc
+2022/02/04 | 2954 | fonts/etbb/enc/etbb_dkuysn.enc
+2022/02/04 | 3461 | fonts/etbb/enc/etbb_dpvwoq.enc
+2022/02/04 | 3424 | fonts/etbb/enc/etbb_e7zo2o.enc
+2022/02/04 | 3420 | fonts/etbb/enc/etbb_ehl4wc.enc
+2022/02/04 | 2969 | fonts/etbb/enc/etbb_elsw3h.enc
+2022/02/04 | 2978 | fonts/etbb/enc/etbb_eqc2ac.enc
+2022/02/04 | 2859 | fonts/etbb/enc/etbb_eqlboo.enc
+2022/02/04 | 3080 | fonts/etbb/enc/etbb_f55msl.enc
+2022/02/04 | 3026 | fonts/etbb/enc/etbb_fpvlkw.enc
+2022/02/04 | 3460 | fonts/etbb/enc/etbb_frcze6.enc
+2022/02/04 | 2908 | fonts/etbb/enc/etbb_fveuju.enc
+2022/02/04 | 3081 | fonts/etbb/enc/etbb_fwcdph.enc
+2022/02/04 | 2903 | fonts/etbb/enc/etbb_fyek6u.enc
+2022/02/04 | 2902 | fonts/etbb/enc/etbb_g2yynh.enc
+2022/02/04 | 2953 | fonts/etbb/enc/etbb_gteq3q.enc
+2022/02/04 | 3075 | fonts/etbb/enc/etbb_gtqfg2.enc
+2022/02/04 | 2979 | fonts/etbb/enc/etbb_hah5or.enc
+2022/02/04 | 3496 | fonts/etbb/enc/etbb_hdnox5.enc
+2022/02/04 | 3166 | fonts/etbb/enc/etbb_hn62ay.enc
+2022/02/04 | 2891 | fonts/etbb/enc/etbb_i2z4ax.enc
+2022/02/04 | 2974 | fonts/etbb/enc/etbb_i5ezvi.enc
+2022/02/04 | 3025 | fonts/etbb/enc/etbb_izxro2.enc
+2022/02/04 | 2849 | fonts/etbb/enc/etbb_j43iwo.enc
+2022/02/04 | 3433 | fonts/etbb/enc/etbb_j4gzyc.enc
+2022/02/04 | 3034 | fonts/etbb/enc/etbb_j7myeh.enc
+2022/02/04 | 3207 | fonts/etbb/enc/etbb_jjhcst.enc
+2022/02/04 | 2955 | fonts/etbb/enc/etbb_kvzzr3.enc
+2022/02/04 | 3383 | fonts/etbb/enc/etbb_ladhhj.enc
+2022/02/04 | 3024 | fonts/etbb/enc/etbb_m5kdwt.enc
+2022/02/04 | 3532 | fonts/etbb/enc/etbb_mfrons.enc
+2022/02/04 | 3035 | fonts/etbb/enc/etbb_mgm6re.enc
+2022/02/04 | 2979 | fonts/etbb/enc/etbb_mpvq56.enc
+2022/02/04 | 2958 | fonts/etbb/enc/etbb_n73bzf.enc
+2022/02/04 | 3198 | fonts/etbb/enc/etbb_num7wi.enc
+2022/02/04 | 3152 | fonts/etbb/enc/etbb_nvfc5y.enc
+2022/02/04 | 3425 | fonts/etbb/enc/etbb_oe3mzn.enc
+2022/02/04 | 3018 | fonts/etbb/enc/etbb_ohc25e.enc
+2022/02/04 | 3160 | fonts/etbb/enc/etbb_olodrh.enc
+2022/02/04 | 2832 | fonts/etbb/enc/etbb_onypnl.enc
+2022/02/04 | 3153 | fonts/etbb/enc/etbb_ooqfsa.enc
+2022/02/04 | 2916 | fonts/etbb/enc/etbb_ow4ien.enc
+2022/02/04 | 3473 | fonts/etbb/enc/etbb_oynaqb.enc
+2022/02/04 | 3281 | fonts/etbb/enc/etbb_p6ehom.enc
+2022/02/04 | 2819 | fonts/etbb/enc/etbb_pqh27d.enc
+2022/02/04 | 2929 | fonts/etbb/enc/etbb_pvrda3.enc
+2022/02/04 | 3432 | fonts/etbb/enc/etbb_q62n24.enc
+2022/02/04 | 3231 | fonts/etbb/enc/etbb_rgl4wj.enc
+2022/02/04 | 2985 | fonts/etbb/enc/etbb_riohwx.enc
+2022/02/04 | 2984 | fonts/etbb/enc/etbb_rzlqzq.enc
+2022/02/04 | 3523 | fonts/etbb/enc/etbb_sb7odk.enc
+2022/02/04 | 3199 | fonts/etbb/enc/etbb_sjtq2a.enc
+2022/02/04 | 3163 | fonts/etbb/enc/etbb_skushq.enc
+2022/02/04 | 3210 | fonts/etbb/enc/etbb_t4d6nl.enc
+2022/02/04 | 3152 | fonts/etbb/enc/etbb_tbmtgo.enc
+2022/02/04 | 3202 | fonts/etbb/enc/etbb_tunzhv.enc
+2022/02/04 | 3339 | fonts/etbb/enc/etbb_ujzbb6.enc
+2022/02/04 | 3042 | fonts/etbb/enc/etbb_v6nho7.enc
+2022/02/04 | 2957 | fonts/etbb/enc/etbb_vazzz3.enc
+2022/02/04 | 3203 | fonts/etbb/enc/etbb_veuqiz.enc
+2022/02/04 | 2853 | fonts/etbb/enc/etbb_vmilsn.enc
+2022/02/04 | 3253 | fonts/etbb/enc/etbb_vqghpl.enc
+2022/02/04 | 3107 | fonts/etbb/enc/etbb_vtabip.enc
+2022/02/04 | 3036 | fonts/etbb/enc/etbb_xaqh3v.enc
+2022/02/04 | 3095 | fonts/etbb/enc/etbb_xe5wuh.enc
+2022/02/04 | 3147 | fonts/etbb/enc/etbb_xmn5et.enc
+2022/02/04 | 2863 | fonts/etbb/enc/etbb_xwgzeq.enc
+2022/02/04 | 3234 | fonts/etbb/enc/etbb_y6dqd4.enc
+2022/02/04 | 3374 | fonts/etbb/enc/etbb_yadlkl.enc
+2022/02/04 | 3090 | fonts/etbb/enc/etbb_ybjyd4.enc
+2022/02/04 | 2995 | fonts/etbb/enc/etbb_yiqwpu.enc
+2022/02/04 | 2944 | fonts/etbb/enc/etbb_ytzykv.enc
+2022/02/04 | 2986 | fonts/etbb/enc/etbb_yziesh.enc
+2022/02/04 | 2939 | fonts/etbb/enc/etbb_yzoycr.enc
+2022/02/04 | 3076 | fonts/etbb/enc/etbb_zpkt7y.enc
+2022/02/04 | 31191 | fonts/etbb/map/ETbb.map
+2022/02/02 | 98984 | fonts/etbb/opentype/ETbb-BoldItalic.otf
+2022/02/02 | 103300 | fonts/etbb/opentype/ETbb-Bold.otf
+2022/02/02 | 92288 | fonts/etbb/opentype/ETbb-Italic.otf
+2022/02/02 | 116836 | fonts/etbb/opentype/ETbb-Regular.otf
+2022/02/04 | 3333 | fonts/etbb/README
2020/02/16 | 178 | fonts/etbb/tex/ETbb.fontspec
-2020/09/21 | 6382 | fonts/etbb/tex/ETbb.sty
+2022/02/04 | 6976 | fonts/etbb/tex/ETbb.sty
2020/07/02 | 2054 | fonts/etbb/tex/LY1ETbb-Dnom.fd
2020/07/02 | 2021 | fonts/etbb/tex/LY1ETbb-Inf.fd
2020/07/02 | 4389 | fonts/etbb/tex/LY1ETbb-LF.fd
@@ -38710,667 +38705,721 @@
2020/07/02 | 2021 | fonts/etbb/tex/TS1ETbb-OsF.fd
2020/07/02 | 2021 | fonts/etbb/tex/TS1ETbb-TLF.fd
2020/07/02 | 2054 | fonts/etbb/tex/TS1ETbb-TOsF.fd
-2021/12/21 | 1720 | fonts/etbb/tfm/Etbb1-Bold-dnom-t1--base.tfm
-2021/12/21 | 22372 | fonts/etbb/tfm/Etbb1-Bold-dnom-t1.tfm
-2021/12/21 | 1908 | fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1--base.tfm
-2021/12/21 | 21556 | fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1.tfm
-2021/12/21 | 2024 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1--base.tfm
-2021/12/21 | 28120 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1.tfm
-2021/12/21 | 1932 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1--base.tfm
-2021/12/21 | 21856 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1.tfm
-2021/12/21 | 1932 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1--base.tfm
-2021/12/21 | 22128 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1.tfm
-2021/12/21 | 2036 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1--base.tfm
-2021/12/21 | 28132 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1.tfm
-2021/12/21 | 1924 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1--base.tfm
-2021/12/21 | 21848 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1.tfm
-2021/12/21 | 1924 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1--base.tfm
-2021/12/21 | 22120 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1.tfm
-2021/12/21 | 2008 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1--base.tfm
-2021/12/21 | 28104 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1.tfm
-2021/12/21 | 1900 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1--base.tfm
-2021/12/21 | 21824 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1.tfm
-2021/12/21 | 1900 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1--base.tfm
-2021/12/21 | 22096 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1.tfm
-2021/12/21 | 2012 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1--base.tfm
-2021/12/21 | 28108 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1--base.tfm
-2021/12/21 | 21828 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1--base.tfm
-2021/12/21 | 22100 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1.tfm
-2021/12/21 | 1844 | fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1--base.tfm
-2021/12/21 | 23612 | fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1.tfm
-2021/12/21 | 1756 | fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1--base.tfm
-2021/12/21 | 23324 | fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1.tfm
-2021/12/21 | 1752 | fonts/etbb/tfm/Etbb1-Bold-lf-t1--base.tfm
-2021/12/21 | 23852 | fonts/etbb/tfm/Etbb1-Bold-lf-t1.tfm
-2021/12/21 | 1832 | fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1--base.tfm
-2021/12/21 | 23600 | fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1.tfm
-2021/12/21 | 1752 | fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1--base.tfm
-2021/12/21 | 23320 | fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1.tfm
-2021/12/21 | 1748 | fonts/etbb/tfm/Etbb1-Bold-osf-t1--base.tfm
-2021/12/21 | 23848 | fonts/etbb/tfm/Etbb1-Bold-osf-t1.tfm
-2021/12/21 | 1812 | fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1--base.tfm
-2021/12/21 | 23580 | fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1.tfm
-2021/12/21 | 1732 | fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1--base.tfm
-2021/12/21 | 23300 | fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1.tfm
-2021/12/21 | 1728 | fonts/etbb/tfm/Etbb1-Bold-tlf-t1--base.tfm
-2021/12/21 | 23828 | fonts/etbb/tfm/Etbb1-Bold-tlf-t1.tfm
-2021/12/21 | 1812 | fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1--base.tfm
-2021/12/21 | 23580 | fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1.tfm
-2021/12/21 | 1728 | fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1--base.tfm
-2021/12/21 | 23296 | fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1.tfm
-2021/12/21 | 1724 | fonts/etbb/tfm/Etbb1-Bold-tosf-t1--base.tfm
-2021/12/21 | 23824 | fonts/etbb/tfm/Etbb1-Bold-tosf-t1.tfm
-2021/12/21 | 1920 | fonts/etbb/tfm/Etbb1-Italic-dnom-t1--base.tfm
-2021/12/21 | 23448 | fonts/etbb/tfm/Etbb1-Italic-dnom-t1.tfm
-2021/12/21 | 2004 | fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1--base.tfm
-2021/12/21 | 32540 | fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1.tfm
-2021/12/21 | 1928 | fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1--base.tfm
-2021/12/21 | 23584 | fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1.tfm
-2021/12/21 | 1928 | fonts/etbb/tfm/Etbb1-Italic-lf-t1--base.tfm
-2021/12/21 | 23980 | fonts/etbb/tfm/Etbb1-Italic-lf-t1.tfm
-2021/12/21 | 2016 | fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1--base.tfm
-2021/12/21 | 32552 | fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1.tfm
-2021/12/21 | 1932 | fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1--base.tfm
-2021/12/21 | 23588 | fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1.tfm
-2021/12/21 | 1932 | fonts/etbb/tfm/Etbb1-Italic-osf-t1--base.tfm
-2021/12/21 | 23984 | fonts/etbb/tfm/Etbb1-Italic-osf-t1.tfm
-2021/12/21 | 1988 | fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1--base.tfm
-2021/12/21 | 32524 | fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1--base.tfm
-2021/12/21 | 23560 | fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/Etbb1-Italic-tlf-t1--base.tfm
-2021/12/21 | 23956 | fonts/etbb/tfm/Etbb1-Italic-tlf-t1.tfm
-2021/12/21 | 1992 | fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1--base.tfm
-2021/12/21 | 32528 | fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1--base.tfm
-2021/12/21 | 23560 | fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/Etbb1-Italic-tosf-t1--base.tfm
-2021/12/21 | 23956 | fonts/etbb/tfm/Etbb1-Italic-tosf-t1.tfm
-2021/12/21 | 1832 | fonts/etbb/tfm/Etbb1-Regular-dnom-t1--base.tfm
-2021/12/21 | 46736 | fonts/etbb/tfm/Etbb1-Regular-dnom-t1.tfm
-2021/12/21 | 1872 | fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1--base.tfm
-2021/12/21 | 43424 | fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1.tfm
-2021/12/21 | 1844 | fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1--base.tfm
-2021/12/21 | 47856 | fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1.tfm
-2021/12/21 | 1840 | fonts/etbb/tfm/Etbb1-Regular-lf-t1--base.tfm
-2021/12/21 | 48640 | fonts/etbb/tfm/Etbb1-Regular-lf-t1.tfm
-2021/12/21 | 1872 | fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1--base.tfm
-2021/12/21 | 43424 | fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1.tfm
-2021/12/21 | 1844 | fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1--base.tfm
-2021/12/21 | 47856 | fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1.tfm
-2021/12/21 | 1840 | fonts/etbb/tfm/Etbb1-Regular-osf-t1--base.tfm
-2021/12/21 | 48640 | fonts/etbb/tfm/Etbb1-Regular-osf-t1.tfm
-2021/12/21 | 1852 | fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1--base.tfm
-2021/12/21 | 43404 | fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1.tfm
-2021/12/21 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1--base.tfm
-2021/12/21 | 47836 | fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1.tfm
-2021/12/21 | 1820 | fonts/etbb/tfm/Etbb1-Regular-tlf-t1--base.tfm
-2021/12/21 | 48620 | fonts/etbb/tfm/Etbb1-Regular-tlf-t1.tfm
-2021/12/21 | 1852 | fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1--base.tfm
-2021/12/21 | 43404 | fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1.tfm
-2021/12/21 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1--base.tfm
-2021/12/21 | 47836 | fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1.tfm
-2021/12/21 | 1820 | fonts/etbb/tfm/Etbb1-Regular-tosf-t1--base.tfm
-2021/12/21 | 48620 | fonts/etbb/tfm/Etbb1-Regular-tosf-t1.tfm
-2021/12/21 | 1760 | fonts/etbb/tfm/ETbb-Bold-dnom-ly1--base.tfm
-2021/12/21 | 1764 | fonts/etbb/tfm/ETbb-Bold-dnom-ly1.tfm
-2021/12/21 | 1236 | fonts/etbb/tfm/ETbb-Bold-dnom-ot1.tfm
-2021/12/21 | 1732 | fonts/etbb/tfm/ETbb-Bold-dnom-t1--base.tfm
-2021/12/21 | 1740 | fonts/etbb/tfm/ETbb-Bold-dnom-t1.tfm
-2021/12/21 | 1760 | fonts/etbb/tfm/ETbb-Bold-inf-ly1--base.tfm
-2021/12/21 | 1764 | fonts/etbb/tfm/ETbb-Bold-inf-ly1.tfm
-2021/12/21 | 1240 | fonts/etbb/tfm/ETbb-Bold-inf-ot1.tfm
-2021/12/21 | 1736 | fonts/etbb/tfm/ETbb-Bold-inf-t1--base.tfm
-2021/12/21 | 1744 | fonts/etbb/tfm/ETbb-Bold-inf-t1.tfm
-2021/12/21 | 1944 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ly1--base.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ly1.tfm
-2021/12/21 | 1420 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1.tfm
-2021/12/21 | 1920 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1--base.tfm
-2021/12/21 | 1928 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ly1--base.tfm
-2021/12/21 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ly1.tfm
-2021/12/21 | 1420 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1.tfm
-2021/12/21 | 1916 | fonts/etbb/tfm/ETbb-BoldItalic-inf-t1--base.tfm
-2021/12/21 | 1924 | fonts/etbb/tfm/ETbb-BoldItalic-inf-t1.tfm
-2021/12/21 | 1980 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ly1--base.tfm
-2021/12/21 | 13440 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ly1.tfm
-2021/12/21 | 4484 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1.tfm
-2021/12/21 | 2032 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ly1--base.tfm
-2021/12/21 | 19620 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ly1.tfm
-2021/12/21 | 1476 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1--base.tfm
-2021/12/21 | 5328 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1.tfm
-2021/12/21 | 2036 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1--base.tfm
-2021/12/21 | 28148 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1.tfm
-2021/12/21 | 1980 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ly1--base.tfm
-2021/12/21 | 13220 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ly1.tfm
-2021/12/21 | 4396 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1.tfm
-2021/12/21 | 1944 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1--base.tfm
-2021/12/21 | 21876 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1.tfm
-2021/12/21 | 1944 | fonts/etbb/tfm/ETbb-BoldItalic-lf-t1--base.tfm
-2021/12/21 | 22148 | fonts/etbb/tfm/ETbb-BoldItalic-lf-t1.tfm
-2021/12/21 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ts1--base.tfm
-2021/12/21 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ts1.tfm
-2021/12/21 | 1968 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ly1--base.tfm
-2021/12/21 | 13428 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ly1.tfm
-2021/12/21 | 4468 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1.tfm
-2021/12/21 | 2040 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ly1--base.tfm
-2021/12/21 | 19628 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ly1.tfm
-2021/12/21 | 1468 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1--base.tfm
-2021/12/21 | 5320 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1.tfm
-2021/12/21 | 2048 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1--base.tfm
-2021/12/21 | 28160 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1.tfm
-2021/12/21 | 1968 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ly1--base.tfm
-2021/12/21 | 13208 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ly1.tfm
-2021/12/21 | 4380 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1.tfm
-2021/12/21 | 1936 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1--base.tfm
-2021/12/21 | 21868 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1.tfm
-2021/12/21 | 1936 | fonts/etbb/tfm/ETbb-BoldItalic-osf-t1--base.tfm
-2021/12/21 | 22140 | fonts/etbb/tfm/ETbb-BoldItalic-osf-t1.tfm
-2021/12/21 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ts1--base.tfm
-2021/12/21 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ts1.tfm
-2021/12/21 | 2060 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ly1--base.tfm
-2021/12/21 | 2064 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ly1.tfm
-2021/12/21 | 1464 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1.tfm
-2021/12/21 | 2056 | fonts/etbb/tfm/ETbb-BoldItalic-sup-t1--base.tfm
-2021/12/21 | 2064 | fonts/etbb/tfm/ETbb-BoldItalic-sup-t1.tfm
-2021/12/21 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ly1--base.tfm
-2021/12/21 | 13412 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ly1.tfm
-2021/12/21 | 4468 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1.tfm
-2021/12/21 | 2020 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ly1--base.tfm
-2021/12/21 | 19608 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ly1.tfm
-2021/12/21 | 1460 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1--base.tfm
-2021/12/21 | 5312 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1.tfm
-2021/12/21 | 2020 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1--base.tfm
-2021/12/21 | 28132 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1.tfm
-2021/12/21 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ly1--base.tfm
-2021/12/21 | 13192 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ly1.tfm
-2021/12/21 | 4380 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1.tfm
-2021/12/21 | 1912 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1--base.tfm
-2021/12/21 | 21844 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1.tfm
-2021/12/21 | 1912 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1--base.tfm
-2021/12/21 | 22116 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1.tfm
-2021/12/21 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ts1--base.tfm
-2021/12/21 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ts1.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ly1--base.tfm
-2021/12/21 | 13408 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ly1.tfm
-2021/12/21 | 4448 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1.tfm
-2021/12/21 | 2016 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ly1--base.tfm
-2021/12/21 | 19604 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ly1.tfm
-2021/12/21 | 1444 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1--base.tfm
-2021/12/21 | 5296 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1.tfm
-2021/12/21 | 2024 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1--base.tfm
-2021/12/21 | 28136 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ly1--base.tfm
-2021/12/21 | 13188 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ly1.tfm
-2021/12/21 | 4360 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1.tfm
-2021/12/21 | 1916 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1--base.tfm
-2021/12/21 | 21848 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1.tfm
-2021/12/21 | 1916 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1--base.tfm
-2021/12/21 | 22120 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1.tfm
-2021/12/21 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ts1--base.tfm
-2021/12/21 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ts1.tfm
-2021/12/21 | 1800 | fonts/etbb/tfm/ETbb-Bold-lf-ly1--base.tfm
-2021/12/21 | 26068 | fonts/etbb/tfm/ETbb-Bold-lf-ly1.tfm
-2021/12/21 | 6220 | fonts/etbb/tfm/ETbb-Bold-lf-ot1.tfm
-2021/12/21 | 1844 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1--base.tfm
-2021/12/21 | 25824 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1.tfm
-2021/12/21 | 1272 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1--base.tfm
-2021/12/21 | 6064 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1.tfm
-2021/12/21 | 1856 | fonts/etbb/tfm/ETbb-Bold-lf-sc-t1--base.tfm
-2021/12/21 | 23672 | fonts/etbb/tfm/ETbb-Bold-lf-sc-t1.tfm
-2021/12/21 | 1804 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ly1--base.tfm
-2021/12/21 | 25516 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ly1.tfm
-2021/12/21 | 5976 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1.tfm
-2021/12/21 | 1768 | fonts/etbb/tfm/ETbb-Bold-lf-swash-t1--base.tfm
-2021/12/21 | 23332 | fonts/etbb/tfm/ETbb-Bold-lf-swash-t1.tfm
-2021/12/21 | 1764 | fonts/etbb/tfm/ETbb-Bold-lf-t1--base.tfm
-2021/12/21 | 23860 | fonts/etbb/tfm/ETbb-Bold-lf-t1.tfm
-2021/12/21 | 1352 | fonts/etbb/tfm/ETbb-Bold-lf-ts1--base.tfm
-2021/12/21 | 1368 | fonts/etbb/tfm/ETbb-Bold-lf-ts1.tfm
-2021/12/21 | 1792 | fonts/etbb/tfm/ETbb-Bold-osf-ly1--base.tfm
-2021/12/21 | 26060 | fonts/etbb/tfm/ETbb-Bold-osf-ly1.tfm
-2021/12/21 | 6216 | fonts/etbb/tfm/ETbb-Bold-osf-ot1.tfm
-2021/12/21 | 1836 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1--base.tfm
-2021/12/21 | 25816 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1.tfm
-2021/12/21 | 1264 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1--base.tfm
-2021/12/21 | 6056 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1.tfm
-2021/12/21 | 1844 | fonts/etbb/tfm/ETbb-Bold-osf-sc-t1--base.tfm
-2021/12/21 | 23660 | fonts/etbb/tfm/ETbb-Bold-osf-sc-t1.tfm
-2021/12/21 | 1796 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ly1--base.tfm
-2021/12/21 | 25508 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ly1.tfm
-2021/12/21 | 5972 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1.tfm
-2021/12/21 | 1764 | fonts/etbb/tfm/ETbb-Bold-osf-swash-t1--base.tfm
-2021/12/21 | 23328 | fonts/etbb/tfm/ETbb-Bold-osf-swash-t1.tfm
-2021/12/21 | 1760 | fonts/etbb/tfm/ETbb-Bold-osf-t1--base.tfm
-2021/12/21 | 23856 | fonts/etbb/tfm/ETbb-Bold-osf-t1.tfm
-2021/12/21 | 1352 | fonts/etbb/tfm/ETbb-Bold-osf-ts1--base.tfm
-2021/12/21 | 1368 | fonts/etbb/tfm/ETbb-Bold-osf-ts1.tfm
-2021/12/21 | 1844 | fonts/etbb/tfm/ETbb-Bold-sup-ly1--base.tfm
-2021/12/21 | 1848 | fonts/etbb/tfm/ETbb-Bold-sup-ly1.tfm
-2021/12/21 | 1244 | fonts/etbb/tfm/ETbb-Bold-sup-ot1.tfm
-2021/12/21 | 1852 | fonts/etbb/tfm/ETbb-Bold-sup-t1--base.tfm
-2021/12/21 | 1860 | fonts/etbb/tfm/ETbb-Bold-sup-t1.tfm
-2021/12/21 | 1772 | fonts/etbb/tfm/ETbb-Bold-tlf-ly1--base.tfm
-2021/12/21 | 26040 | fonts/etbb/tfm/ETbb-Bold-tlf-ly1.tfm
-2021/12/21 | 6196 | fonts/etbb/tfm/ETbb-Bold-tlf-ot1.tfm
-2021/12/21 | 1816 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1--base.tfm
-2021/12/21 | 25796 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1.tfm
-2021/12/21 | 1244 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1--base.tfm
-2021/12/21 | 6036 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1.tfm
-2021/12/21 | 1824 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1--base.tfm
-2021/12/21 | 23640 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1.tfm
-2021/12/21 | 1776 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ly1--base.tfm
-2021/12/21 | 25488 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ly1.tfm
-2021/12/21 | 5952 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1.tfm
-2021/12/21 | 1744 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1--base.tfm
-2021/12/21 | 23308 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1.tfm
-2021/12/21 | 1740 | fonts/etbb/tfm/ETbb-Bold-tlf-t1--base.tfm
-2021/12/21 | 23836 | fonts/etbb/tfm/ETbb-Bold-tlf-t1.tfm
-2021/12/21 | 1352 | fonts/etbb/tfm/ETbb-Bold-tlf-ts1--base.tfm
-2021/12/21 | 1368 | fonts/etbb/tfm/ETbb-Bold-tlf-ts1.tfm
-2021/12/21 | 1772 | fonts/etbb/tfm/ETbb-Bold-tosf-ly1--base.tfm
-2021/12/21 | 26040 | fonts/etbb/tfm/ETbb-Bold-tosf-ly1.tfm
-2021/12/21 | 6192 | fonts/etbb/tfm/ETbb-Bold-tosf-ot1.tfm
-2021/12/21 | 1816 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1--base.tfm
-2021/12/21 | 25796 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1.tfm
-2021/12/21 | 1240 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1--base.tfm
-2021/12/21 | 6032 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1.tfm
-2021/12/21 | 1824 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1--base.tfm
-2021/12/21 | 23640 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1.tfm
-2021/12/21 | 1776 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ly1--base.tfm
-2021/12/21 | 25488 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ly1.tfm
-2021/12/21 | 5948 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1.tfm
-2021/12/21 | 1740 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1--base.tfm
-2021/12/21 | 23304 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1.tfm
-2021/12/21 | 1736 | fonts/etbb/tfm/ETbb-Bold-tosf-t1--base.tfm
-2021/12/21 | 23832 | fonts/etbb/tfm/ETbb-Bold-tosf-t1.tfm
-2021/12/21 | 1352 | fonts/etbb/tfm/ETbb-Bold-tosf-ts1--base.tfm
-2021/12/21 | 1368 | fonts/etbb/tfm/ETbb-Bold-tosf-ts1.tfm
-2021/12/21 | 1964 | fonts/etbb/tfm/ETbb-Italic-dnom-ly1--base.tfm
-2021/12/21 | 1968 | fonts/etbb/tfm/ETbb-Italic-dnom-ly1.tfm
-2021/12/21 | 1440 | fonts/etbb/tfm/ETbb-Italic-dnom-ot1.tfm
-2021/12/21 | 1932 | fonts/etbb/tfm/ETbb-Italic-dnom-t1--base.tfm
-2021/12/21 | 1940 | fonts/etbb/tfm/ETbb-Italic-dnom-t1.tfm
-2021/12/21 | 1952 | fonts/etbb/tfm/ETbb-Italic-inf-ly1--base.tfm
-2021/12/21 | 1956 | fonts/etbb/tfm/ETbb-Italic-inf-ly1.tfm
-2021/12/21 | 1436 | fonts/etbb/tfm/ETbb-Italic-inf-ot1.tfm
-2021/12/21 | 1924 | fonts/etbb/tfm/ETbb-Italic-inf-t1--base.tfm
-2021/12/21 | 1932 | fonts/etbb/tfm/ETbb-Italic-inf-t1.tfm
-2021/12/21 | 1972 | fonts/etbb/tfm/ETbb-Italic-lf-ly1--base.tfm
-2021/12/21 | 14364 | fonts/etbb/tfm/ETbb-Italic-lf-ly1.tfm
-2021/12/21 | 4644 | fonts/etbb/tfm/ETbb-Italic-lf-ot1.tfm
-2021/12/21 | 2012 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ly1--base.tfm
-2021/12/21 | 22624 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ly1.tfm
-2021/12/21 | 1468 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1--base.tfm
-2021/12/21 | 5948 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1.tfm
-2021/12/21 | 2016 | fonts/etbb/tfm/ETbb-Italic-lf-sc-t1--base.tfm
-2021/12/21 | 32568 | fonts/etbb/tfm/ETbb-Italic-lf-sc-t1.tfm
-2021/12/21 | 1972 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ly1--base.tfm
-2021/12/21 | 14068 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ly1.tfm
-2021/12/21 | 4512 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1.tfm
-2021/12/21 | 1940 | fonts/etbb/tfm/ETbb-Italic-lf-swash-t1--base.tfm
-2021/12/21 | 23604 | fonts/etbb/tfm/ETbb-Italic-lf-swash-t1.tfm
-2021/12/21 | 1940 | fonts/etbb/tfm/ETbb-Italic-lf-t1--base.tfm
-2021/12/21 | 24000 | fonts/etbb/tfm/ETbb-Italic-lf-t1.tfm
-2021/12/21 | 1404 | fonts/etbb/tfm/ETbb-Italic-lf-ts1--base.tfm
-2021/12/21 | 1420 | fonts/etbb/tfm/ETbb-Italic-lf-ts1.tfm
-2021/12/21 | 1972 | fonts/etbb/tfm/ETbb-Italic-osf-ly1--base.tfm
-2021/12/21 | 14364 | fonts/etbb/tfm/ETbb-Italic-osf-ly1.tfm
-2021/12/21 | 4636 | fonts/etbb/tfm/ETbb-Italic-osf-ot1.tfm
-2021/12/21 | 2020 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ly1--base.tfm
-2021/12/21 | 22632 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ly1.tfm
-2021/12/21 | 1468 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1--base.tfm
-2021/12/21 | 5948 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1.tfm
-2021/12/21 | 2028 | fonts/etbb/tfm/ETbb-Italic-osf-sc-t1--base.tfm
-2021/12/21 | 32580 | fonts/etbb/tfm/ETbb-Italic-osf-sc-t1.tfm
-2021/12/21 | 1972 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ly1--base.tfm
-2021/12/21 | 14068 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ly1.tfm
-2021/12/21 | 4504 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1.tfm
-2021/12/21 | 1944 | fonts/etbb/tfm/ETbb-Italic-osf-swash-t1--base.tfm
-2021/12/21 | 23608 | fonts/etbb/tfm/ETbb-Italic-osf-swash-t1.tfm
-2021/12/21 | 1944 | fonts/etbb/tfm/ETbb-Italic-osf-t1--base.tfm
-2021/12/21 | 24004 | fonts/etbb/tfm/ETbb-Italic-osf-t1.tfm
-2021/12/21 | 1404 | fonts/etbb/tfm/ETbb-Italic-osf-ts1--base.tfm
-2021/12/21 | 1420 | fonts/etbb/tfm/ETbb-Italic-osf-ts1.tfm
-2021/12/21 | 2052 | fonts/etbb/tfm/ETbb-Italic-sup-ly1--base.tfm
-2021/12/21 | 2056 | fonts/etbb/tfm/ETbb-Italic-sup-ly1.tfm
-2021/12/21 | 1432 | fonts/etbb/tfm/ETbb-Italic-sup-ot1.tfm
-2021/12/21 | 2052 | fonts/etbb/tfm/ETbb-Italic-sup-t1--base.tfm
-2021/12/21 | 2060 | fonts/etbb/tfm/ETbb-Italic-sup-t1.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-Italic-tlf-ly1--base.tfm
-2021/12/21 | 14340 | fonts/etbb/tfm/ETbb-Italic-tlf-ly1.tfm
-2021/12/21 | 4616 | fonts/etbb/tfm/ETbb-Italic-tlf-ot1.tfm
-2021/12/21 | 1996 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ly1--base.tfm
-2021/12/21 | 22608 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ly1.tfm
-2021/12/21 | 1452 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1--base.tfm
-2021/12/21 | 5932 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1.tfm
-2021/12/21 | 2000 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1--base.tfm
-2021/12/21 | 32552 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ly1--base.tfm
-2021/12/21 | 14044 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ly1.tfm
-2021/12/21 | 4484 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1.tfm
-2021/12/21 | 1916 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1--base.tfm
-2021/12/21 | 23580 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1.tfm
-2021/12/21 | 1916 | fonts/etbb/tfm/ETbb-Italic-tlf-t1--base.tfm
-2021/12/21 | 23976 | fonts/etbb/tfm/ETbb-Italic-tlf-t1.tfm
-2021/12/21 | 1404 | fonts/etbb/tfm/ETbb-Italic-tlf-ts1--base.tfm
-2021/12/21 | 1420 | fonts/etbb/tfm/ETbb-Italic-tlf-ts1.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-Italic-tosf-ly1--base.tfm
-2021/12/21 | 14340 | fonts/etbb/tfm/ETbb-Italic-tosf-ly1.tfm
-2021/12/21 | 4608 | fonts/etbb/tfm/ETbb-Italic-tosf-ot1.tfm
-2021/12/21 | 2000 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ly1--base.tfm
-2021/12/21 | 22612 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ly1.tfm
-2021/12/21 | 1448 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1--base.tfm
-2021/12/21 | 5928 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1.tfm
-2021/12/21 | 2004 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1--base.tfm
-2021/12/21 | 32556 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ly1--base.tfm
-2021/12/21 | 14044 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ly1.tfm
-2021/12/21 | 4476 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1.tfm
-2021/12/21 | 1916 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1--base.tfm
-2021/12/21 | 23580 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1.tfm
-2021/12/21 | 1916 | fonts/etbb/tfm/ETbb-Italic-tosf-t1--base.tfm
-2021/12/21 | 23976 | fonts/etbb/tfm/ETbb-Italic-tosf-t1.tfm
-2021/12/21 | 1404 | fonts/etbb/tfm/ETbb-Italic-tosf-ts1--base.tfm
-2021/12/21 | 1420 | fonts/etbb/tfm/ETbb-Italic-tosf-ts1.tfm
-2021/12/21 | 1900 | fonts/etbb/tfm/ETbb-Regular-dnom-ly1--base.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/ETbb-Regular-dnom-ly1.tfm
-2021/12/21 | 1320 | fonts/etbb/tfm/ETbb-Regular-dnom-ot1.tfm
-2021/12/21 | 1848 | fonts/etbb/tfm/ETbb-Regular-dnom-t1--base.tfm
-2021/12/21 | 1856 | fonts/etbb/tfm/ETbb-Regular-dnom-t1.tfm
-2021/12/21 | 1900 | fonts/etbb/tfm/ETbb-Regular-inf-ly1--base.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/ETbb-Regular-inf-ly1.tfm
-2021/12/21 | 1320 | fonts/etbb/tfm/ETbb-Regular-inf-ot1.tfm
-2021/12/21 | 1848 | fonts/etbb/tfm/ETbb-Regular-inf-t1--base.tfm
-2021/12/21 | 1856 | fonts/etbb/tfm/ETbb-Regular-inf-t1.tfm
-2021/12/21 | 1908 | fonts/etbb/tfm/ETbb-Regular-lf-ly1--base.tfm
-2021/12/21 | 28364 | fonts/etbb/tfm/ETbb-Regular-lf-ly1.tfm
-2021/12/21 | 6888 | fonts/etbb/tfm/ETbb-Regular-lf-ot1.tfm
-2021/12/21 | 1900 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1--base.tfm
-2021/12/21 | 27452 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1.tfm
-2021/12/21 | 1292 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1--base.tfm
-2021/12/21 | 6452 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1.tfm
-2021/12/21 | 1884 | fonts/etbb/tfm/ETbb-Regular-lf-sc-t1--base.tfm
-2021/12/21 | 43400 | fonts/etbb/tfm/ETbb-Regular-lf-sc-t1.tfm
-2021/12/21 | 1912 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1--base.tfm
-2021/12/21 | 27800 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1.tfm
-2021/12/21 | 6628 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ot1.tfm
-2021/12/21 | 1860 | fonts/etbb/tfm/ETbb-Regular-lf-swash-t1--base.tfm
-2021/12/21 | 47640 | fonts/etbb/tfm/ETbb-Regular-lf-swash-t1.tfm
-2021/12/21 | 1856 | fonts/etbb/tfm/ETbb-Regular-lf-t1--base.tfm
-2021/12/21 | 48408 | fonts/etbb/tfm/ETbb-Regular-lf-t1.tfm
-2021/12/21 | 1536 | fonts/etbb/tfm/ETbb-Regular-lf-ts1--base.tfm
-2021/12/21 | 1540 | fonts/etbb/tfm/ETbb-Regular-lf-ts1.tfm
-2021/12/21 | 1904 | fonts/etbb/tfm/ETbb-Regular-osf-ly1--base.tfm
-2021/12/21 | 28360 | fonts/etbb/tfm/ETbb-Regular-osf-ly1.tfm
-2021/12/21 | 6888 | fonts/etbb/tfm/ETbb-Regular-osf-ot1.tfm
-2021/12/21 | 1896 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1--base.tfm
-2021/12/21 | 27448 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1.tfm
-2021/12/21 | 1292 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1--base.tfm
-2021/12/21 | 6452 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1.tfm
-2021/12/21 | 1884 | fonts/etbb/tfm/ETbb-Regular-osf-sc-t1--base.tfm
-2021/12/21 | 43400 | fonts/etbb/tfm/ETbb-Regular-osf-sc-t1.tfm
-2021/12/21 | 1908 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1--base.tfm
-2021/12/21 | 27796 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1.tfm
-2021/12/21 | 6628 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ot1.tfm
-2021/12/21 | 1860 | fonts/etbb/tfm/ETbb-Regular-osf-swash-t1--base.tfm
-2021/12/21 | 47640 | fonts/etbb/tfm/ETbb-Regular-osf-swash-t1.tfm
-2021/12/21 | 1856 | fonts/etbb/tfm/ETbb-Regular-osf-t1--base.tfm
-2021/12/21 | 48408 | fonts/etbb/tfm/ETbb-Regular-osf-t1.tfm
-2021/12/21 | 1536 | fonts/etbb/tfm/ETbb-Regular-osf-ts1--base.tfm
-2021/12/21 | 1540 | fonts/etbb/tfm/ETbb-Regular-osf-ts1.tfm
-2021/12/21 | 1960 | fonts/etbb/tfm/ETbb-Regular-sup-ly1--base.tfm
-2021/12/21 | 1964 | fonts/etbb/tfm/ETbb-Regular-sup-ly1.tfm
-2021/12/21 | 1292 | fonts/etbb/tfm/ETbb-Regular-sup-ot1.tfm
-2021/12/21 | 1948 | fonts/etbb/tfm/ETbb-Regular-sup-t1--base.tfm
-2021/12/21 | 1956 | fonts/etbb/tfm/ETbb-Regular-sup-t1.tfm
-2021/12/21 | 1884 | fonts/etbb/tfm/ETbb-Regular-tlf-ly1--base.tfm
-2021/12/21 | 28340 | fonts/etbb/tfm/ETbb-Regular-tlf-ly1.tfm
-2021/12/21 | 6868 | fonts/etbb/tfm/ETbb-Regular-tlf-ot1.tfm
-2021/12/21 | 1876 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1--base.tfm
-2021/12/21 | 27428 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1.tfm
-2021/12/21 | 1272 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1--base.tfm
-2021/12/21 | 6432 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1.tfm
-2021/12/21 | 1864 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1--base.tfm
-2021/12/21 | 43380 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1.tfm
-2021/12/21 | 1888 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1--base.tfm
-2021/12/21 | 27776 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1.tfm
-2021/12/21 | 6608 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ot1.tfm
-2021/12/21 | 1840 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1--base.tfm
-2021/12/21 | 47620 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1.tfm
-2021/12/21 | 1836 | fonts/etbb/tfm/ETbb-Regular-tlf-t1--base.tfm
-2021/12/21 | 48388 | fonts/etbb/tfm/ETbb-Regular-tlf-t1.tfm
-2021/12/21 | 1536 | fonts/etbb/tfm/ETbb-Regular-tlf-ts1--base.tfm
-2021/12/21 | 1540 | fonts/etbb/tfm/ETbb-Regular-tlf-ts1.tfm
-2021/12/21 | 1884 | fonts/etbb/tfm/ETbb-Regular-tosf-ly1--base.tfm
-2021/12/21 | 28340 | fonts/etbb/tfm/ETbb-Regular-tosf-ly1.tfm
-2021/12/21 | 6868 | fonts/etbb/tfm/ETbb-Regular-tosf-ot1.tfm
-2021/12/21 | 1876 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1--base.tfm
-2021/12/21 | 27428 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1.tfm
-2021/12/21 | 1272 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1--base.tfm
-2021/12/21 | 6432 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1.tfm
-2021/12/21 | 1864 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1--base.tfm
-2021/12/21 | 43380 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1.tfm
-2021/12/21 | 1888 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1--base.tfm
-2021/12/21 | 27776 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1.tfm
-2021/12/21 | 6608 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ot1.tfm
-2021/12/21 | 1840 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1--base.tfm
-2021/12/21 | 47620 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1.tfm
-2021/12/21 | 1836 | fonts/etbb/tfm/ETbb-Regular-tosf-t1--base.tfm
-2021/12/21 | 48388 | fonts/etbb/tfm/ETbb-Regular-tosf-t1.tfm
-2021/12/21 | 1536 | fonts/etbb/tfm/ETbb-Regular-tosf-ts1--base.tfm
-2021/12/21 | 1540 | fonts/etbb/tfm/ETbb-Regular-tosf-ts1.tfm
-2021/12/21 | 115292 | fonts/etbb/type1/ETbb-BoldItalic.pfb
-2021/12/21 | 120249 | fonts/etbb/type1/ETbb-Bold.pfb
-2021/12/21 | 108769 | fonts/etbb/type1/ETbb-Italic.pfb
-2021/12/21 | 133270 | fonts/etbb/type1/ETbb-Regular.pfb
-2021/12/21 | 1768 | fonts/etbb/vf/Etbb1-Bold-dnom-t1.vf
-2021/12/21 | 1784 | fonts/etbb/vf/Etbb1-BoldItalic-dnom-t1.vf
-2021/12/21 | 1780 | fonts/etbb/vf/Etbb1-BoldItalic-lf-sc-t1.vf
-2021/12/21 | 1824 | fonts/etbb/vf/Etbb1-BoldItalic-lf-swash-t1.vf
-2021/12/21 | 1812 | fonts/etbb/vf/Etbb1-BoldItalic-lf-t1.vf
-2021/12/21 | 1784 | fonts/etbb/vf/Etbb1-BoldItalic-osf-sc-t1.vf
-2021/12/21 | 1824 | fonts/etbb/vf/Etbb1-BoldItalic-osf-swash-t1.vf
-2021/12/21 | 1812 | fonts/etbb/vf/Etbb1-BoldItalic-osf-t1.vf
-2021/12/21 | 1784 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-sc-t1.vf
-2021/12/21 | 1824 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-swash-t1.vf
-2021/12/21 | 1812 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-t1.vf
-2021/12/21 | 1784 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-sc-t1.vf
-2021/12/21 | 1828 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-swash-t1.vf
-2021/12/21 | 1816 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-t1.vf
-2021/12/21 | 1764 | fonts/etbb/vf/Etbb1-Bold-lf-sc-t1.vf
-2021/12/21 | 1804 | fonts/etbb/vf/Etbb1-Bold-lf-swash-t1.vf
-2021/12/21 | 1792 | fonts/etbb/vf/Etbb1-Bold-lf-t1.vf
-2021/12/21 | 1764 | fonts/etbb/vf/Etbb1-Bold-osf-sc-t1.vf
-2021/12/21 | 1808 | fonts/etbb/vf/Etbb1-Bold-osf-swash-t1.vf
-2021/12/21 | 1796 | fonts/etbb/vf/Etbb1-Bold-osf-t1.vf
-2021/12/21 | 1764 | fonts/etbb/vf/Etbb1-Bold-tlf-sc-t1.vf
-2021/12/21 | 1808 | fonts/etbb/vf/Etbb1-Bold-tlf-swash-t1.vf
-2021/12/21 | 1796 | fonts/etbb/vf/Etbb1-Bold-tlf-t1.vf
-2021/12/21 | 1768 | fonts/etbb/vf/Etbb1-Bold-tosf-sc-t1.vf
-2021/12/21 | 1808 | fonts/etbb/vf/Etbb1-Bold-tosf-swash-t1.vf
-2021/12/21 | 1796 | fonts/etbb/vf/Etbb1-Bold-tosf-t1.vf
-2021/12/21 | 1772 | fonts/etbb/vf/Etbb1-Italic-dnom-t1.vf
-2021/12/21 | 1768 | fonts/etbb/vf/Etbb1-Italic-lf-sc-t1.vf
-2021/12/21 | 1812 | fonts/etbb/vf/Etbb1-Italic-lf-swash-t1.vf
-2021/12/21 | 1800 | fonts/etbb/vf/Etbb1-Italic-lf-t1.vf
-2021/12/21 | 1772 | fonts/etbb/vf/Etbb1-Italic-osf-sc-t1.vf
-2021/12/21 | 1812 | fonts/etbb/vf/Etbb1-Italic-osf-swash-t1.vf
-2021/12/21 | 1800 | fonts/etbb/vf/Etbb1-Italic-osf-t1.vf
-2021/12/21 | 1772 | fonts/etbb/vf/Etbb1-Italic-tlf-sc-t1.vf
-2021/12/21 | 1812 | fonts/etbb/vf/Etbb1-Italic-tlf-swash-t1.vf
-2021/12/21 | 1800 | fonts/etbb/vf/Etbb1-Italic-tlf-t1.vf
-2021/12/21 | 1772 | fonts/etbb/vf/Etbb1-Italic-tosf-sc-t1.vf
-2021/12/21 | 1816 | fonts/etbb/vf/Etbb1-Italic-tosf-swash-t1.vf
-2021/12/21 | 1804 | fonts/etbb/vf/Etbb1-Italic-tosf-t1.vf
-2021/12/21 | 1776 | fonts/etbb/vf/Etbb1-Regular-dnom-t1.vf
-2021/12/21 | 1772 | fonts/etbb/vf/Etbb1-Regular-lf-sc-t1.vf
-2021/12/21 | 1816 | fonts/etbb/vf/Etbb1-Regular-lf-swash-t1.vf
-2021/12/21 | 1804 | fonts/etbb/vf/Etbb1-Regular-lf-t1.vf
-2021/12/21 | 1772 | fonts/etbb/vf/Etbb1-Regular-osf-sc-t1.vf
-2021/12/21 | 1816 | fonts/etbb/vf/Etbb1-Regular-osf-swash-t1.vf
-2021/12/21 | 1804 | fonts/etbb/vf/Etbb1-Regular-osf-t1.vf
-2021/12/21 | 1772 | fonts/etbb/vf/Etbb1-Regular-tlf-sc-t1.vf
-2021/12/21 | 1816 | fonts/etbb/vf/Etbb1-Regular-tlf-swash-t1.vf
-2021/12/21 | 1804 | fonts/etbb/vf/Etbb1-Regular-tlf-t1.vf
-2021/12/21 | 1776 | fonts/etbb/vf/Etbb1-Regular-tosf-sc-t1.vf
-2021/12/21 | 1820 | fonts/etbb/vf/Etbb1-Regular-tosf-swash-t1.vf
-2021/12/21 | 1808 | fonts/etbb/vf/Etbb1-Regular-tosf-t1.vf
-2021/12/21 | 1664 | fonts/etbb/vf/ETbb-Bold-dnom-ly1.vf
-2021/12/21 | 1688 | fonts/etbb/vf/ETbb-Bold-dnom-t1.vf
-2021/12/21 | 1664 | fonts/etbb/vf/ETbb-Bold-inf-ly1.vf
-2021/12/21 | 1688 | fonts/etbb/vf/ETbb-Bold-inf-t1.vf
-2021/12/21 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-dnom-ly1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-BoldItalic-dnom-t1.vf
-2021/12/21 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-inf-ly1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-inf-t1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-lf-ly1.vf
-2021/12/21 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ly1.vf
-2021/12/21 | 792 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ot1.vf
-2021/12/21 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-t1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-lf-swash-t1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-lf-t1.vf
-2021/12/21 | 488 | fonts/etbb/vf/ETbb-BoldItalic-lf-ts1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-osf-ly1.vf
-2021/12/21 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ly1.vf
-2021/12/21 | 796 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ot1.vf
-2021/12/21 | 1744 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-t1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-osf-swash-t1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-osf-t1.vf
-2021/12/21 | 488 | fonts/etbb/vf/ETbb-BoldItalic-osf-ts1.vf
-2021/12/21 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-sup-ly1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-sup-t1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-tlf-ly1.vf
-2021/12/21 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ly1.vf
-2021/12/21 | 796 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ot1.vf
-2021/12/21 | 1744 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-t1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-t1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-tlf-t1.vf
-2021/12/21 | 488 | fonts/etbb/vf/ETbb-BoldItalic-tlf-ts1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-BoldItalic-tosf-ly1.vf
-2021/12/21 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ly1.vf
-2021/12/21 | 796 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ot1.vf
-2021/12/21 | 1744 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-t1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ly1.vf
-2021/12/21 | 1732 | fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-t1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-tosf-t1.vf
-2021/12/21 | 492 | fonts/etbb/vf/ETbb-BoldItalic-tosf-ts1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-Bold-lf-ly1.vf
-2021/12/21 | 1704 | fonts/etbb/vf/ETbb-Bold-lf-sc-ly1.vf
-2021/12/21 | 780 | fonts/etbb/vf/ETbb-Bold-lf-sc-ot1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-Bold-lf-sc-t1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-Bold-lf-swash-ly1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-Bold-lf-swash-t1.vf
-2021/12/21 | 1720 | fonts/etbb/vf/ETbb-Bold-lf-t1.vf
-2021/12/21 | 496 | fonts/etbb/vf/ETbb-Bold-lf-ts1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Bold-osf-ly1.vf
-2021/12/21 | 1704 | fonts/etbb/vf/ETbb-Bold-osf-sc-ly1.vf
-2021/12/21 | 780 | fonts/etbb/vf/ETbb-Bold-osf-sc-ot1.vf
-2021/12/21 | 1732 | fonts/etbb/vf/ETbb-Bold-osf-sc-t1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-Bold-osf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-Bold-osf-swash-t1.vf
-2021/12/21 | 1720 | fonts/etbb/vf/ETbb-Bold-osf-t1.vf
-2021/12/21 | 496 | fonts/etbb/vf/ETbb-Bold-osf-ts1.vf
-2021/12/21 | 1664 | fonts/etbb/vf/ETbb-Bold-sup-ly1.vf
-2021/12/21 | 1688 | fonts/etbb/vf/ETbb-Bold-sup-t1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Bold-tlf-ly1.vf
-2021/12/21 | 1704 | fonts/etbb/vf/ETbb-Bold-tlf-sc-ly1.vf
-2021/12/21 | 780 | fonts/etbb/vf/ETbb-Bold-tlf-sc-ot1.vf
-2021/12/21 | 1732 | fonts/etbb/vf/ETbb-Bold-tlf-sc-t1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-Bold-tlf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-Bold-tlf-swash-t1.vf
-2021/12/21 | 1720 | fonts/etbb/vf/ETbb-Bold-tlf-t1.vf
-2021/12/21 | 496 | fonts/etbb/vf/ETbb-Bold-tlf-ts1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Bold-tosf-ly1.vf
-2021/12/21 | 1708 | fonts/etbb/vf/ETbb-Bold-tosf-sc-ly1.vf
-2021/12/21 | 780 | fonts/etbb/vf/ETbb-Bold-tosf-sc-ot1.vf
-2021/12/21 | 1732 | fonts/etbb/vf/ETbb-Bold-tosf-sc-t1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-Bold-tosf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-Bold-tosf-swash-t1.vf
-2021/12/21 | 1720 | fonts/etbb/vf/ETbb-Bold-tosf-t1.vf
-2021/12/21 | 496 | fonts/etbb/vf/ETbb-Bold-tosf-ts1.vf
-2021/12/21 | 1660 | fonts/etbb/vf/ETbb-Italic-dnom-ly1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-Italic-dnom-t1.vf
-2021/12/21 | 1660 | fonts/etbb/vf/ETbb-Italic-inf-ly1.vf
-2021/12/21 | 1688 | fonts/etbb/vf/ETbb-Italic-inf-t1.vf
-2021/12/21 | 1688 | fonts/etbb/vf/ETbb-Italic-lf-ly1.vf
-2021/12/21 | 1712 | fonts/etbb/vf/ETbb-Italic-lf-sc-ly1.vf
-2021/12/21 | 788 | fonts/etbb/vf/ETbb-Italic-lf-sc-ot1.vf
-2021/12/21 | 1736 | fonts/etbb/vf/ETbb-Italic-lf-sc-t1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Italic-lf-swash-ly1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-Italic-lf-swash-t1.vf
-2021/12/21 | 1720 | fonts/etbb/vf/ETbb-Italic-lf-t1.vf
-2021/12/21 | 484 | fonts/etbb/vf/ETbb-Italic-lf-ts1.vf
-2021/12/21 | 1688 | fonts/etbb/vf/ETbb-Italic-osf-ly1.vf
-2021/12/21 | 1712 | fonts/etbb/vf/ETbb-Italic-osf-sc-ly1.vf
-2021/12/21 | 792 | fonts/etbb/vf/ETbb-Italic-osf-sc-ot1.vf
-2021/12/21 | 1740 | fonts/etbb/vf/ETbb-Italic-osf-sc-t1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Italic-osf-swash-ly1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-Italic-osf-swash-t1.vf
-2021/12/21 | 1720 | fonts/etbb/vf/ETbb-Italic-osf-t1.vf
-2021/12/21 | 484 | fonts/etbb/vf/ETbb-Italic-osf-ts1.vf
-2021/12/21 | 1660 | fonts/etbb/vf/ETbb-Italic-sup-ly1.vf
-2021/12/21 | 1688 | fonts/etbb/vf/ETbb-Italic-sup-t1.vf
-2021/12/21 | 1688 | fonts/etbb/vf/ETbb-Italic-tlf-ly1.vf
-2021/12/21 | 1712 | fonts/etbb/vf/ETbb-Italic-tlf-sc-ly1.vf
-2021/12/21 | 792 | fonts/etbb/vf/ETbb-Italic-tlf-sc-ot1.vf
-2021/12/21 | 1740 | fonts/etbb/vf/ETbb-Italic-tlf-sc-t1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Italic-tlf-swash-ly1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-Italic-tlf-swash-t1.vf
-2021/12/21 | 1720 | fonts/etbb/vf/ETbb-Italic-tlf-t1.vf
-2021/12/21 | 484 | fonts/etbb/vf/ETbb-Italic-tlf-ts1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-Italic-tosf-ly1.vf
-2021/12/21 | 1712 | fonts/etbb/vf/ETbb-Italic-tosf-sc-ly1.vf
-2021/12/21 | 792 | fonts/etbb/vf/ETbb-Italic-tosf-sc-ot1.vf
-2021/12/21 | 1740 | fonts/etbb/vf/ETbb-Italic-tosf-sc-t1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Italic-tosf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-Italic-tosf-swash-t1.vf
-2021/12/21 | 1720 | fonts/etbb/vf/ETbb-Italic-tosf-t1.vf
-2021/12/21 | 488 | fonts/etbb/vf/ETbb-Italic-tosf-ts1.vf
-2021/12/21 | 1668 | fonts/etbb/vf/ETbb-Regular-dnom-ly1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-Regular-dnom-t1.vf
-2021/12/21 | 1668 | fonts/etbb/vf/ETbb-Regular-inf-ly1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-Regular-inf-t1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Regular-lf-ly1.vf
-2021/12/21 | 1708 | fonts/etbb/vf/ETbb-Regular-lf-sc-ly1.vf
-2021/12/21 | 788 | fonts/etbb/vf/ETbb-Regular-lf-sc-ot1.vf
-2021/12/21 | 1732 | fonts/etbb/vf/ETbb-Regular-lf-sc-t1.vf
-2021/12/21 | 1704 | fonts/etbb/vf/ETbb-Regular-lf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-Regular-lf-swash-t1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-Regular-lf-t1.vf
-2021/12/21 | 732 | fonts/etbb/vf/ETbb-Regular-lf-ts1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Regular-osf-ly1.vf
-2021/12/21 | 1708 | fonts/etbb/vf/ETbb-Regular-osf-sc-ly1.vf
-2021/12/21 | 788 | fonts/etbb/vf/ETbb-Regular-osf-sc-ot1.vf
-2021/12/21 | 1732 | fonts/etbb/vf/ETbb-Regular-osf-sc-t1.vf
-2021/12/21 | 1704 | fonts/etbb/vf/ETbb-Regular-osf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-Regular-osf-swash-t1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-Regular-osf-t1.vf
-2021/12/21 | 732 | fonts/etbb/vf/ETbb-Regular-osf-ts1.vf
-2021/12/21 | 1668 | fonts/etbb/vf/ETbb-Regular-sup-ly1.vf
-2021/12/21 | 1692 | fonts/etbb/vf/ETbb-Regular-sup-t1.vf
-2021/12/21 | 1696 | fonts/etbb/vf/ETbb-Regular-tlf-ly1.vf
-2021/12/21 | 1708 | fonts/etbb/vf/ETbb-Regular-tlf-sc-ly1.vf
-2021/12/21 | 788 | fonts/etbb/vf/ETbb-Regular-tlf-sc-ot1.vf
-2021/12/21 | 1732 | fonts/etbb/vf/ETbb-Regular-tlf-sc-t1.vf
-2021/12/21 | 1704 | fonts/etbb/vf/ETbb-Regular-tlf-swash-ly1.vf
-2021/12/21 | 1728 | fonts/etbb/vf/ETbb-Regular-tlf-swash-t1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-Regular-tlf-t1.vf
-2021/12/21 | 732 | fonts/etbb/vf/ETbb-Regular-tlf-ts1.vf
-2021/12/21 | 1700 | fonts/etbb/vf/ETbb-Regular-tosf-ly1.vf
-2021/12/21 | 1708 | fonts/etbb/vf/ETbb-Regular-tosf-sc-ly1.vf
-2021/12/21 | 788 | fonts/etbb/vf/ETbb-Regular-tosf-sc-ot1.vf
-2021/12/21 | 1736 | fonts/etbb/vf/ETbb-Regular-tosf-sc-t1.vf
-2021/12/21 | 1704 | fonts/etbb/vf/ETbb-Regular-tosf-swash-ly1.vf
-2021/12/21 | 1732 | fonts/etbb/vf/ETbb-Regular-tosf-swash-t1.vf
-2021/12/21 | 1724 | fonts/etbb/vf/ETbb-Regular-tosf-t1.vf
-2021/12/21 | 732 | fonts/etbb/vf/ETbb-Regular-tosf-ts1.vf
-2021/12/21 | 3228279 | fonts/etbb.zip
+2022/02/04 | 1988 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1--base.tfm
+2022/02/04 | 25304 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1--base.tfm
+2022/02/04 | 21860 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1--base.tfm
+2022/02/04 | 22132 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1.tfm
+2022/02/04 | 2000 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1--base.tfm
+2022/02/04 | 25316 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1.tfm
+2022/02/04 | 1928 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1--base.tfm
+2022/02/04 | 21852 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1.tfm
+2022/02/04 | 1928 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1--base.tfm
+2022/02/04 | 22124 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1.tfm
+2022/02/04 | 1976 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1--base.tfm
+2022/02/04 | 25292 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1--base.tfm
+2022/02/04 | 21828 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1--base.tfm
+2022/02/04 | 22100 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1.tfm
+2022/02/04 | 1976 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1--base.tfm
+2022/02/04 | 25292 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1--base.tfm
+2022/02/04 | 21832 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1--base.tfm
+2022/02/04 | 22104 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1.tfm
+2022/02/04 | 1800 | fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1--base.tfm
+2022/02/04 | 23648 | fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1--base.tfm
+2022/02/04 | 23228 | fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1.tfm
+2022/02/04 | 1756 | fonts/etbb/tfm/Etbb1-Bold-lf-t1--base.tfm
+2022/02/04 | 23752 | fonts/etbb/tfm/Etbb1-Bold-lf-t1.tfm
+2022/02/04 | 1784 | fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1--base.tfm
+2022/02/04 | 23632 | fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1.tfm
+2022/02/04 | 1756 | fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1--base.tfm
+2022/02/04 | 23224 | fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1.tfm
+2022/02/04 | 1752 | fonts/etbb/tfm/Etbb1-Bold-osf-t1--base.tfm
+2022/02/04 | 23748 | fonts/etbb/tfm/Etbb1-Bold-osf-t1.tfm
+2022/02/04 | 1768 | fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1--base.tfm
+2022/02/04 | 23616 | fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1.tfm
+2022/02/04 | 1736 | fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1--base.tfm
+2022/02/04 | 23204 | fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1.tfm
+2022/02/04 | 1732 | fonts/etbb/tfm/Etbb1-Bold-tlf-t1--base.tfm
+2022/02/04 | 23728 | fonts/etbb/tfm/Etbb1-Bold-tlf-t1.tfm
+2022/02/04 | 1768 | fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1--base.tfm
+2022/02/04 | 23616 | fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1.tfm
+2022/02/04 | 1732 | fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1--base.tfm
+2022/02/04 | 23200 | fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1.tfm
+2022/02/04 | 1728 | fonts/etbb/tfm/Etbb1-Bold-tosf-t1--base.tfm
+2022/02/04 | 23724 | fonts/etbb/tfm/Etbb1-Bold-tosf-t1.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1--base.tfm
+2022/02/04 | 29396 | fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1.tfm
+2022/02/04 | 1932 | fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1--base.tfm
+2022/02/04 | 23588 | fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1.tfm
+2022/02/04 | 1932 | fonts/etbb/tfm/Etbb1-Italic-lf-t1--base.tfm
+2022/02/04 | 23984 | fonts/etbb/tfm/Etbb1-Italic-lf-t1.tfm
+2022/02/04 | 1988 | fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1--base.tfm
+2022/02/04 | 29404 | fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1--base.tfm
+2022/02/04 | 23592 | fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/Etbb1-Italic-osf-t1--base.tfm
+2022/02/04 | 23988 | fonts/etbb/tfm/Etbb1-Italic-osf-t1.tfm
+2022/02/04 | 1964 | fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1--base.tfm
+2022/02/04 | 29380 | fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1--base.tfm
+2022/02/04 | 23564 | fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-Italic-tlf-t1--base.tfm
+2022/02/04 | 23960 | fonts/etbb/tfm/Etbb1-Italic-tlf-t1.tfm
+2022/02/04 | 1968 | fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1--base.tfm
+2022/02/04 | 29384 | fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1--base.tfm
+2022/02/04 | 23564 | fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-Italic-tosf-t1--base.tfm
+2022/02/04 | 23960 | fonts/etbb/tfm/Etbb1-Italic-tosf-t1.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1--base.tfm
+2022/02/04 | 36932 | fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1.tfm
+2022/02/04 | 1848 | fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1--base.tfm
+2022/02/04 | 47732 | fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/Etbb1-Regular-lf-t1--base.tfm
+2022/02/04 | 48512 | fonts/etbb/tfm/Etbb1-Regular-lf-t1.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1--base.tfm
+2022/02/04 | 36932 | fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1.tfm
+2022/02/04 | 1848 | fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1--base.tfm
+2022/02/04 | 47732 | fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/Etbb1-Regular-osf-t1--base.tfm
+2022/02/04 | 48512 | fonts/etbb/tfm/Etbb1-Regular-osf-t1.tfm
+2022/02/04 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1--base.tfm
+2022/02/04 | 36912 | fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1.tfm
+2022/02/04 | 1828 | fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1--base.tfm
+2022/02/04 | 47712 | fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1.tfm
+2022/02/04 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tlf-t1--base.tfm
+2022/02/04 | 48492 | fonts/etbb/tfm/Etbb1-Regular-tlf-t1.tfm
+2022/02/04 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1--base.tfm
+2022/02/04 | 36912 | fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1.tfm
+2022/02/04 | 1828 | fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1--base.tfm
+2022/02/04 | 47712 | fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1.tfm
+2022/02/04 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tosf-t1--base.tfm
+2022/02/04 | 48492 | fonts/etbb/tfm/Etbb1-Regular-tosf-t1.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/ETbb-Bold-dnom-ly1--base.tfm
+2022/02/04 | 1764 | fonts/etbb/tfm/ETbb-Bold-dnom-ly1.tfm
+2022/02/04 | 1232 | fonts/etbb/tfm/ETbb-Bold-dnom-ot1--base.tfm
+2022/02/04 | 1236 | fonts/etbb/tfm/ETbb-Bold-dnom-ot1.tfm
+2022/02/04 | 1756 | fonts/etbb/tfm/ETbb-Bold-dnom-t1--base.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/ETbb-Bold-dnom-t1.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/ETbb-Bold-inf-ly1--base.tfm
+2022/02/04 | 1764 | fonts/etbb/tfm/ETbb-Bold-inf-ly1.tfm
+2022/02/04 | 1236 | fonts/etbb/tfm/ETbb-Bold-inf-ot1--base.tfm
+2022/02/04 | 1240 | fonts/etbb/tfm/ETbb-Bold-inf-ot1.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/ETbb-Bold-inf-t1--base.tfm
+2022/02/04 | 1764 | fonts/etbb/tfm/ETbb-Bold-inf-t1.tfm
+2022/02/04 | 1944 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ly1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ly1.tfm
+2022/02/04 | 1416 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1--base.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1--base.tfm
+2022/02/04 | 1940 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ly1--base.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ly1.tfm
+2022/02/04 | 1416 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1--base.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1.tfm
+2022/02/04 | 1932 | fonts/etbb/tfm/ETbb-BoldItalic-inf-t1--base.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/ETbb-BoldItalic-inf-t1.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ly1--base.tfm
+2022/02/04 | 13440 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ly1.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1--base.tfm
+2022/02/04 | 4476 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1.tfm
+2022/02/04 | 2032 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ly1--base.tfm
+2022/02/04 | 19620 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ly1.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1--base.tfm
+2022/02/04 | 5320 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1.tfm
+2022/02/04 | 2008 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1--base.tfm
+2022/02/04 | 25328 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ly1--base.tfm
+2022/02/04 | 13220 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ly1.tfm
+2022/02/04 | 1476 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1--base.tfm
+2022/02/04 | 4388 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1--base.tfm
+2022/02/04 | 21876 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-lf-t1--base.tfm
+2022/02/04 | 22148 | fonts/etbb/tfm/ETbb-BoldItalic-lf-t1.tfm
+2022/02/04 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ts1--base.tfm
+2022/02/04 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ts1.tfm
+2022/02/04 | 1968 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ly1--base.tfm
+2022/02/04 | 13428 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ly1.tfm
+2022/02/04 | 1456 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1--base.tfm
+2022/02/04 | 4460 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1.tfm
+2022/02/04 | 2040 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ly1--base.tfm
+2022/02/04 | 19628 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ly1.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1--base.tfm
+2022/02/04 | 5312 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1.tfm
+2022/02/04 | 2020 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1--base.tfm
+2022/02/04 | 25340 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1.tfm
+2022/02/04 | 1968 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ly1--base.tfm
+2022/02/04 | 13208 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ly1.tfm
+2022/02/04 | 1460 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1--base.tfm
+2022/02/04 | 4372 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1.tfm
+2022/02/04 | 1940 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1--base.tfm
+2022/02/04 | 21868 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1.tfm
+2022/02/04 | 1940 | fonts/etbb/tfm/ETbb-BoldItalic-osf-t1--base.tfm
+2022/02/04 | 22140 | fonts/etbb/tfm/ETbb-BoldItalic-osf-t1.tfm
+2022/02/04 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ts1--base.tfm
+2022/02/04 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ts1.tfm
+2022/02/04 | 2060 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ly1--base.tfm
+2022/02/04 | 2064 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ly1.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1--base.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1.tfm
+2022/02/04 | 2076 | fonts/etbb/tfm/ETbb-BoldItalic-sup-t1--base.tfm
+2022/02/04 | 2080 | fonts/etbb/tfm/ETbb-BoldItalic-sup-t1.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ly1--base.tfm
+2022/02/04 | 13412 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ly1.tfm
+2022/02/04 | 1456 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1--base.tfm
+2022/02/04 | 4460 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1.tfm
+2022/02/04 | 2020 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ly1--base.tfm
+2022/02/04 | 19608 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ly1.tfm
+2022/02/04 | 1456 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1--base.tfm
+2022/02/04 | 5304 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1.tfm
+2022/02/04 | 1996 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1--base.tfm
+2022/02/04 | 25316 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ly1--base.tfm
+2022/02/04 | 13192 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ly1.tfm
+2022/02/04 | 1460 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1--base.tfm
+2022/02/04 | 4372 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1.tfm
+2022/02/04 | 1916 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1--base.tfm
+2022/02/04 | 21844 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1.tfm
+2022/02/04 | 1916 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1--base.tfm
+2022/02/04 | 22116 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1.tfm
+2022/02/04 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ts1--base.tfm
+2022/02/04 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ts1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ly1--base.tfm
+2022/02/04 | 13408 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ly1.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1--base.tfm
+2022/02/04 | 4440 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1.tfm
+2022/02/04 | 2016 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ly1--base.tfm
+2022/02/04 | 19604 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ly1.tfm
+2022/02/04 | 1440 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1--base.tfm
+2022/02/04 | 5288 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1.tfm
+2022/02/04 | 1996 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1--base.tfm
+2022/02/04 | 25316 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ly1--base.tfm
+2022/02/04 | 13188 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ly1.tfm
+2022/02/04 | 1440 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1--base.tfm
+2022/02/04 | 4352 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1--base.tfm
+2022/02/04 | 21848 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1--base.tfm
+2022/02/04 | 22120 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1.tfm
+2022/02/04 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ts1--base.tfm
+2022/02/04 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ts1.tfm
+2022/02/04 | 1800 | fonts/etbb/tfm/ETbb-Bold-lf-ly1--base.tfm
+2022/02/04 | 26068 | fonts/etbb/tfm/ETbb-Bold-lf-ly1.tfm
+2022/02/04 | 1288 | fonts/etbb/tfm/ETbb-Bold-lf-ot1--base.tfm
+2022/02/04 | 6212 | fonts/etbb/tfm/ETbb-Bold-lf-ot1.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1--base.tfm
+2022/02/04 | 25908 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1.tfm
+2022/02/04 | 1268 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1--base.tfm
+2022/02/04 | 6108 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1.tfm
+2022/02/04 | 1816 | fonts/etbb/tfm/ETbb-Bold-lf-sc-t1--base.tfm
+2022/02/04 | 23700 | fonts/etbb/tfm/ETbb-Bold-lf-sc-t1.tfm
+2022/02/04 | 1804 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ly1--base.tfm
+2022/02/04 | 25516 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ly1.tfm
+2022/02/04 | 1292 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1--base.tfm
+2022/02/04 | 5968 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1.tfm
+2022/02/04 | 1772 | fonts/etbb/tfm/ETbb-Bold-lf-swash-t1--base.tfm
+2022/02/04 | 23232 | fonts/etbb/tfm/ETbb-Bold-lf-swash-t1.tfm
+2022/02/04 | 1768 | fonts/etbb/tfm/ETbb-Bold-lf-t1--base.tfm
+2022/02/04 | 23756 | fonts/etbb/tfm/ETbb-Bold-lf-t1.tfm
+2022/02/04 | 1352 | fonts/etbb/tfm/ETbb-Bold-lf-ts1--base.tfm
+2022/02/04 | 1368 | fonts/etbb/tfm/ETbb-Bold-lf-ts1.tfm
+2022/02/04 | 1792 | fonts/etbb/tfm/ETbb-Bold-osf-ly1--base.tfm
+2022/02/04 | 26060 | fonts/etbb/tfm/ETbb-Bold-osf-ly1.tfm
+2022/02/04 | 1284 | fonts/etbb/tfm/ETbb-Bold-osf-ot1--base.tfm
+2022/02/04 | 6208 | fonts/etbb/tfm/ETbb-Bold-osf-ot1.tfm
+2022/02/04 | 1836 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1--base.tfm
+2022/02/04 | 25900 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1.tfm
+2022/02/04 | 1260 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1--base.tfm
+2022/02/04 | 6100 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1.tfm
+2022/02/04 | 1800 | fonts/etbb/tfm/ETbb-Bold-osf-sc-t1--base.tfm
+2022/02/04 | 23684 | fonts/etbb/tfm/ETbb-Bold-osf-sc-t1.tfm
+2022/02/04 | 1796 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ly1--base.tfm
+2022/02/04 | 25508 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ly1.tfm
+2022/02/04 | 1288 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1--base.tfm
+2022/02/04 | 5964 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1.tfm
+2022/02/04 | 1768 | fonts/etbb/tfm/ETbb-Bold-osf-swash-t1--base.tfm
+2022/02/04 | 23228 | fonts/etbb/tfm/ETbb-Bold-osf-swash-t1.tfm
+2022/02/04 | 1764 | fonts/etbb/tfm/ETbb-Bold-osf-t1--base.tfm
+2022/02/04 | 23752 | fonts/etbb/tfm/ETbb-Bold-osf-t1.tfm
+2022/02/04 | 1352 | fonts/etbb/tfm/ETbb-Bold-osf-ts1--base.tfm
+2022/02/04 | 1368 | fonts/etbb/tfm/ETbb-Bold-osf-ts1.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/ETbb-Bold-sup-ly1--base.tfm
+2022/02/04 | 1848 | fonts/etbb/tfm/ETbb-Bold-sup-ly1.tfm
+2022/02/04 | 1240 | fonts/etbb/tfm/ETbb-Bold-sup-ot1--base.tfm
+2022/02/04 | 1248 | fonts/etbb/tfm/ETbb-Bold-sup-ot1.tfm
+2022/02/04 | 1876 | fonts/etbb/tfm/ETbb-Bold-sup-t1--base.tfm
+2022/02/04 | 1880 | fonts/etbb/tfm/ETbb-Bold-sup-t1.tfm
+2022/02/04 | 1772 | fonts/etbb/tfm/ETbb-Bold-tlf-ly1--base.tfm
+2022/02/04 | 26040 | fonts/etbb/tfm/ETbb-Bold-tlf-ly1.tfm
+2022/02/04 | 1264 | fonts/etbb/tfm/ETbb-Bold-tlf-ot1--base.tfm
+2022/02/04 | 6188 | fonts/etbb/tfm/ETbb-Bold-tlf-ot1.tfm
+2022/02/04 | 1816 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1--base.tfm
+2022/02/04 | 25880 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1.tfm
+2022/02/04 | 1240 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1--base.tfm
+2022/02/04 | 6080 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1.tfm
+2022/02/04 | 1784 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1--base.tfm
+2022/02/04 | 23668 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1.tfm
+2022/02/04 | 1776 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ly1--base.tfm
+2022/02/04 | 25488 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ly1.tfm
+2022/02/04 | 1268 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1--base.tfm
+2022/02/04 | 5944 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1.tfm
+2022/02/04 | 1748 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1--base.tfm
+2022/02/04 | 23208 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1.tfm
+2022/02/04 | 1744 | fonts/etbb/tfm/ETbb-Bold-tlf-t1--base.tfm
+2022/02/04 | 23732 | fonts/etbb/tfm/ETbb-Bold-tlf-t1.tfm
+2022/02/04 | 1352 | fonts/etbb/tfm/ETbb-Bold-tlf-ts1--base.tfm
+2022/02/04 | 1368 | fonts/etbb/tfm/ETbb-Bold-tlf-ts1.tfm
+2022/02/04 | 1772 | fonts/etbb/tfm/ETbb-Bold-tosf-ly1--base.tfm
+2022/02/04 | 26040 | fonts/etbb/tfm/ETbb-Bold-tosf-ly1.tfm
+2022/02/04 | 1260 | fonts/etbb/tfm/ETbb-Bold-tosf-ot1--base.tfm
+2022/02/04 | 6184 | fonts/etbb/tfm/ETbb-Bold-tosf-ot1.tfm
+2022/02/04 | 1816 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1--base.tfm
+2022/02/04 | 25880 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1.tfm
+2022/02/04 | 1236 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1--base.tfm
+2022/02/04 | 6076 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1.tfm
+2022/02/04 | 1784 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1--base.tfm
+2022/02/04 | 23668 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1.tfm
+2022/02/04 | 1776 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ly1--base.tfm
+2022/02/04 | 25488 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ly1.tfm
+2022/02/04 | 1264 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1--base.tfm
+2022/02/04 | 5940 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1.tfm
+2022/02/04 | 1744 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1--base.tfm
+2022/02/04 | 23204 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1.tfm
+2022/02/04 | 1740 | fonts/etbb/tfm/ETbb-Bold-tosf-t1--base.tfm
+2022/02/04 | 23728 | fonts/etbb/tfm/ETbb-Bold-tosf-t1.tfm
+2022/02/04 | 1352 | fonts/etbb/tfm/ETbb-Bold-tosf-ts1--base.tfm
+2022/02/04 | 1368 | fonts/etbb/tfm/ETbb-Bold-tosf-ts1.tfm
+2022/02/04 | 1964 | fonts/etbb/tfm/ETbb-Italic-dnom-ly1--base.tfm
+2022/02/04 | 1968 | fonts/etbb/tfm/ETbb-Italic-dnom-ly1.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-dnom-ot1--base.tfm
+2022/02/04 | 1440 | fonts/etbb/tfm/ETbb-Italic-dnom-ot1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-dnom-t1--base.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-Italic-dnom-t1.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-Italic-inf-ly1--base.tfm
+2022/02/04 | 1956 | fonts/etbb/tfm/ETbb-Italic-inf-ly1.tfm
+2022/02/04 | 1432 | fonts/etbb/tfm/ETbb-Italic-inf-ot1--base.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-inf-ot1.tfm
+2022/02/04 | 1940 | fonts/etbb/tfm/ETbb-Italic-inf-t1--base.tfm
+2022/02/04 | 1944 | fonts/etbb/tfm/ETbb-Italic-inf-t1.tfm
+2022/02/04 | 1972 | fonts/etbb/tfm/ETbb-Italic-lf-ly1--base.tfm
+2022/02/04 | 14364 | fonts/etbb/tfm/ETbb-Italic-lf-ly1.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-Italic-lf-ot1--base.tfm
+2022/02/04 | 4636 | fonts/etbb/tfm/ETbb-Italic-lf-ot1.tfm
+2022/02/04 | 2012 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ly1--base.tfm
+2022/02/04 | 22624 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ly1.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1--base.tfm
+2022/02/04 | 5940 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1.tfm
+2022/02/04 | 1996 | fonts/etbb/tfm/ETbb-Italic-lf-sc-t1--base.tfm
+2022/02/04 | 29416 | fonts/etbb/tfm/ETbb-Italic-lf-sc-t1.tfm
+2022/02/04 | 1972 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ly1--base.tfm
+2022/02/04 | 14068 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ly1.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1--base.tfm
+2022/02/04 | 4504 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1.tfm
+2022/02/04 | 1944 | fonts/etbb/tfm/ETbb-Italic-lf-swash-t1--base.tfm
+2022/02/04 | 23604 | fonts/etbb/tfm/ETbb-Italic-lf-swash-t1.tfm
+2022/02/04 | 1944 | fonts/etbb/tfm/ETbb-Italic-lf-t1--base.tfm
+2022/02/04 | 24000 | fonts/etbb/tfm/ETbb-Italic-lf-t1.tfm
+2022/02/04 | 1404 | fonts/etbb/tfm/ETbb-Italic-lf-ts1--base.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-Italic-lf-ts1.tfm
+2022/02/04 | 1972 | fonts/etbb/tfm/ETbb-Italic-osf-ly1--base.tfm
+2022/02/04 | 14364 | fonts/etbb/tfm/ETbb-Italic-osf-ly1.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-Italic-osf-ot1--base.tfm
+2022/02/04 | 4628 | fonts/etbb/tfm/ETbb-Italic-osf-ot1.tfm
+2022/02/04 | 2020 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ly1--base.tfm
+2022/02/04 | 22632 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ly1.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1--base.tfm
+2022/02/04 | 5940 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1.tfm
+2022/02/04 | 2004 | fonts/etbb/tfm/ETbb-Italic-osf-sc-t1--base.tfm
+2022/02/04 | 29424 | fonts/etbb/tfm/ETbb-Italic-osf-sc-t1.tfm
+2022/02/04 | 1972 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ly1--base.tfm
+2022/02/04 | 14068 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ly1.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1--base.tfm
+2022/02/04 | 4496 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-osf-swash-t1--base.tfm
+2022/02/04 | 23608 | fonts/etbb/tfm/ETbb-Italic-osf-swash-t1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-osf-t1--base.tfm
+2022/02/04 | 24004 | fonts/etbb/tfm/ETbb-Italic-osf-t1.tfm
+2022/02/04 | 1404 | fonts/etbb/tfm/ETbb-Italic-osf-ts1--base.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-Italic-osf-ts1.tfm
+2022/02/04 | 2052 | fonts/etbb/tfm/ETbb-Italic-sup-ly1--base.tfm
+2022/02/04 | 2056 | fonts/etbb/tfm/ETbb-Italic-sup-ly1.tfm
+2022/02/04 | 1428 | fonts/etbb/tfm/ETbb-Italic-sup-ot1--base.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-sup-ot1.tfm
+2022/02/04 | 2072 | fonts/etbb/tfm/ETbb-Italic-sup-t1--base.tfm
+2022/02/04 | 2076 | fonts/etbb/tfm/ETbb-Italic-sup-t1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-tlf-ly1--base.tfm
+2022/02/04 | 14340 | fonts/etbb/tfm/ETbb-Italic-tlf-ly1.tfm
+2022/02/04 | 1444 | fonts/etbb/tfm/ETbb-Italic-tlf-ot1--base.tfm
+2022/02/04 | 4608 | fonts/etbb/tfm/ETbb-Italic-tlf-ot1.tfm
+2022/02/04 | 1996 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ly1--base.tfm
+2022/02/04 | 22608 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ly1.tfm
+2022/02/04 | 1448 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1--base.tfm
+2022/02/04 | 5924 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1--base.tfm
+2022/02/04 | 29400 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ly1--base.tfm
+2022/02/04 | 14044 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ly1.tfm
+2022/02/04 | 1444 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1--base.tfm
+2022/02/04 | 4476 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1--base.tfm
+2022/02/04 | 23580 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-Italic-tlf-t1--base.tfm
+2022/02/04 | 23976 | fonts/etbb/tfm/ETbb-Italic-tlf-t1.tfm
+2022/02/04 | 1404 | fonts/etbb/tfm/ETbb-Italic-tlf-ts1--base.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-Italic-tlf-ts1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-tosf-ly1--base.tfm
+2022/02/04 | 14340 | fonts/etbb/tfm/ETbb-Italic-tosf-ly1.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-tosf-ot1--base.tfm
+2022/02/04 | 4600 | fonts/etbb/tfm/ETbb-Italic-tosf-ot1.tfm
+2022/02/04 | 2000 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ly1--base.tfm
+2022/02/04 | 22612 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ly1.tfm
+2022/02/04 | 1444 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1--base.tfm
+2022/02/04 | 5920 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1.tfm
+2022/02/04 | 1984 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1--base.tfm
+2022/02/04 | 29404 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ly1--base.tfm
+2022/02/04 | 14044 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ly1.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1--base.tfm
+2022/02/04 | 4468 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1--base.tfm
+2022/02/04 | 23580 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-Italic-tosf-t1--base.tfm
+2022/02/04 | 23976 | fonts/etbb/tfm/ETbb-Italic-tosf-t1.tfm
+2022/02/04 | 1404 | fonts/etbb/tfm/ETbb-Italic-tosf-ts1--base.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-Italic-tosf-ts1.tfm
+2022/02/04 | 1900 | fonts/etbb/tfm/ETbb-Regular-dnom-ly1--base.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/ETbb-Regular-dnom-ly1.tfm
+2022/02/04 | 1320 | fonts/etbb/tfm/ETbb-Regular-dnom-ot1.tfm
+2022/02/04 | 1872 | fonts/etbb/tfm/ETbb-Regular-dnom-t1--base.tfm
+2022/02/04 | 1876 | fonts/etbb/tfm/ETbb-Regular-dnom-t1.tfm
+2022/02/04 | 1900 | fonts/etbb/tfm/ETbb-Regular-inf-ly1--base.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/ETbb-Regular-inf-ly1.tfm
+2022/02/04 | 1320 | fonts/etbb/tfm/ETbb-Regular-inf-ot1.tfm
+2022/02/04 | 1872 | fonts/etbb/tfm/ETbb-Regular-inf-t1--base.tfm
+2022/02/04 | 1876 | fonts/etbb/tfm/ETbb-Regular-inf-t1.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/ETbb-Regular-lf-ly1--base.tfm
+2022/02/04 | 28392 | fonts/etbb/tfm/ETbb-Regular-lf-ly1.tfm
+2022/02/04 | 6880 | fonts/etbb/tfm/ETbb-Regular-lf-ot1.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1--base.tfm
+2022/02/04 | 27484 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1.tfm
+2022/02/04 | 1292 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1--base.tfm
+2022/02/04 | 6440 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1.tfm
+2022/02/04 | 1860 | fonts/etbb/tfm/ETbb-Regular-lf-sc-t1--base.tfm
+2022/02/04 | 37000 | fonts/etbb/tfm/ETbb-Regular-lf-sc-t1.tfm
+2022/02/04 | 1912 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1--base.tfm
+2022/02/04 | 27828 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1.tfm
+2022/02/04 | 6620 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ot1.tfm
+2022/02/04 | 1864 | fonts/etbb/tfm/ETbb-Regular-lf-swash-t1--base.tfm
+2022/02/04 | 47512 | fonts/etbb/tfm/ETbb-Regular-lf-swash-t1.tfm
+2022/02/04 | 1860 | fonts/etbb/tfm/ETbb-Regular-lf-t1--base.tfm
+2022/02/04 | 48276 | fonts/etbb/tfm/ETbb-Regular-lf-t1.tfm
+2022/02/04 | 1536 | fonts/etbb/tfm/ETbb-Regular-lf-ts1--base.tfm
+2022/02/04 | 1540 | fonts/etbb/tfm/ETbb-Regular-lf-ts1.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/ETbb-Regular-osf-ly1--base.tfm
+2022/02/04 | 28388 | fonts/etbb/tfm/ETbb-Regular-osf-ly1.tfm
+2022/02/04 | 6880 | fonts/etbb/tfm/ETbb-Regular-osf-ot1.tfm
+2022/02/04 | 1900 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1--base.tfm
+2022/02/04 | 27480 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1.tfm
+2022/02/04 | 1292 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1--base.tfm
+2022/02/04 | 6440 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1.tfm
+2022/02/04 | 1860 | fonts/etbb/tfm/ETbb-Regular-osf-sc-t1--base.tfm
+2022/02/04 | 37000 | fonts/etbb/tfm/ETbb-Regular-osf-sc-t1.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1--base.tfm
+2022/02/04 | 27824 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1.tfm
+2022/02/04 | 6620 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ot1.tfm
+2022/02/04 | 1864 | fonts/etbb/tfm/ETbb-Regular-osf-swash-t1--base.tfm
+2022/02/04 | 47512 | fonts/etbb/tfm/ETbb-Regular-osf-swash-t1.tfm
+2022/02/04 | 1860 | fonts/etbb/tfm/ETbb-Regular-osf-t1--base.tfm
+2022/02/04 | 48276 | fonts/etbb/tfm/ETbb-Regular-osf-t1.tfm
+2022/02/04 | 1536 | fonts/etbb/tfm/ETbb-Regular-osf-ts1--base.tfm
+2022/02/04 | 1540 | fonts/etbb/tfm/ETbb-Regular-osf-ts1.tfm
+2022/02/04 | 1960 | fonts/etbb/tfm/ETbb-Regular-sup-ly1--base.tfm
+2022/02/04 | 1964 | fonts/etbb/tfm/ETbb-Regular-sup-ly1.tfm
+2022/02/04 | 1296 | fonts/etbb/tfm/ETbb-Regular-sup-ot1.tfm
+2022/02/04 | 1976 | fonts/etbb/tfm/ETbb-Regular-sup-t1--base.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/ETbb-Regular-sup-t1.tfm
+2022/02/04 | 1884 | fonts/etbb/tfm/ETbb-Regular-tlf-ly1--base.tfm
+2022/02/04 | 28368 | fonts/etbb/tfm/ETbb-Regular-tlf-ly1.tfm
+2022/02/04 | 6860 | fonts/etbb/tfm/ETbb-Regular-tlf-ot1.tfm
+2022/02/04 | 1880 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1--base.tfm
+2022/02/04 | 27460 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1.tfm
+2022/02/04 | 1272 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1--base.tfm
+2022/02/04 | 6420 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1.tfm
+2022/02/04 | 1840 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1--base.tfm
+2022/02/04 | 36980 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1.tfm
+2022/02/04 | 1888 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1--base.tfm
+2022/02/04 | 27804 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1.tfm
+2022/02/04 | 6600 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ot1.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1--base.tfm
+2022/02/04 | 47492 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1.tfm
+2022/02/04 | 1840 | fonts/etbb/tfm/ETbb-Regular-tlf-t1--base.tfm
+2022/02/04 | 48256 | fonts/etbb/tfm/ETbb-Regular-tlf-t1.tfm
+2022/02/04 | 1536 | fonts/etbb/tfm/ETbb-Regular-tlf-ts1--base.tfm
+2022/02/04 | 1540 | fonts/etbb/tfm/ETbb-Regular-tlf-ts1.tfm
+2022/02/04 | 1884 | fonts/etbb/tfm/ETbb-Regular-tosf-ly1--base.tfm
+2022/02/04 | 28368 | fonts/etbb/tfm/ETbb-Regular-tosf-ly1.tfm
+2022/02/04 | 6860 | fonts/etbb/tfm/ETbb-Regular-tosf-ot1.tfm
+2022/02/04 | 1880 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1--base.tfm
+2022/02/04 | 27460 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1.tfm
+2022/02/04 | 1272 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1--base.tfm
+2022/02/04 | 6420 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1.tfm
+2022/02/04 | 1840 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1--base.tfm
+2022/02/04 | 36980 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1.tfm
+2022/02/04 | 1888 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1--base.tfm
+2022/02/04 | 27804 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1.tfm
+2022/02/04 | 6600 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ot1.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1--base.tfm
+2022/02/04 | 47492 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1.tfm
+2022/02/04 | 1840 | fonts/etbb/tfm/ETbb-Regular-tosf-t1--base.tfm
+2022/02/04 | 48256 | fonts/etbb/tfm/ETbb-Regular-tosf-t1.tfm
+2022/02/04 | 1536 | fonts/etbb/tfm/ETbb-Regular-tosf-ts1--base.tfm
+2022/02/04 | 1540 | fonts/etbb/tfm/ETbb-Regular-tosf-ts1.tfm
+2022/02/02 | 121056 | fonts/etbb/type1/ETbb-BoldItalic.pfb
+2022/02/02 | 127111 | fonts/etbb/type1/ETbb-Bold.pfb
+2022/02/02 | 114572 | fonts/etbb/type1/ETbb-Italic.pfb
+2022/02/02 | 140862 | fonts/etbb/type1/ETbb-Regular.pfb
+2022/02/04 | 1796 | fonts/etbb/vf/Etbb1-BoldItalic-lf-sc-t1.vf
+2022/02/04 | 1832 | fonts/etbb/vf/Etbb1-BoldItalic-lf-swash-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-BoldItalic-lf-t1.vf
+2022/02/04 | 1796 | fonts/etbb/vf/Etbb1-BoldItalic-osf-sc-t1.vf
+2022/02/04 | 1832 | fonts/etbb/vf/Etbb1-BoldItalic-osf-swash-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-BoldItalic-osf-t1.vf
+2022/02/04 | 1796 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-sc-t1.vf
+2022/02/04 | 1832 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-swash-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-t1.vf
+2022/02/04 | 1800 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-sc-t1.vf
+2022/02/04 | 1836 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-swash-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-t1.vf
+2022/02/04 | 1776 | fonts/etbb/vf/Etbb1-Bold-lf-sc-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Bold-lf-swash-t1.vf
+2022/02/04 | 1800 | fonts/etbb/vf/Etbb1-Bold-lf-t1.vf
+2022/02/04 | 1780 | fonts/etbb/vf/Etbb1-Bold-osf-sc-t1.vf
+2022/02/04 | 1816 | fonts/etbb/vf/Etbb1-Bold-osf-swash-t1.vf
+2022/02/04 | 1804 | fonts/etbb/vf/Etbb1-Bold-osf-t1.vf
+2022/02/04 | 1780 | fonts/etbb/vf/Etbb1-Bold-tlf-sc-t1.vf
+2022/02/04 | 1816 | fonts/etbb/vf/Etbb1-Bold-tlf-swash-t1.vf
+2022/02/04 | 1804 | fonts/etbb/vf/Etbb1-Bold-tlf-t1.vf
+2022/02/04 | 1780 | fonts/etbb/vf/Etbb1-Bold-tosf-sc-t1.vf
+2022/02/04 | 1816 | fonts/etbb/vf/Etbb1-Bold-tosf-swash-t1.vf
+2022/02/04 | 1804 | fonts/etbb/vf/Etbb1-Bold-tosf-t1.vf
+2022/02/04 | 1784 | fonts/etbb/vf/Etbb1-Italic-lf-sc-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-Italic-lf-swash-t1.vf
+2022/02/04 | 1808 | fonts/etbb/vf/Etbb1-Italic-lf-t1.vf
+2022/02/04 | 1784 | fonts/etbb/vf/Etbb1-Italic-osf-sc-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-Italic-osf-swash-t1.vf
+2022/02/04 | 1808 | fonts/etbb/vf/Etbb1-Italic-osf-t1.vf
+2022/02/04 | 1784 | fonts/etbb/vf/Etbb1-Italic-tlf-sc-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-Italic-tlf-swash-t1.vf
+2022/02/04 | 1808 | fonts/etbb/vf/Etbb1-Italic-tlf-t1.vf
+2022/02/04 | 1788 | fonts/etbb/vf/Etbb1-Italic-tosf-sc-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-Italic-tosf-swash-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Italic-tosf-t1.vf
+2022/02/04 | 1784 | fonts/etbb/vf/Etbb1-Regular-lf-sc-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-Regular-lf-swash-t1.vf
+2022/02/04 | 1808 | fonts/etbb/vf/Etbb1-Regular-lf-t1.vf
+2022/02/04 | 1788 | fonts/etbb/vf/Etbb1-Regular-osf-sc-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-Regular-osf-swash-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Regular-osf-t1.vf
+2022/02/04 | 1788 | fonts/etbb/vf/Etbb1-Regular-tlf-sc-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-Regular-tlf-swash-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Regular-tlf-t1.vf
+2022/02/04 | 1788 | fonts/etbb/vf/Etbb1-Regular-tosf-sc-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-Regular-tosf-swash-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Regular-tosf-t1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-Bold-dnom-ly1.vf
+2022/02/04 | 780 | fonts/etbb/vf/ETbb-Bold-dnom-ot1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Bold-dnom-t1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-Bold-inf-ly1.vf
+2022/02/04 | 776 | fonts/etbb/vf/ETbb-Bold-inf-ot1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-inf-t1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-dnom-ly1.vf
+2022/02/04 | 784 | fonts/etbb/vf/ETbb-BoldItalic-dnom-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-dnom-t1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-inf-ly1.vf
+2022/02/04 | 784 | fonts/etbb/vf/ETbb-BoldItalic-inf-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-inf-t1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-lf-ly1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-BoldItalic-lf-ot1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ly1.vf
+2022/02/04 | 832 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ot1.vf
+2022/02/04 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-t1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ly1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-lf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-lf-t1.vf
+2022/02/04 | 488 | fonts/etbb/vf/ETbb-BoldItalic-lf-ts1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-osf-ly1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-BoldItalic-osf-ot1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ly1.vf
+2022/02/04 | 832 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ot1.vf
+2022/02/04 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-t1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ly1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-osf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-osf-t1.vf
+2022/02/04 | 488 | fonts/etbb/vf/ETbb-BoldItalic-osf-ts1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-sup-ly1.vf
+2022/02/04 | 784 | fonts/etbb/vf/ETbb-BoldItalic-sup-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-sup-t1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-tlf-ly1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-BoldItalic-tlf-ot1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ly1.vf
+2022/02/04 | 832 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ot1.vf
+2022/02/04 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-t1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ly1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-tlf-t1.vf
+2022/02/04 | 488 | fonts/etbb/vf/ETbb-BoldItalic-tlf-ts1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-BoldItalic-tosf-ly1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-BoldItalic-tosf-ot1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ly1.vf
+2022/02/04 | 836 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ot1.vf
+2022/02/04 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-t1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ly1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ot1.vf
+2022/02/04 | 1732 | fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-tosf-t1.vf
+2022/02/04 | 492 | fonts/etbb/vf/ETbb-BoldItalic-tosf-ts1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-Bold-lf-ly1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Bold-lf-ot1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Bold-lf-sc-ly1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Bold-lf-sc-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Bold-lf-sc-t1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Bold-lf-swash-ly1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-Bold-lf-swash-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Bold-lf-swash-t1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-lf-t1.vf
+2022/02/04 | 496 | fonts/etbb/vf/ETbb-Bold-lf-ts1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Bold-osf-ly1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Bold-osf-ot1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Bold-osf-sc-ly1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-Bold-osf-sc-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Bold-osf-sc-t1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Bold-osf-swash-ly1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-Bold-osf-swash-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Bold-osf-swash-t1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-osf-t1.vf
+2022/02/04 | 496 | fonts/etbb/vf/ETbb-Bold-osf-ts1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-Bold-sup-ly1.vf
+2022/02/04 | 776 | fonts/etbb/vf/ETbb-Bold-sup-ot1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-sup-t1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Bold-tlf-ly1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Bold-tlf-ot1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Bold-tlf-sc-ly1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-Bold-tlf-sc-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Bold-tlf-sc-t1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Bold-tlf-swash-ly1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-Bold-tlf-swash-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Bold-tlf-swash-t1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-tlf-t1.vf
+2022/02/04 | 496 | fonts/etbb/vf/ETbb-Bold-tlf-ts1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Bold-tosf-ly1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Bold-tosf-ot1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Bold-tosf-sc-ly1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-Bold-tosf-sc-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Bold-tosf-sc-t1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Bold-tosf-swash-ly1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Bold-tosf-swash-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Bold-tosf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Bold-tosf-t1.vf
+2022/02/04 | 496 | fonts/etbb/vf/ETbb-Bold-tosf-ts1.vf
+2022/02/04 | 1660 | fonts/etbb/vf/ETbb-Italic-dnom-ly1.vf
+2022/02/04 | 780 | fonts/etbb/vf/ETbb-Italic-dnom-ot1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-dnom-t1.vf
+2022/02/04 | 1660 | fonts/etbb/vf/ETbb-Italic-inf-ly1.vf
+2022/02/04 | 780 | fonts/etbb/vf/ETbb-Italic-inf-ot1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-inf-t1.vf
+2022/02/04 | 1688 | fonts/etbb/vf/ETbb-Italic-lf-ly1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Italic-lf-ot1.vf
+2022/02/04 | 1712 | fonts/etbb/vf/ETbb-Italic-lf-sc-ly1.vf
+2022/02/04 | 828 | fonts/etbb/vf/ETbb-Italic-lf-sc-ot1.vf
+2022/02/04 | 1736 | fonts/etbb/vf/ETbb-Italic-lf-sc-t1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Italic-lf-swash-ly1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Italic-lf-swash-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Italic-lf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-lf-t1.vf
+2022/02/04 | 484 | fonts/etbb/vf/ETbb-Italic-lf-ts1.vf
+2022/02/04 | 1688 | fonts/etbb/vf/ETbb-Italic-osf-ly1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Italic-osf-ot1.vf
+2022/02/04 | 1712 | fonts/etbb/vf/ETbb-Italic-osf-sc-ly1.vf
+2022/02/04 | 828 | fonts/etbb/vf/ETbb-Italic-osf-sc-ot1.vf
+2022/02/04 | 1736 | fonts/etbb/vf/ETbb-Italic-osf-sc-t1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Italic-osf-swash-ly1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Italic-osf-swash-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Italic-osf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-osf-t1.vf
+2022/02/04 | 484 | fonts/etbb/vf/ETbb-Italic-osf-ts1.vf
+2022/02/04 | 1660 | fonts/etbb/vf/ETbb-Italic-sup-ly1.vf
+2022/02/04 | 780 | fonts/etbb/vf/ETbb-Italic-sup-ot1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-sup-t1.vf
+2022/02/04 | 1688 | fonts/etbb/vf/ETbb-Italic-tlf-ly1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Italic-tlf-ot1.vf
+2022/02/04 | 1712 | fonts/etbb/vf/ETbb-Italic-tlf-sc-ly1.vf
+2022/02/04 | 828 | fonts/etbb/vf/ETbb-Italic-tlf-sc-ot1.vf
+2022/02/04 | 1736 | fonts/etbb/vf/ETbb-Italic-tlf-sc-t1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Italic-tlf-swash-ly1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Italic-tlf-swash-ot1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Italic-tlf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-tlf-t1.vf
+2022/02/04 | 484 | fonts/etbb/vf/ETbb-Italic-tlf-ts1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-Italic-tosf-ly1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-Italic-tosf-ot1.vf
+2022/02/04 | 1712 | fonts/etbb/vf/ETbb-Italic-tosf-sc-ly1.vf
+2022/02/04 | 832 | fonts/etbb/vf/ETbb-Italic-tosf-sc-ot1.vf
+2022/02/04 | 1736 | fonts/etbb/vf/ETbb-Italic-tosf-sc-t1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Italic-tosf-swash-ly1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Italic-tosf-swash-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Italic-tosf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-tosf-t1.vf
+2022/02/04 | 488 | fonts/etbb/vf/ETbb-Italic-tosf-ts1.vf
+2022/02/04 | 1668 | fonts/etbb/vf/ETbb-Regular-dnom-ly1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-dnom-t1.vf
+2022/02/04 | 1668 | fonts/etbb/vf/ETbb-Regular-inf-ly1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-inf-t1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Regular-lf-ly1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Regular-lf-sc-ly1.vf
+2022/02/04 | 788 | fonts/etbb/vf/ETbb-Regular-lf-sc-ot1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Regular-lf-sc-t1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Regular-lf-swash-ly1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Regular-lf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-lf-t1.vf
+2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-lf-ts1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Regular-osf-ly1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Regular-osf-sc-ly1.vf
+2022/02/04 | 788 | fonts/etbb/vf/ETbb-Regular-osf-sc-ot1.vf
+2022/02/04 | 1732 | fonts/etbb/vf/ETbb-Regular-osf-sc-t1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Regular-osf-swash-ly1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Regular-osf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-osf-t1.vf
+2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-osf-ts1.vf
+2022/02/04 | 1668 | fonts/etbb/vf/ETbb-Regular-sup-ly1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-sup-t1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Regular-tlf-ly1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Regular-tlf-sc-ly1.vf
+2022/02/04 | 788 | fonts/etbb/vf/ETbb-Regular-tlf-sc-ot1.vf
+2022/02/04 | 1732 | fonts/etbb/vf/ETbb-Regular-tlf-sc-t1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Regular-tlf-swash-ly1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Regular-tlf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-tlf-t1.vf
+2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-tlf-ts1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Regular-tosf-ly1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Regular-tosf-sc-ly1.vf
+2022/02/04 | 788 | fonts/etbb/vf/ETbb-Regular-tosf-sc-ot1.vf
+2022/02/04 | 1732 | fonts/etbb/vf/ETbb-Regular-tosf-sc-t1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Regular-tosf-swash-ly1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Regular-tosf-swash-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-tosf-t1.vf
+2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-tosf-ts1.vf
+2022/02/04 | 3340640 | fonts/etbb.zip
2021/07/12 | 11373 | fonts/eulerpx/eulerpx.sty
2021/07/12 | 7179 | fonts/eulerpx/README
2021/07/12 | 5498 | fonts/eulerpx.zip
@@ -51052,11 +51101,10 @@
2022/01/25 | 92622 | fonts/hamnosys/hamnosys.dtx
2022/01/25 | 2514 | fonts/hamnosys/hamnosys.ins
2022/01/25 | 185546 | fonts/hamnosys/hamnosys.pdf
-2022/01/25 | 16956 | fonts/hamnosys/hamnosys.sty
2022/01/25 | 44908 | fonts/hamnosys/HamNoSysUnicode.ttf
2022/01/25 | 19106 | fonts/hamnosys/LICENSE
2022/01/25 | 2543 | fonts/hamnosys/README.md
-2022/02/03 | 230258 | fonts/hamnosys.zip
+2022/02/04 | 227132 | fonts/hamnosys.zip
1992/09/27 | 1468 | fonts/hands/handsdef.mf
1992/09/27 | 3602 | fonts/hands/hands.mf
1992/09/27 | 377 | fonts/hands/mirror.mf
@@ -153656,57 +153704,60 @@
2019/04/14 | 24014 | graphics/pgf/contrib/chordbox/chordbox.tex
2019/04/14 | 1125 | graphics/pgf/contrib/chordbox/README.md
2019/04/15 | 567774 | graphics/pgf/contrib/chordbox.zip
-2021/12/06 | 39781 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
-2021/12/06 | 17688 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
-2021/12/06 | 938 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
-2021/12/06 | 1461547 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
-2021/12/06 | 461031 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
-2021/12/06 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
-2021/12/06 | 8222 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
-2021/12/06 | 3670 | graphics/pgf/contrib/circuitikz/README.md
-2021/12/06 | 364117 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
-2021/12/06 | 728 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
-2021/12/06 | 393884 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
-2021/12/06 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
-2021/12/06 | 403567 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
-2021/12/06 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
-2021/12/06 | 422295 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
-2021/12/06 | 641 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
-2021/12/06 | 690729 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
-2021/12/06 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
-2021/12/06 | 758991 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
-2021/12/06 | 841340 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
-2021/12/06 | 626 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
-2021/12/06 | 937130 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
-2021/12/06 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
-2021/12/06 | 1021798 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
-2021/12/06 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
-2021/12/06 | 13612 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
-2021/12/06 | 633 | graphics/pgf/contrib/circuitikz/tex/circutikz-0.9.6.sty
-2021/12/06 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
-2021/12/06 | 3150 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
-2021/12/06 | 2188 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
-2021/12/06 | 249923 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
-2021/12/06 | 9538 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
-2021/12/06 | 30967 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
-2021/12/06 | 9804 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
-2021/12/06 | 15442 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
-2021/12/06 | 54038 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
-2021/12/06 | 111942 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
-2021/12/06 | 16721 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
-2021/12/06 | 123018 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
-2021/12/06 | 31805 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
-2021/12/06 | 364683 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
-2021/12/06 | 14441 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
-2021/12/06 | 35438 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
-2021/12/06 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
-2021/12/06 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
-2021/12/06 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
-2021/12/06 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
-2021/12/06 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
-2021/12/06 | 1014383 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
-2021/12/06 | 3590 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
-2021/12/06 | 2789439 | graphics/pgf/contrib/circuitikz.zip
+2022/02/04 | 40817 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
+2022/02/04 | 17674 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+2022/02/04 | 938 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+2022/02/04 | 1485592 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+2022/02/04 | 462556 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+2022/02/04 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
+2022/02/04 | 8222 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
+2022/02/04 | 3802 | graphics/pgf/contrib/circuitikz/README.md
+2022/02/04 | 364117 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
+2022/02/04 | 728 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
+2022/02/04 | 393884 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
+2022/02/04 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
+2022/02/04 | 403567 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
+2022/02/04 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
+2022/02/04 | 422295 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
+2022/02/04 | 641 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
+2022/02/04 | 690729 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
+2022/02/04 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
+2022/02/04 | 758991 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
+2022/02/04 | 841340 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
+2022/02/04 | 626 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
+2022/02/04 | 937130 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
+2022/02/04 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
+2022/02/04 | 1021798 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
+2022/02/04 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
+2022/02/04 | 1081680 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
+2022/02/04 | 631 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
+2022/02/04 | 13737 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+2022/02/04 | 633 | graphics/pgf/contrib/circuitikz/tex/circutikz-0.9.6.sty
+2022/02/04 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
+2022/02/04 | 3150 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
+2022/02/04 | 2188 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
+2022/02/04 | 249923 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
+2022/02/04 | 9538 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
+2022/02/04 | 31564 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
+2022/02/04 | 9804 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
+2022/02/04 | 15442 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+2022/02/04 | 53858 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
+2022/02/04 | 111942 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
+2022/02/04 | 16721 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
+2022/02/04 | 123018 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
+2022/02/04 | 31859 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
+2022/02/04 | 364683 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+2022/02/04 | 14441 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
+2022/02/04 | 35438 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
+2022/02/04 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
+2022/02/04 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
+2022/02/04 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
+2022/02/04 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
+2022/02/04 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
+2022/02/04 | 1014383 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
+2022/02/04 | 1073051 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
+2022/02/04 | 3590 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+2022/02/04 | 3054113 | graphics/pgf/contrib/circuitikz.zip
2019/07/12 | 14811 | graphics/pgf/contrib/codeanatomy/codeanatomy.dtx
2019/07/12 | 1475 | graphics/pgf/contrib/codeanatomy/codeanatomy.ins
2019/07/12 | 123921 | graphics/pgf/contrib/codeanatomy/codeanatomy.lstlisting.pdf
@@ -154378,11 +154429,11 @@
2013/12/11 | 213768 | graphics/pgf/contrib/rulercompass/rulercompass.pdf
2013/12/11 | 15551 | graphics/pgf/contrib/rulercompass/tikzlibraryrulercompass.code.tex
2013/12/11 | 488384 | graphics/pgf/contrib/rulercompass.zip
-2021/03/14 | 415 | graphics/pgf/contrib/sankey/README
-2021/03/14 | 155760 | graphics/pgf/contrib/sankey/sankey.dtx
-2021/03/14 | 3013 | graphics/pgf/contrib/sankey/sankey.ins
-2021/03/14 | 942336 | graphics/pgf/contrib/sankey/sankey.pdf
-2021/03/14 | 944430 | graphics/pgf/contrib/sankey.zip
+2022/02/04 | 415 | graphics/pgf/contrib/sankey/README
+2022/02/04 | 159993 | graphics/pgf/contrib/sankey/sankey.dtx
+2022/02/04 | 3013 | graphics/pgf/contrib/sankey/sankey.ins
+2022/02/04 | 990719 | graphics/pgf/contrib/sankey/sankey.pdf
+2022/02/04 | 991598 | graphics/pgf/contrib/sankey.zip
2013/12/20 | 51669 | graphics/pgf/contrib/sa-tikz/doc/macros/pgfmanual-en-macros.tex
2014/01/29 | 890448 | graphics/pgf/contrib/sa-tikz/doc/sa-tikz-doc.pdf
2014/01/29 | 48225 | graphics/pgf/contrib/sa-tikz/doc/sa-tikz-doc.tex
@@ -184009,7 +184060,7 @@
2021/05/15 | 12827514 | install/graphics/pgf/base/pgf.tds.zip
2013/02/23 | 92056 | install/graphics/pgf/contrib/battleship.tds.zip
2016/02/19 | 701759 | install/graphics/pgf/contrib/celtic.tds.zip
-2021/12/06 | 2807203 | install/graphics/pgf/contrib/circuitikz.tds.zip
+2022/02/04 | 3072444 | install/graphics/pgf/contrib/circuitikz.tds.zip
2020/06/12 | 573255 | install/graphics/pgf/contrib/commutative-diagrams.tds.zip
2017/06/01 | 1005947 | install/graphics/pgf/contrib/hobby.tds.zip
2014/06/15 | 843875 | install/graphics/pgf/contrib/logicpuzzle.tds.zip
@@ -184062,7 +184113,7 @@
2015/08/04 | 140785 | install/macros/latex/contrib/alertmessage.tds.zip
2019/12/09 | 365186 | install/macros/latex/contrib/alphalph.tds.zip
2013/03/08 | 2249874 | install/macros/latex/contrib/amsrefs.tds.zip
-2022/01/31 | 3221586 | install/macros/latex/contrib/animate.tds.zip
+2022/02/04 | 3221968 | install/macros/latex/contrib/animate.tds.zip
2014/08/24 | 220789 | install/macros/latex/contrib/answers.tds.zip
2020/01/15 | 195222 | install/macros/latex/contrib/ascmac.tds.zip
2010/03/20 | 235440 | install/macros/latex/contrib/asyfig.tds.zip
@@ -184305,7 +184356,7 @@
2012/09/24 | 130991 | install/macros/latex/contrib/scrjrnl.tds.zip
2021/11/10 | 657160 | install/macros/latex/contrib/sdaps.tds.zip
2019/12/10 | 544332 | install/macros/latex/contrib/selinput.tds.zip
-2022/02/02 | 1462723 | install/macros/latex/contrib/siunitx.tds.zip
+2022/02/03 | 1462892 | install/macros/latex/contrib/siunitx.tds.zip
2019/10/15 | 315856 | install/macros/latex/contrib/skmath.tds.zip
2019/10/16 | 345652 | install/macros/latex/contrib/skrapport.tds.zip
2019/12/15 | 357584 | install/macros/latex/contrib/soulutf8.tds.zip
@@ -184386,7 +184437,7 @@
2022/01/12 | 202258 | install/macros/luatex/generic/luamplib.tds.zip
2021/05/21 | 1936005 | install/macros/luatex/generic/luaotfload.tds.zip
2015/10/04 | 277014 | install/macros/luatex/generic/luatexbase.tds.zip
-2022/01/31 | 310677 | install/macros/luatex/generic/lua-widow-control.tds.zip
+2022/02/04 | 317945 | install/macros/luatex/generic/lua-widow-control.tds.zip
2020/03/23 | 891718 | install/macros/luatex/latex/arabluatex.tds.zip
2021/11/21 | 970369 | install/macros/luatex/latex/ekdosis.tds.zip
2021/07/17 | 1183440 | install/macros/luatex/latex/emoji.tds.zip
@@ -184406,11 +184457,11 @@
2020/01/31 | 1873940 | install/macros/unicodetex/latex/unicode-math.tds.zip
2016/05/14 | 185871 | install/macros/xetex/generic/zhspacing.tds.zip
2015/09/04 | 718623 | install/macros/xetex/latex/arabxetex.tds.zip
-2022/01/30 | 4306512 | install/macros/xetex/latex/bidi.tds.zip
+2022/02/04 | 4309687 | install/macros/xetex/latex/bidi.tds.zip
2015/02/17 | 92757 | install/macros/xetex/latex/interchar.tds.zip
2021/08/19 | 464024 | install/macros/xetex/latex/mynsfc.tds.zip
2021/12/12 | 1924110 | install/macros/xetex/latex/xecjk.tds.zip
-2022/01/30 | 1272164 | install/macros/xetex/latex/xepersian.tds.zip
+2022/02/04 | 1285595 | install/macros/xetex/latex/xepersian.tds.zip
2008/06/20 | 3954 | install/macros/xetex/plain/xetexfontinfo.tds.zip
2013/01/04 | 36361 | install/support/adhocfilelist.tds.zip
2021/11/27 | 2294905 | install/support/albatross.tds.zip
@@ -201492,10 +201543,10 @@
2007/10/11 | 13856 | macros/latex/contrib/analogclock/clock.ttf
2008/12/22 | 551 | macros/latex/contrib/analogclock/README
2008/12/22 | 69900 | macros/latex/contrib/analogclock.zip
-2022/01/31 | 3753532 | macros/latex/contrib/animate/animate.pdf
-2022/01/31 | 139076 | macros/latex/contrib/animate/animate.sty
+2022/02/04 | 3753810 | macros/latex/contrib/animate/animate.pdf
+2022/02/04 | 139750 | macros/latex/contrib/animate/animate.sty
2022/01/25 | 84039 | macros/latex/contrib/animate/animate.tex
-2022/01/31 | 12742 | macros/latex/contrib/animate/ChangeLog
+2022/02/04 | 12821 | macros/latex/contrib/animate/ChangeLog
2020/03/11 | 8561 | macros/latex/contrib/animate/files/bye_0.eps
2020/03/11 | 8342 | macros/latex/contrib/animate/files/bye_1.eps
2020/03/11 | 8561 | macros/latex/contrib/animate/files/bye_2.eps
@@ -201504,7 +201555,7 @@
2022/01/25 | 2286 | macros/latex/contrib/animate/files/exp.mp
2022/01/25 | 3127 | macros/latex/contrib/animate/files/scarab.mp
2022/01/25 | 4163 | macros/latex/contrib/animate/README.md
-2022/01/31 | 3219313 | macros/latex/contrib/animate.zip
+2022/02/04 | 3219695 | macros/latex/contrib/animate.zip
2020/07/29 | 19402 | macros/latex/contrib/annee-scolaire/annee-scolaire.dtx
2020/07/29 | 467107 | macros/latex/contrib/annee-scolaire/annee-scolaire-eng.pdf
2020/07/29 | 489195 | macros/latex/contrib/annee-scolaire/annee-scolaire-fra.pdf
@@ -207109,12 +207160,12 @@
2013/04/03 | 3607 | macros/latex/contrib/crbox/crbox.sty
2013/04/03 | 914 | macros/latex/contrib/crbox/README
2013/04/04 | 30542 | macros/latex/contrib/crbox.zip
-2022/01/29 | 108754 | macros/latex/contrib/crefthe/crefthe-doc.pdf
-2022/01/29 | 10178 | macros/latex/contrib/crefthe/crefthe-doc.tex
-2022/01/29 | 10339 | macros/latex/contrib/crefthe/crefthe.sty
-2022/01/29 | 19106 | macros/latex/contrib/crefthe/LICENSE
-2022/01/29 | 2743 | macros/latex/contrib/crefthe/README.md
-2022/01/29 | 120388 | macros/latex/contrib/crefthe.zip
+2022/02/04 | 110051 | macros/latex/contrib/crefthe/crefthe-doc.pdf
+2022/02/04 | 10429 | macros/latex/contrib/crefthe/crefthe-doc.tex
+2022/02/04 | 9473 | macros/latex/contrib/crefthe/crefthe.sty
+2022/02/04 | 19106 | macros/latex/contrib/crefthe/LICENSE
+2022/02/04 | 2796 | macros/latex/contrib/crefthe/README.md
+2022/02/04 | 121760 | macros/latex/contrib/crefthe.zip
2020/06/05 | 67341 | macros/latex/contrib/crop/crop.dtx
2020/06/05 | 260 | macros/latex/contrib/crop/crop.ins
2020/06/05 | 327371 | macros/latex/contrib/crop/crop.pdf
@@ -208759,12 +208810,12 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2022/02/03 | 75649 | macros/latex/contrib/easybook/easybook.dtx
+2022/02/04 | 75637 | macros/latex/contrib/easybook/easybook.dtx
2022/01/02 | 2085 | macros/latex/contrib/easybook/easybook.ins
-2022/02/03 | 576025 | macros/latex/contrib/easybook/easybook.pdf
-2022/02/03 | 80742 | macros/latex/contrib/easybook/easybook.tex
+2022/02/04 | 576018 | macros/latex/contrib/easybook/easybook.pdf
+2022/02/04 | 80742 | macros/latex/contrib/easybook/easybook.tex
2021/11/17 | 795 | macros/latex/contrib/easybook/README.md
-2022/02/03 | 616701 | macros/latex/contrib/easybook.zip
+2022/02/04 | 616687 | macros/latex/contrib/easybook.zip
2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf
2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf
2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf
@@ -221942,97 +221993,97 @@
2021/09/27 | 5602 | macros/latex/contrib/reledmac/doc-include/migrate-par.dtx
2021/02/28 | 16 | macros/latex/contrib/reledmac/doc-more/latexmkrc
2021/02/28 | 243 | macros/latex/contrib/reledmac/doc-more/makefile
-2022/01/11 | 40813 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
+2022/02/04 | 40811 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
2021/02/28 | 4645 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.tex
-2022/01/11 | 201045 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+2022/02/04 | 201045 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
2021/05/13 | 1979 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.tex
-2022/01/11 | 199196 | macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+2022/02/04 | 199196 | macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
2021/05/13 | 2161 | macros/latex/contrib/reledmac/examples/1-criticalnotes.tex
-2022/01/11 | 295847 | macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+2022/02/04 | 295847 | macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
2021/05/13 | 9804 | macros/latex/contrib/reledmac/examples/1-sidenotes.tex
-2022/01/11 | 284803 | macros/latex/contrib/reledmac/examples/1-tabular.pdf
+2022/02/04 | 284803 | macros/latex/contrib/reledmac/examples/1-tabular.pdf
2021/05/13 | 2004 | macros/latex/contrib/reledmac/examples/1-tabular.tex
-2022/01/11 | 200373 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+2022/02/04 | 200373 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
2021/05/13 | 2592 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.tex
-2022/01/11 | 200204 | macros/latex/contrib/reledmac/examples/1-verses.pdf
+2022/02/04 | 200204 | macros/latex/contrib/reledmac/examples/1-verses.pdf
2021/05/13 | 1902 | macros/latex/contrib/reledmac/examples/1-verses.tex
-2022/01/11 | 209856 | macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+2022/02/04 | 209856 | macros/latex/contrib/reledmac/examples/2-antilabe.pdf
2021/05/13 | 1998 | macros/latex/contrib/reledmac/examples/2-antilabe.tex
-2022/01/11 | 199199 | macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+2022/02/04 | 199199 | macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
2021/05/13 | 1857 | macros/latex/contrib/reledmac/examples/2-cross_referencing.tex
-2022/01/11 | 202702 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+2022/02/04 | 202702 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
2021/05/13 | 6806 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.tex
-2022/01/11 | 284462 | macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+2022/02/04 | 284462 | macros/latex/contrib/reledmac/examples/2-glossaries.pdf
2021/09/27 | 1794 | macros/latex/contrib/reledmac/examples/2-glossaries.tex
-2022/01/11 | 283598 | macros/latex/contrib/reledmac/examples/2-indexing.pdf
+2022/02/04 | 283598 | macros/latex/contrib/reledmac/examples/2-indexing.pdf
2021/05/13 | 2761 | macros/latex/contrib/reledmac/examples/2-indexing.tex
-2022/01/11 | 277764 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+2022/02/04 | 277764 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
2021/09/27 | 1140 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.tex
-2022/01/11 | 293260 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
+2022/02/04 | 293260 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
2021/05/13 | 11391 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.tex
-2022/01/11 | 288423 | macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+2022/02/04 | 288423 | macros/latex/contrib/reledmac/examples/2-linespacing.pdf
2021/05/13 | 1488 | macros/latex/contrib/reledmac/examples/2-linespacing.tex
-2022/01/11 | 290106 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+2022/02/04 | 290106 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
2021/05/13 | 21449 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.tex
-2022/01/11 | 205925 | macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+2022/02/04 | 205925 | macros/latex/contrib/reledmac/examples/2-notes-width.pdf
2021/05/13 | 1528 | macros/latex/contrib/reledmac/examples/2-notes-width.tex
-2022/01/11 | 211562 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
+2022/02/04 | 211562 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
2021/05/13 | 5161 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.tex
-2022/01/11 | 286175 | macros/latex/contrib/reledmac/examples/2-performances.pdf
+2022/02/04 | 286175 | macros/latex/contrib/reledmac/examples/2-performances.pdf
2021/05/13 | 2710 | macros/latex/contrib/reledmac/examples/2-performances.tex
-2022/01/11 | 31497 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
+2022/02/04 | 31501 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
2021/02/28 | 3159 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.tex
-2022/01/11 | 309311 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
+2022/02/04 | 309311 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
2021/05/13 | 15949 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.tex
-2022/01/11 | 287548 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+2022/02/04 | 287548 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
2021/05/13 | 3065 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.tex
-2022/01/11 | 199051 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
+2022/02/04 | 199051 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
2021/05/13 | 2006 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.tex
-2022/01/11 | 23428 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
+2022/02/04 | 23425 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
2021/02/28 | 2388 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.tex
-2022/01/11 | 174535 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
+2022/02/04 | 174535 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
2021/05/13 | 2912 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.tex
-2022/01/11 | 32047 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
+2022/02/04 | 32047 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
2021/02/28 | 2027 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.tex
-2022/01/11 | 288679 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+2022/02/04 | 288679 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
2021/05/13 | 20137 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.tex
-2022/01/11 | 199948 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+2022/02/04 | 199948 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
2021/05/13 | 1665 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.tex
-2022/01/11 | 199183 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+2022/02/04 | 199183 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
2021/05/13 | 1627 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.tex
-2022/01/11 | 177026 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
+2022/02/04 | 177026 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
2021/05/13 | 1553 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.tex
-2022/01/11 | 198522 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
-2022/01/11 | 199590 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+2022/02/04 | 198522 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+2022/02/04 | 199590 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
2021/05/13 | 1644 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.tex
2021/05/13 | 1603 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.tex
-2022/01/11 | 198573 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+2022/02/04 | 198573 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
2021/05/13 | 1609 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.tex
-2022/01/11 | 198707 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+2022/02/04 | 198707 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
2021/05/13 | 1611 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.tex
-2022/01/11 | 213256 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
+2022/02/04 | 213256 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
2021/09/27 | 13653 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.tex
-2022/01/11 | 211867 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
+2022/02/04 | 211867 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
2021/09/27 | 12681 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.tex
-2022/01/11 | 204143 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
+2022/02/04 | 204143 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
2021/05/13 | 3005 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.tex
-2022/01/11 | 297127 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+2022/02/04 | 297127 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
2021/05/13 | 5587 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.tex
-2022/01/11 | 203251 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+2022/02/04 | 203251 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
2021/05/13 | 11558 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.tex
-2022/01/11 | 224508 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+2022/02/04 | 224508 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
2021/05/13 | 10033 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.tex
-2022/01/11 | 249192 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
+2022/02/04 | 249192 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
2021/05/13 | 43045 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.tex
-2022/01/11 | 203970 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+2022/02/04 | 203970 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
2021/05/13 | 6540 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.tex
-2022/01/11 | 199821 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+2022/02/04 | 199821 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
2021/05/13 | 4504 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.tex
-2022/01/11 | 301523 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+2022/02/04 | 301523 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
2021/05/13 | 9314 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.tex
-2022/01/11 | 206311 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+2022/02/04 | 206311 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
2021/05/13 | 8510 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.tex
-2022/01/11 | 195383 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
+2022/02/04 | 195383 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
2021/05/13 | 2157 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.tex
2021/02/28 | 49 | macros/latex/contrib/reledmac/examples/latexmkrc
2021/05/13 | 816 | macros/latex/contrib/reledmac/examples/makefile
@@ -222040,15 +222091,15 @@
2021/11/01 | 16 | macros/latex/contrib/reledmac/latexmkrc
2021/11/03 | 1718 | macros/latex/contrib/reledmac/makefile
2021/02/28 | 3495 | macros/latex/contrib/reledmac/migration.dtx
-2022/01/11 | 368877 | macros/latex/contrib/reledmac/migration.pdf
+2022/02/04 | 368877 | macros/latex/contrib/reledmac/migration.pdf
2021/09/27 | 3962 | macros/latex/contrib/reledmac/README.md
-2022/01/11 | 898792 | macros/latex/contrib/reledmac/reledmac.dtx
+2022/02/04 | 898946 | macros/latex/contrib/reledmac/reledmac.dtx
2021/02/28 | 2691 | macros/latex/contrib/reledmac/reledmac.ins
-2022/01/11 | 2064848 | macros/latex/contrib/reledmac/reledmac.pdf
+2022/02/04 | 2065249 | macros/latex/contrib/reledmac/reledmac.pdf
2021/11/03 | 306199 | macros/latex/contrib/reledmac/reledpar.dtx
2021/02/28 | 2638 | macros/latex/contrib/reledmac/reledpar.ins
-2022/01/11 | 1006705 | macros/latex/contrib/reledmac/reledpar.pdf
-2022/01/11 | 13511506 | macros/latex/contrib/reledmac.zip
+2022/02/04 | 1006705 | macros/latex/contrib/reledmac/reledpar.pdf
+2022/02/04 | 13511934 | macros/latex/contrib/reledmac.zip
1999/02/05 | 10370 | macros/latex/contrib/relenc/2sidedoc.sty
2011/04/06 | 6770 | macros/latex/contrib/relenc/README
1999/02/05 | 13969 | macros/latex/contrib/relenc/reldemo.tex
@@ -223680,33 +223731,33 @@
2007/12/02 | 2971 | macros/latex/contrib/SIunits/SIunits.ins
2007/12/02 | 328621 | macros/latex/contrib/SIunits/SIunits.pdf
2007/12/02 | 296391 | macros/latex/contrib/SIunits.zip
-2022/02/02 | 64171 | macros/latex/contrib/siunitx/CHANGELOG.md
-2022/02/02 | 996 | macros/latex/contrib/siunitx/README.md
-2022/02/02 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
-2022/02/02 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
-2022/02/02 | 16709 | macros/latex/contrib/siunitx/siunitx-angle.dtx
-2022/02/02 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
-2022/02/02 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
-2022/02/02 | 607585 | macros/latex/contrib/siunitx/siunitx-code.pdf
-2022/02/02 | 2492 | macros/latex/contrib/siunitx/siunitx-code.tex
-2022/02/02 | 8798 | macros/latex/contrib/siunitx/siunitx-command.dtx
-2022/02/02 | 25985 | macros/latex/contrib/siunitx/siunitx-complex.dtx
-2022/02/02 | 33799 | macros/latex/contrib/siunitx/siunitx-compound.dtx
-2022/02/02 | 19900 | macros/latex/contrib/siunitx/siunitx.dtx
-2022/02/02 | 31668 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
-2022/02/02 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
-2022/02/02 | 5029 | macros/latex/contrib/siunitx/siunitx-locale.dtx
-2022/02/02 | 122028 | macros/latex/contrib/siunitx/siunitx-number.dtx
-2022/02/02 | 639462 | macros/latex/contrib/siunitx/siunitx.pdf
-2022/02/02 | 34310 | macros/latex/contrib/siunitx/siunitx-print.dtx
-2022/02/02 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
-2022/02/02 | 9759 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
-2022/02/02 | 50881 | macros/latex/contrib/siunitx/siunitx-table.dtx
-2022/02/02 | 148539 | macros/latex/contrib/siunitx/siunitx.tex
-2022/02/02 | 98548 | macros/latex/contrib/siunitx/siunitx-unit.dtx
-2022/02/02 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
-2022/02/02 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
-2022/02/02 | 1422416 | macros/latex/contrib/siunitx.zip
+2022/02/03 | 64333 | macros/latex/contrib/siunitx/CHANGELOG.md
+2022/02/03 | 996 | macros/latex/contrib/siunitx/README.md
+2022/02/03 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
+2022/02/03 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
+2022/02/03 | 16709 | macros/latex/contrib/siunitx/siunitx-angle.dtx
+2022/02/03 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
+2022/02/03 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
+2022/02/03 | 607726 | macros/latex/contrib/siunitx/siunitx-code.pdf
+2022/02/03 | 2492 | macros/latex/contrib/siunitx/siunitx-code.tex
+2022/02/03 | 8798 | macros/latex/contrib/siunitx/siunitx-command.dtx
+2022/02/03 | 25985 | macros/latex/contrib/siunitx/siunitx-complex.dtx
+2022/02/03 | 33799 | macros/latex/contrib/siunitx/siunitx-compound.dtx
+2022/02/03 | 19900 | macros/latex/contrib/siunitx/siunitx.dtx
+2022/02/03 | 31668 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
+2022/02/03 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
+2022/02/03 | 5029 | macros/latex/contrib/siunitx/siunitx-locale.dtx
+2022/02/03 | 121890 | macros/latex/contrib/siunitx/siunitx-number.dtx
+2022/02/03 | 639466 | macros/latex/contrib/siunitx/siunitx.pdf
+2022/02/03 | 34421 | macros/latex/contrib/siunitx/siunitx-print.dtx
+2022/02/03 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
+2022/02/03 | 9759 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
+2022/02/03 | 50881 | macros/latex/contrib/siunitx/siunitx-table.dtx
+2022/02/03 | 148539 | macros/latex/contrib/siunitx/siunitx.tex
+2022/02/03 | 98548 | macros/latex/contrib/siunitx/siunitx-unit.dtx
+2022/02/03 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
+2022/02/03 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
+2022/02/04 | 1422571 | macros/latex/contrib/siunitx.zip
2011/06/03 | 662398 | macros/latex/contrib/skb/doc/skb.pdf
2011/03/15 | 1485 | macros/latex/contrib/skb/doc/user-guide/database/acronyms.tex
2011/03/15 | 722 | macros/latex/contrib/skb/doc/user-guide/database/bibliography.tex
@@ -234836,17 +234887,17 @@
2021/03/02 | 4289 | macros/luatex/generic/luavlna/luavlna.tex
2021/03/02 | 3320 | macros/luatex/generic/luavlna/README.md
2021/03/02 | 104575 | macros/luatex/generic/luavlna.zip
-2022/01/31 | 13566 | macros/luatex/generic/lua-widow-control/lua-widow-control.lua
-2022/01/31 | 313200 | macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
-2022/01/31 | 1884 | macros/luatex/generic/lua-widow-control/lua-widow-control.sty
-2022/01/31 | 1579 | macros/luatex/generic/lua-widow-control/lua-widow-control.tex
-2022/01/31 | 1492 | macros/luatex/generic/lua-widow-control/lwc-documentation.bib
-2022/01/31 | 8370 | macros/luatex/generic/lua-widow-control/lwc-documentation.mkxl
-2022/01/31 | 22285 | macros/luatex/generic/lua-widow-control/lwc-documentation.tex
-2022/01/31 | 3795 | macros/luatex/generic/lua-widow-control/lwc-sample.tex
-2022/01/31 | 2431 | macros/luatex/generic/lua-widow-control/README.md
-2022/01/31 | 1989 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
-2022/01/31 | 307713 | macros/luatex/generic/lua-widow-control.zip
+2022/02/04 | 13586 | macros/luatex/generic/lua-widow-control/lua-widow-control.lua
+2022/02/04 | 318979 | macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
+2022/02/04 | 1884 | macros/luatex/generic/lua-widow-control/lua-widow-control.sty
+2022/02/04 | 1579 | macros/luatex/generic/lua-widow-control/lua-widow-control.tex
+2022/02/04 | 1492 | macros/luatex/generic/lua-widow-control/lwc-documentation.bib
+2022/02/04 | 8370 | macros/luatex/generic/lua-widow-control/lwc-documentation.mkxl
+2022/02/04 | 22285 | macros/luatex/generic/lua-widow-control/lwc-documentation.tex
+2022/02/04 | 3872 | macros/luatex/generic/lua-widow-control/lwc-sample.tex
+2022/02/04 | 2431 | macros/luatex/generic/lua-widow-control/README.md
+2022/02/04 | 1989 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
+2022/02/04 | 314981 | macros/luatex/generic/lua-widow-control.zip
2021/10/07 | 15321 | macros/luatex/generic/luaxml/luaxml-cssquery.lua
2021/10/07 | 16299 | macros/luatex/generic/luaxml/luaxml-domobject.lua
2021/10/07 | 1357 | macros/luatex/generic/luaxml/luaxml-entities.lua
@@ -244042,20 +244093,20 @@
2014/09/11 | 11299 | macros/xetex/latex/bidi-atbegshi/test-RTL.pdf
2014/09/11 | 637 | macros/xetex/latex/bidi-atbegshi/test-RTL.tex
2014/09/11 | 72238 | macros/xetex/latex/bidi-atbegshi.zip
-2022/01/30 | 2936 | macros/xetex/latex/bidi/bidi-bibitem.pdf
-2022/01/30 | 1382 | macros/xetex/latex/bidi/bidi-doc-intro.ltx
-2022/01/30 | 23945 | macros/xetex/latex/bidi/bidi-doc-latex-basics.ltx
-2022/01/30 | 4547 | macros/xetex/latex/bidi/bidi-doc-latex-pkgs.ltx
-2022/01/30 | 6101 | macros/xetex/latex/bidi/bidi-doc-latex-pkgsupport.ltx
-2022/01/30 | 4497 | macros/xetex/latex/bidi/bidi-doc-latex-programming.ltx
-2022/01/30 | 534 | macros/xetex/latex/bidi/bidi-doc.ltx
-2022/01/30 | 180395 | macros/xetex/latex/bidi/bidi-doc.pdf
-2022/01/30 | 5939 | macros/xetex/latex/bidi/bidi-doc-plain-basics.ltx
-2022/01/30 | 1961 | macros/xetex/latex/bidi/bidi-doc-plain-programming.ltx
-2022/01/30 | 3596 | macros/xetex/latex/bidi/bidi-doc-preamble.ltx
-2022/01/30 | 1805 | macros/xetex/latex/bidi/bidi-doc-title.ltx
-2022/01/30 | 895961 | macros/xetex/latex/bidi/bidi.dtx
-2022/01/30 | 3119340 | macros/xetex/latex/bidi/bidi.pdf
+2022/02/04 | 2936 | macros/xetex/latex/bidi/bidi-bibitem.pdf
+2022/02/04 | 1448 | macros/xetex/latex/bidi/bidi-doc-intro.ltx
+2022/02/04 | 23945 | macros/xetex/latex/bidi/bidi-doc-latex-basics.ltx
+2022/02/04 | 4547 | macros/xetex/latex/bidi/bidi-doc-latex-pkgs.ltx
+2022/02/04 | 6101 | macros/xetex/latex/bidi/bidi-doc-latex-pkgsupport.ltx
+2022/02/04 | 4497 | macros/xetex/latex/bidi/bidi-doc-latex-programming.ltx
+2022/02/04 | 534 | macros/xetex/latex/bidi/bidi-doc.ltx
+2022/02/04 | 180744 | macros/xetex/latex/bidi/bidi-doc.pdf
+2022/02/04 | 5939 | macros/xetex/latex/bidi/bidi-doc-plain-basics.ltx
+2022/02/04 | 1961 | macros/xetex/latex/bidi/bidi-doc-plain-programming.ltx
+2022/02/04 | 3596 | macros/xetex/latex/bidi/bidi-doc-preamble.ltx
+2022/02/04 | 2150 | macros/xetex/latex/bidi/bidi-doc-title.ltx
+2022/02/04 | 896771 | macros/xetex/latex/bidi/bidi.dtx
+2022/02/04 | 3120474 | macros/xetex/latex/bidi/bidi.pdf
2014/07/16 | 22035 | macros/xetex/latex/bidicontour/bidicontour-doc.pdf
2014/07/15 | 1803 | macros/xetex/latex/bidicontour/bidicontour-doc.tex
2014/07/15 | 7167 | macros/xetex/latex/bidicontour/bidicontour-example-copies.pdf
@@ -244065,7 +244116,7 @@
2014/07/15 | 4087 | macros/xetex/latex/bidicontour/bidicontour.sty
2014/07/15 | 1071 | macros/xetex/latex/bidicontour/README
2014/07/16 | 38915 | macros/xetex/latex/bidicontour.zip
-2022/01/30 | 761651 | macros/xetex/latex/bidi/gull.jpg
+2022/02/04 | 761651 | macros/xetex/latex/bidi/gull.jpg
2015/07/07 | 24129 | macros/xetex/latex/bidihl/bidihl-doc.pdf
2015/07/06 | 1029 | macros/xetex/latex/bidihl/bidihl-doc.tex
2015/07/06 | 7245 | macros/xetex/latex/bidihl/bidihl.sty
@@ -244078,7 +244129,7 @@
2014/07/15 | 13019 | macros/xetex/latex/bidipagegrid/bidipagegrid.sty
2014/07/15 | 1068 | macros/xetex/latex/bidipagegrid/README
2014/07/16 | 29164 | macros/xetex/latex/bidipagegrid.zip
-2022/01/30 | 1693 | macros/xetex/latex/bidi/picture.jpg
+2022/02/04 | 1693 | macros/xetex/latex/bidi/picture.jpg
2014/09/25 | 25208 | macros/xetex/latex/bidipresentation/bidiprescolors.cfg
2014/09/25 | 159986 | macros/xetex/latex/bidipresentation/bidipresentation.cls
2014/09/25 | 2479 | macros/xetex/latex/bidipresentation/fig-1.pdf
@@ -244086,14 +244137,14 @@
2014/09/26 | 75608 | macros/xetex/latex/bidipresentation/sample.pdf
2014/09/25 | 12758 | macros/xetex/latex/bidipresentation/sample.tex
2014/09/26 | 107612 | macros/xetex/latex/bidipresentation.zip
-2022/01/30 | 1053 | macros/xetex/latex/bidi/README
+2022/02/04 | 1354 | macros/xetex/latex/bidi/README
2014/07/16 | 18289 | macros/xetex/latex/bidishadowtext/bidishadowtext-demo.pdf
2014/07/16 | 1203 | macros/xetex/latex/bidishadowtext/bidishadowtext-demo.tex
2014/07/16 | 101629 | macros/xetex/latex/bidishadowtext/bidishadowtext-doc.pdf
2014/07/16 | 1667 | macros/xetex/latex/bidishadowtext/bidishadowtext-doc.tex
2014/07/16 | 2436 | macros/xetex/latex/bidishadowtext/bidishadowtext.sty
2014/07/16 | 120948 | macros/xetex/latex/bidishadowtext.zip
-2022/01/30 | 3949235 | macros/xetex/latex/bidi.zip
+2022/02/04 | 3952375 | macros/xetex/latex/bidi.zip
2021/06/27 | 95265 | macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.pdf
2021/06/27 | 6011 | macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.sty
2021/06/27 | 15511 | macros/xetex/latex/book-of-common-prayer/book-of-common-prayer.tex
@@ -244611,9 +244662,9 @@
2014/12/05 | 4915 | macros/xetex/latex/xeindex/xeindex.sty
2014/12/05 | 19009 | macros/xetex/latex/xeindex/xeindex.tex
2014/12/05 | 79942 | macros/xetex/latex/xeindex.zip
-2022/01/30 | 15976 | macros/xetex/latex/xepersian/dkun-0.3.py
-2022/01/30 | 15867 | macros/xetex/latex/xepersian/dkun-0.4.py
-2022/01/30 | 38725 | macros/xetex/latex/xepersian/ftxe-0.12.py
+2022/02/04 | 15976 | macros/xetex/latex/xepersian/dkun-0.3.py
+2022/02/04 | 15867 | macros/xetex/latex/xepersian/dkun-0.4.py
+2022/02/04 | 38725 | macros/xetex/latex/xepersian/ftxe-0.12.py
2020/09/04 | 13130 | macros/xetex/latex/xepersian-hm/doc-ligature-xepersian-hm.pdf
2020/09/04 | 10104 | macros/xetex/latex/xepersian-hm/doc-ligature-xep.pdf
2020/09/04 | 63436 | macros/xetex/latex/xepersian-hm/doc-samples-glyph.pdf
@@ -244635,26 +244686,26 @@
2020/09/04 | 106056 | macros/xetex/latex/xepersian-hm/xepersian-XB.pdf
2020/09/04 | 2945 | macros/xetex/latex/xepersian-hm/xepersian-XB.tex
2020/09/04 | 2217805 | macros/xetex/latex/xepersian-hm.zip
-2022/01/30 | 18304 | macros/xetex/latex/xepersian/img/ireland.jpg
-2022/01/30 | 13088 | macros/xetex/latex/xepersian/img/weather/clouds.jpg
-2022/01/30 | 14616 | macros/xetex/latex/xepersian/img/weather/rain.jpg
-2022/01/30 | 10896 | macros/xetex/latex/xepersian/img/weather/sun.jpg
-2022/01/30 | 1116 | macros/xetex/latex/xepersian/README
-2022/01/30 | 13804 | macros/xetex/latex/xepersian/undk-0.6.py
-2022/01/30 | 12348 | macros/xetex/latex/xepersian/unldk-0.2.py
-2022/01/30 | 71647 | macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
-2022/01/30 | 410 | macros/xetex/latex/xepersian/xepersian-doc-boolean.ltx
-2022/01/30 | 3099 | macros/xetex/latex/xepersian/xepersian-doc-captions.ltx
-2022/01/30 | 5453 | macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx
-2022/01/30 | 2551 | macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
-2022/01/30 | 454 | macros/xetex/latex/xepersian/xepersian-doc.ltx
-2022/01/30 | 242527 | macros/xetex/latex/xepersian/xepersian-doc.pdf
-2022/01/30 | 25947 | macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
-2022/01/30 | 4149 | macros/xetex/latex/xepersian/xepersian-doc-preamble.ltx
-2022/01/30 | 1800 | macros/xetex/latex/xepersian/xepersian-doc-title.ltx
-2022/01/30 | 333811 | macros/xetex/latex/xepersian/xepersian.dtx
-2022/01/30 | 757400 | macros/xetex/latex/xepersian/xepersian.pdf
-2022/01/30 | 1112225 | macros/xetex/latex/xepersian.zip
+2022/02/04 | 18304 | macros/xetex/latex/xepersian/img/ireland.jpg
+2022/02/04 | 13088 | macros/xetex/latex/xepersian/img/weather/clouds.jpg
+2022/02/04 | 14616 | macros/xetex/latex/xepersian/img/weather/rain.jpg
+2022/02/04 | 10896 | macros/xetex/latex/xepersian/img/weather/sun.jpg
+2022/02/04 | 1422 | macros/xetex/latex/xepersian/README
+2022/02/04 | 13804 | macros/xetex/latex/xepersian/undk-0.6.py
+2022/02/04 | 12348 | macros/xetex/latex/xepersian/unldk-0.2.py
+2022/02/04 | 71644 | macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
+2022/02/04 | 410 | macros/xetex/latex/xepersian/xepersian-doc-boolean.ltx
+2022/02/04 | 3099 | macros/xetex/latex/xepersian/xepersian-doc-captions.ltx
+2022/02/04 | 5447 | macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx
+2022/02/04 | 2622 | macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
+2022/02/04 | 454 | macros/xetex/latex/xepersian/xepersian-doc.ltx
+2022/02/04 | 246658 | macros/xetex/latex/xepersian/xepersian-doc.pdf
+2022/02/04 | 25946 | macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
+2022/02/04 | 4149 | macros/xetex/latex/xepersian/xepersian-doc-preamble.ltx
+2022/02/04 | 2150 | macros/xetex/latex/xepersian/xepersian-doc-title.ltx
+2022/02/04 | 337010 | macros/xetex/latex/xepersian/xepersian.dtx
+2022/02/04 | 765803 | macros/xetex/latex/xepersian/xepersian.pdf
+2022/02/04 | 1123663 | macros/xetex/latex/xepersian.zip
2021/03/29 | 142 | macros/xetex/latex/xesoul/README
2021/03/29 | 3942 | macros/xetex/latex/xesoul/xesoul.dtx
2021/03/29 | 1517 | macros/xetex/latex/xesoul/xesoul.ins
@@ -273487,15 +273538,29 @@
2020/10/11 | 1703 | support/splint/TODO
2020/10/11 | 6 | support/splint/VERSION
2020/10/11 | 2420396 | support/splint.zip
-2016/01/13 | 1189 | support/SQLTeX/install
-2016/01/13 | 3454 | support/SQLTeX/README
-2016/01/13 | 1295 | support/SQLTeX/SQLTeX.cfg
-2016/01/13 | 271211 | support/SQLTeX/SQLTeX.pdf
-2016/01/13 | 30288 | support/SQLTeX/SQLTeX.pl
-2016/01/13 | 960 | support/SQLTeX/SQLTeX_r.dat
-2016/01/13 | 36096 | support/SQLTeX/SQLTeX.tex
-2016/01/13 | 9215920 | support/SQLTeX/SQLTeX.v2.0.exe
-2016/01/13 | 6475115 | support/SQLTeX.zip
+2022/01/03 | 2251 | support/SQLTeX/aclocal/ax_prog_perl_modules.m4
+2022/01/23 | 27307 | support/SQLTeX/aclocal.m4
+2022/01/23 | 106900 | support/SQLTeX/configure
+2022/01/19 | 640 | support/SQLTeX/configure.ac
+2022/01/23 | 250 | support/SQLTeX/doc/Makefile.am
+2022/01/23 | 9676 | support/SQLTeX/doc/Makefile.in
+2022/01/23 | 270112 | support/SQLTeX/doc/SQLTeX.pdf
+2022/01/23 | 41749 | support/SQLTeX/doc/SQLTeX.tex
+2016/03/30 | 15155 | support/SQLTeX/install-sh
+2022/01/22 | 136 | support/SQLTeX/Makefile.am
+2022/01/23 | 23581 | support/SQLTeX/Makefile.in
+2022/01/23 | 310 | support/SQLTeX/man/Makefile.am
+2022/01/23 | 9737 | support/SQLTeX/man/Makefile.in
+2022/01/23 | 4446 | support/SQLTeX/man/SQLTeX.man
+2016/03/30 | 6872 | support/SQLTeX/missing
+2022/01/21 | 3328 | support/SQLTeX/README.md
+2022/01/21 | 11966777 | support/SQLTeX/SQLTeX.exe
+2022/01/23 | 446 | support/SQLTeX/src/Makefile.am
+2022/01/23 | 9874 | support/SQLTeX/src/Makefile.in
+2022/01/23 | 1637 | support/SQLTeX/src/SQLTeX.cfg
+2022/01/23 | 34908 | support/SQLTeX/src/SQLTeX.pl
+2022/01/23 | 960 | support/SQLTeX/src/SQLTeX_r.dat
+2022/02/04 | 7961775 | support/SQLTeX.zip
2015/06/02 | 1900 | support/srcredact/Makefile
2015/10/25 | 448 | support/srcredact/README
2015/10/25 | 9772 | support/srcredact/srcredact.1
@@ -274256,7 +274321,7 @@
2021/05/03 | 629 | support/TeX4ht/doc/README
2020/08/24 | 358454 | support/TeX4ht/doc/TeX4ht-doc.tex
2021/05/11 | 262 | support/TeX4ht/README
-2022/02/02 | 181926 | support/TeX4ht/source/ChangeLog
+2022/02/03 | 182110 | support/TeX4ht/source/ChangeLog
2021/05/03 | 1375 | support/TeX4ht/source/checklog.lua
2021/05/03 | 1189 | support/TeX4ht/source/common-code.tex
2021/05/03 | 2727 | support/TeX4ht/source/common-info.tex
@@ -274292,7 +274357,7 @@
2021/05/03 | 14218 | support/TeX4ht/source/tex4ht-htcmd.tex
2021/05/03 | 70683 | support/TeX4ht/source/tex4ht-html0.tex
2021/05/03 | 164748 | support/TeX4ht/source/tex4ht-html32.tex
-2022/02/02 | 610379 | support/TeX4ht/source/tex4ht-html4.tex
+2022/02/03 | 610585 | support/TeX4ht/source/tex4ht-html4.tex
2022/01/23 | 10834 | support/TeX4ht/source/tex4ht-html5.tex
2021/06/17 | 648233 | support/TeX4ht/source/tex4ht-html-speech.tex
2021/05/03 | 59483 | support/TeX4ht/source/tex4ht-html-speech-xtpipes.tex
@@ -279131,20 +279196,18 @@
2022/01/12 | 1206428 | systems/texlive/tlnet/archive/bibarts.doc.r61569.tar.xz
2022/01/12 | 27280 | systems/texlive/tlnet/archive/bibarts.r61569.tar.xz
2022/01/12 | 47504 | systems/texlive/tlnet/archive/bibarts.source.r61569.tar.xz
-2021/01/01 | 22778016 | systems/texlive/tlnet/archive/biber.amd64-freebsd.r57273.tar.xz
-2021/01/01 | 262140 | systems/texlive/tlnet/archive/biber.doc.r57273.tar.xz
-2021/01/01 | 17180072 | systems/texlive/tlnet/archive/biber.i386-cygwin.r57273.tar.xz
-2021/01/01 | 20865460 | systems/texlive/tlnet/archive/biber.i386-freebsd.r57273.tar.xz
-2021/01/01 | 20747804 | systems/texlive/tlnet/archive/biber.i386-linux.r57273.tar.xz
-2021/01/01 | 732 | systems/texlive/tlnet/archive/biber.r57273.tar.xz
-2021/01/01 | 930660 | systems/texlive/tlnet/archive/biber.source.r57273.tar.xz
-2021/02/26 | 33809312 | systems/texlive/tlnet/archive/biber.universal-darwin.r57936.tar.xz
-2021/01/01 | 22825312 | systems/texlive/tlnet/archive/biber.win32.r57273.tar.xz
-2021/01/01 | 17320996 | systems/texlive/tlnet/archive/biber.x86_64-cygwin.r57273.tar.xz
-2021/01/01 | 34908476 | systems/texlive/tlnet/archive/biber.x86_64-darwinlegacy.r57273.tar.xz
-2021/01/01 | 18684604 | systems/texlive/tlnet/archive/biber.x86_64-linuxmusl.r57273.tar.xz
-2021/01/01 | 23537584 | systems/texlive/tlnet/archive/biber.x86_64-linux.r57273.tar.xz
-2021/01/01 | 21923872 | systems/texlive/tlnet/archive/biber.x86_64-solaris.r57273.tar.xz
+2022/02/04 | 265584 | systems/texlive/tlnet/archive/biber.doc.r61867.tar.xz
+2022/02/04 | 17154236 | systems/texlive/tlnet/archive/biber.i386-cygwin.r61867.tar.xz
+2022/02/04 | 15876208 | systems/texlive/tlnet/archive/biber.i386-linux.r61867.tar.xz
+2022/02/04 | 732 | systems/texlive/tlnet/archive/biber.r61867.tar.xz
+2022/02/04 | 963780 | systems/texlive/tlnet/archive/biber.source.r61867.tar.xz
+2022/02/04 | 33811544 | systems/texlive/tlnet/archive/biber.universal-darwin.r61867.tar.xz
+2022/02/04 | 22827756 | systems/texlive/tlnet/archive/biber.win32.r61867.tar.xz
+2022/02/04 | 17285996 | systems/texlive/tlnet/archive/biber.x86_64-cygwin.r61867.tar.xz
+2022/02/04 | 34909040 | systems/texlive/tlnet/archive/biber.x86_64-darwinlegacy.r61867.tar.xz
+2022/02/04 | 18087472 | systems/texlive/tlnet/archive/biber.x86_64-linuxmusl.r61867.tar.xz
+2022/02/04 | 23540944 | systems/texlive/tlnet/archive/biber.x86_64-linux.r61867.tar.xz
+2022/02/04 | 21927600 | systems/texlive/tlnet/archive/biber.x86_64-solaris.r61867.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/bibexport.aarch64-linux.r46208.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/bibexport.amd64-freebsd.r16484.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/bibexport.amd64-netbsd.r30191.tar.xz
@@ -279205,7 +279268,7 @@
2019/02/28 | 2184 | systems/texlive/tlnet/archive/biblatex-claves.r43723.tar.xz
2021/06/03 | 167160 | systems/texlive/tlnet/archive/biblatex-cv.doc.r59433.tar.xz
2021/06/03 | 10060 | systems/texlive/tlnet/archive/biblatex-cv.r59433.tar.xz
-2021/01/01 | 7209940 | systems/texlive/tlnet/archive/biblatex.doc.r57272.tar.xz
+2022/02/04 | 7298740 | systems/texlive/tlnet/archive/biblatex.doc.r61868.tar.xz
2019/02/28 | 1124296 | systems/texlive/tlnet/archive/biblatex-dw.doc.r42649.tar.xz
2019/02/28 | 16432 | systems/texlive/tlnet/archive/biblatex-dw.r42649.tar.xz
2019/02/28 | 2284 | systems/texlive/tlnet/archive/biblatex-enc.doc.r44627.tar.xz
@@ -279269,7 +279332,7 @@
2020/06/24 | 3420 | systems/texlive/tlnet/archive/biblatex-phys.r55643.tar.xz
2022/01/06 | 387688 | systems/texlive/tlnet/archive/biblatex-publist.doc.r61500.tar.xz
2022/01/06 | 9588 | systems/texlive/tlnet/archive/biblatex-publist.r61500.tar.xz
-2021/01/01 | 243000 | systems/texlive/tlnet/archive/biblatex.r57272.tar.xz
+2022/02/04 | 252480 | systems/texlive/tlnet/archive/biblatex.r61868.tar.xz
2022/01/10 | 27192 | systems/texlive/tlnet/archive/biblatex-readbbl.doc.r61549.tar.xz
2022/01/10 | 1444 | systems/texlive/tlnet/archive/biblatex-readbbl.r61549.tar.xz
2019/02/28 | 93700 | systems/texlive/tlnet/archive/biblatex-realauthor.doc.r45865.tar.xz
@@ -281647,9 +281710,9 @@
2021/07/19 | 313228 | systems/texlive/tlnet/archive/easing.doc.r59975.tar.xz
2021/07/19 | 2220 | systems/texlive/tlnet/archive/easing.r59975.tar.xz
2021/07/19 | 7876 | systems/texlive/tlnet/archive/easing.source.r59975.tar.xz
-2022/02/03 | 596280 | systems/texlive/tlnet/archive/easybook.doc.r61854.tar.xz
-2022/02/03 | 16576 | systems/texlive/tlnet/archive/easybook.r61854.tar.xz
-2022/02/03 | 16472 | systems/texlive/tlnet/archive/easybook.source.r61854.tar.xz
+2022/02/04 | 597236 | systems/texlive/tlnet/archive/easybook.doc.r61865.tar.xz
+2022/02/04 | 16592 | systems/texlive/tlnet/archive/easybook.r61865.tar.xz
+2022/02/04 | 16472 | systems/texlive/tlnet/archive/easybook.source.r61865.tar.xz
2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz
2020/09/08 | 175976 | systems/texlive/tlnet/archive/easyfig.doc.r56291.tar.xz
2020/09/08 | 1936 | systems/texlive/tlnet/archive/easyfig.r56291.tar.xz
@@ -282521,8 +282584,8 @@
2019/09/15 | 1812 | systems/texlive/tlnet/archive/fncylab.r52090.tar.xz
2019/02/28 | 175136 | systems/texlive/tlnet/archive/fnpara.doc.r25607.tar.xz
2019/02/28 | 3076 | systems/texlive/tlnet/archive/fnpara.r25607.tar.xz
-2022/01/30 | 495708 | systems/texlive/tlnet/archive/fnpct.doc.r61800.tar.xz
-2022/01/30 | 9428 | systems/texlive/tlnet/archive/fnpct.r61800.tar.xz
+2022/02/04 | 516468 | systems/texlive/tlnet/archive/fnpct.doc.r61866.tar.xz
+2022/02/04 | 9700 | systems/texlive/tlnet/archive/fnpct.r61866.tar.xz
2019/02/28 | 170056 | systems/texlive/tlnet/archive/fnspe.doc.r45360.tar.xz
2019/02/28 | 2492 | systems/texlive/tlnet/archive/fnspe.r45360.tar.xz
2019/02/28 | 209564 | systems/texlive/tlnet/archive/fntproof.doc.r20638.tar.xz
@@ -283243,9 +283306,9 @@
2019/11/02 | 888640 | systems/texlive/tlnet/archive/halloweenmath.doc.r52602.tar.xz
2019/11/02 | 9152 | systems/texlive/tlnet/archive/halloweenmath.r52602.tar.xz
2019/11/02 | 37752 | systems/texlive/tlnet/archive/halloweenmath.source.r52602.tar.xz
-2022/01/24 | 179616 | systems/texlive/tlnet/archive/hamnosys.doc.r61719.tar.xz
-2022/01/24 | 20688 | systems/texlive/tlnet/archive/hamnosys.r61719.tar.xz
-2022/01/24 | 15812 | systems/texlive/tlnet/archive/hamnosys.source.r61719.tar.xz
+2022/02/04 | 186656 | systems/texlive/tlnet/archive/hamnosys.doc.r61864.tar.xz
+2022/02/04 | 20644 | systems/texlive/tlnet/archive/hamnosys.r61864.tar.xz
+2022/02/04 | 15836 | systems/texlive/tlnet/archive/hamnosys.source.r61864.tar.xz
2019/02/28 | 440932 | systems/texlive/tlnet/archive/handin.doc.r48255.tar.xz
2019/02/28 | 3460 | systems/texlive/tlnet/archive/handin.r48255.tar.xz
2019/02/28 | 195724 | systems/texlive/tlnet/archive/handout.doc.r43962.tar.xz
@@ -289219,14 +289282,14 @@
2021/02/27 | 109184 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r57941.tar.xz
2021/02/24 | 87364 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r57877.tar.xz
2021/02/27 | 69944 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r57957.tar.xz
-2022/02/03 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r61860.tar.xz
+2022/02/04 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r61869.tar.xz
2021/03/16 | 51080 | systems/texlive/tlnet/archive/tex4ht.i386-cygwin.r58387.tar.xz
2021/02/27 | 93092 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r57961.tar.xz
2021/02/24 | 89116 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r57878.tar.xz
2021/02/24 | 76196 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r57877.tar.xz
2021/02/27 | 83896 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r57938.tar.xz
-2022/02/03 | 924444 | systems/texlive/tlnet/archive/tex4ht.r61860.tar.xz
-2022/02/03 | 1234668 | systems/texlive/tlnet/archive/tex4ht.source.r61860.tar.xz
+2022/02/04 | 924536 | systems/texlive/tlnet/archive/tex4ht.r61869.tar.xz
+2022/02/04 | 1247320 | systems/texlive/tlnet/archive/tex4ht.source.r61869.tar.xz
2021/02/25 | 185088 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r57908.tar.xz
2021/04/08 | 57760 | systems/texlive/tlnet/archive/tex4ht.win32.r58783.tar.xz
2021/03/16 | 58360 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r58387.tar.xz
@@ -289461,7 +289524,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2022/02/03 | 403148 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61849.tar.xz
+2022/02/04 | 403148 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61862.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -289485,7 +289548,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2022/02/03 | 108412 | systems/texlive/tlnet/archive/texlive-scripts.r61849.tar.xz
+2022/02/04 | 108392 | systems/texlive/tlnet/archive/texlive-scripts.r61862.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -291282,16 +291345,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2021/12/06 | 105168 | systems/texlive/tlnet/install-tl
-2022/02/03 | 6812178 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/02/03 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/02/03 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/02/04 | 6811726 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/02/04 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/02/04 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/02/03 | 20872880 | systems/texlive/tlnet/install-tl-windows.exe
-2022/02/03 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/02/03 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/02/03 | 25632148 | systems/texlive/tlnet/install-tl.zip
-2022/02/03 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/02/03 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/02/04 | 20873132 | systems/texlive/tlnet/install-tl-windows.exe
+2022/02/04 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/02/04 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/02/04 | 25632132 | systems/texlive/tlnet/install-tl.zip
+2022/02/04 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/02/04 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2021/04/01 | 1229 | systems/texlive/tlnet/README.md
2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021
2021/07/03 | 7181 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -291301,7 +291364,7 @@
2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/01/12 | 49482 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/02/02 | 7372 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/02/03 | 7375 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -291343,12 +291406,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/02/03 | 17101444 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/02/03 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/02/04 | 17100906 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/02/04 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/12/21 | 86654 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/02/03 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/02/03 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/02/03 | 2348012 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/02/04 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/02/04 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/02/04 | 2347164 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/12/21 | 42112 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -296447,7 +296510,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2022/02/03 | 635247 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/02/04 | 635247 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -297959,9 +298022,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/01/29 | 39717 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/01/29 | 43173 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/03 | 262645 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/02/03 | 1410525 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/02/03 | 1305600 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/02/04 | 262658 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/02/04 | 1411177 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/02/04 | 1305169 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/01/29 | 13505 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/01/29 | 14408 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -298185,189 +298248,189 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2022/02/03 | 635157 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/02/03 | 51546 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/02/03 | 57352 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/02/03 | 960372 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/02/03 | 1086641 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/02/03 | 28766 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/02/03 | 31535 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/02/03 | 30179 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/02/03 | 35236 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/02/03 | 56849 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/02/03 | 65077 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/02/03 | 86493 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/02/03 | 95213 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/02/03 | 68735 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/02/03 | 77068 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/02/03 | 27251 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/02/03 | 31334 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/02/03 | 332528 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/02/03 | 393908 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/02/03 | 32962 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/02/03 | 37112 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/02/03 | 51410 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/02/03 | 57209 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/02/03 | 256590 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/02/03 | 281916 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/02/03 | 179945 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/02/03 | 196137 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/02/03 | 54997 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/02/03 | 62443 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/02/03 | 21310 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/02/03 | 24076 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/02/03 | 478896 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/02/03 | 46108 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/02/03 | 52005 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/02/03 | 285551 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/02/03 | 326179 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/02/03 | 41386 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/02/03 | 45735 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/02/03 | 120228 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/02/03 | 134989 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/02/03 | 1300068 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/02/03 | 1452956 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/02/03 | 99695 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/02/03 | 113011 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/02/03 | 43650 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/02/03 | 48819 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/02/03 | 25129 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/02/03 | 28581 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/02/03 | 57010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/02/03 | 63363 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/02/03 | 135905 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/02/03 | 155441 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/02/03 | 73650 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/02/03 | 79058 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/02/03 | 72003 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/02/03 | 81506 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/02/03 | 259150 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/02/03 | 296123 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/02/03 | 22156 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/02/03 | 25079 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/02/03 | 97052 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/02/03 | 112667 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/02/03 | 64538 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/02/03 | 73205 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/02/03 | 96822 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/02/03 | 115635 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/02/03 | 38476 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/02/03 | 43812 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/02/03 | 484671 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/02/03 | 565705 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/02/03 | 152018 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/02/03 | 168796 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/02/03 | 95475 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/02/03 | 109551 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/02/03 | 16508 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/02/03 | 18375 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/02/03 | 28336 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/02/03 | 30558 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/02/03 | 630635 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/02/03 | 682182 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/02/03 | 532416 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/02/03 | 598773 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/02/03 | 477698 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/02/03 | 528108 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/02/03 | 94009 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/02/03 | 103412 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/02/03 | 1732206 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/02/03 | 2006599 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/02/03 | 68019 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/02/03 | 74118 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/02/03 | 27786 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/02/03 | 32080 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/02/03 | 7757 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/02/03 | 8782 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/02/03 | 199419 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/02/03 | 216595 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/02/03 | 251251 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/02/03 | 286571 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/02/03 | 99224 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/02/03 | 104696 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/02/03 | 126865 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/02/03 | 139185 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/02/03 | 254844 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/02/03 | 286069 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/02/03 | 199790 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/02/03 | 181555 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/02/03 | 68529 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/02/03 | 76199 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/02/03 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/02/03 | 35179 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/02/03 | 38565 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/02/03 | 43945 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/02/03 | 43427 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/02/03 | 47984 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/02/03 | 45927 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/02/03 | 52324 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/02/03 | 199169 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/02/03 | 213132 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/02/03 | 36058 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/02/03 | 41238 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/02/03 | 753732 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/02/03 | 824418 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/02/03 | 200152 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/02/03 | 203064 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/02/03 | 209862 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/02/03 | 244997 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/02/03 | 78981 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/02/03 | 88150 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/02/03 | 1181077 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/02/03 | 1322847 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/02/03 | 20189 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/02/03 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/02/03 | 31573 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/02/03 | 37376 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/02/03 | 64693 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/02/03 | 72889 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/02/03 | 50821 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/02/03 | 58644 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/02/03 | 691859 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/02/03 | 752444 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/02/03 | 1355171 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/02/03 | 1499490 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/02/03 | 42762 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/02/03 | 52513 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/02/03 | 57560 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/02/03 | 63750 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/02/03 | 25479 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/02/03 | 27461 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/02/03 | 16568 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/02/03 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/02/03 | 64500 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/02/03 | 70972 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/02/03 | 157564 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/02/03 | 172636 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/02/03 | 58724 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/02/03 | 67219 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/02/03 | 101558 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/02/03 | 109307 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/02/03 | 2674146 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/02/03 | 2799002 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/02/03 | 55199 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/02/03 | 62351 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/02/03 | 37132 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/02/03 | 41214 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/02/03 | 28702 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/02/03 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/02/03 | 67889 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/02/03 | 71842 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/02/03 | 317511 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/02/03 | 355066 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/02/03 | 55751 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/02/03 | 57423 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/02/03 | 591259 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/02/03 | 629383 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/02/03 | 39323 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/02/03 | 43567 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/03 | 262708 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/02/03 | 1410507 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/02/03 | 1304819 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/02/03 | 13511 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/02/03 | 14408 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/02/04 | 635157 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/02/04 | 51546 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/02/04 | 57354 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/02/04 | 960375 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/02/04 | 1086642 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/02/04 | 28769 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/02/04 | 31538 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/02/04 | 30180 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/02/04 | 35237 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/02/04 | 56850 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/02/04 | 65078 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/02/04 | 86495 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/02/04 | 95212 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/02/04 | 68735 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/02/04 | 77068 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/02/04 | 27252 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/02/04 | 31334 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/02/04 | 332531 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/02/04 | 393909 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/02/04 | 32962 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/02/04 | 37112 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/02/04 | 51412 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/02/04 | 57209 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/02/04 | 256592 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/02/04 | 281919 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/02/04 | 179945 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/02/04 | 196135 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/02/04 | 54996 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/02/04 | 62444 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/02/04 | 21311 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/02/04 | 24076 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/02/04 | 478896 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/02/04 | 46110 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/02/04 | 52004 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/02/04 | 285551 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/02/04 | 326179 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/02/04 | 41389 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/02/04 | 45735 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/02/04 | 120229 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/02/04 | 134990 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/02/04 | 1300069 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/02/04 | 1452954 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/02/04 | 99694 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/02/04 | 113011 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/02/04 | 43651 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/02/04 | 48817 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/02/04 | 25129 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/02/04 | 28582 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/02/04 | 57012 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/02/04 | 63363 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/02/04 | 135904 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/02/04 | 155439 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/02/04 | 73651 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/02/04 | 79060 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/02/04 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/02/04 | 81505 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/02/04 | 259150 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/02/04 | 296123 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/02/04 | 22156 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/02/04 | 25079 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/02/04 | 97052 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/02/04 | 112667 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/02/04 | 64538 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/02/04 | 73204 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/02/04 | 96823 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/02/04 | 115635 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/02/04 | 38477 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/02/04 | 43811 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/02/04 | 484670 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/02/04 | 565707 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/02/04 | 152020 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/02/04 | 168796 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/02/04 | 95475 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/02/04 | 109549 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/02/04 | 16506 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/02/04 | 18374 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/02/04 | 28337 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/02/04 | 30557 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/02/04 | 630635 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/02/04 | 682179 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/02/04 | 532415 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/02/04 | 598773 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/02/04 | 477700 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/02/04 | 528107 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/02/04 | 94012 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/02/04 | 103412 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/02/04 | 1732204 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/02/04 | 2006599 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/02/04 | 68019 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/02/04 | 74118 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/02/04 | 27786 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/02/04 | 32080 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/02/04 | 7758 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/02/04 | 8779 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/02/04 | 199420 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/02/04 | 216596 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/02/04 | 251250 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/02/04 | 286572 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/02/04 | 99225 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/02/04 | 104696 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/02/04 | 126864 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/02/04 | 139185 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/02/04 | 254845 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/02/04 | 286069 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/02/04 | 199790 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/02/04 | 181556 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/02/04 | 68530 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/02/04 | 76199 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/02/04 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/02/04 | 35179 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/02/04 | 38566 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/02/04 | 43945 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/02/04 | 43427 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/02/04 | 47984 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/02/04 | 45928 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/02/04 | 52323 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/02/04 | 199170 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/02/04 | 213132 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/02/04 | 36060 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/02/04 | 41238 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/02/04 | 753733 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/02/04 | 824418 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/02/04 | 200153 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/02/04 | 203065 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/02/04 | 209862 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/02/04 | 244998 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/02/04 | 78983 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/02/04 | 88152 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/02/04 | 1181081 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/02/04 | 1322840 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/02/04 | 20189 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/02/04 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/02/04 | 31574 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/02/04 | 37376 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/02/04 | 64691 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/02/04 | 72889 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/02/04 | 50822 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/02/04 | 58644 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/02/04 | 691859 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/02/04 | 752445 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/02/04 | 1355173 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/02/04 | 1499490 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/02/04 | 42763 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/02/04 | 52513 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/02/04 | 57562 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/02/04 | 63748 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/02/04 | 25480 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/02/04 | 27462 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/02/04 | 16570 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/02/04 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/02/04 | 64502 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/02/04 | 70973 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/02/04 | 157564 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/02/04 | 172636 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/02/04 | 58728 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/02/04 | 67220 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/02/04 | 101559 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/02/04 | 109308 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/02/04 | 2674150 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/02/04 | 2799002 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/02/04 | 55200 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/02/04 | 62353 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/02/04 | 37133 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/02/04 | 41213 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/02/04 | 28703 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/02/04 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/02/04 | 67888 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/02/04 | 71844 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/02/04 | 317513 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/02/04 | 355065 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/02/04 | 55752 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/02/04 | 57423 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/02/04 | 591258 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/02/04 | 629383 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/02/04 | 39323 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/02/04 | 43565 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/02/04 | 262720 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/02/04 | 1410870 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/02/04 | 1305189 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/02/04 | 13511 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/02/04 | 14409 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2022/02/03 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/02/04 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -298814,7 +298877,7 @@
2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2022/02/03 | 1151 | systems/win32/miktex/tm/packages/pr.ini
+2022/02/04 | 1151 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -300325,7 +300388,7 @@
2007/02/12 | 395234 | systems/win32/texshell32/WinTeXShell32.zip
2021/10/01 | 2480 | systems/win32/TLW64/00README.TLW64
2021/10/01 | 61484773 | systems/win32/TLW64/gs9550w64full-gpl.exe
-2022/01/29 | 98330432 | systems/win32/TLW64/tl-win64.zip
+2022/02/04 | 98333584 | systems/win32/TLW64/tl-win64.zip
1996/11/26 | 1822 | systems/win32/tsconfig/readme
1996/11/26 | 30343 | systems/win32/tsconfig/tsconfig.zip
1998/01/20 | 766976 | systems/win32/util/cmdsh110.exe
@@ -300558,7 +300621,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/02/04 | 186 | timestamp
+2022/02/05 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index cef723c2b8..d8c3e22d8f 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index e0716f4678..68830e727e 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,245 +1,1316 @@
-2022/02/03 | 99695 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/02/03 | 99224 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/02/03 | 97052 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/02/03 | 96822 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/02/03 | 960372 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/02/03 | 95475 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/02/03 | 95213 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/02/03 | 94009 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/02/03 | 924444 | systems/texlive/tlnet/archive/tex4ht.r61860.tar.xz
+2022/02/04 | 99694 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/02/04 | 99225 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/02/04 | 991598 | graphics/pgf/contrib/sankey.zip
+2022/02/04 | 990719 | graphics/pgf/contrib/sankey/sankey.pdf
+2022/02/04 | 98333584 | systems/win32/TLW64/tl-win64.zip
+2022/02/04 | 9804 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
+2022/02/04 | 97052 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/02/04 | 9700 | systems/texlive/tlnet/archive/fnpct.r61866.tar.xz
+2022/02/04 | 96823 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/02/04 | 963780 | systems/texlive/tlnet/archive/biber.source.r61867.tar.xz
+2022/02/04 | 960375 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/02/04 | 95475 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/02/04 | 9538 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
+2022/02/04 | 95212 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/02/04 | 9473 | macros/latex/contrib/crefthe/crefthe.sty
+2022/02/04 | 94012 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/02/04 | 938 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+2022/02/04 | 937130 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
+2022/02/04 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
+2022/02/04 | 924536 | systems/texlive/tlnet/archive/tex4ht.r61869.tar.xz
+2022/02/04 | 898946 | macros/latex/contrib/reledmac/reledmac.dtx
+2022/02/04 | 896771 | macros/xetex/latex/bidi/bidi.dtx
+2022/02/04 | 88152 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/02/04 | 8779 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/02/04 | 86495 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/02/04 | 841340 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
+2022/02/04 | 8370 | macros/luatex/generic/lua-widow-control/lwc-documentation.mkxl
+2022/02/04 | 836 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ot1.vf
+2022/02/04 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
+2022/02/04 | 832 | fonts/etbb/vf/ETbb-Italic-tosf-sc-ot1.vf
+2022/02/04 | 832 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ot1.vf
+2022/02/04 | 832 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ot1.vf
+2022/02/04 | 832 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ot1.vf
+2022/02/04 | 828 | fonts/etbb/vf/ETbb-Italic-tlf-sc-ot1.vf
+2022/02/04 | 828 | fonts/etbb/vf/ETbb-Italic-osf-sc-ot1.vf
+2022/02/04 | 828 | fonts/etbb/vf/ETbb-Italic-lf-sc-ot1.vf
+2022/02/04 | 824418 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/02/04 | 8222 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-Bold-tosf-sc-ot1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-Bold-tlf-sc-ot1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-Bold-osf-sc-ot1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ot1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ot1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ot1.vf
+2022/02/04 | 820 | fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ot1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Italic-tosf-swash-ot1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Italic-tlf-swash-ot1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Italic-osf-swash-ot1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Italic-lf-swash-ot1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Bold-tosf-swash-ot1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-Bold-lf-sc-ot1.vf
+2022/02/04 | 816 | fonts/etbb/vf/ETbb-BoldItalic-tosf-ot1.vf
+2022/02/04 | 81505 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-Italic-tosf-ot1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-Bold-tlf-swash-ot1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-Bold-osf-swash-ot1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-Bold-lf-swash-ot1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-BoldItalic-tlf-ot1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-BoldItalic-osf-ot1.vf
+2022/02/04 | 812 | fonts/etbb/vf/ETbb-BoldItalic-lf-ot1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Italic-tlf-ot1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Italic-osf-ot1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Italic-lf-ot1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Bold-tosf-ot1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Bold-tlf-ot1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Bold-osf-ot1.vf
+2022/02/04 | 808 | fonts/etbb/vf/ETbb-Bold-lf-ot1.vf
+2022/02/04 | 80742 | macros/latex/contrib/easybook/easybook.tex
+2022/02/04 | 7961775 | support/SQLTeX.zip
+2022/02/04 | 79060 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/02/04 | 78983 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/02/04 | 788 | fonts/etbb/vf/ETbb-Regular-tosf-sc-ot1.vf
+2022/02/04 | 788 | fonts/etbb/vf/ETbb-Regular-tlf-sc-ot1.vf
+2022/02/04 | 788 | fonts/etbb/vf/ETbb-Regular-osf-sc-ot1.vf
+2022/02/04 | 788 | fonts/etbb/vf/ETbb-Regular-lf-sc-ot1.vf
+2022/02/04 | 784 | fonts/etbb/vf/ETbb-BoldItalic-sup-ot1.vf
+2022/02/04 | 784 | fonts/etbb/vf/ETbb-BoldItalic-inf-ot1.vf
+2022/02/04 | 784 | fonts/etbb/vf/ETbb-BoldItalic-dnom-ot1.vf
+2022/02/04 | 780 | fonts/etbb/vf/ETbb-Italic-sup-ot1.vf
+2022/02/04 | 780 | fonts/etbb/vf/ETbb-Italic-inf-ot1.vf
+2022/02/04 | 780 | fonts/etbb/vf/ETbb-Italic-dnom-ot1.vf
+2022/02/04 | 780 | fonts/etbb/vf/ETbb-Bold-dnom-ot1.vf
+2022/02/04 | 776 | fonts/etbb/vf/ETbb-Bold-sup-ot1.vf
+2022/02/04 | 776 | fonts/etbb/vf/ETbb-Bold-inf-ot1.vf
+2022/02/04 | 7758 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/02/04 | 77068 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/02/04 | 765803 | macros/xetex/latex/xepersian/xepersian.pdf
+2022/02/04 | 76199 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/02/04 | 761651 | macros/xetex/latex/bidi/gull.jpg
+2022/02/04 | 758991 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
+2022/02/04 | 75637 | macros/latex/contrib/easybook/easybook.dtx
+2022/02/04 | 753733 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/02/04 | 752445 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/02/04 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex
+2022/02/04 | 74118 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/02/04 | 73651 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/02/04 | 732 | systems/texlive/tlnet/archive/biber.r61867.tar.xz
+2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-tosf-ts1.vf
+2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-tlf-ts1.vf
+2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-osf-ts1.vf
+2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-lf-ts1.vf
+2022/02/04 | 73204 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/02/04 | 7298740 | systems/texlive/tlnet/archive/biblatex.doc.r61868.tar.xz
+2022/02/04 | 728 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
+2022/02/04 | 72889 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/02/04 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/02/04 | 71844 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/02/04 | 71644 | macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
+2022/02/04 | 70973 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/02/04 | 6976 | fonts/etbb/tex/ETbb.sty
+2022/02/04 | 691859 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/02/04 | 690729 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
+2022/02/04 | 6880 | fonts/etbb/tfm/ETbb-Regular-osf-ot1.tfm
+2022/02/04 | 6880 | fonts/etbb/tfm/ETbb-Regular-lf-ot1.tfm
+2022/02/04 | 68735 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/02/04 | 6860 | fonts/etbb/tfm/ETbb-Regular-tosf-ot1.tfm
+2022/02/04 | 6860 | fonts/etbb/tfm/ETbb-Regular-tlf-ot1.tfm
+2022/02/04 | 68530 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/02/04 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex
+2022/02/04 | 682179 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/02/04 | 6811726 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/02/04 | 68019 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/02/04 | 67888 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/02/04 | 67220 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/02/04 | 6620 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ot1.tfm
+2022/02/04 | 6620 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ot1.tfm
+2022/02/04 | 6600 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ot1.tfm
+2022/02/04 | 6600 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ot1.tfm
+2022/02/04 | 65078 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/02/04 | 64691 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/02/04 | 64538 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/02/04 | 64502 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/02/04 | 6440 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1.tfm
+2022/02/04 | 6440 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1.tfm
+2022/02/04 | 6420 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1.tfm
+2022/02/04 | 6420 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1.tfm
+2022/02/04 | 641 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
+2022/02/04 | 63748 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/02/04 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
+2022/02/04 | 635 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
+2022/02/04 | 635247 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/02/04 | 635157 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/02/04 | 633 | graphics/pgf/contrib/circuitikz/tex/circutikz-0.9.6.sty
+2022/02/04 | 63363 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/02/04 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
+2022/02/04 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
+2022/02/04 | 632 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
+2022/02/04 | 631 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
+2022/02/04 | 630635 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/02/04 | 629383 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/02/04 | 626 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
+2022/02/04 | 62444 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/02/04 | 62353 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/02/04 | 6212 | fonts/etbb/tfm/ETbb-Bold-lf-ot1.tfm
+2022/02/04 | 6208 | fonts/etbb/tfm/ETbb-Bold-osf-ot1.tfm
+2022/02/04 | 6188 | fonts/etbb/tfm/ETbb-Bold-tlf-ot1.tfm
+2022/02/04 | 6184 | fonts/etbb/tfm/ETbb-Bold-tosf-ot1.tfm
+2022/02/04 | 616687 | macros/latex/contrib/easybook.zip
+2022/02/04 | 6108 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1.tfm
+2022/02/04 | 6101 | macros/xetex/latex/bidi/bidi-doc-latex-pkgsupport.ltx
+2022/02/04 | 6100 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1.tfm
+2022/02/04 | 6080 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1.tfm
+2022/02/04 | 6076 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1.tfm
+2022/02/04 | 598773 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/02/04 | 597236 | systems/texlive/tlnet/archive/easybook.doc.r61865.tar.xz
+2022/02/04 | 5968 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1.tfm
+2022/02/04 | 5964 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1.tfm
+2022/02/04 | 5944 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1.tfm
+2022/02/04 | 5940 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1.tfm
+2022/02/04 | 5940 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1.tfm
+2022/02/04 | 5940 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1.tfm
+2022/02/04 | 5939 | macros/xetex/latex/bidi/bidi-doc-plain-basics.ltx
+2022/02/04 | 5924 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1.tfm
+2022/02/04 | 5920 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1.tfm
+2022/02/04 | 591258 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/02/04 | 58728 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/02/04 | 58644 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/02/04 | 576018 | macros/latex/contrib/easybook/easybook.pdf
+2022/02/04 | 57562 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/02/04 | 57423 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/02/04 | 57354 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/02/04 | 57209 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/02/04 | 57012 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/02/04 | 56850 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/02/04 | 565707 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/02/04 | 55752 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/02/04 | 55200 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/02/04 | 54996 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/02/04 | 5447 | macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx
+2022/02/04 | 53858 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
+2022/02/04 | 534 | macros/xetex/latex/bidi/bidi-doc.ltx
+2022/02/04 | 532415 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/02/04 | 5320 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1.tfm
+2022/02/04 | 5312 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1.tfm
+2022/02/04 | 5304 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1.tfm
+2022/02/04 | 5288 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1.tfm
+2022/02/04 | 528107 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/02/04 | 52513 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/02/04 | 52323 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/02/04 | 52004 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/02/04 | 516468 | systems/texlive/tlnet/archive/fnpct.doc.r61866.tar.xz
+2022/02/04 | 51546 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/02/04 | 51412 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/02/04 | 50822 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/02/04 | 496 | fonts/etbb/vf/ETbb-Bold-tosf-ts1.vf
+2022/02/04 | 496 | fonts/etbb/vf/ETbb-Bold-tlf-ts1.vf
+2022/02/04 | 496 | fonts/etbb/vf/ETbb-Bold-osf-ts1.vf
+2022/02/04 | 496 | fonts/etbb/vf/ETbb-Bold-lf-ts1.vf
+2022/02/04 | 492 | fonts/etbb/vf/ETbb-BoldItalic-tosf-ts1.vf
+2022/02/04 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/02/04 | 488 | fonts/etbb/vf/ETbb-Italic-tosf-ts1.vf
+2022/02/04 | 488 | fonts/etbb/vf/ETbb-BoldItalic-tlf-ts1.vf
+2022/02/04 | 488 | fonts/etbb/vf/ETbb-BoldItalic-osf-ts1.vf
+2022/02/04 | 488 | fonts/etbb/vf/ETbb-BoldItalic-lf-ts1.vf
+2022/02/04 | 48817 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/02/04 | 48512 | fonts/etbb/tfm/Etbb1-Regular-osf-t1.tfm
+2022/02/04 | 48512 | fonts/etbb/tfm/Etbb1-Regular-lf-t1.tfm
+2022/02/04 | 484 | fonts/etbb/vf/ETbb-Italic-tlf-ts1.vf
+2022/02/04 | 484 | fonts/etbb/vf/ETbb-Italic-osf-ts1.vf
+2022/02/04 | 484 | fonts/etbb/vf/ETbb-Italic-lf-ts1.vf
+2022/02/04 | 48492 | fonts/etbb/tfm/Etbb1-Regular-tosf-t1.tfm
+2022/02/04 | 48492 | fonts/etbb/tfm/Etbb1-Regular-tlf-t1.tfm
+2022/02/04 | 484670 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/02/04 | 48276 | fonts/etbb/tfm/ETbb-Regular-osf-t1.tfm
+2022/02/04 | 48276 | fonts/etbb/tfm/ETbb-Regular-lf-t1.tfm
+2022/02/04 | 48256 | fonts/etbb/tfm/ETbb-Regular-tosf-t1.tfm
+2022/02/04 | 48256 | fonts/etbb/tfm/ETbb-Regular-tlf-t1.tfm
+2022/02/04 | 47984 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/02/04 | 478896 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/02/04 | 477700 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/02/04 | 47732 | fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1.tfm
+2022/02/04 | 47732 | fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1.tfm
+2022/02/04 | 47712 | fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1.tfm
+2022/02/04 | 47712 | fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1.tfm
+2022/02/04 | 47512 | fonts/etbb/tfm/ETbb-Regular-osf-swash-t1.tfm
+2022/02/04 | 47512 | fonts/etbb/tfm/ETbb-Regular-lf-swash-t1.tfm
+2022/02/04 | 47492 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1.tfm
+2022/02/04 | 47492 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1.tfm
+2022/02/04 | 4636 | fonts/etbb/tfm/ETbb-Italic-lf-ot1.tfm
+2022/02/04 | 4628 | fonts/etbb/tfm/ETbb-Italic-osf-ot1.tfm
+2022/02/04 | 462556 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+2022/02/04 | 46110 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/02/04 | 4608 | fonts/etbb/tfm/ETbb-Italic-tlf-ot1.tfm
+2022/02/04 | 4600 | fonts/etbb/tfm/ETbb-Italic-tosf-ot1.tfm
+2022/02/04 | 45928 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/02/04 | 45735 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/02/04 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/02/04 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/02/04 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/02/04 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/02/04 | 454 | macros/xetex/latex/xepersian/xepersian-doc.ltx
+2022/02/04 | 4547 | macros/xetex/latex/bidi/bidi-doc-latex-pkgs.ltx
+2022/02/04 | 4504 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1.tfm
+2022/02/04 | 4497 | macros/xetex/latex/bidi/bidi-doc-latex-programming.ltx
+2022/02/04 | 4496 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1.tfm
+2022/02/04 | 4476 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1.tfm
+2022/02/04 | 4476 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1.tfm
+2022/02/04 | 4468 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1.tfm
+2022/02/04 | 4460 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1.tfm
+2022/02/04 | 4460 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1.tfm
+2022/02/04 | 4440 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1.tfm
+2022/02/04 | 43945 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/02/04 | 4388 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1.tfm
+2022/02/04 | 43811 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/02/04 | 4372 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1.tfm
+2022/02/04 | 4372 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1.tfm
+2022/02/04 | 43651 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/02/04 | 43565 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/02/04 | 4352 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1.tfm
+2022/02/04 | 43427 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/02/04 | 4309687 | install/macros/xetex/latex/bidi.tds.zip
+2022/02/04 | 42763 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/02/04 | 422295 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
+2022/02/04 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex
+2022/02/04 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex
+2022/02/04 | 415 | graphics/pgf/contrib/sankey/README
+2022/02/04 | 4149 | macros/xetex/latex/xepersian/xepersian-doc-preamble.ltx
+2022/02/04 | 41389 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/02/04 | 41238 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/02/04 | 41213 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/02/04 | 410 | macros/xetex/latex/xepersian/xepersian-doc-boolean.ltx
+2022/02/04 | 40817 | graphics/pgf/contrib/circuitikz/doc/changelog.tex
+2022/02/04 | 40811 | macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
+2022/02/04 | 403567 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
+2022/02/04 | 403148 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61862.tar.xz
+2022/02/04 | 3952375 | macros/xetex/latex/bidi.zip
+2022/02/04 | 393909 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/02/04 | 393884 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
+2022/02/04 | 39323 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/02/04 | 3872 | macros/luatex/generic/lua-widow-control/lwc-sample.tex
+2022/02/04 | 38725 | macros/xetex/latex/xepersian/ftxe-0.12.py
+2022/02/04 | 38566 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/02/04 | 38477 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/02/04 | 3802 | graphics/pgf/contrib/circuitikz/README.md
+2022/02/04 | 3753810 | macros/latex/contrib/animate/animate.pdf
+2022/02/04 | 37376 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/02/04 | 37133 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/02/04 | 37112 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/02/04 | 37000 | fonts/etbb/tfm/ETbb-Regular-osf-sc-t1.tfm
+2022/02/04 | 37000 | fonts/etbb/tfm/ETbb-Regular-lf-sc-t1.tfm
+2022/02/04 | 36980 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1.tfm
+2022/02/04 | 36980 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1.tfm
+2022/02/04 | 36932 | fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1.tfm
+2022/02/04 | 36932 | fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1.tfm
+2022/02/04 | 36912 | fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1.tfm
+2022/02/04 | 36912 | fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1.tfm
+2022/02/04 | 368877 | macros/latex/contrib/reledmac/migration.pdf
+2022/02/04 | 364683 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+2022/02/04 | 364117 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
+2022/02/04 | 36060 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/02/04 | 3596 | macros/xetex/latex/bidi/bidi-doc-preamble.ltx
+2022/02/04 | 3590 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+2022/02/04 | 355065 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/02/04 | 35438 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
+2022/02/04 | 3532 | fonts/etbb/enc/etbb_mfrons.enc
+2022/02/04 | 3523 | fonts/etbb/enc/etbb_sb7odk.enc
+2022/02/04 | 3523 | fonts/etbb/enc/etbb1_mfrons.enc
+2022/02/04 | 35237 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/02/04 | 35179 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/02/04 | 3514 | fonts/etbb/enc/etbb1_sb7odk.enc
+2022/02/04 | 350901 | fonts/etbb/doc/ETbb-doc.pdf
+2022/02/04 | 3504 | fonts/etbb/enc/etbb_boj3jd.enc
+2022/02/04 | 3496 | fonts/etbb/enc/etbb_hdnox5.enc
+2022/02/04 | 3491 | fonts/etbb/enc/etbb_7dlbn4.enc
+2022/02/04 | 34909040 | systems/texlive/tlnet/archive/biber.x86_64-darwinlegacy.r61867.tar.xz
+2022/02/04 | 3473 | fonts/etbb/enc/etbb_oynaqb.enc
+2022/02/04 | 3461 | fonts/etbb/enc/etbb_dpvwoq.enc
+2022/02/04 | 3460 | fonts/etbb/enc/etbb_frcze6.enc
+2022/02/04 | 3452 | fonts/etbb/enc/etbb_6dkfmm.enc
+2022/02/04 | 3452 | fonts/etbb/enc/etbb1_dpvwoq.enc
+2022/02/04 | 3451 | fonts/etbb/enc/etbb_3ggaku.enc
+2022/02/04 | 3451 | fonts/etbb/enc/etbb1_frcze6.enc
+2022/02/04 | 3443 | fonts/etbb/enc/etbb1_6dkfmm.enc
+2022/02/04 | 3442 | fonts/etbb/enc/etbb1_3ggaku.enc
+2022/02/04 | 3441 | fonts/etbb/enc/etbb_7t4ywj.enc
+2022/02/04 | 3433 | fonts/etbb/enc/etbb_j4gzyc.enc
+2022/02/04 | 3432 | fonts/etbb/enc/etbb_q62n24.enc
+2022/02/04 | 3425 | fonts/etbb/enc/etbb_oe3mzn.enc
+2022/02/04 | 3424 | fonts/etbb/enc/etbb_e7zo2o.enc
+2022/02/04 | 3420 | fonts/etbb/enc/etbb_ehl4wc.enc
+2022/02/04 | 3419 | fonts/etbb/enc/etbb_7uz5xh.enc
+2022/02/04 | 3417 | fonts/etbb/enc/etbb_atf2m5.enc
+2022/02/04 | 3416 | fonts/etbb/enc/etbb_7pzsmk.enc
+2022/02/04 | 3411 | fonts/etbb/enc/etbb_d63baf.enc
+2022/02/04 | 3409 | fonts/etbb/enc/etbb_42bwpg.enc
+2022/02/04 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/02/04 | 3402 | fonts/etbb/enc/etbb_6bhqsy.enc
+2022/02/04 | 3402 | fonts/etbb/enc/etbb1_d63baf.enc
+2022/02/04 | 3393 | fonts/etbb/enc/etbb1_6bhqsy.enc
+2022/02/04 | 3383 | fonts/etbb/enc/etbb_ladhhj.enc
+2022/02/04 | 33811544 | systems/texlive/tlnet/archive/biber.universal-darwin.r61867.tar.xz
+2022/02/04 | 3375 | fonts/etbb/enc/etbb_cyp5f5.enc
+2022/02/04 | 3374 | fonts/etbb/enc/etbb_yadlkl.enc
+2022/02/04 | 3370 | fonts/etbb/enc/etbb_7tqudy.enc
+2022/02/04 | 337010 | macros/xetex/latex/xepersian/xepersian.dtx
+2022/02/04 | 3354 | fonts/etbb/enc/etbb_2ynk4h.enc
+2022/02/04 | 3340640 | fonts/etbb.zip
+2022/02/04 | 3339 | fonts/etbb/enc/etbb_ujzbb6.enc
+2022/02/04 | 3333 | fonts/etbb/README
+2022/02/04 | 332531 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/02/04 | 3306 | fonts/etbb/enc/etbb_6z6nrw.enc
+2022/02/04 | 32962 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/02/04 | 3281 | fonts/etbb/enc/etbb_p6ehom.enc
+2022/02/04 | 3274 | fonts/etbb/enc/etbb_2jmcdk.enc
+2022/02/04 | 3270 | fonts/etbb/enc/etbb_bb5xlm.enc
+2022/02/04 | 3263 | fonts/etbb/enc/etbb_7ipmvr.enc
+2022/02/04 | 326179 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/02/04 | 3253 | fonts/etbb/enc/etbb_vqghpl.enc
+2022/02/04 | 3234 | fonts/etbb/enc/etbb_y6dqd4.enc
+2022/02/04 | 3231 | fonts/etbb/enc/etbb_rgl4wj.enc
+2022/02/04 | 3221968 | install/macros/latex/contrib/animate.tds.zip
+2022/02/04 | 3219695 | macros/latex/contrib/animate.zip
+2022/02/04 | 3210 | fonts/etbb/enc/etbb_t4d6nl.enc
+2022/02/04 | 32080 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/02/04 | 3207 | fonts/etbb/enc/etbb_jjhcst.enc
+2022/02/04 | 32047 | macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
+2022/02/04 | 3203 | fonts/etbb/enc/etbb_veuqiz.enc
+2022/02/04 | 3202 | fonts/etbb/enc/etbb_tunzhv.enc
+2022/02/04 | 3199 | fonts/etbb/enc/etbb_sjtq2a.enc
+2022/02/04 | 3198 | fonts/etbb/enc/etbb_num7wi.enc
+2022/02/04 | 318979 | macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
+2022/02/04 | 31859 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
+2022/02/04 | 317945 | install/macros/luatex/generic/lua-widow-control.tds.zip
+2022/02/04 | 317513 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/02/04 | 3166 | fonts/etbb/enc/etbb_hn62ay.enc
+2022/02/04 | 3163 | fonts/etbb/enc/etbb_skushq.enc
+2022/02/04 | 3160 | fonts/etbb/enc/etbb_olodrh.enc
+2022/02/04 | 31577 | fonts/etbb/doc/ETbb-doc.tex
+2022/02/04 | 31574 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/02/04 | 31564 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
+2022/02/04 | 3155 | fonts/etbb/enc/etbb_65swoa.enc
+2022/02/04 | 3153 | fonts/etbb/enc/etbb_ooqfsa.enc
+2022/02/04 | 31538 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/02/04 | 3152 | fonts/etbb/enc/etbb_tbmtgo.enc
+2022/02/04 | 3152 | fonts/etbb/enc/etbb_nvfc5y.enc
+2022/02/04 | 3150 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex
+2022/02/04 | 31501 | macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
+2022/02/04 | 3149 | fonts/etbb/enc/etbb_4o3pf4.enc
+2022/02/04 | 314981 | macros/luatex/generic/lua-widow-control.zip
+2022/02/04 | 3147 | fonts/etbb/enc/etbb_xmn5et.enc
+2022/02/04 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/02/04 | 31334 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/02/04 | 3120474 | macros/xetex/latex/bidi/bidi.pdf
+2022/02/04 | 31191 | fonts/etbb/map/ETbb.map
+2022/02/04 | 3107 | fonts/etbb/enc/etbb_vtabip.enc
+2022/02/04 | 3106 | fonts/etbb/enc/etbb_cyyszv.enc
+2022/02/04 | 3104 | fonts/etbb/enc/etbb1_vtabip.enc
+2022/02/04 | 3099 | macros/xetex/latex/xepersian/xepersian-doc-captions.ltx
+2022/02/04 | 3095 | fonts/etbb/enc/etbb_xe5wuh.enc
+2022/02/04 | 309311 | macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
+2022/02/04 | 3092 | fonts/etbb/enc/etbb_cq6xx2.enc
+2022/02/04 | 3091 | fonts/etbb/enc/etbb_4hpi45.enc
+2022/02/04 | 3090 | fonts/etbb/enc/etbb_ybjyd4.enc
+2022/02/04 | 3081 | fonts/etbb/enc/etbb_fwcdph.enc
+2022/02/04 | 3080 | fonts/etbb/enc/etbb_f55msl.enc
+2022/02/04 | 3076 | fonts/etbb/enc/etbb_zpkt7y.enc
+2022/02/04 | 3075 | fonts/etbb/enc/etbb_gtqfg2.enc
+2022/02/04 | 3072444 | install/graphics/pgf/contrib/circuitikz.tds.zip
+2022/02/04 | 30557 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/02/04 | 3054113 | graphics/pgf/contrib/circuitikz.zip
+2022/02/04 | 3050 | fonts/etbb/enc/etbb_3ccbvp.enc
+2022/02/04 | 3047 | fonts/etbb/enc/etbb1_3ccbvp.enc
+2022/02/04 | 3042 | fonts/etbb/enc/etbb_v6nho7.enc
+2022/02/04 | 3036 | fonts/etbb/enc/etbb_xaqh3v.enc
+2022/02/04 | 3035 | fonts/etbb/enc/etbb_mgm6re.enc
+2022/02/04 | 3035 | fonts/etbb/enc/etbb_242knm.enc
+2022/02/04 | 3034 | fonts/etbb/enc/etbb_j7myeh.enc
+2022/02/04 | 3033 | fonts/etbb/enc/etbb1_xaqh3v.enc
+2022/02/04 | 3032 | fonts/etbb/enc/etbb1_mgm6re.enc
+2022/02/04 | 3031 | fonts/etbb/enc/etbb_cxbogn.enc
+2022/02/04 | 3029 | fonts/etbb/enc/etbb_b3flk2.enc
+2022/02/04 | 3026 | fonts/etbb/enc/etbb_fpvlkw.enc
+2022/02/04 | 3025 | fonts/etbb/enc/etbb_izxro2.enc
+2022/02/04 | 3024 | fonts/etbb/enc/etbb_m5kdwt.enc
+2022/02/04 | 3023 | fonts/etbb/enc/etbb_5iollt.enc
+2022/02/04 | 3019 | fonts/etbb/enc/etbb_33mftd.enc
+2022/02/04 | 3018 | fonts/etbb/enc/etbb_ohc25e.enc
+2022/02/04 | 30180 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/02/04 | 301523 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+2022/02/04 | 3013 | graphics/pgf/contrib/sankey/sankey.ins
+2022/02/04 | 2995 | fonts/etbb/enc/etbb_yiqwpu.enc
+2022/02/04 | 2986 | fonts/etbb/enc/etbb_yziesh.enc
+2022/02/04 | 2985 | fonts/etbb/enc/etbb_riohwx.enc
+2022/02/04 | 2984 | fonts/etbb/enc/etbb_rzlqzq.enc
+2022/02/04 | 2983 | fonts/etbb/enc/etbb1_yziesh.enc
+2022/02/04 | 2979 | fonts/etbb/enc/etbb_mpvq56.enc
+2022/02/04 | 2979 | fonts/etbb/enc/etbb_hah5or.enc
+2022/02/04 | 2978 | fonts/etbb/enc/etbb_eqc2ac.enc
+2022/02/04 | 2976 | fonts/etbb/enc/etbb1_hah5or.enc
+2022/02/04 | 2975 | fonts/etbb/enc/etbb1_eqc2ac.enc
+2022/02/04 | 2974 | fonts/etbb/enc/etbb_i5ezvi.enc
+2022/02/04 | 2974 | fonts/etbb/enc/etbb_5um4so.enc
+2022/02/04 | 297127 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+2022/02/04 | 2970 | fonts/etbb/enc/etbb_4xv7ax.enc
+2022/02/04 | 2969 | fonts/etbb/enc/etbb_elsw3h.enc
+2022/02/04 | 296123 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/02/04 | 2958 | fonts/etbb/enc/etbb_n73bzf.enc
+2022/02/04 | 295847 | macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+2022/02/04 | 2957 | fonts/etbb/enc/etbb_vazzz3.enc
+2022/02/04 | 2955 | fonts/etbb/enc/etbb_kvzzr3.enc
+2022/02/04 | 2954 | fonts/etbb/enc/etbb_dkuysn.enc
+2022/02/04 | 2954 | fonts/etbb/enc/etbb_4sxvu4.enc
+2022/02/04 | 2953 | fonts/etbb/enc/etbb_gteq3q.enc
+2022/02/04 | 2944 | fonts/etbb/enc/etbb_ytzykv.enc
+2022/02/04 | 29424 | fonts/etbb/tfm/ETbb-Italic-osf-sc-t1.tfm
+2022/02/04 | 29416 | fonts/etbb/tfm/ETbb-Italic-lf-sc-t1.tfm
+2022/02/04 | 29404 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1.tfm
+2022/02/04 | 29404 | fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1.tfm
+2022/02/04 | 29400 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1.tfm
+2022/02/04 | 2939 | fonts/etbb/enc/etbb_yzoycr.enc
+2022/02/04 | 29396 | fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1.tfm
+2022/02/04 | 29384 | fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1.tfm
+2022/02/04 | 29380 | fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1.tfm
+2022/02/04 | 2936 | macros/xetex/latex/bidi/bidi-bibitem.pdf
+2022/02/04 | 293260 | macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
+2022/02/04 | 2929 | fonts/etbb/enc/etbb_pvrda3.enc
+2022/02/04 | 2926 | fonts/etbb/enc/etbb1_pvrda3.enc
+2022/02/04 | 2916 | fonts/etbb/enc/etbb_ow4ien.enc
+2022/02/04 | 2908 | fonts/etbb/enc/etbb_fveuju.enc
+2022/02/04 | 2904 | fonts/etbb/enc/etbb_3pymqv.enc
+2022/02/04 | 2903 | fonts/etbb/enc/etbb_fyek6u.enc
+2022/02/04 | 2902 | fonts/etbb/enc/etbb_g2yynh.enc
+2022/02/04 | 290106 | macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+2022/02/04 | 2899 | fonts/etbb/enc/etbb_5drz2o.enc
+2022/02/04 | 2898 | fonts/etbb/enc/etbb_3obh62.enc
+2022/02/04 | 2891 | fonts/etbb/enc/etbb_i2z4ax.enc
+2022/02/04 | 288679 | macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+2022/02/04 | 288423 | macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+2022/02/04 | 2876 | fonts/etbb/enc/etbb_3ygfa2.enc
+2022/02/04 | 28769 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/02/04 | 287548 | macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+2022/02/04 | 28703 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/02/04 | 286572 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/02/04 | 2863 | fonts/etbb/enc/etbb_xwgzeq.enc
+2022/02/04 | 286175 | macros/latex/contrib/reledmac/examples/2-performances.pdf
+2022/02/04 | 286069 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/02/04 | 2859 | fonts/etbb/enc/etbb_eqlboo.enc
+2022/02/04 | 28582 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/02/04 | 285551 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/02/04 | 2853 | fonts/etbb/enc/etbb_vmilsn.enc
+2022/02/04 | 2849 | fonts/etbb/enc/etbb_j43iwo.enc
+2022/02/04 | 284803 | macros/latex/contrib/reledmac/examples/1-tabular.pdf
+2022/02/04 | 284462 | macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+2022/02/04 | 28392 | fonts/etbb/tfm/ETbb-Regular-lf-ly1.tfm
+2022/02/04 | 28388 | fonts/etbb/tfm/ETbb-Regular-osf-ly1.tfm
+2022/02/04 | 28368 | fonts/etbb/tfm/ETbb-Regular-tosf-ly1.tfm
+2022/02/04 | 28368 | fonts/etbb/tfm/ETbb-Regular-tlf-ly1.tfm
+2022/02/04 | 283598 | macros/latex/contrib/reledmac/examples/2-indexing.pdf
+2022/02/04 | 28337 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/02/04 | 2832 | fonts/etbb/enc/etbb_onypnl.enc
+2022/02/04 | 2819 | fonts/etbb/enc/etbb_pqh27d.enc
+2022/02/04 | 281919 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/02/04 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex
+2022/02/04 | 2799002 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/02/04 | 2796 | macros/latex/contrib/crefthe/README.md
+2022/02/04 | 27828 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1.tfm
+2022/02/04 | 27824 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1.tfm
+2022/02/04 | 27804 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1.tfm
+2022/02/04 | 27804 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1.tfm
+2022/02/04 | 27786 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/02/04 | 277764 | macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+2022/02/04 | 27484 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1.tfm
+2022/02/04 | 27480 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1.tfm
+2022/02/04 | 27462 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/02/04 | 27460 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1.tfm
+2022/02/04 | 27460 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1.tfm
+2022/02/04 | 27252 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/02/04 | 2674150 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/02/04 | 265584 | systems/texlive/tlnet/archive/biber.doc.r61867.tar.xz
+2022/02/04 | 262720 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/02/04 | 262658 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/02/04 | 2622 | macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
+2022/02/04 | 26068 | fonts/etbb/tfm/ETbb-Bold-lf-ly1.tfm
+2022/02/04 | 26060 | fonts/etbb/tfm/ETbb-Bold-osf-ly1.tfm
+2022/02/04 | 26040 | fonts/etbb/tfm/ETbb-Bold-tosf-ly1.tfm
+2022/02/04 | 26040 | fonts/etbb/tfm/ETbb-Bold-tlf-ly1.tfm
+2022/02/04 | 25946 | macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
+2022/02/04 | 259150 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/02/04 | 25908 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1.tfm
+2022/02/04 | 25900 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1.tfm
+2022/02/04 | 25880 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1.tfm
+2022/02/04 | 25880 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1.tfm
+2022/02/04 | 256592 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/02/04 | 25632132 | systems/texlive/tlnet/install-tl.zip
+2022/02/04 | 25516 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ly1.tfm
+2022/02/04 | 25508 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ly1.tfm
+2022/02/04 | 25488 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ly1.tfm
+2022/02/04 | 25488 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ly1.tfm
+2022/02/04 | 254845 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/02/04 | 25480 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/02/04 | 25340 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1.tfm
+2022/02/04 | 25328 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1.tfm
+2022/02/04 | 25316 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1.tfm
+2022/02/04 | 25316 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1.tfm
+2022/02/04 | 25316 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1.tfm
+2022/02/04 | 25304 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1.tfm
+2022/02/04 | 25292 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1.tfm
+2022/02/04 | 25292 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1.tfm
+2022/02/04 | 252480 | systems/texlive/tlnet/archive/biblatex.r61868.tar.xz
+2022/02/04 | 25129 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/02/04 | 251250 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/02/04 | 25079 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/02/04 | 249923 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
+2022/02/04 | 249192 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
+2022/02/04 | 246658 | macros/xetex/latex/xepersian/xepersian-doc.pdf
+2022/02/04 | 244998 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/02/04 | 2431 | macros/luatex/generic/lua-widow-control/README.md
+2022/02/04 | 24076 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/02/04 | 24004 | fonts/etbb/tfm/ETbb-Italic-osf-t1.tfm
+2022/02/04 | 24000 | fonts/etbb/tfm/ETbb-Italic-lf-t1.tfm
+2022/02/04 | 23988 | fonts/etbb/tfm/Etbb1-Italic-osf-t1.tfm
+2022/02/04 | 23984 | fonts/etbb/tfm/Etbb1-Italic-lf-t1.tfm
+2022/02/04 | 23976 | fonts/etbb/tfm/ETbb-Italic-tosf-t1.tfm
+2022/02/04 | 23976 | fonts/etbb/tfm/ETbb-Italic-tlf-t1.tfm
+2022/02/04 | 23960 | fonts/etbb/tfm/Etbb1-Italic-tosf-t1.tfm
+2022/02/04 | 23960 | fonts/etbb/tfm/Etbb1-Italic-tlf-t1.tfm
+2022/02/04 | 23945 | macros/xetex/latex/bidi/bidi-doc-latex-basics.ltx
+2022/02/04 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/02/04 | 23756 | fonts/etbb/tfm/ETbb-Bold-lf-t1.tfm
+2022/02/04 | 23752 | fonts/etbb/tfm/ETbb-Bold-osf-t1.tfm
+2022/02/04 | 23752 | fonts/etbb/tfm/Etbb1-Bold-lf-t1.tfm
+2022/02/04 | 23748 | fonts/etbb/tfm/Etbb1-Bold-osf-t1.tfm
+2022/02/04 | 23732 | fonts/etbb/tfm/ETbb-Bold-tlf-t1.tfm
+2022/02/04 | 23728 | fonts/etbb/tfm/ETbb-Bold-tosf-t1.tfm
+2022/02/04 | 23728 | fonts/etbb/tfm/Etbb1-Bold-tlf-t1.tfm
+2022/02/04 | 23724 | fonts/etbb/tfm/Etbb1-Bold-tosf-t1.tfm
+2022/02/04 | 23700 | fonts/etbb/tfm/ETbb-Bold-lf-sc-t1.tfm
+2022/02/04 | 23684 | fonts/etbb/tfm/ETbb-Bold-osf-sc-t1.tfm
+2022/02/04 | 23668 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1.tfm
+2022/02/04 | 23668 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1.tfm
+2022/02/04 | 23648 | fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1.tfm
+2022/02/04 | 23632 | fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1.tfm
+2022/02/04 | 23616 | fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1.tfm
+2022/02/04 | 23616 | fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1.tfm
+2022/02/04 | 23608 | fonts/etbb/tfm/ETbb-Italic-osf-swash-t1.tfm
+2022/02/04 | 23604 | fonts/etbb/tfm/ETbb-Italic-lf-swash-t1.tfm
+2022/02/04 | 23592 | fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1.tfm
+2022/02/04 | 23588 | fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1.tfm
+2022/02/04 | 23580 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1.tfm
+2022/02/04 | 23580 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1.tfm
+2022/02/04 | 23564 | fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1.tfm
+2022/02/04 | 23564 | fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1.tfm
+2022/02/04 | 23540944 | systems/texlive/tlnet/archive/biber.x86_64-linux.r61867.tar.xz
+2022/02/04 | 2347164 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/02/04 | 23425 | macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
+2022/02/04 | 23232 | fonts/etbb/tfm/ETbb-Bold-lf-swash-t1.tfm
+2022/02/04 | 23228 | fonts/etbb/tfm/ETbb-Bold-osf-swash-t1.tfm
+2022/02/04 | 23228 | fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1.tfm
+2022/02/04 | 23224 | fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1.tfm
+2022/02/04 | 23208 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1.tfm
+2022/02/04 | 23204 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1.tfm
+2022/02/04 | 23204 | fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1.tfm
+2022/02/04 | 23200 | fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1.tfm
+2022/02/04 | 22827756 | systems/texlive/tlnet/archive/biber.win32.r61867.tar.xz
+2022/02/04 | 227132 | fonts/hamnosys.zip
+2022/02/04 | 22632 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ly1.tfm
+2022/02/04 | 22624 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ly1.tfm
+2022/02/04 | 22612 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ly1.tfm
+2022/02/04 | 22608 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ly1.tfm
+2022/02/04 | 224508 | macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+2022/02/04 | 22285 | macros/luatex/generic/lua-widow-control/lwc-documentation.tex
+2022/02/04 | 22156 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/02/04 | 22148 | fonts/etbb/tfm/ETbb-BoldItalic-lf-t1.tfm
+2022/02/04 | 22140 | fonts/etbb/tfm/ETbb-BoldItalic-osf-t1.tfm
+2022/02/04 | 22132 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1.tfm
+2022/02/04 | 22124 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1.tfm
+2022/02/04 | 22120 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1.tfm
+2022/02/04 | 22116 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1.tfm
+2022/02/04 | 22104 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1.tfm
+2022/02/04 | 22100 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1.tfm
+2022/02/04 | 21927600 | systems/texlive/tlnet/archive/biber.x86_64-solaris.r61867.tar.xz
+2022/02/04 | 2188 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex
+2022/02/04 | 21876 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1.tfm
+2022/02/04 | 21868 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1.tfm
+2022/02/04 | 21860 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1.tfm
+2022/02/04 | 21852 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1.tfm
+2022/02/04 | 21848 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1.tfm
+2022/02/04 | 21844 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1.tfm
+2022/02/04 | 21832 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1.tfm
+2022/02/04 | 21828 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1.tfm
+2022/02/04 | 216596 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/02/04 | 2150 | macros/xetex/latex/xepersian/xepersian-doc-title.ltx
+2022/02/04 | 2150 | macros/xetex/latex/bidi/bidi-doc-title.ltx
+2022/02/04 | 213256 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
+2022/02/04 | 213132 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/02/04 | 21311 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/02/04 | 211867 | macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
+2022/02/04 | 211562 | macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
+2022/02/04 | 209862 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/02/04 | 209856 | macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+2022/02/04 | 20873132 | systems/texlive/tlnet/install-tl-windows.exe
+2022/02/04 | 2080 | fonts/etbb/tfm/ETbb-BoldItalic-sup-t1.tfm
+2022/02/04 | 2076 | fonts/etbb/tfm/ETbb-Italic-sup-t1.tfm
+2022/02/04 | 2076 | fonts/etbb/tfm/ETbb-BoldItalic-sup-t1--base.tfm
+2022/02/04 | 2072 | fonts/etbb/tfm/ETbb-Italic-sup-t1--base.tfm
+2022/02/04 | 2065249 | macros/latex/contrib/reledmac/reledmac.pdf
+2022/02/04 | 2064 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ly1.tfm
+2022/02/04 | 20644 | systems/texlive/tlnet/archive/hamnosys.r61864.tar.xz
+2022/02/04 | 206311 | macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+2022/02/04 | 2060 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ly1--base.tfm
+2022/02/04 | 205925 | macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+2022/02/04 | 2056 | fonts/etbb/tfm/ETbb-Italic-sup-ly1.tfm
+2022/02/04 | 2052 | fonts/etbb/tfm/ETbb-Italic-sup-ly1--base.tfm
+2022/02/04 | 204143 | macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
+2022/02/04 | 2040 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ly1--base.tfm
+2022/02/04 | 203970 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+2022/02/04 | 2032 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ly1--base.tfm
+2022/02/04 | 203251 | macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+2022/02/04 | 203065 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/02/04 | 202702 | macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+2022/02/04 | 2020 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ly1--base.tfm
+2022/02/04 | 2020 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ly1--base.tfm
+2022/02/04 | 2020 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1--base.tfm
+2022/02/04 | 20189 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/02/04 | 2016 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ly1--base.tfm
+2022/02/04 | 2012 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ly1--base.tfm
+2022/02/04 | 201045 | macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+2022/02/04 | 2008 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1--base.tfm
+2022/02/04 | 2006599 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/02/04 | 2004 | fonts/etbb/tfm/ETbb-Italic-osf-sc-t1--base.tfm
+2022/02/04 | 200373 | macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+2022/02/04 | 200204 | macros/latex/contrib/reledmac/examples/1-verses.pdf
+2022/02/04 | 200153 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/02/04 | 2000 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ly1--base.tfm
+2022/02/04 | 2000 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1--base.tfm
+2022/02/04 | 199948 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+2022/02/04 | 199821 | macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+2022/02/04 | 199790 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/02/04 | 1996 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ly1--base.tfm
+2022/02/04 | 1996 | fonts/etbb/tfm/ETbb-Italic-lf-sc-t1--base.tfm
+2022/02/04 | 1996 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1--base.tfm
+2022/02/04 | 1996 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1--base.tfm
+2022/02/04 | 199590 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+2022/02/04 | 199420 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/02/04 | 199199 | macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+2022/02/04 | 199196 | macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+2022/02/04 | 199183 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+2022/02/04 | 199170 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/02/04 | 199051 | macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
+2022/02/04 | 1989 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
+2022/02/04 | 1988 | fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1--base.tfm
+2022/02/04 | 1988 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1--base.tfm
+2022/02/04 | 198707 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+2022/02/04 | 198573 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+2022/02/04 | 198522 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+2022/02/04 | 1984 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1--base.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/ETbb-Regular-sup-t1.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1--base.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ly1--base.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ly1--base.tfm
+2022/02/04 | 1980 | fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1--base.tfm
+2022/02/04 | 1976 | fonts/etbb/tfm/ETbb-Regular-sup-t1--base.tfm
+2022/02/04 | 1976 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1--base.tfm
+2022/02/04 | 1976 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1--base.tfm
+2022/02/04 | 1972 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ly1--base.tfm
+2022/02/04 | 1972 | fonts/etbb/tfm/ETbb-Italic-osf-ly1--base.tfm
+2022/02/04 | 1972 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ly1--base.tfm
+2022/02/04 | 1972 | fonts/etbb/tfm/ETbb-Italic-lf-ly1--base.tfm
+2022/02/04 | 1968 | fonts/etbb/tfm/ETbb-Italic-dnom-ly1.tfm
+2022/02/04 | 1968 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ly1--base.tfm
+2022/02/04 | 1968 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ly1--base.tfm
+2022/02/04 | 1968 | fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1--base.tfm
+2022/02/04 | 1964 | fonts/etbb/tfm/ETbb-Regular-sup-ly1.tfm
+2022/02/04 | 1964 | fonts/etbb/tfm/ETbb-Italic-dnom-ly1--base.tfm
+2022/02/04 | 1964 | fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1--base.tfm
+2022/02/04 | 19628 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ly1.tfm
+2022/02/04 | 19620 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ly1.tfm
+2022/02/04 | 1961 | macros/xetex/latex/bidi/bidi-doc-plain-programming.ltx
+2022/02/04 | 196135 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/02/04 | 1960 | fonts/etbb/tfm/ETbb-Regular-sup-ly1--base.tfm
+2022/02/04 | 19608 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ly1.tfm
+2022/02/04 | 19604 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ly1.tfm
+2022/02/04 | 1956 | fonts/etbb/tfm/ETbb-Italic-inf-ly1.tfm
+2022/02/04 | 195383 | macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-Italic-inf-ly1--base.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-Italic-dnom-t1.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ly1--base.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ly1--base.tfm
+2022/02/04 | 1952 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ly1.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ly1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-tosf-ly1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ly1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-tlf-ly1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-osf-t1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-osf-swash-t1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-Italic-dnom-t1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ly1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ly1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-lf-t1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ly1--base.tfm
+2022/02/04 | 1948 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ly1.tfm
+2022/02/04 | 1944 | fonts/etbb/tfm/ETbb-Italic-lf-t1--base.tfm
+2022/02/04 | 1944 | fonts/etbb/tfm/ETbb-Italic-lf-swash-t1--base.tfm
+2022/02/04 | 1944 | fonts/etbb/tfm/ETbb-Italic-inf-t1.tfm
+2022/02/04 | 1944 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ly1--base.tfm
+2022/02/04 | 1940 | fonts/etbb/tfm/ETbb-Italic-inf-t1--base.tfm
+2022/02/04 | 1940 | fonts/etbb/tfm/ETbb-BoldItalic-osf-t1--base.tfm
+2022/02/04 | 1940 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1--base.tfm
+2022/02/04 | 1940 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/ETbb-BoldItalic-inf-t1.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1--base.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/Etbb1-Italic-osf-t1--base.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1--base.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1--base.tfm
+2022/02/04 | 1936 | fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1--base.tfm
+2022/02/04 | 1932 | fonts/etbb/tfm/ETbb-BoldItalic-inf-t1--base.tfm
+2022/02/04 | 1932 | fonts/etbb/tfm/Etbb1-Italic-lf-t1--base.tfm
+2022/02/04 | 1932 | fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1--base.tfm
+2022/02/04 | 1928 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1--base.tfm
+2022/02/04 | 1928 | fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1--base.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-Italic-tosf-t1--base.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1--base.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-Italic-tlf-t1--base.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1--base.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1--base.tfm
+2022/02/04 | 1920 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1--base.tfm
+2022/02/04 | 1916 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1--base.tfm
+2022/02/04 | 1916 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1--base.tfm
+2022/02/04 | 1912 | fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1--base.tfm
+2022/02/04 | 19106 | macros/latex/contrib/crefthe/LICENSE
+2022/02/04 | 1908 | fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1--base.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/ETbb-Regular-lf-ly1--base.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-Italic-tosf-t1--base.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1--base.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-Italic-tlf-t1--base.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1--base.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1--base.tfm
+2022/02/04 | 1908 | fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1--base.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/ETbb-Regular-osf-ly1--base.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1--base.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/ETbb-Regular-inf-ly1.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/ETbb-Regular-dnom-ly1.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1--base.tfm
+2022/02/04 | 1904 | fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1--base.tfm
+2022/02/04 | 1900 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1--base.tfm
+2022/02/04 | 1900 | fonts/etbb/tfm/ETbb-Regular-inf-ly1--base.tfm
+2022/02/04 | 1900 | fonts/etbb/tfm/ETbb-Regular-dnom-ly1--base.tfm
+2022/02/04 | 1888 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1--base.tfm
+2022/02/04 | 1888 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1--base.tfm
+2022/02/04 | 1884 | macros/luatex/generic/lua-widow-control/lua-widow-control.sty
+2022/02/04 | 1884 | fonts/etbb/tfm/ETbb-Regular-tosf-ly1--base.tfm
+2022/02/04 | 1884 | fonts/etbb/tfm/ETbb-Regular-tlf-ly1--base.tfm
+2022/02/04 | 1880 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1--base.tfm
+2022/02/04 | 1880 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1--base.tfm
+2022/02/04 | 1880 | fonts/etbb/tfm/ETbb-Bold-sup-t1.tfm
+2022/02/04 | 1876 | fonts/etbb/tfm/ETbb-Regular-inf-t1.tfm
+2022/02/04 | 1876 | fonts/etbb/tfm/ETbb-Regular-dnom-t1.tfm
+2022/02/04 | 1876 | fonts/etbb/tfm/ETbb-Bold-sup-t1--base.tfm
+2022/02/04 | 1872 | fonts/etbb/tfm/ETbb-Regular-inf-t1--base.tfm
+2022/02/04 | 1872 | fonts/etbb/tfm/ETbb-Regular-dnom-t1--base.tfm
+2022/02/04 | 186656 | systems/texlive/tlnet/archive/hamnosys.doc.r61864.tar.xz
+2022/02/04 | 1864 | fonts/etbb/tfm/ETbb-Regular-osf-swash-t1--base.tfm
+2022/02/04 | 1864 | fonts/etbb/tfm/ETbb-Regular-lf-swash-t1--base.tfm
+2022/02/04 | 1860 | fonts/etbb/tfm/ETbb-Regular-osf-t1--base.tfm
+2022/02/04 | 1860 | fonts/etbb/tfm/ETbb-Regular-osf-sc-t1--base.tfm
+2022/02/04 | 1860 | fonts/etbb/tfm/ETbb-Regular-lf-t1--base.tfm
+2022/02/04 | 1860 | fonts/etbb/tfm/ETbb-Regular-lf-sc-t1--base.tfm
+2022/02/04 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/02/04 | 1848 | fonts/etbb/tfm/ETbb-Bold-sup-ly1.tfm
+2022/02/04 | 1848 | fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1--base.tfm
+2022/02/04 | 1848 | fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1--base.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1--base.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1--base.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/ETbb-Bold-sup-ly1--base.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1--base.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/Etbb1-Regular-osf-t1--base.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1--base.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/Etbb1-Regular-lf-t1--base.tfm
+2022/02/04 | 1844 | fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1--base.tfm
+2022/02/04 | 1840 | fonts/etbb/tfm/ETbb-Regular-tosf-t1--base.tfm
+2022/02/04 | 1840 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1--base.tfm
+2022/02/04 | 1840 | fonts/etbb/tfm/ETbb-Regular-tlf-t1--base.tfm
+2022/02/04 | 1840 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1--base.tfm
+2022/02/04 | 18374 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/02/04 | 1836 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-swash-t1.vf
+2022/02/04 | 1836 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1--base.tfm
+2022/02/04 | 1832 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-swash-t1.vf
+2022/02/04 | 1832 | fonts/etbb/vf/Etbb1-BoldItalic-osf-swash-t1.vf
+2022/02/04 | 1832 | fonts/etbb/vf/Etbb1-BoldItalic-lf-swash-t1.vf
+2022/02/04 | 18304 | macros/xetex/latex/xepersian/img/ireland.jpg
+2022/02/04 | 1828 | fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1--base.tfm
+2022/02/04 | 1828 | fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1--base.tfm
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-Regular-tosf-swash-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-Regular-tlf-swash-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-Regular-osf-swash-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-Italic-tosf-swash-t1.vf
+2022/02/04 | 1824 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-t1.vf
+2022/02/04 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tosf-t1--base.tfm
+2022/02/04 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1--base.tfm
+2022/02/04 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tlf-t1--base.tfm
+2022/02/04 | 1824 | fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1--base.tfm
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-Regular-lf-swash-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-Italic-tlf-swash-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-Italic-osf-swash-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-Italic-lf-swash-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-BoldItalic-osf-t1.vf
+2022/02/04 | 1820 | fonts/etbb/vf/Etbb1-BoldItalic-lf-t1.vf
+2022/02/04 | 1816 | fonts/etbb/vf/Etbb1-Bold-tosf-swash-t1.vf
+2022/02/04 | 1816 | fonts/etbb/vf/Etbb1-Bold-tlf-swash-t1.vf
+2022/02/04 | 1816 | fonts/etbb/vf/Etbb1-Bold-osf-swash-t1.vf
+2022/02/04 | 1816 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1--base.tfm
+2022/02/04 | 1816 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1--base.tfm
+2022/02/04 | 1816 | fonts/etbb/tfm/ETbb-Bold-lf-sc-t1--base.tfm
+2022/02/04 | 181556 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Regular-tosf-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Regular-tlf-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Regular-osf-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Italic-tosf-t1.vf
+2022/02/04 | 1812 | fonts/etbb/vf/Etbb1-Bold-lf-swash-t1.vf
+2022/02/04 | 1808 | fonts/etbb/vf/Etbb1-Regular-lf-t1.vf
+2022/02/04 | 1808 | fonts/etbb/vf/Etbb1-Italic-tlf-t1.vf
+2022/02/04 | 1808 | fonts/etbb/vf/Etbb1-Italic-osf-t1.vf
+2022/02/04 | 1808 | fonts/etbb/vf/Etbb1-Italic-lf-t1.vf
+2022/02/04 | 18087472 | systems/texlive/tlnet/archive/biber.x86_64-linuxmusl.r61867.tar.xz
+2022/02/04 | 180744 | macros/xetex/latex/bidi/bidi-doc.pdf
+2022/02/04 | 1804 | fonts/etbb/vf/Etbb1-Bold-tosf-t1.vf
+2022/02/04 | 1804 | fonts/etbb/vf/Etbb1-Bold-tlf-t1.vf
+2022/02/04 | 1804 | fonts/etbb/vf/Etbb1-Bold-osf-t1.vf
+2022/02/04 | 1804 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ly1--base.tfm
+2022/02/04 | 1800 | fonts/etbb/vf/Etbb1-Bold-lf-t1.vf
+2022/02/04 | 1800 | fonts/etbb/vf/Etbb1-BoldItalic-tosf-sc-t1.vf
+2022/02/04 | 1800 | fonts/etbb/tfm/ETbb-Bold-osf-sc-t1--base.tfm
+2022/02/04 | 1800 | fonts/etbb/tfm/ETbb-Bold-lf-ly1--base.tfm
+2022/02/04 | 1800 | fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1--base.tfm
+2022/02/04 | 179945 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/02/04 | 1796 | fonts/etbb/vf/Etbb1-BoldItalic-tlf-sc-t1.vf
+2022/02/04 | 1796 | fonts/etbb/vf/Etbb1-BoldItalic-osf-sc-t1.vf
+2022/02/04 | 1796 | fonts/etbb/vf/Etbb1-BoldItalic-lf-sc-t1.vf
+2022/02/04 | 1796 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ly1--base.tfm
+2022/02/04 | 1792 | fonts/etbb/tfm/ETbb-Bold-osf-ly1--base.tfm
+2022/02/04 | 1788 | fonts/etbb/vf/Etbb1-Regular-tosf-sc-t1.vf
+2022/02/04 | 1788 | fonts/etbb/vf/Etbb1-Regular-tlf-sc-t1.vf
+2022/02/04 | 1788 | fonts/etbb/vf/Etbb1-Regular-osf-sc-t1.vf
+2022/02/04 | 1788 | fonts/etbb/vf/Etbb1-Italic-tosf-sc-t1.vf
+2022/02/04 | 1784 | fonts/etbb/vf/Etbb1-Regular-lf-sc-t1.vf
+2022/02/04 | 1784 | fonts/etbb/vf/Etbb1-Italic-tlf-sc-t1.vf
+2022/02/04 | 1784 | fonts/etbb/vf/Etbb1-Italic-osf-sc-t1.vf
+2022/02/04 | 1784 | fonts/etbb/vf/Etbb1-Italic-lf-sc-t1.vf
+2022/02/04 | 1784 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1--base.tfm
+2022/02/04 | 1784 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1--base.tfm
+2022/02/04 | 1784 | fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1--base.tfm
+2022/02/04 | 1780 | fonts/etbb/vf/Etbb1-Bold-tosf-sc-t1.vf
+2022/02/04 | 1780 | fonts/etbb/vf/Etbb1-Bold-tlf-sc-t1.vf
+2022/02/04 | 1780 | fonts/etbb/vf/Etbb1-Bold-osf-sc-t1.vf
+2022/02/04 | 1776 | fonts/etbb/vf/Etbb1-Bold-lf-sc-t1.vf
+2022/02/04 | 1776 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ly1--base.tfm
+2022/02/04 | 1776 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ly1--base.tfm
+2022/02/04 | 1772 | fonts/etbb/tfm/ETbb-Bold-tosf-ly1--base.tfm
+2022/02/04 | 1772 | fonts/etbb/tfm/ETbb-Bold-tlf-ly1--base.tfm
+2022/02/04 | 1772 | fonts/etbb/tfm/ETbb-Bold-lf-swash-t1--base.tfm
+2022/02/04 | 177026 | macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
+2022/02/04 | 1768 | fonts/etbb/tfm/ETbb-Bold-osf-swash-t1--base.tfm
+2022/02/04 | 1768 | fonts/etbb/tfm/ETbb-Bold-lf-t1--base.tfm
+2022/02/04 | 1768 | fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1--base.tfm
+2022/02/04 | 1768 | fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1--base.tfm
+2022/02/04 | 17674 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+2022/02/04 | 1764 | fonts/etbb/tfm/ETbb-Bold-osf-t1--base.tfm
+2022/02/04 | 1764 | fonts/etbb/tfm/ETbb-Bold-inf-t1.tfm
+2022/02/04 | 1764 | fonts/etbb/tfm/ETbb-Bold-inf-ly1.tfm
+2022/02/04 | 1764 | fonts/etbb/tfm/ETbb-Bold-dnom-ly1.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/ETbb-Bold-inf-t1--base.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/ETbb-Bold-inf-ly1--base.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/ETbb-Bold-dnom-t1.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/ETbb-Bold-dnom-ly1--base.tfm
+2022/02/04 | 1760 | fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1--base.tfm
+2022/02/04 | 1756 | fonts/etbb/tfm/ETbb-Bold-dnom-t1--base.tfm
+2022/02/04 | 1756 | fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1--base.tfm
+2022/02/04 | 1756 | fonts/etbb/tfm/Etbb1-Bold-lf-t1--base.tfm
+2022/02/04 | 1752 | fonts/etbb/tfm/Etbb1-Bold-osf-t1--base.tfm
+2022/02/04 | 1748 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1--base.tfm
+2022/02/04 | 174535 | macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
+2022/02/04 | 1744 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1--base.tfm
+2022/02/04 | 1744 | fonts/etbb/tfm/ETbb-Bold-tlf-t1--base.tfm
+2022/02/04 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-t1.vf
+2022/02/04 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-t1.vf
+2022/02/04 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-t1.vf
+2022/02/04 | 1740 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-t1.vf
+2022/02/04 | 1740 | fonts/etbb/tfm/ETbb-Bold-tosf-t1--base.tfm
+2022/02/04 | 1736 | fonts/etbb/vf/ETbb-Italic-tosf-sc-t1.vf
+2022/02/04 | 1736 | fonts/etbb/vf/ETbb-Italic-tlf-sc-t1.vf
+2022/02/04 | 1736 | fonts/etbb/vf/ETbb-Italic-osf-sc-t1.vf
+2022/02/04 | 1736 | fonts/etbb/vf/ETbb-Italic-lf-sc-t1.vf
+2022/02/04 | 1736 | fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1--base.tfm
+2022/02/04 | 1732 | fonts/etbb/vf/ETbb-Regular-tosf-sc-t1.vf
+2022/02/04 | 1732 | fonts/etbb/vf/ETbb-Regular-tlf-sc-t1.vf
+2022/02/04 | 1732 | fonts/etbb/vf/ETbb-Regular-osf-sc-t1.vf
+2022/02/04 | 1732 | fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-t1.vf
+2022/02/04 | 1732 | fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1--base.tfm
+2022/02/04 | 1732 | fonts/etbb/tfm/Etbb1-Bold-tlf-t1--base.tfm
+2022/02/04 | 1732204 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Regular-tosf-swash-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Regular-tlf-swash-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Regular-osf-swash-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Regular-lf-sc-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Italic-tosf-swash-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Bold-tosf-sc-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Bold-tlf-sc-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Bold-osf-sc-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-Bold-lf-sc-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-osf-swash-t1.vf
+2022/02/04 | 1728 | fonts/etbb/vf/ETbb-BoldItalic-lf-swash-t1.vf
+2022/02/04 | 1728 | fonts/etbb/tfm/Etbb1-Bold-tosf-t1--base.tfm
+2022/02/04 | 17285996 | systems/texlive/tlnet/archive/biber.x86_64-cygwin.r61867.tar.xz
+2022/02/04 | 172636 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Regular-lf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Italic-tlf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Italic-osf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Italic-lf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Bold-tosf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Bold-tlf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Bold-osf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-Bold-lf-swash-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-tosf-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-tlf-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-sup-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-osf-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-lf-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-inf-t1.vf
+2022/02/04 | 1724 | fonts/etbb/vf/ETbb-BoldItalic-dnom-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-tosf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-tlf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-sup-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-osf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-lf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-inf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-dnom-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-tosf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-tlf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-sup-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-osf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-lf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-inf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Italic-dnom-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Bold-tosf-t1.vf
+2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Bold-dnom-t1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-tlf-t1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-sup-t1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-osf-t1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-lf-t1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ly1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ly1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ly1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ly1.vf
+2022/02/04 | 1716 | fonts/etbb/vf/ETbb-Bold-inf-t1.vf
+2022/02/04 | 17154236 | systems/texlive/tlnet/archive/biber.i386-cygwin.r61867.tar.xz
+2022/02/04 | 1712 | fonts/etbb/vf/ETbb-Italic-tosf-sc-ly1.vf
+2022/02/04 | 1712 | fonts/etbb/vf/ETbb-Italic-tlf-sc-ly1.vf
+2022/02/04 | 1712 | fonts/etbb/vf/ETbb-Italic-osf-sc-ly1.vf
+2022/02/04 | 1712 | fonts/etbb/vf/ETbb-Italic-lf-sc-ly1.vf
+2022/02/04 | 17100906 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Regular-tosf-sc-ly1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Regular-tlf-sc-ly1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Regular-osf-sc-ly1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Regular-lf-sc-ly1.vf
+2022/02/04 | 1708 | fonts/etbb/vf/ETbb-Bold-tosf-sc-ly1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Regular-tosf-swash-ly1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Regular-tlf-swash-ly1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Regular-osf-swash-ly1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Regular-lf-swash-ly1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Bold-tlf-sc-ly1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Bold-osf-sc-ly1.vf
+2022/02/04 | 1704 | fonts/etbb/vf/ETbb-Bold-lf-sc-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Regular-tosf-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Bold-tosf-swash-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Bold-tlf-swash-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Bold-osf-swash-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-Bold-lf-swash-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ly1.vf
+2022/02/04 | 1700 | fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Regular-tlf-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Regular-osf-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Regular-lf-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Italic-tosf-swash-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Italic-tlf-swash-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Italic-osf-swash-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Italic-lf-swash-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Bold-tosf-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Bold-tlf-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-Bold-osf-ly1.vf
+2022/02/04 | 1696 | fonts/etbb/vf/ETbb-BoldItalic-tosf-ly1.vf
+2022/02/04 | 1693 | macros/xetex/latex/bidi/picture.jpg
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-Italic-tosf-ly1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-Bold-lf-ly1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-tlf-ly1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-osf-ly1.vf
+2022/02/04 | 1692 | fonts/etbb/vf/ETbb-BoldItalic-lf-ly1.vf
+2022/02/04 | 1688 | fonts/etbb/vf/ETbb-Italic-tlf-ly1.vf
+2022/02/04 | 1688 | fonts/etbb/vf/ETbb-Italic-osf-ly1.vf
+2022/02/04 | 1688 | fonts/etbb/vf/ETbb-Italic-lf-ly1.vf
+2022/02/04 | 168796 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/02/04 | 16721 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
+2022/02/04 | 1668 | fonts/etbb/vf/ETbb-Regular-sup-ly1.vf
+2022/02/04 | 1668 | fonts/etbb/vf/ETbb-Regular-inf-ly1.vf
+2022/02/04 | 1668 | fonts/etbb/vf/ETbb-Regular-dnom-ly1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-Bold-sup-ly1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-sup-ly1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-inf-ly1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-BoldItalic-dnom-ly1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-Bold-inf-ly1.vf
+2022/02/04 | 1664 | fonts/etbb/vf/ETbb-Bold-dnom-ly1.vf
+2022/02/04 | 1660 | fonts/etbb/vf/ETbb-Italic-sup-ly1.vf
+2022/02/04 | 1660 | fonts/etbb/vf/ETbb-Italic-inf-ly1.vf
+2022/02/04 | 1660 | fonts/etbb/vf/ETbb-Italic-dnom-ly1.vf
+2022/02/04 | 16592 | systems/texlive/tlnet/archive/easybook.r61865.tar.xz
+2022/02/04 | 16570 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/02/04 | 16506 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/02/04 | 16472 | systems/texlive/tlnet/archive/easybook.source.r61865.tar.xz
+2022/02/04 | 159993 | graphics/pgf/contrib/sankey/sankey.dtx
+2022/02/04 | 15976 | macros/xetex/latex/xepersian/dkun-0.3.py
+2022/02/04 | 15876208 | systems/texlive/tlnet/archive/biber.i386-linux.r61867.tar.xz
+2022/02/04 | 15867 | macros/xetex/latex/xepersian/dkun-0.4.py
+2022/02/04 | 15836 | systems/texlive/tlnet/archive/hamnosys.source.r61864.tar.xz
+2022/02/04 | 1579 | macros/luatex/generic/lua-widow-control/lua-widow-control.tex
+2022/02/04 | 157564 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/02/04 | 155439 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/02/04 | 15442 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+2022/02/04 | 1540 | fonts/etbb/tfm/ETbb-Regular-tosf-ts1.tfm
+2022/02/04 | 1540 | fonts/etbb/tfm/ETbb-Regular-tlf-ts1.tfm
+2022/02/04 | 1540 | fonts/etbb/tfm/ETbb-Regular-osf-ts1.tfm
+2022/02/04 | 1540 | fonts/etbb/tfm/ETbb-Regular-lf-ts1.tfm
+2022/02/04 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/02/04 | 1536 | fonts/etbb/tfm/ETbb-Regular-tosf-ts1--base.tfm
+2022/02/04 | 1536 | fonts/etbb/tfm/ETbb-Regular-tlf-ts1--base.tfm
+2022/02/04 | 1536 | fonts/etbb/tfm/ETbb-Regular-osf-ts1--base.tfm
+2022/02/04 | 1536 | fonts/etbb/tfm/ETbb-Regular-lf-ts1--base.tfm
+2022/02/04 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/02/04 | 152020 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/02/04 | 1499490 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/02/04 | 1492 | macros/luatex/generic/lua-widow-control/lwc-documentation.bib
+2022/02/04 | 1485592 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+2022/02/04 | 1476 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1--base.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1--base.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-Italic-lf-ot1--base.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1--base.tfm
+2022/02/04 | 1472 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1--base.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1--base.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1--base.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-Italic-osf-ot1--base.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1--base.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1--base.tfm
+2022/02/04 | 1464 | fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1--base.tfm
+2022/02/04 | 14616 | macros/xetex/latex/xepersian/img/weather/rain.jpg
+2022/02/04 | 1460 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1--base.tfm
+2022/02/04 | 1460 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1--base.tfm
+2022/02/04 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/02/04 | 1456 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1--base.tfm
+2022/02/04 | 1456 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1--base.tfm
+2022/02/04 | 1456 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1--base.tfm
+2022/02/04 | 1452954 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/02/04 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/02/04 | 1448 | macros/xetex/latex/bidi/bidi-doc-intro.ltx
+2022/02/04 | 1448 | fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1--base.tfm
+2022/02/04 | 1444 | fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1--base.tfm
+2022/02/04 | 1444 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1--base.tfm
+2022/02/04 | 1444 | fonts/etbb/tfm/ETbb-Italic-tlf-ot1--base.tfm
+2022/02/04 | 14441 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
+2022/02/04 | 1440 | fonts/etbb/tfm/ETbb-Italic-dnom-ot1.tfm
+2022/02/04 | 1440 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1--base.tfm
+2022/02/04 | 1440 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1--base.tfm
+2022/02/04 | 14409 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1--base.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-tosf-ot1--base.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-sup-ot1.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-inf-ot1.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-Italic-dnom-ot1--base.tfm
+2022/02/04 | 1436 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1--base.tfm
+2022/02/04 | 14364 | fonts/etbb/tfm/ETbb-Italic-osf-ly1.tfm
+2022/02/04 | 14364 | fonts/etbb/tfm/ETbb-Italic-lf-ly1.tfm
+2022/02/04 | 14340 | fonts/etbb/tfm/ETbb-Italic-tosf-ly1.tfm
+2022/02/04 | 14340 | fonts/etbb/tfm/ETbb-Italic-tlf-ly1.tfm
+2022/02/04 | 1432 | fonts/etbb/tfm/ETbb-Italic-inf-ot1--base.tfm
+2022/02/04 | 1428 | fonts/etbb/tfm/ETbb-Italic-sup-ot1--base.tfm
+2022/02/04 | 1422 | macros/xetex/latex/xepersian/README
+2022/02/04 | 1422571 | macros/latex/contrib/siunitx.zip
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-Italic-tosf-ts1.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-Italic-tlf-ts1.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-Italic-osf-ts1.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-Italic-lf-ts1.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1.tfm
+2022/02/04 | 1420 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1.tfm
+2022/02/04 | 1416 | fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1--base.tfm
+2022/02/04 | 1416 | fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1--base.tfm
+2022/02/04 | 1411177 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/02/04 | 1410870 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/02/04 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ts1.tfm
+2022/02/04 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ts1.tfm
+2022/02/04 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ts1.tfm
+2022/02/04 | 1408 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ts1.tfm
+2022/02/04 | 14068 | fonts/etbb/tfm/ETbb-Italic-osf-swash-ly1.tfm
+2022/02/04 | 14068 | fonts/etbb/tfm/ETbb-Italic-lf-swash-ly1.tfm
+2022/02/04 | 1404 | fonts/etbb/tfm/ETbb-Italic-tosf-ts1--base.tfm
+2022/02/04 | 1404 | fonts/etbb/tfm/ETbb-Italic-tlf-ts1--base.tfm
+2022/02/04 | 1404 | fonts/etbb/tfm/ETbb-Italic-osf-ts1--base.tfm
+2022/02/04 | 1404 | fonts/etbb/tfm/ETbb-Italic-lf-ts1--base.tfm
+2022/02/04 | 14044 | fonts/etbb/tfm/ETbb-Italic-tosf-swash-ly1.tfm
+2022/02/04 | 14044 | fonts/etbb/tfm/ETbb-Italic-tlf-swash-ly1.tfm
+2022/02/04 | 139750 | macros/latex/contrib/animate/animate.sty
+2022/02/04 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ts1--base.tfm
+2022/02/04 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ts1--base.tfm
+2022/02/04 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ts1--base.tfm
+2022/02/04 | 1392 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ts1--base.tfm
+2022/02/04 | 139185 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/02/04 | 13804 | macros/xetex/latex/xepersian/undk-0.6.py
+2022/02/04 | 13737 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+2022/02/04 | 1368 | fonts/etbb/tfm/ETbb-Bold-tosf-ts1.tfm
+2022/02/04 | 1368 | fonts/etbb/tfm/ETbb-Bold-tlf-ts1.tfm
+2022/02/04 | 1368 | fonts/etbb/tfm/ETbb-Bold-osf-ts1.tfm
+2022/02/04 | 1368 | fonts/etbb/tfm/ETbb-Bold-lf-ts1.tfm
+2022/02/04 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r61869.tar.xz
+2022/02/04 | 135904 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/02/04 | 13586 | macros/luatex/generic/lua-widow-control/lua-widow-control.lua
+2022/02/04 | 1355173 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/02/04 | 1354 | macros/xetex/latex/bidi/README
+2022/02/04 | 1352 | fonts/etbb/tfm/ETbb-Bold-tosf-ts1--base.tfm
+2022/02/04 | 1352 | fonts/etbb/tfm/ETbb-Bold-tlf-ts1--base.tfm
+2022/02/04 | 1352 | fonts/etbb/tfm/ETbb-Bold-osf-ts1--base.tfm
+2022/02/04 | 1352 | fonts/etbb/tfm/ETbb-Bold-lf-ts1--base.tfm
+2022/02/04 | 13511 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/02/04 | 13511934 | macros/latex/contrib/reledmac.zip
+2022/02/04 | 134990 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/02/04 | 13440 | fonts/etbb/tfm/ETbb-BoldItalic-lf-ly1.tfm
+2022/02/04 | 13428 | fonts/etbb/tfm/ETbb-BoldItalic-osf-ly1.tfm
+2022/02/04 | 13412 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-ly1.tfm
+2022/02/04 | 13408 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-ly1.tfm
+2022/02/04 | 1322840 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/02/04 | 13220 | fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ly1.tfm
+2022/02/04 | 1320 | fonts/etbb/tfm/ETbb-Regular-inf-ot1.tfm
+2022/02/04 | 1320 | fonts/etbb/tfm/ETbb-Regular-dnom-ot1.tfm
+2022/02/04 | 13208 | fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ly1.tfm
+2022/02/04 | 13192 | fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ly1.tfm
+2022/02/04 | 13188 | fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ly1.tfm
+2022/02/04 | 13088 | macros/xetex/latex/xepersian/img/weather/clouds.jpg
+2022/02/04 | 1305189 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/02/04 | 1305169 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/02/04 | 1300069 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/02/04 | 1296 | fonts/etbb/tfm/ETbb-Regular-sup-ot1.tfm
+2022/02/04 | 1292 | fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1--base.tfm
+2022/02/04 | 1292 | fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1--base.tfm
+2022/02/04 | 1292 | fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1--base.tfm
+2022/02/04 | 1288 | fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1--base.tfm
+2022/02/04 | 1288 | fonts/etbb/tfm/ETbb-Bold-lf-ot1--base.tfm
+2022/02/04 | 1285595 | install/macros/xetex/latex/xepersian.tds.zip
+2022/02/04 | 1284 | fonts/etbb/tfm/ETbb-Bold-osf-ot1--base.tfm
+2022/02/04 | 12821 | macros/latex/contrib/animate/ChangeLog
+2022/02/04 | 1272 | fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1--base.tfm
+2022/02/04 | 1272 | fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1--base.tfm
+2022/02/04 | 1268 | fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1--base.tfm
+2022/02/04 | 1268 | fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1--base.tfm
+2022/02/04 | 126864 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/02/04 | 1264 | fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1--base.tfm
+2022/02/04 | 1264 | fonts/etbb/tfm/ETbb-Bold-tlf-ot1--base.tfm
+2022/02/04 | 1260 | fonts/etbb/tfm/ETbb-Bold-tosf-ot1--base.tfm
+2022/02/04 | 1260 | fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1--base.tfm
+2022/02/04 | 1248 | fonts/etbb/tfm/ETbb-Bold-sup-ot1.tfm
+2022/02/04 | 1247320 | systems/texlive/tlnet/archive/tex4ht.source.r61869.tar.xz
+2022/02/04 | 1240 | fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1--base.tfm
+2022/02/04 | 1240 | fonts/etbb/tfm/ETbb-Bold-sup-ot1--base.tfm
+2022/02/04 | 1240 | fonts/etbb/tfm/ETbb-Bold-inf-ot1.tfm
+2022/02/04 | 1236 | fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1--base.tfm
+2022/02/04 | 1236 | fonts/etbb/tfm/ETbb-Bold-inf-ot1--base.tfm
+2022/02/04 | 1236 | fonts/etbb/tfm/ETbb-Bold-dnom-ot1.tfm
+2022/02/04 | 12348 | macros/xetex/latex/xepersian/unldk-0.2.py
+2022/02/04 | 1232 | fonts/etbb/tfm/ETbb-Bold-dnom-ot1--base.tfm
+2022/02/04 | 123018 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
+2022/02/04 | 121760 | macros/latex/contrib/crefthe.zip
+2022/02/04 | 1215 | fonts/etbb/doc/LICENSE
+2022/02/04 | 120229 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/02/04 | 1181081 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/02/04 | 115635 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/02/04 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/02/04 | 1151 | systems/win32/miktex/tm/packages/pr.ini
+2022/02/04 | 113011 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/02/04 | 112667 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/02/04 | 1123663 | macros/xetex/latex/xepersian.zip
+2022/02/04 | 111942 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
+2022/02/04 | 110051 | macros/latex/contrib/crefthe/crefthe-doc.pdf
+2022/02/04 | 109549 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/02/04 | 109308 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/02/04 | 10896 | macros/xetex/latex/xepersian/img/weather/sun.jpg
+2022/02/04 | 1086642 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/02/04 | 108392 | systems/texlive/tlnet/archive/texlive-scripts.r61862.tar.xz
+2022/02/04 | 1081680 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
+2022/02/04 | 1073051 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
+2022/02/04 | 104696 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/02/04 | 10429 | macros/latex/contrib/crefthe/crefthe-doc.tex
+2022/02/04 | 103412 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/02/04 | 1021798 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
+2022/02/04 | 101559 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/02/04 | 1014383 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
+2022/02/04 | 1006705 | macros/latex/contrib/reledmac/reledpar.pdf
+2022/02/03 | 996 | macros/latex/contrib/siunitx/README.md
+2022/02/03 | 98548 | macros/latex/contrib/siunitx/siunitx-unit.dtx
+2022/02/03 | 9759 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
2022/02/03 | 9184 | macros/latex/contrib/fnpct/fnpct-manual.cls
2022/02/03 | 89216 | systems/texlive/tlnet/archive/mathtools.source.r61856.tar.xz
-2022/02/03 | 88150 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/02/03 | 8782 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/02/03 | 86493 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/02/03 | 824418 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/02/03 | 81506 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/02/03 | 80742 | macros/latex/contrib/easybook/easybook.tex
-2022/02/03 | 79058 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/02/03 | 78981 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/02/03 | 7757 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/02/03 | 77068 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/02/03 | 76199 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/02/03 | 75649 | macros/latex/contrib/easybook/easybook.dtx
-2022/02/03 | 753732 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/02/03 | 752444 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/02/03 | 74118 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/02/03 | 73650 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/02/03 | 73205 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/02/03 | 72889 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/02/03 | 72003 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/02/03 | 71842 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/02/03 | 70972 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/02/03 | 691859 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/02/03 | 68735 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/02/03 | 68529 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/02/03 | 682182 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/02/03 | 6812178 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/02/03 | 68019 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/02/03 | 67889 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/02/03 | 67219 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/02/03 | 65077 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/02/03 | 64693 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/02/03 | 64538 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/02/03 | 64500 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/02/03 | 63750 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/02/03 | 635247 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/02/03 | 635157 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/02/03 | 63363 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/02/03 | 630635 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/02/03 | 629383 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/02/03 | 8798 | macros/latex/contrib/siunitx/siunitx-command.dtx
+2022/02/03 | 7375 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/02/03 | 64333 | macros/latex/contrib/siunitx/CHANGELOG.md
+2022/02/03 | 639466 | macros/latex/contrib/siunitx/siunitx.pdf
2022/02/03 | 62696 | systems/texlive/tlnet/archive/siunitx.r61858.tar.xz
-2022/02/03 | 62443 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/02/03 | 62351 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/02/03 | 616701 | macros/latex/contrib/easybook.zip
-2022/02/03 | 598773 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/02/03 | 596280 | systems/texlive/tlnet/archive/easybook.doc.r61854.tar.xz
-2022/02/03 | 591259 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/02/03 | 58724 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/02/03 | 58644 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/02/03 | 576025 | macros/latex/contrib/easybook/easybook.pdf
-2022/02/03 | 57560 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/02/03 | 57423 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/02/03 | 57352 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/02/03 | 57209 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/02/03 | 57010 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/02/03 | 56849 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/02/03 | 565705 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/02/03 | 55751 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/02/03 | 55199 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/02/03 | 54997 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/02/03 | 532416 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/02/03 | 528108 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/02/03 | 610585 | support/TeX4ht/source/tex4ht-html4.tex
+2022/02/03 | 607726 | macros/latex/contrib/siunitx/siunitx-code.pdf
2022/02/03 | 527283 | macros/latex/contrib/fnpct.zip
-2022/02/03 | 52513 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/02/03 | 52324 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/02/03 | 52005 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/02/03 | 51546 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/02/03 | 51410 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2022/02/03 | 509779 | macros/latex/contrib/fnpct/fnpct-manual.pdf
-2022/02/03 | 50821 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/02/03 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2022/02/03 | 48819 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/02/03 | 484671 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/02/03 | 50881 | macros/latex/contrib/siunitx/siunitx-table.dtx
+2022/02/03 | 5029 | macros/latex/contrib/siunitx/siunitx-locale.dtx
2022/02/03 | 47991 | macros/latex/contrib/fnpct/fnpct.sty
-2022/02/03 | 47984 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/02/03 | 478896 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/02/03 | 477698 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/02/03 | 46108 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/02/03 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
2022/02/03 | 4592 | systems/texlive/tlnet/archive/sillypage.source.r61857.tar.xz
-2022/02/03 | 45927 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/02/03 | 45735 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/02/03 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/02/03 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/02/03 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/02/03 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2022/02/03 | 43945 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/02/03 | 43812 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/02/03 | 43650 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/02/03 | 43567 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/02/03 | 43427 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
2022/02/03 | 4300 | systems/texlive/tlnet/archive/fcolumn.r61855.tar.xz
-2022/02/03 | 42762 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/02/03 | 41386 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/02/03 | 41238 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/02/03 | 41214 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/02/03 | 403148 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61849.tar.xz
-2022/02/03 | 393908 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/02/03 | 39323 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/02/03 | 38565 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/02/03 | 38476 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/02/03 | 37376 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/02/03 | 37132 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/02/03 | 37112 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/02/03 | 36058 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/02/03 | 355066 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/02/03 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
2022/02/03 | 35316 | systems/texlive/tlnet/archive/texlogsieve.r61859.tar.xz
-2022/02/03 | 35236 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/02/03 | 35179 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/02/03 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/02/03 | 332528 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/02/03 | 32962 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/02/03 | 326179 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/02/03 | 32080 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/02/03 | 34421 | macros/latex/contrib/siunitx/siunitx-print.dtx
+2022/02/03 | 33799 | macros/latex/contrib/siunitx/siunitx-compound.dtx
2022/02/03 | 320148 | systems/texlive/tlnet/archive/fcolumn.doc.r61855.tar.xz
-2022/02/03 | 317511 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/02/03 | 31573 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/02/03 | 31535 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/02/03 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/02/03 | 31334 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/02/03 | 30558 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/02/03 | 30179 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/02/03 | 296123 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/02/03 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
+2022/02/03 | 31668 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
2022/02/03 | 291008 | systems/texlive/tlnet/archive/sillypage.doc.r61857.tar.xz
-2022/02/03 | 28766 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/02/03 | 28702 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/02/03 | 286571 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/02/03 | 286069 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/02/03 | 28581 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/02/03 | 285551 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/02/03 | 28336 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/02/03 | 281916 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/02/03 | 2799002 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/02/03 | 27786 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/02/03 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
2022/02/03 | 27748 | macros/latex/contrib/fnpct/fnpct-manual.tex
-2022/02/03 | 27461 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/02/03 | 27251 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/02/03 | 2674146 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/02/03 | 262708 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/02/03 | 262645 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/02/03 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
2022/02/03 | 26116 | biblio/biber/documentation/Changes
-2022/02/03 | 259150 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/02/03 | 256590 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/02/03 | 25632148 | systems/texlive/tlnet/install-tl.zip
-2022/02/03 | 254844 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/02/03 | 25479 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/02/03 | 25129 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/02/03 | 251251 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/02/03 | 25079 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/02/03 | 244997 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/02/03 | 24076 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/02/03 | 23936 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/02/03 | 2348012 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
-2022/02/03 | 230258 | fonts/hamnosys.zip
-2022/02/03 | 22156 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/02/03 | 25985 | macros/latex/contrib/siunitx/siunitx-complex.dtx
+2022/02/03 | 2492 | macros/latex/contrib/siunitx/siunitx-code.tex
2022/02/03 | 21760 | systems/texlive/tlnet/archive/fcolumn.source.r61855.tar.xz
-2022/02/03 | 216595 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/02/03 | 213132 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/02/03 | 21310 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/02/03 | 209862 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/02/03 | 20872880 | systems/texlive/tlnet/install-tl-windows.exe
-2022/02/03 | 203064 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/02/03 | 20189 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
2022/02/03 | 20176 | systems/texlive/tlnet/archive/mathtools.r61856.tar.xz
-2022/02/03 | 2006599 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/02/03 | 200152 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/02/03 | 199790 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/02/03 | 199419 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/02/03 | 199169 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/02/03 | 196137 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/02/03 | 19900 | macros/latex/contrib/siunitx/siunitx.dtx
2022/02/03 | 18768170 | macros/latex/contrib/biblatex.zip
-2022/02/03 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/02/03 | 18375 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/02/03 | 181555 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/02/03 | 179945 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/02/03 | 1732206 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/02/03 | 172636 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/02/03 | 17101444 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/02/03 | 168796 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/02/03 | 16576 | systems/texlive/tlnet/archive/easybook.r61854.tar.xz
-2022/02/03 | 16568 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/02/03 | 16508 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/02/03 | 16472 | systems/texlive/tlnet/archive/easybook.source.r61854.tar.xz
-2022/02/03 | 157564 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/02/03 | 155441 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/02/03 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/02/03 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/02/03 | 152018 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/02/03 | 182110 | support/TeX4ht/source/ChangeLog
+2022/02/03 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
+2022/02/03 | 16709 | macros/latex/contrib/siunitx/siunitx-angle.dtx
+2022/02/03 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
2022/02/03 | 1505 | macros/latex/contrib/fnpct/README
-2022/02/03 | 1499490 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/02/03 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/02/03 | 1452956 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/02/03 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/02/03 | 14408 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2022/02/03 | 1410525 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/02/03 | 1410507 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/02/03 | 139185 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/02/03 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r61860.tar.xz
-2022/02/03 | 135905 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/02/03 | 1355171 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/02/03 | 13511 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/02/03 | 134989 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/02/03 | 148539 | macros/latex/contrib/siunitx/siunitx.tex
+2022/02/03 | 1462892 | install/macros/latex/contrib/siunitx.tds.zip
2022/02/03 | 13468 | systems/texlive/tlnet/archive/sillypage.r61857.tar.xz
-2022/02/03 | 1322847 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/02/03 | 1305600 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2022/02/03 | 1304819 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/02/03 | 1300068 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/02/03 | 126865 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/02/03 | 1234668 | systems/texlive/tlnet/archive/tex4ht.source.r61860.tar.xz
+2022/02/03 | 121890 | macros/latex/contrib/siunitx/siunitx-number.dtx
2022/02/03 | 1206240 | systems/texlive/tlnet/archive/siunitx.doc.r61858.tar.xz
-2022/02/03 | 120228 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/02/03 | 1181077 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/02/03 | 115635 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/02/03 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2022/02/03 | 1151 | systems/win32/miktex/tm/packages/pr.ini
-2022/02/03 | 113011 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/02/03 | 112667 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/02/03 | 109551 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/02/03 | 109307 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/02/03 | 1086641 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2022/02/03 | 108464 | systems/texlive/tlnet/archive/siunitx.source.r61858.tar.xz
-2022/02/03 | 108412 | systems/texlive/tlnet/archive/texlive-scripts.r61849.tar.xz
-2022/02/03 | 104696 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2022/02/03 | 1035328 | systems/texlive/tlnet/archive/mathtools.doc.r61856.tar.xz
-2022/02/03 | 103412 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2022/02/03 | 103252 | systems/texlive/tlnet/archive/texlogsieve.doc.r61859.tar.xz
-2022/02/03 | 101558 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/02/03 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
2022/02/02 | 99 | macros/latex/contrib/biblatex/latex/bbx/authoryear-icomp.bbx
-2022/02/02 | 996 | macros/latex/contrib/siunitx/README.md
2022/02/02 | 98 | macros/latex/contrib/biblatex/latex/bbx/authoryear-ibid.bbx
2022/02/02 | 98 | macros/latex/contrib/biblatex/latex/bbx/authoryear-comp.bbx
2022/02/02 | 98 | macros/latex/contrib/biblatex/latex/bbx/alphabetic-verb.bbx
-2022/02/02 | 98548 | macros/latex/contrib/siunitx/siunitx-unit.dtx
+2022/02/02 | 98984 | fonts/etbb/opentype/ETbb-BoldItalic.otf
2022/02/02 | 9853 | macros/latex/contrib/biblatex/latex/cbx/authoryear-icomp.cbx
2022/02/02 | 98442 | macros/latex/contrib/biblatex/doc/examples/12-references-by-segment-biber.pdf
2022/02/02 | 98437 | macros/latex/contrib/biblatex/doc/examples/12-references-by-segment-bibtex.pdf
@@ -249,7 +1320,6 @@
2022/02/02 | 97 | macros/latex/contrib/biblatex/latex/bbx/verbose-trad2.bbx
2022/02/02 | 97 | macros/latex/contrib/biblatex/latex/bbx/verbose-trad1.bbx
2022/02/02 | 97 | macros/latex/contrib/biblatex/latex/bbx/verbose-inote.bbx
-2022/02/02 | 9759 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
2022/02/02 | 9725 | macros/latex/contrib/biblatex/doc/examples/75-style-verbose-trad2.tex
2022/02/02 | 97120 | systems/texlive/tlnet/archive/talos.r61820.tar.xz
2022/02/02 | 96 | macros/latex/contrib/biblatex/latex/bbx/verbose-note.bbx
@@ -258,13 +1328,13 @@
2022/02/02 | 92 | macros/latex/contrib/biblatex/latex/bbx/numeric-verb.bbx
2022/02/02 | 92 | macros/latex/contrib/biblatex/latex/bbx/numeric-comp.bbx
2022/02/02 | 92433 | macros/latex/contrib/biblatex/latex/biblatex.def
+2022/02/02 | 92288 | fonts/etbb/opentype/ETbb-Italic.otf
2022/02/02 | 91 | macros/latex/contrib/biblatex/latex/bbx/verbose.bbx
2022/02/02 | 9091 | macros/latex/contrib/biblatex/latex/cbx/verbose-trad1.cbx
2022/02/02 | 88905 | macros/latex/contrib/biblatex/doc/examples/22-indexing-subentry-bibtex.pdf
2022/02/02 | 88905 | macros/latex/contrib/biblatex/doc/examples/22-indexing-subentry-biber.pdf
2022/02/02 | 880 | macros/latex/contrib/biblatex/latex/lbx/newzealand.lbx
2022/02/02 | 87 | macros/latex/contrib/biblatex/latex/cbx/reading.cbx
-2022/02/02 | 8798 | macros/latex/contrib/siunitx/siunitx-command.dtx
2022/02/02 | 8784 | macros/latex/contrib/biblatex/latex/cbx/verbose-trad2.cbx
2022/02/02 | 8737 | macros/latex/contrib/biblatex/latex/cbx/authoryear-comp.cbx
2022/02/02 | 8688 | macros/latex/contrib/biblatex/latex/cbx/verbose-note.cbx
@@ -284,6 +1354,7 @@
2022/02/02 | 791 | macros/latex/contrib/biblatex/doc/examples/81-style-draft.tex
2022/02/02 | 783 | macros/latex/contrib/biblatex/doc/examples/15-references-by-type.tex
2022/02/02 | 7801 | macros/latex/contrib/biblatex/latex/cbx/verbose-ibid.cbx
+2022/02/02 | 778298 | fonts/etbb/afm/ETbb-Regular.afm
2022/02/02 | 77664 | systems/texlive/tlnet/archive/spbmark.doc.r61823.tar.xz
2022/02/02 | 7742 | macros/latex/contrib/biblatex/doc/examples/96-dates.tex
2022/02/02 | 7710 | macros/latex/contrib/biblatex/doc/examples/50-style-authoryear.tex
@@ -291,7 +1362,6 @@
2022/02/02 | 757 | macros/latex/contrib/biblatex/doc/examples/42-style-alphabetic-template.tex
2022/02/02 | 7478 | macros/latex/contrib/biblatex/doc/examples/51-style-authoryear-ibid.tex
2022/02/02 | 744 | macros/latex/contrib/biblatex/doc/examples/41-style-alphabetic-verb.tex
-2022/02/02 | 7372 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/02/02 | 7288 | macros/latex/contrib/biblatex/doc/examples/53-style-authoryear-icomp.tex
2022/02/02 | 7002 | macros/latex/contrib/biblatex/doc/examples/71-style-verbose-ibid.tex
2022/02/02 | 7000 | macros/latex/contrib/biblatex/latex/cbx/verbose.cbx
@@ -306,11 +1376,7 @@
2022/02/02 | 6468 | systems/texlive/tlnet/archive/lua-widow-control.r61824.tar.xz
2022/02/02 | 646608 | systems/texlive/tlnet/archive/zref-vario.doc.r61846.tar.xz
2022/02/02 | 64584 | systems/texlive/tlnet/archive/talos.doc.r61820.tar.xz
-2022/02/02 | 64171 | macros/latex/contrib/siunitx/CHANGELOG.md
-2022/02/02 | 639462 | macros/latex/contrib/siunitx/siunitx.pdf
2022/02/02 | 63347 | macros/latex/contrib/biblatex/doc/examples/92-bibliographylists-biber.pdf
-2022/02/02 | 610379 | support/TeX4ht/source/tex4ht-html4.tex
-2022/02/02 | 607585 | macros/latex/contrib/siunitx/siunitx-code.pdf
2022/02/02 | 5952 | systems/texlive/tlnet/archive/proof-at-the-end.r61844.tar.xz
2022/02/02 | 5888 | macros/latex/contrib/biblatex/doc/examples/72-style-verbose-note.tex
2022/02/02 | 5780 | macros/latex/contrib/biblatex/doc/examples/52-style-authoryear-comp.tex
@@ -329,17 +1395,15 @@
2022/02/02 | 5175 | macros/latex/contrib/biblatex/doc/examples/01-introduction.tex
2022/02/02 | 5131 | macros/latex/contrib/biblatex/latex/cbx/authoryear-ibid.cbx
2022/02/02 | 5091 | macros/latex/contrib/biblatex/doc/examples/21-indexing-multiple.tex
-2022/02/02 | 50881 | macros/latex/contrib/siunitx/siunitx-table.dtx
2022/02/02 | 505 | macros/latex/contrib/biblatex/doc/examples/95-customlists.bib
2022/02/02 | 5047 | macros/latex/contrib/biblatex/doc/examples/70-style-verbose.tex
-2022/02/02 | 5029 | macros/latex/contrib/siunitx/siunitx-locale.dtx
2022/02/02 | 498903 | macros/latex/contrib/mathtools/mathtools.pdf
2022/02/02 | 48817 | macros/latex/contrib/biblatex/CHANGES.md
2022/02/02 | 483688 | systems/texlive/tlnet/archive/xcharter.doc.r61837.tar.xz
2022/02/02 | 47849 | macros/latex/contrib/biblatex/latex/lbx/spanish.lbx
2022/02/02 | 474 | macros/latex/contrib/biblatex/latex/lbx/swissgerman.lbx
-2022/02/02 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
2022/02/02 | 4611 | macros/latex/contrib/biblatex/latex/bbx/reading.bbx
+2022/02/02 | 459947 | fonts/etbb/afm/ETbb-Italic.afm
2022/02/02 | 45859 | macros/latex/contrib/biblatex/latex/lbx/russian.lbx
2022/02/02 | 4578 | macros/latex/contrib/biblatex/latex/cbx/numeric.cbx
2022/02/02 | 45731 | macros/latex/contrib/biblatex/latex/lbx/lithuanian.lbx
@@ -364,7 +1428,6 @@
2022/02/02 | 377568 | systems/texlive/tlnet/archive/erewhon.doc.r61835.tar.xz
2022/02/02 | 37452 | macros/latex/contrib/biblatex/latex/lbx/finnish.lbx
2022/02/02 | 3713 | macros/latex/contrib/biblatex/doc/examples/60-style-authortitle.tex
-2022/02/02 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
2022/02/02 | 36721 | macros/latex/contrib/biblatex/latex/lbx/catalan.lbx
2022/02/02 | 3644 | systems/texlive/tlnet/archive/zref-vario.r61846.tar.xz
2022/02/02 | 36088 | macros/latex/contrib/biblatex/latex/lbx/greek.lbx
@@ -374,15 +1437,14 @@
2022/02/02 | 35241 | macros/latex/contrib/biblatex/latex/lbx/french.lbx
2022/02/02 | 3520 | macros/latex/contrib/biblatex/doc/examples/94-labelprefix.tex
2022/02/02 | 35149 | support/texlogsieve/LICENCE.txt
+2022/02/02 | 350806 | fonts/etbb/afm/ETbb-BoldItalic.afm
2022/02/02 | 3454 | macros/latex/contrib/biblatex/latex/cbx/authortitle-ticomp.cbx
2022/02/02 | 34460 | systems/texlive/tlnet/archive/autopuncitems.doc.r61825.tar.xz
2022/02/02 | 3437 | macros/latex/contrib/biblatex/latex/bbx/authortitle.bbx
-2022/02/02 | 34310 | macros/latex/contrib/siunitx/siunitx-print.dtx
2022/02/02 | 341700 | systems/texlive/tlnet/archive/scholax.doc.r61836.tar.xz
2022/02/02 | 33908 | macros/latex/contrib/biblatex/latex/lbx/german.lbx
2022/02/02 | 33871 | macros/latex/contrib/biblatex/latex/lbx/serbianc.lbx
2022/02/02 | 33851 | macros/latex/contrib/biblatex/latex/lbx/czech.lbx
-2022/02/02 | 33799 | macros/latex/contrib/siunitx/siunitx-compound.dtx
2022/02/02 | 33796 | macros/latex/contrib/biblatex/latex/lbx/estonian.lbx
2022/02/02 | 329716 | macros/latex/contrib/mathtools/empheq.pdf
2022/02/02 | 32943 | macros/latex/contrib/biblatex/latex/lbx/slovak.lbx
@@ -394,9 +1456,7 @@
2022/02/02 | 3206 | macros/latex/contrib/biblatex/doc/examples/61-style-authortitle-ibid.tex
2022/02/02 | 32062 | macros/latex/contrib/biblatex/latex/lbx/slovene.lbx
2022/02/02 | 31913 | macros/latex/contrib/biblatex/latex/lbx/turkish.lbx
-2022/02/02 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
2022/02/02 | 317326 | macros/latex/contrib/sillypage.zip
-2022/02/02 | 31668 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
2022/02/02 | 3160 | systems/texlive/tlnet/archive/spbmark.r61823.tar.xz
2022/02/02 | 31486 | macros/latex/contrib/biblatex/latex/lbx/basque.lbx
2022/02/02 | 31451 | macros/latex/contrib/biblatex/latex/lbx/dutch.lbx
@@ -418,7 +1478,6 @@
2022/02/02 | 290007 | macros/latex/contrib/biblatex/doc/examples/60-style-authortitle-biber.pdf
2022/02/02 | 2899 | macros/latex/contrib/biblatex/doc/examples/18-numeric-hybrid.tex
2022/02/02 | 2893 | macros/latex/contrib/biblatex/latex/cbx/authortitle.cbx
-2022/02/02 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
2022/02/02 | 2864 | macros/latex/contrib/mathtools/mathtools.ins
2022/02/02 | 285616 | systems/texlive/tlnet/archive/lua-widow-control.doc.r61824.tar.xz
2022/02/02 | 283555 | macros/latex/contrib/biblatex/doc/examples/03-localization-keys-biber.pdf
@@ -432,7 +1491,6 @@
2022/02/02 | 275259 | macros/latex/contrib/biblatex/doc/examples/60-style-authortitle-bibtex.pdf
2022/02/02 | 274161 | macros/latex/contrib/biblatex/doc/examples/73-style-verbose-inote-biber.pdf
2022/02/02 | 273584 | macros/latex/contrib/biblatex/doc/examples/75-style-verbose-trad2-biber.pdf
-2022/02/02 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
2022/02/02 | 272786 | macros/latex/contrib/biblatex/doc/examples/73-style-verbose-inote-bibtex.pdf
2022/02/02 | 272203 | macros/latex/contrib/biblatex/doc/examples/75-style-verbose-trad2-bibtex.pdf
2022/02/02 | 272059 | macros/latex/contrib/biblatex/doc/examples/71-style-verbose-ibid-biber.pdf
@@ -447,7 +1505,6 @@
2022/02/02 | 266542 | macros/latex/contrib/biblatex/doc/examples/70-style-verbose-bibtex.pdf
2022/02/02 | 26398 | macros/latex/contrib/biblatex/latex/lbx/icelandic.lbx
2022/02/02 | 2635 | macros/latex/contrib/biblatex/doc/examples/64-style-authortitle-terse.tex
-2022/02/02 | 25985 | macros/latex/contrib/siunitx/siunitx-complex.dtx
2022/02/02 | 2585 | macros/latex/contrib/biblatex/doc/examples/66-style-authortitle-ticomp.tex
2022/02/02 | 2580 | macros/latex/contrib/biblatex/doc/examples/80-style-reading.tex
2022/02/02 | 2572 | macros/latex/contrib/biblatex/latex/cbx/numeric-verb.cbx
@@ -459,7 +1516,6 @@
2022/02/02 | 25296 | macros/latex/contrib/biblatex/doc/examples/96-dates-biber.pdf
2022/02/02 | 25288 | systems/texlive/tlnet/archive/pst-node.r61838.tar.xz
2022/02/02 | 2519 | support/texlogsieve/README.md
-2022/02/02 | 2492 | macros/latex/contrib/siunitx/siunitx-code.tex
2022/02/02 | 24647 | macros/latex/contrib/biblatex/latex/lbx/serbian.lbx
2022/02/02 | 244291 | macros/latex/contrib/biblatex/doc/examples/80-style-reading-bibtex.pdf
2022/02/02 | 244291 | macros/latex/contrib/biblatex/doc/examples/80-style-reading-biber.pdf
@@ -484,6 +1540,7 @@
2022/02/02 | 213637 | macros/latex/contrib/biblatex/doc/examples/51-style-authoryear-ibid-biber.pdf
2022/02/02 | 2135600 | systems/texlive/tlnet/archive/xcharter.r61837.tar.xz
2022/02/02 | 2126 | macros/latex/contrib/biblatex/latex/blx-mcite.def
+2022/02/02 | 212491 | fonts/etbb/afm/ETbb-Bold.afm
2022/02/02 | 208740 | systems/texlive/tlnet/archive/lwarp.r61842.tar.xz
2022/02/02 | 207854 | macros/latex/contrib/biblatex/doc/examples/02-annotations-biber.pdf
2022/02/02 | 207609 | macros/latex/contrib/biblatex/doc/examples/40-style-alphabetic-biber.pdf
@@ -494,7 +1551,6 @@
2022/02/02 | 20224 | systems/texlive/tlnet/archive/dtxdescribe.source.r61840.tar.xz
2022/02/02 | 1994 | macros/latex/contrib/biblatex/doc/examples/10-references-per-section.tex
2022/02/02 | 199318 | macros/latex/contrib/biblatex/doc/examples/40-style-alphabetic-bibtex.pdf
-2022/02/02 | 19900 | macros/latex/contrib/siunitx/siunitx.dtx
2022/02/02 | 1988 | macros/latex/contrib/biblatex/doc/examples/40-style-alphabetic.tex
2022/02/02 | 195724 | systems/texlive/tlnet/archive/mindflow.doc.r61843.tar.xz
2022/02/02 | 195323 | macros/latex/contrib/biblatex/doc/examples/64-style-authortitle-terse-bibtex.pdf
@@ -507,7 +1563,6 @@
2022/02/02 | 18636 | macros/latex/contrib/sillypage/sillywalk-map.pdf
2022/02/02 | 183623 | macros/latex/contrib/biblatex/doc/examples/13-references-by-keyword-biber.pdf
2022/02/02 | 183127 | macros/latex/contrib/biblatex/doc/examples/14-references-by-category-biber.pdf
-2022/02/02 | 181926 | support/TeX4ht/source/ChangeLog
2022/02/02 | 1818 | macros/latex/contrib/biblatex/latex/bbx/numeric.bbx
2022/02/02 | 181606 | macros/latex/contrib/biblatex/doc/examples/32-style-numeric-verb-bibtex.pdf
2022/02/02 | 181606 | macros/latex/contrib/biblatex/doc/examples/32-style-numeric-verb-biber.pdf
@@ -522,7 +1577,6 @@
2022/02/02 | 175130 | macros/latex/contrib/biblatex/doc/examples/13-references-by-keyword-bibtex.pdf
2022/02/02 | 174634 | macros/latex/contrib/biblatex/doc/examples/14-references-by-category-bibtex.pdf
2022/02/02 | 1731 | macros/latex/contrib/biblatex/latex/bbx/alphabetic.bbx
-2022/02/02 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
2022/02/02 | 171031 | macros/latex/contrib/biblatex/doc/examples/21-indexing-multiple-bibtex.pdf
2022/02/02 | 169 | macros/latex/contrib/biblatex/latex/lbx/american.lbx
2022/02/02 | 169812 | macros/latex/contrib/biblatex/doc/examples/20-indexing-single-bibtex.pdf
@@ -530,7 +1584,6 @@
2022/02/02 | 167962 | macros/latex/contrib/biblatex/doc/examples/01-introduction-bibtex.pdf
2022/02/02 | 167962 | macros/latex/contrib/biblatex/doc/examples/01-introduction-biber.pdf
2022/02/02 | 1674 | macros/latex/contrib/mathtools/README.md
-2022/02/02 | 16709 | macros/latex/contrib/siunitx/siunitx-angle.dtx
2022/02/02 | 16647 | macros/latex/contrib/biblatex/doc/examples/97-annotations-biber.pdf
2022/02/02 | 1644696 | systems/texlive/tlnet/archive/csvsimple.doc.r61839.tar.xz
2022/02/02 | 163 | macros/latex/contrib/biblatex/latex/lbx/canadian.lbx
@@ -547,23 +1600,20 @@
2022/02/02 | 156396 | support/texlogsieve/texlogsieve
2022/02/02 | 1549 | macros/latex/contrib/biblatex/doc/examples/92-bibliographylists.tex
2022/02/02 | 1546 | macros/latex/contrib/biblatex/doc/examples/32-style-numeric-verb.tex
-2022/02/02 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
2022/02/02 | 149733 | macros/latex/contrib/biblatex/doc/examples/81-style-draft-bibtex.pdf
2022/02/02 | 149733 | macros/latex/contrib/biblatex/doc/examples/81-style-draft-biber.pdf
2022/02/02 | 149679 | macros/latex/contrib/biblatex/doc/examples/82-style-debug-biber.pdf
2022/02/02 | 148860 | macros/latex/contrib/biblatex/doc/examples/82-style-debug-bibtex.pdf
-2022/02/02 | 148539 | macros/latex/contrib/siunitx/siunitx.tex
2022/02/02 | 147776 | macros/latex/contrib/biblatex/doc/examples/66-style-authortitle-ticomp-bibtex.pdf
2022/02/02 | 147776 | macros/latex/contrib/biblatex/doc/examples/66-style-authortitle-ticomp-biber.pdf
2022/02/02 | 147304 | macros/latex/contrib/biblatex/doc/examples/52-style-authoryear-comp-bibtex.pdf
2022/02/02 | 147304 | macros/latex/contrib/biblatex/doc/examples/52-style-authoryear-comp-biber.pdf
-2022/02/02 | 1462723 | install/macros/latex/contrib/siunitx.tds.zip
2022/02/02 | 143176 | macros/latex/contrib/biblatex/doc/examples/65-style-authortitle-tcomp-bibtex.pdf
2022/02/02 | 143176 | macros/latex/contrib/biblatex/doc/examples/65-style-authortitle-tcomp-biber.pdf
-2022/02/02 | 1422416 | macros/latex/contrib/siunitx.zip
2022/02/02 | 141 | macros/latex/contrib/sillypage/sillypage-example.tex
2022/02/02 | 14153 | macros/latex/contrib/biblatex/doc/examples/74-style-verbose-trad1.tex
2022/02/02 | 1409 | macros/latex/contrib/biblatex/doc/examples/19-alphabetic-prefixed.tex
+2022/02/02 | 140862 | fonts/etbb/type1/ETbb-Regular.pfb
2022/02/02 | 13919 | macros/latex/contrib/biblatex/latex/blx-compat.def
2022/02/02 | 1346 | macros/latex/contrib/biblatex/doc/examples/65-style-authortitle-tcomp.tex
2022/02/02 | 1340 | macros/latex/contrib/biblatex/doc/examples/12-references-by-segment.tex
@@ -578,18 +1628,21 @@
2022/02/02 | 1284 | macros/latex/contrib/biblatex/latex/cbx/authortitle-terse.cbx
2022/02/02 | 127 | macros/latex/contrib/biblatex/latex/lbx/UKenglish.lbx
2022/02/02 | 127 | macros/latex/contrib/biblatex/latex/lbx/slovenian.lbx
+2022/02/02 | 127111 | fonts/etbb/type1/ETbb-Bold.pfb
2022/02/02 | 126042 | macros/latex/contrib/biblatex/doc/examples/62-style-authortitle-comp-bibtex.pdf
2022/02/02 | 126042 | macros/latex/contrib/biblatex/doc/examples/62-style-authortitle-comp-biber.pdf
2022/02/02 | 125 | macros/latex/contrib/biblatex/latex/lbx/hungarian.lbx
2022/02/02 | 12400 | macros/latex/contrib/biblatex/doc/examples/93-nameparts.tex
2022/02/02 | 12296 | macros/latex/contrib/biblatex/doc/examples/95-customlists-biber.pdf
-2022/02/02 | 122028 | macros/latex/contrib/siunitx/siunitx-number.dtx
+2022/02/02 | 121056 | fonts/etbb/type1/ETbb-BoldItalic.pfb
2022/02/02 | 1194141 | install/macros/latex/contrib/mathtools.tds.zip
2022/02/02 | 119269 | macros/latex/contrib/biblatex/doc/examples/15-references-by-type-bibtex.pdf
2022/02/02 | 119269 | macros/latex/contrib/biblatex/doc/examples/15-references-by-type-biber.pdf
2022/02/02 | 11840 | systems/texlive/tlnet/archive/lua-widow-control.source.r61824.tar.xz
2022/02/02 | 1169208 | macros/latex/contrib/mathtools.zip
+2022/02/02 | 116836 | fonts/etbb/opentype/ETbb-Regular.otf
2022/02/02 | 1160 | macros/latex/contrib/biblatex/latex/bbx/draft.bbx
+2022/02/02 | 114572 | fonts/etbb/type1/ETbb-Italic.pfb
2022/02/02 | 114073 | support/texlogsieve.zip
2022/02/02 | 11324 | systems/texlive/tlnet/archive/csvsimple.r61839.tar.xz
2022/02/02 | 112916 | macros/latex/contrib/biblatex/doc/examples/18-numeric-hybrid-bibtex.pdf
@@ -602,12 +1655,12 @@
2022/02/02 | 1053296 | macros/latex/contrib/biblatex/doc/biblatex.tex
2022/02/02 | 10374 | macros/latex/contrib/biblatex/latex/cbx/numeric-comp.cbx
2022/02/02 | 103728 | macros/latex/contrib/sillypage/sillypage-example.pdf
+2022/02/02 | 103300 | fonts/etbb/opentype/ETbb-Bold.otf
2022/02/02 | 102 | macros/latex/contrib/biblatex/latex/bbx/authortitle-ticomp.bbx
2022/02/02 | 102 | macros/latex/contrib/biblatex/doc/examples/93-nameparts.dbx
2022/02/02 | 101 | macros/latex/contrib/biblatex/latex/bbx/authortitle-terse.bbx
2022/02/02 | 101 | macros/latex/contrib/biblatex/latex/bbx/authortitle-tcomp.bbx
2022/02/02 | 101 | macros/latex/contrib/biblatex/latex/bbx/authortitle-icomp.bbx
-2022/02/02 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
2022/02/02 | 101002 | macros/latex/contrib/biblatex/doc/examples/42-style-alphabetic-template-bibtex.pdf
2022/02/02 | 101002 | macros/latex/contrib/biblatex/doc/examples/42-style-alphabetic-template-biber.pdf
2022/02/02 | 100 | macros/latex/contrib/biblatex/latex/bbx/authortitle-ibid.bbx
@@ -698,7 +1751,6 @@
2022/01/31 | 8902 | fonts/cochineal/README
2022/01/31 | 86 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Release
2022/01/31 | 85796 | systems/texlive/tlnet/archive/markdown.source.r61807.tar.xz
-2022/01/31 | 8370 | macros/luatex/generic/lua-widow-control/lwc-documentation.mkxl
2022/01/31 | 80233 | macros/latex/contrib/spbmark.zip
2022/01/31 | 783 | systems/win32/miktex/setup/rpm/fedora/35/repodata/0a6f96eb9805e0bc590b4f0dd2a5639d4d65925d42601c8c173bf601f6e79baa-other.sqlite.bz2
2022/01/31 | 76932 | fonts/greek/talos/Talos-Regular.otf
@@ -741,8 +1793,6 @@
2022/01/31 | 40928 | systems/texlive/tlnet/archive/markdown.r61807.tar.xz
2022/01/31 | 405 | fonts/greek/talos/README
2022/01/31 | 39192 | macros/luatex/latex/autopuncitems.zip
-2022/01/31 | 3795 | macros/luatex/generic/lua-widow-control/lwc-sample.tex
-2022/01/31 | 3753532 | macros/latex/contrib/animate/animate.pdf
2022/01/31 | 3745420 | systems/texlive/tlnet/archive/bidi.doc.r61814.tar.xz
2022/01/31 | 3487 | graphics/pstricks/contrib/pst-node/Changes
2022/01/31 | 34601758 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_22.1-bionic1_amd64.deb
@@ -751,13 +1801,8 @@
2022/01/31 | 33678606 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_22.1-buster1_amd64.deb
2022/01/31 | 3302 | systems/win32/miktex/setup/rpm/fedora/33/repodata/94008196f6acbd545ca7acfbf751a259856729aaeb66603f1b763d4fc83ae048-primary.xml.gz
2022/01/31 | 3233 | fonts/greek/talos/talos-doc.tex
-2022/01/31 | 3221586 | install/macros/latex/contrib/animate.tds.zip
-2022/01/31 | 3219313 | macros/latex/contrib/animate.zip
2022/01/31 | 31456 | systems/win32/miktex/setup/rpm/fedora/33/repodata/67588bddd2ecdbfa1a21037aa3b031b97e6a5c48e64234084196db675d223b67-filelists.sqlite.bz2
-2022/01/31 | 313200 | macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
2022/01/31 | 3111 | graphics/pstricks/contrib/pst-node/doc/pst-node-doc.bib
-2022/01/31 | 310677 | install/macros/luatex/generic/lua-widow-control.tds.zip
-2022/01/31 | 307713 | macros/luatex/generic/lua-widow-control.zip
2022/01/31 | 3048 | systems/texlive/tlnet/archive/haranoaji-extra.doc.r61808.tar.xz
2022/01/31 | 3036 | systems/texlive/tlnet/archive/haranoaji.doc.r61809.tar.xz
2022/01/31 | 3028 | systems/win32/miktex/setup/rpm/fedora/34/repodata/e06f4dc3eb4069b93439a7b8ecb7416b48c6df35a3ecde9ac186bd35b5a5cbd5-primary.xml.gz
@@ -776,12 +1821,10 @@
2022/01/31 | 25171 | systems/win32/miktex/setup/rpm/fedora/34/repodata/c56038b492c1dd8a2e983aff732a3e3879a7664b38fc5641991e802bbebc8ee7-filelists.sqlite.bz2
2022/01/31 | 25147 | systems/win32/miktex/setup/rpm/fedora/33/repodata/97246cb049f8c2ceb5a333dcfb76c7fff75620d316b19833970760e70deea52f-primary.sqlite.bz2
2022/01/31 | 2444 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.bz2
-2022/01/31 | 2431 | macros/luatex/generic/lua-widow-control/README.md
2022/01/31 | 24300616 | systems/win32/miktex/setup/rpm/opensuse/15/miktex-22.1-1.x86_64.rpm
2022/01/31 | 2356 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages.bz2
2022/01/31 | 23426855 | systems/win32/miktex/setup/rpm/fedora/35/miktex-22.1-1.fc35.x86_64.rpm
2022/01/31 | 2268 | systems/texlive/tlnet/archive/secnum.r61813.tar.xz
-2022/01/31 | 22285 | macros/luatex/generic/lua-widow-control/lwc-documentation.tex
2022/01/31 | 2187 | systems/win32/miktex/setup/rpm/fedora/35/repodata/e26ea2179d9db66cdc52ba1ac6d20c15fc35a0cb9497233e5de4a899b5237bc0-primary.xml.gz
2022/01/31 | 21608 | systems/win32/miktex/setup/rpm/fedora/34/repodata/b2f74ca028d4f1971e704e96bed8604ca989af83038d52c581c3ce4daa4cd197-primary.sqlite.bz2
2022/01/31 | 21484368 | systems/win32/miktex/setup/rpm/fedora/34/miktex-22.1-1.fc34.x86_64.rpm
@@ -792,12 +1835,10 @@
2022/01/31 | 2034 | systems/win32/miktex/setup/deb/dists/bionic/InRelease
2022/01/31 | 2030 | systems/win32/miktex/setup/deb/dists/focal/InRelease
2022/01/31 | 2001 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.gz
-2022/01/31 | 1989 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
2022/01/31 | 1980 | systems/win32/miktex/setup/rpm/fedora/28/repodata/95f5acd2916e42275db5c84fa74b6b8c29432e030dbc431ae490e3989933dfb1-other.sqlite.bz2
2022/01/31 | 1978 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/d02c5ff6681e2a93475872fb96214063d76ce17495be518add01e18f4f996e31-other.sqlite.bz2
2022/01/31 | 1957 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages.gz
2022/01/31 | 19400 | fonts/greek/talos/Talos-Bold.otf
-2022/01/31 | 1884 | macros/luatex/generic/lua-widow-control/lua-widow-control.sty
2022/01/31 | 184448 | systems/texlive/tlnet/archive/tex-vpat.doc.r61810.tar.xz
2022/01/31 | 18420 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.tex
2022/01/31 | 177740 | fonts/greek/talos.zip
@@ -808,21 +1849,16 @@
2022/01/31 | 1674 | systems/win32/miktex/setup/deb/dists/bionic/universe/Contents-amd64.gz
2022/01/31 | 16679 | fonts/cochineal/tex/cochineal.sty
2022/01/31 | 16166 | systems/win32/miktex/setup/rpm/fedora/34/repodata/27d237af2e7279838fdc171e6fa89ecf2fb48e93f79cfa0cc8233d939ca43955-filelists.xml.gz
-2022/01/31 | 1579 | macros/luatex/generic/lua-widow-control/lua-widow-control.tex
2022/01/31 | 15602 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages
2022/01/31 | 153 | fonts/scholax/tex/newtx-ncf-subs.tex
2022/01/31 | 1512 | systems/win32/miktex/setup/deb/dists/buster/Release
2022/01/31 | 1512 | systems/win32/miktex/setup/deb/dists/bionic/Release
2022/01/31 | 1508 | systems/win32/miktex/setup/deb/dists/focal/Release
-2022/01/31 | 1492 | macros/luatex/generic/lua-widow-control/lwc-documentation.bib
2022/01/31 | 1481 | graphics/pstricks/contrib/pst-node/latex/pst-node.sty
2022/01/31 | 14760 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages
-2022/01/31 | 139076 | macros/latex/contrib/animate/animate.sty
-2022/01/31 | 13566 | macros/luatex/generic/lua-widow-control/lua-widow-control.lua
2022/01/31 | 13535 | macros/latex/contrib/spbmark/spbmark.sty
2022/01/31 | 13425 | fonts/xcharter/README
2022/01/31 | 134240 | systems/texlive/tlnet/archive/bidi.source.r61814.tar.xz
-2022/01/31 | 12742 | macros/latex/contrib/animate/ChangeLog
2022/01/31 | 12029 | graphics/pstricks/contrib/pst-node/tex/pst-node97.tex
2022/01/31 | 1201 | systems/win32/miktex/setup/rpm/fedora/33/repodata/061cd3abfd2f242b7a92ec4be2fd29ee381296f49ee96cb14a4fc32614c46eac-other.sqlite.bz2
2022/01/31 | 11980 | macros/latex/contrib/spbmark/spbmark.tex
@@ -838,16 +1874,11 @@
2022/01/31 | 1000 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/e27746a01403dbb519557b1ca939a00f9a059eb7f6f73ac3eda76abc6b994311-other.xml.gz
2022/01/30 | 9800 | systems/texlive/tlnet/archive/uptex-base.r61795.tar.xz
2022/01/30 | 964676 | systems/texlive/tlnet/archive/jmlr.doc.r61793.tar.xz
-2022/01/30 | 9428 | systems/texlive/tlnet/archive/fnpct.r61800.tar.xz
2022/01/30 | 8996 | info/tex-vpat/texlive-vpat.css
-2022/01/30 | 895961 | macros/xetex/latex/bidi/bidi.dtx
2022/01/30 | 8868 | systems/texlive/tlnet/archive/elements.r61792.tar.xz
-2022/01/30 | 761651 | macros/xetex/latex/bidi/gull.jpg
2022/01/30 | 75 | macros/generic/markdown/examples/scientists.csv
-2022/01/30 | 757400 | macros/xetex/latex/xepersian/xepersian.pdf
2022/01/30 | 743629 | macros/generic/markdown/markdown.pdf
2022/01/30 | 7397 | macros/luatex/latex/autopuncitems/autopuncitems.tex
-2022/01/30 | 71647 | macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
2022/01/30 | 691752 | macros/latex/contrib/clistmap/clistmap.pdf
2022/01/30 | 676711 | macros/latex/contrib/clistmap.zip
2022/01/30 | 6617328 | fonts/haranoaji/HaranoAjiMincho-Bold.otf
@@ -859,17 +1890,12 @@
2022/01/30 | 6354304 | fonts/haranoaji/HaranoAjiMincho-Regular.otf
2022/01/30 | 6275436 | fonts/haranoaji/HaranoAjiMincho-Light.otf
2022/01/30 | 6156 | systems/texlive/tlnet/archive/erw-l3.source.r61799.tar.xz
-2022/01/30 | 6101 | macros/xetex/latex/bidi/bidi-doc-latex-pkgsupport.ltx
-2022/01/30 | 5939 | macros/xetex/latex/bidi/bidi-doc-plain-basics.ltx
2022/01/30 | 586131 | macros/generic/markdown/markdown.dtx
2022/01/30 | 5811944 | fonts/haranoaji-extra/HaranoAjiMincho-ExtraLight.otf
2022/01/30 | 5552 | systems/texlive/tlnet/archive/expkv-def.r61796.tar.xz
2022/01/30 | 547340 | systems/texlive/tlnet/archive/librebodoni.r61794.tar.xz
-2022/01/30 | 5453 | macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx
-2022/01/30 | 534 | macros/xetex/latex/bidi/bidi-doc.ltx
2022/01/30 | 52231 | macros/latex/contrib/clistmap/clistmap.dtx
2022/01/30 | 4992784 | fonts/haranoaji/HaranoAjiGothic-Heavy.otf
-2022/01/30 | 495708 | systems/texlive/tlnet/archive/fnpct.doc.r61800.tar.xz
2022/01/30 | 4859130 | fonts/newpx.zip
2022/01/30 | 483368 | systems/texlive/tlnet/archive/erw-l3.doc.r61799.tar.xz
2022/01/30 | 4796608 | fonts/haranoaji/HaranoAjiGothic-Bold.otf
@@ -877,33 +1903,23 @@
2022/01/30 | 4671364 | fonts/haranoaji/HaranoAjiGothic-Regular.otf
2022/01/30 | 4667296 | fonts/haranoaji-extra/HaranoAjiGothic-Normal.otf
2022/01/30 | 4654460 | fonts/haranoaji-extra/HaranoAjiGothic-Light.otf
-2022/01/30 | 454 | macros/xetex/latex/xepersian/xepersian-doc.ltx
-2022/01/30 | 4547 | macros/xetex/latex/bidi/bidi-doc-latex-pkgs.ltx
2022/01/30 | 4530 | macros/generic/markdown/markdown.css
-2022/01/30 | 4497 | macros/xetex/latex/bidi/bidi-doc-latex-programming.ltx
2022/01/30 | 449773 | macros/latex/contrib/secnum.zip
2022/01/30 | 4485 | macros/generic/markdown/docstrip.cfg
2022/01/30 | 4375160 | fonts/haranoaji-extra/HaranoAjiGothic-ExtraLight.otf
-2022/01/30 | 4306512 | install/macros/xetex/latex/bidi.tds.zip
2022/01/30 | 4301 | fonts/haranoaji/LICENSE
2022/01/30 | 4301 | fonts/haranoaji-extra/LICENSE
2022/01/30 | 42396 | systems/texlive/tlnet/archive/jmlr.source.r61793.tar.xz
-2022/01/30 | 4149 | macros/xetex/latex/xepersian/xepersian-doc-preamble.ltx
2022/01/30 | 4144 | macros/luatex/latex/autopuncitems/autopuncitems.lua
2022/01/30 | 413276 | systems/texlive/tlnet/archive/elements.doc.r61792.tar.xz
2022/01/30 | 413008 | systems/texlive/tlnet/archive/expkv-def.doc.r61796.tar.xz
-2022/01/30 | 410 | macros/xetex/latex/xepersian/xepersian-doc-boolean.ltx
2022/01/30 | 40360 | fonts/greek/talos/Talos-Italic.otf
-2022/01/30 | 3949235 | macros/xetex/latex/bidi.zip
2022/01/30 | 3944 | systems/texlive/tlnet/archive/erw-l3.r61799.tar.xz
-2022/01/30 | 38725 | macros/xetex/latex/xepersian/ftxe-0.12.py
2022/01/30 | 38603 | macros/luatex/latex/autopuncitems/autopuncitems.pdf
-2022/01/30 | 3596 | macros/xetex/latex/bidi/bidi-doc-preamble.ltx
2022/01/30 | 358 | macros/latex/contrib/clistmap/README.md
2022/01/30 | 35887 | fonts/newpx/map/newpx.map
2022/01/30 | 35232 | systems/texlive/tlnet/archive/pdfpages.source.r61801.tar.xz
2022/01/30 | 3340 | macros/luatex/latex/autopuncitems/autopuncitems.sty
-2022/01/30 | 333811 | macros/xetex/latex/xepersian/xepersian.dtx
2022/01/30 | 32828055 | fonts/haranoaji-extra.zip
2022/01/30 | 32682258 | fonts/haranoaji.zip
2022/01/30 | 322684 | systems/texlive/tlnet/archive/pdfpages.doc.r61801.tar.xz
@@ -912,70 +1928,40 @@
2022/01/30 | 3193 | fonts/haranoaji-extra/README
2022/01/30 | 31814 | info/tex-vpat/texlive-vpat.tex
2022/01/30 | 3129 | macros/generic/markdown/examples/example.md
-2022/01/30 | 3119340 | macros/xetex/latex/bidi/bidi.pdf
-2022/01/30 | 3099 | macros/xetex/latex/xepersian/xepersian-doc-captions.ltx
-2022/01/30 | 2936 | macros/xetex/latex/bidi/bidi-bibitem.pdf
2022/01/30 | 286482 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma
-2022/01/30 | 25947 | macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
-2022/01/30 | 2551 | macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
2022/01/30 | 254631 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma
-2022/01/30 | 242527 | macros/xetex/latex/xepersian/xepersian-doc.pdf
-2022/01/30 | 23945 | macros/xetex/latex/bidi/bidi-doc-latex-basics.ltx
2022/01/30 | 22371 | macros/generic/markdown/libraries/markdown-tinyyaml.lua
2022/01/30 | 2184 | systems/texlive/tlnet/archive/crefthe.r61797.tar.xz
2022/01/30 | 2126 | macros/latex/contrib/clistmap/clistmap.ins
2022/01/30 | 20623 | fonts/newpx/README
2022/01/30 | 20192 | systems/texlive/tlnet/archive/librebodoni.doc.r61794.tar.xz
-2022/01/30 | 1961 | macros/xetex/latex/bidi/bidi-doc-plain-programming.ltx
2022/01/30 | 192286 | info/tex-vpat.zip
2022/01/30 | 18824 | systems/texlive/tlnet/archive/expkv-def.source.r61796.tar.xz
-2022/01/30 | 18304 | macros/xetex/latex/xepersian/img/ireland.jpg
-2022/01/30 | 1805 | macros/xetex/latex/bidi/bidi-doc-title.ltx
-2022/01/30 | 180395 | macros/xetex/latex/bidi/bidi-doc.pdf
-2022/01/30 | 1800 | macros/xetex/latex/xepersian/xepersian-doc-title.ltx
2022/01/30 | 17615 | fonts/newpx/tex/newpxtext.sty
2022/01/30 | 17520 | systems/texlive/tlnet/archive/jmlr.r61793.tar.xz
-2022/01/30 | 1693 | macros/xetex/latex/bidi/picture.jpg
2022/01/30 | 168389 | info/tex-vpat/texlive-vpat.pdf
2022/01/30 | 1640 | macros/generic/markdown/examples/context-mkiv.tex
2022/01/30 | 16226 | macros/generic/markdown/README.md
-2022/01/30 | 15976 | macros/xetex/latex/xepersian/dkun-0.3.py
2022/01/30 | 159756 | systems/texlive/tlnet/archive/uptex-base.doc.r61795.tar.xz
2022/01/30 | 158684 | info/tex-vpat/texlive-vpat.html
-2022/01/30 | 15867 | macros/xetex/latex/xepersian/dkun-0.4.py
2022/01/30 | 1534153 | support/TeX4ht/source/tex4ht-fonts-noncjk.tex
2022/01/30 | 1499199 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/01/30 | 14616 | macros/xetex/latex/xepersian/img/weather/rain.jpg
2022/01/30 | 1449 | macros/generic/markdown/examples/context-mkii.tex
2022/01/30 | 140951 | macros/generic/markdown/markdown.png
2022/01/30 | 14012 | systems/texlive/tlnet/archive/pdfpages.r61801.tar.xz
-2022/01/30 | 1382 | macros/xetex/latex/bidi/bidi-doc-intro.ltx
-2022/01/30 | 13804 | macros/xetex/latex/xepersian/undk-0.6.py
2022/01/30 | 1355248 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma
2022/01/30 | 1333 | macros/generic/markdown/markdown.ins
-2022/01/30 | 13088 | macros/xetex/latex/xepersian/img/weather/clouds.jpg
-2022/01/30 | 1272164 | install/macros/xetex/latex/xepersian.tds.zip
-2022/01/30 | 12348 | macros/xetex/latex/xepersian/unldk-0.2.py
2022/01/30 | 1205 | macros/generic/markdown/examples/latex.tex
2022/01/30 | 1191 | macros/luatex/latex/autopuncitems/README.md
2022/01/30 | 117728 | systems/texlive/tlnet/archive/crefthe.doc.r61797.tar.xz
-2022/01/30 | 1116 | macros/xetex/latex/xepersian/README
-2022/01/30 | 1112225 | macros/xetex/latex/xepersian.zip
2022/01/30 | 1096758 | install/macros/generic/markdown.tds.zip
-2022/01/30 | 10896 | macros/xetex/latex/xepersian/img/weather/sun.jpg
-2022/01/30 | 1053 | macros/xetex/latex/bidi/README
2022/01/30 | 1038473 | macros/generic/markdown.zip
-2022/01/29 | 9988 | fonts/cochineal/tfm/Cochineal-Roman-tosf-ot2.tfm
-2022/01/29 | 9988 | fonts/cochineal/tfm/Cochineal-Roman-tlf-ot2.tfm
2022/01/29 | 99690 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma
-2022/01/29 | 9928 | fonts/cochineal/tfm/Cochineal-Bold-lf-sc-ot1.tfm
2022/01/29 | 9924 | fonts/cochineal/tfm/Cochineal-Italic-tlf-ot1.tfm
2022/01/29 | 99103 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma
-2022/01/29 | 9904 | fonts/cochineal/tfm/Cochineal-Bold-tlf-sc-ot1.tfm
2022/01/29 | 9872 | fonts/cochineal/tfm/Cochineal-Italic-lf-ot1.tfm
2022/01/29 | 9856 | fonts/cochineal/tfm/Cochineal-Italic-osf-ot1.tfm
2022/01/29 | 9836 | fonts/cochineal/tfm/Cochineal-Italic-tosf-ot1.tfm
-2022/01/29 | 98330432 | systems/win32/TLW64/tl-win64.zip
2022/01/29 | 9776 | fonts/cochineal/tfm/Cochineal-Italic-tlf-swash-ot1.tfm
2022/01/29 | 9728 | fonts/cochineal/tfm/Cochineal-Italic-lf-swash-ot1.tfm
2022/01/29 | 97270 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma
@@ -988,18 +1974,14 @@
2022/01/29 | 960189 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma
2022/01/29 | 95475 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma
2022/01/29 | 95333 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/01/29 | 9468 | fonts/cochineal/tfm/Cochineal-Bold-osf-sc-ot1.tfm
-2022/01/29 | 9440 | fonts/cochineal/tfm/Cochineal-Bold-tosf-sc-ot1.tfm
2022/01/29 | 9440 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-ot1.tfm
2022/01/29 | 9400 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-ot1.tfm
2022/01/29 | 9400 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-ot1.tfm
2022/01/29 | 93942 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma
-2022/01/29 | 9388 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-ot1.tfm
2022/01/29 | 9352 | fonts/cochineal/tfm/Cochineal-Roman-lf-sc-ot1.tfm
2022/01/29 | 9316 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-swash-ot1.tfm
2022/01/29 | 9276 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-swash-ot1.tfm
2022/01/29 | 9268 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-swash-ot1.tfm
-2022/01/29 | 9264 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-swash-ot1.tfm
2022/01/29 | 924 | fonts/cochineal/vf/Cochineal-Roman-ts1.vf
2022/01/29 | 92038 | language/japanese/uptex-base/samples/adobe-gb-utf8.tex
2022/01/29 | 916 | fonts/cochineal/vf/Cochineal-Italic-ts1.vf
@@ -1014,7 +1996,6 @@
2022/01/29 | 8960 | fonts/cochineal/tfm/Cochineal-Italic-osf-sc-ot1.tfm
2022/01/29 | 8936 | fonts/cochineal/tfm/Cochineal-Italic-tosf-sc-ot1.tfm
2022/01/29 | 88105 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma
-2022/01/29 | 876 | fonts/cochineal/vf/Cochineal-BoldItalic-tosf-sc-ot1.vf
2022/01/29 | 876 | fonts/cochineal/vf/Cochineal-BoldItalic-tlf-sc-ot1.vf
2022/01/29 | 876 | fonts/cochineal/vf/Cochineal-BoldItalic-osf-sc-ot1.vf
2022/01/29 | 8753 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma
@@ -1029,10 +2010,6 @@
2022/01/29 | 868 | fonts/cochineal/vf/Cochineal-Roman-osf-sc-ot1.vf
2022/01/29 | 868 | fonts/cochineal/vf/Cochineal-Roman-lf-sc-ot1.vf
2022/01/29 | 868 | fonts/cochineal/vf/Cochineal-Italic-lf-sc-ot1.vf
-2022/01/29 | 868 | fonts/cochineal/vf/Cochineal-Bold-tosf-sc-ot1.vf
-2022/01/29 | 868 | fonts/cochineal/vf/Cochineal-Bold-tlf-sc-ot1.vf
-2022/01/29 | 868 | fonts/cochineal/vf/Cochineal-Bold-osf-sc-ot1.vf
-2022/01/29 | 868 | fonts/cochineal/vf/Cochineal-Bold-lf-sc-ot1.vf
2022/01/29 | 86723 | macros/generic/expkv-def/expkv-def.dtx
2022/01/29 | 8660 | fonts/cochineal/tfm/Cochineal-Italic-osf-th-ot1.tfm
2022/01/29 | 8660 | fonts/cochineal/tfm/Cochineal-Italic-lf-th-ot1.tfm
@@ -1083,21 +2060,13 @@
2022/01/29 | 64632 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma
2022/01/29 | 64543 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma
2022/01/29 | 64495 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma
-2022/01/29 | 64180 | fonts/cochineal/tfm/Cochineal-Bold-lf-t1.tfm
-2022/01/29 | 64156 | fonts/cochineal/tfm/Cochineal-Bold-tlf-t1.tfm
2022/01/29 | 63729 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma
-2022/01/29 | 63416 | fonts/cochineal/tfm/Cochineal-Bold-lf-swash-t1.tfm
-2022/01/29 | 63392 | fonts/cochineal/tfm/Cochineal-Bold-tlf-swash-t1.tfm
2022/01/29 | 63316 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma
2022/01/29 | 633161 | macros/latex/contrib/jmlr/jmlr.pdf
2022/01/29 | 630677 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/01/29 | 62928 | fonts/cochineal/tfm/Cochineal-Bold-osf-t1.tfm
2022/01/29 | 628945 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma
-2022/01/29 | 62860 | fonts/cochineal/tfm/Cochineal-Bold-tosf-t1.tfm
2022/01/29 | 62694 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/01/29 | 62417 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/01/29 | 62164 | fonts/cochineal/tfm/Cochineal-Bold-osf-swash-t1.tfm
-2022/01/29 | 62096 | fonts/cochineal/tfm/Cochineal-Bold-tosf-swash-t1.tfm
2022/01/29 | 61 | language/japanese/uptex-base/uptex.ini
2022/01/29 | 6115 | language/japanese/uptex-base/samples/bkmk-jis.tex
2022/01/29 | 598800 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma
@@ -1133,13 +2102,10 @@
2022/01/29 | 532668 | systems/win32/miktex/doc/miktex.pdf
2022/01/29 | 531039 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma
2022/01/29 | 528139 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/01/29 | 52576 | fonts/cochineal/tfm/Cochineal-Bold-lf-sc-t1.tfm
-2022/01/29 | 52552 | fonts/cochineal/tfm/Cochineal-Bold-tlf-sc-t1.tfm
2022/01/29 | 52448 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma
2022/01/29 | 52424 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-t1.tfm
2022/01/29 | 52376 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-t1.tfm
2022/01/29 | 52376 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-t1.tfm
-2022/01/29 | 52368 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-t1.tfm
2022/01/29 | 52348 | systems/texlive/tlnet/archive/bangorcsthesis.r61770.tar.xz
2022/01/29 | 52305 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma
2022/01/29 | 5212 | language/japanese/uptex-base/samples/otfsmpl-uplatex.tex
@@ -1147,11 +2113,8 @@
2022/01/29 | 52028 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-swash-t1.tfm
2022/01/29 | 51980 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-swash-t1.tfm
2022/01/29 | 51980 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-swash-t1.tfm
-2022/01/29 | 51972 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-swash-t1.tfm
2022/01/29 | 51558 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma
2022/01/29 | 51500 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma
-2022/01/29 | 51296 | fonts/cochineal/tfm/Cochineal-Bold-osf-sc-t1.tfm
-2022/01/29 | 51268 | fonts/cochineal/tfm/Cochineal-Bold-tosf-sc-t1.tfm
2022/01/29 | 51232 | fonts/cochineal/tfm/Cochineal-Italic-tlf-t1.tfm
2022/01/29 | 51116 | fonts/cochineal/tfm/Cochineal-Italic-lf-t1.tfm
2022/01/29 | 51114 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma
@@ -1184,7 +2147,6 @@
2022/01/29 | 46592 | systems/texlive/tlnet/archive/zref-clever.source.r61778.tar.xz
2022/01/29 | 4656 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-sc-ot1.tfm
2022/01/29 | 4652 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-sc-ot1.tfm
-2022/01/29 | 4640 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-sc-ot1.tfm
2022/01/29 | 46054 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma
2022/01/29 | 458 | language/japanese/uptex-base/samples/area-sjis.mp
2022/01/29 | 457 | language/japanese/uptex-base/samples/area-euc.mp
@@ -1209,20 +2171,12 @@
2022/01/29 | 431295 | macros/generic/expkv-def.zip
2022/01/29 | 429560 | macros/latex/contrib/elements.zip
2022/01/29 | 42762 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma
-2022/01/29 | 42592 | fonts/cochineal/tfm/Cochineal-Bold-lf-ly1.tfm
-2022/01/29 | 42568 | fonts/cochineal/tfm/Cochineal-Bold-tlf-ly1.tfm
2022/01/29 | 424547 | macros/generic/expkv-def/expkv-def.pdf
-2022/01/29 | 42000 | fonts/cochineal/tfm/Cochineal-Bold-lf-swash-ly1.tfm
-2022/01/29 | 41976 | fonts/cochineal/tfm/Cochineal-Bold-tlf-swash-ly1.tfm
2022/01/29 | 4156 | systems/texlive/tlnet/archive/datax.source.r61772.tar.xz
-2022/01/29 | 41556 | fonts/cochineal/tfm/Cochineal-Bold-osf-ly1.tfm
-2022/01/29 | 41504 | fonts/cochineal/tfm/Cochineal-Bold-tosf-ly1.tfm
2022/01/29 | 41273 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma
2022/01/29 | 41220 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma
2022/01/29 | 41184 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma
2022/01/29 | 411587 | macros/latex/contrib/elements/elements-manual.pdf
-2022/01/29 | 40964 | fonts/cochineal/tfm/Cochineal-Bold-osf-swash-ly1.tfm
-2022/01/29 | 40912 | fonts/cochineal/tfm/Cochineal-Bold-tosf-swash-ly1.tfm
2022/01/29 | 4089 | language/japanese/uptex-base/samples/sangoku-uptex.tex
2022/01/29 | 39717 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/01/29 | 394128 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma
@@ -1234,21 +2188,15 @@
2022/01/29 | 38436 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma
2022/01/29 | 3822 | fonts/cochineal/enc/coch_3r6zg3.enc
2022/01/29 | 3818 | fonts/cochineal/enc/coch_3brrog.enc
-2022/01/29 | 3812 | fonts/cochineal/enc/coch_cacm2n.enc
-2022/01/29 | 3805 | fonts/cochineal/enc/coch_e745te.enc
2022/01/29 | 3778 | fonts/cochineal/enc/coch_3q3crd.enc
2022/01/29 | 3777 | fonts/cochineal/enc/coch_4agesf.enc
2022/01/29 | 3770 | fonts/cochineal/enc/coch_max2ec.enc
-2022/01/29 | 3762 | fonts/cochineal/enc/coch_rv5tmq.enc
-2022/01/29 | 3758 | fonts/cochineal/enc/coch_pilffg.enc
2022/01/29 | 3751 | fonts/cochineal/enc/coch_lzqtrs.enc
2022/01/29 | 3750 | fonts/cochineal/enc/coch_nj5yu3.enc
2022/01/29 | 3747 | fonts/cochineal/enc/coch_xaxcx7.enc
2022/01/29 | 3746 | fonts/cochineal/enc/coch_wuwrcy.enc
2022/01/29 | 3741 | fonts/cochineal/enc/coch_q35ey5.enc
2022/01/29 | 3740 | fonts/cochineal/enc/coch_lropbz.enc
-2022/01/29 | 3734 | fonts/cochineal/enc/coch_ekjpcs.enc
-2022/01/29 | 3733 | fonts/cochineal/enc/coch_ol4knl.enc
2022/01/29 | 37339 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma
2022/01/29 | 37300 | fonts/cochineal/tfm/Cochineal-Roman-lf-swash-ly1.tfm
2022/01/29 | 37300 | fonts/cochineal/tfm/Cochineal-Roman-lf-ly1.tfm
@@ -1256,7 +2204,6 @@
2022/01/29 | 3728 | fonts/cochineal/enc/coch_sygphi.enc
2022/01/29 | 3724 | fonts/cochineal/enc/coch_q4ulxa.enc
2022/01/29 | 3722 | fonts/cochineal/enc/coch_zbphsw.enc
-2022/01/29 | 3718 | fonts/cochineal/enc/coch_tjygyt.enc
2022/01/29 | 37100 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma
2022/01/29 | 37055 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma
2022/01/29 | 3701 | fonts/cochineal/enc/coch_ddt3vr.enc
@@ -1265,15 +2212,11 @@
2022/01/29 | 3697 | fonts/cochineal/enc/coch_l47tcy.enc
2022/01/29 | 3696 | systems/texlive/tlnet/archive/pascaltriangle.r61774.tar.xz
2022/01/29 | 3695 | fonts/cochineal/enc/coch_2zgday.enc
-2022/01/29 | 3693 | fonts/cochineal/enc/coch_5bitfe.enc
2022/01/29 | 3691 | fonts/cochineal/enc/coch_pfcyih.enc
2022/01/29 | 3691 | fonts/cochineal/enc/coch_mo2enl.enc
2022/01/29 | 3690 | fonts/cochineal/enc/coch_s4niqi.enc
-2022/01/29 | 3687 | fonts/cochineal/enc/coch_ylbzwi.enc
-2022/01/29 | 3686 | fonts/cochineal/enc/coch_uemkt3.enc
2022/01/29 | 36852 | fonts/cochineal/tfm/Cochineal-Roman-tlf-swash-ly1.tfm
2022/01/29 | 36852 | fonts/cochineal/tfm/Cochineal-Roman-tlf-ly1.tfm
-2022/01/29 | 3684 | fonts/cochineal/enc/coch_okzdl2.enc
2022/01/29 | 36748 | fonts/cochineal/tfm/Cochineal-Roman-osf-swash-ly1.tfm
2022/01/29 | 36748 | fonts/cochineal/tfm/Cochineal-Roman-osf-ly1.tfm
2022/01/29 | 36700 | fonts/cochineal/tfm/Cochineal-Roman-tosf-swash-ly1.tfm
@@ -1281,28 +2224,22 @@
2022/01/29 | 3649 | fonts/cochineal/enc/coch_th736v.enc
2022/01/29 | 3641 | fonts/cochineal/enc/coch_ikkvry.enc
2022/01/29 | 3640 | systems/texlive/tlnet/archive/codebox.r61771.tar.xz
-2022/01/29 | 3637 | fonts/cochineal/enc/coch_ldgozj.enc
2022/01/29 | 3632 | systems/texlive/tlnet/archive/texlogfilter.r61780.tar.xz
2022/01/29 | 3632 | language/japanese/uptex-base/samples/utfsmpl-uplatex.tex
2022/01/29 | 361277 | macros/latex/contrib/pdfpages.zip
2022/01/29 | 36044 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma
2022/01/29 | 3575 | fonts/cochineal/enc/coch_5tib5i.enc
-2022/01/29 | 3567 | fonts/cochineal/enc/coch_wa4y3o.enc
2022/01/29 | 3567 | fonts/cochineal/enc/coch_hqneph.enc
2022/01/29 | 3563 | language/japanese/uptex-base/samples/jbtest.bib
2022/01/29 | 355 | language/japanese/uptex-base/samples/box-sjis.eps
2022/01/29 | 3552 | fonts/cochineal/enc/coch_7fzfry.enc
2022/01/29 | 3537 | fonts/cochineal/enc/coch_eluj5m.enc
-2022/01/29 | 3536 | fonts/cochineal/enc/coch_da7weg.enc
-2022/01/29 | 3531 | fonts/cochineal/enc/coch_syo7sr.enc
2022/01/29 | 35254 | language/japanese/uptex-base/01uptex_doc_utf8.txt
2022/01/29 | 35236 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma
2022/01/29 | 351872 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma
2022/01/29 | 35174 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma
2022/01/29 | 350 | language/japanese/uptex-base/samples/box-euc.eps
2022/01/29 | 348 | systems/texlive/tlnet/archive/texlogfilter.x86_64-darwinlegacy.r61780.tar.xz
-2022/01/29 | 34864 | fonts/cochineal/tfm/Cochineal-Bold-lf-sc-ly1.tfm
-2022/01/29 | 34840 | fonts/cochineal/tfm/Cochineal-Bold-tlf-sc-ly1.tfm
2022/01/29 | 3481 | fonts/cochineal/enc/coch_dx3muq.enc
2022/01/29 | 3480 | fonts/cochineal/enc/coch_ygltby.enc
2022/01/29 | 3466 | fonts/cochineal/enc/coch_nlwa7l.enc
@@ -1310,23 +2247,17 @@
2022/01/29 | 3465 | fonts/cochineal/enc/coch_tkhq7f.enc
2022/01/29 | 3464 | fonts/cochineal/enc/coch_kuld3f.enc
2022/01/29 | 346341 | macros/latex/contrib/jmlr/pmlr-sample.pdf
-2022/01/29 | 3460 | fonts/cochineal/enc/coch_huz7n5.enc
-2022/01/29 | 3459 | fonts/cochineal/enc/coch_wnd62o.enc
2022/01/29 | 3455 | fonts/cochineal/enc/coch_dbsvsj.enc
2022/01/29 | 3451 | fonts/cochineal/enc/coch_uqbj7f.enc
2022/01/29 | 344 | systems/texlive/tlnet/archive/texlogfilter.x86_64-linuxmusl.r61780.tar.xz
2022/01/29 | 344 | systems/texlive/tlnet/archive/texlogfilter.x86_64-cygwin.r61780.tar.xz
2022/01/29 | 344 | systems/texlive/tlnet/archive/texlogfilter.universal-darwin.r61780.tar.xz
2022/01/29 | 344 | systems/texlive/tlnet/archive/texlogfilter.amd64-freebsd.r61780.tar.xz
-2022/01/29 | 3447 | fonts/cochineal/enc/coch_uavkhn.enc
-2022/01/29 | 3446537 | fonts/cochineal/afm/Cochineal-Roman.afm
2022/01/29 | 3431 | fonts/cochineal/enc/coch_vew4u5.enc
2022/01/29 | 3417 | language/japanese/uptex-base/samples/adobe-cid.tex
2022/01/29 | 3416 | fonts/cochineal/enc/coch_6wh55u.enc
2022/01/29 | 3415 | fonts/cochineal/enc/coch_liz2hd.enc
2022/01/29 | 3415 | fonts/cochineal/enc/coch_kxx5cy.enc
-2022/01/29 | 3413 | fonts/cochineal/enc/coch_5f3gw2.enc
-2022/01/29 | 3410 | fonts/cochineal/enc/coch_t556x2.enc
2022/01/29 | 340 | systems/texlive/tlnet/archive/texlogfilter.x86_64-solaris.r61780.tar.xz
2022/01/29 | 340 | systems/texlive/tlnet/archive/texlogfilter.x86_64-linux.r61780.tar.xz
2022/01/29 | 340 | systems/texlive/tlnet/archive/texlogfilter.i386-solaris.r61780.tar.xz
@@ -1343,33 +2274,21 @@
2022/01/29 | 3381 | fonts/cochineal/enc/coch_grutwx.enc
2022/01/29 | 3380 | fonts/cochineal/enc/coch_w6vdgs.enc
2022/01/29 | 3380 | fonts/cochineal/enc/coch_bjtzvy.enc
-2022/01/29 | 33804 | fonts/cochineal/tfm/Cochineal-Bold-osf-sc-ly1.tfm
2022/01/29 | 3379 | fonts/cochineal/enc/coch_2expjo.enc
2022/01/29 | 337977 | language/japanese/uptex-base.zip
-2022/01/29 | 33780 | fonts/cochineal/tfm/Cochineal-Bold-tosf-sc-ly1.tfm
-2022/01/29 | 3376 | fonts/cochineal/enc/coch_kbxkrg.enc
-2022/01/29 | 3376 | fonts/cochineal/enc/coch_dwjlw5.enc
-2022/01/29 | 3375 | fonts/cochineal/enc/coch_jhwq7e.enc
2022/01/29 | 336 | systems/texlive/tlnet/archive/texlogfilter.i386-linux.r61780.tar.xz
2022/01/29 | 336 | systems/texlive/tlnet/archive/texlogfilter.i386-cygwin.r61780.tar.xz
2022/01/29 | 3344 | fonts/cochineal/enc/coch_lqmdx6.enc
2022/01/29 | 3344 | fonts/cochineal/enc/coch_kbpxlj.enc
2022/01/29 | 3343 | fonts/cochineal/enc/coch_df5kan.enc
-2022/01/29 | 3342 | fonts/cochineal/enc/coch_u3j4lk.enc
-2022/01/29 | 3342 | fonts/cochineal/enc/coch_qyvxxn.enc
-2022/01/29 | 3341 | fonts/cochineal/enc/coch_d2hjcw.enc
2022/01/29 | 33376 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-ly1.tfm
2022/01/29 | 3334 | fonts/cochineal/enc/coch_o4vutb.enc
-2022/01/29 | 3332 | fonts/cochineal/tfm/zcochbmi.tfm
2022/01/29 | 33316 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-ly1.tfm
2022/01/29 | 33312 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-ly1.tfm
2022/01/29 | 3330 | fonts/cochineal/enc/coch_bnbjdf.enc
-2022/01/29 | 33304 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-ly1.tfm
2022/01/29 | 33280 | fonts/cochineal/tfm/Cochineal-Italic-tlf-ly1.tfm
-2022/01/29 | 3326 | fonts/cochineal/enc/coch_4plcvc.enc
2022/01/29 | 332352 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma
2022/01/29 | 3322 | fonts/cochineal/enc/coch_alzuis.enc
-2022/01/29 | 3316 | fonts/cochineal/enc/coch_wpweoy.enc
2022/01/29 | 3316 | fonts/cochineal/enc/coch_dxwjai.enc
2022/01/29 | 33168 | fonts/cochineal/tfm/Cochineal-Italic-lf-ly1.tfm
2022/01/29 | 33156 | fonts/cochineal/tfm/Cochineal-Italic-osf-ly1.tfm
@@ -1379,56 +2298,39 @@
2022/01/29 | 3309 | fonts/cochineal/enc/coch_xsridg.enc
2022/01/29 | 33092 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-swash-ly1.tfm
2022/01/29 | 3308 | fonts/cochineal/enc/coch_pqzq4p.enc
-2022/01/29 | 3305 | fonts/cochineal/enc/coch_lchlkf.enc
-2022/01/29 | 3304 | fonts/cochineal/enc/coch_2wxnkf.enc
2022/01/29 | 33028 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-swash-ly1.tfm
2022/01/29 | 33028 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-swash-ly1.tfm
-2022/01/29 | 33016 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-swash-ly1.tfm
2022/01/29 | 32972 | fonts/cochineal/tfm/Cochineal-Italic-tlf-swash-ly1.tfm
2022/01/29 | 3294 | fonts/cochineal/enc/coch_aiajjq.enc
2022/01/29 | 32940 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma
-2022/01/29 | 3292 | fonts/cochineal/enc/coch_3tt4zg.enc
2022/01/29 | 32860 | fonts/cochineal/tfm/Cochineal-Italic-lf-swash-ly1.tfm
2022/01/29 | 32848 | fonts/cochineal/tfm/Cochineal-Italic-osf-swash-ly1.tfm
2022/01/29 | 32828 | fonts/cochineal/tfm/Cochineal-Italic-tosf-swash-ly1.tfm
2022/01/29 | 32746 | systems/win32/miktex/source/CHANGELOG.md
2022/01/29 | 3273 | fonts/cochineal/enc/coch_2gvyjv.enc
2022/01/29 | 3272 | fonts/cochineal/enc/coch_cbs7ow.enc
-2022/01/29 | 3271 | fonts/cochineal/enc/coch_ibp3xz.enc
-2022/01/29 | 3270 | fonts/cochineal/enc/coch_6uoyes.enc
2022/01/29 | 326766 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2022/01/29 | 3261 | fonts/cochineal/enc/coch_5tmqae.enc
-2022/01/29 | 3260 | fonts/cochineal/tfm/zcochmi.tfm
2022/01/29 | 3259 | fonts/cochineal/enc/coch_t7e5d4.enc
-2022/01/29 | 3255 | fonts/cochineal/enc/coch_tfefcu.enc
2022/01/29 | 3251 | fonts/cochineal/enc/coch_bat6hu.enc
2022/01/29 | 3250 | fonts/cochineal/enc/coch_g2axst.enc
2022/01/29 | 3249 | fonts/cochineal/enc/coch_6ry5ir.enc
-2022/01/29 | 3245 | fonts/cochineal/enc/coch_oqmhja.enc
2022/01/29 | 3245 | fonts/cochineal/enc/coch_jgxutr.enc
-2022/01/29 | 3244 | fonts/cochineal/enc/coch_kzot5v.enc
2022/01/29 | 3244 | fonts/cochineal/enc/coch_j7mi7a.enc
-2022/01/29 | 3243 | fonts/cochineal/enc/coch_x4ugem.enc
2022/01/29 | 3243 | fonts/cochineal/enc/coch_qkxc47.enc
2022/01/29 | 3223 | fonts/cochineal/enc/coch_cuw7wa.enc
-2022/01/29 | 3221 | fonts/cochineal/enc/coch_otkq6i.enc
2022/01/29 | 320 | language/japanese/uptex-base/samples/bkmk-docinfo.txt
2022/01/29 | 32027 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/01/29 | 3201 | fonts/cochineal/enc/coch_6lje3b.enc
2022/01/29 | 31 | language/japanese/uptex-base/samples/iotext.txt
-2022/01/29 | 3197 | fonts/cochineal/enc/coch_z2oun7.enc
2022/01/29 | 3197 | fonts/cochineal/enc/coch_awf6hz.enc
-2022/01/29 | 3195 | fonts/cochineal/enc/coch_fdemcn.enc
2022/01/29 | 3195 | fonts/cochineal/enc/coch_ermyhb.enc
2022/01/29 | 3195 | fonts/cochineal/enc/coch_2eakhu.enc
-2022/01/29 | 3191 | fonts/cochineal/enc/coch_m4bmrm.enc
2022/01/29 | 31818 | fonts/cochineal/map/Cochineal.map
2022/01/29 | 3178 | fonts/cochineal/enc/coch_ktoy4w.enc
2022/01/29 | 3177 | fonts/cochineal/enc/coch_47bkd3.enc
2022/01/29 | 3172 | fonts/cochineal/enc/coch_sc4bro.enc
-2022/01/29 | 3172 | fonts/cochineal/enc/coch_bp2pg7.enc
2022/01/29 | 3171 | fonts/cochineal/enc/coch_rix5n3.enc
-2022/01/29 | 3171 | fonts/cochineal/enc/coch_opxmsy.enc
2022/01/29 | 316472 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma
2022/01/29 | 3158 | language/japanese/uptex-base/samples/simple-u-utf8.tex
2022/01/29 | 3157 | language/japanese/uptex-base/samples/greek-uplatex.tex
@@ -1437,15 +2339,11 @@
2022/01/29 | 3153 | fonts/cochineal/enc/coch_qy633g.enc
2022/01/29 | 31531 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma
2022/01/29 | 31528 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/01/29 | 3151 | fonts/cochineal/enc/coch_h2t4ei.enc
-2022/01/29 | 3151 | fonts/cochineal/enc/coch_e77avd.enc
2022/01/29 | 31416 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma
2022/01/29 | 31301 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma
2022/01/29 | 3128 | fonts/cochineal/enc/coch_gkpez6.enc
2022/01/29 | 3122 | fonts/cochineal/enc/coch_gcpa6j.enc
-2022/01/29 | 3122 | fonts/cochineal/enc/coch_bi2nei.enc
2022/01/29 | 3119 | fonts/cochineal/enc/coch_5xilzy.enc
-2022/01/29 | 3117 | fonts/cochineal/enc/coch_7trhhc.enc
2022/01/29 | 30932 | fonts/cochineal/tfm/Cochineal-Italic-osf-th-ly1.tfm
2022/01/29 | 30932 | fonts/cochineal/tfm/Cochineal-Italic-lf-th-ly1.tfm
2022/01/29 | 30908 | fonts/cochineal/tfm/Cochineal-Italic-tosf-th-ly1.tfm
@@ -1455,7 +2353,6 @@
2022/01/29 | 3060 | fonts/cochineal/enc/coch_wcbuwv.enc
2022/01/29 | 3054 | fonts/cochineal/enc/coch_bjqtqq.enc
2022/01/29 | 30546 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/01/29 | 3052 | fonts/cochineal/enc/coch_o5mx43.enc
2022/01/29 | 30524 | systems/texlive/tlnet/archive/texlogfilter.doc.r61780.tar.xz
2022/01/29 | 30364 | fonts/cochineal/tfm/Cochineal-Roman-tlf-sc-ly1.tfm
2022/01/29 | 3026 | fonts/cochineal/enc/coch_jhwmea.enc
@@ -1464,7 +2361,6 @@
2022/01/29 | 30240 | fonts/cochineal/tfm/Cochineal-Roman-osf-sc-ly1.tfm
2022/01/29 | 30212 | fonts/cochineal/tfm/Cochineal-Roman-tosf-sc-ly1.tfm
2022/01/29 | 3020 | fonts/cochineal/enc/coch_kfnsdu.enc
-2022/01/29 | 3018 | fonts/cochineal/enc/coch_r2kqsv.enc
2022/01/29 | 3018 | fonts/cochineal/enc/coch_5o2hga.enc
2022/01/29 | 30149 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma
2022/01/29 | 301209 | macros/latex/contrib/pdfpages/pdfpages.pdf
@@ -1484,7 +2380,6 @@
2022/01/29 | 28509 | macros/latex/contrib/elements/elements.sty
2022/01/29 | 28484 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma
2022/01/29 | 281591 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma
-2022/01/29 | 280903 | fonts/cochineal/type1/Cochineal-Bold.pfb
2022/01/29 | 2796707 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma
2022/01/29 | 278181 | fonts/cochineal/type1/Cochineal-Italic.pfb
2022/01/29 | 27768 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma
@@ -1492,7 +2387,6 @@
2022/01/29 | 275884 | fonts/cochineal/type1/Cochineal-Roman.pfb
2022/01/29 | 27584 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma
2022/01/29 | 2746 | language/japanese/uptex-base/samples/widow.tex
-2022/01/29 | 2743 | macros/latex/contrib/crefthe/README.md
2022/01/29 | 2735 | language/japanese/uptex-base/samples/simple-utf8.tex
2022/01/29 | 2735 | fonts/cochineal/enc/coch_aeaj7m.enc
2022/01/29 | 27222 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma
@@ -1512,37 +2406,26 @@
2022/01/29 | 2594 | fonts/cochineal/enc/coch_qzhi24.enc
2022/01/29 | 259103 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma
2022/01/29 | 2588 | fonts/cochineal/enc/coch_l64ji6.enc
-2022/01/29 | 2584 | fonts/cochineal/vf/zcochbmi.vf
-2022/01/29 | 2560 | fonts/cochineal/tfm/zcochbmia.tfm
2022/01/29 | 25500 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma
2022/01/29 | 2546 | fonts/cochineal/enc/coch_saoql6.enc
2022/01/29 | 253413 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma
2022/01/29 | 251076 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma
2022/01/29 | 25090 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma
2022/01/29 | 2508 | fonts/cochineal/enc/coch_qqsbmj.enc
-2022/01/29 | 2504 | fonts/cochineal/tfm/zcochmia.tfm
2022/01/29 | 25049 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2022/01/29 | 2500 | language/japanese/uptex-base/samples/simple-sjis.tex
-2022/01/29 | 2496 | fonts/cochineal/vf/zcochmi.vf
2022/01/29 | 2493 | language/japanese/uptex-base/samples/simple-euc.tex
-2022/01/29 | 244 | fonts/cochineal/tfm/Cochineal-Bol-osf.tfm
2022/01/29 | 244966 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma
2022/01/29 | 24133 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma
2022/01/29 | 23914 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma
2022/01/29 | 2384 | language/japanese/uptex-base/samples/00readme_uptex_samples.txt
2022/01/29 | 237 | language/japanese/uptex-base/samples/jstr-uptex.mp
2022/01/29 | 234 | language/japanese/uptex-base/samples/jstr-utf8.mp
-2022/01/29 | 232 | fonts/cochineal/tfm/Cochineal-osf.tfm
-2022/01/29 | 232904 | fonts/cochineal/opentype/Cochineal-Roman.otf
2022/01/29 | 227 | language/japanese/uptex-base/samples/jstr-jis.mp
2022/01/29 | 221 | language/japanese/uptex-base/samples/jstr-sjis.mp
2022/01/29 | 221 | language/japanese/uptex-base/samples/jstr-euc.mp
2022/01/29 | 22131 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/01/29 | 2188 | fonts/cochineal/vf/zcochbmia.vf
-2022/01/29 | 2188 | fonts/cochineal/tfm/Cochineal-BoldItalic-sup-ly1.tfm
-2022/01/29 | 2184 | fonts/cochineal/tfm/Cochineal-BoldItalic-sup-ly1--base.tfm
2022/01/29 | 218462 | macros/latex/contrib/jmlr/jmlr.dtx
-2022/01/29 | 2180 | fonts/cochineal/vf/zcochmia.vf
2022/01/29 | 2176 | fonts/cochineal/tfm/Cochineal-BoldItalic-sup-t1.tfm
2022/01/29 | 2172 | fonts/cochineal/tfm/Cochineal-Italic-sup-ly1.tfm
2022/01/29 | 2168 | fonts/cochineal/tfm/Cochineal-Italic-sup-ly1--base.tfm
@@ -1557,34 +2440,27 @@
2022/01/29 | 2120 | fonts/cochineal/tfm/Cochineal-Italic-sup-t1--base.tfm
2022/01/29 | 21180 | systems/texlive/tlnet/archive/zref-clever.r61778.tar.xz
2022/01/29 | 2112 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-sc-ly1--base.tfm
-2022/01/29 | 2108 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-sc-ly1--base.tfm
2022/01/29 | 210086 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma
2022/01/29 | 2096 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-swash-ly1--base.tfm
2022/01/29 | 2092 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-swash-ly1--base.tfm
2022/01/29 | 2092 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-ly1--base.tfm
2022/01/29 | 2088 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-ly1--base.tfm
2022/01/29 | 2084 | fonts/cochineal/tfm/Cochineal-BoldItalic-inf-ly1.tfm
-2022/01/29 | 2080 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-swash-ly1--base.tfm
2022/01/29 | 2080 | fonts/cochineal/tfm/Cochineal-BoldItalic-inf-ly1--base.tfm
-2022/01/29 | 2076 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-ly1--base.tfm
2022/01/29 | 2076 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-swash-ly1--base.tfm
-2022/01/29 | 2076 | fonts/cochineal/tfm/Cochineal-BoldItalic-dnom-ly1.tfm
2022/01/29 | 2072 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-ly1--base.tfm
-2022/01/29 | 2072 | fonts/cochineal/tfm/Cochineal-BoldItalic-dnom-ly1--base.tfm
2022/01/29 | 2060 | fonts/cochineal/tfm/Cochineal-Italic-osf-sc-ly1--base.tfm
2022/01/29 | 2060 | fonts/cochineal/tfm/Cochineal-Italic-lf-swash-ly1--base.tfm
2022/01/29 | 2060 | fonts/cochineal/tfm/Cochineal-Italic-lf-sc-ly1--base.tfm
2022/01/29 | 2056 | fonts/cochineal/tfm/Cochineal-Italic-lf-ly1--base.tfm
2022/01/29 | 2056 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-sc-t1--base.tfm
2022/01/29 | 2056 | fonts/cochineal/tfm/Cochineal-BoldItalic-inf-t1.tfm
-2022/01/29 | 2056 | fonts/cochineal/tfm/Cochineal-BoldItalic-dnom-t1.tfm
2022/01/29 | 2052 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-sc-t1--base.tfm
2022/01/29 | 2052 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-swash-t1--base.tfm
2022/01/29 | 2048 | fonts/cochineal/tfm/Cochineal-Italic-osf-swash-ly1--base.tfm
2022/01/29 | 2048 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-swash-t1--base.tfm
2022/01/29 | 2048 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-t1--base.tfm
2022/01/29 | 2048 | fonts/cochineal/tfm/Cochineal-BoldItalic-inf-t1--base.tfm
-2022/01/29 | 2048 | fonts/cochineal/tfm/Cochineal-BoldItalic-dnom-t1--base.tfm
2022/01/29 | 2044 | fonts/cochineal/tfm/Cochineal-Italic-tlf-sc-ly1--base.tfm
2022/01/29 | 2044 | fonts/cochineal/tfm/Cochineal-Italic-osf-ly1--base.tfm
2022/01/29 | 2044 | fonts/cochineal/tfm/Cochineal-Italic-inf-ly1.tfm
@@ -1594,12 +2470,9 @@
2022/01/29 | 2040 | fonts/cochineal/tfm/Cochineal-Italic-tosf-sc-ly1--base.tfm
2022/01/29 | 2040 | fonts/cochineal/tfm/Cochineal-Italic-tlf-swash-ly1--base.tfm
2022/01/29 | 2040 | fonts/cochineal/tfm/Cochineal-Italic-inf-ly1--base.tfm
-2022/01/29 | 2040 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-swash-t1--base.tfm
2022/01/29 | 2036 | fonts/cochineal/tfm/Cochineal-Italic-tlf-ly1--base.tfm
-2022/01/29 | 2036 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-t1--base.tfm
2022/01/29 | 2036 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-swash-t1--base.tfm
2022/01/29 | 2036 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-sc-t1--base.tfm
-2022/01/29 | 2032 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-sc-t1--base.tfm
2022/01/29 | 2032 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-t1--base.tfm
2022/01/29 | 202961 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma
2022/01/29 | 2028 | fonts/cochineal/tfm/Cochineal-Italic-tosf-swash-ly1--base.tfm
@@ -1611,10 +2484,8 @@
2022/01/29 | 2004 | fonts/cochineal/tfm/Cochineal-Italic-dnom-t1.tfm
2022/01/29 | 200135 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma
2022/01/29 | 2000 | fonts/cochineal/tfm/Cochineal-Italic-lf-t1--base.tfm
-2022/01/29 | 2000 | fonts/cochineal/tfm/Cochineal-Bold-sup-ly1.tfm
2022/01/29 | 199795 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma
2022/01/29 | 1996 | fonts/cochineal/tfm/Cochineal-Italic-dnom-t1--base.tfm
-2022/01/29 | 1996 | fonts/cochineal/tfm/Cochineal-Bold-sup-ly1--base.tfm
2022/01/29 | 1992 | fonts/cochineal/tfm/Cochineal-Italic-osf-swash-t1--base.tfm
2022/01/29 | 1992 | fonts/cochineal/tfm/Cochineal-Italic-inf-t1.tfm
2022/01/29 | 1988 | fonts/cochineal/tfm/Cochineal-Italic-osf-t1--base.tfm
@@ -1634,39 +2505,12 @@
2022/01/29 | 1956 | fonts/cochineal/tfm/Cochineal-Roman-sup-t1.tfm
2022/01/29 | 1952 | fonts/cochineal/tfm/Cochineal-Roman-sup-t1--base.tfm
2022/01/29 | 1952 | fonts/cochineal/tfm/Cochineal-Italic-tosf-sc-t1--base.tfm
-2022/01/29 | 1952 | fonts/cochineal/tfm/Cochineal-Bold-sup-t1.tfm
2022/01/29 | 19468 | fonts/cochineal/tfm/Cochineal-Italic-tlf-t2a.tfm
-2022/01/29 | 1944 | fonts/cochineal/tfm/Cochineal-Bold-sup-t1--base.tfm
-2022/01/29 | 1940 | fonts/cochineal/tfm/Cochineal-Bold-osf-sc-ly1--base.tfm
-2022/01/29 | 1940 | fonts/cochineal/tfm/Cochineal-Bold-lf-sc-ly1--base.tfm
2022/01/29 | 1936 | fonts/cochineal/tfm/Cochineal-Roman-inf-ly1.tfm
-2022/01/29 | 1936 | fonts/cochineal/tfm/Cochineal-Bolditalic-lf-lgr.tfm
2022/01/29 | 1932 | fonts/cochineal/tfm/Cochineal-Roman-dnom-ly1.tfm
-2022/01/29 | 1932 | fonts/cochineal/tfm/Cochineal-Bolditalic-osf-lgr.tfm
-2022/01/29 | 1928 | fonts/cochineal/tfm/Cochineal-Bold-lf-swash-ly1--base.tfm
-2022/01/29 | 1928 | fonts/cochineal/tfm/Cochineal-Bold-lf-ly1--base.tfm
-2022/01/29 | 1924 | fonts/cochineal/tfm/Cochineal-Bold-osf-swash-ly1--base.tfm
-2022/01/29 | 1924 | fonts/cochineal/tfm/Cochineal-Bold-osf-ly1--base.tfm
-2022/01/29 | 1924 | fonts/cochineal/tfm/Cochineal-Bold-inf-ly1.tfm
-2022/01/29 | 1920 | fonts/cochineal/tfm/Cochineal-Italic-lf-lgr.tfm
-2022/01/29 | 1920 | fonts/cochineal/tfm/Cochineal-Bolditalic-tosf-lgr.tfm
-2022/01/29 | 1920 | fonts/cochineal/tfm/Cochineal-Bold-inf-ly1--base.tfm
-2022/01/29 | 1920 | fonts/cochineal/tfm/Cochineal-Bold-dnom-ly1.tfm
-2022/01/29 | 1920 | fonts/cochineal/tfm/Cochineal-Bold-dnom-ly1--base.tfm
-2022/01/29 | 1916 | fonts/cochineal/tfm/Cochineal-Bold-tosf-sc-ly1--base.tfm
2022/01/29 | 1912 | fonts/cochineal/tfm/Cochineal-Roman-osf-sc-ly1--base.tfm
-2022/01/29 | 1912 | fonts/cochineal/tfm/Cochineal-Bold-tlf-sc-ly1--base.tfm
-2022/01/29 | 19106 | macros/latex/contrib/crefthe/LICENSE
2022/01/29 | 1908 | fonts/cochineal/tfm/Cochineal-Roman-lf-sc-ly1--base.tfm
-2022/01/29 | 1908 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-lgr.tfm
-2022/01/29 | 1904 | fonts/cochineal/tfm/Cochineal-Italic-osf-lgr.tfm
-2022/01/29 | 1904 | fonts/cochineal/tfm/Cochineal-Bold-tosf-swash-ly1--base.tfm
-2022/01/29 | 1904 | fonts/cochineal/tfm/Cochineal-Bold-tosf-ly1--base.tfm
2022/01/29 | 1900 | language/japanese/uptex-base/samples/jbib3-utf8.tex
-2022/01/29 | 1900 | fonts/cochineal/tfm/Cochineal-Bold-tlf-swash-ly1--base.tfm
-2022/01/29 | 1900 | fonts/cochineal/tfm/Cochineal-Bold-tlf-ly1--base.tfm
-2022/01/29 | 1892 | fonts/cochineal/tfm/Cochineal-Italic-tosf-lgr.tfm
-2022/01/29 | 1888 | fonts/cochineal/tfm/Cochineal-Italic-tlf-lgr.tfm
2022/01/29 | 18872 | fonts/cochineal/tfm/Cochineal-Roman-tlf-t2a.tfm
2022/01/29 | 1884 | fonts/cochineal/tfm/Cochineal-Roman-tosf-sc-ly1--base.tfm
2022/01/29 | 1884 | fonts/cochineal/tfm/Cochineal-Roman-tlf-sc-ly1--base.tfm
@@ -1682,60 +2526,30 @@
2022/01/29 | 1860 | fonts/cochineal/tfm/Cochineal-Roman-lf-swash-t1--base.tfm
2022/01/29 | 1856 | fonts/cochineal/tfm/Cochineal-Roman-osf-t1--base.tfm
2022/01/29 | 1856 | fonts/cochineal/tfm/Cochineal-Roman-osf-swash-t1--base.tfm
-2022/01/29 | 1856 | fonts/cochineal/tfm/Cochineal-Bold-osf-sc-t1--base.tfm
2022/01/29 | 1853 | macros/latex/contrib/jmlr/README
-2022/01/29 | 1852 | fonts/cochineal/tfm/Cochineal-Bold-lf-sc-t1--base.tfm
2022/01/29 | 18512 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-sc-t1.tfm
-2022/01/29 | 1848 | fonts/cochineal/tfm/Cochineal-Bold-dnom-t1.tfm
2022/01/29 | 18489 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2022/01/29 | 18464 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-sc-t1.tfm
2022/01/29 | 18460 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-sc-t1.tfm
-2022/01/29 | 1844 | fonts/cochineal/tfm/Cochineal-Bold-lf-t1--base.tfm
-2022/01/29 | 1844 | fonts/cochineal/tfm/Cochineal-Bold-lf-swash-t1--base.tfm
-2022/01/29 | 1844 | fonts/cochineal/tfm/Cochineal-Bold-inf-t1.tfm
-2022/01/29 | 18444 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-sc-t1.tfm
2022/01/29 | 1840 | fonts/cochineal/tfm/Cochineal-Roman-tosf-t1--base.tfm
2022/01/29 | 1840 | fonts/cochineal/tfm/Cochineal-Roman-tosf-swash-t1--base.tfm
2022/01/29 | 1840 | fonts/cochineal/tfm/Cochineal-Roman-tlf-t1--base.tfm
2022/01/29 | 1840 | fonts/cochineal/tfm/Cochineal-Roman-tlf-swash-t1--base.tfm
-2022/01/29 | 1840 | fonts/cochineal/tfm/Cochineal-Bold-osf-t1--base.tfm
-2022/01/29 | 1840 | fonts/cochineal/tfm/Cochineal-Bold-osf-swash-t1--base.tfm
-2022/01/29 | 1840 | fonts/cochineal/tfm/Cochineal-Bold-dnom-t1--base.tfm
-2022/01/29 | 1836 | fonts/cochineal/tfm/Cochineal-Bold-inf-t1--base.tfm
2022/01/29 | 18359 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/01/29 | 1828 | fonts/cochineal/tfm/Cochineal-Bold-tosf-sc-t1--base.tfm
-2022/01/29 | 1824 | fonts/cochineal/tfm/Cochineal-Bold-tlf-sc-t1--base.tfm
-2022/01/29 | 1820 | fonts/cochineal/tfm/Cochineal-Bold-tosf-t1--base.tfm
-2022/01/29 | 1820 | fonts/cochineal/tfm/Cochineal-Bold-tosf-swash-t1--base.tfm
-2022/01/29 | 1820 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-ot2.tfm
2022/01/29 | 181754 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma
2022/01/29 | 1816 | fonts/cochineal/tfm/Cochineal-Roman-osf-sc-t1--base.tfm
-2022/01/29 | 1816 | fonts/cochineal/tfm/Cochineal-Bold-tlf-t1--base.tfm
-2022/01/29 | 1816 | fonts/cochineal/tfm/Cochineal-Bold-tlf-swash-t1--base.tfm
2022/01/29 | 1812 | fonts/cochineal/tfm/Cochineal-Roman-lf-sc-t1--base.tfm
2022/01/29 | 1810 | language/japanese/uptex-base/uptex.tex
2022/01/29 | 179885 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma
-2022/01/29 | 1796 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-ot2.tfm
2022/01/29 | 1788 | fonts/cochineal/tfm/Cochineal-Roman-tosf-sc-t1--base.tfm
2022/01/29 | 1788 | fonts/cochineal/tfm/Cochineal-Roman-tlf-sc-t1--base.tfm
-2022/01/29 | 1788 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-ot2.tfm
-2022/01/29 | 1784 | fonts/cochineal/tfm/Cochineal-Bold-osf-lgr.tfm
-2022/01/29 | 1780 | fonts/cochineal/tfm/Cochineal-Bold-lf-lgr.tfm
-2022/01/29 | 1780 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-ot2.tfm
2022/01/29 | 177456 | macros/latex/contrib/pdfpages/pdfpages.dtx
-2022/01/29 | 1772 | fonts/cochineal/tfm/Cochineal-Bold-lf-ot2.tfm
2022/01/29 | 1758 | fonts/librebodoni/README
-2022/01/29 | 1756 | fonts/cochineal/tfm/Cochineal-Bold-tlf-lgr.tfm
-2022/01/29 | 1752 | fonts/cochineal/tfm/Cochineal-Bold-tosf-lgr.tfm
-2022/01/29 | 1744 | fonts/cochineal/tfm/Cochineal-Roman-lf-lgr.tfm
-2022/01/29 | 1736 | fonts/cochineal/vf/Cochineal-BoldItalic-tosf-swash-t1.vf
2022/01/29 | 1736 | fonts/cochineal/vf/Cochineal-BoldItalic-tlf-swash-t1.vf
2022/01/29 | 1736 | fonts/cochineal/vf/Cochineal-BoldItalic-osf-swash-t1.vf
-2022/01/29 | 1736 | fonts/cochineal/tfm/Cochineal-Roman-osf-lgr.tfm
2022/01/29 | 1732 | fonts/cochineal/vf/Cochineal-Italic-tosf-swash-t1.vf
2022/01/29 | 1732 | fonts/cochineal/vf/Cochineal-Italic-tlf-swash-t1.vf
2022/01/29 | 1732 | fonts/cochineal/vf/Cochineal-Italic-osf-swash-t1.vf
-2022/01/29 | 1732 | fonts/cochineal/vf/Cochineal-BoldItalic-tosf-sc-t1.vf
2022/01/29 | 1732 | fonts/cochineal/vf/Cochineal-BoldItalic-tlf-sc-t1.vf
2022/01/29 | 1732 | fonts/cochineal/vf/Cochineal-BoldItalic-osf-sc-t1.vf
2022/01/29 | 1732 | fonts/cochineal/vf/Cochineal-BoldItalic-lf-swash-t1.vf
@@ -1745,18 +2559,11 @@
2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-Italic-osf-sc-t1.vf
2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-Italic-lf-swash-t1.vf
2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-Italic-lf-sc-t1.vf
-2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-Bold-tosf-swash-t1.vf
-2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-Bold-tosf-sc-t1.vf
-2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-Bold-tlf-swash-t1.vf
-2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-Bold-osf-swash-t1.vf
-2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-Bold-lf-swash-t1.vf
-2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-BoldItalic-tosf-t1.vf
2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-BoldItalic-tlf-t1.vf
2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-BoldItalic-sup-t1.vf
2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-BoldItalic-osf-t1.vf
2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-BoldItalic-lf-t1.vf
2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-BoldItalic-inf-t1.vf
-2022/01/29 | 1728 | fonts/cochineal/vf/Cochineal-BoldItalic-dnom-t1.vf
2022/01/29 | 1728 | fonts/cochineal/tfm/Cochineal-Bold-ts1.tfm
2022/01/29 | 172632 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma
2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Roman-tosf-swash-t1.vf
@@ -1767,17 +2574,6 @@
2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Italic-lf-t1.vf
2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Italic-inf-t1.vf
2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Italic-dnom-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-tosf-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-tlf-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-tlf-sc-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-sup-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-osf-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-osf-sc-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-lf-sc-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-inf-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/vf/Cochineal-Bold-dnom-t1.vf
-2022/01/29 | 1724 | fonts/cochineal/tfm/Cochineal-Roman-tosf-lgr.tfm
-2022/01/29 | 1724 | fonts/cochineal/tfm/Cochineal-Roman-tlf-lgr.tfm
2022/01/29 | 1724 | fonts/cochineal/tfm/Cochineal-Bold-ts1--base.tfm
2022/01/29 | 1720 | fonts/cochineal/vf/Cochineal-Roman-tosf-sc-t1.vf
2022/01/29 | 1720 | fonts/cochineal/vf/Cochineal-Roman-tlf-swash-t1.vf
@@ -1785,7 +2581,6 @@
2022/01/29 | 1720 | fonts/cochineal/vf/Cochineal-Roman-osf-swash-t1.vf
2022/01/29 | 1720 | fonts/cochineal/vf/Cochineal-Roman-osf-sc-t1.vf
2022/01/29 | 1720 | fonts/cochineal/vf/Cochineal-Roman-lf-swash-t1.vf
-2022/01/29 | 1720 | fonts/cochineal/vf/Cochineal-Bold-lf-t1.vf
2022/01/29 | 1718072 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma
2022/01/29 | 1716 | fonts/cochineal/vf/Cochineal-Roman-tosf-t1.vf
2022/01/29 | 1716 | fonts/cochineal/vf/Cochineal-Roman-tlf-t1.vf
@@ -1795,25 +2590,17 @@
2022/01/29 | 1716 | fonts/cochineal/vf/Cochineal-Roman-lf-sc-t1.vf
2022/01/29 | 1716 | fonts/cochineal/vf/Cochineal-Roman-inf-t1.vf
2022/01/29 | 1716 | fonts/cochineal/vf/Cochineal-Roman-dnom-t1.vf
-2022/01/29 | 1716 | fonts/cochineal/tfm/Cochineal-Bold-osf-ot2.tfm
2022/01/29 | 1708 | fonts/cochineal/vf/Cochineal-Italic-tosf-sc-ly1.vf
2022/01/29 | 1708 | fonts/cochineal/vf/Cochineal-Italic-tlf-sc-ly1.vf
2022/01/29 | 1708 | fonts/cochineal/vf/Cochineal-Italic-osf-sc-ly1.vf
2022/01/29 | 1708 | fonts/cochineal/vf/Cochineal-Italic-lf-sc-ly1.vf
-2022/01/29 | 1704 | fonts/cochineal/vf/Cochineal-BoldItalic-tosf-sc-ly1.vf
2022/01/29 | 1704 | fonts/cochineal/vf/Cochineal-BoldItalic-tlf-sc-ly1.vf
2022/01/29 | 1704 | fonts/cochineal/vf/Cochineal-BoldItalic-osf-sc-ly1.vf
2022/01/29 | 1704 | fonts/cochineal/vf/Cochineal-BoldItalic-lf-sc-ly1.vf
2022/01/29 | 1700 | fonts/cochineal/vf/Cochineal-Roman-tosf-sc-ly1.vf
2022/01/29 | 1700 | fonts/cochineal/vf/Cochineal-Roman-tlf-sc-ly1.vf
2022/01/29 | 1700 | fonts/cochineal/vf/Cochineal-Roman-osf-sc-ly1.vf
-2022/01/29 | 1700 | fonts/cochineal/vf/Cochineal-Bold-tosf-sc-ly1.vf
-2022/01/29 | 1700 | fonts/cochineal/vf/Cochineal-Bold-tlf-sc-ly1.vf
-2022/01/29 | 1700 | fonts/cochineal/vf/Cochineal-Bold-osf-sc-ly1.vf
2022/01/29 | 1696 | fonts/cochineal/vf/Cochineal-Roman-lf-sc-ly1.vf
-2022/01/29 | 1696 | fonts/cochineal/vf/Cochineal-Bold-lf-sc-ly1.vf
-2022/01/29 | 1692 | fonts/cochineal/tfm/Cochineal-Bold-tosf-ot2.tfm
-2022/01/29 | 1692 | fonts/cochineal/tfm/Cochineal-Bold-tlf-ot2.tfm
2022/01/29 | 1688 | fonts/cochineal/tfm/Cochineal-Roman-ts1.tfm
2022/01/29 | 168862 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/01/29 | 1684 | fonts/cochineal/tfm/Cochineal-Roman-ts1--base.tfm
@@ -1821,7 +2608,6 @@
2022/01/29 | 1672 | fonts/cochineal/vf/Cochineal-Italic-tlf-swash-ly1.vf
2022/01/29 | 1672 | fonts/cochineal/vf/Cochineal-Italic-osf-swash-ly1.vf
2022/01/29 | 1672 | fonts/cochineal/vf/Cochineal-Italic-lf-swash-ly1.vf
-2022/01/29 | 1672 | fonts/cochineal/vf/Cochineal-BoldItalic-tosf-swash-ly1.vf
2022/01/29 | 1668 | fonts/cochineal/vf/Cochineal-Italic-tosf-ly1.vf
2022/01/29 | 1668 | fonts/cochineal/vf/Cochineal-Italic-tlf-ly1.vf
2022/01/29 | 1668 | fonts/cochineal/vf/Cochineal-Italic-sup-ly1.vf
@@ -1832,25 +2618,11 @@
2022/01/29 | 1668 | fonts/cochineal/vf/Cochineal-BoldItalic-osf-swash-ly1.vf
2022/01/29 | 1668 | fonts/cochineal/vf/Cochineal-BoldItalic-lf-swash-ly1.vf
2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-Italic-lf-ly1.vf
-2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-Bold-tosf-swash-ly1.vf
-2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-Bold-tlf-swash-ly1.vf
-2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-Bold-osf-swash-ly1.vf
-2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-Bold-lf-swash-ly1.vf
-2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-BoldItalic-tosf-ly1.vf
2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-BoldItalic-tlf-ly1.vf
-2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-BoldItalic-sup-ly1.vf
2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-BoldItalic-osf-ly1.vf
2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-BoldItalic-lf-ly1.vf
2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-BoldItalic-inf-ly1.vf
-2022/01/29 | 1664 | fonts/cochineal/vf/Cochineal-BoldItalic-dnom-ly1.vf
-2022/01/29 | 1660 | fonts/cochineal/vf/Cochineal-Bold-tosf-ly1.vf
-2022/01/29 | 1660 | fonts/cochineal/vf/Cochineal-Bold-dnom-ly1.vf
2022/01/29 | 16575 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/01/29 | 1656 | fonts/cochineal/vf/Cochineal-Bold-tlf-ly1.vf
-2022/01/29 | 1656 | fonts/cochineal/vf/Cochineal-Bold-sup-ly1.vf
-2022/01/29 | 1656 | fonts/cochineal/vf/Cochineal-Bold-osf-ly1.vf
-2022/01/29 | 1656 | fonts/cochineal/vf/Cochineal-Bold-lf-ly1.vf
-2022/01/29 | 1656 | fonts/cochineal/vf/Cochineal-Bold-inf-ly1.vf
2022/01/29 | 16496 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma
2022/01/29 | 164512 | systems/texlive/tlnet/archive/pascaltriangle.doc.r61774.tar.xz
2022/01/29 | 1611 | language/japanese/uptex-base/samples/linebreak.bib
@@ -1862,7 +2634,6 @@
2022/01/29 | 155670 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma
2022/01/29 | 1522 | macros/latex/contrib/elements/README
2022/01/29 | 151997 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma
-2022/01/29 | 1484 | fonts/cochineal/tfm/Cochineal-BoldItalic-sup-ot1.tfm
2022/01/29 | 1476 | fonts/cochineal/tfm/Cochineal-Italic-sup-ot1.tfm
2022/01/29 | 1449228 | systems/texlive/tlnet/archive/zref-clever.doc.r61778.tar.xz
2022/01/29 | 1447156 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma
@@ -1874,16 +2645,13 @@
2022/01/29 | 139120 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma
2022/01/29 | 1382 | macros/latex/contrib/pdfpages/README
2022/01/29 | 1380 | fonts/cochineal/tfm/Cochineal-Italic-lf-sc-ot1--base.tfm
-2022/01/29 | 1380 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-sc-ot1--base.tfm
2022/01/29 | 1380 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-sc-ot1--base.tfm
2022/01/29 | 13795 | language/japanese/uptex-base/samples/punctuation.tex
2022/01/29 | 13788 | fonts/cochineal/tfm/Cochineal-BoldItalic-lf-sc-ly1.tfm
2022/01/29 | 1376 | fonts/cochineal/tfm/Cochineal-Italic-osf-sc-ot1--base.tfm
2022/01/29 | 1372 | fonts/cochineal/tfm/Cochineal-BoldItalic-inf-ot1.tfm
-2022/01/29 | 1372 | fonts/cochineal/tfm/Cochineal-BoldItalic-dnom-ot1.tfm
2022/01/29 | 13724 | fonts/cochineal/tfm/Cochineal-BoldItalic-osf-sc-ly1.tfm
2022/01/29 | 13720 | fonts/cochineal/tfm/Cochineal-BoldItalic-tlf-sc-ly1.tfm
-2022/01/29 | 13704 | fonts/cochineal/tfm/Cochineal-BoldItalic-tosf-sc-ly1.tfm
2022/01/29 | 136 | language/japanese/uptex-base/samples/jstr-uptex-incl.tex
2022/01/29 | 136 | language/japanese/uptex-base/samples/area-uptex-incl.tex
2022/01/29 | 1364 | fonts/cochineal/tfm/Cochineal-Italic-dnom-ot1.tfm
@@ -1902,62 +2670,37 @@
2022/01/29 | 133 | language/japanese/uptex-base/samples/area-jis-incl.tex
2022/01/29 | 133 | language/japanese/uptex-base/samples/area-euc-incl.tex
2022/01/29 | 1321636 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/01/29 | 1300 | fonts/cochineal/tfm/Cochineal-Bold-sup-ot1.tfm
2022/01/29 | 13007 | language/japanese/uptex-base/samples/cjk_babel.tex
2022/01/29 | 1298867 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma
2022/01/29 | 1288 | fonts/cochineal/tfm/Cochineal-Roman-dnom-ot1.tfm
2022/01/29 | 1284 | fonts/cochineal/tfm/Cochineal-Roman-inf-ot1.tfm
-2022/01/29 | 1284 | fonts/cochineal/tfm/Cochineal-Bold-osf-sc-ot1--base.tfm
2022/01/29 | 1281 | macros/latex/contrib/secnum/README.md
-2022/01/29 | 1280 | fonts/cochineal/tfm/Cochineal-Bold-lf-sc-ot1--base.tfm
-2022/01/29 | 1276 | fonts/cochineal/tfm/Cochineal-Bold-dnom-ot1.tfm
-2022/01/29 | 1272 | fonts/cochineal/tfm/Cochineal-Bold-inf-ot1.tfm
2022/01/29 | 1268 | macros/generic/expkv-def/README.md
2022/01/29 | 1268 | fonts/cochineal/tfm/Cochineal-Roman-sup-ot1.tfm
2022/01/29 | 1268 | fonts/cochineal/tfm/Cochineal-Roman-osf-sc-ot1--base.tfm
2022/01/29 | 126637 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma
2022/01/29 | 1264 | fonts/cochineal/tfm/Cochineal-Roman-lf-sc-ot1--base.tfm
2022/01/29 | 1256 | systems/texlive/tlnet/archive/datax.r61772.tar.xz
-2022/01/29 | 1256 | fonts/cochineal/tfm/Cochineal-Bold-tosf-sc-ot1--base.tfm
2022/01/29 | 125512 | systems/texlive/tlnet/archive/pdfmanagement-testphase.source.r61775.tar.xz
-2022/01/29 | 1252 | fonts/cochineal/tfm/Cochineal-Bold-tlf-sc-ot1--base.tfm
2022/01/29 | 12470 | macros/latex/contrib/pdfpages/dummy-l.pdf
2022/01/29 | 1240 | fonts/cochineal/tfm/Cochineal-Roman-tosf-sc-ot1--base.tfm
2022/01/29 | 1240 | fonts/cochineal/tfm/Cochineal-Roman-tlf-sc-ot1--base.tfm
-2022/01/29 | 1240 | fonts/cochineal/tfm/Cochineal-BolIta-alph.tfm
2022/01/29 | 123 | macros/latex/contrib/jmlr/example-teximage.tex
-2022/01/29 | 120388 | macros/latex/contrib/crefthe.zip
2022/01/29 | 120201 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma
-2022/01/29 | 1200 | fonts/cochineal/tfm/Cochineal-Ita-alph.tfm
2022/01/29 | 1184 | language/japanese/uptex-base/samples/umin10x.tfm
2022/01/29 | 1184 | language/japanese/uptex-base/samples/min10x.tfm
2022/01/29 | 1180327 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma
2022/01/29 | 11653 | macros/latex/contrib/elements/elements-manual.tex
2022/01/29 | 11616 | language/japanese/uptex-base/samples/jis_uni_variation.tex
2022/01/29 | 115786 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/01/29 | 11572 | fonts/cochineal/tfm/Cochineal-Italic-lf-ot2.tfm
-2022/01/29 | 11564 | fonts/cochineal/tfm/Cochineal-Italic-osf-ot2.tfm
-2022/01/29 | 11552 | fonts/cochineal/tfm/Cochineal-Italic-tlf-ot2.tfm
-2022/01/29 | 11536 | fonts/cochineal/tfm/Cochineal-Italic-tosf-ot2.tfm
-2022/01/29 | 11480 | fonts/cochineal/tfm/Cochineal-Bold-lf-ot1.tfm
-2022/01/29 | 11456 | fonts/cochineal/tfm/Cochineal-Bold-tlf-ot1.tfm
-2022/01/29 | 1144 | fonts/cochineal/tfm/Cochineal-Bol-alph.tfm
-2022/01/29 | 1144 | fonts/cochineal/tfm/Cochineal-alph.tfm
2022/01/29 | 1133 | macros/latex/contrib/jmlr/jmlr.ins
2022/01/29 | 113059 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma
2022/01/29 | 11271 | language/japanese/uptex-base/samples/misc-check-h-utf8.tex
2022/01/29 | 112666 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma
2022/01/29 | 11256 | fonts/cochineal/tfm/Cochineal-Bold-tlf-t2a.tfm
-2022/01/29 | 11192 | fonts/cochineal/tfm/Cochineal-Bold-lf-swash-ot1.tfm
-2022/01/29 | 11168 | fonts/cochineal/tfm/Cochineal-Bold-tlf-swash-ot1.tfm
-2022/01/29 | 11044 | fonts/cochineal/tfm/Cochineal-Bold-osf-ot1.tfm
-2022/01/29 | 10996 | fonts/cochineal/tfm/Cochineal-Bold-tosf-ot1.tfm
2022/01/29 | 109502 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/01/29 | 108754 | macros/latex/contrib/crefthe/crefthe-doc.pdf
2022/01/29 | 1087150 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/01/29 | 10760 | fonts/cochineal/tfm/Cochineal-Bold-osf-swash-ot1.tfm
2022/01/29 | 107570 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma
-2022/01/29 | 10712 | fonts/cochineal/tfm/Cochineal-Bold-tosf-swash-ot1.tfm
2022/01/29 | 10660 | fonts/cochineal/tfm/Cochineal-Roman-lf-swash-ot1.tfm
2022/01/29 | 10660 | fonts/cochineal/tfm/Cochineal-Roman-lf-ot1.tfm
2022/01/29 | 104936 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma
@@ -1967,118 +2710,8 @@
2022/01/29 | 10372 | fonts/cochineal/tfm/Cochineal-Roman-osf-swash-ot1.tfm
2022/01/29 | 10372 | fonts/cochineal/tfm/Cochineal-Roman-osf-ot1.tfm
2022/01/29 | 1034561 | install/macros/latex/contrib/jmlr.tds.zip
-2022/01/29 | 10339 | macros/latex/contrib/crefthe/crefthe.sty
2022/01/29 | 103315 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma
2022/01/29 | 10324 | fonts/cochineal/tfm/Cochineal-Roman-tosf-swash-ot1.tfm
2022/01/29 | 10324 | fonts/cochineal/tfm/Cochineal-Roman-tosf-ot1.tfm
-2022/01/29 | 10178 | macros/latex/contrib/crefthe/crefthe-doc.tex
2022/01/29 | 1010729 | macros/latex/contrib/jmlr.zip
-2022/01/29 | 10104 | fonts/cochineal/tfm/Cochineal-Roman-lf-ot2.tfm
2022/01/29 | 100461 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma
-2022/01/29 | 10012 | fonts/cochineal/tfm/Cochineal-Roman-osf-ot2.tfm
-2022/01/28 | 953495 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
-2022/01/28 | 892 | macros/unicodetex/latex/fontsetup/fsptalos.sty
-2022/01/28 | 868 | macros/unicodetex/latex/fontsetup/fspconcrete.sty
-2022/01/28 | 824 | macros/latex/contrib/zref-clever/README.md
-2022/01/28 | 7863 | macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
-2022/01/28 | 7665 | macros/latex/contrib/bangorcsthesis/README
-2022/01/28 | 745540 | systems/texlive/tlnet/archive/tkz-fct.doc.r61766.tar.xz
-2022/01/28 | 739166 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
-2022/01/28 | 71369 | macros/latex/contrib/codebox/codebox-doc-en.pdf
-2022/01/28 | 70 | macros/latex/contrib/zref-clever/DEPENDS.txt
-2022/01/28 | 70441 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
-2022/01/28 | 67879 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
-2022/01/28 | 678500 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
-2022/01/28 | 664573 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
-2022/01/28 | 649022 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
-2022/01/28 | 6463 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
-2022/01/28 | 63267 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
-2022/01/28 | 6315 | macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
-2022/01/28 | 580 | macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
-2022/01/28 | 577968 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
-2022/01/28 | 575459 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
-2022/01/28 | 572871 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
-2022/01/28 | 5704 | systems/texlive/tlnet/archive/datenumber.source.r61761.tar.xz
-2022/01/28 | 552450 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
-2022/01/28 | 547004 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
-2022/01/28 | 533242 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
-2022/01/28 | 530048 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
-2022/01/28 | 525438 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
-2022/01/28 | 517424 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
-2022/01/28 | 505748 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
-2022/01/28 | 504678 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
-2022/01/28 | 497726 | macros/latex/contrib/erw-l3/erw-l3.pdf
-2022/01/28 | 4884 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
-2022/01/28 | 4870 | macros/unicodetex/latex/fontsetup/fontsetup.sty
-2022/01/28 | 4863 | macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
-2022/01/28 | 483900 | systems/texlive/tlnet/archive/mandi.doc.r61764.tar.xz
-2022/01/28 | 4744 | systems/texlive/tlnet/archive/tkz-fct.r61766.tar.xz
-2022/01/28 | 4691 | macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
-2022/01/28 | 4627 | macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx
-2022/01/28 | 446303 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
-2022/01/28 | 43856 | systems/texlive/tlnet/archive/acro.r61762.tar.xz
-2022/01/28 | 424940 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
-2022/01/28 | 417490 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
-2022/01/28 | 4041 | macros/latex/contrib/pdfmanagement-testphase/l3ref-tmp.sty
-2022/01/28 | 390166 | macros/latex/contrib/codebox.zip
-2022/01/28 | 382883 | macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
-2022/01/28 | 37745 | macros/latex/contrib/codebox/codebox.dtx
-2022/01/28 | 361422 | macros/latex/contrib/bangorcsthesis.zip
-2022/01/28 | 360 | macros/latex/contrib/erw-l3/README.md
-2022/01/28 | 33605 | macros/unicodetex/latex/fontsetup/doc/fspsample-talos.pdf
-2022/01/28 | 33276 | fonts/greek/talos/Talos-BoldItalic.otf
-2022/01/28 | 3308 | systems/texlive/tlnet/archive/datenumber.r61761.tar.xz
-2022/01/28 | 3274 | macros/latex/contrib/codebox/README.md
-2022/01/28 | 31350 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
-2022/01/28 | 310423 | macros/latex/contrib/zref-clever/zref-clever.pdf
-2022/01/28 | 3082 | macros/latex/contrib/zref-clever/zref-clever.ins
-2022/01/28 | 307264 | systems/texlive/tlnet/archive/datenumber.doc.r61761.tar.xz
-2022/01/28 | 30480 | systems/texlive/tlnet/archive/mandi.source.r61764.tar.xz
-2022/01/28 | 302033 | macros/latex/contrib/codebox/codebox.pdf
-2022/01/28 | 298298 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf
-2022/01/28 | 290639 | macros/latex/contrib/zref-clever/zref-clever.dtx
-2022/01/28 | 289 | macros/latex/contrib/codebox/build.sh
-2022/01/28 | 28676 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
-2022/01/28 | 286284 | systems/texlive/tlnet/archive/dccpaper.doc.r61763.tar.xz
-2022/01/28 | 2808 | macros/latex/contrib/pascaltriangle/README.md
-2022/01/28 | 27977 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
-2022/01/28 | 2777 | macros/unicodetex/latex/fontsetup/doc/fspsample.tex
-2022/01/28 | 27357 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
-2022/01/28 | 267 | macros/latex/contrib/pascaltriangle/build.sh
-2022/01/28 | 26645 | macros/unicodetex/latex/fontsetup/doc/fspsample-concrete.pdf
-2022/01/28 | 26591 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
-2022/01/28 | 26584 | systems/texlive/tlnet/archive/dccpaper.source.r61763.tar.xz
-2022/01/28 | 26581 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
-2022/01/28 | 261104 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx
-2022/01/28 | 24808 | systems/texlive/tlnet/archive/dccpaper.r61763.tar.xz
-2022/01/28 | 24558 | macros/latex/contrib/erw-l3/erw-l3.dtx
-2022/01/28 | 2364657 | macros/optex.zip
-2022/01/28 | 2339 | macros/latex/contrib/zref-clever/CHANGELOG.md
-2022/01/28 | 22032 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
-2022/01/28 | 2061 | macros/latex/contrib/erw-l3/erw-l3.ins
-2022/01/28 | 20475 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
-2022/01/28 | 201486 | macros/latex/contrib/datax.zip
-2022/01/28 | 19516 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
-2022/01/28 | 1822 | macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
-2022/01/28 | 18208 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
-2022/01/28 | 17984 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
-2022/01/28 | 176832 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
-2022/01/28 | 17353 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
-2022/01/28 | 167589 | macros/latex/contrib/pascaltriangle.zip
-2022/01/28 | 16587905 | biblio/biber/binaries/Linux/biber-linux_x86_32.tar.gz
-2022/01/28 | 165740 | macros/latex/contrib/pascaltriangle/pascaltriangle.pdf
-2022/01/28 | 15698 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
-2022/01/28 | 1542110 | install/macros/latex/contrib/zref-clever.tds.zip
-2022/01/28 | 1509701 | macros/latex/contrib/zref-clever.zip
-2022/01/28 | 1486 | macros/latex/contrib/zref-clever/zref-clever-code.tex
-2022/01/28 | 14300 | macros/latex/contrib/zref-clever/MANIFEST.md
-2022/01/28 | 13840 | macros/latex/contrib/pascaltriangle/pascaltriangle.sty
-2022/01/28 | 1239228 | systems/texlive/tlnet/archive/acro.doc.r61762.tar.xz
-2022/01/28 | 12351 | macros/latex/contrib/codebox/codebox-doc-en.tex
-2022/01/28 | 1200 | macros/latex/contrib/pdfmanagement-testphase/README.md
-2022/01/28 | 11988 | systems/texlive/tlnet/archive/mandi.r61764.tar.xz
-2022/01/28 | 1175713 | macros/latex/contrib/zref-clever/zref-clever-code.pdf
-2022/01/28 | 117090 | macros/latex/contrib/zref-clever/zref-clever.tex
-2022/01/28 | 11447 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
-2022/01/28 | 11136248 | macros/latex/contrib/pdfmanagement-testphase.zip
-2022/01/28 | 10624 | macros/latex/contrib/pascaltriangle/pascaltriangle.tex
diff --git a/fonts/etbb/README b/fonts/etbb/README
index 15c030c99e..09c5acf472 100644
--- a/fonts/etbb/README
+++ b/fonts/etbb/README
@@ -3,7 +3,14 @@ provides a version of Bembo in otf and pfb formats plus LaTeX font support files
http://www.ctan.org/license/lppl1.3
for the details of that license. Note that Bembo is a name trademarked by Monotype, hence the strange name for this package, drawn from the Berry id for the Bembo font family.
-Current version: 1.055 2021-12-21
+Current version: 1.056 2022-02-04
+
+Changes in version 1.056
+1. Added definitions of \nustyle and \destyle to ETbb.sty.
+2. Corrected behavior of option sharpS in legacy LaTeX..
+3. Corrected misbehavior of \Qswash and \Qnoswash.
+4. Extended small cap coverage in all styles so that all
+T1 encoded characters are available.
Changes in version 1.055
1. Further revision of the kerning tables in regular style, mostly for uppercase and small cap glyphs.
diff --git a/fonts/etbb/afm/ETbb-Bold.afm b/fonts/etbb/afm/ETbb-Bold.afm
index a082999137..aa804bea4b 100644
--- a/fonts/etbb/afm/ETbb-Bold.afm
+++ b/fonts/etbb/afm/ETbb-Bold.afm
@@ -1,6 +1,6 @@
StartFontMetrics 2.0
Comment Generated by FontForge 20201107
-Comment Creation Date: Tue Dec 21 11:07:40 2021
+Comment Creation Date: Wed Feb 2 13:53:20 2022
FontName ETbb-Bold
FullName ET Bembo Bold
FamilyName ETbb
@@ -20,7 +20,7 @@ CapHeight 673
XHeight 431
Ascender 744
Descender -280
-StartCharMetrics 594
+StartCharMetrics 618
C 0 ; WX 764 ; N .notdef ; B 0 0 0 0 ;
C 1 ; WX 253 ; N space ; B 0 0 0 0 ;
C 2 ; WX 281 ; N exclam ; B 82 -9 202 713 ;
@@ -615,6 +615,30 @@ C -1 ; WX 1175 ; N numero ; B 30 -10 1162 674 ;
C -1 ; WX 849 ; N Q.swsh ; B 39 -219 1374 689 ;
C -1 ; WX 729 ; N aeacute.sc ; B 5 -4 705 712 ;
C -1 ; WX 0 ; N fraction.alt ; B -418 -40 145 684 ;
+C -1 ; WX 519 ; N ij.sc ; B 30 -205 507 470 ;
+C -1 ; WX 535 ; N abreve.sc ; B 5 -3 526 700 ;
+C -1 ; WX 535 ; N aogonek.sc ; B 5 -197 534 487 ;
+C -1 ; WX 457 ; N ecaron.sc ; B 12 -3 436 707 ;
+C -1 ; WX 603 ; N ohungarumlaut.sc ; B 30 -13 569 717 ;
+C -1 ; WX 565 ; N dcaron.sc ; B 5 -3 534 707 ;
+C -1 ; WX 546 ; N zdotaccent.sc ; B 21 -3 505 629 ;
+C -1 ; WX 457 ; N eogonek.sc ; B 12 -197 439 471 ;
+C -1 ; WX 557 ; N gbreve.sc ; B 34 -13 539 700 ;
+C -1 ; WX 546 ; N ccaron.sc ; B 32 -13 508 707 ;
+C -1 ; WX 421 ; N lacute.sc ; B 10 -4 410 717 ;
+C -1 ; WX 421 ; N lcaron.sc ; B 10 -4 410 516 ;
+C -1 ; WX 591 ; N nacute.sc ; B 20 -4 576 717 ;
+C -1 ; WX 591 ; N ncaron.sc ; B 20 -4 576 707 ;
+C -1 ; WX 591 ; N eng.sc ; B 20 -199 576 471 ;
+C -1 ; WX 512 ; N racute.sc ; B 8 -12 506 717 ;
+C -1 ; WX 512 ; N rcaron.sc ; B 8 -12 506 707 ;
+C -1 ; WX 385 ; N sacute.sc ; B 34 -13 355 717 ;
+C -1 ; WX 385 ; N scedilla.sc ; B 34 -231 355 483 ;
+C -1 ; WX 498 ; N uni0163.sc ; B 20 -231 484 487 ;
+C -1 ; WX 498 ; N tcaron.sc ; B 20 -3 484 707 ;
+C -1 ; WX 584 ; N uring.sc ; B 12 -16 574 726 ;
+C -1 ; WX 584 ; N uhungarumlaut.sc ; B 12 -16 574 717 ;
+C -1 ; WX 546 ; N zacute.sc ; B 21 -3 505 717 ;
EndCharMetrics
StartKernData
StartKernPairs 8697
diff --git a/fonts/etbb/afm/ETbb-BoldItalic.afm b/fonts/etbb/afm/ETbb-BoldItalic.afm
index 82b1efe6e5..050d389be4 100644
--- a/fonts/etbb/afm/ETbb-BoldItalic.afm
+++ b/fonts/etbb/afm/ETbb-BoldItalic.afm
@@ -1,6 +1,6 @@
StartFontMetrics 2.0
Comment Generated by FontForge 20201107
-Comment Creation Date: Tue Dec 21 11:06:58 2021
+Comment Creation Date: Wed Feb 2 13:12:52 2022
FontName ETbb-BoldItalic
FullName ET Bembo Bold Italic
FamilyName ETbb
@@ -21,7 +21,7 @@ CapHeight 673
XHeight 445
Ascender 785
Descender -280
-StartCharMetrics 570
+StartCharMetrics 594
C 0 ; WX 276 ; N space ; B 0 0 0 0 ;
C 1 ; WX 321 ; N exclam ; B 90 -15 322 688 ;
C 2 ; WX 465 ; N quotedbl ; B 175 366 531 688 ;
@@ -592,6 +592,30 @@ C -1 ; WX 1112 ; N numero ; B 12 -16 1130 673 ;
C -1 ; WX 856 ; N Q.swsh ; B 64 -212 1370 690 ;
C -1 ; WX 755 ; N aeacute.sc ; B 1 -2 761 640 ;
C -1 ; WX 0 ; N fraction.alt ; B -412 -42 312 716 ;
+C -1 ; WX 551 ; N ij.sc ; B 15 -206 605 467 ;
+C -1 ; WX 534 ; N abreve.sc ; B -30 -2 618 686 ;
+C -1 ; WX 534 ; N aogonek.sc ; B -30 -139 524 485 ;
+C -1 ; WX 516 ; N ecaron.sc ; B 0 -2 522 647 ;
+C -1 ; WX 618 ; N ohungarumlaut.sc ; B 61 -10 595 662 ;
+C -1 ; WX 616 ; N dcaron.sc ; B 0 -3 610 647 ;
+C -1 ; WX 548 ; N zdotaccent.sc ; B -1 0 578 615 ;
+C -1 ; WX 516 ; N eogonek.sc ; B 0 -199 522 467 ;
+C -1 ; WX 572 ; N gbreve.sc ; B 43 -10 589 686 ;
+C -1 ; WX 540 ; N ccaron.sc ; B 20 -10 554 647 ;
+C -1 ; WX 472 ; N lacute.sc ; B 10 0 487 644 ;
+C -1 ; WX 472 ; N lcaron.sc ; B 10 0 487 492 ;
+C -1 ; WX 615 ; N nacute.sc ; B 8 -11 669 644 ;
+C -1 ; WX 615 ; N ncaron.sc ; B 8 -11 669 647 ;
+C -1 ; WX 615 ; N eng.sc ; B 8 -198 669 467 ;
+C -1 ; WX 517 ; N racute.sc ; B 0 -6 545 644 ;
+C -1 ; WX 517 ; N rcaron.sc ; B 0 -6 545 647 ;
+C -1 ; WX 412 ; N sacute.sc ; B 10 -10 408 644 ;
+C -1 ; WX 412 ; N scedilla.sc ; B 10 -169 408 472 ;
+C -1 ; WX 492 ; N uni0163.sc ; B 50 -165 566 491 ;
+C -1 ; WX 492 ; N tcaron.sc ; B 50 -2 566 647 ;
+C -1 ; WX 576 ; N uring.sc ; B 42 -10 622 643 ;
+C -1 ; WX 576 ; N uhungarumlaut.sc ; B 42 -10 622 662 ;
+C -1 ; WX 548 ; N zacute.sc ; B -1 0 578 644 ;
EndCharMetrics
StartKernData
StartKernPairs 14257
diff --git a/fonts/etbb/afm/ETbb-Italic.afm b/fonts/etbb/afm/ETbb-Italic.afm
index 957f1bf629..9629c8e422 100644
--- a/fonts/etbb/afm/ETbb-Italic.afm
+++ b/fonts/etbb/afm/ETbb-Italic.afm
@@ -1,6 +1,6 @@
StartFontMetrics 2.0
Comment Generated by FontForge 20201107
-Comment Creation Date: Tue Dec 21 11:07:09 2021
+Comment Creation Date: Wed Feb 2 13:13:17 2022
FontName ETbb-Italic
FullName ET Bembo Italic
FamilyName ETbb
@@ -21,7 +21,7 @@ CapHeight 668
XHeight 442
Ascender 781
Descender -280
-StartCharMetrics 597
+StartCharMetrics 621
C 0 ; WX 262 ; N space ; B 0 0 0 0 ;
C 1 ; WX 306 ; N exclam ; B 90 -14 308 684 ;
C 2 ; WX 438 ; N quotedbl ; B 174 376 502 684 ;
@@ -619,6 +619,30 @@ C -1 ; WX 1067 ; N numero ; B 13 -16 1100 668 ;
C -1 ; WX 748 ; N Q.swsh ; B 30 -207 1296 684 ;
C -1 ; WX 720 ; N aeacute.sc ; B -19 -2 725 681 ;
C -1 ; WX 0 ; N fraction.alt ; B -385 -41 311 712 ;
+C -1 ; WX 510 ; N ij.sc ; B 16 -204 566 457 ;
+C -1 ; WX 515 ; N abreve.sc ; B -31 -3 574 627 ;
+C -1 ; WX 515 ; N aogonek.sc ; B -31 -156 518 474 ;
+C -1 ; WX 498 ; N ecaron.sc ; B 1 -2 505 604 ;
+C -1 ; WX 603 ; N ohungarumlaut.sc ; B 62 -12 578 637 ;
+C -1 ; WX 598 ; N dcaron.sc ; B 0 -2 590 604 ;
+C -1 ; WX 519 ; N zdotaccent.sc ; B -1 -2 551 571 ;
+C -1 ; WX 498 ; N eogonek.sc ; B 1 -156 505 457 ;
+C -1 ; WX 545 ; N gbreve.sc ; B 43 -12 561 627 ;
+C -1 ; WX 531 ; N ccaron.sc ; B 21 -12 544 604 ;
+C -1 ; WX 450 ; N lacute.sc ; B 10 -2 466 624 ;
+C -1 ; WX 450 ; N lcaron.sc ; B 10 -2 466 483 ;
+C -1 ; WX 604 ; N nacute.sc ; B 9 -12 658 624 ;
+C -1 ; WX 604 ; N ncaron.sc ; B 9 -12 658 604 ;
+C -1 ; WX 604 ; N eng.sc ; B 9 -198 658 458 ;
+C -1 ; WX 485 ; N racute.sc ; B -1 -8 513 624 ;
+C -1 ; WX 485 ; N rcaron.sc ; B -1 -8 513 604 ;
+C -1 ; WX 394 ; N sacute.sc ; B 9 -12 391 624 ;
+C -1 ; WX 394 ; N scedilla.sc ; B 9 -206 391 462 ;
+C -1 ; WX 475 ; N uni0163.sc ; B 50 -206 550 481 ;
+C -1 ; WX 475 ; N tcaron.sc ; B 50 -2 550 604 ;
+C -1 ; WX 552 ; N uring.sc ; B 42 -12 599 629 ;
+C -1 ; WX 552 ; N uhungarumlaut.sc ; B 42 -12 599 637 ;
+C -1 ; WX 519 ; N zacute.sc ; B -1 -2 551 624 ;
EndCharMetrics
StartKernData
StartKernPairs 18964
diff --git a/fonts/etbb/afm/ETbb-Regular.afm b/fonts/etbb/afm/ETbb-Regular.afm
index 0225f51dc3..03b5e38ef4 100644
--- a/fonts/etbb/afm/ETbb-Regular.afm
+++ b/fonts/etbb/afm/ETbb-Regular.afm
@@ -1,6 +1,6 @@
StartFontMetrics 2.0
Comment Generated by FontForge 20201107
-Comment Creation Date: Tue Dec 21 09:41:16 2021
+Comment Creation Date: Wed Feb 2 13:52:58 2022
FontName ETbb-Regular
FullName ET Bembo Regular
FamilyName ETbb
@@ -8,19 +8,19 @@ Weight Regular
Notice (ETBembo designed for Edward Tufte / Graphics Press Copyright (c) 2002 Dmitry Krasny / Deka Design)
Comment ETBook Copyright (c) 2015 Dmitry Krasny, Bonnie Scranton, Edward Tufte.
Comment XETBook Copyright (c) 2019 Daniel Benjamin Miller
-Comment ETbb Copyright (c) 2020-2021 Michael Sharpe
+Comment ETbb Copyright (c) 2020-2022 Michael Sharpe
ItalicAngle 0
IsFixedPitch false
UnderlinePosition -261
UnderlineThickness 50
Version 001.001
EncodingScheme FontSpecific
-FontBBox -189 -310 1397 1184
+FontBBox -403 -310 1397 1184
CapHeight 673
XHeight 431
Ascender 759
Descender -280
-StartCharMetrics 667
+StartCharMetrics 692
C 0 ; WX 516 ; N .notdef ; B 52 0 465 551 ;
C 1 ; WX 253 ; N space ; B 0 0 0 0 ;
C 2 ; WX 240 ; N exclam ; B 63 -16 177 713 ;
@@ -493,7 +493,7 @@ C -1 ; WX 544 ; N yacute.sc ; B 11 -2 534 633 ;
C -1 ; WX 460 ; N thorn.sc ; B 23 -2 428 474 ;
C -1 ; WX 460 ; N lslash.sc ; B 24 -6 450 476 ;
C -1 ; WX 789 ; N oe.sc ; B 49 -9 749 479 ;
-C -1 ; WX 392 ; N scaron.sc ; B 41 -13 351 634 ;
+C -1 ; WX 367 ; N scaron.sc ; B 28 -18 327 603 ;
C -1 ; WX 587 ; N ydieresis.sc ; B 10 -2 577 596 ;
C -1 ; WX 552 ; N zcaron.sc ; B 35 -2 507 635 ;
C -1 ; WX 1023 ; N uni1E9E.ss02 ; B 44 -20 961 689 ;
@@ -503,7 +503,7 @@ C -1 ; WX 541 ; N uni1E9E.c2sc ; B 27 -6 499 463 ;
C -1 ; WX 544 ; N germandbls.ss02 ; B 20 -18 519 735 ;
C -1 ; WX 170 ; N exclam.superior ; B 42 290 128 707 ;
C -1 ; WX 308 ; N quotedbl.superior ; B 43 474 267 722 ;
-C -1 ; WX 452 ; N numbersign.superior ; B 0 286 451 715 ;
+C -1 ; WX 452 ; N numbersign.superior ; B 8 286 451 715 ;
C -1 ; WX 360 ; N dollar.superior ; B 39 247 333 681 ;
C -1 ; WX 509 ; N percent.superior ; B 27 267 482 672 ;
C -1 ; WX 535 ; N ampersand.superior ; B 7 292 526 660 ;
@@ -688,9 +688,34 @@ C -1 ; WX 360 ; N breve ; B 26 497 337 659 ;
C -1 ; WX 360 ; N dotaccent ; B 119 492 243 617 ;
C -1 ; WX 360 ; N ring ; B 72 490 283 703 ;
C -1 ; WX 743 ; N aeacute.sc ; B 9 -4 707 635 ;
+C -1 ; WX 0 ; N fraction.alt ; B -403 -35 148 682 ;
+C -1 ; WX 519 ; N ij.sc ; B 41 -200 489 468 ;
+C -1 ; WX 542 ; N abreve.sc ; B 9 -2 530 665 ;
+C -1 ; WX 542 ; N aogonek.sc ; B 9 -156 544 484 ;
+C -1 ; WX 467 ; N ecaron.sc ; B 12 -2 425 633 ;
+C -1 ; WX 633 ; N ohungarumlaut.sc ; B 49 -13 584 637 ;
+C -1 ; WX 596 ; N dcaron.sc ; B 26 -2 557 633 ;
+C -1 ; WX 552 ; N zdotaccent.sc ; B 35 -2 507 600 ;
+C -1 ; WX 464 ; N eogonek.sc ; B 12 -156 454 469 ;
+C -1 ; WX 582 ; N gbreve.sc ; B 50 -13 555 665 ;
+C -1 ; WX 556 ; N ccaron.sc ; B 47 -13 521 633 ;
+C -1 ; WX 439 ; N lacute.sc ; B 24 -3 427 640 ;
+C -1 ; WX 438 ; N lcaron.sc ; B 24 -3 427 469 ;
+C -1 ; WX 656 ; N nacute.sc ; B 31 -8 626 640 ;
+C -1 ; WX 662 ; N ncaron.sc ; B 31 -8 626 633 ;
+C -1 ; WX 647 ; N eng.sc ; B 31 -198 626 469 ;
+C -1 ; WX 536 ; N racute.sc ; B 24 -9 523 640 ;
+C -1 ; WX 536 ; N rcaron.sc ; B 24 -9 523 633 ;
+C -1 ; WX 367 ; N sacute.sc ; B 41 -13 351 640 ;
+C -1 ; WX 392 ; N scedilla.sc ; B 41 -166 351 479 ;
+C -1 ; WX 524 ; N uni0163.sc ; B 32 -156 493 486 ;
+C -1 ; WX 523 ; N tcaron.sc ; B 32 -2 493 638 ;
+C -1 ; WX 606 ; N uring.sc ; B 22 -15 588 650 ;
+C -1 ; WX 606 ; N uhungarumlaut.sc ; B 22 -15 588 637 ;
+C -1 ; WX 552 ; N zacute.sc ; B 35 -2 507 640 ;
EndCharMetrics
StartKernData
-StartKernPairs 33113
+StartKernPairs 33133
KPX A ydieresis.sc -93
KPX A yacute.sc -93
KPX A y.sc -93
@@ -6075,6 +6100,9 @@ KPX z Ucircumflex -14
KPX z Uacute -14
KPX z Ugrave -14
KPX z U -14
+KPX twosuperior fraction -38
+KPX threesuperior fraction -68
+KPX onesuperior fraction -60
KPX guillemotright uni0232 -107
KPX guillemotright Ydieresis -107
KPX guillemotright Ycircumflex -107
@@ -27700,6 +27728,13 @@ KPX guilsinglright Tbar -94
KPX guilsinglright Tcaron -94
KPX guilsinglright uni0162 -94
KPX guilsinglright T -94
+KPX zero.superior fraction -84
+KPX four.superior fraction -93
+KPX five.superior fraction -91
+KPX six.superior fraction -60
+KPX seven.superior fraction -148
+KPX eight.superior fraction -80
+KPX nine.superior fraction -109
KPX ff zcaron 22
KPX ff zdotaccent 22
KPX ff zacute 22
@@ -33804,6 +33839,16 @@ KPX uni0233 Acircumflex -53
KPX uni0233 Aacute -53
KPX uni0233 Agrave -53
KPX uni0233 A -53
+KPX fraction.alt zero.denominator -80
+KPX fraction.alt one.denominator -115
+KPX fraction.alt two.denominator -78
+KPX fraction.alt three.denominator -73
+KPX fraction.alt four.denominator -142
+KPX fraction.alt five.denominator -99
+KPX fraction.alt six.denominator -100
+KPX fraction.alt seven.denominator -46
+KPX fraction.alt eight.denominator -108
+KPX fraction.alt nine.denominator -62
EndKernPairs
EndKernData
EndFontMetrics
diff --git a/fonts/etbb/doc/ETbb-doc.pdf b/fonts/etbb/doc/ETbb-doc.pdf
index 18336e187a..fe9459348a 100644
--- a/fonts/etbb/doc/ETbb-doc.pdf
+++ b/fonts/etbb/doc/ETbb-doc.pdf
Binary files differ
diff --git a/fonts/etbb/doc/ETbb-doc.tex b/fonts/etbb/doc/ETbb-doc.tex
index 1746dd93b6..bec5cc3c62 100644
--- a/fonts/etbb/doc/ETbb-doc.tex
+++ b/fonts/etbb/doc/ETbb-doc.tex
@@ -12,6 +12,7 @@
\usepackage{xcolor}
\usepackage{upquote}
\usepackage{fancyvrb}
+\usepackage{trace}
\def\yellow#1{\setlength{\fboxrule}{0pt}%
\setlength{\fboxsep}{0pt}%
\colorbox{yellow}{#1}}
@@ -29,7 +30,6 @@
\usepackage{pgffor}
\usepackage{etoolbox}
%\usepackage{lipsum}
-\usepackage{trace}
\makeatletter
\long\def\thegrid#1#2{\edef\scanp@gcmd{\noexpand\put(0,0){\noexpand\line(1,0){#1}}
\noexpand\put(0,0){\noexpand\line(0,1){#2}}
@@ -45,7 +45,7 @@
\put(-100,\y){\color{red!50}\line(1,0){4100}}%
\put(-200,\y){\y}
}
-\foreach\x in {0,500,...,4000}{%
+\foreach\x in {0,500,...,4000}{%
\put(\x,-500){\color{red!50}\line(0,1){1500}}%
\put(\x,-150){\x}}
}
@@ -59,14 +59,12 @@
%\pagestyle{empty}
\begin{document}
%\SS \ss \textsc{\ss} \MakeUppercase{\ss}
-%\fonttable{ETbb1-Regular-tlf-sc-t1}
-%\end{document}
\maketitle
\section*{Background}
+
The fonts in this package were derived ultimately from the collection of fonts commissioned by Edward Tufte for his own books, and released in 2015 as {\tt ET-Bembo} under the MIT license. (The sources for that collection were fonts using the family name ET-book.) That collection was enhanced in 2019 under the name {\tt XETBook} by Daniel Benjamin Miller, and it is his package which was the starting point for {\tt ETbb}, where the {\tt bb} denotes the Berry abbreviation for Bembo. The final section of this document makes a detailed comparison with the earlier {\tt fbb} package, which is also Bembo-like, derived from {\tt Cardo.} The most significant differences are that {\tt ETbb} has a regular upright that is about 20\% darker than the corresponding {\tt fbb}, and its ascender height is noticeably less. These differences make {\tt ETbb} have a less spindly appearance that is closer in spirit to the print produced by traditional metal versions of Bembo.
-%\fonttable{ETbb1-Regular-tlf-t1}
\section*{Package properties}
@@ -88,15 +86,16 @@ The scale has been increased by 3.36\% so that the x-height of the upright regul
\url{https://ia601405.us.archive.org/34/items/ita-bnc-ald-00000673-001/ita-bnc-ald-00000673-001.pdf}.\\
(A higher resolution rendering of a two-page sample is available from \url{https://upload.wikimedia.org/wikipedia/commons/8/89/De_Aetna_1495.jpg.})
\end{itemize}
-%\fonttable{ETbb-Regular-tlf-t1}
-%\end{document}
+
\section*{Package options and macros}
+
This package has most of the same features and options as the {\tt fbb} package and even includes the {\tt altP} option, though that has no effect because the alternate P shapes in {\tt fbb} are the default in {\tt ETbb}.
In the original {\tt XETBook}, the dollar and cent currency symbols were oldstyle. I've added the new style symbols and made them the default, but option {\tt osdollar} to {\tt ETbb} changes back to the oldstyle symbols.
-\textbf{New in version $1.05$:} A swash version of Q has been added to all faces. You may enable it globally using option {\tt swashQ} to {\tt ETbb}, or specify it locally with the macro \verb|\Qswash|, which renders as \Qswash. If you had enabled it globally, you have access to the ordinary Q with the macro \verb|\Qnoswash|.
+
+\textbf{New in version $1.05$:} A swash version of Q has been added to all faces. You may enable it globally using option {\tt swashQ} to {\tt ETbb}, or specify it locally with the macro \verb|\Qswash|, which renders as \Qswash. This document did not specify option {\tt swashQ}. If you had enabled it globally, you have access to the ordinary Q with the macro \verb|\Qnoswash|. You may find it simpler to use the macro \verb|\altQ| which renders Q as ordinary Q if you had specified option {\tt swashQ} and as \altQ\ if not.
Text figures may be selected from four types:
\begin{itemize}
@@ -127,17 +126,17 @@ The package also defines macros that allow you use alternate figure styles local
\end{tabular}
\end{center}
The macro \verb|\textlf{123}| is identical in effect to \verb|{\lfstyle 123}|, and similarly for the other lining and oldstyle macros, while \verb|\textsu{123}| has the same effect as \verb|{\sufigures 123}|
-and \verb|\textin{123}| has the same effect as \verb|{\infigures 123}|.
-If you prefer typing longer names, you may use \verb|\textinferior| as a synonym for \verb|\textin|, and similarly for \verb|\textsu|. Likewise,
+and \verb|\textinf{123}| has the same effect as \verb|{\infigures 123}|.
+If you prefer typing longer names, you may use \verb|\textinferior| as a synonym for \verb|\textinf|, and similarly for \verb|\textsu|. Likewise,
\verb|\textde{123}| has the same effect as \verb|{\defigures 123}| or \verb|{\denomfigures 123}|, and you may use \verb|\textdenom| as a synonym for \verb|\textde|. Note the difference in baseline between \verb|\textinf| and \verb|\textde|: \textinf{123} versus \textde{123}.
The \verb|\textfrac| macro constructs fractions using \verb|\textsu| and \verb|\textde| with baseline aligned with the text baseline. The behavior is somewhat configurable, there being two parameters available to control the kerns before and after the fraction solidus. The two parameters are passed as options to {\tt ETbb}, named
\begin{verbatim}
-foresolidus % default value -.04em
-aftsolidus % default value -.04em
+foresolidus % default value -.05em
+aftsolidus % default value -.05em
\end{verbatim}
%raisefrac % default value 0em
-(The values should always be {\tt em} units in order to behave correctly with respect to scaling.)
+(The values should always be {\tt em} or {\tt ex} units in order to behave correctly with respect to scaling.)
%If you were to change the default behavior with the option
%\begin{verbatim}
%raisefrac=-112em
@@ -150,7 +149,10 @@ aftsolidus % default value -.04em
%All the above have to do with globally defined settings for \verb|\textfrac|, but that macro allows one optional argument that can override the effect of {\tt raisefrac}, with, e.g., \verb|\textfrac[.1em][6}{11}| raising the fraction 6/11 by {\tt .1em} instead of the default specified in the original options.
\textsc{Example:}\\
-$\bullet$ \verb|\textfrac[2]{17}{32}| renders as \textfrac[2]{17}{32} with default settings. (The optional argument 2 will always print in lining figres, not matter the choice of the text figure style.)\\
+$\bullet$ \verb|\textfrac[2]{17}{32}| renders as \textfrac[2]{17}{32} with default settings. (The optional argument 2 will always print in lining figures, no matter the choice of the text figure style.)\\
+
+If you load the {\tt ETbb} package by means of option {\tt etbb} to the {\tt newtx} package, version 1.71 or higher, there is a stacked fraction construction available using the macro \verb|\textsfrac| which behaves like \verb|\textfrac| except with the fractional part stacked vertically rather than diagonally. See the {\tt newtx} documentation for details and examples.
+
%$\bullet$ \verb|2\textfrac[.053em]{17}{32}| produces a fraction centered on the mid-height of lining figures: 2\textfrac[.053em]{17}{32}.\\
%$\bullet$ \verb|2\textfrac[0em]{17}{32}| produces a fraction with numerator and denominator at the normal heights of superior and inferior figures: 2\textfrac[0em]{17}{32}.\\
@@ -230,7 +232,7 @@ The layout of the TS1 encoded Text Companion font, which is rendered \emph{in re
\fonttable{ETbb-Regular-tosf-ts1}
-\newpage
+
\textbf{List of macros to access the TS1 symbols in text mode:}\\
%(Note that slots 0--12 and 26--29 are accents, used like \verb|\t{a}| for a tie accent over the letter a. Slots 23 and 31 do not contain visible glyphs, but have heights indicated by their names.)
(The commented lines are in {\tt fbb} but not {\tt ETbb}.)
@@ -373,7 +375,9 @@ Because the package supplies a file named {\tt ETbb.fontspec} whose contents lis
Other than the usual choices of figure style, the only remaining choice available is through {\tt StylisticSet=2}, which substitutes the new Sharp S glyphs in place of the familiar \ss, \SS\ and \textsc{\ss}. See the table in the next section for details.
\section*{Selection of the new Sharp S in LaTeX}
-The following table summarizes the behavior of the text macros \verb|\SS|, \verb|\ss| and the macro \verb|\MakeUppercase|.
+There is now an {\tt ETbb} option {\tt sharpS} whose effect in legacy LaTeX is summarized below.
+
+Behavior of the text macros \verb|\SS|, \verb|\ss| and the macro \verb|\MakeUppercase|.
\begin{center}
\begin{tabular}{@{} ccccc @{}}
@@ -385,7 +389,7 @@ The following table summarizes the behavior of the text macros \verb|\SS|, \verb
\hline
\end{tabular}
\end{center}
-In unicode TeX, the behavior laid out in the table above is achieved using {\tt StylisticSet=2}.
+In unicode TeX, the behavior laid out in the table above is achieved using {\tt StylisticSet=2}.
%\begin{center}
% \begin{tabular}{@{} lcl @{}}
@@ -468,6 +472,21 @@ Non tellus orci ac auctor augue mauris augue neque gravida. Bibendum at varius v
}
\end{multicols}
+\textbf{ETbb-Regular-tlf-t1}
+
+\fonttable{ETbb-Regular-tlf-t1}
+\newpage
+\textbf{ETbb1-Regular-tlf-t1}
+
+\fonttable{ETbb1-Regular-tlf-t1}
+\newpage
+\textbf{ETbb-Regular-tlf-sc-t1}
+
+\fonttable{ETbb-Regular-tlf-sc-t1}
+\newpage
+\textbf{ETbb1-Regular-tlf-sc-t1}
+
+\fonttable{ETbb1-Regular-tlf-sc-t1}
%This is a fraction \textfrac{23}{52}, \textfrac{71}{12}, \textfrac{17}{75}, \textfrac{34}{43}.
diff --git a/fonts/etbb/doc/LICENSE b/fonts/etbb/doc/LICENSE
index c4b2f6e5a0..3168d092b7 100644
--- a/fonts/etbb/doc/LICENSE
+++ b/fonts/etbb/doc/LICENSE
@@ -1,7 +1,7 @@
Copyright (c) 2015 Dmitry Krasny, Bonnie Scranton, Edward Tufte.
Copyright (c) 2002--2012 David J. Perry.
Copyright (c) 2019 Daniel Benjamin Miller.
-Copyright (c) 2020--2021 Michael Sharpe.
+Copyright (c) 2020--2022 Michael Sharpe.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
diff --git a/fonts/etbb/enc/etbb_nvr6ig.enc b/fonts/etbb/enc/etbb1_3ccbvp.enc
index df21ddcfe1..0b0eb074f2 100644
--- a/fonts/etbb/enc/etbb_nvr6ig.enc
+++ b/fonts/etbb/enc/etbb1_3ccbvp.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_nvr6ig6btf4vcx43seyfwfdddf
-% Encoding created by otftotfm on Tue Dec 21 11:30:28 2021
+%%AutoEnc1_3ccbvpb2mahh6euinpg3u7qqze
+% Encoding created by otftotfm on Thu Feb 3 15:20:06 2022
% Command line follows encoding
-/AutoEnc_nvr6ig6btf4vcx43seyfwfdddf [
+/AutoEnc1_3ccbvpb2mahh6euinpg3u7qqze [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb1_6b4rhp.enc b/fonts/etbb/enc/etbb1_3ggaku.enc
index f0c613983b..ba6ee24599 100644
--- a/fonts/etbb/enc/etbb1_6b4rhp.enc
+++ b/fonts/etbb/enc/etbb1_3ggaku.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_6b4rhpsa6pxda3dbpecbcbe4hh
-% Encoding created by otftotfm on Tue Dec 21 11:30:26 2021
+%%AutoEnc1_3ggaku22goyxuhnlifc3zal5fb
+% Encoding created by otftotfm on Thu Feb 3 15:20:13 2022
% Command line follows encoding
-/AutoEnc1_6b4rhpsa6pxda3dbpecbcbe4hh [
+/AutoEnc1_3ggaku22goyxuhnlifc3zal5fb [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /uni1E9E.c2sc
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_n6yk3i.enc b/fonts/etbb/enc/etbb1_6bhqsy.enc
index ce1a59f3e2..50f0801e3f 100644
--- a/fonts/etbb/enc/etbb_n6yk3i.enc
+++ b/fonts/etbb/enc/etbb1_6bhqsy.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_n6yk3iegd2fawdz5k6sldx7ioc
-% Encoding created by otftotfm on Tue Dec 21 11:30:32 2021
+%%AutoEnc1_6bhqsy7o4r4kdtepdcv6ql4w2b
+% Encoding created by otftotfm on Thu Feb 3 15:20:03 2022
% Command line follows encoding
-/AutoEnc_n6yk3iegd2fawdz5k6sldx7ioc [
+/AutoEnc1_6bhqsy7o4r4kdtepdcv6ql4w2b [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /uni1E9E.c2sc
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb1_gcyiic.enc b/fonts/etbb/enc/etbb1_6dkfmm.enc
index 5a1342a43a..77b704b457 100644
--- a/fonts/etbb/enc/etbb1_gcyiic.enc
+++ b/fonts/etbb/enc/etbb1_6dkfmm.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_gcyiicz4csxvfbjtqre3wkk2ma
-% Encoding created by otftotfm on Tue Dec 21 11:30:37 2021
+%%AutoEnc1_6dkfmm5qoe73duaaybt37exlbg
+% Encoding created by otftotfm on Thu Feb 3 15:20:10 2022
% Command line follows encoding
-/AutoEnc1_gcyiicz4csxvfbjtqre3wkk2ma [
+/AutoEnc1_6dkfmm5qoe73duaaybt37exlbg [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /uni1E9E.c2sc
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_ue3xcj.enc b/fonts/etbb/enc/etbb1_d63baf.enc
index 61bfea15a0..30dfe8c19d 100644
--- a/fonts/etbb/enc/etbb_ue3xcj.enc
+++ b/fonts/etbb/enc/etbb1_d63baf.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ue3xcj3ucrhmky4gvnr7atygla
-% Encoding created by otftotfm on Tue Dec 21 11:31:03 2021
+%%AutoEnc1_d63bafzc3zwo3hptzgll74aefa
+% Encoding created by otftotfm on Thu Feb 3 15:20:18 2022
% Command line follows encoding
-/AutoEnc_ue3xcj3ucrhmky4gvnr7atygla [
+/AutoEnc1_d63bafzc3zwo3hptzgll74aefa [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash.sc /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /uni1E9E.c2sc
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Italic.otf
-% ETbb-Italic-tlf-sc-t1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-tlf-sc-t1'
diff --git a/fonts/etbb/enc/etbb_6bb767.enc b/fonts/etbb/enc/etbb1_dpvwoq.enc
index 61e9417976..196ad03f16 100644
--- a/fonts/etbb/enc/etbb_6bb767.enc
+++ b/fonts/etbb/enc/etbb1_dpvwoq.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_6bb767vgyf6bkkruaompchxqgf
-% Encoding created by otftotfm on Tue Dec 21 11:31:08 2021
+%%AutoEnc1_dpvwoq5bihazuqgjfnsh6pxf5b
+% Encoding created by otftotfm on Thu Feb 3 15:20:25 2022
% Command line follows encoding
-/AutoEnc_6bb767vgyf6bkkruaompchxqgf [
+/AutoEnc1_dpvwoq5bihazuqgjfnsh6pxf5b [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash.sc /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /uni1E9E.c2sc
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Italic.otf
-% ETbb-Italic-osf-sc-t1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-osf-sc-t1'
diff --git a/fonts/etbb/enc/etbb_ujerr7.enc b/fonts/etbb/enc/etbb1_eqc2ac.enc
index 163efc5006..f40274d64c 100644
--- a/fonts/etbb/enc/etbb_ujerr7.enc
+++ b/fonts/etbb/enc/etbb1_eqc2ac.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ujerr7xbnnjkudzzzotq7l2mrg
-% Encoding created by otftotfm on Tue Dec 21 11:30:25 2021
+%%AutoEnc1_eqc2ac2qcg4bxjlkwezu334h4f
+% Encoding created by otftotfm on Thu Feb 3 15:20:12 2022
% Command line follows encoding
-/AutoEnc_ujerr7xbnnjkudzzzotq7l2mrg [
+/AutoEnc1_eqc2ac2qcg4bxjlkwezu334h4f [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_vbmlbb.enc b/fonts/etbb/enc/etbb1_frcze6.enc
index fb12742376..b944c91d89 100644
--- a/fonts/etbb/enc/etbb_vbmlbb.enc
+++ b/fonts/etbb/enc/etbb1_frcze6.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_vbmlbbxz7tbehbzj5lbnuze2zg
-% Encoding created by otftotfm on Tue Dec 21 11:30:56 2021
+%%AutoEnc1_frcze6nxcs26de2rhkc4n276le
+% Encoding created by otftotfm on Thu Feb 3 15:20:29 2022
% Command line follows encoding
-/AutoEnc_vbmlbbxz7tbehbzj5lbnuze2zg [
+/AutoEnc1_frcze6nxcs26de2rhkc4n276le [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash.sc /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /uni1E9E.c2sc
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Italic.otf
-% ETbb-Italic-lf-sc-t1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-lf-sc-t1'
diff --git a/fonts/etbb/enc/etbb_55s5uq.enc b/fonts/etbb/enc/etbb1_hah5or.enc
index 4bbb18853f..1c0732c290 100644
--- a/fonts/etbb/enc/etbb_55s5uq.enc
+++ b/fonts/etbb/enc/etbb1_hah5or.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_55s5uqo65pdpku3cr7xsyxg5of
-% Encoding created by otftotfm on Tue Dec 21 11:30:36 2021
+%%AutoEnc1_hah5orya7ruvjmqzsfnwzilfbf
+% Encoding created by otftotfm on Thu Feb 3 15:20:09 2022
% Command line follows encoding
-/AutoEnc_55s5uqo65pdpku3cr7xsyxg5of [
+/AutoEnc1_hah5orya7ruvjmqzsfnwzilfbf [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb1_cp6bsz.enc b/fonts/etbb/enc/etbb1_mfrons.enc
index 74e5297b32..92811edbc3 100644
--- a/fonts/etbb/enc/etbb1_cp6bsz.enc
+++ b/fonts/etbb/enc/etbb1_mfrons.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_cp6bsz5iopjtxmf6p55nagrmkh
-% Encoding created by otftotfm on Tue Dec 21 11:31:00 2021
+%%AutoEnc1_mfronshiuahup7no32v7skamif
+% Encoding created by otftotfm on Thu Feb 3 15:20:22 2022
% Command line follows encoding
-/AutoEnc1_cp6bsz5iopjtxmf6p55nagrmkh [
+/AutoEnc1_mfronshiuahup7no32v7skamif [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash.sc /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /uni1E9E.c2sc
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Italic.otf
-% ETbb-Italic-tosf-sc-t1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-tosf-sc-t1'
diff --git a/fonts/etbb/enc/etbb_gojfsq.enc b/fonts/etbb/enc/etbb1_mgm6re.enc
index 5c4d5afecf..fd7b22a3e0 100644
--- a/fonts/etbb/enc/etbb_gojfsq.enc
+++ b/fonts/etbb/enc/etbb1_mgm6re.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_gojfsqpn6o4h6lbxak4mkqz2pf
-% Encoding created by otftotfm on Tue Dec 21 11:30:27 2021
+%%AutoEnc1_mgm6reivyglzs2cwtx35q2y4ye
+% Encoding created by otftotfm on Thu Feb 3 15:20:14 2022
% Command line follows encoding
-/AutoEnc_gojfsqpn6o4h6lbxak4mkqz2pf [
+/AutoEnc1_mgm6reivyglzs2cwtx35q2y4ye [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb1_hbqmiu.enc b/fonts/etbb/enc/etbb1_pvrda3.enc
index a48d1bac66..eed6c8d35d 100644
--- a/fonts/etbb/enc/etbb1_hbqmiu.enc
+++ b/fonts/etbb/enc/etbb1_pvrda3.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_hbqmiufivrhezoy6gtopfrghab
-% Encoding created by otftotfm on Tue Dec 21 11:30:31 2021
+%%AutoEnc1_pvrda3ayd24l2jz24a3yz6f4kd
+% Encoding created by otftotfm on Thu Feb 3 15:20:02 2022
% Command line follows encoding
-/AutoEnc1_hbqmiufivrhezoy6gtopfrghab [
+/AutoEnc1_pvrda3ayd24l2jz24a3yz6f4kd [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb1_rluk7r.enc b/fonts/etbb/enc/etbb1_rluk7r.enc
deleted file mode 100644
index 52b0b267eb..0000000000
--- a/fonts/etbb/enc/etbb1_rluk7r.enc
+++ /dev/null
@@ -1,63 +0,0 @@
-% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-
-%%AutoEnc1_rluk7ruzo437pfvfnnh45fsnde
-% Encoding created by otftotfm on Tue Dec 21 11:30:34 2021
-% Command line follows encoding
-/AutoEnc1_rluk7ruzo437pfvfnnh45fsnde [
-%00
- /grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
- /breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
-%10
- /quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef
- /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef
-%20
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-%30
- /zero.denominator /one.denominator /two.denominator /three.denominator /four.denominator /five.denominator /six.denominator /seven.denominator
- /eight.denominator /nine.denominator /colon /semicolon /less /equal /greater /question
-%40
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
-%50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
-%60
- /quoteleft /a /b /c /d /e /f /g
- /h /i /j /k /l /m /n /o
-%70
- /p /q /r /s /t /u /v /w
- /x /y /z /braceleft /bar /braceright /asciitilde /hyphen
-%80
- /Abreve /Aogonek /Cacute /Ccaron /Dcaron /Ecaron /Eogonek /Gbreve
- /Lacute /Lcaron /Lslash /Nacute /Ncaron /Eng /Ohungarumlaut /Racute
-%90
- /Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
- /Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
-%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
-%B0
- /rcaron /sacute /scaron /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis /zacute /zcaron /zdotaccent /ij /exclamdown /questiondown /sterling
-%C0
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
-%D0
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
-%E0
- /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
-%F0
- /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
-] def
-% Command line: 'otftotfm --automatic --encoding=fontools_t1
-% --tfm-directory=texmf/fonts/tfm/public/etbb
-% --vf-directory=texmf/fonts/vf/public/etbb
-% --type1-directory=texmf/fonts/type1/public/etbb
-% --encoding-directory=texmf/fonts/enc/dvips/etbb
-% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
-% --coding-scheme=EXTENDED TEX FONT ENCODING - LATIN --feature=dnom
-% --ligkern=* {KL} * ETbb-Bold.otf ETbb-Bold-dnom-t1'
diff --git a/fonts/etbb/enc/etbb1_u2xzqd.enc b/fonts/etbb/enc/etbb1_sb7odk.enc
index 8335461684..1b1105d358 100644
--- a/fonts/etbb/enc/etbb1_u2xzqd.enc
+++ b/fonts/etbb/enc/etbb1_sb7odk.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_u2xzqdhpypappkhgw7cwbtqsxe
-% Encoding created by otftotfm on Tue Dec 21 11:30:29 2021
+%%AutoEnc1_sb7odkrwphouyzefmgg7mtfgrf
+% Encoding created by otftotfm on Thu Feb 3 15:20:07 2022
% Command line follows encoding
-/AutoEnc1_u2xzqdhpypappkhgw7cwbtqsxe [
+/AutoEnc1_sb7odkrwphouyzefmgg7mtfgrf [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /uni1E9E.c2sc
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb1_4h6gms.enc b/fonts/etbb/enc/etbb1_vtabip.enc
index 7f0d846ccf..163427e56c 100644
--- a/fonts/etbb/enc/etbb1_4h6gms.enc
+++ b/fonts/etbb/enc/etbb1_vtabip.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_4h6gmskd3mmlebycwa2rvw3mfh
-% Encoding created by otftotfm on Tue Dec 21 11:30:30 2021
+%%AutoEnc1_vtabipmm4e5xag7gq2nwm3p6gc
+% Encoding created by otftotfm on Thu Feb 3 15:20:08 2022
% Command line follows encoding
-/AutoEnc1_4h6gmskd3mmlebycwa2rvw3mfh [
+/AutoEnc1_vtabipmm4e5xag7gq2nwm3p6gc [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb1_ifuncr.enc b/fonts/etbb/enc/etbb1_xaqh3v.enc
index 8aa4fb1f51..f28f668205 100644
--- a/fonts/etbb/enc/etbb1_ifuncr.enc
+++ b/fonts/etbb/enc/etbb1_xaqh3v.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_ifuncrfewwm74pymebmifdmupa
-% Encoding created by otftotfm on Tue Dec 21 11:30:38 2021
+%%AutoEnc1_xaqh3v7my6v7plsnnlq32jk5pb
+% Encoding created by otftotfm on Thu Feb 3 15:20:11 2022
% Command line follows encoding
-/AutoEnc1_ifuncrfewwm74pymebmifdmupa [
+/AutoEnc1_xaqh3v7my6v7plsnnlq32jk5pb [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_frt5zk.enc b/fonts/etbb/enc/etbb1_yziesh.enc
index bc2db263e8..916dd05044 100644
--- a/fonts/etbb/enc/etbb_frt5zk.enc
+++ b/fonts/etbb/enc/etbb1_yziesh.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_frt5zk5mf5bi5r6kaiwbsdwm4h
-% Encoding created by otftotfm on Tue Dec 21 11:30:33 2021
+%%AutoEnc1_yzieshsd44fbunydsrfnu5dloe
+% Encoding created by otftotfm on Thu Feb 3 15:20:04 2022
% Command line follows encoding
-/AutoEnc_frt5zk5mf5bi5r6kaiwbsdwm4h [
+/AutoEnc1_yzieshsd44fbunydsrfnu5dloe [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_242knm.enc b/fonts/etbb/enc/etbb_242knm.enc
index 26f071d804..27d99cf23e 100644
--- a/fonts/etbb/enc/etbb_242knm.enc
+++ b/fonts/etbb/enc/etbb_242knm.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_242knmbltpk57lyn3w752okimf
-% Encoding created by otftotfm on Tue Dec 21 11:30:52 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:25 2022
% Command line follows encoding
/AutoEnc_242knmbltpk57lyn3w752okimf [
%00
diff --git a/fonts/etbb/enc/etbb_dv2xfw.enc b/fonts/etbb/enc/etbb_2jmcdk.enc
index ddab88a894..113661b44a 100644
--- a/fonts/etbb/enc/etbb_dv2xfw.enc
+++ b/fonts/etbb/enc/etbb_2jmcdk.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_dv2xfwwuyxa3wtigrdvdpedgag
-% Encoding created by otftotfm on Tue Dec 21 11:31:15 2021
+%%AutoEnc_2jmcdky4obprojqpxbx7nxnvzf
+% Encoding created by otftotfm on Thu Feb 3 15:20:53 2022
% Command line follows encoding
-/AutoEnc_dv2xfwwuyxa3wtigrdvdpedgag [
+/AutoEnc_2jmcdky4obprojqpxbx7nxnvzf [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.taboldstyle /one.taboldstyle /two.taboldstyle /three.taboldstyle /four.taboldstyle /five.taboldstyle /six.taboldstyle /seven.taboldstyle
diff --git a/fonts/etbb/enc/etbb_no4mhs.enc b/fonts/etbb/enc/etbb_2ynk4h.enc
index 4216de96ba..bd3125570d 100644
--- a/fonts/etbb/enc/etbb_no4mhs.enc
+++ b/fonts/etbb/enc/etbb_2ynk4h.enc
@@ -1,15 +1,15 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_no4mhsvdevbqot7r3poyrn6ifd
-% Encoding created by otftotfm on Tue Dec 21 11:30:39 2021
+%%AutoEnc_2ynk4h3uuip4hyb2vj2xqeci5c
+% Encoding created by otftotfm on Thu Feb 3 15:20:15 2022
% Command line follows encoding
-/AutoEnc_no4mhsvdevbqot7r3poyrn6ifd [
+/AutoEnc_2ynk4h3uuip4hyb2vj2xqeci5c [
%00
/grave.superior /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
%10
/quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef
- /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /dotlessi /dotlessj /ff /fi /fl /ffi /ffl
%20
/space /exclam.superior /quotedbl.superior /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
/parenleft.superior /parenright.superior /asterisk.superior /plus.superior /comma.superior /hyphen.superior /period.superior /slash.superior
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave.superior /eacute.superior /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde.superior /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_33mftd.enc b/fonts/etbb/enc/etbb_33mftd.enc
index 63cf096066..535a253e34 100644
--- a/fonts/etbb/enc/etbb_33mftd.enc
+++ b/fonts/etbb/enc/etbb_33mftd.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_33mftda5zpj2atc2k5o52aguyh
-% Encoding created by otftotfm on Tue Dec 21 11:30:36 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:10 2022
% Command line follows encoding
/AutoEnc_33mftda5zpj2atc2k5o52aguyh [
%00
diff --git a/fonts/etbb/enc/etbb1_nvr6ig.enc b/fonts/etbb/enc/etbb_3ccbvp.enc
index 5feabf5729..e2fbc602ea 100644
--- a/fonts/etbb/enc/etbb1_nvr6ig.enc
+++ b/fonts/etbb/enc/etbb_3ccbvp.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_nvr6ig6btf4vcx43seyfwfdddf
-% Encoding created by otftotfm on Tue Dec 21 11:30:28 2021
+%%AutoEnc_3ccbvpb2mahh6euinpg3u7qqze
+% Encoding created by otftotfm on Thu Feb 3 15:20:06 2022
% Command line follows encoding
-/AutoEnc1_nvr6ig6btf4vcx43seyfwfdddf [
+/AutoEnc_3ccbvpb2mahh6euinpg3u7qqze [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_6b4rhp.enc b/fonts/etbb/enc/etbb_3ggaku.enc
index fcf1cd949f..9f0bc69f5d 100644
--- a/fonts/etbb/enc/etbb_6b4rhp.enc
+++ b/fonts/etbb/enc/etbb_3ggaku.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_6b4rhpsa6pxda3dbpecbcbe4hh
-% Encoding created by otftotfm on Tue Dec 21 11:30:26 2021
+%%AutoEnc_3ggaku22goyxuhnlifc3zal5fb
+% Encoding created by otftotfm on Thu Feb 3 15:20:13 2022
% Command line follows encoding
-/AutoEnc_6b4rhpsa6pxda3dbpecbcbe4hh [
+/AutoEnc_3ggaku22goyxuhnlifc3zal5fb [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_pijcl4.enc b/fonts/etbb/enc/etbb_3obh62.enc
index 8f6b611206..bf932cbd07 100644
--- a/fonts/etbb/enc/etbb_pijcl4.enc
+++ b/fonts/etbb/enc/etbb_3obh62.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_pijcl45xbcrh3ujmxpu2uuufoe
-% Encoding created by otftotfm on Tue Dec 21 11:30:24 2021
+%%AutoEnc_3obh62jl4yytmw2ucdmgikybva
+% Encoding created by otftotfm on Thu Feb 3 15:20:12 2022
% Command line follows encoding
-/AutoEnc_pijcl45xbcrh3ujmxpu2uuufoe [
+/AutoEnc_3obh62jl4yytmw2ucdmgikybva [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.pnum /one.pnum /two.pnum /three.pnum /four.pnum /five.pnum /six.pnum /seven.pnum
diff --git a/fonts/etbb/enc/etbb_p4wmli.enc b/fonts/etbb/enc/etbb_3pymqv.enc
index 3c131db7c2..0059aa5b41 100644
--- a/fonts/etbb/enc/etbb_p4wmli.enc
+++ b/fonts/etbb/enc/etbb_3pymqv.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_p4wmligvvkue2xskkzbfmabuja
-% Encoding created by otftotfm on Tue Dec 21 11:30:33 2021
+%%AutoEnc_3pymqv57edd7wd55vh4pbuqfmc
+% Encoding created by otftotfm on Thu Feb 3 15:20:04 2022
% Command line follows encoding
-/AutoEnc_p4wmligvvkue2xskkzbfmabuja [
+/AutoEnc_3pymqv57edd7wd55vh4pbuqfmc [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero /one /two /three /four /five /six /seven
diff --git a/fonts/etbb/enc/etbb_upf3od.enc b/fonts/etbb/enc/etbb_3ygfa2.enc
index 018e1d277a..8b89cca7ea 100644
--- a/fonts/etbb/enc/etbb_upf3od.enc
+++ b/fonts/etbb/enc/etbb_3ygfa2.enc
@@ -1,15 +1,15 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_upf3oddxlsq2xphry33a6uekvh
-% Encoding created by otftotfm on Tue Dec 21 11:30:35 2021
+%%AutoEnc_3ygfa2oqxsmkth5v7kgndph2kb
+% Encoding created by otftotfm on Thu Feb 3 15:20:05 2022
% Command line follows encoding
-/AutoEnc_upf3oddxlsq2xphry33a6uekvh [
+/AutoEnc_3ygfa2oqxsmkth5v7kgndph2kb [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
%10
/quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef
- /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /dotlessi /dotlessj /ff /fi /fl /ffi /ffl
%20
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_ziol45.enc b/fonts/etbb/enc/etbb_42bwpg.enc
index f59cf8ea22..24b930a061 100644
--- a/fonts/etbb/enc/etbb_ziol45.enc
+++ b/fonts/etbb/enc/etbb_42bwpg.enc
@@ -1,15 +1,15 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ziol45eykyi2baku6kum6xzyig
-% Encoding created by otftotfm on Tue Dec 21 11:31:10 2021
+%%AutoEnc_42bwpggtmdkf77p747hl4bh5wg
+% Encoding created by otftotfm on Thu Feb 3 15:20:46 2022
% Command line follows encoding
-/AutoEnc_ziol45eykyi2baku6kum6xzyig [
+/AutoEnc_42bwpggtmdkf77p747hl4bh5wg [
%00
/grave.superior /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
%10
/quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef
- /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /dotlessi /dotlessj /ff /fi /fl /ffi /ffl
%20
/space /exclam.superior /quotedbl.superior /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
/parenleft.superior /parenright.superior /asterisk.superior /plus.superior /comma.superior /hyphen.superior /period.superior /slash.superior
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave.superior /eacute.superior /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde.superior /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_4hpi45.enc b/fonts/etbb/enc/etbb_4hpi45.enc
index 5d9936f64a..7d0f6ef908 100644
--- a/fonts/etbb/enc/etbb_4hpi45.enc
+++ b/fonts/etbb/enc/etbb_4hpi45.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_4hpi45xua3rf7rmnl54bpggxkg
-% Encoding created by otftotfm on Tue Dec 21 11:30:42 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:30 2022
% Command line follows encoding
/AutoEnc_4hpi45xua3rf7rmnl54bpggxkg [
%00
diff --git a/fonts/etbb/enc/etbb_dz2nen.enc b/fonts/etbb/enc/etbb_4o3pf4.enc
index cb324a9b79..d6a85d5307 100644
--- a/fonts/etbb/enc/etbb_dz2nen.enc
+++ b/fonts/etbb/enc/etbb_4o3pf4.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_dz2nenk67xbt7khdbdbcfb6m7a
-% Encoding created by otftotfm on Tue Dec 21 11:31:03 2021
+%%AutoEnc_4o3pf4tqgxtijtwbnb6hzisyvh
+% Encoding created by otftotfm on Thu Feb 3 15:20:03 2022
% Command line follows encoding
-/AutoEnc_dz2nenk67xbt7khdbdbcfb6m7a [
+/AutoEnc_4o3pf4tqgxtijtwbnb6hzisyvh [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero /one /two /three /four /five /six /seven
@@ -64,4 +64,4 @@
% --ligkern=f f =: ff --ligkern=ff i =: ffi --ligkern=ff l =: ffl
% --unicoding=germandbls =: SSsmall --unicoding=ff =: FFsmall --unicoding=fi
% =: FIsmall --unicoding=ffi =: FFIsmall --unicoding=fl =: FLsmall
-% --unicoding=ffl =: FFLsmall ETbb-Italic.otf ETbb-Italic-tlf-sc-ot1'
+% --unicoding=ffl =: FFLsmall ETbb-Bold.otf ETbb-Bold-tlf-sc-ot1'
diff --git a/fonts/etbb/enc/etbb_4sxvu4.enc b/fonts/etbb/enc/etbb_4sxvu4.enc
index 47e0794aaa..081ed67b36 100644
--- a/fonts/etbb/enc/etbb_4sxvu4.enc
+++ b/fonts/etbb/enc/etbb_4sxvu4.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_4sxvu4thduhlpavew6yzmuysdd
-% Encoding created by otftotfm on Tue Dec 21 11:31:23 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:51 2022
% Command line follows encoding
/AutoEnc_4sxvu4thduhlpavew6yzmuysdd [
%00
diff --git a/fonts/etbb/enc/etbb_rt4kro.enc b/fonts/etbb/enc/etbb_4xv7ax.enc
index a156da5308..019d8dc661 100644
--- a/fonts/etbb/enc/etbb_rt4kro.enc
+++ b/fonts/etbb/enc/etbb_4xv7ax.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_rt4krokhlnwam4wxhivtc42zod
-% Encoding created by otftotfm on Tue Dec 21 11:30:28 2021
+%%AutoEnc_4xv7ax3vr2fqoyetcuom3bocia
+% Encoding created by otftotfm on Thu Feb 3 15:20:06 2022
% Command line follows encoding
-/AutoEnc_rt4krokhlnwam4wxhivtc42zod [
+/AutoEnc_4xv7ax3vr2fqoyetcuom3bocia [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.taboldstyle /one.taboldstyle /two.taboldstyle /three.taboldstyle /four.taboldstyle /five.taboldstyle /six.taboldstyle /seven.taboldstyle
diff --git a/fonts/etbb/enc/etbb_3li7dq.enc b/fonts/etbb/enc/etbb_5drz2o.enc
index d64a34e1c0..1cec2ab00a 100644
--- a/fonts/etbb/enc/etbb_3li7dq.enc
+++ b/fonts/etbb/enc/etbb_5drz2o.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_3li7dqpy2izcpma72gvve2muqf
-% Encoding created by otftotfm on Tue Dec 21 11:30:35 2021
+%%AutoEnc_5drz2o53tqn6ics5yhftb5oqyg
+% Encoding created by otftotfm on Thu Feb 3 15:20:09 2022
% Command line follows encoding
-/AutoEnc_3li7dqpy2izcpma72gvve2muqf [
+/AutoEnc_5drz2o53tqn6ics5yhftb5oqyg [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.onum /one.onum /two.onum /three.onum /four.onum /five.onum /six.onum /seven.onum
diff --git a/fonts/etbb/enc/etbb_5hqhd4.enc b/fonts/etbb/enc/etbb_5hqhd4.enc
deleted file mode 100644
index 0677e4e5fe..0000000000
--- a/fonts/etbb/enc/etbb_5hqhd4.enc
+++ /dev/null
@@ -1,68 +0,0 @@
-% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-
-%%AutoEnc_5hqhd4mz7tebzmdeshgwzm7htg
-% Encoding created by otftotfm on Tue Dec 21 11:30:32 2021
-% Command line follows encoding
-/AutoEnc_5hqhd4mz7tebzmdeshgwzm7htg [
-%00
- /.notdef /Euro /.notdef /.notdef /fraction /dotaccent /hungarumlaut /ogonek
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%10
- /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
- /cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
-%20
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-%30
- /zero /one /two /three /four /five /six /seven
- /eight /nine /colon /semicolon /less /equal /greater /question
-%40
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
-%50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /circumflex /underscore
-%60
- /quoteleft /a.sc /b.sc /c.sc /d.sc /e.sc /f.sc /g.sc
- /h.sc /i.sc /j.sc /k.sc /l.sc /m.sc /n.sc /o.sc
-%70
- /p.sc /q.sc /r.sc /s.sc /t.sc /u.sc /v.sc /w.sc
- /x.sc /y.sc /z.sc /braceleft /bar /braceright /tilde /dieresis
-%80
- /Lslash /quotesingle /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft /OE /Zcaron /asciicircum /minus
-%90
- /lslash /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron.sc /guilsinglright /oe.sc /zcaron.sc /asciitilde /Ydieresis
-%A0
- /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /.notdef /registered /macron
-%B0
- /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
-%C0
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
-%D0
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
-%E0
- /agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
- /egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
-%F0
- /eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /divide
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /ydieresis.sc
-] def
-% Command line: 'otftotfm --automatic --encoding=fontools_ly1
-% --tfm-directory=texmf/fonts/tfm/public/etbb
-% --vf-directory=texmf/fonts/vf/public/etbb
-% --type1-directory=texmf/fonts/type1/public/etbb
-% --encoding-directory=texmf/fonts/enc/dvips/etbb
-% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
-% --coding-scheme=TEX TYPEWRITER AND WINDOWS ANSI --feature=kern
-% --feature=liga --feature=lnum --feature=smcp --feature=tnum --ligkern=f i
-% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
-% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
-% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Bold.otf
-% ETbb-Bold-tlf-sc-ly1'
diff --git a/fonts/etbb/enc/etbb_5iollt.enc b/fonts/etbb/enc/etbb_5iollt.enc
index 28c632d0a2..1a3452cd2b 100644
--- a/fonts/etbb/enc/etbb_5iollt.enc
+++ b/fonts/etbb/enc/etbb_5iollt.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_5iolltwrolq7y3af3zfxbxwjhg
-% Encoding created by otftotfm on Tue Dec 21 11:30:56 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:43 2022
% Command line follows encoding
/AutoEnc_5iolltwrolq7y3af3zfxbxwjhg [
%00
diff --git a/fonts/etbb/enc/etbb_5ll7zh.enc b/fonts/etbb/enc/etbb_5ll7zh.enc
deleted file mode 100644
index e9b3ec527d..0000000000
--- a/fonts/etbb/enc/etbb_5ll7zh.enc
+++ /dev/null
@@ -1,68 +0,0 @@
-% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-
-%%AutoEnc_5ll7zhwvujbykp4klqbuo6xcpa
-% Encoding created by otftotfm on Tue Dec 21 11:30:29 2021
-% Command line follows encoding
-/AutoEnc_5ll7zhwvujbykp4klqbuo6xcpa [
-%00
- /.notdef /Euro /.notdef /.notdef /fraction /dotaccent /hungarumlaut /ogonek
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%10
- /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
- /cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
-%20
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-%30
- /zero.taboldstyle /one.taboldstyle /two.taboldstyle /three.taboldstyle /four.taboldstyle /five.taboldstyle /six.taboldstyle /seven.taboldstyle
- /eight.taboldstyle /nine.taboldstyle /colon /semicolon /less /equal /greater /question
-%40
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
-%50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /circumflex /underscore
-%60
- /quoteleft /a.sc /b.sc /c.sc /d.sc /e.sc /f.sc /g.sc
- /h.sc /i.sc /j.sc /k.sc /l.sc /m.sc /n.sc /o.sc
-%70
- /p.sc /q.sc /r.sc /s.sc /t.sc /u.sc /v.sc /w.sc
- /x.sc /y.sc /z.sc /braceleft /bar /braceright /tilde /dieresis
-%80
- /Lslash /quotesingle /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft /OE /Zcaron /asciicircum /minus
-%90
- /lslash /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron.sc /guilsinglright /oe.sc /zcaron.sc /asciitilde /Ydieresis
-%A0
- /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /.notdef /registered /macron
-%B0
- /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
-%C0
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
-%D0
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
-%E0
- /agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
- /egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
-%F0
- /eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /divide
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /ydieresis.sc
-] def
-% Command line: 'otftotfm --automatic --encoding=fontools_ly1
-% --tfm-directory=texmf/fonts/tfm/public/etbb
-% --vf-directory=texmf/fonts/vf/public/etbb
-% --type1-directory=texmf/fonts/type1/public/etbb
-% --encoding-directory=texmf/fonts/enc/dvips/etbb
-% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
-% --coding-scheme=TEX TYPEWRITER AND WINDOWS ANSI --feature=kern
-% --feature=liga --feature=onum --feature=smcp --feature=tnum --ligkern=f i
-% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
-% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
-% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Bold.otf
-% ETbb-Bold-tosf-sc-ly1'
diff --git a/fonts/etbb/enc/etbb_nfh2ow.enc b/fonts/etbb/enc/etbb_5um4so.enc
index f7aa7faf3c..413104bca7 100644
--- a/fonts/etbb/enc/etbb_nfh2ow.enc
+++ b/fonts/etbb/enc/etbb_5um4so.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_nfh2owxdg6o6hn6aumhzqgw4xe
-% Encoding created by otftotfm on Tue Dec 21 11:31:14 2021
+%%AutoEnc_5um4soi5y2ah3naxc472okitmh
+% Encoding created by otftotfm on Thu Feb 3 15:20:52 2022
% Command line follows encoding
-/AutoEnc_nfh2owxdg6o6hn6aumhzqgw4xe [
+/AutoEnc_5um4soi5y2ah3naxc472okitmh [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.taboldstyle /one.taboldstyle /two.taboldstyle /three.taboldstyle /four.taboldstyle /five.taboldstyle /six.taboldstyle /seven.taboldstyle
diff --git a/fonts/etbb/enc/etbb_65swoa.enc b/fonts/etbb/enc/etbb_65swoa.enc
index cfd2617c53..b3d4929b89 100644
--- a/fonts/etbb/enc/etbb_65swoa.enc
+++ b/fonts/etbb/enc/etbb_65swoa.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_65swoaksouobshgplr6wc46zbe
-% Encoding created by otftotfm on Tue Dec 21 11:30:58 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:35 2022
% Command line follows encoding
/AutoEnc_65swoaksouobshgplr6wc46zbe [
%00
@@ -60,4 +60,4 @@
% --encoding-directory=texmf/fonts/enc/dvips/etbb
% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
% --coding-scheme=TEX TEXT COMPANION SYMBOLS 1---TS1 --feature=onum
-% --feature=pnum ETbb-Italic.otf ETbb-Italic-lf-ts1'
+% --feature=tnum ETbb-Italic.otf ETbb-Italic-tlf-ts1'
diff --git a/fonts/etbb/enc/etbb1_n6yk3i.enc b/fonts/etbb/enc/etbb_6bhqsy.enc
index f1cc5f3ba2..7dda815621 100644
--- a/fonts/etbb/enc/etbb1_n6yk3i.enc
+++ b/fonts/etbb/enc/etbb_6bhqsy.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_n6yk3iegd2fawdz5k6sldx7ioc
-% Encoding created by otftotfm on Tue Dec 21 11:30:32 2021
+%%AutoEnc_6bhqsy7o4r4kdtepdcv6ql4w2b
+% Encoding created by otftotfm on Thu Feb 3 15:20:03 2022
% Command line follows encoding
-/AutoEnc1_n6yk3iegd2fawdz5k6sldx7ioc [
+/AutoEnc_6bhqsy7o4r4kdtepdcv6ql4w2b [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_gcyiic.enc b/fonts/etbb/enc/etbb_6dkfmm.enc
index dbf10e267e..a0ed28be7f 100644
--- a/fonts/etbb/enc/etbb_gcyiic.enc
+++ b/fonts/etbb/enc/etbb_6dkfmm.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_gcyiicz4csxvfbjtqre3wkk2ma
-% Encoding created by otftotfm on Tue Dec 21 11:30:37 2021
+%%AutoEnc_6dkfmm5qoe73duaaybt37exlbg
+% Encoding created by otftotfm on Thu Feb 3 15:20:10 2022
% Command line follows encoding
-/AutoEnc_gcyiicz4csxvfbjtqre3wkk2ma [
+/AutoEnc_6dkfmm5qoe73duaaybt37exlbg [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_6z6nrw.enc b/fonts/etbb/enc/etbb_6z6nrw.enc
index ece8c22870..fa0ff8fc52 100644
--- a/fonts/etbb/enc/etbb_6z6nrw.enc
+++ b/fonts/etbb/enc/etbb_6z6nrw.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_6z6nrwwfi372xivperdacs5nkc
-% Encoding created by otftotfm on Tue Dec 21 11:31:14 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:51 2022
% Command line follows encoding
/AutoEnc_6z6nrwwfi372xivperdacs5nkc [
%00
@@ -60,4 +60,4 @@
% --encoding-directory=texmf/fonts/enc/dvips/etbb
% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
% --coding-scheme=TEX TEXT COMPANION SYMBOLS 1---TS1 --feature=onum
-% --feature=pnum ETbb-Regular.otf ETbb-Regular-lf-ts1'
+% --feature=tnum ETbb-Regular.otf ETbb-Regular-tlf-ts1'
diff --git a/fonts/etbb/enc/etbb_7dlbn4.enc b/fonts/etbb/enc/etbb_7dlbn4.enc
index 91c1071bbb..9876986a86 100644
--- a/fonts/etbb/enc/etbb_7dlbn4.enc
+++ b/fonts/etbb/enc/etbb_7dlbn4.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_7dlbn4dwkeu5h7cbv2vzasjpuf
-% Encoding created by otftotfm on Tue Dec 21 11:31:16 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:08 2022
% Command line follows encoding
/AutoEnc_7dlbn4dwkeu5h7cbv2vzasjpuf [
%00
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Regular.otf
-% ETbb-Regular-tosf-sc-ly1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Bold.otf
+% ETbb-Bold-tosf-sc-ly1'
diff --git a/fonts/etbb/enc/etbb_ea2dgh.enc b/fonts/etbb/enc/etbb_7ipmvr.enc
index 4467bda45f..ce0b384485 100644
--- a/fonts/etbb/enc/etbb_ea2dgh.enc
+++ b/fonts/etbb/enc/etbb_7ipmvr.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ea2dgh24m4p3kft426m6vb5nre
-% Encoding created by otftotfm on Tue Dec 21 11:30:54 2021
+%%AutoEnc_7ipmvrsyviiz52uszqgrdpmzec
+% Encoding created by otftotfm on Thu Feb 3 15:20:31 2022
% Command line follows encoding
-/AutoEnc_ea2dgh24m4p3kft426m6vb5nre [
+/AutoEnc_7ipmvrsyviiz52uszqgrdpmzec [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave.superior /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam.superior /quotedblright /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
+ /.notdef /exclam.superior /quotedblright /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
/parenleft.superior /parenright.superior /asterisk.superior /plus.superior /comma.superior /hyphen.superior /period.superior /slash.superior
%30
/zero.superior /one.superior /two.superior /three.superior /four.superior /five.superior /six.superior /seven.superior
diff --git a/fonts/etbb/enc/etbb_7pzsmk.enc b/fonts/etbb/enc/etbb_7pzsmk.enc
index fd3b189e21..5af9171aa8 100644
--- a/fonts/etbb/enc/etbb_7pzsmk.enc
+++ b/fonts/etbb/enc/etbb_7pzsmk.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_7pzsmkr2zp4z2jzsqyz5xypura
-% Encoding created by otftotfm on Tue Dec 21 11:31:27 2021
+% Encoding created by otftotfm on Thu Feb 3 15:21:02 2022
% Command line follows encoding
/AutoEnc_7pzsmkr2zp4z2jzsqyz5xypura [
%00
diff --git a/fonts/etbb/enc/etbb_7t4ywj.enc b/fonts/etbb/enc/etbb_7t4ywj.enc
index b96bb59a6a..9695837e6b 100644
--- a/fonts/etbb/enc/etbb_7t4ywj.enc
+++ b/fonts/etbb/enc/etbb_7t4ywj.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_7t4ywj5n7dfcy72ielrltqzb7a
-% Encoding created by otftotfm on Tue Dec 21 11:30:55 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:31 2022
% Command line follows encoding
/AutoEnc_7t4ywj5n7dfcy72ielrltqzb7a [
%00
diff --git a/fonts/etbb/enc/etbb_7tqudy.enc b/fonts/etbb/enc/etbb_7tqudy.enc
index c90f4c5890..995591e95b 100644
--- a/fonts/etbb/enc/etbb_7tqudy.enc
+++ b/fonts/etbb/enc/etbb_7tqudy.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_7tqudygnbzgjmkxijlp2ftxcbc
-% Encoding created by otftotfm on Tue Dec 21 11:31:19 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:04 2022
% Command line follows encoding
/AutoEnc_7tqudygnbzgjmkxijlp2ftxcbc [
%00
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Regular.otf
-% ETbb-Regular-tlf-sc-ly1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Bold.otf
+% ETbb-Bold-tlf-sc-ly1'
diff --git a/fonts/etbb/enc/etbb_7uz5xh.enc b/fonts/etbb/enc/etbb_7uz5xh.enc
index 6d483b8771..e9d90aa9ad 100644
--- a/fonts/etbb/enc/etbb_7uz5xh.enc
+++ b/fonts/etbb/enc/etbb_7uz5xh.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_7uz5xhzp5ouhs2ck6ma6xzvyvd
-% Encoding created by otftotfm on Tue Dec 21 11:31:12 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:14 2022
% Command line follows encoding
/AutoEnc_7uz5xhzp5ouhs2ck6ma6xzvyvd [
%00
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Regular.otf
-% ETbb-Regular-lf-sc-ly1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Bold.otf
+% ETbb-Bold-lf-sc-ly1'
diff --git a/fonts/etbb/enc/etbb_atf2m5.enc b/fonts/etbb/enc/etbb_atf2m5.enc
index dc788e1211..76f7157af8 100644
--- a/fonts/etbb/enc/etbb_atf2m5.enc
+++ b/fonts/etbb/enc/etbb_atf2m5.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_atf2m5uqgbwoyyy5ueppslzajb
-% Encoding created by otftotfm on Tue Dec 21 11:30:39 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:16 2022
% Command line follows encoding
/AutoEnc_atf2m5uqgbwoyyy5ueppslzajb [
%00
diff --git a/fonts/etbb/enc/etbb_4qfaj2.enc b/fonts/etbb/enc/etbb_b3flk2.enc
index 28e8f9af2e..bb45fa7002 100644
--- a/fonts/etbb/enc/etbb_4qfaj2.enc
+++ b/fonts/etbb/enc/etbb_b3flk2.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_4qfaj2fkf6gpmcsvmpnfqrb6ib
-% Encoding created by otftotfm on Tue Dec 21 11:31:16 2021
+%%AutoEnc_b3flk2jsqjnp3kqecy442b3yoe
+% Encoding created by otftotfm on Thu Feb 3 15:20:54 2022
% Command line follows encoding
-/AutoEnc_4qfaj2fkf6gpmcsvmpnfqrb6ib [
+/AutoEnc_b3flk2jsqjnp3kqecy442b3yoe [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.taboldstyle /one.taboldstyle /two.taboldstyle /three.taboldstyle /four.taboldstyle /five.taboldstyle /six.taboldstyle /seven.taboldstyle
diff --git a/fonts/etbb/enc/etbb_agksat.enc b/fonts/etbb/enc/etbb_bb5xlm.enc
index b345ee44e4..217cc32e81 100644
--- a/fonts/etbb/enc/etbb_agksat.enc
+++ b/fonts/etbb/enc/etbb_bb5xlm.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_agksatcf7xec4mnvs5v6hcdxae
-% Encoding created by otftotfm on Tue Dec 21 11:30:59 2021
+%%AutoEnc_bb5xlmcmsoo2tj7ql6db5s2fad
+% Encoding created by otftotfm on Thu Feb 3 15:20:07 2022
% Command line follows encoding
-/AutoEnc_agksatcf7xec4mnvs5v6hcdxae [
+/AutoEnc_bb5xlmcmsoo2tj7ql6db5s2fad [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.taboldstyle /one.taboldstyle /two.taboldstyle /three.taboldstyle /four.taboldstyle /five.taboldstyle /six.taboldstyle /seven.taboldstyle
@@ -64,4 +64,4 @@
% --ligkern=f f =: ff --ligkern=ff i =: ffi --ligkern=ff l =: ffl
% --unicoding=germandbls =: SSsmall --unicoding=ff =: FFsmall --unicoding=fi
% =: FIsmall --unicoding=ffi =: FFIsmall --unicoding=fl =: FLsmall
-% --unicoding=ffl =: FFLsmall ETbb-Italic.otf ETbb-Italic-tosf-sc-ot1'
+% --unicoding=ffl =: FFLsmall ETbb-Bold.otf ETbb-Bold-tosf-sc-ot1'
diff --git a/fonts/etbb/enc/etbb_boj3jd.enc b/fonts/etbb/enc/etbb_boj3jd.enc
index 823769313b..501e32d382 100644
--- a/fonts/etbb/enc/etbb_boj3jd.enc
+++ b/fonts/etbb/enc/etbb_boj3jd.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_boj3jd46imhlttx4pucalv5dud
-% Encoding created by otftotfm on Tue Dec 21 11:30:44 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:23 2022
% Command line follows encoding
/AutoEnc_boj3jd46imhlttx4pucalv5dud [
%00
diff --git a/fonts/etbb/enc/etbb_brounl.enc b/fonts/etbb/enc/etbb_brounl.enc
deleted file mode 100644
index 5732415aba..0000000000
--- a/fonts/etbb/enc/etbb_brounl.enc
+++ /dev/null
@@ -1,68 +0,0 @@
-% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-
-%%AutoEnc_brounlscz4abnslwmf4hmgz7mb
-% Encoding created by otftotfm on Tue Dec 21 11:30:37 2021
-% Command line follows encoding
-/AutoEnc_brounlscz4abnslwmf4hmgz7mb [
-%00
- /.notdef /Euro /.notdef /.notdef /fraction /dotaccent /hungarumlaut /ogonek
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%10
- /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
- /cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
-%20
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-%30
- /zero.onum /one.onum /two.onum /three.onum /four.onum /five.onum /six.onum /seven.onum
- /eight.onum /nine.onum /colon /semicolon /less /equal /greater /question
-%40
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
-%50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /circumflex /underscore
-%60
- /quoteleft /a.sc /b.sc /c.sc /d.sc /e.sc /f.sc /g.sc
- /h.sc /i.sc /j.sc /k.sc /l.sc /m.sc /n.sc /o.sc
-%70
- /p.sc /q.sc /r.sc /s.sc /t.sc /u.sc /v.sc /w.sc
- /x.sc /y.sc /z.sc /braceleft /bar /braceright /tilde /dieresis
-%80
- /Lslash /quotesingle /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft /OE /Zcaron /asciicircum /minus
-%90
- /lslash /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron.sc /guilsinglright /oe.sc /zcaron.sc /asciitilde /Ydieresis
-%A0
- /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /.notdef /registered /macron
-%B0
- /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
-%C0
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
-%D0
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
-%E0
- /agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
- /egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
-%F0
- /eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /divide
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /ydieresis.sc
-] def
-% Command line: 'otftotfm --automatic --encoding=fontools_ly1
-% --tfm-directory=texmf/fonts/tfm/public/etbb
-% --vf-directory=texmf/fonts/vf/public/etbb
-% --type1-directory=texmf/fonts/type1/public/etbb
-% --encoding-directory=texmf/fonts/enc/dvips/etbb
-% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
-% --coding-scheme=TEX TYPEWRITER AND WINDOWS ANSI --feature=kern
-% --feature=liga --feature=onum --feature=pnum --feature=smcp --ligkern=f i
-% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
-% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
-% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Bold.otf
-% ETbb-Bold-osf-sc-ly1'
diff --git a/fonts/etbb/enc/etbb_cq6xx2.enc b/fonts/etbb/enc/etbb_cq6xx2.enc
index 88a9c044c5..8ff4bee337 100644
--- a/fonts/etbb/enc/etbb_cq6xx2.enc
+++ b/fonts/etbb/enc/etbb_cq6xx2.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_cq6xx2fn5plzdjapa525zg3uad
-% Encoding created by otftotfm on Tue Dec 21 11:30:54 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:27 2022
% Command line follows encoding
/AutoEnc_cq6xx2fn5plzdjapa525zg3uad [
%00
diff --git a/fonts/etbb/enc/etbb_cxbogn.enc b/fonts/etbb/enc/etbb_cxbogn.enc
index 7c82d5d7ef..7e93d11282 100644
--- a/fonts/etbb/enc/etbb_cxbogn.enc
+++ b/fonts/etbb/enc/etbb_cxbogn.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_cxbognvjc6orz6vd7e4qkufizg
-% Encoding created by otftotfm on Tue Dec 21 11:31:04 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:35 2022
% Command line follows encoding
/AutoEnc_cxbognvjc6orz6vd7e4qkufizg [
%00
diff --git a/fonts/etbb/enc/etbb_cyp5f5.enc b/fonts/etbb/enc/etbb_cyp5f5.enc
index 67db8c7c07..da641a61ba 100644
--- a/fonts/etbb/enc/etbb_cyp5f5.enc
+++ b/fonts/etbb/enc/etbb_cyp5f5.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_cyp5f54p4q6zxw5lofrrfueuud
-% Encoding created by otftotfm on Tue Dec 21 11:31:03 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:34 2022
% Command line follows encoding
/AutoEnc_cyp5f54p4q6zxw5lofrrfueuud [
%00
diff --git a/fonts/etbb/enc/etbb_cyyszv.enc b/fonts/etbb/enc/etbb_cyyszv.enc
index 0993a7619a..1397ccb105 100644
--- a/fonts/etbb/enc/etbb_cyyszv.enc
+++ b/fonts/etbb/enc/etbb_cyyszv.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_cyyszv3tgoadb7habjipfqte7b
-% Encoding created by otftotfm on Tue Dec 21 11:30:43 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:22 2022
% Command line follows encoding
/AutoEnc_cyyszv3tgoadb7habjipfqte7b [
%00
diff --git a/fonts/etbb/enc/etbb1_ue3xcj.enc b/fonts/etbb/enc/etbb_d63baf.enc
index e2ce804fab..2bb8ec15c3 100644
--- a/fonts/etbb/enc/etbb1_ue3xcj.enc
+++ b/fonts/etbb/enc/etbb_d63baf.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_ue3xcj3ucrhmky4gvnr7atygla
-% Encoding created by otftotfm on Tue Dec 21 11:31:03 2021
+%%AutoEnc_d63bafzc3zwo3hptzgll74aefa
+% Encoding created by otftotfm on Thu Feb 3 15:20:18 2022
% Command line follows encoding
-/AutoEnc1_ue3xcj3ucrhmky4gvnr7atygla [
+/AutoEnc_d63bafzc3zwo3hptzgll74aefa [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash.sc /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Italic.otf
-% ETbb-Italic-tlf-sc-t1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-tlf-sc-t1'
diff --git a/fonts/etbb/enc/etbb_ay4ati.enc b/fonts/etbb/enc/etbb_dkuysn.enc
index 4db2b483ed..1a7dd37a0e 100644
--- a/fonts/etbb/enc/etbb_ay4ati.enc
+++ b/fonts/etbb/enc/etbb_dkuysn.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ay4atisik7ffogqasevzhgjvtc
-% Encoding created by otftotfm on Tue Dec 21 11:30:37 2021
+%%AutoEnc_dkuysnbvtz2cwytarhg33ujsoa
+% Encoding created by otftotfm on Thu Feb 3 15:20:11 2022
% Command line follows encoding
-/AutoEnc_ay4atisik7ffogqasevzhgjvtc [
+/AutoEnc_dkuysnbvtz2cwytarhg33ujsoa [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.onum /one.onum /two.onum /three.onum /four.onum /five.onum /six.onum /seven.onum
diff --git a/fonts/etbb/enc/etbb1_6bb767.enc b/fonts/etbb/enc/etbb_dpvwoq.enc
index 44c29d70a3..b03910e971 100644
--- a/fonts/etbb/enc/etbb1_6bb767.enc
+++ b/fonts/etbb/enc/etbb_dpvwoq.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_6bb767vgyf6bkkruaompchxqgf
-% Encoding created by otftotfm on Tue Dec 21 11:31:08 2021
+%%AutoEnc_dpvwoq5bihazuqgjfnsh6pxf5b
+% Encoding created by otftotfm on Thu Feb 3 15:20:25 2022
% Command line follows encoding
-/AutoEnc1_6bb767vgyf6bkkruaompchxqgf [
+/AutoEnc_dpvwoq5bihazuqgjfnsh6pxf5b [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash.sc /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Italic.otf
-% ETbb-Italic-osf-sc-t1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-osf-sc-t1'
diff --git a/fonts/etbb/enc/etbb_e7zo2o.enc b/fonts/etbb/enc/etbb_e7zo2o.enc
index 97009ea70e..b652ec765e 100644
--- a/fonts/etbb/enc/etbb_e7zo2o.enc
+++ b/fonts/etbb/enc/etbb_e7zo2o.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_e7zo2oi7r3xrhfqd6ly5q2jezg
-% Encoding created by otftotfm on Tue Dec 21 11:30:57 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:44 2022
% Command line follows encoding
/AutoEnc_e7zo2oi7r3xrhfqd6ly5q2jezg [
%00
diff --git a/fonts/etbb/enc/etbb_ehl4wc.enc b/fonts/etbb/enc/etbb_ehl4wc.enc
index 675fc5510e..203a843a4e 100644
--- a/fonts/etbb/enc/etbb_ehl4wc.enc
+++ b/fonts/etbb/enc/etbb_ehl4wc.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_ehl4wcmvklaee5zon2l2w6x6qe
-% Encoding created by otftotfm on Tue Dec 21 11:31:25 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:11 2022
% Command line follows encoding
/AutoEnc_ehl4wcmvklaee5zon2l2w6x6qe [
%00
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Regular.otf
-% ETbb-Regular-osf-sc-ly1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Bold.otf
+% ETbb-Bold-osf-sc-ly1'
diff --git a/fonts/etbb/enc/etbb_elsw3h.enc b/fonts/etbb/enc/etbb_elsw3h.enc
index 84e0d31b35..24f8140fe0 100644
--- a/fonts/etbb/enc/etbb_elsw3h.enc
+++ b/fonts/etbb/enc/etbb_elsw3h.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_elsw3hdxi5xivsxqghfqivctad
-% Encoding created by otftotfm on Tue Dec 21 11:30:31 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:03 2022
% Command line follows encoding
/AutoEnc_elsw3hdxi5xivsxqghfqivctad [
%00
diff --git a/fonts/etbb/enc/etbb1_ujerr7.enc b/fonts/etbb/enc/etbb_eqc2ac.enc
index d604309f05..08b8edc7c7 100644
--- a/fonts/etbb/enc/etbb1_ujerr7.enc
+++ b/fonts/etbb/enc/etbb_eqc2ac.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_ujerr7xbnnjkudzzzotq7l2mrg
-% Encoding created by otftotfm on Tue Dec 21 11:30:25 2021
+%%AutoEnc_eqc2ac2qcg4bxjlkwezu334h4f
+% Encoding created by otftotfm on Thu Feb 3 15:20:12 2022
% Command line follows encoding
-/AutoEnc1_ujerr7xbnnjkudzzzotq7l2mrg [
+/AutoEnc_eqc2ac2qcg4bxjlkwezu334h4f [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_h4dyum.enc b/fonts/etbb/enc/etbb_eqlboo.enc
index 4ee6439154..d24245cd46 100644
--- a/fonts/etbb/enc/etbb_h4dyum.enc
+++ b/fonts/etbb/enc/etbb_eqlboo.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_h4dyumvfz6ek2rcxjxry72wymd
-% Encoding created by otftotfm on Tue Dec 21 11:30:34 2021
+%%AutoEnc_eqlboop5vjqqxn3yf5tmvskadc
+% Encoding created by otftotfm on Thu Feb 3 15:20:16 2022
% Command line follows encoding
-/AutoEnc_h4dyumvfz6ek2rcxjxry72wymd [
+/AutoEnc_eqlboop5vjqqxn3yf5tmvskadc [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.denominator /one.denominator /two.denominator /three.denominator /four.denominator /five.denominator /six.denominator /seven.denominator
diff --git a/fonts/etbb/enc/etbb_f55msl.enc b/fonts/etbb/enc/etbb_f55msl.enc
index 6a13c3ff0c..8f760318d0 100644
--- a/fonts/etbb/enc/etbb_f55msl.enc
+++ b/fonts/etbb/enc/etbb_f55msl.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_f55mslfj4hkccrqglfkn6satdb
-% Encoding created by otftotfm on Tue Dec 21 11:30:58 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:45 2022
% Command line follows encoding
/AutoEnc_f55mslfj4hkccrqglfkn6satdb [
%00
diff --git a/fonts/etbb/enc/etbb_fpvlkw.enc b/fonts/etbb/enc/etbb_fpvlkw.enc
index 902f8e704d..c9ed88b620 100644
--- a/fonts/etbb/enc/etbb_fpvlkw.enc
+++ b/fonts/etbb/enc/etbb_fpvlkw.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_fpvlkwpxsrxluug5fok7c7hwmg
-% Encoding created by otftotfm on Tue Dec 21 11:30:33 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:04 2022
% Command line follows encoding
/AutoEnc_fpvlkwpxsrxluug5fok7c7hwmg [
%00
diff --git a/fonts/etbb/enc/etbb1_vbmlbb.enc b/fonts/etbb/enc/etbb_frcze6.enc
index 9a39862471..6fe366feac 100644
--- a/fonts/etbb/enc/etbb1_vbmlbb.enc
+++ b/fonts/etbb/enc/etbb_frcze6.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_vbmlbbxz7tbehbzj5lbnuze2zg
-% Encoding created by otftotfm on Tue Dec 21 11:30:56 2021
+%%AutoEnc_frcze6nxcs26de2rhkc4n276le
+% Encoding created by otftotfm on Thu Feb 3 15:20:29 2022
% Command line follows encoding
-/AutoEnc1_vbmlbbxz7tbehbzj5lbnuze2zg [
+/AutoEnc_frcze6nxcs26de2rhkc4n276le [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash.sc /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Italic.otf
-% ETbb-Italic-lf-sc-t1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-lf-sc-t1'
diff --git a/fonts/etbb/enc/etbb_ydcfbc.enc b/fonts/etbb/enc/etbb_fveuju.enc
index dbf8d96d52..30fe596d5e 100644
--- a/fonts/etbb/enc/etbb_ydcfbc.enc
+++ b/fonts/etbb/enc/etbb_fveuju.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ydcfbcl5ljqkibbzqu2uvlk5mh
-% Encoding created by otftotfm on Tue Dec 21 11:31:20 2021
+%%AutoEnc_fveujuz7uq6gy6asqqhcwybzda
+% Encoding created by otftotfm on Thu Feb 3 15:20:50 2022
% Command line follows encoding
-/AutoEnc_ydcfbcl5ljqkibbzqu2uvlk5mh [
+/AutoEnc_fveujuz7uq6gy6asqqhcwybzda [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero /one /two /three /four /five /six /seven
diff --git a/fonts/etbb/enc/etbb_fwcdph.enc b/fonts/etbb/enc/etbb_fwcdph.enc
index 85b13febf9..655e5e9ea1 100644
--- a/fonts/etbb/enc/etbb_fwcdph.enc
+++ b/fonts/etbb/enc/etbb_fwcdph.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_fwcdpht2mk2iigledipz2k5mxb
-% Encoding created by otftotfm on Tue Dec 21 11:31:09 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:42 2022
% Command line follows encoding
/AutoEnc_fwcdpht2mk2iigledipz2k5mxb [
%00
diff --git a/fonts/etbb/enc/etbb_r34xpu.enc b/fonts/etbb/enc/etbb_fyek6u.enc
index b7d0d3d38f..a46dbccfae 100644
--- a/fonts/etbb/enc/etbb_r34xpu.enc
+++ b/fonts/etbb/enc/etbb_fyek6u.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_r34xpuqbjubisgsjxlr74lrpqd
-% Encoding created by otftotfm on Tue Dec 21 11:31:23 2021
+%%AutoEnc_fyek6uudgznkjhvy37xztxet3d
+% Encoding created by otftotfm on Thu Feb 3 15:20:55 2022
% Command line follows encoding
-/AutoEnc_r34xpuqbjubisgsjxlr74lrpqd [
+/AutoEnc_fyek6uudgznkjhvy37xztxet3d [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.onum /one.onum /two.onum /three.onum /four.onum /five.onum /six.onum /seven.onum
diff --git a/fonts/etbb/enc/etbb_qqjyre.enc b/fonts/etbb/enc/etbb_g2yynh.enc
index bdfbab6269..7b446ff901 100644
--- a/fonts/etbb/enc/etbb_qqjyre.enc
+++ b/fonts/etbb/enc/etbb_g2yynh.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_qqjyrebwkze4pfxo72toftkebf
-% Encoding created by otftotfm on Tue Dec 21 11:31:11 2021
+%%AutoEnc_g2yynhbtsdgofc4z2wfyt7cltg
+% Encoding created by otftotfm on Thu Feb 3 15:20:58 2022
% Command line follows encoding
-/AutoEnc_qqjyrebwkze4pfxo72toftkebf [
+/AutoEnc_g2yynhbtsdgofc4z2wfyt7cltg [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.pnum /one.pnum /two.pnum /three.pnum /four.pnum /five.pnum /six.pnum /seven.pnum
diff --git a/fonts/etbb/enc/etbb_lolxkk.enc b/fonts/etbb/enc/etbb_gteq3q.enc
index a788a200bc..561068b1a2 100644
--- a/fonts/etbb/enc/etbb_lolxkk.enc
+++ b/fonts/etbb/enc/etbb_gteq3q.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_lolxkkcm4a3fwq36qi7tvqprqd
-% Encoding created by otftotfm on Tue Dec 21 11:30:26 2021
+%%AutoEnc_gteq3qwudsnqb32vj3ml6hrpig
+% Encoding created by otftotfm on Thu Feb 3 15:20:14 2022
% Command line follows encoding
-/AutoEnc_lolxkkcm4a3fwq36qi7tvqprqd [
+/AutoEnc_gteq3qwudsnqb32vj3ml6hrpig [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.pnum /one.pnum /two.pnum /three.pnum /four.pnum /five.pnum /six.pnum /seven.pnum
diff --git a/fonts/etbb/enc/etbb_gtqfg2.enc b/fonts/etbb/enc/etbb_gtqfg2.enc
index 608067a447..e153583aed 100644
--- a/fonts/etbb/enc/etbb_gtqfg2.enc
+++ b/fonts/etbb/enc/etbb_gtqfg2.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_gtqfg2y4h5nuzq6u24ubertl3h
-% Encoding created by otftotfm on Tue Dec 21 11:30:27 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:15 2022
% Command line follows encoding
/AutoEnc_gtqfg2y4h5nuzq6u24ubertl3h [
%00
diff --git a/fonts/etbb/enc/etbb1_55s5uq.enc b/fonts/etbb/enc/etbb_hah5or.enc
index 41fd3a122d..cb402c9542 100644
--- a/fonts/etbb/enc/etbb1_55s5uq.enc
+++ b/fonts/etbb/enc/etbb_hah5or.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_55s5uqo65pdpku3cr7xsyxg5of
-% Encoding created by otftotfm on Tue Dec 21 11:30:36 2021
+%%AutoEnc_hah5orya7ruvjmqzsfnwzilfbf
+% Encoding created by otftotfm on Thu Feb 3 15:20:09 2022
% Command line follows encoding
-/AutoEnc1_55s5uqo65pdpku3cr7xsyxg5of [
+/AutoEnc_hah5orya7ruvjmqzsfnwzilfbf [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_hdnox5.enc b/fonts/etbb/enc/etbb_hdnox5.enc
index 0b90819278..cbaf849ef1 100644
--- a/fonts/etbb/enc/etbb_hdnox5.enc
+++ b/fonts/etbb/enc/etbb_hdnox5.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_hdnox5ov25qala2bkiojjms64c
-% Encoding created by otftotfm on Tue Dec 21 11:31:00 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:38 2022
% Command line follows encoding
/AutoEnc_hdnox5ov25qala2bkiojjms64c [
%00
diff --git a/fonts/etbb/enc/etbb_hn62ay.enc b/fonts/etbb/enc/etbb_hn62ay.enc
index 5718c5d5ef..bf152d5055 100644
--- a/fonts/etbb/enc/etbb_hn62ay.enc
+++ b/fonts/etbb/enc/etbb_hn62ay.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_hn62aykleptmvhydkg3euih6fg
-% Encoding created by otftotfm on Tue Dec 21 11:30:43 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:20 2022
% Command line follows encoding
/AutoEnc_hn62aykleptmvhydkg3euih6fg [
%00
@@ -60,4 +60,4 @@
% --encoding-directory=texmf/fonts/enc/dvips/etbb
% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
% --coding-scheme=TEX TEXT COMPANION SYMBOLS 1---TS1 --feature=onum
-% --feature=pnum ETbb-BoldItalic.otf ETbb-BoldItalic-lf-ts1'
+% --feature=tnum ETbb-BoldItalic.otf ETbb-BoldItalic-tlf-ts1'
diff --git a/fonts/etbb/enc/etbb_3bao6x.enc b/fonts/etbb/enc/etbb_i2z4ax.enc
index 493a718e5a..2bec7d70b9 100644
--- a/fonts/etbb/enc/etbb_3bao6x.enc
+++ b/fonts/etbb/enc/etbb_i2z4ax.enc
@@ -1,15 +1,15 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_3bao6xeqlfbwoz74bra6iev3fc
-% Encoding created by otftotfm on Tue Dec 21 11:31:22 2021
+%%AutoEnc_i2z4ax2hl7rlqfzcvar5mh7p7b
+% Encoding created by otftotfm on Thu Feb 3 15:20:51 2022
% Command line follows encoding
-/AutoEnc_3bao6xeqlfbwoz74bra6iev3fc [
+/AutoEnc_i2z4ax2hl7rlqfzcvar5mh7p7b [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
%10
/quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef
- /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /dotlessi /dotlessj /ff /fi /fl /ffi /ffl
%20
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_i5ezvi.enc b/fonts/etbb/enc/etbb_i5ezvi.enc
index 2b45fc1785..b0fb3617f0 100644
--- a/fonts/etbb/enc/etbb_i5ezvi.enc
+++ b/fonts/etbb/enc/etbb_i5ezvi.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_i5ezvitppcazvehmki6u25ne3h
-% Encoding created by otftotfm on Tue Dec 21 11:31:02 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:33 2022
% Command line follows encoding
/AutoEnc_i5ezvitppcazvehmki6u25ne3h [
%00
diff --git a/fonts/etbb/enc/etbb_cpb6sd.enc b/fonts/etbb/enc/etbb_izxro2.enc
index 8a8dfd8707..6ccde15baf 100644
--- a/fonts/etbb/enc/etbb_cpb6sd.enc
+++ b/fonts/etbb/enc/etbb_izxro2.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_cpb6sdrmtmjdkd4dvmojrwtfyb
-% Encoding created by otftotfm on Tue Dec 21 11:30:30 2021
+%%AutoEnc_izxro2yzemj5swfwkbahbg7i3e
+% Encoding created by otftotfm on Thu Feb 3 15:20:08 2022
% Command line follows encoding
-/AutoEnc_cpb6sdrmtmjdkd4dvmojrwtfyb [
+/AutoEnc_izxro2yzemj5swfwkbahbg7i3e [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.taboldstyle /one.taboldstyle /two.taboldstyle /three.taboldstyle /four.taboldstyle /five.taboldstyle /six.taboldstyle /seven.taboldstyle
diff --git a/fonts/etbb/enc/etbb_ihmnlr.enc b/fonts/etbb/enc/etbb_j43iwo.enc
index b0c0c31462..8eea2c22c1 100644
--- a/fonts/etbb/enc/etbb_ihmnlr.enc
+++ b/fonts/etbb/enc/etbb_j43iwo.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ihmnlry5rdqsk57rbbszezzogb
-% Encoding created by otftotfm on Tue Dec 21 11:30:31 2021
+%%AutoEnc_j43iwogbhmg3paqqba3bhttw2c
+% Encoding created by otftotfm on Thu Feb 3 15:20:02 2022
% Command line follows encoding
-/AutoEnc_ihmnlry5rdqsk57rbbszezzogb [
+/AutoEnc_j43iwogbhmg3paqqba3bhttw2c [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero /one /two /three /four /five /six /seven
diff --git a/fonts/etbb/enc/etbb_j4gzyc.enc b/fonts/etbb/enc/etbb_j4gzyc.enc
index f8853f124c..73c8f6ba06 100644
--- a/fonts/etbb/enc/etbb_j4gzyc.enc
+++ b/fonts/etbb/enc/etbb_j4gzyc.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_j4gzycykvaqv5pnwloczfvlbha
-% Encoding created by otftotfm on Tue Dec 21 11:30:53 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:26 2022
% Command line follows encoding
/AutoEnc_j4gzycykvaqv5pnwloczfvlbha [
%00
diff --git a/fonts/etbb/enc/etbb_j7myeh.enc b/fonts/etbb/enc/etbb_j7myeh.enc
index 2772b5447f..43c23ac346 100644
--- a/fonts/etbb/enc/etbb_j7myeh.enc
+++ b/fonts/etbb/enc/etbb_j7myeh.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_j7myehdyrz6gorvvepmwcnbthh
-% Encoding created by otftotfm on Tue Dec 21 11:30:40 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:28 2022
% Command line follows encoding
/AutoEnc_j7myehdyrz6gorvvepmwcnbthh [
%00
diff --git a/fonts/etbb/enc/etbb_jejpug.enc b/fonts/etbb/enc/etbb_jejpug.enc
deleted file mode 100644
index b177996e59..0000000000
--- a/fonts/etbb/enc/etbb_jejpug.enc
+++ /dev/null
@@ -1,68 +0,0 @@
-% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-
-%%AutoEnc_jejpugv4fkdzohdbifitcnkxjb
-% Encoding created by otftotfm on Tue Dec 21 11:30:26 2021
-% Command line follows encoding
-/AutoEnc_jejpugv4fkdzohdbifitcnkxjb [
-%00
- /.notdef /Euro /.notdef /.notdef /fraction /dotaccent /hungarumlaut /ogonek
- /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
-%10
- /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
- /cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
-%20
- /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
-%30
- /zero.pnum /one.pnum /two.pnum /three.pnum /four.pnum /five.pnum /six.pnum /seven.pnum
- /eight.pnum /nine.pnum /colon /semicolon /less /equal /greater /question
-%40
- /at /A /B /C /D /E /F /G
- /H /I /J /K /L /M /N /O
-%50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /circumflex /underscore
-%60
- /quoteleft /a.sc /b.sc /c.sc /d.sc /e.sc /f.sc /g.sc
- /h.sc /i.sc /j.sc /k.sc /l.sc /m.sc /n.sc /o.sc
-%70
- /p.sc /q.sc /r.sc /s.sc /t.sc /u.sc /v.sc /w.sc
- /x.sc /y.sc /z.sc /braceleft /bar /braceright /tilde /dieresis
-%80
- /Lslash /quotesingle /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft /OE /Zcaron /asciicircum /minus
-%90
- /lslash /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron.sc /guilsinglright /oe.sc /zcaron.sc /asciitilde /Ydieresis
-%A0
- /.notdef /exclamdown /cent /sterling /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /.notdef /registered /macron
-%B0
- /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
-%C0
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
-%D0
- /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
-%E0
- /agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
- /egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
-%F0
- /eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /divide
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /ydieresis.sc
-] def
-% Command line: 'otftotfm --automatic --encoding=fontools_ly1
-% --tfm-directory=texmf/fonts/tfm/public/etbb
-% --vf-directory=texmf/fonts/vf/public/etbb
-% --type1-directory=texmf/fonts/type1/public/etbb
-% --encoding-directory=texmf/fonts/enc/dvips/etbb
-% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
-% --coding-scheme=TEX TYPEWRITER AND WINDOWS ANSI --feature=kern
-% --feature=liga --feature=lnum --feature=pnum --feature=smcp --ligkern=f i
-% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
-% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
-% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Bold.otf
-% ETbb-Bold-lf-sc-ly1'
diff --git a/fonts/etbb/enc/etbb_m74he6.enc b/fonts/etbb/enc/etbb_jjhcst.enc
index f2f667ba33..5cd7113120 100644
--- a/fonts/etbb/enc/etbb_m74he6.enc
+++ b/fonts/etbb/enc/etbb_jjhcst.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_m74he64fxnid2mvcvujjgk3jfc
-% Encoding created by otftotfm on Tue Dec 21 11:30:25 2021
+%%AutoEnc_jjhcstv3yadedwcowizglcw37e
+% Encoding created by otftotfm on Thu Feb 3 15:20:28 2022
% Command line follows encoding
-/AutoEnc_m74he64fxnid2mvcvujjgk3jfc [
+/AutoEnc_jjhcstv3yadedwcowizglcw37e [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.pnum /one.pnum /two.pnum /three.pnum /four.pnum /five.pnum /six.pnum /seven.pnum
@@ -64,4 +64,4 @@
% --ligkern=f f =: ff --ligkern=ff i =: ffi --ligkern=ff l =: ffl
% --unicoding=germandbls =: SSsmall --unicoding=ff =: FFsmall --unicoding=fi
% =: FIsmall --unicoding=ffi =: FFIsmall --unicoding=fl =: FLsmall
-% --unicoding=ffl =: FFLsmall ETbb-Bold.otf ETbb-Bold-lf-sc-ot1'
+% --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf ETbb-BoldItalic-lf-sc-ot1'
diff --git a/fonts/etbb/enc/etbb_kvzzr3.enc b/fonts/etbb/enc/etbb_kvzzr3.enc
index 674a5ecb7f..61d3507311 100644
--- a/fonts/etbb/enc/etbb_kvzzr3.enc
+++ b/fonts/etbb/enc/etbb_kvzzr3.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_kvzzr3edrncu7vt2awvffb64cc
-% Encoding created by otftotfm on Tue Dec 21 11:30:51 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:21 2022
% Command line follows encoding
/AutoEnc_kvzzr3edrncu7vt2awvffb64cc [
%00
diff --git a/fonts/etbb/enc/etbb_ladhhj.enc b/fonts/etbb/enc/etbb_ladhhj.enc
index a81ebafc04..b22d97359f 100644
--- a/fonts/etbb/enc/etbb_ladhhj.enc
+++ b/fonts/etbb/enc/etbb_ladhhj.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_ladhhj66shqsq2lfu2ukqmc2fg
-% Encoding created by otftotfm on Tue Dec 21 11:30:48 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:19 2022
% Command line follows encoding
/AutoEnc_ladhhj66shqsq2lfu2ukqmc2fg [
%00
diff --git a/fonts/etbb/enc/etbb_m5kdwt.enc b/fonts/etbb/enc/etbb_m5kdwt.enc
index 6e1b79c28e..ac3684fe21 100644
--- a/fonts/etbb/enc/etbb_m5kdwt.enc
+++ b/fonts/etbb/enc/etbb_m5kdwt.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_m5kdwta2ya4v2cpfk2w7yaatjb
-% Encoding created by otftotfm on Tue Dec 21 11:31:07 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:40 2022
% Command line follows encoding
/AutoEnc_m5kdwta2ya4v2cpfk2w7yaatjb [
%00
diff --git a/fonts/etbb/enc/etbb_cp6bsz.enc b/fonts/etbb/enc/etbb_mfrons.enc
index ee3bc353e6..7b849ac7e9 100644
--- a/fonts/etbb/enc/etbb_cp6bsz.enc
+++ b/fonts/etbb/enc/etbb_mfrons.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_cp6bsz5iopjtxmf6p55nagrmkh
-% Encoding created by otftotfm on Tue Dec 21 11:31:00 2021
+%%AutoEnc_mfronshiuahup7no32v7skamif
+% Encoding created by otftotfm on Thu Feb 3 15:20:22 2022
% Command line follows encoding
-/AutoEnc_cp6bsz5iopjtxmf6p55nagrmkh [
+/AutoEnc_mfronshiuahup7no32v7skamif [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash.sc /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
@@ -64,5 +64,5 @@
% =: fi --ligkern=f l =: fl --ligkern=f f =: ff --ligkern=ff i =: ffi
% --ligkern=ff l =: ffl --unicoding=germandbls =: SSsmall --unicoding=ff =:
% FFsmall --unicoding=fi =: FIsmall --unicoding=ffi =: FFIsmall
-% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-Italic.otf
-% ETbb-Italic-tosf-sc-t1'
+% --unicoding=fl =: FLsmall --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-tosf-sc-t1'
diff --git a/fonts/etbb/enc/etbb1_gojfsq.enc b/fonts/etbb/enc/etbb_mgm6re.enc
index 60ba93cbe4..405ae903e8 100644
--- a/fonts/etbb/enc/etbb1_gojfsq.enc
+++ b/fonts/etbb/enc/etbb_mgm6re.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_gojfsqpn6o4h6lbxak4mkqz2pf
-% Encoding created by otftotfm on Tue Dec 21 11:30:27 2021
+%%AutoEnc_mgm6reivyglzs2cwtx35q2y4ye
+% Encoding created by otftotfm on Thu Feb 3 15:20:14 2022
% Command line follows encoding
-/AutoEnc1_gojfsqpn6o4h6lbxak4mkqz2pf [
+/AutoEnc_mgm6reivyglzs2cwtx35q2y4ye [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_mpvq56.enc b/fonts/etbb/enc/etbb_mpvq56.enc
index 3fb3f1813e..0333ae13f1 100644
--- a/fonts/etbb/enc/etbb_mpvq56.enc
+++ b/fonts/etbb/enc/etbb_mpvq56.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_mpvq56haezsrrjg72prw5fumwf
-% Encoding created by otftotfm on Tue Dec 21 11:30:34 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:17 2022
% Command line follows encoding
/AutoEnc_mpvq56haezsrrjg72prw5fumwf [
%00
diff --git a/fonts/etbb/enc/etbb_ujmsnd.enc b/fonts/etbb/enc/etbb_n73bzf.enc
index 2fd386d67b..e89453b820 100644
--- a/fonts/etbb/enc/etbb_ujmsnd.enc
+++ b/fonts/etbb/enc/etbb_n73bzf.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ujmsnd4wrjk5td66f5dpjczund
-% Encoding created by otftotfm on Tue Dec 21 11:31:25 2021
+%%AutoEnc_n73bzfvv7mgdjcjit7ss47ujzh
+% Encoding created by otftotfm on Thu Feb 3 15:20:57 2022
% Command line follows encoding
-/AutoEnc_ujmsnd4wrjk5td66f5dpjczund [
+/AutoEnc_n73bzfvv7mgdjcjit7ss47ujzh [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.onum /one.onum /two.onum /three.onum /four.onum /five.onum /six.onum /seven.onum
diff --git a/fonts/etbb/enc/etbb_3rdlap.enc b/fonts/etbb/enc/etbb_num7wi.enc
index 45b104f78f..33b68f102e 100644
--- a/fonts/etbb/enc/etbb_3rdlap.enc
+++ b/fonts/etbb/enc/etbb_num7wi.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_3rdlaplsvqg4x5d4ogftbp3u5b
-% Encoding created by otftotfm on Tue Dec 21 11:30:56 2021
+%%AutoEnc_num7wi54gekebzplzwtc6dmuha
+% Encoding created by otftotfm on Thu Feb 3 15:20:13 2022
% Command line follows encoding
-/AutoEnc_3rdlaplsvqg4x5d4ogftbp3u5b [
+/AutoEnc_num7wi54gekebzplzwtc6dmuha [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.pnum /one.pnum /two.pnum /three.pnum /four.pnum /five.pnum /six.pnum /seven.pnum
@@ -64,4 +64,4 @@
% --ligkern=f f =: ff --ligkern=ff i =: ffi --ligkern=ff l =: ffl
% --unicoding=germandbls =: SSsmall --unicoding=ff =: FFsmall --unicoding=fi
% =: FIsmall --unicoding=ffi =: FFIsmall --unicoding=fl =: FLsmall
-% --unicoding=ffl =: FFLsmall ETbb-Italic.otf ETbb-Italic-lf-sc-ot1'
+% --unicoding=ffl =: FFLsmall ETbb-Bold.otf ETbb-Bold-lf-sc-ot1'
diff --git a/fonts/etbb/enc/etbb_nvfc5y.enc b/fonts/etbb/enc/etbb_nvfc5y.enc
index 8e989cda06..697075fa52 100644
--- a/fonts/etbb/enc/etbb_nvfc5y.enc
+++ b/fonts/etbb/enc/etbb_nvfc5y.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_nvfc5y2s42cdp2nj6iltss7xrc
-% Encoding created by otftotfm on Tue Dec 21 11:30:27 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:05 2022
% Command line follows encoding
/AutoEnc_nvfc5y2s42cdp2nj6iltss7xrc [
%00
@@ -60,4 +60,4 @@
% --encoding-directory=texmf/fonts/enc/dvips/etbb
% --map-file=texmf/fonts/map/dvips/etbb/ETbb.map --no-updmap --force
% --coding-scheme=TEX TEXT COMPANION SYMBOLS 1---TS1 --feature=onum
-% --feature=pnum ETbb-Bold.otf ETbb-Bold-lf-ts1'
+% --feature=tnum ETbb-Bold.otf ETbb-Bold-tlf-ts1'
diff --git a/fonts/etbb/enc/etbb_oe3mzn.enc b/fonts/etbb/enc/etbb_oe3mzn.enc
index 0bc77d5e9d..ae730a0cc3 100644
--- a/fonts/etbb/enc/etbb_oe3mzn.enc
+++ b/fonts/etbb/enc/etbb_oe3mzn.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_oe3mznofozp2ytwevbi4nhgsyh
-% Encoding created by otftotfm on Tue Dec 21 11:31:08 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:41 2022
% Command line follows encoding
/AutoEnc_oe3mznofozp2ytwevbi4nhgsyh [
%00
diff --git a/fonts/etbb/enc/etbb_ohc25e.enc b/fonts/etbb/enc/etbb_ohc25e.enc
index 7b220f8bb0..3288c78139 100644
--- a/fonts/etbb/enc/etbb_ohc25e.enc
+++ b/fonts/etbb/enc/etbb_ohc25e.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_ohc25e7nugkq5uftwleqtlzhic
-% Encoding created by otftotfm on Tue Dec 21 11:30:25 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:13 2022
% Command line follows encoding
/AutoEnc_ohc25e7nugkq5uftwleqtlzhic [
%00
diff --git a/fonts/etbb/enc/etbb_xq7qra.enc b/fonts/etbb/enc/etbb_olodrh.enc
index 797299b75c..ec1905c561 100644
--- a/fonts/etbb/enc/etbb_xq7qra.enc
+++ b/fonts/etbb/enc/etbb_olodrh.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_xq7qrab6xf2f2gznvgat2zorhc
-% Encoding created by otftotfm on Tue Dec 21 11:30:32 2021
+%%AutoEnc_olodrhovdnfo3m64jdmab6jwfe
+% Encoding created by otftotfm on Thu Feb 3 15:20:18 2022
% Command line follows encoding
-/AutoEnc_xq7qrab6xf2f2gznvgat2zorhc [
+/AutoEnc_olodrhovdnfo3m64jdmab6jwfe [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero /one /two /three /four /five /six /seven
@@ -64,4 +64,5 @@
% --ligkern=f f =: ff --ligkern=ff i =: ffi --ligkern=ff l =: ffl
% --unicoding=germandbls =: SSsmall --unicoding=ff =: FFsmall --unicoding=fi
% =: FIsmall --unicoding=ffi =: FFIsmall --unicoding=fl =: FLsmall
-% --unicoding=ffl =: FFLsmall ETbb-Bold.otf ETbb-Bold-tlf-sc-ot1'
+% --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-tlf-sc-ot1'
diff --git a/fonts/etbb/enc/etbb_ftphfy.enc b/fonts/etbb/enc/etbb_onypnl.enc
index 31d2acbf9c..234b38af41 100644
--- a/fonts/etbb/enc/etbb_ftphfy.enc
+++ b/fonts/etbb/enc/etbb_onypnl.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ftphfyliafmvcwfqlg66apswmh
-% Encoding created by otftotfm on Tue Dec 21 11:31:22 2021
+%%AutoEnc_onypnlamnqndkq3rnhgvaazdud
+% Encoding created by otftotfm on Thu Feb 3 15:20:51 2022
% Command line follows encoding
-/AutoEnc_ftphfyliafmvcwfqlg66apswmh [
+/AutoEnc_onypnlamnqndkq3rnhgvaazdud [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.inferior /one.inferior /two.inferior /three.inferior /four.inferior /five.inferior /six.inferior /seven.inferior
diff --git a/fonts/etbb/enc/etbb_qrk72g.enc b/fonts/etbb/enc/etbb_ooqfsa.enc
index 740d367a4d..d08de54630 100644
--- a/fonts/etbb/enc/etbb_qrk72g.enc
+++ b/fonts/etbb/enc/etbb_ooqfsa.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_qrk72gtd2bxaznl2wdopxnwg2e
-% Encoding created by otftotfm on Tue Dec 21 11:31:19 2021
+%%AutoEnc_ooqfsa36ihfrpwggrqfizawgkb
+% Encoding created by otftotfm on Thu Feb 3 15:20:49 2022
% Command line follows encoding
-/AutoEnc_qrk72gtd2bxaznl2wdopxnwg2e [
+/AutoEnc_ooqfsa36ihfrpwggrqfizawgkb [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero /one /two /three /four /five /six /seven
diff --git a/fonts/etbb/enc/etbb_rluk7r.enc b/fonts/etbb/enc/etbb_ow4ien.enc
index 60883476fd..a8b530cc21 100644
--- a/fonts/etbb/enc/etbb_rluk7r.enc
+++ b/fonts/etbb/enc/etbb_ow4ien.enc
@@ -1,15 +1,15 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_rluk7ruzo437pfvfnnh45fsnde
-% Encoding created by otftotfm on Tue Dec 21 11:30:34 2021
+%%AutoEnc_ow4ien4myt5hec4z5mmfpq7kye
+% Encoding created by otftotfm on Thu Feb 3 15:20:16 2022
% Command line follows encoding
-/AutoEnc_rluk7ruzo437pfvfnnh45fsnde [
+/AutoEnc_ow4ien4myt5hec4z5mmfpq7kye [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
%10
/quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef
- /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /dotlessi /dotlessj /ff /fi /fl /ffi /ffl
%20
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_oynaqb.enc b/fonts/etbb/enc/etbb_oynaqb.enc
index b2df469c09..48118623b3 100644
--- a/fonts/etbb/enc/etbb_oynaqb.enc
+++ b/fonts/etbb/enc/etbb_oynaqb.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_oynaqbx2tknlw3aeddaeveg26e
-% Encoding created by otftotfm on Tue Dec 21 11:31:10 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:46 2022
% Command line follows encoding
/AutoEnc_oynaqbx2tknlw3aeddaeveg26e [
%00
diff --git a/fonts/etbb/enc/etbb_icp3zk.enc b/fonts/etbb/enc/etbb_p6ehom.enc
index 3abb75bac6..8beec538cf 100644
--- a/fonts/etbb/enc/etbb_icp3zk.enc
+++ b/fonts/etbb/enc/etbb_p6ehom.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_icp3zkdjqefmy7aeihz6ksfvph
-% Encoding created by otftotfm on Tue Dec 21 11:30:29 2021
+%%AutoEnc_p6ehomu3gqo4zllybcz6jetjie
+% Encoding created by otftotfm on Thu Feb 3 15:20:22 2022
% Command line follows encoding
-/AutoEnc_icp3zkdjqefmy7aeihz6ksfvph [
+/AutoEnc_p6ehomu3gqo4zllybcz6jetjie [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.taboldstyle /one.taboldstyle /two.taboldstyle /three.taboldstyle /four.taboldstyle /five.taboldstyle /six.taboldstyle /seven.taboldstyle
@@ -64,4 +64,5 @@
% --ligkern=f f =: ff --ligkern=ff i =: ffi --ligkern=ff l =: ffl
% --unicoding=germandbls =: SSsmall --unicoding=ff =: FFsmall --unicoding=fi
% =: FIsmall --unicoding=ffi =: FFIsmall --unicoding=fl =: FLsmall
-% --unicoding=ffl =: FFLsmall ETbb-Bold.otf ETbb-Bold-tosf-sc-ot1'
+% --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-tosf-sc-ot1'
diff --git a/fonts/etbb/enc/etbb_cluc7m.enc b/fonts/etbb/enc/etbb_pqh27d.enc
index 716e67e223..d5214043cb 100644
--- a/fonts/etbb/enc/etbb_cluc7m.enc
+++ b/fonts/etbb/enc/etbb_pqh27d.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_cluc7m4ium2bcpwlcwz2h6yxsd
-% Encoding created by otftotfm on Tue Dec 21 11:30:35 2021
+%%AutoEnc_pqh27dffupbaeqpqkl742iyo2d
+% Encoding created by otftotfm on Thu Feb 3 15:20:05 2022
% Command line follows encoding
-/AutoEnc_cluc7m4ium2bcpwlcwz2h6yxsd [
+/AutoEnc_pqh27dffupbaeqpqkl742iyo2d [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.inferior /one /two.inferior /three.inferior /four.inferior /five.inferior /six.inferior /seven.inferior
diff --git a/fonts/etbb/enc/etbb_hbqmiu.enc b/fonts/etbb/enc/etbb_pvrda3.enc
index 3d86540450..51d2a8feb1 100644
--- a/fonts/etbb/enc/etbb_hbqmiu.enc
+++ b/fonts/etbb/enc/etbb_pvrda3.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_hbqmiufivrhezoy6gtopfrghab
-% Encoding created by otftotfm on Tue Dec 21 11:30:31 2021
+%%AutoEnc_pvrda3ayd24l2jz24a3yz6f4kd
+% Encoding created by otftotfm on Thu Feb 3 15:20:02 2022
% Command line follows encoding
-/AutoEnc_hbqmiufivrhezoy6gtopfrghab [
+/AutoEnc_pvrda3ayd24l2jz24a3yz6f4kd [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_q62n24.enc b/fonts/etbb/enc/etbb_q62n24.enc
index 4f37c73acd..8c39a968da 100644
--- a/fonts/etbb/enc/etbb_q62n24.enc
+++ b/fonts/etbb/enc/etbb_q62n24.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_q62n247r56bsa7x73lg2hfrq3b
-% Encoding created by otftotfm on Tue Dec 21 11:30:41 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:29 2022
% Command line follows encoding
/AutoEnc_q62n247r56bsa7x73lg2hfrq3b [
%00
diff --git a/fonts/etbb/enc/etbb_dep6cd.enc b/fonts/etbb/enc/etbb_rgl4wj.enc
index 5fcdfd7e66..1a504ac0aa 100644
--- a/fonts/etbb/enc/etbb_dep6cd.enc
+++ b/fonts/etbb/enc/etbb_rgl4wj.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_dep6cdmobxdewjybmud7kefdcf
-% Encoding created by otftotfm on Tue Dec 21 11:31:26 2021
+%%AutoEnc_rgl4wjvtlyjmgoraok4sfxfpya
+% Encoding created by otftotfm on Thu Feb 3 15:21:02 2022
% Command line follows encoding
-/AutoEnc_dep6cdmobxdewjybmud7kefdcf [
+/AutoEnc_rgl4wjvtlyjmgoraok4sfxfpya [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave.superior /acute.superior /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam.superior /quotedblright /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
+ /uni2423 /exclam.superior /quotedblright /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
/parenleft.sup /parenright.sup /asterisk.superior /plus.sup /comma.sup /hyphen.sup /period.sup /slash.superior
%30
/zero.superior /onesuperior /twosuperior /threesuperior /four.superior /five.superior /six.superior /seven.superior
diff --git a/fonts/etbb/enc/etbb_riohwx.enc b/fonts/etbb/enc/etbb_riohwx.enc
index 80b99bd979..6280731b5e 100644
--- a/fonts/etbb/enc/etbb_riohwx.enc
+++ b/fonts/etbb/enc/etbb_riohwx.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_riohwxsior5lnnjjsjpbvpslke
-% Encoding created by otftotfm on Tue Dec 21 11:30:47 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:18 2022
% Command line follows encoding
/AutoEnc_riohwxsior5lnnjjsjpbvpslke [
%00
diff --git a/fonts/etbb/enc/etbb_rzlqzq.enc b/fonts/etbb/enc/etbb_rzlqzq.enc
index e0d46d8600..26a2f6b261 100644
--- a/fonts/etbb/enc/etbb_rzlqzq.enc
+++ b/fonts/etbb/enc/etbb_rzlqzq.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_rzlqzq4dfqtplm3j7w5fz6domf
-% Encoding created by otftotfm on Tue Dec 21 11:31:05 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:47 2022
% Command line follows encoding
/AutoEnc_rzlqzq4dfqtplm3j7w5fz6domf [
%00
diff --git a/fonts/etbb/enc/etbb_u2xzqd.enc b/fonts/etbb/enc/etbb_sb7odk.enc
index ab9738484e..bce09e127d 100644
--- a/fonts/etbb/enc/etbb_u2xzqd.enc
+++ b/fonts/etbb/enc/etbb_sb7odk.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_u2xzqdhpypappkhgw7cwbtqsxe
-% Encoding created by otftotfm on Tue Dec 21 11:30:29 2021
+%%AutoEnc_sb7odkrwphouyzefmgg7mtfgrf
+% Encoding created by otftotfm on Thu Feb 3 15:20:07 2022
% Command line follows encoding
-/AutoEnc_u2xzqdhpypappkhgw7cwbtqsxe [
+/AutoEnc_sb7odkrwphouyzefmgg7mtfgrf [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -35,23 +35,23 @@
/Rcaron /Sacute /Scaron /Scedilla /Tcaron /uni0162 /Uhungarumlaut /Uring
/Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section
%A0
- /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve
- /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute
+ /abreve.sc /aogonek.sc /cacute /ccaron.sc /dcaron.sc /ecaron.sc /eogonek.sc /gbreve.sc
+ /lacute.sc /lcaron.sc /lslash.sc /nacute.sc /ncaron.sc /eng.sc /ohungarumlaut.sc /racute.sc
%B0
- /rcaron /sacute /scaron.sc /scedilla /tcaron /uni0163 /uhungarumlaut /uring
- /ydieresis.sc /zacute /zcaron.sc /zdotaccent /ij /exclamdown /questiondown /sterling
+ /rcaron.sc /sacute.sc /scaron.sc /scedilla.sc /tcaron.sc /uni0163.sc /uhungarumlaut.sc /uring.sc
+ /ydieresis.sc /zacute.sc /zcaron.sc /zdotaccent.sc /ij.sc /exclamdown /questiondown /sterling
%C0
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave.sc /aacute.sc /acircumflex.sc /atilde.sc /adieresis.sc /aring.sc /ae.sc /ccedilla.sc
/egrave.sc /eacute.sc /ecircumflex.sc /edieresis.sc /igrave.sc /iacute.sc /icircumflex.sc /idieresis.sc
%F0
/eth.sc /ntilde.sc /ograve.sc /oacute.sc /ocircumflex.sc /otilde.sc /odieresis.sc /oe.sc
- /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /.notdef
+ /oslash.sc /ugrave.sc /uacute.sc /ucircumflex.sc /udieresis.sc /yacute.sc /thorn.sc /germandbls.sc.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_le3wsu.enc b/fonts/etbb/enc/etbb_sjtq2a.enc
index 1dd60b644a..34c40b4f9a 100644
--- a/fonts/etbb/enc/etbb_le3wsu.enc
+++ b/fonts/etbb/enc/etbb_sjtq2a.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_le3wsuk34kmoex4bzg5ny6m6ph
-% Encoding created by otftotfm on Tue Dec 21 11:31:08 2021
+%%AutoEnc_sjtq2a54i2h23llgyag665hg3h
+% Encoding created by otftotfm on Thu Feb 3 15:20:10 2022
% Command line follows encoding
-/AutoEnc_le3wsuk34kmoex4bzg5ny6m6ph [
+/AutoEnc_sjtq2a54i2h23llgyag665hg3h [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.onum /one.onum /two.onum /three.onum /four.onum /five.onum /six.onum /seven.onum
@@ -64,4 +64,4 @@
% --ligkern=f f =: ff --ligkern=ff i =: ffi --ligkern=ff l =: ffl
% --unicoding=germandbls =: SSsmall --unicoding=ff =: FFsmall --unicoding=fi
% =: FIsmall --unicoding=ffi =: FFIsmall --unicoding=fl =: FLsmall
-% --unicoding=ffl =: FFLsmall ETbb-Italic.otf ETbb-Italic-osf-sc-ot1'
+% --unicoding=ffl =: FFLsmall ETbb-Bold.otf ETbb-Bold-osf-sc-ot1'
diff --git a/fonts/etbb/enc/etbb_skushq.enc b/fonts/etbb/enc/etbb_skushq.enc
index 3aab24f063..768dd96a5b 100644
--- a/fonts/etbb/enc/etbb_skushq.enc
+++ b/fonts/etbb/enc/etbb_skushq.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_skushqlalkfgdo46rxhdwryuge
-% Encoding created by otftotfm on Tue Dec 21 11:30:45 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:24 2022
% Command line follows encoding
/AutoEnc_skushqlalkfgdo46rxhdwryuge [
%00
diff --git a/fonts/etbb/enc/etbb_3pnwav.enc b/fonts/etbb/enc/etbb_t4d6nl.enc
index c13dc9948f..1b87b91843 100644
--- a/fonts/etbb/enc/etbb_3pnwav.enc
+++ b/fonts/etbb/enc/etbb_t4d6nl.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_3pnwavz3hg7d6qd5gas2dqmv6h
-% Encoding created by otftotfm on Tue Dec 21 11:30:36 2021
+%%AutoEnc_t4d6nlpcltq26gnb3hp3ib5ufd
+% Encoding created by otftotfm on Thu Feb 3 15:20:25 2022
% Command line follows encoding
-/AutoEnc_3pnwavz3hg7d6qd5gas2dqmv6h [
+/AutoEnc_t4d6nlpcltq26gnb3hp3ib5ufd [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /.notdef /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.onum /one.onum /two.onum /three.onum /four.onum /five.onum /six.onum /seven.onum
@@ -64,4 +64,5 @@
% --ligkern=f f =: ff --ligkern=ff i =: ffi --ligkern=ff l =: ffl
% --unicoding=germandbls =: SSsmall --unicoding=ff =: FFsmall --unicoding=fi
% =: FIsmall --unicoding=ffi =: FFIsmall --unicoding=fl =: FLsmall
-% --unicoding=ffl =: FFLsmall ETbb-Bold.otf ETbb-Bold-osf-sc-ot1'
+% --unicoding=ffl =: FFLsmall ETbb-BoldItalic.otf
+% ETbb-BoldItalic-osf-sc-ot1'
diff --git a/fonts/etbb/enc/etbb_tbmtgo.enc b/fonts/etbb/enc/etbb_tbmtgo.enc
index 0423de369a..15b698198d 100644
--- a/fonts/etbb/enc/etbb_tbmtgo.enc
+++ b/fonts/etbb/enc/etbb_tbmtgo.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_tbmtgoznr33jpt6iokvjfw4jnd
-% Encoding created by otftotfm on Tue Dec 21 11:31:01 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:39 2022
% Command line follows encoding
/AutoEnc_tbmtgoznr33jpt6iokvjfw4jnd [
%00
diff --git a/fonts/etbb/enc/etbb_ghqdpy.enc b/fonts/etbb/enc/etbb_tunzhv.enc
index 2899fd9f61..b29e980e51 100644
--- a/fonts/etbb/enc/etbb_ghqdpy.enc
+++ b/fonts/etbb/enc/etbb_tunzhv.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ghqdpy3yxw3upgthc3bzm4vtqe
-% Encoding created by otftotfm on Tue Dec 21 11:31:12 2021
+%%AutoEnc_tunzhvimpp4ybxihjziekqlcng
+% Encoding created by otftotfm on Thu Feb 3 15:20:59 2022
% Command line follows encoding
-/AutoEnc_ghqdpy3yxw3upgthc3bzm4vtqe [
+/AutoEnc_tunzhvimpp4ybxihjziekqlcng [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.pnum /one.pnum /two.pnum /three.pnum /four.pnum /five.pnum /six.pnum /seven.pnum
diff --git a/fonts/etbb/enc/etbb_muumxe.enc b/fonts/etbb/enc/etbb_ujzbb6.enc
index adacce7aec..7e7eb97c8e 100644
--- a/fonts/etbb/enc/etbb_muumxe.enc
+++ b/fonts/etbb/enc/etbb_ujzbb6.enc
@@ -1,15 +1,15 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_muumxeoou2fakmyg63u2ohpivb
-% Encoding created by otftotfm on Tue Dec 21 11:31:27 2021
+%%AutoEnc_ujzbb6qa3ozvls6leade66xrhe
+% Encoding created by otftotfm on Thu Feb 3 15:21:02 2022
% Command line follows encoding
-/AutoEnc_muumxeoou2fakmyg63u2ohpivb [
+/AutoEnc_ujzbb6qa3ozvls6leade66xrhe [
%00
/grave.superior /acute.superior /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
%10
/quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef
- /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /dotlessi /dotlessj /ff /fi /fl /ffi /ffl
%20
/space /exclam.superior /quotedbl.superior /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
/parenleft.sup /parenright.sup /asterisk.superior /plus.sup /comma.sup /hyphen.sup /period.sup /slash.superior
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave.superior /eacute.superior /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_v6nho7.enc b/fonts/etbb/enc/etbb_v6nho7.enc
index 1b3245db98..5f028a9237 100644
--- a/fonts/etbb/enc/etbb_v6nho7.enc
+++ b/fonts/etbb/enc/etbb_v6nho7.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_v6nho72t4emng74mnbztuynq6f
-% Encoding created by otftotfm on Tue Dec 21 11:30:49 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:20 2022
% Command line follows encoding
/AutoEnc_v6nho72t4emng74mnbztuynq6f [
%00
diff --git a/fonts/etbb/enc/etbb_wplash.enc b/fonts/etbb/enc/etbb_vazzz3.enc
index b6192e26a6..a0ded8bf79 100644
--- a/fonts/etbb/enc/etbb_wplash.enc
+++ b/fonts/etbb/enc/etbb_vazzz3.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_wplashkp5h2u4lgwljah7kwuab
-% Encoding created by otftotfm on Tue Dec 21 11:31:13 2021
+%%AutoEnc_vazzz3gvkgqnwsxqxlsqs677gh
+% Encoding created by otftotfm on Thu Feb 3 15:21:00 2022
% Command line follows encoding
-/AutoEnc_wplashkp5h2u4lgwljah7kwuab [
+/AutoEnc_vazzz3gvkgqnwsxqxlsqs677gh [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.pnum /one.pnum /two.pnum /three.pnum /four.pnum /five.pnum /six.pnum /seven.pnum
diff --git a/fonts/etbb/enc/etbb_n5h2ym.enc b/fonts/etbb/enc/etbb_veuqiz.enc
index 3d88000cb9..55583661d6 100644
--- a/fonts/etbb/enc/etbb_n5h2ym.enc
+++ b/fonts/etbb/enc/etbb_veuqiz.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_n5h2ymzshpvgw4adqdcmaf3b4g
-% Encoding created by otftotfm on Tue Dec 21 11:31:24 2021
+%%AutoEnc_veuqizdfas43gzdvjdqer7dyoa
+% Encoding created by otftotfm on Thu Feb 3 15:20:56 2022
% Command line follows encoding
-/AutoEnc_n5h2ymzshpvgw4adqdcmaf3b4g [
+/AutoEnc_veuqizdfas43gzdvjdqer7dyoa [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /.notdef /ae.sc /oe.sc /oslash.sc /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.onum /one.onum /two.onum /three.onum /four.onum /five.onum /six.onum /seven.onum
diff --git a/fonts/etbb/enc/etbb_e3m4fz.enc b/fonts/etbb/enc/etbb_vmilsn.enc
index ebc96be70d..eda0fd28ea 100644
--- a/fonts/etbb/enc/etbb_e3m4fz.enc
+++ b/fonts/etbb/enc/etbb_vmilsn.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_e3m4fzaal3fm6lwih762ck4hoh
-% Encoding created by otftotfm on Tue Dec 21 11:31:17 2021
+%%AutoEnc_vmilsn6nylzh75eycg7fvjg5yh
+% Encoding created by otftotfm on Thu Feb 3 15:20:47 2022
% Command line follows encoding
-/AutoEnc_e3m4fzaal3fm6lwih762ck4hoh [
+/AutoEnc_vmilsn6nylzh75eycg7fvjg5yh [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero /one /two /three /four /five /six /seven
diff --git a/fonts/etbb/enc/etbb_tif2yn.enc b/fonts/etbb/enc/etbb_vqghpl.enc
index 4a98a6c86b..a8d6eb5e68 100644
--- a/fonts/etbb/enc/etbb_tif2yn.enc
+++ b/fonts/etbb/enc/etbb_vqghpl.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_tif2ynv3fdnyajhtthl5l33lxb
-% Encoding created by otftotfm on Tue Dec 21 11:31:10 2021
+%%AutoEnc_vqghplbidfbjkr75br4koqiizf
+% Encoding created by otftotfm on Thu Feb 3 15:20:46 2022
% Command line follows encoding
-/AutoEnc_tif2ynv3fdnyajhtthl5l33lxb [
+/AutoEnc_vqghplbidfbjkr75br4koqiizf [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave.superior /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam.superior /quotedblright /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
+ /.notdef /exclam.superior /quotedblright /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
/parenleft.superior /parenright.superior /asterisk.superior /plus.superior /comma.superior /hyphen.superior /period.superior /slash.superior
%30
/zero.superior /onesuperior /twosuperior /three /four.superior /five.superior /six.superior /seven.superior
diff --git a/fonts/etbb/enc/etbb_4h6gms.enc b/fonts/etbb/enc/etbb_vtabip.enc
index f4db5533c8..8a87ca815c 100644
--- a/fonts/etbb/enc/etbb_4h6gms.enc
+++ b/fonts/etbb/enc/etbb_vtabip.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_4h6gmskd3mmlebycwa2rvw3mfh
-% Encoding created by otftotfm on Tue Dec 21 11:30:30 2021
+%%AutoEnc_vtabipmm4e5xag7gq2nwm3p6gc
+% Encoding created by otftotfm on Thu Feb 3 15:20:08 2022
% Command line follows encoding
-/AutoEnc_4h6gmskd3mmlebycwa2rvw3mfh [
+/AutoEnc_vtabipmm4e5xag7gq2nwm3p6gc [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_ifuncr.enc b/fonts/etbb/enc/etbb_xaqh3v.enc
index 7d0a372fb7..f2e9e8f055 100644
--- a/fonts/etbb/enc/etbb_ifuncr.enc
+++ b/fonts/etbb/enc/etbb_xaqh3v.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ifuncrfewwm74pymebmifdmupa
-% Encoding created by otftotfm on Tue Dec 21 11:30:38 2021
+%%AutoEnc_xaqh3v7my6v7plsnnlq32jk5pb
+% Encoding created by otftotfm on Thu Feb 3 15:20:11 2022
% Command line follows encoding
-/AutoEnc_ifuncrfewwm74pymebmifdmupa [
+/AutoEnc_xaqh3v7my6v7plsnnlq32jk5pb [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_xe5wuh.enc b/fonts/etbb/enc/etbb_xe5wuh.enc
index 62ea52e673..2353927994 100644
--- a/fonts/etbb/enc/etbb_xe5wuh.enc
+++ b/fonts/etbb/enc/etbb_xe5wuh.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_xe5wuhzidgbvcpd4udlt7isypc
-% Encoding created by otftotfm on Tue Dec 21 11:30:59 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:37 2022
% Command line follows encoding
/AutoEnc_xe5wuhzidgbvcpd4udlt7isypc [
%00
diff --git a/fonts/etbb/enc/etbb_xmn5et.enc b/fonts/etbb/enc/etbb_xmn5et.enc
index de4f491a59..7eddf6b886 100644
--- a/fonts/etbb/enc/etbb_xmn5et.enc
+++ b/fonts/etbb/enc/etbb_xmn5et.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_xmn5etwdfamaoydl5hgcpvzzmh
-% Encoding created by otftotfm on Tue Dec 21 11:30:30 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:09 2022
% Command line follows encoding
/AutoEnc_xmn5etwdfamaoydl5hgcpvzzmh [
%00
diff --git a/fonts/etbb/enc/etbb_uoncjt.enc b/fonts/etbb/enc/etbb_xwgzeq.enc
index aa77d25737..89387caf1d 100644
--- a/fonts/etbb/enc/etbb_uoncjt.enc
+++ b/fonts/etbb/enc/etbb_xwgzeq.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_uoncjtwnmhcjmejtj3u7v6bsxh
-% Encoding created by otftotfm on Tue Dec 21 11:31:21 2021
+%%AutoEnc_xwgzeqmhigkg7pdbkkntz4w3fa
+% Encoding created by otftotfm on Thu Feb 3 15:21:03 2022
% Command line follows encoding
-/AutoEnc_uoncjtwnmhcjmejtj3u7v6bsxh [
+/AutoEnc_xwgzeqmhigkg7pdbkkntz4w3fa [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /Omega /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
+ /uni2423 /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
%30
/zero.denominator /one.denominator /two.denominator /three.denominator /four.denominator /five.denominator /six.denominator /seven.denominator
diff --git a/fonts/etbb/enc/etbb_ohvjcv.enc b/fonts/etbb/enc/etbb_y6dqd4.enc
index 254bbf7a6b..db9732ac4c 100644
--- a/fonts/etbb/enc/etbb_ohvjcv.enc
+++ b/fonts/etbb/enc/etbb_y6dqd4.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_ohvjcvc5bqqlbwbvbss6jzvdvg
-% Encoding created by otftotfm on Tue Dec 21 11:30:39 2021
+%%AutoEnc_y6dqd4a2z4grjvnpmhxzuyt5ad
+% Encoding created by otftotfm on Thu Feb 3 15:20:15 2022
% Command line follows encoding
-/AutoEnc_ohvjcvc5bqqlbwbvbss6jzvdvg [
+/AutoEnc_y6dqd4a2z4grjvnpmhxzuyt5ad [
%00
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
@@ -11,7 +11,7 @@
/dotlessi /dotlessj /grave.superior /acute /caron /breve /macron /ring
/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
%20
- /space /exclam.superior /quotedblright /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
+ /.notdef /exclam.superior /quotedblright /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
/parenleft.superior /parenright.superior /asterisk.superior /plus.superior /comma.superior /hyphen.superior /period.superior /slash.superior
%30
/zero.superior /onesuperior /twosuperior /threesuperior /four.superior /five.superior /six.superior /seven.superior
diff --git a/fonts/etbb/enc/etbb_7vqeic.enc b/fonts/etbb/enc/etbb_yadlkl.enc
index 6936d64d2a..a87c5b0616 100644
--- a/fonts/etbb/enc/etbb_7vqeic.enc
+++ b/fonts/etbb/enc/etbb_yadlkl.enc
@@ -1,15 +1,15 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc_7vqeicxaixdn6xbz3lrlbtoqhg
-% Encoding created by otftotfm on Tue Dec 21 11:30:54 2021
+%%AutoEnc_yadlkl3qecuvugcz5didelzbze
+% Encoding created by otftotfm on Thu Feb 3 15:20:31 2022
% Command line follows encoding
-/AutoEnc_7vqeicxaixdn6xbz3lrlbtoqhg [
+/AutoEnc_yadlkl3qecuvugcz5didelzbze [
%00
/grave.superior /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
%10
/quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef
- /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /dotlessi /dotlessj /ff /fi /fl /ffi /ffl
%20
/space /exclam.superior /quotedbl.superior /numbersign.superior /dollar.superior /percent.superior /ampersand.superior /quoteright
/parenleft.superior /parenright.superior /asterisk.superior /plus.superior /comma.superior /hyphen.superior /period.superior /slash.superior
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave.superior /eacute.superior /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_ybjyd4.enc b/fonts/etbb/enc/etbb_ybjyd4.enc
index 9e0177fb65..23f9c61b53 100644
--- a/fonts/etbb/enc/etbb_ybjyd4.enc
+++ b/fonts/etbb/enc/etbb_ybjyd4.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_ybjyd4l7q3pzoonr2vgt7y7cye
-% Encoding created by otftotfm on Tue Dec 21 11:30:28 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:07 2022
% Command line follows encoding
/AutoEnc_ybjyd4l7q3pzoonr2vgt7y7cye [
%00
diff --git a/fonts/etbb/enc/etbb_yiqwpu.enc b/fonts/etbb/enc/etbb_yiqwpu.enc
index e184b12cff..6092c416e5 100644
--- a/fonts/etbb/enc/etbb_yiqwpu.enc
+++ b/fonts/etbb/enc/etbb_yiqwpu.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_yiqwpuq7peloj5eprodwnynevc
-% Encoding created by otftotfm on Tue Dec 21 11:30:50 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:32 2022
% Command line follows encoding
/AutoEnc_yiqwpuq7peloj5eprodwnynevc [
%00
diff --git a/fonts/etbb/enc/etbb_ytzykv.enc b/fonts/etbb/enc/etbb_ytzykv.enc
index 27c44f36da..ec33aad51b 100644
--- a/fonts/etbb/enc/etbb_ytzykv.enc
+++ b/fonts/etbb/enc/etbb_ytzykv.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_ytzykvcotxef33p6cozlsx4zlh
-% Encoding created by otftotfm on Tue Dec 21 11:31:06 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:36 2022
% Command line follows encoding
/AutoEnc_ytzykvcotxef33p6cozlsx4zlh [
%00
diff --git a/fonts/etbb/enc/etbb1_frt5zk.enc b/fonts/etbb/enc/etbb_yziesh.enc
index feb7deeeee..fdcd2ea274 100644
--- a/fonts/etbb/enc/etbb1_frt5zk.enc
+++ b/fonts/etbb/enc/etbb_yziesh.enc
@@ -1,9 +1,9 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
-%%AutoEnc1_frt5zk5mf5bi5r6kaiwbsdwm4h
-% Encoding created by otftotfm on Tue Dec 21 11:30:33 2021
+%%AutoEnc_yzieshsd44fbunydsrfnu5dloe
+% Encoding created by otftotfm on Thu Feb 3 15:20:04 2022
% Command line follows encoding
-/AutoEnc1_frt5zk5mf5bi5r6kaiwbsdwm4h [
+/AutoEnc_yzieshsd44fbunydsrfnu5dloe [
%00
/grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron
/breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright
@@ -45,13 +45,13 @@
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
%D0
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE
- /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef
+ /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /uni1E9E.ss02
%E0
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
%F0
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe
- /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls
+ /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls.ss02
] def
% Command line: 'otftotfm --automatic --encoding=fontools_t1
% --tfm-directory=texmf/fonts/tfm/public/etbb
diff --git a/fonts/etbb/enc/etbb_yzoycr.enc b/fonts/etbb/enc/etbb_yzoycr.enc
index fb4a06ff0c..4ae11b7198 100644
--- a/fonts/etbb/enc/etbb_yzoycr.enc
+++ b/fonts/etbb/enc/etbb_yzoycr.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_yzoycro7xigz5wnd723rnypzae
-% Encoding created by otftotfm on Tue Dec 21 11:30:35 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:06 2022
% Command line follows encoding
/AutoEnc_yzoycro7xigz5wnd723rnypzae [
%00
diff --git a/fonts/etbb/enc/etbb_zpkt7y.enc b/fonts/etbb/enc/etbb_zpkt7y.enc
index f02b8da249..ad5ddf6c1c 100644
--- a/fonts/etbb/enc/etbb_zpkt7y.enc
+++ b/fonts/etbb/enc/etbb_zpkt7y.enc
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_zpkt7yo2662luadsq46ip6qshh
-% Encoding created by otftotfm on Tue Dec 21 11:30:38 2021
+% Encoding created by otftotfm on Thu Feb 3 15:20:12 2022
% Command line follows encoding
/AutoEnc_zpkt7yo2662luadsq46ip6qshh [
%00
diff --git a/fonts/etbb/map/ETbb.map b/fonts/etbb/map/ETbb.map
index 953c0dbc72..67913a0e6f 100644
--- a/fonts/etbb/map/ETbb.map
+++ b/fonts/etbb/map/ETbb.map
@@ -1,250 +1,246 @@
% Automatically maintained by otftotfm or other programs. Do not edit.
-ETbb-Bold-lf-ot1 ETbb-Bold "AutoEnc_pijcl45xbcrh3ujmxpu2uuufoe ReEncodeFont" <[etbb_pijcl4.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-t1--base ETbb-Bold "AutoEnc_ujerr7xbnnjkudzzzotq7l2mrg ReEncodeFont" <[etbb_ujerr7.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-ly1--base ETbb-Bold "AutoEnc_ohc25e7nugkq5uftwleqtlzhic ReEncodeFont" <[etbb_ohc25e.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-sc-ot1--base ETbb-Bold "AutoEnc_m74he64fxnid2mvcvujjgk3jfc ReEncodeFont" <[etbb_m74he6.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-sc-t1--base ETbb-Bold "AutoEnc_6b4rhpsa6pxda3dbpecbcbe4hh ReEncodeFont" <[etbb_6b4rhp.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-sc-ly1--base ETbb-Bold "AutoEnc_jejpugv4fkdzohdbifitcnkxjb ReEncodeFont" <[etbb_jejpug.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-swash-ot1 ETbb-Bold "AutoEnc_lolxkkcm4a3fwq36qi7tvqprqd ReEncodeFont" <[etbb_lolxkk.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-swash-t1--base ETbb-Bold "AutoEnc_gojfsqpn6o4h6lbxak4mkqz2pf ReEncodeFont" <[etbb_gojfsq.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-swash-ly1--base ETbb-Bold "AutoEnc_gtqfg2y4h5nuzq6u24ubertl3h ReEncodeFont" <[etbb_gtqfg2.enc <ETbb-Bold.pfb
-ETbb-Bold-lf-ts1--base ETbb-Bold "AutoEnc_nvfc5y2s42cdp2nj6iltss7xrc ReEncodeFont" <[etbb_nvfc5y.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-ot1 ETbb-Bold "AutoEnc_rt4krokhlnwam4wxhivtc42zod ReEncodeFont" <[etbb_rt4kro.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-t1--base ETbb-Bold "AutoEnc_nvr6ig6btf4vcx43seyfwfdddf ReEncodeFont" <[etbb_nvr6ig.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-ly1--base ETbb-Bold "AutoEnc_ybjyd4l7q3pzoonr2vgt7y7cye ReEncodeFont" <[etbb_ybjyd4.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-sc-ot1--base ETbb-Bold "AutoEnc_icp3zkdjqefmy7aeihz6ksfvph ReEncodeFont" <[etbb_icp3zk.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-sc-t1--base ETbb-Bold "AutoEnc_u2xzqdhpypappkhgw7cwbtqsxe ReEncodeFont" <[etbb_u2xzqd.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-sc-ly1--base ETbb-Bold "AutoEnc_5ll7zhwvujbykp4klqbuo6xcpa ReEncodeFont" <[etbb_5ll7zh.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-swash-ot1 ETbb-Bold "AutoEnc_cpb6sdrmtmjdkd4dvmojrwtfyb ReEncodeFont" <[etbb_cpb6sd.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-swash-t1--base ETbb-Bold "AutoEnc_4h6gmskd3mmlebycwa2rvw3mfh ReEncodeFont" <[etbb_4h6gms.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-swash-ly1--base ETbb-Bold "AutoEnc_xmn5etwdfamaoydl5hgcpvzzmh ReEncodeFont" <[etbb_xmn5et.enc <ETbb-Bold.pfb
-ETbb-Bold-tosf-ts1--base ETbb-Bold "AutoEnc_nvfc5y2s42cdp2nj6iltss7xrc ReEncodeFont" <[etbb_nvfc5y.enc <ETbb-Bold.pfb
-ETbb-Bold-tlf-ot1 ETbb-Bold "AutoEnc_ihmnlry5rdqsk57rbbszezzogb ReEncodeFont" <[etbb_ihmnlr.enc <ETbb-Bold.pfb
-ETbb-Bold-tlf-t1--base ETbb-Bold "AutoEnc_hbqmiufivrhezoy6gtopfrghab ReEncodeFont" <[etbb_hbqmiu.enc <ETbb-Bold.pfb
+ETbb-Bold-tlf-ot1--base ETbb-Bold "AutoEnc_j43iwogbhmg3paqqba3bhttw2c ReEncodeFont" <[etbb_j43iwo.enc <ETbb-Bold.pfb
+ETbb-Bold-tlf-t1--base ETbb-Bold "AutoEnc_pvrda3ayd24l2jz24a3yz6f4kd ReEncodeFont" <[etbb_pvrda3.enc <ETbb-Bold.pfb
ETbb-Bold-tlf-ly1--base ETbb-Bold "AutoEnc_elsw3hdxi5xivsxqghfqivctad ReEncodeFont" <[etbb_elsw3h.enc <ETbb-Bold.pfb
-ETbb-Bold-tlf-sc-ot1--base ETbb-Bold "AutoEnc_xq7qrab6xf2f2gznvgat2zorhc ReEncodeFont" <[etbb_xq7qra.enc <ETbb-Bold.pfb
-ETbb-Bold-tlf-sc-t1--base ETbb-Bold "AutoEnc_n6yk3iegd2fawdz5k6sldx7ioc ReEncodeFont" <[etbb_n6yk3i.enc <ETbb-Bold.pfb
-ETbb-Bold-tlf-sc-ly1--base ETbb-Bold "AutoEnc_5hqhd4mz7tebzmdeshgwzm7htg ReEncodeFont" <[etbb_5hqhd4.enc <ETbb-Bold.pfb
-ETbb-Bold-tlf-swash-ot1 ETbb-Bold "AutoEnc_p4wmligvvkue2xskkzbfmabuja ReEncodeFont" <[etbb_p4wmli.enc <ETbb-Bold.pfb
-ETbb-Bold-tlf-swash-t1--base ETbb-Bold "AutoEnc_frt5zk5mf5bi5r6kaiwbsdwm4h ReEncodeFont" <[etbb_frt5zk.enc <ETbb-Bold.pfb
+ETbb-Bold-tlf-sc-ot1--base ETbb-Bold "AutoEnc_4o3pf4tqgxtijtwbnb6hzisyvh ReEncodeFont" <[etbb_4o3pf4.enc <ETbb-Bold.pfb
+ETbb-Bold-tlf-sc-t1--base ETbb-Bold "AutoEnc_6bhqsy7o4r4kdtepdcv6ql4w2b ReEncodeFont" <[etbb_6bhqsy.enc <ETbb-Bold.pfb
+ETbb-Bold-tlf-sc-ly1--base ETbb-Bold "AutoEnc_7tqudygnbzgjmkxijlp2ftxcbc ReEncodeFont" <[etbb_7tqudy.enc <ETbb-Bold.pfb
+ETbb-Bold-tlf-swash-ot1--base ETbb-Bold "AutoEnc_3pymqv57edd7wd55vh4pbuqfmc ReEncodeFont" <[etbb_3pymqv.enc <ETbb-Bold.pfb
+ETbb-Bold-tlf-swash-t1--base ETbb-Bold "AutoEnc_yzieshsd44fbunydsrfnu5dloe ReEncodeFont" <[etbb_yziesh.enc <ETbb-Bold.pfb
ETbb-Bold-tlf-swash-ly1--base ETbb-Bold "AutoEnc_fpvlkwpxsrxluug5fok7c7hwmg ReEncodeFont" <[etbb_fpvlkw.enc <ETbb-Bold.pfb
ETbb-Bold-tlf-ts1--base ETbb-Bold "AutoEnc_nvfc5y2s42cdp2nj6iltss7xrc ReEncodeFont" <[etbb_nvfc5y.enc <ETbb-Bold.pfb
-ETbb-Bold-dnom-ot1 ETbb-Bold "AutoEnc_h4dyumvfz6ek2rcxjxry72wymd ReEncodeFont" <[etbb_h4dyum.enc <ETbb-Bold.pfb
-ETbb-Bold-dnom-t1--base ETbb-Bold "AutoEnc_rluk7ruzo437pfvfnnh45fsnde ReEncodeFont" <[etbb_rluk7r.enc <ETbb-Bold.pfb
-ETbb-Bold-dnom-ly1--base ETbb-Bold "AutoEnc_mpvq56haezsrrjg72prw5fumwf ReEncodeFont" <[etbb_mpvq56.enc <ETbb-Bold.pfb
-ETbb-Bold-inf-ot1 ETbb-Bold "AutoEnc_cluc7m4ium2bcpwlcwz2h6yxsd ReEncodeFont" <[etbb_cluc7m.enc <ETbb-Bold.pfb
-ETbb-Bold-inf-t1--base ETbb-Bold "AutoEnc_upf3oddxlsq2xphry33a6uekvh ReEncodeFont" <[etbb_upf3od.enc <ETbb-Bold.pfb
+ETbb-Bold-inf-ot1--base ETbb-Bold "AutoEnc_pqh27dffupbaeqpqkl742iyo2d ReEncodeFont" <[etbb_pqh27d.enc <ETbb-Bold.pfb
+ETbb-Bold-inf-t1--base ETbb-Bold "AutoEnc_3ygfa2oqxsmkth5v7kgndph2kb ReEncodeFont" <[etbb_3ygfa2.enc <ETbb-Bold.pfb
ETbb-Bold-inf-ly1--base ETbb-Bold "AutoEnc_yzoycro7xigz5wnd723rnypzae ReEncodeFont" <[etbb_yzoycr.enc <ETbb-Bold.pfb
-ETbb-Bold-osf-ot1 ETbb-Bold "AutoEnc_3li7dqpy2izcpma72gvve2muqf ReEncodeFont" <[etbb_3li7dq.enc <ETbb-Bold.pfb
-ETbb-Bold-osf-t1--base ETbb-Bold "AutoEnc_55s5uqo65pdpku3cr7xsyxg5of ReEncodeFont" <[etbb_55s5uq.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-ot1--base ETbb-Bold "AutoEnc_4xv7ax3vr2fqoyetcuom3bocia ReEncodeFont" <[etbb_4xv7ax.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-t1--base ETbb-Bold "AutoEnc_3ccbvpb2mahh6euinpg3u7qqze ReEncodeFont" <[etbb_3ccbvp.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-ly1--base ETbb-Bold "AutoEnc_ybjyd4l7q3pzoonr2vgt7y7cye ReEncodeFont" <[etbb_ybjyd4.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-sc-ot1--base ETbb-Bold "AutoEnc_bb5xlmcmsoo2tj7ql6db5s2fad ReEncodeFont" <[etbb_bb5xlm.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-sc-t1--base ETbb-Bold "AutoEnc_sb7odkrwphouyzefmgg7mtfgrf ReEncodeFont" <[etbb_sb7odk.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-sc-ly1--base ETbb-Bold "AutoEnc_7dlbn4dwkeu5h7cbv2vzasjpuf ReEncodeFont" <[etbb_7dlbn4.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-swash-ot1--base ETbb-Bold "AutoEnc_izxro2yzemj5swfwkbahbg7i3e ReEncodeFont" <[etbb_izxro2.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-swash-t1--base ETbb-Bold "AutoEnc_vtabipmm4e5xag7gq2nwm3p6gc ReEncodeFont" <[etbb_vtabip.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-swash-ly1--base ETbb-Bold "AutoEnc_xmn5etwdfamaoydl5hgcpvzzmh ReEncodeFont" <[etbb_xmn5et.enc <ETbb-Bold.pfb
+ETbb-Bold-tosf-ts1--base ETbb-Bold "AutoEnc_nvfc5y2s42cdp2nj6iltss7xrc ReEncodeFont" <[etbb_nvfc5y.enc <ETbb-Bold.pfb
+ETbb-Bold-osf-ot1--base ETbb-Bold "AutoEnc_5drz2o53tqn6ics5yhftb5oqyg ReEncodeFont" <[etbb_5drz2o.enc <ETbb-Bold.pfb
+ETbb-Bold-osf-t1--base ETbb-Bold "AutoEnc_hah5orya7ruvjmqzsfnwzilfbf ReEncodeFont" <[etbb_hah5or.enc <ETbb-Bold.pfb
ETbb-Bold-osf-ly1--base ETbb-Bold "AutoEnc_33mftda5zpj2atc2k5o52aguyh ReEncodeFont" <[etbb_33mftd.enc <ETbb-Bold.pfb
-ETbb-Bold-osf-sc-ot1--base ETbb-Bold "AutoEnc_3pnwavz3hg7d6qd5gas2dqmv6h ReEncodeFont" <[etbb_3pnwav.enc <ETbb-Bold.pfb
-ETbb-Bold-osf-sc-t1--base ETbb-Bold "AutoEnc_gcyiicz4csxvfbjtqre3wkk2ma ReEncodeFont" <[etbb_gcyiic.enc <ETbb-Bold.pfb
-ETbb-Bold-osf-sc-ly1--base ETbb-Bold "AutoEnc_brounlscz4abnslwmf4hmgz7mb ReEncodeFont" <[etbb_brounl.enc <ETbb-Bold.pfb
-ETbb-Bold-osf-swash-ot1 ETbb-Bold "AutoEnc_ay4atisik7ffogqasevzhgjvtc ReEncodeFont" <[etbb_ay4ati.enc <ETbb-Bold.pfb
-ETbb-Bold-osf-swash-t1--base ETbb-Bold "AutoEnc_ifuncrfewwm74pymebmifdmupa ReEncodeFont" <[etbb_ifuncr.enc <ETbb-Bold.pfb
+ETbb-Bold-osf-sc-ot1--base ETbb-Bold "AutoEnc_sjtq2a54i2h23llgyag665hg3h ReEncodeFont" <[etbb_sjtq2a.enc <ETbb-Bold.pfb
+ETbb-Bold-osf-sc-t1--base ETbb-Bold "AutoEnc_6dkfmm5qoe73duaaybt37exlbg ReEncodeFont" <[etbb_6dkfmm.enc <ETbb-Bold.pfb
+ETbb-Bold-osf-sc-ly1--base ETbb-Bold "AutoEnc_ehl4wcmvklaee5zon2l2w6x6qe ReEncodeFont" <[etbb_ehl4wc.enc <ETbb-Bold.pfb
+ETbb-Bold-osf-swash-ot1--base ETbb-Bold "AutoEnc_dkuysnbvtz2cwytarhg33ujsoa ReEncodeFont" <[etbb_dkuysn.enc <ETbb-Bold.pfb
+ETbb-Bold-osf-swash-t1--base ETbb-Bold "AutoEnc_xaqh3v7my6v7plsnnlq32jk5pb ReEncodeFont" <[etbb_xaqh3v.enc <ETbb-Bold.pfb
ETbb-Bold-osf-swash-ly1--base ETbb-Bold "AutoEnc_zpkt7yo2662luadsq46ip6qshh ReEncodeFont" <[etbb_zpkt7y.enc <ETbb-Bold.pfb
ETbb-Bold-osf-ts1--base ETbb-Bold "AutoEnc_nvfc5y2s42cdp2nj6iltss7xrc ReEncodeFont" <[etbb_nvfc5y.enc <ETbb-Bold.pfb
-ETbb-Bold-sup-ot1 ETbb-Bold "AutoEnc_ohvjcvc5bqqlbwbvbss6jzvdvg ReEncodeFont" <[etbb_ohvjcv.enc <ETbb-Bold.pfb
-ETbb-Bold-sup-t1--base ETbb-Bold "AutoEnc_no4mhsvdevbqot7r3poyrn6ifd ReEncodeFont" <[etbb_no4mhs.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-ot1--base ETbb-Bold "AutoEnc_3obh62jl4yytmw2ucdmgikybva ReEncodeFont" <[etbb_3obh62.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-t1--base ETbb-Bold "AutoEnc_eqc2ac2qcg4bxjlkwezu334h4f ReEncodeFont" <[etbb_eqc2ac.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-ly1--base ETbb-Bold "AutoEnc_ohc25e7nugkq5uftwleqtlzhic ReEncodeFont" <[etbb_ohc25e.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-sc-ot1--base ETbb-Bold "AutoEnc_num7wi54gekebzplzwtc6dmuha ReEncodeFont" <[etbb_num7wi.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-sc-t1--base ETbb-Bold "AutoEnc_3ggaku22goyxuhnlifc3zal5fb ReEncodeFont" <[etbb_3ggaku.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-sc-ly1--base ETbb-Bold "AutoEnc_7uz5xhzp5ouhs2ck6ma6xzvyvd ReEncodeFont" <[etbb_7uz5xh.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-swash-ot1--base ETbb-Bold "AutoEnc_gteq3qwudsnqb32vj3ml6hrpig ReEncodeFont" <[etbb_gteq3q.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-swash-t1--base ETbb-Bold "AutoEnc_mgm6reivyglzs2cwtx35q2y4ye ReEncodeFont" <[etbb_mgm6re.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-swash-ly1--base ETbb-Bold "AutoEnc_gtqfg2y4h5nuzq6u24ubertl3h ReEncodeFont" <[etbb_gtqfg2.enc <ETbb-Bold.pfb
+ETbb-Bold-lf-ts1--base ETbb-Bold "AutoEnc_nvfc5y2s42cdp2nj6iltss7xrc ReEncodeFont" <[etbb_nvfc5y.enc <ETbb-Bold.pfb
+ETbb-Bold-sup-ot1--base ETbb-Bold "AutoEnc_y6dqd4a2z4grjvnpmhxzuyt5ad ReEncodeFont" <[etbb_y6dqd4.enc <ETbb-Bold.pfb
+ETbb-Bold-sup-t1--base ETbb-Bold "AutoEnc_2ynk4h3uuip4hyb2vj2xqeci5c ReEncodeFont" <[etbb_2ynk4h.enc <ETbb-Bold.pfb
ETbb-Bold-sup-ly1--base ETbb-Bold "AutoEnc_atf2m5uqgbwoyyy5ueppslzajb ReEncodeFont" <[etbb_atf2m5.enc <ETbb-Bold.pfb
-ETbb-BoldItalic-lf-ot1 ETbb-BoldItalic "AutoEnc_pijcl45xbcrh3ujmxpu2uuufoe ReEncodeFont" <[etbb_pijcl4.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-t1--base ETbb-BoldItalic "AutoEnc_ujerr7xbnnjkudzzzotq7l2mrg ReEncodeFont" <[etbb_ujerr7.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-ly1--base ETbb-BoldItalic "AutoEnc_j7myehdyrz6gorvvepmwcnbthh ReEncodeFont" <[etbb_j7myeh.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-sc-ot1--base ETbb-BoldItalic "AutoEnc_m74he64fxnid2mvcvujjgk3jfc ReEncodeFont" <[etbb_m74he6.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-sc-t1--base ETbb-BoldItalic "AutoEnc_6b4rhpsa6pxda3dbpecbcbe4hh ReEncodeFont" <[etbb_6b4rhp.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-sc-ly1--base ETbb-BoldItalic "AutoEnc_q62n247r56bsa7x73lg2hfrq3b ReEncodeFont" <[etbb_q62n24.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-swash-ot1 ETbb-BoldItalic "AutoEnc_lolxkkcm4a3fwq36qi7tvqprqd ReEncodeFont" <[etbb_lolxkk.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-swash-t1--base ETbb-BoldItalic "AutoEnc_gojfsqpn6o4h6lbxak4mkqz2pf ReEncodeFont" <[etbb_gojfsq.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-swash-ly1--base ETbb-BoldItalic "AutoEnc_4hpi45xua3rf7rmnl54bpggxkg ReEncodeFont" <[etbb_4hpi45.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-lf-ts1--base ETbb-BoldItalic "AutoEnc_hn62aykleptmvhydkg3euih6fg ReEncodeFont" <[etbb_hn62ay.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-ot1 ETbb-BoldItalic "AutoEnc_rt4krokhlnwam4wxhivtc42zod ReEncodeFont" <[etbb_rt4kro.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-t1--base ETbb-BoldItalic "AutoEnc_nvr6ig6btf4vcx43seyfwfdddf ReEncodeFont" <[etbb_nvr6ig.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-ly1--base ETbb-BoldItalic "AutoEnc_cyyszv3tgoadb7habjipfqte7b ReEncodeFont" <[etbb_cyyszv.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-sc-ot1--base ETbb-BoldItalic "AutoEnc_icp3zkdjqefmy7aeihz6ksfvph ReEncodeFont" <[etbb_icp3zk.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-sc-t1--base ETbb-BoldItalic "AutoEnc_u2xzqdhpypappkhgw7cwbtqsxe ReEncodeFont" <[etbb_u2xzqd.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-sc-ly1--base ETbb-BoldItalic "AutoEnc_boj3jd46imhlttx4pucalv5dud ReEncodeFont" <[etbb_boj3jd.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-swash-ot1 ETbb-BoldItalic "AutoEnc_cpb6sdrmtmjdkd4dvmojrwtfyb ReEncodeFont" <[etbb_cpb6sd.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-swash-t1--base ETbb-BoldItalic "AutoEnc_4h6gmskd3mmlebycwa2rvw3mfh ReEncodeFont" <[etbb_4h6gms.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-swash-ly1--base ETbb-BoldItalic "AutoEnc_skushqlalkfgdo46rxhdwryuge ReEncodeFont" <[etbb_skushq.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tosf-ts1--base ETbb-BoldItalic "AutoEnc_hn62aykleptmvhydkg3euih6fg ReEncodeFont" <[etbb_hn62ay.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tlf-ot1 ETbb-BoldItalic "AutoEnc_ihmnlry5rdqsk57rbbszezzogb ReEncodeFont" <[etbb_ihmnlr.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tlf-t1--base ETbb-BoldItalic "AutoEnc_hbqmiufivrhezoy6gtopfrghab ReEncodeFont" <[etbb_hbqmiu.enc <ETbb-BoldItalic.pfb
+ETbb-Bold-dnom-ot1--base ETbb-Bold "AutoEnc_eqlboop5vjqqxn3yf5tmvskadc ReEncodeFont" <[etbb_eqlboo.enc <ETbb-Bold.pfb
+ETbb-Bold-dnom-t1--base ETbb-Bold "AutoEnc_ow4ien4myt5hec4z5mmfpq7kye ReEncodeFont" <[etbb_ow4ien.enc <ETbb-Bold.pfb
+ETbb-Bold-dnom-ly1--base ETbb-Bold "AutoEnc_mpvq56haezsrrjg72prw5fumwf ReEncodeFont" <[etbb_mpvq56.enc <ETbb-Bold.pfb
+ETbb-BoldItalic-tlf-ot1--base ETbb-BoldItalic "AutoEnc_j43iwogbhmg3paqqba3bhttw2c ReEncodeFont" <[etbb_j43iwo.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tlf-t1--base ETbb-BoldItalic "AutoEnc_pvrda3ayd24l2jz24a3yz6f4kd ReEncodeFont" <[etbb_pvrda3.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-tlf-ly1--base ETbb-BoldItalic "AutoEnc_riohwxsior5lnnjjsjpbvpslke ReEncodeFont" <[etbb_riohwx.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tlf-sc-ot1--base ETbb-BoldItalic "AutoEnc_xq7qrab6xf2f2gznvgat2zorhc ReEncodeFont" <[etbb_xq7qra.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tlf-sc-t1--base ETbb-BoldItalic "AutoEnc_n6yk3iegd2fawdz5k6sldx7ioc ReEncodeFont" <[etbb_n6yk3i.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tlf-sc-ot1--base ETbb-BoldItalic "AutoEnc_olodrhovdnfo3m64jdmab6jwfe ReEncodeFont" <[etbb_olodrh.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tlf-sc-t1--base ETbb-BoldItalic "AutoEnc_d63bafzc3zwo3hptzgll74aefa ReEncodeFont" <[etbb_d63baf.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-tlf-sc-ly1--base ETbb-BoldItalic "AutoEnc_ladhhj66shqsq2lfu2ukqmc2fg ReEncodeFont" <[etbb_ladhhj.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tlf-swash-ot1 ETbb-BoldItalic "AutoEnc_p4wmligvvkue2xskkzbfmabuja ReEncodeFont" <[etbb_p4wmli.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-tlf-swash-t1--base ETbb-BoldItalic "AutoEnc_frt5zk5mf5bi5r6kaiwbsdwm4h ReEncodeFont" <[etbb_frt5zk.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tlf-swash-ot1--base ETbb-BoldItalic "AutoEnc_3pymqv57edd7wd55vh4pbuqfmc ReEncodeFont" <[etbb_3pymqv.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tlf-swash-t1--base ETbb-BoldItalic "AutoEnc_yzieshsd44fbunydsrfnu5dloe ReEncodeFont" <[etbb_yziesh.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-tlf-swash-ly1--base ETbb-BoldItalic "AutoEnc_v6nho72t4emng74mnbztuynq6f ReEncodeFont" <[etbb_v6nho7.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-tlf-ts1--base ETbb-BoldItalic "AutoEnc_hn62aykleptmvhydkg3euih6fg ReEncodeFont" <[etbb_hn62ay.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-dnom-ot1 ETbb-BoldItalic "AutoEnc_h4dyumvfz6ek2rcxjxry72wymd ReEncodeFont" <[etbb_h4dyum.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-dnom-t1--base ETbb-BoldItalic "AutoEnc_rluk7ruzo437pfvfnnh45fsnde ReEncodeFont" <[etbb_rluk7r.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-dnom-ly1--base ETbb-BoldItalic "AutoEnc_yiqwpuq7peloj5eprodwnynevc ReEncodeFont" <[etbb_yiqwpu.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-inf-ot1 ETbb-BoldItalic "AutoEnc_cluc7m4ium2bcpwlcwz2h6yxsd ReEncodeFont" <[etbb_cluc7m.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-inf-t1--base ETbb-BoldItalic "AutoEnc_upf3oddxlsq2xphry33a6uekvh ReEncodeFont" <[etbb_upf3od.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-inf-ot1--base ETbb-BoldItalic "AutoEnc_pqh27dffupbaeqpqkl742iyo2d ReEncodeFont" <[etbb_pqh27d.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-inf-t1--base ETbb-BoldItalic "AutoEnc_3ygfa2oqxsmkth5v7kgndph2kb ReEncodeFont" <[etbb_3ygfa2.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-inf-ly1--base ETbb-BoldItalic "AutoEnc_kvzzr3edrncu7vt2awvffb64cc ReEncodeFont" <[etbb_kvzzr3.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-osf-ot1 ETbb-BoldItalic "AutoEnc_3li7dqpy2izcpma72gvve2muqf ReEncodeFont" <[etbb_3li7dq.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-osf-t1--base ETbb-BoldItalic "AutoEnc_55s5uqo65pdpku3cr7xsyxg5of ReEncodeFont" <[etbb_55s5uq.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-ot1--base ETbb-BoldItalic "AutoEnc_4xv7ax3vr2fqoyetcuom3bocia ReEncodeFont" <[etbb_4xv7ax.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-t1--base ETbb-BoldItalic "AutoEnc_3ccbvpb2mahh6euinpg3u7qqze ReEncodeFont" <[etbb_3ccbvp.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-ly1--base ETbb-BoldItalic "AutoEnc_cyyszv3tgoadb7habjipfqte7b ReEncodeFont" <[etbb_cyyszv.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-sc-ot1--base ETbb-BoldItalic "AutoEnc_p6ehomu3gqo4zllybcz6jetjie ReEncodeFont" <[etbb_p6ehom.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-sc-t1--base ETbb-BoldItalic "AutoEnc_mfronshiuahup7no32v7skamif ReEncodeFont" <[etbb_mfrons.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-sc-ly1--base ETbb-BoldItalic "AutoEnc_boj3jd46imhlttx4pucalv5dud ReEncodeFont" <[etbb_boj3jd.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-swash-ot1--base ETbb-BoldItalic "AutoEnc_izxro2yzemj5swfwkbahbg7i3e ReEncodeFont" <[etbb_izxro2.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-swash-t1--base ETbb-BoldItalic "AutoEnc_vtabipmm4e5xag7gq2nwm3p6gc ReEncodeFont" <[etbb_vtabip.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-swash-ly1--base ETbb-BoldItalic "AutoEnc_skushqlalkfgdo46rxhdwryuge ReEncodeFont" <[etbb_skushq.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-tosf-ts1--base ETbb-BoldItalic "AutoEnc_hn62aykleptmvhydkg3euih6fg ReEncodeFont" <[etbb_hn62ay.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-osf-ot1--base ETbb-BoldItalic "AutoEnc_5drz2o53tqn6ics5yhftb5oqyg ReEncodeFont" <[etbb_5drz2o.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-osf-t1--base ETbb-BoldItalic "AutoEnc_hah5orya7ruvjmqzsfnwzilfbf ReEncodeFont" <[etbb_hah5or.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-osf-ly1--base ETbb-BoldItalic "AutoEnc_242knmbltpk57lyn3w752okimf ReEncodeFont" <[etbb_242knm.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-osf-sc-ot1--base ETbb-BoldItalic "AutoEnc_3pnwavz3hg7d6qd5gas2dqmv6h ReEncodeFont" <[etbb_3pnwav.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-osf-sc-t1--base ETbb-BoldItalic "AutoEnc_gcyiicz4csxvfbjtqre3wkk2ma ReEncodeFont" <[etbb_gcyiic.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-osf-sc-ot1--base ETbb-BoldItalic "AutoEnc_t4d6nlpcltq26gnb3hp3ib5ufd ReEncodeFont" <[etbb_t4d6nl.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-osf-sc-t1--base ETbb-BoldItalic "AutoEnc_dpvwoq5bihazuqgjfnsh6pxf5b ReEncodeFont" <[etbb_dpvwoq.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-osf-sc-ly1--base ETbb-BoldItalic "AutoEnc_j4gzycykvaqv5pnwloczfvlbha ReEncodeFont" <[etbb_j4gzyc.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-osf-swash-ot1 ETbb-BoldItalic "AutoEnc_ay4atisik7ffogqasevzhgjvtc ReEncodeFont" <[etbb_ay4ati.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-osf-swash-t1--base ETbb-BoldItalic "AutoEnc_ifuncrfewwm74pymebmifdmupa ReEncodeFont" <[etbb_ifuncr.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-osf-swash-ot1--base ETbb-BoldItalic "AutoEnc_dkuysnbvtz2cwytarhg33ujsoa ReEncodeFont" <[etbb_dkuysn.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-osf-swash-t1--base ETbb-BoldItalic "AutoEnc_xaqh3v7my6v7plsnnlq32jk5pb ReEncodeFont" <[etbb_xaqh3v.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-osf-swash-ly1--base ETbb-BoldItalic "AutoEnc_cq6xx2fn5plzdjapa525zg3uad ReEncodeFont" <[etbb_cq6xx2.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-osf-ts1--base ETbb-BoldItalic "AutoEnc_hn62aykleptmvhydkg3euih6fg ReEncodeFont" <[etbb_hn62ay.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-sup-ot1 ETbb-BoldItalic "AutoEnc_ea2dgh24m4p3kft426m6vb5nre ReEncodeFont" <[etbb_ea2dgh.enc <ETbb-BoldItalic.pfb
-ETbb-BoldItalic-sup-t1--base ETbb-BoldItalic "AutoEnc_7vqeicxaixdn6xbz3lrlbtoqhg ReEncodeFont" <[etbb_7vqeic.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-ot1--base ETbb-BoldItalic "AutoEnc_3obh62jl4yytmw2ucdmgikybva ReEncodeFont" <[etbb_3obh62.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-t1--base ETbb-BoldItalic "AutoEnc_eqc2ac2qcg4bxjlkwezu334h4f ReEncodeFont" <[etbb_eqc2ac.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-ly1--base ETbb-BoldItalic "AutoEnc_j7myehdyrz6gorvvepmwcnbthh ReEncodeFont" <[etbb_j7myeh.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-sc-ot1--base ETbb-BoldItalic "AutoEnc_jjhcstv3yadedwcowizglcw37e ReEncodeFont" <[etbb_jjhcst.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-sc-t1--base ETbb-BoldItalic "AutoEnc_frcze6nxcs26de2rhkc4n276le ReEncodeFont" <[etbb_frcze6.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-sc-ly1--base ETbb-BoldItalic "AutoEnc_q62n247r56bsa7x73lg2hfrq3b ReEncodeFont" <[etbb_q62n24.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-swash-ot1--base ETbb-BoldItalic "AutoEnc_gteq3qwudsnqb32vj3ml6hrpig ReEncodeFont" <[etbb_gteq3q.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-swash-t1--base ETbb-BoldItalic "AutoEnc_mgm6reivyglzs2cwtx35q2y4ye ReEncodeFont" <[etbb_mgm6re.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-swash-ly1--base ETbb-BoldItalic "AutoEnc_4hpi45xua3rf7rmnl54bpggxkg ReEncodeFont" <[etbb_4hpi45.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-lf-ts1--base ETbb-BoldItalic "AutoEnc_hn62aykleptmvhydkg3euih6fg ReEncodeFont" <[etbb_hn62ay.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-sup-ot1--base ETbb-BoldItalic "AutoEnc_7ipmvrsyviiz52uszqgrdpmzec ReEncodeFont" <[etbb_7ipmvr.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-sup-t1--base ETbb-BoldItalic "AutoEnc_yadlkl3qecuvugcz5didelzbze ReEncodeFont" <[etbb_yadlkl.enc <ETbb-BoldItalic.pfb
ETbb-BoldItalic-sup-ly1--base ETbb-BoldItalic "AutoEnc_7t4ywj5n7dfcy72ielrltqzb7a ReEncodeFont" <[etbb_7t4ywj.enc <ETbb-BoldItalic.pfb
-ETbb-Italic-lf-ot1 ETbb-Italic "AutoEnc_pijcl45xbcrh3ujmxpu2uuufoe ReEncodeFont" <[etbb_pijcl4.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-t1--base ETbb-Italic "AutoEnc_ujerr7xbnnjkudzzzotq7l2mrg ReEncodeFont" <[etbb_ujerr7.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-ly1--base ETbb-Italic "AutoEnc_5iolltwrolq7y3af3zfxbxwjhg ReEncodeFont" <[etbb_5iollt.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-sc-ot1--base ETbb-Italic "AutoEnc_3rdlaplsvqg4x5d4ogftbp3u5b ReEncodeFont" <[etbb_3rdlap.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-sc-t1--base ETbb-Italic "AutoEnc_vbmlbbxz7tbehbzj5lbnuze2zg ReEncodeFont" <[etbb_vbmlbb.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-sc-ly1--base ETbb-Italic "AutoEnc_e7zo2oi7r3xrhfqd6ly5q2jezg ReEncodeFont" <[etbb_e7zo2o.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-swash-ot1 ETbb-Italic "AutoEnc_lolxkkcm4a3fwq36qi7tvqprqd ReEncodeFont" <[etbb_lolxkk.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-swash-t1--base ETbb-Italic "AutoEnc_gojfsqpn6o4h6lbxak4mkqz2pf ReEncodeFont" <[etbb_gojfsq.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-swash-ly1--base ETbb-Italic "AutoEnc_f55mslfj4hkccrqglfkn6satdb ReEncodeFont" <[etbb_f55msl.enc <ETbb-Italic.pfb
-ETbb-Italic-lf-ts1--base ETbb-Italic "AutoEnc_65swoaksouobshgplr6wc46zbe ReEncodeFont" <[etbb_65swoa.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-ot1 ETbb-Italic "AutoEnc_rt4krokhlnwam4wxhivtc42zod ReEncodeFont" <[etbb_rt4kro.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-t1--base ETbb-Italic "AutoEnc_nvr6ig6btf4vcx43seyfwfdddf ReEncodeFont" <[etbb_nvr6ig.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-ly1--base ETbb-Italic "AutoEnc_xe5wuhzidgbvcpd4udlt7isypc ReEncodeFont" <[etbb_xe5wuh.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-sc-ot1--base ETbb-Italic "AutoEnc_agksatcf7xec4mnvs5v6hcdxae ReEncodeFont" <[etbb_agksat.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-sc-t1--base ETbb-Italic "AutoEnc_cp6bsz5iopjtxmf6p55nagrmkh ReEncodeFont" <[etbb_cp6bsz.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-sc-ly1--base ETbb-Italic "AutoEnc_hdnox5ov25qala2bkiojjms64c ReEncodeFont" <[etbb_hdnox5.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-swash-ot1 ETbb-Italic "AutoEnc_cpb6sdrmtmjdkd4dvmojrwtfyb ReEncodeFont" <[etbb_cpb6sd.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-swash-t1--base ETbb-Italic "AutoEnc_4h6gmskd3mmlebycwa2rvw3mfh ReEncodeFont" <[etbb_4h6gms.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-swash-ly1--base ETbb-Italic "AutoEnc_tbmtgoznr33jpt6iokvjfw4jnd ReEncodeFont" <[etbb_tbmtgo.enc <ETbb-Italic.pfb
-ETbb-Italic-tosf-ts1--base ETbb-Italic "AutoEnc_65swoaksouobshgplr6wc46zbe ReEncodeFont" <[etbb_65swoa.enc <ETbb-Italic.pfb
-ETbb-Italic-tlf-ot1 ETbb-Italic "AutoEnc_ihmnlry5rdqsk57rbbszezzogb ReEncodeFont" <[etbb_ihmnlr.enc <ETbb-Italic.pfb
-ETbb-Italic-tlf-t1--base ETbb-Italic "AutoEnc_hbqmiufivrhezoy6gtopfrghab ReEncodeFont" <[etbb_hbqmiu.enc <ETbb-Italic.pfb
+ETbb-BoldItalic-dnom-ot1--base ETbb-BoldItalic "AutoEnc_eqlboop5vjqqxn3yf5tmvskadc ReEncodeFont" <[etbb_eqlboo.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-dnom-t1--base ETbb-BoldItalic "AutoEnc_ow4ien4myt5hec4z5mmfpq7kye ReEncodeFont" <[etbb_ow4ien.enc <ETbb-BoldItalic.pfb
+ETbb-BoldItalic-dnom-ly1--base ETbb-BoldItalic "AutoEnc_yiqwpuq7peloj5eprodwnynevc ReEncodeFont" <[etbb_yiqwpu.enc <ETbb-BoldItalic.pfb
+ETbb-Italic-tlf-ot1--base ETbb-Italic "AutoEnc_j43iwogbhmg3paqqba3bhttw2c ReEncodeFont" <[etbb_j43iwo.enc <ETbb-Italic.pfb
+ETbb-Italic-tlf-t1--base ETbb-Italic "AutoEnc_pvrda3ayd24l2jz24a3yz6f4kd ReEncodeFont" <[etbb_pvrda3.enc <ETbb-Italic.pfb
ETbb-Italic-tlf-ly1--base ETbb-Italic "AutoEnc_i5ezvitppcazvehmki6u25ne3h ReEncodeFont" <[etbb_i5ezvi.enc <ETbb-Italic.pfb
-ETbb-Italic-tlf-sc-ot1--base ETbb-Italic "AutoEnc_dz2nenk67xbt7khdbdbcfb6m7a ReEncodeFont" <[etbb_dz2nen.enc <ETbb-Italic.pfb
-ETbb-Italic-tlf-sc-t1--base ETbb-Italic "AutoEnc_ue3xcj3ucrhmky4gvnr7atygla ReEncodeFont" <[etbb_ue3xcj.enc <ETbb-Italic.pfb
+ETbb-Italic-tlf-sc-ot1--base ETbb-Italic "AutoEnc_4o3pf4tqgxtijtwbnb6hzisyvh ReEncodeFont" <[etbb_4o3pf4.enc <ETbb-Italic.pfb
+ETbb-Italic-tlf-sc-t1--base ETbb-Italic "AutoEnc_6bhqsy7o4r4kdtepdcv6ql4w2b ReEncodeFont" <[etbb_6bhqsy.enc <ETbb-Italic.pfb
ETbb-Italic-tlf-sc-ly1--base ETbb-Italic "AutoEnc_cyp5f54p4q6zxw5lofrrfueuud ReEncodeFont" <[etbb_cyp5f5.enc <ETbb-Italic.pfb
-ETbb-Italic-tlf-swash-ot1 ETbb-Italic "AutoEnc_p4wmligvvkue2xskkzbfmabuja ReEncodeFont" <[etbb_p4wmli.enc <ETbb-Italic.pfb
-ETbb-Italic-tlf-swash-t1--base ETbb-Italic "AutoEnc_frt5zk5mf5bi5r6kaiwbsdwm4h ReEncodeFont" <[etbb_frt5zk.enc <ETbb-Italic.pfb
+ETbb-Italic-tlf-swash-ot1--base ETbb-Italic "AutoEnc_3pymqv57edd7wd55vh4pbuqfmc ReEncodeFont" <[etbb_3pymqv.enc <ETbb-Italic.pfb
+ETbb-Italic-tlf-swash-t1--base ETbb-Italic "AutoEnc_yzieshsd44fbunydsrfnu5dloe ReEncodeFont" <[etbb_yziesh.enc <ETbb-Italic.pfb
ETbb-Italic-tlf-swash-ly1--base ETbb-Italic "AutoEnc_cxbognvjc6orz6vd7e4qkufizg ReEncodeFont" <[etbb_cxbogn.enc <ETbb-Italic.pfb
ETbb-Italic-tlf-ts1--base ETbb-Italic "AutoEnc_65swoaksouobshgplr6wc46zbe ReEncodeFont" <[etbb_65swoa.enc <ETbb-Italic.pfb
-ETbb-Italic-dnom-ot1 ETbb-Italic "AutoEnc_h4dyumvfz6ek2rcxjxry72wymd ReEncodeFont" <[etbb_h4dyum.enc <ETbb-Italic.pfb
-ETbb-Italic-dnom-t1--base ETbb-Italic "AutoEnc_rluk7ruzo437pfvfnnh45fsnde ReEncodeFont" <[etbb_rluk7r.enc <ETbb-Italic.pfb
-ETbb-Italic-dnom-ly1--base ETbb-Italic "AutoEnc_rzlqzq4dfqtplm3j7w5fz6domf ReEncodeFont" <[etbb_rzlqzq.enc <ETbb-Italic.pfb
-ETbb-Italic-inf-ot1 ETbb-Italic "AutoEnc_cluc7m4ium2bcpwlcwz2h6yxsd ReEncodeFont" <[etbb_cluc7m.enc <ETbb-Italic.pfb
-ETbb-Italic-inf-t1--base ETbb-Italic "AutoEnc_upf3oddxlsq2xphry33a6uekvh ReEncodeFont" <[etbb_upf3od.enc <ETbb-Italic.pfb
+ETbb-Italic-inf-ot1--base ETbb-Italic "AutoEnc_pqh27dffupbaeqpqkl742iyo2d ReEncodeFont" <[etbb_pqh27d.enc <ETbb-Italic.pfb
+ETbb-Italic-inf-t1--base ETbb-Italic "AutoEnc_3ygfa2oqxsmkth5v7kgndph2kb ReEncodeFont" <[etbb_3ygfa2.enc <ETbb-Italic.pfb
ETbb-Italic-inf-ly1--base ETbb-Italic "AutoEnc_ytzykvcotxef33p6cozlsx4zlh ReEncodeFont" <[etbb_ytzykv.enc <ETbb-Italic.pfb
-ETbb-Italic-osf-ot1 ETbb-Italic "AutoEnc_3li7dqpy2izcpma72gvve2muqf ReEncodeFont" <[etbb_3li7dq.enc <ETbb-Italic.pfb
-ETbb-Italic-osf-t1--base ETbb-Italic "AutoEnc_55s5uqo65pdpku3cr7xsyxg5of ReEncodeFont" <[etbb_55s5uq.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-ot1--base ETbb-Italic "AutoEnc_4xv7ax3vr2fqoyetcuom3bocia ReEncodeFont" <[etbb_4xv7ax.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-t1--base ETbb-Italic "AutoEnc_3ccbvpb2mahh6euinpg3u7qqze ReEncodeFont" <[etbb_3ccbvp.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-ly1--base ETbb-Italic "AutoEnc_xe5wuhzidgbvcpd4udlt7isypc ReEncodeFont" <[etbb_xe5wuh.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-sc-ot1--base ETbb-Italic "AutoEnc_bb5xlmcmsoo2tj7ql6db5s2fad ReEncodeFont" <[etbb_bb5xlm.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-sc-t1--base ETbb-Italic "AutoEnc_sb7odkrwphouyzefmgg7mtfgrf ReEncodeFont" <[etbb_sb7odk.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-sc-ly1--base ETbb-Italic "AutoEnc_hdnox5ov25qala2bkiojjms64c ReEncodeFont" <[etbb_hdnox5.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-swash-ot1--base ETbb-Italic "AutoEnc_izxro2yzemj5swfwkbahbg7i3e ReEncodeFont" <[etbb_izxro2.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-swash-t1--base ETbb-Italic "AutoEnc_vtabipmm4e5xag7gq2nwm3p6gc ReEncodeFont" <[etbb_vtabip.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-swash-ly1--base ETbb-Italic "AutoEnc_tbmtgoznr33jpt6iokvjfw4jnd ReEncodeFont" <[etbb_tbmtgo.enc <ETbb-Italic.pfb
+ETbb-Italic-tosf-ts1--base ETbb-Italic "AutoEnc_65swoaksouobshgplr6wc46zbe ReEncodeFont" <[etbb_65swoa.enc <ETbb-Italic.pfb
+ETbb-Italic-osf-ot1--base ETbb-Italic "AutoEnc_5drz2o53tqn6ics5yhftb5oqyg ReEncodeFont" <[etbb_5drz2o.enc <ETbb-Italic.pfb
+ETbb-Italic-osf-t1--base ETbb-Italic "AutoEnc_hah5orya7ruvjmqzsfnwzilfbf ReEncodeFont" <[etbb_hah5or.enc <ETbb-Italic.pfb
ETbb-Italic-osf-ly1--base ETbb-Italic "AutoEnc_m5kdwta2ya4v2cpfk2w7yaatjb ReEncodeFont" <[etbb_m5kdwt.enc <ETbb-Italic.pfb
-ETbb-Italic-osf-sc-ot1--base ETbb-Italic "AutoEnc_le3wsuk34kmoex4bzg5ny6m6ph ReEncodeFont" <[etbb_le3wsu.enc <ETbb-Italic.pfb
-ETbb-Italic-osf-sc-t1--base ETbb-Italic "AutoEnc_6bb767vgyf6bkkruaompchxqgf ReEncodeFont" <[etbb_6bb767.enc <ETbb-Italic.pfb
+ETbb-Italic-osf-sc-ot1--base ETbb-Italic "AutoEnc_sjtq2a54i2h23llgyag665hg3h ReEncodeFont" <[etbb_sjtq2a.enc <ETbb-Italic.pfb
+ETbb-Italic-osf-sc-t1--base ETbb-Italic "AutoEnc_6dkfmm5qoe73duaaybt37exlbg ReEncodeFont" <[etbb_6dkfmm.enc <ETbb-Italic.pfb
ETbb-Italic-osf-sc-ly1--base ETbb-Italic "AutoEnc_oe3mznofozp2ytwevbi4nhgsyh ReEncodeFont" <[etbb_oe3mzn.enc <ETbb-Italic.pfb
-ETbb-Italic-osf-swash-ot1 ETbb-Italic "AutoEnc_ay4atisik7ffogqasevzhgjvtc ReEncodeFont" <[etbb_ay4ati.enc <ETbb-Italic.pfb
-ETbb-Italic-osf-swash-t1--base ETbb-Italic "AutoEnc_ifuncrfewwm74pymebmifdmupa ReEncodeFont" <[etbb_ifuncr.enc <ETbb-Italic.pfb
+ETbb-Italic-osf-swash-ot1--base ETbb-Italic "AutoEnc_dkuysnbvtz2cwytarhg33ujsoa ReEncodeFont" <[etbb_dkuysn.enc <ETbb-Italic.pfb
+ETbb-Italic-osf-swash-t1--base ETbb-Italic "AutoEnc_xaqh3v7my6v7plsnnlq32jk5pb ReEncodeFont" <[etbb_xaqh3v.enc <ETbb-Italic.pfb
ETbb-Italic-osf-swash-ly1--base ETbb-Italic "AutoEnc_fwcdpht2mk2iigledipz2k5mxb ReEncodeFont" <[etbb_fwcdph.enc <ETbb-Italic.pfb
ETbb-Italic-osf-ts1--base ETbb-Italic "AutoEnc_65swoaksouobshgplr6wc46zbe ReEncodeFont" <[etbb_65swoa.enc <ETbb-Italic.pfb
-ETbb-Italic-sup-ot1 ETbb-Italic "AutoEnc_tif2ynv3fdnyajhtthl5l33lxb ReEncodeFont" <[etbb_tif2yn.enc <ETbb-Italic.pfb
-ETbb-Italic-sup-t1--base ETbb-Italic "AutoEnc_ziol45eykyi2baku6kum6xzyig ReEncodeFont" <[etbb_ziol45.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-ot1--base ETbb-Italic "AutoEnc_3obh62jl4yytmw2ucdmgikybva ReEncodeFont" <[etbb_3obh62.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-t1--base ETbb-Italic "AutoEnc_eqc2ac2qcg4bxjlkwezu334h4f ReEncodeFont" <[etbb_eqc2ac.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-ly1--base ETbb-Italic "AutoEnc_5iolltwrolq7y3af3zfxbxwjhg ReEncodeFont" <[etbb_5iollt.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-sc-ot1--base ETbb-Italic "AutoEnc_num7wi54gekebzplzwtc6dmuha ReEncodeFont" <[etbb_num7wi.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-sc-t1--base ETbb-Italic "AutoEnc_3ggaku22goyxuhnlifc3zal5fb ReEncodeFont" <[etbb_3ggaku.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-sc-ly1--base ETbb-Italic "AutoEnc_e7zo2oi7r3xrhfqd6ly5q2jezg ReEncodeFont" <[etbb_e7zo2o.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-swash-ot1--base ETbb-Italic "AutoEnc_gteq3qwudsnqb32vj3ml6hrpig ReEncodeFont" <[etbb_gteq3q.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-swash-t1--base ETbb-Italic "AutoEnc_mgm6reivyglzs2cwtx35q2y4ye ReEncodeFont" <[etbb_mgm6re.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-swash-ly1--base ETbb-Italic "AutoEnc_f55mslfj4hkccrqglfkn6satdb ReEncodeFont" <[etbb_f55msl.enc <ETbb-Italic.pfb
+ETbb-Italic-lf-ts1--base ETbb-Italic "AutoEnc_65swoaksouobshgplr6wc46zbe ReEncodeFont" <[etbb_65swoa.enc <ETbb-Italic.pfb
+ETbb-Italic-sup-ot1--base ETbb-Italic "AutoEnc_vqghplbidfbjkr75br4koqiizf ReEncodeFont" <[etbb_vqghpl.enc <ETbb-Italic.pfb
+ETbb-Italic-sup-t1--base ETbb-Italic "AutoEnc_42bwpggtmdkf77p747hl4bh5wg ReEncodeFont" <[etbb_42bwpg.enc <ETbb-Italic.pfb
ETbb-Italic-sup-ly1--base ETbb-Italic "AutoEnc_oynaqbx2tknlw3aeddaeveg26e ReEncodeFont" <[etbb_oynaqb.enc <ETbb-Italic.pfb
-ETbb-Regular-lf-ot1 ETbb-Regular "AutoEnc_qqjyrebwkze4pfxo72toftkebf ReEncodeFont" <[etbb_qqjyre.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-t1--base ETbb-Regular "AutoEnc_ujerr7xbnnjkudzzzotq7l2mrg ReEncodeFont" <[etbb_ujerr7.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-ly1--base ETbb-Regular "AutoEnc_ohc25e7nugkq5uftwleqtlzhic ReEncodeFont" <[etbb_ohc25e.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-sc-ot1--base ETbb-Regular "AutoEnc_ghqdpy3yxw3upgthc3bzm4vtqe ReEncodeFont" <[etbb_ghqdpy.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-sc-t1--base ETbb-Regular "AutoEnc_vbmlbbxz7tbehbzj5lbnuze2zg ReEncodeFont" <[etbb_vbmlbb.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-sc-ly1--base ETbb-Regular "AutoEnc_7uz5xhzp5ouhs2ck6ma6xzvyvd ReEncodeFont" <[etbb_7uz5xh.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-swash-ot1 ETbb-Regular "AutoEnc_wplashkp5h2u4lgwljah7kwuab ReEncodeFont" <[etbb_wplash.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-swash-t1--base ETbb-Regular "AutoEnc_gojfsqpn6o4h6lbxak4mkqz2pf ReEncodeFont" <[etbb_gojfsq.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-swash-ly1--base ETbb-Regular "AutoEnc_gtqfg2y4h5nuzq6u24ubertl3h ReEncodeFont" <[etbb_gtqfg2.enc <ETbb-Regular.pfb
-ETbb-Regular-lf-ts1--base ETbb-Regular "AutoEnc_6z6nrwwfi372xivperdacs5nkc ReEncodeFont" <[etbb_6z6nrw.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-ot1 ETbb-Regular "AutoEnc_nfh2owxdg6o6hn6aumhzqgw4xe ReEncodeFont" <[etbb_nfh2ow.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-t1--base ETbb-Regular "AutoEnc_nvr6ig6btf4vcx43seyfwfdddf ReEncodeFont" <[etbb_nvr6ig.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-ly1--base ETbb-Regular "AutoEnc_ybjyd4l7q3pzoonr2vgt7y7cye ReEncodeFont" <[etbb_ybjyd4.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-sc-ot1--base ETbb-Regular "AutoEnc_dv2xfwwuyxa3wtigrdvdpedgag ReEncodeFont" <[etbb_dv2xfw.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-sc-t1--base ETbb-Regular "AutoEnc_cp6bsz5iopjtxmf6p55nagrmkh ReEncodeFont" <[etbb_cp6bsz.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-sc-ly1--base ETbb-Regular "AutoEnc_7dlbn4dwkeu5h7cbv2vzasjpuf ReEncodeFont" <[etbb_7dlbn4.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-swash-ot1 ETbb-Regular "AutoEnc_4qfaj2fkf6gpmcsvmpnfqrb6ib ReEncodeFont" <[etbb_4qfaj2.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-swash-t1--base ETbb-Regular "AutoEnc_4h6gmskd3mmlebycwa2rvw3mfh ReEncodeFont" <[etbb_4h6gms.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-swash-ly1--base ETbb-Regular "AutoEnc_xmn5etwdfamaoydl5hgcpvzzmh ReEncodeFont" <[etbb_xmn5et.enc <ETbb-Regular.pfb
-ETbb-Regular-tosf-ts1--base ETbb-Regular "AutoEnc_6z6nrwwfi372xivperdacs5nkc ReEncodeFont" <[etbb_6z6nrw.enc <ETbb-Regular.pfb
-ETbb-Regular-tlf-ot1 ETbb-Regular "AutoEnc_e3m4fzaal3fm6lwih762ck4hoh ReEncodeFont" <[etbb_e3m4fz.enc <ETbb-Regular.pfb
-ETbb-Regular-tlf-t1--base ETbb-Regular "AutoEnc_hbqmiufivrhezoy6gtopfrghab ReEncodeFont" <[etbb_hbqmiu.enc <ETbb-Regular.pfb
+ETbb-Italic-dnom-ot1--base ETbb-Italic "AutoEnc_eqlboop5vjqqxn3yf5tmvskadc ReEncodeFont" <[etbb_eqlboo.enc <ETbb-Italic.pfb
+ETbb-Italic-dnom-t1--base ETbb-Italic "AutoEnc_ow4ien4myt5hec4z5mmfpq7kye ReEncodeFont" <[etbb_ow4ien.enc <ETbb-Italic.pfb
+ETbb-Italic-dnom-ly1--base ETbb-Italic "AutoEnc_rzlqzq4dfqtplm3j7w5fz6domf ReEncodeFont" <[etbb_rzlqzq.enc <ETbb-Italic.pfb
+ETbb-Regular-tlf-ot1 ETbb-Regular "AutoEnc_vmilsn6nylzh75eycg7fvjg5yh ReEncodeFont" <[etbb_vmilsn.enc <ETbb-Regular.pfb
+ETbb-Regular-tlf-t1--base ETbb-Regular "AutoEnc_pvrda3ayd24l2jz24a3yz6f4kd ReEncodeFont" <[etbb_pvrda3.enc <ETbb-Regular.pfb
ETbb-Regular-tlf-ly1--base ETbb-Regular "AutoEnc_elsw3hdxi5xivsxqghfqivctad ReEncodeFont" <[etbb_elsw3h.enc <ETbb-Regular.pfb
-ETbb-Regular-tlf-sc-ot1--base ETbb-Regular "AutoEnc_qrk72gtd2bxaznl2wdopxnwg2e ReEncodeFont" <[etbb_qrk72g.enc <ETbb-Regular.pfb
-ETbb-Regular-tlf-sc-t1--base ETbb-Regular "AutoEnc_ue3xcj3ucrhmky4gvnr7atygla ReEncodeFont" <[etbb_ue3xcj.enc <ETbb-Regular.pfb
+ETbb-Regular-tlf-sc-ot1--base ETbb-Regular "AutoEnc_ooqfsa36ihfrpwggrqfizawgkb ReEncodeFont" <[etbb_ooqfsa.enc <ETbb-Regular.pfb
+ETbb-Regular-tlf-sc-t1--base ETbb-Regular "AutoEnc_6bhqsy7o4r4kdtepdcv6ql4w2b ReEncodeFont" <[etbb_6bhqsy.enc <ETbb-Regular.pfb
ETbb-Regular-tlf-sc-ly1--base ETbb-Regular "AutoEnc_7tqudygnbzgjmkxijlp2ftxcbc ReEncodeFont" <[etbb_7tqudy.enc <ETbb-Regular.pfb
-ETbb-Regular-tlf-swash-ot1 ETbb-Regular "AutoEnc_ydcfbcl5ljqkibbzqu2uvlk5mh ReEncodeFont" <[etbb_ydcfbc.enc <ETbb-Regular.pfb
-ETbb-Regular-tlf-swash-t1--base ETbb-Regular "AutoEnc_frt5zk5mf5bi5r6kaiwbsdwm4h ReEncodeFont" <[etbb_frt5zk.enc <ETbb-Regular.pfb
+ETbb-Regular-tlf-swash-ot1 ETbb-Regular "AutoEnc_fveujuz7uq6gy6asqqhcwybzda ReEncodeFont" <[etbb_fveuju.enc <ETbb-Regular.pfb
+ETbb-Regular-tlf-swash-t1--base ETbb-Regular "AutoEnc_yzieshsd44fbunydsrfnu5dloe ReEncodeFont" <[etbb_yziesh.enc <ETbb-Regular.pfb
ETbb-Regular-tlf-swash-ly1--base ETbb-Regular "AutoEnc_fpvlkwpxsrxluug5fok7c7hwmg ReEncodeFont" <[etbb_fpvlkw.enc <ETbb-Regular.pfb
ETbb-Regular-tlf-ts1--base ETbb-Regular "AutoEnc_6z6nrwwfi372xivperdacs5nkc ReEncodeFont" <[etbb_6z6nrw.enc <ETbb-Regular.pfb
-ETbb-Regular-dnom-ot1 ETbb-Regular "AutoEnc_uoncjtwnmhcjmejtj3u7v6bsxh ReEncodeFont" <[etbb_uoncjt.enc <ETbb-Regular.pfb
-ETbb-Regular-dnom-t1--base ETbb-Regular "AutoEnc_rluk7ruzo437pfvfnnh45fsnde ReEncodeFont" <[etbb_rluk7r.enc <ETbb-Regular.pfb
-ETbb-Regular-dnom-ly1--base ETbb-Regular "AutoEnc_mpvq56haezsrrjg72prw5fumwf ReEncodeFont" <[etbb_mpvq56.enc <ETbb-Regular.pfb
-ETbb-Regular-inf-ot1 ETbb-Regular "AutoEnc_ftphfyliafmvcwfqlg66apswmh ReEncodeFont" <[etbb_ftphfy.enc <ETbb-Regular.pfb
-ETbb-Regular-inf-t1--base ETbb-Regular "AutoEnc_3bao6xeqlfbwoz74bra6iev3fc ReEncodeFont" <[etbb_3bao6x.enc <ETbb-Regular.pfb
+ETbb-Regular-inf-ot1 ETbb-Regular "AutoEnc_onypnlamnqndkq3rnhgvaazdud ReEncodeFont" <[etbb_onypnl.enc <ETbb-Regular.pfb
+ETbb-Regular-inf-t1--base ETbb-Regular "AutoEnc_i2z4ax2hl7rlqfzcvar5mh7p7b ReEncodeFont" <[etbb_i2z4ax.enc <ETbb-Regular.pfb
ETbb-Regular-inf-ly1--base ETbb-Regular "AutoEnc_4sxvu4thduhlpavew6yzmuysdd ReEncodeFont" <[etbb_4sxvu4.enc <ETbb-Regular.pfb
-ETbb-Regular-osf-ot1 ETbb-Regular "AutoEnc_r34xpuqbjubisgsjxlr74lrpqd ReEncodeFont" <[etbb_r34xpu.enc <ETbb-Regular.pfb
-ETbb-Regular-osf-t1--base ETbb-Regular "AutoEnc_55s5uqo65pdpku3cr7xsyxg5of ReEncodeFont" <[etbb_55s5uq.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-ot1 ETbb-Regular "AutoEnc_5um4soi5y2ah3naxc472okitmh ReEncodeFont" <[etbb_5um4so.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-t1--base ETbb-Regular "AutoEnc_3ccbvpb2mahh6euinpg3u7qqze ReEncodeFont" <[etbb_3ccbvp.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-ly1--base ETbb-Regular "AutoEnc_ybjyd4l7q3pzoonr2vgt7y7cye ReEncodeFont" <[etbb_ybjyd4.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-sc-ot1--base ETbb-Regular "AutoEnc_2jmcdky4obprojqpxbx7nxnvzf ReEncodeFont" <[etbb_2jmcdk.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-sc-t1--base ETbb-Regular "AutoEnc_sb7odkrwphouyzefmgg7mtfgrf ReEncodeFont" <[etbb_sb7odk.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-sc-ly1--base ETbb-Regular "AutoEnc_7dlbn4dwkeu5h7cbv2vzasjpuf ReEncodeFont" <[etbb_7dlbn4.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-swash-ot1 ETbb-Regular "AutoEnc_b3flk2jsqjnp3kqecy442b3yoe ReEncodeFont" <[etbb_b3flk2.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-swash-t1--base ETbb-Regular "AutoEnc_vtabipmm4e5xag7gq2nwm3p6gc ReEncodeFont" <[etbb_vtabip.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-swash-ly1--base ETbb-Regular "AutoEnc_xmn5etwdfamaoydl5hgcpvzzmh ReEncodeFont" <[etbb_xmn5et.enc <ETbb-Regular.pfb
+ETbb-Regular-tosf-ts1--base ETbb-Regular "AutoEnc_6z6nrwwfi372xivperdacs5nkc ReEncodeFont" <[etbb_6z6nrw.enc <ETbb-Regular.pfb
+ETbb-Regular-osf-ot1 ETbb-Regular "AutoEnc_fyek6uudgznkjhvy37xztxet3d ReEncodeFont" <[etbb_fyek6u.enc <ETbb-Regular.pfb
+ETbb-Regular-osf-t1--base ETbb-Regular "AutoEnc_hah5orya7ruvjmqzsfnwzilfbf ReEncodeFont" <[etbb_hah5or.enc <ETbb-Regular.pfb
ETbb-Regular-osf-ly1--base ETbb-Regular "AutoEnc_33mftda5zpj2atc2k5o52aguyh ReEncodeFont" <[etbb_33mftd.enc <ETbb-Regular.pfb
-ETbb-Regular-osf-sc-ot1--base ETbb-Regular "AutoEnc_n5h2ymzshpvgw4adqdcmaf3b4g ReEncodeFont" <[etbb_n5h2ym.enc <ETbb-Regular.pfb
-ETbb-Regular-osf-sc-t1--base ETbb-Regular "AutoEnc_6bb767vgyf6bkkruaompchxqgf ReEncodeFont" <[etbb_6bb767.enc <ETbb-Regular.pfb
+ETbb-Regular-osf-sc-ot1--base ETbb-Regular "AutoEnc_veuqizdfas43gzdvjdqer7dyoa ReEncodeFont" <[etbb_veuqiz.enc <ETbb-Regular.pfb
+ETbb-Regular-osf-sc-t1--base ETbb-Regular "AutoEnc_6dkfmm5qoe73duaaybt37exlbg ReEncodeFont" <[etbb_6dkfmm.enc <ETbb-Regular.pfb
ETbb-Regular-osf-sc-ly1--base ETbb-Regular "AutoEnc_ehl4wcmvklaee5zon2l2w6x6qe ReEncodeFont" <[etbb_ehl4wc.enc <ETbb-Regular.pfb
-ETbb-Regular-osf-swash-ot1 ETbb-Regular "AutoEnc_ujmsnd4wrjk5td66f5dpjczund ReEncodeFont" <[etbb_ujmsnd.enc <ETbb-Regular.pfb
-ETbb-Regular-osf-swash-t1--base ETbb-Regular "AutoEnc_ifuncrfewwm74pymebmifdmupa ReEncodeFont" <[etbb_ifuncr.enc <ETbb-Regular.pfb
+ETbb-Regular-osf-swash-ot1 ETbb-Regular "AutoEnc_n73bzfvv7mgdjcjit7ss47ujzh ReEncodeFont" <[etbb_n73bzf.enc <ETbb-Regular.pfb
+ETbb-Regular-osf-swash-t1--base ETbb-Regular "AutoEnc_xaqh3v7my6v7plsnnlq32jk5pb ReEncodeFont" <[etbb_xaqh3v.enc <ETbb-Regular.pfb
ETbb-Regular-osf-swash-ly1--base ETbb-Regular "AutoEnc_zpkt7yo2662luadsq46ip6qshh ReEncodeFont" <[etbb_zpkt7y.enc <ETbb-Regular.pfb
ETbb-Regular-osf-ts1--base ETbb-Regular "AutoEnc_6z6nrwwfi372xivperdacs5nkc ReEncodeFont" <[etbb_6z6nrw.enc <ETbb-Regular.pfb
-ETbb-Regular-sup-ot1 ETbb-Regular "AutoEnc_dep6cdmobxdewjybmud7kefdcf ReEncodeFont" <[etbb_dep6cd.enc <ETbb-Regular.pfb
-ETbb-Regular-sup-t1--base ETbb-Regular "AutoEnc_muumxeoou2fakmyg63u2ohpivb ReEncodeFont" <[etbb_muumxe.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-ot1 ETbb-Regular "AutoEnc_g2yynhbtsdgofc4z2wfyt7cltg ReEncodeFont" <[etbb_g2yynh.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-t1--base ETbb-Regular "AutoEnc_eqc2ac2qcg4bxjlkwezu334h4f ReEncodeFont" <[etbb_eqc2ac.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-ly1--base ETbb-Regular "AutoEnc_ohc25e7nugkq5uftwleqtlzhic ReEncodeFont" <[etbb_ohc25e.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-sc-ot1--base ETbb-Regular "AutoEnc_tunzhvimpp4ybxihjziekqlcng ReEncodeFont" <[etbb_tunzhv.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-sc-t1--base ETbb-Regular "AutoEnc_3ggaku22goyxuhnlifc3zal5fb ReEncodeFont" <[etbb_3ggaku.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-sc-ly1--base ETbb-Regular "AutoEnc_7uz5xhzp5ouhs2ck6ma6xzvyvd ReEncodeFont" <[etbb_7uz5xh.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-swash-ot1 ETbb-Regular "AutoEnc_vazzz3gvkgqnwsxqxlsqs677gh ReEncodeFont" <[etbb_vazzz3.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-swash-t1--base ETbb-Regular "AutoEnc_mgm6reivyglzs2cwtx35q2y4ye ReEncodeFont" <[etbb_mgm6re.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-swash-ly1--base ETbb-Regular "AutoEnc_gtqfg2y4h5nuzq6u24ubertl3h ReEncodeFont" <[etbb_gtqfg2.enc <ETbb-Regular.pfb
+ETbb-Regular-lf-ts1--base ETbb-Regular "AutoEnc_6z6nrwwfi372xivperdacs5nkc ReEncodeFont" <[etbb_6z6nrw.enc <ETbb-Regular.pfb
+ETbb-Regular-sup-ot1 ETbb-Regular "AutoEnc_rgl4wjvtlyjmgoraok4sfxfpya ReEncodeFont" <[etbb_rgl4wj.enc <ETbb-Regular.pfb
+ETbb-Regular-sup-t1--base ETbb-Regular "AutoEnc_ujzbb6qa3ozvls6leade66xrhe ReEncodeFont" <[etbb_ujzbb6.enc <ETbb-Regular.pfb
ETbb-Regular-sup-ly1--base ETbb-Regular "AutoEnc_7pzsmkr2zp4z2jzsqyz5xypura ReEncodeFont" <[etbb_7pzsmk.enc <ETbb-Regular.pfb
-Etbb1-Bold-lf-t1--base ETbb-Bold "AutoEnc1_ujerr7xbnnjkudzzzotq7l2mrg ReEncodeFont" <[etbb1_ujerr7.enc <ETbb-Bold.pfb
-Etbb1-Bold-lf-sc-t1--base ETbb-Bold "AutoEnc1_6b4rhpsa6pxda3dbpecbcbe4hh ReEncodeFont" <[etbb1_6b4rhp.enc <ETbb-Bold.pfb
-Etbb1-Bold-lf-swash-t1--base ETbb-Bold "AutoEnc1_gojfsqpn6o4h6lbxak4mkqz2pf ReEncodeFont" <[etbb1_gojfsq.enc <ETbb-Bold.pfb
-Etbb1-Bold-tosf-t1--base ETbb-Bold "AutoEnc1_nvr6ig6btf4vcx43seyfwfdddf ReEncodeFont" <[etbb1_nvr6ig.enc <ETbb-Bold.pfb
-Etbb1-Bold-tosf-sc-t1--base ETbb-Bold "AutoEnc1_u2xzqdhpypappkhgw7cwbtqsxe ReEncodeFont" <[etbb1_u2xzqd.enc <ETbb-Bold.pfb
-Etbb1-Bold-tosf-swash-t1--base ETbb-Bold "AutoEnc1_4h6gmskd3mmlebycwa2rvw3mfh ReEncodeFont" <[etbb1_4h6gms.enc <ETbb-Bold.pfb
-Etbb1-Bold-tlf-t1--base ETbb-Bold "AutoEnc1_hbqmiufivrhezoy6gtopfrghab ReEncodeFont" <[etbb1_hbqmiu.enc <ETbb-Bold.pfb
-Etbb1-Bold-tlf-sc-t1--base ETbb-Bold "AutoEnc1_n6yk3iegd2fawdz5k6sldx7ioc ReEncodeFont" <[etbb1_n6yk3i.enc <ETbb-Bold.pfb
-Etbb1-Bold-tlf-swash-t1--base ETbb-Bold "AutoEnc1_frt5zk5mf5bi5r6kaiwbsdwm4h ReEncodeFont" <[etbb1_frt5zk.enc <ETbb-Bold.pfb
-Etbb1-Bold-dnom-t1--base ETbb-Bold "AutoEnc1_rluk7ruzo437pfvfnnh45fsnde ReEncodeFont" <[etbb1_rluk7r.enc <ETbb-Bold.pfb
-Etbb1-Bold-osf-t1--base ETbb-Bold "AutoEnc1_55s5uqo65pdpku3cr7xsyxg5of ReEncodeFont" <[etbb1_55s5uq.enc <ETbb-Bold.pfb
-Etbb1-Bold-osf-sc-t1--base ETbb-Bold "AutoEnc1_gcyiicz4csxvfbjtqre3wkk2ma ReEncodeFont" <[etbb1_gcyiic.enc <ETbb-Bold.pfb
-Etbb1-Bold-osf-swash-t1--base ETbb-Bold "AutoEnc1_ifuncrfewwm74pymebmifdmupa ReEncodeFont" <[etbb1_ifuncr.enc <ETbb-Bold.pfb
-Etbb1-BoldItalic-lf-t1--base ETbb-BoldItalic "AutoEnc1_ujerr7xbnnjkudzzzotq7l2mrg ReEncodeFont" <[etbb1_ujerr7.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-lf-sc-t1--base ETbb-BoldItalic "AutoEnc1_6b4rhpsa6pxda3dbpecbcbe4hh ReEncodeFont" <[etbb1_6b4rhp.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-lf-swash-t1--base ETbb-BoldItalic "AutoEnc1_gojfsqpn6o4h6lbxak4mkqz2pf ReEncodeFont" <[etbb1_gojfsq.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-tosf-t1--base ETbb-BoldItalic "AutoEnc1_nvr6ig6btf4vcx43seyfwfdddf ReEncodeFont" <[etbb1_nvr6ig.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-tosf-sc-t1--base ETbb-BoldItalic "AutoEnc1_u2xzqdhpypappkhgw7cwbtqsxe ReEncodeFont" <[etbb1_u2xzqd.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-tosf-swash-t1--base ETbb-BoldItalic "AutoEnc1_4h6gmskd3mmlebycwa2rvw3mfh ReEncodeFont" <[etbb1_4h6gms.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-tlf-t1--base ETbb-BoldItalic "AutoEnc1_hbqmiufivrhezoy6gtopfrghab ReEncodeFont" <[etbb1_hbqmiu.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-tlf-sc-t1--base ETbb-BoldItalic "AutoEnc1_n6yk3iegd2fawdz5k6sldx7ioc ReEncodeFont" <[etbb1_n6yk3i.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-tlf-swash-t1--base ETbb-BoldItalic "AutoEnc1_frt5zk5mf5bi5r6kaiwbsdwm4h ReEncodeFont" <[etbb1_frt5zk.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-dnom-t1--base ETbb-BoldItalic "AutoEnc1_rluk7ruzo437pfvfnnh45fsnde ReEncodeFont" <[etbb1_rluk7r.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-osf-t1--base ETbb-BoldItalic "AutoEnc1_55s5uqo65pdpku3cr7xsyxg5of ReEncodeFont" <[etbb1_55s5uq.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-osf-sc-t1--base ETbb-BoldItalic "AutoEnc1_gcyiicz4csxvfbjtqre3wkk2ma ReEncodeFont" <[etbb1_gcyiic.enc <ETbb-BoldItalic.pfb
-Etbb1-BoldItalic-osf-swash-t1--base ETbb-BoldItalic "AutoEnc1_ifuncrfewwm74pymebmifdmupa ReEncodeFont" <[etbb1_ifuncr.enc <ETbb-BoldItalic.pfb
-Etbb1-Italic-lf-t1--base ETbb-Italic "AutoEnc1_ujerr7xbnnjkudzzzotq7l2mrg ReEncodeFont" <[etbb1_ujerr7.enc <ETbb-Italic.pfb
-Etbb1-Italic-lf-sc-t1--base ETbb-Italic "AutoEnc1_vbmlbbxz7tbehbzj5lbnuze2zg ReEncodeFont" <[etbb1_vbmlbb.enc <ETbb-Italic.pfb
-Etbb1-Italic-lf-swash-t1--base ETbb-Italic "AutoEnc1_gojfsqpn6o4h6lbxak4mkqz2pf ReEncodeFont" <[etbb1_gojfsq.enc <ETbb-Italic.pfb
-Etbb1-Italic-tosf-t1--base ETbb-Italic "AutoEnc1_nvr6ig6btf4vcx43seyfwfdddf ReEncodeFont" <[etbb1_nvr6ig.enc <ETbb-Italic.pfb
-Etbb1-Italic-tosf-sc-t1--base ETbb-Italic "AutoEnc1_cp6bsz5iopjtxmf6p55nagrmkh ReEncodeFont" <[etbb1_cp6bsz.enc <ETbb-Italic.pfb
-Etbb1-Italic-tosf-swash-t1--base ETbb-Italic "AutoEnc1_4h6gmskd3mmlebycwa2rvw3mfh ReEncodeFont" <[etbb1_4h6gms.enc <ETbb-Italic.pfb
-Etbb1-Italic-tlf-t1--base ETbb-Italic "AutoEnc1_hbqmiufivrhezoy6gtopfrghab ReEncodeFont" <[etbb1_hbqmiu.enc <ETbb-Italic.pfb
-Etbb1-Italic-tlf-sc-t1--base ETbb-Italic "AutoEnc1_ue3xcj3ucrhmky4gvnr7atygla ReEncodeFont" <[etbb1_ue3xcj.enc <ETbb-Italic.pfb
-Etbb1-Italic-tlf-swash-t1--base ETbb-Italic "AutoEnc1_frt5zk5mf5bi5r6kaiwbsdwm4h ReEncodeFont" <[etbb1_frt5zk.enc <ETbb-Italic.pfb
-Etbb1-Italic-dnom-t1--base ETbb-Italic "AutoEnc1_rluk7ruzo437pfvfnnh45fsnde ReEncodeFont" <[etbb1_rluk7r.enc <ETbb-Italic.pfb
-Etbb1-Italic-osf-t1--base ETbb-Italic "AutoEnc1_55s5uqo65pdpku3cr7xsyxg5of ReEncodeFont" <[etbb1_55s5uq.enc <ETbb-Italic.pfb
-Etbb1-Italic-osf-sc-t1--base ETbb-Italic "AutoEnc1_6bb767vgyf6bkkruaompchxqgf ReEncodeFont" <[etbb1_6bb767.enc <ETbb-Italic.pfb
-Etbb1-Italic-osf-swash-t1--base ETbb-Italic "AutoEnc1_ifuncrfewwm74pymebmifdmupa ReEncodeFont" <[etbb1_ifuncr.enc <ETbb-Italic.pfb
-Etbb1-Regular-lf-t1--base ETbb-Regular "AutoEnc1_ujerr7xbnnjkudzzzotq7l2mrg ReEncodeFont" <[etbb1_ujerr7.enc <ETbb-Regular.pfb
-Etbb1-Regular-lf-sc-t1--base ETbb-Regular "AutoEnc1_vbmlbbxz7tbehbzj5lbnuze2zg ReEncodeFont" <[etbb1_vbmlbb.enc <ETbb-Regular.pfb
-Etbb1-Regular-lf-swash-t1--base ETbb-Regular "AutoEnc1_gojfsqpn6o4h6lbxak4mkqz2pf ReEncodeFont" <[etbb1_gojfsq.enc <ETbb-Regular.pfb
-Etbb1-Regular-tosf-t1--base ETbb-Regular "AutoEnc1_nvr6ig6btf4vcx43seyfwfdddf ReEncodeFont" <[etbb1_nvr6ig.enc <ETbb-Regular.pfb
-Etbb1-Regular-tosf-sc-t1--base ETbb-Regular "AutoEnc1_cp6bsz5iopjtxmf6p55nagrmkh ReEncodeFont" <[etbb1_cp6bsz.enc <ETbb-Regular.pfb
-Etbb1-Regular-tosf-swash-t1--base ETbb-Regular "AutoEnc1_4h6gmskd3mmlebycwa2rvw3mfh ReEncodeFont" <[etbb1_4h6gms.enc <ETbb-Regular.pfb
-Etbb1-Regular-tlf-t1--base ETbb-Regular "AutoEnc1_hbqmiufivrhezoy6gtopfrghab ReEncodeFont" <[etbb1_hbqmiu.enc <ETbb-Regular.pfb
-Etbb1-Regular-tlf-sc-t1--base ETbb-Regular "AutoEnc1_ue3xcj3ucrhmky4gvnr7atygla ReEncodeFont" <[etbb1_ue3xcj.enc <ETbb-Regular.pfb
-Etbb1-Regular-tlf-swash-t1--base ETbb-Regular "AutoEnc1_frt5zk5mf5bi5r6kaiwbsdwm4h ReEncodeFont" <[etbb1_frt5zk.enc <ETbb-Regular.pfb
-Etbb1-Regular-dnom-t1--base ETbb-Regular "AutoEnc1_rluk7ruzo437pfvfnnh45fsnde ReEncodeFont" <[etbb1_rluk7r.enc <ETbb-Regular.pfb
-Etbb1-Regular-osf-t1--base ETbb-Regular "AutoEnc1_55s5uqo65pdpku3cr7xsyxg5of ReEncodeFont" <[etbb1_55s5uq.enc <ETbb-Regular.pfb
-Etbb1-Regular-osf-sc-t1--base ETbb-Regular "AutoEnc1_6bb767vgyf6bkkruaompchxqgf ReEncodeFont" <[etbb1_6bb767.enc <ETbb-Regular.pfb
-Etbb1-Regular-osf-swash-t1--base ETbb-Regular "AutoEnc1_ifuncrfewwm74pymebmifdmupa ReEncodeFont" <[etbb1_ifuncr.enc <ETbb-Regular.pfb
+ETbb-Regular-dnom-ot1 ETbb-Regular "AutoEnc_xwgzeqmhigkg7pdbkkntz4w3fa ReEncodeFont" <[etbb_xwgzeq.enc <ETbb-Regular.pfb
+ETbb-Regular-dnom-t1--base ETbb-Regular "AutoEnc_ow4ien4myt5hec4z5mmfpq7kye ReEncodeFont" <[etbb_ow4ien.enc <ETbb-Regular.pfb
+ETbb-Regular-dnom-ly1--base ETbb-Regular "AutoEnc_mpvq56haezsrrjg72prw5fumwf ReEncodeFont" <[etbb_mpvq56.enc <ETbb-Regular.pfb
+Etbb1-Bold-tlf-t1--base ETbb-Bold "AutoEnc1_pvrda3ayd24l2jz24a3yz6f4kd ReEncodeFont" <[etbb1_pvrda3.enc <ETbb-Bold.pfb
+Etbb1-Bold-tlf-sc-t1--base ETbb-Bold "AutoEnc1_6bhqsy7o4r4kdtepdcv6ql4w2b ReEncodeFont" <[etbb1_6bhqsy.enc <ETbb-Bold.pfb
+Etbb1-Bold-tlf-swash-t1--base ETbb-Bold "AutoEnc1_yzieshsd44fbunydsrfnu5dloe ReEncodeFont" <[etbb1_yziesh.enc <ETbb-Bold.pfb
+Etbb1-Bold-tosf-t1--base ETbb-Bold "AutoEnc1_3ccbvpb2mahh6euinpg3u7qqze ReEncodeFont" <[etbb1_3ccbvp.enc <ETbb-Bold.pfb
+Etbb1-Bold-tosf-sc-t1--base ETbb-Bold "AutoEnc1_sb7odkrwphouyzefmgg7mtfgrf ReEncodeFont" <[etbb1_sb7odk.enc <ETbb-Bold.pfb
+Etbb1-Bold-tosf-swash-t1--base ETbb-Bold "AutoEnc1_vtabipmm4e5xag7gq2nwm3p6gc ReEncodeFont" <[etbb1_vtabip.enc <ETbb-Bold.pfb
+Etbb1-Bold-osf-t1--base ETbb-Bold "AutoEnc1_hah5orya7ruvjmqzsfnwzilfbf ReEncodeFont" <[etbb1_hah5or.enc <ETbb-Bold.pfb
+Etbb1-Bold-osf-sc-t1--base ETbb-Bold "AutoEnc1_6dkfmm5qoe73duaaybt37exlbg ReEncodeFont" <[etbb1_6dkfmm.enc <ETbb-Bold.pfb
+Etbb1-Bold-osf-swash-t1--base ETbb-Bold "AutoEnc1_xaqh3v7my6v7plsnnlq32jk5pb ReEncodeFont" <[etbb1_xaqh3v.enc <ETbb-Bold.pfb
+Etbb1-Bold-lf-t1--base ETbb-Bold "AutoEnc1_eqc2ac2qcg4bxjlkwezu334h4f ReEncodeFont" <[etbb1_eqc2ac.enc <ETbb-Bold.pfb
+Etbb1-Bold-lf-sc-t1--base ETbb-Bold "AutoEnc1_3ggaku22goyxuhnlifc3zal5fb ReEncodeFont" <[etbb1_3ggaku.enc <ETbb-Bold.pfb
+Etbb1-Bold-lf-swash-t1--base ETbb-Bold "AutoEnc1_mgm6reivyglzs2cwtx35q2y4ye ReEncodeFont" <[etbb1_mgm6re.enc <ETbb-Bold.pfb
+Etbb1-BoldItalic-tlf-t1--base ETbb-BoldItalic "AutoEnc1_pvrda3ayd24l2jz24a3yz6f4kd ReEncodeFont" <[etbb1_pvrda3.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-tlf-sc-t1--base ETbb-BoldItalic "AutoEnc1_d63bafzc3zwo3hptzgll74aefa ReEncodeFont" <[etbb1_d63baf.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-tlf-swash-t1--base ETbb-BoldItalic "AutoEnc1_yzieshsd44fbunydsrfnu5dloe ReEncodeFont" <[etbb1_yziesh.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-tosf-t1--base ETbb-BoldItalic "AutoEnc1_3ccbvpb2mahh6euinpg3u7qqze ReEncodeFont" <[etbb1_3ccbvp.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-tosf-sc-t1--base ETbb-BoldItalic "AutoEnc1_mfronshiuahup7no32v7skamif ReEncodeFont" <[etbb1_mfrons.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-tosf-swash-t1--base ETbb-BoldItalic "AutoEnc1_vtabipmm4e5xag7gq2nwm3p6gc ReEncodeFont" <[etbb1_vtabip.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-osf-t1--base ETbb-BoldItalic "AutoEnc1_hah5orya7ruvjmqzsfnwzilfbf ReEncodeFont" <[etbb1_hah5or.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-osf-sc-t1--base ETbb-BoldItalic "AutoEnc1_dpvwoq5bihazuqgjfnsh6pxf5b ReEncodeFont" <[etbb1_dpvwoq.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-osf-swash-t1--base ETbb-BoldItalic "AutoEnc1_xaqh3v7my6v7plsnnlq32jk5pb ReEncodeFont" <[etbb1_xaqh3v.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-lf-t1--base ETbb-BoldItalic "AutoEnc1_eqc2ac2qcg4bxjlkwezu334h4f ReEncodeFont" <[etbb1_eqc2ac.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-lf-sc-t1--base ETbb-BoldItalic "AutoEnc1_frcze6nxcs26de2rhkc4n276le ReEncodeFont" <[etbb1_frcze6.enc <ETbb-BoldItalic.pfb
+Etbb1-BoldItalic-lf-swash-t1--base ETbb-BoldItalic "AutoEnc1_mgm6reivyglzs2cwtx35q2y4ye ReEncodeFont" <[etbb1_mgm6re.enc <ETbb-BoldItalic.pfb
+Etbb1-Italic-tlf-t1--base ETbb-Italic "AutoEnc1_pvrda3ayd24l2jz24a3yz6f4kd ReEncodeFont" <[etbb1_pvrda3.enc <ETbb-Italic.pfb
+Etbb1-Italic-tlf-sc-t1--base ETbb-Italic "AutoEnc1_6bhqsy7o4r4kdtepdcv6ql4w2b ReEncodeFont" <[etbb1_6bhqsy.enc <ETbb-Italic.pfb
+Etbb1-Italic-tlf-swash-t1--base ETbb-Italic "AutoEnc1_yzieshsd44fbunydsrfnu5dloe ReEncodeFont" <[etbb1_yziesh.enc <ETbb-Italic.pfb
+Etbb1-Italic-tosf-t1--base ETbb-Italic "AutoEnc1_3ccbvpb2mahh6euinpg3u7qqze ReEncodeFont" <[etbb1_3ccbvp.enc <ETbb-Italic.pfb
+Etbb1-Italic-tosf-sc-t1--base ETbb-Italic "AutoEnc1_sb7odkrwphouyzefmgg7mtfgrf ReEncodeFont" <[etbb1_sb7odk.enc <ETbb-Italic.pfb
+Etbb1-Italic-tosf-swash-t1--base ETbb-Italic "AutoEnc1_vtabipmm4e5xag7gq2nwm3p6gc ReEncodeFont" <[etbb1_vtabip.enc <ETbb-Italic.pfb
+Etbb1-Italic-osf-t1--base ETbb-Italic "AutoEnc1_hah5orya7ruvjmqzsfnwzilfbf ReEncodeFont" <[etbb1_hah5or.enc <ETbb-Italic.pfb
+Etbb1-Italic-osf-sc-t1--base ETbb-Italic "AutoEnc1_6dkfmm5qoe73duaaybt37exlbg ReEncodeFont" <[etbb1_6dkfmm.enc <ETbb-Italic.pfb
+Etbb1-Italic-osf-swash-t1--base ETbb-Italic "AutoEnc1_xaqh3v7my6v7plsnnlq32jk5pb ReEncodeFont" <[etbb1_xaqh3v.enc <ETbb-Italic.pfb
+Etbb1-Italic-lf-t1--base ETbb-Italic "AutoEnc1_eqc2ac2qcg4bxjlkwezu334h4f ReEncodeFont" <[etbb1_eqc2ac.enc <ETbb-Italic.pfb
+Etbb1-Italic-lf-sc-t1--base ETbb-Italic "AutoEnc1_3ggaku22goyxuhnlifc3zal5fb ReEncodeFont" <[etbb1_3ggaku.enc <ETbb-Italic.pfb
+Etbb1-Italic-lf-swash-t1--base ETbb-Italic "AutoEnc1_mgm6reivyglzs2cwtx35q2y4ye ReEncodeFont" <[etbb1_mgm6re.enc <ETbb-Italic.pfb
+Etbb1-Regular-tlf-t1--base ETbb-Regular "AutoEnc1_pvrda3ayd24l2jz24a3yz6f4kd ReEncodeFont" <[etbb1_pvrda3.enc <ETbb-Regular.pfb
+Etbb1-Regular-tlf-sc-t1--base ETbb-Regular "AutoEnc1_6bhqsy7o4r4kdtepdcv6ql4w2b ReEncodeFont" <[etbb1_6bhqsy.enc <ETbb-Regular.pfb
+Etbb1-Regular-tlf-swash-t1--base ETbb-Regular "AutoEnc1_yzieshsd44fbunydsrfnu5dloe ReEncodeFont" <[etbb1_yziesh.enc <ETbb-Regular.pfb
+Etbb1-Regular-tosf-t1--base ETbb-Regular "AutoEnc1_3ccbvpb2mahh6euinpg3u7qqze ReEncodeFont" <[etbb1_3ccbvp.enc <ETbb-Regular.pfb
+Etbb1-Regular-tosf-sc-t1--base ETbb-Regular "AutoEnc1_sb7odkrwphouyzefmgg7mtfgrf ReEncodeFont" <[etbb1_sb7odk.enc <ETbb-Regular.pfb
+Etbb1-Regular-tosf-swash-t1--base ETbb-Regular "AutoEnc1_vtabipmm4e5xag7gq2nwm3p6gc ReEncodeFont" <[etbb1_vtabip.enc <ETbb-Regular.pfb
+Etbb1-Regular-osf-t1--base ETbb-Regular "AutoEnc1_hah5orya7ruvjmqzsfnwzilfbf ReEncodeFont" <[etbb1_hah5or.enc <ETbb-Regular.pfb
+Etbb1-Regular-osf-sc-t1--base ETbb-Regular "AutoEnc1_6dkfmm5qoe73duaaybt37exlbg ReEncodeFont" <[etbb1_6dkfmm.enc <ETbb-Regular.pfb
+Etbb1-Regular-osf-swash-t1--base ETbb-Regular "AutoEnc1_xaqh3v7my6v7plsnnlq32jk5pb ReEncodeFont" <[etbb1_xaqh3v.enc <ETbb-Regular.pfb
+Etbb1-Regular-lf-t1--base ETbb-Regular "AutoEnc1_eqc2ac2qcg4bxjlkwezu334h4f ReEncodeFont" <[etbb1_eqc2ac.enc <ETbb-Regular.pfb
+Etbb1-Regular-lf-sc-t1--base ETbb-Regular "AutoEnc1_3ggaku22goyxuhnlifc3zal5fb ReEncodeFont" <[etbb1_3ggaku.enc <ETbb-Regular.pfb
+Etbb1-Regular-lf-swash-t1--base ETbb-Regular "AutoEnc1_mgm6reivyglzs2cwtx35q2y4ye ReEncodeFont" <[etbb1_mgm6re.enc <ETbb-Regular.pfb
diff --git a/fonts/etbb/opentype/ETbb-Bold.otf b/fonts/etbb/opentype/ETbb-Bold.otf
index d2a17d03a4..ab66ec4412 100644
--- a/fonts/etbb/opentype/ETbb-Bold.otf
+++ b/fonts/etbb/opentype/ETbb-Bold.otf
Binary files differ
diff --git a/fonts/etbb/opentype/ETbb-BoldItalic.otf b/fonts/etbb/opentype/ETbb-BoldItalic.otf
index 746460080b..2468ad820f 100644
--- a/fonts/etbb/opentype/ETbb-BoldItalic.otf
+++ b/fonts/etbb/opentype/ETbb-BoldItalic.otf
Binary files differ
diff --git a/fonts/etbb/opentype/ETbb-Italic.otf b/fonts/etbb/opentype/ETbb-Italic.otf
index 411309d778..da302b58d2 100644
--- a/fonts/etbb/opentype/ETbb-Italic.otf
+++ b/fonts/etbb/opentype/ETbb-Italic.otf
Binary files differ
diff --git a/fonts/etbb/opentype/ETbb-Regular.otf b/fonts/etbb/opentype/ETbb-Regular.otf
index 2c28939d44..1936e78407 100644
--- a/fonts/etbb/opentype/ETbb-Regular.otf
+++ b/fonts/etbb/opentype/ETbb-Regular.otf
Binary files differ
diff --git a/fonts/etbb/tex/ETbb.sty b/fonts/etbb/tex/ETbb.sty
index c46fd4bfdb..4ef6dc50f5 100644
--- a/fonts/etbb/tex/ETbb.sty
+++ b/fonts/etbb/tex/ETbb.sty
@@ -1,11 +1,11 @@
%%
\NeedsTeXFormat{LaTeX2e}
-\def\fileversion{1.051}
-\def\filedate{2020/09/20}
+\def\fileversion{1.052}
+\def\filedate{2022/02/04}
\ProvidesPackage{ETbb}
[\filedate\space v\fileversion. Style file for ETbb.]
-\RequirePackage[LY1,T1]{fontenc}
+\RequirePackage[T1]{fontenc}
\RequirePackage[full]{textcomp}
\RequirePackage{ifetex}
\ifetex\RequirePackage{etoolbox}\fi %etoolbox loads etex.sty
@@ -27,6 +27,8 @@
\DeclareTextFontCommand{\textsup}{\supfigures}
\let\textsu\textsup
\let\textsuperior\textsup
+ \let\nustyle\sufigures
+
\def\inffigures{\@nomath\inffigures
\fontfigurestyle{inferior}\selectfont}
\let\infigures\inffigures
@@ -41,7 +43,7 @@
\DeclareTextFontCommand{\textdenom}{\denomfigures}
\let\textde\textdenom
\let\textdenominator\textdenom
-
+ \let\destyle\defigures
}{}
\newcommand{\textfrac}[3][]{% like \textfrac[1]{7}{8}
\mbox{%
@@ -64,17 +66,18 @@
% look for 1, 4, 5, 7
\ifcase\@digit@% 0
\or\kern -.02em% 1
- \or\kern .01em% 2
+ \or\kern -.01em% 2
\or\kern -.02em% 3
\or\kern -.08em% 4
- \or\kern -.01em% 5
+ \or\kern -.03em% 5
\or\kern -.03em% 6
- \or\kern .04em% 7
+ \or\kern .02em% 7
\fi%
\textde{#3}% denominator [#3]
}%
}
+%\newcommand*{\ETbb@First}[2]{\def#2{\StrLeft
\newcommand*{\ETbb@scale}{1}
\RequirePackage{xkeyval}
\DeclareOptionX{scale}{\renewcommand*{\ETbb@scale}{#1}}
@@ -89,11 +92,12 @@
\def\useproportional{\edef\ETbb@figurealign{}}
\@onlypreamble\useproportional
\def\ETbb@@swashQ{}
+\def\ETbb@swashID{0}
\newif\if@ETbb@sharpS
\newif\if@ETbb@sups
\newif\if@ETbb@scosf
-\def\ETbb@foresolidus{-.04em}
-\def\ETbb@aftsolidus{-.03em}
+\def\ETbb@foresolidus{-.05em}
+\def\ETbb@aftsolidus{-.05em}
\def\ETbb@raisefrac{.112em}
\DeclareOptionX{foresolidus}{\gdef\ETbb@foresolidus{#1}}
\DeclareOptionX{aftsolidus}{\gdef\ETbb@aftsolidus{#1}}
@@ -105,17 +109,17 @@
\DeclareOptionX{oldstyle}{\useosf}
\DeclareOptionX{osf}{\useosf}
\DeclareOptionX{useosf}{\useosf}
-\DeclareOptionX{tabular}{\edef\ETbb@figurealign{T}}
-\DeclareOptionX{t}{\edef\ETbb@figurealign{T}}
+\DeclareOptionX{tabular}{\def\ETbb@figurealign{T}}
+\DeclareOptionX{t}{\def\ETbb@figurealign{T}}
\DeclareOptionX{proportional}{\useproportional}
\DeclareOptionX{p}{\useproportional}
\DeclareOptionX{sharpS}{\@ETbb@sharpStrue}
-\DeclareOptionX{swashQ}{\edef\ETbb@@swashQ{-swash}}
+\DeclareOptionX{swashQ}{\def\ETbb@@swashQ{-swash}\def\ETbb@swashID{1}}
\DeclareOptionX{mainfont}{
\renewcommand{\familydefault}{\rmdefault}
}
-\DeclareOptionX{bold}{\edef\bfseries@rm{bold}}
-\DeclareOptionX{regular}{\edef\mdseries@rm{regular}}
+\DeclareOptionX{bold}{\def\bfseries@rm{bold}}
+\DeclareOptionX{regular}{\def\mdseries@rm{regular}}
\DeclareOptionX{sups}{\@ETbb@supstrue}
\DeclareOptionX{scosf}{\@ETbb@scosftrue}
\ExecuteOptionsX{lining,tabular,bold,regular,mainfont}
@@ -170,10 +174,6 @@
{\fontfamily{ETbb-\ETbb@figurealign OsF}\fontshape{sc}\selectfont #1}%
}\fi
-\newcommand{\Qswash}{{\fontencoding{TS1}\fontfamily{ETbb-LF}\selectfont \char59 }}
-\newcommand{\Qnoswash}{{\fontencoding{TS1}\fontfamily{ETbb-LF}\selectfont \char58 }}
-
-%\renewcommand*{\familydefault}{\rmdefault}
\if@ETbb@sups %
\ifdefined\sufigures
\def\f@@tn@te{footnote}
@@ -189,8 +189,27 @@
\fi}%
\fi%
\fi
+\def\Qswash{Q}
+\def\Qnoswash{Q}
+\def\altQ{Q}
\AtEndPreamble{\renewcommand*{\rmdefault}{ETbb-\ETbb@figurealign\ETbb@figurestyle}
-\normalfont}
-
+\normalfont
+\def\ETbb@fst#1#2\@nil{#1} % will apply only to expansion of \encodingdefault
+\def\ETbb@altQEnc{OT1}
+\edef\ETbb@tmpa{\noexpand\ETbb@fst\encodingdefault\noexpand\@nil}%
+\edef\ETbb@E{\ETbb@tmpa}
+\if O\ETbb@E\def\ETbb@altQEnc{T1}\fi
+\ifnum0=\ETbb@swashID
+ \def\Qswash{{\def\ETbb@@swashQ{-swash}\fontencoding{\ETbb@altQEnc}\selectfont Q}}%
+ \def\Qnoswash{Q}
+ \let\altQ=\Qswash%
+\else
+ \def\Qnoswash{{\def\ETbb@@swashQ{}\fontencoding{\ETbb@altQEnc}\selectfont Q}}%
+ \def\Qswash{Q}
+ \def\altQ{Q}
+\fi}
+\AtBeginDocument{%
+\setbox0\hbox{\Qswash\Qnoswash\altQ}
+} % seems to be required for those glyphs to activate later in document
\endinput
diff --git a/fonts/etbb/tfm/ETbb-Bold-dnom-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-dnom-ot1--base.tfm
new file mode 100644
index 0000000000..8fe45d70e1
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-dnom-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-dnom-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-dnom-ot1.tfm
index 0549fc23ce..08936e021d 100644
--- a/fonts/etbb/tfm/ETbb-Bold-dnom-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-dnom-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-dnom-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-dnom-t1--base.tfm
index d64e498041..8f1b604c65 100644
--- a/fonts/etbb/tfm/ETbb-Bold-dnom-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-dnom-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-dnom-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-dnom-t1.tfm
index 7610ec65a5..6bce44b6db 100644
--- a/fonts/etbb/tfm/ETbb-Bold-dnom-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-dnom-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-inf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-inf-ot1--base.tfm
new file mode 100644
index 0000000000..9bfe83cde1
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-inf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-inf-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-inf-ot1.tfm
index 07cd58e2c0..3b8fe5583b 100644
--- a/fonts/etbb/tfm/ETbb-Bold-inf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-inf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-inf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-inf-t1--base.tfm
index 24f9de8c15..fb5aa8aa25 100644
--- a/fonts/etbb/tfm/ETbb-Bold-inf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-inf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-inf-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-inf-t1.tfm
index 22e5c6cfa4..5a067207c2 100644
--- a/fonts/etbb/tfm/ETbb-Bold-inf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-inf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-ot1--base.tfm
new file mode 100644
index 0000000000..a9b775e44d
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-ot1.tfm
index 7f9d8ce54d..ffc2a52c12 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1--base.tfm
index 5b79c97fe9..b82b761568 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1.tfm
index 655e004265..9b4d79361c 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-sc-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1--base.tfm
index 1cdb6b812f..a607e2cc70 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1.tfm
index a56d1c3b54..84ed00b131 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-sc-t1--base.tfm
index 6184c9c0f4..14587465b2 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-sc-t1.tfm
index 663590264c..b2e91a3197 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..82ab575309
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1.tfm
index ce54c99de3..85535acacc 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-swash-t1--base.tfm
index 90d855b742..3f75bc8245 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-swash-t1.tfm
index 8b4284d538..0e65a61886 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-t1--base.tfm
index 09113fe3d2..19dd31a469 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-lf-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-lf-t1.tfm
index 1cc76da6ad..240e125f12 100644
--- a/fonts/etbb/tfm/ETbb-Bold-lf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-lf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-ot1--base.tfm
new file mode 100644
index 0000000000..db6ae83348
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-ot1.tfm
index 52b020dfe1..4bd4c900f8 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1--base.tfm
index c32cef4b63..28ee253e2e 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1.tfm
index 959b54686a..07598b6f73 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-sc-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1--base.tfm
index e597d200c1..21a0e72bf9 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1.tfm
index 820b78712a..442afe0a05 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-sc-t1--base.tfm
index 9a631a4b76..d3ceac8022 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-sc-t1.tfm
index 18d2fe0544..baab662cc9 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..da84010d3d
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1.tfm
index 2780923843..078d323844 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-swash-t1--base.tfm
index ce716da99c..5f29caa54e 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-swash-t1.tfm
index 442e763c49..e76dc08843 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-t1--base.tfm
index 52c3975972..c0f0576f28 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-osf-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-osf-t1.tfm
index 7b3948b83d..0097210d47 100644
--- a/fonts/etbb/tfm/ETbb-Bold-osf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-osf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-sup-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-sup-ot1--base.tfm
new file mode 100644
index 0000000000..5fa1817c15
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-sup-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-sup-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-sup-ot1.tfm
index 0ff371677b..42ff4319f8 100644
--- a/fonts/etbb/tfm/ETbb-Bold-sup-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-sup-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-sup-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-sup-t1--base.tfm
index e33939d68a..1c599ec6e6 100644
--- a/fonts/etbb/tfm/ETbb-Bold-sup-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-sup-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-sup-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-sup-t1.tfm
index b5f46c9c35..bdf27a01f5 100644
--- a/fonts/etbb/tfm/ETbb-Bold-sup-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-sup-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-ot1--base.tfm
new file mode 100644
index 0000000000..8f39289cfa
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-ot1.tfm
index a677627cb9..8092c26813 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1--base.tfm
index 0df208af09..11160e0366 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1.tfm
index bd3ff5b07f..19133c2cb7 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1--base.tfm
index c1523fecd5..503b214cdb 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1.tfm
index 9ac634ff9f..6ef799eed3 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1--base.tfm
index 169606a1e6..85a6d2fb78 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1.tfm
index e627998198..ab16e962dd 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..bc8f88f0f1
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1.tfm
index 72a758b5db..991af9265c 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1--base.tfm
index a782a80af3..19107b7e10 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1.tfm
index bf1ba348da..f7560fa99c 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-t1--base.tfm
index 2821ec126d..d89fa735fe 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tlf-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-tlf-t1.tfm
index 69c7633c5e..a4e9f27110 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tlf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tlf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-ot1--base.tfm
new file mode 100644
index 0000000000..d92f7270e6
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-ot1.tfm
index 13a51fa561..d71d48137f 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1--base.tfm
index 4d983a5797..dbebc53ed1 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1.tfm
index 9f9213cec5..a7f9e0e33c 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1--base.tfm
index 52b9628480..a07856d6a5 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1.tfm
index 02bd32094d..b5dbbb4445 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1--base.tfm
index 119d37af33..ba42da2188 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1.tfm
index 5f26c1b57e..1c66d66079 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..8f173a2da2
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1.tfm
index 84cae55228..c5ecf05942 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1--base.tfm
index 737c5b698f..f5b61af468 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1.tfm
index 535aa9d7a4..da305345cb 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-t1--base.tfm
index 5a297d00e8..13472e5571 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Bold-tosf-t1.tfm b/fonts/etbb/tfm/ETbb-Bold-tosf-t1.tfm
index 392e931444..5a7e074a46 100644
--- a/fonts/etbb/tfm/ETbb-Bold-tosf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Bold-tosf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1--base.tfm
new file mode 100644
index 0000000000..e42439b1fc
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1.tfm
index 1dde301af8..09d767e814 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-dnom-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1--base.tfm
index d81a90c3a9..288b5585e4 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1.tfm
index 9be03b7520..16f1a544ab 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-dnom-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1--base.tfm
new file mode 100644
index 0000000000..c5572960cb
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1.tfm
index cca5c5d907..f9aed9c5d7 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-inf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-inf-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-inf-t1--base.tfm
index 022007f6be..d8bdc3142e 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-inf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-inf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-inf-t1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-inf-t1.tfm
index db5a2c8538..709e9ab834 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-inf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-inf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1--base.tfm
new file mode 100644
index 0000000000..a2e4a4ad1e
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1.tfm
index 6f13bba511..05c1eec6cb 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1--base.tfm
index 5bc715597c..075c638f48 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1.tfm
index 61a3ac42eb..e283e641e4 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1--base.tfm
index 6fec1e10a9..064ec3e212 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1.tfm
index d92a36a64d..f647e65c8c 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..b6bb818bfd
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1.tfm
index 894bb24d60..492c0a572a 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1--base.tfm
index 371c492835..56d9fd7f9c 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-lf-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-lf-t1--base.tfm
index 502f2c067f..2003c6b563 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-lf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-lf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1--base.tfm
new file mode 100644
index 0000000000..9361bb1ca5
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1.tfm
index f680aa3c9d..89d89c425b 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1--base.tfm
index 69c80370b2..1ffcc9f146 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1.tfm
index e4ab456c1e..35540c5b0f 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1--base.tfm
index c7ac56a0a9..39d47a77bb 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1.tfm
index b74875ab82..fabccd9246 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..fe65b0fb61
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1.tfm
index 1d042a9099..7b5f3410ab 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1--base.tfm
index 3c89daca63..4328ba1343 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-osf-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-osf-t1--base.tfm
index 04883279c7..56c97a1668 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-osf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-osf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1--base.tfm
new file mode 100644
index 0000000000..95c541281c
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1.tfm
index af83cd296a..3e08cd6077 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-sup-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-sup-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-sup-t1--base.tfm
index bc0eaabcc0..c37d4624ac 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-sup-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-sup-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-sup-t1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-sup-t1.tfm
index 63ac34b3a0..bd629ce1ae 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-sup-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-sup-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1--base.tfm
new file mode 100644
index 0000000000..452afdec58
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1.tfm
index 4e50b8823b..83ac633298 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1--base.tfm
index f42ff916a1..bb1533fa8d 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1.tfm
index ed34b67619..0ea7dcf81b 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1--base.tfm
index 9e85424fb1..752df14b1c 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1.tfm
index 01012f8516..6130c8ac33 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..eb3856238e
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1.tfm
index 26d8335899..d6f32094ca 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1--base.tfm
index 765f29797f..83d6953fea 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1--base.tfm
index 7f9b839bb2..f21bd5df2f 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tlf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1--base.tfm
new file mode 100644
index 0000000000..645917aae6
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1.tfm
index ee8c604d4b..918698d815 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1--base.tfm
index 74caaff526..abc04a13f3 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1.tfm
index f524922364..17920f7a11 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1--base.tfm
index a07fa54412..2d2b7b33ed 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1.tfm
index 2535757e77..c36388ad97 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..da3200ac1d
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1.tfm
index 56bcf2f56e..9c8e6852ad 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1--base.tfm
index 196a4f2cc8..a948527ee2 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1--base.tfm b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1--base.tfm
index 37763b201b..5b02191f9f 100644
--- a/fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-BoldItalic-tosf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-dnom-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-dnom-ot1--base.tfm
new file mode 100644
index 0000000000..38509a8633
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-dnom-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-dnom-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-dnom-ot1.tfm
index 9b25ea3e9e..de1af65b38 100644
--- a/fonts/etbb/tfm/ETbb-Italic-dnom-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-dnom-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-dnom-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-dnom-t1--base.tfm
index 79d2f1c311..6eb48c5d1e 100644
--- a/fonts/etbb/tfm/ETbb-Italic-dnom-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-dnom-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-dnom-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-dnom-t1.tfm
index 7db0d884c7..e9e78a6f5b 100644
--- a/fonts/etbb/tfm/ETbb-Italic-dnom-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-dnom-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-inf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-inf-ot1--base.tfm
new file mode 100644
index 0000000000..31cf76775f
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-inf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-inf-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-inf-ot1.tfm
index 48d246090d..76d8c47aab 100644
--- a/fonts/etbb/tfm/ETbb-Italic-inf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-inf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-inf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-inf-t1--base.tfm
index 66de353198..abe4842f99 100644
--- a/fonts/etbb/tfm/ETbb-Italic-inf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-inf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-inf-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-inf-t1.tfm
index 4bb8691bf0..35311fa9f0 100644
--- a/fonts/etbb/tfm/ETbb-Italic-inf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-inf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-ot1--base.tfm
new file mode 100644
index 0000000000..f72f18efed
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-ot1.tfm
index b04800a0d6..8f183172d0 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1--base.tfm
index 35071f5f56..4befd34d07 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1.tfm
index 858f79c252..07879c2190 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-sc-t1--base.tfm
index 24302d4396..d90f4f9fac 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-sc-t1.tfm
index 9d6b723993..8829bacd7d 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..102d565ebf
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1.tfm
index 244d646ae1..8d92ecc0be 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-swash-t1--base.tfm
index 5c2286a054..af1c848ed7 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-swash-t1.tfm
index 3bfcc53e33..848877c818 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-t1--base.tfm
index 9706951e49..6798e5afe9 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-lf-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-lf-t1.tfm
index 77b1d20891..c14ff7bbb9 100644
--- a/fonts/etbb/tfm/ETbb-Italic-lf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-lf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-ot1--base.tfm
new file mode 100644
index 0000000000..1f3057d272
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-ot1.tfm
index 9d3b775e81..e1865b52af 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1--base.tfm
index af4fac960c..69e878b43f 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1.tfm
index f3cd05c8c5..01fb43e15d 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-sc-t1--base.tfm
index 674a705040..f9ebf37137 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-sc-t1.tfm
index a597fce4c8..ba6a67f9f9 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..effce2b031
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1.tfm
index 0a9b894e83..7ee7ca0f5c 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-swash-t1--base.tfm
index 8bcf50a509..1d1320394f 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-swash-t1.tfm
index 1c1079d943..685bd0f06d 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-t1--base.tfm
index 89f3ae07e8..f087dfbda2 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-osf-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-osf-t1.tfm
index 5a44f4e989..7de89a57ac 100644
--- a/fonts/etbb/tfm/ETbb-Italic-osf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-osf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-sup-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-sup-ot1--base.tfm
new file mode 100644
index 0000000000..91951e65b0
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-sup-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-sup-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-sup-ot1.tfm
index 9c83d8e934..cb11c75472 100644
--- a/fonts/etbb/tfm/ETbb-Italic-sup-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-sup-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-sup-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-sup-t1--base.tfm
index 768d0d8001..b3b78be3d9 100644
--- a/fonts/etbb/tfm/ETbb-Italic-sup-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-sup-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-sup-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-sup-t1.tfm
index d89ccc4de3..0d6414bdcd 100644
--- a/fonts/etbb/tfm/ETbb-Italic-sup-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-sup-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-ot1--base.tfm
new file mode 100644
index 0000000000..2c0e90d250
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-ot1.tfm
index 86b988dbee..d618bca1e9 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1--base.tfm
index 18c3a2aec9..275c0ce7ad 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1.tfm
index 1f93ac3d9a..61092b556b 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1--base.tfm
index 0f1ba02d4b..9ea5e8c916 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1.tfm
index 2250dffcd8..465ee119dc 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..114d128768
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1.tfm
index bfba718aee..befb3cb79e 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1--base.tfm
index b356424a95..318f58ad54 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1.tfm
index e1021b1854..e10b16fa6e 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-t1--base.tfm
index fa1072031a..cf0f283cc6 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tlf-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-tlf-t1.tfm
index 8649523036..4eb4a44873 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tlf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tlf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-ot1--base.tfm
new file mode 100644
index 0000000000..b65988fea3
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-ot1.tfm
index ea9c1e287f..4bdd19a2df 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1--base.tfm
index cf15f94f7c..b8ffcf36e8 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1.tfm
index 2fd2d8815a..2a6e03fdb2 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1--base.tfm
index d14609db89..b98dbf0bed 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1.tfm
index 4408e4e9bb..77b2d7b364 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1--base.tfm
new file mode 100644
index 0000000000..40c2d6a9b7
--- /dev/null
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1.tfm
index 71bc3aeb2f..f1222bf1ad 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1--base.tfm
index d33df212ce..6264cbaca1 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1.tfm
index 6f480c93e3..850cc4b7c8 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-t1--base.tfm
index 24effbb3cd..08bb1f4404 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Italic-tosf-t1.tfm b/fonts/etbb/tfm/ETbb-Italic-tosf-t1.tfm
index 6c327ac3c2..11471e2b84 100644
--- a/fonts/etbb/tfm/ETbb-Italic-tosf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Italic-tosf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-dnom-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-dnom-ot1.tfm
index 62df9da6a8..83f99692b6 100644
--- a/fonts/etbb/tfm/ETbb-Regular-dnom-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-dnom-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-dnom-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-dnom-t1--base.tfm
index 4defb23a41..20495713b4 100644
--- a/fonts/etbb/tfm/ETbb-Regular-dnom-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-dnom-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-dnom-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-dnom-t1.tfm
index 5f8d8bafc2..f0f44df1ec 100644
--- a/fonts/etbb/tfm/ETbb-Regular-dnom-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-dnom-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-inf-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-inf-ot1.tfm
index 0e1e5635ec..b539ad2014 100644
--- a/fonts/etbb/tfm/ETbb-Regular-inf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-inf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-inf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-inf-t1--base.tfm
index c23d57d5bb..ea81ee7efc 100644
--- a/fonts/etbb/tfm/ETbb-Regular-inf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-inf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-inf-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-inf-t1.tfm
index 7495ff1a90..1bb86b6209 100644
--- a/fonts/etbb/tfm/ETbb-Regular-inf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-inf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-ly1.tfm
index 34ccd91cdf..a83071d7e6 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-ot1.tfm
index 9a3e9a52fc..de27197b4d 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1--base.tfm
index 1e84683e3a..d4e79eb7a2 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1.tfm
index 57dc345996..09b67dd720 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-sc-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1--base.tfm
index 510f4b8052..db912a3587 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1.tfm
index 9dcb3d98a9..5df76ed13a 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-sc-t1--base.tfm
index 7e9d948b14..60f98aa818 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-sc-t1.tfm
index bd8a8ccb87..ee63f334f0 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1.tfm
index be9b4d4b7d..0d7e45ee59 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-swash-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-swash-ot1.tfm
index e8d43c2985..7cc9c1c439 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-swash-t1--base.tfm
index 7209520119..37c66dcdf0 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-swash-t1.tfm
index 550d89298a..2e85ac0842 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-t1--base.tfm
index a85ae5321c..e148b47b4e 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-lf-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-lf-t1.tfm
index 0dff4887cc..71abc502fa 100644
--- a/fonts/etbb/tfm/ETbb-Regular-lf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-lf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-ly1.tfm
index 210f30958f..0ea31ea703 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-ot1.tfm
index c1c25063a4..8ec9a0b943 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1--base.tfm
index df542e83f0..ca4bbdbcc5 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1.tfm
index ff65263dbc..7f494e0474 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-sc-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1--base.tfm
index c849892f51..16c465924b 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1.tfm
index 67ca97d59d..9a0d1761c6 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-sc-t1--base.tfm
index 4baf2f480d..8a239e9b36 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-sc-t1.tfm
index d654dbf26a..161bce15ee 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1.tfm
index 3d88f94a96..8f99df828a 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-swash-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-swash-ot1.tfm
index fd53442509..b1f7addc9d 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-swash-t1--base.tfm
index 6b2acec2dc..429d38ca33 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-swash-t1.tfm
index de425a2cda..fe3cac821b 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-t1--base.tfm
index 448c2ac9c3..68265817ae 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-osf-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-osf-t1.tfm
index 5c71c2d2bd..ed0e410393 100644
--- a/fonts/etbb/tfm/ETbb-Regular-osf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-osf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-sup-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-sup-ot1.tfm
index b0373c706a..b804363f92 100644
--- a/fonts/etbb/tfm/ETbb-Regular-sup-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-sup-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-sup-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-sup-t1--base.tfm
index 129c60a543..415db764bc 100644
--- a/fonts/etbb/tfm/ETbb-Regular-sup-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-sup-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-sup-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-sup-t1.tfm
index 42e63a6109..b9e110d780 100644
--- a/fonts/etbb/tfm/ETbb-Regular-sup-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-sup-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-ly1.tfm
index 14e66b49ba..45207da99a 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-ot1.tfm
index 7c0cff7ff5..85a305cc7c 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1--base.tfm
index bd9fb769f2..f9b60599a4 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1.tfm
index 491269fefe..bee13afc0c 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1--base.tfm
index 042953c41a..46040e13df 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1.tfm
index ade4474097..511a53be2d 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1--base.tfm
index f0ab31b12c..2ab9de6b46 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1.tfm
index 68cd500f58..afd7331b00 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1.tfm
index 8d7fd7e36b..e430824a8e 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-swash-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-swash-ot1.tfm
index f5d4007582..97b232ccaa 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1--base.tfm
index cd9530cec4..c2d9b352ec 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1.tfm
index 66d2afbae1..f186a9e68d 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-t1--base.tfm
index fb61e4b553..500724d3aa 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tlf-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-tlf-t1.tfm
index 0bb70c4a55..bbfe6eb275 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tlf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tlf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-ly1.tfm
index 6915abc554..18376da52b 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-ot1.tfm
index 2228302047..164b996623 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1--base.tfm
index c314ad412f..bbdc893f93 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1.tfm
index 353dee00b1..c25fb8699d 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1--base.tfm
index a1d333f69e..f032b3c6e1 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1.tfm
index a305c0c381..3d236dcecd 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1--base.tfm
index 0a38958a5c..12ff09560e 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1.tfm
index 01720e501e..dcc38d497d 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1.tfm
index b87d3aebbf..0dc689d9bf 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-swash-ly1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-swash-ot1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-swash-ot1.tfm
index 81d2c81f9a..2c0bcf2d21 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-swash-ot1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-swash-ot1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1--base.tfm
index 043c9f6ed6..d89e6d437f 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1.tfm
index 8343345df0..0471fcfc88 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-t1--base.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-t1--base.tfm
index 05e2f92234..a1d906f926 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-t1--base.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/ETbb-Regular-tosf-t1.tfm b/fonts/etbb/tfm/ETbb-Regular-tosf-t1.tfm
index 32aacf41df..b902c2144f 100644
--- a/fonts/etbb/tfm/ETbb-Regular-tosf-t1.tfm
+++ b/fonts/etbb/tfm/ETbb-Regular-tosf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-dnom-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-dnom-t1--base.tfm
deleted file mode 100644
index 930a483110..0000000000
--- a/fonts/etbb/tfm/Etbb1-Bold-dnom-t1--base.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-dnom-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-dnom-t1.tfm
deleted file mode 100644
index e404e91b31..0000000000
--- a/fonts/etbb/tfm/Etbb1-Bold-dnom-t1.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1--base.tfm
index 3675375c7c..1e62774325 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1.tfm
index 2033f32898..8465cdec85 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-lf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1--base.tfm
index 4ba78e9c4f..866cf623d3 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1.tfm
index 8c539ed43a..5e59921749 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-lf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-lf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-lf-t1--base.tfm
index bf274f3f2f..76f3c40e6f 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-lf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-lf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-lf-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-lf-t1.tfm
index 756b854120..cb55d41a60 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-lf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-lf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1--base.tfm
index c5360ea23f..be3d9b6f19 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1.tfm
index bb32626246..a92075949a 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-osf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1--base.tfm
index edea64b015..be3d2645e9 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1.tfm
index 4189b9058b..b0d46263c5 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-osf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-osf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-osf-t1--base.tfm
index 486039b169..b3ceb91773 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-osf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-osf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-osf-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-osf-t1.tfm
index 1efa6d4309..e47a2f80b1 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-osf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-osf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1--base.tfm
index 069385111a..f355816e9e 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1.tfm
index 0d5f3e13a5..32cb249bd1 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tlf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1--base.tfm
index ccb241716a..591a6bf54c 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1.tfm
index 8aeeb1c023..ce1d663655 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tlf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tlf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-tlf-t1--base.tfm
index df575a3aeb..fa11528340 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tlf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tlf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tlf-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-tlf-t1.tfm
index c29e9b9bea..b2db0d3c14 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tlf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tlf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1--base.tfm
index e78778b6b6..d95f64a03c 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1.tfm
index 6f0cad885c..e09af5a794 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tosf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1--base.tfm
index b4c9671380..b821a786b4 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1.tfm
index 1914cae50f..0288018fc0 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tosf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tosf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Bold-tosf-t1--base.tfm
index 4e9891f483..4da794825b 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tosf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tosf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Bold-tosf-t1.tfm b/fonts/etbb/tfm/Etbb1-Bold-tosf-t1.tfm
index 00bc94657f..1e2e05893f 100644
--- a/fonts/etbb/tfm/Etbb1-Bold-tosf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Bold-tosf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1--base.tfm
deleted file mode 100644
index 56ea413d14..0000000000
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1--base.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1.tfm
deleted file mode 100644
index 1ca2c56b0d..0000000000
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-dnom-t1.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1--base.tfm
index caee911dbd..d6c32e1403 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1.tfm
index 72e43a3107..0aa24f517a 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1--base.tfm
index 0ebe69aea4..c8f70b5071 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1.tfm
index 1ecbd0f95f..96634983f3 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1--base.tfm
index 86c28f40bb..5935d9a532 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1.tfm
index 0d44c95b32..40eb8d0bf0 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-lf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1--base.tfm
index b9665f8177..209bcd37d2 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1.tfm
index db3c8d7339..804a45c86f 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1--base.tfm
index 3ab22579f4..7937c47cb5 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1.tfm
index 6a5b8b6921..d6050561cc 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1--base.tfm
index 6460540a94..a6420df3b0 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1.tfm
index 1a10880add..f1133b3708 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-osf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1--base.tfm
index dd1a598b52..126a98f0c4 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1.tfm
index 54054bf5ae..eac3b416ee 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1--base.tfm
index 81abcb5178..c26891fda5 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1.tfm
index c83ed2650d..b55ebcdfcb 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1--base.tfm
index 9eb3879fd5..10894666d6 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1.tfm
index 070fb88b9f..d5ca9ade5b 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tlf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1--base.tfm
index 00100cb06c..89aa459abb 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1.tfm
index c11aa402a9..289fb5e00f 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1--base.tfm
index f71057645b..cf68ae0412 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1.tfm
index 885cec3617..7386a0159d 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1--base.tfm
index 5b78f82318..8ad4ad26ee 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1.tfm b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1.tfm
index 9e760fe679..ccc9b1f9c8 100644
--- a/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-BoldItalic-tosf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-dnom-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-dnom-t1--base.tfm
deleted file mode 100644
index ca2c4a204b..0000000000
--- a/fonts/etbb/tfm/Etbb1-Italic-dnom-t1--base.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-dnom-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-dnom-t1.tfm
deleted file mode 100644
index c5cc2b6e7d..0000000000
--- a/fonts/etbb/tfm/Etbb1-Italic-dnom-t1.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1--base.tfm
index c075f1ca69..afd732111d 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1.tfm
index b0003bd2f1..ca606ac1fc 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-lf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1--base.tfm
index 7158f3d27c..82fcfa8890 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1.tfm
index 7c23336172..729aa71e7c 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-lf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-lf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-lf-t1--base.tfm
index 6b6df9f506..54ef872be0 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-lf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-lf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-lf-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-lf-t1.tfm
index b2f675f0c1..cb9ce113a1 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-lf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-lf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1--base.tfm
index 91665119dc..eab863cbe7 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1.tfm
index b360bafe71..73a016b99b 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-osf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1--base.tfm
index 0da41d3411..c24c9260b1 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1.tfm
index ff5ac150a2..649c80af72 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-osf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-osf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-osf-t1--base.tfm
index 2ecfdcfb47..4bfedfae56 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-osf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-osf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-osf-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-osf-t1.tfm
index d96fbd8c7b..b063805d05 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-osf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-osf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1--base.tfm
index 6c2dfb5cc6..9261c1ab90 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1.tfm
index f1e9086194..09d8524709 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tlf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1--base.tfm
index 7e7360a698..a902356baf 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1.tfm
index 4c202fdddc..747561dcbd 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tlf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tlf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-tlf-t1--base.tfm
index 0b9f176342..0700592031 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tlf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tlf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tlf-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-tlf-t1.tfm
index fcfb5cbe1c..41254a7551 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tlf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tlf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1--base.tfm
index ea865c658a..5d3eefee0f 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1.tfm
index e29c9a14fa..1b7369b5c1 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tosf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1--base.tfm
index fbe7c63128..4d5c6867e6 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1.tfm
index 67961bf8ef..e11022d4fd 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tosf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tosf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Italic-tosf-t1--base.tfm
index f2c5910c07..553a68de23 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tosf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tosf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Italic-tosf-t1.tfm b/fonts/etbb/tfm/Etbb1-Italic-tosf-t1.tfm
index bd9c59f199..c3f894635b 100644
--- a/fonts/etbb/tfm/Etbb1-Italic-tosf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Italic-tosf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-dnom-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-dnom-t1--base.tfm
deleted file mode 100644
index cb8376117a..0000000000
--- a/fonts/etbb/tfm/Etbb1-Regular-dnom-t1--base.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-dnom-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-dnom-t1.tfm
deleted file mode 100644
index 8f3d7978d2..0000000000
--- a/fonts/etbb/tfm/Etbb1-Regular-dnom-t1.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1--base.tfm
index cfafd80d05..651e378824 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1.tfm
index b4a8a257f4..facc061f6c 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-lf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1--base.tfm
index 535b028fde..ce791b0e3d 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1.tfm
index e173541bf6..80af7ae850 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-lf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-lf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-lf-t1--base.tfm
index d3e791fb26..6d71707531 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-lf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-lf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-lf-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-lf-t1.tfm
index 70e79a84af..73439523f2 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-lf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-lf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1--base.tfm
index bdc163d169..9f45c45bf5 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1.tfm
index 1aef13f2c7..080384fbf5 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-osf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1--base.tfm
index 2990607dca..334ceeaf9f 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1.tfm
index ab83228b70..31a0b6d990 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-osf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-osf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-osf-t1--base.tfm
index acf964e4e7..f0bb9d803e 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-osf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-osf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-osf-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-osf-t1.tfm
index 9142659ac3..359ee65293 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-osf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-osf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1--base.tfm
index 38ad928578..d50333788c 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1.tfm
index 0873064faf..4e8f24b5d0 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tlf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1--base.tfm
index 0c33839d65..58bb8110df 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1.tfm
index d4b00ca249..bcabc5fd98 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tlf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tlf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-tlf-t1--base.tfm
index 2dd164c40a..2c481d0671 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tlf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tlf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tlf-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-tlf-t1.tfm
index 3f197137a8..ae1ca723a2 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tlf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tlf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1--base.tfm
index dbe32e35f2..7f045fb780 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1.tfm
index 532695a8b5..ad88848415 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tosf-sc-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1--base.tfm
index 3c5107474c..352e3ddae8 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1.tfm
index 2dd310f58d..b4883be040 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tosf-swash-t1.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tosf-t1--base.tfm b/fonts/etbb/tfm/Etbb1-Regular-tosf-t1--base.tfm
index 462b0633f5..c84fae3f9b 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tosf-t1--base.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tosf-t1--base.tfm
Binary files differ
diff --git a/fonts/etbb/tfm/Etbb1-Regular-tosf-t1.tfm b/fonts/etbb/tfm/Etbb1-Regular-tosf-t1.tfm
index 5efef0e6cf..be6843c750 100644
--- a/fonts/etbb/tfm/Etbb1-Regular-tosf-t1.tfm
+++ b/fonts/etbb/tfm/Etbb1-Regular-tosf-t1.tfm
Binary files differ
diff --git a/fonts/etbb/type1/ETbb-Bold.pfb b/fonts/etbb/type1/ETbb-Bold.pfb
index 074a7a94dd..aaec22e300 100644
--- a/fonts/etbb/type1/ETbb-Bold.pfb
+++ b/fonts/etbb/type1/ETbb-Bold.pfb
Binary files differ
diff --git a/fonts/etbb/type1/ETbb-BoldItalic.pfb b/fonts/etbb/type1/ETbb-BoldItalic.pfb
index e26f56361c..58583a17bf 100644
--- a/fonts/etbb/type1/ETbb-BoldItalic.pfb
+++ b/fonts/etbb/type1/ETbb-BoldItalic.pfb
Binary files differ
diff --git a/fonts/etbb/type1/ETbb-Italic.pfb b/fonts/etbb/type1/ETbb-Italic.pfb
index c73bc17ec1..35f73423c1 100644
--- a/fonts/etbb/type1/ETbb-Italic.pfb
+++ b/fonts/etbb/type1/ETbb-Italic.pfb
Binary files differ
diff --git a/fonts/etbb/type1/ETbb-Regular.pfb b/fonts/etbb/type1/ETbb-Regular.pfb
index e648db3f86..caa6c17301 100644
--- a/fonts/etbb/type1/ETbb-Regular.pfb
+++ b/fonts/etbb/type1/ETbb-Regular.pfb
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-dnom-ot1.vf b/fonts/etbb/vf/ETbb-Bold-dnom-ot1.vf
new file mode 100644
index 0000000000..46883aecee
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-dnom-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-dnom-t1.vf b/fonts/etbb/vf/ETbb-Bold-dnom-t1.vf
index 48e13ec08e..9512d4ddd8 100644
--- a/fonts/etbb/vf/ETbb-Bold-dnom-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-dnom-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-inf-ot1.vf b/fonts/etbb/vf/ETbb-Bold-inf-ot1.vf
new file mode 100644
index 0000000000..c86bf1f664
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-inf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-inf-t1.vf b/fonts/etbb/vf/ETbb-Bold-inf-t1.vf
index 3245134ddb..870eab60fd 100644
--- a/fonts/etbb/vf/ETbb-Bold-inf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-inf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-lf-ot1.vf b/fonts/etbb/vf/ETbb-Bold-lf-ot1.vf
new file mode 100644
index 0000000000..9518956ded
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-lf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-lf-sc-ly1.vf b/fonts/etbb/vf/ETbb-Bold-lf-sc-ly1.vf
index 830645a596..251cfbdf2f 100644
--- a/fonts/etbb/vf/ETbb-Bold-lf-sc-ly1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-lf-sc-ly1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-lf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Bold-lf-sc-ot1.vf
index 8ba4973e22..32da555395 100644
--- a/fonts/etbb/vf/ETbb-Bold-lf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-lf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-lf-sc-t1.vf b/fonts/etbb/vf/ETbb-Bold-lf-sc-t1.vf
index c95088303f..1cb1180ed1 100644
--- a/fonts/etbb/vf/ETbb-Bold-lf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-lf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-lf-swash-ot1.vf b/fonts/etbb/vf/ETbb-Bold-lf-swash-ot1.vf
new file mode 100644
index 0000000000..6635ec31fe
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-lf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-lf-swash-t1.vf b/fonts/etbb/vf/ETbb-Bold-lf-swash-t1.vf
index 7a6cd05351..ce5232025a 100644
--- a/fonts/etbb/vf/ETbb-Bold-lf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-lf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-lf-t1.vf b/fonts/etbb/vf/ETbb-Bold-lf-t1.vf
index 269ad99fd1..6b94066a2d 100644
--- a/fonts/etbb/vf/ETbb-Bold-lf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-lf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-osf-ot1.vf b/fonts/etbb/vf/ETbb-Bold-osf-ot1.vf
new file mode 100644
index 0000000000..ed7f011af8
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-osf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-osf-sc-ly1.vf b/fonts/etbb/vf/ETbb-Bold-osf-sc-ly1.vf
index fa8f520d94..e9b4898e86 100644
--- a/fonts/etbb/vf/ETbb-Bold-osf-sc-ly1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-osf-sc-ly1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-osf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Bold-osf-sc-ot1.vf
index bc0e355f5c..a8f4b4ad57 100644
--- a/fonts/etbb/vf/ETbb-Bold-osf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-osf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-osf-sc-t1.vf b/fonts/etbb/vf/ETbb-Bold-osf-sc-t1.vf
index 7544c9ca4f..c638f3ef25 100644
--- a/fonts/etbb/vf/ETbb-Bold-osf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-osf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-osf-swash-ot1.vf b/fonts/etbb/vf/ETbb-Bold-osf-swash-ot1.vf
new file mode 100644
index 0000000000..42e75f4ed2
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-osf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-osf-swash-t1.vf b/fonts/etbb/vf/ETbb-Bold-osf-swash-t1.vf
index d4b4197c99..7b977e47cf 100644
--- a/fonts/etbb/vf/ETbb-Bold-osf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-osf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-osf-t1.vf b/fonts/etbb/vf/ETbb-Bold-osf-t1.vf
index a57ce2af9a..4bc54ca091 100644
--- a/fonts/etbb/vf/ETbb-Bold-osf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-osf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-sup-ot1.vf b/fonts/etbb/vf/ETbb-Bold-sup-ot1.vf
new file mode 100644
index 0000000000..1bdf4db5ec
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-sup-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-sup-t1.vf b/fonts/etbb/vf/ETbb-Bold-sup-t1.vf
index 7b1a9e3d76..31acd86201 100644
--- a/fonts/etbb/vf/ETbb-Bold-sup-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-sup-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tlf-ot1.vf b/fonts/etbb/vf/ETbb-Bold-tlf-ot1.vf
new file mode 100644
index 0000000000..96574972d8
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-tlf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tlf-sc-ly1.vf b/fonts/etbb/vf/ETbb-Bold-tlf-sc-ly1.vf
index 0d6e38d45d..7d81e9686a 100644
--- a/fonts/etbb/vf/ETbb-Bold-tlf-sc-ly1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tlf-sc-ly1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tlf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Bold-tlf-sc-ot1.vf
index 2e2836c7b1..a779e58ebd 100644
--- a/fonts/etbb/vf/ETbb-Bold-tlf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tlf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tlf-sc-t1.vf b/fonts/etbb/vf/ETbb-Bold-tlf-sc-t1.vf
index f68a6e39f0..58a583d758 100644
--- a/fonts/etbb/vf/ETbb-Bold-tlf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tlf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tlf-swash-ot1.vf b/fonts/etbb/vf/ETbb-Bold-tlf-swash-ot1.vf
new file mode 100644
index 0000000000..91669db63d
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-tlf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tlf-swash-t1.vf b/fonts/etbb/vf/ETbb-Bold-tlf-swash-t1.vf
index fa3333dde3..13b859c4ed 100644
--- a/fonts/etbb/vf/ETbb-Bold-tlf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tlf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tlf-t1.vf b/fonts/etbb/vf/ETbb-Bold-tlf-t1.vf
index d7cf1c24d5..398c7133ce 100644
--- a/fonts/etbb/vf/ETbb-Bold-tlf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tlf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tosf-ot1.vf b/fonts/etbb/vf/ETbb-Bold-tosf-ot1.vf
new file mode 100644
index 0000000000..60bfdab697
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-tosf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tosf-sc-ly1.vf b/fonts/etbb/vf/ETbb-Bold-tosf-sc-ly1.vf
index ad67dd4d96..3eec63ab12 100644
--- a/fonts/etbb/vf/ETbb-Bold-tosf-sc-ly1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tosf-sc-ly1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tosf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Bold-tosf-sc-ot1.vf
index a42169b349..314f02b129 100644
--- a/fonts/etbb/vf/ETbb-Bold-tosf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tosf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tosf-sc-t1.vf b/fonts/etbb/vf/ETbb-Bold-tosf-sc-t1.vf
index 54d1d59af4..9ae833e7f1 100644
--- a/fonts/etbb/vf/ETbb-Bold-tosf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tosf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tosf-swash-ot1.vf b/fonts/etbb/vf/ETbb-Bold-tosf-swash-ot1.vf
new file mode 100644
index 0000000000..01a1ad766b
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Bold-tosf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tosf-swash-t1.vf b/fonts/etbb/vf/ETbb-Bold-tosf-swash-t1.vf
index fa7ca5b8cf..4233b43ea4 100644
--- a/fonts/etbb/vf/ETbb-Bold-tosf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tosf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Bold-tosf-t1.vf b/fonts/etbb/vf/ETbb-Bold-tosf-t1.vf
index a616854cb9..9fb037e908 100644
--- a/fonts/etbb/vf/ETbb-Bold-tosf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Bold-tosf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-dnom-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-dnom-ot1.vf
new file mode 100644
index 0000000000..b7f4a4c745
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-dnom-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-dnom-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-dnom-t1.vf
index 845e4dbd28..ade572ac46 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-dnom-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-dnom-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-inf-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-inf-ot1.vf
new file mode 100644
index 0000000000..93e7f15fb5
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-inf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-inf-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-inf-t1.vf
index 86b70cb741..7f95b7e274 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-inf-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-inf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-lf-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-lf-ot1.vf
new file mode 100644
index 0000000000..d467bc88b0
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-lf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ot1.vf
index 600f8603d3..60eb1e1fcb 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-lf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-lf-sc-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-lf-sc-t1.vf
index f5a64cde28..84d67447aa 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-lf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-lf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ot1.vf
new file mode 100644
index 0000000000..0e164d33cd
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-lf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-lf-swash-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-lf-swash-t1.vf
index 45d6dc83d6..2b20ebeb32 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-lf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-lf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-lf-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-lf-t1.vf
index 782581e908..c802f516c6 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-lf-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-lf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-osf-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-osf-ot1.vf
new file mode 100644
index 0000000000..ebacbfb40f
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-osf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ot1.vf
index 8a0d9efaba..4eece4a061 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-osf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-osf-sc-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-osf-sc-t1.vf
index db502b6fa1..0438119d1d 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-osf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-osf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ot1.vf
new file mode 100644
index 0000000000..2cbb4896b6
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-osf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-osf-swash-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-osf-swash-t1.vf
index 1be31847cc..067bf9e007 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-osf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-osf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-osf-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-osf-t1.vf
index 3a0dac7671..9466f2cbab 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-osf-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-osf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-sup-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-sup-ot1.vf
new file mode 100644
index 0000000000..db4f4b4600
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-sup-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-sup-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-sup-t1.vf
index 0a2950304a..d9d465e2ba 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-sup-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-sup-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tlf-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tlf-ot1.vf
new file mode 100644
index 0000000000..d50b0a4cf9
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tlf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ot1.vf
index 87acab8be5..10186def14 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-t1.vf
index 6ba65bc5c0..71857c8b30 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tlf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ot1.vf
new file mode 100644
index 0000000000..df66ac9012
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-t1.vf
index 1021637836..4adaa1444d 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tlf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tlf-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tlf-t1.vf
index 50e42fe541..fbf7b8a805 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-tlf-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tlf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tosf-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tosf-ot1.vf
new file mode 100644
index 0000000000..dd51ffc774
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tosf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ot1.vf
index 23bbff9fe8..c05166b7e0 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-t1.vf
index 71c2227d7e..0fd181df0c 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tosf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ot1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ot1.vf
new file mode 100644
index 0000000000..7ead66653d
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-t1.vf
index fe7b3a77c5..ceb60c1526 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tosf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-BoldItalic-tosf-t1.vf b/fonts/etbb/vf/ETbb-BoldItalic-tosf-t1.vf
index 19d15aa1f8..b015cddd6c 100644
--- a/fonts/etbb/vf/ETbb-BoldItalic-tosf-t1.vf
+++ b/fonts/etbb/vf/ETbb-BoldItalic-tosf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-dnom-ot1.vf b/fonts/etbb/vf/ETbb-Italic-dnom-ot1.vf
new file mode 100644
index 0000000000..d8d0c16322
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-dnom-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-dnom-t1.vf b/fonts/etbb/vf/ETbb-Italic-dnom-t1.vf
index a8cdb7ef60..203f692bb1 100644
--- a/fonts/etbb/vf/ETbb-Italic-dnom-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-dnom-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-inf-ot1.vf b/fonts/etbb/vf/ETbb-Italic-inf-ot1.vf
new file mode 100644
index 0000000000..a4445a2281
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-inf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-inf-t1.vf b/fonts/etbb/vf/ETbb-Italic-inf-t1.vf
index 4ea50592b1..82c05ec01b 100644
--- a/fonts/etbb/vf/ETbb-Italic-inf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-inf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-lf-ot1.vf b/fonts/etbb/vf/ETbb-Italic-lf-ot1.vf
new file mode 100644
index 0000000000..6f36fc38c9
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-lf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-lf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Italic-lf-sc-ot1.vf
index 1560841514..d785c34c4c 100644
--- a/fonts/etbb/vf/ETbb-Italic-lf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-lf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-lf-sc-t1.vf b/fonts/etbb/vf/ETbb-Italic-lf-sc-t1.vf
index aa52be7767..1c0444a715 100644
--- a/fonts/etbb/vf/ETbb-Italic-lf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-lf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-lf-swash-ot1.vf b/fonts/etbb/vf/ETbb-Italic-lf-swash-ot1.vf
new file mode 100644
index 0000000000..b071f7c979
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-lf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-lf-swash-t1.vf b/fonts/etbb/vf/ETbb-Italic-lf-swash-t1.vf
index 1e6f5b4e7e..b309e6bce5 100644
--- a/fonts/etbb/vf/ETbb-Italic-lf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-lf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-lf-t1.vf b/fonts/etbb/vf/ETbb-Italic-lf-t1.vf
index 6bec7d0370..1a7d8d493c 100644
--- a/fonts/etbb/vf/ETbb-Italic-lf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-lf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-osf-ot1.vf b/fonts/etbb/vf/ETbb-Italic-osf-ot1.vf
new file mode 100644
index 0000000000..9a4522f57b
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-osf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-osf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Italic-osf-sc-ot1.vf
index 3eb9f4af82..78e0c4ec23 100644
--- a/fonts/etbb/vf/ETbb-Italic-osf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-osf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-osf-sc-t1.vf b/fonts/etbb/vf/ETbb-Italic-osf-sc-t1.vf
index f0b126ee26..559f9a4e80 100644
--- a/fonts/etbb/vf/ETbb-Italic-osf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-osf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-osf-swash-ot1.vf b/fonts/etbb/vf/ETbb-Italic-osf-swash-ot1.vf
new file mode 100644
index 0000000000..d7cf1c4f45
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-osf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-osf-swash-t1.vf b/fonts/etbb/vf/ETbb-Italic-osf-swash-t1.vf
index eabbedbf95..251c2cac55 100644
--- a/fonts/etbb/vf/ETbb-Italic-osf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-osf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-osf-t1.vf b/fonts/etbb/vf/ETbb-Italic-osf-t1.vf
index cb0bb22cac..1b32f6e734 100644
--- a/fonts/etbb/vf/ETbb-Italic-osf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-osf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-sup-ot1.vf b/fonts/etbb/vf/ETbb-Italic-sup-ot1.vf
new file mode 100644
index 0000000000..9c368799e4
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-sup-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-sup-t1.vf b/fonts/etbb/vf/ETbb-Italic-sup-t1.vf
index 728398ba46..6f4c857471 100644
--- a/fonts/etbb/vf/ETbb-Italic-sup-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-sup-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tlf-ot1.vf b/fonts/etbb/vf/ETbb-Italic-tlf-ot1.vf
new file mode 100644
index 0000000000..74e788f5ae
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-tlf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tlf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Italic-tlf-sc-ot1.vf
index 0b779c835d..f1a59b540f 100644
--- a/fonts/etbb/vf/ETbb-Italic-tlf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-tlf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tlf-sc-t1.vf b/fonts/etbb/vf/ETbb-Italic-tlf-sc-t1.vf
index ea4d550357..73ac88145f 100644
--- a/fonts/etbb/vf/ETbb-Italic-tlf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-tlf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tlf-swash-ot1.vf b/fonts/etbb/vf/ETbb-Italic-tlf-swash-ot1.vf
new file mode 100644
index 0000000000..f9a979aec5
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-tlf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tlf-swash-t1.vf b/fonts/etbb/vf/ETbb-Italic-tlf-swash-t1.vf
index 2f4fbe5d9c..9037eefdd1 100644
--- a/fonts/etbb/vf/ETbb-Italic-tlf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-tlf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tlf-t1.vf b/fonts/etbb/vf/ETbb-Italic-tlf-t1.vf
index 9c85e08ce3..b645d23983 100644
--- a/fonts/etbb/vf/ETbb-Italic-tlf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-tlf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tosf-ot1.vf b/fonts/etbb/vf/ETbb-Italic-tosf-ot1.vf
new file mode 100644
index 0000000000..ea20e6daf7
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-tosf-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tosf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Italic-tosf-sc-ot1.vf
index 1eced0baa9..c3c9e0745d 100644
--- a/fonts/etbb/vf/ETbb-Italic-tosf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-tosf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tosf-sc-t1.vf b/fonts/etbb/vf/ETbb-Italic-tosf-sc-t1.vf
index d88ea08e43..970f31aa5a 100644
--- a/fonts/etbb/vf/ETbb-Italic-tosf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-tosf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tosf-swash-ot1.vf b/fonts/etbb/vf/ETbb-Italic-tosf-swash-ot1.vf
new file mode 100644
index 0000000000..55682157fe
--- /dev/null
+++ b/fonts/etbb/vf/ETbb-Italic-tosf-swash-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tosf-swash-t1.vf b/fonts/etbb/vf/ETbb-Italic-tosf-swash-t1.vf
index 7a571814cc..3871cf0008 100644
--- a/fonts/etbb/vf/ETbb-Italic-tosf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-tosf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Italic-tosf-t1.vf b/fonts/etbb/vf/ETbb-Italic-tosf-t1.vf
index 49d48c73dd..e037b65eb8 100644
--- a/fonts/etbb/vf/ETbb-Italic-tosf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Italic-tosf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-dnom-t1.vf b/fonts/etbb/vf/ETbb-Regular-dnom-t1.vf
index 42c3a8b93c..4451364abf 100644
--- a/fonts/etbb/vf/ETbb-Regular-dnom-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-dnom-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-inf-t1.vf b/fonts/etbb/vf/ETbb-Regular-inf-t1.vf
index 3cfc3d0e65..8ea9b7e91f 100644
--- a/fonts/etbb/vf/ETbb-Regular-inf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-inf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-lf-sc-ly1.vf b/fonts/etbb/vf/ETbb-Regular-lf-sc-ly1.vf
index 60c210950d..17e6674392 100644
--- a/fonts/etbb/vf/ETbb-Regular-lf-sc-ly1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-lf-sc-ly1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-lf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Regular-lf-sc-ot1.vf
index 0192d5887c..f496ae9e7a 100644
--- a/fonts/etbb/vf/ETbb-Regular-lf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-lf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-lf-sc-t1.vf b/fonts/etbb/vf/ETbb-Regular-lf-sc-t1.vf
index cba68983b9..f24226cf5c 100644
--- a/fonts/etbb/vf/ETbb-Regular-lf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-lf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-lf-swash-t1.vf b/fonts/etbb/vf/ETbb-Regular-lf-swash-t1.vf
index f3ad0808a1..c1f875d4cf 100644
--- a/fonts/etbb/vf/ETbb-Regular-lf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-lf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-lf-t1.vf b/fonts/etbb/vf/ETbb-Regular-lf-t1.vf
index c91170bdf8..67922bb179 100644
--- a/fonts/etbb/vf/ETbb-Regular-lf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-lf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-osf-sc-ly1.vf b/fonts/etbb/vf/ETbb-Regular-osf-sc-ly1.vf
index 601cab5bbd..5d17513b37 100644
--- a/fonts/etbb/vf/ETbb-Regular-osf-sc-ly1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-osf-sc-ly1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-osf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Regular-osf-sc-ot1.vf
index 3b4fbe4d66..5aaabdacf5 100644
--- a/fonts/etbb/vf/ETbb-Regular-osf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-osf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-osf-sc-t1.vf b/fonts/etbb/vf/ETbb-Regular-osf-sc-t1.vf
index 0616f60953..487a8454c2 100644
--- a/fonts/etbb/vf/ETbb-Regular-osf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-osf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-osf-swash-t1.vf b/fonts/etbb/vf/ETbb-Regular-osf-swash-t1.vf
index a609cca76d..039eb75c66 100644
--- a/fonts/etbb/vf/ETbb-Regular-osf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-osf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-osf-t1.vf b/fonts/etbb/vf/ETbb-Regular-osf-t1.vf
index aaf5e3cb68..9e45a0dcd5 100644
--- a/fonts/etbb/vf/ETbb-Regular-osf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-osf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-sup-t1.vf b/fonts/etbb/vf/ETbb-Regular-sup-t1.vf
index cac2c844ec..316e4bf287 100644
--- a/fonts/etbb/vf/ETbb-Regular-sup-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-sup-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tlf-sc-ly1.vf b/fonts/etbb/vf/ETbb-Regular-tlf-sc-ly1.vf
index e87882f716..4af9116eb9 100644
--- a/fonts/etbb/vf/ETbb-Regular-tlf-sc-ly1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tlf-sc-ly1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tlf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Regular-tlf-sc-ot1.vf
index 0c60f2e607..1def7df040 100644
--- a/fonts/etbb/vf/ETbb-Regular-tlf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tlf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tlf-sc-t1.vf b/fonts/etbb/vf/ETbb-Regular-tlf-sc-t1.vf
index b119e1725a..497e2a8760 100644
--- a/fonts/etbb/vf/ETbb-Regular-tlf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tlf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tlf-swash-t1.vf b/fonts/etbb/vf/ETbb-Regular-tlf-swash-t1.vf
index 22f01eae31..2e9a5450ec 100644
--- a/fonts/etbb/vf/ETbb-Regular-tlf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tlf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tlf-t1.vf b/fonts/etbb/vf/ETbb-Regular-tlf-t1.vf
index f1700f6d26..d47723ade3 100644
--- a/fonts/etbb/vf/ETbb-Regular-tlf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tlf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tosf-sc-ly1.vf b/fonts/etbb/vf/ETbb-Regular-tosf-sc-ly1.vf
index fce26dbfa0..959f2cadc5 100644
--- a/fonts/etbb/vf/ETbb-Regular-tosf-sc-ly1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tosf-sc-ly1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tosf-sc-ot1.vf b/fonts/etbb/vf/ETbb-Regular-tosf-sc-ot1.vf
index 4f4020070a..38aeecf105 100644
--- a/fonts/etbb/vf/ETbb-Regular-tosf-sc-ot1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tosf-sc-ot1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tosf-sc-t1.vf b/fonts/etbb/vf/ETbb-Regular-tosf-sc-t1.vf
index 1cfb8059b1..09c6b0b07f 100644
--- a/fonts/etbb/vf/ETbb-Regular-tosf-sc-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tosf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tosf-swash-t1.vf b/fonts/etbb/vf/ETbb-Regular-tosf-swash-t1.vf
index fe216ee38e..24552f4fe9 100644
--- a/fonts/etbb/vf/ETbb-Regular-tosf-swash-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tosf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/ETbb-Regular-tosf-t1.vf b/fonts/etbb/vf/ETbb-Regular-tosf-t1.vf
index c9e77bc9f3..b2c4e7d66a 100644
--- a/fonts/etbb/vf/ETbb-Regular-tosf-t1.vf
+++ b/fonts/etbb/vf/ETbb-Regular-tosf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-dnom-t1.vf b/fonts/etbb/vf/Etbb1-Bold-dnom-t1.vf
deleted file mode 100644
index 38252dd2a5..0000000000
--- a/fonts/etbb/vf/Etbb1-Bold-dnom-t1.vf
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-lf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Bold-lf-sc-t1.vf
index 873cf17652..72e0845f3f 100644
--- a/fonts/etbb/vf/Etbb1-Bold-lf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-lf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-lf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Bold-lf-swash-t1.vf
index 4cc673ffab..57deb9d3af 100644
--- a/fonts/etbb/vf/Etbb1-Bold-lf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-lf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-lf-t1.vf b/fonts/etbb/vf/Etbb1-Bold-lf-t1.vf
index ba6939b33f..01486b89de 100644
--- a/fonts/etbb/vf/Etbb1-Bold-lf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-lf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-osf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Bold-osf-sc-t1.vf
index 951287c34d..045d64b6e8 100644
--- a/fonts/etbb/vf/Etbb1-Bold-osf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-osf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-osf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Bold-osf-swash-t1.vf
index 5a0cb80530..454299b7a7 100644
--- a/fonts/etbb/vf/Etbb1-Bold-osf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-osf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-osf-t1.vf b/fonts/etbb/vf/Etbb1-Bold-osf-t1.vf
index 5504ceb41f..7a54911f9a 100644
--- a/fonts/etbb/vf/Etbb1-Bold-osf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-osf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-tlf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Bold-tlf-sc-t1.vf
index e0474daabc..33f0de4819 100644
--- a/fonts/etbb/vf/Etbb1-Bold-tlf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-tlf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-tlf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Bold-tlf-swash-t1.vf
index 0ef7715a08..23f5e67196 100644
--- a/fonts/etbb/vf/Etbb1-Bold-tlf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-tlf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-tlf-t1.vf b/fonts/etbb/vf/Etbb1-Bold-tlf-t1.vf
index c19dfdfb87..5c7c874b78 100644
--- a/fonts/etbb/vf/Etbb1-Bold-tlf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-tlf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-tosf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Bold-tosf-sc-t1.vf
index e4d124ba45..ecbe3e1f9e 100644
--- a/fonts/etbb/vf/Etbb1-Bold-tosf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-tosf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-tosf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Bold-tosf-swash-t1.vf
index 2f009bd0fc..9127f7e62c 100644
--- a/fonts/etbb/vf/Etbb1-Bold-tosf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-tosf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Bold-tosf-t1.vf b/fonts/etbb/vf/Etbb1-Bold-tosf-t1.vf
index a862cf3eec..58f5e01363 100644
--- a/fonts/etbb/vf/Etbb1-Bold-tosf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Bold-tosf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-dnom-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-dnom-t1.vf
deleted file mode 100644
index a2a2d4c04e..0000000000
--- a/fonts/etbb/vf/Etbb1-BoldItalic-dnom-t1.vf
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-lf-sc-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-lf-sc-t1.vf
index f0a6f0f0e5..3c5d8032ef 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-lf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-lf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-lf-swash-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-lf-swash-t1.vf
index 8523df81cd..4d24b79486 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-lf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-lf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-lf-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-lf-t1.vf
index a2ab126203..27e0f47e8e 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-lf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-lf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-osf-sc-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-osf-sc-t1.vf
index 86d6317995..bc5e48dff1 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-osf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-osf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-osf-swash-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-osf-swash-t1.vf
index 4a90181ccc..3eb11931a5 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-osf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-osf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-osf-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-osf-t1.vf
index 781c4813eb..5f8356605a 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-osf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-osf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-tlf-sc-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-tlf-sc-t1.vf
index bedfe1f597..679f9a7392 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-tlf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-tlf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-tlf-swash-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-tlf-swash-t1.vf
index 0dd9bae25c..f71c7927c6 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-tlf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-tlf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-tlf-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-tlf-t1.vf
index ffa2fa2fe3..f973b61f18 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-tlf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-tlf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-tosf-sc-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-tosf-sc-t1.vf
index 5899c3f88d..0808313ad6 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-tosf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-tosf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-tosf-swash-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-tosf-swash-t1.vf
index ff5445ef4a..fc502c2e57 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-tosf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-tosf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-BoldItalic-tosf-t1.vf b/fonts/etbb/vf/Etbb1-BoldItalic-tosf-t1.vf
index 2abaa750ec..66d0964c00 100644
--- a/fonts/etbb/vf/Etbb1-BoldItalic-tosf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-BoldItalic-tosf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-dnom-t1.vf b/fonts/etbb/vf/Etbb1-Italic-dnom-t1.vf
deleted file mode 100644
index b7f4966eca..0000000000
--- a/fonts/etbb/vf/Etbb1-Italic-dnom-t1.vf
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-lf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Italic-lf-sc-t1.vf
index 54c67ccdcb..39ab403edd 100644
--- a/fonts/etbb/vf/Etbb1-Italic-lf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-lf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-lf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Italic-lf-swash-t1.vf
index 12a64bcf66..48f245f5a9 100644
--- a/fonts/etbb/vf/Etbb1-Italic-lf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-lf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-lf-t1.vf b/fonts/etbb/vf/Etbb1-Italic-lf-t1.vf
index 1e61d817a2..b3b58a37db 100644
--- a/fonts/etbb/vf/Etbb1-Italic-lf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-lf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-osf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Italic-osf-sc-t1.vf
index deef60ff9d..4d986c3a1f 100644
--- a/fonts/etbb/vf/Etbb1-Italic-osf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-osf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-osf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Italic-osf-swash-t1.vf
index 0acb0f7877..cf1d9ead0b 100644
--- a/fonts/etbb/vf/Etbb1-Italic-osf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-osf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-osf-t1.vf b/fonts/etbb/vf/Etbb1-Italic-osf-t1.vf
index acbbf7b1c1..2f7d666e4c 100644
--- a/fonts/etbb/vf/Etbb1-Italic-osf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-osf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-tlf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Italic-tlf-sc-t1.vf
index 1de7d72dfd..d487881877 100644
--- a/fonts/etbb/vf/Etbb1-Italic-tlf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-tlf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-tlf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Italic-tlf-swash-t1.vf
index 9823997551..7a169eaa41 100644
--- a/fonts/etbb/vf/Etbb1-Italic-tlf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-tlf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-tlf-t1.vf b/fonts/etbb/vf/Etbb1-Italic-tlf-t1.vf
index 947d349da1..13d122c412 100644
--- a/fonts/etbb/vf/Etbb1-Italic-tlf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-tlf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-tosf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Italic-tosf-sc-t1.vf
index 45e16395f0..08fd1a8418 100644
--- a/fonts/etbb/vf/Etbb1-Italic-tosf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-tosf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-tosf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Italic-tosf-swash-t1.vf
index 5e4e9d0790..25ee7aab3a 100644
--- a/fonts/etbb/vf/Etbb1-Italic-tosf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-tosf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Italic-tosf-t1.vf b/fonts/etbb/vf/Etbb1-Italic-tosf-t1.vf
index 189e1fca4e..80610dd7a0 100644
--- a/fonts/etbb/vf/Etbb1-Italic-tosf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Italic-tosf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-dnom-t1.vf b/fonts/etbb/vf/Etbb1-Regular-dnom-t1.vf
deleted file mode 100644
index a4752c1113..0000000000
--- a/fonts/etbb/vf/Etbb1-Regular-dnom-t1.vf
+++ /dev/null
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-lf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Regular-lf-sc-t1.vf
index 7bd72fbd76..04fb9ca4c7 100644
--- a/fonts/etbb/vf/Etbb1-Regular-lf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-lf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-lf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Regular-lf-swash-t1.vf
index 2f58e7aa6d..12394e3848 100644
--- a/fonts/etbb/vf/Etbb1-Regular-lf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-lf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-lf-t1.vf b/fonts/etbb/vf/Etbb1-Regular-lf-t1.vf
index 186b5bec7b..4508981f2e 100644
--- a/fonts/etbb/vf/Etbb1-Regular-lf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-lf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-osf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Regular-osf-sc-t1.vf
index ed85ed2242..352ad3aab2 100644
--- a/fonts/etbb/vf/Etbb1-Regular-osf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-osf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-osf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Regular-osf-swash-t1.vf
index e06c95e197..68fc857ec2 100644
--- a/fonts/etbb/vf/Etbb1-Regular-osf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-osf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-osf-t1.vf b/fonts/etbb/vf/Etbb1-Regular-osf-t1.vf
index 8a6668da30..a1dc4bae34 100644
--- a/fonts/etbb/vf/Etbb1-Regular-osf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-osf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-tlf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Regular-tlf-sc-t1.vf
index 73a84bde73..ed030e6a82 100644
--- a/fonts/etbb/vf/Etbb1-Regular-tlf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-tlf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-tlf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Regular-tlf-swash-t1.vf
index 1d3c02cf03..01c5c6f661 100644
--- a/fonts/etbb/vf/Etbb1-Regular-tlf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-tlf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-tlf-t1.vf b/fonts/etbb/vf/Etbb1-Regular-tlf-t1.vf
index 0cd6a478fa..db9a0a1f44 100644
--- a/fonts/etbb/vf/Etbb1-Regular-tlf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-tlf-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-tosf-sc-t1.vf b/fonts/etbb/vf/Etbb1-Regular-tosf-sc-t1.vf
index 5b7a72b4c9..1fdf904186 100644
--- a/fonts/etbb/vf/Etbb1-Regular-tosf-sc-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-tosf-sc-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-tosf-swash-t1.vf b/fonts/etbb/vf/Etbb1-Regular-tosf-swash-t1.vf
index 8a0761e423..45b59b88eb 100644
--- a/fonts/etbb/vf/Etbb1-Regular-tosf-swash-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-tosf-swash-t1.vf
Binary files differ
diff --git a/fonts/etbb/vf/Etbb1-Regular-tosf-t1.vf b/fonts/etbb/vf/Etbb1-Regular-tosf-t1.vf
index ca28cadec4..6348ee577b 100644
--- a/fonts/etbb/vf/Etbb1-Regular-tosf-t1.vf
+++ b/fonts/etbb/vf/Etbb1-Regular-tosf-t1.vf
Binary files differ
diff --git a/fonts/hamnosys/hamnosys.sty b/fonts/hamnosys/hamnosys.sty
deleted file mode 100644
index 610e025309..0000000000
--- a/fonts/hamnosys/hamnosys.sty
+++ /dev/null
@@ -1,312 +0,0 @@
-%%
-%% This is file `hamnosys.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% hamnosys.dtx (with options: `package')
-%%
-%% This is a generated file.
-%%
-%% Copyright (C) 1986-2022 Universität Hamburg
-%%
-%% Created by Marc Schulder, Thomas Hanke
-%%
-%% This work may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3c
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `maintained'.
-%%
-%% The Current Maintainer of this work is Marc Schulder.
-%%
-%% This work consists of the files hamnosys.dtx, hamnosys.ins,
-%% HamNoSysUnicode.ttf, README.md and the derived files
-%% hamnosys.sty, hamnosys.pdf and hamnosys.bib.
-%%
-\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{hamnosys}
- [2022/01/25 v1.0.2 Use HamNoSys in TeX]
-
-
-
-\RequirePackage{iftex}
-\ifXeTeX
-\else
- \ifLuaTeX
- \else
- \PackageError{hamnosys}{XeTeX or LuaTeX required}{The hamnosys package
- requires either LuaTeX or XeTeX. You must change your typesetting engine
- to, e.g., "xelatex" or "lualatex"instead of "latex" or "pdflatex".}
- \fi
-\fi
-\RequirePackage{fontspec}
-\RequirePackage{ifthen}
-\RequirePackage{kvoptions}
-\SetupKeyvalOptions{family=hns, prefix=hns@}
-
-\DeclareBoolOption{autofont}
-
-\ProcessKeyvalOptions{hns}
-\newfontfamily\hamnosysfont{HamNoSysUnicode}[
- Extension = .ttf,
- UprightFont = HamNoSysUnicode,
- ]
-\newcommand{\texthamnosys}[1]{{\hamnosysfont #1}}
-
-\ifthenelse{\boolean{hns@autofont}}{%
- \ifXeTeX
- \RequirePackage[Latin, PrivateUseArea]{ucharclasses}
-
- \setTransitionsFor{PrivateUseArea}%
- {\let\curfamily\f@family\let\curshape\f@shape\let\curseries\f@series\hamnosysfont}
- {\fontfamily{\curfamily}\fontshape{\curshape}\fontseries{\curseries}\selectfont}
- \else
- \PackageWarning{hamnosys}{Option autofont only available in XeTeX.}
-\fi}{}
-
-\DeclareTextCommand{\hamfist}{TU}{\texthamnosys{\char "E000}}
-\DeclareTextCommand{\hamflathand}{TU}{\texthamnosys{\char "E001}}
-\DeclareTextCommand{\hamfingertwo}{TU}{\texthamnosys{\char "E002}}
-\DeclareTextCommand{\hamfingertwothree}{TU}{\texthamnosys{\char "E003}}
-\DeclareTextCommand{\hamfingertwothreespread}{TU}{\texthamnosys{\char "E004}}
-\DeclareTextCommand{\hamfingertwothreefourfive}{TU}{\texthamnosys{\char "E005}}
-\DeclareTextCommand{\hampinchonetwo}{TU}{\texthamnosys{\char "E006}}
-\DeclareTextCommand{\hampinchall}{TU}{\texthamnosys{\char "E007}}
-\DeclareTextCommand{\hampinchonetwoopen}{TU}{\texthamnosys{\char "E008}}
-\DeclareTextCommand{\hamceeonetwo}{TU}{\texthamnosys{\char "E009}}
-\DeclareTextCommand{\hamceeall}{TU}{\texthamnosys{\char "E00A}}
-\DeclareTextCommand{\hamceeopen}{TU}{\texthamnosys{\char "E00B}}
-\DeclareTextCommand{\hamthumboutmod}{TU}{\texthamnosys{\char "E00C}}
-\DeclareTextCommand{\hamthumbacrossmod}{TU}{\texthamnosys{\char "E00D}}
-\DeclareTextCommand{\hamthumbopenmod}{TU}{\texthamnosys{\char "E00E}}
-\DeclareTextCommand{\hamfingerstraightmod}{TU}{\texthamnosys{\char "E010}}
-\DeclareTextCommand{\hamfingerbendmod}{TU}{\texthamnosys{\char "E011}}
-\DeclareTextCommand{\hamfingerhookmod}{TU}{\texthamnosys{\char "E012}}
-\DeclareTextCommand{\hamdoublebent}{TU}{\texthamnosys{\char "E013}}
-\DeclareTextCommand{\hamdoublehooked}{TU}{\texthamnosys{\char "E014}}
-\DeclareTextCommand{\hamextfingeru}{TU}{\texthamnosys{\char "E020}}
-\DeclareTextCommand{\hamextfingerur}{TU}{\texthamnosys{\char "E021}}
-\DeclareTextCommand{\hamextfingerr}{TU}{\texthamnosys{\char "E022}}
-\DeclareTextCommand{\hamextfingerdr}{TU}{\texthamnosys{\char "E023}}
-\DeclareTextCommand{\hamextfingerd}{TU}{\texthamnosys{\char "E024}}
-\DeclareTextCommand{\hamextfingerdl}{TU}{\texthamnosys{\char "E025}}
-\DeclareTextCommand{\hamextfingerl}{TU}{\texthamnosys{\char "E026}}
-\DeclareTextCommand{\hamextfingerul}{TU}{\texthamnosys{\char "E027}}
-\DeclareTextCommand{\hamextfingerol}{TU}{\texthamnosys{\char "E028}}
-\DeclareTextCommand{\hamextfingero}{TU}{\texthamnosys{\char "E029}}
-\DeclareTextCommand{\hamextfingeror}{TU}{\texthamnosys{\char "E02A}}
-\DeclareTextCommand{\hamextfingeril}{TU}{\texthamnosys{\char "E02B}}
-\DeclareTextCommand{\hamextfingeri}{TU}{\texthamnosys{\char "E02C}}
-\DeclareTextCommand{\hamextfingerir}{TU}{\texthamnosys{\char "E02D}}
-\DeclareTextCommand{\hamextfingerui}{TU}{\texthamnosys{\char "E02E}}
-\DeclareTextCommand{\hamextfingerdi}{TU}{\texthamnosys{\char "E02F}}
-\DeclareTextCommand{\hamextfingerdo}{TU}{\texthamnosys{\char "E030}}
-\DeclareTextCommand{\hamextfingeruo}{TU}{\texthamnosys{\char "E031}}
-\DeclareTextCommand{\hampalmu}{TU}{\texthamnosys{\char "E038}}
-\DeclareTextCommand{\hampalmur}{TU}{\texthamnosys{\char "E039}}
-\DeclareTextCommand{\hampalmr}{TU}{\texthamnosys{\char "E03A}}
-\DeclareTextCommand{\hampalmdr}{TU}{\texthamnosys{\char "E03B}}
-\DeclareTextCommand{\hampalmd}{TU}{\texthamnosys{\char "E03C}}
-\DeclareTextCommand{\hampalmdl}{TU}{\texthamnosys{\char "E03D}}
-\DeclareTextCommand{\hampalml}{TU}{\texthamnosys{\char "E03E}}
-\DeclareTextCommand{\hampalmul}{TU}{\texthamnosys{\char "E03F}}
-\DeclareTextCommand{\hamhead}{TU}{\texthamnosys{\char "E040}}
-\DeclareTextCommand{\hamheadtop}{TU}{\texthamnosys{\char "E041}}
-\DeclareTextCommand{\hamforehead}{TU}{\texthamnosys{\char "E042}}
-\DeclareTextCommand{\hameyebrows}{TU}{\texthamnosys{\char "E043}}
-\DeclareTextCommand{\hameyes}{TU}{\texthamnosys{\char "E044}}
-\DeclareTextCommand{\hamnose}{TU}{\texthamnosys{\char "E045}}
-\DeclareTextCommand{\hamnostrils}{TU}{\texthamnosys{\char "E046}}
-\DeclareTextCommand{\hamear}{TU}{\texthamnosys{\char "E047}}
-\DeclareTextCommand{\hamearlobe}{TU}{\texthamnosys{\char "E048}}
-\DeclareTextCommand{\hamcheek}{TU}{\texthamnosys{\char "E049}}
-\DeclareTextCommand{\hamlips}{TU}{\texthamnosys{\char "E04A}}
-\DeclareTextCommand{\hamtongue}{TU}{\texthamnosys{\char "E04B}}
-\DeclareTextCommand{\hamteeth}{TU}{\texthamnosys{\char "E04C}}
-\DeclareTextCommand{\hamchin}{TU}{\texthamnosys{\char "E04D}}
-\DeclareTextCommand{\hamunderchin}{TU}{\texthamnosys{\char "E04E}}
-\DeclareTextCommand{\hamneck}{TU}{\texthamnosys{\char "E04F}}
-\DeclareTextCommand{\hamshouldertop}{TU}{\texthamnosys{\char "E050}}
-\DeclareTextCommand{\hamshoulders}{TU}{\texthamnosys{\char "E051}}
-\DeclareTextCommand{\hamchest}{TU}{\texthamnosys{\char "E052}}
-\DeclareTextCommand{\hamstomach}{TU}{\texthamnosys{\char "E053}}
-\DeclareTextCommand{\hambelowstomach}{TU}{\texthamnosys{\char "E054}}
-\DeclareTextCommand{\hamneutralspace}{TU}{\texthamnosys{\char "E05F}}
-\DeclareTextCommand{\hamupperarm}{TU}{\texthamnosys{\char "E060}}
-\DeclareTextCommand{\hamelbow}{TU}{\texthamnosys{\char "E061}}
-\DeclareTextCommand{\hamelbowinside}{TU}{\texthamnosys{\char "E062}}
-\DeclareTextCommand{\hamlowerarm}{TU}{\texthamnosys{\char "E063}}
-\DeclareTextCommand{\hamwristback}{TU}{\texthamnosys{\char "E064}}
-\DeclareTextCommand{\hamwristpulse}{TU}{\texthamnosys{\char "E065}}
-\DeclareTextCommand{\hamthumbball}{TU}{\texthamnosys{\char "E066}}
-\DeclareTextCommand{\hampalm}{TU}{\texthamnosys{\char "E067}}
-\DeclareTextCommand{\hamhandback}{TU}{\texthamnosys{\char "E068}}
-\DeclareTextCommand{\hamthumbside}{TU}{\texthamnosys{\char "E069}}
-\DeclareTextCommand{\hampinkyside}{TU}{\texthamnosys{\char "E06A}}
-\DeclareTextCommand{\hamthumb}{TU}{\texthamnosys{\char "E070}}
-\DeclareTextCommand{\hamindexfinger}{TU}{\texthamnosys{\char "E071}}
-\DeclareTextCommand{\hammiddlefinger}{TU}{\texthamnosys{\char "E072}}
-\DeclareTextCommand{\hamringfinger}{TU}{\texthamnosys{\char "E073}}
-\DeclareTextCommand{\hampinky}{TU}{\texthamnosys{\char "E074}}
-\DeclareTextCommand{\hamfingertip}{TU}{\texthamnosys{\char "E075}}
-\DeclareTextCommand{\hamfingernail}{TU}{\texthamnosys{\char "E076}}
-\DeclareTextCommand{\hamfingerpad}{TU}{\texthamnosys{\char "E077}}
-\DeclareTextCommand{\hamfingermidjoint}{TU}{\texthamnosys{\char "E078}}
-\DeclareTextCommand{\hamfingerbase}{TU}{\texthamnosys{\char "E079}}
-\DeclareTextCommand{\hamfingerside}{TU}{\texthamnosys{\char "E07A}}
-\DeclareTextCommand{\hamlrbeside}{TU}{\texthamnosys{\char "E058}}
-\DeclareTextCommand{\hamlrat}{TU}{\texthamnosys{\char "E059}}
-\DeclareTextCommand{\hamcoreftag}{TU}{\texthamnosys{\char "E05A}}
-\DeclareTextCommand{\hamcorefref}{TU}{\texthamnosys{\char "E05B}}
-\DeclareTextCommand{\hammoveu}{TU}{\texthamnosys{\char "E080}}
-\DeclareTextCommand{\hammoveur}{TU}{\texthamnosys{\char "E081}}
-\DeclareTextCommand{\hammover}{TU}{\texthamnosys{\char "E082}}
-\DeclareTextCommand{\hammovedr}{TU}{\texthamnosys{\char "E083}}
-\DeclareTextCommand{\hammoved}{TU}{\texthamnosys{\char "E084}}
-\DeclareTextCommand{\hammovedl}{TU}{\texthamnosys{\char "E085}}
-\DeclareTextCommand{\hammovel}{TU}{\texthamnosys{\char "E086}}
-\DeclareTextCommand{\hammoveul}{TU}{\texthamnosys{\char "E087}}
-\DeclareTextCommand{\hammoveol}{TU}{\texthamnosys{\char "E088}}
-\DeclareTextCommand{\hammoveo}{TU}{\texthamnosys{\char "E089}}
-\DeclareTextCommand{\hammoveor}{TU}{\texthamnosys{\char "E08A}}
-\DeclareTextCommand{\hammoveil}{TU}{\texthamnosys{\char "E08B}}
-\DeclareTextCommand{\hammovei}{TU}{\texthamnosys{\char "E08C}}
-\DeclareTextCommand{\hammoveir}{TU}{\texthamnosys{\char "E08D}}
-\DeclareTextCommand{\hammoveui}{TU}{\texthamnosys{\char "E08E}}
-\DeclareTextCommand{\hammovedi}{TU}{\texthamnosys{\char "E08F}}
-\DeclareTextCommand{\hammovedo}{TU}{\texthamnosys{\char "E090}}
-\DeclareTextCommand{\hammoveuo}{TU}{\texthamnosys{\char "E091}}
-\DeclareTextCommand{\hamcircleo}{TU}{\texthamnosys{\char "E092}}
-\DeclareTextCommand{\hamcirclei}{TU}{\texthamnosys{\char "E093}}
-\DeclareTextCommand{\hamcircled}{TU}{\texthamnosys{\char "E094}}
-\DeclareTextCommand{\hamcircleu}{TU}{\texthamnosys{\char "E095}}
-\DeclareTextCommand{\hamcirclel}{TU}{\texthamnosys{\char "E096}}
-\DeclareTextCommand{\hamcircler}{TU}{\texthamnosys{\char "E097}}
-\DeclareTextCommand{\hamcircleul}{TU}{\texthamnosys{\char "E098}}
-\DeclareTextCommand{\hamcircledr}{TU}{\texthamnosys{\char "E099}}
-\DeclareTextCommand{\hamcircleur}{TU}{\texthamnosys{\char "E09A}}
-\DeclareTextCommand{\hamcircledl}{TU}{\texthamnosys{\char "E09B}}
-\DeclareTextCommand{\hamcircleol}{TU}{\texthamnosys{\char "E09C}}
-\DeclareTextCommand{\hamcircleir}{TU}{\texthamnosys{\char "E09D}}
-\DeclareTextCommand{\hamcircleor}{TU}{\texthamnosys{\char "E09E}}
-\DeclareTextCommand{\hamcircleil}{TU}{\texthamnosys{\char "E09F}}
-\DeclareTextCommand{\hamcircleui}{TU}{\texthamnosys{\char "E0A0}}
-\DeclareTextCommand{\hamcircledo}{TU}{\texthamnosys{\char "E0A1}}
-\DeclareTextCommand{\hamcircleuo}{TU}{\texthamnosys{\char "E0A2}}
-\DeclareTextCommand{\hamcircledi}{TU}{\texthamnosys{\char "E0A3}}
-\DeclareTextCommand{\hamfingerplay}{TU}{\texthamnosys{\char "E0A4}}
-\DeclareTextCommand{\hamnodding}{TU}{\texthamnosys{\char "E0A5}}
-\DeclareTextCommand{\hamswinging}{TU}{\texthamnosys{\char "E0A6}}
-\DeclareTextCommand{\hamtwisting}{TU}{\texthamnosys{\char "E0A7}}
-\DeclareTextCommand{\hamstircw}{TU}{\texthamnosys{\char "E0A8}}
-\DeclareTextCommand{\hamstirccw}{TU}{\texthamnosys{\char "E0A9}}
-\DeclareTextCommand{\hamreplace}{TU}{\texthamnosys{\char "E0AA}}
-\DeclareTextCommand{\hamnomotion}{TU}{\texthamnosys{\char "E0AF}}
-\DeclareTextCommand{\hamclocku}{TU}{\texthamnosys{\char "E0B0}}
-\DeclareTextCommand{\hamclockul}{TU}{\texthamnosys{\char "E0B1}}
-\DeclareTextCommand{\hamclockl}{TU}{\texthamnosys{\char "E0B2}}
-\DeclareTextCommand{\hamclockdl}{TU}{\texthamnosys{\char "E0B3}}
-\DeclareTextCommand{\hamclockd}{TU}{\texthamnosys{\char "E0B4}}
-\DeclareTextCommand{\hamclockdr}{TU}{\texthamnosys{\char "E0B5}}
-\DeclareTextCommand{\hamclockr}{TU}{\texthamnosys{\char "E0B6}}
-\DeclareTextCommand{\hamclockur}{TU}{\texthamnosys{\char "E0B7}}
-\DeclareTextCommand{\hamclockfull}{TU}{\texthamnosys{\char "E0B8}}
-\DeclareTextCommand{\hamarcl}{TU}{\texthamnosys{\char "E0B9}}
-\DeclareTextCommand{\hamarcu}{TU}{\texthamnosys{\char "E0BA}}
-\DeclareTextCommand{\hamarcr}{TU}{\texthamnosys{\char "E0BB}}
-\DeclareTextCommand{\hamarcd}{TU}{\texthamnosys{\char "E0BC}}
-\DeclareTextCommand{\hamwavy}{TU}{\texthamnosys{\char "E0BD}}
-\DeclareTextCommand{\hamzigzag}{TU}{\texthamnosys{\char "E0BE}}
-\DeclareTextCommand{\hamellipseh}{TU}{\texthamnosys{\char "E0C0}}
-\DeclareTextCommand{\hamellipseur}{TU}{\texthamnosys{\char "E0C1}}
-\DeclareTextCommand{\hamellipsev}{TU}{\texthamnosys{\char "E0C2}}
-\DeclareTextCommand{\hamellipseul}{TU}{\texthamnosys{\char "E0C3}}
-\DeclareTextCommand{\hamincreasing}{TU}{\texthamnosys{\char "E0C4}}
-\DeclareTextCommand{\hamdecreasing}{TU}{\texthamnosys{\char "E0C5}}
-\DeclareTextCommand{\hamfast}{TU}{\texthamnosys{\char "E0C8}}
-\DeclareTextCommand{\hamslow}{TU}{\texthamnosys{\char "E0C9}}
-\DeclareTextCommand{\hamtense}{TU}{\texthamnosys{\char "E0CA}}
-\DeclareTextCommand{\hamrest}{TU}{\texthamnosys{\char "E0CB}}
-\DeclareTextCommand{\hamhalt}{TU}{\texthamnosys{\char "E0CC}}
-\DeclareTextCommand{\hamclose}{TU}{\texthamnosys{\char "E0D0}}
-\DeclareTextCommand{\hamtouch}{TU}{\texthamnosys{\char "E0D1}}
-\DeclareTextCommand{\haminterlock}{TU}{\texthamnosys{\char "E0D2}}
-\DeclareTextCommand{\hamcross}{TU}{\texthamnosys{\char "E0D3}}
-\DeclareTextCommand{\hamarmextended}{TU}{\texthamnosys{\char "E0D4}}
-\DeclareTextCommand{\hambehind}{TU}{\texthamnosys{\char "E0D5}}
-\DeclareTextCommand{\hambrushing}{TU}{\texthamnosys{\char "E0D6}}
-\DeclareTextCommand{\hamsmallmod}{TU}{\texthamnosys{\char "E0C6}}
-\DeclareTextCommand{\hamlargemod}{TU}{\texthamnosys{\char "E0C7}}
-\DeclareTextCommand{\hamrepeatfromstart}{TU}{\texthamnosys{\char "E0D8}}
-\DeclareTextCommand{\hamrepeatfromstartseveral}{TU}{\texthamnosys{\char "E0D9}}
-\DeclareTextCommand{\hamrepeatcontinue}{TU}{\texthamnosys{\char "E0DA}}
-\DeclareTextCommand{\hamrepeatcontinueseveral}{TU}{\texthamnosys{\char "E0DB}}
-\DeclareTextCommand{\hamrepeatreverse}{TU}{\texthamnosys{\char "E0DC}}
-\DeclareTextCommand{\hamalternatingmotion}{TU}{\texthamnosys{\char "E0DD}}
-\DeclareTextCommand{\hamseqbegin}{TU}{\texthamnosys{\char "E0E0}}
-\DeclareTextCommand{\hamseqend}{TU}{\texthamnosys{\char "E0E1}}
-\DeclareTextCommand{\hamparbegin}{TU}{\texthamnosys{\char "E0E2}}
-\DeclareTextCommand{\hamparend}{TU}{\texthamnosys{\char "E0E3}}
-\DeclareTextCommand{\hamfusionbegin}{TU}{\texthamnosys{\char "E0E4}}
-\DeclareTextCommand{\hamfusionend}{TU}{\texthamnosys{\char "E0E5}}
-\DeclareTextCommand{\hambetween}{TU}{\texthamnosys{\char "E0E6}}
-\DeclareTextCommand{\hamplus}{TU}{\texthamnosys{\char "E0E7}}
-\DeclareTextCommand{\hamsymmpar}{TU}{\texthamnosys{\char "E0E8}}
-\DeclareTextCommand{\hamsymmlr}{TU}{\texthamnosys{\char "E0E9}}
-\DeclareTextCommand{\hamnondominant}{TU}{\texthamnosys{\char "E0EA}}
-\DeclareTextCommand{\hamnonipsi}{TU}{\texthamnosys{\char "E0EB}}
-\DeclareTextCommand{\hametc}{TU}{\texthamnosys{\char "E0EC}}
-\DeclareTextCommand{\hamorirelative}{TU}{\texthamnosys{\char "E0ED}}
-\DeclareTextCommand{\hammime}{TU}{\texthamnosys{\char "E0F0}}
-\DeclareTextCommand{\hamversionfourzero}{TU}{\texthamnosys{\char "E0F1}}
-\DeclareTextCommand{\hamspace}{TU}{\texthamnosys{\char "20}}
-\DeclareTextCommand{\hamexclaim}{TU}{\texthamnosys{\char "21}}
-\DeclareTextCommand{\hamcomma}{TU}{\texthamnosys{\char "002C}}
-\DeclareTextCommand{\hamfullstop}{TU}{\texthamnosys{\char "002E}}
-\DeclareTextCommand{\hamquery}{TU}{\texthamnosys{\char "003F}}
-\DeclareTextCommand{\hamaltbegin}{TU}{\texthamnosys{\char "007B}}
-\DeclareTextCommand{\hammetaalt}{TU}{\texthamnosys{\char "007C}}
-\DeclareTextCommand{\hamaltend}{TU}{\texthamnosys{\char "007D}}
-\DeclareTextCommand{\hamwristtopulse}{TU}{\texthamnosys{\char "E07C}}
-\DeclareTextCommand{\hamwristtoback}{TU}{\texthamnosys{\char "E07D}}
-\DeclareTextCommand{\hamwristtothumb}{TU}{\texthamnosys{\char "E07E}}
-\DeclareTextCommand{\hamwristtopinky}{TU}{\texthamnosys{\char "E07F}}
-\DeclareTextCommand{\hammovecross}{TU}{\texthamnosys{\char "E0AD}}
-\DeclareTextCommand{\hammoveX}{TU}{\texthamnosys{\char "E0AE}}
-
-
-\def\@foreach#1#2{%
- \@test@foreach{#1}#2,\@end@token%
-}
-\def\@swallow#1{}
-\def\@test@foreach#1{%
- \@ifnextchar\@end@token%
- {\@swallow}%
- {\@recurse@foreach{#1}}%
-}
-\def\@recurse@foreach#1#2,#3\@end@token{%
- #1{#2}%
- \@test@foreach{#1}#3\@end@token%
-}
-
-\newcommand{\@wordtohamnosys}[1]{%
-\ifthenelse{\equal{#1}{hamfinger2}}{\hamfingertwo}{%
-\ifthenelse{\equal{#1}{hamfinger23}}{\hamfingertwothree}{%
-\ifthenelse{\equal{#1}{hamfinger23spread}}{\hamfingertwothreespread}{%
-\ifthenelse{\equal{#1}{hamfinger2345}}{\hamfingertwothreefourfive}{%
-\ifthenelse{\equal{#1}{hampinch12}}{\hampinchonetwo}{%
-\ifthenelse{\equal{#1}{hampinch12open}}{\hampinchonetwoopen}{%
-\ifthenelse{\equal{#1}{hamcee12}}{\hamceeonetwo}{%
-\ifthenelse{\equal{#1}{hamversion40}}{\hamversionfourzero}{%
-\@ifundefined{#1}{#1\PackageWarning{hamnosys}{%
-Unknown symbol "#1" in \protect\hamnosys. Typo?}}{\csname #1\endcsname}}}}}}}}}}
-
-\DeclareRobustCommand{\hamnosys}[1]{\@foreach{\@wordtohamnosys}{#1}}
-\endinput
-%%
-%% End of file `hamnosys.sty'.
diff --git a/graphics/pgf/contrib/circuitikz/README.md b/graphics/pgf/contrib/circuitikz/README.md
index 2f7593a7d2..82748aa739 100644
--- a/graphics/pgf/contrib/circuitikz/README.md
+++ b/graphics/pgf/contrib/circuitikz/README.md
@@ -66,7 +66,7 @@ For bug reports and enhacement suggestions, the preferred way is to use [the iss
Please do not use the issue page for generic help on how to use the package.
The manual has a (growing) set of examples;
-also the questions tagged `circuitikz` on https://tex.stackexchange.com/ are often answered promptly.
+also the questions tagged `circuitikz` on https://tex.stackexchange.com/ are often answered promptly. You can also find help on [matrix](https://app.element.io/#/room/#pgf-tikz:matrix.org) and on [TopTeX](https://topanswers.xyz/tex).
* git: https://github.com/circuitikz/circuitikz
* Massimo Redaelli (m.redaelli@gmail.com)
@@ -75,13 +75,13 @@ also the questions tagged `circuitikz` on https://tex.stackexchange.com/ are of
* Romano Giannetti (romano.giannetti@gmail.com)
-------------
-Copyright 2018-2021 by Romano Giannetti
+Copyright 2018-2022 by Romano Giannetti
-Copyright 2015-2021 by Stefan Lindner
+Copyright 2015-2022 by Stefan Lindner
-Copyright 2013-2021 by Stefan Erhardt
+Copyright 2013-2022 by Stefan Erhardt
-Copyright 2007-2021 by Massimo Redaelli
+Copyright 2007-2022 by Massimo Redaelli
This file may be distributed and/or modified
diff --git a/graphics/pgf/contrib/circuitikz/doc/changelog.tex b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
index 3247e63a1c..a1599a272c 100644
--- a/graphics/pgf/contrib/circuitikz/doc/changelog.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
@@ -5,6 +5,33 @@ full list of changes.
\begin{itemize}
\item
+ Version 1.4.6 (2022-02-04)
+
+ A nasty bug fix and some hack to avoid that some global Ti\emph{k}Z
+ option spill into the shapes. To better solve that problem, some risky
+ changes are due, so this release will be also a rollback point for
+ compatibility reasons.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Fix bug with legacy transmission lines in \texttt{overlay}s
+ (\href{https://github.com/circuitikz/circuitikz/issues/604}{noticed
+ by Benedikt Wilde})
+ \item
+ Robustify some shapes: do not let arrows option pass to the inner
+ drawing (see
+ \href{https://tex.stackexchange.com/a/632084/38080}{here} and
+ \href{https://matrix.to/\#/!NuxCISwYQJuyWwNsEI:matrix.org/$vQO6luq1F66LJ79dERmaqKI46qMBcjStqYCPi725uZE?via=matrix.org\&via=2krueger.de\&via=im.f3l.de}{here})
+ \item
+ Add warning about global draw options in the manual
+ \item
+ Fixes in documentation: hyperlink the index again, cite new recovery
+ point, remove some legacy construct
+ \item
+ Added 1.4.6 rollback point
+ \end{itemize}
+\item
Version 1.4.5 (2021-12-06)
Important fix for ConTeXt users, thanks to @TeXnician for reporting.
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
index a781b6ced2..3bce331cd0 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
index 62552b746f..585d645ce3 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
index e1906ae396..5372b62034 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
index 8cf24b70db..f299603351 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
@@ -5,10 +5,10 @@
% !TeX spellcheck = en_US
% !TeX encoding = utf8
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -53,13 +53,13 @@
\def\tightlist{} % needed for latest pandoc-versions(pandoc used for including changelog)
\usepackage{microtype}
+\usepackage{imakeidx}
+\makeindex[title=Index of the components, intoc=true]
+
% Local utilities packages
\usepackage{ctikzmanutils}
%
-\usepackage{imakeidx}
-\makeindex[title=Index of the components, intoc=true]
-
\begin{document}
% change numbering to roman to avoid a duplicate hyperref target on page 1
% Thanks to Ulrike Fischer for helping here
@@ -125,10 +125,10 @@ The use of \Circuitikz\ is, of course, not limited to academic teaching. The pac
\subsection{License}
Copyright \copyright{}
-2007--2021 by Massimo Redaelli,
-2013--2021 by Stefan Erhardt,
-2015--2021 by Stefan Lindner,
-and 2018--2021 by Romano Giannetti.
+2007--2022 by Massimo Redaelli,
+2013--2022 by Stefan Erhardt,
+2015--2022 by Stefan Lindner,
+and 2018--2022 by Romano Giannetti.
This package is author-maintained. Permission is granted to copy, distribute and/or modify this software under the terms of the \LaTeX\ Project Public License, version 1.3.1, or the GNU Public License. This software is provided ‘as is’, without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
\subsection{Loading the package}
@@ -198,6 +198,20 @@ Correcting this will need a big rewrite of the path routines, and although the a
This same issue create a lot of problem of compatibility between \Circuitikz{} and the new \texttt{pic} Ti\emph{k}Z feature, so basically don't put components into \texttt{pic}s.
+Also, notice that most components will interact in a funny way with global path options, like \texttt{rounded corners} or the arrow options (like \texttt{->} or \texttt{shorten <} and so on). Depending on the specific component, some parameter is inherited by the internal shape, and some other is reset,\footnote{This is not easy to fix. We want some option to go through --- fill color, dashed pattern for example --- and some other to stay only in the outer path; and if the background shape need some option for drawing the internal shape, like for example a rounded corner, it \emph{must} reset the external option. So there is no perfect solution.} so basically it's better not to use them.
+Arrows with \texttt{to[]} components don't work, anyway, so basically avoid this situation.
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{circuitikz}[]
+ \draw (0,3) to[R] ++(3,0) node[npn, anchor=B]{};
+ % arrows will not work and give bad results
+ % so basically do not use them!
+ \draw[<->] (0,1.5) to[R] ++(3,0) node[npn, anchor=B]{};
+ \draw[shorten <=10pt] (0,0) to[R] ++(3,0)
+ node[npn, anchor=B]{};
+\end{circuitikz}
+\end{LTXexample}
+
\subsection{Scale factors inaccuracies}\label{sec:usefpu}
@@ -267,7 +281,7 @@ If unsure, you can check the version at your local installation using the macro
If you have older projects that show compatibility problems, you have two options:
\begin{itemize}
\item you can use an older version locally using the git-version and picking the correct commit from the repository (branch gh-pages) or the main GitHub site directly;
- \item if you are using \LaTeX, the distribution has embedded several important old versions: \texttt{0.4}, \texttt{0.6}, \texttt{0.7}, \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6}, \texttt{1.0}, \texttt{1.1.2} and \texttt{1.2.7}.
+ \item if you are using \LaTeX, the distribution has embedded several important old versions: \texttt{0.4}, \texttt{0.6}, \texttt{0.7}, \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6}, \texttt{1.0}, \texttt{1.1.2}, \texttt{1.2.7}, and \texttt{1.4.6}.
To switch to use them, since \texttt{v1.4.0} you simply use the \href{https://www.latex-project.org/publications/2018-FMi-TUB-tb122mitt-version-rollback.pdf}{new LaTeX kernel rollback system}, changing your \verb|\usepackage| invocation to something like:
\begin{lstlisting}[numbers=none]
\usepackage[]{circuitikz}[=v0.8.3] % or v0.4, v0.6, ...
@@ -285,7 +299,7 @@ If you have older projects that show compatibility problems, you have two option
which is an inferior solution because it can fool any package you use that depend on \texttt{circuitikz}.
Both ways, you have to take care of the options that may have changed between versions (and sometime syles, if you use them).
- \item if you are using \ConTeXt, only versions \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6}, \texttt{1.0}, \texttt{1.1.2} and \texttt{1.2.7} are packaged; if can use it with
+ \item if you are using \ConTeXt, only versions \texttt{0.8.3}, \texttt{0.9.3}, \texttt{0.9.6}, \texttt{1.0}, \texttt{1.1.2}, \texttt{1.2.7}, and \texttt{1.4.6} are packaged; if can use it with
\begin{lstlisting}[numbers=none]
\usemodule[circuitikz-0.8.3]
\end{lstlisting}
@@ -1217,11 +1231,12 @@ Alternatively, that you can use the shape form, and then use the \texttt{left} a
\begin{circuitikz}[baseline, scale=0.8, transform shape]
\node[#1shape, name=bip] at(0,0) {};
\foreach \a in {0,30,...,359} \draw[red] (bip.\a) -- ++(\a:0.7) node[font=\tiny, fill=white, inner sep=0.5pt]{\a};
+ \foreach \a in {15,45,...,359} \draw[red] (bip.\a) -- ++(\a:0.4);
\node [font=\ttfamily\small, black, below] at (bip.-90) {\detokenize\expandafter{#1}};
\end{circuitikz}
}
-Bipoles have also installed generic border anchors --- that means, anchors that start at an angle. For complexity reason, these are for most of the components simply a generic enclosing rectangle. They interact in a non-trivial way with the \texttt{mirror} and \texttt{invert} keys, so it's best not to use them directly.
+Bipoles have also installed generic border anchors --- that means, anchors that start at an angle. For complexity reason, these are for most of the components simply a generic enclosing rectangle (even for most of the round ones!\footnote{This is needed for the correct label/voltage etc. placement, and it's too much work to change it.}). They interact in a non-trivial way with the \texttt{mirror} and \texttt{invert} keys, so it's best not to use them directly.
\begin{quote}
\showbordersfornode{generic}
@@ -1251,6 +1266,7 @@ The above diagram has been obtained with the code:
\node[#1shape, name=bip] at(0,0) {};
\foreach \a in {0,30,...,359} \draw[red] (bip.\a) -- ++(\a:0.7)
node[font=\tiny, fill=white, inner sep=0.5pt]{\a};
+ \foreach \a in {15,45,...,359} \draw[red] (bip.\a) -- ++(\a:0.4);
\node [font=\ttfamily\small, black, below] at (bip.-90)
{\detokenize\expandafter{#1}};
\end{circuitikz}}
@@ -2291,7 +2307,7 @@ The package options \texttt{fulldiode}, \texttt{strokediode}, and \texttt{emptyd
\circuitdescbip*[emptyzzdiode]{empty ZZener diode}{Empty ZZener diode}{zzDo}
\circuitdescbip*[emptytdiode]{empty tunnel diode}{Empty tunnel diode}{tDo}
\circuitdescbip*[emptypdiode]{empty photodiode}{Empty photodiode}{pDo}
- \circuitdescbip*[emptylediode]{empty led}{Empty led}{leDo}
+ \circuitdescbip*[emptylediode]{empty led}{Empty led}{leDo}
\circuitdescbip*[emptylaserdiode]{empty laser diode}{Empty laser diode\footnotemark}{lasD}
\footnotetext{Added by André Alves in \texttt{v1.4.4}}
\circuitdescbip*[emptyvarcap]{empty varcap}{Empty varcap}{VCo}
@@ -3395,8 +3411,11 @@ Some devices have the possibility to add a box around them. The inner symbol sca
To show that a device is optional, you can dash it. The inner symbol will be kept with solid lines.
\begin{LTXexample}[varwidth=true]
\begin{circuitikz}
- \draw (0,0) to[amp,l=\SI{10}{dB}] ++(2.5,0);
- \draw[dashed] (2.5,0) to[lowpass,l=opt.] ++(2.5,0);
+\draw (0,2) to[amp,l=\SI{10}{dB}] ++(2.5,0);
+\draw[dashed] (2.5,2) to[lowpass,l=opt.] ++(2.5,0);
+% or just the block
+\draw (0,0) to[amp,l=\SI{10}{dB}] ++(2.5,0)
+ to[lowpass,l=opt., dashed] ++(2.5,0);
\end{circuitikz}
\end{LTXexample}
@@ -8237,9 +8256,9 @@ The color of the components is stored in the key \verb!\circuitikzbasekey/color!
Compare for instance
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw[red]
- (0,2) node[and port] (myand1) {}
- (0,0) node[and port] (myand2) {}
- (2,1) node[xnor port] (myxnor) {}
+ (0,2) node[and port](myand1){1}
+ (0,0) node[and port](myand2){2}
+ (2,1) node[xnor port](myxnor){3}
(myand1.out) -| (myxnor.in 1)
(myand2.out) -| (myxnor.in 2)
;\end{circuitikz}
@@ -8249,9 +8268,9 @@ and
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw[color=red]
- (0,2) node[and port] (myand1) {}
- (0,0) node[and port] (myand2) {}
- (2,1) node[xnor port] (myxnor) {}
+ (0,2) node[and port](myand1){1}
+ (0,0) node[and port](myand2){2}
+ (2,1) node[xnor port](myxnor){3}
(myand1.out) -| (myxnor.in 1)
(myand2.out) -| (myxnor.in 2)
;\end{circuitikz}
@@ -8260,20 +8279,20 @@ and
One can of course change the color \emph{in medias res}:
\begin{LTXexample}[pos=t, varwidth=true]
\begin{circuitikz} \draw
- (0,0) node[pnp, color=blue] (pnp2) {}
- (pnp2.B) node[pnp, xscale=-1, anchor=B, color=brown] (pnp1) {}
- (pnp1.C) node[npn, anchor=C, color=green] (npn1) {}
- (pnp2.C) node[npn, xscale=-1, anchor=C, color=magenta] (npn2) {}
+ (0,0) node[pnp, color=blue](pnp2){q1}
+ (pnp2.B) node[pnp, xscale=-1, anchor=B, color=brown](pnp1){\ctikzflipx{q2}}
+ (pnp1.C) node[npn, anchor=C, color=green](npn1){q3}
+ (pnp2.C) node[npn, xscale=-1, anchor=C, color=magenta](npn2){\ctikzflipx{q4}}
(pnp1.E) -- (pnp2.E) (npn1.E) -- (npn2.E)
- (pnp1.B) node[circ] {} |- (pnp2.C) node[circ] {}
+ (pnp1.B) node[circ]{} |- (pnp2.C) node[circ]{}
;\end{circuitikz}
\end{LTXexample}
-The all-in-one stream of bipoles poses some challanges, as only the actual body of the bipole, and not the connecting lines, will be rendered in the specified color. Also, please notice the curly braces around the \texttt{to}:
+The all-in-one stream of bipoles poses some challanges, as only the actual body of the bipole, and not the connecting lines, will be rendered in the specified color.
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
(0,0) to[V=1<\volt>] (0,2)
- { to[R=1<\ohm>, color=red] (2,2) }
+ to[R=1<\ohm>, color=red] (2,2)
to[C=1<\farad>] (2,0) -- (0,0)
;\end{circuitikz}
\end{LTXexample}
@@ -8304,9 +8323,9 @@ Since version 0.9.0, you can also fill most shapes with a color (the manual spec
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
- (0,2) node[and port, fill=yellow] (myand1) {}
- (0,0) node[and port, fill=cyan] (myand2) {}
- (2,1) node[xnor port,fill=red!30!white] (myxnor) {}
+ (0,2) node[and port, fill=yellow](myand1){1}
+ (0,0) node[and port, fill=cyan](myand2){2}
+ (2,1) node[xnor port,fill=red!30!white](myxnor){3}
(myand1.out) -| (myxnor.in 1)
(myand2.out) -| (myxnor.in 2)
;\end{circuitikz}
@@ -8321,9 +8340,10 @@ This fill color will override any color defined by the style (see section~\ref{s
\draw[red] (-0.5,3) -- (-0.5, -1);
\draw[red] (1.5,3) -- (1.5, -1);
\draw
- (0,2) node[and port, ] (myand1) {}
- (0,0) node[and port, fill=cyan] (myand2) {}
- (2,1) node[xnor port, circuitikz/logic ports/fill=none] (myxnor) {}
+ (0,2) node[and port](myand1){1}
+ (0,0) node[and port, fill=cyan](myand2){2}
+ (2,1) node[xnor port, circuitikz/logic ports/fill=none
+ ](myxnor){3}
(myand1.out) -| (myxnor.in 1)
(myand2.out) -| (myxnor.in 2)
;\end{circuitikz}
@@ -8332,9 +8352,9 @@ You can combine shape colors with fill colors, too, but you should use the \text
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw[color=red]
- (0,2) node[and port, fill=yellow] (myand1) {1}
- (0,0) node[and port, fill=cyan] (myand2) {2}
- (2,1) node[xnor port,fill=red!30!white] (myxnor) {3}
+ (0,2) node[and port, fill=yellow](myand1) {1}
+ (0,0) node[and port, fill=cyan] (myand2){2}
+ (2,1) node[xnor port,fill=red!30!white](myxnor){3}
(myand1.out) -| (myxnor.in 1)
(myand2.out) -| (myxnor.in 2)
;\end{circuitikz}
@@ -8345,9 +8365,9 @@ A workaround is shown in port \texttt{3}:
\begin{LTXexample}[varwidth=true]
\begin{circuitikz} \draw
- (0,2) node[and port, color=black] (myand1) {1}
- (0,0) node[and port, color=blue, fill=cyan] (myand2) {2}
- (2,1) {[color=blue] node[xnor port, fill=cyan] (myxnor) {3}}
+ (0,2) node[and port, color=black](myand1){1}
+ (0,0) node[and port, color=blue, fill=cyan](myand2){2}
+ (2,1) {[color=blue] node[xnor port, fill=cyan](myxnor){3}}
(myand1.out) -| (myxnor.in 1)
(myand2.out) -| (myxnor.in 2)
;\end{circuitikz}
@@ -8894,10 +8914,10 @@ Here a series of example, contributed by several people, is shown with their cod
(0,0) to[C, l=10<\micro\farad>] (0,2) -- (0,3)
to[R, l=2.2<\kilo\ohm>] (4,3) -- (4,2)
to[L, l=12<\milli\henry>, i=$i_1$,v=b] (4,0) -- (0,0)
- (4,2) { to[D*, *-*, color=red] (2,0) }
+ (4,2) to[D*, color=red] (2,0)
(0,2) to[R, l=1<\kilo\ohm>, *-] (2,2)
- to[cV, i=1,v=$\SI{.3}{\kilo\ohm}\, i_1$] (4,2)
- (2,0) to[I, i=1<\milli\ampere>, -*] (2,2)
+ to[cV, i=1, -*, v=$\SI{.3}{\kilo\ohm}\, i_1$] (4,2)
+ (2,0) to[I, i=1<\milli\ampere>, *-*] (2,2)
;\end{circuitikz}
\end{LTXexample}
diff --git a/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty b/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
index 5102bb32ff..25a5b5f9e8 100644
--- a/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
+++ b/graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
index c28f578124..cfe008b2be 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
index c62d59b0d7..4db32c5b87 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
index 5da4ae0d4b..c3b45777ab 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
index 0c1aadad54..17367a3d45 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
index 625aadf4f7..3aa613b317 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
index d3f41fd302..60df922f20 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
index 330e59fd26..f665cb6cfc 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
index 249cd71d58..60506428cb 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
index de4190f52b..99059a801b 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
index 28fd994e91..41dd8b55aa 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
index 3dc3efe3c2..5630ed8b17 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
index d9f205f86c..fe592ca7e1 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -342,10 +342,10 @@
%%%%%%%%%
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2304,10 +2304,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2376,10 +2376,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3182,10 +3182,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4198,10 +4198,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -9302,10 +9302,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -15010,10 +15010,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16161,10 +16161,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17939,10 +17939,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18308,10 +18308,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18807,10 +18807,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -19022,10 +19022,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -19236,10 +19236,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
index 551a93a8a5..820e6cc53b 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
index 5369be5643..c9888b1f22 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -343,10 +343,10 @@
%%%%%%%%%
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2449,10 +2449,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2535,10 +2535,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3341,10 +3341,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4357,10 +4357,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -10254,10 +10254,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16161,10 +16161,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17448,10 +17448,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20142,10 +20142,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20511,10 +20511,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21060,10 +21060,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21275,10 +21275,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21489,10 +21489,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
index cbaf65f51a..ee1dd941c2 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
index 81cfa7cacd..e566ad4b75 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7-body.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -320,10 +320,10 @@
%%%%%%%%%
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2641,10 +2641,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2736,10 +2736,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3548,10 +3548,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4650,10 +4650,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -10813,10 +10813,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17247,10 +17247,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18993,10 +18993,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22024,10 +22024,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22395,10 +22395,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -23026,10 +23026,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -23256,10 +23256,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -23497,10 +23497,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
index 4897c4fe90..859a7525a4 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
new file mode 100644
index 0000000000..9801e6c838
--- /dev/null
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6-body.tex
@@ -0,0 +1,26375 @@
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+\NeedsTeXFormat{LaTeX2e}
+
+\def\pgfcircversion{1.4.6}
+\def\pgfcircversiondate{2022/02/04}
+
+%% Version 3.0 of pgf/TikZ is required
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+%
+% "arrows" library is deprecated, and behave badly with
+% arrows on short paths. Change to the new arrows.meta
+% In pfgcirc.define, we will add the old definition of
+% latex' which we have lost in the transition
+%
+\usetikzlibrary{arrows.meta, bending}
+\usetikzlibrary{fpu} % may be needed for use fpu reciprocal (v1.0.1)
+%
+% global of options (better use styles!)
+%
+\DeclareOption{european}{\AtEndOfPackage{%
+ \ctikzset{voltage=european} \ctikzset{current=european} \ctikzset{inductor=european}
+\ctikzset{resistor=european} \ctikzset{logic ports=european} \ctikzset{gas filled surge arrester choice = european}}
+}
+\DeclareOption{american}{\AtEndOfPackage{%
+ \ctikzset{voltage=american} \ctikzset{current=american} \ctikzset{resistor=american} \ctikzset{inductor=american} \ctikzset{gas filled surge arrester choice = american}
+\ctikzset{logic ports = american}}
+}
+%
+% voltages
+%
+\DeclareOption{europeanvoltage}{\AtEndOfPackage{%
+ \ctikzset{voltage=european}}
+}
+\DeclareOption{straightvoltages}{\AtEndOfPackage{%
+ \ctikzset{voltage=straight}}
+}
+\DeclareOption{americanvoltage}{\AtEndOfPackage{%
+ \ctikzset{voltage=american}}
+}
+\DeclareOption{europeanvoltages}{\AtEndOfPackage{%
+ \ctikzset{voltage=european}}
+}
+\DeclareOption{americanvoltages}{\AtEndOfPackage{%
+ \ctikzset{voltage=american}}
+}
+% Voltage directions
+\DeclareOption{oldvoltagedirection}{\AtEndOfPackage{%
+ \pgf@circ@oldvoltagedirectiontrue
+ \pgf@circ@explicitvdirtrue
+ \pgf@circ@fixbatteriesfalse}
+}
+\DeclareOption{nooldvoltagedirection}{\AtEndOfPackage{%
+ \pgf@circ@oldvoltagedirectionfalse
+ \pgf@circ@explicitvdirtrue
+ \pgf@circ@fixbatteriesfalse}
+}
+\DeclareOption{RPvoltages}{\AtEndOfPackage{%
+ \pgf@circ@oldvoltagedirectiontrue
+ \pgf@circ@explicitvdirtrue
+ \pgf@circ@fixbatteriestrue}
+}
+\DeclareOption{EFvoltages}{\AtEndOfPackage{%
+ \pgf@circ@oldvoltagedirectionfalse
+ \pgf@circ@explicitvdirtrue
+ \pgf@circ@fixbatteriestrue}
+}
+%
+% currents
+%
+\DeclareOption{europeancurrent}{\AtEndOfPackage{%
+ \ctikzset{current = european}}
+}
+\DeclareOption{americancurrent}{\AtEndOfPackage{%
+ \ctikzset{current = american}}
+}
+\DeclareOption{europeancurrents}{\AtEndOfPackage{%
+ \ctikzset{current = european}}
+}
+\DeclareOption{americancurrents}{\AtEndOfPackage{%
+ \ctikzset{current = american}}
+}
+%
+% resistors
+%
+\DeclareOption{americanresistor}{\AtEndOfPackage{%
+ \ctikzset{resistor = american}}
+}
+\DeclareOption{europeanresistor}{\AtEndOfPackage{%
+ \ctikzset{resistor = european}}
+}
+\DeclareOption{americanresistors}{\AtEndOfPackage{%
+ \ctikzset{resistor = american}}
+}
+\DeclareOption{europeanresistors}{\AtEndOfPackage{%
+ \ctikzset{resistor = european}}
+}
+%
+% inductors
+%
+\DeclareOption{americaninductor}{\AtEndOfPackage{%
+ \ctikzset{inductor = american}}
+}
+\DeclareOption{europeaninductor}{\AtEndOfPackage{%
+ \ctikzset{inductor = european}}
+}
+\DeclareOption{cuteinductor}{\AtEndOfPackage{%
+ \ctikzset{inductor = cute}}
+}
+\DeclareOption{americaninductors}{\AtEndOfPackage{%
+ \ctikzset{inductor = american}}
+}
+\DeclareOption{europeaninductors}{\AtEndOfPackage{%
+ \ctikzset{inductor = european}}
+}
+\DeclareOption{cuteinductors}{\AtEndOfPackage{%
+ \ctikzset{inductor = cute}}
+}
+%
+% logic ports
+%
+\DeclareOption{americanport}{\AtEndOfPackage{%
+ \ctikzset{logic ports = american}}
+}
+\DeclareOption{europeanport}{\AtEndOfPackage{%
+ \ctikzset{logic ports = european}}
+}
+\DeclareOption{americanports}{\AtEndOfPackage{%
+ \ctikzset{logic ports = american}}
+}
+\DeclareOption{europeanports}{\AtEndOfPackage{%
+ \ctikzset{logic ports = european}}
+}
+%
+% surge arresters (really?)
+%
+\DeclareOption{americangfsurgearrester}{\AtEndOfPackage{%
+ \ctikzset{gas filled surge arrester choice = american}}
+}
+\DeclareOption{europeangfsurgearrester}{\AtEndOfPackage{%
+ \ctikzset{gas filled surge arrester choice = european}}
+}
+%
+% diodes
+%
+\DeclareOption{fulldiodes}{\AtEndOfPackage{%
+ \ctikzset{diode = full}}
+}
+\DeclareOption{emptydiodes}{\AtEndOfPackage{%
+ \ctikzset{diode = empty}}
+}
+\DeclareOption{strokediodes}{\AtEndOfPackage{%
+ \ctikzset{diode = stroke}}
+}
+\DeclareOption{fulldiode}{\AtEndOfPackage{%
+ \ctikzset{diode = full}}
+}
+\DeclareOption{emptydiode}{\AtEndOfPackage{%
+ \ctikzset{diode = empty}}
+}
+\DeclareOption{strokediode}{\AtEndOfPackage{%
+ \ctikzset{diode = stroke}}
+}
+%
+% MOSes and FETs
+%
+\DeclareOption{arrowmos}{\AtEndOfPackage{%
+ \pgf@circuit@mos@arrowstrue}
+}
+\DeclareOption{noarrowmos}{\AtEndOfPackage{%
+ \pgf@circuit@mos@arrowsfalse}
+}
+\DeclareOption{fetbodydiode}{\AtEndOfPackage{%
+ \pgf@circuit@fet@bodydiodetrue}
+}
+\DeclareOption{nofetbodydiode}{\AtEndOfPackage{%
+ \pgf@circuit@fet@bodydiodefalse}
+}
+\DeclareOption{fetsolderdot}{\AtEndOfPackage{%
+ \pgf@circuit@fet@solderdottrue}
+}
+\DeclareOption{nofetsolderdot}{\AtEndOfPackage{%
+ \pgf@circuit@fet@solderdotfalse}
+}
+\DeclareOption{emptypmoscircle}{\AtEndOfPackage{%
+ \pgf@circuit@pmos@emptycircletrue}
+}
+\DeclareOption{lazymos}{\AtEndOfPackage{%
+ \ctikzset{tripoles/nmos/width=.5}
+ \ctikzset{tripoles/nmos/gate height=.35}
+ \ctikzset{tripoles/nmos/base height=.35}
+ \ctikzset{tripoles/nmos/height/.initial=1.2}
+ \ctikzset{tripoles/nmos/base width=.5}
+ \ctikzset{tripoles/nmos/gate width=.65}
+ \ctikzset{tripoles/pmos/width=.5}
+ \ctikzset{tripoles/pmos/gate height=.35}
+ \ctikzset{tripoles/pmos/base height=.35}
+ \ctikzset{tripoles/pmos/height/.initial=1.2}
+ \ctikzset{tripoles/pmos/base width=.5}
+ \ctikzset{tripoles/pmos/gate width=.65}
+\pgf@circuit@pmos@emptycircletrue}
+}
+%
+% BJTs labels
+%
+\DeclareOption{legacytransistorstext}{\AtEndOfPackage{%
+ \pgf@circuit@transisors@fixlabelsfalse}
+}
+\DeclareOption{nolegacytransistorstext}{\AtEndOfPackage{%
+ \pgf@circuit@transisors@fixlabelstrue}
+}
+\DeclareOption{centertransistorstext}{\AtEndOfPackage{%
+ \pgf@circuit@transisors@fixlabelstrue}
+}
+%
+% labels
+%
+\DeclareOption{straightlabels}{\AtEndOfPackage{%
+ \ctikzset{label/align = straight}}
+}
+\DeclareOption{rotatelabels}{\AtEndOfPackage{%
+ \ctikzset{label/align = rotate}}
+}
+\DeclareOption{smartlabels}{\AtEndOfPackage{%
+ \ctikzset{label/align = smart}}
+}
+%
+% Several options (better use styles)
+%
+\DeclareOption{betterproportions}{\AtEndOfPackage{%
+ \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/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{bipoles/bidirectionaldiode/height/.initial=.66}
+ \ctikzset{bipoles/bidirectionaldiode/width/.initial=.6}
+ \ctikzset{bipoles/bidirectionaldiode/diode width left/.initial=.3}
+ \ctikzset{bipoles/bidirectionaldiode/diode width right/.initial=.3}
+ \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}}
+}
+% This is a nice hack that prints all the shapes declared
+% by the package. Very useful for coverage testing and debugging.
+%
+% \let\origpgfdeclareshape=\pgfdeclareshape
+% \def\pgfdeclareshape#1{%
+% \typeout{SHAPE:\space"#1"}%
+% \origpgfdeclareshape{#1}
+% }
+%
+%
+%%%%%%%%%
+%%% These is the only direct options!
+\DeclareOption{siunitx}{
+ \pgf@circ@siunitxtrue
+}
+\DeclareOption{nosiunitx}{
+ \pgf@circ@siunitxfalse
+}
+\DeclareOption{compatibility}{
+ \pgf@circuit@compattrue
+}
+
+
+%% we have to load this before options to define the magics for compatibility
+%%%%%%%%%%% Springe nach tex/pgfcirc.defines
+%%%---------- open: tex/pgfcirc.defines.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+%
+% This file has folding marks for vim (See last line).
+%
+
+%
+% This file is loaded *before* the options for the package are executed, mainly
+% for the following three ifs
+%
+% these three ifs are fundamental for the package loading options;
+% do not move away
+\newif\ifpgf@circ@siunitx
+\newif\ifpgf@circ@siunitx@res
+\newif\ifpgf@circuit@compat
+
+%% Key managements%<<<1
+
+\long\def\pgf@circ@comment#1{}
+
+\def\circuitikzbasekey{/tikz/circuitikz}
+
+\pgfkeys{\circuitikzbasekey/.is family}
+
+\def\circuitikzset{\expandafter\pgfqkeys\expandafter{\circuitikzbasekey}}
+\let\ctikzset\circuitikzset
+\def\ctikzvalof#1{\pgfkeysvalueof{\circuitikzbasekey/#1}}
+\def\ctikzsetvalof#1#2{\pgfkeyssetvalue{\circuitikzbasekey/#1}{#2}}
+
+\pgfkeys{\circuitikzbasekey/.search also={/tikz}}
+%%>>>
+
+%% Temporary Counters and dimensions%<<<1
+%% Temporary Counters
+\newcount\pgf@circ@count@a
+\newcount\pgf@circ@count@b
+\newcount\pgf@circ@count@c
+%%%%%%%%%%%%
+%% Dimensions
+% coordinate
+\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
+\newdimen\pgf@circ@res@temp
+% Base len for all circuitikz
+\newdimen\pgf@circ@Rlen
+% scaled length for internal use in scalable shapes
+\newdimen\pgf@circ@scaled@Rlen
+\ctikzset{bipoles/length/.code={\pgf@circ@Rlen = #1\pgf@circ@scaled@Rlen=\pgf@circ@Rlen}}
+\pgf@circ@Rlen = 1.4cm
+% by default scale is 1.0
+\pgf@circ@scaled@Rlen=\pgf@circ@Rlen
+% inital thickness
+\newdimen \pgfstartlinewidth
+%%>>>
+
+% arrow tips macros and utilities %<<<1
+
+% the default arrow is latexslim, which has been ported over old arrows library (deprecated)
+% see https://tex.stackexchange.com/questions/234084/latex-arrow-tip-with-arrows-meta-library
+% this was the original definition of latex' tips, renamed to avoid clashes
+%
+\pgfarrowsdeclare{latexslim}{latexslim}
+{
+ \pgfutil@tempdima=0.28pt%
+ \advance\pgfutil@tempdima by.3\pgflinewidth%
+ \pgfarrowsleftextend{+-4\pgfutil@tempdima}
+ \pgfarrowsrightextend{+6\pgfutil@tempdima}
+}
+{
+ \pgfutil@tempdima=0.28pt%
+ \advance\pgfutil@tempdima by.3\pgflinewidth%
+ \pgfpathmoveto{\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}}
+ \pgfpathcurveto
+ {\pgfqpoint{3.5\pgfutil@tempdima}{.5\pgfutil@tempdima}}
+ {\pgfqpoint{-1\pgfutil@tempdima}{1.5\pgfutil@tempdima}}
+ {\pgfqpoint{-4\pgfutil@tempdima}{3.75\pgfutil@tempdima}}
+ \pgfpathcurveto
+ {\pgfqpoint{-1.5\pgfutil@tempdima}{1\pgfutil@tempdima}}
+ {\pgfqpoint{-1.5\pgfutil@tempdima}{-1\pgfutil@tempdima}}
+ {\pgfqpoint{-4\pgfutil@tempdima}{-3.75\pgfutil@tempdima}}
+ \pgfpathcurveto
+ {\pgfqpoint{-1\pgfutil@tempdima}{-1.5\pgfutil@tempdima}}
+ {\pgfqpoint{3.5\pgfutil@tempdima}{-.5\pgfutil@tempdima}}
+ {\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}}
+ \pgfpathclose
+ \pgfusepathqfill
+}
+
+\pgfarrowsdeclarereversed{latexslim reversed}{latexslim reversed}{latexslim}{latexslim}
+
+% select the arrows using available defaults.
+\def\pgfcirc@arrow@default{default}
+% choose the arrows to use. Use #2 and #3 if the key is equal to "default"
+% arguments: type, default start, default end
+\def\pgfcirc@set@arrows#1#2#3{%
+ \pgfkeysifdefined{\circuitikzbasekey/#1 start arrow}%
+ {\edef\@@start{\ctikzvalof{#1 start arrow}}}%
+ {\edef\@@start{\pgfcirc@arrow@default}}
+ \pgfkeysifdefined{\circuitikzbasekey/#1 end arrow}%
+ {\edef\@@end{\ctikzvalof{#1 end arrow}}}%
+ {\edef\@@end{\pgfcirc@arrow@default}}
+ \ifx\@@start\pgfcirc@arrow@default
+ \pgfsetarrowsstart{#2}%
+ \else
+ \pgfsetarrowsstart{\@@start}%
+ \fi
+ \ifx\@@end\pgfcirc@arrow@default
+ \pgfsetarrowsend{#3}%
+ \else
+ \pgfsetarrowsend{\@@end}%
+ \fi
+}
+
+\def\pgf@circ@declare@family@arrows#1{%
+ \ctikzset{#1 start arrow/.initial={default}}
+ \ctikzset{#1 end arrow/.initial={default}}
+ \tikzset{#1 start arrow/.style={\circuitikzbasekey/#1 start arrow={##1}}}
+ \tikzset{#1 end arrow/.style={\circuitikzbasekey/#1 end arrow={##1}}}
+}
+%%>>>
+
+%% Macros to do things depending on the class%<<<1
+
+\def\pgf@circ@setifdefinedfill#1#2{%
+ % if \ctikzclass is defined and \ctikzclass/fill is defined and is not none:
+ % set the fill color and execute \pgfusepath{#1}, else execute \pgfusepath{#2}
+ \ifdefined\ctikzclass
+ \pgfkeysifdefined{\circuitikzbasekey/\ctikzclass/fill}%
+ {% yes, it's defined
+ \edef\@@tmp{\ctikzvalof{\ctikzclass/fill}}\edef\@@none{none}%
+ \ifx\@@tmp\@@none % but it's none
+ \pgfusepath{#2}%
+ \else
+ \pgfsetfillcolor{\@@tmp}%
+ \pgfusepath{#1}%
+ \fi
+ }{% the class is defined but the fill key not; use #2
+ \pgfusepath{#2}%
+ }
+ \else
+ \pgfusepath{#2}%
+ \fi
+}
+
+%% Macro to fill or draw
+
+\def\pgf@circ@draworfill{%
+ \ifx\tikz@fillcolor\pgfutil@empty
+ \pgf@circ@setifdefinedfill{draw,fill}{draw}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \pgfusepath{draw, fill}
+ \fi
+}
+
+\def\pgf@circ@draworfillandclip{%
+ \ifx\tikz@fillcolor\pgfutil@empty
+ \pgf@circ@setifdefinedfill{draw, clip, fill}{draw, clip}
+ \pgfusepath{draw, clip}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \pgfusepath{draw, clip, fill}
+ \fi
+}
+
+\def\pgf@circ@maybefill{%
+ \ifx\tikz@fillcolor\pgfutil@empty
+ \pgf@circ@setifdefinedfill{fill}{discard}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \pgfusepath{fill}
+ \fi
+}
+
+%% Macros for setting linewidth
+% #1 is the legacy class (bipoles, tripoles) etc
+% #2 is the reference linewidth
+\def\pgf@circ@setlinewidth#1#2{%
+ \ifdefined\ctikzclass
+ \pgfkeysifdefined{\circuitikzbasekey/\ctikzclass/thickness}%
+ {% yes, it's defined
+ \edef\@@tmp{\ctikzvalof{\ctikzclass/thickness}}\edef\@@none{none}%
+ \ifx\@@tmp\@@none % but it's none
+ \pgfsetlinewidth{\ctikzvalof{#1/thickness}#2}% passthrough legacy class
+ \else
+ \pgfsetlinewidth{\@@tmp #2}%
+ \fi
+ }{ % key not defined, do the legacy thing
+ \pgfsetlinewidth{\ctikzvalof{#1/thickness}#2}%
+ }% Ok, do nothing
+ \else % no class
+ \pgfsetlinewidth{\ctikzvalof{#1/thickness}#2}%
+ \fi
+}
+% use \pgf@circ@setlinewidth{none}{\pgflinewidth} if there is no legacy case
+\ctikzset{none/thickness/.initial=1.0} % do not touch
+
+% set thickness relative to current thickness if exists class and key
+\def\pgf@circ@set@relative@thickness#1{%
+ \ifdefined\ctikzclass
+ \pgfkeysifdefined{\circuitikzbasekey/\ctikzclass/#1}
+ {% yes, it's defined
+ \pgfsetlinewidth{\ctikzvalof{\ctikzclass/#1}\pgflinewidth}%
+ }{}
+ \fi
+}
+
+% auxiliary macro to reset some thing in paths, for background images.
+% use with care and ALWAYS inside a \pgfscope, see here:
+% https://matrix.to/#/!NuxCISwYQJuyWwNsEI:matrix.org/$vQO6luq1F66LJ79dERmaqKI46qMBcjStqYCPi725uZE?via=matrix.org&via=2krueger.de&via=im.f3l.de
+% Thanks to @muzimuzhi
+%
+\def\pgf@circ@reset@arrows{%
+ \pgfsetshortenstart{+0pt}\pgfsetshortenend{+0pt}\pgfsetarrows{-}%
+}
+\def\pgf@circ@reset@rounded{%
+ \pgfsetcornersarced{\pgfpointorigin}%
+}
+\def\pgf@circ@reset@arrows@rounded{%
+ \pgf@circ@reset@arrows\pgf@circ@reset@rounded
+}
+
+%%>>>
+
+%% font changes compatible with plain/LaTeX/ConTeXt%<<<1
+%% thanks to Henri Menke https://github.com/circuitikz/circuitikz/issues/285#issuecomment-537224605
+
+\ifpgfutil@format@is@latex
+ \long\def\pgf@circ@font@tiny{\tiny}
+ \long\def\pgf@circ@font@small{\small}
+ \long\def\pgf@circ@font@bold{\textbf}
+ \long\def\pgf@circ@font@boldmath{\boldmath}
+ \long\def\pgf@circ@font@sixbm{\fontsize{6}{7}\selectfont\boldmath}
+ \long\def\pgf@circ@font@tenbm{\fontsize{10}{12}\selectfont\boldmath}
+ \long\def\pgf@circ@font@twelve{\fontsize{12}{14}\selectfont}
+\else\ifpgfutil@format@is@plain
+ \long\def\pgf@circ@font@tiny{\fiverm}
+ \long\def\pgf@circ@font@small{\sevenrm}
+ \long\def\pgf@circ@font@bold#1{{\bf#1}}
+ \long\def\pgf@circ@font@boldmath{\bf} % to be tested
+ \long\def\pgf@circ@font@sixbm{\sevenrm\bf} %
+ \long\def\pgf@circ@font@tenbm{\tenrm\bf} %
+ \long\def\pgf@circ@font@twelve{\twelverm} %
+\else\ifpgfutil@format@is@context
+ \long\def\pgf@circ@font@tiny{\tfxx}
+ \long\def\pgf@circ@font@small{\tfx}
+ \long\def\pgf@circ@font@bold{\bold}
+ \long\def\pgf@circ@font@boldmath{\bold} % to be tested
+ \long\def\pgf@circ@font@sixbm{\tfx\bold} %
+ \long\def\pgf@circ@font@tenbm{\normal\bold}%
+ \long\def\pgf@circ@font@twelve{\tfa} %
+\fi\fi\fi
+
+
+%
+% Thanks to Phelype Oleinik https://tex.stackexchange.com/a/520806/38080
+%
+% this is needed to avoid problems with \ConTeXt
+\ifcsname normalunexpanded\endcsname
+ \let\pgfcircutil@unexpanded\normalunexpanded
+\else
+ \let\pgfcircutil@unexpanded\unexpanded
+\fi
+% minimally expand a pgfkey to check if it's {}/undefined or filled.
+\def\unexpandedvalueof#1{%
+ \pgfcircutil@unexpanded\expandafter\expandafter
+ \expandafter\pgf@circ@valueof@chk\pgfkeysvalueof{#1}}
+\def\pgf@circ@valueof@chk#1{%
+ \ifx\relax#1%
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ {{}}% #1 is \relax, so consider empty
+ {\expandafter{#1}}% otherwise, leave the key after one more expansion
+}%
+%>>>
+
+%% 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{%
+ \pgfcircdeclarebipolescaled{default}}
+
+%% Generic macro for defining a bipole shape
+% #1 - scale factor
+% #2 - additional anchors
+% #3 - lower y-size of the bipole (from the center).
+% #4 - #shape is the name of the shape
+% #5 - upper y-size of the bipole (from the center)
+% #6 - width of the bipole
+% #7 - macros drawing the bipole
+%
+\long\def\pgfcircdeclarebipolescaled#1#2#3#4#5#6#7{
+ \pgfdeclareshape{#4shape}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{#1}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\northeast}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@y=#5\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=#6\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor{\northeastborder}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@y=#5\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y
+ \pgf@x=#6\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x
+ }
+ \savedanchor{\southwestborder}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@y=-#3\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y
+ \pgf@x=-#6\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x
+ }
+ \savedanchor{\southwest}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@y=-#3\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-#6\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor{\centerpoint}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@down=-#3\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up=#5\pgf@circ@scaled@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}{
+ \northeast
+ \pgf@x=0cm
+ }
+ \anchor{north east}{
+ \northeast
+ }
+ \anchor{north west}{
+ \northeast
+ \pgf@x=-\pgf@x
+ }
+ \anchor{ne}{
+ \northeast
+ }
+ \anchor{nw}{
+ \northeast
+ \pgf@x=-\pgf@x
+ }
+ \anchor{e}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{s}{
+ \southwest
+ \pgf@x=0cm
+ }
+ \anchor{south east}{
+ \southwest
+ \pgf@x=-\pgf@x
+ }
+ \anchor{south west}{
+ \southwest
+ }
+ \anchor{se}{
+ \southwest
+ \pgf@x=-\pgf@x
+ }
+ \anchor{sw}{
+ \southwest
+ }
+ \anchor{w}{
+ \southwest
+ \pgf@y=0cm
+ }
+ \anchor{north}{
+ \northeast
+ \pgf@x=0cm
+ }
+ \anchor{east}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{south}{
+ \southwest
+ \pgf@x=0cm
+ }
+ \anchor{west}{
+ \southwest
+ \pgf@y=0cm
+ }
+ \anchor{right}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{above}{
+ \northeast
+ \pgf@x=0cm
+ }
+ \anchor{left}{
+ \southwest
+ \pgf@y=0cm
+ }
+ \anchor{below}{
+ \southwest
+ \pgf@x=0cm
+ }
+ \anchor{a}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{b}{
+ \southwest
+ \pgf@y=0cm
+ }
+ \savedanchor{\textanchor}{%
+ \pgf@y=\ht\pgfnodeparttextbox
+ \pgf@x=-.5\wd\pgfnodeparttextbox
+ }
+ \anchor{text}{
+ \textanchor
+ }
+ \anchorborder{%
+ \ifpgf@circuit@bipole@inverted
+ \pgf@circ@res@left=-\pgf@x
+ \pgf@circ@res@up=-\pgf@y
+ \else
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \fi
+ \ifdim\pgf@circ@res@up>0cm
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\northeastborder}
+ \else
+ \southwestborder
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{-\pgf@x}{-\pgf@y}}
+ \fi
+ }
+
+ #2
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgfstartlinewidth=\pgflinewidth
+ % no rounded corners nor default arrows on bipole's bodies
+ \pgf@circ@reset@arrows@rounded
+ #7
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ }
+ }
+}% %>>>
+
+%% anchor adjustment macros%<<<
+
+% Extend the border anchor position by the specified factors on the right-top (north east corner)
+% and the left-down (southwest border). Argument must be number (possibly decimal) without sign
+
+\def\pgfcirc@border@extend@full#1#2#3#4{% right, top, left, down
+ \anchorborder{%
+ \ifpgf@circuit@bipole@inverted
+ \pgf@circ@res@left=-\pgf@x
+ \pgf@circ@res@up=-\pgf@y
+ \else
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \fi
+ \ifdim\pgf@circ@res@up>0cm
+ \northeastborder
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{#1\pgf@x}{#2\pgf@y}}
+ \else
+ \southwestborder
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{-#3\pgf@x}{-#4\pgf@y}}
+ \fi
+ }
+}
+
+% Just up and down (very common)
+\def\pgfcirc@border@extend@updown#1#2{\pgfcirc@border@extend@full{1}{#1}{1}{#2}}% %>>>
+
+% text position in some component.%<<<1
+% (added with ieeestd logic ports. Maybe to be extended to other components,
+% like amplifiers)
+%
+\newif\ifpgf@circ@center@text\pgf@circ@center@texttrue
+\tikzset{component text/.is choice}%
+\tikzset{component text/center/.code={\pgf@circ@center@texttrue}}%
+\tikzset{component text/left/.code={\pgf@circ@center@textfalse}}%
+\ctikzset{component text/.is choice}%
+\ctikzset{component text/center/.code={\pgf@circ@center@texttrue}}%
+\ctikzset{component text/left/.code={\pgf@circ@center@textfalse}}%
+\ctikzset{left text distance/.initial=0.3em}%
+%>>>
+
+% voltage direction options%<<<1
+
+\newif\ifpgf@circ@oldvoltagedirection % default false
+\newif\ifpgf@circ@explicitvdir
+\newif\ifpgf@circ@fixbatteries
+
+\ctikzset{voltage dir/.is choice}
+\ctikzset{voltage dir/old/.code={\pgf@circ@oldvoltagedirectiontrue\pgf@circ@fixbatteriesfalse}}
+\ctikzset{voltage dir/noold/.code={\pgf@circ@oldvoltagedirectionfalse\pgf@circ@fixbatteriesfalse}}
+\ctikzset{voltage dir/RP/.code={\pgf@circ@oldvoltagedirectiontrue\pgf@circ@fixbatteriestrue}}
+\ctikzset{voltage dir/EF/.code={\pgf@circ@oldvoltagedirectionfalse\pgf@circ@fixbatteriestrue}}
+\tikzset{voltage dir/.style={circuitikz/voltage dir=#1}}%
+%>>>
+
+% bipole definitions for path component and text decorations%%<<<1
+%
+% Option "t=*" for nodes
+\pgfkeys{/tikz/t/.add code={}{\ctikzset{text=#1}}}
+%
+\ctikzset{bipole/.is family}
+\ctikzset{bipole/kind/.initial=}
+\ctikzset{bipole/name/.initial=}
+\newif\ifpgf@circuit@bipole@isvoltage
+\ctikzset{bipole/is voltage/.is if=pgf@circuit@bipole@isvoltage}
+\newif\ifpgf@circuit@bipole@override@source@vif
+\ctikzset{bipole/override source vif/.is if=pgf@circuit@bipole@override@source@vif}
+\newif\ifpgf@circuit@bipole@voltageoutsideofsymbol
+\ctikzset{bipole/is voltageoutsideofsymbol/.is if=pgf@circuit@bipole@voltageoutsideofsymbol}
+\newif\ifpgf@circuit@bipole@strokedsymbol
+\ctikzset{bipole/is strokedsymbol/.is if=pgf@circuit@bipole@strokedsymbol}
+\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/flow/.is family}
+\newif\ifpgf@circuit@bipole@flow@backward
+\ctikzset{bipole/flow/direction/.is choice}
+\ctikzset{bipole/flow/direction/forward/.code={\pgf@circuit@bipole@flow@backwardfalse}}
+\ctikzset{bipole/flow/direction/backward/.code={\pgf@circuit@bipole@flow@backwardtrue}}
+\newif\ifpgf@circuit@bipole@flow@before
+\ctikzset{bipole/flow/x position/.is choice}
+\ctikzset{bipole/flow/x position/after/.code={\pgf@circuit@bipole@flow@beforefalse}}
+\ctikzset{bipole/flow/x position/before/.code={\pgf@circuit@bipole@flow@beforetrue}}
+\newif\ifpgf@circuit@bipole@flow@below
+\ctikzset{bipole/flow/y position/.is choice}
+\ctikzset{bipole/flow/y position/above/.code={\pgf@circuit@bipole@flow@belowfalse}}
+\ctikzset{bipole/flow/y position/below/.code={\pgf@circuit@bipole@flow@belowtrue}}
+\ctikzset{bipole/flow/label/unit/.initial=}
+\ctikzset{bipole/flow/label/name/.initial=}
+\ctikzset{flow/distance/.initial = .5}
+\ctikzset{flow/offset/.initial = .2}%distance between flow-arrow and conductor
+
+\ctikzset{bipole/label/.is family}
+\ctikzset{bipole/label/position/.initial=90}
+\ctikzset{bipole/label/unit/.initial=}
+\ctikzset{bipole/label/name/.initial=}
+\ctikzset{bipole/annotation/.is family}
+\ctikzset{bipole/annotation/position/.initial=-90}
+\ctikzset{bipole/annotation/unit/.initial=}
+\ctikzset{bipole/annotation/name/.initial=}
+
+
+\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}}}
+%%>>>
+
+% traditional styles %<<<1
+%
+\ctikzset{thickness/.initial=2}
+\ctikzset{color/.initial=black}
+\pgfkeys{/tikz/color/.add code={}{\ctikzset{color={#1}}}}
+\ctikzset{bipoles/border margin/.initial=1.1}
+\ctikzset{bipoles/thickness/.initial=2}
+\ctikzset{tripoles/thickness/.initial=2}
+\ctikzset{quadpoles/thickness/.initial=2}
+\ctikzset{nodes width/.initial=.04}
+%%>>>
+
+% Styles definitions and macros%<<<1
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% main style definitions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% load a style file: search ctikzstyle-NAME.tex in path
+\def\ctikzloadstyle#1{%
+ \pgfutil@InputIfFileExists{ctikzstyle-#1}{}{%
+ \tikzerror{I did not find the circuitikz style #1}}%
+}
+
+% load and enact a style
+\def\ctikzsetstyle#1{%
+ \ctikzloadstyle{#1}%
+ \tikzset{#1 circuit style}%
+}
+
+% global style parameters
+\ctikzset{default/scale/.initial=1.0} % do not touch
+\ctikzset{default/fill/.initial=none} % do not touch
+\ctikzset{default/thickness/.initial=none} % do not touch
+% default is use as the generic default style for bipoles
+
+% mostly bipoles:
+
+\ctikzset{resistors/scale/.initial=1.0}
+\ctikzset{resistors/fill/.initial=none}
+\ctikzset{resistors/thickness/.initial=none}
+\ctikzset{resistors/modifier thickness/.initial=1}% relative to main thickness
+
+\ctikzset{capacitors/scale/.initial=1.0}
+\ctikzset{capacitors/fill/.initial=none}
+\ctikzset{capacitors/thickness/.initial=none}
+\ctikzset{capacitors/modifier thickness/.initial=1}
+
+\ctikzset{inductors/scale/.initial=1.0}
+\ctikzset{inductors/fill/.initial=none}
+\ctikzset{inductors/thickness/.initial=none}
+\ctikzset{inductors/modifier thickness/.initial=1}
+
+\ctikzset{diodes/scale/.initial=1.0}
+\ctikzset{diodes/fill/.initial=none}
+\ctikzset{diodes/thickness/.initial=none}
+
+\ctikzset{batteries/scale/.initial=1.0}
+\ctikzset{batteries/fill/.initial=none}
+\ctikzset{batteries/thickness/.initial=none}
+
+\ctikzset{sources/scale/.initial=1.0}
+\ctikzset{sources/fill/.initial=none}
+\ctikzset{sources/thickness/.initial=none}
+
+\ctikzset{csources/scale/.initial=1.0}
+\ctikzset{csources/fill/.initial=none}
+\ctikzset{csources/thickness/.initial=none}
+
+\ctikzset{instruments/scale/.initial=1.0}
+\ctikzset{instruments/fill/.initial=none}
+\ctikzset{instruments/thickness/.initial=none}
+
+\ctikzset{mechanicals/scale/.initial=1.0}
+\ctikzset{mechanicals/fill/.initial=none}
+\ctikzset{mechanicals/thickness/.initial=none}
+
+\ctikzset{misc/scale/.initial=1.0}
+\ctikzset{misc/fill/.initial=none}
+\ctikzset{misc/thickness/.initial=none}
+
+\ctikzset{blocks/scale/.initial=1.0}
+\ctikzset{blocks/fill/.initial=none}
+\ctikzset{blocks/thickness/.initial=none}
+
+% mostly nodes
+
+\ctikzset{grounds/scale/.initial=1.0}
+\ctikzset{grounds/fill/.initial=none}
+\ctikzset{grounds/thickness/.initial=none}
+
+\ctikzset{power supplies/scale/.initial=1.0}
+\ctikzset{power supplies/fill/.initial=none}
+\ctikzset{power supplies/thickness/.initial=none}
+
+\ctikzset{transistors/scale/.initial=1.0}
+\ctikzset{transistors/fill/.initial=none}
+\ctikzset{transistors/thickness/.initial=none}
+\ctikzset{transistors/modifier thickness/.initial=1}% relative to main thickness
+
+\ctikzset{tubes/scale/.initial=1.0}
+\ctikzset{tubes/fill/.initial=none}
+\ctikzset{tubes/thickness/.initial=none}
+
+\ctikzset{RF/scale/.initial=1.0}
+\ctikzset{RF/fill/.initial=none}
+\ctikzset{RF/thickness/.initial=none}
+
+\ctikzset{electromechanicals/scale/.initial=1.0}
+\ctikzset{electromechanicals/fill/.initial=none}
+\ctikzset{electromechanicals/thickness/.initial=none}
+
+% transformers go with inductors
+\ctikzset{amplifiers/scale/.initial=1.0}
+\ctikzset{amplifiers/fill/.initial=none}
+\ctikzset{amplifiers/thickness/.initial=none}
+
+\ctikzset{switches/scale/.initial=1.0}
+\ctikzset{switches/fill/.initial=none}
+\ctikzset{switches/thickness/.initial=none}
+
+\ctikzset{logic ports/scale/.initial=1.0}
+\ctikzset{logic ports/fill/.initial=none}
+\ctikzset{logic ports/thickness/.initial=none}
+
+\ctikzset{flipflops/scale/.initial=1.0}
+\ctikzset{flipflops/fill/.initial=none}
+\ctikzset{flipflops/thickness/.initial=none}
+
+\ctikzset{muxdemuxes/scale/.initial=1.0}
+\ctikzset{muxdemuxes/fill/.initial=none}
+\ctikzset{muxdemuxes/thickness/.initial=none}
+
+\ctikzset{chips/scale/.initial=1.0}
+\ctikzset{chips/fill/.initial=none}
+\ctikzset{chips/thickness/.initial=none}
+
+\ctikzset{displays/scale/.initial=1.0}
+\ctikzset{displays/fill/.initial=none}
+\ctikzset{displays/thickness/.initial=none}
+%
+% general styles
+%
+\tikzset{european/.style = {european currents, european voltages, european resistors, european inductors, european ports, european gas filled surge arrester set}}
+\tikzset{american/.style = {american currents, american voltages, american resistors, american inductors, american ports, american gas filled surge arrester set}}
+\tikzset{cute/.style = {european currents, european voltages, american resistors, cute inductors, american ports}}
+%%>>>
+
+% voltage and current options%<<<1
+%
+\ctikzset{current arrow scale/.initial=16}
+\ctikzset{current/distance/.initial = .5}
+
+\newif\ifpgf@circuit@europeancurrent
+\newif\ifpgf@circuit@europeanvoltage
+\newif\ifpgf@circuit@bipole@voltage@straight
+\newif\ifpgf@circuit@bipole@voltage@raised
+
+\ctikzset{voltage/.is choice}
+%
+% straight is expected to be a subset of european, so disable it in american style
+%
+\ctikzset{voltage/american/.code = {%
+ \pgf@circuit@europeanvoltagefalse
+ \pgf@circuit@bipole@voltage@straightfalse
+ \pgf@circuit@bipole@voltage@raisedfalse
+}}
+\ctikzset{voltage/raised/.code = {%
+ \pgf@circuit@europeanvoltagefalse
+ \pgf@circuit@bipole@voltage@straightfalse
+ \pgf@circuit@bipole@voltage@raisedtrue
+}}
+\ctikzset{voltage/european/.code = {%
+ \pgf@circuit@europeanvoltagetrue
+ \pgf@circuit@bipole@voltage@straightfalse
+ \pgf@circuit@bipole@voltage@raisedfalse
+}}
+\ctikzset{voltage/straight/.code = {%
+ \pgf@circuit@europeanvoltagetrue
+ \pgf@circuit@bipole@voltage@straighttrue
+ \pgf@circuit@bipole@voltage@raisedfalse
+}}
+\ctikzset{voltage/curved/.code = {%
+ \pgf@circuit@europeanvoltagetrue
+ \pgf@circuit@bipole@voltage@straightfalse
+ \pgf@circuit@bipole@voltage@raisedfalse
+}}
+% are these used?
+\ctikzset{current/.is choice}
+\ctikzset{current/american/.code = \pgf@circuit@europeancurrentfalse}
+\ctikzset{current/european/.code = \pgf@circuit@europeancurrenttrue}
+
+% this is left for backward compatibility...
+\ctikzset{straight/.is choice}
+\ctikzset{straight/true/.code = {\pgf@circuit@bipole@voltage@straighttrue}}
+\ctikzset{straight/false/.code = {\pgf@circuit@bipole@voltage@straightfalse}}
+\ctikzset{bipole/straight/.is if=pgf@circuit@bipole@voltage@straight}
+%
+% voltage is used also to set parameters, apart for the /.is choice
+% above. I hope it is ok --- would be a mess otherwise
+%
+\ctikzset{voltage/shift/.initial=0.0} % shift form the cable of voltage symbols
+\ctikzset{voltage shift/.style={\circuitikzbasekey/voltage/shift=#1}}
+\tikzset{voltage shift/.style={\circuitikzbasekey/voltage/shift=#1}}
+%
+% keys for exporting voltage, current, flow anchors
+%
+\newif\ifpgfcirc@has@v\pgfcirc@has@vfalse
+\newif\ifpgfcirc@has@f\pgfcirc@has@ffalse
+\newif\ifpgfcirc@has@i\pgfcirc@has@ifalse
+\def\ctikzgetanchor#1#2{\csname pgfcirc@#1-#2-anchor\endcsname}
+\def\ctikzgetdirection#1{\csname pgfcirc@#1-direction\endcsname}
+%
+% shaping the +/- sign, see pgfcircvoltage.tex
+\ctikzset{voltage/american font/.initial={}}
+\ctikzset{voltage/american plus/.initial={$+$}}
+\ctikzset{voltage/american minus/.initial={$-$}}
+% here we start the voltage adjustments for special components.
+% default values:
+%
+% this is the distance of the "point" marking the voltage along the line
+% 0.0 is on the external nodes of the to path
+% 1.0 is cramped on the object
+% this can be overriden component by component
+\ctikzset{voltage/distance from node/.initial=.5}% pos, 0->1
+%
+% this is the distance from the line (perpendicular to) where the voltage is drawn.
+% It is global, and not adjustable by component (use the "label distance" or locally
+% if you need it)
+\ctikzset{voltage/distance from line/.initial=.08}% in \pgf@circ@scaled@Rlen units
+%
+% bend paramenters for european arc. You can override them component-based
+\ctikzset{voltage/bump b/.initial=1.5}
+%
+% generator voltages symbols or arrows (always straight) are put along the
+% 60 ... 120 angles of the symbol (don't ask why). The distance here is on the
+% center..angle line. It's called bump a because I don't know...
+%
+\ctikzset{voltage/bump a/.initial=1.2}
+%
+% these are the label distances FROM the drawings.
+% You can override them component by component.
+\ctikzset{voltage/european label distance/.initial=1.4}
+\ctikzset{voltage/straight label distance/.initial=1.4}
+\ctikzset{voltage/american label distance/.initial=1.4}
+% american open voltage adjusting
+%
+\newif\ifpgf@adjust@open@voltage\pgf@adjust@open@voltagetrue
+\ctikzset{open voltage position/.is choice}
+\ctikzset{open voltage position/center/.code={\pgf@adjust@open@voltagetrue}}
+\ctikzset{open voltage position/legacy/.code={\pgf@adjust@open@voltagefalse}}
+% bad names, kept for compatibility, don't use
+\ctikzset{american open voltage/.is choice}
+\ctikzset{american open voltage/center/.code={\pgf@adjust@open@voltagetrue}}
+\ctikzset{american open voltage/legacy/.code={\pgf@adjust@open@voltagefalse}}
+%
+% voltage and current styles
+%
+\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{straight voltages/.style = {\circuitikzbasekey/voltage = straight}}
+\tikzset{raised voltages/.style = {\circuitikzbasekey/voltage = raised}}
+%%>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcirc.defines
+
+% setup option defaults and process them
+% notice that the default is nooldvoltagedirection; it's not explicitly set to allow for the warning
+\ExecuteOptions{nofetbodydiode, nofetsolderdot, europeancurrents, europeanvoltages, americanports, americanresistors, cuteinductors ,europeangfsurgearrester, nosiunitx, noarrowmos, smartlabels}
+\ProcessOptions\relax
+
+%%%%%%%%%%% Springe nach tex/pgfcircutils
+%%%---------- open: tex/pgfcircutils.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+\def\pgf@circ@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@ifkeyempty#1{
+ \pgfextra{
+ \ctikzset{#1/.get=\pgf@circ@temp}
+ \edef\pgf@temp{}
+ }
+ \ifx\pgf@circ@temp\pgf@temp
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Math routines
+
+\def\pgf@circ@stripdecimals#1.#2\pgf@nil{#1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% useful commands
+
+\ifpgfutil@format@is@latex
+ %% flipping text
+ \def\ctikzflipx#1{\scalebox{-1}[1]{#1}}
+ \def\ctikzflipy#1{\scalebox{1}[-1]{#1}}
+ \def\ctikzflipxy#1{\scalebox{-1}[-1]{#1}}
+ % text mode overbar
+ % Thanks to @egreg https://tex.stackexchange.com/a/24133/38080
+ \def\ctikztextnot#1{$\overline{\hbox{#1}}\m@th$}
+\else\ifpgfutil@format@is@plain
+ % text mode overbar
+ % but really circuitikz will not work in plain...
+ % Thanks to @egreg https://tex.stackexchange.com/a/24133/38080
+ \def\ctikztextnot#1{$\overline{\hbox{#1}}$}
+\else\ifpgfutil@format@is@context
+ %% flipping text
+ \def\ctikzflipx#1{\mirror{#1}}
+ \def\ctikzflipy#1{\mirror{\rotate[rotation=180]{#1}}}
+ \def\ctikzflipxy#1{\rotate[rotation=180]{#1}}
+ % text mode overbar
+ % Thanks to @egreg https://tex.stackexchange.com/a/24133/38080
+ \def\ctikztextnot#1{$\overline{\hbox{#1}}$}
+\fi\fi\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% switch to use fpu in reciprocal scale transformations
+%%
+%% this code has been contributed by Schrödinger's cat
+%% https://tex.stackexchange.com/a/529159/38080
+%%
+%% Use the official key to use the fpu if installed, see
+%% https://github.com/pgf-tikz/pgf/issues/861
+%%
+%% Thanks to "muzimuzhi Z" https://tex.stackexchange.com/a/547085/38080
+%% Thanks to Henri Menke for a faster approach https://github.com/circuitikz/circuitikz/commit/00966c45c42b464fab5429f89f2b7fb414e9b3f7#commitcomment-54592494
+%%
+\pgfkeysifdefined{/pgf/fpu/install only/.@cmd}{%
+ \pgfqkeys{/pgf}{use fpu reciprocal/.code={\pgfkeys{/pgf/fpu/install only={reciprocal}}}}%
+ }{%
+ \pgfkeysifdefined{/pgf/use fpu reciprocal/.@cmd}{% use stock one
+ }{
+ \pgfqkeys{/pgf}{use fpu reciprocal/.code={%
+ \def\pgfmathreciprocal@##1{%
+ \begingroup
+ \pgfmathfloatparsenumber{##1}%
+ \pgfmathfloatreciprocal@{\pgfmathresult}%
+ \pgfmathfloattofixed@{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult
+ \endgroup
+ }}}}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% subcircuits (experimental)
+%%
+%% introduced by Romano Giannetti around April 2021
+%% changes suggested by Jonathan P. Spratte
+%%
+\newbox\ctikz@scratchbox
+\pgfutil@protected\def\ctikzsubcircuitdef#1#2#3{%
+ \expandafter\gdef\csname #1@Anchor\endcsname{}%
+ \expandafter\gdef\csname #1@setanchors\endcsname{%
+ \setbox\ctikz@scratchbox=\hbox{%
+ \tikzpicture
+ \draw (0,0) \csname#1\endcsname{T-#1}{};
+ \foreach [count=\i] \anchor in {#2}
+ % reference anchor is -center
+ \draw (0,{2-\i/2}) let \p1 = ($(T-#1-subckt@reference)-(T-#1-\anchor)$) in
+ node[right]{\anchor: \x1,\y1 \expandafter\xdef\csname #1@Anchor\anchor\endcsname{++(\x1,\y1)}};
+ \endtikzpicture
+ }%
+ }%
+ \expandafter\gdef\csname#1\endcsname##1##2{%
+ \csname #1@Anchor##2\endcsname coordinate(##1-subckt@reference)#3%
+ }%
+}
+\long\def\ctikzsubcircuitactivate#1{\csname #1@setanchors\endcsname}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Basic utility macros
+%%
+%% Functions provided here are:
+%% \pgf@circ@ifempty{<argument>}{<true>}{<false>}
+%% Tests whether <argument> is completely empty.
+%% \pgf@circ@ifblank{<argument>}{<true>}{<false>}
+%% Tests whether <argument> is either empty or only contains spaces.
+%% \pgf@circ@trimspaces@do{<argument>}{<next>}
+%% Trims at most one space from either end of <argument> and forwards the
+%% result to <next> as <next>{<trimmed argument>}
+
+% these two are pretty standard code
+\long\def\pgf@circ@ifempty#1%
+ {%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ }
+\long\def\pgf@circ@ifblank#1%
+ {%
+ \if\relax\detokenize\expandafter{\pgfutil@gobble#1.}\relax
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ }
+
+% \pgfutil@trimspaces needs two expansions. The first expansion we'll do during
+% the definition.
+\def\pgf@circ@trimspaces@do#1%
+ {%
+ \def\pgf@circ@trimspaces@do##1%
+ {\expandafter\pgf@circ@trimspaces@do@\expandafter{#1}}%
+ }
+\expandafter\pgf@circ@trimspaces@do\expandafter{\pgfutil@trimspaces{#1}}
+\def\pgf@circ@trimspaces@do@#1#2{#2{#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% list handling
+%%
+%% Contribution by Jonathan P. Spratte (blame him!)
+%%
+%% The list implementation here has a few limitations. Those are:
+%% 1. not long, so no \par in the lists (but many used functions in pgfutil
+%% aren't long as well)
+%% 2. list elements can't contain a Q with category code 3 (but the used
+%% function \pgfutil@trimspaces doesn't support them as well, and this
+%% should be a very rare token anyway)
+%% 3. list elements can't contain the token \pgf@circ@set@list as that is used
+%% as the end marker
+%% 4. currently these lists are meant for numeric data (hence only
+%% \pgf@circ@if@num@in@list is provided as a test), as a result there is
+%% another limitation for the data here. If the list element contains no
+%% hyphen '-', the element will be stored without further processing
+%% 'as-is' (well, after trimming spaces). If there is a hyphen we assume
+%% well-behaved input data and will interpret this as a num-range without
+%% further tests.
+%%
+%% Functions provided here are:
+%% \pgf@circ@set@list<macro>{<csv-list>}
+%% Parses the <csv-list> and stores the result inside <macro> (local
+%% assignment). If a num-range given as <start - stop> (with or without
+%% spaces) is found it will be expanded to <start>,<start+1>,...,<stop>.
+%% \pgf@circ@if@num@in@list<macro>{<value>}{<true>}{<false>}
+%% Checks whether <value> (numeric value, evaluated once with \numexpr) is
+%% found inside the list stored in <macro>. There are two special cases: If
+%% <macro> is undefined <false> is executed. If the list contains only one
+%% element and that is `all' <true> is executed.
+
+% set the catcode of our marker
+\chardef\pgf@circ@temp=\the\catcode`\Q
+\catcode`\Q=3
+
+% lists will have the structure
+% <marker><element 1><marker>...<element n><marker>
+% As marker we use a Q with category 3. Under the assumption that no list
+% element does ever contain that token we can set the elements without braces,
+% allowing us to use \pgfutil@in@ to search for elements (see above). The other
+% token that isn't allowed to show up in the list is \pgf@circ@set@list, that we
+% use as another marker during parsing.
+% The other big restriction in this implementation is that lists can't contain a
+% \par (but \pgfutil@in@ doesn't support that anyway so there is not much
+% sense in supporting it here)
+\pgfutil@protected\def\pgf@circ@set@list#1#2%
+ {%
+ % clear the error flag
+ \let\pgf@circ@error@marker\pgf@circ@undefined
+ % set the list
+ \edef#1%
+ {Q\pgf@circ@set@list@sanitize#2,\pgf@circ@set@list,\pgf@circ@set@list}%
+ % there was an error, throw the error message, recovery was already done by
+ % ignoring the offending elements.
+ \ifx\pgf@circ@error@marker\relax
+ \begingroup
+ \newlinechar`\^^J
+ \pgfutil@packageerror{circuitikz}
+ {%
+ Unallowed marker found in list^^J%
+ \pgfutil@unexpanded{#2}.^^J%
+ Offending elements were ignored.%
+ }
+ {Lists can't contain a Q with category code 3}%
+ \endgroup
+ \fi
+ }
+% just a utility for the <marker> test
+\def\pgf@circ@set@list@gobbletomarker#1Q{}
+% quick way to check whether list parsing is done by gobbling up to a marker, in
+% this case the marker is \pgf@circ@set@list
+\def\pgf@circ@set@list@sanitize@checkend#1\pgf@circ@set@list{}
+% will only be called after the last element is handled, will gobble the
+% remainder of the current sanitizing step
+\def\pgf@circ@set@list@sanitize@end\pgf@circ@set@list#1\pgf@circ@set@list{}
+% grabs the next list element, checks whether we're done, and if not sanitizes
+% it (meaning stripping spaces from either end and placing the <marker>).
+\def\pgf@circ@set@list@sanitize#1,%
+ {%
+ \pgf@circ@set@list@sanitize@checkend
+ #1\pgf@circ@set@list@sanitize@end\pgf@circ@set@list
+ \pgf@circ@set@list@sanitize@a{#1}%
+ }
+% testing whether a list element contains the used <marker> expandably, if it
+% does set the flag, else continue sanitizing.
+\def\pgf@circ@set@list@sanitize@a#1%
+ {%
+ \expandafter\pgf@circ@ifempty\expandafter
+ % if this is empty no marker was found
+ {\pgf@circ@set@list@gobbletomarker#1Q}
+ {%
+ \pgf@circ@ifblank{#1}
+ {}% ignore blank entries
+ {\pgf@circ@trimspaces@do{#1}\pgf@circ@set@list@sanitize@b}%
+ }
+ {%
+ % panic, there was a marker found in a list element. We'll recover by
+ % ignoring the current element after setting a flag. When we do
+ % \csname ...\endcsname on an undefined macro name TeX will let that
+ % macro to relax and we exploit this to expandable set a flag and
+ % gobbling the result.
+ \expandafter\pgfutil@gobble\csname pgf@circ@error@marker\endcsname
+ }%
+ % get the next element
+ \pgf@circ@set@list@sanitize
+ }
+% we'll protect any element from further expanding using \unexpanded and place
+% the marker after the element, and ignore empty/blank elements
+\def\pgf@circ@set@list@sanitize@b#1%
+ {%
+ \expandafter\pgf@circ@ifempty\expandafter
+ % if this is empty no hyphen is found
+ {\pgf@circ@gobbletohyphen#1-}
+ {\pgfutil@unexpanded{#1}Q}
+ {\pgf@circ@set@list@parse@range{#1}}%
+ }
+\def\pgf@circ@gobbletohyphen#1-{}
+\def\pgf@circ@set@list@parse@range#1{\pgf@circ@set@list@parse@range@a#1Q}
+\def\pgf@circ@set@list@parse@range@a#1-#2Q%
+ {%
+ \expandafter\pgf@circ@set@list@parse@range@b
+ \the\numexpr#1\expandafter Q\the\numexpr#2Q%
+ }
+\def\pgf@circ@set@list@parse@range@b#1Q#2Q%
+ {%
+ \ifnum#1<#2
+ % expand to the range from #1 to #2 (inclusive)
+ \pgf@circ@set@list@range{#1}{#2}%
+ \else
+ \ifnum#2<#1
+ % if #2 is smaller than #1 just swap the order
+ \pgf@circ@set@list@range{#2}{#1}%
+ \else
+ % last case, they are equal, so just put the result here
+ #1Q%
+ \fi
+ \fi
+ }
+\def\pgf@circ@set@list@parse@range@norange#1Q#2{\pgfutil@unexpanded{#2}Q}
+\def\pgf@circ@set@list@range#1#2%
+ {%
+ #1Q%
+ \ifnum#1<#2
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ \pgfutil@gobble
+ {\expandafter\pgf@circ@set@list@range\expandafter{\the\numexpr#1+1}{#2}}%
+ }
+
+% flag for special value
+\def\pgf@circ@all@flag{QallQ}
+\pgfutil@protected\def\pgf@circ@if@num@in@list#1#2%
+ {%
+ % test whether the list macro is defined, if it isn't result is false
+ \pgfutil@ifx\pgf@circ@undefined#1%
+ {\pgfutil@secondoftwo}
+ {%
+ % test whether the list macro is just the special value 'all', if so
+ % true, else search (and start that by evaluating a numexpr)
+ \pgfutil@ifx\pgf@circ@all@flag#1%
+ {\pgfutil@firstoftwo}
+ {%
+ \expandafter\pgf@circ@if@num@in@list@a\expandafter
+ {\the\numexpr#2}%
+ #1%
+ }%
+ }%
+ }
+% next step is expanding the list macro
+\pgfutil@protected\def\pgf@circ@if@num@in@list@a#1#2%
+ {\expandafter\pgf@circ@if@num@in@list@b\expandafter{#2}{#1}}
+% now use \pgfutil@in@ to check whether there is the searched list element
+\pgfutil@protected\def\pgf@circ@if@num@in@list@b#1#2%
+ {%
+ \begingroup
+ % put the <marker> around the number to make sure only full matches are
+ % found. \pgfutil@in@ will set \ifpgfutil@in@ to true if it finds a match
+ \pgfutil@in@{Q#2Q}{#1}%
+ \expandafter
+ \endgroup
+ \ifpgfutil@in@
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ }
+
+% reset the catcode of Q
+\catcode`\Q=\pgf@circ@temp
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% temporary fix for old TikZ versions (remove me)
+%%
+%% All blame to Romano Giannetti for this code!
+%%
+%% This tries to be smart and provide \pgfutil@unexpanded and \pgfutil@ifx if
+%% PGF doesn't provide them.
+
+\ifx\pgfutil@unexpanded\pgf@circ@undefined
+ \ifpgfutil@format@is@context
+ \let\pgfutil@unexpanded\normalunexpanded
+ \else
+ \let\pgfutil@unexpanded\unexpanded
+ \fi
+\fi
+
+\ifx\pgfutil@ifx\pgf@circ@undefined
+ \long\def\pgfutil@ifx#1#2{%
+ \ifx#1#2%
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi}
+\fi
+
+%%
+%% generic tunable arrow for components that have no "variable" thing
+%%
+\def\ctikztunablearrow{\pgfutil@ifnextchar[{\ctikztunablearrow@full}{\ctikztunablearrow@simple}}%
+\def\ctikztunablearrow@simple{\ctikztunablearrow@full[]}%
+\def\ctikztunablearrow@full[#1]#2#3#4#5{%
+ % add tunable arrow to a component
+ % relative thickness, relative length, rotation from axis, name of the component
+ \scope
+ \draw
+ \pgfextra{\pgfcirc@set@arrows{tunable}{}{latexslim}
+ \pgfsetlinewidth{#2\pgflinewidth}} [#1]
+ let \p1=($(#5.north east)-(#5.south west)$), \p2=($(#5.east)-(#5.west)$),
+ \n1 = {veclen(\x1,\y1)},
+ \n2 = {atan2(\y2,\x2)} in
+ % node[above]{\n1, \n2}
+ (#5.center) ++({\n2+(#4)}:{-0.5*(\n1)*(#3)}) -- ++({\n2+(#4)}:{(\n1)*(#3)});
+ \endscope
+}
+%%%---------- close: tex/pgfcircutils
+%%%%%%%%%%% Springe nach tex/pgfcircpath
+%%%---------- open: tex/pgfcircpath.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+
+\def\pgf@circ@direction{0.0}
+
+% swap two coordinates
+\def\pgfcirc@swap@coordinates#1#2{%
+ coordinate (pgfcirc@tmp@swap) at (#1)
+ coordinate (#1) at (#2)
+ coordinate (#2) at (pgfcirc@tmp@swap)
+}
+
+% 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}}
+
+% Invert node along path
+\ctikzset{inverted/.is choice}
+\ctikzset{invert value/.initial=1}
+\ctikzset{inverted/true/.code = {\ctikzsetvalof{invert value}{-1}\pgf@circuit@bipole@invertedtrue}}
+\ctikzset{inverted/false/.code = {\ctikzsetvalof{invert value}{1}\pgf@circuit@bipole@invertedfalse}}
+\ctikzset{invert/.style = {/tikz/circuitikz/inverted=true}}
+\newif\ifpgf@circuit@bipole@inverted
+\ctikzset{bipole/inverted/.is if=pgf@circuit@bipole@inverted}
+
+\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}}
+
+% Initialize paths
+\def\pgfcircresetpath{
+ \ctikzset{bipole/name=, bipole/label/name=, bipole/label/position=90, ,bipole/annotation/name=, bipole/annotation/position=-90,
+ bipole/inverted=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 voltageoutsideofsymbol=false,bipole/is strokedsymbol=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
+ }
+}
+
+%
+% expandable IF for the extra nodes (thanks to Henri Menke)
+% see https://chat.stackexchange.com/transcript/message/56560808#56560808
+%
+\def\pgfcirc@if@has@i{%
+ \ifpgfcirc@has@i
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi}
+\def\pgfcirc@if@has@v{%
+ \ifpgfcirc@has@v
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi}
+\def\pgfcirc@if@has@f{%
+ \ifpgfcirc@has@f
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi}
+
+
+
+%% Generic bipole path
+\def\pgf@circ@bipole@path#1#2{
+ % Create a bipole path from the shapes defined with \pgfcircdeclarebipole
+ % or \pgfcircdeclarebipolescaled; the node shapes are named with a "shape"
+ % appended to the main (path-style) name
+ % #1 path-style node name
+ % #2 the argument passed from the to-path structure; don't touch
+ %
+ % Example:
+ % \def\pgf@circ@capacitor@path#1{\pgf@circ@bipole@path{capacitor}{#1}}
+ %
+ \pgf@circ@bipole@path@base{shape}{}{#1}{#2}
+}
+%%
+%% ultra-generic bipole path
+%% I am not sure what the last argument is needed for, but don't touch it or everything explodes
+%%
+\def\pgf@circ@bipole@path@base#1#2#3#4{%
+ %
+ % Create a path-style component based on a node-style shape
+ % #1: postfix to be added to the name path to obtain the main shape name
+ % #2: text to be passed as text to the node
+ % #3: name of the bipole component
+ % #4: this will be filled by the argument of the to-path
+ %
+ \pgfextra{
+ \ctikzset{bipole/kind = #3}
+ \edef\pgf@temp{\ctikzvalof{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 = pgfcirc@#3\pgf@circ@rand} % create it (re-usage should not create problem, but...)
+ \edef\pgfcirc@a@prefix{pgfcirc}% do not pollute the namespace for nothing
+ \else
+ \edef\pgfcirc@a@prefix{\ctikzvalof{bipole/name}}% for exporting v-i-f anchors
+ \fi
+ }
+ % save start and stop values
+ % notice that we DO NOT MOVE the path position at all!
+ coordinate (\ctikzvalof{bipole/name}start) at (\tikztostart)
+ coordinate (\ctikzvalof{bipole/name}end) at (\tikztotarget)
+ \pgfextra{
+ % find the direction (angle) of the path
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}}
+ {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}}
+ \edef\pgf@circ@direction{\pgfmathresult}
+ % the global macro pgfcirc@whatever-direction is accessible as \ctikzgetdirection{whatever}
+ % this gives access to the element path direction
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-direction\endcsname{\pgf@circ@direction}
+ }
+ % position the component in the middle of the path. We DO NOT MOVE the current position!
+ node[#3#1, rotate=\pgf@circ@direction, yscale=\ctikzvalof{mirror value},
+ xscale=\ctikzvalof{invert value}] (\ctikzvalof{bipole/name})
+ at ($(\tikztostart) ! .5 ! (\tikztotarget)$) {#2}
+ % set start and end labels
+ \ifpgf@circuit@bipole@inverted
+ \ifcsname pgf@anchor@#3#1@pathstart\endcsname%if special path-anchors are defined, use them!
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.pathend)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.pathstart)
+ \else
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.right)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.left)
+ \fi
+ \else
+ \ifcsname pgf@anchor@#3#1@pathstart\endcsname%if special path-anchors are defined, use them!
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.pathstart)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.pathend)
+ \else
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.left)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.right)
+ \fi
+ \fi
+ % draw the leads unless it's an open circuit
+ % stop at the component
+ \pgfextra{\def\pgf@temp{open}\def\pgf@circ@temp{#3}}
+ \ifx\pgf@temp\pgf@circ@temp % if it is an open do nothing
+ \else
+ % it is important to start the path with -- to have correct line joins!
+ -- (pgfcirc@anchorstartnode)
+ \fi
+ % Add all the "ornaments": labels, annotations, voltages, currents and flows
+ \drawpoles
+ \pgf@circ@ifkeyempty{bipole/label/name}\else\pgf@circ@drawlabels{label}\fi
+ \pgf@circ@ifkeyempty{bipole/annotation/name}\else\pgf@circ@drawlabels{annotation}\fi
+ % the following must be made in their own path scope to avoid crash in TikZ 3.1.8/3.1.8a
+ % it should be logically safe for older version too --- even if TikZ reverted the change
+ % use explandable ifs too, thanks to Henri Menke
+ {\pgfcirc@if@has@v{\pgf@circ@drawvoltage}{}}%
+ {\pgfcirc@if@has@i{\pgf@circ@drawcurrent}{}}%
+ {\pgfcirc@if@has@f{\pgf@circ@drawflow}{}}%
+ % finish the path from the component to the final target
+ % you never know --- re-set \pgf@temp to detect open
+ \pgfextra{\def\pgf@temp{open}\def\pgf@circ@temp{#3}}
+ \ifx\pgf@temp\pgf@circ@temp % if it is an open do nothing
+ (\tikztotarget)
+ \else
+ (pgfcirc@anchorendnode) -- (\tikztotarget)
+ \fi
+ % reset internal circuit keys
+ \pgfextra{\pgfcircresetpath}
+ %draw pending nodes an path
+ \tikztonodes
+}
+
+%% Macros for path and style activation for bipoles or path-style
+
+\def\comnpatname{\ifpgf@circuit@compat *\else\fi}
+\def\compattikzset#1{%
+ % \typeout{BIPOLEDEF:\space \detokenize{#1}}%
+ \tikzset{\comnpatname#1}}
+%
+% this is used for components that are mainly node-style but have a path-style form
+%
+\def\pgfcirc@node@to@path#1#2#3{%
+ % add a path-style component based on a node-style one without mangling the name
+ % of the shape.
+ % #1: node-type shape name (existing)
+ % #2: path-type name (to be created)
+ % #3: additional options to add to the path style
+ %
+ \expandafter\def\csname pgf@circ@#1@path\endcsname##1{\pgf@circ@bipole@path@base{}{##1}{#1}{}}%
+ \compattikzset{#2/.style = {\circuitikzbasekey,
+ /tikz/to path=\csname pgf@circ@#1@path\endcsname{##1},
+ #3}}%
+ \ctikzset{bipoles/#1/height/.initial=1}%
+}
+%
+% this one is for normal definition: path to style, directly
+% the first parameter (#1) here is l,v,i (l=..., v=..., i=...)
+% the last parameter are options to be inserted in the "to path" definition
+%
+\def\pgfcirc@path@to@style#1#2#3#4{% using #1 as label, assign \pgf@circ@#2@path to style #3
+ \compattikzset{#3/.style={\circuitikzbasekey, #4, /tikz/to path=\csname pgf@circ@#2@path\endcsname, #1={##1}}}%
+}
+% this one create a alias style from a node definition
+\def\pgfcirc@node@to@style#1#2#3#4{% using #1 as label, assign \pgf@circ@bipole@path{#2} to style #3
+ \compattikzset{#3/.style={\circuitikzbasekey, #4, /tikz/to path=\pgf@circ@bipole@path{#2}, #1={##1}}}%
+}
+% this create an alias style
+\def\pgfcirc@style@to@style#1#2{% alias style #1 to style #2
+ \compattikzset{#2/.style={\comnpatname #1={##1}}}%
+}
+% this create an alias style, changing the labelling
+\def\pgfcirc@style@to@style@label#1#2#3{% alias style #1 to style #2
+ \compattikzset{#2/.style={\comnpatname #1, #3={##1}}}%
+}
+% create a bipole
+\def\pgfcirc@activate@bipole#1#2#3#4{% path name, base node name, style name
+ \expandafter\def\csname pgf@circ@#2@path\endcsname##1{\pgf@circ@bipole@path{#3}{##1}}%
+ \pgfcirc@path@to@style{#1}{#2}{#4}{}% no options here, let's see
+}
+\def\pgfcirc@activate@bipole@simple#1#2{\pgfcirc@activate@bipole{#1}{#2}{#2}{#2}}
+% create a bipole with options
+\def\pgfcirc@activate@bipole@opt#1#2#3#4#5{% path name, base node name, style name
+ \expandafter\def\csname pgf@circ@#2@path\endcsname##1{\pgf@circ@bipole@path{#3}{##1}}%
+ \pgfcirc@path@to@style{#1}{#2}{#4}{#5}% no options here, let's see
+}
+\def\pgfcirc@activate@bipole@simple@opt#1#2#3{\pgfcirc@activate@bipole@opt{#1}{#2}{#2}{#2}{#3}}
+
+
+%% New system, for simple object
+%% \pgfcirc@activate@bipole@simple{l}{mass}
+%% New system, different names
+%% The old system is the following
+%% 1 - define just the pgf@circ@path@whatever#1
+%% (see for example the variable one)
+%% 2 - set the style
+%% \compattikzset{resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@resistor@path, l={#1}}}
+
+%% Path definition with the new mechanism have been moved to where the nodes
+%% are defined.
+
+%% Handling of terminals%<<<
+
+\ctikzset{bipole/nodes/.is family}
+\ctikzset{bipole/nodes/left/.initial=none}
+\ctikzset{bipole/nodes/right/.initial=none}
+\tikzset{bipole nodes/.style n args={2}{%
+ \circuitikzbasekey/bipole/nodes/left=#1,
+ \circuitikzbasekey/bipole/nodes/right=#2
+ }
+}
+
+%% Easily usable styles
+
+\ctikzset{o-o/.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{-o/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{o-/.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{*-o/.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{o-*/.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{d-o/.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{o-d/.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+\ctikzset{*-/.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{-*/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{d-/.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{-d/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+\ctikzset{*-*/.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{d-*/.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{*-d/.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+\ctikzset{d-d/.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+
+% rectjoinfill workarounds
+
+\ctikzset{.-/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{.-*/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{.-o/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{.-d/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+\ctikzset{-./.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+\ctikzset{o-./.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+\ctikzset{*-./.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+\ctikzset{d-./.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+\ctikzset{.-./.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+
+\tikzset{reversed/.style = {\circuitikzbasekey/bipole/inverted=true}}
+
+\def\drawpoles{
+ \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{bipole/nodes/left}} \def\pgf@temp{none}}
+ \ifx\pgf@temp\pgf@circ@temp\else(\tikztostart) node[\pgf@circ@temp] {}\fi
+ \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{bipole/nodes/right}} }
+ \ifx\pgf@temp\pgf@circ@temp\else(\tikztotarget) node[\pgf@circ@temp] {}\fi
+}
+% %>>>
+
+%%
+%% Definition of path for transistors
+%%
+% Transistor like bipoles
+
+\def\pgf@circ@trans@path#1#2{
+ \pgfextra{
+ \edef\pgf@temp{\ctikzvalof{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@inverted
+ (\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{
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}}
+ {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}}
+ \pgfmathadd{\pgfmathresult}{-90}
+ \pgfmathround{\pgfmathresult}
+ \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}}
+ \ifcsname pgf@anchor@#1@pathstart\endcsname%if special path-anchors are defined, use them!
+ (\ctikzvalof{bipole/name}start.center) --(\ctikzvalof{bipole/name}.pathstart)
+ (\ctikzvalof{bipole/name}.pathend) -- (\ctikzvalof{bipole/name}end.center)
+ \else
+ (\ctikzvalof{bipole/name}start.center) --(\ctikzvalof{bipole/name}.left)
+ (\ctikzvalof{bipole/name}.right) -- (\ctikzvalof{bipole/name}end.center)
+ \fi
+ \drawpoles
+ \pgfextra{
+ \pgfcircresetpath
+ }
+ (\tikztotarget) \tikztonodes % and go on!
+}
+
+\def\pgf@circ@definetranspath#1{
+ \compattikzset{T#1/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@trans@path{#1}{}, l=##1}}
+}
+
+%
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircpath
+
+%%%%%%%%%%% Springe nach tex/pgfcircshapes
+%%%---------- open: tex/pgfcircshapes.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Other shapes
+
+%% Nothing
+
+\pgfdeclareshape{emptyshape}{
+ \savedanchor{\northeast}{%
+ \pgf@x=.5\wd\pgfnodeparttextbox%
+ \pgf@y=.5\ht\pgfnodeparttextbox%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+}
+%
+% Provision for changing opacity. Only expert use, see the manual.
+%
+\ctikzset{poles/open fill opacity/.initial=1.0}% better not touch it
+\tikzset{open poles opacity/.code={%
+ \ctikzset{poles/open fill opacity=#1}%
+}}
+\ctikzset{poles/full fill opacity/.initial=1.0}% better not touch it
+\tikzset{full poles opacity/.code={%
+ \ctikzset{poles/full fill opacity=#1}%
+}}
+
+%
+% Provision for changing default background
+%
+
+\ctikzset{open poles fill/.initial={white}}
+
+%% Full terminal
+
+\pgfdeclareshape{circ}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{nodes width}*\pgf@circ@Rlen}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfpathcircle{\pgfpointorigin}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/full fill opacity}}% normally 1.0
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% Empty round terminal
+
+\pgfdeclareshape{ocirc}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{nodes width}*\pgf@circ@Rlen}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfpathcircle{\pgfpointorigin}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/open fill opacity}}% normally 1.0
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{\ctikzvalof{open poles fill}}
+ % ...but override it if the class is defined!
+ % note that this element has no class, but will inherit it when used
+ % into another component
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \fi
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% Diamond terminal
+
+\pgfdeclareshape{diamondpole}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@y}{sqrt(2)*\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ % \typeout{IN\space X:\the\pgf@x\space Y:\the\pgf@y}
+ \pgfmathsetmacro{\@@switchx}{ifthenelse(\pgf@x>0,1,-1)}
+ \pgfmathsetmacro{\@@switchy}{ifthenelse(\pgf@y>0,1,-1)}
+ \pgfmathsetlength{\pgf@xa}{abs(\pgf@x)}
+ \pgfmathsetlength{\pgf@ya}{abs(\pgf@y)}
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ % \typeout{MID\space X:\the\pgf@xa\space Y:\the\pgf@ya\space L:\the\pgf@circ@res@up}
+ % \typeout{MID\space SX:\@@switchx\space SY:\@@switchy}
+ \pgfpointintersectionoflines
+ {\pgfpointorigin}{\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfqpoint{0pt}{\pgf@circ@res@up}}{\pgfqpoint{\pgf@circ@res@up}{0pt}}
+ % \typeout{CROSS \space X:\the\pgf@x\space Y:\the\pgf@y}
+ \pgf@x=\@@switchx\pgf@x
+ \pgf@y=\@@switchy\pgf@y
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgftransformrotate{45}
+ \pgfpathrectanglecorners
+ {\pgfpoint{-\pgf@circ@res@temp}{-\pgf@circ@res@temp}}
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/full fill opacity}}% normally 1.0
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% Diamond terminal, unfilled
+
+\pgfdeclareshape{odiamondpole}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@y}{sqrt(2)*\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ % \typeout{IN\space X:\the\pgf@x\space Y:\the\pgf@y}
+ \pgfmathsetmacro{\@@switchx}{ifthenelse(\pgf@x>0,1,-1)}
+ \pgfmathsetmacro{\@@switchy}{ifthenelse(\pgf@y>0,1,-1)}
+ \pgfmathsetlength{\pgf@xa}{abs(\pgf@x)}
+ \pgfmathsetlength{\pgf@ya}{abs(\pgf@y)}
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ % \typeout{MID\space X:\the\pgf@xa\space Y:\the\pgf@ya\space L:\the\pgf@circ@res@up}
+ % \typeout{MID\space SX:\@@switchx\space SY:\@@switchy}
+ \pgfpointintersectionoflines
+ {\pgfpointorigin}{\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfqpoint{0pt}{\pgf@circ@res@up}}{\pgfqpoint{\pgf@circ@res@up}{0pt}}
+ % \typeout{CROSS \space X:\the\pgf@x\space Y:\the\pgf@y}
+ \pgf@x=\@@switchx\pgf@x
+ \pgf@y=\@@switchy\pgf@y
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgftransformrotate{45}
+ \pgfpathrectanglecorners
+ {\pgfpoint{-\pgf@circ@res@temp}{-\pgf@circ@res@temp}}
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/open fill opacity}}% normally 1.0
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{\ctikzvalof{open poles fill}}
+ % ...but override it if the class is defined!
+ % note that this element has no class, but will inherit it when used
+ % into another component
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \fi
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% square terminal, filled
+
+\pgfdeclareshape{squarepole}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@y}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpointborderrectangle
+ {\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfqpoint{\pgf@circ@res@up}{\pgf@circ@res@up}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgfpathrectanglecorners
+ {\pgfpoint{-\pgf@circ@res@temp}{-\pgf@circ@res@temp}}
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/full fill opacity}}% normally 1.0
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+%% square terminal, unfilled
+
+\pgfdeclareshape{osquarepole}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@y}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpointborderrectangle
+ {\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfqpoint{\pgf@circ@res@up}{\pgf@circ@res@up}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgfpathrectanglecorners
+ {\pgfpoint{-\pgf@circ@res@temp}{-\pgf@circ@res@temp}}
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/open fill opacity}}% normally 1.0
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{\ctikzvalof{open poles fill}}
+ % ...but override it if the class is defined!
+ % note that this element has no class, but will inherit it when used
+ % into another component
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \fi
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+% BNC connector
+
+\pgfdeclareshape{bnc}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ % BNC size is 2.5 times the size of the internal "ocirc"
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgf@y=2.5\pgf@y
+ \pgf@x=-\pgf@y
+ }
+ % center is on the opening
+ \anchor{center}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{zero}{ \pgfpointorigin }
+ \anchor{hot}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{shield}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ % geo-anchors
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{right}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{left}{ \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 }
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{2.5*\ctikzvalof{nodes width}*\pgf@circ@Rlen}{2.5*\ctikzvalof{nodes width}*\pgf@circ@Rlen}}
+ }
+ \behindforegroundpath{
+ \pgfextracty{\pgf@circ@res@other}{\northwest}
+ \pgf@circ@res@step=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgfsetcolor{\ctikzvalof{color}}
+ % external circle
+ \pgfscope
+ % clipping path: first a rectangle bigger then the shape
+ % to avoid problems with the line thickness
+ \pgfpathrectanglecorners{\pgfpoint{-2\pgf@circ@res@other}{-2\pgf@circ@res@other}}
+ {\pgfpoint{2\pgf@circ@res@other}{2\pgf@circ@res@other}}
+ % next the opening to the right
+ \pgfpathrectanglecorners{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ {\pgfpoint{2\pgf@circ@res@other}{\pgf@circ@res@step}}
+ % do the difference and clip before drawing
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfpathcircle{\pgfpointorigin}{\pgf@circ@res@other}
+ \pgfusepath{draw}
+ \endpgfscope
+ % internal circle
+ \pgfpathcircle{\pgfpointorigin}{\pgf@circ@res@step}
+ \pgf@circ@draworfill
+ % and the contact line to the right
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+%% Fill for correct rectangular joins
+
+\pgfdeclareshape{rectjoinfill}{
+ \savedanchor{\northeast}{%
+ \pgf@x=.5\pgflinewidth%
+ \pgf@y=.5\pgflinewidth%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfpathrectanglecorners
+ {\pgfpoint{0}{.5\pgflinewidth}}
+ {\pgfpoint{0}{-.5\pgflinewidth}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% transistor arrow
+
+\def\pgf@circ@find@linescale{
+ % find the scale inverse of the scale factor: line width do not scale
+ % with scale=..., transform shape so we have to counteract it.
+ \iftikz@fullytransformed % this is true if `transform shape` is active
+ % from @Circumscribe https://tex.stackexchange.com/a/474035/38080
+ % Note that this trick is not working inside a `spy` environment...
+ \pgfgettransformentries{\scaleA}{\scaleB}{\scaleC}{\scaleD}{\whatevs}{\whatevs}%
+ \pgfmathsetmacro{\@@factor}{1.0/sqrt(abs(\scaleA*\scaleD-\scaleB*\scaleC))}%
+ \else
+ \pgfmathsetmacro{\@@factor}{1.0}
+ \fi
+}
+
+\pgfdeclareshape{trarrow}{%
+ % this arrow is only filled but grows with the linewidth, more or less
+ % like currarrow do
+ \savedanchor{\northeast}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \pgf@circ@find@linescale
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgfpoint{0.7*\pgf@circ@res@step +0.5*\@@factor*\pgflinewidth}
+ {0.8*\pgf@circ@res@step+0.7593*\@@factor*\pgflinewidth}
+ }
+ % The arrow size should be more or less the same of a currarrow, which is
+ % both filled and stroke, for backward output compatibility (more or less)
+ %
+ % angle \beta W is \pgf@circ@Rlen/\ctikzvalof{current arrow scale}
+ % |-\__ currarrow as the tip at (W,0)
+ % | | and the upper tail at (-0.7*W, 0.8*W)
+ % | \__ it then "overshoot" do to the linew width L
+ % | \__ xangle \alpha
+ % ---0------->
+ %
+ % \beta = atan(0.7/0.8) \alpha=atan(0.8/1.7)
+ % tip overshoot is (L/2)/sin(\alpha) = 1.743*L only in x direction
+ % tail overshoot is -(L/2) in x, and (L/2)/sin(\beta) = 0.7539*L in y
+ %
+ \savedanchor{\northwest}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@circ@find@linescale
+ \pgfpoint{-0.7*\pgf@circ@res@step -0.5*\@@factor*\pgflinewidth}
+ {0.8*\pgf@circ@res@step+0.7593*\@@factor*\pgflinewidth}
+ }
+ \savedanchor{\tip}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@circ@find@linescale
+ \pgfpoint{\pgf@circ@res@step + 1.743*\@@factor*\pgflinewidth}{0pt}
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{tip}{
+ \tip
+ }
+ \anchor{btip}{% this anchor is behind the tip of half a linewidth
+ \tip
+ \pgf@circ@find@linescale
+ \pgf@circ@res@temp=\@@factor\pgflinewidth
+ \advance\pgf@x by -.5\pgf@circ@res@temp
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \northwest
+ \pgf@circ@res@up=\pgf@y
+ \pgf@circ@res@left=\pgf@x
+ \tip
+ \pgf@circ@res@step = \pgf@x
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{fill} % just fill
+ \endpgfscope
+ }
+}
+
+%% Current arrow
+
+%% we need a phantom version of this shape for advanced v-i-f
+%% use strange names to keep ot private
+\newif\ifpgfcirc@really@draw@currarrow\pgfcirc@really@draw@currarrowtrue
+\ctikzset{phantom@currarrow/.code=\pgfcirc@really@draw@currarrowfalse}
+\ctikzset{normal@currarrow/.code=\pgfcirc@really@draw@currarrowtrue}
+
+\pgfdeclareshape{currarrow}{
+ \savedanchor{\northeast}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@x=.5\pgf@circ@res@step
+ \pgf@y=\pgf@x%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{tip}{
+ \pgfpointorigin
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@x =\pgf@circ@res@step
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \ifpgfcirc@really@draw@currarrow
+ \pgf@circ@reset@arrows@rounded
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+
+ \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}}
+ \pgfpathclose
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{draw,fill}
+ \fi
+ \endpgfscope
+ }
+}
+
+%% Flow arrow
+%% we need a phantom version of this shape for advanced v-i-f
+%% use strange names to keep ot private
+\newif\ifpgfcirc@really@draw@flowarrow\pgfcirc@really@draw@flowarrowtrue
+\ctikzset{phantom@flowarrow/.code=\pgfcirc@really@draw@flowarrowfalse}
+\ctikzset{normal@flowarrow/.code=\pgfcirc@really@draw@vlowarrowtrue}
+
+\pgfdeclareshape{flowarrow}{
+ \savedanchor{\northeast}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@y=.5\pgf@circ@res@step
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 4
+ \pgf@x=\pgf@circ@res@step%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{text}{% text centered above
+ \pgfpointorigin
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox}
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{tip}{
+ \pgfpointorigin
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@x =\pgf@circ@res@step
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \ifpgfcirc@really@draw@flowarrow
+ \pgf@circ@reset@arrows@rounded
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 4
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{draw}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfnode{currarrow}{tip}{}{}{\pgfusepath{fill}}
+ \fi
+ \endpgfscope
+ }
+}
+
+%% Input arrow
+
+\pgfdeclareshape{inputarrow}{
+ \savedanchor{\northeast}{% this is really not northeast, really -northwest
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@y=.5\pgf@circ@res@step
+ \pgf@x=1.7\pgf@circ@res@step
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax\pgf@x=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast\pgf@x=0cm\relax}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y\pgf@x=0cm\relax}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \savedanchor{\tip}{
+ \pgfpointorigin
+ }
+ \anchor{center}{
+ \tip
+ }
+ \anchor{tip}{
+ \tip
+ }
+ \behindforegroundpath{
+
+ \pgfscope
+ \pgf@circ@reset@arrows@rounded
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \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}}
+ \pgfpathclose
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{fill}
+ \endpgfscope
+ }
+}
+
+
+%% box
+
+\pgfdeclareshape{box}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \behindforegroundpath{
+
+ \pgfscope
+ \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@Rlen
+ \pgf@circ@res@step = 0.5\pgf@circ@res@step
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@step}}{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+%% box scaled with blocks
+
+\pgfdeclareshape{blockbox}{
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{blocks/scale}\pgf@circ@Rlen}}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \behindforegroundpath{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{blocks/scale}\pgf@circ@Rlen}
+ \pgfscope
+ \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@step = 0.5\pgf@circ@res@step
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@step}}{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+% full nodes for wire crossing
+
+\pgfdeclareshape{jump crossing}
+{
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{bipoles/crossing/size}\pgf@circ@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \behindbackgroundpath{
+ \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
+ % horizontal jumper
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{0pt}}
+ \pgfpatharc{0}{-180}{0.4*\pgf@circ@res@left}
+ \pgfsetbeveljoin
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ % vertical, broken path
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{0.5\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{0pt}{0.3\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ }
+}
+\pgfdeclareshape{plain crossing}
+{
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{bipoles/crossing/size}\pgf@circ@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \behindbackgroundpath{
+ \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
+ % horizontal jumper
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ % vertical, broken path
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{0.1\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{0pt}{0.1\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ }
+}
+
+%%%---------- close: tex/pgfcircshapes
+%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
+%%%---------- open: tex/pgfcircmonopoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Monopoles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%
+%% Grounds
+%%%%%%%%%%%%%
+
+
+% grounds and power supplies%<<<1
+
+\ctikzset{monopoles/.is family}
+\ctikzset{monopoles/ground/width/.initial=.25}
+\ctikzset{monopoles/ground/connectionthickness/.initial=1}
+\ctikzset{monopoles/ground/thickness/.initial=2}
+\ctikzset{monopoles/rground/thickness/.initial=2}
+\ctikzset{monopoles/tground/thickness/.initial=3}
+\ctikzset{monopoles/vcc/width/.initial=.2}
+\ctikzset{monopoles/vcc/arrow/.initial=legacy}
+\ctikzset{monopoles/vee/arrow/.initial=legacy}
+\ctikzset{monopoles/match/width/.initial=.4}
+\ctikzset{monopoles/chassis/width/.initial=.25}
+\ctikzset{monopoles/alternative chassis/width/.initial=.25}
+\ctikzset{monopoles/equipotentiality/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/bareantenna/width/.initial=.25}
+\ctikzset{monopoles/bareantenna/label/xanchor/.initial=1}
+\ctikzset{monopoles/bareantenna/label/yanchor/.initial=0.5}
+\ctikzset{monopoles/waves/width/.initial=0.5}%
+%>>>
+
+%% Node shapes for grounds and power supply%<<<
+
+%% Ground symbol
+% #1 -> name
+% #2 -> width
+% #3 -> depth
+% #4 -> code
+\long\def\pgf@circ@declareground#1#2#3#4{
+ \pgfdeclareshape{#1}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{grounds}} % class of these components
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\southeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen
+ \pgf@x=#2\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen
+ \pgf@y=-#3\pgf@y
+ }
+ \anchor{north}{\pgfpointorigin}
+ \anchor{north east}{\southeast\pgf@y=0pt\relax}
+ \anchor{east}{\southeast\pgf@y=.5\pgf@y}
+ \anchor{south east}{\southeast}
+ \anchor{south}{\southeast\pgf@x=0pt\relax}
+ \anchor{south west}{\southeast\pgf@x=-\pgf@x}
+ \anchor{west}{\southeast\pgf@y=.5\pgf@y\pgf@x=-\pgf@x}
+ \anchor{north west}{\southeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\pgfpointorigin}
+ \anchor{center}{\pgfpointorigin}
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ #4
+ \endpgfscope
+ }
+ }
+}
+
+
+\pgf@circ@declareground{ground}{0.6}{1.6}{
+ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1.2\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+\pgf@circ@declareground{tlground}{0.6}{0.4}{
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{0pt}}
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-0.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-0.2\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-0.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-0.4\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+\pgf@circ@declareground{rground}{0.6}{1}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{monopoles/rground}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+\pgf@circ@declareground{tground}{0.6}{0}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{0pt}}
+ \pgfusepath{draw}
+}
+
+\pgf@circ@declareground{sground}{0.6}{1.8}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0}{-1.8\pgf@circ@res@step}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+}
+
+% noiseless ground
+\pgf@circ@declareground{nground}{0.9}{1.6}{
+ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1.2\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{0.9\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfpatharc{0}{180}{0.9\pgf@circ@res@step}
+ \pgfusepath{draw}
+}
+
+% protective ground
+\pgf@circ@declareground{pground}{0.9}{1.8}{
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{0pt}{-0.9\pgf@circ@res@step}}{0.9\pgf@circ@res@step}
+ \pgf@circ@draworfill
+ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+% chassis ground
+\pgf@circ@declareground{cground}{1}{2}{
+ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1.5\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-1.00\pgf@circ@res@step}{-2.10\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.75\pgf@circ@res@step}{-1.50\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{ 0.75\pgf@circ@res@step}{-1.50\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{ 0.50\pgf@circ@res@step}{-2.10\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{ 0.00\pgf@circ@res@step}{-1.50\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.25\pgf@circ@res@step}{-2.10\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+% Contributed by @fotesan https://github.com/fotesan
+% european ground
+\pgf@circ@declareground{eground}{1.1}{1.7}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-1.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-.6\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-.1\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+\pgf@circ@declareground{eground2}{1.1}{1.7}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-1.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.45\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+%%%%%%%%%%%%%%%%%%
+%% Power supplies
+%%%%%%%%%%%%%%%%%%
+
+% Vcc
+\pgfdeclareshape{vcc}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{power supplies}} % class of these components
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \saveddimen{\scaledwidth}{% thanks to @Schrödinger's cat on https://tex.stackexchange.com/a/506249/38080
+ \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}%
+ \pgfmathsetmacro{\gscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed
+ \pgfmathsetlength{\pgf@x}{(\ctikzvalof{\ctikzclass/scale}*\gscale*\ctikzvalof{monopoles/vcc/width})*\pgf@circ@Rlen}%
+ }
+ \savedanchor{\northeast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@circ@res@step
+ \pgf@y=3\pgf@x%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y\relax}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{west}{\northeast\pgf@y=0.5\pgf@y\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{center}{\pgfpointorigin}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\pgfpointorigin}
+ \anchor{text}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgfpathmoveto{\pgfpoint{-.5\wd\pgfnodeparttextbox}{2\pgf@circ@res@step+2\ht\pgfnodeparttextbox}}
+ \pgfpathmoveto{\pgfpoint{.5\wd\pgfnodeparttextbox}{2\pgf@circ@res@step+2\ht\pgfnodeparttextbox}}
+ \pgf@x=0pt
+ \pgf@y=2\pgf@circ@res@step
+ \advance \pgf@y by 0.5\ht\pgfnodeparttextbox
+ \pgf@x=-.5\wd\pgfnodeparttextbox
+ }
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \edef\pgf@circ@temp{\ctikzvalof{monopoles/vcc/arrow}}\edef\pgf@temp{legacy}
+ \ifx\pgf@temp\pgf@circ@temp
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ \else
+ \pgfsetarrowsend{\pgf@circ@temp}
+ \fi
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{1.5\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+% Vee
+\pgfdeclareshape{vee}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{power supplies}} % class of these components
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \saveddimen{\scaledwidth}{% thanks to @Schrödinger's cat on https://tex.stackexchange.com/a/506249/38080
+ \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}%
+ \pgfmathsetmacro{\gscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed
+ \pgfmathsetlength{\pgf@x}{(\ctikzvalof{\ctikzclass/scale}*\gscale*\ctikzvalof{monopoles/vcc/width})*\pgf@circ@Rlen}%
+ }
+ \savedanchor{\northeast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@circ@res@step
+ \pgf@y=-3\pgf@x%
+ }
+ \anchor{south}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y\relax}
+ \anchor{north}{\pgfpointorigin}
+ \anchor{west}{\northeast\pgf@y=0.5\pgf@y\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast}
+ \anchor{south west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast\pgf@y=0pt\relax}
+ \anchor{north west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{center}{\pgfpointorigin}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\pgfpointorigin}
+ \anchor{text}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgfpathmoveto{\pgfpoint{-.5\wd\pgfnodeparttextbox}{-2\pgf@circ@res@step-2\ht\pgfnodeparttextbox}}
+ \pgfpathmoveto{\pgfpoint{.5\wd\pgfnodeparttextbox}{-2\pgf@circ@res@step-2\ht\pgfnodeparttextbox}}
+ \pgf@x=0pt
+ \pgf@y=-2\pgf@circ@res@step
+ \advance \pgf@y by -1.5\ht\pgfnodeparttextbox
+ \pgf@x=-.5\wd\pgfnodeparttextbox
+ }
+
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \edef\pgf@circ@temp{\ctikzvalof{monopoles/vee/arrow}}\edef\pgf@temp{legacy}
+ \ifx\pgf@temp\pgf@circ@temp
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ \else
+ \pgfsetarrowsend{\pgf@circ@temp}
+ \fi
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1.5\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}% %>>>
+
+
+%% This are strange, and probably wrong FIXME
+% \compattikzset{vdd/.style = {\comnpatname vcc = #1}}
+% \compattikzset{vss/.style = {\comnpatname vee = #1}}
+\pgfcirc@style@to@style{vcc}{vdd}
+\pgfcirc@style@to@style{vee}{vss}
+
+
+%%%%%%%%%%%%%%
+%% RF bipoles and monopoles
+%%%%%%%%%%%%%%
+
+%% RF bipoles and monopoles settings %<<<1
+\ctikzset{bipoles/mstline/height/.initial=0.3}
+\ctikzset{bipoles/mstline/width/.initial=1.2}
+\pgfkeys{/tikz/mstlinelen/.add code={}{\ctikzset{bipoles/mstline/width=#1}}}
+\ctikzset{monopoles/msport/width/.initial=.5}
+\ctikzset{monopoles/msrstub/height/.initial=1.0}
+\ctikzset{monopoles/msrstub/width/.initial=0.6}%
+%>>>
+
+%% Node shapes for RF bipoles%<<<
+
+\pgfcircdeclarebipolescaled{RF}
+{}
+{\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
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \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}}
+ \pgfpatharc{-90}{90}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpatharc{-90}{90}{-\pgf@circ@res@step and -\pgf@circ@res@up}
+ \pgfusepath{stroke}
+ \endpgfscope
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{stroke}
+}
+
+% microstrip transmission line
+\pgfcircdeclarebipolescaled{RF}
+{}
+{\ctikzvalof{bipoles/mstline/height}}
+{mstline}
+{\ctikzvalof{bipoles/mstline/height}}
+{\ctikzvalof{bipoles/mstline/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+}% %>>>
+
+%% Path definitions for RF path objects%<<<
+\pgfcirc@activate@bipole@simple{l}{mstline}
+\pgfcirc@activate@bipole@simple{l}{tline}
+\pgfcirc@style@to@style{tline}{transmission line}
+\pgfcirc@style@to@style{tline}{TL}
+% %>>>
+
+%% Node shapes for RF monopoles%<<<
+
+% Legacy tlinestub
+% Contributed by Leonardo Azzinnari
+\pgfdeclareshape{tlinestub}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\northeast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tline/width} \pgf@circ@scaled@Rlen
+ \pgf@x=1.2\pgf@circ@res@step
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tline/width} \pgf@circ@scaled@Rlen
+ \pgf@y=.2\pgf@circ@res@step%
+ }
+ % the center is on the left side of the shape for facility of usage
+ \anchor{north}{\northeast\pgf@x=0.5\pgf@x\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0.5\pgf@x\relax}
+ \anchor{west}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=0cm\relax}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@x=0cm\pgf@y=-\pgf@y}
+ \anchor{center}{\pgfpointorigin}
+ % this is not exact, but it's better than nothing
+ \anchor{text}{\northeast\pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpoint{\dimexpr-.5\wd\pgfnodeparttextbox+.8\pgf@xa}
+ {\dimexpr-.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@ya}}
+ \behindforegroundpath{
+ \pgfstartlinewidth=\pgflinewidth
+
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{bipoles/tline/width}\pgf@circ@scaled@Rlen
+
+ \pgfscope
+ \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}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpatharc{90}{-90}{-0.125\pgf@circ@res@step and -0.25\pgf@circ@res@step}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{0.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}
+ \pgfusepath{stroke}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0pt}}
+ \pgfusepath{draw}
+ }
+}
+
+%% New antennas without tails
+
+% main body of antennas
+\def\pgf@circ@antennabody{%
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{2\pgf@circ@res@step}}
+ \pgfsetbeveljoin
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{2\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+% Waves for the antennas.
+\def\pgf@circ@antennawaves{%
+ \pgfscope
+ % define a triangle for clipping the waves
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{4.2\pgf@circ@res@step}{3\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{4.2\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathclose
+ \pgfusepath{clip}
+ % ...and build the waves as clipped circles
+ \pgf@circ@count@a=8\pgf@circ@res@other=0.5\pgf@circ@res@step
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>2
+ \pgfpathcircle{\pgfpoint{0pt}{\pgf@circ@res@step}}{\the\pgf@circ@count@a*\pgf@circ@res@other}
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% additional shape with the waves
+\pgfdeclareshape{waves}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/waves/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step
+ \pgf@y=\pgf@circ@res@step
+ }
+ \anchor{text}{
+ \northeast
+ \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0pt}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0pt}
+ \anchor{bottom}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{north east}{\northeast}
+ \anchor{east}{\northeast\pgf@y=0pt}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0pt}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/waves/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@step=0.5\pgf@circ@res@step
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfscope
+ % define a triangle for clipping the waves
+ \pgfpathmoveto{\pgfpoint{-2\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{2.1\pgf@circ@res@step}{2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{2.1\pgf@circ@res@step}{-2\pgf@circ@res@step}}
+ \pgfpathclose
+ \pgfusepath{clip}
+ % ...and build the waves as clipped circles
+ \c@pgf@counta=8\pgf@circ@res@other=0.5\pgf@circ@res@step
+ \pgfmathloop%
+ \ifnum\c@pgf@counta>1
+ \pgfpathcircle{\pgfpoint{-2\pgf@circ@res@step}{0pt}}{\the\c@pgf@counta*\pgf@circ@res@other}
+ \advance\c@pgf@counta-1\relax%
+ \repeatpgfmathloop
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+% the three types of antennas: simple, TX, RX. Notice that you can flip them...
+
+\pgfdeclareshape{bareantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step
+ \pgf@y=2\pgf@circ@res@step
+ }
+ \anchor{text}{
+ \northeast
+ \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y
+ \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{bottom}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgf@circ@antennabody
+ }
+}
+
+\pgfdeclareshape{bareTXantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step
+ \pgf@y=2\pgf@circ@res@step
+ }
+ \savedanchor{\savedwaves}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=4.2\pgf@circ@res@step
+ \pgf@y=\pgf@circ@res@step
+ }
+ \anchor{text}{
+ \northeast
+ \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y
+ \pgf@x=\dimexpr-\pgf@x-\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{waves}{\savedwaves}
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{bottom}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgf@circ@antennabody
+ \pgf@circ@antennawaves
+ }
+}
+
+\pgfdeclareshape{bareRXantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step
+ \pgf@y=2\pgf@circ@res@step
+ }
+ \savedanchor{\savedwaves}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-4.2\pgf@circ@res@step
+ \pgf@y=\pgf@circ@res@step
+ }
+ \anchor{text}{
+ \northeast
+ \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y
+ \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{waves}{\savedwaves}
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{bottom}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgf@circ@antennabody
+ \pgftransformxshift{-5.2\pgf@circ@res@step}
+ \pgf@circ@antennawaves
+ }
+}
+
+%%% dynodes (see https://github.com/circuitikz/circuitikz/issues/469)
+\ctikzset{monopoles/dynode/width/.initial=0.4}
+\ctikzset{monopoles/dynode/height/.initial=0.8}
+\ctikzset{monopoles/dynode/arc pos/.initial=0.5}
+\ctikzset{monopoles/dynode/arc angle/.initial=30}
+\ctikzset{monopoles/dynode/top width/.initial=1.0}
+
+\pgfdeclareshape{dynode}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{tubes}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/dynode/width}\pgf@circ@scaled@Rlen
+ \pgf@x=0.5\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/dynode/height}\pgf@circ@scaled@Rlen
+ }
+ \savedanchor{\arcpos}{% bottom part of the arc pos
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=0pt
+ \pgf@y=\ctikzvalof{monopoles/dynode/height}\pgf@circ@scaled@Rlen
+ \pgf@y=\ctikzvalof{monopoles/dynode/arc pos}\pgf@y
+ }
+ \savedanchor{\topright}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/dynode/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\ctikzvalof{monopoles/dynode/top width}\pgf@x
+ \pgf@x=0.5\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/dynode/height}\pgf@circ@scaled@Rlen
+ }
+ \anchor{arc}{\arcpos}
+ \anchor{top right}{\topright}
+ \anchor{top left}{\topright\pgf@x=-\pgf@x}
+ \anchor{text}{
+ \northeast
+ \advance\pgf@x by 4pt\relax
+ \pgf@y=\dimexpr0.5\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{bottom}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgfsetcolor{\ctikzvalof{color}}
+ \northeast
+ \pgf@circ@res@right=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \arcpos
+ \pgf@circ@res@step=\pgf@y
+ % top
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{monopoles/dynode/top width}*\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{monopoles/dynode/top width}*\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ % arc
+ \edef\@@angle{\ctikzvalof{monopoles/dynode/arc angle}}
+ \ifnum90=\@@angle\else % avoid divisions by zero
+ % radius
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@res@right/cos(\@@angle)}
+ % start angle y position
+ \pgfmathsetlength{\pgf@circ@res@step}{\pgf@circ@res@step+\pgf@circ@res@other*(1-sin(\@@angle))}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgf@circ@res@step}}
+ \pgfpatharc{-180+\@@angle}{-\@@angle}{\pgf@circ@res@other}
+ \fi
+ % tail
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ }
+}
+% Microstrip monopoles
+
+\pgfdeclareshape{mslstub}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\southeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{bipoles/mstline/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen
+ \pgf@y=-.5\pgf@y
+ }
+ \savedanchor{\northwest}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{bipoles/mstline/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ }
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{east}{\southeast\pgf@y=0pt\relax}
+ \anchor{south east}{\southeast}
+ \anchor{south}{\southeast\pgf@x=0pt\relax}
+ \anchor{south west}{\southeast\pgf@x=-\pgf@x}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+ \anchor{north west}{\northwest}
+ %
+ \anchor{center}{\northwest\pgf@y=0pt\relax}
+ \anchor{left}{\northwest\pgf@y=0pt\relax}
+ \anchor{right}{\southeast\pgf@y=0pt\relax}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+ \behindbackgroundpath{
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@right}{\southeast}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfextracty{\pgf@circ@res@down}{\southeast}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{msrstub}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\southeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/msrstub/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt\relax
+ }
+ \savedanchor{\northwest}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/msrstub/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/msrstub/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ }
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{east}{\southeast\pgf@y=0pt\relax}
+ \anchor{south east}{\southeast}
+ \anchor{south}{\southeast\pgf@x=0pt\relax}
+ \anchor{south west}{\southeast\pgf@x=-\pgf@x}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+ \anchor{north west}{\northwest}
+ %
+ \anchor{center}{\pgfpointorigin}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\pgfpointorigin}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+ \behindbackgroundpath{
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@right}{\southeast}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfextracty{\pgf@circ@res@down}{\southeast}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfscope
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointpolar{135}{\pgf@circ@res@step}}
+ \pgfpatharc{135}{45}{\pgf@circ@res@step}
+ \pgfpathlineto{\pgfpointpolar{45}{\pgf@circ@res@up}}
+ \pgfpatharc{45}{135}{\pgf@circ@res@up}
+ \pgfclosepath
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{msport}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\southeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/msport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen
+ \pgf@y=-.5\pgf@y
+ }
+ \savedanchor{\northwest}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/msport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ }
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{east}{\southeast\pgf@y=0pt\relax}
+ \anchor{south east}{\southeast}
+ \anchor{south}{\southeast\pgf@x=0pt\relax}
+ \anchor{south west}{\southeast\pgf@x=-\pgf@x}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+ \anchor{north west}{\northwest}
+ %
+ \anchor{center}{\northwest\pgf@y=0pt\relax}
+ \anchor{left}{\northwest\pgf@y=0pt\relax}
+ \anchor{right}{\southeast\pgf@y=0pt\relax}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr-.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ }
+ \behindbackgroundpath{
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@right}{\southeast}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfextracty{\pgf@circ@res@down}{\southeast}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.5*\pgf@circ@res@up}
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+% Legacy antennas (with tails)
+\def\pgf@circ@shift@antenna@xy#1#2{%
+ \pgf@y=\dimexpr\pgf@y+#2\pgf@circ@res@step
+ \pgf@x=\dimexpr\pgf@x+#1\pgf@circ@res@step
+\relax}
+
+% Legacy antenna
+\pgfdeclareshape{antenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth
+ \pgf@y=4\pgf@circ@res@step
+ }
+ \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{0}{2}}
+ \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{0}{3}\relax}
+ \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{0}{4}\relax}
+ \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{3}}
+ \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{0}{2}}
+ \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{2}}
+ \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{0}{4}}
+ \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{4}}
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen
+
+ \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{\ctikzvalof{color}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfsetlinewidth{\pgfstartlinewidth}
+
+ }
+}
+
+% Legacy TX antenna
+\pgfdeclareshape{txantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth
+ \pgf@y=4\pgf@circ@res@step
+ }
+ \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{2}}
+ \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{4}{3}\relax}
+ \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{4}\relax}
+ \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{3}}
+ \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{4}{2}}
+ \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{2}}
+ \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{4}{4}}
+ \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{4}}
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@scaled@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{\ctikzvalof{color}}
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+ }
+}
+
+% Legacy RX antenna
+\pgfdeclareshape{rxantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth
+ \pgf@y=4\pgf@circ@res@step
+ }
+ \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{2}}
+ \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{4}{3}\relax}
+ \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{4}\relax}
+ \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{3}}
+ \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{4}{2}}
+ \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{2}}
+ \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{4}{4}}
+ \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{4}}
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/rxantenna/width}\pgf@circ@scaled@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{\ctikzvalof{color}}
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ }
+}
+
+% Legacy match
+\pgfdeclareshape{match}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\northeast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step = \ctikzvalof{monopoles/match/width} \pgf@circ@scaled@Rlen
+ \pgf@x=2\pgf@circ@res@step
+ \pgf@circ@res@step = \ctikzvalof{monopoles/match/width} \pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@circ@res@step%
+ }
+ % the center is on the left side of the shape for facility of usage
+ \anchor{north}{\northeast\pgf@x=0.5\pgf@x\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=0pt\pgf@x=0.5\pgf@x\relax}
+ \anchor{west}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=0cm\relax}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\pgfpointorigin}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{text}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/match/width}\pgf@circ@scaled@Rlen
+ \pgf@x=1.5\pgf@x
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \pgf@y=-1.5\ht\pgfnodeparttextbox
+ }
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/match/width}\pgf@circ@scaled@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
+ }
+}
+% %>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircmonopoles
+%%%%%%%%%%% Springe nach tex/pgfcircbipoles
+%%%---------- open: tex/pgfcircbipoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Standard bipole shapes declarations
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Generic macro and flags for bipoles %<<<
+% Fixing tunable directions
+\newif\ifpgf@circ@fixtunable@dir
+\ctikzset{bipoles/fix tunable direction/.is if=pgf@circ@fixtunable@dir}
+\ctikzset{bipoles/fix tunable direction=true}
+% choosing several arrows
+\pgf@circ@declare@family@arrows{tunable}
+\pgf@circ@declare@family@arrows{wiper}
+\pgf@circ@declare@family@arrows{switch}
+\pgf@circ@declare@family@arrows{gto gate}
+
+%>>>
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+% Resistive components: generics, resistors, wires
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Definitions for resistive components %<<<
+
+% Zig Zag resistors
+\ctikzset{resistors/zigs/.initial=3}
+\ctikzset{resistors/width/.code={%
+ \ctikzset{bipoles/resistor/width=#1}%
+ \ctikzset{bipoles/vresistor/width=#1}%
+ \ctikzset{bipoles/potentiometer/width=#1}%
+ \ctikzset{bipoles/resistivesens/width=#1}%
+ \ctikzset{bipoles/photoresistor/width=#1}%
+ \ctikzset{bipoles/thermistor/width=#1}%
+ \ctikzset{bipoles/thermistorntc/width=#1}%
+ \ctikzset{bipoles/thermistorptc/width=#1}%
+ \ctikzset{bipoles/varistor/width=#1}%
+ \ctikzset{bipoles/generic/width=#1}%
+ \ctikzset{bipoles/generic potentiometer/width=#1}%
+ \ctikzset{bipoles/ageneric/width=#1}%
+ \ctikzset{bipoles/tgeneric/width=#1}%
+}}
+\ctikzset{wiper pos/.code={%
+ \ctikzset{bipoles/potentiometer/wiper pos=#1}%
+ \ctikzset{bipoles/generic potentiometer/wiper pos=#1}%
+}}
+% zigzag resistor
+\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/potentiometer/wiper pos/.initial=.5}
+\ctikzset{bipoles/vresistor/height/.initial=.6}
+\ctikzset{bipoles/vresistor/width/.initial=.8}
+\ctikzset{bipoles/resistivesens/height/.initial=.6}
+\ctikzset{bipoles/resistivesens/width/.initial=.8}
+% square resistors
+\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/generic/height/.initial=.30}
+\ctikzset{bipoles/generic/width/.initial=.80}
+\ctikzset{bipoles/generic potentiometer/height/.initial=.80}
+\ctikzset{bipoles/generic potentiometer/height 2/.initial=.30}
+\ctikzset{bipoles/generic potentiometer/width/.initial=.80}
+\ctikzset{bipoles/generic potentiometer/wiper pos/.initial=.5}
+\ctikzset{bipoles/ageneric/height/.initial=.30}
+\ctikzset{bipoles/tgeneric/height/.initial=.70}
+\ctikzset{bipoles/tgeneric/width/.initial=.80}
+\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}
+
+\newif\ifpgf@circuit@europeanresistor
+\ctikzset{resistor/.is choice}
+\ctikzset{resistor/american/.code = \pgf@circuit@europeanresistorfalse }
+\ctikzset{resistor/european/.code = \pgf@circuit@europeanresistortrue }
+\tikzset{american resistors/.style = {\circuitikzbasekey/resistor = american}}
+\tikzset{european resistors/.style = {\circuitikzbasekey/resistor = european}}%
+
+% wires (open, shorts, ...)
+
+\ctikzset{bipoles/open/height/.initial=.3} %necessary for curly voltages
+\ctikzset{bipoles/open/width/.initial=.3} %necessary for curly voltages
+\ctikzset{bipoles/open/voltage/straight label distance/.initial=0}
+\ctikzset{bipoles/open/voltage/distance from node/.initial=.2}
+\ctikzset{bipoles/short/height/.initial=.1} %dummy height for voltage positioning
+\ctikzset{bipoles/short/width/.initial=.1} %dummy width for voltage positioning
+% multiwire
+\ctikzset{bipoles/multiwire/height/.initial=0.4}
+\ctikzset{bipoles/multiwire/width/.initial=0.2}
+\ctikzset{bipoles/multiwire/spacing/.initial=0.05}
+% crossing wires
+\ctikzset{bipoles/crossing/size/.initial=.2}
+
+%%>>>
+
+%% Shapes for generic, resistives and wires components %<<<
+%% Short circuit
+
+%%% NOTICE that the short is really NOT drawn; we trust the fact that its
+%%% natural length is zero.
+\pgfcircdeclarebipole
+{% fix the anchor border to add a bit of space for voltage and labels
+ % it uses the dummy width and height
+ \anchorborder{%
+ \ifpgf@circuit@bipole@inverted
+ \pgf@circ@res@left=-\pgf@x
+ \pgf@circ@res@up=-\pgf@y
+ \else
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \fi
+ \ifdim\pgf@circ@res@up>0cm
+ \pgf@x=\ctikzvalof{bipoles/short/width}\pgf@circ@Rlen
+ \pgf@y=\ctikzvalof{bipoles/short/height}\pgf@circ@Rlen
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@x}{\pgf@y}}
+ \else
+ \pgf@x=-\ctikzvalof{bipoles/short/width}\pgf@circ@Rlen
+ \pgf@y=-\ctikzvalof{bipoles/short/height}\pgf@circ@Rlen
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{-\pgf@x}{-\pgf@y}}
+ \fi
+ }
+}
+{0}
+{short}
+{0}
+{0}
+{}
+
+%% Open circuit
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/open/height}}
+{open}
+{\ctikzvalof{bipoles/open/height}}
+{\ctikzvalof{bipoles/open/width}}
+{}
+
+% multiwire(s)
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/multiwire/height}}
+{multiwire}
+{\ctikzvalof{bipoles/multiwire/height}}
+{\ctikzvalof{bipoles/multiwire/width}}
+{
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/multiwire/height}}
+{bmultiwire}
+{\ctikzvalof{bipoles/multiwire/height}}
+{\ctikzvalof{bipoles/multiwire/width}}
+{
+ \pgf@circ@res@other=\ctikzvalof{bipoles/multiwire/spacing}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/multiwire/height}}
+{tmultiwire}
+{\ctikzvalof{bipoles/multiwire/height}}
+{\ctikzvalof{bipoles/multiwire/width}}
+{
+ \pgf@circ@res@other=\ctikzvalof{bipoles/multiwire/spacing}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+2\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{2\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+%%%%%%%%%%%%%%%%
+%% Crossing
+%%%%%%%%%%%%%%%%
+
+%% crossing bipole (but see also nodes)
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/crossing/size}}
+{crossing}
+{\ctikzvalof{bipoles/crossing/size}}
+{\ctikzvalof{bipoles/crossing/size}}{
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpatharc{0}{-180}{0.4*\pgf@circ@res@left}
+ \pgfsetbeveljoin
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+%
+%
+%% Generic bipole - used as resistor by some
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/generic/height}}
+{generic}
+{\ctikzvalof{bipoles/generic/height}}
+{\ctikzvalof{bipoles/generic/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+}
+
+%
+% generic crossed, suggested by Radványi Patrik Tamás <patrikradvanyi@gmail.com>
+% inherit "generic" properties
+%
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/generic/height}}
+{xgeneric}
+{\ctikzvalof{bipoles/generic/height}}
+{\ctikzvalof{bipoles/generic/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ % cross it
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+%% Generic empty tunable
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\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}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \ifpgf@circ@fixtunable@dir
+ \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Generic asymmetric bipole
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/ageneric/height}}
+{ageneric}
+{\ctikzvalof{bipoles/ageneric/height}}
+{\ctikzvalof{bipoles/ageneric/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathrectanglecorners{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{stroke,fill}
+}
+
+%% Memristor
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/memristor/height}}
+{memristor}
+{\ctikzvalof{bipoles/memristor/height}}
+{\ctikzvalof{bipoles/memristor/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@scaled@Rlen
+ \divide \pgf@circ@res@step by 14
+
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \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}
+}
+
+%% Photoresistor
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/photoresistor/height 2}}
+{photoresistor}
+{\ctikzvalof{bipoles/photoresistor/height}}
+{\ctikzvalof{bipoles/photoresistor/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfscope
+ \pgfsetarrowsend{latexslim}
+ \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
+\pgfcircdeclarebipolescaled{resistors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{%
+ \southwest
+ \pgf@x=0.4\pgf@x
+ \pgf@y=1.2\pgf@y
+ }%
+ \pgfcirc@border@extend@updown{1}{1.2}
+}
+{\ctikzvalof{bipoles/thermistor/height}}
+{thermistor}
+{\ctikzvalof{bipoles/thermistor/height}}
+{\ctikzvalof{bipoles/thermistor/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\ctikzvalof{bipoles/thermistor/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\ctikzvalof{bipoles/thermistor/main}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{1.2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{1.2\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+%% Thermistor PTC
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/thermistorptc/height 2}}
+{thermistorptc}
+{\ctikzvalof{bipoles/thermistorptc/height}}
+{\ctikzvalof{bipoles/thermistorptc/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\ctikzvalof{bipoles/thermistorptc/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\ctikzvalof{bipoles/thermistorptc/main}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \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}
+ \endpgfscope
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgftext[top,x=.85\pgf@circ@res@left,y=.75\pgf@circ@res@down]{\pgf@circ@font@tiny$\vartheta$}
+ \pgfsetarrowsend{latexslim}
+ \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
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/thermistorntc/height 2}}
+{thermistorntc}
+{\ctikzvalof{bipoles/thermistorntc/height}}
+{\ctikzvalof{bipoles/thermistorntc/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\ctikzvalof{bipoles/thermistorntc/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\ctikzvalof{bipoles/thermistorntc/main}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \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}
+ \endpgfscope
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgftext[top,x=.85\pgf@circ@res@left,y=.75\pgf@circ@res@down]{\pgf@circ@font@tiny$\vartheta$}
+ \pgfsetarrowsend{latexslim}
+ \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}
+}
+
+%% Varistor
+\pgfcircdeclarebipolescaled{resistors}
+{
+ \pgfcirc@border@extend@updown{1}{1.4}
+}
+{\ctikzvalof{bipoles/varistor/height}}
+{varistor}
+{\ctikzvalof{bipoles/varistor/height}}
+{\ctikzvalof{bipoles/varistor/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\ctikzvalof{bipoles/varistor/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\ctikzvalof{bipoles/varistor/main}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \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
+
+ \pgftext[top,x=.65\pgf@circ@res@left,y=1.2\pgf@circ@res@down]{{\pgf@circ@font@tiny\textsf{U}}}
+}
+
+%% Generic tunable
+\pgfcircdeclarebipolescaled{resistors}
+{
+ \savedanchor{\wiper}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@ya=\ctikzvalof{bipoles/generic potentiometer/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@ya
+ \pgf@xa=\ctikzvalof{bipoles/generic potentiometer/width}\pgf@circ@scaled@Rlen
+ \pgfmathsetlength{\pgf@x}{(\ctikzvalof{bipoles/generic potentiometer/wiper pos}-0.5)*\pgf@xa}
+ }
+ \anchor{wiper}{\wiper}
+ \anchor{W}{\wiper}
+}
+{\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@scaled@Rlen
+ \divide \pgf@circ@res@step by 14
+
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfscope
+ %\pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfcirc@set@arrows{wiper}{}{latexslim}
+ \pgfextractx{\pgf@circ@res@other}{\wiper}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Zig-zag resistors
+\def\pgf@circ@zigzag#1{%
+ \divide \pgf@circ@res@step by \numexpr4*\zigs\relax
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}}
+ \pgf@circ@res@other = \pgf@circ@res@left
+ \pgf@circ@count@a=\zigs\relax
+ % first half zig
+ \advance\pgf@circ@res@other by \pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-#1\pgf@circ@res@down}}
+ \pgfmathloop%
+ \advance\pgf@circ@count@a by -1\relax% Loop zigs -1 times
+ \ifnum\pgf@circ@count@a>0
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{#1\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-#1\pgf@circ@res@down}}
+ \repeatpgfmathloop%
+ % last zig and a half
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{#1\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by \pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ \pgfsetbeveljoin
+ \pgfusepath{draw}
+}
+
+%% Resistor
+\pgfcircdeclarebipolescaled{resistors}
+{
+\savedmacro{\zigs}{\edef\zigs{\ctikzvalof{resistors/zigs}}}
+}
+{\ctikzvalof{bipoles/resistor/height}}
+{resistor}
+{\ctikzvalof{bipoles/resistor/height}}
+{\ctikzvalof{bipoles/resistor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}
+ \pgf@circ@zigzag{1}
+}
+
+
+%% Variable resistor
+\pgfcircdeclarebipolescaled{resistors}
+{
+\savedmacro{\zigs}{\edef\zigs{\ctikzvalof{resistors/zigs}}}
+}
+{\ctikzvalof{bipoles/vresistor/height}}
+{vresistor}
+{\ctikzvalof{bipoles/vresistor/height}}
+{\ctikzvalof{bipoles/vresistor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/vresistor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}
+ \pgf@circ@zigzag{.5}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \ifpgf@circ@fixtunable@dir
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Potentiometer
+\pgfcircdeclarebipolescaled{resistors}
+{
+ \savedanchor{\wiper}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@ya=\ctikzvalof{bipoles/potentiometer/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@ya
+ \pgf@xa=\ctikzvalof{bipoles/potentiometer/width}\pgf@circ@scaled@Rlen
+ \pgfmathsetlength{\pgf@x}{(\ctikzvalof{bipoles/potentiometer/wiper pos}-0.5)*\pgf@xa}
+ }
+ \anchor{wiper}{\wiper}
+ \anchor{W}{\wiper}
+ \savedmacro{\zigs}{\edef\zigs{\ctikzvalof{resistors/zigs}}}
+}
+{\ctikzvalof{bipoles/potentiometer/height 2}}
+{potentiometer}
+{\ctikzvalof{bipoles/potentiometer/height}}
+{\ctikzvalof{bipoles/potentiometer/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/potentiometer/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}
+ \pgf@circ@zigzag{1}
+
+ \pgfscope
+ %\pgfsetlinewidth{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{wiper}{}{latexslim}
+ \pgfextractx{\pgf@circ@res@other}{\wiper}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Resistive sensor
+\pgfcircdeclarebipolescaled{resistors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{\southwest\pgf@x=0.4\pgf@x}%
+ \savedmacro{\zigs}{\edef\zigs{\ctikzvalof{resistors/zigs}}}
+}
+{\ctikzvalof{bipoles/resistivesens/height}}
+{resistivesens}
+{\ctikzvalof{bipoles/resistivesens/height}}
+{\ctikzvalof{bipoles/resistivesens/width}}
+{%
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistivesens/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}
+ \pgf@circ@zigzag{.5}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-.9\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}% %>>>
+
+%% Paths for resistive components: generic, resistors and wires% %<<<
+
+%% GENERICS
+\def\pgf@circ@empty@path#1{}
+\pgfcirc@activate@bipole@simple{l}{generic}
+\pgfcirc@activate@bipole@simple{l}{ageneric}
+\pgfcirc@activate@bipole@simple{l}{tgeneric}
+\pgfcirc@activate@bipole@simple{l}{xgeneric}
+\pgfcirc@activate@bipole@simple{l}{fullgeneric}
+\pgfcirc@activate@bipole@simple{l}{tfullgeneric}
+\pgfcirc@activate@bipole@simple{l}{short}
+\pgfcirc@activate@bipole@simple{l}{open}
+
+%% wires and crossings
+
+\pgfcirc@activate@bipole@simple{l}{crossing}
+\pgfcirc@style@to@style{crossing}{xing}
+\pgfcirc@activate@bipole@simple{l}{multiwire}
+\pgfcirc@activate@bipole@simple{l}{bmultiwire}
+\pgfcirc@activate@bipole@simple{l}{tmultiwire}
+
+% automatically switching path --- to be defined manually
+\def\pgf@circ@resistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{generic}{#1}\else\pgf@circ@bipole@path{resistor}{#1}\fi}
+\pgfcirc@path@to@style{l}{resistor}{resistor}{}
+\pgfcirc@node@to@style{l}{resistor}{american resistor}{}
+\pgfcirc@node@to@style{l}{generic}{european resistor}{}
+\pgfcirc@style@to@style{resistor}{R}
+
+\def\pgf@circ@vresistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{tgeneric}{#1}\else\pgf@circ@bipole@path{vresistor}{#1}\fi}
+\pgfcirc@path@to@style{l}{vresistor}{variable resistor}{}
+\pgfcirc@node@to@style{l}{vresistor}{variable american resistor}{}
+\pgfcirc@node@to@style{l}{tgeneric}{variable european resistor}{}
+\pgfcirc@style@to@style{variable resistor}{vR}
+
+\def\pgf@circ@resistivesens@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{thermistor}{#1}\else\pgf@circ@bipole@path{resistivesens}{#1}\fi}
+\pgfcirc@path@to@style{l}{resistivesens}{resistive sensor}{}
+\pgfcirc@node@to@style{l}{resistivesens}{american resistive sensor}{}
+\pgfcirc@node@to@style{l}{thermistor}{european resistive sensor}{}
+\pgfcirc@style@to@style{resistive sensor}{sR}
+
+\def\pgf@circ@potentiometer@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{genericpotentiometer}{#1}\else\pgf@circ@bipole@path{potentiometer}{#1}\fi}
+\pgfcirc@path@to@style{l}{potentiometer}{potentiometer}{}
+\pgfcirc@node@to@style{l}{potentiometer}{american potentiometer}{}
+\pgfcirc@node@to@style{l}{genericpotentiometer}{european potentiometer}{}
+\pgfcirc@style@to@style{potentiometer}{pR}
+
+\pgfcirc@activate@bipole@simple{l}{thermistor}
+\pgfcirc@style@to@style{thermistor}{thR}
+\pgfcirc@activate@bipole{l}{thermistorptc}{thermistorptc}{thermistor ptc}
+\pgfcirc@style@to@style{thermistor ptc}{thRp}
+\pgfcirc@activate@bipole{l}{thermistorntc}{thermistorntc}{thermistor ntc}
+\pgfcirc@style@to@style{thermistor ntc}{thRn}
+\pgfcirc@activate@bipole@simple{l}{photoresistor}
+\pgfcirc@style@to@style{photoresistor}{phR}
+\pgfcirc@activate@bipole@simple{l}{varistor}
+\pgfcirc@activate@bipole@simple{l}{memristor}
+\pgfcirc@style@to@style{memristor}{Mr}%
+% %>>>
+
+%%%%%%%%%%%%%%
+%% Capacitors
+%%%%%%%%%%%%%
+
+%% Definitions for Capacitors%<<<1
+\ctikzset{bipoles/capacitor/height/.initial=.6}
+\ctikzset{bipoles/capacitor/width/.initial=.2}
+\ctikzset{bipoles/ecapacitor/height/.initial=.5}
+\ctikzset{bipoles/ecapacitor/width/.initial=.2}
+\ctikzset{bipoles/ecapacitor/font/.initial=\pgf@circ@font@sixbm}
+%%% pcapacitor is deprecated
+\ctikzset{bipoles/pcapacitor/height/.initial=.6}
+\ctikzset{bipoles/pcapacitor/width/.initial=.2}
+\ctikzset{bipoles/pcapacitor/bend width/.initial=1.1}
+\ctikzset{bipoles/ccapacitor/height/.initial=.6}
+\ctikzset{bipoles/ccapacitor/width/.initial=.2}
+\ctikzset{bipoles/ccapacitor/bend width/.initial=1.1}
+\ctikzset{bipoles/vcapacitor/height/.initial=.6}
+\ctikzset{bipoles/vcapacitor/width/.initial=.2}
+\ctikzset{bipoles/vcapacitor/tunable width/.initial=3}
+\ctikzset{bipoles/vcapacitor/capacitor width/.code={%
+ \pgfutil@packagewarning{circuitikz}{vcapacitor/capacitor width deprecated; ignored}%
+}}% deprecated
+% piezoelectric (double size by default)
+\ctikzset{bipoles/piezoelectric/height/.initial=.7}
+\ctikzset{bipoles/piezoelectric/width/.initial=.4}%
+% constant phase element (double size by default)
+\ctikzset{bipoles/cpe/height/.initial=.6}
+\ctikzset{bipoles/cpe/width/.initial=.4}
+%
+% style settings
+%
+\ctikzset{capacitors/width/.code={%
+ \pgfmathsetmacro{\pgfcirc@@double}{2*#1}%
+ \ctikzset{bipoles/.cd,
+ capacitor/width=#1, ecapacitor/width=#1, ccapacitor/width=#1,
+ vcapacitor/width=#1,
+ piezoelectric/width=\pgfcirc@@double,
+ cpe/width=\pgfcirc@@double,
+}}}
+\ctikzset{capacitors/height/.code={%
+ \ctikzset{bipoles/.cd,
+ capacitor/height=#1, ecapacitor/height=#1, ccapacitor/height=#1,
+ vcapacitor/height=#1,
+ piezoelectric/height=#1,
+ cpe/height=#1,
+}}}
+\def\pgfcirc@maybe@fill@straight@capacitor{%
+ \pgfscope
+ \pgfpathrectanglecorners
+ {\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@maybefill
+ \endpgfscope
+}
+%>>>
+
+%% Shapes for capacitors%<<<
+%% Plain Capacitor
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/capacitor/height}}
+{capacitor}
+{\ctikzvalof{bipoles/capacitor/height}}
+{\ctikzvalof{bipoles/capacitor/width}}
+{
+ \pgfcirc@maybe@fill@straight@capacitor
+
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+}
+
+%% Capacitive sensor
+\pgfcircdeclarebipolescaled{capacitors}
+{
+ \anchor{label}{\southwest\pgf@x=2.6\pgf@x\pgf@y=1.2\pgf@y}%
+ \pgfcirc@border@extend@full{2.6}{1}{4.4}{1.2}
+}
+{\ctikzvalof{bipoles/capacitor/height}}
+{capacitivesens}
+{\ctikzvalof{bipoles/capacitor/height}}
+{\ctikzvalof{bipoles/capacitor/width}}
+{
+ \pgfcirc@maybe@fill@straight@capacitor
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{2.6\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-2.6\pgf@circ@res@right}{1.2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-4.4\pgf@circ@res@right}{1.2\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Polar Capacitor (DEPRECATED)
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/pcapacitor/height}}
+{polarcapacitor}
+{\ctikzvalof{bipoles/pcapacitor/height}}
+{\ctikzvalof{bipoles/pcapacitor/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfutil@packagewarning{circuitikz}{polar capacitor has been deprecated; change to curved capacitor (see manual)}%
+
+ \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}
+}
+
+
+%% Curved capacitor
+% see https://tex.stackexchange.com/questions/509594/polar-capacitor-orientation-in-circuitikz-seems-wrong
+% for a rationale
+%
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/ccapacitor/height}}
+{ccapacitor}
+{\ctikzvalof{bipoles/ccapacitor/height}}
+{\ctikzvalof{bipoles/ccapacitor/width}}
+{
+ \pgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgftransformrotate{-90}
+ \pgfpathsine{\pgfpoint{\pgf@circ@res@up}{-\ctikzvalof{bipoles/ccapacitor/bend width}\pgf@circ@res@right}}
+ \pgfpathcosine{\pgfpoint{\pgf@circ@res@up}{\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@right}}
+ \pgftransformrotate{90}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathclose{}
+ \pgf@circ@maybefill
+ \endpgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ % \pgfsetcolor{red}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgftransformrotate{-90}
+ \pgfpathsine{\pgfpoint{\pgf@circ@res@up}{-\ctikzvalof{bipoles/ccapacitor/bend width}\pgf@circ@res@right}}
+ \pgfpathcosine{\pgfpoint{\pgf@circ@res@up}{\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@right}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+ % extend wire to the curved capacitor
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+%% Electrolytic Capacitor
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/ecapacitor/height}}
+{ecapacitor}
+{\ctikzvalof{bipoles/ecapacitor/height}}
+{\ctikzvalof{bipoles/ecapacitor/width}}
+{
+ \pgfsetrectcap
+ % % % Draw plus pole
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgf@circ@draworfill
+ % % Draw minus pole
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfsetfillcolor{\ctikzvalof{color}}
+ \pgfusepath{draw,fill}
+ \pgfsetfillcolor{\ctikzvalof{color}}
+ % % plus pole annotation
+ \pgftext[right,at=\pgfpoint{1.2\pgf@circ@res@left}{.6\pgf@circ@res@up}]
+ {\ctikzvalof{bipoles/ecapacitor/font} $+$}
+}
+
+%% Variable Capacitor
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/vcapacitor/height}}
+{vcapacitor}
+{\ctikzvalof{bipoles/vcapacitor/height}}
+{\ctikzvalof{bipoles/vcapacitor/width}}
+{
+ \pgfcirc@maybe@fill@straight@capacitor
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vcapacitor/tunable width} \pgf@circ@res@right
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@right}{\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}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \ifpgf@circ@fixtunable@dir
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \else
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfusepath{draw}
+}
+
+
+%% Piezoelectric Element
+
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/piezoelectric/height}}
+{piezoelectric}
+{\ctikzvalof{bipoles/piezoelectric/height}}
+{\ctikzvalof{bipoles/piezoelectric/width}}
+{
+ % \pgf@circ@res@step = \ctikzvalof{bipoles/piezoelectric/width}\pgf@circ@Rlen
+ % \divide \pgf@circ@res@step by 5
+
+ %% Outer markings
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+ %% Inner Box
+ \pgf@circ@res@step = \pgf@circ@res@right \divide \pgf@circ@res@step by 10
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners
+ {\pgfpoint{\pgf@circ@res@left+4*\pgf@circ@res@step}{\pgf@circ@res@up-\pgf@circ@res@step}}
+ {\pgfpoint{\pgf@circ@res@right-4*\pgf@circ@res@step}{\pgf@circ@res@down+\pgf@circ@res@step}}
+ \pgf@circ@draworfill
+ \endpgfscope
+}
+
+% Ferroelectric capacitor, suggested by Mayeul Cantan
+% (see https://github.com/circuitikz/circuitikz/issues/515)
+\pgfcircdeclarebipolescaled{capacitors}
+{
+ \anchor{curve right}{\southwest\pgf@x=-1.8\pgf@x\pgf@y=\pgf@y}%
+ \anchor{curve left}{\southwest\pgf@x=1.8\pgf@x\pgf@y=-\pgf@y}%
+ \anchor{kink right}{\southwest\pgf@x=-1.8\pgf@x\pgf@y=0.5\pgf@y}%
+ \anchor{kink left}{\southwest\pgf@x=1.8\pgf@x\pgf@y=-0.5\pgf@y}%
+ \pgfcirc@border@extend@full{1.8}{1}{1.8}{1}
+}
+{\ctikzvalof{bipoles/capacitor/height}}
+{ferrocap}
+{\ctikzvalof{bipoles/capacitor/height}}
+{\ctikzvalof{bipoles/capacitor/width}}
+{
+ \pgfcirc@maybe@fill@straight@capacitor
+
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfsetcornersarced{\pgfpoint{0.2\pgf@circ@res@right}{0.2\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-1.8\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-1.8\pgf@circ@res@right}{0.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{1.8\pgf@circ@res@right}{0.5\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{1.8\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Constant phase element
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/cpe/height}}
+{cpe}
+{\ctikzvalof{bipoles/cpe/height}}
+{\ctikzvalof{bipoles/cpe/width}}
+{
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@maybefill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+% %>>>
+
+%% Paths for capacitors%<<<
+\pgfcirc@activate@bipole@simple{l}{capacitor}
+\pgfcirc@style@to@style{capacitor}{C}
+\pgfcirc@activate@bipole@simple{l}{ecapacitor}
+\pgfcirc@style@to@style{ecapacitor}{eC}
+\pgfcirc@style@to@style{ecapacitor}{elko}
+\pgfcirc@activate@bipole{l}{polarcapacitor}{polarcapacitor}{polar capacitor}
+%% polar capacitor is deprecated, use curved capacitor instead
+\pgfcirc@style@to@style{polar capacitor}{pC}
+\pgfcirc@activate@bipole{l}{ccapacitor}{ccapacitor}{curved capacitor}
+\pgfcirc@style@to@style{curved capacitor}{cC}
+\pgfcirc@activate@bipole{l}{vcapacitor}{vcapacitor}{variable capacitor}
+\pgfcirc@style@to@style{variable capacitor}{vC}
+\pgfcirc@activate@bipole@simple{l}{piezoelectric}
+\pgfcirc@style@to@style{piezoelectric}{PZ}
+\pgfcirc@activate@bipole{l}{capacitivesens}{capacitivesens}{capacitive sensor}
+\pgfcirc@style@to@style{capacitive sensor}{sC}
+\pgfcirc@activate@bipole@simple{l}{ferrocap}
+\pgfcirc@style@to@style{ferrocap}{feC}
+\pgfcirc@activate@bipole@simple{l}{cpe}
+% %>>>
+
+%%%%%%%%%%%%%%%
+%% Inductors
+%%%%%%%%%%%%%%%
+
+% Definitions of Inductors%<<<1
+
+\ctikzset{inductors/coils/.code={%
+ \ctikzset{bipoles/cuteinductor/coils=#1}%
+ \ctikzset{bipoles/cutechoke/coils=#1}%
+ \ctikzset{bipoles/americaninductor/coils=#1}%
+ \ctikzset{bipoles/vcuteinductor/coils=#1}%
+ \ctikzset{bipoles/vamericaninductor/coils=#1}%
+}}
+\ctikzset{inductors/width/.code={%
+ \ctikzset{bipoles/cuteinductor/width=#1}%
+ \ctikzset{bipoles/cutechoke/width=#1}%
+ \ctikzset{bipoles/americaninductor/width=#1}%
+ \ctikzset{bipoles/vcuteinductor/width=#1}%
+ \ctikzset{bipoles/vamericaninductor/width=#1}%
+ \ctikzset{bipoles/fullgeneric/width=#1}%
+ \ctikzset{bipoles/tfullgeneric/width=#1}%
+}}
+\ctikzset{bipoles/cuteinductor/height/.initial=.3}
+\ctikzset{bipoles/cuteinductor/lower coil height/.initial=.15}
+\ctikzset{bipoles/cuteinductor/width/.initial=.6}
+\ctikzset{bipoles/cuteinductor/coils/.initial=5}
+\ctikzset{bipoles/cuteinductor/coil aspect/.initial=.5}%percentage of inductor width, which is covered by lower coil
+%% Cute choke settings
+\ctikzset{bipoles/cutechoke/height/.initial=.3}
+\ctikzset{bipoles/cutechoke/lower coil height/.initial=.15}
+\ctikzset{bipoles/cutechoke/width/.initial=.6}
+\ctikzset{bipoles/cutechoke/coils/.initial=5}
+\ctikzset{bipoles/cutechoke/coil aspect/.initial=.5}%percentage of choke width, which is covered by lower coil
+\ctikzset{bipoles/cutechoke/cstep/.initial=.3}
+\ctikzset{bipoles/cutechoke/cdist/.initial=1.3}
+\ctikzset{bipoles/cutechoke/cthick/.initial=1}
+\newif\ifpgf@circuit@bipole@twolineschoke
+\pgf@circuit@bipole@twolineschokefalse
+\pgfkeys{/tikz/onelinechoke/.add code={}{\pgf@circuit@bipole@twolineschokefalse}}
+\ctikzset{onelinechoke/.add code={}{\pgf@circuit@bipole@twolineschokefalse}}
+\pgfkeys{/tikz/twolineschoke/.add code={}{\pgf@circuit@bipole@twolineschoketrue}}
+\ctikzset{twolineschoke/.add code={}{\pgf@circuit@bipole@twolineschoketrue}}
+%
+% generic core anchor settings
+\ctikzset{bipoles/inductors/core distance/.initial={2pt}}
+\def\pgfcir@basic@core@anchors{%
+ \saveddimen{\coredistance}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{bipoles/inductors/core distance}}}
+ \anchor{core east}{%
+ \northeast\advance\pgf@y by\coredistance
+ }
+ \anchor{core west}{%
+ \northeast\advance\pgf@y by\coredistance\pgf@x=-\pgf@x
+ }
+}
+%
+\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/americaninductor/coil height/.initial=.15}
+\ctikzset{bipoles/vcuteinductor/height/.initial=.6}
+\ctikzset{bipoles/vcuteinductor/lower coil height/.initial=.3}
+\ctikzset{bipoles/vcuteinductor/width/.initial=.6}
+\ctikzset{bipoles/vcuteinductor/coils/.initial=5}
+\ctikzset{bipoles/vcuteinductor/coil aspect/.initial=.5}%percentage of inductor width, which is covered by lower coil
+\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/vamericaninductor/coil height/.initial=.15}
+\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{inductor/.is choice}
+\ctikzset{inductor/cute/.code={\ctikzsetvalof{inductor}{cute}}}
+\ctikzset{inductor/european/.code={\ctikzsetvalof{inductor}{european}}}
+\ctikzset{inductor/american/.code={\ctikzsetvalof{inductor}{american}}}
+
+\tikzset{american inductors/.style = {\circuitikzbasekey/inductor = american}}
+\tikzset{european inductors/.style = {\circuitikzbasekey/inductor = european}}
+\tikzset{cute inductors/.style = {\circuitikzbasekey/inductor = cute}}
+\tikzset{american ports/.style = {\circuitikzbasekey/logic ports = american}}
+\tikzset{european ports/.style = {\circuitikzbasekey/logic ports = european}}
+
+%%>>>
+
+%% Shapes for inductors%<<<
+%% cute inductor
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/cuteinductor/coils},2) ?%
+ \ctikzvalof{bipoles/cuteinductor/height} :% even
+ -\ctikzvalof{bipoles/cuteinductor/lower coil height}) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \pgfcir@basic@core@anchors
+ }
+{\ctikzvalof{bipoles/cuteinductor/lower coil height}}
+{cuteinductor}
+{\ctikzvalof{bipoles/cuteinductor/height}}
+{\ctikzvalof{bipoles/cuteinductor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@other}%width of small coil
+ {0.5*\ctikzvalof{bipoles/cuteinductor/coil aspect}*\ctikzvalof{bipoles/cuteinductor/width}*\scaledRlen/(\ctikzvalof{bipoles/cuteinductor/coils}-1)}
+
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/cuteinductor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/cuteinductor/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/cuteinductor/coils}/2}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {2,...,\ctikzvalof{bipoles/cuteinductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfpatharc{0}{-180}{\pgf@circ@res@other and -\pgf@circ@res@down}
+ }
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+}
+
+%% cute inductive sensor
+\pgfcircdeclarebipolescaled{inductors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{\southwest\pgf@x=0.8\pgf@x\pgf@y=2.6\pgf@y}%
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/cuteinductor/coils},2) ?%
+ \ctikzvalof{bipoles/cuteinductor/height} :% even
+ -\ctikzvalof{bipoles/cuteinductor/lower coil height}) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \pgfcirc@border@extend@full{1}{2}{1.6}{2.6}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/cuteinductor/lower coil height}}
+{scuteinductor}
+{\ctikzvalof{bipoles/cuteinductor/height}}
+{\ctikzvalof{bipoles/cuteinductor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@other}%width of small coil
+ {0.5*\ctikzvalof{bipoles/cuteinductor/coil aspect}*\ctikzvalof{bipoles/cuteinductor/width}*\scaledRlen/(\ctikzvalof{bipoles/cuteinductor/coils}-1)}
+
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/cuteinductor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/cuteinductor/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/cuteinductor/coils}/2}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {2,...,\ctikzvalof{bipoles/cuteinductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfpatharc{0}{-180}{\pgf@circ@res@other and -\pgf@circ@res@down}
+ }
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{.8\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.8\pgf@circ@res@right}{2.6\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-1.6\pgf@circ@res@right}{2.6\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% cute choke
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/cuteinductor/coils},2) ?%
+ \ctikzvalof{bipoles/cuteinductor/height} :% even
+ -\ctikzvalof{bipoles/cuteinductor/lower coil height}) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+}
+{\ctikzvalof{bipoles/cutechoke/lower coil height}}
+{cutechoke}
+{\ctikzvalof{bipoles/cutechoke/height}}
+{\ctikzvalof{bipoles/cutechoke/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@other}%width of small coil
+ {0.5*\ctikzvalof{bipoles/cutechoke/coil aspect}*\ctikzvalof{bipoles/cutechoke/width}*\scaledRlen/(\ctikzvalof{bipoles/cutechoke/coils}-1)}
+
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/cutechoke/width}*\scaledRlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/cutechoke/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/cutechoke/coils}/2}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {2,...,\ctikzvalof{bipoles/cutechoke/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfpatharc{0}{-180}{\pgf@circ@res@other and -\pgf@circ@res@down}
+ }
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth+\ctikzvalof{bipoles/cutechoke/cdist}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth+\ctikzvalof{bipoles/cutechoke/cdist}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfsetlinewidth{\ctikzvalof{bipoles/cutechoke/cthick}\pgflinewidth}
+ \pgfusepath{stroke}
+
+ \ifpgf@circuit@bipole@twolineschoke
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth+\ctikzvalof{bipoles/cutechoke/cdist}\pgf@circ@res@up+\ctikzvalof{bipoles/cutechoke/cstep}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth+\ctikzvalof{bipoles/cutechoke/cdist}\pgf@circ@res@up+\ctikzvalof{bipoles/cutechoke/cstep}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfsetlinewidth{\ctikzvalof{bipoles/cutechoke/cthick}\pgflinewidth}
+ \pgfusepath{stroke}
+ \fi
+}
+
+%% variable cute inductor
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/cuteinductor/coils},2) ?%
+ \ctikzvalof{bipoles/cuteinductor/height} :% even
+ -\ctikzvalof{bipoles/cuteinductor/lower coil height}) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \saveddimen{\coredistance}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{bipoles/inductors/core distance}}}
+ \anchor{core east}{%
+ \northeast\pgf@y=0.5\pgf@y\advance\pgf@y by\coredistance
+ }
+ \anchor{core west}{%
+ \northeast\pgf@y=0.5\pgf@y\advance\pgf@y by\coredistance\pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/vcuteinductor/lower coil height}}
+{vcuteinductor}
+{\ctikzvalof{bipoles/vcuteinductor/height}}
+{\ctikzvalof{bipoles/vcuteinductor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@other}%width of small coil
+ {0.5*\ctikzvalof{bipoles/vcuteinductor/coil aspect}*\ctikzvalof{bipoles/vcuteinductor/width}*\scaledRlen/(\ctikzvalof{bipoles/vcuteinductor/coils}-1)}
+
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/vcuteinductor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/vcuteinductor/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/vcuteinductor/coils}/2}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {2,...,\ctikzvalof{bipoles/vcuteinductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and .5\pgf@circ@res@up}
+ \pgfpatharc{0}{-180}{\pgf@circ@res@other and -.5\pgf@circ@res@down}
+ }
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and .5\pgf@circ@res@up}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+}
+
+%% american inductor
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/americaninductor/coils},2) ?%
+ 2*\ctikzvalof{bipoles/americaninductor/coil height} :% even
+ 0) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/americaninductor/height 2}}
+{americaninductor}
+{\ctikzvalof{bipoles/americaninductor/height}}
+{\ctikzvalof{bipoles/americaninductor/width}}
+{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/americaninductor/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \advance \pgf@circ@res@step by \pgfhorizontaltransformationadjustment\pgflinewidth
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/americaninductor/coils}
+ \divide \pgf@circ@res@step by 2
+ \pgf@circ@res@other = \ctikzvalof{bipoles/americaninductor/coil height}\pgf@circ@scaled@Rlen
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {1,...,\ctikzvalof{bipoles/americaninductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@other}
+ }
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+}
+
+
+%% american inductive sensor
+\pgfcircdeclarebipolescaled{inductors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{\southwest\pgf@x=0.8\pgf@x\pgf@y=2.6\pgf@y}%
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/americaninductor/coils},2) ?%
+ 2*\ctikzvalof{bipoles/americaninductor/coil height} :% even
+ 0) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \pgfcirc@border@extend@full{1}{2}{1.6}{2.6}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/americaninductor/height 2}}
+{samericaninductor}
+{\ctikzvalof{bipoles/americaninductor/height}}
+{\ctikzvalof{bipoles/americaninductor/width}}
+{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/americaninductor/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \advance \pgf@circ@res@step by \pgfhorizontaltransformationadjustment\pgflinewidth
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/americaninductor/coils}
+ \divide \pgf@circ@res@step by 2
+ \pgf@circ@res@other = \ctikzvalof{bipoles/americaninductor/coil height}\pgf@circ@scaled@Rlen
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {1,...,\ctikzvalof{bipoles/americaninductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@other}
+ }
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{.8\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.8\pgf@circ@res@right}{2.6\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-1.6\pgf@circ@res@right}{2.6\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% variable american inductor
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/vamericaninductor/coils},2) ?%
+ 2*\ctikzvalof{bipoles/vamericaninductor/coil height} :% even
+ 0) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \saveddimen{\coredistance}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{bipoles/inductors/core distance}}}
+ \anchor{core east}{%
+ \northeast\pgf@y=0.5\pgf@y\advance\pgf@y by\coredistance
+ }
+ \anchor{core west}{%
+ \northeast\pgf@y=0.5\pgf@y\advance\pgf@y by\coredistance\pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/vamericaninductor/height 2}}
+{vamericaninductor}
+{\ctikzvalof{bipoles/vamericaninductor/height}}
+{\ctikzvalof{bipoles/vamericaninductor/width}}
+{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/vamericaninductor/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \advance \pgf@circ@res@step by \pgfhorizontaltransformationadjustment\pgflinewidth
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/vamericaninductor/coils}
+ \divide \pgf@circ@res@step by 2
+ \pgf@circ@res@other = \ctikzvalof{bipoles/vamericaninductor/coil height}\pgf@circ@scaled@Rlen
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {1,...,\ctikzvalof{bipoles/vamericaninductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@other}
+ }
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \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
+}
+
+%% Generic bipole, filled - used as inductor by some
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \anchor{midtap}{\northeast\pgf@x=0pt\relax}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/fullgeneric/height}}
+{fullgeneric}
+{\ctikzvalof{bipoles/fullgeneric/height}}
+{\ctikzvalof{bipoles/fullgeneric/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfusepath{draw,fill}
+}
+
+%% Generic sensor, filled - used as inductive sensor by some
+\pgfcircdeclarebipolescaled{inductors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{\southwest\pgf@x=0.4\pgf@x\pgf@y=2\pgf@y}%
+ \anchor{midtap}{\northeast\pgf@x=0pt\relax}
+ \pgfcirc@border@extend@full{1}{2}{1}{2}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/fullgeneric/height}}
+{sfullgeneric}
+{\ctikzvalof{bipoles/fullgeneric/height}}
+{\ctikzvalof{bipoles/fullgeneric/width}}
+{
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfusepath{draw,fill}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{-2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Generic full tunable
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \anchor{midtap}{\northeast\pgf@x=0pt\relax}
+ \saveddimen{\coredistance}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{bipoles/inductors/core distance}}}
+ \anchor{core east}{%
+ \northeast\pgf@y=0.4\pgf@y\advance\pgf@y by \coredistance
+ }
+ \anchor{core west}{%
+ \northeast\pgf@y=0.4\pgf@y\advance\pgf@y by \coredistance\pgf@x=-\pgf@x
+ }
+}
+{\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}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfusepath{draw,fill}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \ifpgf@circ@fixtunable@dir
+ \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+}
+% %>>>
+
+%% Paths for Inductors%<<<
+%% these are complex because of the three-way set
+%% should be simplified
+\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%
+}
+\pgfcirc@path@to@style{l}{inductor}{inductor}{}
+\pgfcirc@style@to@style{inductor}{L}
+\pgfcirc@activate@bipole{l}{europeaninductor}{fullgeneric}{european inductor}
+\pgfcirc@activate@bipole{l}{americaninductor}{americaninductor}{american inductor}
+\pgfcirc@activate@bipole{l}{cuteinductor}{cuteinductor}{cute inductor}
+
+\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%
+}
+\pgfcirc@path@to@style{l}{vinductor}{variable inductor}{}
+\pgfcirc@style@to@style{variable inductor}{vL}
+\pgfcirc@activate@bipole{l}{veuropeaninductor}{tfullgeneric}{variable european inductor}
+\pgfcirc@activate@bipole{l}{vamericaninductor}{vamericaninductor}{variable american inductor}
+\pgfcirc@activate@bipole{l}{vcuteinductor}{vcuteinductor}{variable cute inductor}
+
+\def\pgf@circ@inductivesens@path#1{%
+ \pgfextra{
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ }
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgf@circ@europeaninductivesens@path{#1}%
+ \else%
+ \pgfextra{ \def\pgf@temp{cute} }%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgf@circ@cuteinductivesens@path{#1}%
+ \else%
+ \pgf@circ@americaninductivesens@path{#1}%
+ \fi%
+ \fi%
+}
+\pgfcirc@path@to@style{l}{inductivesens}{inductive sensor}{}
+\pgfcirc@style@to@style{inductive sensor}{sL}
+\pgfcirc@activate@bipole{l}{europeaninductivesens}{sfullgeneric}{european inductive sensor}
+\pgfcirc@activate@bipole{l}{americaninductivesens}{samericaninductor}{american inductive sensor}
+\pgfcirc@activate@bipole{l}{cuteinductivesens}{scuteinductor}{cute inductive sensor}
+
+\pgfcirc@activate@bipole{l}{cutechoke}{cutechoke}{cute choke}
+% %>>>
+
+%%%%%%%%%%%
+%% Sources (batteries, independent, dependents and so on
+%%%%%%%%%%%
+
+% Definitions for Sources%<<<1
+
+\ctikzset{bipoles/esource/height/.initial=.60}
+\ctikzset{bipoles/esource/width/.initial=.60}
+\ctikzset{bipoles/pvsource/height/.initial=.60}
+\ctikzset{bipoles/pvsource/width/.initial=.60}
+\ctikzset{bipoles/pvmodule/height/.initial=.60}
+\ctikzset{bipoles/pvmodule/width/.initial=1.20}
+\ctikzset{bipoles/isource/height/.initial=.60}
+\ctikzset{bipoles/isource/width/.initial=.60}
+\ctikzset{bipoles/oosource/height/.initial=.60}
+\ctikzset{bipoles/oosource/width/.initial=.60}
+\ctikzset{bipoles/oosource/circlesize/.initial=.65}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/oosource/circleoffset/.initial=.35}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/dcisource/angle/.initial=80}
+\ctikzset{bipoles/dcisource/height/.initial=.60}
+\ctikzset{bipoles/dcisource/width/.initial=.60}
+\ctikzset{bipoles/dcvsource/height/.initial=.60}
+\ctikzset{bipoles/dcvsource/width/.initial=.60}
+\ctikzset{bipoles/vsourcetri/height/.initial=.60}
+\ctikzset{bipoles/vsourcetri/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/ecsource/height/.initial=.7}
+\ctikzset{bipoles/ecsource/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/battery/height/.initial=.6}
+\ctikzset{bipoles/battery/width/.initial=.3}
+\ctikzset{bipoles/battery1/height/.initial=.6}
+\ctikzset{bipoles/battery1/width/.initial=.3}
+\ctikzset{bipoles/battery2/height/.initial=.6}
+\ctikzset{bipoles/battery2/width/.initial=.3}
+% noise sources
+\ctikzset{bipoles/noise sources/fillcolor/.initial=gray!50}
+
+% for special symbols in the sources: sin, square, triangle, delta, wye, zig, etc.
+\ctikzset{sources/symbol/thickness/.initial={1}}
+\ctikzset{csources/symbol/thickness/.initial={1}}
+\ctikzset{sources/symbol/rotate/.initial={90}}
+\ctikzset{csources/symbol/rotate/.initial={90}}
+
+% % % ootransformer
+\ctikzset{bipoles/oosourcetrans/height/.initial=.6}
+\ctikzset{bipoles/oosourcetrans/width/.initial=.6}
+\ctikzset{bipoles/oosourcetrans/circlesize/.initial=.6}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/oosourcetrans/circleoffset/.initial=.4}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/oosourcetrans/vectorgroupscale/.initial=1}
+
+% % % oootransformer
+\ctikzset{bipoles/ooosource/height/.initial=.6}
+\ctikzset{bipoles/ooosource/circlesize/.initial=.55}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/ooosource/circleoffset/.initial=.45}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/ooosource/vectorgroupscale/.initial=1}
+
+% % % primary windings
+\newif\ifpgf@circ@prim@delta
+\newif\ifpgf@circ@prim@wye
+\newif\ifpgf@circ@prim@zig
+\pgfkeys{tikz/prim/.is choice}
+\pgfkeys{tikz/prim/delta/.add code={}{\pgf@circ@prim@deltatrue}}
+\pgfkeys{tikz/prim/wye/.add code={}{\pgf@circ@prim@wyetrue}}
+\pgfkeys{tikz/prim/zig/.add code={}{\pgf@circ@prim@zigtrue}}
+
+% % % secondary windings
+\newif\ifpgf@circ@sec@delta
+\newif\ifpgf@circ@sec@wye
+\newif\ifpgf@circ@sec@zig
+\pgfkeys{tikz/sec/.is choice}
+\pgfkeys{tikz/sec/delta/.add code={}{\pgf@circ@sec@deltatrue}}
+\pgfkeys{tikz/sec/wye/.add code={}{\pgf@circ@sec@wyetrue}}
+\pgfkeys{tikz/sec/zig/.add code={}{\pgf@circ@sec@zigtrue}}
+
+% % % tertiary windings (ooosource)
+\newif\ifpgf@circ@tert@delta
+\newif\ifpgf@circ@tert@wye
+\newif\ifpgf@circ@tert@zig
+\pgfkeys{tikz/tert/.is choice}
+\pgfkeys{tikz/tert/delta/.add code={}{\pgf@circ@tert@deltatrue}}
+\pgfkeys{tikz/tert/wye/.add code={}{\pgf@circ@tert@wyetrue}}
+\pgfkeys{tikz/tert/zig/.add code={}{\pgf@circ@tert@zigtrue}}%
+
+%%>>>
+
+%% Nodes definitions for sources%<<<
+
+%% Battery
+\pgfcircdeclarebipolescaled{batteries}
+{}
+{\ctikzvalof{bipoles/battery/height}}
+{battery}
+{\ctikzvalof{bipoles/battery/height}}
+{\ctikzvalof{bipoles/battery/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/battery/width}\pgf@circ@scaled@Rlen
+ \divide \pgf@circ@res@step by 6
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \ifpgf@circ@fixbatteries
+ \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}}
+ \else
+ \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@step}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{.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@right}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+}
+
+
+%% Battery 1 % poles with equl thickness
+
+\pgfcircdeclarebipolescaled{batteries}
+{}
+{\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}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \ifpgf@circ@fixbatteries
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+}
+
+%% Battery 2 % negative pole thicker
+
+\pgfcircdeclarebipolescaled{batteries}
+{}
+{\ctikzvalof{bipoles/battery2/height}}
+{battery2}
+{\ctikzvalof{bipoles/battery2/height}}
+{\ctikzvalof{bipoles/battery2/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}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \ifpgf@circ@fixbatteries
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{3\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{3\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+}
+
+%%%%%%%%%%%
+%% Round and diamond sources
+%%%%%%%%%%%
+
+% % % symbol drawing macros (NOT for delta, wye, zig)
+\def\pgf@circ@sources@symbol@setup{% called in a pgfscope
+ \edef\@@@auto{auto}\edef\@@@rotate{\ctikzvalof{\ctikzclass/symbol/rotate}}
+ \ifx\@@@auto\@@@rotate
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\@@@rotate}{-atan2(\b,\a)}
+ \fi
+ \pgftransformrotate{\@@@rotate}%
+ \pgf@circ@set@relative@thickness{symbol/thickness}%
+}
+
+%% Independent voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsource/height}}
+{vsource}
+{\ctikzvalof{bipoles/vsource/height}}
+{\ctikzvalof{bipoles/vsource/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+}
+
+%% To change the internal symbols of the voltage source american style
+\ctikzset{bipoles/vsourceam/inner plus/.initial={$+$}}
+\ctikzset{bipoles/vsourceam/inner minus/.initial={$-$}}
+%% Independent voltage source - American style
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsourceam/height}}
+{vsourceAM}
+{\ctikzvalof{bipoles/vsourceam/height}}
+{\ctikzvalof{bipoles/vsourceam/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfsetcolor{\ctikzvalof{color}}
+ \ifpgf@circ@oldvoltagedirection
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner plus}}
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner minus}}
+ \else
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner minus}}
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner plus}}
+ \fi
+}
+
+%% Independent sinusoidal voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsourcesin/height}}
+{vsourcesin}
+{\ctikzvalof{bipoles/vsourcesin/height}}
+{\ctikzvalof{bipoles/vsourcesin/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+}
+
+% Square Voltage source - contributed by Alistair Kwan
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsourcesquare/height}}
+{vsourcesquare}
+{\ctikzvalof{bipoles/vsourcesquare/height}}
+{\ctikzvalof{bipoles/vsourcesquare/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+}
+
+% Triangle Voltage source - contributed by Ralf Farkas
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsourcetri/height}}
+{vsourcetri}
+{\ctikzvalof{bipoles/vsourcetri/height}}
+{\ctikzvalof{bipoles/vsourcetri/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@up}{0cm}}
+ \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@up}{0.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@up}{-0.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{1\pgf@circ@res@up}{0\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% PV Source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/pvsource/height}}
+{pvsource}
+{\ctikzvalof{bipoles/pvsource/height}}
+{\ctikzvalof{bipoles/pvsource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgf@circ@draworfill
+
+ \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@right}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}}
+ \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@left}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgfusepath{draw}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@left}{.4\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.15\pgf@circ@res@left}{.4\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@right}{.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.15\pgf@circ@res@right}{.6\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ %Arrow Part
+ \pgfscope
+ \pgfsetarrowsend{latex}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{.3\pgf@circ@res@left}{0}}{\pgfpointpolar{-45}{2.2\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{.3\pgf@circ@res@left}{0}}{\pgfpointpolar{-45}{1.3\pgf@circ@res@up}}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{0}{0.3\pgf@circ@res@up}}{\pgfpointpolar{-45}{2.2\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{0}{0.3\pgf@circ@res@up}}{\pgfpointpolar{-45}{1.3\pgf@circ@res@up}}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+}
+
+%% PV Module - contributed by Andre Alves
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/pvmodule/height}}
+{pvmodule}
+{\ctikzvalof{bipoles/pvmodule/height}}
+{\ctikzvalof{bipoles/pvmodule/width}}
+{
+
+ % Draw rectangle
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ % Draw triangle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+
+ \pgfusepath{draw}
+}
+
+%% Empty Source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/esource/height}}
+{esource}
+{\ctikzvalof{bipoles/esource/height}}
+{\ctikzvalof{bipoles/esource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+}
+
+%% DC Current Source with open shape
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/dcisource/height}}
+{dcisource}
+{\ctikzvalof{bipoles/dcisource/height}}
+{\ctikzvalof{bipoles/dcisource/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@maybefill
+ \edef\@@angle{\ctikzvalof{bipoles/dcisource/angle}}
+ \pgfpathmoveto{\pgfpointpolar{\@@angle}{\pgf@circ@res@up}}
+ \pgfpatharc{\@@angle}{-\@@angle}{\pgf@circ@res@up}
+ \pgfpathmoveto{\pgfpointpolar{180-\@@angle}{\pgf@circ@res@up}}
+ \pgfpatharc{180-\@@angle}{180+\@@angle}{\pgf@circ@res@up}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.6\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
+}
+
+%% DC-Voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/dcvsource/height}}
+{dcvsource}
+{\ctikzvalof{bipoles/dcvsource/height}}
+{\ctikzvalof{bipoles/dcvsource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@up}{.5\pgf@circ@res@left}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@up}{.5\pgf@circ@res@right}}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@down}{.5\pgf@circ@res@left}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@down}{.5\pgf@circ@res@right}}
+ \pgfusepath{draw}
+}
+
+%% Independent current source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isource/height}}
+{isource}
+{\ctikzvalof{bipoles/isource/height}}
+{\ctikzvalof{bipoles/isource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgf@circ@draworfill
+}
+
+%% Independent double oo source
+\pgfcircdeclarebipolescaled{sources}
+{
+ \anchor{centerprim}{
+ \northeast
+ \pgf@y=0pt\relax
+ \pgf@x=-\ctikzvalof{bipoles/oosource/circleoffset}\pgf@x
+ }
+ \anchor{centersec}{
+ \northeast
+ \pgf@y=0pt\relax
+ \pgf@x=\ctikzvalof{bipoles/oosource/circleoffset}\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/oosource/height}}
+{oosource}
+{\ctikzvalof{bipoles/oosource/height}}
+{\ctikzvalof{bipoles/oosource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosource/circleoffset}\pgf@circ@res@left}{0}}
+ {\ctikzvalof{bipoles/oosource/circlesize}\pgf@circ@res@left}
+ \pgf@circ@maybefill
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosource/circleoffset}\pgf@circ@res@right}{0}}
+ {\ctikzvalof{bipoles/oosource/circlesize}\pgf@circ@res@right}
+ \pgf@circ@draworfill
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosource/circleoffset}\pgf@circ@res@left}{0}}
+ {\ctikzvalof{bipoles/oosource/circlesize}\pgf@circ@res@left}
+ \pgfusepath{draw}
+}
+
+% % % winding symbols
+\ctikzset{sources/symbol/delta scale/.initial={1}}
+\ctikzset{sources/symbol/wye scale/.initial={1}}
+\ctikzset{sources/symbol/zig scale/.initial={1}}
+% triangle
+\def\pgf@circ@delta#1{
+ \pgfscope
+ \pgftransformscale{-.01*\ctikzvalof{\ctikzclass/symbol/delta scale}*\pgf@circ@res@left*#1}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \pgftransformrotate{-\pgfcircmathresult}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{symbol/thickness}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0}{.866\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgfusepath{stroke}
+ \endpgfscope
+}
+
+% star
+\def\pgf@circ@wye#1{
+ \pgfscope
+ \pgftransformscale{-.015*\ctikzvalof{\ctikzclass/symbol/wye scale}*\pgf@circ@res@left*#1}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \pgftransformrotate{-\pgfcircmathresult}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{symbol/thickness}
+ \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{-30}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{-150}{\pgf@circ@res@down}}
+ \pgfusepath{stroke}
+ \endpgfscope
+}
+
+% zigzag
+\def\pgf@circ@zig#1{
+ \pgfscope
+ \pgftransformscale{-.015*\ctikzvalof{\ctikzclass/symbol/zig scale}*\pgf@circ@res@left*#1}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \pgftransformrotate{-\pgfcircmathresult}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{symbol/thickness}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{90}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{60}{\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{210}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{0}{\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{330}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{-60}{\pgf@circ@res@up}}
+ \pgfusepath{stroke}
+ \endpgfscope
+}
+
+% % % % round three-phase transformer
+\pgfcircdeclarebipolescaled{sources}
+{
+ \anchor{centerprim}{
+ \northeast
+ \pgf@y=0pt\relax
+ \pgf@x=-\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@x
+ }
+ \anchor{centersec}{
+ \northeast
+ \pgf@y=0pt\relax
+ \pgf@x=\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/oosourcetrans/height}}
+{oosourcetrans}
+{\ctikzvalof{bipoles/oosourcetrans/height}}
+{\ctikzvalof{bipoles/oosourcetrans/width}}
+{
+
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@left}{0}}
+ {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@maybefill
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@right}{0}}
+ {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@draworfill
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@left}{0}}
+ {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgfusepath{draw}
+ % % % % draw inner symbols
+ %%primary winding
+ \ifpgf@circ@prim@delta
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@delta{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@prim@wye
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@prim@zig
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+
+ %%secondary winding
+ \ifpgf@circ@sec@delta
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@delta{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@sec@wye
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@sec@zig
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+}
+
+
+% % % % ooosource for three phase transformer
+\pgfcircdeclarebipolescaled{sources}
+{
+ \anchor{right}{
+ \northeast
+ \pgf@y=0pt
+ \pgfmathparse{
+ \ctikzvalof{bipoles/ooosource/circleoffset}* sin(30) +
+ %%the sqrt must be > 0, the circles have to intersect
+ sqrt(
+ pow(\ctikzvalof{bipoles/ooosource/circlesize},2) -
+ pow(\ctikzvalof{bipoles/ooosource/circleoffset}*cos(30),2)
+ )
+ }
+ \pgf@x=\pgfmathresult\pgf@x
+ }
+ \anchor{east}{
+ \northeast
+ \pgf@y=0pt
+ }
+ \savedanchor{\centerprim}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@other
+ \pgf@y=0pt
+ \pgf@x=.5\pgf@circ@res@other
+ }
+ \anchor{centerprim}{
+ \centerprim
+ }
+ \savedanchor{\centersec}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@other
+ \pgfpointpolar{60}{.5\pgf@circ@res@other}
+ \pgf@y=-\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{centersec}{
+ \centersec
+ }
+ \savedanchor{\centertert}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@other
+ \pgfpointpolar{60}{.5\pgf@circ@res@other}
+ \pgf@y=\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{centertert}{
+ \centertert
+ }
+
+ % add some anchors in case the are needed :)
+ \anchor{prim1}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centerprim}{\pgfpointpolar{135}{.5\pgf@circ@res@other}}
+ }
+ \anchor{prim2}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centerprim}{\pgfpointpolar{-135}{.5\pgf@circ@res@other}}
+ }
+ \anchor{sec1}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centersec}{\pgfpointpolar{0}{.5\pgf@circ@res@other}}
+ }
+ \anchor{sec2}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centersec}{\pgfpointpolar{45}{.5\pgf@circ@res@other}}
+ }
+ \anchor{sec3}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centersec}{\pgfpointpolar{90}{.5\pgf@circ@res@other}}
+ }
+ \anchor{tert1}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centertert}{\pgfpointpolar{0}{.5\pgf@circ@res@other}}
+ }
+ \anchor{tert2}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centertert}{\pgfpointpolar{-45}{.5\pgf@circ@res@other}}
+ }
+ \anchor{tert3}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centertert}{\pgfpointpolar{-90}{.5\pgf@circ@res@other}}
+ }
+}
+{\ctikzvalof{bipoles/ooosource/height}}
+{ooosource}
+{\ctikzvalof{bipoles/ooosource/height}}
+{\ctikzvalof{bipoles/ooosource/height}}
+{
+% \pgf@circ@res@other = \ctikzvalof{bipoles/ooosource/vectorgroup} \pgf@circ@scaled@Rlen
+
+% % filling
+% left
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@left}{0}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left}
+ \pgf@circ@maybefill
+
+ % up
+ \pgfscope
+ \pgfpointorigin
+ \pgfpathcircle{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}
+ \pgf@circ@maybefill
+ \endpgfscope
+% down
+ \pgfscope
+ \pgfpointorigin
+ \pgfpathcircle{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+% drawing
+ % left
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@left}{0}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left}
+ \pgfusepath{draw}
+
+ % up
+ \pgfscope
+ \pgfpointorigin
+ \pgfpathcircle{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}
+ \pgfusepath{draw}
+ \endpgfscope
+
+% % % draw inner symbols
+
+% % primary winding
+ \ifpgf@circ@prim@delta
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left}
+ \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@prim@wye
+ \pgfscope
+ \pgftransformxshift{.6\pgf@circ@res@left}
+ \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@prim@zig
+ \pgfscope
+ \pgftransformxshift{.6\pgf@circ@res@left}
+ \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+
+% % secondary winding
+ \ifpgf@circ@sec@delta
+ \pgfscope
+ \pgfpointorigin
+ \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@sec@wye
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@sec@zig
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+
+% % tertiary winding
+ \ifpgf@circ@tert@delta
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@tert@wye
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@tert@zig
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+}
+
+%% Independent current source - American
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isourceam/height}}
+{isourceAM}
+{\ctikzvalof{bipoles/isourceam/height}}
+{\ctikzvalof{bipoles/isourceam/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+
+ \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
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isource/height}}
+{isourcesin}
+{\ctikzvalof{bipoles/isource/height}}
+{\ctikzvalof{bipoles/isource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+}
+
+%% Empty controlled source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/ecsource/height}}
+{ecsource}
+{\ctikzvalof{bipoles/ecsource/height}}
+{\ctikzvalof{bipoles/ecsource/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+}
+
+%% Controlled voltage source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsource/height}}
+{cvsource}
+{\ctikzvalof{bipoles/cvsource/height}}
+{\ctikzvalof{bipoles/cvsource/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+}
+
+%% To change the internal symbols of the controlled voltage source american style
+\ctikzset{bipoles/cvsourceam/inner plus/.initial={$+$}}
+\ctikzset{bipoles/cvsourceam/inner minus/.initial={$-$}}
+%% Controlled voltage source - American
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsourceam/height}}
+{cvsourceAM}
+{\ctikzvalof{bipoles/cvsourceam/height}}
+{\ctikzvalof{bipoles/cvsourceam/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ \pgfsetcolor{\ctikzvalof{color}}
+ \ifpgf@circ@oldvoltagedirection
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{\ctikzvalof{bipoles/cvsourceam/inner plus}}
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{\ctikzvalof{bipoles/cvsourceam/inner minus}}
+ \else
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{\ctikzvalof{bipoles/cvsourceam/inner minus}}
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{\ctikzvalof{bipoles/cvsourceam/inner plus}}
+ \fi
+}
+
+%% Controlled sinusoidal voltage source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsourcesin/height}}
+{cvsourcesin}
+{\ctikzvalof{bipoles/cvsourcesin/height}}
+{\ctikzvalof{bipoles/cvsourcesin/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsourcesin/height}}
+{cisourcesin}
+{\ctikzvalof{bipoles/cvsourcesin/height}}
+{\ctikzvalof{bipoles/cvsourcesin/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cisource/height}}
+{cisource}
+{\ctikzvalof{bipoles/cisource/height}}
+{\ctikzvalof{bipoles/cisource/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ \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
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cisourceam/height}}
+{cisourceAM}
+{\ctikzvalof{bipoles/cisourceam/height}}
+{\ctikzvalof{bipoles/cisourceam/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \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
+}
+
+%% Cute Independent voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsource/height}}
+{vsourceC}
+{\ctikzvalof{bipoles/vsource/height}}
+{\ctikzvalof{bipoles/vsource/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+%% Cute Independent current source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isource/height}}
+{isourceC}
+{\ctikzvalof{bipoles/isource/height}}
+{\ctikzvalof{bipoles/isource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{.6\pgf@circ@res@down}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+%% Cute Controlled voltage source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsource/height}}
+{cvsourceC}
+{\ctikzvalof{bipoles/cvsource/height}}
+{\ctikzvalof{bipoles/cvsource/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgf@circ@draworfill
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+%% Cute Controlled current source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cisource/height}}
+{cisourceC}
+{\ctikzvalof{bipoles/cisource/height}}
+{\ctikzvalof{bipoles/cisource/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgf@circ@draworfill
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@zero}{.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{.6\pgf@circ@res@down}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+%% Noise voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsource/height}}
+{vsourceN}
+{\ctikzvalof{bipoles/vsource/height}}
+{\ctikzvalof{bipoles/vsource/width}}
+{
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ %
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=0.125\pgf@circ@scaled@Rlen\relax
+ \edef\pgf@noise@temp{dashed}
+ \edef\pgf@noise@fill{\ctikzvalof{bipoles/noise sources/fillcolor}}
+ \ifx\pgf@noise@temp\pgf@noise@fill
+ % fillable in this case
+ \pgf@circ@draworfillandclip
+ \pgfmathsetmacro{\@@thinner}{.5*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thinner\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ %
+ \advance\pgf@circ@res@up by -4\pgf@circ@res@step \advance\pgf@circ@res@down by -4\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by -\pgf@circ@res@step\advance\pgf@circ@res@down by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by -\pgf@circ@res@step\advance\pgf@circ@res@down by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \else
+ \pgfsetfillcolor{\pgf@noise@fill}
+ \pgfusepath{draw,fill}
+ \fi
+ \endpgfscope
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+%% Noise current source
+
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isource/height}}
+{isourceN}
+{\ctikzvalof{bipoles/isource/height}}
+{\ctikzvalof{bipoles/isource/width}}
+{
+ \pgfpointorigin
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ %
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=0.125\pgf@circ@scaled@Rlen\relax
+ \edef\pgf@noise@temp{dashed}
+ \edef\pgf@noise@fill{\ctikzvalof{bipoles/noise sources/fillcolor}}
+ \ifx\pgf@noise@temp\pgf@noise@fill
+ % fillable in this case
+ \pgf@circ@draworfillandclip
+ \pgfmathsetmacro{\@@thinner}{.5*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thinner\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ %
+ \advance\pgf@circ@res@up by -4\pgf@circ@res@step \advance\pgf@circ@res@down by -4\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by -\pgf@circ@res@step\advance\pgf@circ@res@down by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by -\pgf@circ@res@step\advance\pgf@circ@res@down by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \else
+ \pgfsetfillcolor{\pgf@noise@fill}
+ \pgfusepath{draw,fill}
+ \fi
+ \endpgfscope
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{.6\pgf@circ@res@down}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+% %>>>
+
+%% Paths definitions for Sources%<<<
+
+%% Batteries
+
+\pgfcirc@activate@bipole@simple@opt{v}{battery}{\circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@activate@bipole@opt{v}{batteryone}{battery1}{battery1}{\circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@activate@bipole@opt{v}{batterytwo}{battery2}{battery2}{\circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+%% Sources: voltage
+
+\pgfcirc@activate@bipole@opt{v}{vsource}{vsource}{european voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@activate@bipole@opt{v}{vsourceam}{vsourceAM}{american voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=false}
+\pgfcirc@style@to@style{\ifpgf@circuit@europeanvoltage european \else american \fi voltage source}{voltage source}
+\pgfcirc@style@to@style{voltage source}{vsource}
+\pgfcirc@style@to@style{voltage source}{V}
+
+\pgfcirc@activate@bipole@opt{v}{cvsource}{cvsource}{european controlled voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@activate@bipole@opt{v}{cvsourceam}{cvsourceAM}{american controlled voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=false}
+\pgfcirc@style@to@style{\ifpgf@circuit@europeanvoltage european \else american \fi controlled voltage source}{controlled voltage source}
+\pgfcirc@style@to@style{controlled voltage source}{cvsource}
+\pgfcirc@style@to@style{controlled voltage source}{controlled vsource}
+\pgfcirc@style@to@style{controlled voltage source}{cV}
+
+\pgfcirc@activate@bipole@simple@opt{v}{esource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@opt{v}{ecsource}{ecsource}{empty controlled source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{empty controlled source}{ecsource}
+
+\pgfcirc@activate@bipole@opt{v}{vsourcesin}{vsourcesin}{sinusoidal voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{sinusoidal voltage source}{vsourcesin}
+\pgfcirc@style@to@style{sinusoidal voltage source}{sV}
+
+\pgfcirc@activate@bipole@opt{v}{cvsourcesin}{cvsourcesin}{controlled sinusoidal voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{controlled sinusoidal voltage source}{cvsourcesin}
+\pgfcirc@style@to@style{controlled sinusoidal voltage source}{controlled vsourcesin}
+\pgfcirc@style@to@style{controlled sinusoidal voltage source}{csV}
+
+\pgfcirc@activate@bipole@opt{v}{vsourcesquare}{vsourcesquare}{square voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{square voltage source}{vsourcesquare}
+\pgfcirc@style@to@style{square voltage source}{sqV}
+
+\pgfcirc@activate@bipole@opt{v}{vsourcetri}{vsourcetri}{triangle voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{triangle voltage source}{vsourcetri}
+\pgfcirc@style@to@style{triangle voltage source}{tV}
+
+\pgfcirc@activate@bipole@simple@opt{v}{pvsource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@simple@opt{v}{pvmodule}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@simple@opt{v}{dcvsource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@opt{v}{oosource}{oosource}{voosource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@simple@opt{v}{ooosource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@simple@opt{v}{oosourcetrans}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@opt{v}{vsourceC}{vsourceC}{cute european voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{cute european voltage source}{vsourceC}
+\pgfcirc@style@to@style{cute european voltage source}{ceV}
+
+\pgfcirc@activate@bipole@opt{v}{cvsourceC}{cvsourceC}{cute european controlled voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{cute european controlled voltage source}{cvsourceC}
+\pgfcirc@style@to@style{cute european controlled voltage source}{cceV}
+
+\pgfcirc@activate@bipole@opt{v}{vsourceN}{vsourceN}{noise voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{noise voltage source}{vsourceN}
+\pgfcirc@style@to@style{noise voltage source}{nV}
+
+%% Sources: current
+
+\pgfcirc@activate@bipole@opt{i}{isource}{isource}{european current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@activate@bipole@opt{i}{isourceam}{isourceAM}{american current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{\ifpgf@circuit@europeancurrent european \else american \fi current source}{current source}
+\pgfcirc@style@to@style{current source}{isource}
+\pgfcirc@style@to@style{current source}{I}
+
+\pgfcirc@activate@bipole@opt{i}{cisource}{cisource}{european controlled current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@activate@bipole@opt{i}{cisourceam}{cisourceAM}{american controlled current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{\ifpgf@circuit@europeanvoltage european \else american \fi controlled current source}{controlled current source}
+\pgfcirc@style@to@style{controlled current source}{cisource}
+\pgfcirc@style@to@style{controlled current source}{controlled isource}
+\pgfcirc@style@to@style{controlled current source}{cI}
+
+\pgfcirc@activate@bipole@opt{i}{isourcesin}{isourcesin}{sinusoidal current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{sinusoidal current source}{isourcesin}
+\pgfcirc@style@to@style{sinusoidal current source}{sI}
+
+\pgfcirc@activate@bipole@opt{i}{cisourcesin}{cisourcesin}{controlled sinusoidal current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{controlled sinusoidal current source}{cisourcesin}
+\pgfcirc@style@to@style{controlled sinusoidal current source}{controlled isourcesin}
+\pgfcirc@style@to@style{controlled sinusoidal current source}{csI}
+
+\pgfcirc@activate@bipole@simple@opt{i}{dcisource}{%
+ \circuitikzbasekey/bipole/is current=true}
+
+\pgfcirc@activate@bipole@opt{i}{oosource}{oosource}{ioosource}{%
+ \circuitikzbasekey/bipole/is current=true}
+
+\pgfcirc@activate@bipole@opt{i}{isourceC}{isourceC}{cute european current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{cute european current source}{isourceC}
+\pgfcirc@style@to@style{cute european current source}{ceI}
+
+\pgfcirc@activate@bipole@opt{i}{cisourceC}{cisourceC}{cute european controlled current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{cute european controlled current source}{cisourceC}
+\pgfcirc@style@to@style{cute european controlled current source}{cceI}
+
+\pgfcirc@activate@bipole@opt{i}{isourceN}{isourceN}{noise current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{noise current source}{isourceN}
+\pgfcirc@style@to@style{noise current source}{nI}
+
+% build alias with voltage and current directions (legacy)
+
+\def\pgf@temp#1{
+ \pgfcirc@style@to@style@label{voltage source}{V#1}{v#1}
+ \pgfcirc@style@to@style@label{controlled voltage source}{cV#1}{v#1}
+ \pgfcirc@style@to@style@label{sinusoidal voltage source}{sV#1}{v#1}
+ \pgfcirc@style@to@style@label{controlled sinusoidal voltage source}{csV#1}{v#1}
+}
+\pgf@temp{_>} \pgf@temp{_<} \pgf@temp{^>} \pgf@temp{^<}
+\pgf@temp{>} \pgf@temp{<} \pgf@temp{^} \pgf@temp{_}
+\def\pgf@temp#1{
+ \pgfcirc@style@to@style@label{current source}{I#1}{i#1}
+ \pgfcirc@style@to@style@label{controlled current source}{cI#1}{i#1}
+ \pgfcirc@style@to@style@label{sinusoidal current source}{sI#1}{i#1}
+ \pgfcirc@style@to@style@label{controlled sinusoidal current source}{csI#1}{i#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{_}
+% %>>>
+
+%%%%%%%%%%%%%%
+%% Diodes
+%%%%%%%%%%%%%%
+
+% Definitions for diodes%<<<1
+
+\ctikzset{bipoles/diode/height/.initial=.50}
+\ctikzset{bipoles/diode/width/.initial=.40}
+\ctikzset{bipoles/bidirectionaldiode/height/.initial=1.1}
+\ctikzset{bipoles/bidirectionaldiode/width/.initial=1}
+\ctikzset{bipoles/bidirectionaldiode/diode width left/.initial=.3}
+\ctikzset{bipoles/bidirectionaldiode/diode width right/.initial=.3}
+\ctikzset{bipoles/varcap/height/.initial=.50}
+\ctikzset{bipoles/varcap/width/.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/thyristor/gate height/.initial=0.0} % legacy 0
+\ctikzset{tripoles/thyristor/gate kink/.initial=1.0} % legacy 1.0
+\ctikzset{tripoles/thyristor/gto space up/.initial=0.5} % legacy 0.5
+\ctikzset{tripoles/thyristor/gto space down/.initial=0.0} % legacy 0.0
+\ctikzset{tripoles/thyristor/gto bar width/.initial=0.2} % legacy 0.2
+
+\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/triac/gate kink/.initial=1}
+
+\ctikzset{thyristor style/.is choice}
+\ctikzset{thyristor style/legacy/.code={%
+ \ctikzset{tripoles/thyristor/height=1.1}%
+ \ctikzset{tripoles/thyristor/height 2=.5}%
+ \ctikzset{tripoles/thyristor/width=1.0}%
+ \ctikzset{tripoles/thyristor/diode height=.5}%
+ \ctikzset{tripoles/thyristor/diode width left=.4}%
+ \ctikzset{tripoles/thyristor/diode width right=.3}%
+ \ctikzset{tripoles/thyristor/gate height=0.0}%
+ \ctikzset{tripoles/thyristor/gate kink=1.0}%
+ \ctikzset{tripoles/thyristor/gto space up=0.5}%
+ \ctikzset{tripoles/thyristor/gto space down=0.0}%
+ \ctikzset{tripoles/thyristor/gto bar width=0.2}%
+ \ctikzset{tripoles/triac/gate kink=1}%
+}}
+\ctikzset{thyristor style/compact/.code={%
+ \ctikzset{tripoles/thyristor/height=0.8}% legacy 1.1
+ \ctikzset{tripoles/thyristor/height 2=.5}%
+ \ctikzset{tripoles/thyristor/width=1.0}%
+ \ctikzset{tripoles/thyristor/diode height=.5}%
+ \ctikzset{tripoles/thyristor/diode width left=.4}%
+ \ctikzset{tripoles/thyristor/diode width right=.4}%legacy 0.3
+ \ctikzset{tripoles/thyristor/gate height=0.5}% legacy 0
+ \ctikzset{tripoles/thyristor/gate kink=0.7}% legacy 1.0
+ \ctikzset{tripoles/thyristor/gto space up=0.25}% legacy 0.5
+ \ctikzset{tripoles/thyristor/gto space down=0.25}% legacy 0.0
+ \ctikzset{tripoles/thyristor/gto bar width=0.2}%
+ \ctikzset{tripoles/triac/gate kink=.7}%
+}}
+
+%
+% Flipping arrows in LED and photodiodes
+%
+\newif\ifpgf@led@fliparrows
+\newif\ifpgf@pd@fliparrows
+\pgf@led@fliparrowsfalse
+\pgf@pd@fliparrowsfalse
+%
+% by default the arrows start (LED) and go (PD) to the anode.
+%
+\ctikzset{led arrows from anode/.code=\pgf@led@fliparrowsfalse}
+\ctikzset{pd arrows to anode/.code=\pgf@pd@fliparrowsfalse}
+%
+% but they can start form the cathode (LED) or go to it (PD)
+%
+\ctikzset{led arrows from cathode/.code=\pgf@led@fliparrowstrue}
+\ctikzset{pd arrows to cathode/.code=\pgf@pd@fliparrowstrue}
+
+\newif\ifpgf@circuit@strokediode
+\newif\ifpgf@circuit@fulldiode
+\pgf@circuit@strokediodefalse
+\pgf@circuit@fulldiodefalse
+
+\ctikzset{diode/.is choice}
+\ctikzset{diode/empty/.code = \pgf@circuit@fulldiodefalse\pgf@circuit@strokediodefalse}%default
+\ctikzset{diode/full/.code = \pgf@circuit@fulldiodetrue }
+\ctikzset{diode/stroke/.code = \pgf@circuit@strokediodetrue}
+
+\tikzset{full diodes/.style = { \circuitikzbasekey/diode = full}}
+\tikzset{empty diodes/.style = { \circuitikzbasekey/diode = empty}}
+\tikzset{stroke diodes/.style = { \circuitikzbasekey/diode = stroke}}
+
+%%>>>
+
+%% Node components for diodes %<<<1
+
+%% Black generic diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{fulldiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{fullzdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Black alternative zigzag Zener diode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.3}{1.3}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{fullzzdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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-1.8\pgf@circ@res@left}{\pgf@circ@res@down-0.5\pgf@circ@res@up}}
+ \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-0.2\pgf@circ@res@left}{\pgf@circ@res@up-0.5\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Black Schottky diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{fullsdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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-.6\pgf@circ@res@left}{.6\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\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.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.4\pgf@circ@res@left}{.6\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+}
+
+%% Black tunnel diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{fulltdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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-.6\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-.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%
+% draw LED arrows
+%
+\def\pgf@circ@draw@ledarrows{%
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsend{latexslim}
+ \ifpgf@led@fliparrows
+ \pgfpathmoveto{\pgfpoint{0pt}{0.8\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-0.6\pgf@circ@res@right}{1.8\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@right}{0.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{1.6\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \else
+ \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}
+ \fi
+}
+%
+% ---and photodiode arrows
+%
+\def\pgf@circ@draw@pdarrows{%
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsstart{latexslim}
+ \ifpgf@pd@fliparrows
+ \pgfpathmoveto{\pgfpoint{0pt}{0.8\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-0.6\pgf@circ@res@right}{1.8\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@right}{0.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{1.6\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \else
+ \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}
+ \fi
+}
+%
+% --and laser diode arrows - contributed by Andre Alves
+%
+\def\pgf@circ@draw@laserarrows{%
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsend{latexslim}
+ \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{1.1\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-0.4\pgf@circ@res@right}{2.1\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{1.1\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.2\pgf@circ@res@right}{2.1\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+%% Black light emitting diode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{fulllediode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+ \pgf@circ@draw@ledarrows
+}
+
+%% Black laser diode - contributed by Andre Alves
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{fulllaserdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgf@circ@draw@laserarrows
+}
+
+%% Black photodiode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{fullpdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+ \pgf@circ@draw@pdarrows
+}
+
+%% Black varcap
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/varcap/height}}
+{fullvarcap}
+{\ctikzvalof{bipoles/varcap/height}}
+{\ctikzvalof{bipoles/varcap/width}}
+{
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgfsetlinewidth{\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfusepath{draw,fill}
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+%% Code for the diode triangle
+\def\pgf@circ@basicdiodeshape{
+ % \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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfscope
+ % to allow filling, we need to draw explicitly the stroke here.
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \ifpgf@circuit@bipole@strokedsymbol
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \endpgfscope
+ % \endpgfscope
+}
+
+%% Empty generic diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{emptydiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \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
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{emptyzdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \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}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-0.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Empty alternative zigzag Zener diode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.3}{1.3}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{emptyzzdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-1.8\pgf@circ@res@left}{\pgf@circ@res@down-0.5\pgf@circ@res@up}}
+ \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-0.2\pgf@circ@res@left}{\pgf@circ@res@up-0.5\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+%% Empty Schottky diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{emptysdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{.6\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\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.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.4\pgf@circ@res@left}{.6\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+}
+
+%% Empty tunnel diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{emptytdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.6\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-.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Empty light emitting diode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{emptylediode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgf@circ@draw@ledarrows
+}
+
+%% Empty laser diode - contributed by Andre Alves
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{emptylaserdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgf@circ@draw@laserarrows
+}
+
+%% Empty photodiode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{emptypdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgf@circ@draw@pdarrows
+}
+
+%% Empty varcap
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/varcap/height}}
+{emptyvarcap}
+{\ctikzvalof{bipoles/varcap/height}}
+{\ctikzvalof{bipoles/varcap/width}}
+{
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgfsetlinewidth{\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ % \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfscope
+ % to allow filling, we need to draw explicitily the stroke here.
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \ifpgf@circuit@bipole@strokedsymbol
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \endpgfscope
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+%% Empty bidirectionaldiode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/bidirectionaldiode/height}}
+{emptybidirectionaldiode}
+{\ctikzvalof{bipoles/bidirectionaldiode/height}}
+{\ctikzvalof{bipoles/bidirectionaldiode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgf@circ@res@other = \ctikzvalof{bipoles/bidirectionaldiode/diode width left}\pgf@circ@res@left
+ \pgf@circ@res@step = \ctikzvalof{bipoles/bidirectionaldiode/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)}}
+
+ \pgf@circ@draworfill
+
+ \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}
+}
+
+%% Full bidirectionaldiode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/bidirectionaldiode/height}}
+{fullbidirectionaldiode}
+{\ctikzvalof{bipoles/bidirectionaldiode/height}}
+{\ctikzvalof{bipoles/bidirectionaldiode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgf@circ@res@other = \ctikzvalof{bipoles/bidirectionaldiode/diode width left}\pgf@circ@res@left
+ \pgf@circ@res@step = \ctikzvalof{bipoles/bidirectionaldiode/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, fill}
+
+ \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}
+}
+
+%%% Thyristors in general
+
+
+\def\pgfcircdeclarethyristor#1#2#3#4{%name, fill (0-> black; 1-empty), gate position (1: catode, -1: anode), extra code
+ \pgfcircdeclarebipolescaled{diodes}
+ {
+ \savedmacro{\gatekink}{\edef\gatekink{\ctikzvalof{tripoles/thyristor/gate kink}}}
+ \anchor{gate}{\northeast\pgf@x=\gatekink\pgf@x\pgf@x=#3\pgf@x}
+ \anchor{G}{\northeast\pgf@x=\gatekink\pgf@x\pgf@x=#3\pgf@x}
+ \anchor{anode}{\southwest\pgf@y=0cm}
+ \anchor{cathode}{\northeast\pgf@y=0cm }
+ }
+ {\ctikzvalof{tripoles/thyristor/height 2}}
+ {#1}
+ {\ctikzvalof{tripoles/thyristor/height}}
+ {\ctikzvalof{tripoles/thyristor/width}}
+ {
+ \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
+ % draw the thick parts here (shifted horizontally)
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % draw the basic triangle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathclose
+ \ifnum#2=0\relax
+ \pgfusepath{draw,fill}
+ \else
+ \pgf@circ@draworfill
+ \fi
+ % draw the vertical bar
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % back to normal linewidth
+ % stroke if needed
+ \ifpgf@circuit@bipole@strokedsymbol
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ % draw the gate thing;
+ #4
+
+ % draw the leads in/out
+ \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}
+ }
+}
+
+\def\pgfcirc@thyristor@simplegate{%
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@step}
+ {\ctikzvalof{tripoles/thyristor/gate height}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+}
+
+%% Black thyristor
+\pgfcircdeclarethyristor{fullthyristor}{0}{1}{\pgfcirc@thyristor@simplegate}
+%% Empty thyristor
+\pgfcircdeclarethyristor{emptythyristor}{1}{1}{\pgfcirc@thyristor@simplegate}
+%% black and empty GTO (standard: double line symbol, no arrow)
+
+\def\pgfcirc@doublegate@gto@add{
+ % connection to gate terminal
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up -
+ \ctikzvalof{tripoles/thyristor/gto space down}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+ \pgfscope
+ \pgfcirc@set@arrows{gto gate}{}{}
+ % \pgfsetarrowsstart{latexslim}
+ % first (lower) gto line: from body to gate
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@step}
+ {(\ctikzvalof{tripoles/thyristor/gate height}-\ctikzvalof{tripoles/thyristor/gto space down})
+ *\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up -
+ \ctikzvalof{tripoles/thyristor/gto space down}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+ % second (higher) gto line: from gate to body
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up +
+ \ctikzvalof{tripoles/thyristor/gto space up}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@step}
+ {(\ctikzvalof{tripoles/thyristor/gate height}+\ctikzvalof{tripoles/thyristor/gto space up})
+ *\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+ \endpgfscope
+}
+\pgfcircdeclarethyristor{fullgto}{0}{1}{\pgfcirc@doublegate@gto@add}
+\pgfcircdeclarethyristor{emptygto}{1}{1}{\pgfcirc@doublegate@gto@add}
+
+\def\pgfcirc@bargate@gto@add{%
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@step}
+ {\ctikzvalof{tripoles/thyristor/gate height}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\pgf@circ@res@up}
+ }
+ % draw bar line.
+ \pgfpathmoveto{\pgfpoint
+ {(\ctikzvalof{tripoles/thyristor/gate kink}-\ctikzvalof{tripoles/thyristor/gto bar width})*\pgf@circ@res@right}
+ {(1+\ctikzvalof{tripoles/thyristor/diode height})*0.5*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {(\ctikzvalof{tripoles/thyristor/gate kink}+\ctikzvalof{tripoles/thyristor/gto bar width})*\pgf@circ@res@right}
+ {(1+\ctikzvalof{tripoles/thyristor/diode height})*0.5*\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarethyristor{fullgtobar}{0}{1}{\pgfcirc@bargate@gto@add}
+\pgfcircdeclarethyristor{emptygtobar}{1}{1}{\pgfcirc@bargate@gto@add}
+
+%% Thyristors with anode-connected gate
+
+\def\pgfcirc@thyristor@anodegate{%
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@other}
+ {\ctikzvalof{tripoles/thyristor/gate height}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@left}
+ {\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+}
+
+%% Black PUT
+\pgfcircdeclarethyristor{fullput}{0}{-1}{\pgfcirc@thyristor@anodegate}
+%% Empty PUT
+\pgfcircdeclarethyristor{emptyput}{1}{-1}{\pgfcirc@thyristor@anodegate}
+%% black and empty GTO (standard: double line symbol, no arrow)
+
+\def\pgfcirc@anodebargate@gto@add{%
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@other}
+ {\ctikzvalof{tripoles/thyristor/gate height}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@left}
+ {\pgf@circ@res@up}
+ }
+ % draw bar line.
+ \pgfpathmoveto{\pgfpoint
+ {(\ctikzvalof{tripoles/thyristor/gate kink}-\ctikzvalof{tripoles/thyristor/gto bar width})*\pgf@circ@res@left}
+ {(1+\ctikzvalof{tripoles/thyristor/diode height})*0.5*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {(\ctikzvalof{tripoles/thyristor/gate kink}+\ctikzvalof{tripoles/thyristor/gto bar width})*\pgf@circ@res@left}
+ {(1+\ctikzvalof{tripoles/thyristor/diode height})*0.5*\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarethyristor{fullagtobar}{0}{-1}{\pgfcirc@anodebargate@gto@add}
+\pgfcircdeclarethyristor{emptyagtobar}{1}{-1}{\pgfcirc@anodebargate@gto@add}
+
+% Triacs
+
+\def\pgfcircdeclaretriac#1#2{%name, fill (0-> black; 1-empty)
+ \pgfcircdeclarebipolescaled{diodes}
+ {
+ \savedmacro{\gatekink}{\edef\gatekink{\ctikzvalof{tripoles/triac/gate kink}}}
+ \anchor{gate}{\northeast\pgf@x=\gatekink\pgf@x}
+ \anchor{G}{\northeast\pgf@x=\gatekink\pgf@x}
+ \anchor{anode}{\southwest\pgf@y=0cm}
+ \anchor{cathode}{\northeast\pgf@y=0cm }
+ }
+ {\ctikzvalof{tripoles/triac/height}}
+ {#1}
+ {\ctikzvalof{tripoles/triac/height}}
+ {\ctikzvalof{tripoles/triac/width}}
+ {
+ \pgf@circ@setlinewidth{bipoles}{\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
+
+ % diodes forms
+ \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)}}
+
+ \ifnum#2=0\relax
+ \pgfusepath{draw,fill}
+ \else
+ \pgf@circ@draworfill
+ \fi
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+
+ % draw gate
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{-0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2)
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/triac/gate kink}*\pgf@circ@res@right}
+ {-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2)
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/triac/gate kink}*\pgf@circ@res@right}{\pgf@circ@res@up}} % sqrt(1/2)
+
+ % draw leads
+ \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}
+
+ }
+}
+
+\pgfcircdeclaretriac{fulltriac}{0}
+\pgfcircdeclaretriac{emptytriac}{1}
+
+% end of shape definitions for diodes%>>>
+
+%% Paths definitions for Diodes%<<<
+
+\def\pgfcirc@tmp@generatediodes#1#2{
+ \pgfcirc@activate@bipole{l}{#1diode}{#1diode}{#1 diode}
+ \pgfcirc@style@to@style{#1 diode}{D#2}
+ \pgfcirc@activate@bipole{l}{#1zdiode}{#1zdiode}{#1 Zener diode}
+ \pgfcirc@style@to@style{#1 Zener diode}{zD#2}
+ \pgfcirc@activate@bipole{l}{#1zzdiode}{#1zzdiode}{#1 ZZener diode}
+ \pgfcirc@style@to@style{#1 ZZener diode}{zzD#2}
+ \pgfcirc@activate@bipole{l}{#1sdiode}{#1sdiode}{#1 Schottky diode}
+ \pgfcirc@style@to@style{#1 Schottky diode}{sD#2}
+ \pgfcirc@activate@bipole{l}{#1tdiode}{#1tdiode}{#1 tunnel diode}
+ \pgfcirc@style@to@style{#1 tunnel diode}{tD#2}
+ \pgfcirc@activate@bipole{l}{#1lediode}{#1lediode}{#1 led}
+ \pgfcirc@style@to@style{#1 led}{leD#2}
+ \pgfcirc@activate@bipole{l}{#1laserdiode}{#1laserdiode}{#1 laser diode}
+ \pgfcirc@style@to@style{#1 laser diode}{lasD#2}
+ \pgfcirc@activate@bipole{l}{#1pdiode}{#1pdiode}{#1 photodiode}
+ \pgfcirc@style@to@style{#1 photodiode}{pD#2}
+ \pgfcirc@activate@bipole{l}{#1varcap}{#1varcap}{#1 varcap}
+ \pgfcirc@style@to@style{#1 varcap}{VC#2}
+ \pgfcirc@activate@bipole{l}{#1bidirectionaldiode}{#1bidirectionaldiode}{#1 bidirectionaldiode}
+ \pgfcirc@style@to@style{#1 bidirectionaldiode}{biD#2}
+ \pgfcirc@activate@bipole{l}{#1thyristor}{#1thyristor}{#1 thyristor}
+ \pgfcirc@style@to@style{#1 thyristor}{Ty#2}
+ \pgfcirc@activate@bipole{l}{#1put}{#1put}{#1 put}
+ \pgfcirc@style@to@style{#1 put}{PUT#2}
+ \pgfcirc@activate@bipole{l}{#1gto}{#1gto}{#1 gto}
+ \pgfcirc@style@to@style{#1 gto}{GTO#2}
+ \pgfcirc@activate@bipole{l}{#1gtobar}{#1gtobar}{#1 gtobar}
+ \pgfcirc@style@to@style{#1 gtobar}{GTOb#2}
+ \pgfcirc@activate@bipole{l}{#1agtobar}{#1agtobar}{#1 agtobar}
+ \pgfcirc@style@to@style{#1 agtobar}{aGTOb#2}
+ \pgfcirc@activate@bipole{l}{#1triac}{#1triac}{#1 triac}
+ \pgfcirc@style@to@style{#1 triac}{Tr#2}
+}
+\pgfcirc@tmp@generatediodes{full}{*}
+\pgfcirc@tmp@generatediodes{empty}{o}
+\def\pgfcirc@tmp@generatestrokeddiodes#1#2{
+ \pgfcirc@node@to@style{l}{emptydiode}{#1 diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 diode}{D#2}
+ \pgfcirc@node@to@style{l}{emptyzdiode}{#1 Zener diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 Zener diode}{zD#2}
+ \pgfcirc@node@to@style{l}{emptyzzdiode}{#1 ZZener diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 ZZener diode}{zzD#2}
+ \pgfcirc@node@to@style{l}{emptysdiode}{#1 Schottky diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 Schottky diode}{sD#2}
+ \pgfcirc@node@to@style{l}{emptytdiode}{#1 tunnel diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 tunnel diode}{tD#2}
+ \pgfcirc@node@to@style{l}{emptylediode}{#1 led}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 led}{leD#2}
+ \pgfcirc@node@to@style{l}{emptylaserdiode}{#1 laser diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 laser diode}{lasD#2}
+ \pgfcirc@node@to@style{l}{emptypdiode}{#1 photodiode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 photodiode}{pD#2}
+ \pgfcirc@node@to@style{l}{emptyvarcap}{#1 varcap}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 varcap}{VC#2}
+ \pgfcirc@node@to@style{l}{emptybidirectionaldiode}{#1 bidirectionaldiode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 bidirectionaldiode}{biD#2}
+ \pgfcirc@node@to@style{l}{emptythyristor}{#1 thyristor}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 thyristor}{Ty#2}
+ \pgfcirc@node@to@style{l}{emptyput}{#1 put}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 put}{PUT#2}
+ \pgfcirc@node@to@style{l}{emptygto}{#1 gto}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 gto}{GTO#2}
+ \pgfcirc@node@to@style{l}{emptygtobar}{#1 gtobar}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 gtobar}{GTOb#2}
+ \pgfcirc@node@to@style{l}{emptyagtobar}{#1 agtobar}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 agtobar}{aGTOb#2}
+ \pgfcirc@node@to@style{l}{emptytriac}{#1 triac}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 triac}{Tr#2}
+}
+\pgfcirc@tmp@generatestrokeddiodes{stroke}{-}
+\def\pgfcircdiodestylemacro{\ifpgf@circuit@strokediode stroke \else\ifpgf@circuit@fulldiode full \else empty \fi\fi}
+% these are auto-switching styles
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro diode}{diode}
+\pgfcirc@style@to@style{diode}{D}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro Zener diode}{Zener diode}
+\pgfcirc@style@to@style{Zener diode}{zD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro ZZener diode}{ZZener diode}
+\pgfcirc@style@to@style{ZZener diode}{zzD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro Schottky diode}{Schottky diode}
+\pgfcirc@style@to@style{Schottky diode}{sD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro tunnel diode}{tunnel diode}
+\pgfcirc@style@to@style{tunnel diode}{tD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro led}{led}
+\pgfcirc@style@to@style{led}{leD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro photodiode}{photodiode}
+\pgfcirc@style@to@style{photodiode}{pD}
+
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro laser diode}{laser diode}
+\pgfcirc@style@to@style{laser diode}{lasD}
+
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro varcap}{varcap}
+\pgfcirc@style@to@style{varcap}{VC}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro bidirectionaldiode}{bidirectionaldiode}
+\pgfcirc@style@to@style{bidirectionaldiode}{biD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro thyristor}{thyristor}
+\pgfcirc@style@to@style{thyristor}{Ty}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro put}{put}
+\pgfcirc@style@to@style{put}{PUT}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro gto}{gto}
+\pgfcirc@style@to@style{gto}{GTO}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro gtobar}{gtobar}
+\pgfcirc@style@to@style{gtobar}{GTOb}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro agtobar}{agtobar}
+\pgfcirc@style@to@style{agtobar}{aGTOb}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro triac}{triac}
+\pgfcirc@style@to@style{triac}{Tr}
+% %>>>
+
+%%%%%%%%%%%%%
+%% switches and buttons
+%%%%%%%%%%%%%
+
+%% Definitions for switches%<<<1
+
+\ctikzset{bipoles/spst/height/.initial=.35}
+\ctikzset{bipoles/spst/width/.initial=.35}
+\ctikzset{bipoles/spst/depth/.initial=.2}
+\ctikzset{bipoles/nos/height/.initial=.3}
+\ctikzset{bipoles/nos/width/.initial=.35}
+\ctikzset{bipoles/nos/depth/.initial=.2}
+\ctikzset{bipoles/ncs/height/.initial=.35}
+\ctikzset{bipoles/ncs/width/.initial=.35}
+\ctikzset{bipoles/ncs/depth/.initial=.2}
+\ctikzset{bipoles/pushbutton/height/.initial=.5}
+\ctikzset{bipoles/pushbutton/height 2/.initial=.2}
+\ctikzset{bipoles/pushbutton/width/.initial=.50}
+%%% reed switch
+\ctikzset{bipoles/reed/height/.initial=.4}
+\ctikzset{bipoles/reed/width/.initial=.8}% 0.35 in nos
+\ctikzset{bipoles/reed/depth/.initial=.4}
+%% Cute switches
+\ctikzset{bipoles/cuteswitch/shape/.initial={ocirc}}
+\ctikzset{bipoles/cuteswitch/height/.initial=.6}
+\ctikzset{bipoles/cuteswitch/height 2/.initial=.2}
+\ctikzset{bipoles/cuteswitch/width/.initial=.50}
+\ctikzset{bipoles/cuteswitch/thickness/.initial=1}
+
+\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}
+%%>>>
+
+%% Shapes Node for bipoles switches and similar things%<<<
+%% (Closing) SPST
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/spst/depth}}
+{cspst}
+{\ctikzvalof{bipoles/spst/height}}
+{\ctikzvalof{bipoles/spst/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpointpolar{90}{1.2\pgf@circ@res@right}}
+ \pgfpatharc{90}{-20}{1.2\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfsetbeveljoin
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Opening SPST
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/spst/depth}}
+{ospst}
+{\ctikzvalof{bipoles/spst/height}}
+{\ctikzvalof{bipoles/spst/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpointpolar{-10}{1.2\pgf@circ@res@right}}
+ \pgfpatharc{-10}{90}{1.2\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfsetbeveljoin
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Normal open Switch
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/nos/depth}}
+{nos}
+{\ctikzvalof{bipoles/nos/height}}
+{\ctikzvalof{bipoles/nos/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+}
+
+%% Normal closed Switch
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/ncs/depth}}
+{ncs}
+{\ctikzvalof{bipoles/ncs/height}}
+{\ctikzvalof{bipoles/ncs/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+%% Push Button
+\pgfcircdeclarebipolescaled{switches}
+{
+ \anchor{tip}{\northeast\pgf@x=0pt\relax}
+}
+{\ctikzvalof{bipoles/pushbutton/height 2}}
+{pushbutton}
+{\ctikzvalof{bipoles/pushbutton/height}}
+{\ctikzvalof{bipoles/pushbutton/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+}
+
+%% Normally closed Push Button
+\pgfcircdeclarebipolescaled{switches}
+{
+ \anchor{tip}{\northeast\pgf@x=0pt\relax}
+}
+{\ctikzvalof{bipoles/pushbutton/height 2}}
+{ncpushbutton}
+{\ctikzvalof{bipoles/pushbutton/height}}
+{\ctikzvalof{bipoles/pushbutton/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ % Warning, if the nodes will have a class, we have to touch this.
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@temp}}
+ \pgfpathmoveto{\pgfpoint{0}{-\pgf@circ@res@temp}}
+ \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}}
+}
+%% Push Button (normally closed but now open :-) see
+%% https://github.com/circuitikz/circuitikz/issues/128#issuecomment-731771299
+\pgfcircdeclarebipolescaled{switches}
+{
+ \anchor{tip}{
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \northeast\divide\pgf@y by 2\advance\pgf@y by \pgf@circ@res@temp
+ \pgf@x=0pt\relax
+ }
+}
+{\ctikzvalof{bipoles/pushbutton/height 2}}
+{pushbuttonc}
+{\ctikzvalof{bipoles/pushbutton/height}}
+{\ctikzvalof{bipoles/pushbutton/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@temp}}
+ \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@up/2+\pgf@circ@res@temp}}
+ \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}}
+}
+
+%% Normally closed Push Button now open
+\pgfcircdeclarebipolescaled{switches}
+{
+ \anchor{tip}{
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \northeast\divide\pgf@y by 2\advance\pgf@y by \pgf@circ@res@temp
+ \pgf@x=0pt\relax
+ }
+}
+{\ctikzvalof{bipoles/pushbutton/height 2}}
+{ncpushbuttono}
+{\ctikzvalof{bipoles/pushbutton/height}}
+{\ctikzvalof{bipoles/pushbutton/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ % Warning, if the nodes will have a class, we have to touch this.
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up/2}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@up/2}}
+ \pgfpathmoveto{\pgfpoint{0}{-\pgf@circ@res@up/2}}
+ \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@up/2+\pgf@circ@res@temp}}
+ \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}}
+}
+%%% reed switches
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/reed/depth}}
+{reed}
+{\ctikzvalof{bipoles/reed/height}}
+{\ctikzvalof{bipoles/reed/width}}
+{
+ % this is designed to be the same as a "nos".
+ \pgfmathsetmacro{\@@tmpx}{0.9*\ctikzvalof{bipoles/nos/width}/\ctikzvalof{bipoles/reed/width}}
+ \pgfmathsetmacro{\@@tmpy}{\ctikzvalof{bipoles/nos/height}/\ctikzvalof{bipoles/reed/height}}
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % eclosure
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@up}{\pgf@circ@res@up}}
+ \pgfpatharc{90}{-90}{\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@up}{-\pgf@circ@res@up}}
+ \pgfpatharc{270}{90}{\pgf@circ@res@up}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % switch
+ \pgfpathmoveto{\pgfpoint{\@@tmpx\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@right}{\@@tmpy\pgf@circ@res@up}}
+ % connection lines
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+ \endpgfscope
+ % connection lines
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+% cute switch "to" shapes help function
+% #1 -> name
+% #2 -> barposition
+% #3 -> arrowcode
+\long\def\pgfcircdeclarecutesw#1#2#3{
+ \pgfcircdeclarebipolescaled{switches}
+ {
+ \savedanchor\midlever{
+ % these values are calculated when we create the definition of the shape.
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/cuteswitch/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/cuteswitch/thickness}\pgf@circ@res@temp
+ \pgf@circ@res@down = -.5\pgf@y
+ \pgf@circ@res@up = .5\pgf@y
+ \pgfextracty{\pgf@circ@res@other}{#2}
+ \pgf@x=0pt
+ \pgf@y=.5\pgf@circ@res@other
+ }
+ % radius of the connector
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ % If cnnecting nodes are scaled, we have to modify this
+ \saveddimen{\radius}{\pgfmathsetlength\pgf@x{\pgf@circ@Rlen*\ctikzvalof{nodes width}}}
+ % shapename
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ % shape type
+ \savedmacro{\cshape}{\def\cshape{\ctikzvalof{bipoles/cuteswitch/shape}}}
+ % mid of the lever, to stack switches
+ \anchor{mid}{\midlever}
+ \anchor{cout}{\northeast \pgf@y=0cm}
+ \anchor{cin}{\southwest\pgf@y=0cm}
+ \anchor{out}{\northeast \pgf@y=0cm\advance\pgf@x by \radius}
+ \anchor{in}{\southwest\pgf@y=0cm\advance\pgf@x by -\radius}
+ }
+ {\ctikzvalof{bipoles/cuteswitch/height 2}}
+ {#1}
+ {\ctikzvalof{bipoles/cuteswitch/height}}
+ {\ctikzvalof{bipoles/cuteswitch/width}}{
+ \pgfscope
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ % If cnnecting nodes are scaled, we have to modify this
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/cuteswitch/thickness}\pgf@circ@res@temp
+ \pgfsetlinewidth{2\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{#2}
+ \pgfsetroundcap\pgfusepath{draw}
+ \endpgfscope
+ \pgfscope % arrow
+ #3
+ \endpgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{\cshape}{center}{}{\thisshape-in}{\pgfusepath{draw}}
+ \pgftransformshift{\pgfpoint{2\pgf@circ@res@right}{0pt}}
+ \pgfnode{\cshape}{center}{}{\thisshape-out}{\pgfusepath{draw}}
+ }
+}
+
+%% closed cute switch
+\pgfcircdeclarecutesw{cuteclosedswitch}
+ {\pgfpoint{\pgf@circ@res@right}{1.5\pgf@circ@res@temp}}
+ {}
+
+%% open cute switch
+\pgfcircdeclarecutesw{cuteopenswitch}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ {}
+
+%% closing cute switch
+\pgfcircdeclarecutesw{cuteclosingswitch}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ {
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfpathmoveto{\pgfpointpolar{70}{1.2\pgf@circ@res@right}}
+ \pgfpatharc{70}{-10}{1.2\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfusepath{draw}
+ }
+
+%% opening cute switch
+\pgfcircdeclarecutesw{cuteopeningswitch}
+ {\pgfpoint{\pgf@circ@res@right}{1.5\pgf@circ@res@temp}}
+ {
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfpathmoveto{\pgfpointpolar{-10}{1.2\pgf@circ@res@right}}
+ \pgfpatharc{-10}{60}{1.2\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfusepath{draw}
+ }
+
+\pgfcircdeclarebipole{
+ \anchor{out 1}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{out 2}{
+ \northeast
+ \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}}
+ \pgf@circ@setlinewidth{bipoles}{\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}
+}
+
+% %>>>
+
+%% Shape nodes for switches (non-bipoles)%<<<
+
+%%%%%%%%%%%%%
+%% switches
+%%%%%%%%%%%%%
+
+% Legacy spdt
+\pgfdeclareshape{spdt}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{switches}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/spdt/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \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{\ctikzvalof{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 = \ctikzvalof{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}}
+ }
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+
+% cute switch "node" shapes, matching with cute "to" shapes
+% #1 -> name
+% #2 -> barposition
+% #3 -> arrowcode
+\long\def\pgfcircdeclarecutespdt#1#2#3{
+ \pgfdeclareshape{#1}
+ {
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{switches}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/cuteswitch/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.25\pgf@x
+ }
+ \savedanchor\midlever{
+ % these values are calculated when we create the definition of the shape.
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/cuteswitch/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/cuteswitch/thickness}\pgf@circ@res@temp
+ \pgf@circ@res@down = -.5\pgf@y
+ \pgf@circ@res@up = .5\pgf@y
+ \pgfextracty{\pgf@circ@res@other}{#2}
+ \pgf@x=0pt
+ \pgf@y=.5\pgf@circ@res@other
+ }
+ % radius of the connector
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ \saveddimen{\radius}{\pgfmathsetlength\pgf@x{\pgf@circ@Rlen*\ctikzvalof{nodes width}}}
+ % shapename
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ % shape type
+ \savedmacro{\cshape}{\def\cshape{\ctikzvalof{bipoles/cuteswitch/shape}}}
+ % mid of the lever, to stack switches
+ \anchor{mid}{\midlever}
+ % center anchors
+ \anchor{cin}{ \northwest \pgf@y=0pt}
+ \anchor{cout 1}{ \northwest \pgf@x=-\pgf@x }
+ \anchor{cout 2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
+ % horizontal angles
+ \anchor{in}{ \northwest \pgf@y=0pt\advance\pgf@x by -\radius}
+ \anchor{out 1}{ \northwest \pgf@x=-\pgf@x \advance\pgf@x by \radius}
+ \anchor{out 2}{ \northwest \pgf@x=-\pgf@x \advance\pgf@x by \radius \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{\ctikzvalof{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
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ \pgf@circ@res@temp=\radius\relax
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/cuteswitch/thickness}\pgf@circ@res@temp
+ \pgfsetlinewidth{2\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{#2}
+ \pgfsetroundcap\pgfusepath{draw}
+ \endpgfscope
+ \pgfscope % arrow
+ #3
+ \endpgfscope
+ % terminals
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfnode{\cshape}{center}{}{\thisshape-out 1}{\pgfusepath{stroke}}
+ \endpgfscope
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfnode{\cshape}{center}{}{\thisshape-out 2}{\pgfusepath{stroke}}
+ \endpgfscope
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{\cshape}{center}{}{\thisshape-in}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ }
+ }
+}
+
+\pgfcircdeclarecutespdt{cute spdt up}
+{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up-1.5\pgf@circ@res@temp}}
+{}
+
+\pgfcircdeclarecutespdt{cute spdt mid}
+{\pgfpoint{\pgf@circ@res@right}{0pt}}
+{}
+
+\pgfcircdeclarecutespdt{cute spdt down}
+{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down+1.5\pgf@circ@res@temp}}
+{}
+
+\pgfcircdeclarecutespdt{cute spdt up arrow}
+{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up-1.5\pgf@circ@res@temp}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfpathmoveto{\pgfpointpolar{70}{1.5\pgf@circ@res@right}}
+ \pgfpatharc{70}{-50}{1.5\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarecutespdt{cute spdt mid arrow}
+{\pgfpoint{\pgf@circ@res@right}{0pt}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfcirc@set@arrows{switch}{latexslim}{latexslim}
+ \pgfpathmoveto{\pgfpointpolar{-60}{1.5\pgf@circ@res@right}}
+ \pgfpatharc{-60}{60}{1.5\pgf@circ@res@right}
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarecutespdt{cute spdt down arrow}
+{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down+1.5\pgf@circ@res@temp}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfpathmoveto{\pgfpointpolar{-50}{1.5\pgf@circ@res@right}}
+ \pgfpatharc{-50}{70}{1.5\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfusepath{draw}
+}
+% %>>>
+
+%% Paths Switches and buttons%<<<
+
+\pgfcirc@activate@bipole{l}{cspst}{cspst}{closing switch}
+\pgfcirc@style@to@style{closing switch}{switch}
+\pgfcirc@style@to@style{closing switch}{cspst}
+\pgfcirc@style@to@style{switch}{spst}
+\pgfcirc@activate@bipole{l}{ospst}{ospst}{opening switch}
+\pgfcirc@style@to@style{opening switch}{ospst}
+
+\pgfcirc@activate@bipole@simple{l}{nos}
+\pgfcirc@style@to@style{nos}{normal open switch}
+\pgfcirc@activate@bipole@simple{l}{ncs}
+\pgfcirc@style@to@style{ncs}{normal closed switch}
+
+\pgfcirc@activate@bipole{l}{pushbutton}{pushbutton}{push button}
+\pgfcirc@style@to@style{push button}{nopb}
+\pgfcirc@style@to@style{push button}{normally open push button}
+\pgfcirc@activate@bipole{l}{ncpushbutton}{ncpushbutton}{ncpb}
+\pgfcirc@style@to@style{ncpb}{normally closed push button}
+\pgfcirc@activate@bipole{l}{pushbuttonc}{pushbuttonc}{nopbc}
+\pgfcirc@style@to@style{nopbc}{normally open push button closed}
+\pgfcirc@activate@bipole{l}{ncpushbuttono}{ncpushbuttono}{ncpbo}
+\pgfcirc@style@to@style{ncpbo}{normally closed push button open}
+
+\pgfcirc@activate@bipole{l}{toggleswitch}{toggleswitch}{toggle switch}
+\pgfcirc@activate@bipole@simple{l}{reed}
+
+\pgfcirc@activate@bipole{l}{cuteclosedswitch}{cuteclosedswitch}{cute closed switch}
+\pgfcirc@style@to@style{cute closed switch}{ccsw}
+\pgfcirc@activate@bipole{l}{cuteopenswitch}{cuteopenswitch}{cute open switch}
+\pgfcirc@style@to@style{cute open switch}{cosw}
+\pgfcirc@activate@bipole{l}{cuteclosingswitch}{cuteclosingswitch}{cute closing switch}
+\pgfcirc@style@to@style{cute closing switch}{ccgsw}
+\pgfcirc@activate@bipole{l}{cuteopeningswitch}{cuteopeningswitch}{cute opening switch}
+\pgfcirc@style@to@style{cute opening switch}{cogsw}% %>>>
+
+%%%%%%%%%%%%%%%%%
+%% Instruments
+%%%%%%%%%%%%%%%%%
+
+%% Definitions for Instruments %<<<1
+\ctikzset{bipoles/ammeter/height/.initial=.60}
+\ctikzset{bipoles/ammeter/width/.initial=.60}
+\ctikzset{bipoles/ohmmeter/height/.initial=.60}
+\ctikzset{bipoles/ohmmeter/width/.initial=.60}
+\ctikzset{bipoles/voltmeter/height/.initial=.60}
+\ctikzset{bipoles/voltmeter/width/.initial=.60}
+\ctikzset{bipoles/smeter/height/.initial=.60}
+\ctikzset{bipoles/smeter/width/.initial=.60}
+\ctikzset{bipoles/smeter/voltage/additional shift/.initial=1}
+\ctikzset{bipoles/qmeter/depth/.initial=.40}
+\ctikzset{bipoles/qmeter/height/.initial=.80}
+\ctikzset{bipoles/qmeter/width/.initial=.60}
+% this must be specified for each one
+\ctikzset{bipoles/qvprobe/voltage/additional shift/.initial=.5}
+\ctikzset{bipoles/qiprobe/voltage/additional shift/.initial=.5}
+\ctikzset{bipoles/qpprobe/voltage/additional shift/.initial=.5}
+\ctikzset{bipoles/iloop/width/.initial=.40}
+\ctikzset{bipoles/iloop/height/.initial=.60}
+
+\ctikzset{bipoles/oscope/height/.initial=.60}
+\ctikzset{bipoles/oscope/width/.initial=.60}
+\ctikzset{bipoles/oscope/voltage/additional shift/.initial=1}
+
+
+% option to not rotate the new (Romano's) instruments
+\newif\ifpgf@circuit@straightinstruments\pgf@circuit@straightinstrumentstrue
+\pgfkeys{/tikz/straight instruments/.add code={}{\pgf@circuit@straightinstrumentstrue}}
+\ctikzset{straight instruments/.add code={}{\pgf@circuit@straightinstrumentstrue}}
+\pgfkeys{/tikz/rotated instruments/.add code={}{\pgf@circuit@straightinstrumentsfalse}}
+\ctikzset{rotated instruments/.add code={}{\pgf@circuit@straightinstrumentsfalse}}
+%%>>>
+
+%% Node shapes for instruments%<<<
+
+% % METERINGSHAPE
+\long\def\drawmeteringcircle{
+ \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
+ %draw connections to circle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathmoveto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+ %draw circle
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \endpgfscope
+ %draw arrow
+ \pgfscope
+ \pgfsetarrowsend{latex}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%AMPEREMETER
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/ammeter/height}}
+{ammeter}
+{\ctikzvalof{bipoles/ammeter/height}}
+{\ctikzvalof{bipoles/ammeter/width}}
+{
+ \drawmeteringcircle
+ \pgfnode{circle}{center}{\pgf@circ@font@bold{A}}{}{}
+}
+%OHMMETER
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/ohmmeter/height}}
+{ohmmeter}
+{\ctikzvalof{bipoles/ohmmeter/height}}
+{\ctikzvalof{bipoles/ohmmeter/width}}
+{
+ \drawmeteringcircle
+ \pgfnode{circle}{center}{\boldmath$\Omega$}{}{}
+}
+%VOLTMETER
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/voltmeter/height}}
+{voltmeter}
+{\ctikzvalof{bipoles/voltmeter/height}}
+{\ctikzvalof{bipoles/voltmeter/width}}
+{
+ \drawmeteringcircle
+ \pgfnode{circle}{center}{\pgf@circ@font@bold{V}}{}{}
+
+}
+
+% oscilloscope, suggested by @nobrl https://github.com/circuitikz/circuitikz/issues/176
+%
+% oscilloscope waveforms
+
+\ctikzset{%
+ bipoles/oscope/waveform/sin/.code={%
+ \pgfpathmoveto{\pgfpoint{-0.6cm}{0cm}}
+ \pgfpathsine{\pgfpoint{0.3cm}{0.4cm}}
+ \pgfpathcosine{\pgfpoint{0.3cm}{-0.4cm}}
+ \pgfpathsine{\pgfpoint{0.3cm}{-0.4cm}}
+ \pgfpathcosine{\pgfpoint{0.3cm}{0.4cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/ramps/.code={%
+ \pgfpathmoveto{\pgfpoint{-0.75cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.05cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.05cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.65cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.65cm}{-0.25cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/square/.code={%
+ \pgfpathmoveto{\pgfpoint{-0.75cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.6cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.6cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.6cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.6cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.75cm}{0.25cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/triangle/.code={%
+ \pgfpathmoveto{\pgfpoint{-0.75cm}{0cm}}
+ \pgfpathlineto{\pgfpoint{-0.6cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.3cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.3cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.6cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.75cm}{0cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/zero/.code={
+ \pgfpathmoveto{\pgfpoint{-0.75cm}{0cm}}
+ \pgfpathlineto{\pgfpoint{0.75cm}{0cm}}
+ \pgfusepath{draw}
+ },%
+ bipoles/oscope/waveform/lissajous/.code={%
+ \pgfpathellipse{\pgfpoint{0cm}{0cm}}
+ {\pgfpoint{0.5cm}{0.35cm}}{\pgfpoint{-0.3cm}{0.2cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/none/.code={},%
+}
+% default waveform (backward compatible)
+\ctikzset{bipoles/oscope/waveform/.initial=ramps}
+
+\pgfcircdeclarebipolescaled{instruments}
+{
+ \anchor{in 1}{\southwest\pgf@y=0.75\pgf@y\pgf@x=0.4\pgf@x}
+ \anchor{in 2}{\southwest\pgf@y=0.75\pgf@y\pgf@x=-0.4\pgf@x}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+}
+{\ctikzvalof{bipoles/oscope/height}}
+{oscope}
+{\ctikzvalof{bipoles/oscope/height}}
+{\ctikzvalof{bipoles/oscope/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\southwest}
+ \pgfextracty{\pgf@circ@res@down}{\southwest}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfscope
+ \pgfsetcornersarced{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@step}}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ % get the rotation
+ \ifpgf@circuit@straightinstruments
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \else
+ \edef\rot{0}
+ \fi
+ % and unrotate the scope
+ \pgfscope
+ \pgftransformrotate{\rot}
+ % grid
+ \pgfscope
+ \pgfsetlinewidth{0.5\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{0.25\pgf@circ@res@down}}
+ % the "almost one" make the grid complete most of the time --- beware of antialiasing
+ \pgfpathgrid[stepx=0.995\pgf@circ@res@step, stepy=0.995\pgf@circ@res@step]%
+ {\pgfpoint{0.75\pgf@circ@res@left}{0.5\pgf@circ@res@down}}
+ {\pgfpoint{0.75\pgf@circ@res@right}{0.5\pgf@circ@res@up}}
+ \pgfsetstrokeopacity{0.5}
+ \pgfusepath{draw}
+ \endpgfscope
+ % function displayed
+ \pgfscope
+ \pgfmathsetmacro{\@@scalex}{\pgf@circ@res@right/1cm}
+ \pgfmathsetmacro{\@@scaley}{\pgf@circ@res@up/1cm}
+ \pgftransformxscale{\@@scalex}
+ \pgftransformyscale{\@@scaley}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfkeys{\circuitikzbasekey/bipoles/oscope/waveform/\ctikzvalof{bipoles/oscope/waveform}}
+ \endpgfscope
+ \endpgfscope
+}
+% generic round meter with always horizontal text, no arrow
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/esource/height}}
+{rmeter}
+{\ctikzvalof{bipoles/esource/height}}
+{\ctikzvalof{bipoles/esource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ % draw the text label
+ % get the rotation
+ \ifpgf@circuit@straightinstruments
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \else
+ \edef\rot{0}
+ \fi
+ % and unrotate the scope
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgftransformrotate{\rot}
+ \pgftext[center,x=0,y=0]{\ctikzvalof{bipoles/twoport/text}}
+ \endpgfscope
+}
+
+% generic round meter with always horizontal text, with arrow
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/esource/height}}
+{rmeterwa}
+{\ctikzvalof{bipoles/esource/height}}
+{\ctikzvalof{bipoles/esource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ % draw the text label
+ % get the rotation
+ \ifpgf@circuit@straightinstruments
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \else
+ \edef\rot{0}
+ \fi
+ % and unrotate the scope
+ \pgfscope
+ \pgftransformrotate{\rot}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ % arrow: create a center hole to have better visual
+ \pgfscope
+ % clipping path: first a rectangle bigger then the shape
+ % to avoid problems with the line thickness
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ {\pgfpoint{2\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ % next open a circle into it
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{.6\pgf@circ@res@up}}{\pgfpoint{.6\pgf@circ@res@left}{0}}
+ % do the difference and clip before drawing
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfsetarrowsend{latexslim}
+ % the arrow is better if it has a bit of breath and it's not 45º
+ \pgfpathmoveto{\pgfpoint{.8\pgf@circ@res@left}{1.2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.8\pgf@circ@res@right}{1.2\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgftext[center]{\ctikzvalof{bipoles/twoport/text}}
+ \endpgfscope
+}
+
+% generic square meter with always horizontal text
+\pgfcircdeclarebipolescaled{instruments}
+{
+ \anchor{in 1}{\southwest\pgf@y=0.75\pgf@y\pgf@x=0.4\pgf@x}
+ \anchor{in 2}{\southwest\pgf@y=0.75\pgf@y\pgf@x=-0.4\pgf@x}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+}
+{\ctikzvalof{bipoles/smeter/height}}
+{smeter}
+{\ctikzvalof{bipoles/smeter/height}}
+{\ctikzvalof{bipoles/smeter/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\southwest}
+ \pgfextracty{\pgf@circ@res@down}{\southwest}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfscope
+ \pgfsetcornersarced{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@step}}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ % get the rotation
+ \ifpgf@circuit@straightinstruments
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \else
+ \edef\rot{0}
+ \fi
+ % and unrotate the scope
+ \pgfscope
+ \pgftransformrotate{\rot}
+ % the metering window
+ \pgfscope
+ \def\@starta{105}\def\@stopa{75}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{0pt}{-1.8\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpointpolar{\@starta}{2\pgf@circ@res@up}}
+ \pgfpatharc{\@starta}{\@stopa}{2\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpointpolar{\@stopa}{2.5\pgf@circ@res@up}}
+ \pgfpatharc{\@stopa}{\@starta}{2.5\pgf@circ@res@up}
+ \pgfclosepath
+ \pgfpathmoveto{\pgfpointpolar{80}{2\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{80}{2.4\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgftext[center, y=0.5\pgf@circ@res@down]{\ctikzvalof{bipoles/twoport/text}}
+ \endpgfscope
+}
+
+% probes qucs style:
+% #1 : name
+% #2 : extra code
+\long\def\pgfcirc@qucsprobe#1#2{
+ \pgfcircdeclarebipolescaled{instruments}
+ {
+ \anchor{v+}{\southwest\pgf@x=0.6\pgf@x}
+ \anchor{v-}{\southwest\pgf@x=-0.6\pgf@x}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+ }
+ {\ctikzvalof{bipoles/qmeter/depth}}
+ {#1}
+ {\ctikzvalof{bipoles/qmeter/height}}
+ {\ctikzvalof{bipoles/qmeter/width}}
+ {
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\southwest}
+ \pgfextracty{\pgf@circ@res@down}{\southwest}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfscope
+ \pgfscope
+ \pgfsetcornersarced{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@step}}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \def\@starta{103}\def\@stopa{77}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfscope
+ \pgftransformshift{\pgfpoint{0pt}{-1.7\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpointpolar{\@starta}{2.1\pgf@circ@res@up}}
+ \pgfpatharc{\@starta}{\@stopa}{2.1\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpointpolar{\@stopa}{2.5\pgf@circ@res@up}}
+ \pgfpatharc{\@stopa}{\@starta}{2.5\pgf@circ@res@up}
+ \pgfclosepath
+ \pgfpathmoveto{\pgfpointpolar{83}{2.1\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{83}{2.4\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgf@circ@draworfill
+ \endpgfscope
+ #2
+ \endpgfscope
+ }
+}
+
+\pgfcirc@qucsprobe{qiprobe}{
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \pgfnode{currarrow}{center}{}{}{}
+}
+
+\pgfcirc@qucsprobe{qvprobe}{
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{nodes width}*\pgf@circ@scaled@Rlen}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left}{0pt}}
+ \pgfpathcircle{\pgfpoint{.6\pgf@circ@res@left+\pgf@circ@res@other}{0pt}}{\pgf@circ@res@other}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathcircle{\pgfpoint{.6\pgf@circ@res@right-\pgf@circ@res@other}{0pt}}{\pgf@circ@res@other}
+ \pgfusepath{draw}
+ \pgfscope
+ % "+" and "-", drawn so that they scale correctly
+ \pgfsetlinewidth{2\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left+\pgf@circ@res@other}{-1.5\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left+\pgf@circ@res@other}{-3.5\pgf@circ@res@other}}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left+0\pgf@circ@res@other}{-2.5\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left+2\pgf@circ@res@other}{-2.5\pgf@circ@res@other}}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@right+0\pgf@circ@res@other}{-2.5\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right-2\pgf@circ@res@other}{-2.5\pgf@circ@res@other}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+\pgfcirc@qucsprobe{qpprobe}{
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \pgfnode{currarrow}{center}{}{}{}
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{nodes width}*\pgf@circ@scaled@Rlen}
+ \pgfpathcircle{\pgfpoint{.6\pgf@circ@res@left}{-3\pgf@circ@res@other}}{\pgf@circ@res@other}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{-4\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathcircle{\pgfpoint{.6\pgf@circ@res@right}{-3\pgf@circ@res@other}}{\pgf@circ@res@other}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@right}{-4\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \pgfscope
+ % "+" and "-", drawn so that they scale correctly
+ \pgfsetlinewidth{2\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left+3\pgf@circ@res@other}{-2\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left+3\pgf@circ@res@other}{-4\pgf@circ@res@other}}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left+2\pgf@circ@res@other}{-3\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left+4\pgf@circ@res@other}{-3\pgf@circ@res@other}}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@right-4\pgf@circ@res@other}{-3\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right-2\pgf@circ@res@other}{-3\pgf@circ@res@other}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% current loop for oscope and similar: stylized
+\pgfcircdeclarebipolescaled{instruments}
+{
+ \anchor{i}{\northeast\pgf@x=0pt\relax}
+ \anchor{text}{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox+\pgf@circ@res@left}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+}
+{\ctikzvalof{bipoles/iloop/height}}
+{iloop}
+{\ctikzvalof{bipoles/iloop/height}}
+{\ctikzvalof{bipoles/iloop/width}}
+{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgf@circ@res@down=-\pgf@circ@res@up
+ \pgf@circ@res@left=-\pgf@circ@res@right
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfsetcolor{\ctikzvalof{color}}
+ % external ellipse
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ % clipping path: first a rectangle bigger then the shape
+ % to avoid problems with the line thickness
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ {\pgfpoint{2\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ % next the opening to the left
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{.1\pgf@circ@res@down}}
+ {\pgfpoint{0pt}{.1\pgf@circ@res@up}}
+ % do the difference and clip before drawing
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfpathellipse{\pgfpointorigin}{
+ \pgfpoint{0pt}{0.8\pgf@circ@res@up}}{
+ \pgfpoint{0.4\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \endpgfscope
+ % internal wire
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@right}{0pt}}
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ % and the contact line up
+ \pgfpathmoveto{\pgfpoint{0pt}{0.8\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% current loop for oscope and similar: real (double connection)
+\pgfcircdeclarebipolescaled{instruments}
+{
+ \anchor{i+}{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgf@circ@res@step=0.4\pgf@circ@res@right
+ \pgf@circ@res@other=0.8\pgf@circ@res@up
+ \pgfpointpolar{105}{\pgf@circ@res@step and \pgf@circ@res@other}
+ \pgf@y=\pgf@circ@res@up
+ }
+ \anchor{i-}{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgf@circ@res@step=0.4\pgf@circ@res@right
+ \pgf@circ@res@other=0.8\pgf@circ@res@up
+ \pgfpointpolar{75}{\pgf@circ@res@step and \pgf@circ@res@other}
+ \pgf@y=\pgf@circ@res@up
+ }
+ \anchor{text}{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox+\pgf@circ@res@left}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+}
+{\ctikzvalof{bipoles/iloop/height}}
+{iloop2}
+{\ctikzvalof{bipoles/iloop/height}}
+{\ctikzvalof{bipoles/iloop/width}}
+{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgf@circ@res@down=-\pgf@circ@res@up
+ \pgf@circ@res@left=-\pgf@circ@res@right
+ % must be the same than internal i+ and i- anchors definition
+ \pgf@circ@res@step=0.4\pgf@circ@res@right
+ \pgf@circ@res@other=0.8\pgf@circ@res@up
+ \def\@plus{\pgfpointpolar{105}{\pgf@circ@res@step and \pgf@circ@res@other}}
+ \def\@minus{\pgfpointpolar{75}{\pgf@circ@res@step and \pgf@circ@res@other}}
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfsetcolor{\ctikzvalof{color}}
+ % external ellipse
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ % clipping path: first a rectangle bigger then the shape
+ % to avoid problems with the line thickness
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ {\pgfpoint{2\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ % next the opening to the left
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{.1\pgf@circ@res@down}}
+ {\pgfpoint{0pt}{.1\pgf@circ@res@up}}
+ % do the difference and clip before drawing
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfpathmoveto{\@plus}
+ \pgfpatharc{105}{435}{\pgf@circ@res@step and \pgf@circ@res@other}
+ \pgfusepath{draw}
+ \endpgfscope
+ % internal wire
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@right}{0pt}}
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ % and the contact line up
+ % I use ...left and ---right as temporal lengths here to avoid defining more
+ \pgfextractx{\pgf@circ@res@left}{\@plus}
+ \pgfextractx{\pgf@circ@res@right}{\@minus}
+ \pgfpathmoveto{\@plus}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\@minus}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+% %>>>
+
+% Path definitions for Instruments%<<<
+
+\pgfcirc@activate@bipole@simple{l}{ammeter}
+\pgfcirc@activate@bipole@simple{l}{ohmmeter}
+\pgfcirc@activate@bipole@simple{l}{voltmeter}
+\pgfcirc@activate@bipole@simple{l}{oscope}
+\pgfcirc@activate@bipole@simple{l}{rmeter}
+\pgfcirc@activate@bipole@simple{l}{rmeterwa}
+\pgfcirc@activate@bipole@simple{l}{smeter}
+\pgfcirc@activate@bipole@simple{l}{iloop}
+% \pgfcirc@activate@bipole@simple{l}{iloop2} that was wrong
+\pgfcirc@activate@bipole{l}{ilooptwo}{iloop2}{iloop2}
+\pgfcirc@activate@bipole@simple{l}{qvprobe}
+\pgfcirc@activate@bipole@simple{l}{qiprobe}
+\pgfcirc@activate@bipole@simple{l}{qpprobe}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% MECHANICAL SYMBOLS
+%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Settings for Mechanical section%<<<1
+\ctikzset{/tikz/circuitikz/tripoles/elmech/height/.initial=.8}
+\ctikzset{/tikz/circuitikz/tripoles/elmech/width/.initial=.6}
+\ctikzset{bipoles/spring/height/.initial=.5}
+\ctikzset{bipoles/spring/width/.initial=.5}
+\ctikzset{bipoles/inerter/height/.initial=.7}
+\ctikzset{bipoles/inerter/width/.initial=.175}
+\ctikzset{bipoles/mass/height/.initial=.55}
+\ctikzset{bipoles/mass/box height/.initial=.4}
+\ctikzset{bipoles/mass/width/.initial=.5}
+
+\ctikzset{bipoles/damper/height/.initial=.35}
+\ctikzset{bipoles/damper/length/.initial=.3}
+\ctikzset{bipoles/damper/width/.initial=.4}
+%%>>>
+
+%% Node shapes Mechanical analog system%<<<
+%% mechanical capacitance - stiffness/spring
+
+\pgfcircdeclarebipolescaled{mechanicals}
+{}
+{\ctikzvalof{bipoles/spring/height}}
+{spring}
+{\ctikzvalof{bipoles/spring/height}}
+{\ctikzvalof{bipoles/spring/width}}{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/spring/width}*\pgf@circ@scaled@Rlen+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth)/16}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}}
+ \pgfsetcornersarced{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}}
+ \pgf@circ@res@other = \pgf@circ@res@left
+ \advance\pgf@circ@res@other by \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 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}}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+}
+
+%% mechanical capacitance - inerter
+\pgfcircdeclarebipolescaled{mechanicals}
+{}
+{\ctikzvalof{bipoles/inerter/height}}
+{inerter}
+{\ctikzvalof{bipoles/inerter/height}}
+{\ctikzvalof{bipoles/inerter/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+}
+
+
+%% mechanical inductance - mass
+\pgfcircdeclarebipolescaled{mechanicals}
+{}
+{\ctikzvalof{bipoles/mass/box height}}
+{mass}
+{\ctikzvalof{bipoles/mass/height}}
+{\ctikzvalof{bipoles/mass/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfpathrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{-2\pgf@circ@res@down}{-2\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfsetrectcap
+ \pgfsetmiterjoin
+ \pgfusepath{stroke}
+}
+
+%% mechanical resistor - damper
+\pgfcircdeclarebipolescaled{mechanicals}
+{}
+{\ctikzvalof{bipoles/damper/height}}
+{damper}
+{\ctikzvalof{bipoles/damper/height}}
+{\ctikzvalof{bipoles/damper/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@maybefill
+
+ % line into the damper
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {\pgf@circ@res@zero}}
+ \pgfusepath{stroke}
+
+ % damper box
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+
+ \pgfsetrectcap
+ \pgfsetmiterjoin
+ \pgfusepath{stroke}
+
+ % damper vertical element
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {.8\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {.8\pgf@circ@res@up}}
+ \pgfsetbuttcap
+ \pgfusepath{stroke}
+
+}
+%% mechanical viscoelastic element, suggested by @alex
+%% in https://tex.stackexchange.com/questions/484268/combined-spring-damper-in-circuitikz
+\pgfcircdeclarebipolescaled{mechanicals}
+{} % extra anchors
+{\ctikzvalof{bipoles/damper/height}} % depth (under the path line)
+{viscoe} % name
+{\ctikzvalof{bipoles/damper/height}} % height (above the path line)
+{\ctikzvalof{bipoles/damper/width}} % width
+{ % draw the bipole
+ \pgfpathrectanglecorners{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@maybefill
+
+ % spring into the damper
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfsetcornersarced{\pgfpoint{.25\pgf@circ@res@up}{.25\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.75\pgf@circ@res@left}{.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@left}{-.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}{.75\pgf@circ@res@up}}
+ \pgfusepath{stroke}
+ \endpgfscope
+ % damper box
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+
+ \pgfsetrectcap
+ \pgfsetmiterjoin
+ \pgfusepath{stroke}
+
+ % damper vertical element
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {.8\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {.8\pgf@circ@res@up}}
+ \pgfsetbuttcap
+ \pgfusepath{stroke}
+
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% electromechanical device (motor/generator)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\pgfdeclareshape{elmech}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{electromechanicals}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/elmech/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/elmech/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{text}{
+ \pgfpointorigin
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \advance \pgf@y by -.5\ht\pgfnodeparttextbox
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{%
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{top}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{pathstart}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{pathend}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{bottom}{
+ \northwest
+ \pgf@x=0pt
+ \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 }
+ \anchorborder{%
+ \@tempdima=\pgf@x\@tempdimb=\pgf@y
+ \northwest\pgf@circ@res@other=-\pgf@x
+ \pgfpointborderellipse{\pgfqpoint{\@tempdima}{\@tempdimb}}{\pgfqpoint{\pgf@circ@res@other}{\pgf@circ@res@other}}
+ }
+ \anchor{block north west}{\northwest\pgf@x=0.5\pgf@x}
+ \anchor{block south west}{\northwest\pgf@x=0.5\pgf@x\pgf@y=-\pgf@y}
+ \anchor{block north east}{\northwest\pgf@x=-0.5\pgf@x}
+ \anchor{block south east}{\northwest\pgf@x=-0.5\pgf@x\pgf@y=-\pgf@y}
+ \anchor{block up right}{
+ \northwest
+ % remember that pgf@x is negative
+ % center of the block is at 0.5*H+W*cos(30)/2
+ \pgf@y=\dimexpr0.5\pgf@y - 0.433\pgf@x\relax
+ \pgf@x=-0.5\pgf@x
+ }
+ \anchor{block up left}{
+ \northwest
+ % remember that pgf@x is negative
+ % center of the block is at 0.5*H+W*cos(30)/2
+ \pgf@y=\dimexpr0.5\pgf@y - 0.433\pgf@x\relax
+ \pgf@x=0.5\pgf@x
+ }
+ \anchor{block down right}{
+ \northwest
+ % remember that pgf@x is negative
+ % center of the block is at 0.5*H+W*cos(30)/2
+ \pgf@y=\dimexpr0.5\pgf@y - 0.433\pgf@x\relax
+ \pgf@y=-\pgf@y
+ \pgf@x=-0.5\pgf@x
+ }
+ \anchor{block down left}{
+ \northwest
+ % remember that pgf@x is negative
+ % center of the block is at 0.5*H+W*cos(30)/2
+ \pgf@y=\dimexpr0.5\pgf@y - 0.433\pgf@x\relax
+ \pgf@y=-\pgf@y
+ \pgf@x=0.5\pgf@x
+ }
+ \behindbackgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{tripoles/elmech/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up=\ctikzvalof{tripoles/elmech/height}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope % clip the bar: whole size minus the circle
+ \pgfpathrectanglecorners{\pgfpoint{-.5\pgf@circ@res@step}{-.5\pgf@circ@res@up}}{\pgfpoint{.5\pgf@circ@res@step}{.5\pgf@circ@res@up}}
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfpathrectangle{\pgfpoint{-.25\pgf@circ@res@step}{-.5\pgf@circ@res@up}}{\pgfpoint{.5\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfsetfillcolor{\ctikzvalof{color}}
+ \pgfusepath{fill, draw}
+ \endpgfscope
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{white}
+ % ...but override it if the class is defined!
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \pgfusepath{draw, fill}
+ \fi
+ \endpgfscope
+ }
+}
+
+% %>>>
+
+%% Path definitions for Mechanical%<<<
+
+\pgf@circ@definetranspath{elmech}
+\pgfcirc@activate@bipole@simple{l}{spring}
+\pgfcirc@activate@bipole@simple{l}{inerter}
+\pgfcirc@activate@bipole@simple{l}{mass}
+\pgfcirc@activate@bipole@simple{l}{damper}
+\pgfcirc@activate@bipole@simple{l}{viscoe}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Miscellaneous bipoles
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% settings for microphone, loudspeaker, fuses and misc%<<<1
+
+\ctikzset{bipoles/loudspeaker/height/.initial=.8}
+\ctikzset{bipoles/loudspeaker/depth/.initial=.3}
+\ctikzset{bipoles/loudspeaker/width/.initial=.8}
+\ctikzset{bipoles/mic/height/.initial=1.2}
+\ctikzset{bipoles/mic/depth/.initial=.1}
+\ctikzset{bipoles/mic/width/.initial=.8}%
+
+% arresters, fuses, lamps, etc
+
+\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/lamp/height/.initial=.60}
+\ctikzset{bipoles/lamp/width/.initial=.60}
+\ctikzset{bipoles/bulb/height/.initial=.8}
+\ctikzset{bipoles/bulb/width/.initial=.8}
+\ctikzset{bipoles/tline/height/.initial=.3}
+\ctikzset{bipoles/tline/width/.initial=.6}
+\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/openbarrier/gap/.initial=0.5}
+\ctikzset{bipoles/thermocouple/height/.initial=.250}
+\ctikzset{bipoles/thermocouple/height 2/.initial=.60}
+\ctikzset{bipoles/thermocouple/width/.initial=.140}
+\newif\ifpgf@circuit@europeangfsurgearrester
+\ctikzset{gas filled surge arrester choice/.is choice}
+\ctikzset{gas filled surge arrester choice/european/.code= {\pgf@circuit@europeangfsurgearrestertrue}}
+\ctikzset{gas filled surge arrester choice/american/.code= {\pgf@circuit@europeangfsurgearresterfalse}}
+
+\tikzset{american gas filled surge arrester set/.style = {\circuitikzbasekey/gas filled surge arrester choice=american}}
+\tikzset{european gas filled surge arrester set/.style = {\circuitikzbasekey/gas filled surge arrester choice=european}}
+%%>>>
+
+%% Node shapes for miscellaneous symbols %<<<
+%% loudspeaker and microphone
+
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/loudspeaker/depth}}
+{loudspeaker}
+{\ctikzvalof{bipoles/loudspeaker/height}}
+{\ctikzvalof{bipoles/loudspeaker/width}}{
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{.4\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@left}{.4\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.8\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.8\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{.4\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+}
+
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/mic/depth}}
+{mic}
+{\ctikzvalof{bipoles/mic/height}}
+{\ctikzvalof{bipoles/mic/width}}{
+
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{0pt}{.6\pgf@circ@res@up}}{.4\pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{-.2\pgf@circ@res@up}{0pt}}
+ % 0.25358 is 0.6-0.4*cos(30)
+ \pgfpathlineto{\pgfpoint{-.2\pgf@circ@res@up}{.25358\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@up}{.25358\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@up}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% european gas filled surge arrester
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\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}}
+{
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgf@circ@draworfill
+
+ \pgfscope
+ \pgfsetarrowsend{latexslim}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/european gas filled surge arrester/inside}\pgf@circ@res@left}{0pt}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfusepath{draw}
+
+ \endpgfscope
+}
+
+%% american gas filled surge arrester
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\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}}{
+
+ \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}
+
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfsetarrowsend{latex}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{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{\ctikzvalof{bipoles/american gas filled surge arrester/inside}\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+ \endpgfscope{}
+
+ \pgfcircle{\pgfpoint{\ctikzvalof{bipoles/american gas filled surge arrester/dot x}\pgf@circ@res@left}{\ctikzvalof{bipoles/american gas filled surge arrester/dot y}\pgf@circ@res@down}}{\ctikzvalof{bipoles/american gas filled surge arrester/size}\pgf@circ@res@down}
+ \pgfusepath{fill}
+}
+
+%% thermocouple
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\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}}
+ \pgf@circ@setlinewidth{bipoles}{\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}
+}
+
+%% fuse
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/fuse/height}}
+{fuse}
+{\ctikzvalof{bipoles/fuse/height}}
+{\ctikzvalof{bipoles/fuse/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}}
+ \pgfusepath{draw}
+
+}
+
+%% asymmetric fuse
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/afuse/height}}
+{afuse}
+{\ctikzvalof{bipoles/afuse/height}}
+{\ctikzvalof{bipoles/afuse/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}}
+ \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}
+}
+
+%% SQUID added by Cor Molenaar 5 March 2010
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/squid/height}}
+{squid}
+{\ctikzvalof{bipoles/squid/height}}
+{\ctikzvalof{bipoles/squid/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/barrier/height}}
+{barrier}
+{\ctikzvalof{bipoles/barrier/height}}
+{\ctikzvalof{bipoles/barrier/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}
+}
+
+%
+% open version of the barrier symbol
+% suggested by Radványi Patrik Tamás <patrikradvanyi@gmail.com>
+%
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/barrier/height}}
+{openbarrier}
+{\ctikzvalof{bipoles/barrier/height}}
+{\ctikzvalof{bipoles/barrier/width}}
+{
+ % this is set with normal wire linewidth
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/openbarrier/gap}*\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/openbarrier/gap}*\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+
+ % do the cross part
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \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}
+}
+%% Lamp
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/lamp/height}}
+{lamp}
+{\ctikzvalof{bipoles/lamp/height}}
+{\ctikzvalof{bipoles/lamp/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \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}
+}
+
+%% bulb
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/bulb/height}}
+{bulb}
+{\ctikzvalof{bipoles/bulb/height}}
+{\ctikzvalof{bipoles/bulb/width}}
+{%
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{0.8\pgf@circ@res@up}}{\pgfpoint{0.8\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpatharc{0}{-180}{0.4*\pgf@circ@res@left}
+ \pgfsetbeveljoin
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+}% %>>>
+
+%% Path definitions for Miscellaneous%<<<
+
+\pgfcirc@activate@bipole@simple{l}{lamp}
+\pgfcirc@activate@bipole@simple{l}{bulb}
+\pgfcirc@activate@bipole@simple{l}{squid}
+\pgfcirc@activate@bipole@simple{l}{barrier}
+\pgfcirc@activate@bipole@simple{l}{openbarrier}
+\pgfcirc@activate@bipole@simple{l}{thermocouple}
+\pgfcirc@activate@bipole@simple{l}{fuse}
+\pgfcirc@activate@bipole{l}{afuse}{afuse}{asymmetric fuse}
+\pgfcirc@style@to@style{asymmetric fuse}{afuse}
+\def\pgf@circ@gfsurgearrester@path#1{\ifpgf@circuit@europeangfsurgearrester\pgf@circ@europeangfsurgearrester@path{#1}\else\pgf@circ@americangfsurgearrester@path{#1}\fi}
+\pgfcirc@activate@bipole{l}{europeangfsurgearrester}{european gas filled surge arrester}{european gas filled surge arrester}
+\pgfcirc@activate@bipole{l}{americangfsurgearrester}{american gas filled surge arrester}{american gas filled surge arrester}
+\pgfcirc@path@to@style{l}{gfsurgearrester}{gas filled surge arrester}{}
+\pgfcirc@path@to@style{l}{gfsurgearrester}{gf surge arrester}{}
+\pgfcirc@activate@bipole@simple{l}{mic}
+\pgfcirc@activate@bipole@simple{l}{loudspeaker}
+% %>>>
+
+% end of pgfcircbipoles.tex
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircbipoles
+%%%%%%%%%%% Springe nach tex/pgfcirctripoles
+%%%---------- open: tex/pgfcirctripoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Tripoles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Logic Ports
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Settings for Logic ports%<<<1
+%% beware that the third option is in IEEE ports in pgfcircmultipoles.tex
+
+% switches for logic gates
+%
+\pgfkeys{/tikz/number inputs/.initial=0}
+\pgfkeys{/tikz/number inputs/.default=0}
+
+\newif\ifpgf@circuit@europeanlogicport
+\ctikzset{logic ports/.is choice}
+\ctikzset{logic ports/european/.code= {\pgf@circuit@europeanlogicporttrue
+ \tikzset{and port/.style={shape=european and port}}%
+ \tikzset{or port/.style={shape=european or port}}%
+ \tikzset{xor port/.style={shape=european xor port}}%
+ \tikzset{buffer port/.style={shape=european buffer port}}%
+ \tikzset{not port/.style={shape=european not port}}%
+ \tikzset{nand port/.style={shape=european nand port}}%
+ \tikzset{nor port/.style={shape=european nor port}}%
+ \tikzset{xnor port/.style={shape=european xnor port}}%
+ % there is no Schmitt ports in european style (yet)
+ \tikzset{schmitt port/.style={shape=schmitt}}%
+ \tikzset{invschmitt port/.style={shape=invschmitt}}%
+}}
+\ctikzset{logic ports/american/.code= {\pgf@circuit@europeanlogicportfalse
+ \tikzset{and port/.style={shape=american and port}}%
+ \tikzset{or port/.style={shape=american or port}}%
+ \tikzset{xor port/.style={shape=american xor port}}%
+ \tikzset{buffer port/.style={shape=american buffer port}}%
+ \tikzset{not port/.style={shape=american not port}}%
+ \tikzset{nand port/.style={shape=american nand port}}%
+ \tikzset{nor port/.style={shape=american nor port}}%
+ \tikzset{xnor port/.style={shape=american xnor port}}%
+ \tikzset{schmitt port/.style={shape=schmitt}}%
+ \tikzset{invschmitt port/.style={shape=invschmitt}}%
+}}
+
+\ctikzset{logic ports origin/.is choice}
+\ctikzset{logic ports origin/legacy/.code={
+ \ctikzset{tripoles/american and port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american nand port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american nor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american or port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american xor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american xnor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european and port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european nand port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european or port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european nor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european xor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european xnor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european buffer port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european not port/origin/.initial=0.8}%
+ }%
+}
+\ctikzset{logic ports origin/center/.code={%
+ \ctikzset{tripoles/american and port/origin/.initial=0}%
+ \ctikzset{tripoles/american nand port/origin/.initial=0}%
+ \ctikzset{tripoles/american nor port/origin/.initial=0}%
+ \ctikzset{tripoles/american or port/origin/.initial=0}%
+ \ctikzset{tripoles/american xor port/origin/.initial=0}%
+ \ctikzset{tripoles/american xnor port/origin/.initial=0}%
+ \ctikzset{tripoles/european and port/origin/.initial=0}%
+ \ctikzset{tripoles/european nand port/origin/.initial=0}%
+ \ctikzset{tripoles/european or port/origin/.initial=0}%
+ \ctikzset{tripoles/european nor port/origin/.initial=0}%
+ \ctikzset{tripoles/european xor port/origin/.initial=0}%
+ \ctikzset{tripoles/european xnor port/origin/.initial=0}%
+ \ctikzset{tripoles/european buffer port/origin/.initial=0}%
+ \ctikzset{tripoles/european not port/origin/.initial=0}%
+ }%
+}
+
+\newif\ifpgfcirc@roundy@or@shapes\pgfcirc@roundy@or@shapesfalse
+\ctikzset{american or shape/.is choice}
+\ctikzset{american or shape/roundy/.code={\pgfcirc@roundy@or@shapestrue}}
+\ctikzset{american or shape/pointy/.code={\pgfcirc@roundy@or@shapesfalse}}
+
+\newif\ifpgfcirc@draw@input@leads\pgfcirc@draw@input@leadstrue
+\ctikzset{logic ports draw input leads/.is choice}
+\ctikzset{logic ports draw input leads/true/.code={\pgfcirc@draw@input@leadstrue}}
+\ctikzset{logic ports draw input leads/false/.code={\pgfcirc@draw@input@leadsfalse}}
+\tikzset{input leads/.code={\pgfcirc@draw@input@leadstrue}}
+\tikzset{no input leads/.code={\pgfcirc@draw@input@leadsfalse}}
+
+\newif\ifpgfcirc@draw@output@leads\pgfcirc@draw@output@leadstrue
+\ctikzset{logic ports draw output leads/.is choice}
+\ctikzset{logic ports draw output leads/true/.code={\pgfcirc@draw@output@leadstrue}}
+\ctikzset{logic ports draw output leads/false/.code={\pgfcirc@draw@output@leadsfalse}}
+\tikzset{output leads/.code={\pgfcirc@draw@output@leadstrue}}
+\tikzset{no output leads/.code={\pgfcirc@draw@output@leadsfalse}}
+
+\ctikzset{logic ports draw leads/.is choice}
+\ctikzset{logic ports draw leads/true/.code={\pgfcirc@draw@output@leadstrue\pgfcirc@draw@input@leadstrue}}
+\ctikzset{logic ports draw leads/false/.code={\pgfcirc@draw@output@leadsfalse\pgfcirc@draw@input@leadsfalse}}
+\tikzset{all leads/.code={\pgfcirc@draw@output@leadstrue\pgfcirc@draw@input@leadstrue}}
+\tikzset{no leads/.code={\pgfcirc@draw@output@leadsfalse\pgfcirc@draw@input@leadsfalse}}
+
+% adding a different style of xnor port
+% see https://github.com/circuitikz/circuitikz/issues/467
+\ctikzset{european xnor style/.is choice}
+\ctikzset{european xnor style/default/.code={%
+ \pgfcircdeclareeurologicport{xnor}{$=1$}{\pgf@circ@res@count}{not}}%
+}
+\ctikzset{european xnor style/direct/.code={%
+ \pgfcircdeclareeurologicport{xnor}{$=$}{\pgf@circ@res@count}{}}%
+}
+
+
+% old, legacy keys that should be killed over
+\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{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 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/circle width/.initial=.15}
+\ctikzset{tripoles/american and port/origin/.initial=0.8}
+\ctikzset{tripoles/american and port/inputs/.initial=2}
+% variable number of inputs
+\ctikzset{tripoles/american nand port/origin/.initial=0.8}
+\ctikzset{tripoles/american nand port/inputs/.initial=2}
+\ctikzset{tripoles/american nor port/origin/.initial=0.8}
+\ctikzset{tripoles/american nor port/inputs/.initial=2}
+\ctikzset{tripoles/american nor port/angle/.initial=70}
+\ctikzset{tripoles/american nor port/inner/.initial=0.3}
+\ctikzset{tripoles/american or port/origin/.initial=0.8}
+\ctikzset{tripoles/american or port/inputs/.initial=2}
+\ctikzset{tripoles/american or port/angle/.initial=70}
+\ctikzset{tripoles/american or port/inner/.initial=0.3}
+\ctikzset{tripoles/american xor port/origin/.initial=0.8}
+\ctikzset{tripoles/american xor port/inputs/.initial=2}
+\ctikzset{tripoles/american xor port/angle/.initial=70}
+\ctikzset{tripoles/american xor port/inner/.initial=0.3}
+\ctikzset{tripoles/american xnor port/origin/.initial=0.8}
+\ctikzset{tripoles/american xnor port/inputs/.initial=2}
+\ctikzset{tripoles/american xnor port/angle/.initial=70}
+\ctikzset{tripoles/american xnor port/inner/.initial=0.3}
+
+\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 buffer port/width/.initial=1.4}
+\ctikzset{tripoles/european buffer port/not height/.initial=.3}
+\ctikzset{tripoles/european buffer port/not width/.initial=.8}
+\ctikzset{tripoles/european buffer port/height/.initial=.65}
+\ctikzset{tripoles/european buffer port/reserved/.initial=.6}
+\ctikzset{tripoles/european buffer port/input height/.initial=0}
+\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}
+% variable number of inputs
+\ctikzset{tripoles/european and port/origin/.initial=0.8}
+\ctikzset{tripoles/european and port/inputs/.initial=2}
+\ctikzset{tripoles/european nand port/origin/.initial=0.8}
+\ctikzset{tripoles/european nand port/inputs/.initial=2}
+\ctikzset{tripoles/european or port/origin/.initial=0.8}
+\ctikzset{tripoles/european or port/inputs/.initial=2}
+\ctikzset{tripoles/european nor port/origin/.initial=0.8}
+\ctikzset{tripoles/european nor port/inputs/.initial=2}
+\ctikzset{tripoles/european xor port/origin/.initial=0.8}
+\ctikzset{tripoles/european xor port/inputs/.initial=2}
+\ctikzset{tripoles/european xnor port/origin/.initial=0.8}
+\ctikzset{tripoles/european xnor port/inputs/.initial=2}
+\ctikzset{tripoles/european buffer port/origin/.initial=0.8}
+\ctikzset{tripoles/european buffer port/inputs/.initial=1}%
+\ctikzset{tripoles/european not port/origin/.initial=0.8}
+\ctikzset{tripoles/european not port/inputs/.initial=1}%
+%%% parameters that are not used anymore after multi-input
+%%% gates --- left for compatibility of source code.
+\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/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}
+%%>>>
+
+%% Node shapes for Logic ports%<<<
+%%
+%% Code from John Kormylo at tex.stackexchange.com
+%% See https://tex.stackexchange.com/questions/372993/is-it-possible-to-implement-multiple-input-logic-ports-with-circuitikz
+%% Integration and fixes from Romano Giannetti and TheTeXnician <38565529+TheTeXnician@users.noreply.github.com>
+%%
+
+\newcount\pgf@circ@res@count% reserve global register
+
+\def\pgf@circ@logicport@input#1% #1 = \pgfmathcounter
+{%
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+}%
+
+% #1 = \pgfmathcounter #2=type #3 specificic port
+% type is 1 for and,nand; 2 for or,nor; 3 for xor,xnor, 4 for european.
+\def\pgf@circ@logicport@baseinput#1#2#3%
+{%
+ % and and nand
+ \ifnum #2=1\relax
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \pgf@x=\ctikzvalof{tripoles/american #3 port/port width}\pgf@circ@res@left
+ \fi
+ % or and nor
+ \ifnum #2=2\relax
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american #3 port/angle}}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american #3 port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up /sin(\pgf@circ@math@angle)}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american #3 port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+ \pgf@circ@res@temp=\pgf@y
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp/\pgf@circ@math@yradius)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgf@x=\pgf@circ@res@other
+ \fi
+ % xor and xnor
+ \ifnum #2=3\relax
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfkeysgetvalue{/tikz/circuitikz/tripoles/american #3 port/angle}{\pgf@circ@math@angle}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american #3 port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up / sin(\pgf@circ@math@angle))}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american #3 port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/american #3 port/distance}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@distance}{\pgf@circ@res@temp}
+ % this compensates for the effect of the line width on the gap between the arcs
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradiusA}{\pgf@circ@math@yradius -2\pgflinewidth}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradiusA}{\pgf@circ@math@xradius -2\pgflinewidth}%
+
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \pgf@circ@res@temp=\pgf@y
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp / \pgf@circ@math@yradiusA)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradiusA*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \advance\pgf@circ@res@other by -\pgf@circ@math@distance
+ \pgf@x=\pgf@circ@res@other
+ \fi
+ % european
+ \ifnum #2=4\relax
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@other}{\left}%
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \pgf@x=\pgf@circ@res@other
+ \fi
+}%
+
+%%% american
+\long\def\pgfcircdeclarelogicport#1#2#3{%
+ \pgfdeclareshape{american #1 port}%
+ {%
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro\resize{% automatic
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@up = \ctikzvalof{tripoles/american #1 port/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgf@circ@res@down = -\pgf@circ@res@up
+ \pgf@circ@res@right = \ctikzvalof{tripoles/american #1 port/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right = .5\pgf@circ@res@right
+ \pgf@circ@res@left = -\pgf@circ@res@right
+ }%
+ \savedmacro\inputs{% get number of inputs
+ \pgf@circ@res@count=\pgfkeysvalueof{/tikz/number inputs}\relax%
+ \ifnum\pgf@circ@res@count=0
+ \pgf@circ@res@count=\ctikzvalof{tripoles/american #1 port/inputs}\relax%
+ \fi
+ \ifnum\pgf@circ@res@count<2 \pgf@circ@res@count=2\fi
+ \ifnum\pgf@circ@res@count>16 \pgf@circ@res@count=16\fi
+ \def\inputs{\the\pgf@circ@res@count}%
+ }%
+ \savedanchor\step{% 1/2 gap at edges
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step = \ctikzvalof{tripoles/american #1 port/height}\pgf@circ@scaled@Rlen
+ \divide\pgf@circ@res@step by \pgf@circ@res@count
+ \pgfpoint{\pgf@circ@res@left}{\dimexpr\pgf@circ@res@up+0.5\pgf@circ@res@step}%
+ }%
+ \savedanchor\northeast{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \savedanchor\southwest{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \savedanchor\left{\pgfpoint{\ctikzvalof{tripoles/american #1 port/port width}\pgf@circ@res@left}{0pt}}
+ \savedanchor\right{\pgfpoint{\ctikzvalof{tripoles/american #1 port/port width}\pgf@circ@res@right}{0pt}}
+ \savedanchor\origin{\pgfpoint{\ctikzvalof{tripoles/american #1 port/origin}\pgf@circ@res@right}{0pt}}
+
+ \anchor{center}{\origin}% for backwards compatibility
+ \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}}
+
+ % create input anchors
+ \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@american #1 port\endcsname{%
+ \pgfmathloop%
+ \ifnum\pgfmathcounter>\pgf@circ@res@count%
+ \else%
+ %\pgfutil@ifundefined{pgf@anchor@american #1 port@in \pgfmathcounter}{%
+ \expandafter\xdef\csname pgf@anchor@american #1 port@in \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@logicport@input{\pgfmathcounter}% defined above
+ }%
+ \expandafter\xdef\csname pgf@anchor@american #1 port@bin \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@logicport@baseinput{\pgfmathcounter}{#2}{#1}% defined above
+ }%
+ %}{}%
+ \repeatpgfmathloop%
+ }
+
+ \anchor{out}{\northeast\pgf@y=0pt}
+ \anchor{bout}{\right\pgf@y=0pt}
+
+
+ \anchor{left}{\left}% edges of component minus leads
+ \anchor{right}{\right}
+
+ \anchor{north east}{\northeast}% see \Compass macro
+ \anchor{south west}{\southwest}
+ \anchor{north}{\pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfpoint{0cm}{\pgf@circ@res@up}}
+ \anchor{north west}{\pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \anchor{west}{\pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfpoint{\pgf@circ@res@left}{0cm}}
+ \anchor{south}{\pgfextracty{\pgf@circ@res@down}{\southwest}%
+ \pgfpoint{0cm}{\pgf@circ@res@down}}
+ \anchor{south east}{\pgfextracty{\pgf@circ@res@down}{\southwest}%
+ \pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \anchor{east}{\pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfpoint{\pgf@circ@res@right}{0cm}}
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ #3
+ }
+}
+}
+%%% american and %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{and}{1}{
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/american and port/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@temp}}
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+ % output lead
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/american and port/port width}\pgf@circ@res@right} {0pt}}
+ \pgfusepath{draw}
+ \fi
+
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american and port/port width}\pgf@circ@res@left
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpatharc{-90}{90}{-2\pgf@circ@res@other and \pgf@circ@res@up}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ }
+%%% american nand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \pgfcircdeclarelogicport{nand}{1}{
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/american nand port/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@temp}}
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/american nand port/port width}\pgf@circ@res@right} {0pt}}
+ \pgfusepath{draw}
+ \fi
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgf@circ@res@step = \ctikzvalof{tripoles/american nand port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@other = \ctikzvalof{tripoles/american nand port/port width}\pgf@circ@res@right
+ \pgf@circ@res@temp = \dimexpr 2\pgf@circ@res@other - \pgf@circ@res@step\relax
+
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpatharc{-90}{90}{\pgf@circ@res@temp and \pgf@circ@res@up}
+ \pgfpathclose
+
+ \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}}
+
+ \pgf@circ@draworfill
+}
+%%% american nor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{nor}{2}{
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american nor port/angle}}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american nor port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up /sin(\pgf@circ@math@angle)}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american nor port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp/\pgf@circ@math@yradius)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american nor port/port width}\pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american nor port/angle}}%
+ \pgf@circ@res@step = \ctikzvalof{tripoles/american nor port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@temp = \dimexpr 2\pgf@circ@res@other - \pgf@circ@res@step\relax
+ \advance\pgf@circ@res@other by -\pgf@circ@res@step
+
+ % main shape
+ \ifpgfcirc@roundy@or@shapes
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}% for symmetry
+ \pgfpatharc{0}{90}{\pgf@circ@res@temp and \pgf@circ@res@up}%
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpatharc{-90}{0}{\pgf@circ@res@temp and \pgf@circ@res@up}%
+ \pgfpathclose
+ \else
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@up}}{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \fi
+
+ % not dot
+ \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}}
+
+ \pgf@circ@draworfill
+}
+%%% american or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{or}{2}{
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american or port/angle}}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american or port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up /sin(\pgf@circ@math@angle)}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american or port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp/\pgf@circ@math@yradius)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american or port/port width}\pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american or port/angle}}%
+
+ % main shape
+ \ifpgfcirc@roundy@or@shapes
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}% for symmetry
+ \pgfpatharc{0}{90}{2\pgf@circ@res@other and \pgf@circ@res@up}%
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpatharc{-90}{0}{2\pgf@circ@res@other and \pgf@circ@res@up}%
+ \pgfpathclose
+ \else
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@up}}{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \fi
+
+ \pgf@circ@draworfill
+}
+%%% american xor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{xor}{3}{
+ \pgfkeysgetvalue{/tikz/circuitikz/tripoles/american xor port/angle}{\pgf@circ@math@angle}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xor port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up / sin(\pgf@circ@math@angle))}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xor port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/american xor port/distance}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@distance}{\pgf@circ@res@temp}
+ % this compensates for the effect of the line width on the gap between the arcs
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradiusA}{\pgf@circ@math@yradius -2\pgflinewidth}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradiusA}{\pgf@circ@math@xradius -2\pgflinewidth}%
+
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp / \pgf@circ@math@yradiusA)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradiusA*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \advance\pgf@circ@res@other by -\pgf@circ@math@distance
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xor port/port width}\pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american xor port/angle}}%
+
+ % main shape
+ \ifpgfcirc@roundy@or@shapes
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}% for symmetry
+ \pgfpatharc{0}{90}{2\pgf@circ@res@other and \pgf@circ@res@up}%
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpatharc{-90}{0}{2\pgf@circ@res@other and \pgf@circ@res@up}%
+ \pgfpathclose
+ \else
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@up}}{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \fi
+ \pgf@circ@draworfill
+
+ \pgfmathsetlength{\pgf@circ@res@temp}{(\pgf@circ@math@yradiusA)*sin(\pgf@circ@math@angle)}%
+
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other-\pgf@circ@math@distance}{\pgf@circ@res@temp}}% first arc
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradiusA and \pgf@circ@math@yradiusA}%
+
+ \pgfusepath{draw}
+}
+%%% american xnor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{xnor}{3}{
+ \pgfkeysgetvalue{/tikz/circuitikz/tripoles/american xnor port/angle}{\pgf@circ@math@angle}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xnor port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up / sin(\pgf@circ@math@angle))}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xnor port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/american xor port/distance}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@distance}{\pgf@circ@res@temp}
+ % this compensates for the effect of the line width on the gap between the arcs
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradiusA}{\pgf@circ@math@yradius -2\pgflinewidth}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradiusA}{\pgf@circ@math@xradius -2\pgflinewidth}%
+
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp / \pgf@circ@math@yradiusA)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradiusA*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \advance\pgf@circ@res@other by -\pgf@circ@math@distance
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xnor port/port width}\pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american xnor port/angle}}%
+ \pgf@circ@res@step = \ctikzvalof{tripoles/american xnor port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@temp = \dimexpr 2\pgf@circ@res@other - \pgf@circ@res@step\relax
+ \advance\pgf@circ@res@other by -\pgf@circ@res@step
+
+ % main shape
+ \ifpgfcirc@roundy@or@shapes
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}% for symmetry
+ \pgfpatharc{0}{90}{\pgf@circ@res@temp and \pgf@circ@res@up}%
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpatharc{-90}{0}{\pgf@circ@res@temp and \pgf@circ@res@up}%
+ \pgfpathclose
+ \else
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@up}}{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \fi
+
+ \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}}
+ \pgf@circ@draworfill
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xnor port/port width}\pgf@circ@res@left
+ \pgfmathsetlength{\pgf@circ@res@temp}{(\pgf@circ@math@yradiusA)*sin(\pgf@circ@math@angle)}%
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other-\pgf@circ@math@distance}{\pgf@circ@res@temp}}% first arc
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradiusA and \pgf@circ@math@yradiusA}%
+
+ \pgfusepath{draw}
+}
+
+%%% Original one-input ports
+
+\pgfdeclareshape{american not port}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/not port/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/not port/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{in 1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@x=0.7\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@x=0.7\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{bin 1}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \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
+ }
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ \anchor{text}{%
+ % centered and a bit to the left (it's a triangle)!
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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 = \ctikzvalof{bipoles/not port/circle width}\pgf@circ@res@right
+
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgf@circ@draworfill
+ \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}}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+ \fi
+
+ \pgfusepath{draw}
+ }
+}
+
+\pgfdeclareshape{american buffer port}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/not port/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/not port/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{in 1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@x=0.7\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@x=0.7\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{bin 1}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \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
+ }
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ \anchor{text}{%
+ % centered and a bit to the left (it's a triangle)!
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+ \fi
+
+ \pgfusepath{draw}
+ }
+}
+\pgfdeclareshape{invschmitt}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/not port/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/not port/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{in 1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bin 1}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \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
+ }
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ \anchor{text}{%
+ % centered and a bit to the left (it's a triangle)!
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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 = \ctikzvalof{bipoles/not port/circle width}\pgf@circ@res@right
+
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \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}}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+ \fi
+ \pgfusepath{draw}
+ %draw inner shape
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.05\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ }
+}
+
+\pgfdeclareshape{schmitt}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/not port/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/not port/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{in 1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bin 1}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-.7\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \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
+ }
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ \anchor{text}{%
+ % centered and a bit to the left (it's a triangle)!
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right-\pgf@circ@res@other}{0pt}}
+ \fi
+ \pgfusepath{draw}
+ %draw inner shape
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.05\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ }
+}
+
+
+%%% start european logic ports, from John Kormylo
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+
+% #1 - name
+% #2 - text inside
+% #3 - number of inputs
+% #4 = is it a not?
+%
+% option to add a circle for not-output, see
+% https://github.com/circuitikz/circuitikz/issues/385
+%
+\newif\ifpgf@circ@european@port@circle\pgf@circ@european@port@circlefalse
+\newif\ifpgf@circ@european@port@circle@ieee\pgf@circ@european@port@circle@ieeefalse
+\ctikzset{tripoles/european not shape/.initial=ocirc}
+\ctikzset{tripoles/european not symbol/.is choice}
+\ctikzset{tripoles/european not symbol/triangle/.code={\pgf@circ@european@port@circlefalse}}
+\ctikzset{tripoles/european not symbol/circle/.code={%
+\pgf@circ@european@port@circletrue\pgf@circ@european@port@circle@ieeefalse\ctikzset{tripoles/european not shape=ocirc}}}
+\ctikzset{tripoles/european not symbol/ieee circle/.code={%
+\pgf@circ@european@port@circletrue\pgf@circ@european@port@circle@ieeetrue\ctikzset{tripoles/european not shape=notcirc}}}
+
+\long\def\pgfcircdeclareeurologicport#1#2#3#4{
+ \pgfdeclareshape{european #1 port}
+ {
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \saveddimen{\boutshift}{%
+ \edef\pgf@temp{not}
+ \edef\pgf@circ@temp{#4}
+ \ifx\pgf@temp\pgf@circ@temp % is a not
+ \ifpgf@circ@european@port@circle
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \edef\pgf@temp{ocirc}
+ \edef\pgf@circ@temp{\ctikzvalof{tripoles/european not shape}}
+ \ifx\pgf@temp\pgf@circ@temp % it's ocirc
+ \pgfmathsetlength{\pgf@x}{2*\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \else % it's ieee not circ
+ \pgf@circ@notradius % defined together with ieeestd ports
+ \pgf@x=2\pgf@circ@res@temp
+ \fi
+ \else
+ \pgf@x=0pt
+ \fi
+ \else
+ \pgf@x=0pt
+ \fi
+ }
+ \savedmacro\resize{% automatic
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@up = \ctikzvalof{tripoles/european #1 port/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgf@circ@res@down = -\pgf@circ@res@up
+ \pgf@circ@res@right = \ctikzvalof{tripoles/european #1 port/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right = .5\pgf@circ@res@right
+ \pgf@circ@res@left = -\pgf@circ@res@right
+ }%
+ \savedmacro\inputs{% get number of inputs
+ \pgf@circ@res@count=\pgfkeysvalueof{/tikz/number inputs}\relax%
+ \ifnum\pgf@circ@res@count=0
+ \pgf@circ@res@count=\ctikzvalof{tripoles/european #1 port/inputs}\relax%
+ \fi
+ \ifnum\pgf@circ@res@count<2 \pgf@circ@res@count=2\fi
+ \ifnum\pgf@circ@res@count>16 \pgf@circ@res@count=16\fi
+ \def\inputs{\the\pgf@circ@res@count}%
+ }%
+ \savedanchor\step{% 1/2 gap at edges
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step = \ctikzvalof{tripoles/european #1 port/height}\pgf@circ@scaled@Rlen
+ \divide\pgf@circ@res@step by #3
+ \pgfpoint{\pgf@circ@res@left}{\dimexpr\pgf@circ@res@up+0.5\pgf@circ@res@step}%
+ }%
+ \savedanchor\northeast{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}%
+ \savedanchor\southwest{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}%
+ \savedanchor\left{\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@left}{0pt}}%
+ \savedanchor\right{\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}{0pt}}%
+ \savedanchor\origin{\pgfpoint{\ctikzvalof{tripoles/european #1 port/origin}\pgf@circ@res@right}{0pt}}%
+
+ \anchor{center}{\origin}% for backwards compatibility
+ % the text anchor overlaps the logic symbol
+ \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}}%
+ % create input anchors
+ \ifnum#3=1\relax
+ \anchor{in}{\southwest\pgfpoint{\pgf@x}{0pt}}% or \step
+ \anchor{in 1}{\southwest\pgfpoint{\pgf@x}{0pt}}% or \step
+ \anchor{bin}{\left\pgfpoint{\pgf@x}{0pt}}% or \step
+ \anchor{bin 1}{\left\pgfpoint{\pgf@x}{0pt}}% or \step
+ \else
+ \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@european #1 port\endcsname{%
+ \pgfmathloop%
+ \ifnum\pgfmathcounter>#3%
+ \else%
+ %\pgfutil@ifundefined{pgf@anchor@european #1 port@in \pgfmathcounter}{% redundant
+ \expandafter\xdef\csname pgf@anchor@european #1 port@in \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@logicport@input{\pgfmathcounter}% defined above
+ }%
+ \expandafter\xdef\csname pgf@anchor@european #1 port@bin \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@logicport@baseinput{\pgfmathcounter}{4}{#1}% defined above
+ }%
+ %}{}%
+ \repeatpgfmathloop%
+ }
+ \fi
+ \anchor{out}{\northeast\pgf@y=0pt}
+ \anchor{bout}{\right\advance\pgf@x by \boutshift\pgf@y=0pt}
+
+ \anchor{left}{\left}% edges of component minus leads
+ \anchor{right}{\right\advance\pgf@x by \boutshift\pgf@y=0pt}
+
+ \anchor{north east}{\northeast}% see \Compass macro
+ \anchor{south west}{\southwest}
+ \anchor{north}{\pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfpoint{0cm}{\pgf@circ@res@up}}
+ \anchor{north west}{\pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \anchor{west}{\pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfpoint{\pgf@circ@res@left}{0cm}}
+ \anchor{south}{\pgfextracty{\pgf@circ@res@down}{\southwest}%
+ \pgfpoint{0cm}{\pgf@circ@res@down}}
+ \anchor{south east}{\pgfextracty{\pgf@circ@res@down}{\southwest}%
+ \pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \anchor{east}{\pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfpoint{\pgf@circ@res@right}{0cm}}
+
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathrectanglecorners
+ {\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \ifnum#3=1\relax
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}%
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@left}{0pt}}%
+ \else
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ %\pgf@circ@res@count = #3\relax% redundant
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@left}
+ {\pgf@circ@res@temp}}
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+ \pgfusepath{draw}
+ \fi
+ %
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{ \pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ %
+ \edef\pgf@temp{not}
+ \edef\pgf@circ@temp{#4}
+ \ifx\pgf@temp\pgf@circ@temp % is a not
+ \ifpgf@circ@european@port@circle
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}
+ % reset linewidth for IEEE ports, otherwise they will multiply...
+ \ifpgf@circ@european@port@circle@ieee\pgfsetlinewidth{\pgfstartlinewidth}\fi
+ \pgfnode{\ctikzvalof{tripoles/european not shape}}{west}{}{NOT}{\pgfusepath{stroke}}
+ \endpgfscope
+ \else
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/european #1 port/not width}\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/european #1 port/not height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ %
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgftext{#2}
+ }
+ }
+}
+\pgfcircdeclareeurologicport{and}{\&}{\pgf@circ@res@count}{}
+\pgfcircdeclareeurologicport{or}{$\ge 1$}{\pgf@circ@res@count}{}
+\pgfcircdeclareeurologicport{xor}{$=1$}{\pgf@circ@res@count}{}
+\pgfcircdeclareeurologicport{not}{$1$}{1}{not}
+\pgfcircdeclareeurologicport{buffer}{$1$}{1}{}
+\pgfcircdeclareeurologicport{nand}{\&}{\pgf@circ@res@count}{not}
+\pgfcircdeclareeurologicport{nor}{$\ge 1$}{\pgf@circ@res@count}{not}
+\pgfcircdeclareeurologicport{xnor}{$=1$}{\pgf@circ@res@count}{not}
+
+%% end european logic ports
+% %>>>
+
+%% IEEE standard logic ports module%<<<
+
+%%
+%% Original multi-input code from John Kormylo at tex.stackexchange.com
+%% Help by TheTeXnician <38565529+TheTeXnician@users.noreply.github.com>
+%% Suggested idea and example code by Jason Sachs <jmsachs@gmail.com>
+%% Please see https://github.com/circuitikz/circuitikz/issues/383 for a lot of details
+%% Most of the code, all errors and bugs by Romano Giannetti <romano.giannetti@gmail.com>
+%% Everything is in the same place here --- more or less; first step to move towards
+%% a module interface for circutikz
+%%
+
+% base settings for ieeestd ports.
+
+\ctikzset{ieeestd ports/.is family}
+% baselen is relative to pgfcirc@Rlen as ever; scaled if the class says so.
+% the value of 0.4 is the standard pin distance for a port with height=num pins
+% and matches the chip distance
+\ctikzset{ieeestd ports/baselen/.initial=0.4}
+% these are in term of baselen; width depends on height (fixed proportions)
+\ctikzset{ieeestd ports/height/.initial=2}
+\ctikzset{ieeestd ports/pin length/.initial=0.7}
+% the standard "not" circle should be 1/6.5 of height (diameter);
+% so radius/baselen=1/3.25/2 --- using 0.1 and no scaling is as a pole
+\ctikzset{ieeestd ports/not radius/.initial=0.154}
+\ctikzset{ieeestd ports/not radius fill/.initial=1}% change ony if you know why
+% the suggested xnor distance is is 1.24, so 1.25/3.25/2
+% xor/xnor leads go full in in IEEE; let this be optional
+\ctikzset{ieeestd ports/xor bar distance/.initial=0.192}%
+\ctikzset{ieeestd ports/xor leads in/.initial=1}%
+%
+% base size of a small external schmitt symbol
+%
+\ctikzset{ieeestd ports/schmitt symbol size/.initial=0.3}%
+%
+% input management
+% we are using the same /tikz/number inputs than the legacy ports
+%
+\tikzset{/tikz/inner inputs/.initial=0} % using 0 means that all inputs are inner
+%
+% integrate with the other logic ports
+%
+%
+\newif\ifpgf@circuit@ieeelogicport\pgf@circuit@ieeelogicportfalse
+\ctikzset{logic ports/ieee/.code= {%
+ \pgf@circuit@ieeelogicporttrue
+ \pgf@circuit@europeanlogicportfalse
+ \tikzset{and port/.style={shape=ieeestd and port}}%
+ \tikzset{or port/.style={shape=ieeestd or port}}%
+ \tikzset{xor port/.style={shape=ieeestd xor port}}%
+ \tikzset{buffer port/.style={shape=ieeestd buffer port}}%
+ \tikzset{not port/.style={shape=ieeestd not port}}%
+ \tikzset{nand port/.style={shape=ieeestd nand port}}%
+ \tikzset{nor port/.style={shape=ieeestd nor port}}%
+ \tikzset{xnor port/.style={shape=ieeestd xnor port}}%
+ \tikzset{schmitt port/.style={shape=ieeestd schmitt port}}%
+ \tikzset{invschmitt port/.style={shape=ieeestd invschmitt port}}%
+}}
+% add code to be compatible with the other ports
+\ctikzset{logic ports/european/.add code={\pgf@circuit@ieeelogicportfalse}}
+\ctikzset{logic ports/american/.add code={\pgf@circuit@ieeelogicportfalse}}
+\tikzset{ieee ports/.style = {\circuitikzbasekey/logic ports = ieee}}
+%
+% the base angle for the or port. See the drawings. This will not change with height
+%
+\pgfmathsetmacro{\pgf@circ@orangle}{atan(3.25/6.5)}
+% \typeout{ANGLE-IS\space\pgf@circ@orangle}
+\def\pgf@circ@ieeeport@input#1% #1 = \pgfmathcounter
+{%
+ \ifnum#1>\inputs
+ \PackageError{circuitikz}{%
+ You requested input pin #1 for logic port shape \thisshape\space \MessageBreak
+ which has been defined with \inputs\space pins%
+ }{Please check the manual about logic ports; if you press return I'll try to continue}
+ \fi
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind+0.5*\pind}% pin "0", above the rack/port
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgf@circ@res@step=\pind
+ \pgf@y=\pgf@circ@res@up\advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \pgf@x=\pgf@circ@res@left\advance\pgf@x by -\pinlen
+}%
+
+% #1 = \pgfmathcounter #2=type
+% type is 1 for and,nand; 2 for or,nor; 3 for xor,xnor
+\def\pgf@circ@ieeeport@baseinput#1#2%
+{%
+ \ifnum#1>\inputs
+ \PackageError{circuitikz}{%
+ You requested border input pin #1 for logic port shape \thisshape\space \MessageBreak
+ which has been defined with \inputs\space pins%
+ }{Please check the manual about logic ports; if you press return I'll try to continue}
+ \fi
+ % Find the vertical position (this is the same for any port)
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind+0.5*\pind}% pin "0", above the rack/port
+ \pgf@circ@res@step=\pind\advance\pgf@circ@res@up by -#1\pgf@circ@res@step\relax
+ % rack (extended) pins; they are the same for all the ports
+ % call K = (inputs-inner)/2, rounded up; pins on the rack are:
+ % above: 1..K (included)
+ % below: inputs-K..inputs
+ % Find the pins on the rack; they are 1...
+ \pgf@circ@count@a=\numexpr (\inputs - \inners)/2\relax % =K; numexpr rounds up!
+ \pgf@circ@count@b=\numexpr \inputs - \pgf@circ@count@a +1 \relax % =inputs - K +1
+ % border anchors for rack should be ok
+ \pgfextractx{\pgf@circ@res@left}{\topleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyleft}
+ \pgf@y=\pgf@circ@res@up\pgf@x=\pgf@circ@res@left
+ % we have finished if we are in the rack
+ \ifnum #1 > \pgf@circ@count@a \ifnum #1 < \pgf@circ@count@b
+ % we are on the inner ports; we have to do the hard work here
+ % and and nand
+ \ifnum #2=1
+ \relax % It's an and/nand, all border ports are on the rack line
+ \fi
+ % or and nor
+ \ifnum #2=2
+ \pgfmathsetlength{\pgf@x}{\pgf@circ@res@right-2*\stdH*(1-cos(atan(\pgf@circ@res@up/(2*\stdH))))}
+ \fi
+ % xor and xnor
+ \ifnum #2=3\relax
+ \pgfmathsetlength{\pgf@x}{\pgf@circ@res@right-\xorbar-2*\stdH*(1-cos(atan(\pgf@circ@res@up/(2*\stdH))))}
+ \fi
+ \fi\fi
+}%
+% inner base ports for xor types port
+% #1 = \pgfmathcounter #2=type
+% type is 1 for and,nand; 2 for or,nor; 3 for xor,xnor
+\def\pgf@circ@ieeeport@innerbaseinput#1%
+{%
+ \ifnum#1>\inputs
+ \PackageError{circuitikz}{%
+ You requested border input pin #1 for logic port shape \thisshape\space \MessageBreak
+ which has been defined with \inputs\space pins%
+ }{Please check the manual about logic ports; if you press return I'll try to continue}
+ \fi
+ % Find the vertical position (this is the same for any port)
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind+0.5*\pind}% pin "0", above the rack/port
+ \pgf@circ@res@step=\pind\advance\pgf@circ@res@up by -#1\pgf@circ@res@step\relax
+ % rack (extended) pins; they are the same for all the ports
+ % call K = (inputs-inner)/2, rounded up; pins on the rack are:
+ % above: 1..K (included)
+ % below: inputs-K..inputs
+ % Find the pins on the rack; they are 1...
+ \pgf@circ@count@a=\numexpr (\inputs - \inners)/2\relax % =K; numexpr rounds up!
+ \pgf@circ@count@b=\numexpr \inputs - \pgf@circ@count@a +1 \relax % =inputs - K +1
+ % border anchors for rack should be ok
+ \pgfextractx{\pgf@circ@res@left}{\topleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyleft}
+ \pgf@y=\pgf@circ@res@up\pgf@x=\pgf@circ@res@left
+ % we have finished if we are in the rack
+ \ifnum #1 > \pgf@circ@count@a \ifnum #1 < \pgf@circ@count@b
+ % we are on the inner ports; we have to do the hard work here
+ \pgfmathsetlength{\pgf@x}{\pgf@circ@res@right-2*\stdH*(1-cos(atan(\pgf@circ@res@up/(2*\stdH))))}
+ \fi\fi
+}%
+
+%%% macro to find basic lenghts --- they leave it in \pgf@circ@res@temp
+\def\pgf@circ@ieeestd@baselen{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{ieeestd ports/baselen}*\pgf@circ@scaled@Rlen}
+}
+\def\pgf@circ@ieeestd@stdH{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@temp}{0.5*\ctikzvalof{ieeestd ports/baselen}*
+ \ctikzvalof{ieeestd ports/height}*\pgf@circ@scaled@Rlen}
+}
+\def\pgf@circ@ieeestd@pinlen{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{ieeestd ports/baselen}*
+ \ctikzvalof{ieeestd ports/pin length}*\pgf@circ@scaled@Rlen}
+}
+\def\pgf@circ@ieeestd@xorbar{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{ieeestd ports/baselen}*
+ \ctikzvalof{ieeestd ports/xor bar distance}*\pgf@circ@scaled@Rlen}
+}
+%% Not circle
+\def\pgf@circ@notradius{
+ \pgf@circ@ieeestd@stdH % got the standard length. Notice that his is 3.25H for IEEE
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{ieeestd ports/not radius}*\pgf@circ@res@temp}
+ % \typeout{NOTRADIUS\space\the\pgf@circ@res@temp}
+}
+%% Find (in ...@other) the height of the rack
+\def\pgf@circ@findrackH{%
+ \pgf@circ@count@a=\pgfkeysvalueof{/tikz/number inputs}\relax%
+ \pgf@circ@count@b=\pgfkeysvalueof{/tikz/inner inputs}\relax%
+ \ifnum\pgf@circ@count@a=0 \pgf@circ@count@a=2\fi % default pins
+ \ifnum\pgf@circ@count@a<2 \pgf@circ@count@a=2\fi %
+ \ifnum\pgf@circ@count@b=0 \pgf@circ@count@b=\pgf@circ@count@a\fi%
+ \pgf@circ@ieeestd@stdH
+ \multiply\pgf@circ@res@temp by 2\relax% full height
+ \divide\pgf@circ@res@temp by \pgf@circ@count@b % the pin spacing
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@circ@count@a/2)*\pgf@circ@res@temp} %top of the rack/port
+ % \typeout{RACK-\thisshape\space\the\pgf@circ@res@other}
+}
+%%
+\def\pgf@circ@find@ieeeport@up{% leave it in up
+ % Normal port limits
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@circ@res@up}{\pgf@circ@res@temp}
+ % rack top size
+ \pgf@circ@findrackH
+ \ifdim\pgf@circ@res@other > \pgf@circ@res@up
+ \pgf@circ@res@up=\pgf@circ@res@other
+ \else
+ \fi
+}
+\def\pgf@circ@find@ieeeport@left#1{% leave it in left; #1 is type
+ % Normal port limits
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@circ@res@left}{8*\pgf@circ@res@temp/6.5}
+ \pgf@circ@res@right=\pgf@circ@res@left % save the border value
+ \pgf@circ@res@step=\pgf@circ@res@temp % save the stdH value
+ \pgf@circ@ieeestd@pinlen\advance\pgf@circ@res@left by \pgf@circ@res@temp
+ % \typeout{LEFT1-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ % this is the normal left border
+ % For the or or xor port, the limit can be the pointy thing (in case the
+ % pinlen is zero or too small)
+ % add to the body margin the or/nor peak:
+ \ifnum #1 > 1\relax% "or", "nor", "xor", "xnor" gates.
+ \pgfmathsetlength{\pgf@circ@res@other}{2*\pgf@circ@res@step*(1-cos(\pgf@circ@orangle))}
+ \advance\pgf@circ@res@right by \pgf@circ@res@other
+ % \typeout{LEFT2-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ \fi
+ % add to the body margin the xor/xnor distance
+ \ifnum #1 = 3\relax% "xor" or "xnor" gates.
+ \pgf@circ@ieeestd@xorbar
+ \advance\pgf@circ@res@right by \pgf@circ@res@temp
+ % \typeout{LEFT3-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ \fi
+ % and if this exceeds the normal margin, this is it
+ % \typeout{LEFT4-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ \ifdim \pgf@circ@res@right > \pgf@circ@res@left
+ \pgf@circ@res@left=\pgf@circ@res@right
+ \fi
+ % \typeout{LEFT5-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ \pgf@circ@res@left=-\pgf@circ@res@left
+}
+\def\pgf@circ@find@ieeeport@right#1{% leave it in right; #1 is plain or negated
+ % Normal port limits
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@circ@res@right}{8*\pgf@circ@res@temp/6.5}
+ \pgf@circ@notradius
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@res@right+2*#1*\pgf@circ@res@temp}
+ \pgf@circ@ieeestd@pinlen\advance\pgf@circ@res@right by \pgf@circ@res@temp
+ \ifdim\pgf@circ@res@other > \pgf@circ@res@right
+ \pgf@circ@res@right=\pgf@circ@res@other
+ \fi
+}
+\def\pgf@circ@find@ieeeport@not@right#1{% leave it in right; #1 is plain or negated
+ % Normal port limits
+ \pgf@circ@ieeestd@stdH
+ % notice 0.8660254 is cos(30)
+ \pgfmathsetlength{\pgf@circ@res@right}{0.8660254*\pgf@circ@res@temp}
+ \pgf@circ@notradius
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@res@right+2*#1*\pgf@circ@res@temp}
+ \pgf@circ@ieeestd@pinlen\advance\pgf@circ@res@right by \pgf@circ@res@temp
+ \ifdim\pgf@circ@res@other > \pgf@circ@res@right
+ \pgf@circ@res@right=\pgf@circ@res@other
+ \fi
+}
+
+
+%%% ieeestd multi-input ports
+%%% #1: name
+%%% #2: type: 1 for and,nand; 2 for or,nor; 3 for xor,xnor
+%%% #3: polarity: 0 for direct, 1 for inverted (not at the output)
+%%% #4: drawing for the port
+\long\def\pgfcircdeclareieeeport#1#2#3#4{%
+ \pgfdeclareshape{ieeestd #1 port}%
+ {%
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \saveddimen{\baselen}{%
+ \pgf@circ@ieeestd@baselen\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\stdH}{% This is HALF the height of the inner port
+ \pgf@circ@ieeestd@stdH\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\notdiameter}{
+ \pgf@circ@notradius\pgf@x=2\pgf@circ@res@temp
+ }
+ \saveddimen{\pind}{% pin distance;
+ \pgf@circ@count@a=\pgfkeysvalueof{/tikz/number inputs}\relax%
+ \pgf@circ@count@b=\pgfkeysvalueof{/tikz/inner inputs}\relax%
+ \ifnum\pgf@circ@count@a=0 \pgf@circ@count@a=2\fi % default pins
+ \ifnum\pgf@circ@count@a<2 \pgf@circ@count@a=2\fi %
+ \ifnum\pgf@circ@count@b=0 \pgf@circ@count@b=\pgf@circ@count@a\fi%
+ \pgf@circ@ieeestd@stdH\pgf@x=2\pgf@circ@res@temp % full height
+ \divide\pgf@x by \pgf@circ@count@b
+ }
+ \saveddimen{\pinlen}{%
+ \pgf@circ@ieeestd@pinlen\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\xorbar}{%
+ \pgf@circ@ieeestd@xorbar\pgf@x=\pgf@circ@res@temp
+ }
+ % anchors for the body (no pins included here)
+ \savedanchor{\bodyleft}{% This DOES NOT take into account the pointy or/xor thing
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-8*\pgf@circ@res@temp/6.5}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\topleft}{%
+ \pgf@circ@ieeestd@xorbar\pgf@circ@res@right=\pgf@circ@res@temp % save \xorbar
+ \pgf@circ@ieeestd@stdH
+ \pgf@circ@res@other=0pt\relax
+ \ifnum #2 = 2\relax% "or" or "nor" gates.
+ \pgfmathsetlength{\pgf@circ@res@other}{2*\pgf@circ@res@temp*(1-cos(\pgf@circ@orangle))}
+ \fi
+ \ifnum #2 = 3\relax% "xor" or "xnor" gates.
+ \pgfmathsetlength{\pgf@circ@res@other}{2*\pgf@circ@res@temp*(1-cos(\pgf@circ@orangle))
+ +\pgf@circ@res@right}
+ \fi
+ \pgfmathsetlength{\pgf@x}{-8*\pgf@circ@res@temp/6.5-\pgf@circ@res@other}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\bodyright}{% This DOES NOT take into account the "NOT" circle
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{8*\pgf@circ@res@temp/6.5}
+ \pgfmathsetlength{\pgf@y}{-\pgf@circ@res@temp}
+ }
+ \savedanchor{\bottomright}{% This DOES take into account the "NOT" circle
+ \pgf@circ@notradius\pgf@circ@res@other=\pgf@circ@res@temp
+ \pgf@circ@ieeestd@stdH
+ % #3 is =1 if the port is a negated output one
+ \pgfmathsetlength{\pgf@x}{8*\pgf@circ@res@temp/6.5+#3*2*\pgf@circ@res@other}
+ \pgfmathsetlength{\pgf@y}{-\pgf@circ@res@temp}
+ }
+ % geographical anchors --- must be rectangulars!
+ \savedanchor{\northwest}{%
+ \pgf@circ@find@ieeeport@up
+ \pgf@circ@find@ieeeport@left{#2}
+ % \typeout{ANCH5-\thisshape\space L\space\the\pgf@circ@res@left\space U\space\the\pgf@circ@res@up}
+ \pgf@x=\pgf@circ@res@left
+ \pgf@y=\pgf@circ@res@up
+ }
+ \savedanchor{\southwest}{%
+ \pgf@circ@find@ieeeport@up
+ \pgf@circ@find@ieeeport@left{#2}
+ \pgf@x=\pgf@circ@res@left
+ \pgf@y=-\pgf@circ@res@up
+ }
+ \savedanchor{\southeast}{%
+ \pgf@circ@find@ieeeport@up
+ \pgf@circ@find@ieeeport@right{#3}
+ \pgf@x=\pgf@circ@res@right
+ \pgf@y=-\pgf@circ@res@up
+ }
+ \savedanchor{\northeast}{%
+ \pgf@circ@find@ieeeport@up
+ \pgf@circ@find@ieeeport@right{#3}
+ \pgf@x=\pgf@circ@res@right
+ \pgf@y=\pgf@circ@res@up
+ }
+ \savedmacro\inputs{% get number of inputs
+ \pgf@circ@count@a=\pgfkeysvalueof{/tikz/number inputs}\relax
+ \ifnum\pgf@circ@count@a=0\pgf@circ@count@a=2\fi % default
+ \ifnum\pgf@circ@count@a<2 \pgf@circ@count@a=2\fi % minimum pins
+ % \ifnum\pgf@circ@count@a>16 \pgf@circ@count@a=16\fi
+ \def\inputs{\the\pgf@circ@count@a}%
+ }%
+ \savedmacro\inners{% get number of "inner" inputs (for racks)
+ \pgf@circ@count@a=\pgfkeysvalueof{/tikz/number inputs}\relax
+ \pgf@circ@count@b=\pgfkeysvalueof{/tikz/inner inputs}\relax
+ \ifnum\pgf@circ@count@a=0 \pgf@circ@count@a=2\fi % default pins
+ \ifnum\pgf@circ@count@a<2 \pgf@circ@count@a=2\fi % minimum pins
+ \ifnum\pgf@circ@count@b=0 \pgf@circ@count@b=\pgf@circ@count@a\fi
+ % \typeout{INNER is \the\pgf@circ@count@b}%
+ % \ifnum\pgf@circ@count@a>16 \pgf@circ@count@a=16\fi
+ \def\inners{\the\pgf@circ@count@b}%
+ }%
+ \anchor{center}{\pgfpointorigin}
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \else
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@circ@res@left}{-8*\pgf@circ@res@temp/6.5} % left border
+ \pgfpoint{\pgf@circ@res@left + \ctikzvalof{left text distance}}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \fi
+ }
+ % create input anchors
+ \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@ieeestd #1 port\endcsname{%
+ \pgf@circ@count@a=\inputs
+ \pgfmathloop%
+ \ifnum\pgfmathcounter>\pgf@circ@count@a%
+ \else%
+ %\pgfutil@ifundefined{pgf@anchor@american #1 port@in \pgfmathcounter}{%
+ \expandafter\xdef\csname pgf@anchor@ieeestd #1 port@in \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@ieeeport@input{\pgfmathcounter}% defined above
+ }%
+ \expandafter\xdef\csname pgf@anchor@ieeestd #1 port@bin \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@ieeeport@baseinput{\pgfmathcounter}{#2}% defined above
+ }%
+ \ifnum #2 = 3\relax % xor/xnor inner border pins
+ \expandafter\xdef\csname pgf@anchor@ieeestd #1 port@ibin \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@ieeeport@innerbaseinput{\pgfmathcounter}% defined above
+ }%
+ \fi
+ %}{}%
+ \repeatpgfmathloop%
+ }
+ % output anchor
+ \anchor{out}{%
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without not ball
+ \advance\pgf@circ@res@other by\pinlen
+ \pgfextractx{\pgf@circ@res@temp}{\bottomright} %body + ball border
+ \ifdim \pgf@circ@res@temp > \pgf@circ@res@other
+ \pgf@circ@res@other = \pgf@circ@res@temp % do not enter in the ball...
+ \fi
+ \pgf@x=\pgf@circ@res@other\pgf@y=0pt
+ }
+ \anchor{bout}{\bottomright\pgf@y=0pt}
+
+ \anchor{body right}{\bodyright\pgf@y=0pt}
+ \anchor{right}{\bottomright\pgf@y=0pt}
+ \anchor{body left}{\bodyleft\pgf@y=0pt}% central edge of the body
+ \anchor{left}{% central edge of the component
+ \bodyleft\pgf@y=0pt
+ \ifnum #2=3\relax
+ \advance\pgf@x by -\xorbar
+ \fi
+ }
+ \anchor{up}{%
+ \bodyleft
+ \ifnum #2 > 1 % pointy shapes
+ \pgf@circ@ieeestd@stdH
+ % horizontal coordinate where the right semicircle starts
+ \pgfmathsetlength{\pgf@circ@res@other}{-8*\pgf@circ@res@temp/6.5+2*\pgf@circ@res@temp*cos(\pgf@circ@orangle)}
+ % vertical drop of the circle at the above coordinate
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@temp*(1-cos(atan(\pgf@circ@res@other/(2*\pgf@circ@res@temp))))}
+ \advance \pgf@y by -\pgf@circ@res@step
+ \fi
+ \pgf@x=0pt
+ }
+ \anchor{down}{%
+ \bodyleft
+ \ifnum #2 > 1 % pointy shapes
+ \pgf@circ@ieeestd@stdH
+ % horizontal coordinate where the right semicircle starts
+ \pgfmathsetlength{\pgf@circ@res@other}{-8*\pgf@circ@res@temp/6.5+2*\pgf@circ@res@temp*cos(\pgf@circ@orangle)}
+ % vertical drop of the circle at the above coordinate
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@temp*(1-cos(atan(\pgf@circ@res@other/(2*\pgf@circ@res@temp))))}
+ \advance \pgf@y by -\pgf@circ@res@step
+ \fi
+ \pgf@y=-\pgf@y\pgf@x=0pt
+ }
+
+ % geographical anchors
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northeast}
+ \anchor{se}{\southeast}
+ \anchor{sw}{\southwest}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\southeast}
+ \anchor{south west}{\southwest}
+ % over 0,0 even if asymmetric
+ % will break if the geocoords are not rectangular
+ \anchor{n}{\northwest\pgf@x=0pt\relax}
+ \anchor{e}{\northeast\pgf@y=0pt\relax}
+ \anchor{s}{\southwest\pgf@x=0pt\relax}
+ \anchor{w}{\northwest\pgf@y=0pt\relax}
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south}{\southwest\pgf@x=0pt\relax}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+
+ \backgroundpath{
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ #4
+ \endpgfscope
+ % output lead:
+ \pgfextractx{\pgf@circ@res@right}{\bottomright} %body+ball border
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without "not" ball
+ \advance\pgf@circ@res@other by \pinlen\relax
+ \ifdim \pgf@circ@res@other > \pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ \ifnum #3=1\relax\pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfnode{notcirc}{east}{}{\thisshape-not}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ }
+ }
+}
+
+%%% #1 direct name #2 negated name #3 type #4 drawing (without output)
+\long\def\pgfcircdeclareieeeportpair#1#2#3#4{%
+ \pgfcircdeclareieeeport{#1}{#3}{0}{#4}% direct
+ \pgfcircdeclareieeeport{#2}{#3}{1}{#4}% negated
+}
+%
+% ieeestd "and" and "nand"
+%
+\pgfcircdeclareieeeportpair{and}{nand}{1}{%
+ \pgf@circ@count@a = \inputs\relax
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind} %top of the rack/port
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@res@up+0.5*\pind}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@down}{\bodyleft}
+ \ifpgfcirc@draw@input@leads
+ %input leads --- all the same for AND ports
+ \loop\ifnum\pgf@circ@count@a>0
+ \advance\pgf@circ@res@temp by -\pind
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@count@a by -1
+ \repeat
+ \fi
+ \pgfusepath{draw}
+ %% Body. let's start from the top left
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{-8*\stdH/6.5}{\stdH}}
+ \pgfpathlineto{\pgfpoint{1.5*\stdH/6.5}{\stdH}}
+ \pgfpatharc{90}{-90}{\stdH}
+ \pgfpathlineto{\pgfpoint{-8*\stdH/6.5}{-\stdH}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % rack now; skip if not needed.
+ % \typeout{WHAT\space \inputs\space \inners}
+ \ifnum\inputs>\inners
+ \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@left}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \fi
+ \endpgfscope
+}
+%
+% or/nor and xor/xnor are practically the same. Let factor out everything
+% the argument #1 is put just before the drawing of the inner pins
+% the argument #2 is put after the drawing of the body
+%
+\long\def\pgf@circ@ieeeport@orxor#1#2{%
+ \pgf@circ@count@a = \inputs\relax
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind} %top of the rack/port
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@res@up+0.5*\pind}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@down}{\bodyleft}
+ % rack (extended) pins; they are the same for all the ports
+ % call K = (inputs-inner)/2, rounded up; pins on the rack are:
+ % above: 1..K (included)
+ % below: inputs-K..inputs
+ % Find the pins on the rack; they are 1...
+ \pgf@circ@count@b=\numexpr (\inputs - \inners)/2\relax % =K; numexpr rounds up!
+ \pgf@circ@count@c=\numexpr \inputs - \pgf@circ@count@b +1 \relax % =inputs - K +1
+ \ifpgfcirc@draw@input@leads
+ %input leads --- for or ports
+ \loop\ifnum\pgf@circ@count@a>0
+ \pgfextractx{\pgf@circ@res@right}{\topleft}
+ \advance\pgf@circ@res@temp by -\pind
+ % this is the height; let's find the "right" position
+ \ifnum \pgf@circ@count@a > \pgf@circ@count@b \ifnum \pgf@circ@count@a < \pgf@circ@count@c
+ % inner pins
+ % \typeout{INNER\space\pgf@circ@count@a}
+ \pgfmathsetlength{\pgf@circ@res@right}{\pgf@circ@res@left-2*\stdH*(1-cos(atan(\pgf@circ@res@temp/(2*\stdH))))}
+ % hook for xor/xnor
+ #1
+ \fi\fi
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{\pgf@circ@res@temp}}%
+ \pgfusepath{draw}
+ \advance\pgf@circ@count@a by -1
+ \repeat
+ \fi
+ %% Body. let's start from the top left
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ % it should start here, but with this trick the close comes out better.
+ % \pgfpathmoveto{\pgfpoint{-8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{\stdH}}
+ \pgfpathmoveto{\pgfpoint{-8*\stdH/6.5}{\stdH}}
+ \pgfpathlineto{\pgfpoint{8*\stdH/6.5-2*\stdH*cos(\pgf@circ@orangle)}{\stdH}} %
+ \pgfpatharcto{2*\stdH}{2*\stdH}{0}{0}{0}{\pgfpoint{8*\stdH/6.5}{0pt}}
+ \pgfpatharcto{2*\stdH}{2*\stdH}{0}{0}{0}{\pgfpoint{8*\stdH/6.5-2*\stdH*cos(\pgf@circ@orangle)}{-\stdH}}
+ \pgfpathlineto{\pgfpoint{-8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{-\stdH}}
+ %% this should be 2 and 2; but the round part is not a perfect circle that way
+ %% so the 2.15 is ajusted "by taste" to touch the anchors exactly.
+ \pgfpatharcto{2*\stdH}{2.2*\stdH}{0}{0}{1}{\pgfpoint{-8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{\stdH}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % hook for xor/xnor
+ #2
+ % rack now; skip if not needed.
+ % \typeout{WHAT\space \inputs\space \inners}
+ \ifnum\inputs>\inners
+ \pgfextractx{\pgf@circ@res@left}{\topleft}
+ \pgfextracty{\pgf@circ@res@down}{\topleft}
+ \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@left}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \fi
+ \endpgfscope
+}
+%
+% ieeestd "or" and "nor"
+%
+\pgfcircdeclareieeeportpair{or}{nor}{2}{%
+ \pgf@circ@ieeeport@orxor{}{}
+}
+\pgfcircdeclareieeeportpair{xor}{xnor}{3}{%
+ \pgf@circ@ieeeport@orxor{
+ \edef\@@tmp{\ctikzvalof{ieeestd ports/xor leads in}}
+ \ifnum\@@tmp=0\relax
+ % move pin start to the left to leave the xor gap free (not standard)
+ \advance\pgf@circ@res@right by -\xorbar
+ \fi
+ }{%
+ % add the xor/xnor bar
+ \pgfpathmoveto{\pgfpoint{-\xorbar-8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{-\stdH}}
+ % see the comment on the main body about the 2.2
+ \pgfpatharcto{2*\stdH}{2.2*\stdH}{0}{0}{1}{\pgfpoint{-\xorbar -8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{\stdH}}
+ \pgfusepath{draw}
+ }
+}
+%
+% Buffer and inverters
+%
+% #1: name
+% #2: polarity
+% #3: content
+\long\def\pgfcircdeclareieeebufferport#1#2#3{%
+ \pgfdeclareshape{ieeestd #1 port}%
+ {%
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \saveddimen{\baselen}{%
+ \pgf@circ@ieeestd@baselen\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\stdH}{% This is HALF the height of the inner port
+ \pgf@circ@ieeestd@stdH\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\notdiameter}{
+ \pgf@circ@notradius\pgf@x=2\pgf@circ@res@temp
+ }
+ \saveddimen{\pinlen}{%
+ \pgf@circ@ieeestd@pinlen\pgf@x=\pgf@circ@res@temp
+ }
+ % anchors for the body (no pins included here)
+ % Notice that 0.8660254 is cos(30)
+ \savedanchor{\bodyleft}{% This DOES NOT take into account the pointy or/xor thing
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\topleft}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\bodyright}{% This DOES NOT take into account the "NOT" circle
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\bottomright}{% This DOES take into account the "NOT" circle
+ \pgf@circ@notradius\pgf@circ@res@other=\pgf@circ@res@temp
+ \pgf@circ@ieeestd@stdH
+ % #2 is =1 if the port is a negated output one
+ \pgfmathsetlength{\pgf@x}{0.8660254*\pgf@circ@res@temp+#2*2*\pgf@circ@res@other}
+ \pgfmathsetlength{\pgf@y}{-\pgf@circ@res@temp}
+ }
+ % geographical anchors --- must be rectangulars!
+ \savedanchor{\northwest}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\southwest}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{-\pgf@circ@res@temp}
+ }
+ \savedanchor{\southeast}{%
+ \pgf@circ@ieeestd@stdH
+ \pgf@circ@res@up=\pgf@circ@res@temp
+ \pgf@circ@find@ieeeport@not@right{#2}
+ \pgf@x=\pgf@circ@res@right
+ \pgf@y=-\pgf@circ@res@up
+ }
+ \savedanchor{\northeast}{%
+ \pgf@circ@ieeestd@stdH
+ \pgf@circ@res@up=\pgf@circ@res@temp
+ \pgf@circ@find@ieeeport@not@right{#2}
+ \pgf@x=\pgf@circ@res@right
+ \pgf@y=\pgf@circ@res@up
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \else
+ \pgf@circ@ieeestd@stdH
+ \pgfpoint{-0.8660254*\pgf@circ@res@temp + \ctikzvalof{left text distance}}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \fi
+ }
+ % input anchors
+ \anchor{in}{\bodyleft\pgf@y=0pt\advance\pgf@x by-\pinlen}
+ \anchor{in 1}{\bodyleft\pgf@y=0pt\advance\pgf@x by-\pinlen}
+ \anchor{bin}{\bodyleft\pgf@y=0pt\relax}
+ \anchor{bin 1}{\bodyleft\pgf@y=0pt\relax}
+ % output anchors
+ \anchor{out}{%
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without not ball
+ \advance\pgf@circ@res@other by\pinlen
+ \pgfextractx{\pgf@circ@res@temp}{\bottomright} %body + ball border
+ \ifdim \pgf@circ@res@temp > \pgf@circ@res@other
+ \pgf@circ@res@other = \pgf@circ@res@temp % do not enter in the ball...
+ \fi
+ \pgf@x=\pgf@circ@res@other\pgf@y=0pt
+ }
+ \anchor{bout}{\bottomright\pgf@y=0pt}
+
+ \anchor{body right}{\bodyright\pgf@y=0pt}
+ \anchor{right}{\bottomright\pgf@y=0pt}
+ \anchor{body left}{\bodyleft\pgf@y=0pt}% central edge of the body
+ \anchor{left}{\bodyleft\pgf@y=0pt}
+ \anchor{up}{%
+ \bodyleft
+ \pgf@y=+0.5\pgf@y\pgf@x=0pt
+ }
+ \anchor{down}{%
+ \bodyleft
+ \pgf@y=-0.5\pgf@y\pgf@x=0pt
+ }
+ % this is for when it's used as a bipole
+ % we use the enclosing rectangle (see below)
+ \anchorborder{%
+ %% This (commented out) is the correct border anchor. But if we use the correct
+ %% border anchor there is no horizontal space for the label ;-) because
+ %% the triangle is too steep. So we will use a simple square border
+ %%
+ %% find the border anchor of a triangle (like a not port or an
+ %% amplifier) ---
+ %%
+ %% -----^ up
+ %% I --- |
+ %% I -|--
+ %%left I | --- right
+ %% ----I-----|-------I-----
+ %%
+ %%
+ %\pgf@xa=\pgf@x
+ %% it's simmetrical w/ vertical side, use only positive y
+ %\pgfmathsetmacro{\@@switchy}{ifthenelse(\pgf@y>0,1,-1)}
+ %\pgfmathsetlength{\pgf@ya}{abs(\pgf@y)}
+ %\pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ %\pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ %\pgfextractx{\pgf@circ@res@right}{\bodyright}
+ %% limit angle for the left (vertical) side
+ %\pgfmathsetmacro{\@@phimax}{atan2(\pgf@circ@res@up,\pgf@circ@res@left)}
+ %\pgfmathsetmacro{\@@phi}{atan2(\pgf@ya,\pgf@xa)}
+ %\pgfmathsetmacro{\@@leftside}{ifthenelse(\@@phi>\@@phimax,1,0)}
+ %% find the border
+ %\ifnum\@@leftside>0
+ % % vertical side
+ % \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ % {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ %\else
+ % % triangle upper line
+ % \pgfpointintersectionoflines
+ % {\pgfpointorigin}{\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ % {\pgfqpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfqpoint{\pgf@circ@res@right}{0pt}}
+ %\fi
+ %% readjust y sign
+ %\pgf@y=\@@switchy\pgf@y
+ %
+ % this is the square border to position the path label with a bit of horizontal space
+ %
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ % geographical anchors
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northeast}
+ \anchor{se}{\southeast}
+ \anchor{sw}{\southwest}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\southeast}
+ \anchor{south west}{\southwest}
+ % over 0,0 even if asymmetric
+ % will break if the geocoords are not rectangular
+ \anchor{n}{\northwest\pgf@x=0pt\relax}
+ \anchor{e}{\northeast\pgf@y=0pt\relax}
+ \anchor{s}{\southwest\pgf@x=0pt\relax}
+ \anchor{w}{\northwest\pgf@y=0pt\relax}
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south}{\southwest\pgf@x=0pt\relax}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+
+ \backgroundpath{
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ #3
+ \endpgfscope
+ % output lead:
+ \pgfextractx{\pgf@circ@res@right}{\bottomright} %body+ball border
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without "not" ball
+ \advance\pgf@circ@res@other by \pinlen\relax
+ \ifdim \pgf@circ@res@other > \pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ \ifnum #2=1\relax\pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfnode{notcirc}{east}{}{\thisshape-not}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ }
+ }
+}
+
+%%% #1 direct name #2 negated name #3 drawing (without output)
+\long\def\pgfcircdeclareieeebufferportpair#1#2#3{%
+ \pgfcircdeclareieeebufferport{#1}{0}{#3}% direct
+ \pgfcircdeclareieeebufferport{#2}{1}{#3}% negated
+}
+
+\pgfcircdeclareieeebufferportpair{buffer}{not}{%
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyright}
+ % \draw input pin
+ \ifpgfcirc@draw@input@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+}
+
+\pgfcircdeclareieeebufferportpair{schmitt}{invschmitt}{%
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyright}
+ % \draw input pin
+ \ifpgfcirc@draw@input@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ % draw schmitt symbol in normal line thickness
+ \pgfpathmoveto{\pgfpoint{0.75*\pgf@circ@res@left}{-0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.50*\pgf@circ@res@left}{-0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.50*\pgf@circ@res@left}{0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.00*\pgf@circ@res@left}{0.25*\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{0.25*\pgf@circ@res@left}{0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.25*\pgf@circ@res@left}{-0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5*\pgf@circ@res@left}{-0.25*\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+
+\pgfdeclareshape{schmitt symbol}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgf@circ@ieeestd@stdH
+ \pgf@y=\ctikzvalof{ieeestd ports/schmitt symbol size}\pgf@circ@res@temp
+ \pgf@x=-1.5\pgf@y
+ }
+ \anchor{center}{\pgf@y=0pt \pgf@x=0pt}
+ \anchor{east}{\northwest\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{e}{\northwest\pgf@y=0pt \pgf@x=-\pgf@x}
+ \anchor{west}{\northwest\pgf@y=0pt}
+ \anchor{w}{\northwest \pgf@y=0pt}
+ \anchor{south}{\northwest \pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{north}{\northwest\pgf@x=0pt}
+ \anchor{n}{\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{
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgf@circ@res@left=0.7\pgf@circ@res@left
+ \pgf@circ@res@up=0.7\pgf@circ@res@up
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left/3}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left/3}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left/3}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@left/3}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{notcirc}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgf@circ@notradius
+ \pgf@y=\pgf@circ@res@temp
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{\pgf@y=0pt \pgf@x=0pt}
+ \anchor{right}{\northwest\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{east}{\northwest\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{e}{\northwest\pgf@y=0pt \pgf@x=-\pgf@x}
+ \anchor{left}{\northwest\pgf@y=0pt}
+ \anchor{west}{\northwest\pgf@y=0pt}
+ \anchor{w}{\northwest \pgf@y=0pt}
+ \anchor{south}{\northwest \pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{north}{\northwest\pgf@x=0pt}
+ \anchor{n}{\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}
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \northwest\pgf@circ@res@temp=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}%
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \northwest\pgf@circ@res@temp=\pgf@y
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathcircle{\pgfpointorigin}{\pgf@circ@res@temp}
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{white}
+ % ...but override it if the class is defined!
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \fi
+ \pgfsetfillopacity{\ctikzvalof{ieeestd ports/not radius fill}}% normally 1.0
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%%%% Transmission gates
+% tgates are only ieee style for now
+\tikzset{%
+ tgate/.style ={shape=ieee tgate},
+ double tgate/.style ={shape=ieee double tgate},
+}
+\ctikzset{tgate scale/.initial=0.7}
+% Buffer and inverters
+%
+% #1: name
+% #2: 1: one-not, 2:double-not
+% #3: content
+\long\def\pgfcircdeclareieeetgate#1#2#3{%
+ \pgfdeclareshape{ieee #1}%
+ {%
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \saveddimen{\baselen}{%
+ \pgf@circ@ieeestd@baselen\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\stdH}{% This is HALF the height of the inner port
+ \pgf@circ@ieeestd@stdH\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\notdiameter}{
+ \pgf@circ@notradius\pgf@x=2\pgf@circ@res@temp
+ }
+ \saveddimen{\notradius}{
+ \pgf@circ@notradius\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\pinlen}{%
+ \pgf@circ@ieeestd@pinlen\pgf@x=\pgf@circ@res@temp
+ }
+ % anchors for the body (no pins included here)
+ % Notice that 0.8660254 is cos(30)
+ \savedanchor{\bodyleft}{% This DOES NOT take into account the pointy or/xor thing
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\topleft}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\bodyright}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\bottomright}{% Here it is the same as \bodyright
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ % geographical anchors --- must be rectangulars!
+ \savedanchor{\northwest}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\southwest}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{-#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\southeast}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{-#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\northeast}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \else
+ \pgf@circ@ieeestd@stdH
+ \pgfpoint{-0.8660254*\pgf@circ@res@temp + \ctikzvalof{left text distance}}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \fi
+ }
+ % input anchors
+ \anchor{in}{\bodyleft\pgf@y=0pt\advance\pgf@x by-\pinlen}
+ \anchor{in 1}{\bodyleft\pgf@y=0pt\advance\pgf@x by-\pinlen}
+ \anchor{bin}{\bodyleft\pgf@y=0pt\relax}
+ \anchor{bin 1}{\bodyleft\pgf@y=0pt\relax}
+ % gates
+ \anchor{gate}{\bodyleft\pgf@circ@res@up=\pgf@y
+ \pgf@x=0pt\pgfmathsetlength{\pgf@y}{-(#2-1)*0.5*\pgf@circ@res@up-\pinlen}}
+ \anchor{bgate}{\bodyleft\pgf@circ@res@up=\pgf@y
+ \pgf@x=0pt\pgfmathsetlength{\pgf@y}{-(#2-1)*0.5*\pgf@circ@res@up}}
+ % gate (up) (2.1547 = 1+1/cos(30)
+ \anchor{notgate}{\bodyleft\pgf@circ@res@up=\pgf@y
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@circ@res@temp}{2.1547*\notradius}
+ \ifdim\pinlen>\pgf@circ@res@temp
+ \pgfmathsetlength{\pgf@y}{(#2-1)*0.5*\pgf@circ@res@up+\pinlen}
+ \else
+ \pgf@y=\pgf@circ@res@temp
+ \fi
+ }
+ \anchor{bnotgate}{\bodyleft\pgf@circ@res@up=\pgf@y
+ \pgf@x=0pt\pgfmathsetlength{\pgf@y}{(#2-1)*0.5*\pgf@circ@res@up+2.1547*\notradius}}
+
+ % output anchors
+ \anchor{out}{%
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without not ball
+ \advance\pgf@circ@res@other by\pinlen
+ \pgfextractx{\pgf@circ@res@temp}{\bottomright} %body + ball border
+ \ifdim \pgf@circ@res@temp > \pgf@circ@res@other
+ \pgf@circ@res@other = \pgf@circ@res@temp % do not enter in the ball...
+ \fi
+ \pgf@x=\pgf@circ@res@other\pgf@y=0pt
+ }
+ \anchor{bout}{\bottomright\pgf@y=0pt}
+
+ \anchor{body right}{\bodyright\pgf@y=0pt}
+ \anchor{right}{\bottomright\pgf@y=0pt}
+ \anchor{body left}{\bodyleft\pgf@y=0pt}% central edge of the body
+ \anchor{left}{\bodyleft\pgf@y=0pt}
+ \anchor{up}{%
+ \bodyleft
+ \pgf@x=0pt
+ \ifnum#2=1\relax
+ \pgf@y=0pt
+ \else
+ \pgf@y=.5\pgf@y
+ \fi
+ \advance\pgf@y by \notdiameter
+ }
+ \anchor{down}{%
+ \bodyleft
+ \pgf@x=0pt
+ \ifnum#2=1\relax
+ \pgf@y=0pt
+ \else
+ \pgf@y=-.5\pgf@y
+ \fi
+ }
+ % this is for when it's used as a bipole
+ % we use the enclosing rectangle (see below)
+ \anchorborder{%
+ %
+ % this is the square border to position the path label with a bit of horizontal space
+ %
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ % geographical anchors
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northeast}
+ \anchor{se}{\southeast}
+ \anchor{sw}{\southwest}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\southeast}
+ \anchor{south west}{\southwest}
+ % over 0,0 even if asymmetric
+ % will break if the geocoords are not rectangular
+ \anchor{n}{\northwest\pgf@x=0pt\relax}
+ \anchor{e}{\northeast\pgf@y=0pt\relax}
+ \anchor{s}{\southwest\pgf@x=0pt\relax}
+ \anchor{w}{\northwest\pgf@y=0pt\relax}
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south}{\southwest\pgf@x=0pt\relax}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+
+ \backgroundpath{
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyright}
+ % \draw input pins
+ \ifpgfcirc@draw@input@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{0pt}}
+ % gate (down)
+ \pgfpathmoveto{\pgfpoint{0pt}{-(#2-1)*0.5*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-(#2-1)*0.5*\pgf@circ@res@up-\pinlen}}
+ % gate (up) (2.1547 = 1+1/cos(30)
+ \pgfmathsetlength{\pgf@circ@res@temp}{2.1547*\notradius}
+ \ifdim\pinlen>\pgf@circ@res@temp
+ \pgfpathmoveto{\pgfpoint{0pt}{(#2-1)*0.5*\pgf@circ@res@up+\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{0pt}{(#2-1)*0.5*\pgf@circ@res@up+\pinlen}}
+ \fi
+ \pgfusepath{draw}
+ \fi
+ #3
+ \endpgfscope
+ % output lead:
+ \pgfextractx{\pgf@circ@res@right}{\bottomright} %body+ball border
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without "not" ball
+ \advance\pgf@circ@res@other by \pinlen\relax
+ \ifdim \pgf@circ@res@other > \pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ }
+ }
+}
+
+\pgfcircdeclareieeetgate{tgate}{1}{%
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfscope
+ % 1.1547 is 1/cos(30)
+ \pgftransformshift{\pgfpoint{0pt}{1.1547*\notradius}}
+ \pgfnode{notcirc}{center}{}{\thisshape-not}{\pgfusepath{stroke}}
+ \endpgfscope
+}
+
+\pgfcircdeclareieeetgate{double tgate}{2}{%
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % bottom triangles
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfscope
+ % 1.1547 is 1/cos(30)
+ \pgftransformshift{\pgfpoint{0pt}{.5*\pgf@circ@res@up+1.1547*\notradius}}
+ \pgfnode{notcirc}{center}{}{\thisshape-not}{\pgfusepath{stroke}}
+ \endpgfscope
+}% %>>>
+
+%% Path-style definitions for logical ports%<<<
+%
+% create path-style element for one input --- one output logical ports
+%
+\def\pgfcirc@port@node@to@path#1#2{%
+ %
+ % add a logic port path style component --- we need to suppress leads
+ % and use the correct center
+ %
+ \pgfcirc@node@to@path{#1}{#2}{/tikz/no leads, \circuitikzbasekey/logic ports origin=center}%
+}
+\pgfcirc@port@node@to@path{not port}{inline not}
+\pgfcirc@port@node@to@path{buffer port}{inline buffer}
+\pgfcirc@port@node@to@path{schmitt port}{inline schmitt}
+\pgfcirc@port@node@to@path{invschmitt port}{inline invschmitt}
+
+\pgfcirc@port@node@to@path{tgate}{inline tgate}
+\pgfcirc@port@node@to@path{double tgate}{inline double tgate}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% Transistors
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Settings for Transistors %<<<1
+
+\newif\ifpgf@circuit@trans@depletiontype
+\pgf@circuit@trans@depletiontypefalse
+
+\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}}
+\pgfkeys{/tikz/arrowmos/.add code={}{\pgf@circuit@mos@arrowstrue}}
+\pgfkeys{/tikz/noarrowmos/.add code={}{\pgf@circuit@mos@arrowsfalse}}
+
+% Fixed label positions
+\newif\ifpgf@circuit@transisors@fixlabels
+\pgf@circuit@transisors@fixlabelstrue
+\pgfkeys{/tikz/center transistors text/.add code={}{\pgf@circuit@transisors@fixlabelstrue}}
+\ctikzset{fix transistors text/.add code={}{\pgf@circuit@transisors@fixlabelstrue}}
+\pgfkeys{/tikz/legacy transistors text/.add code={}{\pgf@circuit@transisors@fixlabelsfalse}}
+\ctikzset{legacy transistors text/.add code={}{\pgf@circuit@transisors@fixlabelsfalse}}
+
+% Option solderdot for fet
+\newif\ifpgf@circuit@fet@solderdot
+\pgfkeys{/tikz/solderdot/.add code={}{\pgf@circuit@fet@solderdottrue}}
+\ctikzset{solderdot/.add code={}{\pgf@circuit@fet@solderdottrue}}
+\pgfkeys{/tikz/nosolderdot/.add code={}{\pgf@circuit@fet@solderdotfalse}}
+\ctikzset{nosolderdot/.add code={}{\pgf@circuit@fet@solderdotfalse}}
+
+% Option bodydiode for fet
+\newif\ifpgf@circuit@fet@bodydiode
+\pgfkeys{/tikz/bodydiode/.add code={}{\pgf@circuit@fet@bodydiodetrue}}
+\ctikzset{bodydiode/.add code={}{\pgf@circuit@fet@bodydiodetrue}}
+\pgfkeys{/tikz/nobodydiode/.add code={}{\pgf@circuit@fet@bodydiodefalse}}
+\ctikzset{nobodydiode/.add code={}{\pgf@circuit@fet@bodydiodefalse}}
+
+% Option draw fet without gate connection
+\newif\ifpgf@circuit@bpt@drawgate
+\pgf@circuit@bpt@drawgatetrue
+\pgfkeys{/tikz/nogate/.add code={}{\pgf@circuit@bpt@drawgatefalse}}
+\ctikzset{nogate/.add code={}{\pgf@circuit@bpt@drawgatefalse}}
+\pgfkeys{/tikz/nobase/.add code={}{\pgf@circuit@bpt@drawgatefalse}}
+\ctikzset{nobase/.add code={}{\pgf@circuit@bpt@drawgatefalse}}
+
+% Option draw bpt with schottky base
+\newif\ifpgf@circuit@bpt@schottky
+\pgf@circuit@bpt@schottkyfalse
+\pgfkeys{/tikz/schottky base/.add code={}{\pgf@circuit@bpt@schottkytrue}}
+\ctikzset{schottky base/.add code={}{\pgf@circuit@bpt@schottkytrue}}
+\pgfkeys{/tikz/no schottky base/.add code={}{\pgf@circuit@bpt@schottkyfalse}}
+\ctikzset{no schottky base/.add code={}{\pgf@circuit@bpt@schottkyfalse}}
+\ctikzset{tripoles/schottky base size/.initial=0.05}
+
+% Option to add ferroelectric symbol
+\newif\ifpgf@circuit@tr@ferroel
+\pgf@circuit@tr@ferroelfalse
+\pgfkeys{/tikz/ferroel gate/.add code={}{\pgf@circuit@tr@ferroeltrue}}
+\ctikzset{ferroel gate/.add code={}{\pgf@circuit@tr@ferroeltrue}}
+\pgfkeys{/tikz/no ferroel gate/.add code={}{\pgf@circuit@tr@ferroelfalse}}
+\ctikzset{no ferroel gate/.add code={}{\pgf@circuit@tr@ferroelfalse}}
+
+
+% Option draw bpt without base connection
+\newif\ifpgf@circuit@bpt@drawbase
+\pgf@circuit@bpt@drawbasetrue
+\pgfkeys{/tikz/nobase/.add code={}{\pgf@circuit@bpt@drawbasefalse}}
+\ctikzset{nobase/.add code={}{\pgf@circuit@bpt@drawbasefalse}}
+\pgfkeys{/tikz/nogate/.add code={}{\pgf@circuit@bpt@drawbasefalse}}
+\ctikzset{nogate/.add code={}{\pgf@circuit@bpt@drawbasefalse}}
+
+% Option draw bpt with optical input
+\newif\ifpgf@circuit@bpt@drawphoto
+\pgf@circuit@bpt@drawphotofalse
+\pgfkeys{/tikz/photo/.add code={}{\pgf@circuit@bpt@drawphototrue}}
+\ctikzset{photo/.add code={}{\pgf@circuit@bpt@drawphototrue}}
+\pgfkeys{/tikz/photo/.add code={}{\pgf@circuit@bpt@drawphototrue}}
+\ctikzset{photo/.add code={}{\pgf@circuit@bpt@drawphototrue}}
+
+% Option draw fet without bulk connection -- Added by Burak Kelleci
+\newif\ifpgf@circuit@bpt@drawbulk
+\pgfkeys{/tikz/bulk/.add code={}{\pgf@circuit@bpt@drawbulktrue}}
+\ctikzset{bulk/.add code={}{\pgf@circuit@bpt@drawbulktrue}}
+\pgfkeys{/tikz/nobulk/.add code={}{\pgf@circuit@bpt@drawbulkfalse}}
+\ctikzset{nobulk/.add code={}{\pgf@circuit@bpt@drawbulkfalse}}
+
+% Option draw pmos with empty circle
+\newif\ifpgf@circuit@pmos@emptycircle
+\pgf@circuit@pmos@emptycirclefalse
+\ctikzset{tripoles/pmos style/.is choice}
+\pgfkeys{/tikz/emptycircle/.add code={}{\pgf@circuit@pmos@emptycircletrue}}
+\ctikzset{tripoles/pmos style/emptycircle/.add code={}{\pgf@circuit@pmos@emptycircletrue}}
+% Option draw pmos with no circle
+\newif\ifpgf@circuit@pmos@nocircle
+\pgf@circuit@pmos@nocirclefalse
+\pgfkeys{/tikz/nocircle/.add code={}{\pgf@circuit@pmos@nocircletrue}}
+\ctikzset{tripoles/pmos style/nocircle/.add code={}{\pgf@circuit@pmos@nocircletrue}}
+% back to normal
+\pgfkeys{/tikz/fullcircle/.add code={}{\pgf@circuit@pmos@emptycirclefalse\pgf@circuit@pmos@nocirclefalse}}
+\ctikzset{tripoles/pmos style/fullcircle/.add code={}{\pgf@circuit@pmos@emptycirclefalse\pgf@circuit@pmos@nocirclefalse}}
+% arrows at the end, the correct way
+\newif\ifpgf@circuit@trans@arrowatend
+\pgf@circuit@trans@arrowatendfalse
+\ctikzset{transistors/arrow pos/.is choice}
+\ctikzset{transistors/arrow pos/legacy/.code={\pgf@circuit@trans@arrowatendfalse}}
+\ctikzset{transistors/arrow pos/end/.code={\pgf@circuit@trans@arrowatendtrue}}
+
+\newif\ifpgf@circuit@trans@ntype
+\pgf@circuit@trans@ntypetrue %default true
+%\newif\ifpgf@circuit@trans@ptype
+%\ctikzset{tripoles/nmos/.add code={\pgf@circuit@trans@ntypetrue}}
+\ctikzset{tripoles/nmos/width/.initial=.7}
+\ctikzset{tripoles/nmos/gate height/.initial=.35}
+\ctikzset{tripoles/nmos/base height/.initial=.5}
+\ctikzset{tripoles/nmos/conn height/.initial=0}
+\ctikzset{tripoles/nmos/height/.initial=1.1}
+\ctikzset{tripoles/nmos/base width/.initial=.5}
+\ctikzset{tripoles/nmos/gate width/.initial=.62}
+\ctikzset{tripoles/nmos/arrow pos/.initial=.6}
+\ctikzset{tripoles/nmos/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nmos/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nmos/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nmos/curr direction/.initial=1}
+
+\ctikzset{tripoles/pmos/width/.initial=.7}
+\ctikzset{tripoles/pmos/gate height/.initial=.35}
+\ctikzset{tripoles/pmos/base height/.initial=.5}
+\ctikzset{tripoles/pmos/conn height/.initial=0}
+\ctikzset{tripoles/pmos/height/.initial=1.1}
+\ctikzset{tripoles/pmos/base width/.initial=.5}
+\ctikzset{tripoles/pmos/gate width/.initial=.62}
+\ctikzset{tripoles/pmos/arrow pos/.initial=.4}
+\ctikzset{tripoles/pmos/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pmos/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pmos/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pmos/curr direction/.initial=-1}
+
+\ctikzset{tripoles/nmosd/width/.initial=.7}
+\ctikzset{tripoles/nmosd/gate height/.initial=.35}
+\ctikzset{tripoles/nmosd/base height/.initial=.5}
+\ctikzset{tripoles/nmosd/conn height/.initial=0}
+\ctikzset{tripoles/nmosd/height/.initial=1.1}
+\ctikzset{tripoles/nmosd/base width/.initial=.5}
+\ctikzset{tripoles/nmosd/gate width/.initial=.62}
+\ctikzset{tripoles/nmosd/arrow pos/.initial=.6}
+\ctikzset{tripoles/nmosd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nmosd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nmosd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nmosd/curr direction/.initial=1}
+\ctikzset{tripoles/nmosd/depletion width/.initial=.1}
+\ctikzset{tripoles/nmosd/depletion color/.initial=default}
+
+\ctikzset{tripoles/pmosd/width/.initial=.7}
+\ctikzset{tripoles/pmosd/gate height/.initial=.35}
+\ctikzset{tripoles/pmosd/base height/.initial=.5}
+\ctikzset{tripoles/pmosd/conn height/.initial=0}
+\ctikzset{tripoles/pmosd/height/.initial=1.1}
+\ctikzset{tripoles/pmosd/base width/.initial=.5}
+\ctikzset{tripoles/pmosd/gate width/.initial=.62}
+\ctikzset{tripoles/pmosd/arrow pos/.initial=.4}
+\ctikzset{tripoles/pmosd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pmosd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pmosd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pmosd/curr direction/.initial=-1}
+\ctikzset{tripoles/pmosd/depletion width/.initial=.1}
+\ctikzset{tripoles/pmosd/depletion color/.initial=default}
+\ctikzset{tripoles/hemt/width/.initial=.7}
+\ctikzset{tripoles/hemt/gate height/.initial=.35}
+\ctikzset{tripoles/hemt/base height/.initial=.5}
+\ctikzset{tripoles/hemt/conn height/.initial=0}
+\ctikzset{tripoles/hemt/height/.initial=1.1}
+\ctikzset{tripoles/hemt/base width/.initial=.5}
+\ctikzset{tripoles/hemt/gate width/.initial=.5}% the horizontal position is the same
+\ctikzset{tripoles/hemt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/hemt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/hemt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/hemt/curr direction/.initial=1}
+
+\ctikzset{tripoles/nfet/width/.initial=.7}
+\ctikzset{tripoles/nfet/gate height/.initial=.35}
+\ctikzset{tripoles/nfet/base height/.initial=.5}
+\ctikzset{tripoles/nfet/conn height/.initial=0}
+\ctikzset{tripoles/nfet/height/.initial=1.1}
+\ctikzset{tripoles/nfet/base width/.initial=.5}
+\ctikzset{tripoles/nfet/gate width/.initial=.62}
+\ctikzset{tripoles/nfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nfet/curr direction/.initial=1}
+
+\ctikzset{tripoles/pfet/width/.initial=.7}
+\ctikzset{tripoles/pfet/gate height/.initial=.35}
+\ctikzset{tripoles/pfet/base height/.initial=.5}
+\ctikzset{tripoles/pfet/conn height/.initial=0}
+\ctikzset{tripoles/pfet/height/.initial=1.1}
+\ctikzset{tripoles/pfet/base width/.initial=.5}
+\ctikzset{tripoles/pfet/gate width/.initial=.62}
+\ctikzset{tripoles/pfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pfet/curr direction/.initial=-1}
+
+\ctikzset{tripoles/nfetd/width/.initial=.7}
+\ctikzset{tripoles/nfetd/gate height/.initial=.35}
+\ctikzset{tripoles/nfetd/base height/.initial=.5}
+\ctikzset{tripoles/nfetd/conn height/.initial=0}
+\ctikzset{tripoles/nfetd/height/.initial=1.1}
+\ctikzset{tripoles/nfetd/base width/.initial=.5}
+\ctikzset{tripoles/nfetd/gate width/.initial=.62}
+\ctikzset{tripoles/nfetd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nfetd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nfetd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nfetd/curr direction/.initial=1}
+
+\ctikzset{tripoles/pfetd/width/.initial=.7}
+\ctikzset{tripoles/pfetd/gate height/.initial=.35}
+\ctikzset{tripoles/pfetd/base height/.initial=.5}
+\ctikzset{tripoles/pfetd/conn height/.initial=0}
+\ctikzset{tripoles/pfetd/height/.initial=1.1}
+\ctikzset{tripoles/pfetd/base width/.initial=.5}
+\ctikzset{tripoles/pfetd/gate width/.initial=.62}
+\ctikzset{tripoles/pfetd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pfetd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pfetd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pfetd/curr direction/.initial=-1}
+
+\ctikzset{tripoles/nigfete/width/.initial=.7}
+\ctikzset{tripoles/nigfete/gate height/.initial=.35}
+\ctikzset{tripoles/nigfete/base height/.initial=.5}
+\ctikzset{tripoles/nigfete/conn height/.initial=.35}
+\ctikzset{tripoles/nigfete/height/.initial=1.1}
+\ctikzset{tripoles/nigfete/base width/.initial=.5}
+\ctikzset{tripoles/nigfete/gate width/.initial=.62}
+\ctikzset{tripoles/nigfete/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nigfete/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nigfete/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nigfete/curr direction/.initial=1}
+
+\ctikzset{tripoles/nigfetd/width/.initial=.7}
+\ctikzset{tripoles/nigfetd/gate height/.initial=.35}
+\ctikzset{tripoles/nigfetd/base height/.initial=.5}
+\ctikzset{tripoles/nigfetd/conn height/.initial=.35}
+\ctikzset{tripoles/nigfetd/height/.initial=1.1}
+\ctikzset{tripoles/nigfetd/base width/.initial=.5}
+\ctikzset{tripoles/nigfetd/gate width/.initial=.62}
+\ctikzset{tripoles/nigfetd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nigfetd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nigfetd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nigfetd/curr direction/.initial=1}
+
+\ctikzset{tripoles/nigfetebulk/width/.initial=.7}
+\ctikzset{tripoles/nigfetebulk/gate height/.initial=.35}
+\ctikzset{tripoles/nigfetebulk/base height/.initial=.5}
+\ctikzset{tripoles/nigfetebulk/conn height/.initial=.35}
+\ctikzset{tripoles/nigfetebulk/height/.initial=1.1}
+\ctikzset{tripoles/nigfetebulk/base width/.initial=.5}
+\ctikzset{tripoles/nigfetebulk/gate width/.initial=.62}
+\ctikzset{tripoles/nigfetebulk/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nigfetebulk/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nigfetebulk/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nigfetebulk/curr direction/.initial=1}
+
+\ctikzset{tripoles/pigfete/width/.initial=.7}
+\ctikzset{tripoles/pigfete/gate height/.initial=.35}
+\ctikzset{tripoles/pigfete/base height/.initial=.5}
+\ctikzset{tripoles/pigfete/conn height/.initial=.35}
+\ctikzset{tripoles/pigfete/height/.initial=1.1}
+\ctikzset{tripoles/pigfete/base width/.initial=.5}
+\ctikzset{tripoles/pigfete/gate width/.initial=.62}
+\ctikzset{tripoles/pigfete/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pigfete/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pigfete/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pigfete/curr direction/.initial=-1}
+
+\ctikzset{tripoles/pigfetd/width/.initial=.7}
+\ctikzset{tripoles/pigfetd/gate height/.initial=.35}
+\ctikzset{tripoles/pigfetd/base height/.initial=.5}
+\ctikzset{tripoles/pigfetd/conn height/.initial=.35}
+\ctikzset{tripoles/pigfetd/height/.initial=1.1}
+\ctikzset{tripoles/pigfetd/base width/.initial=.5}
+\ctikzset{tripoles/pigfetd/gate width/.initial=.62}
+\ctikzset{tripoles/pigfetd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pigfetd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pigfetd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pigfetd/curr direction/.initial=-1}
+
+\ctikzset{tripoles/pigfetebulk/width/.initial=.7}
+\ctikzset{tripoles/pigfetebulk/gate height/.initial=.35}
+\ctikzset{tripoles/pigfetebulk/conn height/.initial=.35}
+\ctikzset{tripoles/pigfetebulk/base height/.initial=.5}
+\ctikzset{tripoles/pigfetebulk/height/.initial=1.1}
+\ctikzset{tripoles/pigfetebulk/base width/.initial=.5}
+\ctikzset{tripoles/pigfetebulk/gate width/.initial=.62}
+\ctikzset{tripoles/pigfetebulk/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pigfetebulk/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pigfetebulk/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pigfetebulk/curr direction/.initial=-1}
+
+\ctikzset{tripoles/npn/width/.initial=.6}
+\ctikzset{tripoles/npn/base height/.initial=.45}
+\ctikzset{tripoles/npn/base height 2/.initial=.15}
+\ctikzset{tripoles/npn/base height/.initial=.4}
+\ctikzset{tripoles/npn/conn height/.initial=0}
+\ctikzset{tripoles/npn/height/.initial=1.1}
+\ctikzset{tripoles/npn/base width/.initial=.5}
+\ctikzset{tripoles/npn/arrow pos/.initial=.5}
+\ctikzset{tripoles/npn/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/npn/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/npn/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/npn/curr direction/.initial=1}
+
+\ctikzset{tripoles/pnp/width/.initial=.6}
+\ctikzset{tripoles/pnp/base height/.initial=.45}
+\ctikzset{tripoles/pnp/base height 2/.initial=.15}
+\ctikzset{tripoles/pnp/base height/.initial=.4}
+\ctikzset{tripoles/pnp/conn height/.initial=0}
+\ctikzset{tripoles/pnp/height/.initial=1.1}
+\ctikzset{tripoles/pnp/base width/.initial=.5}
+\ctikzset{tripoles/pnp/arrow pos/.initial=.5}
+\ctikzset{tripoles/pnp/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pnp/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pnp/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pnp/curr direction/.initial=-1}
+
+\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/outer base height/.initial=.4}
+\ctikzset{tripoles/pigbt/outer base thickness/.initial=1}
+\ctikzset{tripoles/pigbt/conn height/.initial=0}
+\ctikzset{tripoles/pigbt/height/.initial=1.1}
+\ctikzset{tripoles/pigbt/gate width/.initial=.62}
+\ctikzset{tripoles/pigbt/base width/.initial=.5}
+\ctikzset{tripoles/pigbt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pigbt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pigbt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pigbt/curr direction/.initial=-1}
+
+\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/outer base height/.initial=.4}
+\ctikzset{tripoles/nigbt/outer base thickness/.initial=1}
+\ctikzset{tripoles/nigbt/conn height/.initial=0}
+\ctikzset{tripoles/nigbt/height/.initial=1.1}
+\ctikzset{tripoles/nigbt/gate width/.initial=.62}
+\ctikzset{tripoles/nigbt/base width/.initial=.5}
+\ctikzset{tripoles/nigbt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nigbt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nigbt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nigbt/curr direction/.initial=1}
+
+\ctikzset{tripoles/Lpigbt/width/.initial=.6}
+\ctikzset{tripoles/Lpigbt/gate height/.initial=.45}
+\ctikzset{tripoles/Lpigbt/gate height 2/.initial=.15}
+\ctikzset{tripoles/Lpigbt/base height/.initial=.4}
+\ctikzset{tripoles/Lpigbt/outer base height/.initial=.4}
+\ctikzset{tripoles/Lpigbt/outer base thickness/.initial=1}
+\ctikzset{tripoles/Lpigbt/conn height/.initial=.4}
+\ctikzset{tripoles/Lpigbt/height/.initial=1.1}
+\ctikzset{tripoles/Lpigbt/gate width/.initial=.62}
+\ctikzset{tripoles/Lpigbt/base width/.initial=.5}
+\ctikzset{tripoles/Lpigbt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/Lpigbt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/Lpigbt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/Lpigbt/curr direction/.initial=-1}
+
+\ctikzset{tripoles/Lnigbt/width/.initial=.6}
+\ctikzset{tripoles/Lnigbt/gate height/.initial=.45}
+\ctikzset{tripoles/Lnigbt/gate height 2/.initial=.15}
+\ctikzset{tripoles/Lnigbt/base height/.initial=.4}
+\ctikzset{tripoles/Lnigbt/outer base height/.initial=.4}
+\ctikzset{tripoles/Lnigbt/outer base thickness/.initial=1}
+\ctikzset{tripoles/Lnigbt/conn height/.initial=.4}
+\ctikzset{tripoles/Lnigbt/height/.initial=1.1}
+\ctikzset{tripoles/Lnigbt/gate width/.initial=.62}
+\ctikzset{tripoles/Lnigbt/base width/.initial=.5}
+\ctikzset{tripoles/Lnigbt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/Lnigbt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/Lnigbt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/Lnigbt/curr direction/.initial=1}
+
+\ctikzset{tripoles/igbt/outer base height/.code={
+ \ctikzset{tripoles/nigbt/outer base height/.initial=#1}
+ \ctikzset{tripoles/pigbt/outer base height/.initial=#1}
+ \ctikzset{tripoles/Lnigbt/outer base height/.initial=#1}
+ \ctikzset{tripoles/Lpigbt/outer base height/.initial=#1}
+ \ctikzset{tripoles/Lnigbt/conn height/.initial=#1}
+ \ctikzset{tripoles/Lpigbt/conn height/.initial=#1}
+}}
+\ctikzset{tripoles/igbt/outer base thickness/.code={
+ \ctikzset{tripoles/nigbt/outer base thickness=#1}
+ \ctikzset{tripoles/pigbt/outer base thickness=#1}
+ \ctikzset{tripoles/Lnigbt/outer base thickness=#1}
+ \ctikzset{tripoles/Lpigbt/outer base thickness=#1}
+}}
+
+\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/base width/.initial=.5}
+\ctikzset{tripoles/njfet/conn height/.initial=.35}% at the exterior
+\ctikzset{tripoles/njfet/union height/.initial=.35}% at the gate
+\ctikzset{tripoles/njfet/conn kink/.initial=1}% 1=no kink
+\ctikzset{tripoles/njfet/height/.initial=1.1}
+\ctikzset{tripoles/njfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/njfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/njfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/njfet/curr direction/.initial=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/base width/.initial=.5}
+\ctikzset{tripoles/pjfet/conn height/.initial=.35}
+\ctikzset{tripoles/pjfet/union height/.initial=.35}% at the gate
+\ctikzset{tripoles/pjfet/conn kink/.initial=1}% 1=no kink
+\ctikzset{tripoles/pjfet/height/.initial=1.1}
+\ctikzset{tripoles/pjfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pjfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pjfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pjfet/curr direction/.initial=-1}
+
+\ctikzset{tripoles/nujt/width/.initial=.7}
+\ctikzset{tripoles/nujt/gate height/.initial=.5}
+\ctikzset{tripoles/nujt/gate height 2/.initial=.35}
+\ctikzset{tripoles/nujt/gate width/.initial=.5}
+\ctikzset{tripoles/nujt/base width/.initial=.5}
+\ctikzset{tripoles/nujt/conn height/.initial=.35}
+\ctikzset{tripoles/nujt/union height/.initial=0}% at the gate
+\ctikzset{tripoles/nujt/conn kink/.initial=.82}% to match the circle position
+\ctikzset{tripoles/nujt/height/.initial=1.1}
+\ctikzset{tripoles/nujt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nujt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nujt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nujt/curr direction/.initial=1}
+
+\ctikzset{tripoles/pujt/width/.initial=.7}
+\ctikzset{tripoles/pujt/gate height/.initial=.5}
+\ctikzset{tripoles/pujt/gate height 2/.initial=.35}
+\ctikzset{tripoles/pujt/gate width/.initial=.5}
+\ctikzset{tripoles/pujt/base width/.initial=.5}
+\ctikzset{tripoles/pujt/conn height/.initial=.35}
+\ctikzset{tripoles/pujt/union height/.initial=0}% at the gate
+\ctikzset{tripoles/pujt/conn kink/.initial=.82}% to match the circle position
+\ctikzset{tripoles/pujt/height/.initial=1.1}
+\ctikzset{tripoles/pujt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pujt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pujt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pujt/curr direction/.initial=-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/conn height/.initial=0}
+\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}
+\ctikzset{tripoles/isfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/isfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/isfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/isfet/curr direction/.initial=1}
+%
+% graphene FET
+%
+\ctikzset{tripoles/pgfet/width/.initial=.6}
+\ctikzset{tripoles/pgfet/gate height/.initial=.5}
+\ctikzset{tripoles/pgfet/gate height 2/.initial=0.25} % must be "gate height"/2
+\ctikzset{tripoles/pgfet/base height/.initial=.5} % must be "gate height"
+\ctikzset{tripoles/pgfet/outer base height/.initial=.25} % must be "gate height 2"
+\ctikzset{tripoles/pgfet/outer base thickness/.initial=1}
+\ctikzset{tripoles/pgfet/conn height/.initial=0}
+\ctikzset{tripoles/pgfet/height/.initial=1.1}
+\ctikzset{tripoles/pgfet/gate width/.initial=.5}
+\ctikzset{tripoles/pgfet/base width/.initial=0.36084} % must be "gate height"*cos(60)/(2*width)
+\ctikzset{tripoles/pgfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pgfet/bodydiode distance/.initial=.6}
+\ctikzset{tripoles/pgfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pgfet/curr direction/.initial=-1}
+
+\ctikzset{tripoles/ngfet/width/.initial=.6}
+\ctikzset{tripoles/ngfet/gate height/.initial=.5}
+\ctikzset{tripoles/ngfet/gate height 2/.initial=0.25} % must be "gate height"/2
+\ctikzset{tripoles/ngfet/base height/.initial=.5} % must be "gate height"
+\ctikzset{tripoles/ngfet/outer base height/.initial=.25} % must be "gate height 2"
+\ctikzset{tripoles/ngfet/outer base thickness/.initial=1}
+\ctikzset{tripoles/ngfet/conn height/.initial=0}
+\ctikzset{tripoles/ngfet/height/.initial=1.1}
+\ctikzset{tripoles/ngfet/gate width/.initial=.5}
+\ctikzset{tripoles/ngfet/base width/.initial=0.36084} % must be "gate height"*cos(60)/(2*width)
+\ctikzset{tripoles/ngfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/ngfet/bodydiode distance/.initial=.6}
+\ctikzset{tripoles/ngfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/ngfet/curr direction/.initial=1}
+%
+% multi-emitter and multi-collector BJTs by Romano Giannetti
+%
+\ctikzset{tripoles/bjt/emitters/.initial=1}
+\ctikzset{tripoles/bjt/collectors/.initial=1}
+\pgfkeys{/tikz/emitters/.add code={}{\ctikzset{tripoles/bjt/emitters=#1}}}
+\pgfkeys{/tikz/collectors/.add code={}{\ctikzset{tripoles/bjt/collectors=#1}}}
+\ctikzset{tripoles/bjt/pins width/.initial=0.3}
+\pgfkeys{/tikz/bjt pins width/.add code={}{\ctikzset{tripoles/bjt/pins width=#1}}}
+\ctikzset{tripoles/bjt/multi height/.initial=.5}
+\pgfkeys{/tikz/bjt multi height/.add code={}{\ctikzset{tripoles/bjt/multi height/.initial=#1}}}
+%
+\ctikzset{tripoles/bjt/width/.initial=.3}
+\ctikzset{tripoles/bjt/base height 2/.initial=.4}
+\ctikzset{tripoles/bjt/base height/.initial=1.1}
+\ctikzset{tripoles/bjt/height/.initial=.4}
+\ctikzset{tripoles/bjt/base width/.initial=1}
+\ctikzset{tripoles/bjt/arrow pos/.initial=.5}
+% do NOT touch these two!
+\ctikzset{tripoles/bjt/npn/curr direction/.initial=1}
+\ctikzset{tripoles/bjt/pnp/curr direction/.initial=-1}
+
+
+%
+% definitions for transistor circles
+%
+\ctikzset{transistor circle/.is family}
+\ctikzset{transistor circle/relative thickness/.initial=1}
+\ctikzset{transistor circle/color/.initial=default}
+\ctikzset{transistor circle/dash/.initial=none}
+\ctikzset{transistor circle/scale circle radius/.initial=1}
+\ctikzset{transistor circle/default base in/.initial=0.9}
+\ctikzset{transistor circle/njfet base in/.initial=1.05}
+\ctikzset{transistor circle/pjfet base in/.initial=1.05}
+\ctikzset{transistor circle/isfet base in/.initial=0.65}
+
+\newif\ifpgf@circ@trcircle\pgf@circ@trcirclefalse
+\ctikzset{tr circle/.is if=pgf@circ@trcircle}
+\tikzset{tr circle/.is if=pgf@circ@trcircle}
+%%>>>
+
+%% definitions of transistor shapes%<<<
+%
+% add a circle to the transistor:
+%
+\def\pgfcirc@transistorcircle{
+ \ifpgf@circ@trcircle
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfsetlinewidth{\ctikzvalof{transistor circle/relative thickness}\pgflinewidth}
+ \edef\@@none{none}\edef\@@default{default}
+ \edef\@@tmp{\ctikzvalof{transistor circle/color}}
+ \ifx\@@tmp\@@default\else
+ \pgfsetcolor{\@@tmp}
+ \fi
+ \edef\@@tmp{\ctikzvalof{transistor circle/dash}}
+ \ifx\@@tmp\@@none\else
+ \expandafter\pgfsetdash\expandafter{\@@tmp}{0cm}
+ \fi
+ % radius of the circle
+ % \pgfmathsetlength{\pgf@circ@res@temp}{((#2+\extrabodydiodelen)-(#1)+(#3)*(#3)/((#2+\extrabodydiodelen)-(#1)))/2}
+ % \pgfpathcircle{\pgfpoint{#1+\pgf@circ@res@temp}{0pt}}{\pgf@circ@res@temp}
+ \pgfpathcircle{\pgfpoint{\circleleft+\circleradius}{0pt}}{\circleradius}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \fi
+}
+
+% add a ferroelectric squish to transistors
+
+\def\pgfcirc@ferroelectric#1#2{% #1 -> transistor type, #2 horizontal enlargment (prop to ...@left),
+ \ifpgf@circuit@tr@ferroel\pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ % base-gate center and width of the sigmoid
+ \pgfmathsetlength{\pgf@circ@res@other}
+ {0.5*(\ctikzvalof{tripoles/#1/gate width}+\ctikzvalof{tripoles/#1/base width}-(#2))*\pgf@circ@res@left}
+ \pgfmathsetlength{\pgf@circ@res@temp}
+ {1.2*abs(\ctikzvalof{tripoles/#1/gate width}-\ctikzvalof{tripoles/#1/base width}+0.5*(#2))*\pgf@circ@res@left}
+ \pgfsetcornersarced{\pgfpoint{-0.2\pgf@circ@res@temp}{-0.2\pgf@circ@res@temp}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@other+\pgf@circ@res@temp}
+ {1.1*\ctikzvalof{tripoles/#1/base height}*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@other+\pgf@circ@res@temp}
+ {0.5*\ctikzvalof{tripoles/#1/base height}*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@other-\pgf@circ@res@temp}
+ {0.5*\ctikzvalof{tripoles/#1/base height}*\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@other-\pgf@circ@res@temp}
+ {1.1*\ctikzvalof{tripoles/#1/base height}*\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope\fi
+}
+
+\ctikzset{tr gap fill/.initial=none}
+\tikzset{tr gap fill/.style={\circuitikzbasekey/tr gap fill={#1}}}
+% fill the gap in relevant transistors
+\def\pgfcirc@fillgategap#1{% #1 transistor type
+ \edef\@@@none{none}\edef\@@@color{\ctikzvalof{tr gap fill}}% always exists
+ \ifx\@@@none\@@@color\relax\else
+ \begingroup % save the value of @res: other, step, temp
+ \edef\@@@doit{1}% draw it, set to zero if we give up
+ % ok, we have the color here. we have to get center position, with and height
+ % normally is gate height; but in igbt is outer base height (grrrr)
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/outer base height}{
+ % yes, it's an IGBT
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{tripoles/#1/outer base height}*\pgf@circ@res@up}
+ }{
+ %no. Let's try with gate height
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/gate height}{
+ % yes, go for it
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{tripoles/#1/gate height}*\pgf@circ@res@up}
+ }{
+ %no, give up, let value to 0
+ \edef\@@@doit{0}
+ }
+ }
+ % now we have to find x1 and x2: these are base width and gate width
+ % if do not have one of that, bail out.
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/gate width}{
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{tripoles/#1/gate width}*\pgf@circ@res@left}
+ }{
+ \edef\@@@doit{0}
+ }
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/base width}{
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{tripoles/#1/base width}*\pgf@circ@res@left}
+ }{
+ \edef\@@@doit{0}
+ }
+ % if found, draw it.
+ \ifnum\@@@doit>0\relax
+ \pgfscope
+ \pgfsetfillcolor{\@@@color}
+ \pgfsetcolor{\@@@color}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@other}}{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@other}}
+ \pgfusepath{fill, draw}
+ \endpgfscope
+ \fi
+ \endgroup
+ \fi
+}
+
+\long\def\pgfcircdeclaretransistor#1#2#3{
+ \pgfdeclareshape{#1}
+ {
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{transistors}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\circlebase}{
+ \pgfkeysifdefined{\circuitikzbasekey/transistor circle/#1 base in}%
+ {% yes, we have it
+ \edef\circlebase{\ctikzvalof{transistor circle/#1 base in}}%
+ }{% no, use default
+ \edef\circlebase{\ctikzvalof{transistor circle/default base in}}
+ }}
+ % \savedmacro{\thistypeoftr}{\edef\thistypeoftr{#1}}
+ \saveddimen{\extrabodydiodelen}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@fet@bodydiode
+ % try to put the text to the right of the flyback diode
+ \pgfmathsetlength{\pgf@x}{(
+ \ctikzvalof{tripoles/#1/bodydiode distance}*
+ \ctikzvalof{tripoles/#1/width} +
+ \ctikzvalof{tripoles/#1/bodydiode scale}*
+ \ctikzvalof{bipoles/diode/height}/2
+ )*\pgf@circ@scaled@Rlen}
+ \else
+ \pgf@x=0pt\relax
+ \fi
+ }
+ \savedmacro{\scalecircleradius}{
+ \edef\scalecircleradius{\ctikzvalof{transistor circle/scale circle radius}}
+ }
+ \saveddimen{\circleradius}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % repeat the extrabodydiodelen (grrr)
+ \ifpgf@circuit@fet@bodydiode
+ % try to put the text to the right of the flyback diode
+ \pgfmathsetlength{\pgf@circ@res@other}{(
+ \ctikzvalof{tripoles/#1/bodydiode distance}*
+ \ctikzvalof{tripoles/#1/width} +
+ \ctikzvalof{tripoles/#1/bodydiode scale}*
+ \ctikzvalof{bipoles/diode/height}/2
+ )*\pgf@circ@scaled@Rlen}
+ \else
+ \pgf@circ@res@other=0pt\relax
+ \fi
+ % left
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgf@xa=\circlebase\pgf@xa % this is the base point of the circle
+ % northeast
+ \pgf@yb=\ctikzvalof{tripoles/#1/height}\pgf@circ@scaled@Rlen % y of the left point of circle
+ \pgf@yb=.5\pgf@yb
+ \pgf@xb=\pgf@circ@res@other % this is the x of the right points of the circle
+ %
+ \pgf@yb=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@yb %this is #3 of the circle
+ % find the radius of the circle
+ \pgfmathsetlength{\pgf@x}{((\pgf@xb)-(\pgf@xa)+(\pgf@yb)*(\pgf@yb)/((\pgf@xb)-(\pgf@xa)))/2*\scalecircleradius}
+ }
+ \saveddimen{\circleleft}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\circlebase\pgf@xa
+ }
+ \anchor{circle center}{
+ \pgf@y=0pt\pgf@x=\circleleft\advance\pgf@x by\circleradius
+ }
+ \savedanchor{\centergap}{% this is the center position between gate and base
+ % get "left"
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/gate width}{
+ % yes, we have a separated gate
+ \pgfmathsetlength{\pgf@x}
+ {0.5*(\ctikzvalof{tripoles/#1/gate width}+\ctikzvalof{tripoles/#1/base width})*\pgf@xa}
+ }{
+ % no, use just the base
+ \pgfmathsetlength{\pgf@x}
+ {\ctikzvalof{tripoles/#1/base width}*\pgf@xa}
+ }
+ \pgf@y=0pt\relax
+ }
+ \anchor{centergap}{\centergap}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northeast{% upper right
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=0pt
+ }
+ \savedanchor\left{%center left
+ \pgf@y=0pt
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ }
+ \savedanchor\right{
+ \pgf@x=0pt\pgf@y=0pt
+ \ifpgf@circ@trcircle
+ % repeat the \circleradius computation (GRRRR)
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % repeat the extrabodydiodelen (grrr)
+ \ifpgf@circuit@fet@bodydiode
+ % try to put the text to the right of the flyback diode
+ \pgfmathsetlength{\pgf@circ@res@other}{(
+ \ctikzvalof{tripoles/#1/bodydiode distance}*
+ \ctikzvalof{tripoles/#1/width} +
+ \ctikzvalof{tripoles/#1/bodydiode scale}*
+ \ctikzvalof{bipoles/diode/height}/2
+ )*\pgf@circ@scaled@Rlen}
+ \else
+ \pgf@circ@res@other=0pt\relax
+ \fi
+ % left
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgf@xa=\circlebase\pgf@xa % this is the base point of the circle
+ % northeast
+ \pgf@yb=\ctikzvalof{tripoles/#1/height}\pgf@circ@scaled@Rlen % y of the left point of circle
+ \pgf@yb=.5\pgf@yb
+ \pgf@xb=\pgf@circ@res@other % this is the x of the right points of the circle
+ %
+ \pgf@yb=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@yb %this is #3 of the circle
+ % find the radius of the circle
+ \pgfmathsetlength{\pgf@circ@res@other}{((\pgf@xb)-(\pgf@xa)+(\pgf@yb)*(\pgf@yb)/((\pgf@xb)-(\pgf@xa)))/2*\scalecircleradius}
+ % repeat the circleleft computation
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgf@xb=\circlebase\pgf@xa
+ \pgfmathsetlength{\pgf@x}{\pgf@xb+2*\pgf@circ@res@other}
+ \fi
+ }
+ \anchor{text}{
+ \northeast
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@transisors@fixlabels
+ \ifpgf@circuit@fet@bodydiode
+ \advance \pgf@x by \extrabodydiodelen
+ \fi
+ \ifpgf@circ@trcircle
+ \left\pgf@xa=\pgf@x
+ \pgfmathsetlength{\pgf@x}{\circleleft+2*\circleradius}
+ % \advance \pgf@x by \circleradius
+ \fi
+ % add a bit of space to avoid central (substrate) terminal if drawn
+ \advance\pgf@x by 0.05\pgf@circ@scaled@Rlen\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ \else
+ \pgf@y=.7\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=0.1\pgf@x
+ \fi
+ }
+ \anchor{pathstart}{ % south
+ \northeast
+ \pgf@y=-\pgf@y
+ }
+ \anchor{pathend}{
+ \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{left}{
+ \left
+ }
+ \anchor{east}{
+ \northeast
+ \pgf@y=0pt
+ }
+ \anchor{right}{
+ \right
+ }
+ \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
+ }
+ \anchor{B}{
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \left
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{base}{
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \left
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{bulk}{ %added by Burak Kelleci
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \right
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{nobulk}{ %added by Burak Kelleci
+ \left
+ \pgf@x=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ }
+ \anchor{G}{
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \left
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{gate}{
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \left
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{nobase}{
+ \left
+ \pgf@x=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ }
+ \anchor{circle base}{
+ \left
+ \pgf@x=\circlebase\pgf@x
+ }
+ \anchor{nogate}{
+ \left
+ \pgf@x=\ctikzvalof{tripoles/#1/gate width}\pgf@x
+ }
+ \anchor{E}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{emitter}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{C}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{collector}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{S}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{source}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{D}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{drain}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{body C in}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@y
+ }
+ \anchor{circle C}{
+ \left
+ \pgf@xa=\circlebase\pgf@x % this is #1 of the circle
+ \northeast
+ \pgf@xb=\pgf@x %this is #2 of the circle
+ \pgf@yb=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@y %this is #3 of the circle
+ % the base of the triangle is x_2 - x_1 - r
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@xb-\pgf@xa-\circleradius}
+ % so let's go with the height
+ \pgfmathsetlength{\pgf@ya}{sqrt(abs(\circleradius*\circleradius-\pgf@circ@res@other*\pgf@circ@res@other))}
+ % finally, direction
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@ya
+ }
+ \anchor{circle E}{
+ \left
+ \pgf@xa=\circlebase\pgf@x % this is #1 of the circle
+ \northeast
+ \pgf@xb=\pgf@x %this is #2 of the circle
+ \pgf@yb=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@y %this is #3 of the circle
+ % the base of the triangle is x_2 - x_1 - r
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@xb-\pgf@xa-\circleradius}
+ % so let's go with the height
+ \pgfmathsetlength{\pgf@ya}{sqrt(abs(\circleradius*\circleradius-\pgf@circ@res@other*\pgf@circ@res@other))}
+ % finally, direction
+ % finally, direction
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@ya
+ }
+ \anchor{body E in}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@y
+ }
+ \anchor{body C out}{
+ \northeast
+ \pgf@ya=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ \pgf@ya=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@ya
+ \pgf@y=\pgf@ya
+ \left
+ \pgf@x=-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@x
+ \pgf@y=\pgf@ya
+ }
+ \anchor{body E out}{
+ \northeast
+ \pgf@ya=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ \pgf@ya=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@ya
+ \pgf@y=\pgf@ya
+ \left
+ \pgf@x=-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@x
+ \pgf@y=\pgf@ya
+ }
+ #2
+ \backgroundpath{
+ \pgftransformationadjustments
+ \pgfsetcolor{\ctikzvalof{color}}
+ %
+ \ifnum \ctikzvalof{tripoles/#1/curr direction} > 0
+ \pgf@circuit@trans@ntypetrue
+ \else
+ \pgf@circuit@trans@ntypefalse
+ \fi
+ \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
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ %
+ #3
+ % BODY DIODE
+ \ifpgf@circuit@fet@bodydiode
+ \drawbodydiode{#1}
+ \fi
+ %
+ }
+}
+}
+
+\long\def\drawbodydiode#1{
+ \pgfscope
+ \pgftransformshift{\pgfpoint{-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgftransformrotate{90}
+ % diode scale and bodydiode scale interacts. We want the size of the diode
+ % proportional to the transistor, so we will:
+ % 1) undo diode scale 2) apply transistor scale (using the current class) 3) apply bodydiode scale
+ \pgfmathsetmacro{\@@BDscale}{\ctikzvalof{tripoles/#1/bodydiode scale}* \ctikzvalof{\ctikzclass/scale}/\ctikzvalof{diodes/scale}}
+ \pgftransformscale{\@@BDscale}
+ \ifpgf@circuit@fulldiode
+ \pgfnode{fulldiodeshape}{center}{}{pgf@bodydiode}{\pgfusepath{fill}}
+ \else
+ \pgfnode{emptydiodeshape}{center}{}{pgf@bodydiode}{\pgfusepath{fill}}
+ \fi
+ \endpgfscope
+ % Draw stroke line
+ \ifpgf@circuit@strokediode
+ \pgfpathmoveto{\pgfpointanchor{pgf@bodydiode}{west}}
+ \pgfpathlineto{\pgfpointanchor{pgf@bodydiode}{east}}
+ \pgfusepath{stroke}
+ \fi
+ %Draw upper connection to body diode
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointanchor{pgf@bodydiode}{east}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@up}}
+ \pgftransformscale{0.5}
+ \pgfnode{circ}{center}{}{}{\pgfusepath{fill}}
+ \endpgfscope{}
+ %Draw lower connection to body diode
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@circ@res@left}{\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpointanchor{pgf@bodydiode}{west}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right} {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@down}}
+ \pgftransformscale{0.5}
+ \pgfnode{circ}{center}{}{}{\pgfusepath{fill}}
+ \endpgfscope
+}
+
+\long\def\declarebpt#1{
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/base height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/base height}\pgf@y
+ }
+ }{
+
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % drawing base
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \ifpgf@circuit@bpt@schottky
+ % upper
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ % % lower
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+ %draw arrow depending on type of transistor
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \edef\@@anchor{center}
+ \ifpgf@circuit@trans@ntype
+ \ifpgf@circuit@trans@arrowatend
+ \edef\@@anchor{btip}
+ \pgftransformlineattime{1.0}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}%
+ }
+ \else
+ \pgftransformlineattime{\ctikzvalof{tripoles/#1/arrow pos}}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}%
+ }
+ \fi
+ \else % p-type
+ \ifpgf@circuit@trans@arrowatend
+ \edef\@@anchor{tip}
+ \pgftransformlineattime{1.0}{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@up}%
+ }
+ \else
+ \pgftransformlineattime{\ctikzvalof{tripoles/#1/arrow pos}}{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@up}%
+ }
+ \fi
+ \fi
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ \ifpgf@circuit@bpt@drawphoto
+ \pgfscope
+ \pgfsetarrowsstart{latexslim}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ {\pgfpoint{0.05\pgf@circ@res@left}{0.1\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ {\pgfpoint{0.5\pgf@circ@res@left}{0.3\pgf@circ@res@up}}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ {\pgfpoint{0.05\pgf@circ@res@left}{-0.1\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ {\pgfpoint{0.5\pgf@circ@res@left}{0.1\pgf@circ@res@up}}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \else
+ \ifpgf@circuit@bpt@drawbase
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ }
+}
+
+\declarebpt{npn}
+\declarebpt{pnp}
+%
+% multi-emitter and multi-collector BJTs by Romano Giannetti
+%
+\def\pgf@circ@bjt@C@anchor#1{% #1: collector number
+ \pgfextractx{\pgf@circ@res@temp}{\basedimension}
+ \pgfextracty{\pgf@circ@res@other}{\basedimension}
+ \ifnum\cdir>0 % NPN, above
+ \pgfpoint{\pgf@circ@res@temp}{%
+ \pgf@circ@res@other+\pgfverticaltransformationadjustment*.5*\pgflinewidth+(#1-1)*\multistep}
+ \else % PNP, below
+ \pgfpoint{\pgf@circ@res@temp}{%
+ -\pgf@circ@res@other-\pgfverticaltransformationadjustment*.5*\pgflinewidth-(#1-1)*\multistep}
+ \fi
+}
+\def\pgf@circ@bjt@E@anchor#1{% #1: collector number
+ \pgfextractx{\pgf@circ@res@temp}{\basedimension}
+ \pgfextracty{\pgf@circ@res@other}{\basedimension}
+ \ifnum\cdir<0 % PNP, above
+ \pgfpoint{\pgf@circ@res@temp}{%
+ \pgf@circ@res@other+\pgfverticaltransformationadjustment*.5*\pgflinewidth+(#1-1)*\multistep}
+ \else % PNP, below
+ \pgfpoint{\pgf@circ@res@temp}{%
+ -\pgf@circ@res@other-\pgfverticaltransformationadjustment*.5*\pgflinewidth-(#1-1)*\multistep}
+ \fi
+}
+
+\long\def\declarebjt#1{
+ \pgfdeclareshape{bjt#1}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{transistors}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ % \cdir is 1 for npn, -1 for pnp
+ \savedmacro{\cdir}{\edef\cdir{\ctikzvalof{tripoles/bjt/#1/curr direction}}}
+ \savedmacro{\numE}{\edef\numE{\ctikzvalof{tripoles/bjt/emitters}}}
+ \savedmacro{\numC}{\edef\numC{\ctikzvalof{tripoles/bjt/collectors}}}
+ % step up or down for the additional C/Es
+ \saveddimen{\multistep}{\pgfmathsetlength{\pgf@x}{%
+ \ctikzvalof{tripoles/bjt/height}*\ctikzvalof{tripoles/bjt/multi height}*
+ \ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}}
+ \saveddimen{\external}{\pgfmathsetlength{\pgf@x}{%
+ \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}}
+ \savedanchor\basedimension{% these are the dimensions if nC=1 y nE=1
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/bjt/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=\ctikzvalof{tripoles/bjt/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\northeast{% upper right
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@step}{%
+ \ctikzvalof{tripoles/bjt/height}*\ctikzvalof{tripoles/bjt/multi height}*
+ \ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \ifnum\cdir> 0
+ \edef\numup{\numC}\edef\numdown{\numE}
+ \else
+ \edef\numup{\numE}\edef\numdown{\numC}
+ \fi
+ \pgfmathsetlength{\pgf@y}{0.5*\ctikzvalof{tripoles/bjt/height}\pgf@circ@scaled@Rlen
+ + (\numup-1)*\pgf@circ@res@step+\pgfverticaltransformationadjustment*.5*\pgflinewidth
+ + \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{tripoles/bjt/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\southeast{% lower right
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@step}{%
+ \ctikzvalof{tripoles/bjt/height}*\ctikzvalof{tripoles/bjt/multi height}*
+ \ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \ifnum\cdir> 0
+ \edef\numup{\numC}\edef\numdown{\numE}
+ \else
+ \edef\numup{\numE}\edef\numdown{\numC}
+ \fi
+ \pgfmathsetlength{\pgf@y}{-0.5*\ctikzvalof{tripoles/bjt/height}\pgf@circ@scaled@Rlen
+ - (\numdown-1)*\pgf@circ@res@step-\pgfverticaltransformationadjustment*.5*\pgflinewidth
+ - \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{tripoles/bjt/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\southwest{% lower left
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@step}{%
+ \ctikzvalof{tripoles/bjt/height}*\ctikzvalof{tripoles/bjt/multi height}*
+ \ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \ifnum\cdir> 0
+ \edef\numup{\numC}\edef\numdown{\numE}
+ \else
+ \edef\numup{\numE}\edef\numdown{\numC}
+ \fi
+ \pgfmathsetlength{\pgf@y}{-0.5*\ctikzvalof{tripoles/bjt/height}\pgf@circ@scaled@Rlen
+ - (\numdown-1)*\pgf@circ@res@step-\pgfverticaltransformationadjustment*.5*\pgflinewidth
+ - \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@x}{-0.5*\ctikzvalof{tripoles/bjt/width}*\pgf@circ@scaled@Rlen
+ - \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\southwest\pgf@x=0cm\relax}
+ \anchor{west}{\southwest\pgf@y=0cm}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@ya=\pgf@y\southwest\pgf@y=\pgf@ya}
+ \anchor{south west}{\southwest}
+ \anchor{south east}{\southeast}
+
+ \anchor{text}{\northeast\pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax}
+ \anchor{B}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x\advance\pgf@x by -\external}
+ \anchor{base}{\basedimension\pgf@y=0cm\pgf@x=-\pgf@x\advance\pgf@x by -\external}
+ \anchor{nobase}{\basedimension\pgf@y=0cm\pgf@x=-\pgf@x}
+ % center of the base "bar"
+ \anchor{cbase}{\basedimension\pgf@x=-\pgf@x
+ \pgfmathsetlength{\pgf@y}{\cdir*(\numC-\numE)*\multistep/2}%
+ }
+ % geometrical centers
+ \anchor{vcenter}{\pgf@x=0cm\relax
+ \pgfmathsetlength{\pgf@y}{\cdir*(\numC-\numE)*\multistep/2}%
+ }
+ \anchor{gcenter}{%
+ \northeast\pgf@xa=0.5\pgf@x
+ \southwest\advance\pgf@xa by 0.5\pgf@x
+ \pgf@x=\pgf@xa
+ \pgfmathsetlength{\pgf@y}{\cdir*(\numC-\numE)*\multistep/2}%
+ }
+ % external connections
+ \anchor{E}{
+ \ifnum\cdir>0% npn, emitter down
+ \southeast
+ \else
+ \northeast
+ \fi
+ }% first emitter
+ \anchor{emitter}{\ifnum\cdir>0\southeast\else\northeast\fi}% first emitter
+ \anchor{C}{\ifnum\cdir<0\southeast\else\northeast\fi}
+ \anchor{collector}{\ifnum\cdir<0\southeast\else\northeast\fi}
+
+ \backgroundpath{
+ \pgftransformationadjustments
+ \pgfsetcolor{\ctikzvalof{color}}
+ %
+ % set the type and up and down number of connections
+ %
+ \ifnum\cdir> 0
+ \pgf@circuit@trans@ntypetrue
+ \edef\numup{\numC}
+ \edef\numdown{\numE}
+ \else
+ \pgf@circuit@trans@ntypefalse
+ \edef\numup{\numE}
+ \edef\numdown{\numC}
+ \fi
+ \basedimension
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\multistep
+ %
+ % set arrow positions options
+ %
+ \edef\@@anchor{center}\edef\@@pos{\ctikzvalof{tripoles/#1/arrow pos}}
+ \ifpgf@circuit@trans@arrowatend
+ \edef\@@pos{1.0}
+ \ifpgf@circuit@trans@ntype % arrow is toward outside, push it a bit
+ \edef\@@anchor{btip}
+ \else
+ \edef\@@anchor{tip}
+ \fi
+ \fi
+ %
+ % Drawing upper connections
+ %
+ \pgfscope
+ \pgf@circ@count@a=\numup\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \advance\pgf@circ@count@a-1\relax
+ \pgfmathsetlength{\pgf@circ@res@other}{\the\pgf@circ@count@a*\multistep}%
+ \ifnum\pgf@circ@count@a=\numexpr\numup-1\relax % draw the external pin connection
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\external+\pgfverticaltransformationadjustment*.5*\pgflinewidth+\pgf@circ@res@other}}%
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth+\pgf@circ@res@other}}%
+ \else
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth+\pgf@circ@res@other}}%
+ \fi
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/bjt/base height 2}\pgf@circ@res@up+\pgf@circ@res@other}}%
+ \pgfsetroundcap % better when connecting to sloped lines
+ \pgfusepath{draw}
+ \ifpgf@circuit@trans@ntype\else % it's a PNP; draw arrow
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth+\pgf@circ@res@other}%
+ }{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/bjt/base height 2}\pgf@circ@res@up+\pgf@circ@res@other}%
+ }
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ \fi
+ \repeatpgfmathloop
+ \endpgfscope
+ %
+ % Drawing base
+ %
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \ifpgf@circuit@bpt@schottky
+ % upper
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep}}
+ % lower
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep}}
+ \fi
+ \pgfsetroundcap % I like it more...
+ \pgfusepath{draw}
+ \endpgfscope
+ %
+ % draw base external connection
+ %
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left-\external}{0pt}}
+ \pgfusepath{draw}
+ %
+ % Drawing lower connections
+ %
+ \pgfscope
+ \pgf@circ@count@a=\numdown\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \advance\pgf@circ@count@a-1\relax
+ \pgfmathsetlength{\pgf@circ@res@other}{\the\pgf@circ@count@a*\multistep}%
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height 2}\pgf@circ@res@down-\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@right}
+ {\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth-\pgf@circ@res@other}}
+ \ifnum\pgf@circ@count@a=\numexpr\numdown-1\relax % draw the external pin connection
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@right}
+ {\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth-\pgf@circ@res@other-\external}}
+ \fi
+ \pgfsetroundcap % better when connecting to sloped lines
+ \pgfusepath{draw}
+ \ifpgf@circuit@trans@ntype % it's a NPN; draw arrow
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/bjt/base height 2}\pgf@circ@res@down-\pgf@circ@res@other}%
+ }{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth-\pgf@circ@res@other}%
+ }
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ \fi
+ \repeatpgfmathloop
+ \endpgfscope
+ }
+ % \pgf@sh@s@<name of the shape here> contains all the code for the shape
+ % and is executed just before a node is drawn.
+ \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@bjt#1\endcsname{%
+ % Start with the maximum collector number and go backwards.
+ \pgf@circ@count@a=\numC\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\xdef\csname pgf@anchor@bjt#1@C\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@bjt@C@anchor{\the\pgf@circ@count@a}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ % and emitters
+ \pgf@circ@count@a=\numE\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\xdef\csname pgf@anchor@bjt#1@E\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@bjt@E@anchor{\the\pgf@circ@count@a}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+ }
+}
+
+\declarebjt{npn}
+\declarebjt{pnp}
+
+% end of multi-bjts
+
+\long\def\declareigbt#1{
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{nobase}{
+ \left
+ \pgf@x=\ctikzvalof{tripoles/#1/gate width}\pgf@x
+ }
+ }
+ {
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{#1}
+ %draw upper connection
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ %draw thicker gate lines
+ \pgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/outer base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/outer base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ % set the normal thickness
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \edef\@@extrat{\ctikzvalof{tripoles/#1/outer base thickness}}
+ \pgfsetlinewidth{\@@extrat\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ %draw lower connection
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+ %draw arrow depending on type of transistor
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \ifpgf@circuit@trans@ntype
+ \edef\@@anchor{btip}\edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{tip}\edef\@@pos{1.0}
+ \fi
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.5}
+ \fi
+ \ifpgf@circuit@trans@ntype
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}%
+ }
+ \else
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}%
+ }
+ \fi
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ %draw gate
+ \ifpgf@circuit@bpt@drawgate
+ \ifpgf@circuit@trans@ntype
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}%
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}%
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@up}}
+ \fi
+ \fi
+ \pgfusepath{draw}
+ }
+}
+
+\declareigbt{pigbt}
+\declareigbt{nigbt}
+\declareigbt{Lnigbt}
+\declareigbt{Lpigbt}
+
+% Graphene FET, See https://github.com/circuitikz/circuitikz/issues/496
+\long\def\declaregfet#1{
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{outer hex up}{
+ \left
+ \pgf@xa=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@x=-\pgf@xa
+ }
+ \anchor{outer hex down}{
+ \left
+ \pgf@xa=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@y=-\pgf@y
+ \pgf@x=-\pgf@xa
+ }
+ \anchor{inner hex up}{
+ \left
+ \pgf@xa=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@x=\pgf@xa
+ }
+ \anchor{inner hex down}{
+ \left
+ \pgf@xa=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@y=-\pgf@y
+ \pgf@x=\pgf@xa
+ }
+ \anchor{right}{
+ \northeast\pgf@y=0pt\relax
+ \pgfmathsetlength{\pgf@xa}{\ctikzvalof{tripoles/#1/base width}*
+ \ctikzvalof{tripoles/#1/width}*\pgf@circ@scaled@Rlen}
+ \advance \pgf@x by \pgf@xa
+ }
+ \anchor{text}{% need a different text: no circle, shift to the right
+ \northeast
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@transisors@fixlabels
+ \ifpgf@circuit@fet@bodydiode
+ \advance \pgf@x by \extrabodydiodelen
+ \else
+ \pgfmathsetlength{\pgf@xa}{\ctikzvalof{tripoles/#1/base width}*
+ \ctikzvalof{tripoles/#1/width}*\pgf@circ@scaled@Rlen}
+ \advance \pgf@x by \pgf@xa
+ \fi
+ % no circle for gfets
+ % add a bit of space to avoid central (substrate) terminal if drawn
+ \advance\pgf@x by 0.05\pgf@circ@scaled@Rlen\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ \else
+ \pgf@y=.7\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=0.1\pgf@x
+ \fi
+ }
+ }
+ {
+ % no circle for gfets (clearly!)
+ %draw upper connection to hexagon
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+ % draw (fillable) hexagon
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {-\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {-\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ %draw thicker gate lines
+ \pgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/outer base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/outer base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ % set the normal thickness
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \edef\@@extrat{\ctikzvalof{tripoles/#1/outer base thickness}}
+ \pgfsetlinewidth{\@@extrat\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ %draw arrow depending on type of transistor
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \ifpgf@circuit@trans@ntype
+ \edef\@@anchor{btip}\edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{tip}\edef\@@pos{1.0}
+ \fi
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.5}
+ \fi
+ \ifpgf@circuit@trans@ntype
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}%
+ }
+ \else
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}%
+ }
+ \fi
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ %draw gate
+ \ifpgf@circuit@trans@ntype
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}%
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}%
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@up}}
+ \fi
+ \pgfusepath{draw}
+ }
+}
+
+\declaregfet{pgfet}
+\declaregfet{ngfet}
+
+% Plain MOSes
+
+\pgfcircdeclaretransistor{nmos}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/nmos/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/nmos/gate height}\pgf@y
+ }
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{nmos}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/base height}\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \ifpgf@circuit@mos@arrows
+ \pgfscope
+ \ifpgf@circuit@trans@arrowatend
+ \pgftransformshift{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{trarrow}{btip}{}{}{\pgfusepath{stroke}}
+ \else
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\ctikzvalof{tripoles/nmos/arrow pos}}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/nmos/gate width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \fi
+ \endpgfscope
+ \fi
+
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@bpt@drawbulk % added by Burak Kelleci
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgfcirc@ferroelectric{nmos}{0}
+}
+
+\pgfcircdeclaretransistor{pmos}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/pmos/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/pmos/gate height}\pgf@y
+ }
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{nmos}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \ifpgf@circuit@mos@arrows
+ \pgfscope
+ \ifpgf@circuit@trans@arrowatend
+ \pgftransformshift{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}%
+ }
+ \pgftransformrotate{180}
+ \pgfnode{trarrow}{tip}{}{}{\pgfusepath{stroke}}
+ \else
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\ctikzvalof{tripoles/pmos/arrow pos}}{%
+ \pgfpoint%
+ {\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \fi
+ \endpgfscope
+ \fi
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/base height}\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+
+
+ \pgfusepath{draw}
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@bpt@drawbulk % added by Burak Kelleci
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@pmos@nocircle\else
+ % we are not scaling the circle with the MOS --- I think it's better to have it
+ % coherent with the poles/nodes of the rest of the circuit.
+ \pgfpathcircle{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left - \ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \ifpgf@circuit@pmos@emptycircle
+ \pgfsetfillcolor{white}
+ \fi
+ \pgfusepath{draw,fill}
+ \fi
+
+ \pgfcirc@ferroelectric{pmos}{0}
+}
+
+%%% depletion MOSFET (simplified symbols)
+
+\long\def\pgfcirc@filldraw@depletion#1{%
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % if there is no explicit fill check the specific key
+ \edef\@@tmp{\ctikzvalof{tripoles/#1/depletion color}}\edef\@@none{none}%
+ \ifx\@@tmp\@@none % if it's none
+ \pgfusepath{draw}%
+ \else
+ \edef\@@default{default}%
+ \ifx\@@tmp\@@default % fill with the pen color
+ \pgfusepath{draw, fill}%
+ \else
+ \pgfsetfillcolor{\@@tmp}%
+ \pgfusepath{draw, fill}%
+ \fi
+ \fi
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}%
+ \pgfusepath{draw, fill}%
+ \fi
+}
+
+\pgfcircdeclaretransistor{nmosd}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/nmosd/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/nmosd/gate height}\pgf@y
+ }
+ \anchor{nobulk}{ %override
+ \left
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/nmosd/depletion width}\pgf@x
+ \pgf@x=\ctikzvalof{tripoles/nmosd/base width}\pgf@x
+ \advance\pgf@x by -\pgf@circ@res@temp
+ }
+ }{%
+ % draw depletion channel
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{nmos}
+ \pgfscope
+ \pgfpathrectanglecorners
+ {\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+ {\pgfpoint
+ {(\ctikzvalof{tripoles/nmosd/base width} - \ctikzvalof{tripoles/nmosd/depletion width})*\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+ \pgfcirc@filldraw@depletion{nmosd}
+ \endpgfscope
+ % draw drain and source terminals
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/base height}\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \ifpgf@circuit@mos@arrows
+ \pgfscope
+ \ifpgf@circuit@trans@arrowatend
+ \pgftransformshift{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{trarrow}{btip}{}{}{\pgfusepath{stroke}}
+ \else
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\ctikzvalof{tripoles/nmosd/arrow pos}}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/nmosd/gate width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint
+ {\pgf@circ@res@right-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \fi
+ \endpgfscope
+ \fi
+
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@bpt@drawbulk % added by Burak Kelleci
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgfcirc@ferroelectric{nmosd}{\ctikzvalof{tripoles/nmosd/depletion width}}
+}
+
+\pgfcircdeclaretransistor{pmosd}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/pmosd/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/pmosd/gate height}\pgf@y
+ }
+ \anchor{nobulk}{ %override
+ \left
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/pmosd/depletion width}\pgf@x
+ \pgf@x=\ctikzvalof{tripoles/pmosd/base width}\pgf@x
+ \advance\pgf@x by -\pgf@circ@res@temp
+ }
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{nmos}
+ % draw depletion channel
+ \pgfscope
+ \pgfpathrectanglecorners
+ {\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ {\pgfpoint
+ {(\ctikzvalof{tripoles/pmosd/base width} - \ctikzvalof{tripoles/pmosd/depletion width})*\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ \pgfcirc@filldraw@depletion{pmosd}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \ifpgf@circuit@mos@arrows
+ \pgfscope
+ \ifpgf@circuit@trans@arrowatend
+ \pgftransformshift{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}%
+ }
+ \pgftransformrotate{180}
+ \pgfnode{trarrow}{tip}{}{}{\pgfusepath{stroke}}
+ \else
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\ctikzvalof{tripoles/pmosd/arrow pos}}{%
+ \pgfpoint%
+ {\pgf@circ@res@right-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \fi
+ \endpgfscope
+ \fi
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/base height}\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+
+
+ \pgfusepath{draw}
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@bpt@drawbulk % added by Burak Kelleci
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@pmos@nocircle\else
+ % we are not scaling the circle with the MOS --- I think it's better to have it
+ % coherent with the poles/nodes of the rest of the circuit.
+ \pgfpathcircle{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left - \ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \ifpgf@circuit@pmos@emptycircle
+ \pgfsetfillcolor{white}
+ \fi
+ \pgfusepath{draw,fill}
+ \fi
+
+ \pgfcirc@ferroelectric{pmosd}{\ctikzvalof{tripoles/pmosd/depletion width}}
+}
+%% HEMT FET Transistor
+\pgfcircdeclaretransistor{hemt}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/hemt/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/hemt/gate height}\pgf@y
+ }
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/hemt/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/hemt/gate height}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/hemt/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/hemt/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/hemt/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/hemt/base height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+}
+
+\long\def\drawfetcore#1{
+ \pgftransformationadjustments
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{#1}
+
+ %top connection
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ \ifpgf@circuit@trans@depletiontype
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \else
+
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up*0.45}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up*0.25}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down*0.25}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nfet/base height}\pgf@circ@res@down*0.45}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \fi
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ %Bulk connection line
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ %bottom connection
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ %draw thick gate line
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % arrows
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \ifpgf@circuit@trans@ntype
+ \edef\@@anchor{tip}
+ \edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{btip}
+ \edef\@@pos{0.0}
+ \fi
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.6}
+ \fi
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \ifpgf@circuit@trans@ntype
+ \else
+ \pgftransformrotate{180}
+ \fi
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ % GATE CONNECTION
+ \ifpgf@circuit@bpt@drawgate
+ \ifpgf@circuit@trans@ntype
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{-\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \fi
+
+ \pgfcirc@ferroelectric{#1}{0}
+
+}
+
+\long\def\pgfdeclaretransistorwrapperaddbulk#1#2#3
+{\pgfcircdeclaretransistor{#1}{
+ \anchor{bulk}{\left\pgf@x=0pt}
+ \anchor{B}{\left\pgf@x=0pt}%override Base anchor from npn&igbt
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ #2
+ }
+ {#3}
+}
+
+\pgfdeclaretransistorwrapperaddbulk{nfet}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{nfet}
+}
+
+\pgfdeclaretransistorwrapperaddbulk{pfet}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{pfet}
+}
+
+\pgfdeclaretransistorwrapperaddbulk{nfetd}{}{%
+ \pgf@circuit@trans@depletiontypetrue
+ \drawfetcore{nfetd}
+}
+
+\pgfdeclaretransistorwrapperaddbulk{pfetd}{}{%
+ \pgf@circuit@trans@depletiontypetrue
+ \drawfetcore{pfetd}
+}
+% N-CHANNEL IGFET ENHANCEMENT TYPE
+\pgfdeclaretransistorwrapperaddbulk{nigfete}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{nigfete}
+
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+\fi
+}
+
+% N-CHANNEL IGFET ENHANCEMENT TYPE with Bulk connector
+\pgfdeclaretransistorwrapperaddbulk{nigfetebulk}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{nigfetebulk}
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfetebulk/gate height}\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+ \fi
+}
+
+% N-CHANNEL IGFET DEPLETION TYPE
+\pgfdeclaretransistorwrapperaddbulk{nigfetd}{}{%
+ \pgf@circuit@trans@depletiontypetrue
+ \drawfetcore{nigfetd}
+
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+ \fi
+}
+
+% P-CHANNEL IGFET ENHANCEMENT TYPE
+\pgfdeclaretransistorwrapperaddbulk{pigfete}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{pigfete}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/pigfete/gate height}\pgf@circ@res@up}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope
+ \fi
+}
+
+% P-CHANNEL IGFET ENHANCEMENT TYPE with bulk connector
+\pgfdeclaretransistorwrapperaddbulk{pigfetebulk}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{pigfetebulk}
+}
+
+% P-CHANNEL IGFET DEPLETION TYPE
+\pgfdeclaretransistorwrapperaddbulk{pigfetd}{}{%
+ \pgf@circuit@trans@depletiontypetrue
+ \drawfetcore{pigfetd}
+
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfete/gate height}\pgf@circ@res@up}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+ \fi
+}
+
+%%% uni-junction transistors: jfets, ujts
+
+\long\def\pgfcircdeclarejunctiontransistor#1#2#3{% name, extra anchors, extra draw
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ }
+ \anchor{kink}{
+ \northeast
+ \pgf@ya=-\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \left
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@ya
+ \pgf@x=\ctikzvalof{tripoles/#1/conn kink}\pgf@x
+ }
+ % extra anchors (or override)
+ #2
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+
+ % get direction
+ \edef\@@dir{\ctikzvalof{tripoles/#1/curr direction}}
+
+ % draw drain/source connections: up
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+
+ % down
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % arrow
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \ifnum\@@dir>0
+ \edef\@@anchor{tip}\edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{btip}\edef\@@pos{1.0}
+ \fi
+ \else
+ \ifnum\@@dir>0
+ \edef\@@anchor{center}\edef\@@pos{0.6}
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.4}
+ \fi
+ \fi
+ % find x1, x2 and y for the base arrow
+ \ifnum\@@dir>0
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn kink}\pgf@circ@res@left
+ \pgf@circ@res@other=\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left
+ \pgf@circ@res@zero=\ctikzvalof{tripoles/#1/union height}\pgf@circ@res@down
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down
+ \else
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left
+ \pgf@circ@res@other=\ctikzvalof{tripoles/#1/conn kink}\pgf@circ@res@left
+ \pgf@circ@res@zero=\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/#1/union height}\pgf@circ@res@up
+ \fi
+ %
+ % gate line (called emitter in UJT)
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ %
+ % horizontal gate line
+ %
+ \ifpgf@circuit@bpt@drawgate
+ \ifnum\@@dir>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}
+ \else
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \fi
+ \fi
+ \pgfusepath{draw}
+ %
+ % gate arrows (called emitter in UJT)
+ %
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@temp}
+ }{%
+ \pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}
+ }
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ %
+ % gate line (called emitter in UJT)
+ %
+ \endpgfscope
+
+ % extra drawings
+ #3
+ }
+}
+
+% NJFET and PJFET
+
+\pgfcircdeclarejunctiontransistor{njfet}{}{}
+\pgfcircdeclarejunctiontransistor{pjfet}{}{}
+
+\def\@ujtanchoroverride#1{
+ \savedanchor{\ujtrealemitter}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y %north anchor height
+ % kink AND conn height, they're the same
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ % horizontal
+ \pgf@x=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen % left
+ \ifpgf@circuit@bpt@drawgate\else
+ \pgf@x=\ctikzvalof{tripoles/#1/conn kink}\pgf@x
+ \fi
+ }
+ \anchor{E}{\ujtrealemitter}
+ \anchor{emitter}{\ujtrealemitter}
+ \anchor{B2}{\northeast\pgf@y=-\pgf@y}
+ \anchor{B1}{\northeast}
+}
+
+
+\pgfcircdeclarejunctiontransistor{nujt}{\@ujtanchoroverride{nujt}}{}
+\pgfcircdeclarejunctiontransistor{pujt}{\@ujtanchoroverride{pujt}}{}
+
+
+\pgfdeclaretransistorwrapperaddbulk{isfet}{
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ % DRAIN CONNECTION
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/isfet/gate height}\pgf@circ@res@up}}
+ % DRAIN
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/isfet/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % GATE, DEPLETION TYPE
+ \pgfscope %% added
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/isfet/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/isfet/base height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth} %% added
+ \pgfusepath{draw} %% added
+ \endpgfscope %% added
+
+ % BULK
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+.5\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ % SOURCE
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/isfet/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{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-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+ \fi
+ % ARROW
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \edef\@@anchor{tip}\edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.6}
+ \fi
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ \pgfusepath{draw}
+
+ % Wavy lines
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tripoles/isfet/waves x sep}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/waves y sep}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tripoles/isfet/waves x sep}\pgf@circ@res@up}{0cm}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tripoles/isfet/waves x sep}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/waves y sep}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% end of transistors
+% %>>>
+
+%% Transistor's path definitions%<<<
+
+\pgf@circ@definetranspath{nmos}
+\pgf@circ@definetranspath{pmos}
+\pgf@circ@definetranspath{nmosd}
+\pgf@circ@definetranspath{pmosd}
+\pgf@circ@definetranspath{hemt}
+\pgf@circ@definetranspath{npn}
+\pgf@circ@definetranspath{pnp}
+\pgf@circ@definetranspath{nfet}
+\pgf@circ@definetranspath{nigfete}
+\pgf@circ@definetranspath{nigfetd}
+\pgf@circ@definetranspath{nigfetebulk}
+\pgf@circ@definetranspath{pfet}
+\pgf@circ@definetranspath{pigfete}
+\pgf@circ@definetranspath{pigfetd}
+\pgf@circ@definetranspath{pigfetebulk}
+\pgf@circ@definetranspath{njfet}
+\pgf@circ@definetranspath{pjfet}
+\pgf@circ@definetranspath{pigbt}
+\pgf@circ@definetranspath{nigbt}
+\pgf@circ@definetranspath{Lpigbt}
+\pgf@circ@definetranspath{Lnigbt}% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Amplifiers
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Settings for Amplifiers%<<<1
+%
+% switches for op amps
+% changing input polarity
+%
+\newif\ifpgf@circuit@oa@iplusup\pgf@circuit@oa@iplusupfalse
+\pgfkeys{/tikz/noinv input up/.add code={}{\pgf@circuit@oa@iplusuptrue}}
+\ctikzset{noinv input up/.add code={}{\pgf@circuit@oa@iplusuptrue}}
+\pgfkeys{/tikz/noinv input down/.add code={}{\pgf@circuit@oa@iplusupfalse}}
+\ctikzset{noinv input down/.add code={}{\pgf@circuit@oa@iplusupfalse}}
+%
+% changing output polarity (for fully diff objects)
+%
+\newif\ifpgf@circuit@oa@oplusup\pgf@circuit@oa@oplusuptrue
+\pgfkeys{/tikz/noinv output up/.add code={}{\pgf@circuit@oa@oplusuptrue}}
+\ctikzset{noinv output up/.add code={}{\pgf@circuit@oa@oplusuptrue}}
+\pgfkeys{/tikz/noinv output down/.add code={}{\pgf@circuit@oa@oplusupfalse}}
+\ctikzset{noinv output down/.add code={}{\pgf@circuit@oa@oplusupfalse}}
+
+% Operational amplifier
+\ctikzset{tripoles/op amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/op amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/op amp/height/.initial=1.4} % Total height
+\ctikzset{tripoles/op amp/input height/.initial=.5} % Input port vertical separation
+\ctikzset{tripoles/op amp/up pos/.initial=.45} % Top and bottom anchor position
+\ctikzset{tripoles/op amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Fully differential operational amplifier
+\ctikzset{tripoles/fd op amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/fd op amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/fd op amp/height/.initial=1.4} % Total height
+\ctikzset{tripoles/fd op amp/input height/.initial=.5} % Input port vertical separation
+\ctikzset{tripoles/fd op amp/output height/.initial=.5} % Output port vertical separation
+\ctikzset{tripoles/fd op amp/up pos/.initial=.45} % Top and bottom anchor position
+\ctikzset{tripoles/fd op amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+\ctikzset{tripoles/en amp/width/.initial=1.7}
+\ctikzset{tripoles/en amp/port width/.initial=.7}
+\ctikzset{tripoles/en amp/height/.initial=1.6}
+\ctikzset{tripoles/en amp/input height/.initial=.3}
+\ctikzset{tripoles/en amp/up pos/.initial=.45}
+\ctikzset{tripoles/en amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+\ctikzset{tripoles/en amp/font2/.initial=\pgf@circ@font@twelve} % Absolute font size needed!
+\ctikzset{tripoles/en amp/text/.initial={$\mathstrut{\triangleright}\,{\infty}$}}
+\tikzset{
+ en amp text/.code = {%
+ \ctikzsetvalof{tripoles/en amp/text}{#1}%
+ },
+ en amp text A/.code = {%
+ \ctikzsetvalof{tripoles/en amp/text}{$\mathstrut{\triangleright}\,\mathrm{A}$}%
+ },
+}
+
+% Transconductance amplifier
+\ctikzset{tripoles/gm amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/gm amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/gm amp/height/.initial=1.4} % Left side of the trapezoid
+\ctikzset{tripoles/gm amp/height 2/.initial=0.5} % Right side of the trapezoid
+\ctikzset{tripoles/gm amp/input height/.initial=.5} % Input port vertical separation
+\ctikzset{tripoles/gm amp/up pos/.initial=.45} % Top and bottom anchor position
+\ctikzset{tripoles/gm amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Instrumentation amplifier
+\ctikzset{tripoles/inst amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/inst amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/inst amp/height/.initial=1.4} % Left side of the trapezoid
+\ctikzset{tripoles/inst amp/height 2/.initial=0.6} % Right side of the trapezoid
+\ctikzset{tripoles/inst amp/input height/.initial=.5} % Input ports vertical separation
+\ctikzset{tripoles/inst amp/up pos/.initial=.4} % Top and bottom anchor position
+\ctikzset{tripoles/inst amp/refv pos/.initial=.7} % Top and bottom voltage reference position
+\ctikzset{tripoles/inst amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Instrumentation amplifier with differential output
+\ctikzset{tripoles/fd inst amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/fd inst amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/fd inst amp/height/.initial=1.4} % Left side of the trapezoid
+\ctikzset{tripoles/fd inst amp/height 2/.initial=0.6} % Right side of the trapezoid
+\ctikzset{tripoles/fd inst amp/input height/.initial=.5} % Input ports vertical separation
+\ctikzset{tripoles/fd inst amp/output height/.initial=.5} % Output ports vertical separation
+\ctikzset{tripoles/fd inst amp/up pos/.initial=.4} % Top and bottom anchor position
+\ctikzset{tripoles/fd inst amp/refv pos/.initial=.7} % Top and bottom voltage reference position
+\ctikzset{tripoles/fd inst amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Instrumentation amplifier with gain resistor terminals
+\ctikzset{tripoles/inst amp ra/width/.initial=2.4} % Total width
+\ctikzset{tripoles/inst amp ra/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/inst amp ra/height/.initial=2.9} % Left side of the trapezoid
+\ctikzset{tripoles/inst amp ra/height 2/.initial=0.4} % Right side of the trapezoid
+\ctikzset{tripoles/inst amp ra/input height/.initial=.7} % Input ports vertical separation
+\ctikzset{tripoles/inst amp ra/up pos/.initial=.4} % Top and bottom anchor position
+\ctikzset{tripoles/inst amp ra/refv pos/.initial=.7} % Top and bottom voltage reference position
+\ctikzset{tripoles/inst amp ra/ra pos/.initial=.6} % Gain resistor terminals vertical separation
+\ctikzset{tripoles/inst amp ra/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Plain amplifier
+\ctikzset{tripoles/plain amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/plain amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/plain amp/height/.initial=1.4} % Total height
+\ctikzset{tripoles/plain amp/input height/.initial=.5} % Input ports vertical separation
+\ctikzset{tripoles/plain amp/up pos/.initial=.45} % Top and bottom anchor position
+
+% changing fonts and symbols of amplifiers
+\ctikzset{amplifiers/symbol font/.code={%
+ \ctikzset{tripoles/inst amp ra/font=#1}%
+ \ctikzset{tripoles/fd inst amp/font=#1}%
+ \ctikzset{tripoles/inst amp/font=#1}%
+ \ctikzset{tripoles/gm amp/font=#1}%
+ \ctikzset{tripoles/en amp/font=#1}%
+ \ctikzset{tripoles/fd op amp/font=#1}%
+ \ctikzset{tripoles/op amp/font=#1}%
+}}
+\ctikzset{amplifiers/plus/.initial={$+$}}
+\ctikzset{amplifiers/minus/.initial={$-$}}
+\tikzset{amp symbol font/.code={%
+ \ctikzset{amplifiers/symbol font={#1}}%
+ }
+}
+\tikzset{amp plus/.code={\ctikzsetvalof{amplifiers/plus}{#1}}}
+\tikzset{amp minus/.code={\ctikzsetvalof{amplifiers/minus}{#1}}}
+\def\pgf@circ@ampli@plus{\ctikzvalof{amplifiers/plus}}
+\def\pgf@circ@ampli@minus{\ctikzvalof{amplifiers/minus}}
+%%>>>
+
+%% Nodes for amplifiers%<<<
+%% operational and instrumentation amplifiers
+
+\pgfdeclareshape{op amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\left{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{north}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \savedanchor\left{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/op amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/op amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/op amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\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
+ }
+
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ % Triangle
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/op amp/port width}\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ % Negative input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % Positive input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Output terminal
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@right}{0pt}}
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+% Op amp shape as in european standard EN 60617
+\pgfdeclareshape{en amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/en amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\left{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{north}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/en amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/en amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/en amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/en amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \anchor{up}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \pgf@x=-\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/en amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/en amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/en amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+ \pgfsetrectcap
+ \pgfusepath{draw}
+
+
+ \pgftext[top, y=-.5ex, at=\pgfpoint{0pt}{\pgf@circ@res@up}]{\hbox{\ctikzvalof{tripoles/en amp/font2}\ctikzvalof{tripoles/en amp/text}}}
+ % \pgftext[top, y=-.5ex, at=\pgfpoint{0pt}{\pgf@circ@res@up}]{\ctikzvalof{tripoles/en amp/font2}$\mathstrut{\triangleright}\,\mathrm{A}$}
+ }
+}
+
+% Fully differential output op amp
+% Contributed by Kristofer M. Monisit
+\pgfdeclareshape{fd op amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\outline{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@oplusup\else\pgf@y=-\pgf@y\fi
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y\pgf@x=0pt\relax
+ }
+ \anchor{north}{
+ \northwest\pgf@x=0pt\relax
+ }
+ \savedanchor\left{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/fd op amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@right}{0pt}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out up}{
+ \northwest
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/output height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{out down}{
+ \northwest
+ \pgf@y=-\ctikzvalof{tripoles/fd op amp/output height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{out +}{
+ \outline
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/output height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{out -}{
+ \outline
+ \pgf@y=-\ctikzvalof{tripoles/fd op amp/output height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{bout +}{
+ \outline
+ \pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}
+ {\pgfpoint{\pgf@xa}{0pt}}
+ {\pgfpoint{0pt}{\pgf@ya}}
+ }
+ \anchor{bout -}{
+ \outline
+ \pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}
+ {\pgfpoint{\pgf@xa}{0pt}}
+ {\pgfpoint{0pt}{\pgf@ya}}
+ \pgf@y=-\pgf@y
+ }
+ \anchor{bout up}{
+ \northwest
+ \pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}
+ {\pgfpoint{\pgf@xa}{0pt}}
+ {\pgfpoint{0pt}{\pgf@ya}}
+ }
+ \anchor{bout down}{
+ \northwest
+ \pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}
+ {\pgfpoint{\pgf@xa}{0pt}}
+ {\pgfpoint{0pt}{\pgf@ya}}
+ \pgf@y=-\pgf@y
+ }
+ % end border anchors
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{out}{% should not be used
+ \left
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{south west}{ \northwest \pgf@y=-\pgf@y }
+ \anchor{north east}{ \northwest \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x }
+ \anchor{north west}{ \northwest }
+ \anchor{south east}{ \northwest \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x \pgf@y=-\pgf@y }
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ % Triangle
+ % Includes output terminals in the traingular shape
+ % to ensure that diagonal joins are properly displayed
+ % we first draw the main triangle and the leads with normal thickness,
+ % and the redraw the main triangle with the component shape
+ \pgfscope
+ % shift origin a bit to ease calculations
+ \pgftransformxshift{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@step
+
+ % Initial point (right vertex)
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+
+ % Negative output terminal
+ \pgfpathlineto{\pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}{\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\ctikzvalof{tripoles/fd op amp/output height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}{\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{\pgf@circ@res@up}}}
+
+ % Top vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+
+ % Bottom vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+
+ % Positive output terminal
+ \pgfpathlineto{\pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}{\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{\pgf@circ@res@down}}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\ctikzvalof{tripoles/fd op amp/output height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}{\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{\pgf@circ@res@down}}}
+
+ % Right vertex
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+
+ \pgfpathclose
+ \pgfusepath{stroke}
+
+ % ok, now we'll redraw the triangle with the class specific
+ % thickness and optionally fill
+
+ \pgfscope
+ \pgf@circ@setlinewidth{quadpoles}{\pgflinewidth}
+
+ % Initial point (right vertex)
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ % Top vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ % Bottom vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope % thick and fill
+ \endpgfscope % shift
+
+ % Negative input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % Positive input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Negative output terminal label
+ \pgftext[right, bottom, x=3pt, y=1pt, at=\pgfpoint{0pt}{0.425\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@oplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Positive output terminal label
+ \pgftext[right, top, x=3pt, y=-1pt, at=\pgfpoint{0pt}{0.425\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@oplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+
+% Instrumentation amplifier with differential output
+\pgfdeclareshape{fd inst amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ % when tikz calls the anchor it wants the relative position in the lengths
+ % \pgf@x \pgf@y
+ % \pgfpoint* functions set that variables
+ % anchors are visible outside and run on use
+ \anchor{center}{\pgfpointorigin}
+ % savedanchors are internals and run on node creation (not use)
+ % bounding-box top left
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{nw}{
+ \northwest
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y\pgf@x=0pt\relax
+ }
+ \anchor{north}{
+ \northwest\pgf@x=0pt\relax
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}
+ {\left
+ \pgf@x = \ctikzvalof{tripoles/fd inst amp/port width}\pgf@x
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/fd inst amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/height 2}\pgf@circ@res@up}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ % reference voltage input anchors.
+ \savedanchor\refv{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/fd inst amp/refv pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/height 2}\pgf@circ@res@up}}
+ }
+ % we need both because they are normally drawn under the amp, and if you
+ % mirror it vertically you need them
+ \anchor{refv up}{
+ \refv
+ }
+ \anchor{refv down}{
+ \refv
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\outport{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ \ifpgf@circuit@oa@oplusup\else\pgf@y=-\pgf@y\fi
+ }
+ \anchor{out}{
+ \outport
+ \pgf@y=0pt
+ }
+ \anchor{out +}{
+ \outport
+ }
+ \anchor{out -}{
+ \outport
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\outportfixed{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ }
+ \anchor{out up}{
+ \outportfixed
+ }
+ \anchor{out down}{
+ \outportfixed
+ \pgf@y=-\pgf@y
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/fd inst amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@x=-\pgf@x \pgf@y=0pt
+ }
+ \anchor{bout +}{
+ \outport
+ \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya
+ }
+ \anchor{bout -}{
+ \outport
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya
+ }
+ \anchor{bout up}{
+ \outportfixed
+ \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya
+ }
+ \anchor{bout down}{
+ \outportfixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya
+ }
+ % end border anchors
+ %
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ % let's start drawing the component
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+ % main component, normally in thicker lines
+ \pgfscope
+ \newdimen\pgf@circ@res@right@double
+ \pgf@circ@res@right@double=2\pgf@circ@res@right
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@step
+ %first point (near output)
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right@double}{0}}
+ %from the exit to the top (short side)... (note that the .6 must be copied in \up and \refv anchors
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/fd inst amp/height 2}\pgf@circ@res@up}}
+ % and then to the input "front up", "down", to the output short side "down"
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/fd inst amp/height 2}\pgf@circ@res@down}}
+ % ...and close
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ % input terminal up
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}}
+ %
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % input terminal down
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % output leads down and up
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@down}} %
+ \pgftext[right, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd inst amp/font}\ifpgf@circuit@oa@oplusup$-\;$\else$+\;$\fi}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@up}} %
+ \pgftext[right, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd inst amp/font}\ifpgf@circuit@oa@oplusup$+\;$\else$-\;$\fi}
+ %
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+% Transconductance amplifier (Transkonduktanzverstärker)
+\pgfdeclareshape{gm amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/gm amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \anchor{north}{
+ \northwest
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}
+ {\left
+ \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/gm amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/gm amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/gm amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/gm amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/gm amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/gm amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/gm amp/height 2}\pgf@circ@res@up}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/gm amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ \pgfscope
+ \newdimen\pgf@circ@res@right@double
+ \pgf@circ@res@right@double=2\pgf@circ@res@right
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@step
+ %Umrandung:
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right@double}{0}} %geändert startpunkt neu am ausgangsstrich
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/gm amp/height 2}\pgf@circ@res@up}}%vom Ausgang nach oben
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} %neu ecke links oben nach rechts oben
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} %bei deneigängen runter
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/gm amp/height 2}\pgf@circ@res@down}}%ecke links unten nach rechts unten
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/gm amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/gm amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right}{0pt}} %
+ \pgfsetrectcap
+ \pgfusepath{draw}
+
+ }
+}
+
+% Instrumentation amplifier
+\pgfdeclareshape{inst amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ % when tikz calls the anchor it wants the relative position in the lengths
+ % \pgf@x \pgf@y
+ % \pgfpoint* functions set that variables
+ % anchors are visible outside and run on use
+ \anchor{center}{\pgfpointorigin}
+ % savedanchors are internals and run on node creation (not use)
+ % bounding-box top left
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{nw}{
+ \northwest
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \anchor{north}{
+ \northwest
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}
+ {\left
+ \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/inst amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/inst amp/height 2}\pgf@circ@res@up}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ % reference voltage input anchors.
+ \savedanchor\refv{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/inst amp/refv pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/inst amp/height 2}\pgf@circ@res@up}}
+ }
+ % we need both because they are normally drawn under the amp, and if you
+ % mirror it vertically you need them
+ \anchor{refv up}{
+ \refv
+ }
+ \anchor{refv down}{
+ \refv
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/inst amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ % let's start drawing the component
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ % main component, normally in thicker lines
+ \pgfscope
+ \newdimen\pgf@circ@res@right@double
+ \pgf@circ@res@right@double=2\pgf@circ@res@right
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@step
+ %first point (near output)
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right@double}{0}}
+ %from the exit to the top (short side)... (note that the .6 must be copied in \up and \refv anchors
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/inst amp/height 2}\pgf@circ@res@up}}
+ % and then to the input "front up", "down", to the output short side "down"
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/inst amp/height 2}\pgf@circ@res@down}}
+ % ...and close
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ % Negative input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}}
+ %
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % Positive input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Output terminal
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right}{0pt}} %
+ %
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+% Instrumentation amplifier with terminals for gain resistance between inputs
+\pgfdeclareshape{inst amp ra}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ % bounding-box top left
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{nw}{
+ \northwest
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y\pgf@x=0pt\relax
+ }
+ \anchor{north}{
+ \northwest\pgf@x=0pt\relax
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}
+ {\left
+ \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x
+ }
+ % inputs (+-)
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ % R ampli anchors. They are by default at 20% more than R-length distance
+ % you can change that with the `ra pos` key (use 0.5 for one-R).
+ \savedanchor\raOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\pgf@circ@scaled@Rlen
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{ra up}{
+ \raOneFixed
+ }
+ \anchor{ra down}{
+ \raOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\raOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\pgf@circ@scaled@Rlen
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{ra-}{
+ \raOne
+ }
+ \anchor{ra+}{
+ \raOne
+ \pgf@y=-\pgf@y
+ }
+ % power supplies
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/inst amp ra/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/inst amp ra/height 2}\pgf@circ@res@up}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ % reference voltage input anchors.
+ \savedanchor\refv{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=0.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=0.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/inst amp ra/refv pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/inst amp ra/height 2}\pgf@circ@res@up}}
+ }
+ % we need both because they are normally drawn under the amp, and if you
+ % mirror it vertically you need them
+ \anchor{refv up}{
+ \refv
+ }
+ \anchor{refv down}{
+ \refv
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/inst amp ra/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bra up}{
+ \raOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bra down}{
+ \raOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bra-}{
+ \raOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bra+}{
+ \raOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ % drawing of the component
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ \newdimen\pgf@circ@res@right@double
+ \pgf@circ@res@right@double=2\pgf@circ@res@right
+
+ % main component, normally in thicker lines
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/inst amp ra/port width}\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=\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@step
+ %primer punto: la linea de salida (lado componente)
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right@double}{0}}
+ %from the exit to the top (short side)... (note that the .6 must be copied in \up anchor
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/inst amp ra/height 2}\pgf@circ@res@up}}
+ % and then to the input "front up", "down", to the output short side "down"
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/inst amp ra/height 2}\pgf@circ@res@down}}
+ % ...and close
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ % ra terminal -
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@circ@scaled@Rlen}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@circ@scaled@Rlen}}
+ % ra terminal +
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@circ@scaled@Rlen}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@circ@scaled@Rlen}}
+
+ % Negative input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}}
+ %
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/inst amp ra/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % Positive input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/inst amp ra/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Output terminal
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right}{0pt}} %
+ %
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+% Buffer
+% Contributed by Danilo Piazzalunga
+\pgfdeclareshape{buffer}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/buffer/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/buffer/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \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 }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \northwest
+ \pgfmathsetlength{\pgf@x}{0.7*\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \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}
+ }
+}
+
+% plain amplifier, no symbols
+\pgfdeclareshape{plain amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \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 }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/plain amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/plain amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/plain amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/plain amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/plain amp/port width}\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/plain amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/plain amp/input height}\pgf@circ@res@up}}
+
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/plain amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/plain amp/input height}\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@right}{0pt}}
+
+ \pgfusepath{draw}
+ }
+}
+
+% plain amplifier, no symbols, one input
+\pgfdeclareshape{plain mono amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \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 }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt\relax
+ }
+ \anchor{in}{
+ \inOne
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/plain amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/plain amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/plain amp/port width}\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {0pt}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {0pt}}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@right}{0pt}}
+
+ \pgfusepath{draw}
+ }
+}% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Tubes and magnetron
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Settings Electronic tubes: diodetube, triode, tetrode and pentode%<<<1
+\ctikzset{tubes/width/.initial=1} % relative width
+\ctikzset{tubes/height/.initial=1.4} % relative height
+\ctikzset{tubes/tube radius/.initial=0.40} % radius of tube circle
+\ctikzset{tubes/anode distance/.initial=0.40} % distance from center
+\ctikzset{tubes/anode width/.initial=0.40} % width of an anode/plate
+\ctikzset{tubes/grid protrusion/.initial=0.25} % distance from center
+\ctikzset{tubes/grid dashes/.initial=5} % number of grid dashes
+\ctikzset{tubes/grid separation/.initial=0.2} % separation between grids
+\ctikzset{tubes/grid shift/.initial=0.0} % y shift grids from center
+\ctikzset{tubes/cathode distance/.initial=0.40} % distance from grid
+\ctikzset{tubes/cathode width/.initial=0.40} % width of an cathode
+\ctikzset{tubes/cathode corners/.initial=0.06} % corners of the cathode wire
+\ctikzset{tubes/cathode right extend/.initial=0.075} % extension at the right side
+\ctikzset{tubes/filament distance/.initial=0.1} % distance from cathode
+\ctikzset{tubes/filament angle/.initial=15} % Angle from centerpoint
+
+\ctikzset{/tikz/circuitikz/tripoles/magnetron/width/.initial=1}
+
+\newif\ifpgf@circuit@tubes@filament\pgf@circuit@tubes@filamentfalse
+\pgfkeys{/tikz/filament/.add code={}{\pgf@circuit@tubes@filamenttrue}}
+\ctikzset{tubes/filament/.add code={}{\pgf@circuit@tubes@filamenttrue}}
+\newif\ifpgf@circuit@tubes@nocathode\pgf@circuit@tubes@nocathodefalse
+\pgfkeys{/tikz/nocathode/.add code={}{\pgf@circuit@tubes@nocathodetrue}}
+\ctikzset{tubes/nocathode/.add code={}{\pgf@circuit@tubes@nocathodetrue}}
+\newif\ifpgf@circuit@tubes@fullcathode\pgf@circuit@tubes@fullcathodefalse
+\pgfkeys{/tikz/fullcathode/.add code={}{\pgf@circuit@tubes@fullcathodetrue}}
+\ctikzset{tubes/fullcathode/.add code={}{\pgf@circuit@tubes@fullcathodetrue}}%
+%>>>
+
+%% Node shapes for tubes & co%<<<
+
+%%%%%%%%%%%%%%%%%%%
+%% Magnetron
+%%%%%%%%%%%%%%%%%%%
+
+\pgfdeclareshape{magnetron}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{tubes}} % class of these components
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/magnetron/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/magnetron/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{anode}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{cathode1}{
+ \northwest
+ \pgf@circ@res@step=\pgf@y
+ \pgfmathparse{cos(105)}
+ \pgf@x=\pgfmathresult\pgf@circ@res@step
+ \pgfmathparse{sin(105)}
+ \pgf@y=\pgfmathresult\pgf@circ@res@step
+ %\pgfpointorigin
+ %\pgfpathmoveto{\pgfpointpolar{105}{\pgf@circ@res@step}}%not working in a scaled tikzpicture
+ }
+ \anchor{cathode2}{
+ \northwest
+ \pgf@circ@res@step=\pgf@y
+ \pgfmathparse{cos(75)}
+ \pgf@x=\pgfmathresult\pgf@circ@res@step
+ \pgfmathparse{sin(75)}
+ \pgf@y=\pgfmathresult\pgf@circ@res@step
+ %\pgfpointorigin
+ %\pgfpathmoveto{\pgfpointpolar{75}{\pgf@circ@res@step}}%not working in a scaled tikzpicture
+ }
+ \anchor{text}{
+ \pgfpointorigin
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \advance \pgf@y by -.5\ht\pgfnodeparttextbox
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{%
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{top}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{pathstart}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{pathend}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{bottom}{
+ \northwest
+ \pgf@x=0pt
+ \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{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{tripoles/magnetron/width}\pgf@circ@scaled@Rlen
+ \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
+ \pgfmathsetlength{\pgf@circ@res@other}{sin(15)*\pgf@circ@res@up}
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ %create outer circle
+ \pgfpathcircle{\pgfpoint{0}{0}} {\pgf@circ@res@right}
+ \pgf@circ@draworfill
+ %create chambers
+ \foreach \angle in {45,135,225,315}{
+ \pgfpathmoveto{ \pgfpointpolar{\angle}{0.6\pgf@circ@res@right}}
+ \pgfpathlineto{ \pgfpointpolar{\angle}{\pgf@circ@res@right}}
+ }
+ \pgfsetroundcap
+ \pgfusepath{draw}
+ \pgfscope
+ %draw connection from outside
+ %anode
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{0\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+ %cathodes
+ \pgfpathmoveto{\pgfpointpolar{105}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{.5\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpointpolar{75}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}}
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+ \endpgfscope
+ %create cathode
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0}{.15\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{.5\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ %create anode
+ \pgfpathmoveto{\pgfpoint{0.3\pgf@circ@res@left}{.5\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Electronic tubes, submitted by J. op den Brouw
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Draw tube outline
+\def\pgf@circ@tubes@drawtube{%
+ \ifdim\ctikzvalof{tubes/width}pt>\ctikzvalof{tubes/height}pt\relax
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfutil@tempdima=\pgf@circ@res@right
+ \advance\pgfutil@tempdima by -\pgf@circ@res@up
+ \pgfpathlineto{\pgfpoint{\pgfutil@tempdima}{\pgf@circ@res@up}}
+ \pgfpatharc{90}{-90}{\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpoint{-\pgfutil@tempdima}{-\pgf@circ@res@up}}
+ \pgfpatharc{270}{90}{\pgf@circ@res@up}
+ \else
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{0pt}}
+ \pgfutil@tempdima=\pgf@circ@res@up
+ \advance\pgfutil@tempdima by -\pgf@circ@res@right
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdima}}
+ \pgfpatharc{180}{0}{\pgf@circ@res@right}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgfutil@tempdima}}
+ \pgfpatharc{180}{0}{-\pgf@circ@res@right}
+ \fi
+ \pgfpathclose
+}
+
+%% The diode (tube), triode, tetrode and pentode only differ in the
+%% number of grids. So we construct a generic declare function in
+%% which we can put code for the grid anchors and grid drawing code
+%% \pgfcircdeclaretube{tube name}{grid anchors}{grid drawing code}
+\long\def\pgfcircdeclaretube#1#2#3{%
+ \pgfdeclareshape{#1}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{tubes}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@up=\ctikzvalof{tubes/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right=\ctikzvalof{tubes/width}\pgf@circ@scaled@Rlen
+ % x and y should be half the Rlen
+ \pgf@y=\pgf@circ@res@up
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\pgf@circ@res@right
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{north} {%
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{east}{%
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{south}{%
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{west}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{north west}{%
+ \northwest
+ }
+ \anchor{north east}{%
+ \northwest
+ \pgf@x=-\pgf@x
+ }
+ \anchor{south east}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{south west}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \anchor{anode} {%
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{cathode}{%
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=\ctikzvalof{tubes/cathode width}\pgf@x
+ }
+ \anchor{cathode 1}{%
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=\ctikzvalof{tubes/cathode width}\pgf@x
+ }
+ \anchor{cathode 2}{%
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=-\ctikzvalof{tubes/cathode width}\pgf@x
+ }
+ \anchor{filament 1}{%
+ \northwest
+ \pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+ \pgf@x=\pgfmathresult\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{filament 2}{%
+ \northwest
+ \pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+ \pgf@x=-\pgfmathresult\pgf@x
+ \pgf@y=-\pgf@y
+ }
+
+ % Extra anchors
+ #2
+
+ \backgroundpath{
+ \pgfscope
+ % Line width for tripoles
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ % Setup to draw tube
+ \pgf@circ@res@up=\ctikzvalof{tubes/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right=\ctikzvalof{tubes/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up=\ctikzvalof{tubes/tube radius}\pgf@circ@res@up
+ \pgf@circ@res@right=\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+
+ % Tube outline
+ \pgf@circ@tubes@drawtube
+
+ % Setup to draw grid, filament, anode and cathode
+ \pgf@circ@res@up=\ctikzvalof{tubes/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right=\ctikzvalof{tubes/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up=0.5\pgf@circ@res@up
+ \pgf@circ@res@right=0.5\pgf@circ@res@right
+
+ % Tube fill color (if any)
+ \pgf@circ@draworfill
+
+ % Grid drawing
+ #3
+
+ % Filament (is not drawn by default)
+ \ifpgf@circuit@tubes@filament
+ \pgf@circ@res@temp=-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up
+ \advance\pgf@circ@res@temp by -\ctikzvalof{tubes/filament distance}\pgf@circ@res@up
+ \pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+ \pgf@xa=\pgfmathresult\pgf@circ@res@right
+ \pgfmathparse{\ctikzvalof{tubes/tube radius}+\ctikzvalof{tubes/tube radius}*cos(\ctikzvalof{tubes/filament angle}}
+ \pgf@ya=\pgfmathresult\pgf@circ@res@up
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@circ@res@up}}
+ \pgf@circuit@tubes@filamentfalse
+ \fi
+
+ % Anode (or plate)
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}} % north
+ \pgfpathlineto{\pgfpoint{0pt}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/anode width}\pgf@circ@res@right}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/anode width}\pgf@circ@res@right}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+
+ % Cathode
+ \ifpgf@circuit@tubes@nocathode
+ \pgf@circuit@tubes@nocathodefalse
+ \else
+ \pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \ifpgf@circuit@tubes@fullcathode
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgf@circuit@tubes@fullcathodefalse
+ \else
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up-\ctikzvalof{tubes/cathode right extend}\pgf@circ@res@up}}
+ \fi
+ \fi
+
+ % Draw the background
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+ }
+}
+
+\pgfcircdeclaretube{diodetube}{}{} % shape diode already exists
+
+\pgfcircdeclaretube{triode}
+{
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+ \anchor{control} {%
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+}
+{
+ % Grid protrusion
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+}
+
+\pgfcircdeclaretube{tetrode}
+{
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{control} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{screen} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=\ctikzvalof{tubes/grid separation}\pgf@y
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+}
+{
+ % Grid x/y points
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfutil@tempdima=\ctikzvalof{tubes/grid separation}\pgf@circ@res@up
+ \pgfutil@tempdimb=-\pgfutil@tempdima
+ \pgfutil@tempdima=0.5\pgfutil@tempdima
+ \advance\pgfutil@tempdima by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \pgfutil@tempdimb=0.5\pgfutil@tempdimb
+ \advance\pgfutil@tempdimb by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ % Grid protrusion
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdima}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdima}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdimb}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+}
+
+\pgfcircdeclaretube{pentode}
+{
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{control} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{screen} {%
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+ \anchor{suppressor} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+}
+{
+ % Grid x/y points
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfutil@tempdima=\ctikzvalof{tubes/grid separation}\pgf@circ@res@up
+ \pgfutil@tempdimb=-\pgfutil@tempdima
+ \advance\pgfutil@tempdima by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \advance\pgfutil@tempdimb by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \pgf@circ@res@other=\ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ % Grid protrusion
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdima}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@circ@res@other}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdima}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgf@circ@res@other}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+}
+
+\pgfcircdeclaretube{pentode suppressor to cathode}
+{
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{control} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{screen} {%
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+}
+{
+ % Grid x/y points
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfutil@tempdima=\ctikzvalof{tubes/grid separation}\pgf@circ@res@up
+ \pgfutil@tempdimb=-\pgfutil@tempdima
+ \advance\pgfutil@tempdima by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \advance\pgfutil@tempdimb by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \pgf@circ@res@other=\ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ % Grid protrusion
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@circ@res@other}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \ifnum\pgf@circ@count@a>1\relax
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgf@circ@res@other}}
+ \fi
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdima}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+ % Grid: connection from suppressor to cathode
+ \pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima-2*\ctikzvalof{tubes/grid separation}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right-0.4142136*\ctikzvalof{tubes/cathode corners}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up-0.4142136*\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
+
+}% %>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcirctripoles
+%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
+%%%---------- open: tex/pgfcircquadpoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Quadripoles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% Setting for Transformers and similar quadpoles%<<<1
+
+\ctikzset{quadpoles/transformer/inner/.initial=0.4}
+\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/inner/.initial=0.4}
+\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/inner/.initial=0.4}
+\ctikzset{quadpoles/gyrator/width/.initial=1.5}
+\ctikzset{quadpoles/gyrator/height/.initial=1.5}
+\ctikzset{quadpoles/fourport/width/.initial=1.3}
+\ctikzset{quadpoles/fourport/height/.initial=1.3}
+\ctikzset{quadpoles/coupler/width/.initial=1.3}
+\ctikzset{quadpoles/coupler/height/.initial=1.3}
+\ctikzset{quadpoles/coupler2/width/.initial=1.3}
+\ctikzset{quadpoles/coupler2/height/.initial=1.3}
+
+
+\ctikzset{quadpoles style/.is choice}
+\ctikzset{quadpoles style/inward/.code={% default value
+ \ctikzset{quadpoles/transformer/inner=0.4}%
+ \ctikzset{quadpoles/transformer/width=1.5}%
+ \ctikzset{quadpoles/transformer core/inner=0.4}%
+ \ctikzset{quadpoles/transformer core/width=1.5}%
+ \ctikzset{quadpoles/gyrator/inner=0.4}%
+ \ctikzset{quadpoles/gyrator/width=1.5}%
+ }%
+}
+\ctikzset{quadpoles style/inline/.code={% now horizontal baffle
+ \ctikzset{quadpoles/transformer/inner=1}%
+ \ctikzset{quadpoles/transformer/width=0.6}%
+ \ctikzset{quadpoles/transformer core/inner=1}%
+ \ctikzset{quadpoles/transformer core/width=0.6}%
+ \ctikzset{quadpoles/gyrator/inner=1} % FIXME
+ \ctikzset{quadpoles/gyrator/width=0.6}%
+ }%
+}
+%%>>>
+
+%% Node shapes for quadpoles (basically transformers)%<<<
+
+\long\def\pgfcircdeclarequadpole#1#2#3{
+ \pgfdeclareshape{#1}
+ {
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{inductors}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ % shapename
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \savedmacro{\stretto}{\def\stretto{\ctikzvalof{quadpoles/#1/inner}}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{quadpoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=.5\pgf@circ@scaled@Rlen
+ \pgf@x=-\ctikzvalof{quadpoles/#1/width}\pgf@x
+ }
+ %% we define the upper right (positive coord) dot (which is B1)
+ \savedanchor{\innerdot}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@xa=.5\pgf@circ@scaled@Rlen
+ \pgf@xa=-\ctikzvalof{quadpoles/#1/width}\pgf@xa
+ % by default use the cute inductor size
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa-\ctikzvalof{bipoles/cuteinductor/height}*\pgf@circ@scaled@Rlen/2}
+ % check if it's american
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}
+ \edef\pgf@temp{american}
+ \ifx\pgf@circ@temp\pgf@temp
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa-\ctikzvalof{bipoles/americaninductor/height}*\pgf@circ@scaled@Rlen/2}
+ \fi
+ % check if it's european
+ \edef\pgf@temp{european}
+ \ifx\pgf@circ@temp\pgf@temp
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa-\ctikzvalof{bipoles/fullgeneric/height}*\pgf@circ@scaled@Rlen/2}
+ \fi
+ \pgfmathsetlength\pgf@y{0.5*\pgf@circ@scaled@Rlen}
+ }
+ \savedanchor{\outerdot}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@xa=.5\pgf@circ@scaled@Rlen
+ \pgf@xa=-\ctikzvalof{quadpoles/#1/width}\pgf@xa
+ % by default use the cute inductor size
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa+\ctikzvalof{bipoles/cuteinductor/height}*\pgf@circ@scaled@Rlen/2}
+ % check if it's american
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}
+ \edef\pgf@temp{american}
+ \ifx\pgf@circ@temp\pgf@temp
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa+\ctikzvalof{bipoles/americaninductor/height}*\pgf@circ@scaled@Rlen/2}
+ \fi
+ % check if it's european
+ \edef\pgf@temp{european}
+ \ifx\pgf@circ@temp\pgf@temp
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa+\ctikzvalof{bipoles/fullgeneric/height}*\pgf@circ@scaled@Rlen/2}
+ \fi
+ \pgfmathsetlength\pgf@y{0.5*\pgf@circ@scaled@Rlen}
+ }
+ \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
+ }
+ %% dot's anchors
+ \anchor{inner dot A1}{\innerdot\pgf@x=-\pgf@x}
+ \anchor{outer dot A1}{\outerdot\pgf@x=-\pgf@x}
+ \anchor{inner dot A2}{\innerdot\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{outer dot A2}{\outerdot\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{inner dot B1}{\innerdot}
+ \anchor{outer dot B1}{\outerdot}
+ \anchor{inner dot B2}{\innerdot\pgf@y=-\pgf@y}
+ \anchor{outer dot B2}{\outerdot\pgf@y=-\pgf@y}
+ % geographical
+ \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{\ctikzvalof{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
+ }
+ }
+}
+
+
+\def\pgf@circ@drawtransformerbasicanchor{
+ \ctikzvalof{quadpoles/trans/height}
+ \anchor{AA2}{
+ \northwest
+ \pgf@x=\ctikzvalof{quadpoles/transformer/width1}\pgf@x
+ \pgf@x=.7\pgf@x
+ \pgf@y=-\pgf@y
+ \pgf@y=\ctikzvalof{quadpoles/transformer/height1}\pgf@y
+ }
+ \anchor{BB1}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@x=\ctikzvalof{quadpoles/transformer/width1}\pgf@x
+ \pgf@x=.7\pgf@x
+ \pgf@y=\ctikzvalof{quadpoles/transformer/height1}\pgf@y
+ }
+ \anchor{AA1}{
+ \northwest
+ \pgf@x=\ctikzvalof{quadpoles/transformer/width1}\pgf@x
+ \pgf@x=.7\pgf@x
+ \pgf@y=\ctikzvalof{quadpoles/transformer/height1}\pgf@y
+ }
+ \anchor{BB2}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@x=\ctikzvalof{quadpoles/transformer/width1}\pgf@x
+ \pgf@x=.7\pgf@x
+ \pgf@y=-\pgf@y
+ \pgf@y=\ctikzvalof{quadpoles/transformer/height1}\pgf@y
+ }
+}
+
+%% Null styles that can be used to change individually the L1 and L2
+%% inductors of the transformer.
+
+\ctikzset{transformer L1/.style={}}
+\ctikzset{transformer L2/.style={}}
+
+\def\pgf@circ@drawtransformerbasicbody{
+ \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}%
+ }
+
+ \pgfkeys{\circuitikzbasekey/.cd, transformer L1}
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{fullgenericshape}{center}{}{\thisshape-L1}{\pgfusepath{stroke}}
+ \else%
+ \def\pgf@temp{cute}
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{cuteinductorshape}{center}{}{\thisshape-L1}{\pgfusepath{stroke}}
+ \else%
+ \pgfnode{americaninductorshape}{center}{}{\thisshape-L1}{\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}%
+ }
+
+ \pgfkeys{\circuitikzbasekey/.cd, transformer L2}
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{fullgenericshape}{center}{}{\thisshape-L2}{\pgfusepath{stroke}}
+ \else%
+ \def\pgf@temp{cute}
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{cuteinductorshape}{center}{}{\thisshape-L2}{\pgfusepath{stroke}}
+ \else%
+ \pgfnode{americaninductorshape}{center}{}{\thisshape-L2}{\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{\thisshape-L1}{b}}
+
+ \pgfpathmoveto{\pgfpointanchor{\thisshape-L1}{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{\thisshape-L2}{a}}
+
+ \pgfpathmoveto{\pgfpointanchor{\thisshape-L2}{b}}
+ \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+
+ \pgfusepath{draw}
+
+}
+
+
+\pgfcircdeclarequadpole{transformer}{
+ \pgf@circ@drawtransformerbasicbody
+}{\pgf@circ@drawtransformerbasicanchor}
+
+\pgfcircdeclarequadpole{transformer core}{
+
+ \pgf@circ@drawtransformerbasicbody
+
+ % use the chocke line thickness
+ \pgfsetlinewidth{\ctikzvalof{bipoles/cutechoke/cthick}\pgflinewidth}
+
+ % Find the distance from center for the lines representing the core
+ % the 2.5 is for backward compatibility --- the distance was calculated as a fraction
+ % of the whole component, now as a fraction of the distance between coils, to be
+ % compatible with the quadpoles "inner" style.
+ \pgfmathsetlength{\pgf@circ@res@other}{2.5*\stretto*\ctikzvalof{quadpoles/transformer core/core width}*\pgf@circ@res@right}
+
+ \pgfmoveto{\pgfpoint%
+ {\pgf@circ@res@other}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}%
+ }
+ \pgflineto{
+ \pgfpoint%
+ {\pgf@circ@res@other}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}%
+ }
+
+ %% this should be just -\pgf@circ@res@other, but in case someone define an asymmetric trafo someday...
+ \pgfmathsetlength{\pgf@circ@res@other}{2.5*\stretto*\ctikzvalof{quadpoles/transformer core/core width}*\pgf@circ@res@left}
+ \pgfmoveto{\pgfpoint%
+ {\pgf@circ@res@other}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}%
+ }
+ \pgflineto{
+ \pgfpoint%
+ {\pgf@circ@res@other}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}%
+ }
+
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgfusepath{draw}
+}{\pgf@circ@drawtransformerbasicanchor}
+
+
+\pgfcircdeclarequadpole{gyrator}{
+
+ \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}
+
+ \pgf@circ@setlinewidth{quadpoles}{\pgflinewidth}
+ \pgfmathsetlength{\pgf@circ@res@other}{min(.7*\stretto*\pgf@circ@res@up, .8*\pgf@circ@res@right)} % radius
+ \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@left}{-\pgf@circ@res@other}}
+ \pgfpatharc{-90}{90}{\pgf@circ@res@other}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@other}}
+ \pgfpatharc{90}{270}{\pgf@circ@res@other}
+ \pgfpathclose
+ \pgf@circ@draworfill
+}{}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%
+%% Block diagrams
+%%%%%%%%%%%%%%%%%%%
+
+% Definitions and options for blocks (twoports and so)%<<<1
+
+\ctikzset{bipoles/twoport/width/.initial=.7}
+\ctikzset{bipoles/twoport/height/.initial=.7}
+\ctikzset{bipoles/twoport/text/.initial=}
+\ctikzset{bipoles/twoportsplit/width/.initial=.7}
+\ctikzset{bipoles/twoport/text in/.initial=}
+\ctikzset{bipoles/twoport/text out/.initial=}
+\ctikzset{text/.style={t=#1}}
+\ctikzset{t/.code={%
+ \ctikzsetvalof{bipoles/twoport/text}{#1}%
+}}
+\ctikzset{text in/.style={t1=#1}}
+\ctikzset{t1/.code={%
+ \ctikzsetvalof{bipoles/twoport/text in}{#1}%
+}}
+\ctikzset{text out/.style={t2=#1}}
+\ctikzset{t2/.code={%
+ \ctikzsetvalof{bipoles/twoport/text out}{#1}%
+}}
+\ctikzset{bipoles/vco/width/.initial=.7}
+\ctikzset{bipoles/bandpass/width/.initial=.7}
+\ctikzset{bipoles/bandstop/width/.initial=.7}
+\ctikzset{bipoles/highpass/width/.initial=.7}
+\ctikzset{bipoles/highpass2/width/.initial=.7}
+\ctikzset{bipoles/lowpass/width/.initial=.7}
+\ctikzset{bipoles/lowpass2/width/.initial=.7}
+\ctikzset{bipoles/allpass/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}
+\ctikzset{tripoles/mixer/width/.initial=0.7}
+\ctikzset{tripoles/adder/width/.initial=0.7}
+\ctikzset{tripoles/circulator/width/.initial=.7}
+\ctikzset{tripoles/oscillator/width/.initial=.7}
+
+\ctikzset{tripoles/wilkinson/height/.initial=1.3}
+\ctikzset{tripoles/wilkinson/width/.initial=1.3}
+
+\ctikzset{tripoles/splitter/height/.initial=1.3}
+\ctikzset{tripoles/splitter/width/.initial=1.3}
+
+\ctikzset{tripoles/mzm/height/.initial=1.3}
+\ctikzset{tripoles/mzm/width/.initial=1.3}
+
+% Option ">" for twoports
+\newif\ifpgf@circuit@inputarrow
+\ctikzset{>/.add code={}{\pgf@circuit@inputarrowtrue}}
+\ctikzset{inputarrow/.is choice}
+\ctikzset{inputarrow/true/.code={\pgf@circuit@inputarrowtrue}}
+\ctikzset{inputarrow/false/.code={\pgf@circuit@inputarrowfalse}}
+
+% Option "boxed" for nodes and twoports
+\newif\ifpgf@circuit@boxed
+\pgfkeys{/tikz/boxed/.add code={}{\pgf@circuit@boxedtrue}}
+\ctikzset{boxed/.add code={}{\pgf@circuit@boxedtrue}}
+\pgfkeys{/tikz/box/.add code={}{\pgf@circuit@boxedtrue}}
+\ctikzset{box/.add code={}{\pgf@circuit@boxedtrue}}
+
+% Option "dashed" for nodes and twoports
+\newif\ifpgf@circuit@dashed
+\pgfkeys{/tikz/dashed/.add code={}{\pgf@circuit@dashedtrue}}
+\ctikzset{dashed/.add code={}{\pgf@circuit@dashedtrue}}%
+
+% powerelectronic blocks
+\ctikzset{bipoles/sacdc/width/.initial=.7}
+\ctikzset{bipoles/sdcac/width/.initial=.7}
+\ctikzset{bipoles/sdcdc/width/.initial=.7}
+\ctikzset{bipoles/tacdc/width/.initial=.7}
+\ctikzset{bipoles/tdcac/width/.initial=.7}
+\ctikzset{quadpoles/gridnode/width/.initial=.7} %not sure if quadpole?
+
+%>>>
+
+%% Node shapes definition for path-style block diagrams%<<<
+
+%% Draw the two-port fillable box
+\def\pgf@circ@twoportbox{
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+ \endpgfscope
+}
+
+%% Generic two port box
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/twoport/height}}
+{twoport}
+{\ctikzvalof{bipoles/twoport/height}}
+{\ctikzvalof{bipoles/twoport/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@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
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+ % draw outer box
+ \pgf@circ@twoportbox
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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}}
+
+}
+
+%% twoport split
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/twoportsplit/width}}
+{twoportsplit}
+{\ctikzvalof{bipoles/twoportsplit/width}}
+{\ctikzvalof{bipoles/twoportsplit/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/twoportsplit/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}}
+ }
+ \fi
+
+ %get texts
+ \def\pgfcirc@tin{\ctikzvalof{bipoles/twoport/text in}}
+ \def\pgfcirc@tout{\ctikzvalof{bipoles/twoport/text out}}
+
+ % rotate inner symbol
+ \def\texti{\pgfcirc@tin}
+ \def\textii{\pgfcirc@tout}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135
+ \def\texti{\pgfcirc@tout}
+ \def\textii{\pgfcirc@tin}
+ \pgftransformrotate{270}
+ \fi\fi
+ \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible
+ \def\texti{\pgfcirc@tout}
+ \def\textii{\pgfcirc@tin}
+ \pgftransformrotate{180}
+ \fi\fi
+ \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \def\texti{\pgfcirc@tin}
+ \def\textii{\pgfcirc@tout}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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]{\texti}
+ \pgftext[center,x=0.45\pgf@circ@res@right,y=0.45\pgf@circ@res@down]{\textii}
+}
+
+%% voltage controled oscillator
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/vco/width}}
+{vco}
+{\ctikzvalof{bipoles/twoport/width}}
+{\ctikzvalof{bipoles/vco/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vco/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+ % draw circle
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{0}{0}} {\pgf@circ@res@step}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/bandpass/width}}
+{bandpass}
+{\ctikzvalof{bipoles/bandpass/width}}
+{\ctikzvalof{bipoles/bandpass/width}}
+{
+
+ \pgf@circ@res@step = \ctikzvalof{bipoles/bandpass/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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}
+}
+
+%% bandstop filter
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/bandstop/width}}
+{bandstop}
+{\ctikzvalof{bipoles/bandstop/width}}
+{\ctikzvalof{bipoles/bandstop/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/bandstop/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-}%never draw arrows
+ \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}
+}
+
+%% highpass filter
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/highpass/width}}
+{highpass}
+{\ctikzvalof{bipoles/highpass/width}}
+{\ctikzvalof{bipoles/highpass/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/highpass/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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}
+}
+
+%% highpass2 filter ---simplyfied with just two waves
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/highpass2/width}}
+{highpass2}
+{\ctikzvalof{bipoles/highpass2/width}}
+{\ctikzvalof{bipoles/highpass2/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/highpass2/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.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}}
+ \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.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}}
+ \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.3\pgf@circ@res@step}{-0.5\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@step}{-0.1\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+%% lowpass filter
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/lowpass/width}}
+{lowpass}
+{\ctikzvalof{bipoles/lowpass/width}}
+{\ctikzvalof{bipoles/lowpass/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/lowpass/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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}
+}
+
+%% lowpass2 filter: simplyfied with just two waves
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/lowpass2/width}}
+{lowpass2}
+{\ctikzvalof{bipoles/lowpass2/width}}
+{\ctikzvalof{bipoles/lowpass2/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/lowpass2/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.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}}
+ \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.3\pgf@circ@res@step}{0.1\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@step}{0.5\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.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}}
+ \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}
+}
+
+%% allpass filter
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/allpass/width}}
+{allpass}
+{\ctikzvalof{bipoles/allpass/width}}
+{\ctikzvalof{bipoles/allpass/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/allpass/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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.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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/adc/width}}
+{adc}
+{\ctikzvalof{bipoles/adc/width}}
+{\ctikzvalof{bipoles/adc/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/adc/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/dac/width}}
+{dac}
+{\ctikzvalof{bipoles/dac/width}}
+{\ctikzvalof{bipoles/dac/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/dac/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/dsp/width}}
+{dsp}
+{\ctikzvalof{bipoles/dsp/width}}
+{\ctikzvalof{bipoles/dsp/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/dsp/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/fft/width}}
+{fft}
+{\ctikzvalof{bipoles/fft/width}}
+{\ctikzvalof{bipoles/fft/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/fft/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{amp}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/amp/width}\pgf@circ@scaled@Rlen
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \pgf@circ@draworfill
+ \fi
+
+ % draw input arrow
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}}
+ }
+ \fi
+
+ \ifpgf@circuit@boxed
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetdash{}{0pt} % draw solid line for inner symbol if no box is drawn
+ \pgf@circ@res@step=.7\pgf@circ@res@step % scale amp symbol when inside a box
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+
+ \pgfsetarrows{-} %never draw arrows
+
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.55\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0}}
+ \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.55\pgf@circ@res@step}}
+
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ % draw inner text
+ \pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
+}
+
+
+%% variable amplifier
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{vamp}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/amp/width}\pgf@circ@scaled@Rlen
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw input arrow
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}}
+ }
+ \fi
+
+ \ifpgf@circuit@boxed
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetdash{}{0pt} % draw solid line for inner symbol if no box is drawn
+ \pgf@circ@res@step=.7\pgf@circ@res@step % scale amp symbol when inside a box
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+
+
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.55\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0}}
+ \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.55\pgf@circ@res@step}}
+
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ % draw inner text
+ \pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
+
+ % draw arrow
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsend{latex}
+ \pgfpathmoveto{\pgfpoint{-0.8\pgf@circ@res@step}{-0.5\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@step}{0.6\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+%% pi attenuator
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/piattenuator/width}}
+{piattenuator}
+{\ctikzvalof{bipoles/piattenuator/width}}
+{\ctikzvalof{bipoles/piattenuator/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/piattenuator/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/vpiattenuator/width}}
+{vpiattenuator}
+{\ctikzvalof{bipoles/vpiattenuator/width}}
+{\ctikzvalof{bipoles/vpiattenuator/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vpiattenuator/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/tattenuator/width}}
+{tattenuator}
+{\ctikzvalof{bipoles/tattenuator/width}}
+{\ctikzvalof{bipoles/tattenuator/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tattenuator/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/vtattenuator/width}}
+{vtattenuator}
+{\ctikzvalof{bipoles/vtattenuator/width}}
+{\ctikzvalof{bipoles/vtattenuator/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vtattenuator/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/phaseshifter/width}}
+{phaseshifter}
+{\ctikzvalof{bipoles/phaseshifter/width}}
+{\ctikzvalof{bipoles/phaseshifter/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/phaseshifter/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/phaseshifter/width}}
+{vphaseshifter}
+{\ctikzvalof{bipoles/vphaseshifter/width}}
+{\ctikzvalof{bipoles/vphaseshifter/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vphaseshifter/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/detector/width}}
+{detector}
+{\ctikzvalof{bipoles/detector/width}}
+{\ctikzvalof{bipoles/detector/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/detector/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}}
+ }
+ \fi
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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@scaled@Rlen / \ctikzvalof{bipoles/generic/width}}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{fulldiodeshape}{center}{}{pgf@fulldiode}{\pgfusepath{fill}}
+ \else
+ \pgfmathparse{2\pgf@circ@res@up / \pgf@circ@scaled@Rlen / \ctikzvalof{bipoles/resistor/width}}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{emptydiodeshape}{center}{}{pgf@emptydiode}{\pgfusepath{fill}}
+ \fi
+
+}
+
+%% single phase ac/dc converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ }
+}
+{\ctikzvalof{bipoles/sacdc/width}}
+{sacdc}
+{\ctikzvalof{bipoles/sacdc/width}}
+{\ctikzvalof{bipoles/sacdc/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/sacdc/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw sin wave
+ \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.5\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+%% dc/dc converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/sdcdc/width}}
+{sdcdc}
+{\ctikzvalof{bipoles/sdcdc/width}}
+{\ctikzvalof{bipoles/sdcdc/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/sdcdc/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+%% single phase dc/ac converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/sdcac/width}}
+{sdcac}
+{\ctikzvalof{bipoles/sdcac/width}}
+{\ctikzvalof{bipoles/sdcac/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/sdcac/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw sin wave
+ \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.5\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+%% threephase ac/dc converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ }
+ \anchor{ac1}{
+ \northeast
+ \pgf@y=.6\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{ac2}{
+ \northeast
+ \pgf@y=0\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{ac3}{
+ \northeast
+ \pgf@y=-.6\pgf@y
+ \pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/tacdc/width}}
+{tacdc}
+{\ctikzvalof{bipoles/tacdc/width}}
+{\ctikzvalof{bipoles/tacdc/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tacdc/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw sin waves
+ \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.65\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.5\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.35\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+
+
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+%% threephase dc/ac converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{ac1}{
+ \northeast
+ \pgf@y=.6\pgf@y
+ }
+ \anchor{ac2}{
+ \northeast
+ \pgf@y=0\pgf@y
+ }
+ \anchor{ac3}{
+ \northeast
+ \pgf@y=-.6\pgf@y
+ }
+}
+{\ctikzvalof{bipoles/tdcac/width}}
+{tdcac}
+{\ctikzvalof{bipoles/tdcac/width}}
+{\ctikzvalof{bipoles/tdcac/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tdcac/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw sin waves
+ \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.65\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.5\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.35\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+
+
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+% %>>>
+
+%% Path definitions for Blocks%<<<
+
+\pgfcirc@activate@bipole@simple{l}{twoport}
+\pgfcirc@activate@bipole@simple{l}{twoportsplit}
+\pgfcirc@activate@bipole@simple{l}{vco}
+\pgfcirc@activate@bipole@simple{l}{bandpass}
+\pgfcirc@activate@bipole@simple{l}{bandstop}
+\pgfcirc@activate@bipole@simple{l}{highpass}
+\pgfcirc@activate@bipole@simple{l}{highpass2}
+\pgfcirc@activate@bipole@simple{l}{lowpass}
+\pgfcirc@activate@bipole@simple{l}{lowpass2}
+\pgfcirc@activate@bipole@simple{l}{allpass}
+\pgfcirc@activate@bipole@simple{l}{adc}
+\pgfcirc@activate@bipole@simple{l}{dac}
+\pgfcirc@activate@bipole@simple{l}{dsp}
+\pgfcirc@activate@bipole@simple{l}{fft}
+\pgfcirc@activate@bipole@simple{l}{amp}
+\pgfcirc@activate@bipole@simple{l}{vamp}
+\pgfcirc@activate@bipole@simple{l}{piattenuator}
+\pgfcirc@activate@bipole@simple{l}{vpiattenuator}
+\pgfcirc@activate@bipole@simple{l}{tattenuator}
+\pgfcirc@activate@bipole@simple{l}{vtattenuator}
+\pgfcirc@activate@bipole@simple{l}{phaseshifter}
+\pgfcirc@activate@bipole@simple{l}{vphaseshifter}
+\pgfcirc@activate@bipole@simple{l}{detector}
+\pgfcirc@activate@bipole@simple{l}{sacdc}
+\pgfcirc@activate@bipole@simple{l}{sdcac}
+\pgfcirc@activate@bipole@simple{l}{sdcdc}
+\pgfcirc@activate@bipole@simple{l}{tacdc}
+\pgfcirc@activate@bipole@simple{l}{tdcac}
+% %>>>
+
+%% Node shapes for Block elements%<<<
+
+\pgfdeclareshape{mixer}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@boxed
+ \pgf@y=\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \else
+ \pgf@y=\ctikzvalof{tripoles/mixer/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/mixer/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \fi
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{2}{
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{3}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{4}{
+ \northwest
+ \pgf@y=\pgf@y
+ \pgf@x=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{e}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{w}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{s}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{n}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{up}{
+ \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
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{tripoles/mixer/width}*\scaledRlen/2}{\ctikzvalof{tripoles/mixer/width}*\scaledRlen/2}}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{tripoles/mixer/width}\pgf@circ@scaled@Rlen
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw outer circle
+ \ifpgf@circuit@boxed
+ \pgf@circ@res@step=.7\pgf@circ@res@step
+ \pgfsetdash{}{0pt} % draw solid circle if boxed
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgf@circ@draworfill
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \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}}
+ \pgfusepath{draw}
+
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{adder}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@boxed
+ \pgf@y=\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \else
+ \pgf@y=\ctikzvalof{tripoles/adder/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/adder/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \fi
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{2}{
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{3}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{4}{
+ \northwest
+ \pgf@y=\pgf@y
+ \pgf@x=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{e}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{w}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{s}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{n}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{up}{
+ \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
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{tripoles/adder/width}*\scaledRlen/2}{\ctikzvalof{tripoles/adder/width}*\scaledRlen/2}}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{tripoles/adder/width}\pgf@circ@scaled@Rlen
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw outer circle
+ \ifpgf@circuit@boxed
+ \pgf@circ@res@step=.7\pgf@circ@res@step{}
+ \pgfsetdash{}{0pt} % draw solid circle if boxed
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgf@circ@draworfill
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \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}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{oscillator}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@boxed
+ \pgf@y=\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \else
+ \pgf@y=\ctikzvalof{tripoles/oscillator/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/oscillator/width}\pgf@circ@scaled@Rlen
+ \fi
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{north}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{east}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0pt
+ }
+ \anchor{west}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{up}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{n}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{s}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{e}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0pt
+ }
+ \anchor{w}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{up}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{south west}{ \northwest \pgf@y=-\pgf@y}
+ \anchor{north east}{ \northwest \pgf@x=0pt\relax}
+ \anchor{north west}{ \northwest }
+ \anchor{south east}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{text}{
+ \pgf@x=-2\pgf@x
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \advance \pgf@y by -1.5\ht\pgfnodeparttextbox
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{tripoles/oscillator/width}*\scaledRlen/2}{\ctikzvalof{tripoles/oscillator/width}*\scaledRlen/2}}
+ \pgfmathsetlength{\pgf@x}{\pgf@x-\ctikzvalof{tripoles/oscillator/width}*\scaledRlen/2}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{tripoles/oscillator/width}\pgf@circ@scaled@Rlen{}
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+
+ \pgftransformxshift{-0.5\pgf@circ@res@step} % The oscillator is shifted to the left, so a connection comes out of the anchor "east"
+
+ % draw outer box
+ \ifpgf@circuit@boxed{}
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw outer circle
+ \ifpgf@circuit@boxed
+ \pgf@circ@res@step=.7\pgf@circ@res@step{}
+ \pgfsetdash{}{0pt} % draw solid circle if boxed
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgf@circ@draworfill
+
+ % draw inner sine waves
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners!
+ \pgfpathmoveto{\pgfpoint{-0.3\pgf@circ@res@step}{0\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.15\pgf@circ@res@step}{.15\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.15\pgf@circ@res@step}{-.15\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.15\pgf@circ@res@step}{-.15\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.15\pgf@circ@res@step}{.15\pgf@circ@res@step}}
+
+ \pgfusepath{draw}
+
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{circulator}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@boxed
+ \pgf@y=\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \else
+ \pgf@y=\ctikzvalof{tripoles/circulator/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/circulator/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \fi
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \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{e}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{w}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{s}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{n}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{up}{
+ \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
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{tripoles/circulator/width}*\scaledRlen/2}{\ctikzvalof{tripoles/circulator/width}*\scaledRlen/2}}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{tripoles/circulator/width}\pgf@circ@scaled@Rlen
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw outer circle
+ \ifpgf@circuit@boxed{}
+ \pgf@circ@res@step=.7\pgf@circ@res@step{}
+ \pgfsetdash{}{0pt} % draw solid circle if boxed
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgf@circ@draworfill
+
+ % 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
+ }
+}
+
+%% gridnode
+\pgfdeclareshape{gridnode}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+
+ \anchor{north}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{up}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{east}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{west}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{south west}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \anchor{north east}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \relax
+ }
+ \anchor{north west}{
+ \northwest
+ }
+ \anchor{south east}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{text}{
+ \pgf@x=-2\pgf@x
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \advance \pgf@y by -1.5\ht\pgfnodeparttextbox
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@Rlen
+
+ \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@step = \ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{0.05mm}
+
+ % draw grid
+ \foreach \line in {-1,-.5,...,1}
+ {
+ \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\line\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\line\pgf@circ@res@down}}
+ }
+
+ %prevent from draw the inner cross twice
+ \foreach \line in {-.5,0,...,.5}
+ {
+ \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\line\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\line\pgf@circ@res@down}}
+ }
+ \pgfusepath{draw}
+ }
+}
+
+
+% Wilkinson divider
+\pgfdeclareshape{wilkinson}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/wilkinson/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=-\ctikzvalof{tripoles/wilkinson/width}\pgf@x
+ }
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \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{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \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
+ \pgf@circ@twoportbox
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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@scaled@Rlen / \ctikzvalof{bipoles/generic/width} / 2}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{genericshape}{center}{}{wilk@int@R}{\pgfusepath{fill}}
+ \else
+ \pgfmathparse{\pgf@circ@res@up / \pgf@circ@scaled@Rlen / \ctikzvalof{bipoles/resistor/width} / 2}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{resistorshape}{center}{}{wilk@int@R}{\pgfusepath{fill}}
+ \fi
+ }
+
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointanchor{wilk@int@R}{right}}
+
+ \pgfpathmoveto{\pgfpointanchor{wilk@int@R}{left}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ }
+}
+
+%% resistive splitter
+\pgfdeclareshape{splitter}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/wilkinson/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=-\ctikzvalof{tripoles/wilkinson/width}\pgf@x
+ }
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \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{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \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
+ \pgf@circ@twoportbox
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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}}
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\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 resisitors - european or american style is recognised
+ \foreach \respt/\resang/\linepta/\lineptb in %
+ { \pgfpoint{0.5\pgf@circ@res@right}{0pt}/90/%
+ \pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}/\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down},%
+ \pgfpoint{0}{0.25\pgf@circ@res@up}/25/%
+ \pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}/\pgfpoint{0.5\pgf@circ@res@left}{0},%
+ \pgfpoint{0}{0.25\pgf@circ@res@down}/-25/%
+ \pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down}/\pgfpoint{0.5\pgf@circ@res@left}{0}}
+ {
+ {
+ \pgftransformshift{\respt}
+ \pgftransformrotate{\resang}
+
+ % calculate size of resistor
+ \ifpgf@circuit@europeanresistor
+ \pgfmathparse{\pgf@circ@res@up / \pgf@circ@scaled@Rlen / \ctikzvalof{bipoles/generic/width} / 2}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{genericshape}{center}{}{wilk@int@R}{\pgfusepath{fill}}
+ \else
+ \pgfmathparse{\pgf@circ@res@up / \pgf@circ@scaled@Rlen / \ctikzvalof{bipoles/resistor/width} / 2}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{resistorshape}{center}{}{wilk@int@R}{\pgfusepath{fill}}
+ \fi
+ }
+
+ \pgfpathmoveto{\linepta}
+ \pgfpathlineto{\pgfpointanchor{wilk@int@R}{right}}
+
+ \pgfpathmoveto{\pgfpointanchor{wilk@int@R}{left}}
+ \pgfpathlineto{\lineptb}
+ \pgfusepath{draw}
+ }
+ }
+}
+
+%% couplers generics
+\long\def\pgfcircdeclarefourport#1#2{
+
+ \pgfdeclareshape{#1}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{quadpoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=.5\pgf@circ@scaled@Rlen
+ \pgf@x=-\ctikzvalof{quadpoles/#1/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{left down}{
+ \northwest
+ \pgf@y=-0.5\pgf@y
+ }
+ \anchor{right down}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=-0.5\pgf@y
+ }
+ \anchor{right up}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=0.5\pgf@y
+ }
+ \anchor{left up}{
+ \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{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ \pgfstartlinewidth=\pgflinewidth
+
+ % draw outer box
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+
+ % draw inner stuff
+ #2
+
+ % draw inner text
+ \pgftext[center,x=-0.15\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
+ }
+ }
+}
+
+% four-port
+\pgfcircdeclarefourport{fourport}{}
+
+% straight coupler
+\pgfcircdeclarefourport{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
+\pgfcircdeclarefourport{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}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}}
+ \pgfpatharc{0}{90} {0.4\pgf@circ@res@up}
+ \pgfsetarrowsend{latex}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}}
+ \pgfpatharc{0}{-90} {0.4\pgf@circ@res@up}
+ \pgfsetarrowsend{latex}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}}
+ \pgfpatharc{180}{90} {0.4\pgf@circ@res@up}
+ \pgfsetarrowsend{latex}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}}
+ \pgfpatharc{-180}{-90} {0.4\pgf@circ@res@up}
+ \pgfsetarrowsend{latex}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% mach zehnder modulator
+\pgfdeclareshape{mzm}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/mzm/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=-\ctikzvalof{tripoles/mzm/width}\pgf@x
+ }
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \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{mod}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{text}{
+ \northwest
+ \advance \pgf@y by 0.5\ht\pgfnodeparttextbox
+ \pgf@x=-.5\wd\pgfnodeparttextbox
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \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
+ \pgf@circ@twoportbox
+
+ % draw inner stuff
+ % 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
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.75\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.25\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.25\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.75\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.25\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.25\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{0.35\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.25\pgf@circ@res@right}{0.1\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ }
+}
+% %>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircquadpoles
+%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
+%%%---------- open: tex/pgfcircmultipoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Chips and Rotary Switches
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Definitions for Chips and Rotary switches (multipoles) %<<<1
+%
+\ctikzset{multipoles/thickness/.initial=2}
+\ctikzset{multipoles/font/.initial=\pgf@circ@font@tiny}
+\ctikzset{multipoles/draw only pins/.initial={all}}
+\ctikzset{multipoles/draw only left pins/.initial={all}}
+\ctikzset{multipoles/draw only right pins/.initial={all}}
+\ctikzset{multipoles/draw only top pins/.initial={all}}
+\ctikzset{multipoles/draw only bottom pins/.initial={all}}
+\pgfqkeys{/tikz}{draw only pins/.add code={}{\ctikzset{multipoles/draw only pins={#1}}}}
+\pgfqkeys{/tikz}{draw only left pins/.add code={}{\ctikzset{multipoles/draw only left pins={#1}}}}
+\pgfqkeys{/tikz}{draw only right pins/.add code={}{\ctikzset{multipoles/draw only right pins={#1}}}}
+\pgfqkeys{/tikz}{draw only top pins/.add code={}{\ctikzset{multipoles/draw only top pins={#1}}}}
+\pgfqkeys{/tikz}{draw only bottom pins/.add code={}{\ctikzset{multipoles/draw only bottom pins={#1}}}}
+% DIP (dual in line package) chips
+\ctikzset{multipoles/dipchip/width/.initial=1.2}
+\ctikzset{multipoles/dipchip/num pins/.initial=8}
+\ctikzset{multipoles/dipchip/pin spacing/.initial=0.4}
+\pgfkeys{/tikz/num pins/.add code={}{\ctikzset{multipoles/dipchip/num pins=#1}}}
+% QFP (quad flat package) chips
+\ctikzset{multipoles/qfpchip/num pins/.initial=8}
+\ctikzset{multipoles/qfpchip/pin spacing/.initial=0.4}
+\pgfkeys{/tikz/num pins/.add code={}{\ctikzset{multipoles/qfpchip/num pins=#1}}}
+% chip numbers
+\newif\ifpgf@circuit@chip@shownumbers\pgf@circuit@chip@shownumberstrue
+\pgfkeys{/tikz/show numbers/.add code={}{\pgf@circuit@chip@shownumberstrue}}
+\ctikzset{show numbers/.add code={}{\pgf@circuit@chip@shownumberstrue}}
+\pgfkeys{/tikz/hide numbers/.add code={}{\pgf@circuit@chip@shownumbersfalse}}
+\ctikzset{hide numbers/.add code={}{\pgf@circuit@chip@shownumbersfalse}}
+\newif\ifpgf@circuit@chip@straightnumbers\pgf@circuit@chip@straightnumberstrue
+\pgfkeys{/tikz/straight numbers/.add code={}{\pgf@circuit@chip@straightnumberstrue}}
+\ctikzset{straight numbers/.add code={}{\pgf@circuit@chip@straightnumberstrue}}
+\pgfkeys{/tikz/rotated numbers/.add code={}{\pgf@circuit@chip@straightnumbersfalse}}
+\ctikzset{rotated numbers/.add code={}{\pgf@circuit@chip@straightnumbersfalse}}
+% external chip pins
+\ctikzset{multipoles/external pins thickness/.initial=1}
+\ctikzset{multipoles/external pins width/.initial=0.2}
+\ctikzset{multipoles/external pad fraction/.initial=0}
+\pgfkeys{/tikz/external pins width/.add code={}{\ctikzset{multipoles/external pins width=#1}}}
+\pgfkeys{/tikz/external pad fraction/.add code={}{\ctikzset{multipoles/external pad fraction=#1}}}
+% topmarks
+\newif\ifpgf@circuit@chip@topmark\pgf@circuit@chip@topmarktrue
+\pgfkeys{/tikz/topmark/.add code={}{\pgf@circuit@chip@topmarktrue}}
+\ctikzset{topmark/.add code={}{\pgf@circuit@chip@topmarktrue}}
+\pgfkeys{/tikz/no topmark/.add code={}{\pgf@circuit@chip@topmarkfalse}}
+\ctikzset{no topmark/.add code={}{\pgf@circuit@chip@topmarkfalse}}
+
+% rotary switch by Romano
+\ctikzset{multipoles/rotary/thickness/.initial=1}
+\ctikzset{multipoles/rotary/shape/.initial=ocirc}
+\ctikzset{multipoles/rotary/channels/.initial=5}
+\ctikzset{multipoles/rotary/angle/.initial=60}
+\ctikzset{multipoles/rotary/wiper/.initial=20}
+\ctikzset{multipoles/rotary/arrow/.is choice}
+\newif\ifpgf@circ@rotaryarrow\pgf@circ@rotaryarrowfalse
+\newif\ifpgf@circ@rotaryarrow@cw\pgf@circ@rotaryarrow@cwfalse
+\newif\ifpgf@circ@rotaryarrow@ccw\pgf@circ@rotaryarrow@ccwfalse
+\ctikzset{multipoles/rotary/arrow/none/.code={\pgf@circ@rotaryarrowfalse\pgf@circ@rotaryarrow@cwfalse\pgf@circ@rotaryarrow@ccwfalse}}
+\ctikzset{multipoles/rotary/arrow/both/.code={\pgf@circ@rotaryarrowtrue\pgf@circ@rotaryarrow@cwtrue\pgf@circ@rotaryarrow@ccwtrue}}
+\ctikzset{multipoles/rotary/arrow/cw/.code={\pgf@circ@rotaryarrowtrue\pgf@circ@rotaryarrow@cwtrue\pgf@circ@rotaryarrow@ccwfalse}}
+\ctikzset{multipoles/rotary/arrow/ccw/.code={\pgf@circ@rotaryarrowtrue\pgf@circ@rotaryarrow@cwfalse\pgf@circ@rotaryarrow@ccwtrue}}
+
+\tikzset{%
+ rotary switch/.style args={#1in#2wiper#3}{%
+ shape=rotaryswitch,
+ /tikz/circuitikz/multipoles/rotary/channels=#1,
+ /tikz/circuitikz/multipoles/rotary/angle=#2,
+ /tikz/circuitikz/multipoles/rotary/wiper=#3,
+ },
+ rotary switch -/.style args={#1in#2wiper#3}{
+ rotary switch=#1 in #2 wiper #3,
+ /tikz/circuitikz/multipoles/rotary/arrow=none,
+ },
+ rotary switch <-/.style args={#1in#2wiper#3}{
+ rotary switch=#1 in #2 wiper #3,
+ /tikz/circuitikz/multipoles/rotary/arrow=ccw,
+ },
+ rotary switch ->/.style args={#1in#2wiper#3}{
+ rotary switch=#1 in #2 wiper #3,
+ /tikz/circuitikz/multipoles/rotary/arrow=cw,
+ },
+ rotary switch <->/.style args={#1in#2wiper#3}{
+ rotary switch=#1 in #2 wiper #3,
+ /tikz/circuitikz/multipoles/rotary/arrow=both,
+ },
+ % Notice that these should be the same as the initial values of the keys
+ rotary switch/.default={5 in 60 wiper 20},
+ rotary switch -/.default={5 in 60 wiper 20},
+ rotary switch <-/.default={5 in 60 wiper 20},
+ rotary switch ->/.default={5 in 60 wiper 20},
+ rotary switch <->/.default={5 in 60 wiper 20},
+}
+%%>>>
+
+%% Nodes definitions for chips%<<<
+
+%%%%%%%%%
+%% Chips
+%%%%%%%%%
+
+% let's use the same shifts everywhere, no magic numbers
+\def\pgf@circ@dip@pin@shift{0.5}
+\def\pgf@circ@qfp@pin@shift{0.25}
+
+% derived from https://tex.stackexchange.com/a/146753/38080
+% original author Mark Wibrow
+% Thanks also to John Kormylo https://tex.stackexchange.com/a/372996/38080
+% a lot of thanks to @marmot for the un-rotation hint
+% https://tex.stackexchange.com/a/473571/38080
+% modifications for 'draw only pins' by Jonathan P. Spratte
+
+% DIP (dual in line package) chips
+
+% helper macro to set the anchors inside a loop (to expand the current count)
+\pgfutil@protected\def\pgf@circ@make@dippin@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@dipchip@pin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{#1}
+ {\pgf@circ@dippinanchor{#1}{1}}
+ {\pgf@circ@dippinanchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@dipchip@bpin #1\endcsname
+ {\pgf@circ@dippinanchor{#1}{0}}%
+ }
+
+\pgfdeclareshape{dipchip}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{chips}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro\numpins{%
+ \pgf@circ@count@a=\ctikzvalof{multipoles/dipchip/num pins}%
+ \def\numpins{\the\pgf@circ@count@a}
+ }
+ \savedmacro\pgf@circ@pins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@pins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedanchor\centerpoint{%
+ \pgf@x=-.5\wd\pgfnodeparttextbox%
+ \pgf@y=-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+.5\dp\pgfnodeparttextbox%
+ }%
+ \savedanchor\origin{\pgfpoint{0pt}{0pt}}
+ \anchor{center}{\origin}
+ \anchor{text}{\centerpoint}% to adjust text
+ \saveddimen\height{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{((\numpins)
+ *\ctikzvalof{multipoles/dipchip/pin spacing})*\pgf@circ@scaled@Rlen/2}%
+ }%
+ \saveddimen{\chipspacing}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/dipchip/pin spacing}}}
+ \saveddimen{\width}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/dipchip/width}}}
+ \saveddimen{\extshift}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/external pins width}}}
+ % standard anchors
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{0.5*((\numpins)
+ *\ctikzvalof{multipoles/dipchip/pin spacing})*\pgf@circ@scaled@Rlen/2}%
+ \pgfmathsetlength\pgf@x{-0.5*\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/dipchip/width}}
+ }
+ \anchor{dot}{\northwest
+ \pgfmathsetlength\pgf@x{\pgf@x + 0.3*\chipspacing}
+ \pgfmathsetlength\pgf@y{\pgf@y - 0.3*\chipspacing}
+ }
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northwest\pgf@x=-\pgf@x}
+ \anchor{se}{\northwest\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{sw}{\northwest\pgf@y=-\pgf@y}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{south east}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{south west}{\northwest\pgf@y=-\pgf@y}
+ \anchor{n}{\northwest\pgf@x=0pt }
+ \anchor{e}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{w}{\northwest\pgf@y=0pt }
+ \anchor{north}{\northwest\pgf@x=0pt }
+ \anchor{east}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{south}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{west}{\northwest\pgf@y=0pt }
+ % start drawing
+ \backgroundpath{%
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step = \ctikzvalof{multipoles/dipchip/pin spacing}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other = \ctikzvalof{multipoles/external pins width}\pgf@circ@scaled@Rlen
+ \pgfscope% (for the line width)
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{-\width/2}{-\height/2}}{\pgfpoint{\width/2}{\height/2}}%
+ \pgf@circ@draworfill
+ %% upside mark
+ \ifpgf@circuit@chip@topmark
+ \pgfpathmoveto{\pgfpoint{0.2*\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpatharc{0}{180}{0.2*\pgf@circ@res@left}
+ \fi
+ \pgfusepath{stroke}%
+ \pgfsetcolor{\ctikzvalof{color}}
+ % Adding the pin number
+ \ifpgf@circuit@chip@shownumbers
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ % thanks to @marmot: https://tex.stackexchange.com/a/473571/38080
+ \ifpgf@circuit@chip@straightnumbers
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \pgfmathtruncatemacro{\quadrant}{mod(4+int(360+(\rot+45)/90),4)}
+ \else
+ \pgfmathsetmacro{\rot}{0}
+ \pgfmathsetmacro{\quadrant}{0}
+ \fi
+ \def\pgf@circ@strut{\vrule width 0pt height 1em depth 0.4em\relax}
+ \def\mytext{\ctikzvalof{multipoles/font}\space\pgf@circ@strut\the\pgf@circ@count@c\space}
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \ifcase\quadrant % rotation 0
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \fi
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ \fi
+ \endpgfscope
+ % draw external pins or pads
+ \ifdim\pgf@circ@res@other>0pt
+ \ifpgfcirc@draw@input@leads
+ \pgfscope
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ \edef\padfrac{\ctikzvalof{multipoles/external pad fraction}}
+ \ifnum\padfrac>0
+ \pgf@circ@res@temp=\pgf@circ@res@step\divide\pgf@circ@res@temp by \padfrac
+ \fi
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % left side
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list\pgf@circ@count@a
+ {%
+ \ifnum\padfrac>0
+ % pads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \else
+ % pins
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \fi
+ }
+ {}%
+ % right side
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{\numpins+1-\pgf@circ@count@a}
+ {%
+ \ifnum\padfrac>0
+ % pads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \else
+ % pins
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \fi
+ }
+ {}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop
+ \pgfusepath{stroke}
+ \endpgfscope
+ \fi
+ \fi
+ }%
+ \pgfutil@g@addto@macro\pgf@sh@s@dipchip{%
+ \pgf@circ@count@a=\numpins
+ \pgfmathloop
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ % see the helper function above the start of the shape definition (by Jonathan P. Spratte)
+ \expandafter\pgf@circ@make@dippin@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax
+ \repeatpgfmathloop
+ }%
+ }
+
+% QFP (quad flat package) chips
+% helper macro to set the anchors inside a loop (to expand the current count)
+\pgfutil@protected\def\pgf@circ@make@qfppin@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@qfpchip@pin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{#1}
+ {\pgf@circ@qfppinanchor{#1}{1}}
+ {\pgf@circ@qfppinanchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@qfpchip@bpin #1\endcsname
+ {\pgf@circ@qfppinanchor{#1}{0}}%
+ }
+
+\pgfdeclareshape{qfpchip}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{chips}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro\numpins{%
+ \pgf@circ@count@a=\ctikzvalof{multipoles/qfpchip/num pins}%
+ \def\numpins{\the\pgf@circ@count@a}
+ }
+ \savedmacro\pgf@circ@pins@list
+ {% some magic here, thanks to Jonathan P. Spratte
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@pins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedanchor\centerpoint{%
+ \pgf@x=-.5\wd\pgfnodeparttextbox%
+ \pgf@y=-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+.5\dp\pgfnodeparttextbox%
+ }%
+ \savedanchor\origin{\pgfpoint{0pt}{0pt}}
+ \anchor{center}{\origin}
+ \anchor{text}{\centerpoint}% to adjust text
+ \saveddimen\height{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{((\numpins+2)
+ *\ctikzvalof{multipoles/qfpchip/pin spacing})*\pgf@circ@scaled@Rlen/4}%
+ }%
+ \saveddimen\width{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{((\numpins+2)
+ *\ctikzvalof{multipoles/qfpchip/pin spacing})*\pgf@circ@scaled@Rlen/4}%
+ }%
+ \saveddimen{\chipspacing}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/qfpchip/pin spacing}}}
+ \saveddimen{\extshift}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/external pins width}}}
+ % standard anchors
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{0.5*((\numpins+2)
+ *\ctikzvalof{multipoles/qfpchip/pin spacing})*\pgf@circ@scaled@Rlen/4}%
+ \pgf@x=-\pgf@y
+ }
+ \anchor{dot}{\northwest
+ \pgfmathsetlength\pgf@x{\pgf@x + 0.3*\chipspacing}
+ \pgfmathsetlength\pgf@y{\pgf@y - 0.3*\chipspacing}
+ }
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northwest\pgf@x=-\pgf@x}
+ \anchor{se}{\northwest\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{sw}{\northwest\pgf@y=-\pgf@y}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{south east}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{south west}{\northwest\pgf@y=-\pgf@y}
+ \anchor{n}{\northwest\pgf@x=0pt }
+ \anchor{e}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{w}{\northwest\pgf@y=0pt }
+ \anchor{north}{\northwest\pgf@x=0pt }
+ \anchor{east}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{south}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{west}{\northwest\pgf@y=0pt }
+ % start drawing
+ \backgroundpath{%
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step = \ctikzvalof{multipoles/qfpchip/pin spacing}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other = \ctikzvalof{multipoles/external pins width}\pgf@circ@scaled@Rlen
+ \pgfscope% (for the line width)
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ %% upside mark
+ \ifpgf@circuit@chip@topmark
+ \pgfpathmoveto{\pgfpoint{-\width/2}{\height/2-\pgf@circ@res@step/2}}
+ \pgfpathlineto{\pgfpoint{-\width/2+\pgf@circ@res@step/2}{\height/2}}
+ \else
+ \pgfpathmoveto{\pgfpoint{-\width/2}{\height/2}}
+ \fi
+ %% rest of the shape
+ \pgfpathlineto{\pgfpoint{\width/2}{\height/2}}
+ \pgfpathlineto{\pgfpoint{\width/2}{-\height/2}}
+ \pgfpathlineto{\pgfpoint{-\width/2}{-\height/2}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % Adding the pin number
+ \pgfsetcolor{\ctikzvalof{color}}
+ \ifpgf@circuit@chip@shownumbers
+ \pgf@circ@count@a=\numpins%
+ \divide\pgf@circ@count@a by 4 \pgf@circ@count@b=\pgf@circ@count@a
+ % thanks to @marmot: https://tex.stackexchange.com/a/473571/38080
+ \ifpgf@circuit@chip@straightnumbers
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \pgfmathtruncatemacro{\quadrant}{mod(4+int(360+(\rot+45)/90),4)}
+ \else
+ \pgfmathsetmacro{\rot}{0}
+ \pgfmathsetmacro{\quadrant}{0}
+ \fi
+ \def\pgf@circ@strut{\vrule width 0pt height 1em depth 0.4em\relax}
+ \def\mytext{\ctikzvalof{multipoles/font}\space\pgf@circ@strut\the\pgf@circ@count@c\space}
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \ifcase\quadrant % rotation 0
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % bottom
+ \pgf@circ@count@c=\numexpr\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % top
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % bottom
+ \pgf@circ@count@c=\numexpr\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % top
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % bottom
+ \pgf@circ@count@c=\numexpr\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % top
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % bottom
+ \pgf@circ@count@c=\numexpr\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % top
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up},
+ rotate=\rot]{\mytext}
+ \fi
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ \fi
+ \endpgfscope
+ \ifdim\pgf@circ@res@other>0pt
+ \ifpgfcirc@draw@input@leads
+ \pgfscope
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ \pgf@circ@count@a=\numpins%
+ \divide\pgf@circ@count@a by 4 \pgf@circ@count@b=\pgf@circ@count@a
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \edef\padfrac{\ctikzvalof{multipoles/external pad fraction}}
+ \ifnum\padfrac>0
+ \pgf@circ@res@temp=\pgf@circ@res@step\divide\pgf@circ@res@temp by \padfrac
+ % left side pads
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list\pgf@circ@count@a
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ % bottom side pads
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{\numpins/4+\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@temp+\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@temp+\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down-\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down-\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down}}
+ }{}%
+ % right side pads
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{3*\numpins/4+1-\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ % top side pads
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{3*\numpins/4+\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up+\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@temp+\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up+\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@temp+\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up}}
+ }{}%
+ \else
+ % left side pins
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list\pgf@circ@count@a
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ % bottom side pins
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{\numpins/4+\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down-\pgf@circ@res@other}}
+ }{}%
+ % right side pins
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{3*\numpins/4+1-\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ % top side pins
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{3*\numpins/4+\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up+\pgf@circ@res@other}}
+ }{}%
+ \fi
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ \pgfusepath{stroke}
+ \endpgfscope
+ \fi
+ \fi
+ }%
+ % \pgf@sh@s@<name of the shape here> contains all the code for the shape
+ % and is executed just before a node is drawn.
+ \pgfutil@g@addto@macro\pgf@sh@s@qfpchip{%
+ % Start with the maximum pin number and go backwards.
+ \pgf@circ@count@a=\numpins%
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \expandafter\pgf@circ@make@qfppin@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop%
+ }%
+ }
+
+%% anchors for DIP
+\def\pgf@circ@dippinanchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \c@pgf@countc=\numpins\relax
+ \divide\c@pgf@countc by 2
+ \ifnum #1 > \the\c@pgf@countc
+ % right side
+ \pgfpoint{\width/2+#2*\extshift}{-\height/2+(\pgf@circ@dip@pin@shift-\c@pgf@countc+#1-1)*\chipspacing}
+ \else
+ \pgfpoint{-\width/2-#2*\extshift}{\height/2+(\pgf@circ@dip@pin@shift-#1)*\chipspacing}
+\fi
+}
+
+%% anchors for QFP
+\def\pgf@circ@qfppinanchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \c@pgf@countc=\numpins\relax
+ \divide\c@pgf@countc by 4
+ \ifnum #1 > \the\c@pgf@countc
+ \c@pgf@countb=\c@pgf@countc \multiply \c@pgf@countb by 2
+ \ifnum #1 > \the\c@pgf@countb
+ \c@pgf@countb=\c@pgf@countc \multiply \c@pgf@countb by 3
+ \ifnum #1 > \the\c@pgf@countb
+ % 3*npins/4 < pin, top side
+ \pgfpoint{\width/2+(\pgf@circ@qfp@pin@shift+\c@pgf@countb-#1)*\chipspacing}{\height/2+#2*\extshift}%
+ \else
+ % 2*npins/4 < pin <= 3*npins/4, right side
+ \pgfpoint{\width/2+#2*\extshift}{\height/2+(\pgf@circ@qfp@pin@shift-\c@pgf@countb+#1-1)*\chipspacing}%
+ \fi
+ \else
+ % npins/4 < pin <= 2*npins/4, bottom side
+ \pgfpoint{\width/2+(\pgf@circ@qfp@pin@shift-\c@pgf@countb+#1-1)*\chipspacing}{-\height/2-#2*\extshift}%
+ \fi
+ \else
+ % <= npins/4, left side
+ \pgfpoint{-\width/2-#2*\extshift}{\height/2+(\pgf@circ@qfp@pin@shift-#1)*\chipspacing}%
+ \fi
+}% %>>>
+
+%% Nodes definition for rotaryswitch%<<<
+
+%%%%%%%%%%%%%%%%%
+%% Rotary Switch
+%%%%%%%%%%%%%%%%%
+
+\pgfdeclareshape{rotaryswitch}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{switches}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northeast{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % this strange value makes the 2-pole rotary switch equal to the 2 poles cute spdt
+ % the magic number is 0.25/cos(35)
+ % try to recalculate it for the actual switch
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=.3052\pgf@circ@res@temp
+ \edef\a{\ctikzvalof{multipoles/rotary/angle}}
+ \edef\r{\ctikzvalof{nodes width}}
+ \pgfmathsetlength{\pgf@y}{\r*\pgf@circ@scaled@Rlen +(\a>90 ? 2 : 2*sin(\a))*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@x}{\r*\pgf@circ@scaled@Rlen + \pgf@circ@res@temp}
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % this strange value makes the 2-pole rotary switch equal to the 2 poles cute spdt
+ % the magic number is 0.25/cos(35)
+ % try to recalculate it for the actual switch
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=.3052\pgf@circ@res@temp
+ \edef\a{\ctikzvalof{multipoles/rotary/angle}}
+ \edef\r{\ctikzvalof{nodes width}}
+ \pgfmathsetlength{\pgf@y}{\r*\pgf@circ@scaled@Rlen +(\a>90 ? 2 : 2*sin(\a))*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@x}{-\r*\pgf@circ@scaled@Rlen - (\a<90 ? 1 : 1-2*cos(\a))*\pgf@circ@res@temp}
+ }
+ \savedanchor\central{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % this strange value makes the 2-pole rotary switch equal to the 2 poles cute spdt
+ % the magic number is 0.25/cos(35)
+ % try to recalculate it for the actual switch
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=.3052\pgf@circ@res@temp
+ \edef\a{\ctikzvalof{multipoles/rotary/angle}}
+ \edef\r{\ctikzvalof{nodes width}}
+ \pgfmathsetlength{\pgf@y}{\r*\pgf@circ@scaled@Rlen +(\a>90 ? 2 : 2*sin(\a))*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@x}{(\a<90 ? 0 : cos(\a))*\pgf@circ@res@temp}
+ }
+ % external square limits
+ \savedanchor\extnorthwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ % this strange value makes the 2-pole rotary switch equal to the 2 poles cute spdt
+ \pgf@x=.3052\pgf@x % the magic number is 0.25/cos(35)
+ \pgf@x=2.5\pgf@x % external square size
+ \pgf@y=-\pgf@x %square thing when angle=180?
+ }
+ \saveddimen{\width}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{0.3052*\pgf@circ@scaled@Rlen*\ctikzvalof{tripoles/spdt/width}}}
+ % radius of the connector
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ \saveddimen{\radius}{\pgfmathsetlength\pgf@x{\pgf@circ@Rlen*\ctikzvalof{nodes width}}}
+ % shapename
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ % shape type
+ \savedmacro{\cshape}{\def\cshape{\ctikzvalof{multipoles/rotary/shape}}}
+ \savedmacro{\channels}{\def\channels{\ctikzvalof{multipoles/rotary/channels}}}
+ \savedmacro{\angle}{\def\angle{\ctikzvalof{multipoles/rotary/angle}}}
+ \savedmacro{\wiper}{\def\wiper{\ctikzvalof{multipoles/rotary/wiper}}}
+ \savedmacro{\stepa}{\pgfmathsetmacro{\stepa}{2*\ctikzvalof{multipoles/rotary/angle}/(\ctikzvalof{multipoles/rotary/channels}-1)}}
+ % mid of the lever, to stack switches
+ %\anchor{mid}{\midlever}
+ \anchor{mid}{\northwest
+ \pgf@circ@res@temp=-\pgf@x
+ \pgfmathsetlength{\pgf@x}{\pgf@circ@res@temp*(-1+cos(\wiper))}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp*sin(\wiper)}
+ }
+ %
+ % Notice that the "in" anchors must mimic "ext center", otherwise they are
+ % wrong for angles > 90 degrees!
+ %
+ % center anchors
+ \anchor{cin}{ \pgf@y=0pt \pgf@x=0pt \advance\pgf@x by -\width}
+ % horizontal angles
+ \anchor{in}{ \pgf@y=0pt \pgf@x=0pt \advance\pgf@x by -\width \advance\pgf@x by -\radius}
+ \anchor{ain}{ \pgf@y=0pt \pgf@x=0pt \advance\pgf@x by -\width \advance\pgf@x by -\radius}
+
+ \anchor{center}{ \central \pgf@y=0pt }
+ \anchor{east}{ \northeast \pgf@y=0pt }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \central \pgf@y=-\pgf@y }
+ \anchor{north}{ \central }
+ \anchor{south west}{ \northwest \pgf@y=-\pgf@y }
+ \anchor{north east}{ \northeast }
+ \anchor{north west}{ \northwest }
+ \anchor{south east}{ \northeast \pgf@y=-\pgf@y }
+
+ \anchor{ext center}{ \pgf@y=0pt \pgf@x=0pt \advance\pgf@x by -\width}
+ \anchor{ext east}{ \extnorthwest \pgf@y=0pt \pgf@x=-\pgf@x \advance\pgf@x by -\width}
+ \anchor{ext west}{ \extnorthwest \pgf@y=0pt \advance\pgf@x by -\width}
+ \anchor{ext south}{ \extnorthwest \pgf@x=0pt \pgf@y=-\pgf@y \advance\pgf@x by -\width}
+ \anchor{ext north}{ \extnorthwest \pgf@x=0pt \advance\pgf@x by -\width}
+ \anchor{ext south west}{ \extnorthwest \pgf@y=-\pgf@y \advance\pgf@x by -\width}
+ \anchor{ext north east}{ \extnorthwest \pgf@x=-\pgf@x \advance\pgf@x by -\width}
+ \anchor{ext north west}{ \extnorthwest \advance\pgf@x by -\width}
+ \anchor{ext south east}{ \extnorthwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y \advance\pgf@x by -\width}
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@res@right = \width
+ \pgf@circ@res@left = -\width
+
+ \pgfscope %wiper
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ \pgf@circ@res@temp=\radius\relax
+ \pgf@circ@res@temp=\ctikzvalof{multipoles/rotary/thickness}\pgf@circ@res@temp
+ \pgfsetlinewidth{2\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@circ@res@left}{0pt}}{\pgfpointpolar{\wiper}{2\pgf@circ@res@right}}}
+ \pgfsetroundcap\pgfusepath{draw}
+ \endpgfscope
+
+ \ifpgf@circ@rotaryarrow
+ \pgfscope % arrow
+ \pgfcirc@set@arrows{switch}{\ifpgf@circ@rotaryarrow@ccw latexslim\fi}{\ifpgf@circ@rotaryarrow@cw latexslim\fi}
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % center of cin node
+ \pgftransformrotate{\wiper}
+ \pgfpathmoveto{\pgfpointpolar{50}{1.0\pgf@circ@res@right}}
+ \pgfpatharc{50}{-50}{1.0\pgf@circ@res@right}
+ \ifpgf@circ@rotaryarrow@ccw
+ \ifpgf@circ@rotaryarrow@cw
+ % both here, maintain values
+ \relax
+ \else
+ % only ccw: remove end arrow
+ \pgfsetarrowsend{}
+ \fi
+ \else
+ \ifpgf@circ@rotaryarrow@cw
+ % only cw: remove start arrow
+ \pgfsetarrowsstart{}
+ \else
+ % none: shouldn't happen
+ \relax
+ \fi
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+ \fi
+
+ % \typeout{CHANNELS\space\channels\space ANGLE\space\angle STEPA\space\stepa}
+ \pgf@circ@count@a=\channels\relax
+ \pgfmathsetmacro{\currenta}{-\angle}
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % \typeout{LOOPIN\space\space\the\pgf@circ@count@a\space CURRENTA\space\currenta\space RIGHT\space\the\pgf@circ@res@right}
+ \pgfscope
+ \pgftransformshift{\pgfpointadd{\pgfpoint{\pgf@circ@res@left}{0pt}}{\pgfpointpolar{\currenta}{2\pgf@circ@res@right}}}
+ \pgfnode{\cshape}{center}{}{\thisshape-out \the\pgf@circ@count@a}{\pgfusepath{stroke}}
+ \endpgfscope
+ \pgfmathsetmacro{\currenta}{\currenta+\stepa}
+ % \typeout{LOOPOUT\space\the\pgf@circ@count@a\space CURRENTA\space\currenta\space RIGHT\space\the\pgf@circ@res@right}
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop
+
+ \pgfscope % input
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{\cshape}{center}{}{\thisshape-in}{\pgfusepath{stroke}}
+ \endpgfscope
+ }
+ % \pgf@sh@s@<name of the shape here> contains all the code for the shape
+ % and is executed just before a node is drawn.
+ \pgfutil@g@addto@macro\pgf@sh@s@rotaryswitch{%
+ % Start with the maximum pin number and go backwards.
+ \pgf@circ@count@a=\channels\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\xdef\csname pgf@anchor@rotaryswitch@out\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@rotaryanchor{\the\pgf@circ@count@a}{1}{0}%
+ }
+ \expandafter\xdef\csname pgf@anchor@rotaryswitch@cout\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@rotaryanchor{\the\pgf@circ@count@a}{0}{0}%
+ }
+ \expandafter\xdef\csname pgf@anchor@rotaryswitch@aout\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@rotaryanchor{\the\pgf@circ@count@a}{0}{1}%
+ }
+ \expandafter\xdef\csname pgf@anchor@rotaryswitch@sqout\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@rotarysqanchor{\the\pgf@circ@count@a}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+}
+
+\def\pgf@circ@rotaryanchor#1#2#3{% #1: numero del pin; #2: 1 - x pos, 0 - center; #3 0: inner, 1 outer
+ \pgf@circ@res@temp=\width
+ \pgfmathsetmacro{\myangle}{\angle-(#1-1)*\stepa}
+ \pgfmathsetlength{\pgf@x}{2*(\pgf@circ@res@temp+#3*\radius/2)*cos(\myangle))+#2*\radius}
+ \pgfmathsetlength{\pgf@y}{2*(\pgf@circ@res@temp+#3*\radius/2)*sin(\myangle)}
+ \advance\pgf@x by -\pgf@circ@res@temp
+}
+
+\def\pgf@circ@rotarysqanchor#1{% external square anchors
+ \pgf@circ@res@temp=\width
+ \pgfmathsetmacro{\myangle}{\angle-(#1-1)*\stepa}
+ \pgfpointborderrectangle{\pgfpointpolar{\myangle}{1pt}}{\pgfpoint{2.5\pgf@circ@res@temp}{2.5\pgf@circ@res@temp}}
+ \advance\pgf@x by -\pgf@circ@res@temp
+}% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Seven segments displays
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Definitions for seven segment displays by RGtti%<<<1
+
+\newif\ifpgf@circ@sevenseg@dot
+\newif\ifpgf@circ@sevenseg@box
+\def\pgf@circ@sevenseg@dotstate{empty}
+\ctikzset{seven seg/.is family}
+\ctikzset{seven seg/dot/.is choice}
+% none means no dot, not space for it. Empty means no dot, but space
+\ctikzset{seven seg/dot/none/.code={\pgf@circ@sevenseg@dotfalse}}
+\ctikzset{seven seg/dot/empty/.code={\pgf@circ@sevenseg@dottrue\def\pgf@circ@sevenseg@dotstate{empty}}}
+\ctikzset{seven seg/dot/off/.code={\pgf@circ@sevenseg@dottrue\def\pgf@circ@sevenseg@dotstate{off}}}
+\ctikzset{seven seg/dot/on/.code={\pgf@circ@sevenseg@dottrue\def\pgf@circ@sevenseg@dotstate{on}}}
+%
+\ctikzset{seven seg/width/.initial=0.4}% relative to \pgf@circ@Rlen
+\ctikzset{seven seg/thickness/.initial=4pt}% segment thickness
+\ctikzset{seven seg/segment sep/.initial=0.2pt}% gap between segments
+\ctikzset{seven seg/box sep/.initial=1pt}% external box gap
+\ctikzset{seven seg/color on/.initial=red}% color for segment "on"
+\ctikzset{seven seg/color off/.initial=gray!20!white} % ...and "off"
+\ctikzset{seven seg/box/.is choice}
+\ctikzset{seven seg/box/off/.code={\pgf@circ@sevenseg@boxfalse}}
+\ctikzset{seven seg/box/on/.code={\pgf@circ@sevenseg@boxtrue}}
+
+\ctikzset{seven seg/bits/.initial=0000000}
+
+\ctikzset{seven seg/value/.code={%
+ \edef\@@tmp{#1}%
+ \edef\@@n{0} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1111110}\fi
+ \edef\@@n{1} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0110000}\fi
+ \edef\@@n{2} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1101101}\fi
+ \edef\@@n{3} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1111001}\fi
+ \edef\@@n{4} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0110011}\fi
+ \edef\@@n{5} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1011011}\fi
+ \edef\@@n{6} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1011111}\fi
+ \edef\@@n{7} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1110000}\fi
+ \edef\@@n{8} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1111111}\fi
+ \edef\@@n{9} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1111011}\fi
+ \edef\@@n{10}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1110111}\fi
+ \edef\@@n{11}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0011111}\fi
+ \edef\@@n{12}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001110}\fi
+ \edef\@@n{13}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0111101}\fi
+ \edef\@@n{14}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001111}\fi
+ \edef\@@n{15}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1000111}\fi
+ \edef\@@n{A} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1110111}\fi
+ \edef\@@n{B} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0011111}\fi
+ \edef\@@n{C} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001110}\fi
+ \edef\@@n{D} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0111101}\fi
+ \edef\@@n{E} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001111}\fi
+ \edef\@@n{F} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1000111}\fi
+ \edef\@@n{a} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1110111}\fi
+ \edef\@@n{b} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0011111}\fi
+ \edef\@@n{c} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001110}\fi
+ \edef\@@n{d} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0111101}\fi
+ \edef\@@n{e} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001111}\fi
+ \edef\@@n{f} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1000111}\fi
+ \edef\@@n{-} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0000001}\fi
+}}
+
+\tikzset{%
+ seven segment val/.style args={#1dot#2box#3}{%
+ shape=bare7seg,
+ /tikz/circuitikz/seven seg/value=#1,
+ /tikz/circuitikz/seven seg/dot=#2,
+ /tikz/circuitikz/seven seg/box=#3,
+ },
+ seven segment bits/.style args={#1dot#2box#3}{%
+ shape=bare7seg,
+ /tikz/circuitikz/seven seg/bits=#1,
+ /tikz/circuitikz/seven seg/dot=#2,
+ /tikz/circuitikz/seven seg/box=#3,
+ },
+}
+%%>>>
+
+%% Nodes definitions for 7-segment display%<<<
+\pgfdeclareshape{bare7seg}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{displays}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\dotstatus}{\edef\dotstatus{\pgf@circ@sevenseg@dotstate}}
+ \saveddimen{\dotspace}{% the dot is on the right, and occupy the same as the thickness
+ \ifpgf@circ@sevenseg@dot
+ \pgfmathsetlength{\pgf@x}{\ctikzvalof{seven seg/thickness}}
+ \else
+ \pgf@x=0pt
+ \fi
+ }
+ % The object extension is more or less (-width/2,-width) to (width/2,width)
+ % and adjusted for line thickness (both sides) and eventually the dot
+ \saveddimen{\width}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@x}{\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen}}
+ \saveddimen{\gap}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{seven seg/segment sep}}}
+ \saveddimen{\boxgap}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{seven seg/box sep}}}
+ \savedanchor{\southwest}{% both negative
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@x}{-0.5*\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen
+ -0.5*\ctikzvalof{seven seg/thickness}-\ctikzvalof{seven seg/box sep}}
+ \pgfmathsetlength{\pgf@y}{-\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen
+ -0.5*\ctikzvalof{seven seg/thickness}-\ctikzvalof{seven seg/box sep}}
+ }
+ \savedanchor{\northeast}{% both positive
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circ@sevenseg@dot
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{seven seg/thickness}}
+ \else
+ \pgf@circ@res@other=0pt
+ \fi
+ \pgfmathsetlength{\pgf@x}{0.5*\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen
+ +0.5*\ctikzvalof{seven seg/thickness}+\pgf@circ@res@other+\ctikzvalof{seven seg/box sep}}
+ \pgfmathsetlength{\pgf@y}{\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen
+ +0.5*\ctikzvalof{seven seg/thickness}+\ctikzvalof{seven seg/box sep}}
+ }
+ \savedanchor{\topright}{% anchor without the box sep and the thickness
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@x}{0.5*\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen}
+ \pgfmathsetlength{\pgf@y}{\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen}
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{north west}{\southwest\pgf@y=-\pgf@y}
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\southwest}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0pt}
+ \anchor{south}{\southwest\pgf@x=0pt}
+ \anchor{west}{\southwest\pgf@y=0pt}
+ \anchor{a}{\topright\pgf@x=0pt}
+ \anchor{b}{\topright\pgf@y=0.5\pgf@y}
+ \anchor{c}{\topright\pgf@y=-0.5\pgf@y}
+ \anchor{d}{\topright\pgf@y=-\pgf@y\pgf@x=0pt}
+ \anchor{e}{\topright\pgf@x=-\pgf@x\pgf@y=-0.5\pgf@y}
+ \anchor{f}{\topright\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{g}{\pgfpointorigin}
+ \anchor{dot}{\topright\pgf@y=-\pgf@y\advance\pgf@x by \dotspace}
+ \behindbackgroundpath{%
+ \southwest % I do not want the dot here, it will stick out
+ \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
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfpathrectanglecorners%
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@res@left+\dotspace}{\pgf@circ@res@up}}
+ \ifpgf@circ@sevenseg@box
+ \pgf@circ@draworfill
+ \else
+ \pgf@circ@maybefill
+ \fi
+ \endpgfscope
+ \edef\bits{\ctikzvalof{seven seg/bits}}
+ \pgfscope
+ \pfg@circ@sseg@drawbits{\bits}
+ \endpgfscope
+ \pgfscope
+ \ifpgf@circ@sevenseg@dot
+ \pgf@circ@sseg@drawdots
+ \fi
+ \endpgfscope
+ }
+}
+
+\def\pgf@circ@sseg@splitbits#1#2#3#4#5#6#7\relax{%split the seven bits
+ \edef\@@a{#1}\edef\@@b{#2}\edef\@@c{#3}\edef\@@d{#4}\edef\@@e{#5}\edef\@@f{#6}\edef\@@g{#7}%
+}
+\def\pgf@circ@sseg@drawone#1#2#3#4#5{% #1 on off the x1, y1, x2 , y2
+ \ifnum #1 > 0\relax
+ \pgfsetcolor{\ctikzvalof{seven seg/color on}}
+ \else
+ \pgfsetcolor{\ctikzvalof{seven seg/color off}}
+ \fi
+ \pgfpathmoveto{\pgfpoint{#2}{#3}}
+ \pgfpathlineto{\pgfpoint{#4}{#5}}
+ \pgfusepath{draw}
+}
+\def\pfg@circ@sseg@drawbits#1{% #1 must be 7 bits
+ \expandafter\pgf@circ@sseg@splitbits#1\relax% a bit of magic...
+ \pgfmathsetlength{\pgf@circ@res@other}{0.5*\ctikzvalof{seven seg/thickness}}
+ \pgfsetlinewidth{\ctikzvalof{seven seg/thickness}}
+ % \pgfsetroundcap
+ \pgfsetarrowsstart{Triangle Cap[]}
+ \pgfsetarrowsend{Triangle Cap[]}
+ % segments
+ \pgf@circ@sseg@drawone{\@@a}{-\width/2+\gap}{\width}{\width/2-\gap}{\width}
+ \pgf@circ@sseg@drawone{\@@b}{\width/2}{\width-\gap}{\width/2}{0pt+\gap}
+ \pgf@circ@sseg@drawone{\@@c}{\width/2}{0pt-\gap}{\width/2}{-\width+\gap}
+ \pgf@circ@sseg@drawone{\@@d}{\width/2-\gap}{-\width}{-\width/2+\gap}{-\width}
+ \pgf@circ@sseg@drawone{\@@e}{-\width/2}{-\width+\gap}{-\width/2}{0pt-\gap}
+ \pgf@circ@sseg@drawone{\@@f}{-\width/2}{0pt+\gap}{-\width/2}{\width-\gap}
+ \pgf@circ@sseg@drawone{\@@g}{-\width/2+\gap}{0pt}{\width/2-\gap}{0pt}
+}
+\def\pgf@circ@sseg@drawdots{% dots
+ \edef\what{empty}
+ \ifx\what\pgf@circ@sevenseg@dotstate
+ % do nothing
+ \else
+ \pgfmathsetlength{\pgf@circ@res@other}{0.5*\ctikzvalof{seven seg/thickness}}
+ \edef\what{off}
+ \ifx\what\pgf@circ@sevenseg@dotstate
+ % dot off
+ \pgfsetfillcolor{\ctikzvalof{seven seg/color off}}
+ \pgfsetcolor{\ctikzvalof{seven seg/color off}}
+ \else
+ % dot on
+ \pgfsetfillcolor{\ctikzvalof{seven seg/color on}}
+ \pgfsetcolor{\ctikzvalof{seven seg/color on}}
+ \fi
+ \pgfpathcircle{\pgfpoint{\width/2+2*\pgf@circ@res@other}{-\width}}{\pgf@circ@res@other}
+ \pgfusepath{draw,fill}
+ \fi
+}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% Flip-flops and muxdemuxes
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Settings for flip flops and muxdemxes%<<<1
+
+%% flip-flop specific keys (most others are the same as chips)
+
+\ctikzset{multipoles/flipflop/font/.initial=\pgf@circ@font@small}
+\ctikzset{multipoles/flipflop/fontud/.initial=\pgf@circ@font@tiny}
+\ctikzset{multipoles/flipflop/width/.initial=1.2}
+\ctikzset{multipoles/flipflop/pin spacing/.initial=0.6}
+\ctikzset{multipoles/flipflop/clock wedge size/.initial=0.2}
+
+%% muxdemuxes keys
+
+\ctikzset{multipoles/muxdemux/base len/.initial=0.4}
+\ctikzset{multipoles/muxdemux/Lh/.initial=8.0}
+\ctikzset{multipoles/muxdemux/Rh/.initial=6.0}
+\ctikzset{multipoles/muxdemux/w/.initial=3.0}
+\ctikzset{multipoles/muxdemux/inset w/.initial=0.0}
+\ctikzset{multipoles/muxdemux/inset Lh/.initial=0.0}
+\ctikzset{multipoles/muxdemux/inset Rh/.initial=0.0}
+\ctikzset{multipoles/muxdemux/NL/.initial=8}
+\ctikzset{multipoles/muxdemux/NR/.initial=1}
+\ctikzset{multipoles/muxdemux/NB/.initial=3}
+\ctikzset{multipoles/muxdemux/NT/.initial=0}
+\ctikzset{multipoles/muxdemux/square pins/.initial=0}%
+%>>>
+
+%% Node shapes definitions for flip flops%<<<
+
+% Flip flops are a specialized kind of dipchip.
+% they have a class by themselves
+
+%% flip flop definitions --- by default empty
+%% pin texts
+\ctikzset{multipoles/flipflop/t1/.initial={}}
+\ctikzset{multipoles/flipflop/t2/.initial={}}
+\ctikzset{multipoles/flipflop/t3/.initial={}}
+\ctikzset{multipoles/flipflop/t4/.initial={}}
+\ctikzset{multipoles/flipflop/t5/.initial={}}
+\ctikzset{multipoles/flipflop/t6/.initial={}}
+\ctikzset{multipoles/flipflop/tu/.initial={}}
+\ctikzset{multipoles/flipflop/td/.initial={}}
+% pin clock wedge flags
+\ctikzset{multipoles/flipflop/c1/.initial={0}}
+\ctikzset{multipoles/flipflop/c2/.initial={0}}
+\ctikzset{multipoles/flipflop/c3/.initial={0}}
+\ctikzset{multipoles/flipflop/c4/.initial={0}}
+\ctikzset{multipoles/flipflop/c5/.initial={0}}
+\ctikzset{multipoles/flipflop/c6/.initial={0}}
+\ctikzset{multipoles/flipflop/cu/.initial={0}}
+\ctikzset{multipoles/flipflop/cd/.initial={0}}
+% pin negation circle flags
+\ctikzset{multipoles/flipflop/n1/.initial={0}}
+\ctikzset{multipoles/flipflop/n2/.initial={0}}
+\ctikzset{multipoles/flipflop/n3/.initial={0}}
+\ctikzset{multipoles/flipflop/n4/.initial={0}}
+\ctikzset{multipoles/flipflop/n5/.initial={0}}
+\ctikzset{multipoles/flipflop/n6/.initial={0}}
+\ctikzset{multipoles/flipflop/nu/.initial={0}}
+\ctikzset{multipoles/flipflop/nd/.initial={0}}
+
+
+% Thanks to @marmot
+\tikzset{flipflop def/.code=\pgfqkeys{\circuitikzbasekey/multipoles/flipflop}{#1}}
+
+% default set of flip flops
+\tikzset{
+ % async
+ latch/.style={flipflop, flipflop def={t1=D, t6=Q, t3=CLK, t4=\ctikztextnot{Q}}},
+ flipflop SR/.style={flipflop, flipflop def={t1=S, t3=R, t6=Q, t4=\ctikztextnot{Q}}},
+ % sync
+ flipflop D/.style={flipflop, flipflop def={t1=D, t6=Q, c3=1, t4=\ctikztextnot{Q}}},
+ flipflop T/.style={flipflop, flipflop def={t1=T, t6=Q, c3=1, t4=\ctikztextnot{Q}}},
+ flipflop JK/.style={flipflop, flipflop def={t1=J, t3=K, c2=1, t6=Q, t4=\ctikztextnot{Q}}},
+ % additional features
+ add async SR/.style={flipflop def={tu={\ctikztextnot{SET}}, td={\ctikztextnot{RST}}}},
+ dot on notQ/.style={flipflop def={t4={Q}, n4=1}},
+}
+
+%
+% commodity macro to draw the clock wedges. They leave the size of the
+% wedge in \pgf@circ@res@temp so that a possible label can be displaced.
+%
+\def\pgf@circ@do@wedge@left{
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\ctikzvalof{multipoles/flipflop/c\the\pgf@circ@count@c}>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step+\wedge}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\wedge}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step-\wedge}}
+ \pgfusepath{stroke}
+ \pgf@circ@res@temp=\wedge
+ \fi
+}
+\def\pgf@circ@do@wedge@right{
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\ctikzvalof{multipoles/flipflop/c\the\pgf@circ@count@c}>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step+\wedge}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\wedge}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step-\wedge}}
+ \pgfusepath{stroke}
+ \pgf@circ@res@temp=-\wedge
+ \fi
+}
+\def\pgf@circ@do@wedge@up{
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\ctikzvalof{multipoles/flipflop/cu}>0
+ \pgfpathmoveto{\pgfpoint{-\wedge}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up-\wedge}}
+ \pgfpathlineto{\pgfpoint{\wedge}{\pgf@circ@res@up}}
+ \pgfusepath{stroke}
+ \pgf@circ@res@temp=-\wedge
+ \fi
+}
+\def\pgf@circ@do@wedge@down{
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\ctikzvalof{multipoles/flipflop/cd}>0
+ \pgfpathmoveto{\pgfpoint{-\wedge}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down+\wedge}}
+ \pgfpathlineto{\pgfpoint{\wedge}{\pgf@circ@res@down}}
+ \pgfusepath{stroke}
+ \pgf@circ@res@temp=\wedge
+ \fi
+}
+% generic flip-flop shape
+\pgfdeclareshape{flipflop}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{flipflops}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \savedmacro\numpins{\def\numpins{6}}
+ \savedanchor\centerpoint{%
+ \pgf@x=-.5\wd\pgfnodeparttextbox%
+ \pgf@y=-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+.5\dp\pgfnodeparttextbox%
+ }%
+ \savedanchor\origin{\pgfpoint{0pt}{0pt}}
+ \anchor{center}{\origin}
+ \anchor{text}{\centerpoint}% to adjust text
+ \saveddimen\height{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{((\numpins)
+ *\ctikzvalof{multipoles/flipflop/pin spacing})*\pgf@circ@scaled@Rlen/2}%
+ }%
+ \saveddimen{\chipspacing}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/flipflop/pin spacing}}}
+ \saveddimen{\width}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/flipflop/width}}}
+ \saveddimen{\extshift}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/external pins width}}}
+ % standard anchors
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{0.5*((\numpins)
+ *\ctikzvalof{multipoles/flipflop/pin spacing})*\pgf@circ@scaled@Rlen/2}%
+ \pgfmathsetlength\pgf@x{-0.5*\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/flipflop/width}}
+ }
+ \anchor{dot}{\northwest
+ \pgfmathsetlength\pgf@x{\pgf@x + 0.3*\chipspacing}
+ \pgfmathsetlength\pgf@y{\pgf@y - 0.3*\chipspacing}
+ }
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northwest\pgf@x=-\pgf@x}
+ \anchor{se}{\northwest\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{sw}{\northwest\pgf@y=-\pgf@y}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{south east}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{south west}{\northwest\pgf@y=-\pgf@y}
+ \anchor{n}{\northwest\pgf@x=0pt }
+ \anchor{e}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{w}{\northwest\pgf@y=0pt }
+ \anchor{north}{\northwest\pgf@x=0pt }
+ \anchor{east}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{south}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{west}{\northwest\pgf@y=0pt }
+ % upper and lower pin
+ \anchor{up}{\northwest\pgf@x=0pt\advance\pgf@y by\extshift }
+ \anchor{down}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y\advance\pgf@y by-\extshift}
+ \anchor{bup}{\northwest\pgf@x=0pt }
+ \anchor{bdown}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ % start drawing
+ \backgroundpath{%
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step = \ctikzvalof{multipoles/flipflop/pin spacing}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other = \ctikzvalof{multipoles/external pins width}\pgf@circ@scaled@Rlen
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfscope% (for the line width)
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{-\width/2}{-\height/2}}{\pgfpoint{\width/2}{\height/2}}%
+ \pgf@circ@draworfill
+ \pgfusepath{stroke}%
+ \endpgfscope
+ % Adding the pin number
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ % thanks to @marmot: https://tex.stackexchange.com/a/473571/38080
+ \ifpgf@circuit@chip@straightnumbers
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \pgfmathtruncatemacro{\quadrant}{mod(4+int(360+(\rot+45)/90),4)}
+ \else
+ \pgfmathsetmacro{\rot}{0}
+ \pgfmathsetmacro{\quadrant}{0}
+ \fi
+ \def\pgf@circ@strut{\vrule width 0pt height 1em depth 0.4em\relax}
+ % text
+ \def\mytext{\ctikzvalof{multipoles/flipflop/font}\space
+ \ctikzvalof{multipoles/flipflop/t\the\pgf@circ@count@c}%
+ \pgf@circ@strut\space}
+ % \typeout{TEXT\space\mytext}
+ \pgfmathloop%
+ \def\wedge{\ctikzvalof{multipoles/flipflop/clock wedge size}\pgf@circ@res@step}
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\pgf@circ@count@a>0
+ \ifcase\quadrant % rotation 0
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgf@circ@do@wedge@left
+ % \typeout{TEXT Left Q1\space\mytext}
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgf@circ@do@wedge@right
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgf@circ@do@wedge@left
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgf@circ@do@wedge@right
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgf@circ@do@wedge@left
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgf@circ@do@wedge@right
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgf@circ@do@wedge@left
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgf@circ@do@wedge@right
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \fi
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ % Now the up and down text
+ % up
+ \def\mytext{\ctikzvalof{multipoles/flipflop/fontud}\space\pgf@circ@strut\ctikzvalof{multipoles/flipflop/tu}\space}
+ \pgf@circ@do@wedge@up
+ \ifcase\quadrant % rotation 0
+ \pgftext[top,
+ at=\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ \pgftext[right,
+ at=\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ \pgftext[bottom,
+ at=\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ \pgftext[left,
+ at=\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \fi
+ % down
+ \def\mytext{\ctikzvalof{multipoles/flipflop/fontud}\space\pgf@circ@strut\ctikzvalof{multipoles/flipflop/td}\space}
+ \pgf@circ@do@wedge@down
+ \ifcase\quadrant % rotation 0
+ \pgftext[bottom,
+ at=\pgfpoint{0pt}{\pgf@circ@res@down+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ \pgftext[left,
+ at=\pgfpoint{0pt}{\pgf@circ@res@down+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ \pgftext[top,
+ at=\pgfpoint{0pt}{\pgf@circ@res@down+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ \pgftext[right,
+ at=\pgfpoint{0pt}{\pgf@circ@res@down+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \fi
+ % external pins
+ \ifdim\pgf@circ@res@other>0pt
+ \pgfscope
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % left side pins
+ \pgf@circ@count@c=\pgf@circ@count@a
+ %% we draw the pin only if it's defined either a text, a clock wedge or a not pin
+ %% Or'ing tests in core TeX is tough
+ \edef\@@or{0}
+ % Just expand the key the minimum needed
+ \edef\@@tmp{x\unexpandedvalueof{/tikz/circuitikz/multipoles/flipflop/t\the\pgf@circ@count@c}}\edef\@@x{x}
+ \ifx\@@tmp\@@x\else\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/c\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/n\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \ifnum\@@or>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfusepath{stroke}
+ \fi
+ % right side pins
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \edef\@@or{0}
+ \edef\@@tmp{x\unexpandedvalueof{/tikz/circuitikz/multipoles/flipflop/t\the\pgf@circ@count@c}}\edef\@@x{x}
+ \ifx\@@tmp\@@x\else\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/c\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/n\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ % \typeout{TEST\space\@@tmp\space\@@x}
+ \ifnum\@@or>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfusepath{stroke}
+ \fi
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop
+ % up side
+ \edef\@@or{0}
+ \edef\@@tmp{x\unexpandedvalueof{/tikz/circuitikz/multipoles/flipflop/tu}}\edef\@@x{x}
+ \ifx\@@tmp\@@x\else\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/cu}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/nu}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ % \typeout{TEST\space\@@tmp\space\@@x}
+ \ifnum\@@or>0
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@other}}
+ \pgfusepath{stroke}
+ \fi
+ % down side
+ \edef\@@or{0}
+ \edef\@@tmp{x\unexpandedvalueof{/tikz/circuitikz/multipoles/flipflop/td}}\edef\@@x{x}
+ \ifx\@@tmp\@@x\else\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/cd}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/nd}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ % \typeout{TEST\space\@@tmp\space\@@x}
+ \ifnum\@@or>0
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down-\pgf@circ@res@other}}
+ \pgfusepath{stroke}
+ \fi
+ \endpgfscope
+ \fi % external pin width >0
+ %
+ % draw "inverting" circles on outputs, they must be last
+ %
+ \pgfscope
+ \ifpgf@circuit@ieeelogicport
+ \def\@@notcirc{notcirc}
+ \else
+ \ifpgf@circ@european@port@circle@ieee
+ \def\@@notcirc{notcirc}
+ \else
+ \def\@@notcirc{ocirc}
+ \fi
+ \fi
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % left side pins
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/n\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfnode{\@@notcirc}{east}{}{\thisshape-N\the\pgf@circ@count@c}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ % right side pins
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/n\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfnode{\@@notcirc}{west}{}{\thisshape-N\the\pgf@circ@count@c}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop
+ % up side
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/nu}}
+ \ifnum\@@tmp>0\pgfscope
+ \pgftransformshift{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfnode{\@@notcirc}{south}{}{\thisshape-Nu}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ % down side
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/nd}}
+ \ifnum\@@tmp>0\pgfscope
+ \pgftransformshift{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfnode{\@@notcirc}{north}{}{\thisshape-Nd}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ \endpgfscope
+ }%
+ % \pgf@sh@s@<name of the shape here> contains all the code for the shape
+ % and is executed just before a node is drawn.
+ \pgfutil@g@addto@macro\pgf@sh@s@flipflop{%
+ % Start with the maximum pin number and go backwards.
+ \pgf@circ@count@a=\numpins\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\xdef\csname pgf@anchor@flipflop@pin\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@dippinanchor{\the\pgf@circ@count@a}{1}%
+ }
+ \expandafter\xdef\csname pgf@anchor@flipflop@bpin\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@dippinanchor{\the\pgf@circ@count@a}{0}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+}
+% %>>>
+
+%% Node shapes for mux-demuxes%<<<
+
+%
+% MUX-DEMUXES
+%
+% Thanks to @marmot
+\tikzset{muxdemux def/.code=\pgfqkeys{\circuitikzbasekey/multipoles/muxdemux}{#1}}
+\tikzset{demux/.style={muxdemux, muxdemux def={Lh=4, Rh=8, NL=1, NB=3, NR=8}}}
+\tikzset{one bit adder/.style={muxdemux,
+ muxdemux def={Lh=4, NL=2, Rh=2, NR=1, NB=1, w=1.5,
+ inset w=0.5, inset Lh=2, inset Rh=1.5}}}
+\tikzset{ALU/.style={muxdemux,
+ muxdemux def={Lh=5, NL=2, Rh=2, NR=1, NB=2, NT=1, w=2,
+ inset w=1, inset Lh=2, inset Rh=0, square pins=1}}}
+
+%generic mux-demux shape
+
+% helper macros to set the anchors inside a loop (to expand the current count)
+% left
+\pgfutil@protected\def\pgf@circ@make@muxdemux@L@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@lpin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@Lpins@list{#1}
+ {\pgf@circ@muxdemux@L@anchor{#1}{1}}
+ {\pgf@circ@muxdemux@L@anchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@blpin #1\endcsname
+ {\pgf@circ@muxdemux@L@anchor{#1}{0}}%
+ }
+% right
+\pgfutil@protected\def\pgf@circ@make@muxdemux@R@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@rpin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@Rpins@list{#1}
+ {\pgf@circ@muxdemux@R@anchor{#1}{1}}
+ {\pgf@circ@muxdemux@R@anchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@brpin #1\endcsname
+ {\pgf@circ@muxdemux@R@anchor{#1}{0}}%
+ }
+% bottom
+\pgfutil@protected\def\pgf@circ@make@muxdemux@B@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@bpin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@Bpins@list{#1}
+ {\pgf@circ@muxdemux@B@anchor{#1}{1}}
+ {\pgf@circ@muxdemux@B@anchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@bbpin #1\endcsname
+ {\pgf@circ@muxdemux@B@anchor{#1}{0}}%
+ }
+% top
+\pgfutil@protected\def\pgf@circ@make@muxdemux@T@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@tpin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@Tpins@list{#1}
+ {\pgf@circ@muxdemux@T@anchor{#1}{1}}
+ {\pgf@circ@muxdemux@T@anchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@btpin #1\endcsname
+ {\pgf@circ@muxdemux@T@anchor{#1}{0}}%
+ }
+
+
+\pgfdeclareshape{muxdemux}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{muxdemuxes}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ % pins on the four sides
+ \savedmacro\NL{\edef\NL{\ctikzvalof{multipoles/muxdemux/NL}}}
+ \savedmacro\NR{\edef\NR{\ctikzvalof{multipoles/muxdemux/NR}}}
+ \savedmacro\NT{\edef\NT{\ctikzvalof{multipoles/muxdemux/NT}}}
+ \savedmacro\NB{\edef\NB{\ctikzvalof{multipoles/muxdemux/NB}}}
+ \savedmacro\squarepins{\edef\squarepins{\ctikzvalof{multipoles/muxdemux/square pins}}}
+ % pin lists
+ \savedmacro\pgf@circ@Lpins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only left pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@Lpins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedmacro\pgf@circ@Rpins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only right pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@Rpins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedmacro\pgf@circ@Tpins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only top pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@Tpins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedmacro\pgf@circ@Bpins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only bottom pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@Bpins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ % topleft and topright sizes
+ \savedanchor{\topleft}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/Lh}*\pgf@circ@scaled@Rlen/2}
+ \pgfmathsetlength\pgf@x{-\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/w}*\pgf@circ@scaled@Rlen/2}
+ }
+ \savedanchor{\topright}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/Rh}*\pgf@circ@scaled@Rlen/2}
+ \pgfmathsetlength\pgf@x{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/w}*\pgf@circ@scaled@Rlen/2}
+ }
+ \savedanchor{\insetnortheast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/inset Lh}*\pgf@circ@scaled@Rlen/2}
+ \pgfmathsetlength\pgf@x{-\ctikzvalof{multipoles/muxdemux/base len}*
+ (\ctikzvalof{multipoles/muxdemux/w}-2*\ctikzvalof{multipoles/muxdemux/inset w})*\pgf@circ@scaled@Rlen/2}
+ }
+ \saveddimen{\insethright}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/inset Rh}*\pgf@circ@scaled@Rlen/2}}
+ \saveddimen{\extshift}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/external pins width}}}
+ \savedanchor{\northwest}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{\ctikzvalof{multipoles/muxdemux/base len}*max(\ctikzvalof{multipoles/muxdemux/Rh},\ctikzvalof{multipoles/muxdemux/Lh})*\pgf@circ@scaled@Rlen/2}
+ \pgfmathsetlength\pgf@x{-\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/w}*\pgf@circ@scaled@Rlen/2}
+ }
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northwest\pgf@x=-\pgf@x}
+ \anchor{se}{\northwest\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{sw}{\northwest\pgf@y=-\pgf@y}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{south east}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{south west}{\northwest\pgf@y=-\pgf@y}
+ \anchor{n}{\northwest\pgf@x=0pt }
+ \anchor{e}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{w}{\northwest\pgf@y=0pt }
+ \anchor{north}{\northwest\pgf@x=0pt }
+ \anchor{east}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{south}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{west}{\northwest\pgf@y=0pt }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{top right}{\topright}
+ \anchor{bottom right}{\topright\pgf@y=-\pgf@y}
+ \anchor{right}{\topright\pgf@y=0pt\relax}
+ \anchor{top left}{\topleft}
+ \anchor{bottom left}{\topleft\pgf@y=-\pgf@y}
+ \anchor{left}{\topleft\pgf@y=0pt\relax}
+ \anchor{top}{\topright\pgf@ya=\pgf@y \topleft \advance\pgf@y by \pgf@ya
+ \divide\pgf@y by 2 \pgf@x=0pt\relax}
+ \anchor{bottom}{\topright\pgf@ya=\pgf@y \topleft \advance\pgf@y by \pgf@ya
+ \divide\pgf@y by 2 \pgf@y=-\pgf@y \pgf@x=0pt\relax}
+ \anchor{inset top right}{\pgf@ya=\insethright\insetnortheast\advance\pgf@y by -0.5\pgf@ya}
+ \anchor{inset bottom right}{\pgf@ya=\insethright\insetnortheast\advance\pgf@y by -0.5\pgf@ya\pgf@y=-\pgf@y}
+ \anchor{inset right}{\insetnortheast\pgf@y=0pt\relax}
+ \anchor{inset top left}{\insetnortheast\pgf@ya=\pgf@y\topleft\pgf@y=\pgf@ya}
+ \anchor{inset bottom left}{\insetnortheast\pgf@ya=\pgf@y\topleft\pgf@y=-\pgf@ya}
+ \anchor{inset left}{\topleft\pgf@y=0pt\relax}
+ \anchor{inset bottom}{\topleft\pgf@xa=\pgf@x\pgf@ya=\insethright
+ \insetnortheast\pgf@xb=\pgf@x\pgf@yb=\pgf@x
+ \pgfpoint{(\pgf@xa+\pgf@xb)/2}{-\pgf@ya+\pgf@yb/2}}
+ \anchor{inset top}{\topleft\pgf@xa=\pgf@x\pgf@ya=\insethright
+ \insetnortheast\pgf@xb=\pgf@x\pgf@yb=\pgf@x
+ \pgfpoint{(\pgf@xa+\pgf@xb)/2}{\pgf@ya-\pgf@yb/2}}
+ \anchor{inset center}{\topleft\pgf@xa=\pgf@x\insetnortheast
+ \advance\pgf@x by \pgf@xa \divide\pgf@x by 2 \pgf@y=0pt\relax}
+ \anchor{narrow center}{\insetnortheast\pgf@xa=\pgf@x\topright
+ \advance\pgf@x by \pgf@xa \divide\pgf@x by 2\pgf@y=0pt\relax}
+ \anchor{center up}{\topright\pgf@ya=\pgf@y \topleft \advance\pgf@y by \pgf@ya
+ \divide\pgf@y by 2
+ \pgf@yb = \insethright \advance\pgf@y by \pgf@yb
+ \divide\pgf@y by 2 \pgf@x=0pt\relax}
+ \anchor{center down}{\topright\pgf@ya=\pgf@y \topleft \advance\pgf@y by \pgf@ya
+ \divide\pgf@y by 2
+ \pgf@yb = \insethright \advance\pgf@y by \pgf@yb
+ \divide\pgf@y by 2 \pgf@y=-\pgf@y \pgf@x=0pt\relax}
+ \anchor{text}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\ctikzvalof{multipoles/muxdemux/base len}*
+ \ctikzvalof{multipoles/muxdemux/inset w}*\pgf@circ@scaled@Rlen/2}
+ \advance\pgf@x by -.5\wd\pgfnodeparttextbox%
+ \pgf@y=-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+.5\dp\pgfnodeparttextbox%
+ }%
+ \backgroundpath{%
+ \topleft
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@down = -\pgf@y
+ \pgf@circ@res@left = \pgf@x
+ \topright
+ \pgf@circ@res@other = \pgf@y
+ \pgf@circ@res@right = \pgf@x
+ \insetnortheast
+ \pgf@circ@res@step = \pgf@x
+ \pgf@circ@res@temp = \pgf@y
+ %
+ % external block
+ %
+ \pgfscope% (for the line width)
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ % inset, starting down
+ \ifdim\pgf@circ@res@temp>0pt % inset
+ % \typeout{INSETw\space\the\pgf@circ@res@right\space x\space\the\pgf@circ@res@step\space y\space\the\pgf@circ@res@temp}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\insethright}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\insethright}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}
+ \fi
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ % now we have to draw the pins, if needed
+ \ifdim\extshift>0pt\ifpgfcirc@draw@input@leads\pgfscope % let's avoid too much indent
+ % Ok, we have to draw the leads (a.k.a. pins)
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ % We mimic the anchors here --- probably there is a better way
+ % left pins
+ \ifnum\NL>0\relax % not indented, closed on \repeatpgfmathloop
+ \pgf@circ@count@a=\NL\relax
+ \pgf@circ@count@b=\NL \divide\pgf@circ@count@b by 2 % see https://tex.stackexchange.com/questions/146523/why-does-numexpr-integer-division-round-rather-than-truncate
+ \topleft\pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y
+ \insetnortheast\pgf@circ@res@right=\pgf@x \pgf@circ@res@down=\pgf@y
+ \ifdim\pgf@circ@res@down>0pt % check if we have an inset
+ % we have to check oddity
+ \ifodd\NL
+ \ifnum\NL=1
+ % only centerpin, step should not be used, but anyway...
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@circ@res@up-\pgf@circ@res@down)/(\NL)}
+ \else
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@circ@res@up-\pgf@circ@res@down)/(\NL-1)}
+ \fi
+ \else
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@circ@res@up-\pgf@circ@res@down)/\NL}
+ \fi
+ \else % no inset
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@up/\NL}
+ \fi
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ %%%%% check if we want to draw this pin
+ \pgf@circ@if@num@in@list\pgf@circ@Lpins@list\pgf@circ@count@a{%
+ \ifdim\pgf@circ@res@down>0pt % check if we have an inset
+ \ifnum\pgf@circ@count@a>\pgf@circ@count@b\relax
+ % for lower pins we have to shift them down
+ % \typeout{DEBUGTEST1\space #1\space entering\space \NL}
+ \ifodd\NL
+ % odd number of pins
+ \ifnum\pgf@circ@count@a=\numexpr\the\pgf@circ@count@b+1\relax
+ % centerpin!
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \ifnum\squarepins>0
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{0pt}}
+ \else
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\extshift}{0pt}}
+ \fi
+ \else
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a+1)*\pgf@circ@res@step-2*\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a+1)*\pgf@circ@res@step-2*\pgf@circ@res@down}}
+ \fi
+ \else
+ % even numer of pins: just go down
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step-2*\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step-2*\pgf@circ@res@down}}
+ \fi
+ \else
+ % nothing need for #1<=NL/2
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \fi
+ \else
+ % no inset
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \fi
+ %%%%%
+ }{}% close the pin list check
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop\fi%
+ % right pins
+ \ifnum\NR>0\pgf@circ@count@a=\NR\relax
+ \pgfmathloop%
+ \topright\pgf@circ@res@right=\pgf@x \pgf@circ@res@up=\pgf@y
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@up/\NR}
+ \ifnum\pgf@circ@count@a>0
+ %%%%% check if we want to draw this pin
+ \pgf@circ@if@num@in@list\pgf@circ@Rpins@list\pgf@circ@count@a{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop\fi%
+ % bottom pins
+ \ifnum\NB>0\pgf@circ@count@a=\NB\relax %%%
+ \pgfmathloop%
+ \topleft\pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y
+ \topright\pgf@circ@res@right=\pgf@x \pgf@circ@res@down=\pgf@y
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@right/\NB}
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@circ@res@down-\pgf@circ@res@up)/(\pgf@circ@res@right-\pgf@circ@res@left)*\pgf@circ@res@step}
+ \ifnum\pgf@circ@count@a>0
+ %%%%% check if we want to draw this pin
+ \pgf@circ@if@num@in@list\pgf@circ@Bpins@list\pgf@circ@count@a{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {-\pgf@circ@res@down+(\NB-\pgf@circ@count@a+0.5)*\pgf@circ@res@other}}
+ \ifnum\squarepins>0
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {-max(\pgf@circ@res@down, \pgf@circ@res@up)-\extshift}}
+ \else
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {-\pgf@circ@res@down+(\NB-\pgf@circ@count@a+0.5)*\pgf@circ@res@other-\extshift}}
+ \fi
+ }{}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop\fi%
+ % top pins
+ \ifnum\NT>0\pgf@circ@count@a=\NT\relax
+ \pgfmathloop%
+ \topleft\pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y
+ \topright\pgf@circ@res@right=\pgf@x \pgf@circ@res@down=\pgf@y
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@right/\NT}
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@circ@res@down-\pgf@circ@res@up)/(\pgf@circ@res@right-\pgf@circ@res@left)*\pgf@circ@res@step}
+ \ifnum\pgf@circ@count@a>0
+ %%%%% check if we want to draw this pin
+ \pgf@circ@if@num@in@list\pgf@circ@Tpins@list\pgf@circ@count@a{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {\pgf@circ@res@down-(\NT-\pgf@circ@count@a+0.5)*\pgf@circ@res@other}}
+ \ifnum\squarepins>0
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {max(\pgf@circ@res@down, \pgf@circ@res@up)+\extshift}}
+ \else
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {\pgf@circ@res@down-(\NT-\pgf@circ@count@a+0.5)*\pgf@circ@res@other+\extshift}}
+ \fi
+ }{}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop\fi%
+ % end drawing pins; stroke them
+ \pgfusepath{stroke}
+ \endpgfscope\fi\fi
+ }
+ % let's start adding anchors
+ \pgfutil@g@addto@macro\pgf@sh@s@muxdemux{%
+ % left side anchors
+ \pgf@circ@count@a=\NL\relax
+ % \typeout{STARTGENERATINGLEFT\space\the\pgf@circ@count@a\space FOR\space\thisshape\space\NL}
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % \typeout{GENERATINGLEFT\space\the\pgf@circ@count@a\space FOR\space\thisshape\space\NL}
+ % we will create two anchors per pin: the "normal one" like `lpin 1` for the
+ % external leads, and the "border one" like `blpin 1` for internal ones.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\pgf@circ@make@muxdemux@L@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ % right anchors
+ \pgf@circ@count@a=\NR\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `rpin 1` for the
+ % external leads, and the "border one" like `brpin 1` for internal ones.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\pgf@circ@make@muxdemux@R@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ % bottom anchors
+ \pgf@circ@count@a=\NB\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `bpin 1` for the
+ % external leads, and the "border one" like `bbpin 1` for internal ones.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\pgf@circ@make@muxdemux@B@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ % top anchors
+ \pgf@circ@count@a=\NT\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `tpin 1` for the
+ % external leads, and the "border one" like `btpin 1` for internal ones.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\pgf@circ@make@muxdemux@T@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+}
+
+%% left anchors for muxdemux
+
+\def\pgf@circ@muxdemux@L@anchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \topleft
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \insetnortheast
+ \pgf@xb=\pgf@x
+ \pgf@yb=\pgf@y
+ \ifnum#1>\NL
+ \PackageError{circuitikz}{%
+ You requested left pin #1 for mux/demux shape \thisshape\space \MessageBreak
+ which has been defined with \NL\space left pins%
+ }{Please check the manual about mux/demux shapes; if you press return I'll try to continue}
+ \fi
+ \pgf@circ@count@a=\NL \divide\pgf@circ@count@a by 2 % see https://tex.stackexchange.com/questions/146523/why-does-numexpr-integer-division-round-rather-than-truncate
+ % \typeout{LEFT \the\pgf@xa \space \the\pgf@ya \space \NL}
+ \ifnum\NL>1
+ \ifdim\pgf@yb>0pt % check if we have an inset
+ % we have to check oddity
+ \ifodd\NL
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@ya-\pgf@yb)/(\NL-1)}
+ \else
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@ya-\pgf@yb)/\NL}
+ \fi
+ \else % no inset
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@ya/\NL}
+ \fi
+ \ifdim\pgf@yb>0pt % check if we have an inset
+ \ifnum#1>\pgf@circ@count@a\relax
+ % for lower pins we have to shift them down
+ % \typeout{DEBUGTEST1\space #1\space entering\space \NL}
+ \ifodd\NL
+ % odd number of pins
+ \ifnum#1=\numexpr\the\pgf@circ@count@a+1\relax
+ % centerpin!
+ \ifnum#2=0\relax
+ \pgfpoint{\pgf@xb}{0pt}
+ \else
+ \ifnum\squarepins>0
+ \pgfpoint{\pgf@xa-#2*\extshift}{0pt}
+ \else
+ \pgfpoint{\pgf@xb-#2*\extshift}{0pt}
+ \fi
+ \fi
+ \else
+ \pgfpoint{\pgf@xa-#2*\extshift}{\pgf@ya+(0.5-#1+1)*\pgf@circ@res@step-2*\pgf@yb}
+ \fi
+ \else
+ % even numer of pins: just go down
+ \pgfpoint{\pgf@xa-#2*\extshift}{\pgf@ya+(0.5-#1)*\pgf@circ@res@step-2*\pgf@yb}
+ \fi
+ \else
+ % nothing need for #1<=NL/2
+ \pgfpoint{\pgf@xa-#2*\extshift}{\pgf@ya+(0.5-#1)*\pgf@circ@res@step}
+ \fi
+ \else
+ % no inset
+ \pgfpoint{\pgf@xa-#2*\extshift}{\pgf@ya+(0.5-#1)*\pgf@circ@res@step}
+ \fi
+ \else
+ \pgfpoint{\pgf@xa-#2*\extshift}{0pt}
+ \fi
+}
+
+% right anchors
+\def\pgf@circ@muxdemux@R@anchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \topright
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \ifnum#1>\NR
+ \PackageError{circuitikz}{%
+ You requested right pin #1 for mux/demux shape \thisshape\space \MessageBreak
+ which has been defined with \NR\space right pins%
+ }{Please check the manual about mux/demux shapes; if you press return I'll try to continue}
+ \fi
+ \ifnum\NR>1
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@ya/\NR}
+ \pgfpoint{\pgf@xa+#2*\extshift}{\pgf@ya+(0.5-#1)*\pgf@circ@res@step}
+ \else
+ \pgfpoint{\pgf@xa+#2*\extshift}{0pt}
+ \fi
+}
+
+% bottom anchors
+\def\pgf@circ@muxdemux@B@anchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \topleft
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \topright
+ \pgf@xb=\pgf@x
+ \pgf@yb=\pgf@y
+ \ifnum#1>\NB
+ \PackageError{circuitikz}{%
+ You requested bottom pin #1 for mux/demux shape \thisshape\space \MessageBreak
+ which has been defined with \NB\space bottom pins%
+ }{Please check the manual about mux/demux shapes; if you press return I'll try to continue}
+ \fi
+ \ifnum\NB>0
+ % \typeout{DEBUGTESTtopleft\space\the\pgf@ya \space topright\space\the\pgf@yb \space\NB}
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@xb/\NB}
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@yb-\pgf@ya)/(\pgf@xb-\pgf@xa)*\pgf@circ@res@step}
+ \pgfmathsetlength\pgf@x{\pgf@xa+(#1-0.5)*\pgf@circ@res@step}
+ \ifnum#2=0\relax
+ \pgfmathsetlength\pgf@y{-\pgf@yb+(\NB-#1+0.5)*\pgf@circ@res@other}
+ \else
+ \ifnum\squarepins>0\relax
+ \pgfmathsetlength\pgf@y{-max(\pgf@ya,\pgf@yb)-\extshift}
+ \else
+ \pgfmathsetlength\pgf@y{-\pgf@yb+(\NB-#1+0.5)*\pgf@circ@res@other-\extshift}
+ \fi
+ \fi
+ \else
+ % should not happen, give the same as pin 1 anyway
+ \ifnum#2=0\relax
+ \pgfpoint{0pt}{-\pgf@yb+(\pgf@yb-\pgf@ya)/2}
+ \else
+ \pgfpoint{0pt}{-max(\pgf@ya,\pgf@yb)-\extshift}
+ \fi
+ \fi
+}
+
+% top anchors
+\def\pgf@circ@muxdemux@T@anchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \topleft
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \topright
+ \pgf@xb=\pgf@x
+ \pgf@yb=\pgf@y
+ \ifnum#1>\NT
+ \PackageError{circuitikz}{%
+ You requested top pin #1 for mux/demux shape \thisshape\space \MessageBreak
+ which has been defined with \NT\space top pins%
+ }{Please check the manual about mux/demux shapes; if you press return I'll try to continue}
+ \fi
+ \ifnum\NT>0
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@xb/\NT}
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@yb-\pgf@ya)/(\pgf@xb-\pgf@xa)*\pgf@circ@res@step}
+ \pgfmathsetlength\pgf@x{\pgf@xa+(#1-0.5)*\pgf@circ@res@step}
+ \ifnum#2=0\relax
+ \pgfmathsetlength\pgf@y{\pgf@yb-(\NT-#1+0.5)*\pgf@circ@res@other}
+ \else
+ \ifnum\squarepins>0
+ \pgfmathsetlength\pgf@y{max(\pgf@ya,\pgf@yb)+\extshift}
+ \else
+ \pgfmathsetlength\pgf@y{\pgf@yb-(\NT-#1+0.5)*\pgf@circ@res@other+\extshift}
+ \fi
+ \fi
+ \else
+ % should not happen, give the same as pin 1 anyway
+ \ifnum#2=0\relax
+ \pgfpoint{0pt}{\pgf@yb-(\pgf@yb-\pgf@ya)/2}
+ \else
+ \pgfpoint{0pt}{max(\pgf@ya,\pgf@yb)+\extshift}
+ \fi
+ \fi
+}
+% %>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircmultipoles
+
+%%%%%%%%%%% Springe nach tex/pgfcirclabel
+%%%---------- open: tex/pgfcirclabel.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Bipole label positioning
+
+%% bipole labels and annotation extra style
+
+\ctikzset{bipole label style/.style={}}
+\tikzset{bipole label style/.code={
+ \ctikzset{bipole label style/.style={#1}}
+}}
+\tikzset{bipole label append style/.code={
+ \ctikzset{bipole label style/.append style={#1}}
+}}
+\ctikzset{bipole annotation style/.style={}}
+\tikzset{bipole annotation style/.code={
+ \ctikzset{bipole annotation style/.style={#1}}
+}}
+\tikzset{bipole annotation append style/.code={
+ \ctikzset{bipole annotation style/.append style={#1}}
+}}
+
+\ctikzset{label distance/.initial={0pt}}
+\ctikzset{annotation distance/.initial={0pt}}
+
+%% 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 }
+}
+
+\ctikzset{annotation/.style = { a={#1} } }
+\ctikzset{a/.code = {
+ \pgfkeys{/tikz/circuitikz/bipole/annotation/name={#1}}
+ \ctikzsetvalof{bipole/annotation/unit}{}
+ \ifpgf@circ@siunitx
+ \pgf@circ@handleSI{#1}
+ \ifpgf@circ@siunitx@res
+ \edef\pgf@temp{\pgf@circ@handleSI@val}
+ \pgfkeyslet{/tikz/circuitikz/bipole/annotation/name}{\pgf@temp}
+ \edef\pgf@temp{\pgf@circ@handleSI@unit}
+ \pgfkeyslet{/tikz/circuitikz/bipole/annotation/unit}{\pgf@temp}
+ \else
+ \fi
+ \else
+ \fi
+}}
+
+\ctikzset{annotation above/.code = {
+ a={#1},
+ \circuitikzbasekey/bipole/annotation/position=90 }
+}
+
+\ctikzset{a^/.style = {
+ a={#1},
+ \circuitikzbasekey/bipole/annotation/position=90 }
+}
+
+\ctikzset{annotation below/.code = {
+ a={#1},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+\ctikzset{a_/.style = {
+ a={#1},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+
+% This is to adjust spacing for the labels so that they are not cramped on components
+\def\pgf@circ@ls{.75ex} % labelspace to have just one point to change
+
+\def\pgf@circ@drawlabels#1{
+ \pgfextra{
+ % This function will be called with argument #1 equal
+ % to "label" or "annotation" form pgfcircpath.tex.
+ % pgf@circ@direction is the direction of the path,
+ % its value is set in pgfcircpath.tex
+ \pgfmathsubtract{\pgf@circ@direction}{90}
+ \pgfmathround{\pgfmathresult} % avoid precision loss errors
+ \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+
+ \edef\pgf@circ@temp{\ctikzvalof{bipole/#1/position}}
+ \ifnum \pgf@circ@temp < 0
+ \pgfmathadd{\pgf@circ@labanc}{180}
+ \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+ % \typeout{INI: TEMP\space\pgf@circ@temp\space LABANC\space\pgf@circ@labanc}
+ %
+ % normalize the angle values
+ %
+ \pgfmathmod{\pgf@circ@labanc}{360}
+ \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ %
+ \ifpgf@circuit@bipole@inverted
+ \pgfmathadd{\pgf@circ@temp}{180} %If shape is inverted, use opposite anchor
+ \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+ %
+ \ifnum \ctikzvalof{mirror value} = -1
+ \pgfmathadd{\pgf@circ@temp}{180} %If shape is mirrored, use opposite anchor
+ \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+ % \typeout{FIN: TEMP\space\pgf@circ@temp\space LABANC\space\pgf@circ@labanc}
+ }
+ %Firstly, place a coordinate directly at the edge of the shape
+ (\ctikzvalof{bipole/name}.\pgf@circ@temp) coordinate (pgfcirc@labelcoor)
+ %now decide, which labels should be drawn
+ \pgfextra{
+ \edef\pgf@temp{\ctikzvalof{label/align}}
+ \def\pgf@circ@temp{straight}
+ }
+ \ifx\pgf@temp\pgf@circ@temp %straight
+ \pgf@circ@drawreglabels{#1}
+ \else
+ \pgfextra{\def\pgf@circ@temp{rotate}}
+ \ifx\pgf@temp\pgf@circ@temp %rotate
+ \pgf@circ@drawrotlabels{#1}
+ \else% smart
+ \pgf@circ@drawsmartlabels{#1}
+ \fi
+ \fi
+}
+
+
+\def\pgf@circ@drawsmartlabels#1{
+ \pgfextra{
+ \pgfmathmod{\pgf@circ@direction}{90}
+ \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ }
+ \ifnum \pgfcircmathresult > 20
+ \ifnum \pgfcircmathresult < 70
+ \pgf@circ@drawrotlabels{#1}
+ \else
+ \pgf@circ@drawreglabels{#1}
+ \fi
+ \else
+ \pgf@circ@drawreglabels{#1}
+ \fi
+ }
+
+
+\def\pgf@circ@drawrotlabels#1{
+ \pgfextra{
+ % scale the distances in function of zoom, so that they are not
+ % dependent on it but on font size. Thanks to @marmot
+ % https://tex.stackexchange.com/a/476018/38080
+ % the coefficient is adjusted so that the distance is more or less
+ % the same for rotated labels and straight ones (although it will
+ % depend on the font, so it's not exact).
+ \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}%
+ \pgfmathsetmacro{\myscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed
+ % \typeout{ROT\tmpa\space\tmpb\space\tmpc\space\tmpd\space\myscale}
+ \pgfmathsetlength\pgf@circ@res@temp{1.5*\pgf@circ@ls/\myscale+\ctikzvalof{#1 distance}/\myscale}
+ \ifnum \ctikzvalof{bipole/#1/position}>0
+ %we need some more space for placement below, due to mid-anchor
+ \else % we do not have <= in \ifnum...
+ \pgf@circ@res@temp=1.5\pgf@circ@res@temp
+ \fi
+ %Calculate rotation of the label from direction and strip decimals
+ \pgfmathsetmacro{\pgfcirclabrot}{round(\pgf@circ@direction)}
+ \edef\pgfcirclabrot{\expandafter\pgf@circ@stripdecimals\pgfcirclabrot\pgf@nil}
+ % rotate the label at second or third quadrant:
+ \ifnum \pgfcirclabrot > 90 \ifnum \pgfcirclabrot < 270
+ \pgfmathsubtract{\pgf@circ@direction}{180}
+ \edef\pgfcirclabrot{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ %invert the space relationships due to rotated strings
+ \ifnum \ctikzvalof{bipole/#1/position}>0
+ \pgf@circ@res@temp=1.5\pgf@circ@res@temp
+ \fi
+ \fi\fi
+ \pgfmathparse{\ctikzvalof{bipole/#1/position}>0?\pgf@circ@direction+90:\pgf@circ@direction-90}%
+ \edef\pgf@circ@labposangle{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}%
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix#1-direction\endcsname{\pgfcirclabrot}%
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-#1-anchor\endcsname{mid}%
+ }
+ % reset cm is not working correctly here
+ % relative ++ movement disrupt to[] +()
+ ($(pgfcirc@labelcoor)+(\pgf@circ@labposangle:\the\pgf@circ@res@temp)$) coordinate(pgfcirc@labelcoor)
+ node[anchor=mid, rotate=\pgfcirclabrot, \circuitikzbasekey/bipole #1 style]
+ (\ctikzvalof{bipole/name}#1){\pgf@circ@finallabels{#1}}
+}
+
+\def\pgf@circ@drawreglabels#1{
+ %Now calculate all shape positions
+ %Use mid-anchor at x-axis and base-anchor at y-axis, respectively.
+ %All points between will be addressed by angled-anchors:
+ \pgfextra{
+ % scale ex-distance to make it independent on scale
+ % thanks @marmot see https://tex.stackexchange.com/a/476018/38080
+ \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}%
+ \pgfmathsetmacro{\myscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed
+ % \typeout{ROT\tmpa\space\tmpb\space\tmpc\space\tmpd\space\myscale}
+ \pgfmathsetlength\pgf@circ@res@temp{\pgf@circ@ls/\myscale+\ctikzvalof{#1 distance}/\myscale}
+ \pgfmathadd{\pgf@circ@labanc}{90}
+ \pgfmathround{\pgfmathresult}
+ \def\pgf@circ@labanctext{\pgf@circ@labanc}
+ \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \pgfmathparse{mod(\pgf@circ@temp,180)>135?mod(\pgf@circ@temp,180)-180:mod(\pgf@circ@temp,180)}
+ \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ }
+ %Values around 90 are at both y-axis
+ \ifnum \pgfcircmathresult > 84 \ifnum \pgfcircmathresult< 96
+ \pgfextra{\edef\pgf@circ@labpos{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}}
+ \ifnum \pgf@circ@labpos > 180
+ \ifnum \ctikzvalof{bipole/#1/position} > 0
+ \pgfextra{\def\pgf@circ@labanctext{mid west}}
+ \else
+ \pgfextra{\def\pgf@circ@labanctext{mid east}}
+ \fi
+ \else
+ \ifnum \ctikzvalof{bipole/#1/position} > 0
+ \pgfextra{\def\pgf@circ@labanctext{mid east}}
+ \else
+ \pgfextra{\def\pgf@circ@labanctext{mid west}}
+ \fi
+ \fi
+ \fi\fi
+ %Values between -5 and 5 are at pos /neg x-axis
+ \ifnum \pgfcircmathresult <6 \ifnum \pgfcircmathresult > -6
+ \ifnum \ctikzvalof{bipole/#1/position} < 0
+ \ifnum \pgf@circ@labanc > 90
+ % using base coordinate instead of south to naturally align
+ % symbols with descendants; but this invalidate the effect of
+ % the inner sep, so recover it by shifting the anchor
+ % reset cm is not working sometime, use @marmot solution
+ % see https://tex.stackexchange.com/a/476018/38080
+ % notice that relative ++ movement disrupt to[] +()
+ ($(pgfcirc@labelcoor)+(-\pgf@circ@labanc:\pgf@circ@res@temp)$) coordinate(pgfcirc@labelcoor)
+ \pgfextra{\def\pgf@circ@labanctext{base}}%base
+ \else
+ \pgfextra{\def\pgf@circ@labanctext{north}}%north
+ \fi
+ \else
+ \ifnum \pgf@circ@labanc < 90
+ % shift, as above
+ ($(pgfcirc@labelcoor)+(-\pgf@circ@labanc:\pgf@circ@res@temp)$) coordinate(pgfcirc@labelcoor)
+ \pgfextra{\def\pgf@circ@labanctext{base}}%base
+ \else
+ \ifnum \pgf@circ@labanc > 180
+ % this shouldn't happen, but somehow it does (270 degree anchors)
+ % shift, as above
+ ($(pgfcirc@labelcoor)+(-\pgf@circ@labanc:\pgf@circ@res@temp)$) coordinate(pgfcirc@labelcoor)
+ \pgfextra{\def\pgf@circ@labanctext{base}}%base
+ \else
+ \pgfextra{\def\pgf@circ@labanctext{north}}%north
+ \fi
+ \fi
+ \fi
+ \fi\fi
+ \pgfextra{%
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix#1-direction\endcsname{0}%
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-#1-anchor\endcsname{\pgf@circ@labanctext}%
+ }
+ (pgfcirc@labelcoor) node[anchor=\pgf@circ@labanctext,
+ inner sep=0.5\pgf@circ@res@temp, outer sep=0pt, \circuitikzbasekey/bipole #1 style,
+ ](\ctikzvalof{bipole/name}#1){\strut\pgf@circ@finallabels{#1}%
+ }
+}
+
+\def\pgf@circ@finallabels#1{%
+ \edef\pgf@temp{}%
+ \edef\pgf@circ@temp{\ctikzvalof{bipole/#1/unit}}%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \ctikzvalof{bipole/#1/name}%
+ \else%
+ $\SI{\ctikzvalof{bipole/#1/name}}{\ctikzvalof{bipole/#1/unit}}$%
+ \fi%
+}
+
+
+%%%% Stacked labels
+%
+% stacked labels by Romano Giannetti romano@rgtti.com
+% heavily based on Claudo Fiandrinos's https://tex.stackexchange.com/a/65792/38080
+% \expandafter trick inspired by Matthew Leingang's https://tex.stackexchange.com/a/12272/38080
+%
+% labels are in a tabular, globally aligned:
+% vertically with key l2 valign (default c)
+% c: center t: top b: bottom
+% horizontally with key l2 align (default l)
+% l: left c: centered r: right
+% you can switch sides using l2_=... and l2^=...
+% syntax is l2_ = line1 and line2 (same for l2^)
+%
+\ctikzset{%
+ l2 valign/.store in=\pgfcirc@ltwo@valign, l2 valign=c,
+ l2 halign/.store in=\pgfcirc@ltwo@halign, l2 halign=l,
+}
+\ctikzset{l2base/.code n args={2}{
+ \pgfkeys{/tikz/circuitikz/bipole/label/name=%
+ \bgroup
+ \setlength{\tabcolsep}{2pt}%
+ \def\pgfcirc@ltwo@tabu{\tabular[\pgfcirc@ltwo@valign]}%
+ \expandafter\pgfcirc@ltwo@tabu\expandafter{\pgfcirc@ltwo@halign}%
+ #1\\ #2%
+ \endtabular
+ \egroup
+ }%
+}}
+\ctikzset{l2/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=90 }
+}
+\ctikzset{l2 above/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=90 }
+}
+\ctikzset{l2^/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=90 }
+}
+\ctikzset{l2 below/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=-90 }
+}
+\ctikzset{l2_/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=-90 }
+}
+%
+% the same for annotations
+%
+\ctikzset{%
+ a2 valign/.store in=\pgfcirc@atwo@valign, a2 valign=c,
+ a2 halign/.store in=\pgfcirc@atwo@halign, a2 halign=r,
+}
+\ctikzset{a2base/.code n args={2}{
+ \pgfkeys{/tikz/circuitikz/bipole/annotation/name=%
+ \bgroup
+ \setlength{\tabcolsep}{2pt}%
+ \def\pgfcirc@atwo@tabu{\tabular[\pgfcirc@atwo@valign]}%
+ \expandafter\pgfcirc@atwo@tabu\expandafter{\pgfcirc@atwo@halign}%
+ #1\\ #2%
+ \endtabular
+ \egroup
+ }%
+}}
+\ctikzset{a2/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+\ctikzset{a2 above/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+\ctikzset{a2^/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+\ctikzset{a2 below/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=90 }
+}
+\ctikzset{a2_/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=90 }
+}
+
+%%%---------- close: tex/pgfcirclabel
+%%%%%%%%%%% Springe nach tex/pgfcircvoltage
+%%%---------- open: tex/pgfcircvoltage.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Voltage management
+
+%% styles%<<<
+\ctikzset{bipole voltage style/.style={}}
+\tikzset{bipole voltage style/.code={
+ \ctikzset{bipole voltage style/.style={#1}}
+}}
+\tikzset{bipole voltage append style/.code={
+ \ctikzset{bipole voltage style/.append style={#1}}
+}}
+
+\ctikzset{v^>/.style = {
+ v={#1},
+ \circuitikzbasekey/bipole/voltage/direction = forward,
+ \circuitikzbasekey/bipole/voltage/position = above
+ }
+}
+
+\ctikzset{v^</.style = {
+ v={#1},
+ \circuitikzbasekey/bipole/voltage/direction = backward,
+ \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 = backward,
+ \circuitikzbasekey/bipole/voltage/position = below
+ }
+}
+
+\ctikzset{v_/.style = {v={#1}, \circuitikzbasekey/bipole/voltage/position = below} }
+\ctikzset{v^/.style = {v={#1}, \circuitikzbasekey/bipole/voltage/position = above} }
+\ctikzset{v>/.style = {v={#1}, \circuitikzbasekey/bipole/voltage/direction = forward} }
+\ctikzset{v</.style = {v={#1}, \circuitikzbasekey/bipole/voltage/direction = backward} }%
+
+\newif\ifpgfcirc@do@v@symbols\pgfcirc@do@v@symbolstrue
+\ctikzset{no v symbols/.code={\pgfcirc@do@v@symbolsfalse}}
+\ctikzset{v symbols/.code={\pgfcirc@do@v@symbolstrue}}
+
+% Default position varies whether the component is a voltage source
+% or not
+\ctikzset{v/.code = {
+ \pgfcirc@has@vtrue
+ \ifpgf@circuit@bipole@override@source@vif
+ \pgf@circuit@bipole@isvoltagefalse
+ \pgf@circuit@bipole@iscurrentfalse
+ \fi
+ \ifpgf@circuit@bipole@isvoltage
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=above,
+ \circuitikzbasekey/bipole/voltage/direction=forward}
+ \else
+ \ifpgf@circ@oldvoltagedirection
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=backward}
+ \else
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=forward}
+ \fi
+ \fi
+ \ifpgf@circ@oldvoltagedirection
+ \ifpgf@circuit@bipole@iscurrent\ifpgf@circ@fixbatteries
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=forward}
+ \fi\fi
+ \else
+ \ifpgf@circuit@bipole@iscurrent
+ \ifpgf@circuit@bipole@current@backward
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=forward}
+ \else
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=backward}
+ \fi\fi\fi
+ \pgfkeys{/tikz/circuitikz/bipole/voltage/label/name={#1}}
+ \ctikzsetvalof{bipole/voltage/label/unit}{}
+ \ifpgf@circ@siunitx
+ \pgf@circ@handleSI{#1}
+ \ifpgf@circ@siunitx@res
+ \edef\pgf@temp{\pgf@circ@handleSI@val}
+ \pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/name}{\pgf@temp}
+ \edef\pgf@temp{\pgf@circ@handleSI@unit}
+ \pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/unit}{\pgf@temp}
+ \else
+ \fi
+ \else
+ \fi
+ }
+}
+% %>>>
+
+% american voltage font selection and symbol definition
+% the default font command is {} --- nothing
+\def\pgf@circ@avfont{\ctikzvalof{voltage/american font}}
+%
+% plus and minus symbols (default is $+$ and $-$, see pgfcirc.defines.tex)
+%
+\def\pgf@circ@avplus{\ctikzvalof{voltage/american plus}}
+\def\pgf@circ@avminus{\ctikzvalof{voltage/american minus}}
+
+%%
+\def\setscaledRlenforclass{%
+ \csname pgf@sh@ma@\ctikzvalof{bipole/name}\endcsname
+ \ifdefined\ctikzclass
+ \edef\pgf@temp{/tikz/circuitikz/\ctikzclass/scale}
+ \pgfkeysifdefined{\pgf@temp}
+ {\pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ {\pgf@circ@scaled@Rlen=\pgf@circ@Rlen}
+ \else
+ \pgf@circ@scaled@Rlen=\pgf@circ@Rlen
+ \fi
+}
+
+%% Output routine for generic bipoles%<<<
+% put this to true to see the voltage label coordinate anchors
+\newif\ifpgf@circ@debugv\pgf@circ@debugvfalse
+
+\def\pgf@circ@drawvoltagegeneric{
+ \pgfextra{
+ % \typeout{KIND:\ctikzvalof{bipole/kind}\space RLEN:\the\pgf@circ@Rlen\space SCALED:\the\pgf@circ@scaled@Rlen}
+ \ifnum \ctikzvalof{mirror value}=-1
+ \ifpgf@circuit@bipole@inverted
+ \def\distfromline{\ctikzvalof{voltage/distance from line}\pgf@circ@scaled@Rlen}
+ \else
+ \def\distfromline{-\ctikzvalof{voltage/distance from line}\pgf@circ@scaled@Rlen}
+ \fi
+ \else
+ \ifpgf@circuit@bipole@inverted
+ \def\distfromline{-\ctikzvalof{voltage/distance from line}\pgf@circ@scaled@Rlen}
+ \else
+ \def\distfromline{\ctikzvalof{voltage/distance from line}\pgf@circ@scaled@Rlen}
+ \fi
+ \fi
+ \ifpgf@circuit@bipole@voltage@below
+ \def\pgf@circ@voltage@angle{90}
+ \else
+ \def\pgf@circ@voltage@angle{-90}
+ \fi
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/distance from node}
+ \pgfkeysifdefined{\pgf@temp}
+ { \edef\distancefromnode{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/distance from node}} }
+ { \edef\distancefromnode{\ctikzvalof{voltage/distance from node}} }
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/bump b}
+ \pgfkeysifdefined{\pgf@temp}
+ { \edef\bumpb{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/bump b}} }
+ { \edef\bumpb{\ctikzvalof{voltage/bump b}} }
+ \edef\shiftv{\ctikzvalof{voltage/shift}}
+ % additional per-bipole voltage shift (internal)
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/additional shift}
+ \pgfkeysifdefined{\pgf@temp}
+ {
+ \edef\addvshift{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/additional shift}}
+ }
+ {
+ \edef\addvshift{0}
+ }
+ \newdimen{\absvshift}
+ \pgfmathsetlength{\absvshift}{(1+\shiftv+\addvshift)*(\distfromline)}
+ % reset anchor if american and open
+ \ifpgf@circuit@europeanvoltage
+ \else
+ \ifx\@@kind\@@open
+ \def\pgf@circ@bipole@voltage@label@anchor{center}
+ \fi
+ \fi
+ \ifpgf@circuit@bipole@voltage@raised
+ \def\pgf@circ@bipole@voltage@label@anchor{center}
+ \pgfmathsetlength{\absvshift}{\absvshift+sign(\absvshift)*height{"Q"}} % with the current font.
+ \fi
+ }
+ % %\pgf@circ@Rlen/\ctikzvalof{current arrow scale} is equal to the length of the currarrow
+ %absolute move, minimum space is length of arrowhead
+ coordinate (pgfcirc@midtmp) at ($(\tikztostart) ! \pgf@circ@Rlen/\ctikzvalof{current arrow scale} ! (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distancefromnode ! (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@Vfrom@flat) at (pgfcirc@midtmp)
+ %absolute move, minimum space is length of arrowhead
+ coordinate (pgfcirc@midtmp) at ($(\tikztotarget) ! \pgf@circ@Rlen/\ctikzvalof{current arrow scale} ! (pgfcirc@anchorendnode)$)
+ coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distancefromnode ! (pgfcirc@anchorendnode)$)
+ coordinate (pgfcirc@Vto@flat) at (pgfcirc@midtmp)
+ coordinate (pgfcirc@mid) at ($(pgfcirc@Vfrom@flat)!0.5!(pgfcirc@Vto@flat)$)
+
+ \ifpgf@circuit@bipole@voltage@below
+ % see comments for the "above" part (similar)
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ coordinate (pgfcirc@bottom) at (\ctikzvalof{bipole/name}.-90)
+ coordinate (pgfcirc@Vto1) at ($(pgfcirc@mid)+(pgfcirc@bottom)-(pgfcirc@Vfrom@flat)$)
+ coordinate (pgfcirc@Vfrom1) at ($(pgfcirc@mid)+(pgfcirc@bottom)-(pgfcirc@Vto@flat)$)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto1) ! \absvshift!90 : (pgfcirc@Vfrom1)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom1) ! \absvshift!-90 : (pgfcirc@Vto1)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vto)!0.5!(\pgfcirc@a@prefix-Vfrom) $)
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vto)
+ \else
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@Vcont1t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-110)$)
+ coordinate (pgfcirc@Vcont2t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-70)$)
+ coordinate (\pgfcirc@a@prefix-Vcont1) at ($(pgfcirc@Vcont1t) ! -\absvshift!90 : (pgfcirc@Vcont2t)$)
+ coordinate (\pgfcirc@a@prefix-Vcont2) at ($(pgfcirc@Vcont2t) ! -\absvshift!-90 : (pgfcirc@Vcont1t)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vcont2)!0.5!(\pgfcirc@a@prefix-Vcont1)$)
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vcont2)
+ \fi
+ \else
+ % we are in case of american here
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@bottom) at (\ctikzvalof{bipole/name}.-90)
+ coordinate (pgfcirc@Vdir0) at ($(pgfcirc@mid)+(pgfcirc@bottom)-(pgfcirc@Vfrom@flat)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(pgfcirc@bottom) ! \absvshift!-90 : (pgfcirc@Vdir0)$)
+ coordinate (pgfcirc@Vdir) at ($(pgfcirc@mid)+(\pgfcirc@a@prefix-Vlab)-(pgfcirc@Vfrom@flat)$)
+ \ifpgf@circuit@bipole@voltage@raised
+ % move the from and to up to the level of Vlab
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(\pgfcirc@a@prefix-Vlab)+(pgfcirc@Vto@flat)-(pgfcirc@mid)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(\pgfcirc@a@prefix-Vlab)+(pgfcirc@Vfrom@flat)-(pgfcirc@mid)$)
+ \fi
+ \fi
+ \else
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ coordinate (pgfcirc@top) at (\ctikzvalof{bipole/name}.90)
+ % move parallel to the component line at pgfcirc@top distance
+ coordinate (pgfcirc@Vto1) at ($(pgfcirc@mid)+(pgfcirc@top)-(pgfcirc@Vfrom@flat)$)
+ coordinate (pgfcirc@Vfrom1) at ($(pgfcirc@mid)+(pgfcirc@top)-(pgfcirc@Vto@flat)$)
+ % add the extra distance
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto1) ! \absvshift!-90 : (pgfcirc@Vfrom1)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom1) ! \absvshift!90 : (pgfcirc@Vto1)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vto)!0.5!(\pgfcirc@a@prefix-Vfrom) $)
+ % direction line to shift the label later
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vto)
+ \else
+ % european voltages here
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! -\absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! -\absvshift!-90 : (pgfcirc@anchorstartnode)$)
+ % identify the two control points for the "arc" of the voltage
+ coordinate (pgfcirc@Vcont1t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.110)$)
+ coordinate (pgfcirc@Vcont2t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.70)$)
+ % and shift them a bit
+ coordinate (\pgfcirc@a@prefix-Vcont1) at ($(pgfcirc@Vcont1t) ! \absvshift!90 : (pgfcirc@Vcont2t)$)
+ coordinate (\pgfcirc@a@prefix-Vcont2) at ($(pgfcirc@Vcont2t) ! \absvshift!-90 : (pgfcirc@Vcont1t)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vcont2)!0.5!(\pgfcirc@a@prefix-Vcont1)$)
+ % direction line to shift the label later
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vcont2)
+ \fi
+ \else
+ % we are in case of american here
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!-90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!90 : (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@top) at (\ctikzvalof{bipole/name}.90)
+ % move parallel to the component line
+ coordinate (pgfcirc@Vdir0) at ($(pgfcirc@mid)+(pgfcirc@top)-(pgfcirc@Vfrom@flat)$)
+ % and add the extra distance
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(pgfcirc@top) ! \absvshift!90 : (pgfcirc@Vdir0)$)
+ coordinate (pgfcirc@Vdir) at ($(pgfcirc@mid)+(\pgfcirc@a@prefix-Vlab)-(pgfcirc@Vfrom@flat)$)
+ \ifpgf@circuit@bipole@voltage@raised
+ % move the from and to up to the level of Vlab
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(\pgfcirc@a@prefix-Vlab)+(pgfcirc@Vto@flat)-(pgfcirc@mid)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(\pgfcirc@a@prefix-Vlab)+(pgfcirc@Vfrom@flat)-(pgfcirc@mid)$)
+ \fi
+ \fi
+ \fi
+ \ifx\@@kind\@@open
+ coordinate (\pgfcirc@a@prefix-Vto) at (pgfcirc@Vto@flat)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at (pgfcirc@Vfrom@flat)
+ \fi
+ \ifpgf@circ@debugv
+ node [ocirc, fill=red] at (pgfcirc@anchorstartnode) {}
+ node [ocirc, fill=blue] at (pgfcirc@anchorendnode) {}
+ node [ocirc, fill=green] at (\pgfcirc@a@prefix-Vto) {}
+ node [ocirc, fill=yellow] at (\pgfcirc@a@prefix-Vfrom) {}
+ node [odiamondpole, fill=green!50!black] at (pgfcirc@Vto@flat) {}
+ node [odiamondpole, fill=orange] at (pgfcirc@Vfrom@flat) {}
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ \else
+ node [osquarepole, fill=red] at (\pgfcirc@a@prefix-Vcont1) {}
+ node [osquarepole, fill=blue] at (\pgfcirc@a@prefix-Vcont2) {}
+ \fi
+ \fi
+ \fi
+
+ %
+ % Now we draw the voltage things (only if not empty --- in which case we have been
+ % called just to set the anchors)
+ %
+ \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else
+ \ifpgfcirc@do@v@symbols
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vto) --(\pgfcirc@a@prefix-Vfrom) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) --(\pgfcirc@a@prefix-Vto) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {}
+ \fi
+ \else
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vto) .. controls (\pgfcirc@a@prefix-Vcont2) and (\pgfcirc@a@prefix-Vcont1) ..
+ node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {}
+ (\pgfcirc@a@prefix-Vfrom)
+ \else
+ (\pgfcirc@a@prefix-Vfrom) .. controls (\pgfcirc@a@prefix-Vcont1) and (\pgfcirc@a@prefix-Vcont2) ..
+ node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {}
+ (\pgfcirc@a@prefix-Vto)
+ \fi
+ \fi
+ \else % american
+ \ifpgf@circuit@bipole@voltage@backward
+ \ifpgf@circ@oldvoltagedirection
+ (\pgfcirc@a@prefix-Vfrom) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus}
+ (\pgfcirc@a@prefix-Vto) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus}
+ (\pgfcirc@a@prefix-Vto) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus}
+ \fi
+ \else
+ \ifpgf@circ@oldvoltagedirection
+ (\pgfcirc@a@prefix-Vfrom) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus}
+ (\pgfcirc@a@prefix-Vto) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus}
+ (\pgfcirc@a@prefix-Vto) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus}
+ \fi
+ \fi
+ \fi
+ \fi % closing the ...symbol
+ \fi % Closing the ...ifempty
+}
+% %>>>
+
+%% Output routine for voltage sources%<<<
+\def\pgf@circ@drawvoltagegenerator{
+ % the following is affected indirectly by voltage/shift, you can move the arrow with voltage/bump a.
+ % it's not perfect, but I can't find the way to do it correctly...
+ \pgfextra{
+ \edef\shiftv{\ctikzvalof{voltage/shift}}
+ % distance along the 60-120 axis
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/bump a}
+ \pgfkeysifdefined{\pgf@temp}
+ {
+ \edef\bumpa{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/bump a}}
+ }
+ {
+ \edef\bumpa{\ctikzvalof{voltage/bump a}}
+ }
+ % additional per-bipole voltage shift (internal)
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/additional shift}
+ \pgfkeysifdefined{\pgf@temp}
+ {
+ \edef\addvshift{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/additional shift}}
+ }
+ {
+ \edef\addvshift{0}
+ }
+ \pgfmathsetmacro{\bumpaplus}{\bumpa + 0.5*\shiftv} % coefficient added "by feel". Sorry.
+ }
+ \ifpgf@circuit@bipole@voltage@below
+ coordinate (pgfcirc@Vfrom0) at ($(\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.-120)$)
+ coordinate (pgfcirc@Vto0) at ($(\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.-60)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($ (pgfcirc@Vfrom0) ! \addvshift! -90: (pgfcirc@Vto0) $)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($ (pgfcirc@Vto0) ! \addvshift! 90: (pgfcirc@Vfrom0) $)
+ \else
+ coordinate (pgfcirc@Vfrom0) at ($ (\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.120)$)
+ coordinate (pgfcirc@Vto0) at ($ (\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.60)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($ (pgfcirc@Vfrom0) ! \addvshift! 90: (pgfcirc@Vto0) $)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($ (pgfcirc@Vto0) ! \addvshift! -90: (pgfcirc@Vfrom0) $)
+ \fi
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vto)!0.5!(\pgfcirc@a@prefix-Vfrom) $)
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vto)
+ \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else
+ \ifpgfcirc@do@v@symbols
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vto) -- node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {} (\pgfcirc@a@prefix-Vfrom)
+ \else
+ (\pgfcirc@a@prefix-Vfrom) -- node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {} (\pgfcirc@a@prefix-Vto)
+ \fi
+ \else% american voltage
+ \ifpgf@circuit@bipole@voltageoutsideofsymbol
+ % if it is a battery, must put + and -
+
+ \ifpgf@circ@fixbatteries
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus}
+ (\pgfcirc@a@prefix-Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus}
+ (\pgfcirc@a@prefix-Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus}
+ \fi
+ \else
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus}
+ (\pgfcirc@a@prefix-Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus}
+ (\pgfcirc@a@prefix-Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus}
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi % closes ... ifsymbol
+ \fi % closes ...ifempty
+}
+% %>>>
+
+%% Output routine (main entry point) %<<<
+%% this is the entry point
+%%
+%% locally used dimensions
+\newdimen{\pgfcirc@labelshift}
+\newif\ifpgfcirc@v@curved % helper if --- true only if voltages are curved
+\def\pgf@circ@drawvoltage{% node name
+ \pgfextra{%
+ % set the helper if...curved
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ \pgfcirc@v@curvedfalse
+ \else
+ \pgfcirc@v@curvedtrue
+ \fi
+ \else
+ \pgfcirc@v@curvedfalse
+ \fi
+ % \typeout{V routine called with prefix: \pgfcirc@a@prefix}
+ % Label anchors WARNING: indentation is probably wrong
+ \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \ifnum\pgfcircmathresult >4 \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 >274 \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
+
+ % export anchor position (if not needed, is always the same macro)
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Vlab-anchor\endcsname{\pgf@circ@bipole@voltage@label@anchor}
+ % this must be set *before* changing for mirroring and inverting; in that case
+ % the xscale/yscale parameters take it into account
+ \ifpgf@circuit@bipole@voltage@below
+ \def\pgf@circ@bipole@voltage@label@where{-90}
+ \else
+ \def\pgf@circ@bipole@voltage@label@where{90}
+ \fi
+
+ % magic to counteract the scale and yscale effects (there should be a better way...)
+ \ifnum \ctikzvalof{mirror value}=-1
+ \ifpgf@circuit@bipole@voltage@below
+ \pgf@circuit@bipole@voltage@belowfalse
+ \else
+ \pgf@circuit@bipole@voltage@belowtrue
+ \fi
+ \fi
+
+ \ifpgf@circuit@bipole@inverted
+ \ifpgf@circuit@bipole@voltage@below
+ \pgf@circuit@bipole@voltage@belowfalse
+ \else
+ \pgf@circuit@bipole@voltage@belowtrue
+ \fi
+ \fi
+
+ % take into account scaling
+ \setscaledRlenforclass
+ % set the macro for detecting open
+ \edef\@@kind{\ctikzvalof{bipole/kind}}\edef\@@open{open}
+ % start voltage label adjustment
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ % check for straight
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/straight label distance}
+ \pgfkeysifdefined{\pgf@temp}{%
+ \edef\labeldist{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/straight label distance}}%
+ % \typeout{ST:ADJUSTED\space for\space \ctikzvalof{bipole/kind} \space at \space \stdist}
+ }{\edef\labeldist{\ctikzvalof{voltage/straight label distance}}}
+ \ifpgf@circ@debugv\edef\whichtypeshift{STR}\fi
+ % do not labelshift for legacy straight open; 1.4 makes the shift null
+ \ifx\@@kind\@@open\ifpgf@adjust@open@voltage\else\edef\labeldist{1.4}\fi\fi
+ \else
+ % check for european
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/european label distance}
+ \pgfkeysifdefined{\pgf@temp}{%
+ \edef\labeldist{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/european label distance}}%
+ % \typeout{EU:ADJUSTED\space for\space \ctikzvalof{bipole/kind} \space at \space \eudist}
+ }{ \edef\labeldist{\ctikzvalof{voltage/european label distance}}}
+ \ifpgf@circ@debugv\edef\whichtypeshift{EUR}\fi
+ \fi
+ \else
+ % check for american
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/american label distance}
+ \pgfkeysifdefined{\pgf@temp}{%
+ \ifpgf@circuit@bipole@voltage@raised
+ % do not apply the shift if we are using raised american style
+ \edef\labeldist{1.4}% default value
+ \else
+ \edef\labeldist{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/american label distance}}%
+ \fi
+ % \typeout{AL:ADJUSTED\space for\space \ctikzvalof{bipole/kind} \space at \space \aldist}
+ }{\edef\labeldist{\ctikzvalof{voltage/american label distance}}}
+ \ifpgf@circ@debugv\edef\whichtypeshift{AME}\fi
+ \fi
+ % find the height of the bipole or use a default value
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/height}
+ \pgfkeysifdefined{\pgf@temp}
+ {\pgfmathsetmacro{\partheightf}{0.5*\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/height}}
+ \edef\partheight{\partheightf\pgf@circ@scaled@Rlen}}
+ {\edef\partheight{(.5\pgf@circ@scaled@Rlen)}} %fallback to fixed value
+ \ifpgf@circuit@bipole@isvoltage
+ \pgfmathsetlength{\pgfcirc@labelshift}{(\labeldist-1.2)*\partheight}
+ \else
+ \pgfmathsetlength{\pgfcirc@labelshift}{(\labeldist-1.4)*\partheight}
+ \fi
+ % the value for the european was by default 1.4
+ \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners!
+ % stop the detection of open if I do not want special treatment
+ \ifpgf@adjust@open@voltage\else\edef\@@open{this-will-nEver-match}\fi
+ % \typeout{KIND\space\@@kind}
+ }%end pgfextra
+
+ \ifpgf@circuit@bipole@isvoltage
+ \pgf@circ@drawvoltagegenerator
+ % add fake cont1 and cont2 anchors for export
+ coordinate (\pgfcirc@a@prefix-Vcont1) at ($(\pgfcirc@a@prefix-Vfrom) !0.5! (\pgfcirc@a@prefix-Vto)$)
+ coordinate (\pgfcirc@a@prefix-Vcont2) at ($(\pgfcirc@a@prefix-Vfrom) !0.5! (\pgfcirc@a@prefix-Vto)$)
+ \else
+ \pgf@circ@drawvoltagegeneric
+ \fi
+ % % debugging
+ % \pgfextra{%
+ % \typeout{LABEL\space KIND:\@@kind\space EU:\the\pgfcirc@eushift\space AL:\the\pgfcirc@alshift\space
+ % DIRECTION:\pgf@circ@bipole@voltage@label@where}
+ % \pgf@circ@debugvtrue}
+
+ % move a bit if requested
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vlab) ! \pgfcirc@labelshift ! \pgf@circ@bipole@voltage@label@where :(pgfcirc@Vdir)$)
+
+ % check for the case of american AND open
+ \ifpgf@circuit@europeanvoltage
+ \else
+ \ifx\@@kind\@@open
+ % override pgfcirc@Vlab
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(pgfcirc@Vfrom@flat)!0.5!(pgfcirc@Vto@flat)$)
+ \fi
+ \fi
+
+ \ifpgf@circ@debugv
+ node [odiamondpole, color=blue] at (\pgfcirc@a@prefix-Vlab) {}
+ node [odiamondpole, color=red] at (pgfcirc@Vdir) {}
+ node [overlay, red, font=\tiny, anchor=south east, align=right] at(pgfcirc@Vdir)
+ {\whichtypeshift:\the\pgfcirc@labelshift\\ DIR:\pgf@circ@bipole@voltage@label@where}
+ \fi
+
+ % put the node only if it's not empty
+ \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else
+ node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt,
+ \circuitikzbasekey/bipole voltage style](\ctikzvalof{bipole/name}voltage)
+ at (\pgfcirc@a@prefix-Vlab) {\pgf@circ@finallabels{voltage/label}}
+ \fi
+
+ \ifpgfcirc@v@curved\else
+ % fake Vcont1 and Vcont2 for when they are exported --- in the middle of Vto and Vfrom
+ coordinate (\pgfcirc@a@prefix-Vcont1) at ($(\pgfcirc@a@prefix-Vfrom) !0.5! (\pgfcirc@a@prefix-Vto)$)
+ coordinate (\pgfcirc@a@prefix-Vcont2) at ($(\pgfcirc@a@prefix-Vfrom) !0.5! (\pgfcirc@a@prefix-Vto)$)
+ \fi
+ % revert from and to (and c1 - c2) if needed (simpler than rework the positioning above...)
+ \ifpgf@circuit@bipole@voltage@backward
+ \pgfcirc@swap@coordinates{\pgfcirc@a@prefix-Vfrom}{\pgfcirc@a@prefix-Vto}
+ \pgfcirc@swap@coordinates{\pgfcirc@a@prefix-Vcont1}{\pgfcirc@a@prefix-Vcont2}
+ \fi
+
+}%end drawvoltages
+
+% %>>>
+
+%% these should be arguably moved to every component definition...
+
+% special cases for voltage positions%<<<1
+% the KIND is the node name without SHAPE
+% See the definition above for meaning
+% if bipoles/KIND/voltage/straight label distance is not defined, it uses the height
+% if bipoles/KIND/voltage/additional shift is not defined, it is 0 (extra distance)
+%
+\ctikzset{bipoles/generic/voltage/distance from node/.initial=0.4}
+\ctikzset{bipoles/generic/voltage/bump b/.initial=2}
+%
+\ctikzset{bipoles/ageneric/voltage/distance from node/.initial=.4}
+\ctikzset{bipoles/ageneric/voltage/bump b/.initial=2}
+%
+\ctikzset{bipoles/fullgeneric/voltage/distance from node/.initial=.4}
+\ctikzset{bipoles/fullgeneric/voltage/bump b/.initial=2}
+%
+\ctikzset{bipoles/memristor/voltage/distance from node/.initial=.4}
+\ctikzset{bipoles/memristor/voltage/bump b/.initial=2}
+%
+\ctikzset{bipoles/tline/voltage/bump b/.initial=2.4}
+%
+\ctikzset{bipoles/varistor/voltage/bump b/.initial=2.4}
+\ctikzset{bipoles/varistor/voltage/american label distance/.initial=1.8}
+%
+\ctikzset{bipoles/photoresistor/voltage/bump b/.initial=1.6}
+%
+\ctikzset{bipoles/thermistor/voltage/bump b/.initial=2.4}
+\ctikzset{bipoles/thermistor/voltage/european label distance/.initial=0.8}
+\ctikzset{bipoles/thermistorntc/voltage/bump b/.initial=1.6}
+\ctikzset{bipoles/thermistorntc/voltage/european label distance/.initial=0.8}
+\ctikzset{bipoles/thermistorptc/voltage/bump b/.initial=1.6}
+\ctikzset{bipoles/thermistorptc/voltage/european label distance/.initial=0.8}
+%
+\ctikzset{bipoles/ccapacitor/voltage/bump b/.initial=2.2}
+%
+\ctikzset{bipoles/emptyzzdiode/voltage/bump b/.initial=2.5}
+\ctikzset{bipoles/emptyzzdiode/voltage/european label distance/.initial=1.0}
+\ctikzset{bipoles/fullzzdiode/voltage/bump b/.initial=2.5}
+\ctikzset{bipoles/fullzzdiode/voltage/european label distance/.initial=1.0}
+\ctikzset{bipoles/emptythyristor/voltage/bump b/.initial=2.0}
+\ctikzset{bipoles/emptythyristor/voltage/european label distance/.initial=1.2}
+\ctikzset{bipoles/fullthyristor/voltage/bump b/.initial=2.0}
+\ctikzset{bipoles/fullthyristor/voltage/european label distance/.initial=1.2}
+\ctikzset{bipoles/emptytriac/voltage/bump b/.initial=1.8}
+\ctikzset{bipoles/emptytriac/voltage/european label distance/.initial=0.8}
+\ctikzset{bipoles/fulltriac/voltage/bump b/.initial=1.8}
+\ctikzset{bipoles/fulltriac/voltage/european label distance/.initial=0.8}
+%
+\ctikzset{bipoles/short/voltage/american label distance/.initial=2.8}
+\ctikzset{bipoles/open/voltage/distance from node/.initial=0.3}
+%
+\ctikzset{bipoles/battery/voltage/bump a/.initial=1.4}
+\ctikzset{bipoles/vsourceAM/voltage/american label distance/.initial=1.2}
+\ctikzset{bipoles/cvsourceAM/voltage/american label distance/.initial=1.2}
+%%>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircvoltage
+%%%%%%%%%%% Springe nach tex/pgfcirccurrent
+%%%---------- open: tex/pgfcirccurrent.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Current handling
+
+%% styles
+\ctikzset{bipole current style/.style={}}
+\tikzset{bipole current style/.code={
+ \ctikzset{bipole current style/.style={#1}}
+}}
+\tikzset{bipole current append style/.code={
+ \ctikzset{bipole current style/.append style={#1}}
+}}
+
+%% 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 = backward,
+ \circuitikzbasekey/bipole/current/x position = after,
+ \circuitikzbasekey/bipole/current/y position = above
+ }
+}
+
+\ctikzset{i_</.style = {
+ i={#1},
+ \circuitikzbasekey/bipole/current/direction = backward,
+ \circuitikzbasekey/bipole/current/x position = after,
+ \circuitikzbasekey/bipole/current/y position = below
+ }
+}
+
+\ctikzset{i<^/.style = {
+ i={#1},
+ \circuitikzbasekey/bipole/current/direction = backward,
+ \circuitikzbasekey/bipole/current/x position = before,
+ \circuitikzbasekey/bipole/current/y position = above
+ }
+}
+
+\ctikzset{i<_/.style = {
+ i={#1},
+ \circuitikzbasekey/bipole/current/direction = backward,
+ \circuitikzbasekey/bipole/current/x position = before,
+ \circuitikzbasekey/bipole/current/y position = below
+ }
+}
+
+\newif\ifpgfcirc@do@i@symbols\pgfcirc@do@i@symbolstrue
+\ctikzset{no i symbols/.code={\pgfcirc@do@i@symbolsfalse}}
+\ctikzset{i symbols/.code={\pgfcirc@do@i@symbolstrue}}
+
+\ctikzset{i/.code = {
+ \pgfcirc@has@itrue
+ \ifpgf@circuit@bipole@override@source@vif
+ \pgf@circuit@bipole@isvoltagefalse
+ \pgf@circuit@bipole@iscurrentfalse
+ \fi
+ \pgfkeys{\circuitikzbasekey/bipole/current/direction = forward,
+ \circuitikzbasekey/bipole/current/x position = after,
+ \circuitikzbasekey/bipole/current/y position = above }
+ \pgfkeys{/tikz/circuitikz/bipole/current/label/name={#1}}
+ \ctikzsetvalof{bipole/current/label/unit}{}
+ \ifpgf@circ@siunitx
+ \pgf@circ@handleSI{#1}
+ \ifpgf@circ@siunitx@res
+ \edef\pgf@temp{\pgf@circ@handleSI@val}
+ \pgfkeyslet{/tikz/circuitikz/bipole/current/label/name}{\pgf@temp}
+ \edef\pgf@temp{\pgf@circ@handleSI@unit}
+ \pgfkeyslet{/tikz/circuitikz/bipole/current/label/unit}{\pgf@temp}
+ \else
+ \fi
+ \else
+ \fi
+ %reverse current direction for voltage sources
+ \ifpgf@circ@oldvoltagedirection\else
+ \ifpgf@circuit@bipole@isvoltage
+ \ifpgf@circuit@bipole@voltage@backward
+ \pgfkeys{\circuitikzbasekey/bipole/current/direction = forward,
+ \circuitikzbasekey/bipole/current/x position = after,
+ \circuitikzbasekey/bipole/current/y position = below }
+ \else
+ \pgfkeys{\circuitikzbasekey/bipole/current/direction = backward,
+ \circuitikzbasekey/bipole/current/x position = before,
+ \circuitikzbasekey/bipole/current/y position = above }
+ \fi\fi\fi
+ }
+}
+
+\ifpgf@circ@oldvoltagedirection
+ \ctikzset{i</.style = { i={#1}, \circuitikzbasekey/bipole/current/direction = backward } }
+\else
+ \ctikzset{i</.style = { i={#1}, \circuitikzbasekey/bipole/current/direction = backward, \circuitikzbasekey/bipole/current/x position = before } }
+\fi
+\ctikzset{i_/.style = { i={#1}, \circuitikzbasekey/bipole/current/y position = below } }
+\ctikzset{i>/.style = {i={#1}, \circuitikzbasekey/bipole/current/direction = forward } }
+\ctikzset{i^/.style = { i={#1}, \circuitikzbasekey/bipole/current/y position = above } }
+
+%% Output routine
+\def\pgf@circ@drawcurrent{
+ \pgfextra{
+ \edef\pgf@circ@rounded@dir{\pgf@circ@direction}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@rounded@dir\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 >274 \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
+ % export anchor position (if not needed, is always the same macro)
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Ilab-anchor\endcsname{\pgf@circ@dir}
+
+ \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%draw current at a short at middle of the line
+ coordinate (\pgfcirc@a@prefix-Ifrom) at (\tikztostart)
+ coordinate (\pgfcirc@a@prefix-Ito) at (\tikztotarget)
+ \else% normal bipole or source
+ \ifpgf@circuit@bipole@current@before
+ coordinate (\pgfcirc@a@prefix-Ifrom) at (\tikztostart)
+ coordinate (\pgfcirc@a@prefix-Ito) at (pgfcirc@anchorstartnode)
+ \else
+ coordinate (\pgfcirc@a@prefix-Ifrom) at (pgfcirc@anchorendnode)
+ coordinate (\pgfcirc@a@prefix-Ito) at (\tikztotarget)
+ \fi
+ \fi
+ \ifpgf@circuit@bipole@current@backward
+ \pgfextra{
+ \pgfmathsubtract{\pgf@circ@rounded@dir}{180}
+ \edef\pgf@circ@rounded@dir{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ }
+ \fi
+ coordinate (\pgfcirc@a@prefix-Ipos) at ($(\pgfcirc@a@prefix-Ifrom)! \ctikzvalof{current/distance} !(\pgfcirc@a@prefix-Ito)$)
+ % export the current direction
+ \pgfextra{\expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Iarrow-direction\endcsname{\pgf@circ@rounded@dir}}
+ % if the current label is not empty (in which case we have already all the anchors)
+ \pgf@circ@ifkeyempty{bipole/current/label/name}\else
+ % put the arrow node
+ % if we do not want the arrow, just put an empty node (needed to maintain the exact same distances)
+ \ifpgfcirc@do@i@symbols
+ node[currarrow, rotate=\pgf@circ@rounded@dir, anchor=center](Iarrow) at (\pgfcirc@a@prefix-Ipos) {}
+ \else
+ node[currarrow, rotate=\pgf@circ@rounded@dir, anchor=center,
+ circuitikz/phantom@currarrow](Iarrow) at (\pgfcirc@a@prefix-Ipos) {}
+ \fi
+ % put the label
+ node[anchor=\pgf@circ@dir, \circuitikzbasekey/bipole current style]
+ (\ctikzvalof{bipole/name}current)
+ at (Iarrow.\pgf@circ@bipole@current@label@where){\pgf@circ@finallabels{current/label}}
+ \fi % end ifempty
+ \ifpgf@circuit@bipole@current@backward
+ \pgfcirc@swap@coordinates{\pgfcirc@a@prefix-Ifrom}{\pgfcirc@a@prefix-Ito}
+ \fi
+}
+
+%%%---------- close: tex/pgfcirccurrent
+%%%%%%%%%%% Springe nach tex/pgfcircflow
+%%%---------- open: tex/pgfcircflow.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% flow handling
+
+
+%% styles
+\ctikzset{bipole flow style/.style={}}
+\tikzset{bipole flow style/.code={
+ \ctikzset{bipole flow style/.style={#1}}
+}}
+\tikzset{bipole flow append style/.code={
+ \ctikzset{bipole flow style/.append style={#1}}
+}}
+
+%% Options
+\ctikzset{f^>/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = above
+ }
+}
+
+\ctikzset{f_>/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = below
+ }
+}
+
+\ctikzset{f>^/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = before,
+ \circuitikzbasekey/bipole/flow/y position = above
+ }
+}
+
+\ctikzset{f>_/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = before,
+ \circuitikzbasekey/bipole/flow/y position = below
+ }
+}
+
+\ctikzset{f^</.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = backward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = above
+ }
+}
+
+\ctikzset{f_</.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = backward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = below
+ }
+}
+
+\ctikzset{f<^/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = backward,
+ \circuitikzbasekey/bipole/flow/x position = before,
+ \circuitikzbasekey/bipole/flow/y position = above
+ }
+}
+
+\ctikzset{f<_/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = backward,
+ \circuitikzbasekey/bipole/flow/x position = before,
+ \circuitikzbasekey/bipole/flow/y position = below
+ }
+}
+
+\ctikzset{f</.style = { f={#1}, \circuitikzbasekey/bipole/flow/direction = backward} }
+\ctikzset{f_/.style = { f={#1}, \circuitikzbasekey/bipole/flow/y position = below } }
+\ctikzset{f>/.style = { f={#1}, \circuitikzbasekey/bipole/flow/direction = forward } }
+\ctikzset{f^/.style = { f={#1}, \circuitikzbasekey/bipole/flow/y position = above } }
+
+\newif\ifpgfcirc@do@f@symbols\pgfcirc@do@f@symbolstrue
+\ctikzset{no f symbols/.code={\pgfcirc@do@f@symbolsfalse}}
+\ctikzset{f symbols/.code={\pgfcirc@do@f@symbolstrue}}
+
+\ctikzset{f/.code = {
+ \pgfcirc@has@ftrue
+ \ifpgf@circuit@bipole@override@source@vif
+ \pgf@circuit@bipole@isvoltagefalse
+ \pgf@circuit@bipole@iscurrentfalse
+ \fi
+ \pgfkeys{\circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = above }
+ \pgfkeys{/tikz/circuitikz/bipole/flow/label/name={#1}}
+ \ctikzsetvalof{bipole/flow/label/unit}{}
+ \ifpgf@circ@siunitx
+ \pgf@circ@handleSI{#1}
+ \ifpgf@circ@siunitx@res
+ \edef\pgf@temp{\pgf@circ@handleSI@val}
+ \pgfkeyslet{/tikz/circuitikz/bipole/flow/label/name}{\pgf@temp}
+ \edef\pgf@temp{\pgf@circ@handleSI@unit}
+ \pgfkeyslet{/tikz/circuitikz/bipole/flow/label/unit}{\pgf@temp}
+ \else
+ \fi
+ \else
+ \fi
+}
+}
+
+%% Output routine
+
+\def\pgf@circ@drawflow{
+ \pgfextra{
+ \edef\pgf@circ@rounded@dir{\pgf@circ@direction}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@rounded@dir\pgf@nil}
+
+ \ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86
+ \ifpgf@circuit@bipole@flow@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@flow@below
+ \def\pgf@circ@dir{west} \else \def\pgf@circ@dir{east}
+ \fi
+ \fi\fi
+ \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176
+ \ifpgf@circuit@bipole@flow@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@flow@below
+ \def\pgf@circ@dir{south}\else\def\pgf@circ@dir{north}
+ \fi
+ \fi\fi
+ \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266
+ \ifpgf@circuit@bipole@flow@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@flow@below
+ \def\pgf@circ@dir{east}\else \def\pgf@circ@dir{west}
+ \fi
+ \fi\fi
+ \ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356
+ \ifpgf@circuit@bipole@flow@below
+ \def\pgf@circ@dir{north east}\else\def\pgf@circ@dir{south west}
+ \fi
+ \fi\fi
+ \ifnum\pgfcircmathresult <5
+ \ifpgf@circuit@bipole@flow@below
+ \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south}
+ \fi
+ \fi
+ \ifnum\pgfcircmathresult >355
+ \ifpgf@circuit@bipole@flow@below
+ \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south}
+ \fi
+ \fi
+
+ \ifpgf@circuit@bipole@flow@below
+ \def\pgf@circ@bipole@flow@label@where{-90}
+ \else
+ \def\pgf@circ@bipole@flow@label@where{+90}
+ \fi
+ % export anchor position (if not needed, is always the same macro)
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Flab-anchor\endcsname{\pgf@circ@dir}
+ }
+
+ \pgfextra{\def\pgf@temp{short}\edef\pgf@circ@temp{\ctikzvalof{bipole/kind}}}
+ \ifx\pgf@circ@temp\pgf@temp%draw current at a short at middle of the line
+ coordinate (pgfcirc@Ffrom@flat) at (\tikztostart)
+ coordinate (pgfcirc@Fto@flat) at (\tikztotarget)
+ \else% normal bipole or source
+ \ifpgf@circuit@bipole@flow@before
+ coordinate (pgfcirc@Ffrom@flat) at (\tikztostart)
+ coordinate (pgfcirc@Fto@flat) at (pgfcirc@anchorstartnode)
+ \else
+ coordinate (pgfcirc@Ffrom@flat) at (pgfcirc@anchorendnode)
+ coordinate (pgfcirc@Fto@flat) at (\tikztotarget)
+ \fi
+ \fi
+ \pgfextra{
+ \newdimen{\absfshift}
+ \def\flow@offset{\ctikzvalof{flow/offset}\pgf@circ@Rlen}
+ \absfshift=\flow@offset
+ \ifpgf@circuit@bipole@flow@backward
+ \pgfmathsubtract{\pgf@circ@rounded@dir}{180}
+ \edef\pgf@circ@rounded@dir{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+ }
+ \ifpgf@circuit@bipole@flow@below
+ coordinate (pgfcirc@Ffrom@up) at ($(pgfcirc@Ffrom@flat) ! \absfshift !-90: (pgfcirc@Fto@flat)$)
+ coordinate (pgfcirc@Fto@up) at ($(pgfcirc@Fto@flat) ! \absfshift !90: (pgfcirc@Ffrom@flat)$)
+ \else
+ coordinate (pgfcirc@Ffrom@up) at ($(pgfcirc@Ffrom@flat) ! \absfshift !90: (pgfcirc@Fto@flat)$)
+ coordinate (pgfcirc@Fto@up) at ($(pgfcirc@Fto@flat) ! \absfshift !-90: (pgfcirc@Ffrom@flat)$)
+ \fi
+ coordinate (\pgfcirc@a@prefix-Fpos) at ($(pgfcirc@Ffrom@up) ! \ctikzvalof{flow/distance} !(pgfcirc@Fto@up)$)
+ \pgfextra{
+ \absfshift=0.25\pgf@circ@Rlen% This is half size of the "flowarrow" shape!
+ }
+ coordinate (\pgfcirc@a@prefix-Ffrom) at ($(\pgfcirc@a@prefix-Fpos)!\absfshift!(pgfcirc@Ffrom@up)$)
+ coordinate (\pgfcirc@a@prefix-Fto) at ($(\pgfcirc@a@prefix-Fpos)!\absfshift!(pgfcirc@Fto@up) $)
+ %
+ % coordinate (\pgfcirc@a@prefix-Fpos) at
+ % ([yshift=\flow@offset]$(\pgfcirc@a@prefix-Ffrom)! \ctikzvalof{flow/distance} !(\pgfcirc@a@prefix-Fto)$)
+ % export the flow direction
+ \pgfextra{\expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Farrow-direction\endcsname{\pgf@circ@rounded@dir}}
+ % if the flow label is not empty (in which case we have already all the anchors)
+ \pgf@circ@ifkeyempty{bipole/flow/label/name}\else
+ % the flow arrow is really a node "flowarrow", not a real arrow
+ \ifpgfcirc@do@f@symbols
+ node[flowarrow, rotate=\pgf@circ@rounded@dir, anchor=center](Farrowpos) at (\pgfcirc@a@prefix-Fpos) {}
+ \else
+ node[flowarrow, rotate=\pgf@circ@rounded@dir, anchor=center,
+ circuitikz/phantom@flowarrow](Farrowpos) at (\pgfcirc@a@prefix-Fpos) {}
+ \fi
+ node[anchor=\pgf@circ@dir, \circuitikzbasekey/bipole flow style]
+ (\ctikzvalof{bipole/name}flow) at (Farrowpos.\pgf@circ@bipole@flow@label@where) {\pgf@circ@finallabels{flow/label}}
+ \fi
+ % adjust from and to before exporting --- it's much more simple like this then rework the algorithm above
+ \ifpgf@circuit@bipole@flow@backward
+ \pgfcirc@swap@coordinates{\pgfcirc@a@prefix-Ffrom}{\pgfcirc@a@prefix-Fto}
+ \fi
+
+}
+
+%%%---------- close: tex/pgfcircflow
+
+\ifpgf@circ@siunitx
+ \RequirePackage{xstring}[2009/03/13]
+ %\expandafter\let\csname angstrom\endcsname\relax
+ \RequirePackage{siunitx}
+\fi
+
+%% This should be executed *after* all the options!
+%
+% Remove the warning; nobody cares.
+%
+% \AtEndOfPackage{%
+% \ifpgf@circ@explicitvdir\else
+% \PackageWarningNoLine{circuitikz}{%
+% You did not specify one of the voltage directions:\MessageBreak
+% \space\space oldvoltagedirection, nooldvoltagedirection, \MessageBreak
+% \space\space RPvoltages or EFvoltages \MessageBreak
+% Default directions may have changed, \MessageBreak
+% please check the manual%
+% }
+% \fi
+% }
+
+\newenvironment{circuitikz}{\begin{tikzpicture}}{\end{tikzpicture}}
+%override (unused) circuitikz environment for compability to externalization)
+\let\circuitikz\tikzpicture
+\let\endcircuitikz\endtikzpicture
+
+\endinput
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
new file mode 100644
index 0000000000..a852552611
--- /dev/null
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz-1.4.6.sty
@@ -0,0 +1,21 @@
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+\NeedsTeXFormat{LaTeX2e}
+
+\def\pgfcircversion{1.4.6}
+\def\pgfcircversiondate{2022/02/04}
+
+\ProvidesPackage{circuitikz-1.4.6}
+[\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion]
+
+\input{circuitikz-1.4.6-body.tex}
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
index 67ed70f53b..b5fb2aeff7 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16,8 +16,8 @@
\providecommand\DeclareRelease[3]{}
\providecommand\DeclareCurrentRelease[2]{}
-\def\pgfcircversion{1.4.5}
-\def\pgfcircversiondate{2021/12/06}
+\def\pgfcircversion{1.4.6}
+\def\pgfcircversiondate{2022/02/04}
\DeclareRelease{0.4}{2012/12/20}{circuitikz-0.4-body.tex}
\DeclareRelease{v0.4}{2012/12/20}{circuitikz-0.4-body.tex}
@@ -37,6 +37,8 @@
\DeclareRelease{v1.1.2}{2020/05/17}{circuitikz-1.1.2-body.tex}
\DeclareRelease{1.2.7}{2020/12/27}{circuitikz-1.2.7-body.tex}
\DeclareRelease{v1.2.7}{2020/12/27}{circuitikz-1.2.7-body.tex}
+\DeclareRelease{1.4.6}{2022/02/04}{circuitikz-1.4.6-body.tex}
+\DeclareRelease{v1.4.6}{2022/02/04}{circuitikz-1.4.6-body.tex}
\DeclareCurrentRelease{\pgfcircversion}{\pgfcircversiondate}
\ProvidesPackage{circuitikz}%
diff --git a/graphics/pgf/contrib/circuitikz/tex/circutikz-0.9.6.sty b/graphics/pgf/contrib/circuitikz/tex/circutikz-0.9.6.sty
index b5e431370b..8605170b48 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circutikz-0.9.6.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circutikz-0.9.6.sty
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
index 51af9705f5..9cc0b56eaf 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -219,6 +219,21 @@
\fi
}
+% auxiliary macro to reset some thing in paths, for background images.
+% use with care and ALWAYS inside a \pgfscope, see here:
+% https://matrix.to/#/!NuxCISwYQJuyWwNsEI:matrix.org/$vQO6luq1F66LJ79dERmaqKI46qMBcjStqYCPi725uZE?via=matrix.org&via=2krueger.de&via=im.f3l.de
+% Thanks to @muzimuzhi
+%
+\def\pgf@circ@reset@arrows{%
+ \pgfsetshortenstart{+0pt}\pgfsetshortenend{+0pt}\pgfsetarrows{-}%
+}
+\def\pgf@circ@reset@rounded{%
+ \pgfsetcornersarced{\pgfpointorigin}%
+}
+\def\pgf@circ@reset@arrows@rounded{%
+ \pgf@circ@reset@arrows\pgf@circ@reset@rounded
+}
+
%%>>>
%% font changes compatible with plain/LaTeX/ConTeXt%<<<1
@@ -462,7 +477,8 @@
\pgf@circ@res@down = \pgf@y
\pgf@circ@scaled@Rlen=\scaledRlen
\pgfstartlinewidth=\pgflinewidth
- \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners!
+ % no rounded corners nor default arrows on bipole's bodies
+ \pgf@circ@reset@arrows@rounded
#7
\pgfsetlinewidth{\pgfstartlinewidth}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
index 447c2104fb..d41ba541b3 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
index 77b02d5319..852042033e 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
index 3d03925b52..b34bea8b1c 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
index ef115d4c5d..00be2b6252 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
index 08f58c1b70..69235549a7 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -417,17 +417,18 @@
{\ctikzvalof{bipoles/tline/width}}
{
\pgf@circ@res@step=.2\pgf@circ@res@right % half x axis
- \begin{pgftransparencygroup}
+ \pgfscope
\pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
\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}}
+ \pgfpatharc{-90}{90}{\pgf@circ@res@step and \pgf@circ@res@up}
\pgf@circ@draworfill
- \pgfpathellipse{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{0pt}}
- {\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{-\pgf@circ@res@up}}
- \pgf@circ@draworfill
- \end{pgftransparencygroup}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpatharc{-90}{90}{-\pgf@circ@res@step and -\pgf@circ@res@up}
+ \pgfusepath{stroke}
+ \endpgfscope
\pgfsetlinewidth{\pgfstartlinewidth}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{0pt}}
\pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
@@ -488,18 +489,18 @@
\pgf@circ@scaled@Rlen=\scaledRlen
\pgf@circ@res@step=\ctikzvalof{bipoles/tline/width}\pgf@circ@scaled@Rlen
- \pgfscope\begin{pgftransparencygroup}
- \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}}
- \pgf@circ@maybefill
+ \pgfscope
\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}}
\pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpatharc{90}{-90}{-0.125\pgf@circ@res@step and -0.25\pgf@circ@res@step}
\pgf@circ@draworfill
- \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}}
- \pgfusepath{draw}
- \end{pgftransparencygroup} \endpgfscope
+ \pgfpathmoveto{\pgfpoint{0.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}
+ \pgfusepath{stroke}
+ \endpgfscope
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0pt}}
\pgfusepath{draw}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
index 30a4a26800..a53bbe03f2 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
index 405cfd45bb..4518f16479 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
index 1b2e77e613..aa481caaf9 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
index 4ee224cc9d..f489ac58e6 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -584,6 +584,7 @@
\behindforegroundpath{
\pgfscope
\ifpgfcirc@really@draw@currarrow
+ \pgf@circ@reset@arrows@rounded
\pgf@circ@res@step = \pgf@circ@Rlen
\divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
@@ -591,7 +592,7 @@
\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}}
+ \pgfpathclose
\pgfsetcolor{\ctikzvalof{color}}
\pgfusepath{draw,fill}
\fi
@@ -639,6 +640,7 @@
\behindforegroundpath{
\pgfscope
\ifpgfcirc@really@draw@flowarrow
+ \pgf@circ@reset@arrows@rounded
\pgf@circ@res@step = \pgf@circ@Rlen
\divide \pgf@circ@res@step by 4
\pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{0pt}}
@@ -681,17 +683,16 @@
\behindforegroundpath{
\pgfscope
+ \pgf@circ@reset@arrows@rounded
\pgf@circ@res@step = \pgf@circ@Rlen
\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}}
+ \pgfpathclose
\pgfsetcolor{\ctikzvalof{color}}
\pgfusepath{fill}
-
\endpgfscope
}
}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
index 6f07d6042f..d0cf0b295a 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
index c132b16c85..d50d411165 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
index 75543f42a5..4b6c22dfea 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
index 1a1b42393c..51d31416c1 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -31,10 +31,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -1993,10 +1993,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2065,10 +2065,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2871,10 +2871,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3887,10 +3887,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -8991,10 +8991,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -14699,10 +14699,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -15850,10 +15850,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17628,10 +17628,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17997,10 +17997,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18496,10 +18496,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18711,10 +18711,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -19008,10 +19008,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
index b04a95bbb5..d3ba1d9871 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -32,10 +32,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2138,10 +2138,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2224,10 +2224,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3030,10 +3030,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4046,10 +4046,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -9943,10 +9943,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -15850,10 +15850,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -17137,10 +17137,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -19831,10 +19831,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20200,10 +20200,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20749,10 +20749,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -20964,10 +20964,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21261,10 +21261,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
index 3d251be436..91edd9d961 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -32,10 +32,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirc.defines
%%%---------- open: tex/pgfcirc.defines.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2353,10 +2353,10 @@
%%%---------- close: tex/pgfcirc.defines
%%%%%%%%%%% Springe nach tex/pgfcircutils
%%%---------- open: tex/pgfcircutils.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -2448,10 +2448,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircshapes
%%%---------- open: tex/pgfcircshapes.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -3260,10 +3260,10 @@
%%%---------- close: tex/pgfcircshapes
%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
%%%---------- open: tex/pgfcircmonopoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -4362,10 +4362,10 @@
%%%---------- close: tex/pgfcircmonopoles
%%%%%%%%%%% Springe nach tex/pgfcircbipoles
%%%---------- open: tex/pgfcircbipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -10525,10 +10525,10 @@
%%%---------- close: tex/pgfcircbipoles
%%%%%%%%%%% Springe nach tex/pgfcirctripoles
%%%---------- open: tex/pgfcirctripoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -16959,10 +16959,10 @@
%%%---------- close: tex/pgfcirctripoles
%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
%%%---------- open: tex/pgfcircquadpoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -18705,10 +18705,10 @@
%%%---------- close: tex/pgfcircquadpoles
%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
%%%---------- open: tex/pgfcircmultipoles.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -21736,10 +21736,10 @@
%%%%%%%%%%% Springe nach tex/pgfcirclabel
%%%---------- open: tex/pgfcirclabel.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22107,10 +22107,10 @@
%%%---------- close: tex/pgfcirclabel
%%%%%%%%%%% Springe nach tex/pgfcircvoltage
%%%---------- open: tex/pgfcircvoltage.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22738,10 +22738,10 @@
%%%---------- close: tex/pgfcircvoltage
%%%%%%%%%%% Springe nach tex/pgfcirccurrent
%%%---------- open: tex/pgfcirccurrent.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -22968,10 +22968,10 @@
%%%---------- close: tex/pgfcirccurrent
%%%%%%%%%%% Springe nach tex/pgfcircflow
%%%---------- open: tex/pgfcircflow.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -23292,10 +23292,10 @@
%%%%%%%%%%% Springe nach tex/pgfcircpath
%%%---------- open: tex/pgfcircpath.tex
-% Copyright 2018-2020 by Romano Giannetti
-% Copyright 2015-2020 by Stefan Lindner
-% Copyright 2013-2020 by Stefan Erhardt
-% Copyright 2007-2020 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
new file mode 100644
index 0000000000..d06f2716fd
--- /dev/null
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.4.6.tex
@@ -0,0 +1,26150 @@
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+\def\pgfcircversion{1.4.6-827ff2b}
+\def\pgfcircversiondate{2022/02/04}
+\writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
+
+\usemodule[tikz]
+
+\startmodule[circuitikzgit]
+\usetikzlibrary[calc]
+\usetikzlibrary[arrows.meta, bending]
+\usetikzlibrary[fpu] % may be needed for use fpu reciprocal (v1.0.1)
+
+\unprotect
+
+\edef\tikzatcode{\the\catcode`\@}
+\edef\tikzbarcode{\the\catcode`\|}
+\edef\tikzexclaimcode{\the\catcode`\!}
+\catcode`\@=11
+\catcode`\|=12
+\catcode`\!=12
+
+%%%%%%%%%%% Springe nach tex/pgfcirc.defines
+%%%---------- open: tex/pgfcirc.defines.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+%
+% This file has folding marks for vim (See last line).
+%
+
+%
+% This file is loaded *before* the options for the package are executed, mainly
+% for the following three ifs
+%
+% these three ifs are fundamental for the package loading options;
+% do not move away
+\newif\ifpgf@circ@siunitx
+\newif\ifpgf@circ@siunitx@res
+\newif\ifpgf@circuit@compat
+
+%% Key managements%<<<1
+
+\long\def\pgf@circ@comment#1{}
+
+\def\circuitikzbasekey{/tikz/circuitikz}
+
+\pgfkeys{\circuitikzbasekey/.is family}
+
+\def\circuitikzset{\expandafter\pgfqkeys\expandafter{\circuitikzbasekey}}
+\let\ctikzset\circuitikzset
+\def\ctikzvalof#1{\pgfkeysvalueof{\circuitikzbasekey/#1}}
+\def\ctikzsetvalof#1#2{\pgfkeyssetvalue{\circuitikzbasekey/#1}{#2}}
+
+\pgfkeys{\circuitikzbasekey/.search also={/tikz}}
+%%>>>
+
+%% Temporary Counters and dimensions%<<<1
+%% Temporary Counters
+\newcount\pgf@circ@count@a
+\newcount\pgf@circ@count@b
+\newcount\pgf@circ@count@c
+%%%%%%%%%%%%
+%% Dimensions
+% coordinate
+\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
+\newdimen\pgf@circ@res@temp
+% Base len for all circuitikz
+\newdimen\pgf@circ@Rlen
+% scaled length for internal use in scalable shapes
+\newdimen\pgf@circ@scaled@Rlen
+\ctikzset{bipoles/length/.code={\pgf@circ@Rlen = #1\pgf@circ@scaled@Rlen=\pgf@circ@Rlen}}
+\pgf@circ@Rlen = 1.4cm
+% by default scale is 1.0
+\pgf@circ@scaled@Rlen=\pgf@circ@Rlen
+% inital thickness
+\newdimen \pgfstartlinewidth
+%%>>>
+
+% arrow tips macros and utilities %<<<1
+
+% the default arrow is latexslim, which has been ported over old arrows library (deprecated)
+% see https://tex.stackexchange.com/questions/234084/latex-arrow-tip-with-arrows-meta-library
+% this was the original definition of latex' tips, renamed to avoid clashes
+%
+\pgfarrowsdeclare{latexslim}{latexslim}
+{
+ \pgfutil@tempdima=0.28pt%
+ \advance\pgfutil@tempdima by.3\pgflinewidth%
+ \pgfarrowsleftextend{+-4\pgfutil@tempdima}
+ \pgfarrowsrightextend{+6\pgfutil@tempdima}
+}
+{
+ \pgfutil@tempdima=0.28pt%
+ \advance\pgfutil@tempdima by.3\pgflinewidth%
+ \pgfpathmoveto{\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}}
+ \pgfpathcurveto
+ {\pgfqpoint{3.5\pgfutil@tempdima}{.5\pgfutil@tempdima}}
+ {\pgfqpoint{-1\pgfutil@tempdima}{1.5\pgfutil@tempdima}}
+ {\pgfqpoint{-4\pgfutil@tempdima}{3.75\pgfutil@tempdima}}
+ \pgfpathcurveto
+ {\pgfqpoint{-1.5\pgfutil@tempdima}{1\pgfutil@tempdima}}
+ {\pgfqpoint{-1.5\pgfutil@tempdima}{-1\pgfutil@tempdima}}
+ {\pgfqpoint{-4\pgfutil@tempdima}{-3.75\pgfutil@tempdima}}
+ \pgfpathcurveto
+ {\pgfqpoint{-1\pgfutil@tempdima}{-1.5\pgfutil@tempdima}}
+ {\pgfqpoint{3.5\pgfutil@tempdima}{-.5\pgfutil@tempdima}}
+ {\pgfqpoint{6\pgfutil@tempdima}{0\pgfutil@tempdima}}
+ \pgfpathclose
+ \pgfusepathqfill
+}
+
+\pgfarrowsdeclarereversed{latexslim reversed}{latexslim reversed}{latexslim}{latexslim}
+
+% select the arrows using available defaults.
+\def\pgfcirc@arrow@default{default}
+% choose the arrows to use. Use #2 and #3 if the key is equal to "default"
+% arguments: type, default start, default end
+\def\pgfcirc@set@arrows#1#2#3{%
+ \pgfkeysifdefined{\circuitikzbasekey/#1 start arrow}%
+ {\edef\@@start{\ctikzvalof{#1 start arrow}}}%
+ {\edef\@@start{\pgfcirc@arrow@default}}
+ \pgfkeysifdefined{\circuitikzbasekey/#1 end arrow}%
+ {\edef\@@end{\ctikzvalof{#1 end arrow}}}%
+ {\edef\@@end{\pgfcirc@arrow@default}}
+ \ifx\@@start\pgfcirc@arrow@default
+ \pgfsetarrowsstart{#2}%
+ \else
+ \pgfsetarrowsstart{\@@start}%
+ \fi
+ \ifx\@@end\pgfcirc@arrow@default
+ \pgfsetarrowsend{#3}%
+ \else
+ \pgfsetarrowsend{\@@end}%
+ \fi
+}
+
+\def\pgf@circ@declare@family@arrows#1{%
+ \ctikzset{#1 start arrow/.initial={default}}
+ \ctikzset{#1 end arrow/.initial={default}}
+ \tikzset{#1 start arrow/.style={\circuitikzbasekey/#1 start arrow={##1}}}
+ \tikzset{#1 end arrow/.style={\circuitikzbasekey/#1 end arrow={##1}}}
+}
+%%>>>
+
+%% Macros to do things depending on the class%<<<1
+
+\def\pgf@circ@setifdefinedfill#1#2{%
+ % if \ctikzclass is defined and \ctikzclass/fill is defined and is not none:
+ % set the fill color and execute \pgfusepath{#1}, else execute \pgfusepath{#2}
+ \ifdefined\ctikzclass
+ \pgfkeysifdefined{\circuitikzbasekey/\ctikzclass/fill}%
+ {% yes, it's defined
+ \edef\@@tmp{\ctikzvalof{\ctikzclass/fill}}\edef\@@none{none}%
+ \ifx\@@tmp\@@none % but it's none
+ \pgfusepath{#2}%
+ \else
+ \pgfsetfillcolor{\@@tmp}%
+ \pgfusepath{#1}%
+ \fi
+ }{% the class is defined but the fill key not; use #2
+ \pgfusepath{#2}%
+ }
+ \else
+ \pgfusepath{#2}%
+ \fi
+}
+
+%% Macro to fill or draw
+
+\def\pgf@circ@draworfill{%
+ \ifx\tikz@fillcolor\pgfutil@empty
+ \pgf@circ@setifdefinedfill{draw,fill}{draw}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \pgfusepath{draw, fill}
+ \fi
+}
+
+\def\pgf@circ@draworfillandclip{%
+ \ifx\tikz@fillcolor\pgfutil@empty
+ \pgf@circ@setifdefinedfill{draw, clip, fill}{draw, clip}
+ \pgfusepath{draw, clip}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \pgfusepath{draw, clip, fill}
+ \fi
+}
+
+\def\pgf@circ@maybefill{%
+ \ifx\tikz@fillcolor\pgfutil@empty
+ \pgf@circ@setifdefinedfill{fill}{discard}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \pgfusepath{fill}
+ \fi
+}
+
+%% Macros for setting linewidth
+% #1 is the legacy class (bipoles, tripoles) etc
+% #2 is the reference linewidth
+\def\pgf@circ@setlinewidth#1#2{%
+ \ifdefined\ctikzclass
+ \pgfkeysifdefined{\circuitikzbasekey/\ctikzclass/thickness}%
+ {% yes, it's defined
+ \edef\@@tmp{\ctikzvalof{\ctikzclass/thickness}}\edef\@@none{none}%
+ \ifx\@@tmp\@@none % but it's none
+ \pgfsetlinewidth{\ctikzvalof{#1/thickness}#2}% passthrough legacy class
+ \else
+ \pgfsetlinewidth{\@@tmp #2}%
+ \fi
+ }{ % key not defined, do the legacy thing
+ \pgfsetlinewidth{\ctikzvalof{#1/thickness}#2}%
+ }% Ok, do nothing
+ \else % no class
+ \pgfsetlinewidth{\ctikzvalof{#1/thickness}#2}%
+ \fi
+}
+% use \pgf@circ@setlinewidth{none}{\pgflinewidth} if there is no legacy case
+\ctikzset{none/thickness/.initial=1.0} % do not touch
+
+% set thickness relative to current thickness if exists class and key
+\def\pgf@circ@set@relative@thickness#1{%
+ \ifdefined\ctikzclass
+ \pgfkeysifdefined{\circuitikzbasekey/\ctikzclass/#1}
+ {% yes, it's defined
+ \pgfsetlinewidth{\ctikzvalof{\ctikzclass/#1}\pgflinewidth}%
+ }{}
+ \fi
+}
+
+% auxiliary macro to reset some thing in paths, for background images.
+% use with care and ALWAYS inside a \pgfscope, see here:
+% https://matrix.to/#/!NuxCISwYQJuyWwNsEI:matrix.org/$vQO6luq1F66LJ79dERmaqKI46qMBcjStqYCPi725uZE?via=matrix.org&via=2krueger.de&via=im.f3l.de
+% Thanks to @muzimuzhi
+%
+\def\pgf@circ@reset@arrows{%
+ \pgfsetshortenstart{+0pt}\pgfsetshortenend{+0pt}\pgfsetarrows{-}%
+}
+\def\pgf@circ@reset@rounded{%
+ \pgfsetcornersarced{\pgfpointorigin}%
+}
+\def\pgf@circ@reset@arrows@rounded{%
+ \pgf@circ@reset@arrows\pgf@circ@reset@rounded
+}
+
+%%>>>
+
+%% font changes compatible with plain/LaTeX/ConTeXt%<<<1
+%% thanks to Henri Menke https://github.com/circuitikz/circuitikz/issues/285#issuecomment-537224605
+
+\ifpgfutil@format@is@latex
+ \long\def\pgf@circ@font@tiny{\tiny}
+ \long\def\pgf@circ@font@small{\small}
+ \long\def\pgf@circ@font@bold{\textbf}
+ \long\def\pgf@circ@font@boldmath{\boldmath}
+ \long\def\pgf@circ@font@sixbm{\fontsize{6}{7}\selectfont\boldmath}
+ \long\def\pgf@circ@font@tenbm{\fontsize{10}{12}\selectfont\boldmath}
+ \long\def\pgf@circ@font@twelve{\fontsize{12}{14}\selectfont}
+\else\ifpgfutil@format@is@plain
+ \long\def\pgf@circ@font@tiny{\fiverm}
+ \long\def\pgf@circ@font@small{\sevenrm}
+ \long\def\pgf@circ@font@bold#1{{\bf#1}}
+ \long\def\pgf@circ@font@boldmath{\bf} % to be tested
+ \long\def\pgf@circ@font@sixbm{\sevenrm\bf} %
+ \long\def\pgf@circ@font@tenbm{\tenrm\bf} %
+ \long\def\pgf@circ@font@twelve{\twelverm} %
+\else\ifpgfutil@format@is@context
+ \long\def\pgf@circ@font@tiny{\tfxx}
+ \long\def\pgf@circ@font@small{\tfx}
+ \long\def\pgf@circ@font@bold{\bold}
+ \long\def\pgf@circ@font@boldmath{\bold} % to be tested
+ \long\def\pgf@circ@font@sixbm{\tfx\bold} %
+ \long\def\pgf@circ@font@tenbm{\normal\bold}%
+ \long\def\pgf@circ@font@twelve{\tfa} %
+\fi\fi\fi
+
+
+%
+% Thanks to Phelype Oleinik https://tex.stackexchange.com/a/520806/38080
+%
+% this is needed to avoid problems with \ConTeXt
+\ifcsname normalunexpanded\endcsname
+ \let\pgfcircutil@unexpanded\normalunexpanded
+\else
+ \let\pgfcircutil@unexpanded\unexpanded
+\fi
+% minimally expand a pgfkey to check if it's {}/undefined or filled.
+\def\unexpandedvalueof#1{%
+ \pgfcircutil@unexpanded\expandafter\expandafter
+ \expandafter\pgf@circ@valueof@chk\pgfkeysvalueof{#1}}
+\def\pgf@circ@valueof@chk#1{%
+ \ifx\relax#1%
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ {{}}% #1 is \relax, so consider empty
+ {\expandafter{#1}}% otherwise, leave the key after one more expansion
+}%
+%>>>
+
+%% 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{%
+ \pgfcircdeclarebipolescaled{default}}
+
+%% Generic macro for defining a bipole shape
+% #1 - scale factor
+% #2 - additional anchors
+% #3 - lower y-size of the bipole (from the center).
+% #4 - #shape is the name of the shape
+% #5 - upper y-size of the bipole (from the center)
+% #6 - width of the bipole
+% #7 - macros drawing the bipole
+%
+\long\def\pgfcircdeclarebipolescaled#1#2#3#4#5#6#7{
+ \pgfdeclareshape{#4shape}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{#1}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\northeast}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@y=#5\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=#6\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor{\northeastborder}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@y=#5\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y
+ \pgf@x=#6\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x
+ }
+ \savedanchor{\southwestborder}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@y=-#3\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{bipoles/border margin}\pgf@y
+ \pgf@x=-#6\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=\ctikzvalof{bipoles/border margin}\pgf@x
+ }
+ \savedanchor{\southwest}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@y=-#3\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-#6\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor{\centerpoint}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@down=-#3\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up=#5\pgf@circ@scaled@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}{
+ \northeast
+ \pgf@x=0cm
+ }
+ \anchor{north east}{
+ \northeast
+ }
+ \anchor{north west}{
+ \northeast
+ \pgf@x=-\pgf@x
+ }
+ \anchor{ne}{
+ \northeast
+ }
+ \anchor{nw}{
+ \northeast
+ \pgf@x=-\pgf@x
+ }
+ \anchor{e}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{s}{
+ \southwest
+ \pgf@x=0cm
+ }
+ \anchor{south east}{
+ \southwest
+ \pgf@x=-\pgf@x
+ }
+ \anchor{south west}{
+ \southwest
+ }
+ \anchor{se}{
+ \southwest
+ \pgf@x=-\pgf@x
+ }
+ \anchor{sw}{
+ \southwest
+ }
+ \anchor{w}{
+ \southwest
+ \pgf@y=0cm
+ }
+ \anchor{north}{
+ \northeast
+ \pgf@x=0cm
+ }
+ \anchor{east}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{south}{
+ \southwest
+ \pgf@x=0cm
+ }
+ \anchor{west}{
+ \southwest
+ \pgf@y=0cm
+ }
+ \anchor{right}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{above}{
+ \northeast
+ \pgf@x=0cm
+ }
+ \anchor{left}{
+ \southwest
+ \pgf@y=0cm
+ }
+ \anchor{below}{
+ \southwest
+ \pgf@x=0cm
+ }
+ \anchor{a}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{b}{
+ \southwest
+ \pgf@y=0cm
+ }
+ \savedanchor{\textanchor}{%
+ \pgf@y=\ht\pgfnodeparttextbox
+ \pgf@x=-.5\wd\pgfnodeparttextbox
+ }
+ \anchor{text}{
+ \textanchor
+ }
+ \anchorborder{%
+ \ifpgf@circuit@bipole@inverted
+ \pgf@circ@res@left=-\pgf@x
+ \pgf@circ@res@up=-\pgf@y
+ \else
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \fi
+ \ifdim\pgf@circ@res@up>0cm
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\northeastborder}
+ \else
+ \southwestborder
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{-\pgf@x}{-\pgf@y}}
+ \fi
+ }
+
+ #2
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgfstartlinewidth=\pgflinewidth
+ % no rounded corners nor default arrows on bipole's bodies
+ \pgf@circ@reset@arrows@rounded
+ #7
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ }
+ }
+}% %>>>
+
+%% anchor adjustment macros%<<<
+
+% Extend the border anchor position by the specified factors on the right-top (north east corner)
+% and the left-down (southwest border). Argument must be number (possibly decimal) without sign
+
+\def\pgfcirc@border@extend@full#1#2#3#4{% right, top, left, down
+ \anchorborder{%
+ \ifpgf@circuit@bipole@inverted
+ \pgf@circ@res@left=-\pgf@x
+ \pgf@circ@res@up=-\pgf@y
+ \else
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \fi
+ \ifdim\pgf@circ@res@up>0cm
+ \northeastborder
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{#1\pgf@x}{#2\pgf@y}}
+ \else
+ \southwestborder
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{-#3\pgf@x}{-#4\pgf@y}}
+ \fi
+ }
+}
+
+% Just up and down (very common)
+\def\pgfcirc@border@extend@updown#1#2{\pgfcirc@border@extend@full{1}{#1}{1}{#2}}% %>>>
+
+% text position in some component.%<<<1
+% (added with ieeestd logic ports. Maybe to be extended to other components,
+% like amplifiers)
+%
+\newif\ifpgf@circ@center@text\pgf@circ@center@texttrue
+\tikzset{component text/.is choice}%
+\tikzset{component text/center/.code={\pgf@circ@center@texttrue}}%
+\tikzset{component text/left/.code={\pgf@circ@center@textfalse}}%
+\ctikzset{component text/.is choice}%
+\ctikzset{component text/center/.code={\pgf@circ@center@texttrue}}%
+\ctikzset{component text/left/.code={\pgf@circ@center@textfalse}}%
+\ctikzset{left text distance/.initial=0.3em}%
+%>>>
+
+% voltage direction options%<<<1
+
+\newif\ifpgf@circ@oldvoltagedirection % default false
+\newif\ifpgf@circ@explicitvdir
+\newif\ifpgf@circ@fixbatteries
+
+\ctikzset{voltage dir/.is choice}
+\ctikzset{voltage dir/old/.code={\pgf@circ@oldvoltagedirectiontrue\pgf@circ@fixbatteriesfalse}}
+\ctikzset{voltage dir/noold/.code={\pgf@circ@oldvoltagedirectionfalse\pgf@circ@fixbatteriesfalse}}
+\ctikzset{voltage dir/RP/.code={\pgf@circ@oldvoltagedirectiontrue\pgf@circ@fixbatteriestrue}}
+\ctikzset{voltage dir/EF/.code={\pgf@circ@oldvoltagedirectionfalse\pgf@circ@fixbatteriestrue}}
+\tikzset{voltage dir/.style={circuitikz/voltage dir=#1}}%
+%>>>
+
+% bipole definitions for path component and text decorations%%<<<1
+%
+% Option "t=*" for nodes
+\pgfkeys{/tikz/t/.add code={}{\ctikzset{text=#1}}}
+%
+\ctikzset{bipole/.is family}
+\ctikzset{bipole/kind/.initial=}
+\ctikzset{bipole/name/.initial=}
+\newif\ifpgf@circuit@bipole@isvoltage
+\ctikzset{bipole/is voltage/.is if=pgf@circuit@bipole@isvoltage}
+\newif\ifpgf@circuit@bipole@override@source@vif
+\ctikzset{bipole/override source vif/.is if=pgf@circuit@bipole@override@source@vif}
+\newif\ifpgf@circuit@bipole@voltageoutsideofsymbol
+\ctikzset{bipole/is voltageoutsideofsymbol/.is if=pgf@circuit@bipole@voltageoutsideofsymbol}
+\newif\ifpgf@circuit@bipole@strokedsymbol
+\ctikzset{bipole/is strokedsymbol/.is if=pgf@circuit@bipole@strokedsymbol}
+\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/flow/.is family}
+\newif\ifpgf@circuit@bipole@flow@backward
+\ctikzset{bipole/flow/direction/.is choice}
+\ctikzset{bipole/flow/direction/forward/.code={\pgf@circuit@bipole@flow@backwardfalse}}
+\ctikzset{bipole/flow/direction/backward/.code={\pgf@circuit@bipole@flow@backwardtrue}}
+\newif\ifpgf@circuit@bipole@flow@before
+\ctikzset{bipole/flow/x position/.is choice}
+\ctikzset{bipole/flow/x position/after/.code={\pgf@circuit@bipole@flow@beforefalse}}
+\ctikzset{bipole/flow/x position/before/.code={\pgf@circuit@bipole@flow@beforetrue}}
+\newif\ifpgf@circuit@bipole@flow@below
+\ctikzset{bipole/flow/y position/.is choice}
+\ctikzset{bipole/flow/y position/above/.code={\pgf@circuit@bipole@flow@belowfalse}}
+\ctikzset{bipole/flow/y position/below/.code={\pgf@circuit@bipole@flow@belowtrue}}
+\ctikzset{bipole/flow/label/unit/.initial=}
+\ctikzset{bipole/flow/label/name/.initial=}
+\ctikzset{flow/distance/.initial = .5}
+\ctikzset{flow/offset/.initial = .2}%distance between flow-arrow and conductor
+
+\ctikzset{bipole/label/.is family}
+\ctikzset{bipole/label/position/.initial=90}
+\ctikzset{bipole/label/unit/.initial=}
+\ctikzset{bipole/label/name/.initial=}
+\ctikzset{bipole/annotation/.is family}
+\ctikzset{bipole/annotation/position/.initial=-90}
+\ctikzset{bipole/annotation/unit/.initial=}
+\ctikzset{bipole/annotation/name/.initial=}
+
+
+\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}}}
+%%>>>
+
+% traditional styles %<<<1
+%
+\ctikzset{thickness/.initial=2}
+\ctikzset{color/.initial=black}
+\pgfkeys{/tikz/color/.add code={}{\ctikzset{color={#1}}}}
+\ctikzset{bipoles/border margin/.initial=1.1}
+\ctikzset{bipoles/thickness/.initial=2}
+\ctikzset{tripoles/thickness/.initial=2}
+\ctikzset{quadpoles/thickness/.initial=2}
+\ctikzset{nodes width/.initial=.04}
+%%>>>
+
+% Styles definitions and macros%<<<1
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% main style definitions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% load a style file: search ctikzstyle-NAME.tex in path
+\def\ctikzloadstyle#1{%
+ \pgfutil@InputIfFileExists{ctikzstyle-#1}{}{%
+ \tikzerror{I did not find the circuitikz style #1}}%
+}
+
+% load and enact a style
+\def\ctikzsetstyle#1{%
+ \ctikzloadstyle{#1}%
+ \tikzset{#1 circuit style}%
+}
+
+% global style parameters
+\ctikzset{default/scale/.initial=1.0} % do not touch
+\ctikzset{default/fill/.initial=none} % do not touch
+\ctikzset{default/thickness/.initial=none} % do not touch
+% default is use as the generic default style for bipoles
+
+% mostly bipoles:
+
+\ctikzset{resistors/scale/.initial=1.0}
+\ctikzset{resistors/fill/.initial=none}
+\ctikzset{resistors/thickness/.initial=none}
+\ctikzset{resistors/modifier thickness/.initial=1}% relative to main thickness
+
+\ctikzset{capacitors/scale/.initial=1.0}
+\ctikzset{capacitors/fill/.initial=none}
+\ctikzset{capacitors/thickness/.initial=none}
+\ctikzset{capacitors/modifier thickness/.initial=1}
+
+\ctikzset{inductors/scale/.initial=1.0}
+\ctikzset{inductors/fill/.initial=none}
+\ctikzset{inductors/thickness/.initial=none}
+\ctikzset{inductors/modifier thickness/.initial=1}
+
+\ctikzset{diodes/scale/.initial=1.0}
+\ctikzset{diodes/fill/.initial=none}
+\ctikzset{diodes/thickness/.initial=none}
+
+\ctikzset{batteries/scale/.initial=1.0}
+\ctikzset{batteries/fill/.initial=none}
+\ctikzset{batteries/thickness/.initial=none}
+
+\ctikzset{sources/scale/.initial=1.0}
+\ctikzset{sources/fill/.initial=none}
+\ctikzset{sources/thickness/.initial=none}
+
+\ctikzset{csources/scale/.initial=1.0}
+\ctikzset{csources/fill/.initial=none}
+\ctikzset{csources/thickness/.initial=none}
+
+\ctikzset{instruments/scale/.initial=1.0}
+\ctikzset{instruments/fill/.initial=none}
+\ctikzset{instruments/thickness/.initial=none}
+
+\ctikzset{mechanicals/scale/.initial=1.0}
+\ctikzset{mechanicals/fill/.initial=none}
+\ctikzset{mechanicals/thickness/.initial=none}
+
+\ctikzset{misc/scale/.initial=1.0}
+\ctikzset{misc/fill/.initial=none}
+\ctikzset{misc/thickness/.initial=none}
+
+\ctikzset{blocks/scale/.initial=1.0}
+\ctikzset{blocks/fill/.initial=none}
+\ctikzset{blocks/thickness/.initial=none}
+
+% mostly nodes
+
+\ctikzset{grounds/scale/.initial=1.0}
+\ctikzset{grounds/fill/.initial=none}
+\ctikzset{grounds/thickness/.initial=none}
+
+\ctikzset{power supplies/scale/.initial=1.0}
+\ctikzset{power supplies/fill/.initial=none}
+\ctikzset{power supplies/thickness/.initial=none}
+
+\ctikzset{transistors/scale/.initial=1.0}
+\ctikzset{transistors/fill/.initial=none}
+\ctikzset{transistors/thickness/.initial=none}
+\ctikzset{transistors/modifier thickness/.initial=1}% relative to main thickness
+
+\ctikzset{tubes/scale/.initial=1.0}
+\ctikzset{tubes/fill/.initial=none}
+\ctikzset{tubes/thickness/.initial=none}
+
+\ctikzset{RF/scale/.initial=1.0}
+\ctikzset{RF/fill/.initial=none}
+\ctikzset{RF/thickness/.initial=none}
+
+\ctikzset{electromechanicals/scale/.initial=1.0}
+\ctikzset{electromechanicals/fill/.initial=none}
+\ctikzset{electromechanicals/thickness/.initial=none}
+
+% transformers go with inductors
+\ctikzset{amplifiers/scale/.initial=1.0}
+\ctikzset{amplifiers/fill/.initial=none}
+\ctikzset{amplifiers/thickness/.initial=none}
+
+\ctikzset{switches/scale/.initial=1.0}
+\ctikzset{switches/fill/.initial=none}
+\ctikzset{switches/thickness/.initial=none}
+
+\ctikzset{logic ports/scale/.initial=1.0}
+\ctikzset{logic ports/fill/.initial=none}
+\ctikzset{logic ports/thickness/.initial=none}
+
+\ctikzset{flipflops/scale/.initial=1.0}
+\ctikzset{flipflops/fill/.initial=none}
+\ctikzset{flipflops/thickness/.initial=none}
+
+\ctikzset{muxdemuxes/scale/.initial=1.0}
+\ctikzset{muxdemuxes/fill/.initial=none}
+\ctikzset{muxdemuxes/thickness/.initial=none}
+
+\ctikzset{chips/scale/.initial=1.0}
+\ctikzset{chips/fill/.initial=none}
+\ctikzset{chips/thickness/.initial=none}
+
+\ctikzset{displays/scale/.initial=1.0}
+\ctikzset{displays/fill/.initial=none}
+\ctikzset{displays/thickness/.initial=none}
+%
+% general styles
+%
+\tikzset{european/.style = {european currents, european voltages, european resistors, european inductors, european ports, european gas filled surge arrester set}}
+\tikzset{american/.style = {american currents, american voltages, american resistors, american inductors, american ports, american gas filled surge arrester set}}
+\tikzset{cute/.style = {european currents, european voltages, american resistors, cute inductors, american ports}}
+%%>>>
+
+% voltage and current options%<<<1
+%
+\ctikzset{current arrow scale/.initial=16}
+\ctikzset{current/distance/.initial = .5}
+
+\newif\ifpgf@circuit@europeancurrent
+\newif\ifpgf@circuit@europeanvoltage
+\newif\ifpgf@circuit@bipole@voltage@straight
+\newif\ifpgf@circuit@bipole@voltage@raised
+
+\ctikzset{voltage/.is choice}
+%
+% straight is expected to be a subset of european, so disable it in american style
+%
+\ctikzset{voltage/american/.code = {%
+ \pgf@circuit@europeanvoltagefalse
+ \pgf@circuit@bipole@voltage@straightfalse
+ \pgf@circuit@bipole@voltage@raisedfalse
+}}
+\ctikzset{voltage/raised/.code = {%
+ \pgf@circuit@europeanvoltagefalse
+ \pgf@circuit@bipole@voltage@straightfalse
+ \pgf@circuit@bipole@voltage@raisedtrue
+}}
+\ctikzset{voltage/european/.code = {%
+ \pgf@circuit@europeanvoltagetrue
+ \pgf@circuit@bipole@voltage@straightfalse
+ \pgf@circuit@bipole@voltage@raisedfalse
+}}
+\ctikzset{voltage/straight/.code = {%
+ \pgf@circuit@europeanvoltagetrue
+ \pgf@circuit@bipole@voltage@straighttrue
+ \pgf@circuit@bipole@voltage@raisedfalse
+}}
+\ctikzset{voltage/curved/.code = {%
+ \pgf@circuit@europeanvoltagetrue
+ \pgf@circuit@bipole@voltage@straightfalse
+ \pgf@circuit@bipole@voltage@raisedfalse
+}}
+% are these used?
+\ctikzset{current/.is choice}
+\ctikzset{current/american/.code = \pgf@circuit@europeancurrentfalse}
+\ctikzset{current/european/.code = \pgf@circuit@europeancurrenttrue}
+
+% this is left for backward compatibility...
+\ctikzset{straight/.is choice}
+\ctikzset{straight/true/.code = {\pgf@circuit@bipole@voltage@straighttrue}}
+\ctikzset{straight/false/.code = {\pgf@circuit@bipole@voltage@straightfalse}}
+\ctikzset{bipole/straight/.is if=pgf@circuit@bipole@voltage@straight}
+%
+% voltage is used also to set parameters, apart for the /.is choice
+% above. I hope it is ok --- would be a mess otherwise
+%
+\ctikzset{voltage/shift/.initial=0.0} % shift form the cable of voltage symbols
+\ctikzset{voltage shift/.style={\circuitikzbasekey/voltage/shift=#1}}
+\tikzset{voltage shift/.style={\circuitikzbasekey/voltage/shift=#1}}
+%
+% keys for exporting voltage, current, flow anchors
+%
+\newif\ifpgfcirc@has@v\pgfcirc@has@vfalse
+\newif\ifpgfcirc@has@f\pgfcirc@has@ffalse
+\newif\ifpgfcirc@has@i\pgfcirc@has@ifalse
+\def\ctikzgetanchor#1#2{\csname pgfcirc@#1-#2-anchor\endcsname}
+\def\ctikzgetdirection#1{\csname pgfcirc@#1-direction\endcsname}
+%
+% shaping the +/- sign, see pgfcircvoltage.tex
+\ctikzset{voltage/american font/.initial={}}
+\ctikzset{voltage/american plus/.initial={$+$}}
+\ctikzset{voltage/american minus/.initial={$-$}}
+% here we start the voltage adjustments for special components.
+% default values:
+%
+% this is the distance of the "point" marking the voltage along the line
+% 0.0 is on the external nodes of the to path
+% 1.0 is cramped on the object
+% this can be overriden component by component
+\ctikzset{voltage/distance from node/.initial=.5}% pos, 0->1
+%
+% this is the distance from the line (perpendicular to) where the voltage is drawn.
+% It is global, and not adjustable by component (use the "label distance" or locally
+% if you need it)
+\ctikzset{voltage/distance from line/.initial=.08}% in \pgf@circ@scaled@Rlen units
+%
+% bend paramenters for european arc. You can override them component-based
+\ctikzset{voltage/bump b/.initial=1.5}
+%
+% generator voltages symbols or arrows (always straight) are put along the
+% 60 ... 120 angles of the symbol (don't ask why). The distance here is on the
+% center..angle line. It's called bump a because I don't know...
+%
+\ctikzset{voltage/bump a/.initial=1.2}
+%
+% these are the label distances FROM the drawings.
+% You can override them component by component.
+\ctikzset{voltage/european label distance/.initial=1.4}
+\ctikzset{voltage/straight label distance/.initial=1.4}
+\ctikzset{voltage/american label distance/.initial=1.4}
+% american open voltage adjusting
+%
+\newif\ifpgf@adjust@open@voltage\pgf@adjust@open@voltagetrue
+\ctikzset{open voltage position/.is choice}
+\ctikzset{open voltage position/center/.code={\pgf@adjust@open@voltagetrue}}
+\ctikzset{open voltage position/legacy/.code={\pgf@adjust@open@voltagefalse}}
+% bad names, kept for compatibility, don't use
+\ctikzset{american open voltage/.is choice}
+\ctikzset{american open voltage/center/.code={\pgf@adjust@open@voltagetrue}}
+\ctikzset{american open voltage/legacy/.code={\pgf@adjust@open@voltagefalse}}
+%
+% voltage and current styles
+%
+\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{straight voltages/.style = {\circuitikzbasekey/voltage = straight}}
+\tikzset{raised voltages/.style = {\circuitikzbasekey/voltage = raised}}
+%%>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcirc.defines
+%%%%%%%%%%% Springe nach tex/pgfcircutils
+%%%---------- open: tex/pgfcircutils.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+\def\pgf@circ@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@ifkeyempty#1{
+ \pgfextra{
+ \ctikzset{#1/.get=\pgf@circ@temp}
+ \edef\pgf@temp{}
+ }
+ \ifx\pgf@circ@temp\pgf@temp
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Math routines
+
+\def\pgf@circ@stripdecimals#1.#2\pgf@nil{#1}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% useful commands
+
+\ifpgfutil@format@is@latex
+ %% flipping text
+ \def\ctikzflipx#1{\scalebox{-1}[1]{#1}}
+ \def\ctikzflipy#1{\scalebox{1}[-1]{#1}}
+ \def\ctikzflipxy#1{\scalebox{-1}[-1]{#1}}
+ % text mode overbar
+ % Thanks to @egreg https://tex.stackexchange.com/a/24133/38080
+ \def\ctikztextnot#1{$\overline{\hbox{#1}}\m@th$}
+\else\ifpgfutil@format@is@plain
+ % text mode overbar
+ % but really circuitikz will not work in plain...
+ % Thanks to @egreg https://tex.stackexchange.com/a/24133/38080
+ \def\ctikztextnot#1{$\overline{\hbox{#1}}$}
+\else\ifpgfutil@format@is@context
+ %% flipping text
+ \def\ctikzflipx#1{\mirror{#1}}
+ \def\ctikzflipy#1{\mirror{\rotate[rotation=180]{#1}}}
+ \def\ctikzflipxy#1{\rotate[rotation=180]{#1}}
+ % text mode overbar
+ % Thanks to @egreg https://tex.stackexchange.com/a/24133/38080
+ \def\ctikztextnot#1{$\overline{\hbox{#1}}$}
+\fi\fi\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% switch to use fpu in reciprocal scale transformations
+%%
+%% this code has been contributed by Schrödinger's cat
+%% https://tex.stackexchange.com/a/529159/38080
+%%
+%% Use the official key to use the fpu if installed, see
+%% https://github.com/pgf-tikz/pgf/issues/861
+%%
+%% Thanks to "muzimuzhi Z" https://tex.stackexchange.com/a/547085/38080
+%% Thanks to Henri Menke for a faster approach https://github.com/circuitikz/circuitikz/commit/00966c45c42b464fab5429f89f2b7fb414e9b3f7#commitcomment-54592494
+%%
+\pgfkeysifdefined{/pgf/fpu/install only/.@cmd}{%
+ \pgfqkeys{/pgf}{use fpu reciprocal/.code={\pgfkeys{/pgf/fpu/install only={reciprocal}}}}%
+ }{%
+ \pgfkeysifdefined{/pgf/use fpu reciprocal/.@cmd}{% use stock one
+ }{
+ \pgfqkeys{/pgf}{use fpu reciprocal/.code={%
+ \def\pgfmathreciprocal@##1{%
+ \begingroup
+ \pgfmathfloatparsenumber{##1}%
+ \pgfmathfloatreciprocal@{\pgfmathresult}%
+ \pgfmathfloattofixed@{\pgfmathresult}%
+ \pgfmath@smuggleone\pgfmathresult
+ \endgroup
+ }}}}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% subcircuits (experimental)
+%%
+%% introduced by Romano Giannetti around April 2021
+%% changes suggested by Jonathan P. Spratte
+%%
+\newbox\ctikz@scratchbox
+\pgfutil@protected\def\ctikzsubcircuitdef#1#2#3{%
+ \expandafter\gdef\csname #1@Anchor\endcsname{}%
+ \expandafter\gdef\csname #1@setanchors\endcsname{%
+ \setbox\ctikz@scratchbox=\hbox{%
+ \tikzpicture
+ \draw (0,0) \csname#1\endcsname{T-#1}{};
+ \foreach [count=\i] \anchor in {#2}
+ % reference anchor is -center
+ \draw (0,{2-\i/2}) let \p1 = ($(T-#1-subckt@reference)-(T-#1-\anchor)$) in
+ node[right]{\anchor: \x1,\y1 \expandafter\xdef\csname #1@Anchor\anchor\endcsname{++(\x1,\y1)}};
+ \endtikzpicture
+ }%
+ }%
+ \expandafter\gdef\csname#1\endcsname##1##2{%
+ \csname #1@Anchor##2\endcsname coordinate(##1-subckt@reference)#3%
+ }%
+}
+\long\def\ctikzsubcircuitactivate#1{\csname #1@setanchors\endcsname}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Basic utility macros
+%%
+%% Functions provided here are:
+%% \pgf@circ@ifempty{<argument>}{<true>}{<false>}
+%% Tests whether <argument> is completely empty.
+%% \pgf@circ@ifblank{<argument>}{<true>}{<false>}
+%% Tests whether <argument> is either empty or only contains spaces.
+%% \pgf@circ@trimspaces@do{<argument>}{<next>}
+%% Trims at most one space from either end of <argument> and forwards the
+%% result to <next> as <next>{<trimmed argument>}
+
+% these two are pretty standard code
+\long\def\pgf@circ@ifempty#1%
+ {%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ }
+\long\def\pgf@circ@ifblank#1%
+ {%
+ \if\relax\detokenize\expandafter{\pgfutil@gobble#1.}\relax
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ }
+
+% \pgfutil@trimspaces needs two expansions. The first expansion we'll do during
+% the definition.
+\def\pgf@circ@trimspaces@do#1%
+ {%
+ \def\pgf@circ@trimspaces@do##1%
+ {\expandafter\pgf@circ@trimspaces@do@\expandafter{#1}}%
+ }
+\expandafter\pgf@circ@trimspaces@do\expandafter{\pgfutil@trimspaces{#1}}
+\def\pgf@circ@trimspaces@do@#1#2{#2{#1}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% list handling
+%%
+%% Contribution by Jonathan P. Spratte (blame him!)
+%%
+%% The list implementation here has a few limitations. Those are:
+%% 1. not long, so no \par in the lists (but many used functions in pgfutil
+%% aren't long as well)
+%% 2. list elements can't contain a Q with category code 3 (but the used
+%% function \pgfutil@trimspaces doesn't support them as well, and this
+%% should be a very rare token anyway)
+%% 3. list elements can't contain the token \pgf@circ@set@list as that is used
+%% as the end marker
+%% 4. currently these lists are meant for numeric data (hence only
+%% \pgf@circ@if@num@in@list is provided as a test), as a result there is
+%% another limitation for the data here. If the list element contains no
+%% hyphen '-', the element will be stored without further processing
+%% 'as-is' (well, after trimming spaces). If there is a hyphen we assume
+%% well-behaved input data and will interpret this as a num-range without
+%% further tests.
+%%
+%% Functions provided here are:
+%% \pgf@circ@set@list<macro>{<csv-list>}
+%% Parses the <csv-list> and stores the result inside <macro> (local
+%% assignment). If a num-range given as <start - stop> (with or without
+%% spaces) is found it will be expanded to <start>,<start+1>,...,<stop>.
+%% \pgf@circ@if@num@in@list<macro>{<value>}{<true>}{<false>}
+%% Checks whether <value> (numeric value, evaluated once with \numexpr) is
+%% found inside the list stored in <macro>. There are two special cases: If
+%% <macro> is undefined <false> is executed. If the list contains only one
+%% element and that is `all' <true> is executed.
+
+% set the catcode of our marker
+\chardef\pgf@circ@temp=\the\catcode`\Q
+\catcode`\Q=3
+
+% lists will have the structure
+% <marker><element 1><marker>...<element n><marker>
+% As marker we use a Q with category 3. Under the assumption that no list
+% element does ever contain that token we can set the elements without braces,
+% allowing us to use \pgfutil@in@ to search for elements (see above). The other
+% token that isn't allowed to show up in the list is \pgf@circ@set@list, that we
+% use as another marker during parsing.
+% The other big restriction in this implementation is that lists can't contain a
+% \par (but \pgfutil@in@ doesn't support that anyway so there is not much
+% sense in supporting it here)
+\pgfutil@protected\def\pgf@circ@set@list#1#2%
+ {%
+ % clear the error flag
+ \let\pgf@circ@error@marker\pgf@circ@undefined
+ % set the list
+ \edef#1%
+ {Q\pgf@circ@set@list@sanitize#2,\pgf@circ@set@list,\pgf@circ@set@list}%
+ % there was an error, throw the error message, recovery was already done by
+ % ignoring the offending elements.
+ \ifx\pgf@circ@error@marker\relax
+ \begingroup
+ \newlinechar`\^^J
+ \pgfutil@packageerror{circuitikz}
+ {%
+ Unallowed marker found in list^^J%
+ \pgfutil@unexpanded{#2}.^^J%
+ Offending elements were ignored.%
+ }
+ {Lists can't contain a Q with category code 3}%
+ \endgroup
+ \fi
+ }
+% just a utility for the <marker> test
+\def\pgf@circ@set@list@gobbletomarker#1Q{}
+% quick way to check whether list parsing is done by gobbling up to a marker, in
+% this case the marker is \pgf@circ@set@list
+\def\pgf@circ@set@list@sanitize@checkend#1\pgf@circ@set@list{}
+% will only be called after the last element is handled, will gobble the
+% remainder of the current sanitizing step
+\def\pgf@circ@set@list@sanitize@end\pgf@circ@set@list#1\pgf@circ@set@list{}
+% grabs the next list element, checks whether we're done, and if not sanitizes
+% it (meaning stripping spaces from either end and placing the <marker>).
+\def\pgf@circ@set@list@sanitize#1,%
+ {%
+ \pgf@circ@set@list@sanitize@checkend
+ #1\pgf@circ@set@list@sanitize@end\pgf@circ@set@list
+ \pgf@circ@set@list@sanitize@a{#1}%
+ }
+% testing whether a list element contains the used <marker> expandably, if it
+% does set the flag, else continue sanitizing.
+\def\pgf@circ@set@list@sanitize@a#1%
+ {%
+ \expandafter\pgf@circ@ifempty\expandafter
+ % if this is empty no marker was found
+ {\pgf@circ@set@list@gobbletomarker#1Q}
+ {%
+ \pgf@circ@ifblank{#1}
+ {}% ignore blank entries
+ {\pgf@circ@trimspaces@do{#1}\pgf@circ@set@list@sanitize@b}%
+ }
+ {%
+ % panic, there was a marker found in a list element. We'll recover by
+ % ignoring the current element after setting a flag. When we do
+ % \csname ...\endcsname on an undefined macro name TeX will let that
+ % macro to relax and we exploit this to expandable set a flag and
+ % gobbling the result.
+ \expandafter\pgfutil@gobble\csname pgf@circ@error@marker\endcsname
+ }%
+ % get the next element
+ \pgf@circ@set@list@sanitize
+ }
+% we'll protect any element from further expanding using \unexpanded and place
+% the marker after the element, and ignore empty/blank elements
+\def\pgf@circ@set@list@sanitize@b#1%
+ {%
+ \expandafter\pgf@circ@ifempty\expandafter
+ % if this is empty no hyphen is found
+ {\pgf@circ@gobbletohyphen#1-}
+ {\pgfutil@unexpanded{#1}Q}
+ {\pgf@circ@set@list@parse@range{#1}}%
+ }
+\def\pgf@circ@gobbletohyphen#1-{}
+\def\pgf@circ@set@list@parse@range#1{\pgf@circ@set@list@parse@range@a#1Q}
+\def\pgf@circ@set@list@parse@range@a#1-#2Q%
+ {%
+ \expandafter\pgf@circ@set@list@parse@range@b
+ \the\numexpr#1\expandafter Q\the\numexpr#2Q%
+ }
+\def\pgf@circ@set@list@parse@range@b#1Q#2Q%
+ {%
+ \ifnum#1<#2
+ % expand to the range from #1 to #2 (inclusive)
+ \pgf@circ@set@list@range{#1}{#2}%
+ \else
+ \ifnum#2<#1
+ % if #2 is smaller than #1 just swap the order
+ \pgf@circ@set@list@range{#2}{#1}%
+ \else
+ % last case, they are equal, so just put the result here
+ #1Q%
+ \fi
+ \fi
+ }
+\def\pgf@circ@set@list@parse@range@norange#1Q#2{\pgfutil@unexpanded{#2}Q}
+\def\pgf@circ@set@list@range#1#2%
+ {%
+ #1Q%
+ \ifnum#1<#2
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ \pgfutil@gobble
+ {\expandafter\pgf@circ@set@list@range\expandafter{\the\numexpr#1+1}{#2}}%
+ }
+
+% flag for special value
+\def\pgf@circ@all@flag{QallQ}
+\pgfutil@protected\def\pgf@circ@if@num@in@list#1#2%
+ {%
+ % test whether the list macro is defined, if it isn't result is false
+ \pgfutil@ifx\pgf@circ@undefined#1%
+ {\pgfutil@secondoftwo}
+ {%
+ % test whether the list macro is just the special value 'all', if so
+ % true, else search (and start that by evaluating a numexpr)
+ \pgfutil@ifx\pgf@circ@all@flag#1%
+ {\pgfutil@firstoftwo}
+ {%
+ \expandafter\pgf@circ@if@num@in@list@a\expandafter
+ {\the\numexpr#2}%
+ #1%
+ }%
+ }%
+ }
+% next step is expanding the list macro
+\pgfutil@protected\def\pgf@circ@if@num@in@list@a#1#2%
+ {\expandafter\pgf@circ@if@num@in@list@b\expandafter{#2}{#1}}
+% now use \pgfutil@in@ to check whether there is the searched list element
+\pgfutil@protected\def\pgf@circ@if@num@in@list@b#1#2%
+ {%
+ \begingroup
+ % put the <marker> around the number to make sure only full matches are
+ % found. \pgfutil@in@ will set \ifpgfutil@in@ to true if it finds a match
+ \pgfutil@in@{Q#2Q}{#1}%
+ \expandafter
+ \endgroup
+ \ifpgfutil@in@
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi
+ }
+
+% reset the catcode of Q
+\catcode`\Q=\pgf@circ@temp
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% temporary fix for old TikZ versions (remove me)
+%%
+%% All blame to Romano Giannetti for this code!
+%%
+%% This tries to be smart and provide \pgfutil@unexpanded and \pgfutil@ifx if
+%% PGF doesn't provide them.
+
+\ifx\pgfutil@unexpanded\pgf@circ@undefined
+ \ifpgfutil@format@is@context
+ \let\pgfutil@unexpanded\normalunexpanded
+ \else
+ \let\pgfutil@unexpanded\unexpanded
+ \fi
+\fi
+
+\ifx\pgfutil@ifx\pgf@circ@undefined
+ \long\def\pgfutil@ifx#1#2{%
+ \ifx#1#2%
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi}
+\fi
+
+%%
+%% generic tunable arrow for components that have no "variable" thing
+%%
+\def\ctikztunablearrow{\pgfutil@ifnextchar[{\ctikztunablearrow@full}{\ctikztunablearrow@simple}}%
+\def\ctikztunablearrow@simple{\ctikztunablearrow@full[]}%
+\def\ctikztunablearrow@full[#1]#2#3#4#5{%
+ % add tunable arrow to a component
+ % relative thickness, relative length, rotation from axis, name of the component
+ \scope
+ \draw
+ \pgfextra{\pgfcirc@set@arrows{tunable}{}{latexslim}
+ \pgfsetlinewidth{#2\pgflinewidth}} [#1]
+ let \p1=($(#5.north east)-(#5.south west)$), \p2=($(#5.east)-(#5.west)$),
+ \n1 = {veclen(\x1,\y1)},
+ \n2 = {atan2(\y2,\x2)} in
+ % node[above]{\n1, \n2}
+ (#5.center) ++({\n2+(#4)}:{-0.5*(\n1)*(#3)}) -- ++({\n2+(#4)}:{(\n1)*(#3)});
+ \endscope
+}
+%%%---------- close: tex/pgfcircutils
+%%%%%%%%%%% Springe nach tex/pgfcircpath
+%%%---------- open: tex/pgfcircpath.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+
+\def\pgf@circ@direction{0.0}
+
+% swap two coordinates
+\def\pgfcirc@swap@coordinates#1#2{%
+ coordinate (pgfcirc@tmp@swap) at (#1)
+ coordinate (#1) at (#2)
+ coordinate (#2) at (pgfcirc@tmp@swap)
+}
+
+% 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}}
+
+% Invert node along path
+\ctikzset{inverted/.is choice}
+\ctikzset{invert value/.initial=1}
+\ctikzset{inverted/true/.code = {\ctikzsetvalof{invert value}{-1}\pgf@circuit@bipole@invertedtrue}}
+\ctikzset{inverted/false/.code = {\ctikzsetvalof{invert value}{1}\pgf@circuit@bipole@invertedfalse}}
+\ctikzset{invert/.style = {/tikz/circuitikz/inverted=true}}
+\newif\ifpgf@circuit@bipole@inverted
+\ctikzset{bipole/inverted/.is if=pgf@circuit@bipole@inverted}
+
+\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}}
+
+% Initialize paths
+\def\pgfcircresetpath{
+ \ctikzset{bipole/name=, bipole/label/name=, bipole/label/position=90, ,bipole/annotation/name=, bipole/annotation/position=-90,
+ bipole/inverted=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 voltageoutsideofsymbol=false,bipole/is strokedsymbol=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
+ }
+}
+
+%
+% expandable IF for the extra nodes (thanks to Henri Menke)
+% see https://chat.stackexchange.com/transcript/message/56560808#56560808
+%
+\def\pgfcirc@if@has@i{%
+ \ifpgfcirc@has@i
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi}
+\def\pgfcirc@if@has@v{%
+ \ifpgfcirc@has@v
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi}
+\def\pgfcirc@if@has@f{%
+ \ifpgfcirc@has@f
+ \expandafter\pgfutil@firstoftwo
+ \else
+ \expandafter\pgfutil@secondoftwo
+ \fi}
+
+
+
+%% Generic bipole path
+\def\pgf@circ@bipole@path#1#2{
+ % Create a bipole path from the shapes defined with \pgfcircdeclarebipole
+ % or \pgfcircdeclarebipolescaled; the node shapes are named with a "shape"
+ % appended to the main (path-style) name
+ % #1 path-style node name
+ % #2 the argument passed from the to-path structure; don't touch
+ %
+ % Example:
+ % \def\pgf@circ@capacitor@path#1{\pgf@circ@bipole@path{capacitor}{#1}}
+ %
+ \pgf@circ@bipole@path@base{shape}{}{#1}{#2}
+}
+%%
+%% ultra-generic bipole path
+%% I am not sure what the last argument is needed for, but don't touch it or everything explodes
+%%
+\def\pgf@circ@bipole@path@base#1#2#3#4{%
+ %
+ % Create a path-style component based on a node-style shape
+ % #1: postfix to be added to the name path to obtain the main shape name
+ % #2: text to be passed as text to the node
+ % #3: name of the bipole component
+ % #4: this will be filled by the argument of the to-path
+ %
+ \pgfextra{
+ \ctikzset{bipole/kind = #3}
+ \edef\pgf@temp{\ctikzvalof{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 = pgfcirc@#3\pgf@circ@rand} % create it (re-usage should not create problem, but...)
+ \edef\pgfcirc@a@prefix{pgfcirc}% do not pollute the namespace for nothing
+ \else
+ \edef\pgfcirc@a@prefix{\ctikzvalof{bipole/name}}% for exporting v-i-f anchors
+ \fi
+ }
+ % save start and stop values
+ % notice that we DO NOT MOVE the path position at all!
+ coordinate (\ctikzvalof{bipole/name}start) at (\tikztostart)
+ coordinate (\ctikzvalof{bipole/name}end) at (\tikztotarget)
+ \pgfextra{
+ % find the direction (angle) of the path
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}}
+ {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}}
+ \edef\pgf@circ@direction{\pgfmathresult}
+ % the global macro pgfcirc@whatever-direction is accessible as \ctikzgetdirection{whatever}
+ % this gives access to the element path direction
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-direction\endcsname{\pgf@circ@direction}
+ }
+ % position the component in the middle of the path. We DO NOT MOVE the current position!
+ node[#3#1, rotate=\pgf@circ@direction, yscale=\ctikzvalof{mirror value},
+ xscale=\ctikzvalof{invert value}] (\ctikzvalof{bipole/name})
+ at ($(\tikztostart) ! .5 ! (\tikztotarget)$) {#2}
+ % set start and end labels
+ \ifpgf@circuit@bipole@inverted
+ \ifcsname pgf@anchor@#3#1@pathstart\endcsname%if special path-anchors are defined, use them!
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.pathend)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.pathstart)
+ \else
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.right)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.left)
+ \fi
+ \else
+ \ifcsname pgf@anchor@#3#1@pathstart\endcsname%if special path-anchors are defined, use them!
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.pathstart)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.pathend)
+ \else
+ coordinate (pgfcirc@anchorstartnode) at (\ctikzvalof{bipole/name}.left)
+ coordinate (pgfcirc@anchorendnode) at (\ctikzvalof{bipole/name}.right)
+ \fi
+ \fi
+ % draw the leads unless it's an open circuit
+ % stop at the component
+ \pgfextra{\def\pgf@temp{open}\def\pgf@circ@temp{#3}}
+ \ifx\pgf@temp\pgf@circ@temp % if it is an open do nothing
+ \else
+ % it is important to start the path with -- to have correct line joins!
+ -- (pgfcirc@anchorstartnode)
+ \fi
+ % Add all the "ornaments": labels, annotations, voltages, currents and flows
+ \drawpoles
+ \pgf@circ@ifkeyempty{bipole/label/name}\else\pgf@circ@drawlabels{label}\fi
+ \pgf@circ@ifkeyempty{bipole/annotation/name}\else\pgf@circ@drawlabels{annotation}\fi
+ % the following must be made in their own path scope to avoid crash in TikZ 3.1.8/3.1.8a
+ % it should be logically safe for older version too --- even if TikZ reverted the change
+ % use explandable ifs too, thanks to Henri Menke
+ {\pgfcirc@if@has@v{\pgf@circ@drawvoltage}{}}%
+ {\pgfcirc@if@has@i{\pgf@circ@drawcurrent}{}}%
+ {\pgfcirc@if@has@f{\pgf@circ@drawflow}{}}%
+ % finish the path from the component to the final target
+ % you never know --- re-set \pgf@temp to detect open
+ \pgfextra{\def\pgf@temp{open}\def\pgf@circ@temp{#3}}
+ \ifx\pgf@temp\pgf@circ@temp % if it is an open do nothing
+ (\tikztotarget)
+ \else
+ (pgfcirc@anchorendnode) -- (\tikztotarget)
+ \fi
+ % reset internal circuit keys
+ \pgfextra{\pgfcircresetpath}
+ %draw pending nodes an path
+ \tikztonodes
+}
+
+%% Macros for path and style activation for bipoles or path-style
+
+\def\comnpatname{\ifpgf@circuit@compat *\else\fi}
+\def\compattikzset#1{%
+ % \typeout{BIPOLEDEF:\space \detokenize{#1}}%
+ \tikzset{\comnpatname#1}}
+%
+% this is used for components that are mainly node-style but have a path-style form
+%
+\def\pgfcirc@node@to@path#1#2#3{%
+ % add a path-style component based on a node-style one without mangling the name
+ % of the shape.
+ % #1: node-type shape name (existing)
+ % #2: path-type name (to be created)
+ % #3: additional options to add to the path style
+ %
+ \expandafter\def\csname pgf@circ@#1@path\endcsname##1{\pgf@circ@bipole@path@base{}{##1}{#1}{}}%
+ \compattikzset{#2/.style = {\circuitikzbasekey,
+ /tikz/to path=\csname pgf@circ@#1@path\endcsname{##1},
+ #3}}%
+ \ctikzset{bipoles/#1/height/.initial=1}%
+}
+%
+% this one is for normal definition: path to style, directly
+% the first parameter (#1) here is l,v,i (l=..., v=..., i=...)
+% the last parameter are options to be inserted in the "to path" definition
+%
+\def\pgfcirc@path@to@style#1#2#3#4{% using #1 as label, assign \pgf@circ@#2@path to style #3
+ \compattikzset{#3/.style={\circuitikzbasekey, #4, /tikz/to path=\csname pgf@circ@#2@path\endcsname, #1={##1}}}%
+}
+% this one create a alias style from a node definition
+\def\pgfcirc@node@to@style#1#2#3#4{% using #1 as label, assign \pgf@circ@bipole@path{#2} to style #3
+ \compattikzset{#3/.style={\circuitikzbasekey, #4, /tikz/to path=\pgf@circ@bipole@path{#2}, #1={##1}}}%
+}
+% this create an alias style
+\def\pgfcirc@style@to@style#1#2{% alias style #1 to style #2
+ \compattikzset{#2/.style={\comnpatname #1={##1}}}%
+}
+% this create an alias style, changing the labelling
+\def\pgfcirc@style@to@style@label#1#2#3{% alias style #1 to style #2
+ \compattikzset{#2/.style={\comnpatname #1, #3={##1}}}%
+}
+% create a bipole
+\def\pgfcirc@activate@bipole#1#2#3#4{% path name, base node name, style name
+ \expandafter\def\csname pgf@circ@#2@path\endcsname##1{\pgf@circ@bipole@path{#3}{##1}}%
+ \pgfcirc@path@to@style{#1}{#2}{#4}{}% no options here, let's see
+}
+\def\pgfcirc@activate@bipole@simple#1#2{\pgfcirc@activate@bipole{#1}{#2}{#2}{#2}}
+% create a bipole with options
+\def\pgfcirc@activate@bipole@opt#1#2#3#4#5{% path name, base node name, style name
+ \expandafter\def\csname pgf@circ@#2@path\endcsname##1{\pgf@circ@bipole@path{#3}{##1}}%
+ \pgfcirc@path@to@style{#1}{#2}{#4}{#5}% no options here, let's see
+}
+\def\pgfcirc@activate@bipole@simple@opt#1#2#3{\pgfcirc@activate@bipole@opt{#1}{#2}{#2}{#2}{#3}}
+
+
+%% New system, for simple object
+%% \pgfcirc@activate@bipole@simple{l}{mass}
+%% New system, different names
+%% The old system is the following
+%% 1 - define just the pgf@circ@path@whatever#1
+%% (see for example the variable one)
+%% 2 - set the style
+%% \compattikzset{resistor/.style= {\circuitikzbasekey, /tikz/to path=\pgf@circ@resistor@path, l={#1}}}
+
+%% Path definition with the new mechanism have been moved to where the nodes
+%% are defined.
+
+%% Handling of terminals%<<<
+
+\ctikzset{bipole/nodes/.is family}
+\ctikzset{bipole/nodes/left/.initial=none}
+\ctikzset{bipole/nodes/right/.initial=none}
+\tikzset{bipole nodes/.style n args={2}{%
+ \circuitikzbasekey/bipole/nodes/left=#1,
+ \circuitikzbasekey/bipole/nodes/right=#2
+ }
+}
+
+%% Easily usable styles
+
+\ctikzset{o-o/.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{-o/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{o-/.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{*-o/.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{o-*/.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{d-o/.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{o-d/.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+\ctikzset{*-/.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{-*/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{d-/.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{-d/.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+\ctikzset{*-*/.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{d-*/.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{*-d/.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+\ctikzset{d-d/.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+
+% rectjoinfill workarounds
+
+\ctikzset{.-/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=none}}
+\ctikzset{.-*/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=circ}}
+\ctikzset{.-o/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=ocirc}}
+\ctikzset{.-d/.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=diamondpole}}
+\ctikzset{-./.style = {\circuitikzbasekey/bipole/nodes/left=none, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+\ctikzset{o-./.style = {\circuitikzbasekey/bipole/nodes/left=ocirc, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+\ctikzset{*-./.style = {\circuitikzbasekey/bipole/nodes/left=circ, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+\ctikzset{d-./.style = {\circuitikzbasekey/bipole/nodes/left=diamondpole, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+\ctikzset{.-./.style = {\circuitikzbasekey/bipole/nodes/left=rectjoinfill, \circuitikzbasekey/bipole/nodes/right=rectjoinfill}}
+
+\tikzset{reversed/.style = {\circuitikzbasekey/bipole/inverted=true}}
+
+\def\drawpoles{
+ \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{bipole/nodes/left}} \def\pgf@temp{none}}
+ \ifx\pgf@temp\pgf@circ@temp\else(\tikztostart) node[\pgf@circ@temp] {}\fi
+ \pgfextra{ \edef\pgf@circ@temp{\ctikzvalof{bipole/nodes/right}} }
+ \ifx\pgf@temp\pgf@circ@temp\else(\tikztotarget) node[\pgf@circ@temp] {}\fi
+}
+% %>>>
+
+%%
+%% Definition of path for transistors
+%%
+% Transistor like bipoles
+
+\def\pgf@circ@trans@path#1#2{
+ \pgfextra{
+ \edef\pgf@temp{\ctikzvalof{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@inverted
+ (\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{
+ \pgfmathanglebetweenpoints{\pgfpointanchor{\ctikzvalof{bipole/name}start}{center}}
+ {\pgfpointanchor{\ctikzvalof{bipole/name}end}{center}}
+ \pgfmathadd{\pgfmathresult}{-90}
+ \pgfmathround{\pgfmathresult}
+ \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}}
+ \ifcsname pgf@anchor@#1@pathstart\endcsname%if special path-anchors are defined, use them!
+ (\ctikzvalof{bipole/name}start.center) --(\ctikzvalof{bipole/name}.pathstart)
+ (\ctikzvalof{bipole/name}.pathend) -- (\ctikzvalof{bipole/name}end.center)
+ \else
+ (\ctikzvalof{bipole/name}start.center) --(\ctikzvalof{bipole/name}.left)
+ (\ctikzvalof{bipole/name}.right) -- (\ctikzvalof{bipole/name}end.center)
+ \fi
+ \drawpoles
+ \pgfextra{
+ \pgfcircresetpath
+ }
+ (\tikztotarget) \tikztonodes % and go on!
+}
+
+\def\pgf@circ@definetranspath#1{
+ \compattikzset{T#1/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@trans@path{#1}{}, l=##1}}
+}
+
+%
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircpath
+
+%%%%%%%%%%% Springe nach tex/pgfcircshapes
+%%%---------- open: tex/pgfcircshapes.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Other shapes
+
+%% Nothing
+
+\pgfdeclareshape{emptyshape}{
+ \savedanchor{\northeast}{%
+ \pgf@x=.5\wd\pgfnodeparttextbox%
+ \pgf@y=.5\ht\pgfnodeparttextbox%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+}
+%
+% Provision for changing opacity. Only expert use, see the manual.
+%
+\ctikzset{poles/open fill opacity/.initial=1.0}% better not touch it
+\tikzset{open poles opacity/.code={%
+ \ctikzset{poles/open fill opacity=#1}%
+}}
+\ctikzset{poles/full fill opacity/.initial=1.0}% better not touch it
+\tikzset{full poles opacity/.code={%
+ \ctikzset{poles/full fill opacity=#1}%
+}}
+
+%
+% Provision for changing default background
+%
+
+\ctikzset{open poles fill/.initial={white}}
+
+%% Full terminal
+
+\pgfdeclareshape{circ}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{nodes width}*\pgf@circ@Rlen}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfpathcircle{\pgfpointorigin}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/full fill opacity}}% normally 1.0
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% Empty round terminal
+
+\pgfdeclareshape{ocirc}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{nodes width}*\pgf@circ@Rlen}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfpathcircle{\pgfpointorigin}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/open fill opacity}}% normally 1.0
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{\ctikzvalof{open poles fill}}
+ % ...but override it if the class is defined!
+ % note that this element has no class, but will inherit it when used
+ % into another component
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \fi
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% Diamond terminal
+
+\pgfdeclareshape{diamondpole}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@y}{sqrt(2)*\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ % \typeout{IN\space X:\the\pgf@x\space Y:\the\pgf@y}
+ \pgfmathsetmacro{\@@switchx}{ifthenelse(\pgf@x>0,1,-1)}
+ \pgfmathsetmacro{\@@switchy}{ifthenelse(\pgf@y>0,1,-1)}
+ \pgfmathsetlength{\pgf@xa}{abs(\pgf@x)}
+ \pgfmathsetlength{\pgf@ya}{abs(\pgf@y)}
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ % \typeout{MID\space X:\the\pgf@xa\space Y:\the\pgf@ya\space L:\the\pgf@circ@res@up}
+ % \typeout{MID\space SX:\@@switchx\space SY:\@@switchy}
+ \pgfpointintersectionoflines
+ {\pgfpointorigin}{\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfqpoint{0pt}{\pgf@circ@res@up}}{\pgfqpoint{\pgf@circ@res@up}{0pt}}
+ % \typeout{CROSS \space X:\the\pgf@x\space Y:\the\pgf@y}
+ \pgf@x=\@@switchx\pgf@x
+ \pgf@y=\@@switchy\pgf@y
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgftransformrotate{45}
+ \pgfpathrectanglecorners
+ {\pgfpoint{-\pgf@circ@res@temp}{-\pgf@circ@res@temp}}
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/full fill opacity}}% normally 1.0
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% Diamond terminal, unfilled
+
+\pgfdeclareshape{odiamondpole}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@y}{sqrt(2)*\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ % \typeout{IN\space X:\the\pgf@x\space Y:\the\pgf@y}
+ \pgfmathsetmacro{\@@switchx}{ifthenelse(\pgf@x>0,1,-1)}
+ \pgfmathsetmacro{\@@switchy}{ifthenelse(\pgf@y>0,1,-1)}
+ \pgfmathsetlength{\pgf@xa}{abs(\pgf@x)}
+ \pgfmathsetlength{\pgf@ya}{abs(\pgf@y)}
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ % \typeout{MID\space X:\the\pgf@xa\space Y:\the\pgf@ya\space L:\the\pgf@circ@res@up}
+ % \typeout{MID\space SX:\@@switchx\space SY:\@@switchy}
+ \pgfpointintersectionoflines
+ {\pgfpointorigin}{\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfqpoint{0pt}{\pgf@circ@res@up}}{\pgfqpoint{\pgf@circ@res@up}{0pt}}
+ % \typeout{CROSS \space X:\the\pgf@x\space Y:\the\pgf@y}
+ \pgf@x=\@@switchx\pgf@x
+ \pgf@y=\@@switchy\pgf@y
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgftransformrotate{45}
+ \pgfpathrectanglecorners
+ {\pgfpoint{-\pgf@circ@res@temp}{-\pgf@circ@res@temp}}
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/open fill opacity}}% normally 1.0
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{\ctikzvalof{open poles fill}}
+ % ...but override it if the class is defined!
+ % note that this element has no class, but will inherit it when used
+ % into another component
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \fi
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% square terminal, filled
+
+\pgfdeclareshape{squarepole}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@y}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpointborderrectangle
+ {\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfqpoint{\pgf@circ@res@up}{\pgf@circ@res@up}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgfpathrectanglecorners
+ {\pgfpoint{-\pgf@circ@res@temp}{-\pgf@circ@res@temp}}
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/full fill opacity}}% normally 1.0
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+%% square terminal, unfilled
+
+\pgfdeclareshape{osquarepole}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@y}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \anchorborder{
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpointborderrectangle
+ {\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfqpoint{\pgf@circ@res@up}{\pgf@circ@res@up}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \pgfpathrectanglecorners
+ {\pgfpoint{-\pgf@circ@res@temp}{-\pgf@circ@res@temp}}
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetfillopacity{\ctikzvalof{poles/open fill opacity}}% normally 1.0
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{\ctikzvalof{open poles fill}}
+ % ...but override it if the class is defined!
+ % note that this element has no class, but will inherit it when used
+ % into another component
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \fi
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+% BNC connector
+
+\pgfdeclareshape{bnc}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ % BNC size is 2.5 times the size of the internal "ocirc"
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgf@y=2.5\pgf@y
+ \pgf@x=-\pgf@y
+ }
+ % center is on the opening
+ \anchor{center}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{zero}{ \pgfpointorigin }
+ \anchor{hot}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{shield}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ % geo-anchors
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{right}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{left}{ \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 }
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{2.5*\ctikzvalof{nodes width}*\pgf@circ@Rlen}{2.5*\ctikzvalof{nodes width}*\pgf@circ@Rlen}}
+ }
+ \behindforegroundpath{
+ \pgfextracty{\pgf@circ@res@other}{\northwest}
+ \pgf@circ@res@step=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgfsetcolor{\ctikzvalof{color}}
+ % external circle
+ \pgfscope
+ % clipping path: first a rectangle bigger then the shape
+ % to avoid problems with the line thickness
+ \pgfpathrectanglecorners{\pgfpoint{-2\pgf@circ@res@other}{-2\pgf@circ@res@other}}
+ {\pgfpoint{2\pgf@circ@res@other}{2\pgf@circ@res@other}}
+ % next the opening to the right
+ \pgfpathrectanglecorners{\pgfpoint{-\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ {\pgfpoint{2\pgf@circ@res@other}{\pgf@circ@res@step}}
+ % do the difference and clip before drawing
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfpathcircle{\pgfpointorigin}{\pgf@circ@res@other}
+ \pgfusepath{draw}
+ \endpgfscope
+ % internal circle
+ \pgfpathcircle{\pgfpointorigin}{\pgf@circ@res@step}
+ \pgf@circ@draworfill
+ % and the contact line to the right
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+%% Fill for correct rectangular joins
+
+\pgfdeclareshape{rectjoinfill}{
+ \savedanchor{\northeast}{%
+ \pgf@x=.5\pgflinewidth%
+ \pgf@y=.5\pgflinewidth%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \pgfpathrectanglecorners
+ {\pgfpoint{0}{.5\pgflinewidth}}
+ {\pgfpoint{0}{-.5\pgflinewidth}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%% transistor arrow
+
+\def\pgf@circ@find@linescale{
+ % find the scale inverse of the scale factor: line width do not scale
+ % with scale=..., transform shape so we have to counteract it.
+ \iftikz@fullytransformed % this is true if `transform shape` is active
+ % from @Circumscribe https://tex.stackexchange.com/a/474035/38080
+ % Note that this trick is not working inside a `spy` environment...
+ \pgfgettransformentries{\scaleA}{\scaleB}{\scaleC}{\scaleD}{\whatevs}{\whatevs}%
+ \pgfmathsetmacro{\@@factor}{1.0/sqrt(abs(\scaleA*\scaleD-\scaleB*\scaleC))}%
+ \else
+ \pgfmathsetmacro{\@@factor}{1.0}
+ \fi
+}
+
+\pgfdeclareshape{trarrow}{%
+ % this arrow is only filled but grows with the linewidth, more or less
+ % like currarrow do
+ \savedanchor{\northeast}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \pgf@circ@find@linescale
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgfpoint{0.7*\pgf@circ@res@step +0.5*\@@factor*\pgflinewidth}
+ {0.8*\pgf@circ@res@step+0.7593*\@@factor*\pgflinewidth}
+ }
+ % The arrow size should be more or less the same of a currarrow, which is
+ % both filled and stroke, for backward output compatibility (more or less)
+ %
+ % angle \beta W is \pgf@circ@Rlen/\ctikzvalof{current arrow scale}
+ % |-\__ currarrow as the tip at (W,0)
+ % | | and the upper tail at (-0.7*W, 0.8*W)
+ % | \__ it then "overshoot" do to the linew width L
+ % | \__ xangle \alpha
+ % ---0------->
+ %
+ % \beta = atan(0.7/0.8) \alpha=atan(0.8/1.7)
+ % tip overshoot is (L/2)/sin(\alpha) = 1.743*L only in x direction
+ % tail overshoot is -(L/2) in x, and (L/2)/sin(\beta) = 0.7539*L in y
+ %
+ \savedanchor{\northwest}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@circ@find@linescale
+ \pgfpoint{-0.7*\pgf@circ@res@step -0.5*\@@factor*\pgflinewidth}
+ {0.8*\pgf@circ@res@step+0.7593*\@@factor*\pgflinewidth}
+ }
+ \savedanchor{\tip}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@circ@find@linescale
+ \pgfpoint{\pgf@circ@res@step + 1.743*\@@factor*\pgflinewidth}{0pt}
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{tip}{
+ \tip
+ }
+ \anchor{btip}{% this anchor is behind the tip of half a linewidth
+ \tip
+ \pgf@circ@find@linescale
+ \pgf@circ@res@temp=\@@factor\pgflinewidth
+ \advance\pgf@x by -.5\pgf@circ@res@temp
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \northwest
+ \pgf@circ@res@up=\pgf@y
+ \pgf@circ@res@left=\pgf@x
+ \tip
+ \pgf@circ@res@step = \pgf@x
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{fill} % just fill
+ \endpgfscope
+ }
+}
+
+%% Current arrow
+
+%% we need a phantom version of this shape for advanced v-i-f
+%% use strange names to keep ot private
+\newif\ifpgfcirc@really@draw@currarrow\pgfcirc@really@draw@currarrowtrue
+\ctikzset{phantom@currarrow/.code=\pgfcirc@really@draw@currarrowfalse}
+\ctikzset{normal@currarrow/.code=\pgfcirc@really@draw@currarrowtrue}
+
+\pgfdeclareshape{currarrow}{
+ \savedanchor{\northeast}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@x=.5\pgf@circ@res@step
+ \pgf@y=\pgf@x%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{tip}{
+ \pgfpointorigin
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@x =\pgf@circ@res@step
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \ifpgfcirc@really@draw@currarrow
+ \pgf@circ@reset@arrows@rounded
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+
+ \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}}
+ \pgfpathclose
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{draw,fill}
+ \fi
+ \endpgfscope
+ }
+}
+
+%% Flow arrow
+%% we need a phantom version of this shape for advanced v-i-f
+%% use strange names to keep ot private
+\newif\ifpgfcirc@really@draw@flowarrow\pgfcirc@really@draw@flowarrowtrue
+\ctikzset{phantom@flowarrow/.code=\pgfcirc@really@draw@flowarrowfalse}
+\ctikzset{normal@flowarrow/.code=\pgfcirc@really@draw@vlowarrowtrue}
+
+\pgfdeclareshape{flowarrow}{
+ \savedanchor{\northeast}{%
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@y=.5\pgf@circ@res@step
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 4
+ \pgf@x=\pgf@circ@res@step%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{text}{% text centered above
+ \pgfpointorigin
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox}
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{tip}{
+ \pgfpointorigin
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@x =\pgf@circ@res@step
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \ifpgfcirc@really@draw@flowarrow
+ \pgf@circ@reset@arrows@rounded
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by 4
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{draw}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfnode{currarrow}{tip}{}{}{\pgfusepath{fill}}
+ \fi
+ \endpgfscope
+ }
+}
+
+%% Input arrow
+
+\pgfdeclareshape{inputarrow}{
+ \savedanchor{\northeast}{% this is really not northeast, really -northwest
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \divide \pgf@circ@res@step by \ctikzvalof{current arrow scale}
+ \pgf@y=.5\pgf@circ@res@step
+ \pgf@x=1.7\pgf@circ@res@step
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax\pgf@x=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0cm\relax}
+ \anchor{west}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast\pgf@x=0cm\relax}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y\pgf@x=0cm\relax}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \savedanchor{\tip}{
+ \pgfpointorigin
+ }
+ \anchor{center}{
+ \tip
+ }
+ \anchor{tip}{
+ \tip
+ }
+ \behindforegroundpath{
+
+ \pgfscope
+ \pgf@circ@reset@arrows@rounded
+ \pgf@circ@res@step = \pgf@circ@Rlen
+ \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}}
+ \pgfpathclose
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfusepath{fill}
+ \endpgfscope
+ }
+}
+
+
+%% box
+
+\pgfdeclareshape{box}{
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \behindforegroundpath{
+
+ \pgfscope
+ \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@Rlen
+ \pgf@circ@res@step = 0.5\pgf@circ@res@step
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@step}}{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+%% box scaled with blocks
+
+\pgfdeclareshape{blockbox}{
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{blocks/scale}\pgf@circ@Rlen}}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \behindforegroundpath{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{blocks/scale}\pgf@circ@Rlen}
+ \pgfscope
+ \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@step = 0.5\pgf@circ@res@step
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@step}}{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+% full nodes for wire crossing
+
+\pgfdeclareshape{jump crossing}
+{
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{bipoles/crossing/size}\pgf@circ@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \behindbackgroundpath{
+ \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
+ % horizontal jumper
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{0pt}}
+ \pgfpatharc{0}{-180}{0.4*\pgf@circ@res@left}
+ \pgfsetbeveljoin
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ % vertical, broken path
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{0.5\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{0pt}{0.3\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ }
+}
+\pgfdeclareshape{plain crossing}
+{
+ \savedanchor\northwest{%
+ \pgf@y=\ctikzvalof{bipoles/crossing/size}\pgf@circ@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{ \pgf@y=0pt \pgf@x=0pt }
+ \anchor{east}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{e}{ \northwest \pgf@y=0pt \pgf@x=-\pgf@x }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{w}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{s}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{north}{ \northwest \pgf@x=0pt }
+ \anchor{n}{ \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 }
+ \behindbackgroundpath{
+ \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
+ % horizontal jumper
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ % vertical, broken path
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{0.1\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{0pt}{0.1\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ }
+}
+
+%%%---------- close: tex/pgfcircshapes
+%%%%%%%%%%% Springe nach tex/pgfcircmonopoles
+%%%---------- open: tex/pgfcircmonopoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Monopoles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%
+%% Grounds
+%%%%%%%%%%%%%
+
+
+% grounds and power supplies%<<<1
+
+\ctikzset{monopoles/.is family}
+\ctikzset{monopoles/ground/width/.initial=.25}
+\ctikzset{monopoles/ground/connectionthickness/.initial=1}
+\ctikzset{monopoles/ground/thickness/.initial=2}
+\ctikzset{monopoles/rground/thickness/.initial=2}
+\ctikzset{monopoles/tground/thickness/.initial=3}
+\ctikzset{monopoles/vcc/width/.initial=.2}
+\ctikzset{monopoles/vcc/arrow/.initial=legacy}
+\ctikzset{monopoles/vee/arrow/.initial=legacy}
+\ctikzset{monopoles/match/width/.initial=.4}
+\ctikzset{monopoles/chassis/width/.initial=.25}
+\ctikzset{monopoles/alternative chassis/width/.initial=.25}
+\ctikzset{monopoles/equipotentiality/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/bareantenna/width/.initial=.25}
+\ctikzset{monopoles/bareantenna/label/xanchor/.initial=1}
+\ctikzset{monopoles/bareantenna/label/yanchor/.initial=0.5}
+\ctikzset{monopoles/waves/width/.initial=0.5}%
+%>>>
+
+%% Node shapes for grounds and power supply%<<<
+
+%% Ground symbol
+% #1 -> name
+% #2 -> width
+% #3 -> depth
+% #4 -> code
+\long\def\pgf@circ@declareground#1#2#3#4{
+ \pgfdeclareshape{#1}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{grounds}} % class of these components
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\southeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen
+ \pgf@x=#2\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen
+ \pgf@y=-#3\pgf@y
+ }
+ \anchor{north}{\pgfpointorigin}
+ \anchor{north east}{\southeast\pgf@y=0pt\relax}
+ \anchor{east}{\southeast\pgf@y=.5\pgf@y}
+ \anchor{south east}{\southeast}
+ \anchor{south}{\southeast\pgf@x=0pt\relax}
+ \anchor{south west}{\southeast\pgf@x=-\pgf@x}
+ \anchor{west}{\southeast\pgf@y=.5\pgf@y\pgf@x=-\pgf@x}
+ \anchor{north west}{\southeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\pgfpointorigin}
+ \anchor{center}{\pgfpointorigin}
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/ground/width}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ #4
+ \endpgfscope
+ }
+ }
+}
+
+
+\pgf@circ@declareground{ground}{0.6}{1.6}{
+ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1.2\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+\pgf@circ@declareground{tlground}{0.6}{0.4}{
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{0pt}}
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-0.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-0.2\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-0.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-0.4\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+\pgf@circ@declareground{rground}{0.6}{1}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{monopoles/rground}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+\pgf@circ@declareground{tground}{0.6}{0}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{0pt}}
+ \pgfusepath{draw}
+}
+
+\pgf@circ@declareground{sground}{0.6}{1.8}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0}{-1.8\pgf@circ@res@step}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+}
+
+% noiseless ground
+\pgf@circ@declareground{nground}{0.9}{1.6}{
+ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1.2\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{0.9\pgf@circ@res@step}{-1.6\pgf@circ@res@step}}
+ \pgfpatharc{0}{180}{0.9\pgf@circ@res@step}
+ \pgfusepath{draw}
+}
+
+% protective ground
+\pgf@circ@declareground{pground}{0.9}{1.8}{
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{0pt}{-0.9\pgf@circ@res@step}}{0.9\pgf@circ@res@step}
+ \pgf@circ@draworfill
+ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1.2\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.25\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1.4\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+% chassis ground
+\pgf@circ@declareground{cground}{1}{2}{
+ \pgfsetlinewidth{\ctikzvalof{monopoles/ground/connectionthickness}\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1.5\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{monopoles/ground}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-1.00\pgf@circ@res@step}{-2.10\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.75\pgf@circ@res@step}{-1.50\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{ 0.75\pgf@circ@res@step}{-1.50\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{ 0.50\pgf@circ@res@step}{-2.10\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{ 0.00\pgf@circ@res@step}{-1.50\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.25\pgf@circ@res@step}{-2.10\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+% Contributed by @fotesan https://github.com/fotesan
+% european ground
+\pgf@circ@declareground{eground}{1.1}{1.7}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-1.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-.6\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.6\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-.1\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+\pgf@circ@declareground{eground2}{1.1}{1.7}{
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{monopoles/tground}{\pgfstartlinewidth}
+
+ \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{1\pgf@circ@res@step}{-\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-1.1\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{-.45\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-1.7\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+%%%%%%%%%%%%%%%%%%
+%% Power supplies
+%%%%%%%%%%%%%%%%%%
+
+% Vcc
+\pgfdeclareshape{vcc}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{power supplies}} % class of these components
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \saveddimen{\scaledwidth}{% thanks to @Schrödinger's cat on https://tex.stackexchange.com/a/506249/38080
+ \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}%
+ \pgfmathsetmacro{\gscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed
+ \pgfmathsetlength{\pgf@x}{(\ctikzvalof{\ctikzclass/scale}*\gscale*\ctikzvalof{monopoles/vcc/width})*\pgf@circ@Rlen}%
+ }
+ \savedanchor{\northeast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@circ@res@step
+ \pgf@y=3\pgf@x%
+ }
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y\relax}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{west}{\northeast\pgf@y=0.5\pgf@y\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{center}{\pgfpointorigin}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\pgfpointorigin}
+ \anchor{text}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgfpathmoveto{\pgfpoint{-.5\wd\pgfnodeparttextbox}{2\pgf@circ@res@step+2\ht\pgfnodeparttextbox}}
+ \pgfpathmoveto{\pgfpoint{.5\wd\pgfnodeparttextbox}{2\pgf@circ@res@step+2\ht\pgfnodeparttextbox}}
+ \pgf@x=0pt
+ \pgf@y=2\pgf@circ@res@step
+ \advance \pgf@y by 0.5\ht\pgfnodeparttextbox
+ \pgf@x=-.5\wd\pgfnodeparttextbox
+ }
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \edef\pgf@circ@temp{\ctikzvalof{monopoles/vcc/arrow}}\edef\pgf@temp{legacy}
+ \ifx\pgf@temp\pgf@circ@temp
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ \else
+ \pgfsetarrowsend{\pgf@circ@temp}
+ \fi
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{1.5\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+% Vee
+\pgfdeclareshape{vee}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{power supplies}} % class of these components
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \saveddimen{\scaledwidth}{% thanks to @Schrödinger's cat on https://tex.stackexchange.com/a/506249/38080
+ \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}%
+ \pgfmathsetmacro{\gscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed
+ \pgfmathsetlength{\pgf@x}{(\ctikzvalof{\ctikzclass/scale}*\gscale*\ctikzvalof{monopoles/vcc/width})*\pgf@circ@Rlen}%
+ }
+ \savedanchor{\northeast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@circ@res@step
+ \pgf@y=-3\pgf@x%
+ }
+ \anchor{south}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y\relax}
+ \anchor{north}{\pgfpointorigin}
+ \anchor{west}{\northeast\pgf@y=0.5\pgf@y\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast}
+ \anchor{south west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{north east}{\northeast\pgf@y=0pt\relax}
+ \anchor{north west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{center}{\pgfpointorigin}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\pgfpointorigin}
+ \anchor{text}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgfpathmoveto{\pgfpoint{-.5\wd\pgfnodeparttextbox}{-2\pgf@circ@res@step-2\ht\pgfnodeparttextbox}}
+ \pgfpathmoveto{\pgfpoint{.5\wd\pgfnodeparttextbox}{-2\pgf@circ@res@step-2\ht\pgfnodeparttextbox}}
+ \pgf@x=0pt
+ \pgf@y=-2\pgf@circ@res@step
+ \advance \pgf@y by -1.5\ht\pgfnodeparttextbox
+ \pgf@x=-.5\wd\pgfnodeparttextbox
+ }
+
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/vcc/width}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \edef\pgf@circ@temp{\ctikzvalof{monopoles/vee/arrow}}\edef\pgf@temp{legacy}
+ \ifx\pgf@temp\pgf@circ@temp
+
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ \else
+ \pgfsetarrowsend{\pgf@circ@temp}
+ \fi
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{-1.5\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}% %>>>
+
+
+%% This are strange, and probably wrong FIXME
+% \compattikzset{vdd/.style = {\comnpatname vcc = #1}}
+% \compattikzset{vss/.style = {\comnpatname vee = #1}}
+\pgfcirc@style@to@style{vcc}{vdd}
+\pgfcirc@style@to@style{vee}{vss}
+
+
+%%%%%%%%%%%%%%
+%% RF bipoles and monopoles
+%%%%%%%%%%%%%%
+
+%% RF bipoles and monopoles settings %<<<1
+\ctikzset{bipoles/mstline/height/.initial=0.3}
+\ctikzset{bipoles/mstline/width/.initial=1.2}
+\pgfkeys{/tikz/mstlinelen/.add code={}{\ctikzset{bipoles/mstline/width=#1}}}
+\ctikzset{monopoles/msport/width/.initial=.5}
+\ctikzset{monopoles/msrstub/height/.initial=1.0}
+\ctikzset{monopoles/msrstub/width/.initial=0.6}%
+%>>>
+
+%% Node shapes for RF bipoles%<<<
+
+\pgfcircdeclarebipolescaled{RF}
+{}
+{\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
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \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}}
+ \pgfpatharc{-90}{90}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpatharc{-90}{90}{-\pgf@circ@res@step and -\pgf@circ@res@up}
+ \pgfusepath{stroke}
+ \endpgfscope
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{stroke}
+}
+
+% microstrip transmission line
+\pgfcircdeclarebipolescaled{RF}
+{}
+{\ctikzvalof{bipoles/mstline/height}}
+{mstline}
+{\ctikzvalof{bipoles/mstline/height}}
+{\ctikzvalof{bipoles/mstline/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+}% %>>>
+
+%% Path definitions for RF path objects%<<<
+\pgfcirc@activate@bipole@simple{l}{mstline}
+\pgfcirc@activate@bipole@simple{l}{tline}
+\pgfcirc@style@to@style{tline}{transmission line}
+\pgfcirc@style@to@style{tline}{TL}
+% %>>>
+
+%% Node shapes for RF monopoles%<<<
+
+% Legacy tlinestub
+% Contributed by Leonardo Azzinnari
+\pgfdeclareshape{tlinestub}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\northeast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tline/width} \pgf@circ@scaled@Rlen
+ \pgf@x=1.2\pgf@circ@res@step
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tline/width} \pgf@circ@scaled@Rlen
+ \pgf@y=.2\pgf@circ@res@step%
+ }
+ % the center is on the left side of the shape for facility of usage
+ \anchor{north}{\northeast\pgf@x=0.5\pgf@x\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y \pgf@x=0.5\pgf@x\relax}
+ \anchor{west}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=0cm\relax}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\northeast\pgf@x=0cm\pgf@y=-\pgf@y}
+ \anchor{center}{\pgfpointorigin}
+ % this is not exact, but it's better than nothing
+ \anchor{text}{\northeast\pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpoint{\dimexpr-.5\wd\pgfnodeparttextbox+.8\pgf@xa}
+ {\dimexpr-.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@ya}}
+ \behindforegroundpath{
+ \pgfstartlinewidth=\pgflinewidth
+
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{bipoles/tline/width}\pgf@circ@scaled@Rlen
+
+ \pgfscope
+ \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}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpatharc{90}{-90}{-0.125\pgf@circ@res@step and -0.25\pgf@circ@res@step}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{0.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}
+ \pgfusepath{stroke}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0pt}}
+ \pgfusepath{draw}
+ }
+}
+
+%% New antennas without tails
+
+% main body of antennas
+\def\pgf@circ@antennabody{%
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{2\pgf@circ@res@step}}
+ \pgfsetbeveljoin
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{2\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+% Waves for the antennas.
+\def\pgf@circ@antennawaves{%
+ \pgfscope
+ % define a triangle for clipping the waves
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{4.2\pgf@circ@res@step}{3\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{4.2\pgf@circ@res@step}{-1\pgf@circ@res@step}}
+ \pgfpathclose
+ \pgfusepath{clip}
+ % ...and build the waves as clipped circles
+ \pgf@circ@count@a=8\pgf@circ@res@other=0.5\pgf@circ@res@step
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>2
+ \pgfpathcircle{\pgfpoint{0pt}{\pgf@circ@res@step}}{\the\pgf@circ@count@a*\pgf@circ@res@other}
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% additional shape with the waves
+\pgfdeclareshape{waves}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/waves/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step
+ \pgf@y=\pgf@circ@res@step
+ }
+ \anchor{text}{
+ \northeast
+ \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0pt}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0pt}
+ \anchor{bottom}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{north east}{\northeast}
+ \anchor{east}{\northeast\pgf@y=0pt}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south}{\northeast\pgf@y=-\pgf@y\pgf@x=0pt}
+ \anchor{south west}{\northeast\pgf@y=-\pgf@y\pgf@x=-\pgf@x}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0pt}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/waves/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@step=0.5\pgf@circ@res@step
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfscope
+ % define a triangle for clipping the waves
+ \pgfpathmoveto{\pgfpoint{-2\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{2.1\pgf@circ@res@step}{2\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{2.1\pgf@circ@res@step}{-2\pgf@circ@res@step}}
+ \pgfpathclose
+ \pgfusepath{clip}
+ % ...and build the waves as clipped circles
+ \c@pgf@counta=8\pgf@circ@res@other=0.5\pgf@circ@res@step
+ \pgfmathloop%
+ \ifnum\c@pgf@counta>1
+ \pgfpathcircle{\pgfpoint{-2\pgf@circ@res@step}{0pt}}{\the\c@pgf@counta*\pgf@circ@res@other}
+ \advance\c@pgf@counta-1\relax%
+ \repeatpgfmathloop
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+% the three types of antennas: simple, TX, RX. Notice that you can flip them...
+
+\pgfdeclareshape{bareantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step
+ \pgf@y=2\pgf@circ@res@step
+ }
+ \anchor{text}{
+ \northeast
+ \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y
+ \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{bottom}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgf@circ@antennabody
+ }
+}
+
+\pgfdeclareshape{bareTXantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step
+ \pgf@y=2\pgf@circ@res@step
+ }
+ \savedanchor{\savedwaves}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=4.2\pgf@circ@res@step
+ \pgf@y=\pgf@circ@res@step
+ }
+ \anchor{text}{
+ \northeast
+ \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y
+ \pgf@x=\dimexpr-\pgf@x-\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{waves}{\savedwaves}
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{bottom}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgf@circ@antennabody
+ \pgf@circ@antennawaves
+ }
+}
+
+\pgfdeclareshape{bareRXantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step
+ \pgf@y=2\pgf@circ@res@step
+ }
+ \savedanchor{\savedwaves}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/bareantenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-4.2\pgf@circ@res@step
+ \pgf@y=\pgf@circ@res@step
+ }
+ \anchor{text}{
+ \northeast
+ \pgf@x=\ctikzvalof{monopoles/bareantenna/label/xanchor}\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/bareantenna/label/yanchor}\pgf@y
+ \pgf@y=\dimexpr\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{waves}{\savedwaves}
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{bottom}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgf@circ@antennabody
+ \pgftransformxshift{-5.2\pgf@circ@res@step}
+ \pgf@circ@antennawaves
+ }
+}
+
+%%% dynodes (see https://github.com/circuitikz/circuitikz/issues/469)
+\ctikzset{monopoles/dynode/width/.initial=0.4}
+\ctikzset{monopoles/dynode/height/.initial=0.8}
+\ctikzset{monopoles/dynode/arc pos/.initial=0.5}
+\ctikzset{monopoles/dynode/arc angle/.initial=30}
+\ctikzset{monopoles/dynode/top width/.initial=1.0}
+
+\pgfdeclareshape{dynode}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{tubes}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/dynode/width}\pgf@circ@scaled@Rlen
+ \pgf@x=0.5\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/dynode/height}\pgf@circ@scaled@Rlen
+ }
+ \savedanchor{\arcpos}{% bottom part of the arc pos
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=0pt
+ \pgf@y=\ctikzvalof{monopoles/dynode/height}\pgf@circ@scaled@Rlen
+ \pgf@y=\ctikzvalof{monopoles/dynode/arc pos}\pgf@y
+ }
+ \savedanchor{\topright}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/dynode/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\ctikzvalof{monopoles/dynode/top width}\pgf@x
+ \pgf@x=0.5\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/dynode/height}\pgf@circ@scaled@Rlen
+ }
+ \anchor{arc}{\arcpos}
+ \anchor{top right}{\topright}
+ \anchor{top left}{\topright\pgf@x=-\pgf@x}
+ \anchor{text}{
+ \northeast
+ \advance\pgf@x by 4pt\relax
+ \pgf@y=\dimexpr0.5\pgf@y+.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \anchor{top}{\northeast\pgf@x=0pt}
+ \anchor{right}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{left}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{bottom}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0.5\pgf@y}
+ \anchor{west}{\northeast\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{south}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=-\pgf@x}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \behindforegroundpath{
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgfsetcolor{\ctikzvalof{color}}
+ \northeast
+ \pgf@circ@res@right=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \arcpos
+ \pgf@circ@res@step=\pgf@y
+ % top
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{monopoles/dynode/top width}*\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{monopoles/dynode/top width}*\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ % arc
+ \edef\@@angle{\ctikzvalof{monopoles/dynode/arc angle}}
+ \ifnum90=\@@angle\else % avoid divisions by zero
+ % radius
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@res@right/cos(\@@angle)}
+ % start angle y position
+ \pgfmathsetlength{\pgf@circ@res@step}{\pgf@circ@res@step+\pgf@circ@res@other*(1-sin(\@@angle))}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgf@circ@res@step}}
+ \pgfpatharc{-180+\@@angle}{-\@@angle}{\pgf@circ@res@other}
+ \fi
+ % tail
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ }
+}
+% Microstrip monopoles
+
+\pgfdeclareshape{mslstub}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\southeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{bipoles/mstline/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen
+ \pgf@y=-.5\pgf@y
+ }
+ \savedanchor{\northwest}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{bipoles/mstline/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ }
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{east}{\southeast\pgf@y=0pt\relax}
+ \anchor{south east}{\southeast}
+ \anchor{south}{\southeast\pgf@x=0pt\relax}
+ \anchor{south west}{\southeast\pgf@x=-\pgf@x}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+ \anchor{north west}{\northwest}
+ %
+ \anchor{center}{\northwest\pgf@y=0pt\relax}
+ \anchor{left}{\northwest\pgf@y=0pt\relax}
+ \anchor{right}{\southeast\pgf@y=0pt\relax}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+ \behindbackgroundpath{
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@right}{\southeast}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfextracty{\pgf@circ@res@down}{\southeast}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{msrstub}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\southeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/msrstub/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt\relax
+ }
+ \savedanchor{\northwest}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/msrstub/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ \pgf@y=\ctikzvalof{monopoles/msrstub/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ }
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{east}{\southeast\pgf@y=0pt\relax}
+ \anchor{south east}{\southeast}
+ \anchor{south}{\southeast\pgf@x=0pt\relax}
+ \anchor{south west}{\southeast\pgf@x=-\pgf@x}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+ \anchor{north west}{\northwest}
+ %
+ \anchor{center}{\pgfpointorigin}
+ \anchor{left}{\pgfpointorigin}
+ \anchor{right}{\pgfpointorigin}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+ \behindbackgroundpath{
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@right}{\southeast}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfextracty{\pgf@circ@res@down}{\southeast}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfscope
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointpolar{135}{\pgf@circ@res@step}}
+ \pgfpatharc{135}{45}{\pgf@circ@res@step}
+ \pgfpathlineto{\pgfpointpolar{45}{\pgf@circ@res@up}}
+ \pgfpatharc{45}{135}{\pgf@circ@res@up}
+ \pgfclosepath
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{msport}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\southeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/msport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen
+ \pgf@y=-.5\pgf@y
+ }
+ \savedanchor{\northwest}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/msport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ \pgf@y=\ctikzvalof{bipoles/mstline/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ }
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{east}{\southeast\pgf@y=0pt\relax}
+ \anchor{south east}{\southeast}
+ \anchor{south}{\southeast\pgf@x=0pt\relax}
+ \anchor{south west}{\southeast\pgf@x=-\pgf@x}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+ \anchor{north west}{\northwest}
+ %
+ \anchor{center}{\northwest\pgf@y=0pt\relax}
+ \anchor{left}{\northwest\pgf@y=0pt\relax}
+ \anchor{right}{\southeast\pgf@y=0pt\relax}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr-.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ }
+ \behindbackgroundpath{
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@right}{\southeast}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfextracty{\pgf@circ@res@down}{\southeast}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.5*\pgf@circ@res@up}
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ }
+}
+
+% Legacy antennas (with tails)
+\def\pgf@circ@shift@antenna@xy#1#2{%
+ \pgf@y=\dimexpr\pgf@y+#2\pgf@circ@res@step
+ \pgf@x=\dimexpr\pgf@x+#1\pgf@circ@res@step
+\relax}
+
+% Legacy antenna
+\pgfdeclareshape{antenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth
+ \pgf@y=4\pgf@circ@res@step
+ }
+ \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{0}{2}}
+ \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{0}{3}\relax}
+ \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{0}{4}\relax}
+ \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{3}}
+ \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{0}{2}}
+ \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{2}}
+ \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{0}{4}}
+ \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{0}{4}}
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen
+
+ \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{\ctikzvalof{color}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfsetlinewidth{\pgfstartlinewidth}
+
+ }
+}
+
+% Legacy TX antenna
+\pgfdeclareshape{txantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth
+ \pgf@y=4\pgf@circ@res@step
+ }
+ \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{2}}
+ \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{4}{3}\relax}
+ \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{4}\relax}
+ \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{3}}
+ \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{4}{2}}
+ \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{2}}
+ \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{4}{4}}
+ \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{4}}
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/txantenna/width}\pgf@circ@scaled@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{\ctikzvalof{color}}
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+ }
+}
+
+% Legacy RX antenna
+\pgfdeclareshape{rxantenna}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor{\northeast}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step=\ctikzvalof{monopoles/antenna/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\pgf@circ@res@step%-0.5\pgflinewidth
+ \pgf@y=4\pgf@circ@res@step
+ }
+ \anchor{north}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{2}}
+ \anchor{east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@circ@shift@antenna@xy{4}{3}\relax}
+ \anchor{south}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y \pgf@x=0cm\pgf@circ@shift@antenna@xy{2}{4}\relax}
+ \anchor{west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=0cm\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{3}}
+ \anchor{north east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@circ@shift@antenna@xy{4}{2}}
+ \anchor{north west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{2}}
+ \anchor{south east}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@circ@shift@antenna@xy{4}{4}}
+ \anchor{south west}{\northeast\pgf@circ@res@step=\pgf@x\pgf@y=-\pgf@y\pgf@x=-\pgf@x\pgf@circ@shift@antenna@xy{1}{4}}
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/rxantenna/width}\pgf@circ@scaled@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{\ctikzvalof{color}}
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ }
+}
+
+% Legacy match
+\pgfdeclareshape{match}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{RF}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor{\northeast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step = \ctikzvalof{monopoles/match/width} \pgf@circ@scaled@Rlen
+ \pgf@x=2\pgf@circ@res@step
+ \pgf@circ@res@step = \ctikzvalof{monopoles/match/width} \pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@circ@res@step%
+ }
+ % the center is on the left side of the shape for facility of usage
+ \anchor{north}{\northeast\pgf@x=0.5\pgf@x\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\northeast\pgf@y=0pt\pgf@x=0.5\pgf@x\relax}
+ \anchor{west}{\pgfpointorigin}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@x=0cm\relax}
+ \anchor{south east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south west}{\pgfpointorigin}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{text}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{monopoles/match/width}\pgf@circ@scaled@Rlen
+ \pgf@x=1.5\pgf@x
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \pgf@y=-1.5\ht\pgfnodeparttextbox
+ }
+ \behindforegroundpath{
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{monopoles/match/width}\pgf@circ@scaled@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
+ }
+}
+% %>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircmonopoles
+%%%%%%%%%%% Springe nach tex/pgfcircbipoles
+%%%---------- open: tex/pgfcircbipoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Standard bipole shapes declarations
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Generic macro and flags for bipoles %<<<
+% Fixing tunable directions
+\newif\ifpgf@circ@fixtunable@dir
+\ctikzset{bipoles/fix tunable direction/.is if=pgf@circ@fixtunable@dir}
+\ctikzset{bipoles/fix tunable direction=true}
+% choosing several arrows
+\pgf@circ@declare@family@arrows{tunable}
+\pgf@circ@declare@family@arrows{wiper}
+\pgf@circ@declare@family@arrows{switch}
+\pgf@circ@declare@family@arrows{gto gate}
+
+%>>>
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+% Resistive components: generics, resistors, wires
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Definitions for resistive components %<<<
+
+% Zig Zag resistors
+\ctikzset{resistors/zigs/.initial=3}
+\ctikzset{resistors/width/.code={%
+ \ctikzset{bipoles/resistor/width=#1}%
+ \ctikzset{bipoles/vresistor/width=#1}%
+ \ctikzset{bipoles/potentiometer/width=#1}%
+ \ctikzset{bipoles/resistivesens/width=#1}%
+ \ctikzset{bipoles/photoresistor/width=#1}%
+ \ctikzset{bipoles/thermistor/width=#1}%
+ \ctikzset{bipoles/thermistorntc/width=#1}%
+ \ctikzset{bipoles/thermistorptc/width=#1}%
+ \ctikzset{bipoles/varistor/width=#1}%
+ \ctikzset{bipoles/generic/width=#1}%
+ \ctikzset{bipoles/generic potentiometer/width=#1}%
+ \ctikzset{bipoles/ageneric/width=#1}%
+ \ctikzset{bipoles/tgeneric/width=#1}%
+}}
+\ctikzset{wiper pos/.code={%
+ \ctikzset{bipoles/potentiometer/wiper pos=#1}%
+ \ctikzset{bipoles/generic potentiometer/wiper pos=#1}%
+}}
+% zigzag resistor
+\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/potentiometer/wiper pos/.initial=.5}
+\ctikzset{bipoles/vresistor/height/.initial=.6}
+\ctikzset{bipoles/vresistor/width/.initial=.8}
+\ctikzset{bipoles/resistivesens/height/.initial=.6}
+\ctikzset{bipoles/resistivesens/width/.initial=.8}
+% square resistors
+\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/generic/height/.initial=.30}
+\ctikzset{bipoles/generic/width/.initial=.80}
+\ctikzset{bipoles/generic potentiometer/height/.initial=.80}
+\ctikzset{bipoles/generic potentiometer/height 2/.initial=.30}
+\ctikzset{bipoles/generic potentiometer/width/.initial=.80}
+\ctikzset{bipoles/generic potentiometer/wiper pos/.initial=.5}
+\ctikzset{bipoles/ageneric/height/.initial=.30}
+\ctikzset{bipoles/tgeneric/height/.initial=.70}
+\ctikzset{bipoles/tgeneric/width/.initial=.80}
+\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}
+
+\newif\ifpgf@circuit@europeanresistor
+\ctikzset{resistor/.is choice}
+\ctikzset{resistor/american/.code = \pgf@circuit@europeanresistorfalse }
+\ctikzset{resistor/european/.code = \pgf@circuit@europeanresistortrue }
+\tikzset{american resistors/.style = {\circuitikzbasekey/resistor = american}}
+\tikzset{european resistors/.style = {\circuitikzbasekey/resistor = european}}%
+
+% wires (open, shorts, ...)
+
+\ctikzset{bipoles/open/height/.initial=.3} %necessary for curly voltages
+\ctikzset{bipoles/open/width/.initial=.3} %necessary for curly voltages
+\ctikzset{bipoles/open/voltage/straight label distance/.initial=0}
+\ctikzset{bipoles/open/voltage/distance from node/.initial=.2}
+\ctikzset{bipoles/short/height/.initial=.1} %dummy height for voltage positioning
+\ctikzset{bipoles/short/width/.initial=.1} %dummy width for voltage positioning
+% multiwire
+\ctikzset{bipoles/multiwire/height/.initial=0.4}
+\ctikzset{bipoles/multiwire/width/.initial=0.2}
+\ctikzset{bipoles/multiwire/spacing/.initial=0.05}
+% crossing wires
+\ctikzset{bipoles/crossing/size/.initial=.2}
+
+%%>>>
+
+%% Shapes for generic, resistives and wires components %<<<
+%% Short circuit
+
+%%% NOTICE that the short is really NOT drawn; we trust the fact that its
+%%% natural length is zero.
+\pgfcircdeclarebipole
+{% fix the anchor border to add a bit of space for voltage and labels
+ % it uses the dummy width and height
+ \anchorborder{%
+ \ifpgf@circuit@bipole@inverted
+ \pgf@circ@res@left=-\pgf@x
+ \pgf@circ@res@up=-\pgf@y
+ \else
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \fi
+ \ifdim\pgf@circ@res@up>0cm
+ \pgf@x=\ctikzvalof{bipoles/short/width}\pgf@circ@Rlen
+ \pgf@y=\ctikzvalof{bipoles/short/height}\pgf@circ@Rlen
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@x}{\pgf@y}}
+ \else
+ \pgf@x=-\ctikzvalof{bipoles/short/width}\pgf@circ@Rlen
+ \pgf@y=-\ctikzvalof{bipoles/short/height}\pgf@circ@Rlen
+ \pgfpointborderrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{-\pgf@x}{-\pgf@y}}
+ \fi
+ }
+}
+{0}
+{short}
+{0}
+{0}
+{}
+
+%% Open circuit
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/open/height}}
+{open}
+{\ctikzvalof{bipoles/open/height}}
+{\ctikzvalof{bipoles/open/width}}
+{}
+
+% multiwire(s)
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/multiwire/height}}
+{multiwire}
+{\ctikzvalof{bipoles/multiwire/height}}
+{\ctikzvalof{bipoles/multiwire/width}}
+{
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/multiwire/height}}
+{bmultiwire}
+{\ctikzvalof{bipoles/multiwire/height}}
+{\ctikzvalof{bipoles/multiwire/width}}
+{
+ \pgf@circ@res@other=\ctikzvalof{bipoles/multiwire/spacing}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/multiwire/height}}
+{tmultiwire}
+{\ctikzvalof{bipoles/multiwire/height}}
+{\ctikzvalof{bipoles/multiwire/width}}
+{
+ \pgf@circ@res@other=\ctikzvalof{bipoles/multiwire/spacing}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+2\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{2\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+%%%%%%%%%%%%%%%%
+%% Crossing
+%%%%%%%%%%%%%%%%
+
+%% crossing bipole (but see also nodes)
+\pgfcircdeclarebipole
+{}
+{\ctikzvalof{bipoles/crossing/size}}
+{crossing}
+{\ctikzvalof{bipoles/crossing/size}}
+{\ctikzvalof{bipoles/crossing/size}}{
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpatharc{0}{-180}{0.4*\pgf@circ@res@left}
+ \pgfsetbeveljoin
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+%
+%
+%% Generic bipole - used as resistor by some
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/generic/height}}
+{generic}
+{\ctikzvalof{bipoles/generic/height}}
+{\ctikzvalof{bipoles/generic/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+}
+
+%
+% generic crossed, suggested by Radványi Patrik Tamás <patrikradvanyi@gmail.com>
+% inherit "generic" properties
+%
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/generic/height}}
+{xgeneric}
+{\ctikzvalof{bipoles/generic/height}}
+{\ctikzvalof{bipoles/generic/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ % cross it
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+%% Generic empty tunable
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\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}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \ifpgf@circ@fixtunable@dir
+ \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Generic asymmetric bipole
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/ageneric/height}}
+{ageneric}
+{\ctikzvalof{bipoles/ageneric/height}}
+{\ctikzvalof{bipoles/ageneric/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathrectanglecorners{\pgfpoint{.7\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{stroke,fill}
+}
+
+%% Memristor
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/memristor/height}}
+{memristor}
+{\ctikzvalof{bipoles/memristor/height}}
+{\ctikzvalof{bipoles/memristor/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/resistor/width}\pgf@circ@scaled@Rlen
+ \divide \pgf@circ@res@step by 14
+
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \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}
+}
+
+%% Photoresistor
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/photoresistor/height 2}}
+{photoresistor}
+{\ctikzvalof{bipoles/photoresistor/height}}
+{\ctikzvalof{bipoles/photoresistor/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfscope
+ \pgfsetarrowsend{latexslim}
+ \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
+\pgfcircdeclarebipolescaled{resistors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{%
+ \southwest
+ \pgf@x=0.4\pgf@x
+ \pgf@y=1.2\pgf@y
+ }%
+ \pgfcirc@border@extend@updown{1}{1.2}
+}
+{\ctikzvalof{bipoles/thermistor/height}}
+{thermistor}
+{\ctikzvalof{bipoles/thermistor/height}}
+{\ctikzvalof{bipoles/thermistor/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\ctikzvalof{bipoles/thermistor/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\ctikzvalof{bipoles/thermistor/main}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{1.2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{1.2\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+%% Thermistor PTC
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/thermistorptc/height 2}}
+{thermistorptc}
+{\ctikzvalof{bipoles/thermistorptc/height}}
+{\ctikzvalof{bipoles/thermistorptc/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\ctikzvalof{bipoles/thermistorptc/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\ctikzvalof{bipoles/thermistorptc/main}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \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}
+ \endpgfscope
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgftext[top,x=.85\pgf@circ@res@left,y=.75\pgf@circ@res@down]{\pgf@circ@font@tiny$\vartheta$}
+ \pgfsetarrowsend{latexslim}
+ \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
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/thermistorntc/height 2}}
+{thermistorntc}
+{\ctikzvalof{bipoles/thermistorntc/height}}
+{\ctikzvalof{bipoles/thermistorntc/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\ctikzvalof{bipoles/thermistorntc/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\ctikzvalof{bipoles/thermistorntc/main}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \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}
+ \endpgfscope
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgftext[top,x=.85\pgf@circ@res@left,y=.75\pgf@circ@res@down]{\pgf@circ@font@tiny$\vartheta$}
+ \pgfsetarrowsend{latexslim}
+ \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}
+}
+
+%% Varistor
+\pgfcircdeclarebipolescaled{resistors}
+{
+ \pgfcirc@border@extend@updown{1}{1.4}
+}
+{\ctikzvalof{bipoles/varistor/height}}
+{varistor}
+{\ctikzvalof{bipoles/varistor/height}}
+{\ctikzvalof{bipoles/varistor/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\ctikzvalof{bipoles/varistor/main}\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{-\ctikzvalof{bipoles/varistor/main}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \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
+
+ \pgftext[top,x=.65\pgf@circ@res@left,y=1.2\pgf@circ@res@down]{{\pgf@circ@font@tiny\textsf{U}}}
+}
+
+%% Generic tunable
+\pgfcircdeclarebipolescaled{resistors}
+{
+ \savedanchor{\wiper}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@ya=\ctikzvalof{bipoles/generic potentiometer/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@ya
+ \pgf@xa=\ctikzvalof{bipoles/generic potentiometer/width}\pgf@circ@scaled@Rlen
+ \pgfmathsetlength{\pgf@x}{(\ctikzvalof{bipoles/generic potentiometer/wiper pos}-0.5)*\pgf@xa}
+ }
+ \anchor{wiper}{\wiper}
+ \anchor{W}{\wiper}
+}
+{\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@scaled@Rlen
+ \divide \pgf@circ@res@step by 14
+
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfscope
+ %\pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfcirc@set@arrows{wiper}{}{latexslim}
+ \pgfextractx{\pgf@circ@res@other}{\wiper}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Zig-zag resistors
+\def\pgf@circ@zigzag#1{%
+ \divide \pgf@circ@res@step by \numexpr4*\zigs\relax
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}}
+ \pgf@circ@res@other = \pgf@circ@res@left
+ \pgf@circ@count@a=\zigs\relax
+ % first half zig
+ \advance\pgf@circ@res@other by \pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-#1\pgf@circ@res@down}}
+ \pgfmathloop%
+ \advance\pgf@circ@count@a by -1\relax% Loop zigs -1 times
+ \ifnum\pgf@circ@count@a>0
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{#1\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-#1\pgf@circ@res@down}}
+ \repeatpgfmathloop%
+ % last zig and a half
+ \advance\pgf@circ@res@other by 2\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{#1\pgf@circ@res@down}}
+ \advance\pgf@circ@res@other by \pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ \pgfsetbeveljoin
+ \pgfusepath{draw}
+}
+
+%% Resistor
+\pgfcircdeclarebipolescaled{resistors}
+{
+\savedmacro{\zigs}{\edef\zigs{\ctikzvalof{resistors/zigs}}}
+}
+{\ctikzvalof{bipoles/resistor/height}}
+{resistor}
+{\ctikzvalof{bipoles/resistor/height}}
+{\ctikzvalof{bipoles/resistor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}
+ \pgf@circ@zigzag{1}
+}
+
+
+%% Variable resistor
+\pgfcircdeclarebipolescaled{resistors}
+{
+\savedmacro{\zigs}{\edef\zigs{\ctikzvalof{resistors/zigs}}}
+}
+{\ctikzvalof{bipoles/vresistor/height}}
+{vresistor}
+{\ctikzvalof{bipoles/vresistor/height}}
+{\ctikzvalof{bipoles/vresistor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/vresistor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}
+ \pgf@circ@zigzag{.5}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \ifpgf@circ@fixtunable@dir
+ \pgfpathmoveto{\pgfpoint{-.4\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Potentiometer
+\pgfcircdeclarebipolescaled{resistors}
+{
+ \savedanchor{\wiper}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@ya=\ctikzvalof{bipoles/potentiometer/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@ya
+ \pgf@xa=\ctikzvalof{bipoles/potentiometer/width}\pgf@circ@scaled@Rlen
+ \pgfmathsetlength{\pgf@x}{(\ctikzvalof{bipoles/potentiometer/wiper pos}-0.5)*\pgf@xa}
+ }
+ \anchor{wiper}{\wiper}
+ \anchor{W}{\wiper}
+ \savedmacro{\zigs}{\edef\zigs{\ctikzvalof{resistors/zigs}}}
+}
+{\ctikzvalof{bipoles/potentiometer/height 2}}
+{potentiometer}
+{\ctikzvalof{bipoles/potentiometer/height}}
+{\ctikzvalof{bipoles/potentiometer/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/potentiometer/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}
+ \pgf@circ@zigzag{1}
+
+ \pgfscope
+ %\pgfsetlinewidth{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{wiper}{}{latexslim}
+ \pgfextractx{\pgf@circ@res@other}{\wiper}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Resistive sensor
+\pgfcircdeclarebipolescaled{resistors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{\southwest\pgf@x=0.4\pgf@x}%
+ \savedmacro{\zigs}{\edef\zigs{\ctikzvalof{resistors/zigs}}}
+}
+{\ctikzvalof{bipoles/resistivesens/height}}
+{resistivesens}
+{\ctikzvalof{bipoles/resistivesens/height}}
+{\ctikzvalof{bipoles/resistivesens/width}}
+{%
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistivesens/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}
+ \pgf@circ@zigzag{.5}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.4\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-.9\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}% %>>>
+
+%% Paths for resistive components: generic, resistors and wires% %<<<
+
+%% GENERICS
+\def\pgf@circ@empty@path#1{}
+\pgfcirc@activate@bipole@simple{l}{generic}
+\pgfcirc@activate@bipole@simple{l}{ageneric}
+\pgfcirc@activate@bipole@simple{l}{tgeneric}
+\pgfcirc@activate@bipole@simple{l}{xgeneric}
+\pgfcirc@activate@bipole@simple{l}{fullgeneric}
+\pgfcirc@activate@bipole@simple{l}{tfullgeneric}
+\pgfcirc@activate@bipole@simple{l}{short}
+\pgfcirc@activate@bipole@simple{l}{open}
+
+%% wires and crossings
+
+\pgfcirc@activate@bipole@simple{l}{crossing}
+\pgfcirc@style@to@style{crossing}{xing}
+\pgfcirc@activate@bipole@simple{l}{multiwire}
+\pgfcirc@activate@bipole@simple{l}{bmultiwire}
+\pgfcirc@activate@bipole@simple{l}{tmultiwire}
+
+% automatically switching path --- to be defined manually
+\def\pgf@circ@resistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{generic}{#1}\else\pgf@circ@bipole@path{resistor}{#1}\fi}
+\pgfcirc@path@to@style{l}{resistor}{resistor}{}
+\pgfcirc@node@to@style{l}{resistor}{american resistor}{}
+\pgfcirc@node@to@style{l}{generic}{european resistor}{}
+\pgfcirc@style@to@style{resistor}{R}
+
+\def\pgf@circ@vresistor@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{tgeneric}{#1}\else\pgf@circ@bipole@path{vresistor}{#1}\fi}
+\pgfcirc@path@to@style{l}{vresistor}{variable resistor}{}
+\pgfcirc@node@to@style{l}{vresistor}{variable american resistor}{}
+\pgfcirc@node@to@style{l}{tgeneric}{variable european resistor}{}
+\pgfcirc@style@to@style{variable resistor}{vR}
+
+\def\pgf@circ@resistivesens@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{thermistor}{#1}\else\pgf@circ@bipole@path{resistivesens}{#1}\fi}
+\pgfcirc@path@to@style{l}{resistivesens}{resistive sensor}{}
+\pgfcirc@node@to@style{l}{resistivesens}{american resistive sensor}{}
+\pgfcirc@node@to@style{l}{thermistor}{european resistive sensor}{}
+\pgfcirc@style@to@style{resistive sensor}{sR}
+
+\def\pgf@circ@potentiometer@path#1{\ifpgf@circuit@europeanresistor\pgf@circ@bipole@path{genericpotentiometer}{#1}\else\pgf@circ@bipole@path{potentiometer}{#1}\fi}
+\pgfcirc@path@to@style{l}{potentiometer}{potentiometer}{}
+\pgfcirc@node@to@style{l}{potentiometer}{american potentiometer}{}
+\pgfcirc@node@to@style{l}{genericpotentiometer}{european potentiometer}{}
+\pgfcirc@style@to@style{potentiometer}{pR}
+
+\pgfcirc@activate@bipole@simple{l}{thermistor}
+\pgfcirc@style@to@style{thermistor}{thR}
+\pgfcirc@activate@bipole{l}{thermistorptc}{thermistorptc}{thermistor ptc}
+\pgfcirc@style@to@style{thermistor ptc}{thRp}
+\pgfcirc@activate@bipole{l}{thermistorntc}{thermistorntc}{thermistor ntc}
+\pgfcirc@style@to@style{thermistor ntc}{thRn}
+\pgfcirc@activate@bipole@simple{l}{photoresistor}
+\pgfcirc@style@to@style{photoresistor}{phR}
+\pgfcirc@activate@bipole@simple{l}{varistor}
+\pgfcirc@activate@bipole@simple{l}{memristor}
+\pgfcirc@style@to@style{memristor}{Mr}%
+% %>>>
+
+%%%%%%%%%%%%%%
+%% Capacitors
+%%%%%%%%%%%%%
+
+%% Definitions for Capacitors%<<<1
+\ctikzset{bipoles/capacitor/height/.initial=.6}
+\ctikzset{bipoles/capacitor/width/.initial=.2}
+\ctikzset{bipoles/ecapacitor/height/.initial=.5}
+\ctikzset{bipoles/ecapacitor/width/.initial=.2}
+\ctikzset{bipoles/ecapacitor/font/.initial=\pgf@circ@font@sixbm}
+%%% pcapacitor is deprecated
+\ctikzset{bipoles/pcapacitor/height/.initial=.6}
+\ctikzset{bipoles/pcapacitor/width/.initial=.2}
+\ctikzset{bipoles/pcapacitor/bend width/.initial=1.1}
+\ctikzset{bipoles/ccapacitor/height/.initial=.6}
+\ctikzset{bipoles/ccapacitor/width/.initial=.2}
+\ctikzset{bipoles/ccapacitor/bend width/.initial=1.1}
+\ctikzset{bipoles/vcapacitor/height/.initial=.6}
+\ctikzset{bipoles/vcapacitor/width/.initial=.2}
+\ctikzset{bipoles/vcapacitor/tunable width/.initial=3}
+\ctikzset{bipoles/vcapacitor/capacitor width/.code={%
+ \pgfutil@packagewarning{circuitikz}{vcapacitor/capacitor width deprecated; ignored}%
+}}% deprecated
+% piezoelectric (double size by default)
+\ctikzset{bipoles/piezoelectric/height/.initial=.7}
+\ctikzset{bipoles/piezoelectric/width/.initial=.4}%
+% constant phase element (double size by default)
+\ctikzset{bipoles/cpe/height/.initial=.6}
+\ctikzset{bipoles/cpe/width/.initial=.4}
+%
+% style settings
+%
+\ctikzset{capacitors/width/.code={%
+ \pgfmathsetmacro{\pgfcirc@@double}{2*#1}%
+ \ctikzset{bipoles/.cd,
+ capacitor/width=#1, ecapacitor/width=#1, ccapacitor/width=#1,
+ vcapacitor/width=#1,
+ piezoelectric/width=\pgfcirc@@double,
+ cpe/width=\pgfcirc@@double,
+}}}
+\ctikzset{capacitors/height/.code={%
+ \ctikzset{bipoles/.cd,
+ capacitor/height=#1, ecapacitor/height=#1, ccapacitor/height=#1,
+ vcapacitor/height=#1,
+ piezoelectric/height=#1,
+ cpe/height=#1,
+}}}
+\def\pgfcirc@maybe@fill@straight@capacitor{%
+ \pgfscope
+ \pgfpathrectanglecorners
+ {\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@maybefill
+ \endpgfscope
+}
+%>>>
+
+%% Shapes for capacitors%<<<
+%% Plain Capacitor
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/capacitor/height}}
+{capacitor}
+{\ctikzvalof{bipoles/capacitor/height}}
+{\ctikzvalof{bipoles/capacitor/width}}
+{
+ \pgfcirc@maybe@fill@straight@capacitor
+
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+}
+
+%% Capacitive sensor
+\pgfcircdeclarebipolescaled{capacitors}
+{
+ \anchor{label}{\southwest\pgf@x=2.6\pgf@x\pgf@y=1.2\pgf@y}%
+ \pgfcirc@border@extend@full{2.6}{1}{4.4}{1.2}
+}
+{\ctikzvalof{bipoles/capacitor/height}}
+{capacitivesens}
+{\ctikzvalof{bipoles/capacitor/height}}
+{\ctikzvalof{bipoles/capacitor/width}}
+{
+ \pgfcirc@maybe@fill@straight@capacitor
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{2.6\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-2.6\pgf@circ@res@right}{1.2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-4.4\pgf@circ@res@right}{1.2\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Polar Capacitor (DEPRECATED)
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/pcapacitor/height}}
+{polarcapacitor}
+{\ctikzvalof{bipoles/pcapacitor/height}}
+{\ctikzvalof{bipoles/pcapacitor/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfutil@packagewarning{circuitikz}{polar capacitor has been deprecated; change to curved capacitor (see manual)}%
+
+ \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}
+}
+
+
+%% Curved capacitor
+% see https://tex.stackexchange.com/questions/509594/polar-capacitor-orientation-in-circuitikz-seems-wrong
+% for a rationale
+%
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/ccapacitor/height}}
+{ccapacitor}
+{\ctikzvalof{bipoles/ccapacitor/height}}
+{\ctikzvalof{bipoles/ccapacitor/width}}
+{
+ \pgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgftransformrotate{-90}
+ \pgfpathsine{\pgfpoint{\pgf@circ@res@up}{-\ctikzvalof{bipoles/ccapacitor/bend width}\pgf@circ@res@right}}
+ \pgfpathcosine{\pgfpoint{\pgf@circ@res@up}{\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@right}}
+ \pgftransformrotate{90}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathclose{}
+ \pgf@circ@maybefill
+ \endpgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ % \pgfsetcolor{red}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgftransformrotate{-90}
+ \pgfpathsine{\pgfpoint{\pgf@circ@res@up}{-\ctikzvalof{bipoles/ccapacitor/bend width}\pgf@circ@res@right}}
+ \pgfpathcosine{\pgfpoint{\pgf@circ@res@up}{\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@right}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+ % extend wire to the curved capacitor
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\ctikzvalof{bipoles/pcapacitor/bend width}\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+%% Electrolytic Capacitor
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/ecapacitor/height}}
+{ecapacitor}
+{\ctikzvalof{bipoles/ecapacitor/height}}
+{\ctikzvalof{bipoles/ecapacitor/width}}
+{
+ \pgfsetrectcap
+ % % % Draw plus pole
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgf@circ@draworfill
+ % % Draw minus pole
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfsetfillcolor{\ctikzvalof{color}}
+ \pgfusepath{draw,fill}
+ \pgfsetfillcolor{\ctikzvalof{color}}
+ % % plus pole annotation
+ \pgftext[right,at=\pgfpoint{1.2\pgf@circ@res@left}{.6\pgf@circ@res@up}]
+ {\ctikzvalof{bipoles/ecapacitor/font} $+$}
+}
+
+%% Variable Capacitor
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/vcapacitor/height}}
+{vcapacitor}
+{\ctikzvalof{bipoles/vcapacitor/height}}
+{\ctikzvalof{bipoles/vcapacitor/width}}
+{
+ \pgfcirc@maybe@fill@straight@capacitor
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vcapacitor/tunable width} \pgf@circ@res@right
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@right}{\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}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \ifpgf@circ@fixtunable@dir
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \else
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfusepath{draw}
+}
+
+
+%% Piezoelectric Element
+
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/piezoelectric/height}}
+{piezoelectric}
+{\ctikzvalof{bipoles/piezoelectric/height}}
+{\ctikzvalof{bipoles/piezoelectric/width}}
+{
+ % \pgf@circ@res@step = \ctikzvalof{bipoles/piezoelectric/width}\pgf@circ@Rlen
+ % \divide \pgf@circ@res@step by 5
+
+ %% Outer markings
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+ %% Inner Box
+ \pgf@circ@res@step = \pgf@circ@res@right \divide \pgf@circ@res@step by 10
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners
+ {\pgfpoint{\pgf@circ@res@left+4*\pgf@circ@res@step}{\pgf@circ@res@up-\pgf@circ@res@step}}
+ {\pgfpoint{\pgf@circ@res@right-4*\pgf@circ@res@step}{\pgf@circ@res@down+\pgf@circ@res@step}}
+ \pgf@circ@draworfill
+ \endpgfscope
+}
+
+% Ferroelectric capacitor, suggested by Mayeul Cantan
+% (see https://github.com/circuitikz/circuitikz/issues/515)
+\pgfcircdeclarebipolescaled{capacitors}
+{
+ \anchor{curve right}{\southwest\pgf@x=-1.8\pgf@x\pgf@y=\pgf@y}%
+ \anchor{curve left}{\southwest\pgf@x=1.8\pgf@x\pgf@y=-\pgf@y}%
+ \anchor{kink right}{\southwest\pgf@x=-1.8\pgf@x\pgf@y=0.5\pgf@y}%
+ \anchor{kink left}{\southwest\pgf@x=1.8\pgf@x\pgf@y=-0.5\pgf@y}%
+ \pgfcirc@border@extend@full{1.8}{1}{1.8}{1}
+}
+{\ctikzvalof{bipoles/capacitor/height}}
+{ferrocap}
+{\ctikzvalof{bipoles/capacitor/height}}
+{\ctikzvalof{bipoles/capacitor/width}}
+{
+ \pgfcirc@maybe@fill@straight@capacitor
+
+ \pgf@circ@setlinewidth{bipoles}{\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}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfsetcornersarced{\pgfpoint{0.2\pgf@circ@res@right}{0.2\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-1.8\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-1.8\pgf@circ@res@right}{0.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{1.8\pgf@circ@res@right}{0.5\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{1.8\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Constant phase element
+\pgfcircdeclarebipolescaled{capacitors}
+{}
+{\ctikzvalof{bipoles/cpe/height}}
+{cpe}
+{\ctikzvalof{bipoles/cpe/height}}
+{\ctikzvalof{bipoles/cpe/width}}
+{
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@maybefill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
+
+% %>>>
+
+%% Paths for capacitors%<<<
+\pgfcirc@activate@bipole@simple{l}{capacitor}
+\pgfcirc@style@to@style{capacitor}{C}
+\pgfcirc@activate@bipole@simple{l}{ecapacitor}
+\pgfcirc@style@to@style{ecapacitor}{eC}
+\pgfcirc@style@to@style{ecapacitor}{elko}
+\pgfcirc@activate@bipole{l}{polarcapacitor}{polarcapacitor}{polar capacitor}
+%% polar capacitor is deprecated, use curved capacitor instead
+\pgfcirc@style@to@style{polar capacitor}{pC}
+\pgfcirc@activate@bipole{l}{ccapacitor}{ccapacitor}{curved capacitor}
+\pgfcirc@style@to@style{curved capacitor}{cC}
+\pgfcirc@activate@bipole{l}{vcapacitor}{vcapacitor}{variable capacitor}
+\pgfcirc@style@to@style{variable capacitor}{vC}
+\pgfcirc@activate@bipole@simple{l}{piezoelectric}
+\pgfcirc@style@to@style{piezoelectric}{PZ}
+\pgfcirc@activate@bipole{l}{capacitivesens}{capacitivesens}{capacitive sensor}
+\pgfcirc@style@to@style{capacitive sensor}{sC}
+\pgfcirc@activate@bipole@simple{l}{ferrocap}
+\pgfcirc@style@to@style{ferrocap}{feC}
+\pgfcirc@activate@bipole@simple{l}{cpe}
+% %>>>
+
+%%%%%%%%%%%%%%%
+%% Inductors
+%%%%%%%%%%%%%%%
+
+% Definitions of Inductors%<<<1
+
+\ctikzset{inductors/coils/.code={%
+ \ctikzset{bipoles/cuteinductor/coils=#1}%
+ \ctikzset{bipoles/cutechoke/coils=#1}%
+ \ctikzset{bipoles/americaninductor/coils=#1}%
+ \ctikzset{bipoles/vcuteinductor/coils=#1}%
+ \ctikzset{bipoles/vamericaninductor/coils=#1}%
+}}
+\ctikzset{inductors/width/.code={%
+ \ctikzset{bipoles/cuteinductor/width=#1}%
+ \ctikzset{bipoles/cutechoke/width=#1}%
+ \ctikzset{bipoles/americaninductor/width=#1}%
+ \ctikzset{bipoles/vcuteinductor/width=#1}%
+ \ctikzset{bipoles/vamericaninductor/width=#1}%
+ \ctikzset{bipoles/fullgeneric/width=#1}%
+ \ctikzset{bipoles/tfullgeneric/width=#1}%
+}}
+\ctikzset{bipoles/cuteinductor/height/.initial=.3}
+\ctikzset{bipoles/cuteinductor/lower coil height/.initial=.15}
+\ctikzset{bipoles/cuteinductor/width/.initial=.6}
+\ctikzset{bipoles/cuteinductor/coils/.initial=5}
+\ctikzset{bipoles/cuteinductor/coil aspect/.initial=.5}%percentage of inductor width, which is covered by lower coil
+%% Cute choke settings
+\ctikzset{bipoles/cutechoke/height/.initial=.3}
+\ctikzset{bipoles/cutechoke/lower coil height/.initial=.15}
+\ctikzset{bipoles/cutechoke/width/.initial=.6}
+\ctikzset{bipoles/cutechoke/coils/.initial=5}
+\ctikzset{bipoles/cutechoke/coil aspect/.initial=.5}%percentage of choke width, which is covered by lower coil
+\ctikzset{bipoles/cutechoke/cstep/.initial=.3}
+\ctikzset{bipoles/cutechoke/cdist/.initial=1.3}
+\ctikzset{bipoles/cutechoke/cthick/.initial=1}
+\newif\ifpgf@circuit@bipole@twolineschoke
+\pgf@circuit@bipole@twolineschokefalse
+\pgfkeys{/tikz/onelinechoke/.add code={}{\pgf@circuit@bipole@twolineschokefalse}}
+\ctikzset{onelinechoke/.add code={}{\pgf@circuit@bipole@twolineschokefalse}}
+\pgfkeys{/tikz/twolineschoke/.add code={}{\pgf@circuit@bipole@twolineschoketrue}}
+\ctikzset{twolineschoke/.add code={}{\pgf@circuit@bipole@twolineschoketrue}}
+%
+% generic core anchor settings
+\ctikzset{bipoles/inductors/core distance/.initial={2pt}}
+\def\pgfcir@basic@core@anchors{%
+ \saveddimen{\coredistance}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{bipoles/inductors/core distance}}}
+ \anchor{core east}{%
+ \northeast\advance\pgf@y by\coredistance
+ }
+ \anchor{core west}{%
+ \northeast\advance\pgf@y by\coredistance\pgf@x=-\pgf@x
+ }
+}
+%
+\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/americaninductor/coil height/.initial=.15}
+\ctikzset{bipoles/vcuteinductor/height/.initial=.6}
+\ctikzset{bipoles/vcuteinductor/lower coil height/.initial=.3}
+\ctikzset{bipoles/vcuteinductor/width/.initial=.6}
+\ctikzset{bipoles/vcuteinductor/coils/.initial=5}
+\ctikzset{bipoles/vcuteinductor/coil aspect/.initial=.5}%percentage of inductor width, which is covered by lower coil
+\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/vamericaninductor/coil height/.initial=.15}
+\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{inductor/.is choice}
+\ctikzset{inductor/cute/.code={\ctikzsetvalof{inductor}{cute}}}
+\ctikzset{inductor/european/.code={\ctikzsetvalof{inductor}{european}}}
+\ctikzset{inductor/american/.code={\ctikzsetvalof{inductor}{american}}}
+
+\tikzset{american inductors/.style = {\circuitikzbasekey/inductor = american}}
+\tikzset{european inductors/.style = {\circuitikzbasekey/inductor = european}}
+\tikzset{cute inductors/.style = {\circuitikzbasekey/inductor = cute}}
+\tikzset{american ports/.style = {\circuitikzbasekey/logic ports = american}}
+\tikzset{european ports/.style = {\circuitikzbasekey/logic ports = european}}
+
+%%>>>
+
+%% Shapes for inductors%<<<
+%% cute inductor
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/cuteinductor/coils},2) ?%
+ \ctikzvalof{bipoles/cuteinductor/height} :% even
+ -\ctikzvalof{bipoles/cuteinductor/lower coil height}) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \pgfcir@basic@core@anchors
+ }
+{\ctikzvalof{bipoles/cuteinductor/lower coil height}}
+{cuteinductor}
+{\ctikzvalof{bipoles/cuteinductor/height}}
+{\ctikzvalof{bipoles/cuteinductor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@other}%width of small coil
+ {0.5*\ctikzvalof{bipoles/cuteinductor/coil aspect}*\ctikzvalof{bipoles/cuteinductor/width}*\scaledRlen/(\ctikzvalof{bipoles/cuteinductor/coils}-1)}
+
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/cuteinductor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/cuteinductor/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/cuteinductor/coils}/2}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {2,...,\ctikzvalof{bipoles/cuteinductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfpatharc{0}{-180}{\pgf@circ@res@other and -\pgf@circ@res@down}
+ }
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+}
+
+%% cute inductive sensor
+\pgfcircdeclarebipolescaled{inductors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{\southwest\pgf@x=0.8\pgf@x\pgf@y=2.6\pgf@y}%
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/cuteinductor/coils},2) ?%
+ \ctikzvalof{bipoles/cuteinductor/height} :% even
+ -\ctikzvalof{bipoles/cuteinductor/lower coil height}) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \pgfcirc@border@extend@full{1}{2}{1.6}{2.6}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/cuteinductor/lower coil height}}
+{scuteinductor}
+{\ctikzvalof{bipoles/cuteinductor/height}}
+{\ctikzvalof{bipoles/cuteinductor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@other}%width of small coil
+ {0.5*\ctikzvalof{bipoles/cuteinductor/coil aspect}*\ctikzvalof{bipoles/cuteinductor/width}*\scaledRlen/(\ctikzvalof{bipoles/cuteinductor/coils}-1)}
+
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/cuteinductor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/cuteinductor/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/cuteinductor/coils}/2}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {2,...,\ctikzvalof{bipoles/cuteinductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfpatharc{0}{-180}{\pgf@circ@res@other and -\pgf@circ@res@down}
+ }
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{.8\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.8\pgf@circ@res@right}{2.6\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-1.6\pgf@circ@res@right}{2.6\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% cute choke
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/cuteinductor/coils},2) ?%
+ \ctikzvalof{bipoles/cuteinductor/height} :% even
+ -\ctikzvalof{bipoles/cuteinductor/lower coil height}) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+}
+{\ctikzvalof{bipoles/cutechoke/lower coil height}}
+{cutechoke}
+{\ctikzvalof{bipoles/cutechoke/height}}
+{\ctikzvalof{bipoles/cutechoke/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@other}%width of small coil
+ {0.5*\ctikzvalof{bipoles/cutechoke/coil aspect}*\ctikzvalof{bipoles/cutechoke/width}*\scaledRlen/(\ctikzvalof{bipoles/cutechoke/coils}-1)}
+
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/cutechoke/width}*\scaledRlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/cutechoke/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/cutechoke/coils}/2}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {2,...,\ctikzvalof{bipoles/cutechoke/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfpatharc{0}{-180}{\pgf@circ@res@other and -\pgf@circ@res@down}
+ }
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@up}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth+\ctikzvalof{bipoles/cutechoke/cdist}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth+\ctikzvalof{bipoles/cutechoke/cdist}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfsetlinewidth{\ctikzvalof{bipoles/cutechoke/cthick}\pgflinewidth}
+ \pgfusepath{stroke}
+
+ \ifpgf@circuit@bipole@twolineschoke
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth+\ctikzvalof{bipoles/cutechoke/cdist}\pgf@circ@res@up+\ctikzvalof{bipoles/cutechoke/cstep}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth+\ctikzvalof{bipoles/cutechoke/cdist}\pgf@circ@res@up+\ctikzvalof{bipoles/cutechoke/cstep}\pgf@circ@res@up}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfsetlinewidth{\ctikzvalof{bipoles/cutechoke/cthick}\pgflinewidth}
+ \pgfusepath{stroke}
+ \fi
+}
+
+%% variable cute inductor
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/cuteinductor/coils},2) ?%
+ \ctikzvalof{bipoles/cuteinductor/height} :% even
+ -\ctikzvalof{bipoles/cuteinductor/lower coil height}) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \saveddimen{\coredistance}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{bipoles/inductors/core distance}}}
+ \anchor{core east}{%
+ \northeast\pgf@y=0.5\pgf@y\advance\pgf@y by\coredistance
+ }
+ \anchor{core west}{%
+ \northeast\pgf@y=0.5\pgf@y\advance\pgf@y by\coredistance\pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/vcuteinductor/lower coil height}}
+{vcuteinductor}
+{\ctikzvalof{bipoles/vcuteinductor/height}}
+{\ctikzvalof{bipoles/vcuteinductor/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@other}%width of small coil
+ {0.5*\ctikzvalof{bipoles/vcuteinductor/coil aspect}*\ctikzvalof{bipoles/vcuteinductor/width}*\scaledRlen/(\ctikzvalof{bipoles/vcuteinductor/coils}-1)}
+
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/vcuteinductor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment\pgflinewidth+(\ctikzvalof{bipoles/vcuteinductor/coils}-1)*2*\pgf@circ@res@other)/\ctikzvalof{bipoles/vcuteinductor/coils}/2}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {2,...,\ctikzvalof{bipoles/vcuteinductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and .5\pgf@circ@res@up}
+ \pgfpatharc{0}{-180}{\pgf@circ@res@other and -.5\pgf@circ@res@down}
+ }
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and .5\pgf@circ@res@up}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+}
+
+%% american inductor
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/americaninductor/coils},2) ?%
+ 2*\ctikzvalof{bipoles/americaninductor/coil height} :% even
+ 0) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/americaninductor/height 2}}
+{americaninductor}
+{\ctikzvalof{bipoles/americaninductor/height}}
+{\ctikzvalof{bipoles/americaninductor/width}}
+{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/americaninductor/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \advance \pgf@circ@res@step by \pgfhorizontaltransformationadjustment\pgflinewidth
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/americaninductor/coils}
+ \divide \pgf@circ@res@step by 2
+ \pgf@circ@res@other = \ctikzvalof{bipoles/americaninductor/coil height}\pgf@circ@scaled@Rlen
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {1,...,\ctikzvalof{bipoles/americaninductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@other}
+ }
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+}
+
+
+%% american inductive sensor
+\pgfcircdeclarebipolescaled{inductors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{\southwest\pgf@x=0.8\pgf@x\pgf@y=2.6\pgf@y}%
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/americaninductor/coils},2) ?%
+ 2*\ctikzvalof{bipoles/americaninductor/coil height} :% even
+ 0) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \pgfcirc@border@extend@full{1}{2}{1.6}{2.6}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/americaninductor/height 2}}
+{samericaninductor}
+{\ctikzvalof{bipoles/americaninductor/height}}
+{\ctikzvalof{bipoles/americaninductor/width}}
+{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/americaninductor/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \advance \pgf@circ@res@step by \pgfhorizontaltransformationadjustment\pgflinewidth
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/americaninductor/coils}
+ \divide \pgf@circ@res@step by 2
+ \pgf@circ@res@other = \ctikzvalof{bipoles/americaninductor/coil height}\pgf@circ@scaled@Rlen
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {1,...,\ctikzvalof{bipoles/americaninductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@other}
+ }
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{.8\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.8\pgf@circ@res@right}{2.6\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-1.6\pgf@circ@res@right}{2.6\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% variable american inductor
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \savedanchor{\midtap}{%
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@y}{%
+ (mod(\ctikzvalof{bipoles/vamericaninductor/coils},2) ?%
+ 2*\ctikzvalof{bipoles/vamericaninductor/coil height} :% even
+ 0) %odd
+ *\pgf@circ@scaled@Rlen/2
+ }
+ }
+ \anchor{midtap}{\midtap}
+ \saveddimen{\coredistance}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{bipoles/inductors/core distance}}}
+ \anchor{core east}{%
+ \northeast\pgf@y=0.5\pgf@y\advance\pgf@y by\coredistance
+ }
+ \anchor{core west}{%
+ \northeast\pgf@y=0.5\pgf@y\advance\pgf@y by\coredistance\pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/vamericaninductor/height 2}}
+{vamericaninductor}
+{\ctikzvalof{bipoles/vamericaninductor/height}}
+{\ctikzvalof{bipoles/vamericaninductor/width}}
+{
+ \pgf@circ@res@step=\ctikzvalof{bipoles/vamericaninductor/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \advance \pgf@circ@res@step by \pgfhorizontaltransformationadjustment\pgflinewidth
+ \divide \pgf@circ@res@step by \ctikzvalof{bipoles/vamericaninductor/coils}
+ \divide \pgf@circ@res@step by 2
+ \pgf@circ@res@other = \ctikzvalof{bipoles/vamericaninductor/coil height}\pgf@circ@scaled@Rlen
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{-\pgfverticaltransformationadjustment*0.4*\pgfstartlinewidth}}%correct value would be 0.5 but arcs are not really flat, therefore 0.4 is better is (almost) all cases
+ \foreach \x in {1,...,\ctikzvalof{bipoles/vamericaninductor/coils}}
+ {
+ \pgfpatharc{180}{0}{\pgf@circ@res@step and \pgf@circ@res@other}
+ }
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \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
+}
+
+%% Generic bipole, filled - used as inductor by some
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \anchor{midtap}{\northeast\pgf@x=0pt\relax}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/fullgeneric/height}}
+{fullgeneric}
+{\ctikzvalof{bipoles/fullgeneric/height}}
+{\ctikzvalof{bipoles/fullgeneric/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfusepath{draw,fill}
+}
+
+%% Generic sensor, filled - used as inductive sensor by some
+\pgfcircdeclarebipolescaled{inductors}
+{% anchor for labelling the type of dependency
+ \anchor{label}{\southwest\pgf@x=0.4\pgf@x\pgf@y=2\pgf@y}%
+ \anchor{midtap}{\northeast\pgf@x=0pt\relax}
+ \pgfcirc@border@extend@full{1}{2}{1}{2}
+ \pgfcir@basic@core@anchors
+}
+{\ctikzvalof{bipoles/fullgeneric/height}}
+{sfullgeneric}
+{\ctikzvalof{bipoles/fullgeneric/height}}
+{\ctikzvalof{bipoles/fullgeneric/width}}
+{
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfusepath{draw,fill}
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left}{-2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Generic full tunable
+\pgfcircdeclarebipolescaled{inductors}
+{
+ \anchor{midtap}{\northeast\pgf@x=0pt\relax}
+ \saveddimen{\coredistance}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{bipoles/inductors/core distance}}}
+ \anchor{core east}{%
+ \northeast\pgf@y=0.4\pgf@y\advance\pgf@y by \coredistance
+ }
+ \anchor{core west}{%
+ \northeast\pgf@y=0.4\pgf@y\advance\pgf@y by \coredistance\pgf@x=-\pgf@x
+ }
+}
+{\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}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfusepath{draw,fill}
+
+ \pgfscope
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ \pgfcirc@set@arrows{tunable}{}{latexslim}
+ \ifpgf@circ@fixtunable@dir
+ \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.5\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-.5\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+}
+% %>>>
+
+%% Paths for Inductors%<<<
+%% these are complex because of the three-way set
+%% should be simplified
+\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%
+}
+\pgfcirc@path@to@style{l}{inductor}{inductor}{}
+\pgfcirc@style@to@style{inductor}{L}
+\pgfcirc@activate@bipole{l}{europeaninductor}{fullgeneric}{european inductor}
+\pgfcirc@activate@bipole{l}{americaninductor}{americaninductor}{american inductor}
+\pgfcirc@activate@bipole{l}{cuteinductor}{cuteinductor}{cute inductor}
+
+\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%
+}
+\pgfcirc@path@to@style{l}{vinductor}{variable inductor}{}
+\pgfcirc@style@to@style{variable inductor}{vL}
+\pgfcirc@activate@bipole{l}{veuropeaninductor}{tfullgeneric}{variable european inductor}
+\pgfcirc@activate@bipole{l}{vamericaninductor}{vamericaninductor}{variable american inductor}
+\pgfcirc@activate@bipole{l}{vcuteinductor}{vcuteinductor}{variable cute inductor}
+
+\def\pgf@circ@inductivesens@path#1{%
+ \pgfextra{
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ }
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgf@circ@europeaninductivesens@path{#1}%
+ \else%
+ \pgfextra{ \def\pgf@temp{cute} }%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgf@circ@cuteinductivesens@path{#1}%
+ \else%
+ \pgf@circ@americaninductivesens@path{#1}%
+ \fi%
+ \fi%
+}
+\pgfcirc@path@to@style{l}{inductivesens}{inductive sensor}{}
+\pgfcirc@style@to@style{inductive sensor}{sL}
+\pgfcirc@activate@bipole{l}{europeaninductivesens}{sfullgeneric}{european inductive sensor}
+\pgfcirc@activate@bipole{l}{americaninductivesens}{samericaninductor}{american inductive sensor}
+\pgfcirc@activate@bipole{l}{cuteinductivesens}{scuteinductor}{cute inductive sensor}
+
+\pgfcirc@activate@bipole{l}{cutechoke}{cutechoke}{cute choke}
+% %>>>
+
+%%%%%%%%%%%
+%% Sources (batteries, independent, dependents and so on
+%%%%%%%%%%%
+
+% Definitions for Sources%<<<1
+
+\ctikzset{bipoles/esource/height/.initial=.60}
+\ctikzset{bipoles/esource/width/.initial=.60}
+\ctikzset{bipoles/pvsource/height/.initial=.60}
+\ctikzset{bipoles/pvsource/width/.initial=.60}
+\ctikzset{bipoles/pvmodule/height/.initial=.60}
+\ctikzset{bipoles/pvmodule/width/.initial=1.20}
+\ctikzset{bipoles/isource/height/.initial=.60}
+\ctikzset{bipoles/isource/width/.initial=.60}
+\ctikzset{bipoles/oosource/height/.initial=.60}
+\ctikzset{bipoles/oosource/width/.initial=.60}
+\ctikzset{bipoles/oosource/circlesize/.initial=.65}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/oosource/circleoffset/.initial=.35}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/dcisource/angle/.initial=80}
+\ctikzset{bipoles/dcisource/height/.initial=.60}
+\ctikzset{bipoles/dcisource/width/.initial=.60}
+\ctikzset{bipoles/dcvsource/height/.initial=.60}
+\ctikzset{bipoles/dcvsource/width/.initial=.60}
+\ctikzset{bipoles/vsourcetri/height/.initial=.60}
+\ctikzset{bipoles/vsourcetri/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/ecsource/height/.initial=.7}
+\ctikzset{bipoles/ecsource/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/battery/height/.initial=.6}
+\ctikzset{bipoles/battery/width/.initial=.3}
+\ctikzset{bipoles/battery1/height/.initial=.6}
+\ctikzset{bipoles/battery1/width/.initial=.3}
+\ctikzset{bipoles/battery2/height/.initial=.6}
+\ctikzset{bipoles/battery2/width/.initial=.3}
+% noise sources
+\ctikzset{bipoles/noise sources/fillcolor/.initial=gray!50}
+
+% for special symbols in the sources: sin, square, triangle, delta, wye, zig, etc.
+\ctikzset{sources/symbol/thickness/.initial={1}}
+\ctikzset{csources/symbol/thickness/.initial={1}}
+\ctikzset{sources/symbol/rotate/.initial={90}}
+\ctikzset{csources/symbol/rotate/.initial={90}}
+
+% % % ootransformer
+\ctikzset{bipoles/oosourcetrans/height/.initial=.6}
+\ctikzset{bipoles/oosourcetrans/width/.initial=.6}
+\ctikzset{bipoles/oosourcetrans/circlesize/.initial=.6}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/oosourcetrans/circleoffset/.initial=.4}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/oosourcetrans/vectorgroupscale/.initial=1}
+
+% % % oootransformer
+\ctikzset{bipoles/ooosource/height/.initial=.6}
+\ctikzset{bipoles/ooosource/circlesize/.initial=.55}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/ooosource/circleoffset/.initial=.45}%circlesize+circleoffset should be =1
+\ctikzset{bipoles/ooosource/vectorgroupscale/.initial=1}
+
+% % % primary windings
+\newif\ifpgf@circ@prim@delta
+\newif\ifpgf@circ@prim@wye
+\newif\ifpgf@circ@prim@zig
+\pgfkeys{tikz/prim/.is choice}
+\pgfkeys{tikz/prim/delta/.add code={}{\pgf@circ@prim@deltatrue}}
+\pgfkeys{tikz/prim/wye/.add code={}{\pgf@circ@prim@wyetrue}}
+\pgfkeys{tikz/prim/zig/.add code={}{\pgf@circ@prim@zigtrue}}
+
+% % % secondary windings
+\newif\ifpgf@circ@sec@delta
+\newif\ifpgf@circ@sec@wye
+\newif\ifpgf@circ@sec@zig
+\pgfkeys{tikz/sec/.is choice}
+\pgfkeys{tikz/sec/delta/.add code={}{\pgf@circ@sec@deltatrue}}
+\pgfkeys{tikz/sec/wye/.add code={}{\pgf@circ@sec@wyetrue}}
+\pgfkeys{tikz/sec/zig/.add code={}{\pgf@circ@sec@zigtrue}}
+
+% % % tertiary windings (ooosource)
+\newif\ifpgf@circ@tert@delta
+\newif\ifpgf@circ@tert@wye
+\newif\ifpgf@circ@tert@zig
+\pgfkeys{tikz/tert/.is choice}
+\pgfkeys{tikz/tert/delta/.add code={}{\pgf@circ@tert@deltatrue}}
+\pgfkeys{tikz/tert/wye/.add code={}{\pgf@circ@tert@wyetrue}}
+\pgfkeys{tikz/tert/zig/.add code={}{\pgf@circ@tert@zigtrue}}%
+
+%%>>>
+
+%% Nodes definitions for sources%<<<
+
+%% Battery
+\pgfcircdeclarebipolescaled{batteries}
+{}
+{\ctikzvalof{bipoles/battery/height}}
+{battery}
+{\ctikzvalof{bipoles/battery/height}}
+{\ctikzvalof{bipoles/battery/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/battery/width}\pgf@circ@scaled@Rlen
+ \divide \pgf@circ@res@step by 6
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \ifpgf@circ@fixbatteries
+ \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}}
+ \else
+ \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@step}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@step}{.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@right}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+}
+
+
+%% Battery 1 % poles with equl thickness
+
+\pgfcircdeclarebipolescaled{batteries}
+{}
+{\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}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \ifpgf@circ@fixbatteries
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+}
+
+%% Battery 2 % negative pole thicker
+
+\pgfcircdeclarebipolescaled{batteries}
+{}
+{\ctikzvalof{bipoles/battery2/height}}
+{battery2}
+{\ctikzvalof{bipoles/battery2/height}}
+{\ctikzvalof{bipoles/battery2/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}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \ifpgf@circ@fixbatteries
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{3\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{.5\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{3\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.33\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+}
+
+%%%%%%%%%%%
+%% Round and diamond sources
+%%%%%%%%%%%
+
+% % % symbol drawing macros (NOT for delta, wye, zig)
+\def\pgf@circ@sources@symbol@setup{% called in a pgfscope
+ \edef\@@@auto{auto}\edef\@@@rotate{\ctikzvalof{\ctikzclass/symbol/rotate}}
+ \ifx\@@@auto\@@@rotate
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\@@@rotate}{-atan2(\b,\a)}
+ \fi
+ \pgftransformrotate{\@@@rotate}%
+ \pgf@circ@set@relative@thickness{symbol/thickness}%
+}
+
+%% Independent voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsource/height}}
+{vsource}
+{\ctikzvalof{bipoles/vsource/height}}
+{\ctikzvalof{bipoles/vsource/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+}
+
+%% To change the internal symbols of the voltage source american style
+\ctikzset{bipoles/vsourceam/inner plus/.initial={$+$}}
+\ctikzset{bipoles/vsourceam/inner minus/.initial={$-$}}
+%% Independent voltage source - American style
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsourceam/height}}
+{vsourceAM}
+{\ctikzvalof{bipoles/vsourceam/height}}
+{\ctikzvalof{bipoles/vsourceam/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfsetcolor{\ctikzvalof{color}}
+ \ifpgf@circ@oldvoltagedirection
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner plus}}
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner minus}}
+ \else
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@down]{\ctikzvalof{bipoles/vsourceam/inner minus}}
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/vsourceam/margin}\pgf@circ@res@up]{\ctikzvalof{bipoles/vsourceam/inner plus}}
+ \fi
+}
+
+%% Independent sinusoidal voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsourcesin/height}}
+{vsourcesin}
+{\ctikzvalof{bipoles/vsourcesin/height}}
+{\ctikzvalof{bipoles/vsourcesin/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+}
+
+% Square Voltage source - contributed by Alistair Kwan
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsourcesquare/height}}
+{vsourcesquare}
+{\ctikzvalof{bipoles/vsourcesquare/height}}
+{\ctikzvalof{bipoles/vsourcesquare/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+}
+
+% Triangle Voltage source - contributed by Ralf Farkas
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsourcetri/height}}
+{vsourcetri}
+{\ctikzvalof{bipoles/vsourcetri/height}}
+{\ctikzvalof{bipoles/vsourcetri/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \pgfpathmoveto{\pgfpoint{-1\pgf@circ@res@up}{0cm}}
+ \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@up}{0.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@up}{-0.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{1\pgf@circ@res@up}{0\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% PV Source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/pvsource/height}}
+{pvsource}
+{\ctikzvalof{bipoles/pvsource/height}}
+{\ctikzvalof{bipoles/pvsource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgf@circ@draworfill
+
+ \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@right}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}}
+ \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@left}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgfusepath{draw}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@left}{.4\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.15\pgf@circ@res@left}{.4\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{.15\pgf@circ@res@right}{.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.15\pgf@circ@res@right}{.6\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ %Arrow Part
+ \pgfscope
+ \pgfsetarrowsend{latex}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{.3\pgf@circ@res@left}{0}}{\pgfpointpolar{-45}{2.2\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{.3\pgf@circ@res@left}{0}}{\pgfpointpolar{-45}{1.3\pgf@circ@res@up}}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint{0}{0.3\pgf@circ@res@up}}{\pgfpointpolar{-45}{2.2\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{0}{0.3\pgf@circ@res@up}}{\pgfpointpolar{-45}{1.3\pgf@circ@res@up}}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+}
+
+%% PV Module - contributed by Andre Alves
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/pvmodule/height}}
+{pvmodule}
+{\ctikzvalof{bipoles/pvmodule/height}}
+{\ctikzvalof{bipoles/pvmodule/width}}
+{
+
+ % Draw rectangle
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ % Draw triangle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+
+ \pgfusepath{draw}
+}
+
+%% Empty Source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/esource/height}}
+{esource}
+{\ctikzvalof{bipoles/esource/height}}
+{\ctikzvalof{bipoles/esource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+}
+
+%% DC Current Source with open shape
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/dcisource/height}}
+{dcisource}
+{\ctikzvalof{bipoles/dcisource/height}}
+{\ctikzvalof{bipoles/dcisource/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@maybefill
+ \edef\@@angle{\ctikzvalof{bipoles/dcisource/angle}}
+ \pgfpathmoveto{\pgfpointpolar{\@@angle}{\pgf@circ@res@up}}
+ \pgfpatharc{\@@angle}{-\@@angle}{\pgf@circ@res@up}
+ \pgfpathmoveto{\pgfpointpolar{180-\@@angle}{\pgf@circ@res@up}}
+ \pgfpatharc{180-\@@angle}{180+\@@angle}{\pgf@circ@res@up}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{.7\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.6\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
+}
+
+%% DC-Voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/dcvsource/height}}
+{dcvsource}
+{\ctikzvalof{bipoles/dcvsource/height}}
+{\ctikzvalof{bipoles/dcvsource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@up}{.5\pgf@circ@res@left}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@up}{.5\pgf@circ@res@right}}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@down}{.5\pgf@circ@res@left}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@down}{.5\pgf@circ@res@right}}
+ \pgfusepath{draw}
+}
+
+%% Independent current source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isource/height}}
+{isource}
+{\ctikzvalof{bipoles/isource/height}}
+{\ctikzvalof{bipoles/isource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgf@circ@draworfill
+}
+
+%% Independent double oo source
+\pgfcircdeclarebipolescaled{sources}
+{
+ \anchor{centerprim}{
+ \northeast
+ \pgf@y=0pt\relax
+ \pgf@x=-\ctikzvalof{bipoles/oosource/circleoffset}\pgf@x
+ }
+ \anchor{centersec}{
+ \northeast
+ \pgf@y=0pt\relax
+ \pgf@x=\ctikzvalof{bipoles/oosource/circleoffset}\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/oosource/height}}
+{oosource}
+{\ctikzvalof{bipoles/oosource/height}}
+{\ctikzvalof{bipoles/oosource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosource/circleoffset}\pgf@circ@res@left}{0}}
+ {\ctikzvalof{bipoles/oosource/circlesize}\pgf@circ@res@left}
+ \pgf@circ@maybefill
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosource/circleoffset}\pgf@circ@res@right}{0}}
+ {\ctikzvalof{bipoles/oosource/circlesize}\pgf@circ@res@right}
+ \pgf@circ@draworfill
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosource/circleoffset}\pgf@circ@res@left}{0}}
+ {\ctikzvalof{bipoles/oosource/circlesize}\pgf@circ@res@left}
+ \pgfusepath{draw}
+}
+
+% % % winding symbols
+\ctikzset{sources/symbol/delta scale/.initial={1}}
+\ctikzset{sources/symbol/wye scale/.initial={1}}
+\ctikzset{sources/symbol/zig scale/.initial={1}}
+% triangle
+\def\pgf@circ@delta#1{
+ \pgfscope
+ \pgftransformscale{-.01*\ctikzvalof{\ctikzclass/symbol/delta scale}*\pgf@circ@res@left*#1}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \pgftransformrotate{-\pgfcircmathresult}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{symbol/thickness}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0}{.866\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgfusepath{stroke}
+ \endpgfscope
+}
+
+% star
+\def\pgf@circ@wye#1{
+ \pgfscope
+ \pgftransformscale{-.015*\ctikzvalof{\ctikzclass/symbol/wye scale}*\pgf@circ@res@left*#1}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \pgftransformrotate{-\pgfcircmathresult}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{symbol/thickness}
+ \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{-30}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{-150}{\pgf@circ@res@down}}
+ \pgfusepath{stroke}
+ \endpgfscope
+}
+
+% zigzag
+\def\pgf@circ@zig#1{
+ \pgfscope
+ \pgftransformscale{-.015*\ctikzvalof{\ctikzclass/symbol/zig scale}*\pgf@circ@res@left*#1}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \pgftransformrotate{-\pgfcircmathresult}
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@set@relative@thickness{symbol/thickness}
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{90}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{60}{\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{210}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{0}{\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgfpathlineto{\pgfpointpolar{330}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{-60}{\pgf@circ@res@up}}
+ \pgfusepath{stroke}
+ \endpgfscope
+}
+
+% % % % round three-phase transformer
+\pgfcircdeclarebipolescaled{sources}
+{
+ \anchor{centerprim}{
+ \northeast
+ \pgf@y=0pt\relax
+ \pgf@x=-\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@x
+ }
+ \anchor{centersec}{
+ \northeast
+ \pgf@y=0pt\relax
+ \pgf@x=\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/oosourcetrans/height}}
+{oosourcetrans}
+{\ctikzvalof{bipoles/oosourcetrans/height}}
+{\ctikzvalof{bipoles/oosourcetrans/width}}
+{
+
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@left}{0}}
+ {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@maybefill
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@right}{0}}
+ {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@draworfill
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/oosourcetrans/circleoffset}\pgf@circ@res@left}{0}}
+ {\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgfusepath{draw}
+ % % % % draw inner symbols
+ %%primary winding
+ \ifpgf@circ@prim@delta
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@delta{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@prim@wye
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@prim@zig
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@left}
+ \pgf@circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+
+ %%secondary winding
+ \ifpgf@circ@sec@delta
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@delta{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@sec@wye
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@wye{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@sec@zig
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/oosourcetrans/circlesize}\pgf@circ@res@right}
+ \pgf@circ@zig{\ctikzvalof{bipoles/oosourcetrans/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+}
+
+
+% % % % ooosource for three phase transformer
+\pgfcircdeclarebipolescaled{sources}
+{
+ \anchor{right}{
+ \northeast
+ \pgf@y=0pt
+ \pgfmathparse{
+ \ctikzvalof{bipoles/ooosource/circleoffset}* sin(30) +
+ %%the sqrt must be > 0, the circles have to intersect
+ sqrt(
+ pow(\ctikzvalof{bipoles/ooosource/circlesize},2) -
+ pow(\ctikzvalof{bipoles/ooosource/circleoffset}*cos(30),2)
+ )
+ }
+ \pgf@x=\pgfmathresult\pgf@x
+ }
+ \anchor{east}{
+ \northeast
+ \pgf@y=0pt
+ }
+ \savedanchor{\centerprim}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@other
+ \pgf@y=0pt
+ \pgf@x=.5\pgf@circ@res@other
+ }
+ \anchor{centerprim}{
+ \centerprim
+ }
+ \savedanchor{\centersec}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@other
+ \pgfpointpolar{60}{.5\pgf@circ@res@other}
+ \pgf@y=-\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{centersec}{
+ \centersec
+ }
+ \savedanchor{\centertert}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=-\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@other
+ \pgfpointpolar{60}{.5\pgf@circ@res@other}
+ \pgf@y=\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{centertert}{
+ \centertert
+ }
+
+ % add some anchors in case the are needed :)
+ \anchor{prim1}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centerprim}{\pgfpointpolar{135}{.5\pgf@circ@res@other}}
+ }
+ \anchor{prim2}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centerprim}{\pgfpointpolar{-135}{.5\pgf@circ@res@other}}
+ }
+ \anchor{sec1}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centersec}{\pgfpointpolar{0}{.5\pgf@circ@res@other}}
+ }
+ \anchor{sec2}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centersec}{\pgfpointpolar{45}{.5\pgf@circ@res@other}}
+ }
+ \anchor{sec3}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centersec}{\pgfpointpolar{90}{.5\pgf@circ@res@other}}
+ }
+ \anchor{tert1}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centertert}{\pgfpointpolar{0}{.5\pgf@circ@res@other}}
+ }
+ \anchor{tert2}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centertert}{\pgfpointpolar{-45}{.5\pgf@circ@res@other}}
+ }
+ \anchor{tert3}{
+ \pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other=\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@other
+ \pgfpointadd{\centertert}{\pgfpointpolar{-90}{.5\pgf@circ@res@other}}
+ }
+}
+{\ctikzvalof{bipoles/ooosource/height}}
+{ooosource}
+{\ctikzvalof{bipoles/ooosource/height}}
+{\ctikzvalof{bipoles/ooosource/height}}
+{
+% \pgf@circ@res@other = \ctikzvalof{bipoles/ooosource/vectorgroup} \pgf@circ@scaled@Rlen
+
+% % filling
+% left
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@left}{0}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left}
+ \pgf@circ@maybefill
+
+ % up
+ \pgfscope
+ \pgfpointorigin
+ \pgfpathcircle{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}
+ \pgf@circ@maybefill
+ \endpgfscope
+% down
+ \pgfscope
+ \pgfpointorigin
+ \pgfpathcircle{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+% drawing
+ % left
+ \pgfpathcircle{\pgfpoint{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@left}{0}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left}
+ \pgfusepath{draw}
+
+ % up
+ \pgfscope
+ \pgfpointorigin
+ \pgfpathcircle{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circleoffset}\pgf@circ@res@right}}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}
+ \pgfusepath{draw}
+ \endpgfscope
+
+% % % draw inner symbols
+
+% % primary winding
+ \ifpgf@circ@prim@delta
+ \pgfscope
+ \pgftransformxshift{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@left}
+ \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@prim@wye
+ \pgfscope
+ \pgftransformxshift{.6\pgf@circ@res@left}
+ \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@prim@zig
+ \pgfscope
+ \pgftransformxshift{.6\pgf@circ@res@left}
+ \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+
+% % secondary winding
+ \ifpgf@circ@sec@delta
+ \pgfscope
+ \pgfpointorigin
+ \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@sec@wye
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@sec@zig
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+
+% % tertiary winding
+ \ifpgf@circ@tert@delta
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@delta{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@tert@wye
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@wye{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+
+ \else\ifpgf@circ@tert@zig
+ \pgfscope
+ \pgftransformshift{\pgfpointpolar{-60}{\ctikzvalof{bipoles/ooosource/circlesize}\pgf@circ@res@right}}
+ \pgf@circ@zig{\ctikzvalof{bipoles/ooosource/vectorgroupscale}}
+ \endpgfscope
+ \fi\fi\fi
+}
+
+%% Independent current source - American
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isourceam/height}}
+{isourceAM}
+{\ctikzvalof{bipoles/isourceam/height}}
+{\ctikzvalof{bipoles/isourceam/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+
+ \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
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isource/height}}
+{isourcesin}
+{\ctikzvalof{bipoles/isource/height}}
+{\ctikzvalof{bipoles/isource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+}
+
+%% Empty controlled source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/ecsource/height}}
+{ecsource}
+{\ctikzvalof{bipoles/ecsource/height}}
+{\ctikzvalof{bipoles/ecsource/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+}
+
+%% Controlled voltage source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsource/height}}
+{cvsource}
+{\ctikzvalof{bipoles/cvsource/height}}
+{\ctikzvalof{bipoles/cvsource/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+}
+
+%% To change the internal symbols of the controlled voltage source american style
+\ctikzset{bipoles/cvsourceam/inner plus/.initial={$+$}}
+\ctikzset{bipoles/cvsourceam/inner minus/.initial={$-$}}
+%% Controlled voltage source - American
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsourceam/height}}
+{cvsourceAM}
+{\ctikzvalof{bipoles/cvsourceam/height}}
+{\ctikzvalof{bipoles/cvsourceam/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ \pgfsetcolor{\ctikzvalof{color}}
+ \ifpgf@circ@oldvoltagedirection
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{\ctikzvalof{bipoles/cvsourceam/inner plus}}
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{\ctikzvalof{bipoles/cvsourceam/inner minus}}
+ \else
+ \pgftext[bottom,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@left]{\ctikzvalof{bipoles/cvsourceam/inner minus}}
+ \pgftext[top,rotate=90,y=\ctikzvalof{bipoles/cvsourceam/margin}\pgf@circ@res@right]{\ctikzvalof{bipoles/cvsourceam/inner plus}}
+ \fi
+}
+
+%% Controlled sinusoidal voltage source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsourcesin/height}}
+{cvsourcesin}
+{\ctikzvalof{bipoles/cvsourcesin/height}}
+{\ctikzvalof{bipoles/cvsourcesin/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsourcesin/height}}
+{cisourcesin}
+{\ctikzvalof{bipoles/cvsourcesin/height}}
+{\ctikzvalof{bipoles/cvsourcesin/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgfscope
+ \pgf@circ@sources@symbol@setup
+ \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
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cisource/height}}
+{cisource}
+{\ctikzvalof{bipoles/cisource/height}}
+{\ctikzvalof{bipoles/cisource/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ \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
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cisourceam/height}}
+{cisourceAM}
+{\ctikzvalof{bipoles/cisourceam/height}}
+{\ctikzvalof{bipoles/cisourceam/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \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
+}
+
+%% Cute Independent voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsource/height}}
+{vsourceC}
+{\ctikzvalof{bipoles/vsource/height}}
+{\ctikzvalof{bipoles/vsource/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+%% Cute Independent current source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isource/height}}
+{isourceC}
+{\ctikzvalof{bipoles/isource/height}}
+{\ctikzvalof{bipoles/isource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{.6\pgf@circ@res@down}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+%% Cute Controlled voltage source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cvsource/height}}
+{cvsourceC}
+{\ctikzvalof{bipoles/cvsource/height}}
+{\ctikzvalof{bipoles/cvsource/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgf@circ@draworfill
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+%% Cute Controlled current source
+\pgfcircdeclarebipolescaled{csources}
+{}
+{\ctikzvalof{bipoles/cisource/height}}
+{cisourceC}
+{\ctikzvalof{bipoles/cisource/height}}
+{\ctikzvalof{bipoles/cisource/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgf@circ@draworfill
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@zero}{.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{.6\pgf@circ@res@down}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+
+%% Noise voltage source
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/vsource/height}}
+{vsourceN}
+{\ctikzvalof{bipoles/vsource/height}}
+{\ctikzvalof{bipoles/vsource/width}}
+{
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ %
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=0.125\pgf@circ@scaled@Rlen\relax
+ \edef\pgf@noise@temp{dashed}
+ \edef\pgf@noise@fill{\ctikzvalof{bipoles/noise sources/fillcolor}}
+ \ifx\pgf@noise@temp\pgf@noise@fill
+ % fillable in this case
+ \pgf@circ@draworfillandclip
+ \pgfmathsetmacro{\@@thinner}{.5*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thinner\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ %
+ \advance\pgf@circ@res@up by -4\pgf@circ@res@step \advance\pgf@circ@res@down by -4\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by -\pgf@circ@res@step\advance\pgf@circ@res@down by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by -\pgf@circ@res@step\advance\pgf@circ@res@down by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \else
+ \pgfsetfillcolor{\pgf@noise@fill}
+ \pgfusepath{draw,fill}
+ \fi
+ \endpgfscope
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+%% Noise current source
+
+\pgfcircdeclarebipolescaled{sources}
+{}
+{\ctikzvalof{bipoles/isource/height}}
+{isourceN}
+{\ctikzvalof{bipoles/isource/height}}
+{\ctikzvalof{bipoles/isource/width}}
+{
+ \pgfpointorigin
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ %
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=0.125\pgf@circ@scaled@Rlen\relax
+ \edef\pgf@noise@temp{dashed}
+ \edef\pgf@noise@fill{\ctikzvalof{bipoles/noise sources/fillcolor}}
+ \ifx\pgf@noise@temp\pgf@noise@fill
+ % fillable in this case
+ \pgf@circ@draworfillandclip
+ \pgfmathsetmacro{\@@thinner}{.5*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thinner\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by \pgf@circ@res@step\advance\pgf@circ@res@down by \pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ %
+ \advance\pgf@circ@res@up by -4\pgf@circ@res@step \advance\pgf@circ@res@down by -4\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by -\pgf@circ@res@step\advance\pgf@circ@res@down by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \advance\pgf@circ@res@up by -\pgf@circ@res@step\advance\pgf@circ@res@down by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \else
+ \pgfsetfillcolor{\pgf@noise@fill}
+ \pgfusepath{draw,fill}
+ \fi
+ \endpgfscope
+ \pgfmathsetmacro{\@@thicker}{3*\ctikzvalof{bipoles/thickness}}
+ \pgfsetlinewidth{\@@thicker\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{.6\pgf@circ@res@down}}
+ \pgfsetroundcap\pgfusepath{draw}
+}
+% %>>>
+
+%% Paths definitions for Sources%<<<
+
+%% Batteries
+
+\pgfcirc@activate@bipole@simple@opt{v}{battery}{\circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@activate@bipole@opt{v}{batteryone}{battery1}{battery1}{\circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@activate@bipole@opt{v}{batterytwo}{battery2}{battery2}{\circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+%% Sources: voltage
+
+\pgfcirc@activate@bipole@opt{v}{vsource}{vsource}{european voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@activate@bipole@opt{v}{vsourceam}{vsourceAM}{american voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=false}
+\pgfcirc@style@to@style{\ifpgf@circuit@europeanvoltage european \else american \fi voltage source}{voltage source}
+\pgfcirc@style@to@style{voltage source}{vsource}
+\pgfcirc@style@to@style{voltage source}{V}
+
+\pgfcirc@activate@bipole@opt{v}{cvsource}{cvsource}{european controlled voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@activate@bipole@opt{v}{cvsourceam}{cvsourceAM}{american controlled voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=false}
+\pgfcirc@style@to@style{\ifpgf@circuit@europeanvoltage european \else american \fi controlled voltage source}{controlled voltage source}
+\pgfcirc@style@to@style{controlled voltage source}{cvsource}
+\pgfcirc@style@to@style{controlled voltage source}{controlled vsource}
+\pgfcirc@style@to@style{controlled voltage source}{cV}
+
+\pgfcirc@activate@bipole@simple@opt{v}{esource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@opt{v}{ecsource}{ecsource}{empty controlled source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{empty controlled source}{ecsource}
+
+\pgfcirc@activate@bipole@opt{v}{vsourcesin}{vsourcesin}{sinusoidal voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{sinusoidal voltage source}{vsourcesin}
+\pgfcirc@style@to@style{sinusoidal voltage source}{sV}
+
+\pgfcirc@activate@bipole@opt{v}{cvsourcesin}{cvsourcesin}{controlled sinusoidal voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{controlled sinusoidal voltage source}{cvsourcesin}
+\pgfcirc@style@to@style{controlled sinusoidal voltage source}{controlled vsourcesin}
+\pgfcirc@style@to@style{controlled sinusoidal voltage source}{csV}
+
+\pgfcirc@activate@bipole@opt{v}{vsourcesquare}{vsourcesquare}{square voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{square voltage source}{vsourcesquare}
+\pgfcirc@style@to@style{square voltage source}{sqV}
+
+\pgfcirc@activate@bipole@opt{v}{vsourcetri}{vsourcetri}{triangle voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{triangle voltage source}{vsourcetri}
+\pgfcirc@style@to@style{triangle voltage source}{tV}
+
+\pgfcirc@activate@bipole@simple@opt{v}{pvsource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@simple@opt{v}{pvmodule}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@simple@opt{v}{dcvsource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@opt{v}{oosource}{oosource}{voosource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@simple@opt{v}{ooosource}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@simple@opt{v}{oosourcetrans}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+
+\pgfcirc@activate@bipole@opt{v}{vsourceC}{vsourceC}{cute european voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{cute european voltage source}{vsourceC}
+\pgfcirc@style@to@style{cute european voltage source}{ceV}
+
+\pgfcirc@activate@bipole@opt{v}{cvsourceC}{cvsourceC}{cute european controlled voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{cute european controlled voltage source}{cvsourceC}
+\pgfcirc@style@to@style{cute european controlled voltage source}{cceV}
+
+\pgfcirc@activate@bipole@opt{v}{vsourceN}{vsourceN}{noise voltage source}{%
+ \circuitikzbasekey/bipole/is voltage=true,
+ \circuitikzbasekey/bipole/is voltageoutsideofsymbol=true}
+\pgfcirc@style@to@style{noise voltage source}{vsourceN}
+\pgfcirc@style@to@style{noise voltage source}{nV}
+
+%% Sources: current
+
+\pgfcirc@activate@bipole@opt{i}{isource}{isource}{european current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@activate@bipole@opt{i}{isourceam}{isourceAM}{american current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{\ifpgf@circuit@europeancurrent european \else american \fi current source}{current source}
+\pgfcirc@style@to@style{current source}{isource}
+\pgfcirc@style@to@style{current source}{I}
+
+\pgfcirc@activate@bipole@opt{i}{cisource}{cisource}{european controlled current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@activate@bipole@opt{i}{cisourceam}{cisourceAM}{american controlled current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{\ifpgf@circuit@europeanvoltage european \else american \fi controlled current source}{controlled current source}
+\pgfcirc@style@to@style{controlled current source}{cisource}
+\pgfcirc@style@to@style{controlled current source}{controlled isource}
+\pgfcirc@style@to@style{controlled current source}{cI}
+
+\pgfcirc@activate@bipole@opt{i}{isourcesin}{isourcesin}{sinusoidal current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{sinusoidal current source}{isourcesin}
+\pgfcirc@style@to@style{sinusoidal current source}{sI}
+
+\pgfcirc@activate@bipole@opt{i}{cisourcesin}{cisourcesin}{controlled sinusoidal current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{controlled sinusoidal current source}{cisourcesin}
+\pgfcirc@style@to@style{controlled sinusoidal current source}{controlled isourcesin}
+\pgfcirc@style@to@style{controlled sinusoidal current source}{csI}
+
+\pgfcirc@activate@bipole@simple@opt{i}{dcisource}{%
+ \circuitikzbasekey/bipole/is current=true}
+
+\pgfcirc@activate@bipole@opt{i}{oosource}{oosource}{ioosource}{%
+ \circuitikzbasekey/bipole/is current=true}
+
+\pgfcirc@activate@bipole@opt{i}{isourceC}{isourceC}{cute european current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{cute european current source}{isourceC}
+\pgfcirc@style@to@style{cute european current source}{ceI}
+
+\pgfcirc@activate@bipole@opt{i}{cisourceC}{cisourceC}{cute european controlled current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{cute european controlled current source}{cisourceC}
+\pgfcirc@style@to@style{cute european controlled current source}{cceI}
+
+\pgfcirc@activate@bipole@opt{i}{isourceN}{isourceN}{noise current source}{%
+ \circuitikzbasekey/bipole/is current=true}
+\pgfcirc@style@to@style{noise current source}{isourceN}
+\pgfcirc@style@to@style{noise current source}{nI}
+
+% build alias with voltage and current directions (legacy)
+
+\def\pgf@temp#1{
+ \pgfcirc@style@to@style@label{voltage source}{V#1}{v#1}
+ \pgfcirc@style@to@style@label{controlled voltage source}{cV#1}{v#1}
+ \pgfcirc@style@to@style@label{sinusoidal voltage source}{sV#1}{v#1}
+ \pgfcirc@style@to@style@label{controlled sinusoidal voltage source}{csV#1}{v#1}
+}
+\pgf@temp{_>} \pgf@temp{_<} \pgf@temp{^>} \pgf@temp{^<}
+\pgf@temp{>} \pgf@temp{<} \pgf@temp{^} \pgf@temp{_}
+\def\pgf@temp#1{
+ \pgfcirc@style@to@style@label{current source}{I#1}{i#1}
+ \pgfcirc@style@to@style@label{controlled current source}{cI#1}{i#1}
+ \pgfcirc@style@to@style@label{sinusoidal current source}{sI#1}{i#1}
+ \pgfcirc@style@to@style@label{controlled sinusoidal current source}{csI#1}{i#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{_}
+% %>>>
+
+%%%%%%%%%%%%%%
+%% Diodes
+%%%%%%%%%%%%%%
+
+% Definitions for diodes%<<<1
+
+\ctikzset{bipoles/diode/height/.initial=.50}
+\ctikzset{bipoles/diode/width/.initial=.40}
+\ctikzset{bipoles/bidirectionaldiode/height/.initial=1.1}
+\ctikzset{bipoles/bidirectionaldiode/width/.initial=1}
+\ctikzset{bipoles/bidirectionaldiode/diode width left/.initial=.3}
+\ctikzset{bipoles/bidirectionaldiode/diode width right/.initial=.3}
+\ctikzset{bipoles/varcap/height/.initial=.50}
+\ctikzset{bipoles/varcap/width/.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/thyristor/gate height/.initial=0.0} % legacy 0
+\ctikzset{tripoles/thyristor/gate kink/.initial=1.0} % legacy 1.0
+\ctikzset{tripoles/thyristor/gto space up/.initial=0.5} % legacy 0.5
+\ctikzset{tripoles/thyristor/gto space down/.initial=0.0} % legacy 0.0
+\ctikzset{tripoles/thyristor/gto bar width/.initial=0.2} % legacy 0.2
+
+\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/triac/gate kink/.initial=1}
+
+\ctikzset{thyristor style/.is choice}
+\ctikzset{thyristor style/legacy/.code={%
+ \ctikzset{tripoles/thyristor/height=1.1}%
+ \ctikzset{tripoles/thyristor/height 2=.5}%
+ \ctikzset{tripoles/thyristor/width=1.0}%
+ \ctikzset{tripoles/thyristor/diode height=.5}%
+ \ctikzset{tripoles/thyristor/diode width left=.4}%
+ \ctikzset{tripoles/thyristor/diode width right=.3}%
+ \ctikzset{tripoles/thyristor/gate height=0.0}%
+ \ctikzset{tripoles/thyristor/gate kink=1.0}%
+ \ctikzset{tripoles/thyristor/gto space up=0.5}%
+ \ctikzset{tripoles/thyristor/gto space down=0.0}%
+ \ctikzset{tripoles/thyristor/gto bar width=0.2}%
+ \ctikzset{tripoles/triac/gate kink=1}%
+}}
+\ctikzset{thyristor style/compact/.code={%
+ \ctikzset{tripoles/thyristor/height=0.8}% legacy 1.1
+ \ctikzset{tripoles/thyristor/height 2=.5}%
+ \ctikzset{tripoles/thyristor/width=1.0}%
+ \ctikzset{tripoles/thyristor/diode height=.5}%
+ \ctikzset{tripoles/thyristor/diode width left=.4}%
+ \ctikzset{tripoles/thyristor/diode width right=.4}%legacy 0.3
+ \ctikzset{tripoles/thyristor/gate height=0.5}% legacy 0
+ \ctikzset{tripoles/thyristor/gate kink=0.7}% legacy 1.0
+ \ctikzset{tripoles/thyristor/gto space up=0.25}% legacy 0.5
+ \ctikzset{tripoles/thyristor/gto space down=0.25}% legacy 0.0
+ \ctikzset{tripoles/thyristor/gto bar width=0.2}%
+ \ctikzset{tripoles/triac/gate kink=.7}%
+}}
+
+%
+% Flipping arrows in LED and photodiodes
+%
+\newif\ifpgf@led@fliparrows
+\newif\ifpgf@pd@fliparrows
+\pgf@led@fliparrowsfalse
+\pgf@pd@fliparrowsfalse
+%
+% by default the arrows start (LED) and go (PD) to the anode.
+%
+\ctikzset{led arrows from anode/.code=\pgf@led@fliparrowsfalse}
+\ctikzset{pd arrows to anode/.code=\pgf@pd@fliparrowsfalse}
+%
+% but they can start form the cathode (LED) or go to it (PD)
+%
+\ctikzset{led arrows from cathode/.code=\pgf@led@fliparrowstrue}
+\ctikzset{pd arrows to cathode/.code=\pgf@pd@fliparrowstrue}
+
+\newif\ifpgf@circuit@strokediode
+\newif\ifpgf@circuit@fulldiode
+\pgf@circuit@strokediodefalse
+\pgf@circuit@fulldiodefalse
+
+\ctikzset{diode/.is choice}
+\ctikzset{diode/empty/.code = \pgf@circuit@fulldiodefalse\pgf@circuit@strokediodefalse}%default
+\ctikzset{diode/full/.code = \pgf@circuit@fulldiodetrue }
+\ctikzset{diode/stroke/.code = \pgf@circuit@strokediodetrue}
+
+\tikzset{full diodes/.style = { \circuitikzbasekey/diode = full}}
+\tikzset{empty diodes/.style = { \circuitikzbasekey/diode = empty}}
+\tikzset{stroke diodes/.style = { \circuitikzbasekey/diode = stroke}}
+
+%%>>>
+
+%% Node components for diodes %<<<1
+
+%% Black generic diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{fulldiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{fullzdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Black alternative zigzag Zener diode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.3}{1.3}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{fullzzdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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-1.8\pgf@circ@res@left}{\pgf@circ@res@down-0.5\pgf@circ@res@up}}
+ \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-0.2\pgf@circ@res@left}{\pgf@circ@res@up-0.5\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Black Schottky diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{fullsdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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-.6\pgf@circ@res@left}{.6\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\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.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.4\pgf@circ@res@left}{.6\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+}
+
+%% Black tunnel diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{fulltdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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-.6\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-.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%
+% draw LED arrows
+%
+\def\pgf@circ@draw@ledarrows{%
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsend{latexslim}
+ \ifpgf@led@fliparrows
+ \pgfpathmoveto{\pgfpoint{0pt}{0.8\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-0.6\pgf@circ@res@right}{1.8\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@right}{0.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{1.6\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \else
+ \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}
+ \fi
+}
+%
+% ---and photodiode arrows
+%
+\def\pgf@circ@draw@pdarrows{%
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsstart{latexslim}
+ \ifpgf@pd@fliparrows
+ \pgfpathmoveto{\pgfpoint{0pt}{0.8\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-0.6\pgf@circ@res@right}{1.8\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{0.6\pgf@circ@res@right}{0.6\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{1.6\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \else
+ \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}
+ \fi
+}
+%
+% --and laser diode arrows - contributed by Andre Alves
+%
+\def\pgf@circ@draw@laserarrows{%
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsend{latexslim}
+ \pgfpathmoveto{\pgfpoint{-0.4\pgf@circ@res@right}{1.1\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-0.4\pgf@circ@res@right}{2.1\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{0.2\pgf@circ@res@right}{1.1\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.2\pgf@circ@res@right}{2.1\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+%% Black light emitting diode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{fulllediode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+ \pgf@circ@draw@ledarrows
+}
+
+%% Black laser diode - contributed by Andre Alves
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{fulllaserdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgf@circ@draw@laserarrows
+}
+
+%% Black photodiode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{fullpdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\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}
+
+ \pgf@circ@draw@pdarrows
+}
+
+%% Black varcap
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/varcap/height}}
+{fullvarcap}
+{\ctikzvalof{bipoles/varcap/height}}
+{\ctikzvalof{bipoles/varcap/width}}
+{
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgfsetlinewidth{\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfusepath{draw,fill}
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+%% Code for the diode triangle
+\def\pgf@circ@basicdiodeshape{
+ % \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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfscope
+ % to allow filling, we need to draw explicitly the stroke here.
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \ifpgf@circuit@bipole@strokedsymbol
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{0pt}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \endpgfscope
+ % \endpgfscope
+}
+
+%% Empty generic diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{emptydiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \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
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{emptyzdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \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}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-0.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Empty alternative zigzag Zener diode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.3}{1.3}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{emptyzzdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-1.8\pgf@circ@res@left}{\pgf@circ@res@down-0.5\pgf@circ@res@up}}
+ \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-0.2\pgf@circ@res@left}{\pgf@circ@res@up-0.5\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+%% Empty Schottky diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{emptysdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.6\pgf@circ@res@left}{.6\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-.6\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.4\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-1.4\pgf@circ@res@left}{.6\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+}
+
+%% Empty tunnel diode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/diode/height}}
+{emptytdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-.6\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-.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Empty light emitting diode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{emptylediode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgf@circ@draw@ledarrows
+}
+
+%% Empty laser diode - contributed by Andre Alves
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{emptylaserdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgf@circ@draw@laserarrows
+}
+
+%% Empty photodiode
+\pgfcircdeclarebipolescaled{diodes}
+{% fix the anchor border
+ \pgfcirc@border@extend@updown{1.8}{1}
+}
+{\ctikzvalof{bipoles/diode/height}}
+{emptypdiode}
+{\ctikzvalof{bipoles/diode/height}}
+{\ctikzvalof{bipoles/diode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope
+ \pgf@circ@basicdiodeshape
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgf@circ@draw@pdarrows
+}
+
+%% Empty varcap
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/varcap/height}}
+{emptyvarcap}
+{\ctikzvalof{bipoles/varcap/height}}
+{\ctikzvalof{bipoles/varcap/width}}
+{
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgfsetlinewidth{\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ % \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfscope
+ % to allow filling, we need to draw explicitily the stroke here.
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \ifpgf@circuit@bipole@strokedsymbol
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \endpgfscope
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-2\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+%% Empty bidirectionaldiode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/bidirectionaldiode/height}}
+{emptybidirectionaldiode}
+{\ctikzvalof{bipoles/bidirectionaldiode/height}}
+{\ctikzvalof{bipoles/bidirectionaldiode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgf@circ@res@other = \ctikzvalof{bipoles/bidirectionaldiode/diode width left}\pgf@circ@res@left
+ \pgf@circ@res@step = \ctikzvalof{bipoles/bidirectionaldiode/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)}}
+
+ \pgf@circ@draworfill
+
+ \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}
+}
+
+%% Full bidirectionaldiode
+\pgfcircdeclarebipolescaled{diodes}
+{}
+{\ctikzvalof{bipoles/bidirectionaldiode/height}}
+{fullbidirectionaldiode}
+{\ctikzvalof{bipoles/bidirectionaldiode/height}}
+{\ctikzvalof{bipoles/bidirectionaldiode/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgf@circ@res@other = \ctikzvalof{bipoles/bidirectionaldiode/diode width left}\pgf@circ@res@left
+ \pgf@circ@res@step = \ctikzvalof{bipoles/bidirectionaldiode/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, fill}
+
+ \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}
+}
+
+%%% Thyristors in general
+
+
+\def\pgfcircdeclarethyristor#1#2#3#4{%name, fill (0-> black; 1-empty), gate position (1: catode, -1: anode), extra code
+ \pgfcircdeclarebipolescaled{diodes}
+ {
+ \savedmacro{\gatekink}{\edef\gatekink{\ctikzvalof{tripoles/thyristor/gate kink}}}
+ \anchor{gate}{\northeast\pgf@x=\gatekink\pgf@x\pgf@x=#3\pgf@x}
+ \anchor{G}{\northeast\pgf@x=\gatekink\pgf@x\pgf@x=#3\pgf@x}
+ \anchor{anode}{\southwest\pgf@y=0cm}
+ \anchor{cathode}{\northeast\pgf@y=0cm }
+ }
+ {\ctikzvalof{tripoles/thyristor/height 2}}
+ {#1}
+ {\ctikzvalof{tripoles/thyristor/height}}
+ {\ctikzvalof{tripoles/thyristor/width}}
+ {
+ \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
+ % draw the thick parts here (shifted horizontally)
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % draw the basic triangle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathclose
+ \ifnum#2=0\relax
+ \pgfusepath{draw,fill}
+ \else
+ \pgf@circ@draworfill
+ \fi
+ % draw the vertical bar
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % back to normal linewidth
+ % stroke if needed
+ \ifpgf@circuit@bipole@strokedsymbol
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ % draw the gate thing;
+ #4
+
+ % draw the leads in/out
+ \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}
+ }
+}
+
+\def\pgfcirc@thyristor@simplegate{%
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@step}
+ {\ctikzvalof{tripoles/thyristor/gate height}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+}
+
+%% Black thyristor
+\pgfcircdeclarethyristor{fullthyristor}{0}{1}{\pgfcirc@thyristor@simplegate}
+%% Empty thyristor
+\pgfcircdeclarethyristor{emptythyristor}{1}{1}{\pgfcirc@thyristor@simplegate}
+%% black and empty GTO (standard: double line symbol, no arrow)
+
+\def\pgfcirc@doublegate@gto@add{
+ % connection to gate terminal
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up -
+ \ctikzvalof{tripoles/thyristor/gto space down}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+ \pgfscope
+ \pgfcirc@set@arrows{gto gate}{}{}
+ % \pgfsetarrowsstart{latexslim}
+ % first (lower) gto line: from body to gate
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@step}
+ {(\ctikzvalof{tripoles/thyristor/gate height}-\ctikzvalof{tripoles/thyristor/gto space down})
+ *\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up -
+ \ctikzvalof{tripoles/thyristor/gto space down}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+ % second (higher) gto line: from gate to body
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up +
+ \ctikzvalof{tripoles/thyristor/gto space up}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@step}
+ {(\ctikzvalof{tripoles/thyristor/gate height}+\ctikzvalof{tripoles/thyristor/gto space up})
+ *\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+ \endpgfscope
+}
+\pgfcircdeclarethyristor{fullgto}{0}{1}{\pgfcirc@doublegate@gto@add}
+\pgfcircdeclarethyristor{emptygto}{1}{1}{\pgfcirc@doublegate@gto@add}
+
+\def\pgfcirc@bargate@gto@add{%
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@step}
+ {\ctikzvalof{tripoles/thyristor/gate height}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@right}
+ {\pgf@circ@res@up}
+ }
+ % draw bar line.
+ \pgfpathmoveto{\pgfpoint
+ {(\ctikzvalof{tripoles/thyristor/gate kink}-\ctikzvalof{tripoles/thyristor/gto bar width})*\pgf@circ@res@right}
+ {(1+\ctikzvalof{tripoles/thyristor/diode height})*0.5*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {(\ctikzvalof{tripoles/thyristor/gate kink}+\ctikzvalof{tripoles/thyristor/gto bar width})*\pgf@circ@res@right}
+ {(1+\ctikzvalof{tripoles/thyristor/diode height})*0.5*\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarethyristor{fullgtobar}{0}{1}{\pgfcirc@bargate@gto@add}
+\pgfcircdeclarethyristor{emptygtobar}{1}{1}{\pgfcirc@bargate@gto@add}
+
+%% Thyristors with anode-connected gate
+
+\def\pgfcirc@thyristor@anodegate{%
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@other}
+ {\ctikzvalof{tripoles/thyristor/gate height}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@left}
+ {\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+}
+
+%% Black PUT
+\pgfcircdeclarethyristor{fullput}{0}{-1}{\pgfcirc@thyristor@anodegate}
+%% Empty PUT
+\pgfcircdeclarethyristor{emptyput}{1}{-1}{\pgfcirc@thyristor@anodegate}
+%% black and empty GTO (standard: double line symbol, no arrow)
+
+\def\pgfcirc@anodebargate@gto@add{%
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@other}
+ {\ctikzvalof{tripoles/thyristor/gate height}*\ctikzvalof{tripoles/thyristor/diode height}*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/thyristor/diode height}\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/thyristor/gate kink}*\pgf@circ@res@left}
+ {\pgf@circ@res@up}
+ }
+ % draw bar line.
+ \pgfpathmoveto{\pgfpoint
+ {(\ctikzvalof{tripoles/thyristor/gate kink}-\ctikzvalof{tripoles/thyristor/gto bar width})*\pgf@circ@res@left}
+ {(1+\ctikzvalof{tripoles/thyristor/diode height})*0.5*\pgf@circ@res@up}
+ }
+ \pgfpathlineto{\pgfpoint
+ {(\ctikzvalof{tripoles/thyristor/gate kink}+\ctikzvalof{tripoles/thyristor/gto bar width})*\pgf@circ@res@left}
+ {(1+\ctikzvalof{tripoles/thyristor/diode height})*0.5*\pgf@circ@res@up}
+ }
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarethyristor{fullagtobar}{0}{-1}{\pgfcirc@anodebargate@gto@add}
+\pgfcircdeclarethyristor{emptyagtobar}{1}{-1}{\pgfcirc@anodebargate@gto@add}
+
+% Triacs
+
+\def\pgfcircdeclaretriac#1#2{%name, fill (0-> black; 1-empty)
+ \pgfcircdeclarebipolescaled{diodes}
+ {
+ \savedmacro{\gatekink}{\edef\gatekink{\ctikzvalof{tripoles/triac/gate kink}}}
+ \anchor{gate}{\northeast\pgf@x=\gatekink\pgf@x}
+ \anchor{G}{\northeast\pgf@x=\gatekink\pgf@x}
+ \anchor{anode}{\southwest\pgf@y=0cm}
+ \anchor{cathode}{\northeast\pgf@y=0cm }
+ }
+ {\ctikzvalof{tripoles/triac/height}}
+ {#1}
+ {\ctikzvalof{tripoles/triac/height}}
+ {\ctikzvalof{tripoles/triac/width}}
+ {
+ \pgf@circ@setlinewidth{bipoles}{\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
+
+ % diodes forms
+ \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)}}
+
+ \ifnum#2=0\relax
+ \pgfusepath{draw,fill}
+ \else
+ \pgf@circ@draworfill
+ \fi
+
+ \pgfsetlinewidth{\pgfstartlinewidth}
+
+ % draw gate
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{-0.707*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2)
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/triac/gate kink}*\pgf@circ@res@right}
+ {-1.414*(\pgf@circ@res@other-\pgf@circ@res@step)}} % sqrt(1/2)
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/triac/gate kink}*\pgf@circ@res@right}{\pgf@circ@res@up}} % sqrt(1/2)
+
+ % draw leads
+ \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}
+
+ }
+}
+
+\pgfcircdeclaretriac{fulltriac}{0}
+\pgfcircdeclaretriac{emptytriac}{1}
+
+% end of shape definitions for diodes%>>>
+
+%% Paths definitions for Diodes%<<<
+
+\def\pgfcirc@tmp@generatediodes#1#2{
+ \pgfcirc@activate@bipole{l}{#1diode}{#1diode}{#1 diode}
+ \pgfcirc@style@to@style{#1 diode}{D#2}
+ \pgfcirc@activate@bipole{l}{#1zdiode}{#1zdiode}{#1 Zener diode}
+ \pgfcirc@style@to@style{#1 Zener diode}{zD#2}
+ \pgfcirc@activate@bipole{l}{#1zzdiode}{#1zzdiode}{#1 ZZener diode}
+ \pgfcirc@style@to@style{#1 ZZener diode}{zzD#2}
+ \pgfcirc@activate@bipole{l}{#1sdiode}{#1sdiode}{#1 Schottky diode}
+ \pgfcirc@style@to@style{#1 Schottky diode}{sD#2}
+ \pgfcirc@activate@bipole{l}{#1tdiode}{#1tdiode}{#1 tunnel diode}
+ \pgfcirc@style@to@style{#1 tunnel diode}{tD#2}
+ \pgfcirc@activate@bipole{l}{#1lediode}{#1lediode}{#1 led}
+ \pgfcirc@style@to@style{#1 led}{leD#2}
+ \pgfcirc@activate@bipole{l}{#1laserdiode}{#1laserdiode}{#1 laser diode}
+ \pgfcirc@style@to@style{#1 laser diode}{lasD#2}
+ \pgfcirc@activate@bipole{l}{#1pdiode}{#1pdiode}{#1 photodiode}
+ \pgfcirc@style@to@style{#1 photodiode}{pD#2}
+ \pgfcirc@activate@bipole{l}{#1varcap}{#1varcap}{#1 varcap}
+ \pgfcirc@style@to@style{#1 varcap}{VC#2}
+ \pgfcirc@activate@bipole{l}{#1bidirectionaldiode}{#1bidirectionaldiode}{#1 bidirectionaldiode}
+ \pgfcirc@style@to@style{#1 bidirectionaldiode}{biD#2}
+ \pgfcirc@activate@bipole{l}{#1thyristor}{#1thyristor}{#1 thyristor}
+ \pgfcirc@style@to@style{#1 thyristor}{Ty#2}
+ \pgfcirc@activate@bipole{l}{#1put}{#1put}{#1 put}
+ \pgfcirc@style@to@style{#1 put}{PUT#2}
+ \pgfcirc@activate@bipole{l}{#1gto}{#1gto}{#1 gto}
+ \pgfcirc@style@to@style{#1 gto}{GTO#2}
+ \pgfcirc@activate@bipole{l}{#1gtobar}{#1gtobar}{#1 gtobar}
+ \pgfcirc@style@to@style{#1 gtobar}{GTOb#2}
+ \pgfcirc@activate@bipole{l}{#1agtobar}{#1agtobar}{#1 agtobar}
+ \pgfcirc@style@to@style{#1 agtobar}{aGTOb#2}
+ \pgfcirc@activate@bipole{l}{#1triac}{#1triac}{#1 triac}
+ \pgfcirc@style@to@style{#1 triac}{Tr#2}
+}
+\pgfcirc@tmp@generatediodes{full}{*}
+\pgfcirc@tmp@generatediodes{empty}{o}
+\def\pgfcirc@tmp@generatestrokeddiodes#1#2{
+ \pgfcirc@node@to@style{l}{emptydiode}{#1 diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 diode}{D#2}
+ \pgfcirc@node@to@style{l}{emptyzdiode}{#1 Zener diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 Zener diode}{zD#2}
+ \pgfcirc@node@to@style{l}{emptyzzdiode}{#1 ZZener diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 ZZener diode}{zzD#2}
+ \pgfcirc@node@to@style{l}{emptysdiode}{#1 Schottky diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 Schottky diode}{sD#2}
+ \pgfcirc@node@to@style{l}{emptytdiode}{#1 tunnel diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 tunnel diode}{tD#2}
+ \pgfcirc@node@to@style{l}{emptylediode}{#1 led}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 led}{leD#2}
+ \pgfcirc@node@to@style{l}{emptylaserdiode}{#1 laser diode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 laser diode}{lasD#2}
+ \pgfcirc@node@to@style{l}{emptypdiode}{#1 photodiode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 photodiode}{pD#2}
+ \pgfcirc@node@to@style{l}{emptyvarcap}{#1 varcap}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 varcap}{VC#2}
+ \pgfcirc@node@to@style{l}{emptybidirectionaldiode}{#1 bidirectionaldiode}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 bidirectionaldiode}{biD#2}
+ \pgfcirc@node@to@style{l}{emptythyristor}{#1 thyristor}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 thyristor}{Ty#2}
+ \pgfcirc@node@to@style{l}{emptyput}{#1 put}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 put}{PUT#2}
+ \pgfcirc@node@to@style{l}{emptygto}{#1 gto}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 gto}{GTO#2}
+ \pgfcirc@node@to@style{l}{emptygtobar}{#1 gtobar}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 gtobar}{GTOb#2}
+ \pgfcirc@node@to@style{l}{emptyagtobar}{#1 agtobar}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 agtobar}{aGTOb#2}
+ \pgfcirc@node@to@style{l}{emptytriac}{#1 triac}{\circuitikzbasekey/bipole/is strokedsymbol=true}
+ \pgfcirc@style@to@style{#1 triac}{Tr#2}
+}
+\pgfcirc@tmp@generatestrokeddiodes{stroke}{-}
+\def\pgfcircdiodestylemacro{\ifpgf@circuit@strokediode stroke \else\ifpgf@circuit@fulldiode full \else empty \fi\fi}
+% these are auto-switching styles
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro diode}{diode}
+\pgfcirc@style@to@style{diode}{D}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro Zener diode}{Zener diode}
+\pgfcirc@style@to@style{Zener diode}{zD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro ZZener diode}{ZZener diode}
+\pgfcirc@style@to@style{ZZener diode}{zzD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro Schottky diode}{Schottky diode}
+\pgfcirc@style@to@style{Schottky diode}{sD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro tunnel diode}{tunnel diode}
+\pgfcirc@style@to@style{tunnel diode}{tD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro led}{led}
+\pgfcirc@style@to@style{led}{leD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro photodiode}{photodiode}
+\pgfcirc@style@to@style{photodiode}{pD}
+
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro laser diode}{laser diode}
+\pgfcirc@style@to@style{laser diode}{lasD}
+
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro varcap}{varcap}
+\pgfcirc@style@to@style{varcap}{VC}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro bidirectionaldiode}{bidirectionaldiode}
+\pgfcirc@style@to@style{bidirectionaldiode}{biD}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro thyristor}{thyristor}
+\pgfcirc@style@to@style{thyristor}{Ty}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro put}{put}
+\pgfcirc@style@to@style{put}{PUT}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro gto}{gto}
+\pgfcirc@style@to@style{gto}{GTO}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro gtobar}{gtobar}
+\pgfcirc@style@to@style{gtobar}{GTOb}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro agtobar}{agtobar}
+\pgfcirc@style@to@style{agtobar}{aGTOb}
+\pgfcirc@style@to@style{\pgfcircdiodestylemacro triac}{triac}
+\pgfcirc@style@to@style{triac}{Tr}
+% %>>>
+
+%%%%%%%%%%%%%
+%% switches and buttons
+%%%%%%%%%%%%%
+
+%% Definitions for switches%<<<1
+
+\ctikzset{bipoles/spst/height/.initial=.35}
+\ctikzset{bipoles/spst/width/.initial=.35}
+\ctikzset{bipoles/spst/depth/.initial=.2}
+\ctikzset{bipoles/nos/height/.initial=.3}
+\ctikzset{bipoles/nos/width/.initial=.35}
+\ctikzset{bipoles/nos/depth/.initial=.2}
+\ctikzset{bipoles/ncs/height/.initial=.35}
+\ctikzset{bipoles/ncs/width/.initial=.35}
+\ctikzset{bipoles/ncs/depth/.initial=.2}
+\ctikzset{bipoles/pushbutton/height/.initial=.5}
+\ctikzset{bipoles/pushbutton/height 2/.initial=.2}
+\ctikzset{bipoles/pushbutton/width/.initial=.50}
+%%% reed switch
+\ctikzset{bipoles/reed/height/.initial=.4}
+\ctikzset{bipoles/reed/width/.initial=.8}% 0.35 in nos
+\ctikzset{bipoles/reed/depth/.initial=.4}
+%% Cute switches
+\ctikzset{bipoles/cuteswitch/shape/.initial={ocirc}}
+\ctikzset{bipoles/cuteswitch/height/.initial=.6}
+\ctikzset{bipoles/cuteswitch/height 2/.initial=.2}
+\ctikzset{bipoles/cuteswitch/width/.initial=.50}
+\ctikzset{bipoles/cuteswitch/thickness/.initial=1}
+
+\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}
+%%>>>
+
+%% Shapes Node for bipoles switches and similar things%<<<
+%% (Closing) SPST
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/spst/depth}}
+{cspst}
+{\ctikzvalof{bipoles/spst/height}}
+{\ctikzvalof{bipoles/spst/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpointpolar{90}{1.2\pgf@circ@res@right}}
+ \pgfpatharc{90}{-20}{1.2\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfsetbeveljoin
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Opening SPST
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/spst/depth}}
+{ospst}
+{\ctikzvalof{bipoles/spst/height}}
+{\ctikzvalof{bipoles/spst/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpointpolar{-10}{1.2\pgf@circ@res@right}}
+ \pgfpatharc{-10}{90}{1.2\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfsetbeveljoin
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% Normal open Switch
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/nos/depth}}
+{nos}
+{\ctikzvalof{bipoles/nos/height}}
+{\ctikzvalof{bipoles/nos/width}}
+{
+
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+}
+
+%% Normal closed Switch
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/ncs/depth}}
+{ncs}
+{\ctikzvalof{bipoles/ncs/height}}
+{\ctikzvalof{bipoles/ncs/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+%% Push Button
+\pgfcircdeclarebipolescaled{switches}
+{
+ \anchor{tip}{\northeast\pgf@x=0pt\relax}
+}
+{\ctikzvalof{bipoles/pushbutton/height 2}}
+{pushbutton}
+{\ctikzvalof{bipoles/pushbutton/height}}
+{\ctikzvalof{bipoles/pushbutton/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}}
+}
+
+%% Normally closed Push Button
+\pgfcircdeclarebipolescaled{switches}
+{
+ \anchor{tip}{\northeast\pgf@x=0pt\relax}
+}
+{\ctikzvalof{bipoles/pushbutton/height 2}}
+{ncpushbutton}
+{\ctikzvalof{bipoles/pushbutton/height}}
+{\ctikzvalof{bipoles/pushbutton/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ % Warning, if the nodes will have a class, we have to touch this.
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@temp}}
+ \pgfpathmoveto{\pgfpoint{0}{-\pgf@circ@res@temp}}
+ \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}}
+}
+%% Push Button (normally closed but now open :-) see
+%% https://github.com/circuitikz/circuitikz/issues/128#issuecomment-731771299
+\pgfcircdeclarebipolescaled{switches}
+{
+ \anchor{tip}{
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \northeast\divide\pgf@y by 2\advance\pgf@y by \pgf@circ@res@temp
+ \pgf@x=0pt\relax
+ }
+}
+{\ctikzvalof{bipoles/pushbutton/height 2}}
+{pushbuttonc}
+{\ctikzvalof{bipoles/pushbutton/height}}
+{\ctikzvalof{bipoles/pushbutton/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@temp}}
+ \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@up/2+\pgf@circ@res@temp}}
+ \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}}
+}
+
+%% Normally closed Push Button now open
+\pgfcircdeclarebipolescaled{switches}
+{
+ \anchor{tip}{
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \northeast\divide\pgf@y by 2\advance\pgf@y by \pgf@circ@res@temp
+ \pgf@x=0pt\relax
+ }
+}
+{\ctikzvalof{bipoles/pushbutton/height 2}}
+{ncpushbuttono}
+{\ctikzvalof{bipoles/pushbutton/height}}
+{\ctikzvalof{bipoles/pushbutton/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ % Warning, if the nodes will have a class, we have to touch this.
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up/2}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@up/2}}
+ \pgfpathmoveto{\pgfpoint{0}{-\pgf@circ@res@up/2}}
+ \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@up/2+\pgf@circ@res@temp}}
+ \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}}
+}
+%%% reed switches
+\pgfcircdeclarebipolescaled{switches}
+{}
+{\ctikzvalof{bipoles/reed/depth}}
+{reed}
+{\ctikzvalof{bipoles/reed/height}}
+{\ctikzvalof{bipoles/reed/width}}
+{
+ % this is designed to be the same as a "nos".
+ \pgfmathsetmacro{\@@tmpx}{0.9*\ctikzvalof{bipoles/nos/width}/\ctikzvalof{bipoles/reed/width}}
+ \pgfmathsetmacro{\@@tmpy}{\ctikzvalof{bipoles/nos/height}/\ctikzvalof{bipoles/reed/height}}
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ % eclosure
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right-\pgf@circ@res@up}{\pgf@circ@res@up}}
+ \pgfpatharc{90}{-90}{\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@up}{-\pgf@circ@res@up}}
+ \pgfpatharc{270}{90}{\pgf@circ@res@up}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % switch
+ \pgfpathmoveto{\pgfpoint{\@@tmpx\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@right}{\@@tmpy\pgf@circ@res@up}}
+ % connection lines
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+ \endpgfscope
+ % connection lines
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@tmpx\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+}
+
+% cute switch "to" shapes help function
+% #1 -> name
+% #2 -> barposition
+% #3 -> arrowcode
+\long\def\pgfcircdeclarecutesw#1#2#3{
+ \pgfcircdeclarebipolescaled{switches}
+ {
+ \savedanchor\midlever{
+ % these values are calculated when we create the definition of the shape.
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/cuteswitch/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/cuteswitch/thickness}\pgf@circ@res@temp
+ \pgf@circ@res@down = -.5\pgf@y
+ \pgf@circ@res@up = .5\pgf@y
+ \pgfextracty{\pgf@circ@res@other}{#2}
+ \pgf@x=0pt
+ \pgf@y=.5\pgf@circ@res@other
+ }
+ % radius of the connector
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ % If cnnecting nodes are scaled, we have to modify this
+ \saveddimen{\radius}{\pgfmathsetlength\pgf@x{\pgf@circ@Rlen*\ctikzvalof{nodes width}}}
+ % shapename
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ % shape type
+ \savedmacro{\cshape}{\def\cshape{\ctikzvalof{bipoles/cuteswitch/shape}}}
+ % mid of the lever, to stack switches
+ \anchor{mid}{\midlever}
+ \anchor{cout}{\northeast \pgf@y=0cm}
+ \anchor{cin}{\southwest\pgf@y=0cm}
+ \anchor{out}{\northeast \pgf@y=0cm\advance\pgf@x by \radius}
+ \anchor{in}{\southwest\pgf@y=0cm\advance\pgf@x by -\radius}
+ }
+ {\ctikzvalof{bipoles/cuteswitch/height 2}}
+ {#1}
+ {\ctikzvalof{bipoles/cuteswitch/height}}
+ {\ctikzvalof{bipoles/cuteswitch/width}}{
+ \pgfscope
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ % If cnnecting nodes are scaled, we have to modify this
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/cuteswitch/thickness}\pgf@circ@res@temp
+ \pgfsetlinewidth{2\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{#2}
+ \pgfsetroundcap\pgfusepath{draw}
+ \endpgfscope
+ \pgfscope % arrow
+ #3
+ \endpgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{\cshape}{center}{}{\thisshape-in}{\pgfusepath{draw}}
+ \pgftransformshift{\pgfpoint{2\pgf@circ@res@right}{0pt}}
+ \pgfnode{\cshape}{center}{}{\thisshape-out}{\pgfusepath{draw}}
+ }
+}
+
+%% closed cute switch
+\pgfcircdeclarecutesw{cuteclosedswitch}
+ {\pgfpoint{\pgf@circ@res@right}{1.5\pgf@circ@res@temp}}
+ {}
+
+%% open cute switch
+\pgfcircdeclarecutesw{cuteopenswitch}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ {}
+
+%% closing cute switch
+\pgfcircdeclarecutesw{cuteclosingswitch}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ {
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfpathmoveto{\pgfpointpolar{70}{1.2\pgf@circ@res@right}}
+ \pgfpatharc{70}{-10}{1.2\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfusepath{draw}
+ }
+
+%% opening cute switch
+\pgfcircdeclarecutesw{cuteopeningswitch}
+ {\pgfpoint{\pgf@circ@res@right}{1.5\pgf@circ@res@temp}}
+ {
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfpathmoveto{\pgfpointpolar{-10}{1.2\pgf@circ@res@right}}
+ \pgfpatharc{-10}{60}{1.2\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfusepath{draw}
+ }
+
+\pgfcircdeclarebipole{
+ \anchor{out 1}{
+ \northeast
+ \pgf@y=0cm
+ }
+ \anchor{out 2}{
+ \northeast
+ \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}}
+ \pgf@circ@setlinewidth{bipoles}{\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}
+}
+
+% %>>>
+
+%% Shape nodes for switches (non-bipoles)%<<<
+
+%%%%%%%%%%%%%
+%% switches
+%%%%%%%%%%%%%
+
+% Legacy spdt
+\pgfdeclareshape{spdt}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{switches}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/spdt/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \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{\ctikzvalof{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 = \ctikzvalof{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}}
+ }
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+
+% cute switch "node" shapes, matching with cute "to" shapes
+% #1 -> name
+% #2 -> barposition
+% #3 -> arrowcode
+\long\def\pgfcircdeclarecutespdt#1#2#3{
+ \pgfdeclareshape{#1}
+ {
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{switches}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/cuteswitch/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.25\pgf@x
+ }
+ \savedanchor\midlever{
+ % these values are calculated when we create the definition of the shape.
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/cuteswitch/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/cuteswitch/thickness}\pgf@circ@res@temp
+ \pgf@circ@res@down = -.5\pgf@y
+ \pgf@circ@res@up = .5\pgf@y
+ \pgfextracty{\pgf@circ@res@other}{#2}
+ \pgf@x=0pt
+ \pgf@y=.5\pgf@circ@res@other
+ }
+ % radius of the connector
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ \saveddimen{\radius}{\pgfmathsetlength\pgf@x{\pgf@circ@Rlen*\ctikzvalof{nodes width}}}
+ % shapename
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ % shape type
+ \savedmacro{\cshape}{\def\cshape{\ctikzvalof{bipoles/cuteswitch/shape}}}
+ % mid of the lever, to stack switches
+ \anchor{mid}{\midlever}
+ % center anchors
+ \anchor{cin}{ \northwest \pgf@y=0pt}
+ \anchor{cout 1}{ \northwest \pgf@x=-\pgf@x }
+ \anchor{cout 2}{ \northwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y }
+ % horizontal angles
+ \anchor{in}{ \northwest \pgf@y=0pt\advance\pgf@x by -\radius}
+ \anchor{out 1}{ \northwest \pgf@x=-\pgf@x \advance\pgf@x by \radius}
+ \anchor{out 2}{ \northwest \pgf@x=-\pgf@x \advance\pgf@x by \radius \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{\ctikzvalof{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
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ \pgf@circ@res@temp=\radius\relax
+ \pgf@circ@res@temp=\ctikzvalof{bipoles/cuteswitch/thickness}\pgf@circ@res@temp
+ \pgfsetlinewidth{2\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{#2}
+ \pgfsetroundcap\pgfusepath{draw}
+ \endpgfscope
+ \pgfscope % arrow
+ #3
+ \endpgfscope
+ % terminals
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfnode{\cshape}{center}{}{\thisshape-out 1}{\pgfusepath{stroke}}
+ \endpgfscope
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfnode{\cshape}{center}{}{\thisshape-out 2}{\pgfusepath{stroke}}
+ \endpgfscope
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{\cshape}{center}{}{\thisshape-in}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ }
+ }
+}
+
+\pgfcircdeclarecutespdt{cute spdt up}
+{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up-1.5\pgf@circ@res@temp}}
+{}
+
+\pgfcircdeclarecutespdt{cute spdt mid}
+{\pgfpoint{\pgf@circ@res@right}{0pt}}
+{}
+
+\pgfcircdeclarecutespdt{cute spdt down}
+{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down+1.5\pgf@circ@res@temp}}
+{}
+
+\pgfcircdeclarecutespdt{cute spdt up arrow}
+{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up-1.5\pgf@circ@res@temp}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfpathmoveto{\pgfpointpolar{70}{1.5\pgf@circ@res@right}}
+ \pgfpatharc{70}{-50}{1.5\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarecutespdt{cute spdt mid arrow}
+{\pgfpoint{\pgf@circ@res@right}{0pt}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfcirc@set@arrows{switch}{latexslim}{latexslim}
+ \pgfpathmoveto{\pgfpointpolar{-60}{1.5\pgf@circ@res@right}}
+ \pgfpatharc{-60}{60}{1.5\pgf@circ@res@right}
+ \pgfusepath{draw}
+}
+
+\pgfcircdeclarecutespdt{cute spdt down arrow}
+{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down+1.5\pgf@circ@res@temp}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % in node
+ \pgfpathmoveto{\pgfpointpolar{-50}{1.5\pgf@circ@res@right}}
+ \pgfpatharc{-50}{70}{1.5\pgf@circ@res@right}
+ \pgfcirc@set@arrows{switch}{}{latexslim}
+ \pgfusepath{draw}
+}
+% %>>>
+
+%% Paths Switches and buttons%<<<
+
+\pgfcirc@activate@bipole{l}{cspst}{cspst}{closing switch}
+\pgfcirc@style@to@style{closing switch}{switch}
+\pgfcirc@style@to@style{closing switch}{cspst}
+\pgfcirc@style@to@style{switch}{spst}
+\pgfcirc@activate@bipole{l}{ospst}{ospst}{opening switch}
+\pgfcirc@style@to@style{opening switch}{ospst}
+
+\pgfcirc@activate@bipole@simple{l}{nos}
+\pgfcirc@style@to@style{nos}{normal open switch}
+\pgfcirc@activate@bipole@simple{l}{ncs}
+\pgfcirc@style@to@style{ncs}{normal closed switch}
+
+\pgfcirc@activate@bipole{l}{pushbutton}{pushbutton}{push button}
+\pgfcirc@style@to@style{push button}{nopb}
+\pgfcirc@style@to@style{push button}{normally open push button}
+\pgfcirc@activate@bipole{l}{ncpushbutton}{ncpushbutton}{ncpb}
+\pgfcirc@style@to@style{ncpb}{normally closed push button}
+\pgfcirc@activate@bipole{l}{pushbuttonc}{pushbuttonc}{nopbc}
+\pgfcirc@style@to@style{nopbc}{normally open push button closed}
+\pgfcirc@activate@bipole{l}{ncpushbuttono}{ncpushbuttono}{ncpbo}
+\pgfcirc@style@to@style{ncpbo}{normally closed push button open}
+
+\pgfcirc@activate@bipole{l}{toggleswitch}{toggleswitch}{toggle switch}
+\pgfcirc@activate@bipole@simple{l}{reed}
+
+\pgfcirc@activate@bipole{l}{cuteclosedswitch}{cuteclosedswitch}{cute closed switch}
+\pgfcirc@style@to@style{cute closed switch}{ccsw}
+\pgfcirc@activate@bipole{l}{cuteopenswitch}{cuteopenswitch}{cute open switch}
+\pgfcirc@style@to@style{cute open switch}{cosw}
+\pgfcirc@activate@bipole{l}{cuteclosingswitch}{cuteclosingswitch}{cute closing switch}
+\pgfcirc@style@to@style{cute closing switch}{ccgsw}
+\pgfcirc@activate@bipole{l}{cuteopeningswitch}{cuteopeningswitch}{cute opening switch}
+\pgfcirc@style@to@style{cute opening switch}{cogsw}% %>>>
+
+%%%%%%%%%%%%%%%%%
+%% Instruments
+%%%%%%%%%%%%%%%%%
+
+%% Definitions for Instruments %<<<1
+\ctikzset{bipoles/ammeter/height/.initial=.60}
+\ctikzset{bipoles/ammeter/width/.initial=.60}
+\ctikzset{bipoles/ohmmeter/height/.initial=.60}
+\ctikzset{bipoles/ohmmeter/width/.initial=.60}
+\ctikzset{bipoles/voltmeter/height/.initial=.60}
+\ctikzset{bipoles/voltmeter/width/.initial=.60}
+\ctikzset{bipoles/smeter/height/.initial=.60}
+\ctikzset{bipoles/smeter/width/.initial=.60}
+\ctikzset{bipoles/smeter/voltage/additional shift/.initial=1}
+\ctikzset{bipoles/qmeter/depth/.initial=.40}
+\ctikzset{bipoles/qmeter/height/.initial=.80}
+\ctikzset{bipoles/qmeter/width/.initial=.60}
+% this must be specified for each one
+\ctikzset{bipoles/qvprobe/voltage/additional shift/.initial=.5}
+\ctikzset{bipoles/qiprobe/voltage/additional shift/.initial=.5}
+\ctikzset{bipoles/qpprobe/voltage/additional shift/.initial=.5}
+\ctikzset{bipoles/iloop/width/.initial=.40}
+\ctikzset{bipoles/iloop/height/.initial=.60}
+
+\ctikzset{bipoles/oscope/height/.initial=.60}
+\ctikzset{bipoles/oscope/width/.initial=.60}
+\ctikzset{bipoles/oscope/voltage/additional shift/.initial=1}
+
+
+% option to not rotate the new (Romano's) instruments
+\newif\ifpgf@circuit@straightinstruments\pgf@circuit@straightinstrumentstrue
+\pgfkeys{/tikz/straight instruments/.add code={}{\pgf@circuit@straightinstrumentstrue}}
+\ctikzset{straight instruments/.add code={}{\pgf@circuit@straightinstrumentstrue}}
+\pgfkeys{/tikz/rotated instruments/.add code={}{\pgf@circuit@straightinstrumentsfalse}}
+\ctikzset{rotated instruments/.add code={}{\pgf@circuit@straightinstrumentsfalse}}
+%%>>>
+
+%% Node shapes for instruments%<<<
+
+% % METERINGSHAPE
+\long\def\drawmeteringcircle{
+ \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
+ %draw connections to circle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{.9\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathmoveto{\pgfpoint{.9\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+ %draw circle
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \endpgfscope
+ %draw arrow
+ \pgfscope
+ \pgfsetarrowsend{latex}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%AMPEREMETER
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/ammeter/height}}
+{ammeter}
+{\ctikzvalof{bipoles/ammeter/height}}
+{\ctikzvalof{bipoles/ammeter/width}}
+{
+ \drawmeteringcircle
+ \pgfnode{circle}{center}{\pgf@circ@font@bold{A}}{}{}
+}
+%OHMMETER
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/ohmmeter/height}}
+{ohmmeter}
+{\ctikzvalof{bipoles/ohmmeter/height}}
+{\ctikzvalof{bipoles/ohmmeter/width}}
+{
+ \drawmeteringcircle
+ \pgfnode{circle}{center}{\boldmath$\Omega$}{}{}
+}
+%VOLTMETER
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/voltmeter/height}}
+{voltmeter}
+{\ctikzvalof{bipoles/voltmeter/height}}
+{\ctikzvalof{bipoles/voltmeter/width}}
+{
+ \drawmeteringcircle
+ \pgfnode{circle}{center}{\pgf@circ@font@bold{V}}{}{}
+
+}
+
+% oscilloscope, suggested by @nobrl https://github.com/circuitikz/circuitikz/issues/176
+%
+% oscilloscope waveforms
+
+\ctikzset{%
+ bipoles/oscope/waveform/sin/.code={%
+ \pgfpathmoveto{\pgfpoint{-0.6cm}{0cm}}
+ \pgfpathsine{\pgfpoint{0.3cm}{0.4cm}}
+ \pgfpathcosine{\pgfpoint{0.3cm}{-0.4cm}}
+ \pgfpathsine{\pgfpoint{0.3cm}{-0.4cm}}
+ \pgfpathcosine{\pgfpoint{0.3cm}{0.4cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/ramps/.code={%
+ \pgfpathmoveto{\pgfpoint{-0.75cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.05cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.05cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.65cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.65cm}{-0.25cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/square/.code={%
+ \pgfpathmoveto{\pgfpoint{-0.75cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.6cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.6cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.6cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.6cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.75cm}{0.25cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/triangle/.code={%
+ \pgfpathmoveto{\pgfpoint{-0.75cm}{0cm}}
+ \pgfpathlineto{\pgfpoint{-0.6cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{-0.3cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.3cm}{0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.6cm}{-0.25cm}}
+ \pgfpathlineto{\pgfpoint{0.75cm}{0cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/zero/.code={
+ \pgfpathmoveto{\pgfpoint{-0.75cm}{0cm}}
+ \pgfpathlineto{\pgfpoint{0.75cm}{0cm}}
+ \pgfusepath{draw}
+ },%
+ bipoles/oscope/waveform/lissajous/.code={%
+ \pgfpathellipse{\pgfpoint{0cm}{0cm}}
+ {\pgfpoint{0.5cm}{0.35cm}}{\pgfpoint{-0.3cm}{0.2cm}}
+ \pgfusepath{draw}
+ },
+ bipoles/oscope/waveform/none/.code={},%
+}
+% default waveform (backward compatible)
+\ctikzset{bipoles/oscope/waveform/.initial=ramps}
+
+\pgfcircdeclarebipolescaled{instruments}
+{
+ \anchor{in 1}{\southwest\pgf@y=0.75\pgf@y\pgf@x=0.4\pgf@x}
+ \anchor{in 2}{\southwest\pgf@y=0.75\pgf@y\pgf@x=-0.4\pgf@x}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+}
+{\ctikzvalof{bipoles/oscope/height}}
+{oscope}
+{\ctikzvalof{bipoles/oscope/height}}
+{\ctikzvalof{bipoles/oscope/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\southwest}
+ \pgfextracty{\pgf@circ@res@down}{\southwest}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfscope
+ \pgfsetcornersarced{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@step}}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ % get the rotation
+ \ifpgf@circuit@straightinstruments
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \else
+ \edef\rot{0}
+ \fi
+ % and unrotate the scope
+ \pgfscope
+ \pgftransformrotate{\rot}
+ % grid
+ \pgfscope
+ \pgfsetlinewidth{0.5\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{0.25\pgf@circ@res@down}}
+ % the "almost one" make the grid complete most of the time --- beware of antialiasing
+ \pgfpathgrid[stepx=0.995\pgf@circ@res@step, stepy=0.995\pgf@circ@res@step]%
+ {\pgfpoint{0.75\pgf@circ@res@left}{0.5\pgf@circ@res@down}}
+ {\pgfpoint{0.75\pgf@circ@res@right}{0.5\pgf@circ@res@up}}
+ \pgfsetstrokeopacity{0.5}
+ \pgfusepath{draw}
+ \endpgfscope
+ % function displayed
+ \pgfscope
+ \pgfmathsetmacro{\@@scalex}{\pgf@circ@res@right/1cm}
+ \pgfmathsetmacro{\@@scaley}{\pgf@circ@res@up/1cm}
+ \pgftransformxscale{\@@scalex}
+ \pgftransformyscale{\@@scaley}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfkeys{\circuitikzbasekey/bipoles/oscope/waveform/\ctikzvalof{bipoles/oscope/waveform}}
+ \endpgfscope
+ \endpgfscope
+}
+% generic round meter with always horizontal text, no arrow
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/esource/height}}
+{rmeter}
+{\ctikzvalof{bipoles/esource/height}}
+{\ctikzvalof{bipoles/esource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ % draw the text label
+ % get the rotation
+ \ifpgf@circuit@straightinstruments
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \else
+ \edef\rot{0}
+ \fi
+ % and unrotate the scope
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgftransformrotate{\rot}
+ \pgftext[center,x=0,y=0]{\ctikzvalof{bipoles/twoport/text}}
+ \endpgfscope
+}
+
+% generic round meter with always horizontal text, with arrow
+\pgfcircdeclarebipolescaled{instruments}
+{}
+{\ctikzvalof{bipoles/esource/height}}
+{rmeterwa}
+{\ctikzvalof{bipoles/esource/height}}
+{\ctikzvalof{bipoles/esource/width}}
+{
+ \pgfpointorigin
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ % draw the text label
+ % get the rotation
+ \ifpgf@circuit@straightinstruments
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \else
+ \edef\rot{0}
+ \fi
+ % and unrotate the scope
+ \pgfscope
+ \pgftransformrotate{\rot}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ % arrow: create a center hole to have better visual
+ \pgfscope
+ % clipping path: first a rectangle bigger then the shape
+ % to avoid problems with the line thickness
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ {\pgfpoint{2\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ % next open a circle into it
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{.6\pgf@circ@res@up}}{\pgfpoint{.6\pgf@circ@res@left}{0}}
+ % do the difference and clip before drawing
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfsetarrowsend{latexslim}
+ % the arrow is better if it has a bit of breath and it's not 45º
+ \pgfpathmoveto{\pgfpoint{.8\pgf@circ@res@left}{1.2\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.8\pgf@circ@res@right}{1.2\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgftext[center]{\ctikzvalof{bipoles/twoport/text}}
+ \endpgfscope
+}
+
+% generic square meter with always horizontal text
+\pgfcircdeclarebipolescaled{instruments}
+{
+ \anchor{in 1}{\southwest\pgf@y=0.75\pgf@y\pgf@x=0.4\pgf@x}
+ \anchor{in 2}{\southwest\pgf@y=0.75\pgf@y\pgf@x=-0.4\pgf@x}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+}
+{\ctikzvalof{bipoles/smeter/height}}
+{smeter}
+{\ctikzvalof{bipoles/smeter/height}}
+{\ctikzvalof{bipoles/smeter/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\southwest}
+ \pgfextracty{\pgf@circ@res@down}{\southwest}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfscope
+ \pgfsetcornersarced{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@step}}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ % get the rotation
+ \ifpgf@circuit@straightinstruments
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \else
+ \edef\rot{0}
+ \fi
+ % and unrotate the scope
+ \pgfscope
+ \pgftransformrotate{\rot}
+ % the metering window
+ \pgfscope
+ \def\@starta{105}\def\@stopa{75}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgftransformshift{\pgfpoint{0pt}{-1.8\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpointpolar{\@starta}{2\pgf@circ@res@up}}
+ \pgfpatharc{\@starta}{\@stopa}{2\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpointpolar{\@stopa}{2.5\pgf@circ@res@up}}
+ \pgfpatharc{\@stopa}{\@starta}{2.5\pgf@circ@res@up}
+ \pgfclosepath
+ \pgfpathmoveto{\pgfpointpolar{80}{2\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{80}{2.4\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgftext[center, y=0.5\pgf@circ@res@down]{\ctikzvalof{bipoles/twoport/text}}
+ \endpgfscope
+}
+
+% probes qucs style:
+% #1 : name
+% #2 : extra code
+\long\def\pgfcirc@qucsprobe#1#2{
+ \pgfcircdeclarebipolescaled{instruments}
+ {
+ \anchor{v+}{\southwest\pgf@x=0.6\pgf@x}
+ \anchor{v-}{\southwest\pgf@x=-0.6\pgf@x}
+ % put the node text above and centered
+ \anchor{text}{\pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+ }
+ {\ctikzvalof{bipoles/qmeter/depth}}
+ {#1}
+ {\ctikzvalof{bipoles/qmeter/height}}
+ {\ctikzvalof{bipoles/qmeter/width}}
+ {
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\southwest}
+ \pgfextracty{\pgf@circ@res@down}{\southwest}
+ \pgfmathsetlength{\pgf@circ@res@step}{0.25*\pgf@circ@res@up}
+ \pgfscope
+ \pgfscope
+ \pgfsetcornersarced{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@step}}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \def\@starta{103}\def\@stopa{77}
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfscope
+ \pgftransformshift{\pgfpoint{0pt}{-1.7\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpointpolar{\@starta}{2.1\pgf@circ@res@up}}
+ \pgfpatharc{\@starta}{\@stopa}{2.1\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpointpolar{\@stopa}{2.5\pgf@circ@res@up}}
+ \pgfpatharc{\@stopa}{\@starta}{2.5\pgf@circ@res@up}
+ \pgfclosepath
+ \pgfpathmoveto{\pgfpointpolar{83}{2.1\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointpolar{83}{2.4\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgf@circ@draworfill
+ \endpgfscope
+ #2
+ \endpgfscope
+ }
+}
+
+\pgfcirc@qucsprobe{qiprobe}{
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \pgfnode{currarrow}{center}{}{}{}
+}
+
+\pgfcirc@qucsprobe{qvprobe}{
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{nodes width}*\pgf@circ@scaled@Rlen}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left}{0pt}}
+ \pgfpathcircle{\pgfpoint{.6\pgf@circ@res@left+\pgf@circ@res@other}{0pt}}{\pgf@circ@res@other}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathcircle{\pgfpoint{.6\pgf@circ@res@right-\pgf@circ@res@other}{0pt}}{\pgf@circ@res@other}
+ \pgfusepath{draw}
+ \pgfscope
+ % "+" and "-", drawn so that they scale correctly
+ \pgfsetlinewidth{2\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left+\pgf@circ@res@other}{-1.5\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left+\pgf@circ@res@other}{-3.5\pgf@circ@res@other}}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left+0\pgf@circ@res@other}{-2.5\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left+2\pgf@circ@res@other}{-2.5\pgf@circ@res@other}}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@right+0\pgf@circ@res@other}{-2.5\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right-2\pgf@circ@res@other}{-2.5\pgf@circ@res@other}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+\pgfcirc@qucsprobe{qpprobe}{
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \pgfnode{currarrow}{center}{}{}{}
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{nodes width}*\pgf@circ@scaled@Rlen}
+ \pgfpathcircle{\pgfpoint{.6\pgf@circ@res@left}{-3\pgf@circ@res@other}}{\pgf@circ@res@other}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{-4\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathcircle{\pgfpoint{.6\pgf@circ@res@right}{-3\pgf@circ@res@other}}{\pgf@circ@res@other}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@right}{-4\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \pgfscope
+ % "+" and "-", drawn so that they scale correctly
+ \pgfsetlinewidth{2\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left+3\pgf@circ@res@other}{-2\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left+3\pgf@circ@res@other}{-4\pgf@circ@res@other}}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left+2\pgf@circ@res@other}{-3\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@left+4\pgf@circ@res@other}{-3\pgf@circ@res@other}}
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@right-4\pgf@circ@res@other}{-3\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right-2\pgf@circ@res@other}{-3\pgf@circ@res@other}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% current loop for oscope and similar: stylized
+\pgfcircdeclarebipolescaled{instruments}
+{
+ \anchor{i}{\northeast\pgf@x=0pt\relax}
+ \anchor{text}{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox+\pgf@circ@res@left}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+}
+{\ctikzvalof{bipoles/iloop/height}}
+{iloop}
+{\ctikzvalof{bipoles/iloop/height}}
+{\ctikzvalof{bipoles/iloop/width}}
+{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgf@circ@res@down=-\pgf@circ@res@up
+ \pgf@circ@res@left=-\pgf@circ@res@right
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfsetcolor{\ctikzvalof{color}}
+ % external ellipse
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ % clipping path: first a rectangle bigger then the shape
+ % to avoid problems with the line thickness
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ {\pgfpoint{2\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ % next the opening to the left
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{.1\pgf@circ@res@down}}
+ {\pgfpoint{0pt}{.1\pgf@circ@res@up}}
+ % do the difference and clip before drawing
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfpathellipse{\pgfpointorigin}{
+ \pgfpoint{0pt}{0.8\pgf@circ@res@up}}{
+ \pgfpoint{0.4\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \endpgfscope
+ % internal wire
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@right}{0pt}}
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ % and the contact line up
+ \pgfpathmoveto{\pgfpoint{0pt}{0.8\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% current loop for oscope and similar: real (double connection)
+\pgfcircdeclarebipolescaled{instruments}
+{
+ \anchor{i+}{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgf@circ@res@step=0.4\pgf@circ@res@right
+ \pgf@circ@res@other=0.8\pgf@circ@res@up
+ \pgfpointpolar{105}{\pgf@circ@res@step and \pgf@circ@res@other}
+ \pgf@y=\pgf@circ@res@up
+ }
+ \anchor{i-}{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgf@circ@res@step=0.4\pgf@circ@res@right
+ \pgf@circ@res@other=0.8\pgf@circ@res@up
+ \pgfpointpolar{75}{\pgf@circ@res@step and \pgf@circ@res@other}
+ \pgf@y=\pgf@circ@res@up
+ }
+ \anchor{text}{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@left}{\northeast}
+ \pgfpoint{-.5\wd\pgfnodeparttextbox+\pgf@circ@res@left}{
+ \dimexpr.5\dp\pgfnodeparttextbox+.5\ht\pgfnodeparttextbox+\pgf@circ@res@up\relax
+ }
+ }
+}
+{\ctikzvalof{bipoles/iloop/height}}
+{iloop2}
+{\ctikzvalof{bipoles/iloop/height}}
+{\ctikzvalof{bipoles/iloop/width}}
+{
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgf@circ@res@down=-\pgf@circ@res@up
+ \pgf@circ@res@left=-\pgf@circ@res@right
+ % must be the same than internal i+ and i- anchors definition
+ \pgf@circ@res@step=0.4\pgf@circ@res@right
+ \pgf@circ@res@other=0.8\pgf@circ@res@up
+ \def\@plus{\pgfpointpolar{105}{\pgf@circ@res@step and \pgf@circ@res@other}}
+ \def\@minus{\pgfpointpolar{75}{\pgf@circ@res@step and \pgf@circ@res@other}}
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfsetcolor{\ctikzvalof{color}}
+ % external ellipse
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ % clipping path: first a rectangle bigger then the shape
+ % to avoid problems with the line thickness
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{2\pgf@circ@res@down}}
+ {\pgfpoint{2\pgf@circ@res@right}{2\pgf@circ@res@up}}
+ % next the opening to the left
+ \pgfpathrectanglecorners{\pgfpoint{2\pgf@circ@res@left}{.1\pgf@circ@res@down}}
+ {\pgfpoint{0pt}{.1\pgf@circ@res@up}}
+ % do the difference and clip before drawing
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfpathmoveto{\@plus}
+ \pgfpatharc{105}{435}{\pgf@circ@res@step and \pgf@circ@res@other}
+ \pgfusepath{draw}
+ \endpgfscope
+ % internal wire
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@right}{0pt}}
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ % and the contact line up
+ % I use ...left and ---right as temporal lengths here to avoid defining more
+ \pgfextractx{\pgf@circ@res@left}{\@plus}
+ \pgfextractx{\pgf@circ@res@right}{\@minus}
+ \pgfpathmoveto{\@plus}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\@minus}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+% %>>>
+
+% Path definitions for Instruments%<<<
+
+\pgfcirc@activate@bipole@simple{l}{ammeter}
+\pgfcirc@activate@bipole@simple{l}{ohmmeter}
+\pgfcirc@activate@bipole@simple{l}{voltmeter}
+\pgfcirc@activate@bipole@simple{l}{oscope}
+\pgfcirc@activate@bipole@simple{l}{rmeter}
+\pgfcirc@activate@bipole@simple{l}{rmeterwa}
+\pgfcirc@activate@bipole@simple{l}{smeter}
+\pgfcirc@activate@bipole@simple{l}{iloop}
+% \pgfcirc@activate@bipole@simple{l}{iloop2} that was wrong
+\pgfcirc@activate@bipole{l}{ilooptwo}{iloop2}{iloop2}
+\pgfcirc@activate@bipole@simple{l}{qvprobe}
+\pgfcirc@activate@bipole@simple{l}{qiprobe}
+\pgfcirc@activate@bipole@simple{l}{qpprobe}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% MECHANICAL SYMBOLS
+%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Settings for Mechanical section%<<<1
+\ctikzset{/tikz/circuitikz/tripoles/elmech/height/.initial=.8}
+\ctikzset{/tikz/circuitikz/tripoles/elmech/width/.initial=.6}
+\ctikzset{bipoles/spring/height/.initial=.5}
+\ctikzset{bipoles/spring/width/.initial=.5}
+\ctikzset{bipoles/inerter/height/.initial=.7}
+\ctikzset{bipoles/inerter/width/.initial=.175}
+\ctikzset{bipoles/mass/height/.initial=.55}
+\ctikzset{bipoles/mass/box height/.initial=.4}
+\ctikzset{bipoles/mass/width/.initial=.5}
+
+\ctikzset{bipoles/damper/height/.initial=.35}
+\ctikzset{bipoles/damper/length/.initial=.3}
+\ctikzset{bipoles/damper/width/.initial=.4}
+%%>>>
+
+%% Node shapes Mechanical analog system%<<<
+%% mechanical capacitance - stiffness/spring
+
+\pgfcircdeclarebipolescaled{mechanicals}
+{}
+{\ctikzvalof{bipoles/spring/height}}
+{spring}
+{\ctikzvalof{bipoles/spring/height}}
+{\ctikzvalof{bipoles/spring/width}}{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+
+ \pgfmathsetlength{\pgf@circ@res@step}
+ {(\ctikzvalof{bipoles/spring/width}*\pgf@circ@scaled@Rlen+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth)/16}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}}
+ \pgfsetcornersarced{\pgfpoint{.5\pgf@circ@res@up}{.5\pgf@circ@res@up}}
+ \pgf@circ@res@other = \pgf@circ@res@left
+ \advance\pgf@circ@res@other by \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 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}}
+ \pgfsetbuttcap
+ \pgfsetbeveljoin
+ \pgfusepath{stroke}
+}
+
+%% mechanical capacitance - inerter
+\pgfcircdeclarebipolescaled{mechanicals}
+{}
+{\ctikzvalof{bipoles/inerter/height}}
+{inerter}
+{\ctikzvalof{bipoles/inerter/height}}
+{\ctikzvalof{bipoles/inerter/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+}
+
+
+%% mechanical inductance - mass
+\pgfcircdeclarebipolescaled{mechanicals}
+{}
+{\ctikzvalof{bipoles/mass/box height}}
+{mass}
+{\ctikzvalof{bipoles/mass/height}}
+{\ctikzvalof{bipoles/mass/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgftransformationadjustments
+ \pgfpathrectangle{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ {\pgfpoint{-2\pgf@circ@res@down}{-2\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfsetrectcap
+ \pgfsetmiterjoin
+ \pgfusepath{stroke}
+}
+
+%% mechanical resistor - damper
+\pgfcircdeclarebipolescaled{mechanicals}
+{}
+{\ctikzvalof{bipoles/damper/height}}
+{damper}
+{\ctikzvalof{bipoles/damper/height}}
+{\ctikzvalof{bipoles/damper/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@maybefill
+
+ % line into the damper
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {\pgf@circ@res@zero}}
+ \pgfusepath{stroke}
+
+ % damper box
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+
+ \pgfsetrectcap
+ \pgfsetmiterjoin
+ \pgfusepath{stroke}
+
+ % damper vertical element
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {.8\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {.8\pgf@circ@res@up}}
+ \pgfsetbuttcap
+ \pgfusepath{stroke}
+
+}
+%% mechanical viscoelastic element, suggested by @alex
+%% in https://tex.stackexchange.com/questions/484268/combined-spring-damper-in-circuitikz
+\pgfcircdeclarebipolescaled{mechanicals}
+{} % extra anchors
+{\ctikzvalof{bipoles/damper/height}} % depth (under the path line)
+{viscoe} % name
+{\ctikzvalof{bipoles/damper/height}} % height (above the path line)
+{\ctikzvalof{bipoles/damper/width}} % width
+{ % draw the bipole
+ \pgfpathrectanglecorners{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgf@circ@maybefill
+
+ % spring into the damper
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfsetcornersarced{\pgfpoint{.25\pgf@circ@res@up}{.25\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.75\pgf@circ@res@left}{.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@left}{-.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-.75\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}{.75\pgf@circ@res@up}}
+ \pgfusepath{stroke}
+ \endpgfscope
+ % damper box
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+
+ \pgfsetrectcap
+ \pgfsetmiterjoin
+ \pgfusepath{stroke}
+
+ % damper vertical element
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {.8\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}
+ {.8\pgf@circ@res@up}}
+ \pgfsetbuttcap
+ \pgfusepath{stroke}
+
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% electromechanical device (motor/generator)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\pgfdeclareshape{elmech}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{electromechanicals}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/elmech/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/elmech/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{text}{
+ \pgfpointorigin
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \advance \pgf@y by -.5\ht\pgfnodeparttextbox
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{%
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{top}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{pathstart}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{pathend}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{bottom}{
+ \northwest
+ \pgf@x=0pt
+ \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 }
+ \anchorborder{%
+ \@tempdima=\pgf@x\@tempdimb=\pgf@y
+ \northwest\pgf@circ@res@other=-\pgf@x
+ \pgfpointborderellipse{\pgfqpoint{\@tempdima}{\@tempdimb}}{\pgfqpoint{\pgf@circ@res@other}{\pgf@circ@res@other}}
+ }
+ \anchor{block north west}{\northwest\pgf@x=0.5\pgf@x}
+ \anchor{block south west}{\northwest\pgf@x=0.5\pgf@x\pgf@y=-\pgf@y}
+ \anchor{block north east}{\northwest\pgf@x=-0.5\pgf@x}
+ \anchor{block south east}{\northwest\pgf@x=-0.5\pgf@x\pgf@y=-\pgf@y}
+ \anchor{block up right}{
+ \northwest
+ % remember that pgf@x is negative
+ % center of the block is at 0.5*H+W*cos(30)/2
+ \pgf@y=\dimexpr0.5\pgf@y - 0.433\pgf@x\relax
+ \pgf@x=-0.5\pgf@x
+ }
+ \anchor{block up left}{
+ \northwest
+ % remember that pgf@x is negative
+ % center of the block is at 0.5*H+W*cos(30)/2
+ \pgf@y=\dimexpr0.5\pgf@y - 0.433\pgf@x\relax
+ \pgf@x=0.5\pgf@x
+ }
+ \anchor{block down right}{
+ \northwest
+ % remember that pgf@x is negative
+ % center of the block is at 0.5*H+W*cos(30)/2
+ \pgf@y=\dimexpr0.5\pgf@y - 0.433\pgf@x\relax
+ \pgf@y=-\pgf@y
+ \pgf@x=-0.5\pgf@x
+ }
+ \anchor{block down left}{
+ \northwest
+ % remember that pgf@x is negative
+ % center of the block is at 0.5*H+W*cos(30)/2
+ \pgf@y=\dimexpr0.5\pgf@y - 0.433\pgf@x\relax
+ \pgf@y=-\pgf@y
+ \pgf@x=0.5\pgf@x
+ }
+ \behindbackgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{tripoles/elmech/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up=\ctikzvalof{tripoles/elmech/height}\pgf@circ@scaled@Rlen
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfscope % clip the bar: whole size minus the circle
+ \pgfpathrectanglecorners{\pgfpoint{-.5\pgf@circ@res@step}{-.5\pgf@circ@res@up}}{\pgfpoint{.5\pgf@circ@res@step}{.5\pgf@circ@res@up}}
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgfseteorule
+ \pgfusepath{clip}
+ \pgfpathrectangle{\pgfpoint{-.25\pgf@circ@res@step}{-.5\pgf@circ@res@up}}{\pgfpoint{.5\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfsetfillcolor{\ctikzvalof{color}}
+ \pgfusepath{fill, draw}
+ \endpgfscope
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{white}
+ % ...but override it if the class is defined!
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \pgfusepath{draw, fill}
+ \fi
+ \endpgfscope
+ }
+}
+
+% %>>>
+
+%% Path definitions for Mechanical%<<<
+
+\pgf@circ@definetranspath{elmech}
+\pgfcirc@activate@bipole@simple{l}{spring}
+\pgfcirc@activate@bipole@simple{l}{inerter}
+\pgfcirc@activate@bipole@simple{l}{mass}
+\pgfcirc@activate@bipole@simple{l}{damper}
+\pgfcirc@activate@bipole@simple{l}{viscoe}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Miscellaneous bipoles
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% settings for microphone, loudspeaker, fuses and misc%<<<1
+
+\ctikzset{bipoles/loudspeaker/height/.initial=.8}
+\ctikzset{bipoles/loudspeaker/depth/.initial=.3}
+\ctikzset{bipoles/loudspeaker/width/.initial=.8}
+\ctikzset{bipoles/mic/height/.initial=1.2}
+\ctikzset{bipoles/mic/depth/.initial=.1}
+\ctikzset{bipoles/mic/width/.initial=.8}%
+
+% arresters, fuses, lamps, etc
+
+\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/lamp/height/.initial=.60}
+\ctikzset{bipoles/lamp/width/.initial=.60}
+\ctikzset{bipoles/bulb/height/.initial=.8}
+\ctikzset{bipoles/bulb/width/.initial=.8}
+\ctikzset{bipoles/tline/height/.initial=.3}
+\ctikzset{bipoles/tline/width/.initial=.6}
+\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/openbarrier/gap/.initial=0.5}
+\ctikzset{bipoles/thermocouple/height/.initial=.250}
+\ctikzset{bipoles/thermocouple/height 2/.initial=.60}
+\ctikzset{bipoles/thermocouple/width/.initial=.140}
+\newif\ifpgf@circuit@europeangfsurgearrester
+\ctikzset{gas filled surge arrester choice/.is choice}
+\ctikzset{gas filled surge arrester choice/european/.code= {\pgf@circuit@europeangfsurgearrestertrue}}
+\ctikzset{gas filled surge arrester choice/american/.code= {\pgf@circuit@europeangfsurgearresterfalse}}
+
+\tikzset{american gas filled surge arrester set/.style = {\circuitikzbasekey/gas filled surge arrester choice=american}}
+\tikzset{european gas filled surge arrester set/.style = {\circuitikzbasekey/gas filled surge arrester choice=european}}
+%%>>>
+
+%% Node shapes for miscellaneous symbols %<<<
+%% loudspeaker and microphone
+
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/loudspeaker/depth}}
+{loudspeaker}
+{\ctikzvalof{bipoles/loudspeaker/height}}
+{\ctikzvalof{bipoles/loudspeaker/width}}{
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{.4\pgf@circ@res@up}}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@left}{.4\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.8\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.8\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{.4\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+}
+
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/mic/depth}}
+{mic}
+{\ctikzvalof{bipoles/mic/height}}
+{\ctikzvalof{bipoles/mic/width}}{
+
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{0pt}{.6\pgf@circ@res@up}}{.4\pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.6\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{-.2\pgf@circ@res@up}{0pt}}
+ % 0.25358 is 0.6-0.4*cos(30)
+ \pgfpathlineto{\pgfpoint{-.2\pgf@circ@res@up}{.25358\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@up}{.25358\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.2\pgf@circ@res@up}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+%% european gas filled surge arrester
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\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}}
+{
+
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgf@circ@draworfill
+
+ \pgfscope
+ \pgfsetarrowsend{latexslim}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/european gas filled surge arrester/inside}\pgf@circ@res@left}{0pt}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfusepath{draw}
+
+ \endpgfscope
+}
+
+%% american gas filled surge arrester
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\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}}{
+
+ \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}
+
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpointorigin}{.9\pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfsetarrowsend{latex}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{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{\ctikzvalof{bipoles/american gas filled surge arrester/inside}\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+ \endpgfscope{}
+
+ \pgfcircle{\pgfpoint{\ctikzvalof{bipoles/american gas filled surge arrester/dot x}\pgf@circ@res@left}{\ctikzvalof{bipoles/american gas filled surge arrester/dot y}\pgf@circ@res@down}}{\ctikzvalof{bipoles/american gas filled surge arrester/size}\pgf@circ@res@down}
+ \pgfusepath{fill}
+}
+
+%% thermocouple
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\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}}
+ \pgf@circ@setlinewidth{bipoles}{\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}
+}
+
+%% fuse
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/fuse/height}}
+{fuse}
+{\ctikzvalof{bipoles/fuse/height}}
+{\ctikzvalof{bipoles/fuse/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}}
+ \pgfusepath{draw}
+
+}
+
+%% asymmetric fuse
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/afuse/height}}
+{afuse}
+{\ctikzvalof{bipoles/afuse/height}}
+{\ctikzvalof{bipoles/afuse/width}}
+{
+ \pgfscope
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}}
+ \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}
+}
+
+%% SQUID added by Cor Molenaar 5 March 2010
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/squid/height}}
+{squid}
+{\ctikzvalof{bipoles/squid/height}}
+{\ctikzvalof{bipoles/squid/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/barrier/height}}
+{barrier}
+{\ctikzvalof{bipoles/barrier/height}}
+{\ctikzvalof{bipoles/barrier/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\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}
+}
+
+%
+% open version of the barrier symbol
+% suggested by Radványi Patrik Tamás <patrikradvanyi@gmail.com>
+%
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/barrier/height}}
+{openbarrier}
+{\ctikzvalof{bipoles/barrier/height}}
+{\ctikzvalof{bipoles/barrier/width}}
+{
+ % this is set with normal wire linewidth
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/openbarrier/gap}*\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/openbarrier/gap}*\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+
+ % do the cross part
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \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}
+}
+%% Lamp
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/lamp/height}}
+{lamp}
+{\ctikzvalof{bipoles/lamp/height}}
+{\ctikzvalof{bipoles/lamp/width}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \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}
+}
+
+%% bulb
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/bulb/height}}
+{bulb}
+{\ctikzvalof{bipoles/bulb/height}}
+{\ctikzvalof{bipoles/bulb/width}}
+{%
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{0.8\pgf@circ@res@up}}{\pgfpoint{0.8\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.4\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpatharc{0}{-180}{0.4*\pgf@circ@res@left}
+ \pgfsetbeveljoin
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+}% %>>>
+
+%% Path definitions for Miscellaneous%<<<
+
+\pgfcirc@activate@bipole@simple{l}{lamp}
+\pgfcirc@activate@bipole@simple{l}{bulb}
+\pgfcirc@activate@bipole@simple{l}{squid}
+\pgfcirc@activate@bipole@simple{l}{barrier}
+\pgfcirc@activate@bipole@simple{l}{openbarrier}
+\pgfcirc@activate@bipole@simple{l}{thermocouple}
+\pgfcirc@activate@bipole@simple{l}{fuse}
+\pgfcirc@activate@bipole{l}{afuse}{afuse}{asymmetric fuse}
+\pgfcirc@style@to@style{asymmetric fuse}{afuse}
+\def\pgf@circ@gfsurgearrester@path#1{\ifpgf@circuit@europeangfsurgearrester\pgf@circ@europeangfsurgearrester@path{#1}\else\pgf@circ@americangfsurgearrester@path{#1}\fi}
+\pgfcirc@activate@bipole{l}{europeangfsurgearrester}{european gas filled surge arrester}{european gas filled surge arrester}
+\pgfcirc@activate@bipole{l}{americangfsurgearrester}{american gas filled surge arrester}{american gas filled surge arrester}
+\pgfcirc@path@to@style{l}{gfsurgearrester}{gas filled surge arrester}{}
+\pgfcirc@path@to@style{l}{gfsurgearrester}{gf surge arrester}{}
+\pgfcirc@activate@bipole@simple{l}{mic}
+\pgfcirc@activate@bipole@simple{l}{loudspeaker}
+% %>>>
+
+% end of pgfcircbipoles.tex
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircbipoles
+%%%%%%%%%%% Springe nach tex/pgfcirctripoles
+%%%---------- open: tex/pgfcirctripoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Tripoles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Logic Ports
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Settings for Logic ports%<<<1
+%% beware that the third option is in IEEE ports in pgfcircmultipoles.tex
+
+% switches for logic gates
+%
+\pgfkeys{/tikz/number inputs/.initial=0}
+\pgfkeys{/tikz/number inputs/.default=0}
+
+\newif\ifpgf@circuit@europeanlogicport
+\ctikzset{logic ports/.is choice}
+\ctikzset{logic ports/european/.code= {\pgf@circuit@europeanlogicporttrue
+ \tikzset{and port/.style={shape=european and port}}%
+ \tikzset{or port/.style={shape=european or port}}%
+ \tikzset{xor port/.style={shape=european xor port}}%
+ \tikzset{buffer port/.style={shape=european buffer port}}%
+ \tikzset{not port/.style={shape=european not port}}%
+ \tikzset{nand port/.style={shape=european nand port}}%
+ \tikzset{nor port/.style={shape=european nor port}}%
+ \tikzset{xnor port/.style={shape=european xnor port}}%
+ % there is no Schmitt ports in european style (yet)
+ \tikzset{schmitt port/.style={shape=schmitt}}%
+ \tikzset{invschmitt port/.style={shape=invschmitt}}%
+}}
+\ctikzset{logic ports/american/.code= {\pgf@circuit@europeanlogicportfalse
+ \tikzset{and port/.style={shape=american and port}}%
+ \tikzset{or port/.style={shape=american or port}}%
+ \tikzset{xor port/.style={shape=american xor port}}%
+ \tikzset{buffer port/.style={shape=american buffer port}}%
+ \tikzset{not port/.style={shape=american not port}}%
+ \tikzset{nand port/.style={shape=american nand port}}%
+ \tikzset{nor port/.style={shape=american nor port}}%
+ \tikzset{xnor port/.style={shape=american xnor port}}%
+ \tikzset{schmitt port/.style={shape=schmitt}}%
+ \tikzset{invschmitt port/.style={shape=invschmitt}}%
+}}
+
+\ctikzset{logic ports origin/.is choice}
+\ctikzset{logic ports origin/legacy/.code={
+ \ctikzset{tripoles/american and port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american nand port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american nor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american or port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american xor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/american xnor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european and port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european nand port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european or port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european nor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european xor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european xnor port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european buffer port/origin/.initial=0.8}%
+ \ctikzset{tripoles/european not port/origin/.initial=0.8}%
+ }%
+}
+\ctikzset{logic ports origin/center/.code={%
+ \ctikzset{tripoles/american and port/origin/.initial=0}%
+ \ctikzset{tripoles/american nand port/origin/.initial=0}%
+ \ctikzset{tripoles/american nor port/origin/.initial=0}%
+ \ctikzset{tripoles/american or port/origin/.initial=0}%
+ \ctikzset{tripoles/american xor port/origin/.initial=0}%
+ \ctikzset{tripoles/american xnor port/origin/.initial=0}%
+ \ctikzset{tripoles/european and port/origin/.initial=0}%
+ \ctikzset{tripoles/european nand port/origin/.initial=0}%
+ \ctikzset{tripoles/european or port/origin/.initial=0}%
+ \ctikzset{tripoles/european nor port/origin/.initial=0}%
+ \ctikzset{tripoles/european xor port/origin/.initial=0}%
+ \ctikzset{tripoles/european xnor port/origin/.initial=0}%
+ \ctikzset{tripoles/european buffer port/origin/.initial=0}%
+ \ctikzset{tripoles/european not port/origin/.initial=0}%
+ }%
+}
+
+\newif\ifpgfcirc@roundy@or@shapes\pgfcirc@roundy@or@shapesfalse
+\ctikzset{american or shape/.is choice}
+\ctikzset{american or shape/roundy/.code={\pgfcirc@roundy@or@shapestrue}}
+\ctikzset{american or shape/pointy/.code={\pgfcirc@roundy@or@shapesfalse}}
+
+\newif\ifpgfcirc@draw@input@leads\pgfcirc@draw@input@leadstrue
+\ctikzset{logic ports draw input leads/.is choice}
+\ctikzset{logic ports draw input leads/true/.code={\pgfcirc@draw@input@leadstrue}}
+\ctikzset{logic ports draw input leads/false/.code={\pgfcirc@draw@input@leadsfalse}}
+\tikzset{input leads/.code={\pgfcirc@draw@input@leadstrue}}
+\tikzset{no input leads/.code={\pgfcirc@draw@input@leadsfalse}}
+
+\newif\ifpgfcirc@draw@output@leads\pgfcirc@draw@output@leadstrue
+\ctikzset{logic ports draw output leads/.is choice}
+\ctikzset{logic ports draw output leads/true/.code={\pgfcirc@draw@output@leadstrue}}
+\ctikzset{logic ports draw output leads/false/.code={\pgfcirc@draw@output@leadsfalse}}
+\tikzset{output leads/.code={\pgfcirc@draw@output@leadstrue}}
+\tikzset{no output leads/.code={\pgfcirc@draw@output@leadsfalse}}
+
+\ctikzset{logic ports draw leads/.is choice}
+\ctikzset{logic ports draw leads/true/.code={\pgfcirc@draw@output@leadstrue\pgfcirc@draw@input@leadstrue}}
+\ctikzset{logic ports draw leads/false/.code={\pgfcirc@draw@output@leadsfalse\pgfcirc@draw@input@leadsfalse}}
+\tikzset{all leads/.code={\pgfcirc@draw@output@leadstrue\pgfcirc@draw@input@leadstrue}}
+\tikzset{no leads/.code={\pgfcirc@draw@output@leadsfalse\pgfcirc@draw@input@leadsfalse}}
+
+% adding a different style of xnor port
+% see https://github.com/circuitikz/circuitikz/issues/467
+\ctikzset{european xnor style/.is choice}
+\ctikzset{european xnor style/default/.code={%
+ \pgfcircdeclareeurologicport{xnor}{$=1$}{\pgf@circ@res@count}{not}}%
+}
+\ctikzset{european xnor style/direct/.code={%
+ \pgfcircdeclareeurologicport{xnor}{$=$}{\pgf@circ@res@count}{}}%
+}
+
+
+% old, legacy keys that should be killed over
+\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{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 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/circle width/.initial=.15}
+\ctikzset{tripoles/american and port/origin/.initial=0.8}
+\ctikzset{tripoles/american and port/inputs/.initial=2}
+% variable number of inputs
+\ctikzset{tripoles/american nand port/origin/.initial=0.8}
+\ctikzset{tripoles/american nand port/inputs/.initial=2}
+\ctikzset{tripoles/american nor port/origin/.initial=0.8}
+\ctikzset{tripoles/american nor port/inputs/.initial=2}
+\ctikzset{tripoles/american nor port/angle/.initial=70}
+\ctikzset{tripoles/american nor port/inner/.initial=0.3}
+\ctikzset{tripoles/american or port/origin/.initial=0.8}
+\ctikzset{tripoles/american or port/inputs/.initial=2}
+\ctikzset{tripoles/american or port/angle/.initial=70}
+\ctikzset{tripoles/american or port/inner/.initial=0.3}
+\ctikzset{tripoles/american xor port/origin/.initial=0.8}
+\ctikzset{tripoles/american xor port/inputs/.initial=2}
+\ctikzset{tripoles/american xor port/angle/.initial=70}
+\ctikzset{tripoles/american xor port/inner/.initial=0.3}
+\ctikzset{tripoles/american xnor port/origin/.initial=0.8}
+\ctikzset{tripoles/american xnor port/inputs/.initial=2}
+\ctikzset{tripoles/american xnor port/angle/.initial=70}
+\ctikzset{tripoles/american xnor port/inner/.initial=0.3}
+
+\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 buffer port/width/.initial=1.4}
+\ctikzset{tripoles/european buffer port/not height/.initial=.3}
+\ctikzset{tripoles/european buffer port/not width/.initial=.8}
+\ctikzset{tripoles/european buffer port/height/.initial=.65}
+\ctikzset{tripoles/european buffer port/reserved/.initial=.6}
+\ctikzset{tripoles/european buffer port/input height/.initial=0}
+\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}
+% variable number of inputs
+\ctikzset{tripoles/european and port/origin/.initial=0.8}
+\ctikzset{tripoles/european and port/inputs/.initial=2}
+\ctikzset{tripoles/european nand port/origin/.initial=0.8}
+\ctikzset{tripoles/european nand port/inputs/.initial=2}
+\ctikzset{tripoles/european or port/origin/.initial=0.8}
+\ctikzset{tripoles/european or port/inputs/.initial=2}
+\ctikzset{tripoles/european nor port/origin/.initial=0.8}
+\ctikzset{tripoles/european nor port/inputs/.initial=2}
+\ctikzset{tripoles/european xor port/origin/.initial=0.8}
+\ctikzset{tripoles/european xor port/inputs/.initial=2}
+\ctikzset{tripoles/european xnor port/origin/.initial=0.8}
+\ctikzset{tripoles/european xnor port/inputs/.initial=2}
+\ctikzset{tripoles/european buffer port/origin/.initial=0.8}
+\ctikzset{tripoles/european buffer port/inputs/.initial=1}%
+\ctikzset{tripoles/european not port/origin/.initial=0.8}
+\ctikzset{tripoles/european not port/inputs/.initial=1}%
+%%% parameters that are not used anymore after multi-input
+%%% gates --- left for compatibility of source code.
+\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/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}
+%%>>>
+
+%% Node shapes for Logic ports%<<<
+%%
+%% Code from John Kormylo at tex.stackexchange.com
+%% See https://tex.stackexchange.com/questions/372993/is-it-possible-to-implement-multiple-input-logic-ports-with-circuitikz
+%% Integration and fixes from Romano Giannetti and TheTeXnician <38565529+TheTeXnician@users.noreply.github.com>
+%%
+
+\newcount\pgf@circ@res@count% reserve global register
+
+\def\pgf@circ@logicport@input#1% #1 = \pgfmathcounter
+{%
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+}%
+
+% #1 = \pgfmathcounter #2=type #3 specificic port
+% type is 1 for and,nand; 2 for or,nor; 3 for xor,xnor, 4 for european.
+\def\pgf@circ@logicport@baseinput#1#2#3%
+{%
+ % and and nand
+ \ifnum #2=1\relax
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \pgf@x=\ctikzvalof{tripoles/american #3 port/port width}\pgf@circ@res@left
+ \fi
+ % or and nor
+ \ifnum #2=2\relax
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american #3 port/angle}}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american #3 port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up /sin(\pgf@circ@math@angle)}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american #3 port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+ \pgf@circ@res@temp=\pgf@y
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp/\pgf@circ@math@yradius)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgf@x=\pgf@circ@res@other
+ \fi
+ % xor and xnor
+ \ifnum #2=3\relax
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfkeysgetvalue{/tikz/circuitikz/tripoles/american #3 port/angle}{\pgf@circ@math@angle}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american #3 port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up / sin(\pgf@circ@math@angle))}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american #3 port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/american #3 port/distance}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@distance}{\pgf@circ@res@temp}
+ % this compensates for the effect of the line width on the gap between the arcs
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradiusA}{\pgf@circ@math@yradius -2\pgflinewidth}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradiusA}{\pgf@circ@math@xradius -2\pgflinewidth}%
+
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \pgf@circ@res@temp=\pgf@y
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp / \pgf@circ@math@yradiusA)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradiusA*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \advance\pgf@circ@res@other by -\pgf@circ@math@distance
+ \pgf@x=\pgf@circ@res@other
+ \fi
+ % european
+ \ifnum #2=4\relax
+ \pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@other}{\left}%
+ \step
+ \pgf@circ@res@step=\dimexpr 2\pgf@y -2\pgf@circ@res@up\relax
+ \advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \pgf@x=\pgf@circ@res@other
+ \fi
+}%
+
+%%% american
+\long\def\pgfcircdeclarelogicport#1#2#3{%
+ \pgfdeclareshape{american #1 port}%
+ {%
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro\resize{% automatic
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@up = \ctikzvalof{tripoles/american #1 port/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgf@circ@res@down = -\pgf@circ@res@up
+ \pgf@circ@res@right = \ctikzvalof{tripoles/american #1 port/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right = .5\pgf@circ@res@right
+ \pgf@circ@res@left = -\pgf@circ@res@right
+ }%
+ \savedmacro\inputs{% get number of inputs
+ \pgf@circ@res@count=\pgfkeysvalueof{/tikz/number inputs}\relax%
+ \ifnum\pgf@circ@res@count=0
+ \pgf@circ@res@count=\ctikzvalof{tripoles/american #1 port/inputs}\relax%
+ \fi
+ \ifnum\pgf@circ@res@count<2 \pgf@circ@res@count=2\fi
+ \ifnum\pgf@circ@res@count>16 \pgf@circ@res@count=16\fi
+ \def\inputs{\the\pgf@circ@res@count}%
+ }%
+ \savedanchor\step{% 1/2 gap at edges
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step = \ctikzvalof{tripoles/american #1 port/height}\pgf@circ@scaled@Rlen
+ \divide\pgf@circ@res@step by \pgf@circ@res@count
+ \pgfpoint{\pgf@circ@res@left}{\dimexpr\pgf@circ@res@up+0.5\pgf@circ@res@step}%
+ }%
+ \savedanchor\northeast{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \savedanchor\southwest{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \savedanchor\left{\pgfpoint{\ctikzvalof{tripoles/american #1 port/port width}\pgf@circ@res@left}{0pt}}
+ \savedanchor\right{\pgfpoint{\ctikzvalof{tripoles/american #1 port/port width}\pgf@circ@res@right}{0pt}}
+ \savedanchor\origin{\pgfpoint{\ctikzvalof{tripoles/american #1 port/origin}\pgf@circ@res@right}{0pt}}
+
+ \anchor{center}{\origin}% for backwards compatibility
+ \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}}
+
+ % create input anchors
+ \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@american #1 port\endcsname{%
+ \pgfmathloop%
+ \ifnum\pgfmathcounter>\pgf@circ@res@count%
+ \else%
+ %\pgfutil@ifundefined{pgf@anchor@american #1 port@in \pgfmathcounter}{%
+ \expandafter\xdef\csname pgf@anchor@american #1 port@in \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@logicport@input{\pgfmathcounter}% defined above
+ }%
+ \expandafter\xdef\csname pgf@anchor@american #1 port@bin \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@logicport@baseinput{\pgfmathcounter}{#2}{#1}% defined above
+ }%
+ %}{}%
+ \repeatpgfmathloop%
+ }
+
+ \anchor{out}{\northeast\pgf@y=0pt}
+ \anchor{bout}{\right\pgf@y=0pt}
+
+
+ \anchor{left}{\left}% edges of component minus leads
+ \anchor{right}{\right}
+
+ \anchor{north east}{\northeast}% see \Compass macro
+ \anchor{south west}{\southwest}
+ \anchor{north}{\pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfpoint{0cm}{\pgf@circ@res@up}}
+ \anchor{north west}{\pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \anchor{west}{\pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfpoint{\pgf@circ@res@left}{0cm}}
+ \anchor{south}{\pgfextracty{\pgf@circ@res@down}{\southwest}%
+ \pgfpoint{0cm}{\pgf@circ@res@down}}
+ \anchor{south east}{\pgfextracty{\pgf@circ@res@down}{\southwest}%
+ \pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \anchor{east}{\pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfpoint{\pgf@circ@res@right}{0cm}}
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ #3
+ }
+}
+}
+%%% american and %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{and}{1}{
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/american and port/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@temp}}
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+ % output lead
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/american and port/port width}\pgf@circ@res@right} {0pt}}
+ \pgfusepath{draw}
+ \fi
+
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american and port/port width}\pgf@circ@res@left
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpatharc{-90}{90}{-2\pgf@circ@res@other and \pgf@circ@res@up}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ }
+%%% american nand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \pgfcircdeclarelogicport{nand}{1}{
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/american nand port/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@temp}}
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/american nand port/port width}\pgf@circ@res@right} {0pt}}
+ \pgfusepath{draw}
+ \fi
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgf@circ@res@step = \ctikzvalof{tripoles/american nand port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@other = \ctikzvalof{tripoles/american nand port/port width}\pgf@circ@res@right
+ \pgf@circ@res@temp = \dimexpr 2\pgf@circ@res@other - \pgf@circ@res@step\relax
+
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}}
+ \pgfpatharc{-90}{90}{\pgf@circ@res@temp and \pgf@circ@res@up}
+ \pgfpathclose
+
+ \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}}
+
+ \pgf@circ@draworfill
+}
+%%% american nor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{nor}{2}{
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american nor port/angle}}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american nor port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up /sin(\pgf@circ@math@angle)}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american nor port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp/\pgf@circ@math@yradius)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american nor port/port width}\pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american nor port/angle}}%
+ \pgf@circ@res@step = \ctikzvalof{tripoles/american nor port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@temp = \dimexpr 2\pgf@circ@res@other - \pgf@circ@res@step\relax
+ \advance\pgf@circ@res@other by -\pgf@circ@res@step
+
+ % main shape
+ \ifpgfcirc@roundy@or@shapes
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}% for symmetry
+ \pgfpatharc{0}{90}{\pgf@circ@res@temp and \pgf@circ@res@up}%
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpatharc{-90}{0}{\pgf@circ@res@temp and \pgf@circ@res@up}%
+ \pgfpathclose
+ \else
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@up}}{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \fi
+
+ % not dot
+ \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}}
+
+ \pgf@circ@draworfill
+}
+%%% american or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{or}{2}{
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american or port/angle}}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american or port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up /sin(\pgf@circ@math@angle)}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american or port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp/\pgf@circ@math@yradius)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american or port/port width}\pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american or port/angle}}%
+
+ % main shape
+ \ifpgfcirc@roundy@or@shapes
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}% for symmetry
+ \pgfpatharc{0}{90}{2\pgf@circ@res@other and \pgf@circ@res@up}%
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpatharc{-90}{0}{2\pgf@circ@res@other and \pgf@circ@res@up}%
+ \pgfpathclose
+ \else
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@up}}{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \fi
+
+ \pgf@circ@draworfill
+}
+%%% american xor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{xor}{3}{
+ \pgfkeysgetvalue{/tikz/circuitikz/tripoles/american xor port/angle}{\pgf@circ@math@angle}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xor port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up / sin(\pgf@circ@math@angle))}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xor port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/american xor port/distance}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@distance}{\pgf@circ@res@temp}
+ % this compensates for the effect of the line width on the gap between the arcs
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradiusA}{\pgf@circ@math@yradius -2\pgflinewidth}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradiusA}{\pgf@circ@math@xradius -2\pgflinewidth}%
+
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp / \pgf@circ@math@yradiusA)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradiusA*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \advance\pgf@circ@res@other by -\pgf@circ@math@distance
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xor port/port width}\pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american xor port/angle}}%
+
+ % main shape
+ \ifpgfcirc@roundy@or@shapes
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}% for symmetry
+ \pgfpatharc{0}{90}{2\pgf@circ@res@other and \pgf@circ@res@up}%
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpatharc{-90}{0}{2\pgf@circ@res@other and \pgf@circ@res@up}%
+ \pgfpathclose
+ \else
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@up}}{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \fi
+ \pgf@circ@draworfill
+
+ \pgfmathsetlength{\pgf@circ@res@temp}{(\pgf@circ@math@yradiusA)*sin(\pgf@circ@math@angle)}%
+
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@other-\pgf@circ@math@distance}{\pgf@circ@res@temp}}% first arc
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradiusA and \pgf@circ@math@yradiusA}%
+
+ \pgfusepath{draw}
+}
+%%% american xnor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfcircdeclarelogicport{xnor}{3}{
+ \pgfkeysgetvalue{/tikz/circuitikz/tripoles/american xnor port/angle}{\pgf@circ@math@angle}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xnor port/inner}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradius}{\pgf@circ@res@other /(1 - cos(\pgf@circ@math@angle)}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradius}{\pgf@circ@res@up / sin(\pgf@circ@math@angle))}%
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xnor port/port width}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@xorigin}{\pgf@circ@res@other + \pgf@circ@math@xradius*cos(\pgf@circ@math@angle)}%
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/american xor port/distance}\pgf@circ@res@right
+ \pgfmathsetlengthmacro{\pgf@circ@math@distance}{\pgf@circ@res@temp}
+ % this compensates for the effect of the line width on the gap between the arcs
+ \pgfmathsetlengthmacro{\pgf@circ@math@yradiusA}{\pgf@circ@math@yradius -2\pgflinewidth}%
+ \pgfmathsetlengthmacro{\pgf@circ@math@xradiusA}{\pgf@circ@math@xradius -2\pgflinewidth}%
+
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ \pgf@circ@res@count = \inputs\relax
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfmathsetmacro{\pgf@circ@math@angle}{asin(\pgf@circ@res@temp / \pgf@circ@math@yradiusA)}%
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@math@xradiusA*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \advance\pgf@circ@res@other by -\pgf@circ@math@distance
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xnor port/port width}\pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \edef\pgf@circ@math@angle{\ctikzvalof{tripoles/american xnor port/angle}}%
+ \pgf@circ@res@step = \ctikzvalof{tripoles/american xnor port/circle width}\pgf@circ@res@right
+ \pgf@circ@res@temp = \dimexpr 2\pgf@circ@res@other - \pgf@circ@res@step\relax
+ \advance\pgf@circ@res@other by -\pgf@circ@res@step
+
+ % main shape
+ \ifpgfcirc@roundy@or@shapes
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{0pt}}% for symmetry
+ \pgfpatharc{0}{90}{\pgf@circ@res@temp and \pgf@circ@res@up}%
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpatharc{-90}{0}{\pgf@circ@res@temp and \pgf@circ@res@up}%
+ \pgfpathclose
+ \else
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@math@xradius*cos(\pgf@circ@math@angle)-\pgf@circ@math@xorigin}%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradius and \pgf@circ@math@yradius}%
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@down}}{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@down}}{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfpathcurveto{\pgfpoint{0.3\pgf@circ@res@right}{0.5\pgf@circ@res@up}}{\pgfpoint{0.3\pgf@circ@res@right}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@up}}
+ \pgfpathclose
+ \fi
+
+ \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}}
+ \pgf@circ@draworfill
+
+ \pgf@circ@res@other=\ctikzvalof{tripoles/american xnor port/port width}\pgf@circ@res@left
+ \pgfmathsetlength{\pgf@circ@res@temp}{(\pgf@circ@math@yradiusA)*sin(\pgf@circ@math@angle)}%
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other-\pgf@circ@math@distance}{\pgf@circ@res@temp}}% first arc
+ \pgfpatharc{\pgf@circ@math@angle}{-\pgf@circ@math@angle}{\pgf@circ@math@xradiusA and \pgf@circ@math@yradiusA}%
+
+ \pgfusepath{draw}
+}
+
+%%% Original one-input ports
+
+\pgfdeclareshape{american not port}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/not port/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/not port/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{in 1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@x=0.7\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@x=0.7\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{bin 1}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \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
+ }
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ \anchor{text}{%
+ % centered and a bit to the left (it's a triangle)!
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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 = \ctikzvalof{bipoles/not port/circle width}\pgf@circ@res@right
+
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgf@circ@draworfill
+ \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}}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+ \fi
+
+ \pgfusepath{draw}
+ }
+}
+
+\pgfdeclareshape{american buffer port}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/not port/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/not port/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{in 1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@x=0.7\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@x=0.7\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{bin 1}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \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
+ }
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ \anchor{text}{%
+ % centered and a bit to the left (it's a triangle)!
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+ \fi
+
+ \pgfusepath{draw}
+ }
+}
+\pgfdeclareshape{invschmitt}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/not port/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/not port/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{in 1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bin 1}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \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
+ }
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ \anchor{text}{%
+ % centered and a bit to the left (it's a triangle)!
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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 = \ctikzvalof{bipoles/not port/circle width}\pgf@circ@res@right
+
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \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}}
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+ \fi
+ \pgfusepath{draw}
+ %draw inner shape
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.05\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ }
+}
+
+\pgfdeclareshape{schmitt}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/not port/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/not port/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{in 1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bin 1}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-.7\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \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
+ }
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ \anchor{text}{%
+ % centered and a bit to the left (it's a triangle)!
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@left}{0pt}}
+ \fi
+
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right-\pgf@circ@res@other}{0pt}}
+ \fi
+ \pgfusepath{draw}
+ %draw inner shape
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+
+ \pgfpathmoveto{\pgfpoint{.6\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{.05\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{.4\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.3\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ }
+}
+
+
+%%% start european logic ports, from John Kormylo
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+
+% #1 - name
+% #2 - text inside
+% #3 - number of inputs
+% #4 = is it a not?
+%
+% option to add a circle for not-output, see
+% https://github.com/circuitikz/circuitikz/issues/385
+%
+\newif\ifpgf@circ@european@port@circle\pgf@circ@european@port@circlefalse
+\newif\ifpgf@circ@european@port@circle@ieee\pgf@circ@european@port@circle@ieeefalse
+\ctikzset{tripoles/european not shape/.initial=ocirc}
+\ctikzset{tripoles/european not symbol/.is choice}
+\ctikzset{tripoles/european not symbol/triangle/.code={\pgf@circ@european@port@circlefalse}}
+\ctikzset{tripoles/european not symbol/circle/.code={%
+\pgf@circ@european@port@circletrue\pgf@circ@european@port@circle@ieeefalse\ctikzset{tripoles/european not shape=ocirc}}}
+\ctikzset{tripoles/european not symbol/ieee circle/.code={%
+\pgf@circ@european@port@circletrue\pgf@circ@european@port@circle@ieeetrue\ctikzset{tripoles/european not shape=notcirc}}}
+
+\long\def\pgfcircdeclareeurologicport#1#2#3#4{
+ \pgfdeclareshape{european #1 port}
+ {
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \saveddimen{\boutshift}{%
+ \edef\pgf@temp{not}
+ \edef\pgf@circ@temp{#4}
+ \ifx\pgf@temp\pgf@circ@temp % is a not
+ \ifpgf@circ@european@port@circle
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \edef\pgf@temp{ocirc}
+ \edef\pgf@circ@temp{\ctikzvalof{tripoles/european not shape}}
+ \ifx\pgf@temp\pgf@circ@temp % it's ocirc
+ \pgfmathsetlength{\pgf@x}{2*\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \else % it's ieee not circ
+ \pgf@circ@notradius % defined together with ieeestd ports
+ \pgf@x=2\pgf@circ@res@temp
+ \fi
+ \else
+ \pgf@x=0pt
+ \fi
+ \else
+ \pgf@x=0pt
+ \fi
+ }
+ \savedmacro\resize{% automatic
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@up = \ctikzvalof{tripoles/european #1 port/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up = .5\pgf@circ@res@up
+ \pgf@circ@res@down = -\pgf@circ@res@up
+ \pgf@circ@res@right = \ctikzvalof{tripoles/european #1 port/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right = .5\pgf@circ@res@right
+ \pgf@circ@res@left = -\pgf@circ@res@right
+ }%
+ \savedmacro\inputs{% get number of inputs
+ \pgf@circ@res@count=\pgfkeysvalueof{/tikz/number inputs}\relax%
+ \ifnum\pgf@circ@res@count=0
+ \pgf@circ@res@count=\ctikzvalof{tripoles/european #1 port/inputs}\relax%
+ \fi
+ \ifnum\pgf@circ@res@count<2 \pgf@circ@res@count=2\fi
+ \ifnum\pgf@circ@res@count>16 \pgf@circ@res@count=16\fi
+ \def\inputs{\the\pgf@circ@res@count}%
+ }%
+ \savedanchor\step{% 1/2 gap at edges
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@step = \ctikzvalof{tripoles/european #1 port/height}\pgf@circ@scaled@Rlen
+ \divide\pgf@circ@res@step by #3
+ \pgfpoint{\pgf@circ@res@left}{\dimexpr\pgf@circ@res@up+0.5\pgf@circ@res@step}%
+ }%
+ \savedanchor\northeast{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}%
+ \savedanchor\southwest{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}%
+ \savedanchor\left{\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@left}{0pt}}%
+ \savedanchor\right{\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}{0pt}}%
+ \savedanchor\origin{\pgfpoint{\ctikzvalof{tripoles/european #1 port/origin}\pgf@circ@res@right}{0pt}}%
+
+ \anchor{center}{\origin}% for backwards compatibility
+ % the text anchor overlaps the logic symbol
+ \anchor{text}{\pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}}%
+ % create input anchors
+ \ifnum#3=1\relax
+ \anchor{in}{\southwest\pgfpoint{\pgf@x}{0pt}}% or \step
+ \anchor{in 1}{\southwest\pgfpoint{\pgf@x}{0pt}}% or \step
+ \anchor{bin}{\left\pgfpoint{\pgf@x}{0pt}}% or \step
+ \anchor{bin 1}{\left\pgfpoint{\pgf@x}{0pt}}% or \step
+ \else
+ \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@european #1 port\endcsname{%
+ \pgfmathloop%
+ \ifnum\pgfmathcounter>#3%
+ \else%
+ %\pgfutil@ifundefined{pgf@anchor@european #1 port@in \pgfmathcounter}{% redundant
+ \expandafter\xdef\csname pgf@anchor@european #1 port@in \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@logicport@input{\pgfmathcounter}% defined above
+ }%
+ \expandafter\xdef\csname pgf@anchor@european #1 port@bin \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@logicport@baseinput{\pgfmathcounter}{4}{#1}% defined above
+ }%
+ %}{}%
+ \repeatpgfmathloop%
+ }
+ \fi
+ \anchor{out}{\northeast\pgf@y=0pt}
+ \anchor{bout}{\right\advance\pgf@x by \boutshift\pgf@y=0pt}
+
+ \anchor{left}{\left}% edges of component minus leads
+ \anchor{right}{\right\advance\pgf@x by \boutshift\pgf@y=0pt}
+
+ \anchor{north east}{\northeast}% see \Compass macro
+ \anchor{south west}{\southwest}
+ \anchor{north}{\pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfpoint{0cm}{\pgf@circ@res@up}}
+ \anchor{north west}{\pgfextracty{\pgf@circ@res@up}{\northeast}%
+ \pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \anchor{west}{\pgfextractx{\pgf@circ@res@left}{\southwest}%
+ \pgfpoint{\pgf@circ@res@left}{0cm}}
+ \anchor{south}{\pgfextracty{\pgf@circ@res@down}{\southwest}%
+ \pgfpoint{0cm}{\pgf@circ@res@down}}
+ \anchor{south east}{\pgfextracty{\pgf@circ@res@down}{\southwest}%
+ \pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \anchor{east}{\pgfextractx{\pgf@circ@res@right}{\northeast}%
+ \pgfpoint{\pgf@circ@res@right}{0cm}}
+
+ \anchorborder{% this is used when the node is used as a path element
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\northeast}
+ \pgfextractx{\pgf@circ@res@right}{\northeast}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfstartlinewidth=\pgflinewidth
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathrectanglecorners
+ {\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \ifpgfcirc@draw@input@leads
+ %input leads
+ \ifnum#3=1\relax
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}%
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@left}{0pt}}%
+ \else
+ \pgfextracty{\pgf@circ@res@temp}{\step}%
+ \pgf@circ@res@step = \dimexpr 2\pgf@circ@res@temp -2\pgf@circ@res@up\relax
+ %\pgf@circ@res@count = #3\relax% redundant
+ \loop\ifnum\pgf@circ@res@count>0
+ \advance\pgf@circ@res@temp by -\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@left}
+ {\pgf@circ@res@temp}}
+ \advance\pgf@circ@res@count by -1
+ \repeat
+ \fi
+ \pgfusepath{draw}
+ \fi
+ %
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{ \pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ %
+ \edef\pgf@temp{not}
+ \edef\pgf@circ@temp{#4}
+ \ifx\pgf@temp\pgf@circ@temp % is a not
+ \ifpgf@circ@european@port@circle
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}
+ % reset linewidth for IEEE ports, otherwise they will multiply...
+ \ifpgf@circ@european@port@circle@ieee\pgfsetlinewidth{\pgfstartlinewidth}\fi
+ \pgfnode{\ctikzvalof{tripoles/european not shape}}{west}{}{NOT}{\pgfusepath{stroke}}
+ \endpgfscope
+ \else
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/european #1 port/not width}\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/european #1 port/reserved}\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/european #1 port/not height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ %
+ \pgfpathmoveto{\pgfpointorigin}
+ \pgftext{#2}
+ }
+ }
+}
+\pgfcircdeclareeurologicport{and}{\&}{\pgf@circ@res@count}{}
+\pgfcircdeclareeurologicport{or}{$\ge 1$}{\pgf@circ@res@count}{}
+\pgfcircdeclareeurologicport{xor}{$=1$}{\pgf@circ@res@count}{}
+\pgfcircdeclareeurologicport{not}{$1$}{1}{not}
+\pgfcircdeclareeurologicport{buffer}{$1$}{1}{}
+\pgfcircdeclareeurologicport{nand}{\&}{\pgf@circ@res@count}{not}
+\pgfcircdeclareeurologicport{nor}{$\ge 1$}{\pgf@circ@res@count}{not}
+\pgfcircdeclareeurologicport{xnor}{$=1$}{\pgf@circ@res@count}{not}
+
+%% end european logic ports
+% %>>>
+
+%% IEEE standard logic ports module%<<<
+
+%%
+%% Original multi-input code from John Kormylo at tex.stackexchange.com
+%% Help by TheTeXnician <38565529+TheTeXnician@users.noreply.github.com>
+%% Suggested idea and example code by Jason Sachs <jmsachs@gmail.com>
+%% Please see https://github.com/circuitikz/circuitikz/issues/383 for a lot of details
+%% Most of the code, all errors and bugs by Romano Giannetti <romano.giannetti@gmail.com>
+%% Everything is in the same place here --- more or less; first step to move towards
+%% a module interface for circutikz
+%%
+
+% base settings for ieeestd ports.
+
+\ctikzset{ieeestd ports/.is family}
+% baselen is relative to pgfcirc@Rlen as ever; scaled if the class says so.
+% the value of 0.4 is the standard pin distance for a port with height=num pins
+% and matches the chip distance
+\ctikzset{ieeestd ports/baselen/.initial=0.4}
+% these are in term of baselen; width depends on height (fixed proportions)
+\ctikzset{ieeestd ports/height/.initial=2}
+\ctikzset{ieeestd ports/pin length/.initial=0.7}
+% the standard "not" circle should be 1/6.5 of height (diameter);
+% so radius/baselen=1/3.25/2 --- using 0.1 and no scaling is as a pole
+\ctikzset{ieeestd ports/not radius/.initial=0.154}
+\ctikzset{ieeestd ports/not radius fill/.initial=1}% change ony if you know why
+% the suggested xnor distance is is 1.24, so 1.25/3.25/2
+% xor/xnor leads go full in in IEEE; let this be optional
+\ctikzset{ieeestd ports/xor bar distance/.initial=0.192}%
+\ctikzset{ieeestd ports/xor leads in/.initial=1}%
+%
+% base size of a small external schmitt symbol
+%
+\ctikzset{ieeestd ports/schmitt symbol size/.initial=0.3}%
+%
+% input management
+% we are using the same /tikz/number inputs than the legacy ports
+%
+\tikzset{/tikz/inner inputs/.initial=0} % using 0 means that all inputs are inner
+%
+% integrate with the other logic ports
+%
+%
+\newif\ifpgf@circuit@ieeelogicport\pgf@circuit@ieeelogicportfalse
+\ctikzset{logic ports/ieee/.code= {%
+ \pgf@circuit@ieeelogicporttrue
+ \pgf@circuit@europeanlogicportfalse
+ \tikzset{and port/.style={shape=ieeestd and port}}%
+ \tikzset{or port/.style={shape=ieeestd or port}}%
+ \tikzset{xor port/.style={shape=ieeestd xor port}}%
+ \tikzset{buffer port/.style={shape=ieeestd buffer port}}%
+ \tikzset{not port/.style={shape=ieeestd not port}}%
+ \tikzset{nand port/.style={shape=ieeestd nand port}}%
+ \tikzset{nor port/.style={shape=ieeestd nor port}}%
+ \tikzset{xnor port/.style={shape=ieeestd xnor port}}%
+ \tikzset{schmitt port/.style={shape=ieeestd schmitt port}}%
+ \tikzset{invschmitt port/.style={shape=ieeestd invschmitt port}}%
+}}
+% add code to be compatible with the other ports
+\ctikzset{logic ports/european/.add code={\pgf@circuit@ieeelogicportfalse}}
+\ctikzset{logic ports/american/.add code={\pgf@circuit@ieeelogicportfalse}}
+\tikzset{ieee ports/.style = {\circuitikzbasekey/logic ports = ieee}}
+%
+% the base angle for the or port. See the drawings. This will not change with height
+%
+\pgfmathsetmacro{\pgf@circ@orangle}{atan(3.25/6.5)}
+% \typeout{ANGLE-IS\space\pgf@circ@orangle}
+\def\pgf@circ@ieeeport@input#1% #1 = \pgfmathcounter
+{%
+ \ifnum#1>\inputs
+ \PackageError{circuitikz}{%
+ You requested input pin #1 for logic port shape \thisshape\space \MessageBreak
+ which has been defined with \inputs\space pins%
+ }{Please check the manual about logic ports; if you press return I'll try to continue}
+ \fi
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind+0.5*\pind}% pin "0", above the rack/port
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgf@circ@res@step=\pind
+ \pgf@y=\pgf@circ@res@up\advance\pgf@y by -#1\pgf@circ@res@step\relax
+ \pgf@x=\pgf@circ@res@left\advance\pgf@x by -\pinlen
+}%
+
+% #1 = \pgfmathcounter #2=type
+% type is 1 for and,nand; 2 for or,nor; 3 for xor,xnor
+\def\pgf@circ@ieeeport@baseinput#1#2%
+{%
+ \ifnum#1>\inputs
+ \PackageError{circuitikz}{%
+ You requested border input pin #1 for logic port shape \thisshape\space \MessageBreak
+ which has been defined with \inputs\space pins%
+ }{Please check the manual about logic ports; if you press return I'll try to continue}
+ \fi
+ % Find the vertical position (this is the same for any port)
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind+0.5*\pind}% pin "0", above the rack/port
+ \pgf@circ@res@step=\pind\advance\pgf@circ@res@up by -#1\pgf@circ@res@step\relax
+ % rack (extended) pins; they are the same for all the ports
+ % call K = (inputs-inner)/2, rounded up; pins on the rack are:
+ % above: 1..K (included)
+ % below: inputs-K..inputs
+ % Find the pins on the rack; they are 1...
+ \pgf@circ@count@a=\numexpr (\inputs - \inners)/2\relax % =K; numexpr rounds up!
+ \pgf@circ@count@b=\numexpr \inputs - \pgf@circ@count@a +1 \relax % =inputs - K +1
+ % border anchors for rack should be ok
+ \pgfextractx{\pgf@circ@res@left}{\topleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyleft}
+ \pgf@y=\pgf@circ@res@up\pgf@x=\pgf@circ@res@left
+ % we have finished if we are in the rack
+ \ifnum #1 > \pgf@circ@count@a \ifnum #1 < \pgf@circ@count@b
+ % we are on the inner ports; we have to do the hard work here
+ % and and nand
+ \ifnum #2=1
+ \relax % It's an and/nand, all border ports are on the rack line
+ \fi
+ % or and nor
+ \ifnum #2=2
+ \pgfmathsetlength{\pgf@x}{\pgf@circ@res@right-2*\stdH*(1-cos(atan(\pgf@circ@res@up/(2*\stdH))))}
+ \fi
+ % xor and xnor
+ \ifnum #2=3\relax
+ \pgfmathsetlength{\pgf@x}{\pgf@circ@res@right-\xorbar-2*\stdH*(1-cos(atan(\pgf@circ@res@up/(2*\stdH))))}
+ \fi
+ \fi\fi
+}%
+% inner base ports for xor types port
+% #1 = \pgfmathcounter #2=type
+% type is 1 for and,nand; 2 for or,nor; 3 for xor,xnor
+\def\pgf@circ@ieeeport@innerbaseinput#1%
+{%
+ \ifnum#1>\inputs
+ \PackageError{circuitikz}{%
+ You requested border input pin #1 for logic port shape \thisshape\space \MessageBreak
+ which has been defined with \inputs\space pins%
+ }{Please check the manual about logic ports; if you press return I'll try to continue}
+ \fi
+ % Find the vertical position (this is the same for any port)
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind+0.5*\pind}% pin "0", above the rack/port
+ \pgf@circ@res@step=\pind\advance\pgf@circ@res@up by -#1\pgf@circ@res@step\relax
+ % rack (extended) pins; they are the same for all the ports
+ % call K = (inputs-inner)/2, rounded up; pins on the rack are:
+ % above: 1..K (included)
+ % below: inputs-K..inputs
+ % Find the pins on the rack; they are 1...
+ \pgf@circ@count@a=\numexpr (\inputs - \inners)/2\relax % =K; numexpr rounds up!
+ \pgf@circ@count@b=\numexpr \inputs - \pgf@circ@count@a +1 \relax % =inputs - K +1
+ % border anchors for rack should be ok
+ \pgfextractx{\pgf@circ@res@left}{\topleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyleft}
+ \pgf@y=\pgf@circ@res@up\pgf@x=\pgf@circ@res@left
+ % we have finished if we are in the rack
+ \ifnum #1 > \pgf@circ@count@a \ifnum #1 < \pgf@circ@count@b
+ % we are on the inner ports; we have to do the hard work here
+ \pgfmathsetlength{\pgf@x}{\pgf@circ@res@right-2*\stdH*(1-cos(atan(\pgf@circ@res@up/(2*\stdH))))}
+ \fi\fi
+}%
+
+%%% macro to find basic lenghts --- they leave it in \pgf@circ@res@temp
+\def\pgf@circ@ieeestd@baselen{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{ieeestd ports/baselen}*\pgf@circ@scaled@Rlen}
+}
+\def\pgf@circ@ieeestd@stdH{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@temp}{0.5*\ctikzvalof{ieeestd ports/baselen}*
+ \ctikzvalof{ieeestd ports/height}*\pgf@circ@scaled@Rlen}
+}
+\def\pgf@circ@ieeestd@pinlen{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{ieeestd ports/baselen}*
+ \ctikzvalof{ieeestd ports/pin length}*\pgf@circ@scaled@Rlen}
+}
+\def\pgf@circ@ieeestd@xorbar{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{ieeestd ports/baselen}*
+ \ctikzvalof{ieeestd ports/xor bar distance}*\pgf@circ@scaled@Rlen}
+}
+%% Not circle
+\def\pgf@circ@notradius{
+ \pgf@circ@ieeestd@stdH % got the standard length. Notice that his is 3.25H for IEEE
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{ieeestd ports/not radius}*\pgf@circ@res@temp}
+ % \typeout{NOTRADIUS\space\the\pgf@circ@res@temp}
+}
+%% Find (in ...@other) the height of the rack
+\def\pgf@circ@findrackH{%
+ \pgf@circ@count@a=\pgfkeysvalueof{/tikz/number inputs}\relax%
+ \pgf@circ@count@b=\pgfkeysvalueof{/tikz/inner inputs}\relax%
+ \ifnum\pgf@circ@count@a=0 \pgf@circ@count@a=2\fi % default pins
+ \ifnum\pgf@circ@count@a<2 \pgf@circ@count@a=2\fi %
+ \ifnum\pgf@circ@count@b=0 \pgf@circ@count@b=\pgf@circ@count@a\fi%
+ \pgf@circ@ieeestd@stdH
+ \multiply\pgf@circ@res@temp by 2\relax% full height
+ \divide\pgf@circ@res@temp by \pgf@circ@count@b % the pin spacing
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@circ@count@a/2)*\pgf@circ@res@temp} %top of the rack/port
+ % \typeout{RACK-\thisshape\space\the\pgf@circ@res@other}
+}
+%%
+\def\pgf@circ@find@ieeeport@up{% leave it in up
+ % Normal port limits
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@circ@res@up}{\pgf@circ@res@temp}
+ % rack top size
+ \pgf@circ@findrackH
+ \ifdim\pgf@circ@res@other > \pgf@circ@res@up
+ \pgf@circ@res@up=\pgf@circ@res@other
+ \else
+ \fi
+}
+\def\pgf@circ@find@ieeeport@left#1{% leave it in left; #1 is type
+ % Normal port limits
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@circ@res@left}{8*\pgf@circ@res@temp/6.5}
+ \pgf@circ@res@right=\pgf@circ@res@left % save the border value
+ \pgf@circ@res@step=\pgf@circ@res@temp % save the stdH value
+ \pgf@circ@ieeestd@pinlen\advance\pgf@circ@res@left by \pgf@circ@res@temp
+ % \typeout{LEFT1-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ % this is the normal left border
+ % For the or or xor port, the limit can be the pointy thing (in case the
+ % pinlen is zero or too small)
+ % add to the body margin the or/nor peak:
+ \ifnum #1 > 1\relax% "or", "nor", "xor", "xnor" gates.
+ \pgfmathsetlength{\pgf@circ@res@other}{2*\pgf@circ@res@step*(1-cos(\pgf@circ@orangle))}
+ \advance\pgf@circ@res@right by \pgf@circ@res@other
+ % \typeout{LEFT2-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ \fi
+ % add to the body margin the xor/xnor distance
+ \ifnum #1 = 3\relax% "xor" or "xnor" gates.
+ \pgf@circ@ieeestd@xorbar
+ \advance\pgf@circ@res@right by \pgf@circ@res@temp
+ % \typeout{LEFT3-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ \fi
+ % and if this exceeds the normal margin, this is it
+ % \typeout{LEFT4-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ \ifdim \pgf@circ@res@right > \pgf@circ@res@left
+ \pgf@circ@res@left=\pgf@circ@res@right
+ \fi
+ % \typeout{LEFT5-\thisshape\space L\space\the\pgf@circ@res@left\space R\space\the\pgf@circ@res@right}
+ \pgf@circ@res@left=-\pgf@circ@res@left
+}
+\def\pgf@circ@find@ieeeport@right#1{% leave it in right; #1 is plain or negated
+ % Normal port limits
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@circ@res@right}{8*\pgf@circ@res@temp/6.5}
+ \pgf@circ@notradius
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@res@right+2*#1*\pgf@circ@res@temp}
+ \pgf@circ@ieeestd@pinlen\advance\pgf@circ@res@right by \pgf@circ@res@temp
+ \ifdim\pgf@circ@res@other > \pgf@circ@res@right
+ \pgf@circ@res@right=\pgf@circ@res@other
+ \fi
+}
+\def\pgf@circ@find@ieeeport@not@right#1{% leave it in right; #1 is plain or negated
+ % Normal port limits
+ \pgf@circ@ieeestd@stdH
+ % notice 0.8660254 is cos(30)
+ \pgfmathsetlength{\pgf@circ@res@right}{0.8660254*\pgf@circ@res@temp}
+ \pgf@circ@notradius
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@circ@res@right+2*#1*\pgf@circ@res@temp}
+ \pgf@circ@ieeestd@pinlen\advance\pgf@circ@res@right by \pgf@circ@res@temp
+ \ifdim\pgf@circ@res@other > \pgf@circ@res@right
+ \pgf@circ@res@right=\pgf@circ@res@other
+ \fi
+}
+
+
+%%% ieeestd multi-input ports
+%%% #1: name
+%%% #2: type: 1 for and,nand; 2 for or,nor; 3 for xor,xnor
+%%% #3: polarity: 0 for direct, 1 for inverted (not at the output)
+%%% #4: drawing for the port
+\long\def\pgfcircdeclareieeeport#1#2#3#4{%
+ \pgfdeclareshape{ieeestd #1 port}%
+ {%
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \saveddimen{\baselen}{%
+ \pgf@circ@ieeestd@baselen\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\stdH}{% This is HALF the height of the inner port
+ \pgf@circ@ieeestd@stdH\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\notdiameter}{
+ \pgf@circ@notradius\pgf@x=2\pgf@circ@res@temp
+ }
+ \saveddimen{\pind}{% pin distance;
+ \pgf@circ@count@a=\pgfkeysvalueof{/tikz/number inputs}\relax%
+ \pgf@circ@count@b=\pgfkeysvalueof{/tikz/inner inputs}\relax%
+ \ifnum\pgf@circ@count@a=0 \pgf@circ@count@a=2\fi % default pins
+ \ifnum\pgf@circ@count@a<2 \pgf@circ@count@a=2\fi %
+ \ifnum\pgf@circ@count@b=0 \pgf@circ@count@b=\pgf@circ@count@a\fi%
+ \pgf@circ@ieeestd@stdH\pgf@x=2\pgf@circ@res@temp % full height
+ \divide\pgf@x by \pgf@circ@count@b
+ }
+ \saveddimen{\pinlen}{%
+ \pgf@circ@ieeestd@pinlen\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\xorbar}{%
+ \pgf@circ@ieeestd@xorbar\pgf@x=\pgf@circ@res@temp
+ }
+ % anchors for the body (no pins included here)
+ \savedanchor{\bodyleft}{% This DOES NOT take into account the pointy or/xor thing
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-8*\pgf@circ@res@temp/6.5}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\topleft}{%
+ \pgf@circ@ieeestd@xorbar\pgf@circ@res@right=\pgf@circ@res@temp % save \xorbar
+ \pgf@circ@ieeestd@stdH
+ \pgf@circ@res@other=0pt\relax
+ \ifnum #2 = 2\relax% "or" or "nor" gates.
+ \pgfmathsetlength{\pgf@circ@res@other}{2*\pgf@circ@res@temp*(1-cos(\pgf@circ@orangle))}
+ \fi
+ \ifnum #2 = 3\relax% "xor" or "xnor" gates.
+ \pgfmathsetlength{\pgf@circ@res@other}{2*\pgf@circ@res@temp*(1-cos(\pgf@circ@orangle))
+ +\pgf@circ@res@right}
+ \fi
+ \pgfmathsetlength{\pgf@x}{-8*\pgf@circ@res@temp/6.5-\pgf@circ@res@other}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\bodyright}{% This DOES NOT take into account the "NOT" circle
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{8*\pgf@circ@res@temp/6.5}
+ \pgfmathsetlength{\pgf@y}{-\pgf@circ@res@temp}
+ }
+ \savedanchor{\bottomright}{% This DOES take into account the "NOT" circle
+ \pgf@circ@notradius\pgf@circ@res@other=\pgf@circ@res@temp
+ \pgf@circ@ieeestd@stdH
+ % #3 is =1 if the port is a negated output one
+ \pgfmathsetlength{\pgf@x}{8*\pgf@circ@res@temp/6.5+#3*2*\pgf@circ@res@other}
+ \pgfmathsetlength{\pgf@y}{-\pgf@circ@res@temp}
+ }
+ % geographical anchors --- must be rectangulars!
+ \savedanchor{\northwest}{%
+ \pgf@circ@find@ieeeport@up
+ \pgf@circ@find@ieeeport@left{#2}
+ % \typeout{ANCH5-\thisshape\space L\space\the\pgf@circ@res@left\space U\space\the\pgf@circ@res@up}
+ \pgf@x=\pgf@circ@res@left
+ \pgf@y=\pgf@circ@res@up
+ }
+ \savedanchor{\southwest}{%
+ \pgf@circ@find@ieeeport@up
+ \pgf@circ@find@ieeeport@left{#2}
+ \pgf@x=\pgf@circ@res@left
+ \pgf@y=-\pgf@circ@res@up
+ }
+ \savedanchor{\southeast}{%
+ \pgf@circ@find@ieeeport@up
+ \pgf@circ@find@ieeeport@right{#3}
+ \pgf@x=\pgf@circ@res@right
+ \pgf@y=-\pgf@circ@res@up
+ }
+ \savedanchor{\northeast}{%
+ \pgf@circ@find@ieeeport@up
+ \pgf@circ@find@ieeeport@right{#3}
+ \pgf@x=\pgf@circ@res@right
+ \pgf@y=\pgf@circ@res@up
+ }
+ \savedmacro\inputs{% get number of inputs
+ \pgf@circ@count@a=\pgfkeysvalueof{/tikz/number inputs}\relax
+ \ifnum\pgf@circ@count@a=0\pgf@circ@count@a=2\fi % default
+ \ifnum\pgf@circ@count@a<2 \pgf@circ@count@a=2\fi % minimum pins
+ % \ifnum\pgf@circ@count@a>16 \pgf@circ@count@a=16\fi
+ \def\inputs{\the\pgf@circ@count@a}%
+ }%
+ \savedmacro\inners{% get number of "inner" inputs (for racks)
+ \pgf@circ@count@a=\pgfkeysvalueof{/tikz/number inputs}\relax
+ \pgf@circ@count@b=\pgfkeysvalueof{/tikz/inner inputs}\relax
+ \ifnum\pgf@circ@count@a=0 \pgf@circ@count@a=2\fi % default pins
+ \ifnum\pgf@circ@count@a<2 \pgf@circ@count@a=2\fi % minimum pins
+ \ifnum\pgf@circ@count@b=0 \pgf@circ@count@b=\pgf@circ@count@a\fi
+ % \typeout{INNER is \the\pgf@circ@count@b}%
+ % \ifnum\pgf@circ@count@a>16 \pgf@circ@count@a=16\fi
+ \def\inners{\the\pgf@circ@count@b}%
+ }%
+ \anchor{center}{\pgfpointorigin}
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \else
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@circ@res@left}{-8*\pgf@circ@res@temp/6.5} % left border
+ \pgfpoint{\pgf@circ@res@left + \ctikzvalof{left text distance}}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \fi
+ }
+ % create input anchors
+ \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@ieeestd #1 port\endcsname{%
+ \pgf@circ@count@a=\inputs
+ \pgfmathloop%
+ \ifnum\pgfmathcounter>\pgf@circ@count@a%
+ \else%
+ %\pgfutil@ifundefined{pgf@anchor@american #1 port@in \pgfmathcounter}{%
+ \expandafter\xdef\csname pgf@anchor@ieeestd #1 port@in \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@ieeeport@input{\pgfmathcounter}% defined above
+ }%
+ \expandafter\xdef\csname pgf@anchor@ieeestd #1 port@bin \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@ieeeport@baseinput{\pgfmathcounter}{#2}% defined above
+ }%
+ \ifnum #2 = 3\relax % xor/xnor inner border pins
+ \expandafter\xdef\csname pgf@anchor@ieeestd #1 port@ibin \pgfmathcounter\endcsname{%
+ \noexpand\pgf@circ@ieeeport@innerbaseinput{\pgfmathcounter}% defined above
+ }%
+ \fi
+ %}{}%
+ \repeatpgfmathloop%
+ }
+ % output anchor
+ \anchor{out}{%
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without not ball
+ \advance\pgf@circ@res@other by\pinlen
+ \pgfextractx{\pgf@circ@res@temp}{\bottomright} %body + ball border
+ \ifdim \pgf@circ@res@temp > \pgf@circ@res@other
+ \pgf@circ@res@other = \pgf@circ@res@temp % do not enter in the ball...
+ \fi
+ \pgf@x=\pgf@circ@res@other\pgf@y=0pt
+ }
+ \anchor{bout}{\bottomright\pgf@y=0pt}
+
+ \anchor{body right}{\bodyright\pgf@y=0pt}
+ \anchor{right}{\bottomright\pgf@y=0pt}
+ \anchor{body left}{\bodyleft\pgf@y=0pt}% central edge of the body
+ \anchor{left}{% central edge of the component
+ \bodyleft\pgf@y=0pt
+ \ifnum #2=3\relax
+ \advance\pgf@x by -\xorbar
+ \fi
+ }
+ \anchor{up}{%
+ \bodyleft
+ \ifnum #2 > 1 % pointy shapes
+ \pgf@circ@ieeestd@stdH
+ % horizontal coordinate where the right semicircle starts
+ \pgfmathsetlength{\pgf@circ@res@other}{-8*\pgf@circ@res@temp/6.5+2*\pgf@circ@res@temp*cos(\pgf@circ@orangle)}
+ % vertical drop of the circle at the above coordinate
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@temp*(1-cos(atan(\pgf@circ@res@other/(2*\pgf@circ@res@temp))))}
+ \advance \pgf@y by -\pgf@circ@res@step
+ \fi
+ \pgf@x=0pt
+ }
+ \anchor{down}{%
+ \bodyleft
+ \ifnum #2 > 1 % pointy shapes
+ \pgf@circ@ieeestd@stdH
+ % horizontal coordinate where the right semicircle starts
+ \pgfmathsetlength{\pgf@circ@res@other}{-8*\pgf@circ@res@temp/6.5+2*\pgf@circ@res@temp*cos(\pgf@circ@orangle)}
+ % vertical drop of the circle at the above coordinate
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@temp*(1-cos(atan(\pgf@circ@res@other/(2*\pgf@circ@res@temp))))}
+ \advance \pgf@y by -\pgf@circ@res@step
+ \fi
+ \pgf@y=-\pgf@y\pgf@x=0pt
+ }
+
+ % geographical anchors
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northeast}
+ \anchor{se}{\southeast}
+ \anchor{sw}{\southwest}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\southeast}
+ \anchor{south west}{\southwest}
+ % over 0,0 even if asymmetric
+ % will break if the geocoords are not rectangular
+ \anchor{n}{\northwest\pgf@x=0pt\relax}
+ \anchor{e}{\northeast\pgf@y=0pt\relax}
+ \anchor{s}{\southwest\pgf@x=0pt\relax}
+ \anchor{w}{\northwest\pgf@y=0pt\relax}
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south}{\southwest\pgf@x=0pt\relax}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+
+ \backgroundpath{
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ #4
+ \endpgfscope
+ % output lead:
+ \pgfextractx{\pgf@circ@res@right}{\bottomright} %body+ball border
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without "not" ball
+ \advance\pgf@circ@res@other by \pinlen\relax
+ \ifdim \pgf@circ@res@other > \pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ \ifnum #3=1\relax\pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfnode{notcirc}{east}{}{\thisshape-not}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ }
+ }
+}
+
+%%% #1 direct name #2 negated name #3 type #4 drawing (without output)
+\long\def\pgfcircdeclareieeeportpair#1#2#3#4{%
+ \pgfcircdeclareieeeport{#1}{#3}{0}{#4}% direct
+ \pgfcircdeclareieeeport{#2}{#3}{1}{#4}% negated
+}
+%
+% ieeestd "and" and "nand"
+%
+\pgfcircdeclareieeeportpair{and}{nand}{1}{%
+ \pgf@circ@count@a = \inputs\relax
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind} %top of the rack/port
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@res@up+0.5*\pind}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@down}{\bodyleft}
+ \ifpgfcirc@draw@input@leads
+ %input leads --- all the same for AND ports
+ \loop\ifnum\pgf@circ@count@a>0
+ \advance\pgf@circ@res@temp by -\pind
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{\pgf@circ@res@temp}}%
+ \advance\pgf@circ@count@a by -1
+ \repeat
+ \fi
+ \pgfusepath{draw}
+ %% Body. let's start from the top left
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{-8*\stdH/6.5}{\stdH}}
+ \pgfpathlineto{\pgfpoint{1.5*\stdH/6.5}{\stdH}}
+ \pgfpatharc{90}{-90}{\stdH}
+ \pgfpathlineto{\pgfpoint{-8*\stdH/6.5}{-\stdH}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % rack now; skip if not needed.
+ % \typeout{WHAT\space \inputs\space \inners}
+ \ifnum\inputs>\inners
+ \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@left}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \fi
+ \endpgfscope
+}
+%
+% or/nor and xor/xnor are practically the same. Let factor out everything
+% the argument #1 is put just before the drawing of the inner pins
+% the argument #2 is put after the drawing of the body
+%
+\long\def\pgf@circ@ieeeport@orxor#1#2{%
+ \pgf@circ@count@a = \inputs\relax
+ \pgfmathsetlength{\pgf@circ@res@up}{(\inputs/2)*\pind} %top of the rack/port
+ \pgfmathsetlength{\pgf@circ@res@temp}{\pgf@circ@res@up+0.5*\pind}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@down}{\bodyleft}
+ % rack (extended) pins; they are the same for all the ports
+ % call K = (inputs-inner)/2, rounded up; pins on the rack are:
+ % above: 1..K (included)
+ % below: inputs-K..inputs
+ % Find the pins on the rack; they are 1...
+ \pgf@circ@count@b=\numexpr (\inputs - \inners)/2\relax % =K; numexpr rounds up!
+ \pgf@circ@count@c=\numexpr \inputs - \pgf@circ@count@b +1 \relax % =inputs - K +1
+ \ifpgfcirc@draw@input@leads
+ %input leads --- for or ports
+ \loop\ifnum\pgf@circ@count@a>0
+ \pgfextractx{\pgf@circ@res@right}{\topleft}
+ \advance\pgf@circ@res@temp by -\pind
+ % this is the height; let's find the "right" position
+ \ifnum \pgf@circ@count@a > \pgf@circ@count@b \ifnum \pgf@circ@count@a < \pgf@circ@count@c
+ % inner pins
+ % \typeout{INNER\space\pgf@circ@count@a}
+ \pgfmathsetlength{\pgf@circ@res@right}{\pgf@circ@res@left-2*\stdH*(1-cos(atan(\pgf@circ@res@temp/(2*\stdH))))}
+ % hook for xor/xnor
+ #1
+ \fi\fi
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@temp}}%
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{\pgf@circ@res@temp}}%
+ \pgfusepath{draw}
+ \advance\pgf@circ@count@a by -1
+ \repeat
+ \fi
+ %% Body. let's start from the top left
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ % it should start here, but with this trick the close comes out better.
+ % \pgfpathmoveto{\pgfpoint{-8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{\stdH}}
+ \pgfpathmoveto{\pgfpoint{-8*\stdH/6.5}{\stdH}}
+ \pgfpathlineto{\pgfpoint{8*\stdH/6.5-2*\stdH*cos(\pgf@circ@orangle)}{\stdH}} %
+ \pgfpatharcto{2*\stdH}{2*\stdH}{0}{0}{0}{\pgfpoint{8*\stdH/6.5}{0pt}}
+ \pgfpatharcto{2*\stdH}{2*\stdH}{0}{0}{0}{\pgfpoint{8*\stdH/6.5-2*\stdH*cos(\pgf@circ@orangle)}{-\stdH}}
+ \pgfpathlineto{\pgfpoint{-8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{-\stdH}}
+ %% this should be 2 and 2; but the round part is not a perfect circle that way
+ %% so the 2.15 is ajusted "by taste" to touch the anchors exactly.
+ \pgfpatharcto{2*\stdH}{2.2*\stdH}{0}{0}{1}{\pgfpoint{-8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{\stdH}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % hook for xor/xnor
+ #2
+ % rack now; skip if not needed.
+ % \typeout{WHAT\space \inputs\space \inners}
+ \ifnum\inputs>\inners
+ \pgfextractx{\pgf@circ@res@left}{\topleft}
+ \pgfextracty{\pgf@circ@res@down}{\topleft}
+ \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@left}{-\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \fi
+ \endpgfscope
+}
+%
+% ieeestd "or" and "nor"
+%
+\pgfcircdeclareieeeportpair{or}{nor}{2}{%
+ \pgf@circ@ieeeport@orxor{}{}
+}
+\pgfcircdeclareieeeportpair{xor}{xnor}{3}{%
+ \pgf@circ@ieeeport@orxor{
+ \edef\@@tmp{\ctikzvalof{ieeestd ports/xor leads in}}
+ \ifnum\@@tmp=0\relax
+ % move pin start to the left to leave the xor gap free (not standard)
+ \advance\pgf@circ@res@right by -\xorbar
+ \fi
+ }{%
+ % add the xor/xnor bar
+ \pgfpathmoveto{\pgfpoint{-\xorbar-8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{-\stdH}}
+ % see the comment on the main body about the 2.2
+ \pgfpatharcto{2*\stdH}{2.2*\stdH}{0}{0}{1}{\pgfpoint{-\xorbar -8*\stdH/6.5-2*\stdH*(1-cos(\pgf@circ@orangle))}{\stdH}}
+ \pgfusepath{draw}
+ }
+}
+%
+% Buffer and inverters
+%
+% #1: name
+% #2: polarity
+% #3: content
+\long\def\pgfcircdeclareieeebufferport#1#2#3{%
+ \pgfdeclareshape{ieeestd #1 port}%
+ {%
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \saveddimen{\baselen}{%
+ \pgf@circ@ieeestd@baselen\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\stdH}{% This is HALF the height of the inner port
+ \pgf@circ@ieeestd@stdH\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\notdiameter}{
+ \pgf@circ@notradius\pgf@x=2\pgf@circ@res@temp
+ }
+ \saveddimen{\pinlen}{%
+ \pgf@circ@ieeestd@pinlen\pgf@x=\pgf@circ@res@temp
+ }
+ % anchors for the body (no pins included here)
+ % Notice that 0.8660254 is cos(30)
+ \savedanchor{\bodyleft}{% This DOES NOT take into account the pointy or/xor thing
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\topleft}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\bodyright}{% This DOES NOT take into account the "NOT" circle
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\bottomright}{% This DOES take into account the "NOT" circle
+ \pgf@circ@notradius\pgf@circ@res@other=\pgf@circ@res@temp
+ \pgf@circ@ieeestd@stdH
+ % #2 is =1 if the port is a negated output one
+ \pgfmathsetlength{\pgf@x}{0.8660254*\pgf@circ@res@temp+#2*2*\pgf@circ@res@other}
+ \pgfmathsetlength{\pgf@y}{-\pgf@circ@res@temp}
+ }
+ % geographical anchors --- must be rectangulars!
+ \savedanchor{\northwest}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp}
+ }
+ \savedanchor{\southwest}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-0.8660254*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@y}{-\pgf@circ@res@temp}
+ }
+ \savedanchor{\southeast}{%
+ \pgf@circ@ieeestd@stdH
+ \pgf@circ@res@up=\pgf@circ@res@temp
+ \pgf@circ@find@ieeeport@not@right{#2}
+ \pgf@x=\pgf@circ@res@right
+ \pgf@y=-\pgf@circ@res@up
+ }
+ \savedanchor{\northeast}{%
+ \pgf@circ@ieeestd@stdH
+ \pgf@circ@res@up=\pgf@circ@res@temp
+ \pgf@circ@find@ieeeport@not@right{#2}
+ \pgf@x=\pgf@circ@res@right
+ \pgf@y=\pgf@circ@res@up
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \else
+ \pgf@circ@ieeestd@stdH
+ \pgfpoint{-0.8660254*\pgf@circ@res@temp + \ctikzvalof{left text distance}}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \fi
+ }
+ % input anchors
+ \anchor{in}{\bodyleft\pgf@y=0pt\advance\pgf@x by-\pinlen}
+ \anchor{in 1}{\bodyleft\pgf@y=0pt\advance\pgf@x by-\pinlen}
+ \anchor{bin}{\bodyleft\pgf@y=0pt\relax}
+ \anchor{bin 1}{\bodyleft\pgf@y=0pt\relax}
+ % output anchors
+ \anchor{out}{%
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without not ball
+ \advance\pgf@circ@res@other by\pinlen
+ \pgfextractx{\pgf@circ@res@temp}{\bottomright} %body + ball border
+ \ifdim \pgf@circ@res@temp > \pgf@circ@res@other
+ \pgf@circ@res@other = \pgf@circ@res@temp % do not enter in the ball...
+ \fi
+ \pgf@x=\pgf@circ@res@other\pgf@y=0pt
+ }
+ \anchor{bout}{\bottomright\pgf@y=0pt}
+
+ \anchor{body right}{\bodyright\pgf@y=0pt}
+ \anchor{right}{\bottomright\pgf@y=0pt}
+ \anchor{body left}{\bodyleft\pgf@y=0pt}% central edge of the body
+ \anchor{left}{\bodyleft\pgf@y=0pt}
+ \anchor{up}{%
+ \bodyleft
+ \pgf@y=+0.5\pgf@y\pgf@x=0pt
+ }
+ \anchor{down}{%
+ \bodyleft
+ \pgf@y=-0.5\pgf@y\pgf@x=0pt
+ }
+ % this is for when it's used as a bipole
+ % we use the enclosing rectangle (see below)
+ \anchorborder{%
+ %% This (commented out) is the correct border anchor. But if we use the correct
+ %% border anchor there is no horizontal space for the label ;-) because
+ %% the triangle is too steep. So we will use a simple square border
+ %%
+ %% find the border anchor of a triangle (like a not port or an
+ %% amplifier) ---
+ %%
+ %% -----^ up
+ %% I --- |
+ %% I -|--
+ %%left I | --- right
+ %% ----I-----|-------I-----
+ %%
+ %%
+ %\pgf@xa=\pgf@x
+ %% it's simmetrical w/ vertical side, use only positive y
+ %\pgfmathsetmacro{\@@switchy}{ifthenelse(\pgf@y>0,1,-1)}
+ %\pgfmathsetlength{\pgf@ya}{abs(\pgf@y)}
+ %\pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ %\pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ %\pgfextractx{\pgf@circ@res@right}{\bodyright}
+ %% limit angle for the left (vertical) side
+ %\pgfmathsetmacro{\@@phimax}{atan2(\pgf@circ@res@up,\pgf@circ@res@left)}
+ %\pgfmathsetmacro{\@@phi}{atan2(\pgf@ya,\pgf@xa)}
+ %\pgfmathsetmacro{\@@leftside}{ifthenelse(\@@phi>\@@phimax,1,0)}
+ %% find the border
+ %\ifnum\@@leftside>0
+ % % vertical side
+ % \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ % {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ %\else
+ % % triangle upper line
+ % \pgfpointintersectionoflines
+ % {\pgfpointorigin}{\pgfqpoint{\pgf@xa}{\pgf@ya}}
+ % {\pgfqpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfqpoint{\pgf@circ@res@right}{0pt}}
+ %\fi
+ %% readjust y sign
+ %\pgf@y=\@@switchy\pgf@y
+ %
+ % this is the square border to position the path label with a bit of horizontal space
+ %
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ % geographical anchors
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northeast}
+ \anchor{se}{\southeast}
+ \anchor{sw}{\southwest}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\southeast}
+ \anchor{south west}{\southwest}
+ % over 0,0 even if asymmetric
+ % will break if the geocoords are not rectangular
+ \anchor{n}{\northwest\pgf@x=0pt\relax}
+ \anchor{e}{\northeast\pgf@y=0pt\relax}
+ \anchor{s}{\southwest\pgf@x=0pt\relax}
+ \anchor{w}{\northwest\pgf@y=0pt\relax}
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south}{\southwest\pgf@x=0pt\relax}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+
+ \backgroundpath{
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ #3
+ \endpgfscope
+ % output lead:
+ \pgfextractx{\pgf@circ@res@right}{\bottomright} %body+ball border
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without "not" ball
+ \advance\pgf@circ@res@other by \pinlen\relax
+ \ifdim \pgf@circ@res@other > \pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ \ifnum #2=1\relax\pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfnode{notcirc}{east}{}{\thisshape-not}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ }
+ }
+}
+
+%%% #1 direct name #2 negated name #3 drawing (without output)
+\long\def\pgfcircdeclareieeebufferportpair#1#2#3{%
+ \pgfcircdeclareieeebufferport{#1}{0}{#3}% direct
+ \pgfcircdeclareieeebufferport{#2}{1}{#3}% negated
+}
+
+\pgfcircdeclareieeebufferportpair{buffer}{not}{%
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyright}
+ % \draw input pin
+ \ifpgfcirc@draw@input@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+}
+
+\pgfcircdeclareieeebufferportpair{schmitt}{invschmitt}{%
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyright}
+ % \draw input pin
+ \ifpgfcirc@draw@input@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ % draw schmitt symbol in normal line thickness
+ \pgfpathmoveto{\pgfpoint{0.75*\pgf@circ@res@left}{-0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.50*\pgf@circ@res@left}{-0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.50*\pgf@circ@res@left}{0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.00*\pgf@circ@res@left}{0.25*\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{0.25*\pgf@circ@res@left}{0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.25*\pgf@circ@res@left}{-0.25*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5*\pgf@circ@res@left}{-0.25*\pgf@circ@res@up}}
+ \pgfusepath{draw}
+}
+
+
+\pgfdeclareshape{schmitt symbol}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgf@circ@ieeestd@stdH
+ \pgf@y=\ctikzvalof{ieeestd ports/schmitt symbol size}\pgf@circ@res@temp
+ \pgf@x=-1.5\pgf@y
+ }
+ \anchor{center}{\pgf@y=0pt \pgf@x=0pt}
+ \anchor{east}{\northwest\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{e}{\northwest\pgf@y=0pt \pgf@x=-\pgf@x}
+ \anchor{west}{\northwest\pgf@y=0pt}
+ \anchor{w}{\northwest \pgf@y=0pt}
+ \anchor{south}{\northwest \pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{north}{\northwest\pgf@x=0pt}
+ \anchor{n}{\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{
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfextractx{\pgf@circ@res@left}{\northwest}
+ \pgfextracty{\pgf@circ@res@up}{\northwest}
+ \pgf@circ@res@left=0.7\pgf@circ@res@left
+ \pgf@circ@res@up=0.7\pgf@circ@res@up
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left/3}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left/3}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@left/3}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@left/3}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{notcirc}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgf@circ@notradius
+ \pgf@y=\pgf@circ@res@temp
+ \pgf@x=-\pgf@y
+ }
+ \anchor{center}{\pgf@y=0pt \pgf@x=0pt}
+ \anchor{right}{\northwest\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{east}{\northwest\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{e}{\northwest\pgf@y=0pt \pgf@x=-\pgf@x}
+ \anchor{left}{\northwest\pgf@y=0pt}
+ \anchor{west}{\northwest\pgf@y=0pt}
+ \anchor{w}{\northwest \pgf@y=0pt}
+ \anchor{south}{\northwest \pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{north}{\northwest\pgf@x=0pt}
+ \anchor{n}{\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}
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \northwest\pgf@circ@res@temp=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}%
+ {\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@temp}}
+ }
+ \behindforegroundpath{
+ \pgfscope
+ \northwest\pgf@circ@res@temp=\pgf@y
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathcircle{\pgfpointorigin}{\pgf@circ@res@temp}
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % set the default fill color to white
+ \pgfsetfillcolor{white}
+ % ...but override it if the class is defined!
+ \pgf@circ@setifdefinedfill{draw, fill}{draw, fill}
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}
+ \fi
+ \pgfsetfillopacity{\ctikzvalof{ieeestd ports/not radius fill}}% normally 1.0
+ \pgfusepath{draw,fill}
+ \endpgfscope
+ }
+}
+
+%%%% Transmission gates
+% tgates are only ieee style for now
+\tikzset{%
+ tgate/.style ={shape=ieee tgate},
+ double tgate/.style ={shape=ieee double tgate},
+}
+\ctikzset{tgate scale/.initial=0.7}
+% Buffer and inverters
+%
+% #1: name
+% #2: 1: one-not, 2:double-not
+% #3: content
+\long\def\pgfcircdeclareieeetgate#1#2#3{%
+ \pgfdeclareshape{ieee #1}%
+ {%
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{logic ports}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \saveddimen{\baselen}{%
+ \pgf@circ@ieeestd@baselen\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\stdH}{% This is HALF the height of the inner port
+ \pgf@circ@ieeestd@stdH\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\notdiameter}{
+ \pgf@circ@notradius\pgf@x=2\pgf@circ@res@temp
+ }
+ \saveddimen{\notradius}{
+ \pgf@circ@notradius\pgf@x=\pgf@circ@res@temp
+ }
+ \saveddimen{\pinlen}{%
+ \pgf@circ@ieeestd@pinlen\pgf@x=\pgf@circ@res@temp
+ }
+ % anchors for the body (no pins included here)
+ % Notice that 0.8660254 is cos(30)
+ \savedanchor{\bodyleft}{% This DOES NOT take into account the pointy or/xor thing
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\topleft}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\bodyright}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\bottomright}{% Here it is the same as \bodyright
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ % geographical anchors --- must be rectangulars!
+ \savedanchor{\northwest}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\southwest}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{-2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{-#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\southeast}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{-#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \savedanchor{\northeast}{%
+ \pgf@circ@ieeestd@stdH
+ \pgfmathsetlength{\pgf@x}{2*0.8660254*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ \pgfmathsetlength{\pgf@y}{#2*\pgf@circ@res@temp*\ctikzvalof{tgate scale}}
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgfpoint{-.5\wd\pgfnodeparttextbox}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \else
+ \pgf@circ@ieeestd@stdH
+ \pgfpoint{-0.8660254*\pgf@circ@res@temp + \ctikzvalof{left text distance}}{\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox}
+ \fi
+ }
+ % input anchors
+ \anchor{in}{\bodyleft\pgf@y=0pt\advance\pgf@x by-\pinlen}
+ \anchor{in 1}{\bodyleft\pgf@y=0pt\advance\pgf@x by-\pinlen}
+ \anchor{bin}{\bodyleft\pgf@y=0pt\relax}
+ \anchor{bin 1}{\bodyleft\pgf@y=0pt\relax}
+ % gates
+ \anchor{gate}{\bodyleft\pgf@circ@res@up=\pgf@y
+ \pgf@x=0pt\pgfmathsetlength{\pgf@y}{-(#2-1)*0.5*\pgf@circ@res@up-\pinlen}}
+ \anchor{bgate}{\bodyleft\pgf@circ@res@up=\pgf@y
+ \pgf@x=0pt\pgfmathsetlength{\pgf@y}{-(#2-1)*0.5*\pgf@circ@res@up}}
+ % gate (up) (2.1547 = 1+1/cos(30)
+ \anchor{notgate}{\bodyleft\pgf@circ@res@up=\pgf@y
+ \pgf@x=0pt\relax
+ \pgfmathsetlength{\pgf@circ@res@temp}{2.1547*\notradius}
+ \ifdim\pinlen>\pgf@circ@res@temp
+ \pgfmathsetlength{\pgf@y}{(#2-1)*0.5*\pgf@circ@res@up+\pinlen}
+ \else
+ \pgf@y=\pgf@circ@res@temp
+ \fi
+ }
+ \anchor{bnotgate}{\bodyleft\pgf@circ@res@up=\pgf@y
+ \pgf@x=0pt\pgfmathsetlength{\pgf@y}{(#2-1)*0.5*\pgf@circ@res@up+2.1547*\notradius}}
+
+ % output anchors
+ \anchor{out}{%
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without not ball
+ \advance\pgf@circ@res@other by\pinlen
+ \pgfextractx{\pgf@circ@res@temp}{\bottomright} %body + ball border
+ \ifdim \pgf@circ@res@temp > \pgf@circ@res@other
+ \pgf@circ@res@other = \pgf@circ@res@temp % do not enter in the ball...
+ \fi
+ \pgf@x=\pgf@circ@res@other\pgf@y=0pt
+ }
+ \anchor{bout}{\bottomright\pgf@y=0pt}
+
+ \anchor{body right}{\bodyright\pgf@y=0pt}
+ \anchor{right}{\bottomright\pgf@y=0pt}
+ \anchor{body left}{\bodyleft\pgf@y=0pt}% central edge of the body
+ \anchor{left}{\bodyleft\pgf@y=0pt}
+ \anchor{up}{%
+ \bodyleft
+ \pgf@x=0pt
+ \ifnum#2=1\relax
+ \pgf@y=0pt
+ \else
+ \pgf@y=.5\pgf@y
+ \fi
+ \advance\pgf@y by \notdiameter
+ }
+ \anchor{down}{%
+ \bodyleft
+ \pgf@x=0pt
+ \ifnum#2=1\relax
+ \pgf@y=0pt
+ \else
+ \pgf@y=-.5\pgf@y
+ \fi
+ }
+ % this is for when it's used as a bipole
+ % we use the enclosing rectangle (see below)
+ \anchorborder{%
+ %
+ % this is the square border to position the path label with a bit of horizontal space
+ %
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfpointborderrectangle{\pgfpoint{\pgf@xa}{\pgf@ya}}
+ {\pgfpoint{-\pgf@circ@res@left}{\pgf@circ@res@up}}
+ }
+ % geographical anchors
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northeast}
+ \anchor{se}{\southeast}
+ \anchor{sw}{\southwest}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\southeast}
+ \anchor{south west}{\southwest}
+ % over 0,0 even if asymmetric
+ % will break if the geocoords are not rectangular
+ \anchor{n}{\northwest\pgf@x=0pt\relax}
+ \anchor{e}{\northeast\pgf@y=0pt\relax}
+ \anchor{s}{\southwest\pgf@x=0pt\relax}
+ \anchor{w}{\northwest\pgf@y=0pt\relax}
+ \anchor{north}{\northwest\pgf@x=0pt\relax}
+ \anchor{east}{\northeast\pgf@y=0pt\relax}
+ \anchor{south}{\southwest\pgf@x=0pt\relax}
+ \anchor{west}{\northwest\pgf@y=0pt\relax}
+
+ \backgroundpath{
+ \pgfscope
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfextractx{\pgf@circ@res@left}{\bodyleft}
+ \pgfextracty{\pgf@circ@res@up}{\bodyleft}
+ \pgfextractx{\pgf@circ@res@right}{\bodyright}
+ % \draw input pins
+ \ifpgfcirc@draw@input@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pinlen}{0pt}}
+ % gate (down)
+ \pgfpathmoveto{\pgfpoint{0pt}{-(#2-1)*0.5*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-(#2-1)*0.5*\pgf@circ@res@up-\pinlen}}
+ % gate (up) (2.1547 = 1+1/cos(30)
+ \pgfmathsetlength{\pgf@circ@res@temp}{2.1547*\notradius}
+ \ifdim\pinlen>\pgf@circ@res@temp
+ \pgfpathmoveto{\pgfpoint{0pt}{(#2-1)*0.5*\pgf@circ@res@up+\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{0pt}{(#2-1)*0.5*\pgf@circ@res@up+\pinlen}}
+ \fi
+ \pgfusepath{draw}
+ \fi
+ #3
+ \endpgfscope
+ % output lead:
+ \pgfextractx{\pgf@circ@res@right}{\bottomright} %body+ball border
+ \pgfextractx{\pgf@circ@res@other}{\bodyright} %body border, without "not" ball
+ \advance\pgf@circ@res@other by \pinlen\relax
+ \ifdim \pgf@circ@res@other > \pgf@circ@res@right
+ \ifpgfcirc@draw@output@leads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ }
+ }
+}
+
+\pgfcircdeclareieeetgate{tgate}{1}{%
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfscope
+ % 1.1547 is 1/cos(30)
+ \pgftransformshift{\pgfpoint{0pt}{1.1547*\notradius}}
+ \pgfnode{notcirc}{center}{}{\thisshape-not}{\pgfusepath{stroke}}
+ \endpgfscope
+}
+
+\pgfcircdeclareieeetgate{double tgate}{2}{%
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % bottom triangles
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfscope
+ % 1.1547 is 1/cos(30)
+ \pgftransformshift{\pgfpoint{0pt}{.5*\pgf@circ@res@up+1.1547*\notradius}}
+ \pgfnode{notcirc}{center}{}{\thisshape-not}{\pgfusepath{stroke}}
+ \endpgfscope
+}% %>>>
+
+%% Path-style definitions for logical ports%<<<
+%
+% create path-style element for one input --- one output logical ports
+%
+\def\pgfcirc@port@node@to@path#1#2{%
+ %
+ % add a logic port path style component --- we need to suppress leads
+ % and use the correct center
+ %
+ \pgfcirc@node@to@path{#1}{#2}{/tikz/no leads, \circuitikzbasekey/logic ports origin=center}%
+}
+\pgfcirc@port@node@to@path{not port}{inline not}
+\pgfcirc@port@node@to@path{buffer port}{inline buffer}
+\pgfcirc@port@node@to@path{schmitt port}{inline schmitt}
+\pgfcirc@port@node@to@path{invschmitt port}{inline invschmitt}
+
+\pgfcirc@port@node@to@path{tgate}{inline tgate}
+\pgfcirc@port@node@to@path{double tgate}{inline double tgate}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% Transistors
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Settings for Transistors %<<<1
+
+\newif\ifpgf@circuit@trans@depletiontype
+\pgf@circuit@trans@depletiontypefalse
+
+\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}}
+\pgfkeys{/tikz/arrowmos/.add code={}{\pgf@circuit@mos@arrowstrue}}
+\pgfkeys{/tikz/noarrowmos/.add code={}{\pgf@circuit@mos@arrowsfalse}}
+
+% Fixed label positions
+\newif\ifpgf@circuit@transisors@fixlabels
+\pgf@circuit@transisors@fixlabelstrue
+\pgfkeys{/tikz/center transistors text/.add code={}{\pgf@circuit@transisors@fixlabelstrue}}
+\ctikzset{fix transistors text/.add code={}{\pgf@circuit@transisors@fixlabelstrue}}
+\pgfkeys{/tikz/legacy transistors text/.add code={}{\pgf@circuit@transisors@fixlabelsfalse}}
+\ctikzset{legacy transistors text/.add code={}{\pgf@circuit@transisors@fixlabelsfalse}}
+
+% Option solderdot for fet
+\newif\ifpgf@circuit@fet@solderdot
+\pgfkeys{/tikz/solderdot/.add code={}{\pgf@circuit@fet@solderdottrue}}
+\ctikzset{solderdot/.add code={}{\pgf@circuit@fet@solderdottrue}}
+\pgfkeys{/tikz/nosolderdot/.add code={}{\pgf@circuit@fet@solderdotfalse}}
+\ctikzset{nosolderdot/.add code={}{\pgf@circuit@fet@solderdotfalse}}
+
+% Option bodydiode for fet
+\newif\ifpgf@circuit@fet@bodydiode
+\pgfkeys{/tikz/bodydiode/.add code={}{\pgf@circuit@fet@bodydiodetrue}}
+\ctikzset{bodydiode/.add code={}{\pgf@circuit@fet@bodydiodetrue}}
+\pgfkeys{/tikz/nobodydiode/.add code={}{\pgf@circuit@fet@bodydiodefalse}}
+\ctikzset{nobodydiode/.add code={}{\pgf@circuit@fet@bodydiodefalse}}
+
+% Option draw fet without gate connection
+\newif\ifpgf@circuit@bpt@drawgate
+\pgf@circuit@bpt@drawgatetrue
+\pgfkeys{/tikz/nogate/.add code={}{\pgf@circuit@bpt@drawgatefalse}}
+\ctikzset{nogate/.add code={}{\pgf@circuit@bpt@drawgatefalse}}
+\pgfkeys{/tikz/nobase/.add code={}{\pgf@circuit@bpt@drawgatefalse}}
+\ctikzset{nobase/.add code={}{\pgf@circuit@bpt@drawgatefalse}}
+
+% Option draw bpt with schottky base
+\newif\ifpgf@circuit@bpt@schottky
+\pgf@circuit@bpt@schottkyfalse
+\pgfkeys{/tikz/schottky base/.add code={}{\pgf@circuit@bpt@schottkytrue}}
+\ctikzset{schottky base/.add code={}{\pgf@circuit@bpt@schottkytrue}}
+\pgfkeys{/tikz/no schottky base/.add code={}{\pgf@circuit@bpt@schottkyfalse}}
+\ctikzset{no schottky base/.add code={}{\pgf@circuit@bpt@schottkyfalse}}
+\ctikzset{tripoles/schottky base size/.initial=0.05}
+
+% Option to add ferroelectric symbol
+\newif\ifpgf@circuit@tr@ferroel
+\pgf@circuit@tr@ferroelfalse
+\pgfkeys{/tikz/ferroel gate/.add code={}{\pgf@circuit@tr@ferroeltrue}}
+\ctikzset{ferroel gate/.add code={}{\pgf@circuit@tr@ferroeltrue}}
+\pgfkeys{/tikz/no ferroel gate/.add code={}{\pgf@circuit@tr@ferroelfalse}}
+\ctikzset{no ferroel gate/.add code={}{\pgf@circuit@tr@ferroelfalse}}
+
+
+% Option draw bpt without base connection
+\newif\ifpgf@circuit@bpt@drawbase
+\pgf@circuit@bpt@drawbasetrue
+\pgfkeys{/tikz/nobase/.add code={}{\pgf@circuit@bpt@drawbasefalse}}
+\ctikzset{nobase/.add code={}{\pgf@circuit@bpt@drawbasefalse}}
+\pgfkeys{/tikz/nogate/.add code={}{\pgf@circuit@bpt@drawbasefalse}}
+\ctikzset{nogate/.add code={}{\pgf@circuit@bpt@drawbasefalse}}
+
+% Option draw bpt with optical input
+\newif\ifpgf@circuit@bpt@drawphoto
+\pgf@circuit@bpt@drawphotofalse
+\pgfkeys{/tikz/photo/.add code={}{\pgf@circuit@bpt@drawphototrue}}
+\ctikzset{photo/.add code={}{\pgf@circuit@bpt@drawphototrue}}
+\pgfkeys{/tikz/photo/.add code={}{\pgf@circuit@bpt@drawphototrue}}
+\ctikzset{photo/.add code={}{\pgf@circuit@bpt@drawphototrue}}
+
+% Option draw fet without bulk connection -- Added by Burak Kelleci
+\newif\ifpgf@circuit@bpt@drawbulk
+\pgfkeys{/tikz/bulk/.add code={}{\pgf@circuit@bpt@drawbulktrue}}
+\ctikzset{bulk/.add code={}{\pgf@circuit@bpt@drawbulktrue}}
+\pgfkeys{/tikz/nobulk/.add code={}{\pgf@circuit@bpt@drawbulkfalse}}
+\ctikzset{nobulk/.add code={}{\pgf@circuit@bpt@drawbulkfalse}}
+
+% Option draw pmos with empty circle
+\newif\ifpgf@circuit@pmos@emptycircle
+\pgf@circuit@pmos@emptycirclefalse
+\ctikzset{tripoles/pmos style/.is choice}
+\pgfkeys{/tikz/emptycircle/.add code={}{\pgf@circuit@pmos@emptycircletrue}}
+\ctikzset{tripoles/pmos style/emptycircle/.add code={}{\pgf@circuit@pmos@emptycircletrue}}
+% Option draw pmos with no circle
+\newif\ifpgf@circuit@pmos@nocircle
+\pgf@circuit@pmos@nocirclefalse
+\pgfkeys{/tikz/nocircle/.add code={}{\pgf@circuit@pmos@nocircletrue}}
+\ctikzset{tripoles/pmos style/nocircle/.add code={}{\pgf@circuit@pmos@nocircletrue}}
+% back to normal
+\pgfkeys{/tikz/fullcircle/.add code={}{\pgf@circuit@pmos@emptycirclefalse\pgf@circuit@pmos@nocirclefalse}}
+\ctikzset{tripoles/pmos style/fullcircle/.add code={}{\pgf@circuit@pmos@emptycirclefalse\pgf@circuit@pmos@nocirclefalse}}
+% arrows at the end, the correct way
+\newif\ifpgf@circuit@trans@arrowatend
+\pgf@circuit@trans@arrowatendfalse
+\ctikzset{transistors/arrow pos/.is choice}
+\ctikzset{transistors/arrow pos/legacy/.code={\pgf@circuit@trans@arrowatendfalse}}
+\ctikzset{transistors/arrow pos/end/.code={\pgf@circuit@trans@arrowatendtrue}}
+
+\newif\ifpgf@circuit@trans@ntype
+\pgf@circuit@trans@ntypetrue %default true
+%\newif\ifpgf@circuit@trans@ptype
+%\ctikzset{tripoles/nmos/.add code={\pgf@circuit@trans@ntypetrue}}
+\ctikzset{tripoles/nmos/width/.initial=.7}
+\ctikzset{tripoles/nmos/gate height/.initial=.35}
+\ctikzset{tripoles/nmos/base height/.initial=.5}
+\ctikzset{tripoles/nmos/conn height/.initial=0}
+\ctikzset{tripoles/nmos/height/.initial=1.1}
+\ctikzset{tripoles/nmos/base width/.initial=.5}
+\ctikzset{tripoles/nmos/gate width/.initial=.62}
+\ctikzset{tripoles/nmos/arrow pos/.initial=.6}
+\ctikzset{tripoles/nmos/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nmos/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nmos/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nmos/curr direction/.initial=1}
+
+\ctikzset{tripoles/pmos/width/.initial=.7}
+\ctikzset{tripoles/pmos/gate height/.initial=.35}
+\ctikzset{tripoles/pmos/base height/.initial=.5}
+\ctikzset{tripoles/pmos/conn height/.initial=0}
+\ctikzset{tripoles/pmos/height/.initial=1.1}
+\ctikzset{tripoles/pmos/base width/.initial=.5}
+\ctikzset{tripoles/pmos/gate width/.initial=.62}
+\ctikzset{tripoles/pmos/arrow pos/.initial=.4}
+\ctikzset{tripoles/pmos/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pmos/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pmos/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pmos/curr direction/.initial=-1}
+
+\ctikzset{tripoles/nmosd/width/.initial=.7}
+\ctikzset{tripoles/nmosd/gate height/.initial=.35}
+\ctikzset{tripoles/nmosd/base height/.initial=.5}
+\ctikzset{tripoles/nmosd/conn height/.initial=0}
+\ctikzset{tripoles/nmosd/height/.initial=1.1}
+\ctikzset{tripoles/nmosd/base width/.initial=.5}
+\ctikzset{tripoles/nmosd/gate width/.initial=.62}
+\ctikzset{tripoles/nmosd/arrow pos/.initial=.6}
+\ctikzset{tripoles/nmosd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nmosd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nmosd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nmosd/curr direction/.initial=1}
+\ctikzset{tripoles/nmosd/depletion width/.initial=.1}
+\ctikzset{tripoles/nmosd/depletion color/.initial=default}
+
+\ctikzset{tripoles/pmosd/width/.initial=.7}
+\ctikzset{tripoles/pmosd/gate height/.initial=.35}
+\ctikzset{tripoles/pmosd/base height/.initial=.5}
+\ctikzset{tripoles/pmosd/conn height/.initial=0}
+\ctikzset{tripoles/pmosd/height/.initial=1.1}
+\ctikzset{tripoles/pmosd/base width/.initial=.5}
+\ctikzset{tripoles/pmosd/gate width/.initial=.62}
+\ctikzset{tripoles/pmosd/arrow pos/.initial=.4}
+\ctikzset{tripoles/pmosd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pmosd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pmosd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pmosd/curr direction/.initial=-1}
+\ctikzset{tripoles/pmosd/depletion width/.initial=.1}
+\ctikzset{tripoles/pmosd/depletion color/.initial=default}
+\ctikzset{tripoles/hemt/width/.initial=.7}
+\ctikzset{tripoles/hemt/gate height/.initial=.35}
+\ctikzset{tripoles/hemt/base height/.initial=.5}
+\ctikzset{tripoles/hemt/conn height/.initial=0}
+\ctikzset{tripoles/hemt/height/.initial=1.1}
+\ctikzset{tripoles/hemt/base width/.initial=.5}
+\ctikzset{tripoles/hemt/gate width/.initial=.5}% the horizontal position is the same
+\ctikzset{tripoles/hemt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/hemt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/hemt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/hemt/curr direction/.initial=1}
+
+\ctikzset{tripoles/nfet/width/.initial=.7}
+\ctikzset{tripoles/nfet/gate height/.initial=.35}
+\ctikzset{tripoles/nfet/base height/.initial=.5}
+\ctikzset{tripoles/nfet/conn height/.initial=0}
+\ctikzset{tripoles/nfet/height/.initial=1.1}
+\ctikzset{tripoles/nfet/base width/.initial=.5}
+\ctikzset{tripoles/nfet/gate width/.initial=.62}
+\ctikzset{tripoles/nfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nfet/curr direction/.initial=1}
+
+\ctikzset{tripoles/pfet/width/.initial=.7}
+\ctikzset{tripoles/pfet/gate height/.initial=.35}
+\ctikzset{tripoles/pfet/base height/.initial=.5}
+\ctikzset{tripoles/pfet/conn height/.initial=0}
+\ctikzset{tripoles/pfet/height/.initial=1.1}
+\ctikzset{tripoles/pfet/base width/.initial=.5}
+\ctikzset{tripoles/pfet/gate width/.initial=.62}
+\ctikzset{tripoles/pfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pfet/curr direction/.initial=-1}
+
+\ctikzset{tripoles/nfetd/width/.initial=.7}
+\ctikzset{tripoles/nfetd/gate height/.initial=.35}
+\ctikzset{tripoles/nfetd/base height/.initial=.5}
+\ctikzset{tripoles/nfetd/conn height/.initial=0}
+\ctikzset{tripoles/nfetd/height/.initial=1.1}
+\ctikzset{tripoles/nfetd/base width/.initial=.5}
+\ctikzset{tripoles/nfetd/gate width/.initial=.62}
+\ctikzset{tripoles/nfetd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nfetd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nfetd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nfetd/curr direction/.initial=1}
+
+\ctikzset{tripoles/pfetd/width/.initial=.7}
+\ctikzset{tripoles/pfetd/gate height/.initial=.35}
+\ctikzset{tripoles/pfetd/base height/.initial=.5}
+\ctikzset{tripoles/pfetd/conn height/.initial=0}
+\ctikzset{tripoles/pfetd/height/.initial=1.1}
+\ctikzset{tripoles/pfetd/base width/.initial=.5}
+\ctikzset{tripoles/pfetd/gate width/.initial=.62}
+\ctikzset{tripoles/pfetd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pfetd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pfetd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pfetd/curr direction/.initial=-1}
+
+\ctikzset{tripoles/nigfete/width/.initial=.7}
+\ctikzset{tripoles/nigfete/gate height/.initial=.35}
+\ctikzset{tripoles/nigfete/base height/.initial=.5}
+\ctikzset{tripoles/nigfete/conn height/.initial=.35}
+\ctikzset{tripoles/nigfete/height/.initial=1.1}
+\ctikzset{tripoles/nigfete/base width/.initial=.5}
+\ctikzset{tripoles/nigfete/gate width/.initial=.62}
+\ctikzset{tripoles/nigfete/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nigfete/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nigfete/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nigfete/curr direction/.initial=1}
+
+\ctikzset{tripoles/nigfetd/width/.initial=.7}
+\ctikzset{tripoles/nigfetd/gate height/.initial=.35}
+\ctikzset{tripoles/nigfetd/base height/.initial=.5}
+\ctikzset{tripoles/nigfetd/conn height/.initial=.35}
+\ctikzset{tripoles/nigfetd/height/.initial=1.1}
+\ctikzset{tripoles/nigfetd/base width/.initial=.5}
+\ctikzset{tripoles/nigfetd/gate width/.initial=.62}
+\ctikzset{tripoles/nigfetd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nigfetd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nigfetd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nigfetd/curr direction/.initial=1}
+
+\ctikzset{tripoles/nigfetebulk/width/.initial=.7}
+\ctikzset{tripoles/nigfetebulk/gate height/.initial=.35}
+\ctikzset{tripoles/nigfetebulk/base height/.initial=.5}
+\ctikzset{tripoles/nigfetebulk/conn height/.initial=.35}
+\ctikzset{tripoles/nigfetebulk/height/.initial=1.1}
+\ctikzset{tripoles/nigfetebulk/base width/.initial=.5}
+\ctikzset{tripoles/nigfetebulk/gate width/.initial=.62}
+\ctikzset{tripoles/nigfetebulk/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nigfetebulk/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nigfetebulk/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nigfetebulk/curr direction/.initial=1}
+
+\ctikzset{tripoles/pigfete/width/.initial=.7}
+\ctikzset{tripoles/pigfete/gate height/.initial=.35}
+\ctikzset{tripoles/pigfete/base height/.initial=.5}
+\ctikzset{tripoles/pigfete/conn height/.initial=.35}
+\ctikzset{tripoles/pigfete/height/.initial=1.1}
+\ctikzset{tripoles/pigfete/base width/.initial=.5}
+\ctikzset{tripoles/pigfete/gate width/.initial=.62}
+\ctikzset{tripoles/pigfete/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pigfete/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pigfete/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pigfete/curr direction/.initial=-1}
+
+\ctikzset{tripoles/pigfetd/width/.initial=.7}
+\ctikzset{tripoles/pigfetd/gate height/.initial=.35}
+\ctikzset{tripoles/pigfetd/base height/.initial=.5}
+\ctikzset{tripoles/pigfetd/conn height/.initial=.35}
+\ctikzset{tripoles/pigfetd/height/.initial=1.1}
+\ctikzset{tripoles/pigfetd/base width/.initial=.5}
+\ctikzset{tripoles/pigfetd/gate width/.initial=.62}
+\ctikzset{tripoles/pigfetd/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pigfetd/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pigfetd/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pigfetd/curr direction/.initial=-1}
+
+\ctikzset{tripoles/pigfetebulk/width/.initial=.7}
+\ctikzset{tripoles/pigfetebulk/gate height/.initial=.35}
+\ctikzset{tripoles/pigfetebulk/conn height/.initial=.35}
+\ctikzset{tripoles/pigfetebulk/base height/.initial=.5}
+\ctikzset{tripoles/pigfetebulk/height/.initial=1.1}
+\ctikzset{tripoles/pigfetebulk/base width/.initial=.5}
+\ctikzset{tripoles/pigfetebulk/gate width/.initial=.62}
+\ctikzset{tripoles/pigfetebulk/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pigfetebulk/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pigfetebulk/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pigfetebulk/curr direction/.initial=-1}
+
+\ctikzset{tripoles/npn/width/.initial=.6}
+\ctikzset{tripoles/npn/base height/.initial=.45}
+\ctikzset{tripoles/npn/base height 2/.initial=.15}
+\ctikzset{tripoles/npn/base height/.initial=.4}
+\ctikzset{tripoles/npn/conn height/.initial=0}
+\ctikzset{tripoles/npn/height/.initial=1.1}
+\ctikzset{tripoles/npn/base width/.initial=.5}
+\ctikzset{tripoles/npn/arrow pos/.initial=.5}
+\ctikzset{tripoles/npn/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/npn/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/npn/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/npn/curr direction/.initial=1}
+
+\ctikzset{tripoles/pnp/width/.initial=.6}
+\ctikzset{tripoles/pnp/base height/.initial=.45}
+\ctikzset{tripoles/pnp/base height 2/.initial=.15}
+\ctikzset{tripoles/pnp/base height/.initial=.4}
+\ctikzset{tripoles/pnp/conn height/.initial=0}
+\ctikzset{tripoles/pnp/height/.initial=1.1}
+\ctikzset{tripoles/pnp/base width/.initial=.5}
+\ctikzset{tripoles/pnp/arrow pos/.initial=.5}
+\ctikzset{tripoles/pnp/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pnp/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pnp/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pnp/curr direction/.initial=-1}
+
+\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/outer base height/.initial=.4}
+\ctikzset{tripoles/pigbt/outer base thickness/.initial=1}
+\ctikzset{tripoles/pigbt/conn height/.initial=0}
+\ctikzset{tripoles/pigbt/height/.initial=1.1}
+\ctikzset{tripoles/pigbt/gate width/.initial=.62}
+\ctikzset{tripoles/pigbt/base width/.initial=.5}
+\ctikzset{tripoles/pigbt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pigbt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pigbt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pigbt/curr direction/.initial=-1}
+
+\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/outer base height/.initial=.4}
+\ctikzset{tripoles/nigbt/outer base thickness/.initial=1}
+\ctikzset{tripoles/nigbt/conn height/.initial=0}
+\ctikzset{tripoles/nigbt/height/.initial=1.1}
+\ctikzset{tripoles/nigbt/gate width/.initial=.62}
+\ctikzset{tripoles/nigbt/base width/.initial=.5}
+\ctikzset{tripoles/nigbt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nigbt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nigbt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nigbt/curr direction/.initial=1}
+
+\ctikzset{tripoles/Lpigbt/width/.initial=.6}
+\ctikzset{tripoles/Lpigbt/gate height/.initial=.45}
+\ctikzset{tripoles/Lpigbt/gate height 2/.initial=.15}
+\ctikzset{tripoles/Lpigbt/base height/.initial=.4}
+\ctikzset{tripoles/Lpigbt/outer base height/.initial=.4}
+\ctikzset{tripoles/Lpigbt/outer base thickness/.initial=1}
+\ctikzset{tripoles/Lpigbt/conn height/.initial=.4}
+\ctikzset{tripoles/Lpigbt/height/.initial=1.1}
+\ctikzset{tripoles/Lpigbt/gate width/.initial=.62}
+\ctikzset{tripoles/Lpigbt/base width/.initial=.5}
+\ctikzset{tripoles/Lpigbt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/Lpigbt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/Lpigbt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/Lpigbt/curr direction/.initial=-1}
+
+\ctikzset{tripoles/Lnigbt/width/.initial=.6}
+\ctikzset{tripoles/Lnigbt/gate height/.initial=.45}
+\ctikzset{tripoles/Lnigbt/gate height 2/.initial=.15}
+\ctikzset{tripoles/Lnigbt/base height/.initial=.4}
+\ctikzset{tripoles/Lnigbt/outer base height/.initial=.4}
+\ctikzset{tripoles/Lnigbt/outer base thickness/.initial=1}
+\ctikzset{tripoles/Lnigbt/conn height/.initial=.4}
+\ctikzset{tripoles/Lnigbt/height/.initial=1.1}
+\ctikzset{tripoles/Lnigbt/gate width/.initial=.62}
+\ctikzset{tripoles/Lnigbt/base width/.initial=.5}
+\ctikzset{tripoles/Lnigbt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/Lnigbt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/Lnigbt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/Lnigbt/curr direction/.initial=1}
+
+\ctikzset{tripoles/igbt/outer base height/.code={
+ \ctikzset{tripoles/nigbt/outer base height/.initial=#1}
+ \ctikzset{tripoles/pigbt/outer base height/.initial=#1}
+ \ctikzset{tripoles/Lnigbt/outer base height/.initial=#1}
+ \ctikzset{tripoles/Lpigbt/outer base height/.initial=#1}
+ \ctikzset{tripoles/Lnigbt/conn height/.initial=#1}
+ \ctikzset{tripoles/Lpigbt/conn height/.initial=#1}
+}}
+\ctikzset{tripoles/igbt/outer base thickness/.code={
+ \ctikzset{tripoles/nigbt/outer base thickness=#1}
+ \ctikzset{tripoles/pigbt/outer base thickness=#1}
+ \ctikzset{tripoles/Lnigbt/outer base thickness=#1}
+ \ctikzset{tripoles/Lpigbt/outer base thickness=#1}
+}}
+
+\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/base width/.initial=.5}
+\ctikzset{tripoles/njfet/conn height/.initial=.35}% at the exterior
+\ctikzset{tripoles/njfet/union height/.initial=.35}% at the gate
+\ctikzset{tripoles/njfet/conn kink/.initial=1}% 1=no kink
+\ctikzset{tripoles/njfet/height/.initial=1.1}
+\ctikzset{tripoles/njfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/njfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/njfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/njfet/curr direction/.initial=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/base width/.initial=.5}
+\ctikzset{tripoles/pjfet/conn height/.initial=.35}
+\ctikzset{tripoles/pjfet/union height/.initial=.35}% at the gate
+\ctikzset{tripoles/pjfet/conn kink/.initial=1}% 1=no kink
+\ctikzset{tripoles/pjfet/height/.initial=1.1}
+\ctikzset{tripoles/pjfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pjfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pjfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pjfet/curr direction/.initial=-1}
+
+\ctikzset{tripoles/nujt/width/.initial=.7}
+\ctikzset{tripoles/nujt/gate height/.initial=.5}
+\ctikzset{tripoles/nujt/gate height 2/.initial=.35}
+\ctikzset{tripoles/nujt/gate width/.initial=.5}
+\ctikzset{tripoles/nujt/base width/.initial=.5}
+\ctikzset{tripoles/nujt/conn height/.initial=.35}
+\ctikzset{tripoles/nujt/union height/.initial=0}% at the gate
+\ctikzset{tripoles/nujt/conn kink/.initial=.82}% to match the circle position
+\ctikzset{tripoles/nujt/height/.initial=1.1}
+\ctikzset{tripoles/nujt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/nujt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/nujt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/nujt/curr direction/.initial=1}
+
+\ctikzset{tripoles/pujt/width/.initial=.7}
+\ctikzset{tripoles/pujt/gate height/.initial=.5}
+\ctikzset{tripoles/pujt/gate height 2/.initial=.35}
+\ctikzset{tripoles/pujt/gate width/.initial=.5}
+\ctikzset{tripoles/pujt/base width/.initial=.5}
+\ctikzset{tripoles/pujt/conn height/.initial=.35}
+\ctikzset{tripoles/pujt/union height/.initial=0}% at the gate
+\ctikzset{tripoles/pujt/conn kink/.initial=.82}% to match the circle position
+\ctikzset{tripoles/pujt/height/.initial=1.1}
+\ctikzset{tripoles/pujt/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pujt/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/pujt/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pujt/curr direction/.initial=-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/conn height/.initial=0}
+\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}
+\ctikzset{tripoles/isfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/isfet/bodydiode distance/.initial=.3}
+\ctikzset{tripoles/isfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/isfet/curr direction/.initial=1}
+%
+% graphene FET
+%
+\ctikzset{tripoles/pgfet/width/.initial=.6}
+\ctikzset{tripoles/pgfet/gate height/.initial=.5}
+\ctikzset{tripoles/pgfet/gate height 2/.initial=0.25} % must be "gate height"/2
+\ctikzset{tripoles/pgfet/base height/.initial=.5} % must be "gate height"
+\ctikzset{tripoles/pgfet/outer base height/.initial=.25} % must be "gate height 2"
+\ctikzset{tripoles/pgfet/outer base thickness/.initial=1}
+\ctikzset{tripoles/pgfet/conn height/.initial=0}
+\ctikzset{tripoles/pgfet/height/.initial=1.1}
+\ctikzset{tripoles/pgfet/gate width/.initial=.5}
+\ctikzset{tripoles/pgfet/base width/.initial=0.36084} % must be "gate height"*cos(60)/(2*width)
+\ctikzset{tripoles/pgfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/pgfet/bodydiode distance/.initial=.6}
+\ctikzset{tripoles/pgfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/pgfet/curr direction/.initial=-1}
+
+\ctikzset{tripoles/ngfet/width/.initial=.6}
+\ctikzset{tripoles/ngfet/gate height/.initial=.5}
+\ctikzset{tripoles/ngfet/gate height 2/.initial=0.25} % must be "gate height"/2
+\ctikzset{tripoles/ngfet/base height/.initial=.5} % must be "gate height"
+\ctikzset{tripoles/ngfet/outer base height/.initial=.25} % must be "gate height 2"
+\ctikzset{tripoles/ngfet/outer base thickness/.initial=1}
+\ctikzset{tripoles/ngfet/conn height/.initial=0}
+\ctikzset{tripoles/ngfet/height/.initial=1.1}
+\ctikzset{tripoles/ngfet/gate width/.initial=.5}
+\ctikzset{tripoles/ngfet/base width/.initial=0.36084} % must be "gate height"*cos(60)/(2*width)
+\ctikzset{tripoles/ngfet/bodydiode scale/.initial=.3}
+\ctikzset{tripoles/ngfet/bodydiode distance/.initial=.6}
+\ctikzset{tripoles/ngfet/bodydiode conn/.initial=.6}
+\ctikzset{tripoles/ngfet/curr direction/.initial=1}
+%
+% multi-emitter and multi-collector BJTs by Romano Giannetti
+%
+\ctikzset{tripoles/bjt/emitters/.initial=1}
+\ctikzset{tripoles/bjt/collectors/.initial=1}
+\pgfkeys{/tikz/emitters/.add code={}{\ctikzset{tripoles/bjt/emitters=#1}}}
+\pgfkeys{/tikz/collectors/.add code={}{\ctikzset{tripoles/bjt/collectors=#1}}}
+\ctikzset{tripoles/bjt/pins width/.initial=0.3}
+\pgfkeys{/tikz/bjt pins width/.add code={}{\ctikzset{tripoles/bjt/pins width=#1}}}
+\ctikzset{tripoles/bjt/multi height/.initial=.5}
+\pgfkeys{/tikz/bjt multi height/.add code={}{\ctikzset{tripoles/bjt/multi height/.initial=#1}}}
+%
+\ctikzset{tripoles/bjt/width/.initial=.3}
+\ctikzset{tripoles/bjt/base height 2/.initial=.4}
+\ctikzset{tripoles/bjt/base height/.initial=1.1}
+\ctikzset{tripoles/bjt/height/.initial=.4}
+\ctikzset{tripoles/bjt/base width/.initial=1}
+\ctikzset{tripoles/bjt/arrow pos/.initial=.5}
+% do NOT touch these two!
+\ctikzset{tripoles/bjt/npn/curr direction/.initial=1}
+\ctikzset{tripoles/bjt/pnp/curr direction/.initial=-1}
+
+
+%
+% definitions for transistor circles
+%
+\ctikzset{transistor circle/.is family}
+\ctikzset{transistor circle/relative thickness/.initial=1}
+\ctikzset{transistor circle/color/.initial=default}
+\ctikzset{transistor circle/dash/.initial=none}
+\ctikzset{transistor circle/scale circle radius/.initial=1}
+\ctikzset{transistor circle/default base in/.initial=0.9}
+\ctikzset{transistor circle/njfet base in/.initial=1.05}
+\ctikzset{transistor circle/pjfet base in/.initial=1.05}
+\ctikzset{transistor circle/isfet base in/.initial=0.65}
+
+\newif\ifpgf@circ@trcircle\pgf@circ@trcirclefalse
+\ctikzset{tr circle/.is if=pgf@circ@trcircle}
+\tikzset{tr circle/.is if=pgf@circ@trcircle}
+%%>>>
+
+%% definitions of transistor shapes%<<<
+%
+% add a circle to the transistor:
+%
+\def\pgfcirc@transistorcircle{
+ \ifpgf@circ@trcircle
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfsetlinewidth{\ctikzvalof{transistor circle/relative thickness}\pgflinewidth}
+ \edef\@@none{none}\edef\@@default{default}
+ \edef\@@tmp{\ctikzvalof{transistor circle/color}}
+ \ifx\@@tmp\@@default\else
+ \pgfsetcolor{\@@tmp}
+ \fi
+ \edef\@@tmp{\ctikzvalof{transistor circle/dash}}
+ \ifx\@@tmp\@@none\else
+ \expandafter\pgfsetdash\expandafter{\@@tmp}{0cm}
+ \fi
+ % radius of the circle
+ % \pgfmathsetlength{\pgf@circ@res@temp}{((#2+\extrabodydiodelen)-(#1)+(#3)*(#3)/((#2+\extrabodydiodelen)-(#1)))/2}
+ % \pgfpathcircle{\pgfpoint{#1+\pgf@circ@res@temp}{0pt}}{\pgf@circ@res@temp}
+ \pgfpathcircle{\pgfpoint{\circleleft+\circleradius}{0pt}}{\circleradius}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \fi
+}
+
+% add a ferroelectric squish to transistors
+
+\def\pgfcirc@ferroelectric#1#2{% #1 -> transistor type, #2 horizontal enlargment (prop to ...@left),
+ \ifpgf@circuit@tr@ferroel\pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgf@circ@set@relative@thickness{modifier thickness}
+ % base-gate center and width of the sigmoid
+ \pgfmathsetlength{\pgf@circ@res@other}
+ {0.5*(\ctikzvalof{tripoles/#1/gate width}+\ctikzvalof{tripoles/#1/base width}-(#2))*\pgf@circ@res@left}
+ \pgfmathsetlength{\pgf@circ@res@temp}
+ {1.2*abs(\ctikzvalof{tripoles/#1/gate width}-\ctikzvalof{tripoles/#1/base width}+0.5*(#2))*\pgf@circ@res@left}
+ \pgfsetcornersarced{\pgfpoint{-0.2\pgf@circ@res@temp}{-0.2\pgf@circ@res@temp}}
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@other+\pgf@circ@res@temp}
+ {1.1*\ctikzvalof{tripoles/#1/base height}*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@other+\pgf@circ@res@temp}
+ {0.5*\ctikzvalof{tripoles/#1/base height}*\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@other-\pgf@circ@res@temp}
+ {0.5*\ctikzvalof{tripoles/#1/base height}*\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@other-\pgf@circ@res@temp}
+ {1.1*\ctikzvalof{tripoles/#1/base height}*\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope\fi
+}
+
+\ctikzset{tr gap fill/.initial=none}
+\tikzset{tr gap fill/.style={\circuitikzbasekey/tr gap fill={#1}}}
+% fill the gap in relevant transistors
+\def\pgfcirc@fillgategap#1{% #1 transistor type
+ \edef\@@@none{none}\edef\@@@color{\ctikzvalof{tr gap fill}}% always exists
+ \ifx\@@@none\@@@color\relax\else
+ \begingroup % save the value of @res: other, step, temp
+ \edef\@@@doit{1}% draw it, set to zero if we give up
+ % ok, we have the color here. we have to get center position, with and height
+ % normally is gate height; but in igbt is outer base height (grrrr)
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/outer base height}{
+ % yes, it's an IGBT
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{tripoles/#1/outer base height}*\pgf@circ@res@up}
+ }{
+ %no. Let's try with gate height
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/gate height}{
+ % yes, go for it
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{tripoles/#1/gate height}*\pgf@circ@res@up}
+ }{
+ %no, give up, let value to 0
+ \edef\@@@doit{0}
+ }
+ }
+ % now we have to find x1 and x2: these are base width and gate width
+ % if do not have one of that, bail out.
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/gate width}{
+ \pgfmathsetlength{\pgf@circ@res@temp}{\ctikzvalof{tripoles/#1/gate width}*\pgf@circ@res@left}
+ }{
+ \edef\@@@doit{0}
+ }
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/base width}{
+ \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{tripoles/#1/base width}*\pgf@circ@res@left}
+ }{
+ \edef\@@@doit{0}
+ }
+ % if found, draw it.
+ \ifnum\@@@doit>0\relax
+ \pgfscope
+ \pgfsetfillcolor{\@@@color}
+ \pgfsetcolor{\@@@color}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@other}}{\pgfpoint{\pgf@circ@res@step}{-\pgf@circ@res@other}}
+ \pgfusepath{fill, draw}
+ \endpgfscope
+ \fi
+ \endgroup
+ \fi
+}
+
+\long\def\pgfcircdeclaretransistor#1#2#3{
+ \pgfdeclareshape{#1}
+ {
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{transistors}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\circlebase}{
+ \pgfkeysifdefined{\circuitikzbasekey/transistor circle/#1 base in}%
+ {% yes, we have it
+ \edef\circlebase{\ctikzvalof{transistor circle/#1 base in}}%
+ }{% no, use default
+ \edef\circlebase{\ctikzvalof{transistor circle/default base in}}
+ }}
+ % \savedmacro{\thistypeoftr}{\edef\thistypeoftr{#1}}
+ \saveddimen{\extrabodydiodelen}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@fet@bodydiode
+ % try to put the text to the right of the flyback diode
+ \pgfmathsetlength{\pgf@x}{(
+ \ctikzvalof{tripoles/#1/bodydiode distance}*
+ \ctikzvalof{tripoles/#1/width} +
+ \ctikzvalof{tripoles/#1/bodydiode scale}*
+ \ctikzvalof{bipoles/diode/height}/2
+ )*\pgf@circ@scaled@Rlen}
+ \else
+ \pgf@x=0pt\relax
+ \fi
+ }
+ \savedmacro{\scalecircleradius}{
+ \edef\scalecircleradius{\ctikzvalof{transistor circle/scale circle radius}}
+ }
+ \saveddimen{\circleradius}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % repeat the extrabodydiodelen (grrr)
+ \ifpgf@circuit@fet@bodydiode
+ % try to put the text to the right of the flyback diode
+ \pgfmathsetlength{\pgf@circ@res@other}{(
+ \ctikzvalof{tripoles/#1/bodydiode distance}*
+ \ctikzvalof{tripoles/#1/width} +
+ \ctikzvalof{tripoles/#1/bodydiode scale}*
+ \ctikzvalof{bipoles/diode/height}/2
+ )*\pgf@circ@scaled@Rlen}
+ \else
+ \pgf@circ@res@other=0pt\relax
+ \fi
+ % left
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgf@xa=\circlebase\pgf@xa % this is the base point of the circle
+ % northeast
+ \pgf@yb=\ctikzvalof{tripoles/#1/height}\pgf@circ@scaled@Rlen % y of the left point of circle
+ \pgf@yb=.5\pgf@yb
+ \pgf@xb=\pgf@circ@res@other % this is the x of the right points of the circle
+ %
+ \pgf@yb=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@yb %this is #3 of the circle
+ % find the radius of the circle
+ \pgfmathsetlength{\pgf@x}{((\pgf@xb)-(\pgf@xa)+(\pgf@yb)*(\pgf@yb)/((\pgf@xb)-(\pgf@xa)))/2*\scalecircleradius}
+ }
+ \saveddimen{\circleleft}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgf@x=\circlebase\pgf@xa
+ }
+ \anchor{circle center}{
+ \pgf@y=0pt\pgf@x=\circleleft\advance\pgf@x by\circleradius
+ }
+ \savedanchor{\centergap}{% this is the center position between gate and base
+ % get "left"
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgfkeysifdefined{\circuitikzbasekey/tripoles/#1/gate width}{
+ % yes, we have a separated gate
+ \pgfmathsetlength{\pgf@x}
+ {0.5*(\ctikzvalof{tripoles/#1/gate width}+\ctikzvalof{tripoles/#1/base width})*\pgf@xa}
+ }{
+ % no, use just the base
+ \pgfmathsetlength{\pgf@x}
+ {\ctikzvalof{tripoles/#1/base width}*\pgf@xa}
+ }
+ \pgf@y=0pt\relax
+ }
+ \anchor{centergap}{\centergap}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northeast{% upper right
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=0pt
+ }
+ \savedanchor\left{%center left
+ \pgf@y=0pt
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ }
+ \savedanchor\right{
+ \pgf@x=0pt\pgf@y=0pt
+ \ifpgf@circ@trcircle
+ % repeat the \circleradius computation (GRRRR)
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % repeat the extrabodydiodelen (grrr)
+ \ifpgf@circuit@fet@bodydiode
+ % try to put the text to the right of the flyback diode
+ \pgfmathsetlength{\pgf@circ@res@other}{(
+ \ctikzvalof{tripoles/#1/bodydiode distance}*
+ \ctikzvalof{tripoles/#1/width} +
+ \ctikzvalof{tripoles/#1/bodydiode scale}*
+ \ctikzvalof{bipoles/diode/height}/2
+ )*\pgf@circ@scaled@Rlen}
+ \else
+ \pgf@circ@res@other=0pt\relax
+ \fi
+ % left
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgf@xa=\circlebase\pgf@xa % this is the base point of the circle
+ % northeast
+ \pgf@yb=\ctikzvalof{tripoles/#1/height}\pgf@circ@scaled@Rlen % y of the left point of circle
+ \pgf@yb=.5\pgf@yb
+ \pgf@xb=\pgf@circ@res@other % this is the x of the right points of the circle
+ %
+ \pgf@yb=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@yb %this is #3 of the circle
+ % find the radius of the circle
+ \pgfmathsetlength{\pgf@circ@res@other}{((\pgf@xb)-(\pgf@xa)+(\pgf@yb)*(\pgf@yb)/((\pgf@xb)-(\pgf@xa)))/2*\scalecircleradius}
+ % repeat the circleleft computation
+ \pgf@xa=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen
+ \pgf@xb=\circlebase\pgf@xa
+ \pgfmathsetlength{\pgf@x}{\pgf@xb+2*\pgf@circ@res@other}
+ \fi
+ }
+ \anchor{text}{
+ \northeast
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@transisors@fixlabels
+ \ifpgf@circuit@fet@bodydiode
+ \advance \pgf@x by \extrabodydiodelen
+ \fi
+ \ifpgf@circ@trcircle
+ \left\pgf@xa=\pgf@x
+ \pgfmathsetlength{\pgf@x}{\circleleft+2*\circleradius}
+ % \advance \pgf@x by \circleradius
+ \fi
+ % add a bit of space to avoid central (substrate) terminal if drawn
+ \advance\pgf@x by 0.05\pgf@circ@scaled@Rlen\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ \else
+ \pgf@y=.7\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=0.1\pgf@x
+ \fi
+ }
+ \anchor{pathstart}{ % south
+ \northeast
+ \pgf@y=-\pgf@y
+ }
+ \anchor{pathend}{
+ \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{left}{
+ \left
+ }
+ \anchor{east}{
+ \northeast
+ \pgf@y=0pt
+ }
+ \anchor{right}{
+ \right
+ }
+ \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
+ }
+ \anchor{B}{
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \left
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{base}{
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \left
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{bulk}{ %added by Burak Kelleci
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \right
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{nobulk}{ %added by Burak Kelleci
+ \left
+ \pgf@x=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ }
+ \anchor{G}{
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \left
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{gate}{
+ \northeast
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn height}\pgf@y
+ \left
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@circ@res@step
+ }
+ \anchor{nobase}{
+ \left
+ \pgf@x=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ }
+ \anchor{circle base}{
+ \left
+ \pgf@x=\circlebase\pgf@x
+ }
+ \anchor{nogate}{
+ \left
+ \pgf@x=\ctikzvalof{tripoles/#1/gate width}\pgf@x
+ }
+ \anchor{E}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{emitter}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{C}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{collector}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{S}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{source}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{D}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{drain}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ }
+ \anchor{body C in}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@y
+ }
+ \anchor{circle C}{
+ \left
+ \pgf@xa=\circlebase\pgf@x % this is #1 of the circle
+ \northeast
+ \pgf@xb=\pgf@x %this is #2 of the circle
+ \pgf@yb=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@y %this is #3 of the circle
+ % the base of the triangle is x_2 - x_1 - r
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@xb-\pgf@xa-\circleradius}
+ % so let's go with the height
+ \pgfmathsetlength{\pgf@ya}{sqrt(abs(\circleradius*\circleradius-\pgf@circ@res@other*\pgf@circ@res@other))}
+ % finally, direction
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@ya
+ }
+ \anchor{circle E}{
+ \left
+ \pgf@xa=\circlebase\pgf@x % this is #1 of the circle
+ \northeast
+ \pgf@xb=\pgf@x %this is #2 of the circle
+ \pgf@yb=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@y %this is #3 of the circle
+ % the base of the triangle is x_2 - x_1 - r
+ \pgfmathsetlength{\pgf@circ@res@other}{\pgf@xb-\pgf@xa-\circleradius}
+ % so let's go with the height
+ \pgfmathsetlength{\pgf@ya}{sqrt(abs(\circleradius*\circleradius-\pgf@circ@res@other*\pgf@circ@res@other))}
+ % finally, direction
+ % finally, direction
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@ya
+ }
+ \anchor{body E in}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@y
+ }
+ \anchor{body C out}{
+ \northeast
+ \pgf@ya=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ \pgf@ya=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@ya
+ \pgf@y=\pgf@ya
+ \left
+ \pgf@x=-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@x
+ \pgf@y=\pgf@ya
+ }
+ \anchor{body E out}{
+ \northeast
+ \pgf@ya=-\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ \pgf@ya=\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@ya
+ \pgf@y=\pgf@ya
+ \left
+ \pgf@x=-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@x
+ \pgf@y=\pgf@ya
+ }
+ #2
+ \backgroundpath{
+ \pgftransformationadjustments
+ \pgfsetcolor{\ctikzvalof{color}}
+ %
+ \ifnum \ctikzvalof{tripoles/#1/curr direction} > 0
+ \pgf@circuit@trans@ntypetrue
+ \else
+ \pgf@circuit@trans@ntypefalse
+ \fi
+ \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
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ %
+ #3
+ % BODY DIODE
+ \ifpgf@circuit@fet@bodydiode
+ \drawbodydiode{#1}
+ \fi
+ %
+ }
+}
+}
+
+\long\def\drawbodydiode#1{
+ \pgfscope
+ \pgftransformshift{\pgfpoint{-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@circ@res@left}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgftransformrotate{90}
+ % diode scale and bodydiode scale interacts. We want the size of the diode
+ % proportional to the transistor, so we will:
+ % 1) undo diode scale 2) apply transistor scale (using the current class) 3) apply bodydiode scale
+ \pgfmathsetmacro{\@@BDscale}{\ctikzvalof{tripoles/#1/bodydiode scale}* \ctikzvalof{\ctikzclass/scale}/\ctikzvalof{diodes/scale}}
+ \pgftransformscale{\@@BDscale}
+ \ifpgf@circuit@fulldiode
+ \pgfnode{fulldiodeshape}{center}{}{pgf@bodydiode}{\pgfusepath{fill}}
+ \else
+ \pgfnode{emptydiodeshape}{center}{}{pgf@bodydiode}{\pgfusepath{fill}}
+ \fi
+ \endpgfscope
+ % Draw stroke line
+ \ifpgf@circuit@strokediode
+ \pgfpathmoveto{\pgfpointanchor{pgf@bodydiode}{west}}
+ \pgfpathlineto{\pgfpointanchor{pgf@bodydiode}{east}}
+ \pgfusepath{stroke}
+ \fi
+ %Draw upper connection to body diode
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointanchor{pgf@bodydiode}{east}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@up}}
+ \pgftransformscale{0.5}
+ \pgfnode{circ}{center}{}{}{\pgfusepath{fill}}
+ \endpgfscope{}
+ %Draw lower connection to body diode
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-\ctikzvalof{tripoles/#1/bodydiode distance}\pgf@circ@res@left}{\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpointanchor{pgf@bodydiode}{west}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right} {\ctikzvalof{tripoles/#1/bodydiode conn}\pgf@circ@res@down}}
+ \pgftransformscale{0.5}
+ \pgfnode{circ}{center}{}{}{\pgfusepath{fill}}
+ \endpgfscope
+}
+
+\long\def\declarebpt#1{
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/base height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/base height}\pgf@y
+ }
+ }{
+
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % drawing base
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \ifpgf@circuit@bpt@schottky
+ % upper
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ % % lower
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+ %draw arrow depending on type of transistor
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \edef\@@anchor{center}
+ \ifpgf@circuit@trans@ntype
+ \ifpgf@circuit@trans@arrowatend
+ \edef\@@anchor{btip}
+ \pgftransformlineattime{1.0}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}%
+ }
+ \else
+ \pgftransformlineattime{\ctikzvalof{tripoles/#1/arrow pos}}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}%
+ }
+ \fi
+ \else % p-type
+ \ifpgf@circuit@trans@arrowatend
+ \edef\@@anchor{tip}
+ \pgftransformlineattime{1.0}{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@up}%
+ }
+ \else
+ \pgftransformlineattime{\ctikzvalof{tripoles/#1/arrow pos}}{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/base height 2}\pgf@circ@res@up}%
+ }
+ \fi
+ \fi
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ \ifpgf@circuit@bpt@drawphoto
+ \pgfscope
+ \pgfsetarrowsstart{latexslim}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ {\pgfpoint{0.05\pgf@circ@res@left}{0.1\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ {\pgfpoint{0.5\pgf@circ@res@left}{0.3\pgf@circ@res@up}}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpointadd{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ {\pgfpoint{0.05\pgf@circ@res@left}{-0.1\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ {\pgfpoint{0.5\pgf@circ@res@left}{0.1\pgf@circ@res@up}}}
+ \pgfusepath{draw}
+ \endpgfscope
+ \else
+ \ifpgf@circuit@bpt@drawbase
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+ \fi
+ }
+}
+
+\declarebpt{npn}
+\declarebpt{pnp}
+%
+% multi-emitter and multi-collector BJTs by Romano Giannetti
+%
+\def\pgf@circ@bjt@C@anchor#1{% #1: collector number
+ \pgfextractx{\pgf@circ@res@temp}{\basedimension}
+ \pgfextracty{\pgf@circ@res@other}{\basedimension}
+ \ifnum\cdir>0 % NPN, above
+ \pgfpoint{\pgf@circ@res@temp}{%
+ \pgf@circ@res@other+\pgfverticaltransformationadjustment*.5*\pgflinewidth+(#1-1)*\multistep}
+ \else % PNP, below
+ \pgfpoint{\pgf@circ@res@temp}{%
+ -\pgf@circ@res@other-\pgfverticaltransformationadjustment*.5*\pgflinewidth-(#1-1)*\multistep}
+ \fi
+}
+\def\pgf@circ@bjt@E@anchor#1{% #1: collector number
+ \pgfextractx{\pgf@circ@res@temp}{\basedimension}
+ \pgfextracty{\pgf@circ@res@other}{\basedimension}
+ \ifnum\cdir<0 % PNP, above
+ \pgfpoint{\pgf@circ@res@temp}{%
+ \pgf@circ@res@other+\pgfverticaltransformationadjustment*.5*\pgflinewidth+(#1-1)*\multistep}
+ \else % PNP, below
+ \pgfpoint{\pgf@circ@res@temp}{%
+ -\pgf@circ@res@other-\pgfverticaltransformationadjustment*.5*\pgflinewidth-(#1-1)*\multistep}
+ \fi
+}
+
+\long\def\declarebjt#1{
+ \pgfdeclareshape{bjt#1}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{transistors}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ % \cdir is 1 for npn, -1 for pnp
+ \savedmacro{\cdir}{\edef\cdir{\ctikzvalof{tripoles/bjt/#1/curr direction}}}
+ \savedmacro{\numE}{\edef\numE{\ctikzvalof{tripoles/bjt/emitters}}}
+ \savedmacro{\numC}{\edef\numC{\ctikzvalof{tripoles/bjt/collectors}}}
+ % step up or down for the additional C/Es
+ \saveddimen{\multistep}{\pgfmathsetlength{\pgf@x}{%
+ \ctikzvalof{tripoles/bjt/height}*\ctikzvalof{tripoles/bjt/multi height}*
+ \ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}}
+ \saveddimen{\external}{\pgfmathsetlength{\pgf@x}{%
+ \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}}
+ \savedanchor\basedimension{% these are the dimensions if nC=1 y nE=1
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/bjt/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=\ctikzvalof{tripoles/bjt/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\northeast{% upper right
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@step}{%
+ \ctikzvalof{tripoles/bjt/height}*\ctikzvalof{tripoles/bjt/multi height}*
+ \ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \ifnum\cdir> 0
+ \edef\numup{\numC}\edef\numdown{\numE}
+ \else
+ \edef\numup{\numE}\edef\numdown{\numC}
+ \fi
+ \pgfmathsetlength{\pgf@y}{0.5*\ctikzvalof{tripoles/bjt/height}\pgf@circ@scaled@Rlen
+ + (\numup-1)*\pgf@circ@res@step+\pgfverticaltransformationadjustment*.5*\pgflinewidth
+ + \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{tripoles/bjt/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\southeast{% lower right
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@step}{%
+ \ctikzvalof{tripoles/bjt/height}*\ctikzvalof{tripoles/bjt/multi height}*
+ \ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \ifnum\cdir> 0
+ \edef\numup{\numC}\edef\numdown{\numE}
+ \else
+ \edef\numup{\numE}\edef\numdown{\numC}
+ \fi
+ \pgfmathsetlength{\pgf@y}{-0.5*\ctikzvalof{tripoles/bjt/height}\pgf@circ@scaled@Rlen
+ - (\numdown-1)*\pgf@circ@res@step-\pgfverticaltransformationadjustment*.5*\pgflinewidth
+ - \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgf@x=\ctikzvalof{tripoles/bjt/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\southwest{% lower left
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@circ@res@step}{%
+ \ctikzvalof{tripoles/bjt/height}*\ctikzvalof{tripoles/bjt/multi height}*
+ \ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \ifnum\cdir> 0
+ \edef\numup{\numC}\edef\numdown{\numE}
+ \else
+ \edef\numup{\numE}\edef\numdown{\numC}
+ \fi
+ \pgfmathsetlength{\pgf@y}{-0.5*\ctikzvalof{tripoles/bjt/height}\pgf@circ@scaled@Rlen
+ - (\numdown-1)*\pgf@circ@res@step-\pgfverticaltransformationadjustment*.5*\pgflinewidth
+ - \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@x}{-0.5*\ctikzvalof{tripoles/bjt/width}*\pgf@circ@scaled@Rlen
+ - \ctikzvalof{tripoles/bjt/pins width}*\ctikzvalof{\ctikzclass/scale}*\pgf@circ@Rlen}
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{north}{\northeast\pgf@x=0cm\relax}
+ \anchor{east}{\northeast\pgf@y=0cm\relax}
+ \anchor{south}{\southwest\pgf@x=0cm\relax}
+ \anchor{west}{\southwest\pgf@y=0cm}
+ \anchor{north east}{\northeast}
+ \anchor{north west}{\northeast\pgf@ya=\pgf@y\southwest\pgf@y=\pgf@ya}
+ \anchor{south west}{\southwest}
+ \anchor{south east}{\southeast}
+
+ \anchor{text}{\northeast\pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax}
+ \anchor{B}{\northeast\pgf@y=0cm\pgf@x=-\pgf@x\advance\pgf@x by -\external}
+ \anchor{base}{\basedimension\pgf@y=0cm\pgf@x=-\pgf@x\advance\pgf@x by -\external}
+ \anchor{nobase}{\basedimension\pgf@y=0cm\pgf@x=-\pgf@x}
+ % center of the base "bar"
+ \anchor{cbase}{\basedimension\pgf@x=-\pgf@x
+ \pgfmathsetlength{\pgf@y}{\cdir*(\numC-\numE)*\multistep/2}%
+ }
+ % geometrical centers
+ \anchor{vcenter}{\pgf@x=0cm\relax
+ \pgfmathsetlength{\pgf@y}{\cdir*(\numC-\numE)*\multistep/2}%
+ }
+ \anchor{gcenter}{%
+ \northeast\pgf@xa=0.5\pgf@x
+ \southwest\advance\pgf@xa by 0.5\pgf@x
+ \pgf@x=\pgf@xa
+ \pgfmathsetlength{\pgf@y}{\cdir*(\numC-\numE)*\multistep/2}%
+ }
+ % external connections
+ \anchor{E}{
+ \ifnum\cdir>0% npn, emitter down
+ \southeast
+ \else
+ \northeast
+ \fi
+ }% first emitter
+ \anchor{emitter}{\ifnum\cdir>0\southeast\else\northeast\fi}% first emitter
+ \anchor{C}{\ifnum\cdir<0\southeast\else\northeast\fi}
+ \anchor{collector}{\ifnum\cdir<0\southeast\else\northeast\fi}
+
+ \backgroundpath{
+ \pgftransformationadjustments
+ \pgfsetcolor{\ctikzvalof{color}}
+ %
+ % set the type and up and down number of connections
+ %
+ \ifnum\cdir> 0
+ \pgf@circuit@trans@ntypetrue
+ \edef\numup{\numC}
+ \edef\numdown{\numE}
+ \else
+ \pgf@circuit@trans@ntypefalse
+ \edef\numup{\numE}
+ \edef\numdown{\numC}
+ \fi
+ \basedimension
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\multistep
+ %
+ % set arrow positions options
+ %
+ \edef\@@anchor{center}\edef\@@pos{\ctikzvalof{tripoles/#1/arrow pos}}
+ \ifpgf@circuit@trans@arrowatend
+ \edef\@@pos{1.0}
+ \ifpgf@circuit@trans@ntype % arrow is toward outside, push it a bit
+ \edef\@@anchor{btip}
+ \else
+ \edef\@@anchor{tip}
+ \fi
+ \fi
+ %
+ % Drawing upper connections
+ %
+ \pgfscope
+ \pgf@circ@count@a=\numup\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \advance\pgf@circ@count@a-1\relax
+ \pgfmathsetlength{\pgf@circ@res@other}{\the\pgf@circ@count@a*\multistep}%
+ \ifnum\pgf@circ@count@a=\numexpr\numup-1\relax % draw the external pin connection
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\external+\pgfverticaltransformationadjustment*.5*\pgflinewidth+\pgf@circ@res@other}}%
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth+\pgf@circ@res@other}}%
+ \else
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth+\pgf@circ@res@other}}%
+ \fi
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/bjt/base height 2}\pgf@circ@res@up+\pgf@circ@res@other}}%
+ \pgfsetroundcap % better when connecting to sloped lines
+ \pgfusepath{draw}
+ \ifpgf@circuit@trans@ntype\else % it's a PNP; draw arrow
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth+\pgf@circ@res@other}%
+ }{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/bjt/base height 2}\pgf@circ@res@up+\pgf@circ@res@other}%
+ }
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ \fi
+ \repeatpgfmathloop
+ \endpgfscope
+ %
+ % Drawing base
+ %
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \ifpgf@circuit@bpt@schottky
+ % upper
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left+
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@up+(\numup-1)*\multistep}}
+ % lower
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left-
+ \ctikzvalof{tripoles/schottky base size}\pgf@circ@scaled@Rlen}
+ {\ctikzvalof{tripoles/bjt/base height}\pgf@circ@res@down-(\numdown-1)*\multistep}}
+ \fi
+ \pgfsetroundcap % I like it more...
+ \pgfusepath{draw}
+ \endpgfscope
+ %
+ % draw base external connection
+ %
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left-\external}{0pt}}
+ \pgfusepath{draw}
+ %
+ % Drawing lower connections
+ %
+ \pgfscope
+ \pgf@circ@count@a=\numdown\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \advance\pgf@circ@count@a-1\relax
+ \pgfmathsetlength{\pgf@circ@res@other}{\the\pgf@circ@count@a*\multistep}%
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/bjt/base height 2}\pgf@circ@res@down-\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@right}
+ {\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth-\pgf@circ@res@other}}
+ \ifnum\pgf@circ@count@a=\numexpr\numdown-1\relax % draw the external pin connection
+ \pgfpathlineto{\pgfpoint
+ {\pgf@circ@res@right}
+ {\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth-\pgf@circ@res@other-\external}}
+ \fi
+ \pgfsetroundcap % better when connecting to sloped lines
+ \pgfusepath{draw}
+ \ifpgf@circuit@trans@ntype % it's a NPN; draw arrow
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint
+ {\ctikzvalof{tripoles/bjt/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/bjt/base height 2}\pgf@circ@res@down-\pgf@circ@res@other}%
+ }{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth-\pgf@circ@res@other}%
+ }
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ \fi
+ \repeatpgfmathloop
+ \endpgfscope
+ }
+ % \pgf@sh@s@<name of the shape here> contains all the code for the shape
+ % and is executed just before a node is drawn.
+ \expandafter\pgfutil@g@addto@macro\csname pgf@sh@s@bjt#1\endcsname{%
+ % Start with the maximum collector number and go backwards.
+ \pgf@circ@count@a=\numC\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\xdef\csname pgf@anchor@bjt#1@C\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@bjt@C@anchor{\the\pgf@circ@count@a}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ % and emitters
+ \pgf@circ@count@a=\numE\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\xdef\csname pgf@anchor@bjt#1@E\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@bjt@E@anchor{\the\pgf@circ@count@a}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+ }
+}
+
+\declarebjt{npn}
+\declarebjt{pnp}
+
+% end of multi-bjts
+
+\long\def\declareigbt#1{
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{nobase}{
+ \left
+ \pgf@x=\ctikzvalof{tripoles/#1/gate width}\pgf@x
+ }
+ }
+ {
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{#1}
+ %draw upper connection
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ %draw thicker gate lines
+ \pgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/outer base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/outer base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ % set the normal thickness
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \edef\@@extrat{\ctikzvalof{tripoles/#1/outer base thickness}}
+ \pgfsetlinewidth{\@@extrat\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ %draw lower connection
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+ %draw arrow depending on type of transistor
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \ifpgf@circuit@trans@ntype
+ \edef\@@anchor{btip}\edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{tip}\edef\@@pos{1.0}
+ \fi
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.5}
+ \fi
+ \ifpgf@circuit@trans@ntype
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}%
+ }
+ \else
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}%
+ }
+ \fi
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ %draw gate
+ \ifpgf@circuit@bpt@drawgate
+ \ifpgf@circuit@trans@ntype
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}%
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}%
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@up}}
+ \fi
+ \fi
+ \pgfusepath{draw}
+ }
+}
+
+\declareigbt{pigbt}
+\declareigbt{nigbt}
+\declareigbt{Lnigbt}
+\declareigbt{Lpigbt}
+
+% Graphene FET, See https://github.com/circuitikz/circuitikz/issues/496
+\long\def\declaregfet#1{
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{outer hex up}{
+ \left
+ \pgf@xa=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@x=-\pgf@xa
+ }
+ \anchor{outer hex down}{
+ \left
+ \pgf@xa=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@y=-\pgf@y
+ \pgf@x=-\pgf@xa
+ }
+ \anchor{inner hex up}{
+ \left
+ \pgf@xa=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@x=\pgf@xa
+ }
+ \anchor{inner hex down}{
+ \left
+ \pgf@xa=\ctikzvalof{tripoles/#1/base width}\pgf@x
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@y=-\pgf@y
+ \pgf@x=\pgf@xa
+ }
+ \anchor{right}{
+ \northeast\pgf@y=0pt\relax
+ \pgfmathsetlength{\pgf@xa}{\ctikzvalof{tripoles/#1/base width}*
+ \ctikzvalof{tripoles/#1/width}*\pgf@circ@scaled@Rlen}
+ \advance \pgf@x by \pgf@xa
+ }
+ \anchor{text}{% need a different text: no circle, shift to the right
+ \northeast
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@transisors@fixlabels
+ \ifpgf@circuit@fet@bodydiode
+ \advance \pgf@x by \extrabodydiodelen
+ \else
+ \pgfmathsetlength{\pgf@xa}{\ctikzvalof{tripoles/#1/base width}*
+ \ctikzvalof{tripoles/#1/width}*\pgf@circ@scaled@Rlen}
+ \advance \pgf@x by \pgf@xa
+ \fi
+ % no circle for gfets
+ % add a bit of space to avoid central (substrate) terminal if drawn
+ \advance\pgf@x by 0.05\pgf@circ@scaled@Rlen\relax
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ \else
+ \pgf@y=.7\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=0.1\pgf@x
+ \fi
+ }
+ }
+ {
+ % no circle for gfets (clearly!)
+ %draw upper connection to hexagon
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+ % draw (fillable) hexagon
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {-\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {-\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ %draw thicker gate lines
+ \pgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/outer base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/outer base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ % set the normal thickness
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \edef\@@extrat{\ctikzvalof{tripoles/#1/outer base thickness}}
+ \pgfsetlinewidth{\@@extrat\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5\pgflinewidth}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ %draw arrow depending on type of transistor
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \ifpgf@circuit@trans@ntype
+ \edef\@@anchor{btip}\edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{tip}\edef\@@pos{1.0}
+ \fi
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.5}
+ \fi
+ \ifpgf@circuit@trans@ntype
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}%
+ }
+ \else
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint{\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint{\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}%
+ }
+ \fi
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ %draw gate
+ \ifpgf@circuit@trans@ntype
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}%
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}%
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@up}}
+ \fi
+ \pgfusepath{draw}
+ }
+}
+
+\declaregfet{pgfet}
+\declaregfet{ngfet}
+
+% Plain MOSes
+
+\pgfcircdeclaretransistor{nmos}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/nmos/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/nmos/gate height}\pgf@y
+ }
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{nmos}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/base height}\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \ifpgf@circuit@mos@arrows
+ \pgfscope
+ \ifpgf@circuit@trans@arrowatend
+ \pgftransformshift{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{trarrow}{btip}{}{}{\pgfusepath{stroke}}
+ \else
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\ctikzvalof{tripoles/nmos/arrow pos}}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/nmos/gate width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/nmos/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \fi
+ \endpgfscope
+ \fi
+
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmos/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@bpt@drawbulk % added by Burak Kelleci
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/nmos/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgfcirc@ferroelectric{nmos}{0}
+}
+
+\pgfcircdeclaretransistor{pmos}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/pmos/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/pmos/gate height}\pgf@y
+ }
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{nmos}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \ifpgf@circuit@mos@arrows
+ \pgfscope
+ \ifpgf@circuit@trans@arrowatend
+ \pgftransformshift{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}%
+ }
+ \pgftransformrotate{180}
+ \pgfnode{trarrow}{tip}{}{}{\pgfusepath{stroke}}
+ \else
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\ctikzvalof{tripoles/pmos/arrow pos}}{%
+ \pgfpoint%
+ {\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \fi
+ \endpgfscope
+ \fi
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/base height}\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/pmos/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+
+
+ \pgfusepath{draw}
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@bpt@drawbulk % added by Burak Kelleci
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/pmos/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@pmos@nocircle\else
+ % we are not scaling the circle with the MOS --- I think it's better to have it
+ % coherent with the poles/nodes of the rest of the circuit.
+ \pgfpathcircle{\pgfpoint
+ {\ctikzvalof{tripoles/pmos/gate width}\pgf@circ@res@left - \ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \ifpgf@circuit@pmos@emptycircle
+ \pgfsetfillcolor{white}
+ \fi
+ \pgfusepath{draw,fill}
+ \fi
+
+ \pgfcirc@ferroelectric{pmos}{0}
+}
+
+%%% depletion MOSFET (simplified symbols)
+
+\long\def\pgfcirc@filldraw@depletion#1{%
+ \ifx\tikz@fillcolor\pgfutil@empty
+ % if there is no explicit fill check the specific key
+ \edef\@@tmp{\ctikzvalof{tripoles/#1/depletion color}}\edef\@@none{none}%
+ \ifx\@@tmp\@@none % if it's none
+ \pgfusepath{draw}%
+ \else
+ \edef\@@default{default}%
+ \ifx\@@tmp\@@default % fill with the pen color
+ \pgfusepath{draw, fill}%
+ \else
+ \pgfsetfillcolor{\@@tmp}%
+ \pgfusepath{draw, fill}%
+ \fi
+ \fi
+ \else
+ \pgfsetfillcolor{\tikz@fillcolor}%
+ \pgfusepath{draw, fill}%
+ \fi
+}
+
+\pgfcircdeclaretransistor{nmosd}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/nmosd/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/nmosd/gate height}\pgf@y
+ }
+ \anchor{nobulk}{ %override
+ \left
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/nmosd/depletion width}\pgf@x
+ \pgf@x=\ctikzvalof{tripoles/nmosd/base width}\pgf@x
+ \advance\pgf@x by -\pgf@circ@res@temp
+ }
+ }{%
+ % draw depletion channel
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{nmos}
+ \pgfscope
+ \pgfpathrectanglecorners
+ {\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+ {\pgfpoint
+ {(\ctikzvalof{tripoles/nmosd/base width} - \ctikzvalof{tripoles/nmosd/depletion width})*\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+ \pgfcirc@filldraw@depletion{nmosd}
+ \endpgfscope
+ % draw drain and source terminals
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/base height}\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ \ifpgf@circuit@mos@arrows
+ \pgfscope
+ \ifpgf@circuit@trans@arrowatend
+ \pgftransformshift{\pgfpoint
+ {\pgf@circ@res@right}%
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{trarrow}{btip}{}{}{\pgfusepath{stroke}}
+ \else
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\ctikzvalof{tripoles/nmosd/arrow pos}}{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/nmosd/gate width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}%
+ }{%
+ \pgfpoint
+ {\pgf@circ@res@right-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/nmosd/gate height}\pgf@circ@res@down}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \fi
+ \endpgfscope
+ \fi
+
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/nmosd/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@bpt@drawbulk % added by Burak Kelleci
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/nmosd/base width}\pgf@circ@res@left-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \pgfcirc@ferroelectric{nmosd}{\ctikzvalof{tripoles/nmosd/depletion width}}
+}
+
+\pgfcircdeclaretransistor{pmosd}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/pmosd/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/pmosd/gate height}\pgf@y
+ }
+ \anchor{nobulk}{ %override
+ \left
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/pmosd/depletion width}\pgf@x
+ \pgf@x=\ctikzvalof{tripoles/pmosd/base width}\pgf@x
+ \advance\pgf@x by -\pgf@circ@res@temp
+ }
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{nmos}
+ % draw depletion channel
+ \pgfscope
+ \pgfpathrectanglecorners
+ {\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ {\pgfpoint
+ {(\ctikzvalof{tripoles/pmosd/base width} - \ctikzvalof{tripoles/pmosd/depletion width})*\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ \pgfcirc@filldraw@depletion{pmosd}
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \ifpgf@circuit@mos@arrows
+ \pgfscope
+ \ifpgf@circuit@trans@arrowatend
+ \pgftransformshift{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}%
+ }
+ \pgftransformrotate{180}
+ \pgfnode{trarrow}{tip}{}{}{\pgfusepath{stroke}}
+ \else
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \pgftransformlineattime{\ctikzvalof{tripoles/pmosd/arrow pos}}{%
+ \pgfpoint%
+ {\pgf@circ@res@right-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}%
+ }{%
+ \pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left}%
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}%
+ }
+ \pgfnode{currarrow}{center}{}{}{\pgfusepath{stroke}}
+ \fi
+ \endpgfscope
+ \fi
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/base height}\pgf@circ@res@down}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/pmosd/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+
+
+ \pgfusepath{draw}
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@bpt@drawbulk % added by Burak Kelleci
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/pmosd/base width}\pgf@circ@res@left-\ctikzvalof{tripoles/nmosd/depletion width}*\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+
+ \ifpgf@circuit@pmos@nocircle\else
+ % we are not scaling the circle with the MOS --- I think it's better to have it
+ % coherent with the poles/nodes of the rest of the circuit.
+ \pgfpathcircle{\pgfpoint
+ {\ctikzvalof{tripoles/pmosd/gate width}\pgf@circ@res@left - \ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}{\ctikzvalof{nodes width}*\pgf@circ@Rlen}
+ \ifpgf@circuit@pmos@emptycircle
+ \pgfsetfillcolor{white}
+ \fi
+ \pgfusepath{draw,fill}
+ \fi
+
+ \pgfcirc@ferroelectric{pmosd}{\ctikzvalof{tripoles/pmosd/depletion width}}
+}
+%% HEMT FET Transistor
+\pgfcircdeclaretransistor{hemt}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/hemt/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/hemt/gate height}\pgf@y
+ }
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/hemt/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/hemt/gate height}\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/hemt/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/hemt/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/hemt/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/hemt/base height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ \ifpgf@circuit@bpt@drawgate
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/hemt/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \fi
+}
+
+\long\def\drawfetcore#1{
+ \pgftransformationadjustments
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ % fill the gap color if requested
+ \pgfcirc@fillgategap{#1}
+
+ %top connection
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up}}
+ \ifpgf@circuit@trans@depletiontype
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \else
+
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up*0.45}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@up*0.25}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down*0.25}}
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/nfet/base height}\pgf@circ@res@down*0.45}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/base height}\pgf@circ@res@down}}
+ \fi
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+ %Bulk connection line
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ %bottom connection
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ %draw thick gate line
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % arrows
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \ifpgf@circuit@trans@ntype
+ \edef\@@anchor{tip}
+ \edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{btip}
+ \edef\@@pos{0.0}
+ \fi
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.6}
+ \fi
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/#1/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \ifpgf@circuit@trans@ntype
+ \else
+ \pgftransformrotate{180}
+ \fi
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+
+ % GATE CONNECTION
+ \ifpgf@circuit@bpt@drawgate
+ \ifpgf@circuit@trans@ntype
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \else
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*.5*\pgflinewidth}{-\ctikzvalof{tripoles/#1/conn height}\pgf@circ@res@down}}
+ \fi
+ \pgfusepath{draw}
+ \fi
+
+ \pgfcirc@ferroelectric{#1}{0}
+
+}
+
+\long\def\pgfdeclaretransistorwrapperaddbulk#1#2#3
+{\pgfcircdeclaretransistor{#1}{
+ \anchor{bulk}{\left\pgf@x=0pt}
+ \anchor{B}{\left\pgf@x=0pt}%override Base anchor from npn&igbt
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height}\pgf@y
+ }
+ #2
+ }
+ {#3}
+}
+
+\pgfdeclaretransistorwrapperaddbulk{nfet}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{nfet}
+}
+
+\pgfdeclaretransistorwrapperaddbulk{pfet}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{pfet}
+}
+
+\pgfdeclaretransistorwrapperaddbulk{nfetd}{}{%
+ \pgf@circuit@trans@depletiontypetrue
+ \drawfetcore{nfetd}
+}
+
+\pgfdeclaretransistorwrapperaddbulk{pfetd}{}{%
+ \pgf@circuit@trans@depletiontypetrue
+ \drawfetcore{pfetd}
+}
+% N-CHANNEL IGFET ENHANCEMENT TYPE
+\pgfdeclaretransistorwrapperaddbulk{nigfete}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{nigfete}
+
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+\fi
+}
+
+% N-CHANNEL IGFET ENHANCEMENT TYPE with Bulk connector
+\pgfdeclaretransistorwrapperaddbulk{nigfetebulk}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{nigfetebulk}
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfetebulk/gate height}\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+ \fi
+}
+
+% N-CHANNEL IGFET DEPLETION TYPE
+\pgfdeclaretransistorwrapperaddbulk{nigfetd}{}{%
+ \pgf@circuit@trans@depletiontypetrue
+ \drawfetcore{nigfetd}
+
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+ \fi
+}
+
+% P-CHANNEL IGFET ENHANCEMENT TYPE
+\pgfdeclaretransistorwrapperaddbulk{pigfete}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{pigfete}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/pigfete/gate height}\pgf@circ@res@up}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope
+ \fi
+}
+
+% P-CHANNEL IGFET ENHANCEMENT TYPE with bulk connector
+\pgfdeclaretransistorwrapperaddbulk{pigfetebulk}{}{%
+ \pgf@circuit@trans@depletiontypefalse
+ \drawfetcore{pigfetebulk}
+}
+
+% P-CHANNEL IGFET DEPLETION TYPE
+\pgfdeclaretransistorwrapperaddbulk{pigfetd}{}{%
+ \pgf@circuit@trans@depletiontypetrue
+ \drawfetcore{pigfetd}
+
+ % SOURCE CONNECTION
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfete/gate height}\pgf@circ@res@up}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+ \fi
+}
+
+%%% uni-junction transistors: jfets, ujts
+
+\long\def\pgfcircdeclarejunctiontransistor#1#2#3{% name, extra anchors, extra draw
+ \pgfcircdeclaretransistor{#1}{
+ \anchor{inner up}{
+ \northeast
+ \pgf@y=\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ }
+ \anchor{inner down}{
+ \northeast
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ }
+ \anchor{kink}{
+ \northeast
+ \pgf@ya=-\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \left
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@ya
+ \pgf@x=\ctikzvalof{tripoles/#1/conn kink}\pgf@x
+ }
+ % extra anchors (or override)
+ #2
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+
+ % get direction
+ \edef\@@dir{\ctikzvalof{tripoles/#1/curr direction}}
+
+ % draw drain/source connections: up
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up}}
+
+ % down
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/#1/gate height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+ \endpgfscope
+
+ % arrow
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \ifnum\@@dir>0
+ \edef\@@anchor{tip}\edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{btip}\edef\@@pos{1.0}
+ \fi
+ \else
+ \ifnum\@@dir>0
+ \edef\@@anchor{center}\edef\@@pos{0.6}
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.4}
+ \fi
+ \fi
+ % find x1, x2 and y for the base arrow
+ \ifnum\@@dir>0
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/conn kink}\pgf@circ@res@left
+ \pgf@circ@res@other=\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left
+ \pgf@circ@res@zero=\ctikzvalof{tripoles/#1/union height}\pgf@circ@res@down
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@down
+ \else
+ \pgf@circ@res@step=\ctikzvalof{tripoles/#1/gate width}\pgf@circ@res@left
+ \pgf@circ@res@other=\ctikzvalof{tripoles/#1/conn kink}\pgf@circ@res@left
+ \pgf@circ@res@zero=\ctikzvalof{tripoles/#1/gate height 2}\pgf@circ@res@up
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/#1/union height}\pgf@circ@res@up
+ \fi
+ %
+ % gate line (called emitter in UJT)
+ %
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ %
+ % horizontal gate line
+ %
+ \ifpgf@circuit@bpt@drawgate
+ \ifnum\@@dir>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}
+ \else
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \fi
+ \fi
+ \pgfusepath{draw}
+ %
+ % gate arrows (called emitter in UJT)
+ %
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint{\pgf@circ@res@step}{\pgf@circ@res@temp}
+ }{%
+ \pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}
+ }
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ %
+ % gate line (called emitter in UJT)
+ %
+ \endpgfscope
+
+ % extra drawings
+ #3
+ }
+}
+
+% NJFET and PJFET
+
+\pgfcircdeclarejunctiontransistor{njfet}{}{}
+\pgfcircdeclarejunctiontransistor{pjfet}{}{}
+
+\def\@ujtanchoroverride#1{
+ \savedanchor{\ujtrealemitter}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y %north anchor height
+ % kink AND conn height, they're the same
+ \pgf@y=-\ctikzvalof{tripoles/#1/gate height 2}\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/#1/curr direction}\pgf@y
+ % horizontal
+ \pgf@x=-\ctikzvalof{tripoles/#1/width}\pgf@circ@scaled@Rlen % left
+ \ifpgf@circuit@bpt@drawgate\else
+ \pgf@x=\ctikzvalof{tripoles/#1/conn kink}\pgf@x
+ \fi
+ }
+ \anchor{E}{\ujtrealemitter}
+ \anchor{emitter}{\ujtrealemitter}
+ \anchor{B2}{\northeast\pgf@y=-\pgf@y}
+ \anchor{B1}{\northeast}
+}
+
+
+\pgfcircdeclarejunctiontransistor{nujt}{\@ujtanchoroverride{nujt}}{}
+\pgfcircdeclarejunctiontransistor{pujt}{\@ujtanchoroverride{pujt}}{}
+
+
+\pgfdeclaretransistorwrapperaddbulk{isfet}{
+ }{%
+ % add the circle if requested (before everything else, so we can fill it)
+ \pgfcirc@transistorcircle
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ % DRAIN CONNECTION
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{tripoles/isfet/gate height}\pgf@circ@res@up}}
+ % DRAIN
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/isfet/gate height}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % GATE, DEPLETION TYPE
+ \pgfscope %% added
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/isfet/base height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/isfet/base height}\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth} %% added
+ \pgfusepath{draw} %% added
+ \endpgfscope %% added
+
+ % BULK
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+.5\pgflinewidth}
+ {\pgf@circ@res@up+\pgf@circ@res@down}}
+
+ % SOURCE
+ \pgfpathmoveto{\pgfpoint
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/isfet/gate height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}
+ {\ctikzvalof{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-\pgfverticaltransformationadjustment*.5*\pgflinewidth}}
+ \pgfusepath{draw}
+
+ % SOLDER DOT at source-bulk connection
+ \ifpgf@circuit@fet@solderdot
+ \pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{
+ \ctikzvalof{tripoles/nigfete/gate height}\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{}
+ \endpgfscope{}
+ \fi
+ % ARROW
+ \pgfscope
+ \pgfslopedattimetrue
+ \pgfallowupsidedownattimetrue
+ \pgfresetnontranslationattimefalse
+ \ifpgf@circuit@trans@arrowatend
+ \edef\@@anchor{tip}\edef\@@pos{1.0}
+ \else
+ \edef\@@anchor{center}\edef\@@pos{0.6}
+ \fi
+ \pgftransformlineattime{\@@pos}{%
+ \pgfpoint
+ {\pgf@circ@res@right}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }{%
+ \pgfpoint%
+ {\ctikzvalof{tripoles/isfet/base width}\pgf@circ@res@left}%
+ {\pgf@circ@res@up+\pgf@circ@res@down}%
+ }
+ \pgfnode{trarrow}{\@@anchor}{}{}{\pgfusepath{stroke}}
+ \endpgfscope
+ \pgfusepath{draw}
+
+ % Wavy lines
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tripoles/isfet/waves x sep}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/waves y sep}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tripoles/isfet/waves x sep}\pgf@circ@res@up}{0cm}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tripoles/isfet/waves x sep}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/waves y sep}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathsine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfpathcosine{\pgfpoint{-\ctikzvalof{tripoles/isfet/wave width}\pgf@circ@res@up}{-\ctikzvalof{tripoles/isfet/wave amp}\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% end of transistors
+% %>>>
+
+%% Transistor's path definitions%<<<
+
+\pgf@circ@definetranspath{nmos}
+\pgf@circ@definetranspath{pmos}
+\pgf@circ@definetranspath{nmosd}
+\pgf@circ@definetranspath{pmosd}
+\pgf@circ@definetranspath{hemt}
+\pgf@circ@definetranspath{npn}
+\pgf@circ@definetranspath{pnp}
+\pgf@circ@definetranspath{nfet}
+\pgf@circ@definetranspath{nigfete}
+\pgf@circ@definetranspath{nigfetd}
+\pgf@circ@definetranspath{nigfetebulk}
+\pgf@circ@definetranspath{pfet}
+\pgf@circ@definetranspath{pigfete}
+\pgf@circ@definetranspath{pigfetd}
+\pgf@circ@definetranspath{pigfetebulk}
+\pgf@circ@definetranspath{njfet}
+\pgf@circ@definetranspath{pjfet}
+\pgf@circ@definetranspath{pigbt}
+\pgf@circ@definetranspath{nigbt}
+\pgf@circ@definetranspath{Lpigbt}
+\pgf@circ@definetranspath{Lnigbt}% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Amplifiers
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Settings for Amplifiers%<<<1
+%
+% switches for op amps
+% changing input polarity
+%
+\newif\ifpgf@circuit@oa@iplusup\pgf@circuit@oa@iplusupfalse
+\pgfkeys{/tikz/noinv input up/.add code={}{\pgf@circuit@oa@iplusuptrue}}
+\ctikzset{noinv input up/.add code={}{\pgf@circuit@oa@iplusuptrue}}
+\pgfkeys{/tikz/noinv input down/.add code={}{\pgf@circuit@oa@iplusupfalse}}
+\ctikzset{noinv input down/.add code={}{\pgf@circuit@oa@iplusupfalse}}
+%
+% changing output polarity (for fully diff objects)
+%
+\newif\ifpgf@circuit@oa@oplusup\pgf@circuit@oa@oplusuptrue
+\pgfkeys{/tikz/noinv output up/.add code={}{\pgf@circuit@oa@oplusuptrue}}
+\ctikzset{noinv output up/.add code={}{\pgf@circuit@oa@oplusuptrue}}
+\pgfkeys{/tikz/noinv output down/.add code={}{\pgf@circuit@oa@oplusupfalse}}
+\ctikzset{noinv output down/.add code={}{\pgf@circuit@oa@oplusupfalse}}
+
+% Operational amplifier
+\ctikzset{tripoles/op amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/op amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/op amp/height/.initial=1.4} % Total height
+\ctikzset{tripoles/op amp/input height/.initial=.5} % Input port vertical separation
+\ctikzset{tripoles/op amp/up pos/.initial=.45} % Top and bottom anchor position
+\ctikzset{tripoles/op amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Fully differential operational amplifier
+\ctikzset{tripoles/fd op amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/fd op amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/fd op amp/height/.initial=1.4} % Total height
+\ctikzset{tripoles/fd op amp/input height/.initial=.5} % Input port vertical separation
+\ctikzset{tripoles/fd op amp/output height/.initial=.5} % Output port vertical separation
+\ctikzset{tripoles/fd op amp/up pos/.initial=.45} % Top and bottom anchor position
+\ctikzset{tripoles/fd op amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+\ctikzset{tripoles/en amp/width/.initial=1.7}
+\ctikzset{tripoles/en amp/port width/.initial=.7}
+\ctikzset{tripoles/en amp/height/.initial=1.6}
+\ctikzset{tripoles/en amp/input height/.initial=.3}
+\ctikzset{tripoles/en amp/up pos/.initial=.45}
+\ctikzset{tripoles/en amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+\ctikzset{tripoles/en amp/font2/.initial=\pgf@circ@font@twelve} % Absolute font size needed!
+\ctikzset{tripoles/en amp/text/.initial={$\mathstrut{\triangleright}\,{\infty}$}}
+\tikzset{
+ en amp text/.code = {%
+ \ctikzsetvalof{tripoles/en amp/text}{#1}%
+ },
+ en amp text A/.code = {%
+ \ctikzsetvalof{tripoles/en amp/text}{$\mathstrut{\triangleright}\,\mathrm{A}$}%
+ },
+}
+
+% Transconductance amplifier
+\ctikzset{tripoles/gm amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/gm amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/gm amp/height/.initial=1.4} % Left side of the trapezoid
+\ctikzset{tripoles/gm amp/height 2/.initial=0.5} % Right side of the trapezoid
+\ctikzset{tripoles/gm amp/input height/.initial=.5} % Input port vertical separation
+\ctikzset{tripoles/gm amp/up pos/.initial=.45} % Top and bottom anchor position
+\ctikzset{tripoles/gm amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Instrumentation amplifier
+\ctikzset{tripoles/inst amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/inst amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/inst amp/height/.initial=1.4} % Left side of the trapezoid
+\ctikzset{tripoles/inst amp/height 2/.initial=0.6} % Right side of the trapezoid
+\ctikzset{tripoles/inst amp/input height/.initial=.5} % Input ports vertical separation
+\ctikzset{tripoles/inst amp/up pos/.initial=.4} % Top and bottom anchor position
+\ctikzset{tripoles/inst amp/refv pos/.initial=.7} % Top and bottom voltage reference position
+\ctikzset{tripoles/inst amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Instrumentation amplifier with differential output
+\ctikzset{tripoles/fd inst amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/fd inst amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/fd inst amp/height/.initial=1.4} % Left side of the trapezoid
+\ctikzset{tripoles/fd inst amp/height 2/.initial=0.6} % Right side of the trapezoid
+\ctikzset{tripoles/fd inst amp/input height/.initial=.5} % Input ports vertical separation
+\ctikzset{tripoles/fd inst amp/output height/.initial=.5} % Output ports vertical separation
+\ctikzset{tripoles/fd inst amp/up pos/.initial=.4} % Top and bottom anchor position
+\ctikzset{tripoles/fd inst amp/refv pos/.initial=.7} % Top and bottom voltage reference position
+\ctikzset{tripoles/fd inst amp/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Instrumentation amplifier with gain resistor terminals
+\ctikzset{tripoles/inst amp ra/width/.initial=2.4} % Total width
+\ctikzset{tripoles/inst amp ra/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/inst amp ra/height/.initial=2.9} % Left side of the trapezoid
+\ctikzset{tripoles/inst amp ra/height 2/.initial=0.4} % Right side of the trapezoid
+\ctikzset{tripoles/inst amp ra/input height/.initial=.7} % Input ports vertical separation
+\ctikzset{tripoles/inst amp ra/up pos/.initial=.4} % Top and bottom anchor position
+\ctikzset{tripoles/inst amp ra/refv pos/.initial=.7} % Top and bottom voltage reference position
+\ctikzset{tripoles/inst amp ra/ra pos/.initial=.6} % Gain resistor terminals vertical separation
+\ctikzset{tripoles/inst amp ra/font/.initial=\pgf@circ@font@tenbm} % Absolute font size needed!
+
+% Plain amplifier
+\ctikzset{tripoles/plain amp/width/.initial=1.7} % Total width
+\ctikzset{tripoles/plain amp/port width/.initial=.7} % Terminals length
+\ctikzset{tripoles/plain amp/height/.initial=1.4} % Total height
+\ctikzset{tripoles/plain amp/input height/.initial=.5} % Input ports vertical separation
+\ctikzset{tripoles/plain amp/up pos/.initial=.45} % Top and bottom anchor position
+
+% changing fonts and symbols of amplifiers
+\ctikzset{amplifiers/symbol font/.code={%
+ \ctikzset{tripoles/inst amp ra/font=#1}%
+ \ctikzset{tripoles/fd inst amp/font=#1}%
+ \ctikzset{tripoles/inst amp/font=#1}%
+ \ctikzset{tripoles/gm amp/font=#1}%
+ \ctikzset{tripoles/en amp/font=#1}%
+ \ctikzset{tripoles/fd op amp/font=#1}%
+ \ctikzset{tripoles/op amp/font=#1}%
+}}
+\ctikzset{amplifiers/plus/.initial={$+$}}
+\ctikzset{amplifiers/minus/.initial={$-$}}
+\tikzset{amp symbol font/.code={%
+ \ctikzset{amplifiers/symbol font={#1}}%
+ }
+}
+\tikzset{amp plus/.code={\ctikzsetvalof{amplifiers/plus}{#1}}}
+\tikzset{amp minus/.code={\ctikzsetvalof{amplifiers/minus}{#1}}}
+\def\pgf@circ@ampli@plus{\ctikzvalof{amplifiers/plus}}
+\def\pgf@circ@ampli@minus{\ctikzvalof{amplifiers/minus}}
+%%>>>
+
+%% Nodes for amplifiers%<<<
+%% operational and instrumentation amplifiers
+
+\pgfdeclareshape{op amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\left{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{north}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \savedanchor\left{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/op amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/op amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/op amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\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
+ }
+
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ % Triangle
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/op amp/port width}\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ % Negative input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % Positive input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/op amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Output terminal
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/op amp/port width}\pgf@circ@res@right}{0pt}}
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+% Op amp shape as in european standard EN 60617
+\pgfdeclareshape{en amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/en amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\left{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{north}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/en amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/en amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/en amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/en amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \anchor{up}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \pgf@x=-\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/en amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/en amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/en amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/en amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/en amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/en amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{.7\pgf@circ@res@right}{0pt}}
+ \pgfsetrectcap
+ \pgfusepath{draw}
+
+
+ \pgftext[top, y=-.5ex, at=\pgfpoint{0pt}{\pgf@circ@res@up}]{\hbox{\ctikzvalof{tripoles/en amp/font2}\ctikzvalof{tripoles/en amp/text}}}
+ % \pgftext[top, y=-.5ex, at=\pgfpoint{0pt}{\pgf@circ@res@up}]{\ctikzvalof{tripoles/en amp/font2}$\mathstrut{\triangleright}\,\mathrm{A}$}
+ }
+}
+
+% Fully differential output op amp
+% Contributed by Kristofer M. Monisit
+\pgfdeclareshape{fd op amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \savedanchor\outline{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@oplusup\else\pgf@y=-\pgf@y\fi
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y\pgf@x=0pt\relax
+ }
+ \anchor{north}{
+ \northwest\pgf@x=0pt\relax
+ }
+ \savedanchor\left{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/fd op amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@right}{0pt}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out up}{
+ \northwest
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/output height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{out down}{
+ \northwest
+ \pgf@y=-\ctikzvalof{tripoles/fd op amp/output height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{out +}{
+ \outline
+ \pgf@y=\ctikzvalof{tripoles/fd op amp/output height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{out -}{
+ \outline
+ \pgf@y=-\ctikzvalof{tripoles/fd op amp/output height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{bout +}{
+ \outline
+ \pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}
+ {\pgfpoint{\pgf@xa}{0pt}}
+ {\pgfpoint{0pt}{\pgf@ya}}
+ }
+ \anchor{bout -}{
+ \outline
+ \pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}
+ {\pgfpoint{\pgf@xa}{0pt}}
+ {\pgfpoint{0pt}{\pgf@ya}}
+ \pgf@y=-\pgf@y
+ }
+ \anchor{bout up}{
+ \northwest
+ \pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}
+ {\pgfpoint{\pgf@xa}{0pt}}
+ {\pgfpoint{0pt}{\pgf@ya}}
+ }
+ \anchor{bout down}{
+ \northwest
+ \pgf@xa=\pgf@x\pgf@ya=\pgf@y
+ \pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}
+ {\pgfpoint{\pgf@xa}{0pt}}
+ {\pgfpoint{0pt}{\pgf@ya}}
+ \pgf@y=-\pgf@y
+ }
+ % end border anchors
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{out}{% should not be used
+ \left
+ \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x
+ }
+ \anchor{south west}{ \northwest \pgf@y=-\pgf@y }
+ \anchor{north east}{ \northwest \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x }
+ \anchor{north west}{ \northwest }
+ \anchor{south east}{ \northwest \pgf@x=-\ctikzvalof{tripoles/fd op amp/port width}\pgf@x \pgf@y=-\pgf@y }
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ % Triangle
+ % Includes output terminals in the traingular shape
+ % to ensure that diagonal joins are properly displayed
+ % we first draw the main triangle and the leads with normal thickness,
+ % and the redraw the main triangle with the component shape
+ \pgfscope
+ % shift origin a bit to ease calculations
+ \pgftransformxshift{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@step
+
+ % Initial point (right vertex)
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+
+ % Negative output terminal
+ \pgfpathlineto{\pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}{\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{\pgf@circ@res@up}}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\ctikzvalof{tripoles/fd op amp/output height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}{\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{\pgf@circ@res@up}}}
+
+ % Top vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+
+ % Bottom vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+
+ % Positive output terminal
+ \pgfpathlineto{\pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}{\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{\pgf@circ@res@down}}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\ctikzvalof{tripoles/fd op amp/output height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpointlineattime{\ctikzvalof{tripoles/fd op amp/output height}}{\pgfpoint{\pgf@circ@res@step}{0pt}}{\pgfpoint{0pt}{\pgf@circ@res@down}}}
+
+ % Right vertex
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+
+ \pgfpathclose
+ \pgfusepath{stroke}
+
+ % ok, now we'll redraw the triangle with the class specific
+ % thickness and optionally fill
+
+ \pgfscope
+ \pgf@circ@setlinewidth{quadpoles}{\pgflinewidth}
+
+ % Initial point (right vertex)
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@step}{0pt}}
+ % Top vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ % Bottom vertex
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope % thick and fill
+ \endpgfscope % shift
+
+ % Negative input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % Positive input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd op amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd op amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Negative output terminal label
+ \pgftext[right, bottom, x=3pt, y=1pt, at=\pgfpoint{0pt}{0.425\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@oplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Positive output terminal label
+ \pgftext[right, top, x=3pt, y=-1pt, at=\pgfpoint{0pt}{0.425\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd op amp/font} \ifpgf@circuit@oa@oplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+
+% Instrumentation amplifier with differential output
+\pgfdeclareshape{fd inst amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ % when tikz calls the anchor it wants the relative position in the lengths
+ % \pgf@x \pgf@y
+ % \pgfpoint* functions set that variables
+ % anchors are visible outside and run on use
+ \anchor{center}{\pgfpointorigin}
+ % savedanchors are internals and run on node creation (not use)
+ % bounding-box top left
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{nw}{
+ \northwest
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y\pgf@x=0pt\relax
+ }
+ \anchor{north}{
+ \northwest\pgf@x=0pt\relax
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}
+ {\left
+ \pgf@x = \ctikzvalof{tripoles/fd inst amp/port width}\pgf@x
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/fd inst amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/height 2}\pgf@circ@res@up}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ % reference voltage input anchors.
+ \savedanchor\refv{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/fd inst amp/refv pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/height 2}\pgf@circ@res@up}}
+ }
+ % we need both because they are normally drawn under the amp, and if you
+ % mirror it vertically you need them
+ \anchor{refv up}{
+ \refv
+ }
+ \anchor{refv down}{
+ \refv
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\outport{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ \ifpgf@circuit@oa@oplusup\else\pgf@y=-\pgf@y\fi
+ }
+ \anchor{out}{
+ \outport
+ \pgf@y=0pt
+ }
+ \anchor{out +}{
+ \outport
+ }
+ \anchor{out -}{
+ \outport
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\outportfixed{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/fd inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=-.5\pgf@x
+ }
+ \anchor{out up}{
+ \outportfixed
+ }
+ \anchor{out down}{
+ \outportfixed
+ \pgf@y=-\pgf@y
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/fd inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/fd inst amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@x=-\pgf@x \pgf@y=0pt
+ }
+ \anchor{bout +}{
+ \outport
+ \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya
+ }
+ \anchor{bout -}{
+ \outport
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya
+ }
+ \anchor{bout up}{
+ \outportfixed
+ \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya
+ }
+ \anchor{bout down}{
+ \outportfixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@x=-\pgf@x \pgf@y=\pgf@ya
+ }
+ % end border anchors
+ %
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ % let's start drawing the component
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+ % main component, normally in thicker lines
+ \pgfscope
+ \newdimen\pgf@circ@res@right@double
+ \pgf@circ@res@right@double=2\pgf@circ@res@right
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@step
+ %first point (near output)
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right@double}{0}}
+ %from the exit to the top (short side)... (note that the .6 must be copied in \up and \refv anchors
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/fd inst amp/height 2}\pgf@circ@res@up}}
+ % and then to the input "front up", "down", to the output short side "down"
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/fd inst amp/height 2}\pgf@circ@res@down}}
+ % ...and close
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ % input terminal up
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}}
+ %
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % input terminal down
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/fd inst amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % output leads down and up
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@down}} %
+ \pgftext[right, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/fd inst amp/font}\ifpgf@circuit@oa@oplusup$-\;$\else$+\;$\fi}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@up}} %
+ \pgftext[right, at=\pgfpoint{\ctikzvalof{tripoles/fd inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/fd inst amp/output height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/fd inst amp/font}\ifpgf@circuit@oa@oplusup$+\;$\else$-\;$\fi}
+ %
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+% Transconductance amplifier (Transkonduktanzverstärker)
+\pgfdeclareshape{gm amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/gm amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \anchor{north}{
+ \northwest
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}
+ {\left
+ \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/gm amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/gm amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/gm amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/gm amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/gm amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/gm amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/gm amp/height 2}\pgf@circ@res@up}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/gm amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/gm amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ \pgfscope
+ \newdimen\pgf@circ@res@right@double
+ \pgf@circ@res@right@double=2\pgf@circ@res@right
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@step
+ %Umrandung:
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right@double}{0}} %geändert startpunkt neu am ausgangsstrich
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/gm amp/height 2}\pgf@circ@res@up}}%vom Ausgang nach oben
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}} %neu ecke links oben nach rechts oben
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}} %bei deneigängen runter
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/gm amp/height 2}\pgf@circ@res@down}}%ecke links unten nach rechts unten
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/gm amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/gm amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/gm amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/gm amp/port width}\pgf@circ@res@right}{0pt}} %
+ \pgfsetrectcap
+ \pgfusepath{draw}
+
+ }
+}
+
+% Instrumentation amplifier
+\pgfdeclareshape{inst amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ % when tikz calls the anchor it wants the relative position in the lengths
+ % \pgf@x \pgf@y
+ % \pgfpoint* functions set that variables
+ % anchors are visible outside and run on use
+ \anchor{center}{\pgfpointorigin}
+ % savedanchors are internals and run on node creation (not use)
+ % bounding-box top left
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{nw}{
+ \northwest
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \anchor{north}{
+ \northwest
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}
+ {\left
+ \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/inst amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/inst amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/inst amp/height 2}\pgf@circ@res@up}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ % reference voltage input anchors.
+ \savedanchor\refv{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/inst amp/refv pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/inst amp/height 2}\pgf@circ@res@up}}
+ }
+ % we need both because they are normally drawn under the amp, and if you
+ % mirror it vertically you need them
+ \anchor{refv up}{
+ \refv
+ }
+ \anchor{refv down}{
+ \refv
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/inst amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/inst amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ % let's start drawing the component
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ % main component, normally in thicker lines
+ \pgfscope
+ \newdimen\pgf@circ@res@right@double
+ \pgf@circ@res@right@double=2\pgf@circ@res@right
+
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@step
+ %first point (near output)
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right@double}{0}}
+ %from the exit to the top (short side)... (note that the .6 must be copied in \up and \refv anchors
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/inst amp/height 2}\pgf@circ@res@up}}
+ % and then to the input "front up", "down", to the output short side "down"
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/inst amp/height 2}\pgf@circ@res@down}}
+ % ...and close
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ % Negative input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}}
+ %
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % Positive input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/inst amp/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Output terminal
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp/port width}\pgf@circ@res@right}{0pt}} %
+ %
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+% Instrumentation amplifier with terminals for gain resistance between inputs
+\pgfdeclareshape{inst amp ra}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ % bounding-box top left
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{nw}{
+ \northwest
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@y=-\pgf@y\pgf@x=0pt\relax
+ }
+ \anchor{north}{
+ \northwest\pgf@x=0pt\relax
+ }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}
+ {\left
+ \pgf@x = \ctikzvalof{tripoles/op amp/port width}\pgf@x
+ }
+ % inputs (+-)
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ % R ampli anchors. They are by default at 20% more than R-length distance
+ % you can change that with the `ra pos` key (use 0.5 for one-R).
+ \savedanchor\raOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\pgf@circ@scaled@Rlen
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{ra up}{
+ \raOneFixed
+ }
+ \anchor{ra down}{
+ \raOneFixed
+ \pgf@y=-\pgf@y
+ }
+ \savedanchor\raOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\pgf@circ@scaled@Rlen
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \anchor{ra-}{
+ \raOne
+ }
+ \anchor{ra+}{
+ \raOne
+ \pgf@y=-\pgf@y
+ }
+ % power supplies
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/inst amp ra/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/inst amp ra/height 2}\pgf@circ@res@up}}
+ }
+ \anchor{up}{
+ \up
+ }
+ \anchor{down}{
+ \up
+ \pgf@y=-\pgf@y
+ }
+ % reference voltage input anchors.
+ \savedanchor\refv{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/inst amp ra/height}\pgf@circ@scaled@Rlen
+ \pgf@y=0.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=0.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/inst amp ra/refv pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right}{\ctikzvalof{tripoles/inst amp ra/height 2}\pgf@circ@res@up}}
+ }
+ % we need both because they are normally drawn under the amp, and if you
+ % mirror it vertically you need them
+ \anchor{refv up}{
+ \refv
+ }
+ \anchor{refv down}{
+ \refv
+ \pgf@y=-\pgf@y
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/inst amp ra/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/inst amp ra/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bra up}{
+ \raOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bra down}{
+ \raOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bra-}{
+ \raOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bra+}{
+ \raOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \anchor{west}{
+ \left
+ }
+ \anchor{east}{
+ \left
+ \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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ % drawing of the component
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ \newdimen\pgf@circ@res@right@double
+ \pgf@circ@res@right@double=2\pgf@circ@res@right
+
+ % main component, normally in thicker lines
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/inst amp ra/port width}\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=\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@step
+ %primer punto: la linea de salida (lado componente)
+ \pgfpathmoveto{\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right@double}{0}}
+ %from the exit to the top (short side)... (note that the .6 must be copied in \up anchor
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/inst amp ra/height 2}\pgf@circ@res@up}}
+ % and then to the input "front up", "down", to the output short side "down"
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right@double}{\ctikzvalof{tripoles/inst amp ra/height 2}\pgf@circ@res@down}}
+ % ...and close
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+
+ % ra terminal -
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@circ@scaled@Rlen}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@circ@scaled@Rlen}}
+ % ra terminal +
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@circ@scaled@Rlen}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {-\ctikzvalof{tripoles/inst amp ra/ra pos}\pgf@circ@scaled@Rlen}}
+
+ % Negative input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}}
+ %
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@up}]{\ctikzvalof{tripoles/inst amp ra/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@plus\else\pgf@circ@ampli@minus\fi}
+
+ % Positive input terminal
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}}
+ %
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}}
+ \pgftext[left, at=\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@left}{\ctikzvalof{tripoles/inst amp ra/input height}\pgf@circ@res@down}]{\ctikzvalof{tripoles/inst amp ra/font} \ifpgf@circuit@oa@iplusup\pgf@circ@ampli@minus\else\pgf@circ@ampli@plus\fi}
+
+ % Output terminal
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/inst amp ra/port width}\pgf@circ@res@right}{0pt}} %
+ %
+ \pgfsetrectcap
+ \pgfusepath{draw}
+ }
+}
+
+% Buffer
+% Contributed by Danilo Piazzalunga
+\pgfdeclareshape{buffer}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/buffer/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/buffer/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \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 }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \anchor{in}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{bin}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0.7\pgf@x
+ }
+ \anchor{bout}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-0.7\pgf@x
+ }
+
+ \anchor{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \northwest
+ \pgfmathsetlength{\pgf@x}{0.7*\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+ \pgfscope
+ \pgf@circ@setlinewidth{tripoles}{\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \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}
+ }
+}
+
+% plain amplifier, no symbols
+\pgfdeclareshape{plain amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \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 }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/plain amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \ifpgf@circuit@oa@iplusup\pgf@y=-\pgf@y\fi
+ }
+ \savedanchor\inOneFixed{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@y=\ctikzvalof{tripoles/plain amp/input height}\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{-}{
+ \inOne
+ }
+ \anchor{+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ }
+ \anchor{in up}{
+ \inOneFixed
+ }
+ \anchor{in down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/plain amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin up}{
+ \inOneFixed
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bin down}{
+ \inOneFixed
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b-}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{b+}{
+ \inOne
+ \pgf@y=-\pgf@y
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/plain amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/plain amp/port width}\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/plain amp/input height}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/plain amp/input height}\pgf@circ@res@up}}
+
+
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/plain amp/input height}\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {\ctikzvalof{tripoles/plain amp/input height}\pgf@circ@res@down}}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@right}{0pt}}
+
+ \pgfusepath{draw}
+ }
+}
+
+% plain amplifier, no symbols, one input
+\pgfdeclareshape{plain mono amp}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{amplifiers}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{\pgfpointorigin}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \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 }
+ \savedanchor\left{%
+ \pgf@y=0pt
+ }
+ \savedanchor\inOne{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@y=0pt\relax
+ }
+ \anchor{in}{
+ \inOne
+ }
+ % support for border anchors
+ \savedanchor\leftedge{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x = \ctikzvalof{tripoles/plain amp/port width}\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{leftedge}{\leftedge}
+ \anchor{rightedge}{\leftedge \pgf@x =-\pgf@x }
+ \anchor{bin}{
+ \inOne
+ \pgf@ya=\pgf@y \leftedge \pgf@y=\pgf@ya
+ }
+ \anchor{bout}{
+ \leftedge
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ % end border anchors
+ \savedanchor\up{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/plain amp/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/plain amp/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@right = -\pgf@x
+ \pgf@circ@res@left = \pgf@x
+ \pgfpointlineattime{
+ \ctikzvalof{tripoles/plain amp/up pos}}{
+ \pgfpoint{
+ \ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {\pgf@circ@res@up}}
+ {\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\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{text}{
+ \ifpgf@circ@center@text
+ \pgf@x=\dimexpr -.6\wd\pgfnodeparttextbox\relax
+ \else
+ \leftedge
+ \pgfmathsetlength{\pgf@x}{\pgf@x + \ctikzvalof{left text distance}}
+ \fi
+ \pgf@y=\dimexpr.5\dp\pgfnodeparttextbox-.5\ht\pgfnodeparttextbox\relax
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{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
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgftransformxshift{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ \pgf@circ@res@step=\pgf@circ@res@right
+ \advance\pgf@circ@res@step by -\pgf@circ@res@left
+ \pgf@circ@res@step=\ctikzvalof{tripoles/plain amp/port width}\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}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ \pgfpathmoveto{\pgfpoint
+ {\pgf@circ@res@left}
+ {0pt}}
+ \pgfpathlineto{\pgfpoint
+ {\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@left}
+ {0pt}}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tripoles/plain amp/port width}\pgf@circ@res@right}{0pt}}
+
+ \pgfusepath{draw}
+ }
+}% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Tubes and magnetron
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Settings Electronic tubes: diodetube, triode, tetrode and pentode%<<<1
+\ctikzset{tubes/width/.initial=1} % relative width
+\ctikzset{tubes/height/.initial=1.4} % relative height
+\ctikzset{tubes/tube radius/.initial=0.40} % radius of tube circle
+\ctikzset{tubes/anode distance/.initial=0.40} % distance from center
+\ctikzset{tubes/anode width/.initial=0.40} % width of an anode/plate
+\ctikzset{tubes/grid protrusion/.initial=0.25} % distance from center
+\ctikzset{tubes/grid dashes/.initial=5} % number of grid dashes
+\ctikzset{tubes/grid separation/.initial=0.2} % separation between grids
+\ctikzset{tubes/grid shift/.initial=0.0} % y shift grids from center
+\ctikzset{tubes/cathode distance/.initial=0.40} % distance from grid
+\ctikzset{tubes/cathode width/.initial=0.40} % width of an cathode
+\ctikzset{tubes/cathode corners/.initial=0.06} % corners of the cathode wire
+\ctikzset{tubes/cathode right extend/.initial=0.075} % extension at the right side
+\ctikzset{tubes/filament distance/.initial=0.1} % distance from cathode
+\ctikzset{tubes/filament angle/.initial=15} % Angle from centerpoint
+
+\ctikzset{/tikz/circuitikz/tripoles/magnetron/width/.initial=1}
+
+\newif\ifpgf@circuit@tubes@filament\pgf@circuit@tubes@filamentfalse
+\pgfkeys{/tikz/filament/.add code={}{\pgf@circuit@tubes@filamenttrue}}
+\ctikzset{tubes/filament/.add code={}{\pgf@circuit@tubes@filamenttrue}}
+\newif\ifpgf@circuit@tubes@nocathode\pgf@circuit@tubes@nocathodefalse
+\pgfkeys{/tikz/nocathode/.add code={}{\pgf@circuit@tubes@nocathodetrue}}
+\ctikzset{tubes/nocathode/.add code={}{\pgf@circuit@tubes@nocathodetrue}}
+\newif\ifpgf@circuit@tubes@fullcathode\pgf@circuit@tubes@fullcathodefalse
+\pgfkeys{/tikz/fullcathode/.add code={}{\pgf@circuit@tubes@fullcathodetrue}}
+\ctikzset{tubes/fullcathode/.add code={}{\pgf@circuit@tubes@fullcathodetrue}}%
+%>>>
+
+%% Node shapes for tubes & co%<<<
+
+%%%%%%%%%%%%%%%%%%%
+%% Magnetron
+%%%%%%%%%%%%%%%%%%%
+
+\pgfdeclareshape{magnetron}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{tubes}} % class of these components
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/magnetron/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/magnetron/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{anode}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{cathode1}{
+ \northwest
+ \pgf@circ@res@step=\pgf@y
+ \pgfmathparse{cos(105)}
+ \pgf@x=\pgfmathresult\pgf@circ@res@step
+ \pgfmathparse{sin(105)}
+ \pgf@y=\pgfmathresult\pgf@circ@res@step
+ %\pgfpointorigin
+ %\pgfpathmoveto{\pgfpointpolar{105}{\pgf@circ@res@step}}%not working in a scaled tikzpicture
+ }
+ \anchor{cathode2}{
+ \northwest
+ \pgf@circ@res@step=\pgf@y
+ \pgfmathparse{cos(75)}
+ \pgf@x=\pgfmathresult\pgf@circ@res@step
+ \pgfmathparse{sin(75)}
+ \pgf@y=\pgfmathresult\pgf@circ@res@step
+ %\pgfpointorigin
+ %\pgfpathmoveto{\pgfpointpolar{75}{\pgf@circ@res@step}}%not working in a scaled tikzpicture
+ }
+ \anchor{text}{
+ \pgfpointorigin
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \advance \pgf@y by -.5\ht\pgfnodeparttextbox
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{%
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{top}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{pathstart}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{pathend}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{bottom}{
+ \northwest
+ \pgf@x=0pt
+ \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{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step=\ctikzvalof{tripoles/magnetron/width}\pgf@circ@scaled@Rlen
+ \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
+ \pgfmathsetlength{\pgf@circ@res@other}{sin(15)*\pgf@circ@res@up}
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ %create outer circle
+ \pgfpathcircle{\pgfpoint{0}{0}} {\pgf@circ@res@right}
+ \pgf@circ@draworfill
+ %create chambers
+ \foreach \angle in {45,135,225,315}{
+ \pgfpathmoveto{ \pgfpointpolar{\angle}{0.6\pgf@circ@res@right}}
+ \pgfpathlineto{ \pgfpointpolar{\angle}{\pgf@circ@res@right}}
+ }
+ \pgfsetroundcap
+ \pgfusepath{draw}
+ \pgfscope
+ %draw connection from outside
+ %anode
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{0\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+ %cathodes
+ \pgfpathmoveto{\pgfpointpolar{105}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{.5\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpointpolar{75}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}}
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+ \endpgfscope
+ %create cathode
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0}{.15\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{.5\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ %create anode
+ \pgfpathmoveto{\pgfpoint{0.3\pgf@circ@res@left}{.5\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@right}{.5\pgf@circ@res@down}}
+
+ \pgfsetbuttcap
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Electronic tubes, submitted by J. op den Brouw
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Draw tube outline
+\def\pgf@circ@tubes@drawtube{%
+ \ifdim\ctikzvalof{tubes/width}pt>\ctikzvalof{tubes/height}pt\relax
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfutil@tempdima=\pgf@circ@res@right
+ \advance\pgfutil@tempdima by -\pgf@circ@res@up
+ \pgfpathlineto{\pgfpoint{\pgfutil@tempdima}{\pgf@circ@res@up}}
+ \pgfpatharc{90}{-90}{\pgf@circ@res@up}
+ \pgfpathlineto{\pgfpoint{-\pgfutil@tempdima}{-\pgf@circ@res@up}}
+ \pgfpatharc{270}{90}{\pgf@circ@res@up}
+ \else
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{0pt}}
+ \pgfutil@tempdima=\pgf@circ@res@up
+ \advance\pgfutil@tempdima by -\pgf@circ@res@right
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdima}}
+ \pgfpatharc{180}{0}{\pgf@circ@res@right}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgfutil@tempdima}}
+ \pgfpatharc{180}{0}{-\pgf@circ@res@right}
+ \fi
+ \pgfpathclose
+}
+
+%% The diode (tube), triode, tetrode and pentode only differ in the
+%% number of grids. So we construct a generic declare function in
+%% which we can put code for the grid anchors and grid drawing code
+%% \pgfcircdeclaretube{tube name}{grid anchors}{grid drawing code}
+\long\def\pgfcircdeclaretube#1#2#3{%
+ \pgfdeclareshape{#1}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{tubes}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@up=\ctikzvalof{tubes/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right=\ctikzvalof{tubes/width}\pgf@circ@scaled@Rlen
+ % x and y should be half the Rlen
+ \pgf@y=\pgf@circ@res@up
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\pgf@circ@res@right
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{north} {%
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{east}{%
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{south}{%
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{west}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{north west}{%
+ \northwest
+ }
+ \anchor{north east}{%
+ \northwest
+ \pgf@x=-\pgf@x
+ }
+ \anchor{south east}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{south west}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \anchor{anode} {%
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{cathode}{%
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=\ctikzvalof{tubes/cathode width}\pgf@x
+ }
+ \anchor{cathode 1}{%
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=\ctikzvalof{tubes/cathode width}\pgf@x
+ }
+ \anchor{cathode 2}{%
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=-\ctikzvalof{tubes/cathode width}\pgf@x
+ }
+ \anchor{filament 1}{%
+ \northwest
+ \pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+ \pgf@x=\pgfmathresult\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{filament 2}{%
+ \northwest
+ \pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+ \pgf@x=-\pgfmathresult\pgf@x
+ \pgf@y=-\pgf@y
+ }
+
+ % Extra anchors
+ #2
+
+ \backgroundpath{
+ \pgfscope
+ % Line width for tripoles
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ % Setup to draw tube
+ \pgf@circ@res@up=\ctikzvalof{tubes/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right=\ctikzvalof{tubes/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up=\ctikzvalof{tubes/tube radius}\pgf@circ@res@up
+ \pgf@circ@res@right=\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+
+ % Tube outline
+ \pgf@circ@tubes@drawtube
+
+ % Setup to draw grid, filament, anode and cathode
+ \pgf@circ@res@up=\ctikzvalof{tubes/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right=\ctikzvalof{tubes/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@up=0.5\pgf@circ@res@up
+ \pgf@circ@res@right=0.5\pgf@circ@res@right
+
+ % Tube fill color (if any)
+ \pgf@circ@draworfill
+
+ % Grid drawing
+ #3
+
+ % Filament (is not drawn by default)
+ \ifpgf@circuit@tubes@filament
+ \pgf@circ@res@temp=-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up
+ \advance\pgf@circ@res@temp by -\ctikzvalof{tubes/filament distance}\pgf@circ@res@up
+ \pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+ \pgf@xa=\pgfmathresult\pgf@circ@res@right
+ \pgfmathparse{\ctikzvalof{tubes/tube radius}+\ctikzvalof{tubes/tube radius}*cos(\ctikzvalof{tubes/filament angle}}
+ \pgf@ya=\pgfmathresult\pgf@circ@res@up
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{-\pgf@xa}{-\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@ya}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{-\pgf@circ@res@up}}
+ \pgf@circuit@tubes@filamentfalse
+ \fi
+
+ % Anode (or plate)
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}} % north
+ \pgfpathlineto{\pgfpoint{0pt}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/anode width}\pgf@circ@res@right}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/anode width}\pgf@circ@res@right}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+
+ % Cathode
+ \ifpgf@circuit@tubes@nocathode
+ \pgf@circuit@tubes@nocathodefalse
+ \else
+ \pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \ifpgf@circuit@tubes@fullcathode
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgf@circuit@tubes@fullcathodefalse
+ \else
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up-\ctikzvalof{tubes/cathode right extend}\pgf@circ@res@up}}
+ \fi
+ \fi
+
+ % Draw the background
+ \pgfusepath{draw}
+ \endpgfscope
+ }
+ }
+}
+
+\pgfcircdeclaretube{diodetube}{}{} % shape diode already exists
+
+\pgfcircdeclaretube{triode}
+{
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+ \anchor{control} {%
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+}
+{
+ % Grid protrusion
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+}
+
+\pgfcircdeclaretube{tetrode}
+{
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{control} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{screen} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=\ctikzvalof{tubes/grid separation}\pgf@y
+ \pgf@y=0.5\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+}
+{
+ % Grid x/y points
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfutil@tempdima=\ctikzvalof{tubes/grid separation}\pgf@circ@res@up
+ \pgfutil@tempdimb=-\pgfutil@tempdima
+ \pgfutil@tempdima=0.5\pgfutil@tempdima
+ \advance\pgfutil@tempdima by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \pgfutil@tempdimb=0.5\pgfutil@tempdimb
+ \advance\pgfutil@tempdimb by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ % Grid protrusion
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdima}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdima}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdimb}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+}
+
+\pgfcircdeclaretube{pentode}
+{
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{control} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{screen} {%
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+ \anchor{suppressor} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+}
+{
+ % Grid x/y points
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfutil@tempdima=\ctikzvalof{tubes/grid separation}\pgf@circ@res@up
+ \pgfutil@tempdimb=-\pgfutil@tempdima
+ \advance\pgfutil@tempdima by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \advance\pgfutil@tempdimb by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \pgf@circ@res@other=\ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ % Grid protrusion
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdima}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@circ@res@other}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdima}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgf@circ@res@other}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+}
+
+\pgfcircdeclaretube{pentode suppressor to cathode}
+{
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{control} {%
+ \northwest
+ \pgfutil@tempdima=\pgf@y
+ \pgf@y=-\ctikzvalof{tubes/grid separation}\pgf@y
+ \advance\pgf@y by \ctikzvalof{tubes/grid shift}\pgfutil@tempdima
+ }
+ \anchor{screen} {%
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+}
+{
+ % Grid x/y points
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfutil@tempdima=\ctikzvalof{tubes/grid separation}\pgf@circ@res@up
+ \pgfutil@tempdimb=-\pgfutil@tempdima
+ \advance\pgfutil@tempdima by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \advance\pgfutil@tempdimb by \ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ \pgf@circ@res@other=\ctikzvalof{tubes/grid shift}\pgf@circ@res@up
+ % Grid protrusion
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@circ@res@other}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \ifnum\pgf@circ@count@a>1\relax
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdimb}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdimb}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgf@circ@res@other}}
+ \fi
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@step}{\pgfutil@tempdima}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+ % Grid: connection from suppressor to cathode
+ \pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima-2*\ctikzvalof{tubes/grid separation}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right-0.4142136*\ctikzvalof{tubes/cathode corners}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up-0.4142136*\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
+
+}% %>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcirctripoles
+%%%%%%%%%%% Springe nach tex/pgfcircquadpoles
+%%%---------- open: tex/pgfcircquadpoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Quadripoles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% Setting for Transformers and similar quadpoles%<<<1
+
+\ctikzset{quadpoles/transformer/inner/.initial=0.4}
+\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/inner/.initial=0.4}
+\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/inner/.initial=0.4}
+\ctikzset{quadpoles/gyrator/width/.initial=1.5}
+\ctikzset{quadpoles/gyrator/height/.initial=1.5}
+\ctikzset{quadpoles/fourport/width/.initial=1.3}
+\ctikzset{quadpoles/fourport/height/.initial=1.3}
+\ctikzset{quadpoles/coupler/width/.initial=1.3}
+\ctikzset{quadpoles/coupler/height/.initial=1.3}
+\ctikzset{quadpoles/coupler2/width/.initial=1.3}
+\ctikzset{quadpoles/coupler2/height/.initial=1.3}
+
+
+\ctikzset{quadpoles style/.is choice}
+\ctikzset{quadpoles style/inward/.code={% default value
+ \ctikzset{quadpoles/transformer/inner=0.4}%
+ \ctikzset{quadpoles/transformer/width=1.5}%
+ \ctikzset{quadpoles/transformer core/inner=0.4}%
+ \ctikzset{quadpoles/transformer core/width=1.5}%
+ \ctikzset{quadpoles/gyrator/inner=0.4}%
+ \ctikzset{quadpoles/gyrator/width=1.5}%
+ }%
+}
+\ctikzset{quadpoles style/inline/.code={% now horizontal baffle
+ \ctikzset{quadpoles/transformer/inner=1}%
+ \ctikzset{quadpoles/transformer/width=0.6}%
+ \ctikzset{quadpoles/transformer core/inner=1}%
+ \ctikzset{quadpoles/transformer core/width=0.6}%
+ \ctikzset{quadpoles/gyrator/inner=1} % FIXME
+ \ctikzset{quadpoles/gyrator/width=0.6}%
+ }%
+}
+%%>>>
+
+%% Node shapes for quadpoles (basically transformers)%<<<
+
+\long\def\pgfcircdeclarequadpole#1#2#3{
+ \pgfdeclareshape{#1}
+ {
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{inductors}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ % shapename
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \savedmacro{\stretto}{\def\stretto{\ctikzvalof{quadpoles/#1/inner}}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{quadpoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=.5\pgf@circ@scaled@Rlen
+ \pgf@x=-\ctikzvalof{quadpoles/#1/width}\pgf@x
+ }
+ %% we define the upper right (positive coord) dot (which is B1)
+ \savedanchor{\innerdot}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@xa=.5\pgf@circ@scaled@Rlen
+ \pgf@xa=-\ctikzvalof{quadpoles/#1/width}\pgf@xa
+ % by default use the cute inductor size
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa-\ctikzvalof{bipoles/cuteinductor/height}*\pgf@circ@scaled@Rlen/2}
+ % check if it's american
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}
+ \edef\pgf@temp{american}
+ \ifx\pgf@circ@temp\pgf@temp
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa-\ctikzvalof{bipoles/americaninductor/height}*\pgf@circ@scaled@Rlen/2}
+ \fi
+ % check if it's european
+ \edef\pgf@temp{european}
+ \ifx\pgf@circ@temp\pgf@temp
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa-\ctikzvalof{bipoles/fullgeneric/height}*\pgf@circ@scaled@Rlen/2}
+ \fi
+ \pgfmathsetlength\pgf@y{0.5*\pgf@circ@scaled@Rlen}
+ }
+ \savedanchor{\outerdot}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@xa=.5\pgf@circ@scaled@Rlen
+ \pgf@xa=-\ctikzvalof{quadpoles/#1/width}\pgf@xa
+ % by default use the cute inductor size
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa+\ctikzvalof{bipoles/cuteinductor/height}*\pgf@circ@scaled@Rlen/2}
+ % check if it's american
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}
+ \edef\pgf@temp{american}
+ \ifx\pgf@circ@temp\pgf@temp
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa+\ctikzvalof{bipoles/americaninductor/height}*\pgf@circ@scaled@Rlen/2}
+ \fi
+ % check if it's european
+ \edef\pgf@temp{european}
+ \ifx\pgf@circ@temp\pgf@temp
+ \pgfmathsetlength\pgf@x{-\stretto*\pgf@xa+\ctikzvalof{bipoles/fullgeneric/height}*\pgf@circ@scaled@Rlen/2}
+ \fi
+ \pgfmathsetlength\pgf@y{0.5*\pgf@circ@scaled@Rlen}
+ }
+ \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
+ }
+ %% dot's anchors
+ \anchor{inner dot A1}{\innerdot\pgf@x=-\pgf@x}
+ \anchor{outer dot A1}{\outerdot\pgf@x=-\pgf@x}
+ \anchor{inner dot A2}{\innerdot\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{outer dot A2}{\outerdot\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{inner dot B1}{\innerdot}
+ \anchor{outer dot B1}{\outerdot}
+ \anchor{inner dot B2}{\innerdot\pgf@y=-\pgf@y}
+ \anchor{outer dot B2}{\outerdot\pgf@y=-\pgf@y}
+ % geographical
+ \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{\ctikzvalof{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
+ }
+ }
+}
+
+
+\def\pgf@circ@drawtransformerbasicanchor{
+ \ctikzvalof{quadpoles/trans/height}
+ \anchor{AA2}{
+ \northwest
+ \pgf@x=\ctikzvalof{quadpoles/transformer/width1}\pgf@x
+ \pgf@x=.7\pgf@x
+ \pgf@y=-\pgf@y
+ \pgf@y=\ctikzvalof{quadpoles/transformer/height1}\pgf@y
+ }
+ \anchor{BB1}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@x=\ctikzvalof{quadpoles/transformer/width1}\pgf@x
+ \pgf@x=.7\pgf@x
+ \pgf@y=\ctikzvalof{quadpoles/transformer/height1}\pgf@y
+ }
+ \anchor{AA1}{
+ \northwest
+ \pgf@x=\ctikzvalof{quadpoles/transformer/width1}\pgf@x
+ \pgf@x=.7\pgf@x
+ \pgf@y=\ctikzvalof{quadpoles/transformer/height1}\pgf@y
+ }
+ \anchor{BB2}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@x=\ctikzvalof{quadpoles/transformer/width1}\pgf@x
+ \pgf@x=.7\pgf@x
+ \pgf@y=-\pgf@y
+ \pgf@y=\ctikzvalof{quadpoles/transformer/height1}\pgf@y
+ }
+}
+
+%% Null styles that can be used to change individually the L1 and L2
+%% inductors of the transformer.
+
+\ctikzset{transformer L1/.style={}}
+\ctikzset{transformer L2/.style={}}
+
+\def\pgf@circ@drawtransformerbasicbody{
+ \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}%
+ }
+
+ \pgfkeys{\circuitikzbasekey/.cd, transformer L1}
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{fullgenericshape}{center}{}{\thisshape-L1}{\pgfusepath{stroke}}
+ \else%
+ \def\pgf@temp{cute}
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{cuteinductorshape}{center}{}{\thisshape-L1}{\pgfusepath{stroke}}
+ \else%
+ \pgfnode{americaninductorshape}{center}{}{\thisshape-L1}{\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}%
+ }
+
+ \pgfkeys{\circuitikzbasekey/.cd, transformer L2}
+ \edef\pgf@circ@temp{\ctikzvalof{inductor}}%
+ \def\pgf@temp{european}%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{fullgenericshape}{center}{}{\thisshape-L2}{\pgfusepath{stroke}}
+ \else%
+ \def\pgf@temp{cute}
+ \ifx\pgf@temp\pgf@circ@temp%
+ \pgfnode{cuteinductorshape}{center}{}{\thisshape-L2}{\pgfusepath{stroke}}
+ \else%
+ \pgfnode{americaninductorshape}{center}{}{\thisshape-L2}{\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{\thisshape-L1}{b}}
+
+ \pgfpathmoveto{\pgfpointanchor{\thisshape-L1}{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{\thisshape-L2}{a}}
+
+ \pgfpathmoveto{\pgfpointanchor{\thisshape-L2}{b}}
+ \pgfpathlineto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+
+ \pgfusepath{draw}
+
+}
+
+
+\pgfcircdeclarequadpole{transformer}{
+ \pgf@circ@drawtransformerbasicbody
+}{\pgf@circ@drawtransformerbasicanchor}
+
+\pgfcircdeclarequadpole{transformer core}{
+
+ \pgf@circ@drawtransformerbasicbody
+
+ % use the chocke line thickness
+ \pgfsetlinewidth{\ctikzvalof{bipoles/cutechoke/cthick}\pgflinewidth}
+
+ % Find the distance from center for the lines representing the core
+ % the 2.5 is for backward compatibility --- the distance was calculated as a fraction
+ % of the whole component, now as a fraction of the distance between coils, to be
+ % compatible with the quadpoles "inner" style.
+ \pgfmathsetlength{\pgf@circ@res@other}{2.5*\stretto*\ctikzvalof{quadpoles/transformer core/core width}*\pgf@circ@res@right}
+
+ \pgfmoveto{\pgfpoint%
+ {\pgf@circ@res@other}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}%
+ }
+ \pgflineto{
+ \pgfpoint%
+ {\pgf@circ@res@other}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}%
+ }
+
+ %% this should be just -\pgf@circ@res@other, but in case someone define an asymmetric trafo someday...
+ \pgfmathsetlength{\pgf@circ@res@other}{2.5*\stretto*\ctikzvalof{quadpoles/transformer core/core width}*\pgf@circ@res@left}
+ \pgfmoveto{\pgfpoint%
+ {\pgf@circ@res@other}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@down}%
+ }
+ \pgflineto{
+ \pgfpoint%
+ {\pgf@circ@res@other}%
+ {\ctikzvalof{quadpoles/transformer core/core height}\pgf@circ@res@up}%
+ }
+
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgfusepath{draw}
+}{\pgf@circ@drawtransformerbasicanchor}
+
+
+\pgfcircdeclarequadpole{gyrator}{
+
+ \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}
+
+ \pgf@circ@setlinewidth{quadpoles}{\pgflinewidth}
+ \pgfmathsetlength{\pgf@circ@res@other}{min(.7*\stretto*\pgf@circ@res@up, .8*\pgf@circ@res@right)} % radius
+ \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@left}{-\pgf@circ@res@other}}
+ \pgfpatharc{-90}{90}{\pgf@circ@res@other}
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ \pgfpathmoveto{\pgfpoint{\stretto\pgf@circ@res@right}{\pgf@circ@res@other}}
+ \pgfpatharc{90}{270}{\pgf@circ@res@other}
+ \pgfpathclose
+ \pgf@circ@draworfill
+}{}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%
+%% Block diagrams
+%%%%%%%%%%%%%%%%%%%
+
+% Definitions and options for blocks (twoports and so)%<<<1
+
+\ctikzset{bipoles/twoport/width/.initial=.7}
+\ctikzset{bipoles/twoport/height/.initial=.7}
+\ctikzset{bipoles/twoport/text/.initial=}
+\ctikzset{bipoles/twoportsplit/width/.initial=.7}
+\ctikzset{bipoles/twoport/text in/.initial=}
+\ctikzset{bipoles/twoport/text out/.initial=}
+\ctikzset{text/.style={t=#1}}
+\ctikzset{t/.code={%
+ \ctikzsetvalof{bipoles/twoport/text}{#1}%
+}}
+\ctikzset{text in/.style={t1=#1}}
+\ctikzset{t1/.code={%
+ \ctikzsetvalof{bipoles/twoport/text in}{#1}%
+}}
+\ctikzset{text out/.style={t2=#1}}
+\ctikzset{t2/.code={%
+ \ctikzsetvalof{bipoles/twoport/text out}{#1}%
+}}
+\ctikzset{bipoles/vco/width/.initial=.7}
+\ctikzset{bipoles/bandpass/width/.initial=.7}
+\ctikzset{bipoles/bandstop/width/.initial=.7}
+\ctikzset{bipoles/highpass/width/.initial=.7}
+\ctikzset{bipoles/highpass2/width/.initial=.7}
+\ctikzset{bipoles/lowpass/width/.initial=.7}
+\ctikzset{bipoles/lowpass2/width/.initial=.7}
+\ctikzset{bipoles/allpass/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}
+\ctikzset{tripoles/mixer/width/.initial=0.7}
+\ctikzset{tripoles/adder/width/.initial=0.7}
+\ctikzset{tripoles/circulator/width/.initial=.7}
+\ctikzset{tripoles/oscillator/width/.initial=.7}
+
+\ctikzset{tripoles/wilkinson/height/.initial=1.3}
+\ctikzset{tripoles/wilkinson/width/.initial=1.3}
+
+\ctikzset{tripoles/splitter/height/.initial=1.3}
+\ctikzset{tripoles/splitter/width/.initial=1.3}
+
+\ctikzset{tripoles/mzm/height/.initial=1.3}
+\ctikzset{tripoles/mzm/width/.initial=1.3}
+
+% Option ">" for twoports
+\newif\ifpgf@circuit@inputarrow
+\ctikzset{>/.add code={}{\pgf@circuit@inputarrowtrue}}
+\ctikzset{inputarrow/.is choice}
+\ctikzset{inputarrow/true/.code={\pgf@circuit@inputarrowtrue}}
+\ctikzset{inputarrow/false/.code={\pgf@circuit@inputarrowfalse}}
+
+% Option "boxed" for nodes and twoports
+\newif\ifpgf@circuit@boxed
+\pgfkeys{/tikz/boxed/.add code={}{\pgf@circuit@boxedtrue}}
+\ctikzset{boxed/.add code={}{\pgf@circuit@boxedtrue}}
+\pgfkeys{/tikz/box/.add code={}{\pgf@circuit@boxedtrue}}
+\ctikzset{box/.add code={}{\pgf@circuit@boxedtrue}}
+
+% Option "dashed" for nodes and twoports
+\newif\ifpgf@circuit@dashed
+\pgfkeys{/tikz/dashed/.add code={}{\pgf@circuit@dashedtrue}}
+\ctikzset{dashed/.add code={}{\pgf@circuit@dashedtrue}}%
+
+% powerelectronic blocks
+\ctikzset{bipoles/sacdc/width/.initial=.7}
+\ctikzset{bipoles/sdcac/width/.initial=.7}
+\ctikzset{bipoles/sdcdc/width/.initial=.7}
+\ctikzset{bipoles/tacdc/width/.initial=.7}
+\ctikzset{bipoles/tdcac/width/.initial=.7}
+\ctikzset{quadpoles/gridnode/width/.initial=.7} %not sure if quadpole?
+
+%>>>
+
+%% Node shapes definition for path-style block diagrams%<<<
+
+%% Draw the two-port fillable box
+\def\pgf@circ@twoportbox{
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+ \endpgfscope
+}
+
+%% Generic two port box
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/twoport/height}}
+{twoport}
+{\ctikzvalof{bipoles/twoport/height}}
+{\ctikzvalof{bipoles/twoport/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@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
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+ % draw outer box
+ \pgf@circ@twoportbox
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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}}
+
+}
+
+%% twoport split
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/twoportsplit/width}}
+{twoportsplit}
+{\ctikzvalof{bipoles/twoportsplit/width}}
+{\ctikzvalof{bipoles/twoportsplit/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/twoportsplit/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}}
+ }
+ \fi
+
+ %get texts
+ \def\pgfcirc@tin{\ctikzvalof{bipoles/twoport/text in}}
+ \def\pgfcirc@tout{\ctikzvalof{bipoles/twoport/text out}}
+
+ % rotate inner symbol
+ \def\texti{\pgfcirc@tin}
+ \def\textii{\pgfcirc@tout}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \ifnum \pgfcircmathresult > 45 \ifnum \pgfcircmathresult < 135
+ \def\texti{\pgfcirc@tout}
+ \def\textii{\pgfcirc@tin}
+ \pgftransformrotate{270}
+ \fi\fi
+ \ifnum \pgfcircmathresult > 134 \ifnum \pgfcircmathresult < 225 % 134 degree, because >= 135 is not possible
+ \def\texti{\pgfcirc@tout}
+ \def\textii{\pgfcirc@tin}
+ \pgftransformrotate{180}
+ \fi\fi
+ \ifnum \pgfcircmathresult > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \def\texti{\pgfcirc@tin}
+ \def\textii{\pgfcirc@tout}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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]{\texti}
+ \pgftext[center,x=0.45\pgf@circ@res@right,y=0.45\pgf@circ@res@down]{\textii}
+}
+
+%% voltage controled oscillator
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/vco/width}}
+{vco}
+{\ctikzvalof{bipoles/twoport/width}}
+{\ctikzvalof{bipoles/vco/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vco/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+ % draw circle
+ \pgfscope
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpoint{0}{0}} {\pgf@circ@res@step}
+ \pgf@circ@draworfill
+ \endpgfscope
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/bandpass/width}}
+{bandpass}
+{\ctikzvalof{bipoles/bandpass/width}}
+{\ctikzvalof{bipoles/bandpass/width}}
+{
+
+ \pgf@circ@res@step = \ctikzvalof{bipoles/bandpass/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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}
+}
+
+%% bandstop filter
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/bandstop/width}}
+{bandstop}
+{\ctikzvalof{bipoles/bandstop/width}}
+{\ctikzvalof{bipoles/bandstop/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/bandstop/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-}%never draw arrows
+ \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}
+}
+
+%% highpass filter
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/highpass/width}}
+{highpass}
+{\ctikzvalof{bipoles/highpass/width}}
+{\ctikzvalof{bipoles/highpass/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/highpass/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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}
+}
+
+%% highpass2 filter ---simplyfied with just two waves
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/highpass2/width}}
+{highpass2}
+{\ctikzvalof{bipoles/highpass2/width}}
+{\ctikzvalof{bipoles/highpass2/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/highpass2/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.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}}
+ \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.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}}
+ \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.3\pgf@circ@res@step}{-0.5\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@step}{-0.1\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+%% lowpass filter
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/lowpass/width}}
+{lowpass}
+{\ctikzvalof{bipoles/lowpass/width}}
+{\ctikzvalof{bipoles/lowpass/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/lowpass/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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}
+}
+
+%% lowpass2 filter: simplyfied with just two waves
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/lowpass2/width}}
+{lowpass2}
+{\ctikzvalof{bipoles/lowpass2/width}}
+{\ctikzvalof{bipoles/lowpass2/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/lowpass2/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.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}}
+ \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.3\pgf@circ@res@step}{0.1\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.3\pgf@circ@res@step}{0.5\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.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}}
+ \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}
+}
+
+%% allpass filter
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/allpass/width}}
+{allpass}
+{\ctikzvalof{bipoles/allpass/width}}
+{\ctikzvalof{bipoles/allpass/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/allpass/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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.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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/adc/width}}
+{adc}
+{\ctikzvalof{bipoles/adc/width}}
+{\ctikzvalof{bipoles/adc/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/adc/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/dac/width}}
+{dac}
+{\ctikzvalof{bipoles/dac/width}}
+{\ctikzvalof{bipoles/dac/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/dac/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/dsp/width}}
+{dsp}
+{\ctikzvalof{bipoles/dsp/width}}
+{\ctikzvalof{bipoles/dsp/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/dsp/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/fft/width}}
+{fft}
+{\ctikzvalof{bipoles/fft/width}}
+{\ctikzvalof{bipoles/fft/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/fft/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{amp}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/amp/width}\pgf@circ@scaled@Rlen
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \pgf@circ@draworfill
+ \fi
+
+ % draw input arrow
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}}
+ }
+ \fi
+
+ \ifpgf@circuit@boxed
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetdash{}{0pt} % draw solid line for inner symbol if no box is drawn
+ \pgf@circ@res@step=.7\pgf@circ@res@step % scale amp symbol when inside a box
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+
+ \pgfsetarrows{-} %never draw arrows
+
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.55\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0}}
+ \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.55\pgf@circ@res@step}}
+
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ % draw inner text
+ \pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
+}
+
+
+%% variable amplifier
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{vamp}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{
+ \ifpgf@circuit@boxed
+ \ctikzvalof{bipoles/twoport/width}
+ \else
+ \ctikzvalof{bipoles/amp/width}
+ \fi
+}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/amp/width}\pgf@circ@scaled@Rlen
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw input arrow
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}}
+ }
+ \fi
+
+ \ifpgf@circuit@boxed
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetdash{}{0pt} % draw solid line for inner symbol if no box is drawn
+ \pgf@circ@res@step=.7\pgf@circ@res@step % scale amp symbol when inside a box
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+
+
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+
+ \pgfpathmoveto{\pgfpoint{-0.5\pgf@circ@res@step}{0.55\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@step}{0}}
+ \pgfpathlineto{\pgfpoint{-0.5\pgf@circ@res@step}{-0.55\pgf@circ@res@step}}
+
+ \pgfpathclose
+ \pgf@circ@draworfill
+
+ % draw inner text
+ \pgftext[center,x=-0.12\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
+
+ % draw arrow
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetarrowsend{latex}
+ \pgfpathmoveto{\pgfpoint{-0.8\pgf@circ@res@step}{-0.5\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.6\pgf@circ@res@step}{0.6\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+%% pi attenuator
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/piattenuator/width}}
+{piattenuator}
+{\ctikzvalof{bipoles/piattenuator/width}}
+{\ctikzvalof{bipoles/piattenuator/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/piattenuator/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/vpiattenuator/width}}
+{vpiattenuator}
+{\ctikzvalof{bipoles/vpiattenuator/width}}
+{\ctikzvalof{bipoles/vpiattenuator/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vpiattenuator/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/tattenuator/width}}
+{tattenuator}
+{\ctikzvalof{bipoles/tattenuator/width}}
+{\ctikzvalof{bipoles/tattenuator/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tattenuator/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/vtattenuator/width}}
+{vtattenuator}
+{\ctikzvalof{bipoles/vtattenuator/width}}
+{\ctikzvalof{bipoles/vtattenuator/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vtattenuator/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/phaseshifter/width}}
+{phaseshifter}
+{\ctikzvalof{bipoles/phaseshifter/width}}
+{\ctikzvalof{bipoles/phaseshifter/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/phaseshifter/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/phaseshifter/width}}
+{vphaseshifter}
+{\ctikzvalof{bipoles/vphaseshifter/width}}
+{\ctikzvalof{bipoles/vphaseshifter/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/vphaseshifter/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+\pgfcircdeclarebipolescaled{blocks}
+{}
+{\ctikzvalof{bipoles/detector/width}}
+{detector}
+{\ctikzvalof{bipoles/detector/width}}
+{\ctikzvalof{bipoles/detector/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/detector/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{bipoles/thickness}\pgfstartlinewidth
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{inputarrow}{tip}{}{pgf@inputarrow}{\pgfusepath{fill}}
+ }
+ \fi
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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@scaled@Rlen / \ctikzvalof{bipoles/generic/width}}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{fulldiodeshape}{center}{}{pgf@fulldiode}{\pgfusepath{fill}}
+ \else
+ \pgfmathparse{2\pgf@circ@res@up / \pgf@circ@scaled@Rlen / \ctikzvalof{bipoles/resistor/width}}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{emptydiodeshape}{center}{}{pgf@emptydiode}{\pgfusepath{fill}}
+ \fi
+
+}
+
+%% single phase ac/dc converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ }
+}
+{\ctikzvalof{bipoles/sacdc/width}}
+{sacdc}
+{\ctikzvalof{bipoles/sacdc/width}}
+{\ctikzvalof{bipoles/sacdc/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/sacdc/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw sin wave
+ \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.5\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+%% dc/dc converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/sdcdc/width}}
+{sdcdc}
+{\ctikzvalof{bipoles/sdcdc/width}}
+{\ctikzvalof{bipoles/sdcdc/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/sdcdc/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+%% single phase dc/ac converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/sdcac/width}}
+{sdcac}
+{\ctikzvalof{bipoles/sdcac/width}}
+{\ctikzvalof{bipoles/sdcac/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/sdcac/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw sin wave
+ \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.5\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+%% threephase ac/dc converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ }
+ \anchor{ac1}{
+ \northeast
+ \pgf@y=.6\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{ac2}{
+ \northeast
+ \pgf@y=0\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{ac3}{
+ \northeast
+ \pgf@y=-.6\pgf@y
+ \pgf@x=-\pgf@x
+ }
+}
+{\ctikzvalof{bipoles/tacdc/width}}
+{tacdc}
+{\ctikzvalof{bipoles/tacdc/width}}
+{\ctikzvalof{bipoles/tacdc/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tacdc/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw sin waves
+ \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.65\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.5\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.76\pgf@circ@res@step}{.35\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+
+
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.2\pgf@circ@res@step}{-.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{0.7\pgf@circ@res@step}{-0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+
+
+%% threephase dc/ac converter
+\pgfcircdeclarebipolescaled{blocks}
+{
+ \anchor{dc1}{
+ \northeast
+ \pgf@y=.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{dc2}{
+ \northeast
+ \pgf@y=-.4\pgf@y
+ \pgf@x=-\pgf@x
+ }
+ \anchor{ac1}{
+ \northeast
+ \pgf@y=.6\pgf@y
+ }
+ \anchor{ac2}{
+ \northeast
+ \pgf@y=0\pgf@y
+ }
+ \anchor{ac3}{
+ \northeast
+ \pgf@y=-.6\pgf@y
+ }
+}
+{\ctikzvalof{bipoles/tdcac/width}}
+{tdcac}
+{\ctikzvalof{bipoles/tdcac/width}}
+{\ctikzvalof{bipoles/tdcac/width}}
+{
+ \pgf@circ@res@step = \ctikzvalof{bipoles/tdcac/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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 > 225 \ifnum \pgfcircmathresult < 315
+ \pgftransformrotate{90}
+ \fi\fi
+
+ % draw inner symbol
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ % draw sin waves
+ \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.65\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.5\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{.14\pgf@circ@res@step}{-.35\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.17\pgf@circ@res@step}{-.17\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.17\pgf@circ@res@step}{.17\pgf@circ@res@step}}
+ \pgfusepath{draw}
+
+
+
+
+ % draw equal sign
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.375\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.375\pgf@circ@res@step}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{-.2\pgf@circ@res@step}{.625\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{-0.7\pgf@circ@res@step}{0.625\pgf@circ@res@step}}
+ \pgfusepath{draw}
+}
+% %>>>
+
+%% Path definitions for Blocks%<<<
+
+\pgfcirc@activate@bipole@simple{l}{twoport}
+\pgfcirc@activate@bipole@simple{l}{twoportsplit}
+\pgfcirc@activate@bipole@simple{l}{vco}
+\pgfcirc@activate@bipole@simple{l}{bandpass}
+\pgfcirc@activate@bipole@simple{l}{bandstop}
+\pgfcirc@activate@bipole@simple{l}{highpass}
+\pgfcirc@activate@bipole@simple{l}{highpass2}
+\pgfcirc@activate@bipole@simple{l}{lowpass}
+\pgfcirc@activate@bipole@simple{l}{lowpass2}
+\pgfcirc@activate@bipole@simple{l}{allpass}
+\pgfcirc@activate@bipole@simple{l}{adc}
+\pgfcirc@activate@bipole@simple{l}{dac}
+\pgfcirc@activate@bipole@simple{l}{dsp}
+\pgfcirc@activate@bipole@simple{l}{fft}
+\pgfcirc@activate@bipole@simple{l}{amp}
+\pgfcirc@activate@bipole@simple{l}{vamp}
+\pgfcirc@activate@bipole@simple{l}{piattenuator}
+\pgfcirc@activate@bipole@simple{l}{vpiattenuator}
+\pgfcirc@activate@bipole@simple{l}{tattenuator}
+\pgfcirc@activate@bipole@simple{l}{vtattenuator}
+\pgfcirc@activate@bipole@simple{l}{phaseshifter}
+\pgfcirc@activate@bipole@simple{l}{vphaseshifter}
+\pgfcirc@activate@bipole@simple{l}{detector}
+\pgfcirc@activate@bipole@simple{l}{sacdc}
+\pgfcirc@activate@bipole@simple{l}{sdcac}
+\pgfcirc@activate@bipole@simple{l}{sdcdc}
+\pgfcirc@activate@bipole@simple{l}{tacdc}
+\pgfcirc@activate@bipole@simple{l}{tdcac}
+% %>>>
+
+%% Node shapes for Block elements%<<<
+
+\pgfdeclareshape{mixer}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@boxed
+ \pgf@y=\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \else
+ \pgf@y=\ctikzvalof{tripoles/mixer/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/mixer/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \fi
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{2}{
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{3}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{4}{
+ \northwest
+ \pgf@y=\pgf@y
+ \pgf@x=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{e}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{w}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{s}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{n}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{up}{
+ \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
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{tripoles/mixer/width}*\scaledRlen/2}{\ctikzvalof{tripoles/mixer/width}*\scaledRlen/2}}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{tripoles/mixer/width}\pgf@circ@scaled@Rlen
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw outer circle
+ \ifpgf@circuit@boxed
+ \pgf@circ@res@step=.7\pgf@circ@res@step
+ \pgfsetdash{}{0pt} % draw solid circle if boxed
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgf@circ@draworfill
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \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}}
+ \pgfusepath{draw}
+
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{adder}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@boxed
+ \pgf@y=\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \else
+ \pgf@y=\ctikzvalof{tripoles/adder/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/adder/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \fi
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{1}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{2}{
+ \northwest
+ \pgf@y=-\pgf@y
+ \pgf@x=0pt
+ }
+ \anchor{3}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{4}{
+ \northwest
+ \pgf@y=\pgf@y
+ \pgf@x=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{e}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{w}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{s}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{n}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{up}{
+ \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
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{tripoles/adder/width}*\scaledRlen/2}{\ctikzvalof{tripoles/adder/width}*\scaledRlen/2}}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{tripoles/adder/width}\pgf@circ@scaled@Rlen
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw outer circle
+ \ifpgf@circuit@boxed
+ \pgf@circ@res@step=.7\pgf@circ@res@step{}
+ \pgfsetdash{}{0pt} % draw solid circle if boxed
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgf@circ@draworfill
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \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}}
+ \pgf@circ@setlinewidth{tripoles}{\pgflinewidth}
+ \pgfusepath{draw}
+
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{oscillator}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@boxed
+ \pgf@y=\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \else
+ \pgf@y=\ctikzvalof{tripoles/oscillator/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/oscillator/width}\pgf@circ@scaled@Rlen
+ \fi
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{north}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{east}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0pt
+ }
+ \anchor{west}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{up}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{n}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{s}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{e}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0pt
+ }
+ \anchor{w}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{up}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=.5\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{south west}{ \northwest \pgf@y=-\pgf@y}
+ \anchor{north east}{ \northwest \pgf@x=0pt\relax}
+ \anchor{north west}{ \northwest }
+ \anchor{south east}{ \northwest \pgf@x=0pt \pgf@y=-\pgf@y }
+ \anchor{text}{
+ \pgf@x=-2\pgf@x
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \advance \pgf@y by -1.5\ht\pgfnodeparttextbox
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{tripoles/oscillator/width}*\scaledRlen/2}{\ctikzvalof{tripoles/oscillator/width}*\scaledRlen/2}}
+ \pgfmathsetlength{\pgf@x}{\pgf@x-\ctikzvalof{tripoles/oscillator/width}*\scaledRlen/2}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{tripoles/oscillator/width}\pgf@circ@scaled@Rlen{}
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+
+ \pgftransformxshift{-0.5\pgf@circ@res@step} % The oscillator is shifted to the left, so a connection comes out of the anchor "east"
+
+ % draw outer box
+ \ifpgf@circuit@boxed{}
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw outer circle
+ \ifpgf@circuit@boxed
+ \pgf@circ@res@step=.7\pgf@circ@res@step{}
+ \pgfsetdash{}{0pt} % draw solid circle if boxed
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgf@circ@draworfill
+
+ % draw inner sine waves
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners!
+ \pgfpathmoveto{\pgfpoint{-0.3\pgf@circ@res@step}{0\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.15\pgf@circ@res@step}{.15\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.15\pgf@circ@res@step}{-.15\pgf@circ@res@step}}
+ \pgfpathsine{\pgfpoint{.15\pgf@circ@res@step}{-.15\pgf@circ@res@step}}
+ \pgfpathcosine{\pgfpoint{.15\pgf@circ@res@step}{.15\pgf@circ@res@step}}
+
+ \pgfusepath{draw}
+
+ \endpgfscope
+ }
+}
+
+\pgfdeclareshape{circulator}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circuit@boxed
+ \pgf@y=\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{bipoles/twoport/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \else
+ \pgf@y=\ctikzvalof{tripoles/circulator/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{tripoles/circulator/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \fi
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+ \anchor{left}{%
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \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{e}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{w}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{s}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{n}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{up}{
+ \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
+ }
+ \anchorborder{
+ \pgf@circ@res@left=\pgf@x
+ \pgf@circ@res@up=\pgf@y
+ \pgfpointborderellipse{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}
+ }{\pgfpoint{\ctikzvalof{tripoles/circulator/width}*\scaledRlen/2}{\ctikzvalof{tripoles/circulator/width}*\scaledRlen/2}}
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{tripoles/circulator/width}\pgf@circ@scaled@Rlen
+
+ \pgfscope
+ \pgfstartlinewidth=\pgflinewidth
+
+ % draw outer box
+ \ifpgf@circuit@boxed
+ \pgfnode{blockbox}{center}{}{pgf@box}{\pgfusepath{draw}}
+ \fi
+
+ % draw outer circle
+ \ifpgf@circuit@boxed{}
+ \pgf@circ@res@step=.7\pgf@circ@res@step{}
+ \pgfsetdash{}{0pt} % draw solid circle if boxed
+ \else
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \fi
+ \pgfpathcircle{\pgfpoint{0}{0}} {0.5\pgf@circ@res@step}
+ \pgf@circ@draworfill
+
+ % 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
+ }
+}
+
+%% gridnode
+\pgfdeclareshape{gridnode}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ }
+ \anchor{center}{
+ \pgfpointorigin
+ }
+
+ \anchor{north}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{up}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{south}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{down}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=-\pgf@y
+ }
+ \anchor{east}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{right}{
+ \northwest
+ \pgf@y=0pt
+ \pgf@x=-\pgf@x
+ }
+ \anchor{west}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{left}{
+ \northwest
+ \pgf@y=0pt
+ }
+ \anchor{south west}{
+ \northwest
+ \pgf@y=-\pgf@y
+ }
+ \anchor{north east}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \relax
+ }
+ \anchor{north west}{
+ \northwest
+ }
+ \anchor{south east}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=-\pgf@y
+ }
+ \anchor{text}{
+ \pgf@x=-2\pgf@x
+ \advance \pgf@x by -.5\wd\pgfnodeparttextbox
+ \advance \pgf@y by -1.5\ht\pgfnodeparttextbox
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \pgf@circ@res@step=\ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@Rlen
+
+ \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@step = \ctikzvalof{quadpoles/gridnode/width}\pgf@circ@scaled@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
+
+ \ifpgf@circuit@dashed
+ \pgfsetdash{{0.1cm}{0.1cm}}{0cm}
+ \fi
+
+ % draw outer box
+ \pgf@circ@twoportbox
+
+
+ \ifpgf@circuit@inputarrow
+ {
+ \advance \pgf@circ@res@left by -.5\ctikzvalof{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
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{0.05mm}
+
+ % draw grid
+ \foreach \line in {-1,-.5,...,1}
+ {
+ \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\line\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\line\pgf@circ@res@down}}
+ }
+
+ %prevent from draw the inner cross twice
+ \foreach \line in {-.5,0,...,.5}
+ {
+ \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\line\pgf@circ@res@up}}
+
+ \pgfpathmoveto{\pgfpoint{\line\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\line\pgf@circ@res@down}}
+ }
+ \pgfusepath{draw}
+ }
+}
+
+
+% Wilkinson divider
+\pgfdeclareshape{wilkinson}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/wilkinson/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=-\ctikzvalof{tripoles/wilkinson/width}\pgf@x
+ }
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \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{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \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
+ \pgf@circ@twoportbox
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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@scaled@Rlen / \ctikzvalof{bipoles/generic/width} / 2}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{genericshape}{center}{}{wilk@int@R}{\pgfusepath{fill}}
+ \else
+ \pgfmathparse{\pgf@circ@res@up / \pgf@circ@scaled@Rlen / \ctikzvalof{bipoles/resistor/width} / 2}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{resistorshape}{center}{}{wilk@int@R}{\pgfusepath{fill}}
+ \fi
+ }
+
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpointanchor{wilk@int@R}{right}}
+
+ \pgfpathmoveto{\pgfpointanchor{wilk@int@R}{left}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ }
+}
+
+%% resistive splitter
+\pgfdeclareshape{splitter}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/wilkinson/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=-\ctikzvalof{tripoles/wilkinson/width}\pgf@x
+ }
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \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{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \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
+ \pgf@circ@twoportbox
+
+ % draw inner stuff
+ \pgfsetdash{}{0pt} % always draw solid line for inner symbol
+ \pgfsetarrows{-} %never draw arrows
+ \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}}
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\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 resisitors - european or american style is recognised
+ \foreach \respt/\resang/\linepta/\lineptb in %
+ { \pgfpoint{0.5\pgf@circ@res@right}{0pt}/90/%
+ \pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}/\pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down},%
+ \pgfpoint{0}{0.25\pgf@circ@res@up}/25/%
+ \pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@up}/\pgfpoint{0.5\pgf@circ@res@left}{0},%
+ \pgfpoint{0}{0.25\pgf@circ@res@down}/-25/%
+ \pgfpoint{0.5\pgf@circ@res@right}{0.5\pgf@circ@res@down}/\pgfpoint{0.5\pgf@circ@res@left}{0}}
+ {
+ {
+ \pgftransformshift{\respt}
+ \pgftransformrotate{\resang}
+
+ % calculate size of resistor
+ \ifpgf@circuit@europeanresistor
+ \pgfmathparse{\pgf@circ@res@up / \pgf@circ@scaled@Rlen / \ctikzvalof{bipoles/generic/width} / 2}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{genericshape}{center}{}{wilk@int@R}{\pgfusepath{fill}}
+ \else
+ \pgfmathparse{\pgf@circ@res@up / \pgf@circ@scaled@Rlen / \ctikzvalof{bipoles/resistor/width} / 2}
+ \pgftransformscale{\pgfmathresult}
+ \pgfnode{resistorshape}{center}{}{wilk@int@R}{\pgfusepath{fill}}
+ \fi
+ }
+
+ \pgfpathmoveto{\linepta}
+ \pgfpathlineto{\pgfpointanchor{wilk@int@R}{right}}
+
+ \pgfpathmoveto{\pgfpointanchor{wilk@int@R}{left}}
+ \pgfpathlineto{\lineptb}
+ \pgfusepath{draw}
+ }
+ }
+}
+
+%% couplers generics
+\long\def\pgfcircdeclarefourport#1#2{
+
+ \pgfdeclareshape{#1}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{quadpoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x=.5\pgf@circ@scaled@Rlen
+ \pgf@x=-\ctikzvalof{quadpoles/#1/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{left down}{
+ \northwest
+ \pgf@y=-0.5\pgf@y
+ }
+ \anchor{right down}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=-0.5\pgf@y
+ }
+ \anchor{right up}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=0.5\pgf@y
+ }
+ \anchor{left up}{
+ \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{\ctikzvalof{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@scaled@Rlen=\scaledRlen
+
+ \pgfstartlinewidth=\pgflinewidth
+
+ % draw outer box
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@draworfill
+
+ % draw inner stuff
+ #2
+
+ % draw inner text
+ \pgftext[center,x=-0.15\pgf@circ@res@step,y=0]{\ctikzvalof{bipoles/twoport/text}}
+ }
+ }
+}
+
+% four-port
+\pgfcircdeclarefourport{fourport}{}
+
+% straight coupler
+\pgfcircdeclarefourport{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
+\pgfcircdeclarefourport{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}
+
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}}
+ \pgfpatharc{0}{90} {0.4\pgf@circ@res@up}
+ \pgfsetarrowsend{latex}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@left}{0pt}}
+ \pgfpatharc{0}{-90} {0.4\pgf@circ@res@up}
+ \pgfsetarrowsend{latex}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}}
+ \pgfpatharc{180}{90} {0.4\pgf@circ@res@up}
+ \pgfsetarrowsend{latex}
+ \pgfusepath{draw}
+ \endpgfscope
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{0.1\pgf@circ@res@right}{0pt}}
+ \pgfpatharc{-180}{-90} {0.4\pgf@circ@res@up}
+ \pgfsetarrowsend{latex}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
+% mach zehnder modulator
+\pgfdeclareshape{mzm}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{blocks}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{tripoles/mzm/height}\pgf@circ@scaled@Rlen
+ \pgf@y=.5\pgf@y
+ \pgf@x= \pgf@circ@scaled@Rlen
+ \pgf@x=.5\pgf@x
+ \pgf@x=-\ctikzvalof{tripoles/mzm/width}\pgf@x
+ }
+ \anchor{center}{
+ \northwest
+ \pgf@x=0pt
+ \pgf@y=0pt
+ }
+ \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{mod}{
+ \northwest
+ \pgf@x=0pt
+ }
+ \anchor{out}{
+ \northwest
+ \pgf@x=-\pgf@x
+ \pgf@y=0pt
+ }
+ \anchor{text}{
+ \northwest
+ \advance \pgf@y by 0.5\ht\pgfnodeparttextbox
+ \pgf@x=-.5\wd\pgfnodeparttextbox
+ }
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@scaled@Rlen=\scaledRlen
+
+ \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
+ \pgf@circ@twoportbox
+
+ % draw inner stuff
+ % 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
+ \pgfsetarrows{-} %never draw arrows
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.75\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.25\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@left}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.25\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.75\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.75\pgf@circ@res@right}{\pgf@circ@res@zero}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.25\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{0.5\pgf@circ@res@right}{0.25\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0.5\pgf@circ@res@left}{0.25\pgf@circ@res@down}}
+ \pgfusepath{draw}
+
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@zero}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@zero}{0.35\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0.25\pgf@circ@res@right}{0.1\pgf@circ@res@up}}
+ \pgfusepath{draw}
+
+ }
+}
+% %>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircquadpoles
+%%%%%%%%%%% Springe nach tex/pgfcircmultipoles
+%%%---------- open: tex/pgfcircmultipoles.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Chips and Rotary Switches
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Definitions for Chips and Rotary switches (multipoles) %<<<1
+%
+\ctikzset{multipoles/thickness/.initial=2}
+\ctikzset{multipoles/font/.initial=\pgf@circ@font@tiny}
+\ctikzset{multipoles/draw only pins/.initial={all}}
+\ctikzset{multipoles/draw only left pins/.initial={all}}
+\ctikzset{multipoles/draw only right pins/.initial={all}}
+\ctikzset{multipoles/draw only top pins/.initial={all}}
+\ctikzset{multipoles/draw only bottom pins/.initial={all}}
+\pgfqkeys{/tikz}{draw only pins/.add code={}{\ctikzset{multipoles/draw only pins={#1}}}}
+\pgfqkeys{/tikz}{draw only left pins/.add code={}{\ctikzset{multipoles/draw only left pins={#1}}}}
+\pgfqkeys{/tikz}{draw only right pins/.add code={}{\ctikzset{multipoles/draw only right pins={#1}}}}
+\pgfqkeys{/tikz}{draw only top pins/.add code={}{\ctikzset{multipoles/draw only top pins={#1}}}}
+\pgfqkeys{/tikz}{draw only bottom pins/.add code={}{\ctikzset{multipoles/draw only bottom pins={#1}}}}
+% DIP (dual in line package) chips
+\ctikzset{multipoles/dipchip/width/.initial=1.2}
+\ctikzset{multipoles/dipchip/num pins/.initial=8}
+\ctikzset{multipoles/dipchip/pin spacing/.initial=0.4}
+\pgfkeys{/tikz/num pins/.add code={}{\ctikzset{multipoles/dipchip/num pins=#1}}}
+% QFP (quad flat package) chips
+\ctikzset{multipoles/qfpchip/num pins/.initial=8}
+\ctikzset{multipoles/qfpchip/pin spacing/.initial=0.4}
+\pgfkeys{/tikz/num pins/.add code={}{\ctikzset{multipoles/qfpchip/num pins=#1}}}
+% chip numbers
+\newif\ifpgf@circuit@chip@shownumbers\pgf@circuit@chip@shownumberstrue
+\pgfkeys{/tikz/show numbers/.add code={}{\pgf@circuit@chip@shownumberstrue}}
+\ctikzset{show numbers/.add code={}{\pgf@circuit@chip@shownumberstrue}}
+\pgfkeys{/tikz/hide numbers/.add code={}{\pgf@circuit@chip@shownumbersfalse}}
+\ctikzset{hide numbers/.add code={}{\pgf@circuit@chip@shownumbersfalse}}
+\newif\ifpgf@circuit@chip@straightnumbers\pgf@circuit@chip@straightnumberstrue
+\pgfkeys{/tikz/straight numbers/.add code={}{\pgf@circuit@chip@straightnumberstrue}}
+\ctikzset{straight numbers/.add code={}{\pgf@circuit@chip@straightnumberstrue}}
+\pgfkeys{/tikz/rotated numbers/.add code={}{\pgf@circuit@chip@straightnumbersfalse}}
+\ctikzset{rotated numbers/.add code={}{\pgf@circuit@chip@straightnumbersfalse}}
+% external chip pins
+\ctikzset{multipoles/external pins thickness/.initial=1}
+\ctikzset{multipoles/external pins width/.initial=0.2}
+\ctikzset{multipoles/external pad fraction/.initial=0}
+\pgfkeys{/tikz/external pins width/.add code={}{\ctikzset{multipoles/external pins width=#1}}}
+\pgfkeys{/tikz/external pad fraction/.add code={}{\ctikzset{multipoles/external pad fraction=#1}}}
+% topmarks
+\newif\ifpgf@circuit@chip@topmark\pgf@circuit@chip@topmarktrue
+\pgfkeys{/tikz/topmark/.add code={}{\pgf@circuit@chip@topmarktrue}}
+\ctikzset{topmark/.add code={}{\pgf@circuit@chip@topmarktrue}}
+\pgfkeys{/tikz/no topmark/.add code={}{\pgf@circuit@chip@topmarkfalse}}
+\ctikzset{no topmark/.add code={}{\pgf@circuit@chip@topmarkfalse}}
+
+% rotary switch by Romano
+\ctikzset{multipoles/rotary/thickness/.initial=1}
+\ctikzset{multipoles/rotary/shape/.initial=ocirc}
+\ctikzset{multipoles/rotary/channels/.initial=5}
+\ctikzset{multipoles/rotary/angle/.initial=60}
+\ctikzset{multipoles/rotary/wiper/.initial=20}
+\ctikzset{multipoles/rotary/arrow/.is choice}
+\newif\ifpgf@circ@rotaryarrow\pgf@circ@rotaryarrowfalse
+\newif\ifpgf@circ@rotaryarrow@cw\pgf@circ@rotaryarrow@cwfalse
+\newif\ifpgf@circ@rotaryarrow@ccw\pgf@circ@rotaryarrow@ccwfalse
+\ctikzset{multipoles/rotary/arrow/none/.code={\pgf@circ@rotaryarrowfalse\pgf@circ@rotaryarrow@cwfalse\pgf@circ@rotaryarrow@ccwfalse}}
+\ctikzset{multipoles/rotary/arrow/both/.code={\pgf@circ@rotaryarrowtrue\pgf@circ@rotaryarrow@cwtrue\pgf@circ@rotaryarrow@ccwtrue}}
+\ctikzset{multipoles/rotary/arrow/cw/.code={\pgf@circ@rotaryarrowtrue\pgf@circ@rotaryarrow@cwtrue\pgf@circ@rotaryarrow@ccwfalse}}
+\ctikzset{multipoles/rotary/arrow/ccw/.code={\pgf@circ@rotaryarrowtrue\pgf@circ@rotaryarrow@cwfalse\pgf@circ@rotaryarrow@ccwtrue}}
+
+\tikzset{%
+ rotary switch/.style args={#1in#2wiper#3}{%
+ shape=rotaryswitch,
+ /tikz/circuitikz/multipoles/rotary/channels=#1,
+ /tikz/circuitikz/multipoles/rotary/angle=#2,
+ /tikz/circuitikz/multipoles/rotary/wiper=#3,
+ },
+ rotary switch -/.style args={#1in#2wiper#3}{
+ rotary switch=#1 in #2 wiper #3,
+ /tikz/circuitikz/multipoles/rotary/arrow=none,
+ },
+ rotary switch <-/.style args={#1in#2wiper#3}{
+ rotary switch=#1 in #2 wiper #3,
+ /tikz/circuitikz/multipoles/rotary/arrow=ccw,
+ },
+ rotary switch ->/.style args={#1in#2wiper#3}{
+ rotary switch=#1 in #2 wiper #3,
+ /tikz/circuitikz/multipoles/rotary/arrow=cw,
+ },
+ rotary switch <->/.style args={#1in#2wiper#3}{
+ rotary switch=#1 in #2 wiper #3,
+ /tikz/circuitikz/multipoles/rotary/arrow=both,
+ },
+ % Notice that these should be the same as the initial values of the keys
+ rotary switch/.default={5 in 60 wiper 20},
+ rotary switch -/.default={5 in 60 wiper 20},
+ rotary switch <-/.default={5 in 60 wiper 20},
+ rotary switch ->/.default={5 in 60 wiper 20},
+ rotary switch <->/.default={5 in 60 wiper 20},
+}
+%%>>>
+
+%% Nodes definitions for chips%<<<
+
+%%%%%%%%%
+%% Chips
+%%%%%%%%%
+
+% let's use the same shifts everywhere, no magic numbers
+\def\pgf@circ@dip@pin@shift{0.5}
+\def\pgf@circ@qfp@pin@shift{0.25}
+
+% derived from https://tex.stackexchange.com/a/146753/38080
+% original author Mark Wibrow
+% Thanks also to John Kormylo https://tex.stackexchange.com/a/372996/38080
+% a lot of thanks to @marmot for the un-rotation hint
+% https://tex.stackexchange.com/a/473571/38080
+% modifications for 'draw only pins' by Jonathan P. Spratte
+
+% DIP (dual in line package) chips
+
+% helper macro to set the anchors inside a loop (to expand the current count)
+\pgfutil@protected\def\pgf@circ@make@dippin@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@dipchip@pin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{#1}
+ {\pgf@circ@dippinanchor{#1}{1}}
+ {\pgf@circ@dippinanchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@dipchip@bpin #1\endcsname
+ {\pgf@circ@dippinanchor{#1}{0}}%
+ }
+
+\pgfdeclareshape{dipchip}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{chips}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro\numpins{%
+ \pgf@circ@count@a=\ctikzvalof{multipoles/dipchip/num pins}%
+ \def\numpins{\the\pgf@circ@count@a}
+ }
+ \savedmacro\pgf@circ@pins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@pins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedanchor\centerpoint{%
+ \pgf@x=-.5\wd\pgfnodeparttextbox%
+ \pgf@y=-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+.5\dp\pgfnodeparttextbox%
+ }%
+ \savedanchor\origin{\pgfpoint{0pt}{0pt}}
+ \anchor{center}{\origin}
+ \anchor{text}{\centerpoint}% to adjust text
+ \saveddimen\height{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{((\numpins)
+ *\ctikzvalof{multipoles/dipchip/pin spacing})*\pgf@circ@scaled@Rlen/2}%
+ }%
+ \saveddimen{\chipspacing}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/dipchip/pin spacing}}}
+ \saveddimen{\width}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/dipchip/width}}}
+ \saveddimen{\extshift}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/external pins width}}}
+ % standard anchors
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{0.5*((\numpins)
+ *\ctikzvalof{multipoles/dipchip/pin spacing})*\pgf@circ@scaled@Rlen/2}%
+ \pgfmathsetlength\pgf@x{-0.5*\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/dipchip/width}}
+ }
+ \anchor{dot}{\northwest
+ \pgfmathsetlength\pgf@x{\pgf@x + 0.3*\chipspacing}
+ \pgfmathsetlength\pgf@y{\pgf@y - 0.3*\chipspacing}
+ }
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northwest\pgf@x=-\pgf@x}
+ \anchor{se}{\northwest\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{sw}{\northwest\pgf@y=-\pgf@y}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{south east}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{south west}{\northwest\pgf@y=-\pgf@y}
+ \anchor{n}{\northwest\pgf@x=0pt }
+ \anchor{e}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{w}{\northwest\pgf@y=0pt }
+ \anchor{north}{\northwest\pgf@x=0pt }
+ \anchor{east}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{south}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{west}{\northwest\pgf@y=0pt }
+ % start drawing
+ \backgroundpath{%
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step = \ctikzvalof{multipoles/dipchip/pin spacing}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other = \ctikzvalof{multipoles/external pins width}\pgf@circ@scaled@Rlen
+ \pgfscope% (for the line width)
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{-\width/2}{-\height/2}}{\pgfpoint{\width/2}{\height/2}}%
+ \pgf@circ@draworfill
+ %% upside mark
+ \ifpgf@circuit@chip@topmark
+ \pgfpathmoveto{\pgfpoint{0.2*\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpatharc{0}{180}{0.2*\pgf@circ@res@left}
+ \fi
+ \pgfusepath{stroke}%
+ \pgfsetcolor{\ctikzvalof{color}}
+ % Adding the pin number
+ \ifpgf@circuit@chip@shownumbers
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ % thanks to @marmot: https://tex.stackexchange.com/a/473571/38080
+ \ifpgf@circuit@chip@straightnumbers
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \pgfmathtruncatemacro{\quadrant}{mod(4+int(360+(\rot+45)/90),4)}
+ \else
+ \pgfmathsetmacro{\rot}{0}
+ \pgfmathsetmacro{\quadrant}{0}
+ \fi
+ \def\pgf@circ@strut{\vrule width 0pt height 1em depth 0.4em\relax}
+ \def\mytext{\ctikzvalof{multipoles/font}\space\pgf@circ@strut\the\pgf@circ@count@c\space}
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \ifcase\quadrant % rotation 0
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \fi
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ \fi
+ \endpgfscope
+ % draw external pins or pads
+ \ifdim\pgf@circ@res@other>0pt
+ \ifpgfcirc@draw@input@leads
+ \pgfscope
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ \edef\padfrac{\ctikzvalof{multipoles/external pad fraction}}
+ \ifnum\padfrac>0
+ \pgf@circ@res@temp=\pgf@circ@res@step\divide\pgf@circ@res@temp by \padfrac
+ \fi
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % left side
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list\pgf@circ@count@a
+ {%
+ \ifnum\padfrac>0
+ % pads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \else
+ % pins
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \fi
+ }
+ {}%
+ % right side
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{\numpins+1-\pgf@circ@count@a}
+ {%
+ \ifnum\padfrac>0
+ % pads
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \else
+ % pins
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \fi
+ }
+ {}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop
+ \pgfusepath{stroke}
+ \endpgfscope
+ \fi
+ \fi
+ }%
+ \pgfutil@g@addto@macro\pgf@sh@s@dipchip{%
+ \pgf@circ@count@a=\numpins
+ \pgfmathloop
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ % see the helper function above the start of the shape definition (by Jonathan P. Spratte)
+ \expandafter\pgf@circ@make@dippin@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax
+ \repeatpgfmathloop
+ }%
+ }
+
+% QFP (quad flat package) chips
+% helper macro to set the anchors inside a loop (to expand the current count)
+\pgfutil@protected\def\pgf@circ@make@qfppin@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@qfpchip@pin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{#1}
+ {\pgf@circ@qfppinanchor{#1}{1}}
+ {\pgf@circ@qfppinanchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@qfpchip@bpin #1\endcsname
+ {\pgf@circ@qfppinanchor{#1}{0}}%
+ }
+
+\pgfdeclareshape{qfpchip}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{chips}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro\numpins{%
+ \pgf@circ@count@a=\ctikzvalof{multipoles/qfpchip/num pins}%
+ \def\numpins{\the\pgf@circ@count@a}
+ }
+ \savedmacro\pgf@circ@pins@list
+ {% some magic here, thanks to Jonathan P. Spratte
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@pins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedanchor\centerpoint{%
+ \pgf@x=-.5\wd\pgfnodeparttextbox%
+ \pgf@y=-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+.5\dp\pgfnodeparttextbox%
+ }%
+ \savedanchor\origin{\pgfpoint{0pt}{0pt}}
+ \anchor{center}{\origin}
+ \anchor{text}{\centerpoint}% to adjust text
+ \saveddimen\height{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{((\numpins+2)
+ *\ctikzvalof{multipoles/qfpchip/pin spacing})*\pgf@circ@scaled@Rlen/4}%
+ }%
+ \saveddimen\width{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{((\numpins+2)
+ *\ctikzvalof{multipoles/qfpchip/pin spacing})*\pgf@circ@scaled@Rlen/4}%
+ }%
+ \saveddimen{\chipspacing}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/qfpchip/pin spacing}}}
+ \saveddimen{\extshift}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/external pins width}}}
+ % standard anchors
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{0.5*((\numpins+2)
+ *\ctikzvalof{multipoles/qfpchip/pin spacing})*\pgf@circ@scaled@Rlen/4}%
+ \pgf@x=-\pgf@y
+ }
+ \anchor{dot}{\northwest
+ \pgfmathsetlength\pgf@x{\pgf@x + 0.3*\chipspacing}
+ \pgfmathsetlength\pgf@y{\pgf@y - 0.3*\chipspacing}
+ }
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northwest\pgf@x=-\pgf@x}
+ \anchor{se}{\northwest\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{sw}{\northwest\pgf@y=-\pgf@y}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{south east}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{south west}{\northwest\pgf@y=-\pgf@y}
+ \anchor{n}{\northwest\pgf@x=0pt }
+ \anchor{e}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{w}{\northwest\pgf@y=0pt }
+ \anchor{north}{\northwest\pgf@x=0pt }
+ \anchor{east}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{south}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{west}{\northwest\pgf@y=0pt }
+ % start drawing
+ \backgroundpath{%
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step = \ctikzvalof{multipoles/qfpchip/pin spacing}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other = \ctikzvalof{multipoles/external pins width}\pgf@circ@scaled@Rlen
+ \pgfscope% (for the line width)
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ %% upside mark
+ \ifpgf@circuit@chip@topmark
+ \pgfpathmoveto{\pgfpoint{-\width/2}{\height/2-\pgf@circ@res@step/2}}
+ \pgfpathlineto{\pgfpoint{-\width/2+\pgf@circ@res@step/2}{\height/2}}
+ \else
+ \pgfpathmoveto{\pgfpoint{-\width/2}{\height/2}}
+ \fi
+ %% rest of the shape
+ \pgfpathlineto{\pgfpoint{\width/2}{\height/2}}
+ \pgfpathlineto{\pgfpoint{\width/2}{-\height/2}}
+ \pgfpathlineto{\pgfpoint{-\width/2}{-\height/2}}
+ \pgfpathclose
+ \pgf@circ@draworfill
+ % Adding the pin number
+ \pgfsetcolor{\ctikzvalof{color}}
+ \ifpgf@circuit@chip@shownumbers
+ \pgf@circ@count@a=\numpins%
+ \divide\pgf@circ@count@a by 4 \pgf@circ@count@b=\pgf@circ@count@a
+ % thanks to @marmot: https://tex.stackexchange.com/a/473571/38080
+ \ifpgf@circuit@chip@straightnumbers
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \pgfmathtruncatemacro{\quadrant}{mod(4+int(360+(\rot+45)/90),4)}
+ \else
+ \pgfmathsetmacro{\rot}{0}
+ \pgfmathsetmacro{\quadrant}{0}
+ \fi
+ \def\pgf@circ@strut{\vrule width 0pt height 1em depth 0.4em\relax}
+ \def\mytext{\ctikzvalof{multipoles/font}\space\pgf@circ@strut\the\pgf@circ@count@c\space}
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \ifcase\quadrant % rotation 0
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % bottom
+ \pgf@circ@count@c=\numexpr\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % top
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % bottom
+ \pgf@circ@count@c=\numexpr\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % top
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % bottom
+ \pgf@circ@count@c=\numexpr\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % top
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % bottom
+ \pgf@circ@count@c=\numexpr\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % top
+ \pgf@circ@count@c=\numexpr3*\pgf@circ@count@b+\pgf@circ@count@a\relax
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up},
+ rotate=\rot]{\mytext}
+ \fi
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ \fi
+ \endpgfscope
+ \ifdim\pgf@circ@res@other>0pt
+ \ifpgfcirc@draw@input@leads
+ \pgfscope
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ \pgf@circ@count@a=\numpins%
+ \divide\pgf@circ@count@a by 4 \pgf@circ@count@b=\pgf@circ@count@a
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \edef\padfrac{\ctikzvalof{multipoles/external pad fraction}}
+ \ifnum\padfrac>0
+ \pgf@circ@res@temp=\pgf@circ@res@step\divide\pgf@circ@res@temp by \padfrac
+ % left side pads
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list\pgf@circ@count@a
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ % bottom side pads
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{\numpins/4+\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@temp+\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@temp+\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down-\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down-\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down}}
+ }{}%
+ % right side pads
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{3*\numpins/4+1-\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@temp+\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ % top side pads
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{3*\numpins/4+\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp+\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up+\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@temp+\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up+\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{-\pgf@circ@res@temp+\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up}}
+ }{}%
+ \else
+ % left side pins
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list\pgf@circ@count@a
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ % bottom side pins
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{\numpins/4+\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@down-\pgf@circ@res@other}}
+ }{}%
+ % right side pins
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{3*\numpins/4+1-\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ % top side pins
+ \pgf@circ@if@num@in@list\pgf@circ@pins@list{3*\numpins/4+\pgf@circ@count@a}
+ {%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+(\pgf@circ@qfp@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}{\pgf@circ@res@up+\pgf@circ@res@other}}
+ }{}%
+ \fi
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ \pgfusepath{stroke}
+ \endpgfscope
+ \fi
+ \fi
+ }%
+ % \pgf@sh@s@<name of the shape here> contains all the code for the shape
+ % and is executed just before a node is drawn.
+ \pgfutil@g@addto@macro\pgf@sh@s@qfpchip{%
+ % Start with the maximum pin number and go backwards.
+ \pgf@circ@count@a=\numpins%
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \expandafter\pgf@circ@make@qfppin@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop%
+ }%
+ }
+
+%% anchors for DIP
+\def\pgf@circ@dippinanchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \c@pgf@countc=\numpins\relax
+ \divide\c@pgf@countc by 2
+ \ifnum #1 > \the\c@pgf@countc
+ % right side
+ \pgfpoint{\width/2+#2*\extshift}{-\height/2+(\pgf@circ@dip@pin@shift-\c@pgf@countc+#1-1)*\chipspacing}
+ \else
+ \pgfpoint{-\width/2-#2*\extshift}{\height/2+(\pgf@circ@dip@pin@shift-#1)*\chipspacing}
+\fi
+}
+
+%% anchors for QFP
+\def\pgf@circ@qfppinanchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \c@pgf@countc=\numpins\relax
+ \divide\c@pgf@countc by 4
+ \ifnum #1 > \the\c@pgf@countc
+ \c@pgf@countb=\c@pgf@countc \multiply \c@pgf@countb by 2
+ \ifnum #1 > \the\c@pgf@countb
+ \c@pgf@countb=\c@pgf@countc \multiply \c@pgf@countb by 3
+ \ifnum #1 > \the\c@pgf@countb
+ % 3*npins/4 < pin, top side
+ \pgfpoint{\width/2+(\pgf@circ@qfp@pin@shift+\c@pgf@countb-#1)*\chipspacing}{\height/2+#2*\extshift}%
+ \else
+ % 2*npins/4 < pin <= 3*npins/4, right side
+ \pgfpoint{\width/2+#2*\extshift}{\height/2+(\pgf@circ@qfp@pin@shift-\c@pgf@countb+#1-1)*\chipspacing}%
+ \fi
+ \else
+ % npins/4 < pin <= 2*npins/4, bottom side
+ \pgfpoint{\width/2+(\pgf@circ@qfp@pin@shift-\c@pgf@countb+#1-1)*\chipspacing}{-\height/2-#2*\extshift}%
+ \fi
+ \else
+ % <= npins/4, left side
+ \pgfpoint{-\width/2-#2*\extshift}{\height/2+(\pgf@circ@qfp@pin@shift-#1)*\chipspacing}%
+ \fi
+}% %>>>
+
+%% Nodes definition for rotaryswitch%<<<
+
+%%%%%%%%%%%%%%%%%
+%% Rotary Switch
+%%%%%%%%%%%%%%%%%
+
+\pgfdeclareshape{rotaryswitch}
+{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{switches}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedanchor\northeast{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % this strange value makes the 2-pole rotary switch equal to the 2 poles cute spdt
+ % the magic number is 0.25/cos(35)
+ % try to recalculate it for the actual switch
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=.3052\pgf@circ@res@temp
+ \edef\a{\ctikzvalof{multipoles/rotary/angle}}
+ \edef\r{\ctikzvalof{nodes width}}
+ \pgfmathsetlength{\pgf@y}{\r*\pgf@circ@scaled@Rlen +(\a>90 ? 2 : 2*sin(\a))*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@x}{\r*\pgf@circ@scaled@Rlen + \pgf@circ@res@temp}
+ }
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % this strange value makes the 2-pole rotary switch equal to the 2 poles cute spdt
+ % the magic number is 0.25/cos(35)
+ % try to recalculate it for the actual switch
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=.3052\pgf@circ@res@temp
+ \edef\a{\ctikzvalof{multipoles/rotary/angle}}
+ \edef\r{\ctikzvalof{nodes width}}
+ \pgfmathsetlength{\pgf@y}{\r*\pgf@circ@scaled@Rlen +(\a>90 ? 2 : 2*sin(\a))*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@x}{-\r*\pgf@circ@scaled@Rlen - (\a<90 ? 1 : 1-2*cos(\a))*\pgf@circ@res@temp}
+ }
+ \savedanchor\central{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ % this strange value makes the 2-pole rotary switch equal to the 2 poles cute spdt
+ % the magic number is 0.25/cos(35)
+ % try to recalculate it for the actual switch
+ \pgf@circ@res@temp=\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@temp=.3052\pgf@circ@res@temp
+ \edef\a{\ctikzvalof{multipoles/rotary/angle}}
+ \edef\r{\ctikzvalof{nodes width}}
+ \pgfmathsetlength{\pgf@y}{\r*\pgf@circ@scaled@Rlen +(\a>90 ? 2 : 2*sin(\a))*\pgf@circ@res@temp}
+ \pgfmathsetlength{\pgf@x}{(\a<90 ? 0 : cos(\a))*\pgf@circ@res@temp}
+ }
+ % external square limits
+ \savedanchor\extnorthwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@x=-\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
+ % this strange value makes the 2-pole rotary switch equal to the 2 poles cute spdt
+ \pgf@x=.3052\pgf@x % the magic number is 0.25/cos(35)
+ \pgf@x=2.5\pgf@x % external square size
+ \pgf@y=-\pgf@x %square thing when angle=180?
+ }
+ \saveddimen{\width}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{0.3052*\pgf@circ@scaled@Rlen*\ctikzvalof{tripoles/spdt/width}}}
+ % radius of the connector
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ \saveddimen{\radius}{\pgfmathsetlength\pgf@x{\pgf@circ@Rlen*\ctikzvalof{nodes width}}}
+ % shapename
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ % shape type
+ \savedmacro{\cshape}{\def\cshape{\ctikzvalof{multipoles/rotary/shape}}}
+ \savedmacro{\channels}{\def\channels{\ctikzvalof{multipoles/rotary/channels}}}
+ \savedmacro{\angle}{\def\angle{\ctikzvalof{multipoles/rotary/angle}}}
+ \savedmacro{\wiper}{\def\wiper{\ctikzvalof{multipoles/rotary/wiper}}}
+ \savedmacro{\stepa}{\pgfmathsetmacro{\stepa}{2*\ctikzvalof{multipoles/rotary/angle}/(\ctikzvalof{multipoles/rotary/channels}-1)}}
+ % mid of the lever, to stack switches
+ %\anchor{mid}{\midlever}
+ \anchor{mid}{\northwest
+ \pgf@circ@res@temp=-\pgf@x
+ \pgfmathsetlength{\pgf@x}{\pgf@circ@res@temp*(-1+cos(\wiper))}
+ \pgfmathsetlength{\pgf@y}{\pgf@circ@res@temp*sin(\wiper)}
+ }
+ %
+ % Notice that the "in" anchors must mimic "ext center", otherwise they are
+ % wrong for angles > 90 degrees!
+ %
+ % center anchors
+ \anchor{cin}{ \pgf@y=0pt \pgf@x=0pt \advance\pgf@x by -\width}
+ % horizontal angles
+ \anchor{in}{ \pgf@y=0pt \pgf@x=0pt \advance\pgf@x by -\width \advance\pgf@x by -\radius}
+ \anchor{ain}{ \pgf@y=0pt \pgf@x=0pt \advance\pgf@x by -\width \advance\pgf@x by -\radius}
+
+ \anchor{center}{ \central \pgf@y=0pt }
+ \anchor{east}{ \northeast \pgf@y=0pt }
+ \anchor{west}{ \northwest \pgf@y=0pt }
+ \anchor{south}{ \central \pgf@y=-\pgf@y }
+ \anchor{north}{ \central }
+ \anchor{south west}{ \northwest \pgf@y=-\pgf@y }
+ \anchor{north east}{ \northeast }
+ \anchor{north west}{ \northwest }
+ \anchor{south east}{ \northeast \pgf@y=-\pgf@y }
+
+ \anchor{ext center}{ \pgf@y=0pt \pgf@x=0pt \advance\pgf@x by -\width}
+ \anchor{ext east}{ \extnorthwest \pgf@y=0pt \pgf@x=-\pgf@x \advance\pgf@x by -\width}
+ \anchor{ext west}{ \extnorthwest \pgf@y=0pt \advance\pgf@x by -\width}
+ \anchor{ext south}{ \extnorthwest \pgf@x=0pt \pgf@y=-\pgf@y \advance\pgf@x by -\width}
+ \anchor{ext north}{ \extnorthwest \pgf@x=0pt \advance\pgf@x by -\width}
+ \anchor{ext south west}{ \extnorthwest \pgf@y=-\pgf@y \advance\pgf@x by -\width}
+ \anchor{ext north east}{ \extnorthwest \pgf@x=-\pgf@x \advance\pgf@x by -\width}
+ \anchor{ext north west}{ \extnorthwest \advance\pgf@x by -\width}
+ \anchor{ext south east}{ \extnorthwest \pgf@x=-\pgf@x \pgf@y=-\pgf@y \advance\pgf@x by -\width}
+
+ \backgroundpath{
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgf@circ@res@right = \width
+ \pgf@circ@res@left = -\width
+
+ \pgfscope %wiper
+ % This is the radius of the "ocirc" shape (see pgfcircshapes.tex)
+ \pgf@circ@res@temp=\radius\relax
+ \pgf@circ@res@temp=\ctikzvalof{multipoles/rotary/thickness}\pgf@circ@res@temp
+ \pgfsetlinewidth{2\pgf@circ@res@temp}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpointadd{\pgfpoint{\pgf@circ@res@left}{0pt}}{\pgfpointpolar{\wiper}{2\pgf@circ@res@right}}}
+ \pgfsetroundcap\pgfusepath{draw}
+ \endpgfscope
+
+ \ifpgf@circ@rotaryarrow
+ \pgfscope % arrow
+ \pgfcirc@set@arrows{switch}{\ifpgf@circ@rotaryarrow@ccw latexslim\fi}{\ifpgf@circ@rotaryarrow@cw latexslim\fi}
+ \pgf@circ@setlinewidth{bipoles}{\pgflinewidth}
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}} % center of cin node
+ \pgftransformrotate{\wiper}
+ \pgfpathmoveto{\pgfpointpolar{50}{1.0\pgf@circ@res@right}}
+ \pgfpatharc{50}{-50}{1.0\pgf@circ@res@right}
+ \ifpgf@circ@rotaryarrow@ccw
+ \ifpgf@circ@rotaryarrow@cw
+ % both here, maintain values
+ \relax
+ \else
+ % only ccw: remove end arrow
+ \pgfsetarrowsend{}
+ \fi
+ \else
+ \ifpgf@circ@rotaryarrow@cw
+ % only cw: remove start arrow
+ \pgfsetarrowsstart{}
+ \else
+ % none: shouldn't happen
+ \relax
+ \fi
+ \fi
+ \pgfusepath{draw}
+ \endpgfscope
+ \fi
+
+ % \typeout{CHANNELS\space\channels\space ANGLE\space\angle STEPA\space\stepa}
+ \pgf@circ@count@a=\channels\relax
+ \pgfmathsetmacro{\currenta}{-\angle}
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % \typeout{LOOPIN\space\space\the\pgf@circ@count@a\space CURRENTA\space\currenta\space RIGHT\space\the\pgf@circ@res@right}
+ \pgfscope
+ \pgftransformshift{\pgfpointadd{\pgfpoint{\pgf@circ@res@left}{0pt}}{\pgfpointpolar{\currenta}{2\pgf@circ@res@right}}}
+ \pgfnode{\cshape}{center}{}{\thisshape-out \the\pgf@circ@count@a}{\pgfusepath{stroke}}
+ \endpgfscope
+ \pgfmathsetmacro{\currenta}{\currenta+\stepa}
+ % \typeout{LOOPOUT\space\the\pgf@circ@count@a\space CURRENTA\space\currenta\space RIGHT\space\the\pgf@circ@res@right}
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop
+
+ \pgfscope % input
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfnode{\cshape}{center}{}{\thisshape-in}{\pgfusepath{stroke}}
+ \endpgfscope
+ }
+ % \pgf@sh@s@<name of the shape here> contains all the code for the shape
+ % and is executed just before a node is drawn.
+ \pgfutil@g@addto@macro\pgf@sh@s@rotaryswitch{%
+ % Start with the maximum pin number and go backwards.
+ \pgf@circ@count@a=\channels\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\xdef\csname pgf@anchor@rotaryswitch@out\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@rotaryanchor{\the\pgf@circ@count@a}{1}{0}%
+ }
+ \expandafter\xdef\csname pgf@anchor@rotaryswitch@cout\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@rotaryanchor{\the\pgf@circ@count@a}{0}{0}%
+ }
+ \expandafter\xdef\csname pgf@anchor@rotaryswitch@aout\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@rotaryanchor{\the\pgf@circ@count@a}{0}{1}%
+ }
+ \expandafter\xdef\csname pgf@anchor@rotaryswitch@sqout\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@rotarysqanchor{\the\pgf@circ@count@a}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+}
+
+\def\pgf@circ@rotaryanchor#1#2#3{% #1: numero del pin; #2: 1 - x pos, 0 - center; #3 0: inner, 1 outer
+ \pgf@circ@res@temp=\width
+ \pgfmathsetmacro{\myangle}{\angle-(#1-1)*\stepa}
+ \pgfmathsetlength{\pgf@x}{2*(\pgf@circ@res@temp+#3*\radius/2)*cos(\myangle))+#2*\radius}
+ \pgfmathsetlength{\pgf@y}{2*(\pgf@circ@res@temp+#3*\radius/2)*sin(\myangle)}
+ \advance\pgf@x by -\pgf@circ@res@temp
+}
+
+\def\pgf@circ@rotarysqanchor#1{% external square anchors
+ \pgf@circ@res@temp=\width
+ \pgfmathsetmacro{\myangle}{\angle-(#1-1)*\stepa}
+ \pgfpointborderrectangle{\pgfpointpolar{\myangle}{1pt}}{\pgfpoint{2.5\pgf@circ@res@temp}{2.5\pgf@circ@res@temp}}
+ \advance\pgf@x by -\pgf@circ@res@temp
+}% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Seven segments displays
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Definitions for seven segment displays by RGtti%<<<1
+
+\newif\ifpgf@circ@sevenseg@dot
+\newif\ifpgf@circ@sevenseg@box
+\def\pgf@circ@sevenseg@dotstate{empty}
+\ctikzset{seven seg/.is family}
+\ctikzset{seven seg/dot/.is choice}
+% none means no dot, not space for it. Empty means no dot, but space
+\ctikzset{seven seg/dot/none/.code={\pgf@circ@sevenseg@dotfalse}}
+\ctikzset{seven seg/dot/empty/.code={\pgf@circ@sevenseg@dottrue\def\pgf@circ@sevenseg@dotstate{empty}}}
+\ctikzset{seven seg/dot/off/.code={\pgf@circ@sevenseg@dottrue\def\pgf@circ@sevenseg@dotstate{off}}}
+\ctikzset{seven seg/dot/on/.code={\pgf@circ@sevenseg@dottrue\def\pgf@circ@sevenseg@dotstate{on}}}
+%
+\ctikzset{seven seg/width/.initial=0.4}% relative to \pgf@circ@Rlen
+\ctikzset{seven seg/thickness/.initial=4pt}% segment thickness
+\ctikzset{seven seg/segment sep/.initial=0.2pt}% gap between segments
+\ctikzset{seven seg/box sep/.initial=1pt}% external box gap
+\ctikzset{seven seg/color on/.initial=red}% color for segment "on"
+\ctikzset{seven seg/color off/.initial=gray!20!white} % ...and "off"
+\ctikzset{seven seg/box/.is choice}
+\ctikzset{seven seg/box/off/.code={\pgf@circ@sevenseg@boxfalse}}
+\ctikzset{seven seg/box/on/.code={\pgf@circ@sevenseg@boxtrue}}
+
+\ctikzset{seven seg/bits/.initial=0000000}
+
+\ctikzset{seven seg/value/.code={%
+ \edef\@@tmp{#1}%
+ \edef\@@n{0} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1111110}\fi
+ \edef\@@n{1} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0110000}\fi
+ \edef\@@n{2} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1101101}\fi
+ \edef\@@n{3} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1111001}\fi
+ \edef\@@n{4} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0110011}\fi
+ \edef\@@n{5} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1011011}\fi
+ \edef\@@n{6} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1011111}\fi
+ \edef\@@n{7} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1110000}\fi
+ \edef\@@n{8} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1111111}\fi
+ \edef\@@n{9} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1111011}\fi
+ \edef\@@n{10}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1110111}\fi
+ \edef\@@n{11}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0011111}\fi
+ \edef\@@n{12}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001110}\fi
+ \edef\@@n{13}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0111101}\fi
+ \edef\@@n{14}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001111}\fi
+ \edef\@@n{15}\ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1000111}\fi
+ \edef\@@n{A} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1110111}\fi
+ \edef\@@n{B} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0011111}\fi
+ \edef\@@n{C} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001110}\fi
+ \edef\@@n{D} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0111101}\fi
+ \edef\@@n{E} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001111}\fi
+ \edef\@@n{F} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1000111}\fi
+ \edef\@@n{a} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1110111}\fi
+ \edef\@@n{b} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0011111}\fi
+ \edef\@@n{c} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001110}\fi
+ \edef\@@n{d} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0111101}\fi
+ \edef\@@n{e} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1001111}\fi
+ \edef\@@n{f} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=1000111}\fi
+ \edef\@@n{-} \ifx\@@tmp\@@n\relax\ctikzset{seven seg/bits=0000001}\fi
+}}
+
+\tikzset{%
+ seven segment val/.style args={#1dot#2box#3}{%
+ shape=bare7seg,
+ /tikz/circuitikz/seven seg/value=#1,
+ /tikz/circuitikz/seven seg/dot=#2,
+ /tikz/circuitikz/seven seg/box=#3,
+ },
+ seven segment bits/.style args={#1dot#2box#3}{%
+ shape=bare7seg,
+ /tikz/circuitikz/seven seg/bits=#1,
+ /tikz/circuitikz/seven seg/dot=#2,
+ /tikz/circuitikz/seven seg/box=#3,
+ },
+}
+%%>>>
+
+%% Nodes definitions for 7-segment display%<<<
+\pgfdeclareshape{bare7seg}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{displays}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\dotstatus}{\edef\dotstatus{\pgf@circ@sevenseg@dotstate}}
+ \saveddimen{\dotspace}{% the dot is on the right, and occupy the same as the thickness
+ \ifpgf@circ@sevenseg@dot
+ \pgfmathsetlength{\pgf@x}{\ctikzvalof{seven seg/thickness}}
+ \else
+ \pgf@x=0pt
+ \fi
+ }
+ % The object extension is more or less (-width/2,-width) to (width/2,width)
+ % and adjusted for line thickness (both sides) and eventually the dot
+ \saveddimen{\width}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@x}{\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen}}
+ \saveddimen{\gap}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{seven seg/segment sep}}}
+ \saveddimen{\boxgap}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{seven seg/box sep}}}
+ \savedanchor{\southwest}{% both negative
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@x}{-0.5*\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen
+ -0.5*\ctikzvalof{seven seg/thickness}-\ctikzvalof{seven seg/box sep}}
+ \pgfmathsetlength{\pgf@y}{-\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen
+ -0.5*\ctikzvalof{seven seg/thickness}-\ctikzvalof{seven seg/box sep}}
+ }
+ \savedanchor{\northeast}{% both positive
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \ifpgf@circ@sevenseg@dot
+ \pgfmathsetlength{\pgf@circ@res@other}{\ctikzvalof{seven seg/thickness}}
+ \else
+ \pgf@circ@res@other=0pt
+ \fi
+ \pgfmathsetlength{\pgf@x}{0.5*\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen
+ +0.5*\ctikzvalof{seven seg/thickness}+\pgf@circ@res@other+\ctikzvalof{seven seg/box sep}}
+ \pgfmathsetlength{\pgf@y}{\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen
+ +0.5*\ctikzvalof{seven seg/thickness}+\ctikzvalof{seven seg/box sep}}
+ }
+ \savedanchor{\topright}{% anchor without the box sep and the thickness
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength{\pgf@x}{0.5*\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen}
+ \pgfmathsetlength{\pgf@y}{\ctikzvalof{seven seg/width}*\pgf@circ@scaled@Rlen}
+ }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{north west}{\southwest\pgf@y=-\pgf@y}
+ \anchor{north east}{\northeast}
+ \anchor{south east}{\northeast\pgf@y=-\pgf@y}
+ \anchor{south west}{\southwest}
+ \anchor{north}{\northeast\pgf@x=0pt}
+ \anchor{east}{\northeast\pgf@y=0pt}
+ \anchor{south}{\southwest\pgf@x=0pt}
+ \anchor{west}{\southwest\pgf@y=0pt}
+ \anchor{a}{\topright\pgf@x=0pt}
+ \anchor{b}{\topright\pgf@y=0.5\pgf@y}
+ \anchor{c}{\topright\pgf@y=-0.5\pgf@y}
+ \anchor{d}{\topright\pgf@y=-\pgf@y\pgf@x=0pt}
+ \anchor{e}{\topright\pgf@x=-\pgf@x\pgf@y=-0.5\pgf@y}
+ \anchor{f}{\topright\pgf@x=-\pgf@x\pgf@y=0.5\pgf@y}
+ \anchor{g}{\pgfpointorigin}
+ \anchor{dot}{\topright\pgf@y=-\pgf@y\advance\pgf@x by \dotspace}
+ \behindbackgroundpath{%
+ \southwest % I do not want the dot here, it will stick out
+ \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
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfpathrectanglecorners%
+ {\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ {\pgfpoint{\pgf@circ@res@left+\dotspace}{\pgf@circ@res@up}}
+ \ifpgf@circ@sevenseg@box
+ \pgf@circ@draworfill
+ \else
+ \pgf@circ@maybefill
+ \fi
+ \endpgfscope
+ \edef\bits{\ctikzvalof{seven seg/bits}}
+ \pgfscope
+ \pfg@circ@sseg@drawbits{\bits}
+ \endpgfscope
+ \pgfscope
+ \ifpgf@circ@sevenseg@dot
+ \pgf@circ@sseg@drawdots
+ \fi
+ \endpgfscope
+ }
+}
+
+\def\pgf@circ@sseg@splitbits#1#2#3#4#5#6#7\relax{%split the seven bits
+ \edef\@@a{#1}\edef\@@b{#2}\edef\@@c{#3}\edef\@@d{#4}\edef\@@e{#5}\edef\@@f{#6}\edef\@@g{#7}%
+}
+\def\pgf@circ@sseg@drawone#1#2#3#4#5{% #1 on off the x1, y1, x2 , y2
+ \ifnum #1 > 0\relax
+ \pgfsetcolor{\ctikzvalof{seven seg/color on}}
+ \else
+ \pgfsetcolor{\ctikzvalof{seven seg/color off}}
+ \fi
+ \pgfpathmoveto{\pgfpoint{#2}{#3}}
+ \pgfpathlineto{\pgfpoint{#4}{#5}}
+ \pgfusepath{draw}
+}
+\def\pfg@circ@sseg@drawbits#1{% #1 must be 7 bits
+ \expandafter\pgf@circ@sseg@splitbits#1\relax% a bit of magic...
+ \pgfmathsetlength{\pgf@circ@res@other}{0.5*\ctikzvalof{seven seg/thickness}}
+ \pgfsetlinewidth{\ctikzvalof{seven seg/thickness}}
+ % \pgfsetroundcap
+ \pgfsetarrowsstart{Triangle Cap[]}
+ \pgfsetarrowsend{Triangle Cap[]}
+ % segments
+ \pgf@circ@sseg@drawone{\@@a}{-\width/2+\gap}{\width}{\width/2-\gap}{\width}
+ \pgf@circ@sseg@drawone{\@@b}{\width/2}{\width-\gap}{\width/2}{0pt+\gap}
+ \pgf@circ@sseg@drawone{\@@c}{\width/2}{0pt-\gap}{\width/2}{-\width+\gap}
+ \pgf@circ@sseg@drawone{\@@d}{\width/2-\gap}{-\width}{-\width/2+\gap}{-\width}
+ \pgf@circ@sseg@drawone{\@@e}{-\width/2}{-\width+\gap}{-\width/2}{0pt-\gap}
+ \pgf@circ@sseg@drawone{\@@f}{-\width/2}{0pt+\gap}{-\width/2}{\width-\gap}
+ \pgf@circ@sseg@drawone{\@@g}{-\width/2+\gap}{0pt}{\width/2-\gap}{0pt}
+}
+\def\pgf@circ@sseg@drawdots{% dots
+ \edef\what{empty}
+ \ifx\what\pgf@circ@sevenseg@dotstate
+ % do nothing
+ \else
+ \pgfmathsetlength{\pgf@circ@res@other}{0.5*\ctikzvalof{seven seg/thickness}}
+ \edef\what{off}
+ \ifx\what\pgf@circ@sevenseg@dotstate
+ % dot off
+ \pgfsetfillcolor{\ctikzvalof{seven seg/color off}}
+ \pgfsetcolor{\ctikzvalof{seven seg/color off}}
+ \else
+ % dot on
+ \pgfsetfillcolor{\ctikzvalof{seven seg/color on}}
+ \pgfsetcolor{\ctikzvalof{seven seg/color on}}
+ \fi
+ \pgfpathcircle{\pgfpoint{\width/2+2*\pgf@circ@res@other}{-\width}}{\pgf@circ@res@other}
+ \pgfusepath{draw,fill}
+ \fi
+}
+% %>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% Flip-flops and muxdemuxes
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Settings for flip flops and muxdemxes%<<<1
+
+%% flip-flop specific keys (most others are the same as chips)
+
+\ctikzset{multipoles/flipflop/font/.initial=\pgf@circ@font@small}
+\ctikzset{multipoles/flipflop/fontud/.initial=\pgf@circ@font@tiny}
+\ctikzset{multipoles/flipflop/width/.initial=1.2}
+\ctikzset{multipoles/flipflop/pin spacing/.initial=0.6}
+\ctikzset{multipoles/flipflop/clock wedge size/.initial=0.2}
+
+%% muxdemuxes keys
+
+\ctikzset{multipoles/muxdemux/base len/.initial=0.4}
+\ctikzset{multipoles/muxdemux/Lh/.initial=8.0}
+\ctikzset{multipoles/muxdemux/Rh/.initial=6.0}
+\ctikzset{multipoles/muxdemux/w/.initial=3.0}
+\ctikzset{multipoles/muxdemux/inset w/.initial=0.0}
+\ctikzset{multipoles/muxdemux/inset Lh/.initial=0.0}
+\ctikzset{multipoles/muxdemux/inset Rh/.initial=0.0}
+\ctikzset{multipoles/muxdemux/NL/.initial=8}
+\ctikzset{multipoles/muxdemux/NR/.initial=1}
+\ctikzset{multipoles/muxdemux/NB/.initial=3}
+\ctikzset{multipoles/muxdemux/NT/.initial=0}
+\ctikzset{multipoles/muxdemux/square pins/.initial=0}%
+%>>>
+
+%% Node shapes definitions for flip flops%<<<
+
+% Flip flops are a specialized kind of dipchip.
+% they have a class by themselves
+
+%% flip flop definitions --- by default empty
+%% pin texts
+\ctikzset{multipoles/flipflop/t1/.initial={}}
+\ctikzset{multipoles/flipflop/t2/.initial={}}
+\ctikzset{multipoles/flipflop/t3/.initial={}}
+\ctikzset{multipoles/flipflop/t4/.initial={}}
+\ctikzset{multipoles/flipflop/t5/.initial={}}
+\ctikzset{multipoles/flipflop/t6/.initial={}}
+\ctikzset{multipoles/flipflop/tu/.initial={}}
+\ctikzset{multipoles/flipflop/td/.initial={}}
+% pin clock wedge flags
+\ctikzset{multipoles/flipflop/c1/.initial={0}}
+\ctikzset{multipoles/flipflop/c2/.initial={0}}
+\ctikzset{multipoles/flipflop/c3/.initial={0}}
+\ctikzset{multipoles/flipflop/c4/.initial={0}}
+\ctikzset{multipoles/flipflop/c5/.initial={0}}
+\ctikzset{multipoles/flipflop/c6/.initial={0}}
+\ctikzset{multipoles/flipflop/cu/.initial={0}}
+\ctikzset{multipoles/flipflop/cd/.initial={0}}
+% pin negation circle flags
+\ctikzset{multipoles/flipflop/n1/.initial={0}}
+\ctikzset{multipoles/flipflop/n2/.initial={0}}
+\ctikzset{multipoles/flipflop/n3/.initial={0}}
+\ctikzset{multipoles/flipflop/n4/.initial={0}}
+\ctikzset{multipoles/flipflop/n5/.initial={0}}
+\ctikzset{multipoles/flipflop/n6/.initial={0}}
+\ctikzset{multipoles/flipflop/nu/.initial={0}}
+\ctikzset{multipoles/flipflop/nd/.initial={0}}
+
+
+% Thanks to @marmot
+\tikzset{flipflop def/.code=\pgfqkeys{\circuitikzbasekey/multipoles/flipflop}{#1}}
+
+% default set of flip flops
+\tikzset{
+ % async
+ latch/.style={flipflop, flipflop def={t1=D, t6=Q, t3=CLK, t4=\ctikztextnot{Q}}},
+ flipflop SR/.style={flipflop, flipflop def={t1=S, t3=R, t6=Q, t4=\ctikztextnot{Q}}},
+ % sync
+ flipflop D/.style={flipflop, flipflop def={t1=D, t6=Q, c3=1, t4=\ctikztextnot{Q}}},
+ flipflop T/.style={flipflop, flipflop def={t1=T, t6=Q, c3=1, t4=\ctikztextnot{Q}}},
+ flipflop JK/.style={flipflop, flipflop def={t1=J, t3=K, c2=1, t6=Q, t4=\ctikztextnot{Q}}},
+ % additional features
+ add async SR/.style={flipflop def={tu={\ctikztextnot{SET}}, td={\ctikztextnot{RST}}}},
+ dot on notQ/.style={flipflop def={t4={Q}, n4=1}},
+}
+
+%
+% commodity macro to draw the clock wedges. They leave the size of the
+% wedge in \pgf@circ@res@temp so that a possible label can be displaced.
+%
+\def\pgf@circ@do@wedge@left{
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\ctikzvalof{multipoles/flipflop/c\the\pgf@circ@count@c}>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step+\wedge}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\wedge}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step-\wedge}}
+ \pgfusepath{stroke}
+ \pgf@circ@res@temp=\wedge
+ \fi
+}
+\def\pgf@circ@do@wedge@right{
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\ctikzvalof{multipoles/flipflop/c\the\pgf@circ@count@c}>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step+\wedge}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\wedge}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step-\wedge}}
+ \pgfusepath{stroke}
+ \pgf@circ@res@temp=-\wedge
+ \fi
+}
+\def\pgf@circ@do@wedge@up{
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\ctikzvalof{multipoles/flipflop/cu}>0
+ \pgfpathmoveto{\pgfpoint{-\wedge}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up-\wedge}}
+ \pgfpathlineto{\pgfpoint{\wedge}{\pgf@circ@res@up}}
+ \pgfusepath{stroke}
+ \pgf@circ@res@temp=-\wedge
+ \fi
+}
+\def\pgf@circ@do@wedge@down{
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\ctikzvalof{multipoles/flipflop/cd}>0
+ \pgfpathmoveto{\pgfpoint{-\wedge}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down+\wedge}}
+ \pgfpathlineto{\pgfpoint{\wedge}{\pgf@circ@res@down}}
+ \pgfusepath{stroke}
+ \pgf@circ@res@temp=\wedge
+ \fi
+}
+% generic flip-flop shape
+\pgfdeclareshape{flipflop}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{flipflops}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ \savedmacro\numpins{\def\numpins{6}}
+ \savedanchor\centerpoint{%
+ \pgf@x=-.5\wd\pgfnodeparttextbox%
+ \pgf@y=-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+.5\dp\pgfnodeparttextbox%
+ }%
+ \savedanchor\origin{\pgfpoint{0pt}{0pt}}
+ \anchor{center}{\origin}
+ \anchor{text}{\centerpoint}% to adjust text
+ \saveddimen\height{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{((\numpins)
+ *\ctikzvalof{multipoles/flipflop/pin spacing})*\pgf@circ@scaled@Rlen/2}%
+ }%
+ \saveddimen{\chipspacing}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/flipflop/pin spacing}}}
+ \saveddimen{\width}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/flipflop/width}}}
+ \saveddimen{\extshift}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/external pins width}}}
+ % standard anchors
+ \savedanchor\northwest{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{0.5*((\numpins)
+ *\ctikzvalof{multipoles/flipflop/pin spacing})*\pgf@circ@scaled@Rlen/2}%
+ \pgfmathsetlength\pgf@x{-0.5*\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/flipflop/width}}
+ }
+ \anchor{dot}{\northwest
+ \pgfmathsetlength\pgf@x{\pgf@x + 0.3*\chipspacing}
+ \pgfmathsetlength\pgf@y{\pgf@y - 0.3*\chipspacing}
+ }
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northwest\pgf@x=-\pgf@x}
+ \anchor{se}{\northwest\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{sw}{\northwest\pgf@y=-\pgf@y}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{south east}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{south west}{\northwest\pgf@y=-\pgf@y}
+ \anchor{n}{\northwest\pgf@x=0pt }
+ \anchor{e}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{w}{\northwest\pgf@y=0pt }
+ \anchor{north}{\northwest\pgf@x=0pt }
+ \anchor{east}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{south}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{west}{\northwest\pgf@y=0pt }
+ % upper and lower pin
+ \anchor{up}{\northwest\pgf@x=0pt\advance\pgf@y by\extshift }
+ \anchor{down}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y\advance\pgf@y by-\extshift}
+ \anchor{bup}{\northwest\pgf@x=0pt }
+ \anchor{bdown}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ % start drawing
+ \backgroundpath{%
+ \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@scaled@Rlen=\scaledRlen
+ \pgf@circ@res@step = \ctikzvalof{multipoles/flipflop/pin spacing}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@other = \ctikzvalof{multipoles/external pins width}\pgf@circ@scaled@Rlen
+ \pgfsetcolor{\ctikzvalof{color}}
+ \pgfscope% (for the line width)
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ \pgfpathrectanglecorners{\pgfpoint{-\width/2}{-\height/2}}{\pgfpoint{\width/2}{\height/2}}%
+ \pgf@circ@draworfill
+ \pgfusepath{stroke}%
+ \endpgfscope
+ % Adding the pin number
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ % thanks to @marmot: https://tex.stackexchange.com/a/473571/38080
+ \ifpgf@circuit@chip@straightnumbers
+ \pgfgettransformentries\a\b\temp\temp\temp\temp
+ \pgfmathsetmacro{\rot}{-atan2(\b,\a)}
+ \pgfmathtruncatemacro{\quadrant}{mod(4+int(360+(\rot+45)/90),4)}
+ \else
+ \pgfmathsetmacro{\rot}{0}
+ \pgfmathsetmacro{\quadrant}{0}
+ \fi
+ \def\pgf@circ@strut{\vrule width 0pt height 1em depth 0.4em\relax}
+ % text
+ \def\mytext{\ctikzvalof{multipoles/flipflop/font}\space
+ \ctikzvalof{multipoles/flipflop/t\the\pgf@circ@count@c}%
+ \pgf@circ@strut\space}
+ % \typeout{TEXT\space\mytext}
+ \pgfmathloop%
+ \def\wedge{\ctikzvalof{multipoles/flipflop/clock wedge size}\pgf@circ@res@step}
+ \pgf@circ@res@temp=0pt\relax
+ \ifnum\pgf@circ@count@a>0
+ \ifcase\quadrant % rotation 0
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgf@circ@do@wedge@left
+ % \typeout{TEXT Left Q1\space\mytext}
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgf@circ@do@wedge@right
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgf@circ@do@wedge@left
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgf@circ@do@wedge@right
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgf@circ@do@wedge@left
+ \pgftext[right,
+ at=\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgf@circ@do@wedge@right
+ \pgftext[left,
+ at=\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ % left
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \pgf@circ@do@wedge@left
+ \pgftext[bottom,
+ at=\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ % right
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \pgf@circ@do@wedge@right
+ \pgftext[top,
+ at=\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@temp}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step},
+ rotate=\rot]{\mytext}
+ \fi
+ \advance\pgf@circ@count@a-1\relax%
+ \repeatpgfmathloop
+ % Now the up and down text
+ % up
+ \def\mytext{\ctikzvalof{multipoles/flipflop/fontud}\space\pgf@circ@strut\ctikzvalof{multipoles/flipflop/tu}\space}
+ \pgf@circ@do@wedge@up
+ \ifcase\quadrant % rotation 0
+ \pgftext[top,
+ at=\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ \pgftext[right,
+ at=\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ \pgftext[bottom,
+ at=\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ \pgftext[left,
+ at=\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \fi
+ % down
+ \def\mytext{\ctikzvalof{multipoles/flipflop/fontud}\space\pgf@circ@strut\ctikzvalof{multipoles/flipflop/td}\space}
+ \pgf@circ@do@wedge@down
+ \ifcase\quadrant % rotation 0
+ \pgftext[bottom,
+ at=\pgfpoint{0pt}{\pgf@circ@res@down+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or % rotation -90
+ \pgftext[left,
+ at=\pgfpoint{0pt}{\pgf@circ@res@down+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or %rotation 180
+ \pgftext[top,
+ at=\pgfpoint{0pt}{\pgf@circ@res@down+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \or % rotation +90
+ \pgftext[right,
+ at=\pgfpoint{0pt}{\pgf@circ@res@down+\pgf@circ@res@temp},
+ rotate=\rot]{\mytext}
+ \fi
+ % external pins
+ \ifdim\pgf@circ@res@other>0pt
+ \pgfscope
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % left side pins
+ \pgf@circ@count@c=\pgf@circ@count@a
+ %% we draw the pin only if it's defined either a text, a clock wedge or a not pin
+ %% Or'ing tests in core TeX is tough
+ \edef\@@or{0}
+ % Just expand the key the minimum needed
+ \edef\@@tmp{x\unexpandedvalueof{/tikz/circuitikz/multipoles/flipflop/t\the\pgf@circ@count@c}}\edef\@@x{x}
+ \ifx\@@tmp\@@x\else\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/c\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/n\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \ifnum\@@or>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfusepath{stroke}
+ \fi
+ % right side pins
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \edef\@@or{0}
+ \edef\@@tmp{x\unexpandedvalueof{/tikz/circuitikz/multipoles/flipflop/t\the\pgf@circ@count@c}}\edef\@@x{x}
+ \ifx\@@tmp\@@x\else\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/c\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/n\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ % \typeout{TEST\space\@@tmp\space\@@x}
+ \ifnum\@@or>0
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgf@circ@res@other}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfusepath{stroke}
+ \fi
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop
+ % up side
+ \edef\@@or{0}
+ \edef\@@tmp{x\unexpandedvalueof{/tikz/circuitikz/multipoles/flipflop/tu}}\edef\@@x{x}
+ \ifx\@@tmp\@@x\else\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/cu}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/nu}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ % \typeout{TEST\space\@@tmp\space\@@x}
+ \ifnum\@@or>0
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@up+\pgf@circ@res@other}}
+ \pgfusepath{stroke}
+ \fi
+ % down side
+ \edef\@@or{0}
+ \edef\@@tmp{x\unexpandedvalueof{/tikz/circuitikz/multipoles/flipflop/td}}\edef\@@x{x}
+ \ifx\@@tmp\@@x\else\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/cd}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/nd}}
+ \ifnum\@@tmp>0\edef\@@or{1}\fi
+ % \typeout{TEST\space\@@tmp\space\@@x}
+ \ifnum\@@or>0
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{0pt}{\pgf@circ@res@down-\pgf@circ@res@other}}
+ \pgfusepath{stroke}
+ \fi
+ \endpgfscope
+ \fi % external pin width >0
+ %
+ % draw "inverting" circles on outputs, they must be last
+ %
+ \pgfscope
+ \ifpgf@circuit@ieeelogicport
+ \def\@@notcirc{notcirc}
+ \else
+ \ifpgf@circ@european@port@circle@ieee
+ \def\@@notcirc{notcirc}
+ \else
+ \def\@@notcirc{ocirc}
+ \fi
+ \fi
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ \pgf@circ@count@a=\numpins\relax
+ \divide\pgf@circ@count@a by 2 \pgf@circ@count@b=\pgf@circ@count@a
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % left side pins
+ \pgf@circ@count@c=\pgf@circ@count@a
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/n\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfnode{\@@notcirc}{east}{}{\thisshape-N\the\pgf@circ@count@c}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ % right side pins
+ \pgf@circ@count@c=\numexpr2*\pgf@circ@count@b-\pgf@circ@count@a+1\relax
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/n\the\pgf@circ@count@c}}
+ \ifnum\@@tmp>0\pgfscope
+ \pgftransformshift{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(\pgf@circ@dip@pin@shift-\the\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfnode{\@@notcirc}{west}{}{\thisshape-N\the\pgf@circ@count@c}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop
+ % up side
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/nu}}
+ \ifnum\@@tmp>0\pgfscope
+ \pgftransformshift{\pgfpoint{0pt}{\pgf@circ@res@up}}
+ \pgfnode{\@@notcirc}{south}{}{\thisshape-Nu}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ % down side
+ \edef\@@tmp{\ctikzvalof{multipoles/flipflop/nd}}
+ \ifnum\@@tmp>0\pgfscope
+ \pgftransformshift{\pgfpoint{0pt}{\pgf@circ@res@down}}
+ \pgfnode{\@@notcirc}{north}{}{\thisshape-Nd}{\pgfusepath{stroke}}
+ \endpgfscope\fi
+ \endpgfscope
+ }%
+ % \pgf@sh@s@<name of the shape here> contains all the code for the shape
+ % and is executed just before a node is drawn.
+ \pgfutil@g@addto@macro\pgf@sh@s@flipflop{%
+ % Start with the maximum pin number and go backwards.
+ \pgf@circ@count@a=\numpins\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `pin 1` for the
+ % electrical contact, and the "border one" like `bpin 1` for labels.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\xdef\csname pgf@anchor@flipflop@pin\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@dippinanchor{\the\pgf@circ@count@a}{1}%
+ }
+ \expandafter\xdef\csname pgf@anchor@flipflop@bpin\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@dippinanchor{\the\pgf@circ@count@a}{0}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+}
+% %>>>
+
+%% Node shapes for mux-demuxes%<<<
+
+%
+% MUX-DEMUXES
+%
+% Thanks to @marmot
+\tikzset{muxdemux def/.code=\pgfqkeys{\circuitikzbasekey/multipoles/muxdemux}{#1}}
+\tikzset{demux/.style={muxdemux, muxdemux def={Lh=4, Rh=8, NL=1, NB=3, NR=8}}}
+\tikzset{one bit adder/.style={muxdemux,
+ muxdemux def={Lh=4, NL=2, Rh=2, NR=1, NB=1, w=1.5,
+ inset w=0.5, inset Lh=2, inset Rh=1.5}}}
+\tikzset{ALU/.style={muxdemux,
+ muxdemux def={Lh=5, NL=2, Rh=2, NR=1, NB=2, NT=1, w=2,
+ inset w=1, inset Lh=2, inset Rh=0, square pins=1}}}
+
+%generic mux-demux shape
+
+% helper macros to set the anchors inside a loop (to expand the current count)
+% left
+\pgfutil@protected\def\pgf@circ@make@muxdemux@L@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@lpin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@Lpins@list{#1}
+ {\pgf@circ@muxdemux@L@anchor{#1}{1}}
+ {\pgf@circ@muxdemux@L@anchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@blpin #1\endcsname
+ {\pgf@circ@muxdemux@L@anchor{#1}{0}}%
+ }
+% right
+\pgfutil@protected\def\pgf@circ@make@muxdemux@R@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@rpin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@Rpins@list{#1}
+ {\pgf@circ@muxdemux@R@anchor{#1}{1}}
+ {\pgf@circ@muxdemux@R@anchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@brpin #1\endcsname
+ {\pgf@circ@muxdemux@R@anchor{#1}{0}}%
+ }
+% bottom
+\pgfutil@protected\def\pgf@circ@make@muxdemux@B@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@bpin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@Bpins@list{#1}
+ {\pgf@circ@muxdemux@B@anchor{#1}{1}}
+ {\pgf@circ@muxdemux@B@anchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@bbpin #1\endcsname
+ {\pgf@circ@muxdemux@B@anchor{#1}{0}}%
+ }
+% top
+\pgfutil@protected\def\pgf@circ@make@muxdemux@T@anchor#1%
+ {%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@tpin #1\endcsname
+ {%
+ \pgf@circ@if@num@in@list\pgf@circ@Tpins@list{#1}
+ {\pgf@circ@muxdemux@T@anchor{#1}{1}}
+ {\pgf@circ@muxdemux@T@anchor{#1}{0}}%
+ }%
+ \expandafter\gdef\csname pgf@anchor@muxdemux@btpin #1\endcsname
+ {\pgf@circ@muxdemux@T@anchor{#1}{0}}%
+ }
+
+
+\pgfdeclareshape{muxdemux}{
+ \savedmacro{\ctikzclass}{\edef\ctikzclass{muxdemuxes}}
+ \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
+ \savedmacro{\thisshape}{\def\thisshape{\tikz@fig@name}}
+ % pins on the four sides
+ \savedmacro\NL{\edef\NL{\ctikzvalof{multipoles/muxdemux/NL}}}
+ \savedmacro\NR{\edef\NR{\ctikzvalof{multipoles/muxdemux/NR}}}
+ \savedmacro\NT{\edef\NT{\ctikzvalof{multipoles/muxdemux/NT}}}
+ \savedmacro\NB{\edef\NB{\ctikzvalof{multipoles/muxdemux/NB}}}
+ \savedmacro\squarepins{\edef\squarepins{\ctikzvalof{multipoles/muxdemux/square pins}}}
+ % pin lists
+ \savedmacro\pgf@circ@Lpins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only left pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@Lpins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedmacro\pgf@circ@Rpins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only right pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@Rpins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedmacro\pgf@circ@Tpins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only top pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@Tpins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ \savedmacro\pgf@circ@Bpins@list
+ {%
+ \pgfkeysgetvalue
+ {\circuitikzbasekey/multipoles/draw only bottom pins}\pgf@circ@temp
+ \expandafter\pgf@circ@set@list
+ \expandafter\pgf@circ@Bpins@list
+ \expandafter{\pgf@circ@temp}%
+ }%
+ % topleft and topright sizes
+ \savedanchor{\topleft}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/Lh}*\pgf@circ@scaled@Rlen/2}
+ \pgfmathsetlength\pgf@x{-\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/w}*\pgf@circ@scaled@Rlen/2}
+ }
+ \savedanchor{\topright}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/Rh}*\pgf@circ@scaled@Rlen/2}
+ \pgfmathsetlength\pgf@x{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/w}*\pgf@circ@scaled@Rlen/2}
+ }
+ \savedanchor{\insetnortheast}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/inset Lh}*\pgf@circ@scaled@Rlen/2}
+ \pgfmathsetlength\pgf@x{-\ctikzvalof{multipoles/muxdemux/base len}*
+ (\ctikzvalof{multipoles/muxdemux/w}-2*\ctikzvalof{multipoles/muxdemux/inset w})*\pgf@circ@scaled@Rlen/2}
+ }
+ \saveddimen{\insethright}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/inset Rh}*\pgf@circ@scaled@Rlen/2}}
+ \saveddimen{\extshift}{
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\pgf@circ@scaled@Rlen*\ctikzvalof{multipoles/external pins width}}}
+ \savedanchor{\northwest}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@y{\ctikzvalof{multipoles/muxdemux/base len}*max(\ctikzvalof{multipoles/muxdemux/Rh},\ctikzvalof{multipoles/muxdemux/Lh})*\pgf@circ@scaled@Rlen/2}
+ \pgfmathsetlength\pgf@x{-\ctikzvalof{multipoles/muxdemux/base len}*\ctikzvalof{multipoles/muxdemux/w}*\pgf@circ@scaled@Rlen/2}
+ }
+ \anchor{nw}{\northwest}
+ \anchor{ne}{\northwest\pgf@x=-\pgf@x}
+ \anchor{se}{\northwest\pgf@x=-\pgf@x\pgf@y=-\pgf@y}
+ \anchor{sw}{\northwest\pgf@y=-\pgf@y}
+ \anchor{north west}{\northwest}
+ \anchor{north east}{\northwest\pgf@x=-\pgf@x}
+ \anchor{south east}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{south west}{\northwest\pgf@y=-\pgf@y}
+ \anchor{n}{\northwest\pgf@x=0pt }
+ \anchor{e}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{s}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{w}{\northwest\pgf@y=0pt }
+ \anchor{north}{\northwest\pgf@x=0pt }
+ \anchor{east}{\northwest\pgf@x=-\pgf@x\pgf@y=0pt }
+ \anchor{south}{\northwest\pgf@x=0pt\pgf@y=-\pgf@y}
+ \anchor{west}{\northwest\pgf@y=0pt }
+ \anchor{center}{\pgfpointorigin}
+ \anchor{top right}{\topright}
+ \anchor{bottom right}{\topright\pgf@y=-\pgf@y}
+ \anchor{right}{\topright\pgf@y=0pt\relax}
+ \anchor{top left}{\topleft}
+ \anchor{bottom left}{\topleft\pgf@y=-\pgf@y}
+ \anchor{left}{\topleft\pgf@y=0pt\relax}
+ \anchor{top}{\topright\pgf@ya=\pgf@y \topleft \advance\pgf@y by \pgf@ya
+ \divide\pgf@y by 2 \pgf@x=0pt\relax}
+ \anchor{bottom}{\topright\pgf@ya=\pgf@y \topleft \advance\pgf@y by \pgf@ya
+ \divide\pgf@y by 2 \pgf@y=-\pgf@y \pgf@x=0pt\relax}
+ \anchor{inset top right}{\pgf@ya=\insethright\insetnortheast\advance\pgf@y by -0.5\pgf@ya}
+ \anchor{inset bottom right}{\pgf@ya=\insethright\insetnortheast\advance\pgf@y by -0.5\pgf@ya\pgf@y=-\pgf@y}
+ \anchor{inset right}{\insetnortheast\pgf@y=0pt\relax}
+ \anchor{inset top left}{\insetnortheast\pgf@ya=\pgf@y\topleft\pgf@y=\pgf@ya}
+ \anchor{inset bottom left}{\insetnortheast\pgf@ya=\pgf@y\topleft\pgf@y=-\pgf@ya}
+ \anchor{inset left}{\topleft\pgf@y=0pt\relax}
+ \anchor{inset bottom}{\topleft\pgf@xa=\pgf@x\pgf@ya=\insethright
+ \insetnortheast\pgf@xb=\pgf@x\pgf@yb=\pgf@x
+ \pgfpoint{(\pgf@xa+\pgf@xb)/2}{-\pgf@ya+\pgf@yb/2}}
+ \anchor{inset top}{\topleft\pgf@xa=\pgf@x\pgf@ya=\insethright
+ \insetnortheast\pgf@xb=\pgf@x\pgf@yb=\pgf@x
+ \pgfpoint{(\pgf@xa+\pgf@xb)/2}{\pgf@ya-\pgf@yb/2}}
+ \anchor{inset center}{\topleft\pgf@xa=\pgf@x\insetnortheast
+ \advance\pgf@x by \pgf@xa \divide\pgf@x by 2 \pgf@y=0pt\relax}
+ \anchor{narrow center}{\insetnortheast\pgf@xa=\pgf@x\topright
+ \advance\pgf@x by \pgf@xa \divide\pgf@x by 2\pgf@y=0pt\relax}
+ \anchor{center up}{\topright\pgf@ya=\pgf@y \topleft \advance\pgf@y by \pgf@ya
+ \divide\pgf@y by 2
+ \pgf@yb = \insethright \advance\pgf@y by \pgf@yb
+ \divide\pgf@y by 2 \pgf@x=0pt\relax}
+ \anchor{center down}{\topright\pgf@ya=\pgf@y \topleft \advance\pgf@y by \pgf@ya
+ \divide\pgf@y by 2
+ \pgf@yb = \insethright \advance\pgf@y by \pgf@yb
+ \divide\pgf@y by 2 \pgf@y=-\pgf@y \pgf@x=0pt\relax}
+ \anchor{text}{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgfmathsetlength\pgf@x{\ctikzvalof{multipoles/muxdemux/base len}*
+ \ctikzvalof{multipoles/muxdemux/inset w}*\pgf@circ@scaled@Rlen/2}
+ \advance\pgf@x by -.5\wd\pgfnodeparttextbox%
+ \pgf@y=-.5\ht\pgfnodeparttextbox%
+ \advance\pgf@y by+.5\dp\pgfnodeparttextbox%
+ }%
+ \backgroundpath{%
+ \topleft
+ \pgf@circ@res@up = \pgf@y
+ \pgf@circ@res@down = -\pgf@y
+ \pgf@circ@res@left = \pgf@x
+ \topright
+ \pgf@circ@res@other = \pgf@y
+ \pgf@circ@res@right = \pgf@x
+ \insetnortheast
+ \pgf@circ@res@step = \pgf@x
+ \pgf@circ@res@temp = \pgf@y
+ %
+ % external block
+ %
+ \pgfscope% (for the line width)
+ \pgf@circ@setlinewidth{multipoles}{\pgflinewidth}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{-\pgf@circ@res@other}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ % inset, starting down
+ \ifdim\pgf@circ@res@temp>0pt % inset
+ % \typeout{INSETw\space\the\pgf@circ@res@right\space x\space\the\pgf@circ@res@step\space y\space\the\pgf@circ@res@temp}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{-\pgf@circ@res@temp}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{-\insethright}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@step}{\insethright}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@temp}}
+ \fi
+ \pgfpathclose
+ \pgf@circ@draworfill
+ \endpgfscope
+ % now we have to draw the pins, if needed
+ \ifdim\extshift>0pt\ifpgfcirc@draw@input@leads\pgfscope % let's avoid too much indent
+ % Ok, we have to draw the leads (a.k.a. pins)
+ \pgfsetlinewidth{\ctikzvalof{multipoles/external pins thickness}\pgflinewidth}
+ % We mimic the anchors here --- probably there is a better way
+ % left pins
+ \ifnum\NL>0\relax % not indented, closed on \repeatpgfmathloop
+ \pgf@circ@count@a=\NL\relax
+ \pgf@circ@count@b=\NL \divide\pgf@circ@count@b by 2 % see https://tex.stackexchange.com/questions/146523/why-does-numexpr-integer-division-round-rather-than-truncate
+ \topleft\pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y
+ \insetnortheast\pgf@circ@res@right=\pgf@x \pgf@circ@res@down=\pgf@y
+ \ifdim\pgf@circ@res@down>0pt % check if we have an inset
+ % we have to check oddity
+ \ifodd\NL
+ \ifnum\NL=1
+ % only centerpin, step should not be used, but anyway...
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@circ@res@up-\pgf@circ@res@down)/(\NL)}
+ \else
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@circ@res@up-\pgf@circ@res@down)/(\NL-1)}
+ \fi
+ \else
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@circ@res@up-\pgf@circ@res@down)/\NL}
+ \fi
+ \else % no inset
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@up/\NL}
+ \fi
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ %%%%% check if we want to draw this pin
+ \pgf@circ@if@num@in@list\pgf@circ@Lpins@list\pgf@circ@count@a{%
+ \ifdim\pgf@circ@res@down>0pt % check if we have an inset
+ \ifnum\pgf@circ@count@a>\pgf@circ@count@b\relax
+ % for lower pins we have to shift them down
+ % \typeout{DEBUGTEST1\space #1\space entering\space \NL}
+ \ifodd\NL
+ % odd number of pins
+ \ifnum\pgf@circ@count@a=\numexpr\the\pgf@circ@count@b+1\relax
+ % centerpin!
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \ifnum\squarepins>0
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{0pt}}
+ \else
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right-\extshift}{0pt}}
+ \fi
+ \else
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a+1)*\pgf@circ@res@step-2*\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a+1)*\pgf@circ@res@step-2*\pgf@circ@res@down}}
+ \fi
+ \else
+ % even numer of pins: just go down
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step-2*\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step-2*\pgf@circ@res@down}}
+ \fi
+ \else
+ % nothing need for #1<=NL/2
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \fi
+ \else
+ % no inset
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left-\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \fi
+ %%%%%
+ }{}% close the pin list check
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop\fi%
+ % right pins
+ \ifnum\NR>0\pgf@circ@count@a=\NR\relax
+ \pgfmathloop%
+ \topright\pgf@circ@res@right=\pgf@x \pgf@circ@res@up=\pgf@y
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@up/\NR}
+ \ifnum\pgf@circ@count@a>0
+ %%%%% check if we want to draw this pin
+ \pgf@circ@if@num@in@list\pgf@circ@Rpins@list\pgf@circ@count@a{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\extshift}{\pgf@circ@res@up+(0.5-\pgf@circ@count@a)*\pgf@circ@res@step}}
+ }{}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop\fi%
+ % bottom pins
+ \ifnum\NB>0\pgf@circ@count@a=\NB\relax %%%
+ \pgfmathloop%
+ \topleft\pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y
+ \topright\pgf@circ@res@right=\pgf@x \pgf@circ@res@down=\pgf@y
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@right/\NB}
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@circ@res@down-\pgf@circ@res@up)/(\pgf@circ@res@right-\pgf@circ@res@left)*\pgf@circ@res@step}
+ \ifnum\pgf@circ@count@a>0
+ %%%%% check if we want to draw this pin
+ \pgf@circ@if@num@in@list\pgf@circ@Bpins@list\pgf@circ@count@a{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {-\pgf@circ@res@down+(\NB-\pgf@circ@count@a+0.5)*\pgf@circ@res@other}}
+ \ifnum\squarepins>0
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {-max(\pgf@circ@res@down, \pgf@circ@res@up)-\extshift}}
+ \else
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {-\pgf@circ@res@down+(\NB-\pgf@circ@count@a+0.5)*\pgf@circ@res@other-\extshift}}
+ \fi
+ }{}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop\fi%
+ % top pins
+ \ifnum\NT>0\pgf@circ@count@a=\NT\relax
+ \pgfmathloop%
+ \topleft\pgf@circ@res@left=\pgf@x \pgf@circ@res@up=\pgf@y
+ \topright\pgf@circ@res@right=\pgf@x \pgf@circ@res@down=\pgf@y
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@circ@res@right/\NT}
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@circ@res@down-\pgf@circ@res@up)/(\pgf@circ@res@right-\pgf@circ@res@left)*\pgf@circ@res@step}
+ \ifnum\pgf@circ@count@a>0
+ %%%%% check if we want to draw this pin
+ \pgf@circ@if@num@in@list\pgf@circ@Tpins@list\pgf@circ@count@a{%
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {\pgf@circ@res@down-(\NT-\pgf@circ@count@a+0.5)*\pgf@circ@res@other}}
+ \ifnum\squarepins>0
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {max(\pgf@circ@res@down, \pgf@circ@res@up)+\extshift}}
+ \else
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+(\pgf@circ@count@a-0.5)*\pgf@circ@res@step}
+ {\pgf@circ@res@down-(\NT-\pgf@circ@count@a+0.5)*\pgf@circ@res@other+\extshift}}
+ \fi
+ }{}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop\fi%
+ % end drawing pins; stroke them
+ \pgfusepath{stroke}
+ \endpgfscope\fi\fi
+ }
+ % let's start adding anchors
+ \pgfutil@g@addto@macro\pgf@sh@s@muxdemux{%
+ % left side anchors
+ \pgf@circ@count@a=\NL\relax
+ % \typeout{STARTGENERATINGLEFT\space\the\pgf@circ@count@a\space FOR\space\thisshape\space\NL}
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % \typeout{GENERATINGLEFT\space\the\pgf@circ@count@a\space FOR\space\thisshape\space\NL}
+ % we will create two anchors per pin: the "normal one" like `lpin 1` for the
+ % external leads, and the "border one" like `blpin 1` for internal ones.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\pgf@circ@make@muxdemux@L@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ % right anchors
+ \pgf@circ@count@a=\NR\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `rpin 1` for the
+ % external leads, and the "border one" like `brpin 1` for internal ones.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\pgf@circ@make@muxdemux@R@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ % bottom anchors
+ \pgf@circ@count@a=\NB\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `bpin 1` for the
+ % external leads, and the "border one" like `bbpin 1` for internal ones.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\pgf@circ@make@muxdemux@B@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ % top anchors
+ \pgf@circ@count@a=\NT\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ % we will create two anchors per pin: the "normal one" like `tpin 1` for the
+ % external leads, and the "border one" like `btpin 1` for internal ones.
+ % they will coincide if `external pins width` is set to 0.
+ \expandafter\pgf@circ@make@muxdemux@T@anchor\expandafter{\the\pgf@circ@count@a}%
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+}
+
+%% left anchors for muxdemux
+
+\def\pgf@circ@muxdemux@L@anchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \topleft
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \insetnortheast
+ \pgf@xb=\pgf@x
+ \pgf@yb=\pgf@y
+ \ifnum#1>\NL
+ \PackageError{circuitikz}{%
+ You requested left pin #1 for mux/demux shape \thisshape\space \MessageBreak
+ which has been defined with \NL\space left pins%
+ }{Please check the manual about mux/demux shapes; if you press return I'll try to continue}
+ \fi
+ \pgf@circ@count@a=\NL \divide\pgf@circ@count@a by 2 % see https://tex.stackexchange.com/questions/146523/why-does-numexpr-integer-division-round-rather-than-truncate
+ % \typeout{LEFT \the\pgf@xa \space \the\pgf@ya \space \NL}
+ \ifnum\NL>1
+ \ifdim\pgf@yb>0pt % check if we have an inset
+ % we have to check oddity
+ \ifodd\NL
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@ya-\pgf@yb)/(\NL-1)}
+ \else
+ \pgfmathsetlength{\pgf@circ@res@step}{2*(\pgf@ya-\pgf@yb)/\NL}
+ \fi
+ \else % no inset
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@ya/\NL}
+ \fi
+ \ifdim\pgf@yb>0pt % check if we have an inset
+ \ifnum#1>\pgf@circ@count@a\relax
+ % for lower pins we have to shift them down
+ % \typeout{DEBUGTEST1\space #1\space entering\space \NL}
+ \ifodd\NL
+ % odd number of pins
+ \ifnum#1=\numexpr\the\pgf@circ@count@a+1\relax
+ % centerpin!
+ \ifnum#2=0\relax
+ \pgfpoint{\pgf@xb}{0pt}
+ \else
+ \ifnum\squarepins>0
+ \pgfpoint{\pgf@xa-#2*\extshift}{0pt}
+ \else
+ \pgfpoint{\pgf@xb-#2*\extshift}{0pt}
+ \fi
+ \fi
+ \else
+ \pgfpoint{\pgf@xa-#2*\extshift}{\pgf@ya+(0.5-#1+1)*\pgf@circ@res@step-2*\pgf@yb}
+ \fi
+ \else
+ % even numer of pins: just go down
+ \pgfpoint{\pgf@xa-#2*\extshift}{\pgf@ya+(0.5-#1)*\pgf@circ@res@step-2*\pgf@yb}
+ \fi
+ \else
+ % nothing need for #1<=NL/2
+ \pgfpoint{\pgf@xa-#2*\extshift}{\pgf@ya+(0.5-#1)*\pgf@circ@res@step}
+ \fi
+ \else
+ % no inset
+ \pgfpoint{\pgf@xa-#2*\extshift}{\pgf@ya+(0.5-#1)*\pgf@circ@res@step}
+ \fi
+ \else
+ \pgfpoint{\pgf@xa-#2*\extshift}{0pt}
+ \fi
+}
+
+% right anchors
+\def\pgf@circ@muxdemux@R@anchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \topright
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \ifnum#1>\NR
+ \PackageError{circuitikz}{%
+ You requested right pin #1 for mux/demux shape \thisshape\space \MessageBreak
+ which has been defined with \NR\space right pins%
+ }{Please check the manual about mux/demux shapes; if you press return I'll try to continue}
+ \fi
+ \ifnum\NR>1
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@ya/\NR}
+ \pgfpoint{\pgf@xa+#2*\extshift}{\pgf@ya+(0.5-#1)*\pgf@circ@res@step}
+ \else
+ \pgfpoint{\pgf@xa+#2*\extshift}{0pt}
+ \fi
+}
+
+% bottom anchors
+\def\pgf@circ@muxdemux@B@anchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \topleft
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \topright
+ \pgf@xb=\pgf@x
+ \pgf@yb=\pgf@y
+ \ifnum#1>\NB
+ \PackageError{circuitikz}{%
+ You requested bottom pin #1 for mux/demux shape \thisshape\space \MessageBreak
+ which has been defined with \NB\space bottom pins%
+ }{Please check the manual about mux/demux shapes; if you press return I'll try to continue}
+ \fi
+ \ifnum\NB>0
+ % \typeout{DEBUGTESTtopleft\space\the\pgf@ya \space topright\space\the\pgf@yb \space\NB}
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@xb/\NB}
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@yb-\pgf@ya)/(\pgf@xb-\pgf@xa)*\pgf@circ@res@step}
+ \pgfmathsetlength\pgf@x{\pgf@xa+(#1-0.5)*\pgf@circ@res@step}
+ \ifnum#2=0\relax
+ \pgfmathsetlength\pgf@y{-\pgf@yb+(\NB-#1+0.5)*\pgf@circ@res@other}
+ \else
+ \ifnum\squarepins>0\relax
+ \pgfmathsetlength\pgf@y{-max(\pgf@ya,\pgf@yb)-\extshift}
+ \else
+ \pgfmathsetlength\pgf@y{-\pgf@yb+(\NB-#1+0.5)*\pgf@circ@res@other-\extshift}
+ \fi
+ \fi
+ \else
+ % should not happen, give the same as pin 1 anyway
+ \ifnum#2=0\relax
+ \pgfpoint{0pt}{-\pgf@yb+(\pgf@yb-\pgf@ya)/2}
+ \else
+ \pgfpoint{0pt}{-max(\pgf@ya,\pgf@yb)-\extshift}
+ \fi
+ \fi
+}
+
+% top anchors
+\def\pgf@circ@muxdemux@T@anchor#1#2{% #1: pin number #2: 0 for border pin, 1 for external pin
+ \topleft
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ \topright
+ \pgf@xb=\pgf@x
+ \pgf@yb=\pgf@y
+ \ifnum#1>\NT
+ \PackageError{circuitikz}{%
+ You requested top pin #1 for mux/demux shape \thisshape\space \MessageBreak
+ which has been defined with \NT\space top pins%
+ }{Please check the manual about mux/demux shapes; if you press return I'll try to continue}
+ \fi
+ \ifnum\NT>0
+ \pgfmathsetlength{\pgf@circ@res@step}{2*\pgf@xb/\NT}
+ \pgfmathsetlength{\pgf@circ@res@other}{(\pgf@yb-\pgf@ya)/(\pgf@xb-\pgf@xa)*\pgf@circ@res@step}
+ \pgfmathsetlength\pgf@x{\pgf@xa+(#1-0.5)*\pgf@circ@res@step}
+ \ifnum#2=0\relax
+ \pgfmathsetlength\pgf@y{\pgf@yb-(\NT-#1+0.5)*\pgf@circ@res@other}
+ \else
+ \ifnum\squarepins>0
+ \pgfmathsetlength\pgf@y{max(\pgf@ya,\pgf@yb)+\extshift}
+ \else
+ \pgfmathsetlength\pgf@y{\pgf@yb-(\NT-#1+0.5)*\pgf@circ@res@other+\extshift}
+ \fi
+ \fi
+ \else
+ % should not happen, give the same as pin 1 anyway
+ \ifnum#2=0\relax
+ \pgfpoint{0pt}{\pgf@yb-(\pgf@yb-\pgf@ya)/2}
+ \else
+ \pgfpoint{0pt}{max(\pgf@ya,\pgf@yb)+\extshift}
+ \fi
+ \fi
+}
+% %>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircmultipoles
+
+%%%%%%%%%%% Springe nach tex/pgfcirclabel
+%%%---------- open: tex/pgfcirclabel.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Bipole label positioning
+
+%% bipole labels and annotation extra style
+
+\ctikzset{bipole label style/.style={}}
+\tikzset{bipole label style/.code={
+ \ctikzset{bipole label style/.style={#1}}
+}}
+\tikzset{bipole label append style/.code={
+ \ctikzset{bipole label style/.append style={#1}}
+}}
+\ctikzset{bipole annotation style/.style={}}
+\tikzset{bipole annotation style/.code={
+ \ctikzset{bipole annotation style/.style={#1}}
+}}
+\tikzset{bipole annotation append style/.code={
+ \ctikzset{bipole annotation style/.append style={#1}}
+}}
+
+\ctikzset{label distance/.initial={0pt}}
+\ctikzset{annotation distance/.initial={0pt}}
+
+%% 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 }
+}
+
+\ctikzset{annotation/.style = { a={#1} } }
+\ctikzset{a/.code = {
+ \pgfkeys{/tikz/circuitikz/bipole/annotation/name={#1}}
+ \ctikzsetvalof{bipole/annotation/unit}{}
+ \ifpgf@circ@siunitx
+ \pgf@circ@handleSI{#1}
+ \ifpgf@circ@siunitx@res
+ \edef\pgf@temp{\pgf@circ@handleSI@val}
+ \pgfkeyslet{/tikz/circuitikz/bipole/annotation/name}{\pgf@temp}
+ \edef\pgf@temp{\pgf@circ@handleSI@unit}
+ \pgfkeyslet{/tikz/circuitikz/bipole/annotation/unit}{\pgf@temp}
+ \else
+ \fi
+ \else
+ \fi
+}}
+
+\ctikzset{annotation above/.code = {
+ a={#1},
+ \circuitikzbasekey/bipole/annotation/position=90 }
+}
+
+\ctikzset{a^/.style = {
+ a={#1},
+ \circuitikzbasekey/bipole/annotation/position=90 }
+}
+
+\ctikzset{annotation below/.code = {
+ a={#1},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+\ctikzset{a_/.style = {
+ a={#1},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+
+% This is to adjust spacing for the labels so that they are not cramped on components
+\def\pgf@circ@ls{.75ex} % labelspace to have just one point to change
+
+\def\pgf@circ@drawlabels#1{
+ \pgfextra{
+ % This function will be called with argument #1 equal
+ % to "label" or "annotation" form pgfcircpath.tex.
+ % pgf@circ@direction is the direction of the path,
+ % its value is set in pgfcircpath.tex
+ \pgfmathsubtract{\pgf@circ@direction}{90}
+ \pgfmathround{\pgfmathresult} % avoid precision loss errors
+ \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+
+ \edef\pgf@circ@temp{\ctikzvalof{bipole/#1/position}}
+ \ifnum \pgf@circ@temp < 0
+ \pgfmathadd{\pgf@circ@labanc}{180}
+ \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+ % \typeout{INI: TEMP\space\pgf@circ@temp\space LABANC\space\pgf@circ@labanc}
+ %
+ % normalize the angle values
+ %
+ \pgfmathmod{\pgf@circ@labanc}{360}
+ \edef\pgf@circ@labanc{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ %
+ \ifpgf@circuit@bipole@inverted
+ \pgfmathadd{\pgf@circ@temp}{180} %If shape is inverted, use opposite anchor
+ \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+ %
+ \ifnum \ctikzvalof{mirror value} = -1
+ \pgfmathadd{\pgf@circ@temp}{180} %If shape is mirrored, use opposite anchor
+ \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+ % \typeout{FIN: TEMP\space\pgf@circ@temp\space LABANC\space\pgf@circ@labanc}
+ }
+ %Firstly, place a coordinate directly at the edge of the shape
+ (\ctikzvalof{bipole/name}.\pgf@circ@temp) coordinate (pgfcirc@labelcoor)
+ %now decide, which labels should be drawn
+ \pgfextra{
+ \edef\pgf@temp{\ctikzvalof{label/align}}
+ \def\pgf@circ@temp{straight}
+ }
+ \ifx\pgf@temp\pgf@circ@temp %straight
+ \pgf@circ@drawreglabels{#1}
+ \else
+ \pgfextra{\def\pgf@circ@temp{rotate}}
+ \ifx\pgf@temp\pgf@circ@temp %rotate
+ \pgf@circ@drawrotlabels{#1}
+ \else% smart
+ \pgf@circ@drawsmartlabels{#1}
+ \fi
+ \fi
+}
+
+
+\def\pgf@circ@drawsmartlabels#1{
+ \pgfextra{
+ \pgfmathmod{\pgf@circ@direction}{90}
+ \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ }
+ \ifnum \pgfcircmathresult > 20
+ \ifnum \pgfcircmathresult < 70
+ \pgf@circ@drawrotlabels{#1}
+ \else
+ \pgf@circ@drawreglabels{#1}
+ \fi
+ \else
+ \pgf@circ@drawreglabels{#1}
+ \fi
+ }
+
+
+\def\pgf@circ@drawrotlabels#1{
+ \pgfextra{
+ % scale the distances in function of zoom, so that they are not
+ % dependent on it but on font size. Thanks to @marmot
+ % https://tex.stackexchange.com/a/476018/38080
+ % the coefficient is adjusted so that the distance is more or less
+ % the same for rotated labels and straight ones (although it will
+ % depend on the font, so it's not exact).
+ \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}%
+ \pgfmathsetmacro{\myscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed
+ % \typeout{ROT\tmpa\space\tmpb\space\tmpc\space\tmpd\space\myscale}
+ \pgfmathsetlength\pgf@circ@res@temp{1.5*\pgf@circ@ls/\myscale+\ctikzvalof{#1 distance}/\myscale}
+ \ifnum \ctikzvalof{bipole/#1/position}>0
+ %we need some more space for placement below, due to mid-anchor
+ \else % we do not have <= in \ifnum...
+ \pgf@circ@res@temp=1.5\pgf@circ@res@temp
+ \fi
+ %Calculate rotation of the label from direction and strip decimals
+ \pgfmathsetmacro{\pgfcirclabrot}{round(\pgf@circ@direction)}
+ \edef\pgfcirclabrot{\expandafter\pgf@circ@stripdecimals\pgfcirclabrot\pgf@nil}
+ % rotate the label at second or third quadrant:
+ \ifnum \pgfcirclabrot > 90 \ifnum \pgfcirclabrot < 270
+ \pgfmathsubtract{\pgf@circ@direction}{180}
+ \edef\pgfcirclabrot{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ %invert the space relationships due to rotated strings
+ \ifnum \ctikzvalof{bipole/#1/position}>0
+ \pgf@circ@res@temp=1.5\pgf@circ@res@temp
+ \fi
+ \fi\fi
+ \pgfmathparse{\ctikzvalof{bipole/#1/position}>0?\pgf@circ@direction+90:\pgf@circ@direction-90}%
+ \edef\pgf@circ@labposangle{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}%
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix#1-direction\endcsname{\pgfcirclabrot}%
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-#1-anchor\endcsname{mid}%
+ }
+ % reset cm is not working correctly here
+ % relative ++ movement disrupt to[] +()
+ ($(pgfcirc@labelcoor)+(\pgf@circ@labposangle:\the\pgf@circ@res@temp)$) coordinate(pgfcirc@labelcoor)
+ node[anchor=mid, rotate=\pgfcirclabrot, \circuitikzbasekey/bipole #1 style]
+ (\ctikzvalof{bipole/name}#1){\pgf@circ@finallabels{#1}}
+}
+
+\def\pgf@circ@drawreglabels#1{
+ %Now calculate all shape positions
+ %Use mid-anchor at x-axis and base-anchor at y-axis, respectively.
+ %All points between will be addressed by angled-anchors:
+ \pgfextra{
+ % scale ex-distance to make it independent on scale
+ % thanks @marmot see https://tex.stackexchange.com/a/476018/38080
+ \pgfgettransformentries{\tmpa}{\tmpb}{\tmpc}{\tmpd}{\tmp}{\tmp}%
+ \pgfmathsetmacro{\myscale}{sqrt(abs(\tmpa*\tmpd-\tmpb*\tmpc))}% abs should not be needed
+ % \typeout{ROT\tmpa\space\tmpb\space\tmpc\space\tmpd\space\myscale}
+ \pgfmathsetlength\pgf@circ@res@temp{\pgf@circ@ls/\myscale+\ctikzvalof{#1 distance}/\myscale}
+ \pgfmathadd{\pgf@circ@labanc}{90}
+ \pgfmathround{\pgfmathresult}
+ \def\pgf@circ@labanctext{\pgf@circ@labanc}
+ \edef\pgf@circ@temp{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \pgfmathparse{mod(\pgf@circ@temp,180)>135?mod(\pgf@circ@temp,180)-180:mod(\pgf@circ@temp,180)}
+ \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ }
+ %Values around 90 are at both y-axis
+ \ifnum \pgfcircmathresult > 84 \ifnum \pgfcircmathresult< 96
+ \pgfextra{\edef\pgf@circ@labpos{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}}
+ \ifnum \pgf@circ@labpos > 180
+ \ifnum \ctikzvalof{bipole/#1/position} > 0
+ \pgfextra{\def\pgf@circ@labanctext{mid west}}
+ \else
+ \pgfextra{\def\pgf@circ@labanctext{mid east}}
+ \fi
+ \else
+ \ifnum \ctikzvalof{bipole/#1/position} > 0
+ \pgfextra{\def\pgf@circ@labanctext{mid east}}
+ \else
+ \pgfextra{\def\pgf@circ@labanctext{mid west}}
+ \fi
+ \fi
+ \fi\fi
+ %Values between -5 and 5 are at pos /neg x-axis
+ \ifnum \pgfcircmathresult <6 \ifnum \pgfcircmathresult > -6
+ \ifnum \ctikzvalof{bipole/#1/position} < 0
+ \ifnum \pgf@circ@labanc > 90
+ % using base coordinate instead of south to naturally align
+ % symbols with descendants; but this invalidate the effect of
+ % the inner sep, so recover it by shifting the anchor
+ % reset cm is not working sometime, use @marmot solution
+ % see https://tex.stackexchange.com/a/476018/38080
+ % notice that relative ++ movement disrupt to[] +()
+ ($(pgfcirc@labelcoor)+(-\pgf@circ@labanc:\pgf@circ@res@temp)$) coordinate(pgfcirc@labelcoor)
+ \pgfextra{\def\pgf@circ@labanctext{base}}%base
+ \else
+ \pgfextra{\def\pgf@circ@labanctext{north}}%north
+ \fi
+ \else
+ \ifnum \pgf@circ@labanc < 90
+ % shift, as above
+ ($(pgfcirc@labelcoor)+(-\pgf@circ@labanc:\pgf@circ@res@temp)$) coordinate(pgfcirc@labelcoor)
+ \pgfextra{\def\pgf@circ@labanctext{base}}%base
+ \else
+ \ifnum \pgf@circ@labanc > 180
+ % this shouldn't happen, but somehow it does (270 degree anchors)
+ % shift, as above
+ ($(pgfcirc@labelcoor)+(-\pgf@circ@labanc:\pgf@circ@res@temp)$) coordinate(pgfcirc@labelcoor)
+ \pgfextra{\def\pgf@circ@labanctext{base}}%base
+ \else
+ \pgfextra{\def\pgf@circ@labanctext{north}}%north
+ \fi
+ \fi
+ \fi
+ \fi\fi
+ \pgfextra{%
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix#1-direction\endcsname{0}%
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-#1-anchor\endcsname{\pgf@circ@labanctext}%
+ }
+ (pgfcirc@labelcoor) node[anchor=\pgf@circ@labanctext,
+ inner sep=0.5\pgf@circ@res@temp, outer sep=0pt, \circuitikzbasekey/bipole #1 style,
+ ](\ctikzvalof{bipole/name}#1){\strut\pgf@circ@finallabels{#1}%
+ }
+}
+
+\def\pgf@circ@finallabels#1{%
+ \edef\pgf@temp{}%
+ \edef\pgf@circ@temp{\ctikzvalof{bipole/#1/unit}}%
+ \ifx\pgf@temp\pgf@circ@temp%
+ \ctikzvalof{bipole/#1/name}%
+ \else%
+ $\SI{\ctikzvalof{bipole/#1/name}}{\ctikzvalof{bipole/#1/unit}}$%
+ \fi%
+}
+
+
+%%%% Stacked labels
+%
+% stacked labels by Romano Giannetti romano@rgtti.com
+% heavily based on Claudo Fiandrinos's https://tex.stackexchange.com/a/65792/38080
+% \expandafter trick inspired by Matthew Leingang's https://tex.stackexchange.com/a/12272/38080
+%
+% labels are in a tabular, globally aligned:
+% vertically with key l2 valign (default c)
+% c: center t: top b: bottom
+% horizontally with key l2 align (default l)
+% l: left c: centered r: right
+% you can switch sides using l2_=... and l2^=...
+% syntax is l2_ = line1 and line2 (same for l2^)
+%
+\ctikzset{%
+ l2 valign/.store in=\pgfcirc@ltwo@valign, l2 valign=c,
+ l2 halign/.store in=\pgfcirc@ltwo@halign, l2 halign=l,
+}
+\ctikzset{l2base/.code n args={2}{
+ \pgfkeys{/tikz/circuitikz/bipole/label/name=%
+ \bgroup
+ \setlength{\tabcolsep}{2pt}%
+ \def\pgfcirc@ltwo@tabu{\tabular[\pgfcirc@ltwo@valign]}%
+ \expandafter\pgfcirc@ltwo@tabu\expandafter{\pgfcirc@ltwo@halign}%
+ #1\\ #2%
+ \endtabular
+ \egroup
+ }%
+}}
+\ctikzset{l2/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=90 }
+}
+\ctikzset{l2 above/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=90 }
+}
+\ctikzset{l2^/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=90 }
+}
+\ctikzset{l2 below/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=-90 }
+}
+\ctikzset{l2_/.style args={#1and#2}{
+ l2base={#1}{#2},
+ \circuitikzbasekey/bipole/label/position=-90 }
+}
+%
+% the same for annotations
+%
+\ctikzset{%
+ a2 valign/.store in=\pgfcirc@atwo@valign, a2 valign=c,
+ a2 halign/.store in=\pgfcirc@atwo@halign, a2 halign=r,
+}
+\ctikzset{a2base/.code n args={2}{
+ \pgfkeys{/tikz/circuitikz/bipole/annotation/name=%
+ \bgroup
+ \setlength{\tabcolsep}{2pt}%
+ \def\pgfcirc@atwo@tabu{\tabular[\pgfcirc@atwo@valign]}%
+ \expandafter\pgfcirc@atwo@tabu\expandafter{\pgfcirc@atwo@halign}%
+ #1\\ #2%
+ \endtabular
+ \egroup
+ }%
+}}
+\ctikzset{a2/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+\ctikzset{a2 above/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+\ctikzset{a2^/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=-90 }
+}
+\ctikzset{a2 below/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=90 }
+}
+\ctikzset{a2_/.style args={#1and#2}{
+ a2base={#1}{#2},
+ \circuitikzbasekey/bipole/annotation/position=90 }
+}
+
+%%%---------- close: tex/pgfcirclabel
+%%%%%%%%%%% Springe nach tex/pgfcircvoltage
+%%%---------- open: tex/pgfcircvoltage.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Voltage management
+
+%% styles%<<<
+\ctikzset{bipole voltage style/.style={}}
+\tikzset{bipole voltage style/.code={
+ \ctikzset{bipole voltage style/.style={#1}}
+}}
+\tikzset{bipole voltage append style/.code={
+ \ctikzset{bipole voltage style/.append style={#1}}
+}}
+
+\ctikzset{v^>/.style = {
+ v={#1},
+ \circuitikzbasekey/bipole/voltage/direction = forward,
+ \circuitikzbasekey/bipole/voltage/position = above
+ }
+}
+
+\ctikzset{v^</.style = {
+ v={#1},
+ \circuitikzbasekey/bipole/voltage/direction = backward,
+ \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 = backward,
+ \circuitikzbasekey/bipole/voltage/position = below
+ }
+}
+
+\ctikzset{v_/.style = {v={#1}, \circuitikzbasekey/bipole/voltage/position = below} }
+\ctikzset{v^/.style = {v={#1}, \circuitikzbasekey/bipole/voltage/position = above} }
+\ctikzset{v>/.style = {v={#1}, \circuitikzbasekey/bipole/voltage/direction = forward} }
+\ctikzset{v</.style = {v={#1}, \circuitikzbasekey/bipole/voltage/direction = backward} }%
+
+\newif\ifpgfcirc@do@v@symbols\pgfcirc@do@v@symbolstrue
+\ctikzset{no v symbols/.code={\pgfcirc@do@v@symbolsfalse}}
+\ctikzset{v symbols/.code={\pgfcirc@do@v@symbolstrue}}
+
+% Default position varies whether the component is a voltage source
+% or not
+\ctikzset{v/.code = {
+ \pgfcirc@has@vtrue
+ \ifpgf@circuit@bipole@override@source@vif
+ \pgf@circuit@bipole@isvoltagefalse
+ \pgf@circuit@bipole@iscurrentfalse
+ \fi
+ \ifpgf@circuit@bipole@isvoltage
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=above,
+ \circuitikzbasekey/bipole/voltage/direction=forward}
+ \else
+ \ifpgf@circ@oldvoltagedirection
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=backward}
+ \else
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=forward}
+ \fi
+ \fi
+ \ifpgf@circ@oldvoltagedirection
+ \ifpgf@circuit@bipole@iscurrent\ifpgf@circ@fixbatteries
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=forward}
+ \fi\fi
+ \else
+ \ifpgf@circuit@bipole@iscurrent
+ \ifpgf@circuit@bipole@current@backward
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=forward}
+ \else
+ \pgfkeys{\circuitikzbasekey/bipole/voltage/position=below,
+ \circuitikzbasekey/bipole/voltage/direction=backward}
+ \fi\fi\fi
+ \pgfkeys{/tikz/circuitikz/bipole/voltage/label/name={#1}}
+ \ctikzsetvalof{bipole/voltage/label/unit}{}
+ \ifpgf@circ@siunitx
+ \pgf@circ@handleSI{#1}
+ \ifpgf@circ@siunitx@res
+ \edef\pgf@temp{\pgf@circ@handleSI@val}
+ \pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/name}{\pgf@temp}
+ \edef\pgf@temp{\pgf@circ@handleSI@unit}
+ \pgfkeyslet{/tikz/circuitikz/bipole/voltage/label/unit}{\pgf@temp}
+ \else
+ \fi
+ \else
+ \fi
+ }
+}
+% %>>>
+
+% american voltage font selection and symbol definition
+% the default font command is {} --- nothing
+\def\pgf@circ@avfont{\ctikzvalof{voltage/american font}}
+%
+% plus and minus symbols (default is $+$ and $-$, see pgfcirc.defines.tex)
+%
+\def\pgf@circ@avplus{\ctikzvalof{voltage/american plus}}
+\def\pgf@circ@avminus{\ctikzvalof{voltage/american minus}}
+
+%%
+\def\setscaledRlenforclass{%
+ \csname pgf@sh@ma@\ctikzvalof{bipole/name}\endcsname
+ \ifdefined\ctikzclass
+ \edef\pgf@temp{/tikz/circuitikz/\ctikzclass/scale}
+ \pgfkeysifdefined{\pgf@temp}
+ {\pgf@circ@scaled@Rlen=\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ {\pgf@circ@scaled@Rlen=\pgf@circ@Rlen}
+ \else
+ \pgf@circ@scaled@Rlen=\pgf@circ@Rlen
+ \fi
+}
+
+%% Output routine for generic bipoles%<<<
+% put this to true to see the voltage label coordinate anchors
+\newif\ifpgf@circ@debugv\pgf@circ@debugvfalse
+
+\def\pgf@circ@drawvoltagegeneric{
+ \pgfextra{
+ % \typeout{KIND:\ctikzvalof{bipole/kind}\space RLEN:\the\pgf@circ@Rlen\space SCALED:\the\pgf@circ@scaled@Rlen}
+ \ifnum \ctikzvalof{mirror value}=-1
+ \ifpgf@circuit@bipole@inverted
+ \def\distfromline{\ctikzvalof{voltage/distance from line}\pgf@circ@scaled@Rlen}
+ \else
+ \def\distfromline{-\ctikzvalof{voltage/distance from line}\pgf@circ@scaled@Rlen}
+ \fi
+ \else
+ \ifpgf@circuit@bipole@inverted
+ \def\distfromline{-\ctikzvalof{voltage/distance from line}\pgf@circ@scaled@Rlen}
+ \else
+ \def\distfromline{\ctikzvalof{voltage/distance from line}\pgf@circ@scaled@Rlen}
+ \fi
+ \fi
+ \ifpgf@circuit@bipole@voltage@below
+ \def\pgf@circ@voltage@angle{90}
+ \else
+ \def\pgf@circ@voltage@angle{-90}
+ \fi
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/distance from node}
+ \pgfkeysifdefined{\pgf@temp}
+ { \edef\distancefromnode{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/distance from node}} }
+ { \edef\distancefromnode{\ctikzvalof{voltage/distance from node}} }
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/bump b}
+ \pgfkeysifdefined{\pgf@temp}
+ { \edef\bumpb{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/bump b}} }
+ { \edef\bumpb{\ctikzvalof{voltage/bump b}} }
+ \edef\shiftv{\ctikzvalof{voltage/shift}}
+ % additional per-bipole voltage shift (internal)
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/additional shift}
+ \pgfkeysifdefined{\pgf@temp}
+ {
+ \edef\addvshift{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/additional shift}}
+ }
+ {
+ \edef\addvshift{0}
+ }
+ \newdimen{\absvshift}
+ \pgfmathsetlength{\absvshift}{(1+\shiftv+\addvshift)*(\distfromline)}
+ % reset anchor if american and open
+ \ifpgf@circuit@europeanvoltage
+ \else
+ \ifx\@@kind\@@open
+ \def\pgf@circ@bipole@voltage@label@anchor{center}
+ \fi
+ \fi
+ \ifpgf@circuit@bipole@voltage@raised
+ \def\pgf@circ@bipole@voltage@label@anchor{center}
+ \pgfmathsetlength{\absvshift}{\absvshift+sign(\absvshift)*height{"Q"}} % with the current font.
+ \fi
+ }
+ % %\pgf@circ@Rlen/\ctikzvalof{current arrow scale} is equal to the length of the currarrow
+ %absolute move, minimum space is length of arrowhead
+ coordinate (pgfcirc@midtmp) at ($(\tikztostart) ! \pgf@circ@Rlen/\ctikzvalof{current arrow scale} ! (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distancefromnode ! (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@Vfrom@flat) at (pgfcirc@midtmp)
+ %absolute move, minimum space is length of arrowhead
+ coordinate (pgfcirc@midtmp) at ($(\tikztotarget) ! \pgf@circ@Rlen/\ctikzvalof{current arrow scale} ! (pgfcirc@anchorendnode)$)
+ coordinate (pgfcirc@midtmp) at ($(pgfcirc@midtmp) ! \distancefromnode ! (pgfcirc@anchorendnode)$)
+ coordinate (pgfcirc@Vto@flat) at (pgfcirc@midtmp)
+ coordinate (pgfcirc@mid) at ($(pgfcirc@Vfrom@flat)!0.5!(pgfcirc@Vto@flat)$)
+
+ \ifpgf@circuit@bipole@voltage@below
+ % see comments for the "above" part (similar)
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ coordinate (pgfcirc@bottom) at (\ctikzvalof{bipole/name}.-90)
+ coordinate (pgfcirc@Vto1) at ($(pgfcirc@mid)+(pgfcirc@bottom)-(pgfcirc@Vfrom@flat)$)
+ coordinate (pgfcirc@Vfrom1) at ($(pgfcirc@mid)+(pgfcirc@bottom)-(pgfcirc@Vto@flat)$)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto1) ! \absvshift!90 : (pgfcirc@Vfrom1)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom1) ! \absvshift!-90 : (pgfcirc@Vto1)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vto)!0.5!(\pgfcirc@a@prefix-Vfrom) $)
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vto)
+ \else
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@Vcont1t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-110)$)
+ coordinate (pgfcirc@Vcont2t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.-70)$)
+ coordinate (\pgfcirc@a@prefix-Vcont1) at ($(pgfcirc@Vcont1t) ! -\absvshift!90 : (pgfcirc@Vcont2t)$)
+ coordinate (\pgfcirc@a@prefix-Vcont2) at ($(pgfcirc@Vcont2t) ! -\absvshift!-90 : (pgfcirc@Vcont1t)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vcont2)!0.5!(\pgfcirc@a@prefix-Vcont1)$)
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vcont2)
+ \fi
+ \else
+ % we are in case of american here
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!-90 : (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@bottom) at (\ctikzvalof{bipole/name}.-90)
+ coordinate (pgfcirc@Vdir0) at ($(pgfcirc@mid)+(pgfcirc@bottom)-(pgfcirc@Vfrom@flat)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(pgfcirc@bottom) ! \absvshift!-90 : (pgfcirc@Vdir0)$)
+ coordinate (pgfcirc@Vdir) at ($(pgfcirc@mid)+(\pgfcirc@a@prefix-Vlab)-(pgfcirc@Vfrom@flat)$)
+ \ifpgf@circuit@bipole@voltage@raised
+ % move the from and to up to the level of Vlab
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(\pgfcirc@a@prefix-Vlab)+(pgfcirc@Vto@flat)-(pgfcirc@mid)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(\pgfcirc@a@prefix-Vlab)+(pgfcirc@Vfrom@flat)-(pgfcirc@mid)$)
+ \fi
+ \fi
+ \else
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ coordinate (pgfcirc@top) at (\ctikzvalof{bipole/name}.90)
+ % move parallel to the component line at pgfcirc@top distance
+ coordinate (pgfcirc@Vto1) at ($(pgfcirc@mid)+(pgfcirc@top)-(pgfcirc@Vfrom@flat)$)
+ coordinate (pgfcirc@Vfrom1) at ($(pgfcirc@mid)+(pgfcirc@top)-(pgfcirc@Vto@flat)$)
+ % add the extra distance
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto1) ! \absvshift!-90 : (pgfcirc@Vfrom1)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom1) ! \absvshift!90 : (pgfcirc@Vto1)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vto)!0.5!(\pgfcirc@a@prefix-Vfrom) $)
+ % direction line to shift the label later
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vto)
+ \else
+ % european voltages here
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! -\absvshift!90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! -\absvshift!-90 : (pgfcirc@anchorstartnode)$)
+ % identify the two control points for the "arc" of the voltage
+ coordinate (pgfcirc@Vcont1t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.110)$)
+ coordinate (pgfcirc@Vcont2t) at ($(\ctikzvalof{bipole/name}.center) ! \bumpb ! (\ctikzvalof{bipole/name}.70)$)
+ % and shift them a bit
+ coordinate (\pgfcirc@a@prefix-Vcont1) at ($(pgfcirc@Vcont1t) ! \absvshift!90 : (pgfcirc@Vcont2t)$)
+ coordinate (\pgfcirc@a@prefix-Vcont2) at ($(pgfcirc@Vcont2t) ! \absvshift!-90 : (pgfcirc@Vcont1t)$)
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vcont2)!0.5!(\pgfcirc@a@prefix-Vcont1)$)
+ % direction line to shift the label later
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vcont2)
+ \fi
+ \else
+ % we are in case of american here
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(pgfcirc@Vto@flat) ! \absvshift!-90 : (pgfcirc@anchorendnode)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(pgfcirc@Vfrom@flat) ! \absvshift!90 : (pgfcirc@anchorstartnode)$)
+ coordinate (pgfcirc@top) at (\ctikzvalof{bipole/name}.90)
+ % move parallel to the component line
+ coordinate (pgfcirc@Vdir0) at ($(pgfcirc@mid)+(pgfcirc@top)-(pgfcirc@Vfrom@flat)$)
+ % and add the extra distance
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(pgfcirc@top) ! \absvshift!90 : (pgfcirc@Vdir0)$)
+ coordinate (pgfcirc@Vdir) at ($(pgfcirc@mid)+(\pgfcirc@a@prefix-Vlab)-(pgfcirc@Vfrom@flat)$)
+ \ifpgf@circuit@bipole@voltage@raised
+ % move the from and to up to the level of Vlab
+ coordinate (\pgfcirc@a@prefix-Vto) at ($(\pgfcirc@a@prefix-Vlab)+(pgfcirc@Vto@flat)-(pgfcirc@mid)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($(\pgfcirc@a@prefix-Vlab)+(pgfcirc@Vfrom@flat)-(pgfcirc@mid)$)
+ \fi
+ \fi
+ \fi
+ \ifx\@@kind\@@open
+ coordinate (\pgfcirc@a@prefix-Vto) at (pgfcirc@Vto@flat)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at (pgfcirc@Vfrom@flat)
+ \fi
+ \ifpgf@circ@debugv
+ node [ocirc, fill=red] at (pgfcirc@anchorstartnode) {}
+ node [ocirc, fill=blue] at (pgfcirc@anchorendnode) {}
+ node [ocirc, fill=green] at (\pgfcirc@a@prefix-Vto) {}
+ node [ocirc, fill=yellow] at (\pgfcirc@a@prefix-Vfrom) {}
+ node [odiamondpole, fill=green!50!black] at (pgfcirc@Vto@flat) {}
+ node [odiamondpole, fill=orange] at (pgfcirc@Vfrom@flat) {}
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ \else
+ node [osquarepole, fill=red] at (\pgfcirc@a@prefix-Vcont1) {}
+ node [osquarepole, fill=blue] at (\pgfcirc@a@prefix-Vcont2) {}
+ \fi
+ \fi
+ \fi
+
+ %
+ % Now we draw the voltage things (only if not empty --- in which case we have been
+ % called just to set the anchors)
+ %
+ \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else
+ \ifpgfcirc@do@v@symbols
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vto) --(\pgfcirc@a@prefix-Vfrom) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) --(\pgfcirc@a@prefix-Vto) node[currarrow, sloped, allow upside down, pos=1,anchor=tip] {}
+ \fi
+ \else
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vto) .. controls (\pgfcirc@a@prefix-Vcont2) and (\pgfcirc@a@prefix-Vcont1) ..
+ node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {}
+ (\pgfcirc@a@prefix-Vfrom)
+ \else
+ (\pgfcirc@a@prefix-Vfrom) .. controls (\pgfcirc@a@prefix-Vcont1) and (\pgfcirc@a@prefix-Vcont2) ..
+ node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {}
+ (\pgfcirc@a@prefix-Vto)
+ \fi
+ \fi
+ \else % american
+ \ifpgf@circuit@bipole@voltage@backward
+ \ifpgf@circ@oldvoltagedirection
+ (\pgfcirc@a@prefix-Vfrom) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus}
+ (\pgfcirc@a@prefix-Vto) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus}
+ (\pgfcirc@a@prefix-Vto) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus}
+ \fi
+ \else
+ \ifpgf@circ@oldvoltagedirection
+ (\pgfcirc@a@prefix-Vfrom) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus}
+ (\pgfcirc@a@prefix-Vto) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avplus}
+ (\pgfcirc@a@prefix-Vto) node[inner sep=0, node font=\pgf@circ@avfont,
+ anchor=\pgf@circ@bipole@voltage@label@anchor]{\pgf@circ@avminus}
+ \fi
+ \fi
+ \fi
+ \fi % closing the ...symbol
+ \fi % Closing the ...ifempty
+}
+% %>>>
+
+%% Output routine for voltage sources%<<<
+\def\pgf@circ@drawvoltagegenerator{
+ % the following is affected indirectly by voltage/shift, you can move the arrow with voltage/bump a.
+ % it's not perfect, but I can't find the way to do it correctly...
+ \pgfextra{
+ \edef\shiftv{\ctikzvalof{voltage/shift}}
+ % distance along the 60-120 axis
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/bump a}
+ \pgfkeysifdefined{\pgf@temp}
+ {
+ \edef\bumpa{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/bump a}}
+ }
+ {
+ \edef\bumpa{\ctikzvalof{voltage/bump a}}
+ }
+ % additional per-bipole voltage shift (internal)
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/additional shift}
+ \pgfkeysifdefined{\pgf@temp}
+ {
+ \edef\addvshift{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/additional shift}}
+ }
+ {
+ \edef\addvshift{0}
+ }
+ \pgfmathsetmacro{\bumpaplus}{\bumpa + 0.5*\shiftv} % coefficient added "by feel". Sorry.
+ }
+ \ifpgf@circuit@bipole@voltage@below
+ coordinate (pgfcirc@Vfrom0) at ($(\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.-120)$)
+ coordinate (pgfcirc@Vto0) at ($(\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.-60)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($ (pgfcirc@Vfrom0) ! \addvshift! -90: (pgfcirc@Vto0) $)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($ (pgfcirc@Vto0) ! \addvshift! 90: (pgfcirc@Vfrom0) $)
+ \else
+ coordinate (pgfcirc@Vfrom0) at ($ (\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.120)$)
+ coordinate (pgfcirc@Vto0) at ($ (\ctikzvalof{bipole/name}.center) ! \bumpaplus ! (\ctikzvalof{bipole/name}.60)$)
+ coordinate (\pgfcirc@a@prefix-Vfrom) at ($ (pgfcirc@Vfrom0) ! \addvshift! 90: (pgfcirc@Vto0) $)
+ coordinate (\pgfcirc@a@prefix-Vto) at ($ (pgfcirc@Vto0) ! \addvshift! -90: (pgfcirc@Vfrom0) $)
+ \fi
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vto)!0.5!(\pgfcirc@a@prefix-Vfrom) $)
+ coordinate (pgfcirc@Vdir) at (\pgfcirc@a@prefix-Vto)
+ \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else
+ \ifpgfcirc@do@v@symbols
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vto) -- node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {} (\pgfcirc@a@prefix-Vfrom)
+ \else
+ (\pgfcirc@a@prefix-Vfrom) -- node[currarrow, sloped, allow upside down, pos=1, anchor=tip] {} (\pgfcirc@a@prefix-Vto)
+ \fi
+ \else% american voltage
+ \ifpgf@circuit@bipole@voltageoutsideofsymbol
+ % if it is a battery, must put + and -
+
+ \ifpgf@circ@fixbatteries
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus}
+ (\pgfcirc@a@prefix-Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus}
+ (\pgfcirc@a@prefix-Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus}
+ \fi
+ \else
+ \ifpgf@circuit@bipole@voltage@backward
+ (\pgfcirc@a@prefix-Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus}
+ (\pgfcirc@a@prefix-Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus}
+ \else
+ (\pgfcirc@a@prefix-Vfrom) node[node font=\pgf@circ@avfont] {\pgf@circ@avplus}
+ (\pgfcirc@a@prefix-Vto) node[node font=\pgf@circ@avfont] {\pgf@circ@avminus}
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi % closes ... ifsymbol
+ \fi % closes ...ifempty
+}
+% %>>>
+
+%% Output routine (main entry point) %<<<
+%% this is the entry point
+%%
+%% locally used dimensions
+\newdimen{\pgfcirc@labelshift}
+\newif\ifpgfcirc@v@curved % helper if --- true only if voltages are curved
+\def\pgf@circ@drawvoltage{% node name
+ \pgfextra{%
+ % set the helper if...curved
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ \pgfcirc@v@curvedfalse
+ \else
+ \pgfcirc@v@curvedtrue
+ \fi
+ \else
+ \pgfcirc@v@curvedfalse
+ \fi
+ % \typeout{V routine called with prefix: \pgfcirc@a@prefix}
+ % Label anchors WARNING: indentation is probably wrong
+ \edef\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@direction\pgf@nil}
+ \ifnum\pgfcircmathresult >4 \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 >274 \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
+
+ % export anchor position (if not needed, is always the same macro)
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Vlab-anchor\endcsname{\pgf@circ@bipole@voltage@label@anchor}
+ % this must be set *before* changing for mirroring and inverting; in that case
+ % the xscale/yscale parameters take it into account
+ \ifpgf@circuit@bipole@voltage@below
+ \def\pgf@circ@bipole@voltage@label@where{-90}
+ \else
+ \def\pgf@circ@bipole@voltage@label@where{90}
+ \fi
+
+ % magic to counteract the scale and yscale effects (there should be a better way...)
+ \ifnum \ctikzvalof{mirror value}=-1
+ \ifpgf@circuit@bipole@voltage@below
+ \pgf@circuit@bipole@voltage@belowfalse
+ \else
+ \pgf@circuit@bipole@voltage@belowtrue
+ \fi
+ \fi
+
+ \ifpgf@circuit@bipole@inverted
+ \ifpgf@circuit@bipole@voltage@below
+ \pgf@circuit@bipole@voltage@belowfalse
+ \else
+ \pgf@circuit@bipole@voltage@belowtrue
+ \fi
+ \fi
+
+ % take into account scaling
+ \setscaledRlenforclass
+ % set the macro for detecting open
+ \edef\@@kind{\ctikzvalof{bipole/kind}}\edef\@@open{open}
+ % start voltage label adjustment
+ \ifpgf@circuit@europeanvoltage
+ \ifpgf@circuit@bipole@voltage@straight
+ % check for straight
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/straight label distance}
+ \pgfkeysifdefined{\pgf@temp}{%
+ \edef\labeldist{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/straight label distance}}%
+ % \typeout{ST:ADJUSTED\space for\space \ctikzvalof{bipole/kind} \space at \space \stdist}
+ }{\edef\labeldist{\ctikzvalof{voltage/straight label distance}}}
+ \ifpgf@circ@debugv\edef\whichtypeshift{STR}\fi
+ % do not labelshift for legacy straight open; 1.4 makes the shift null
+ \ifx\@@kind\@@open\ifpgf@adjust@open@voltage\else\edef\labeldist{1.4}\fi\fi
+ \else
+ % check for european
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/european label distance}
+ \pgfkeysifdefined{\pgf@temp}{%
+ \edef\labeldist{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/european label distance}}%
+ % \typeout{EU:ADJUSTED\space for\space \ctikzvalof{bipole/kind} \space at \space \eudist}
+ }{ \edef\labeldist{\ctikzvalof{voltage/european label distance}}}
+ \ifpgf@circ@debugv\edef\whichtypeshift{EUR}\fi
+ \fi
+ \else
+ % check for american
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/voltage/american label distance}
+ \pgfkeysifdefined{\pgf@temp}{%
+ \ifpgf@circuit@bipole@voltage@raised
+ % do not apply the shift if we are using raised american style
+ \edef\labeldist{1.4}% default value
+ \else
+ \edef\labeldist{\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/voltage/american label distance}}%
+ \fi
+ % \typeout{AL:ADJUSTED\space for\space \ctikzvalof{bipole/kind} \space at \space \aldist}
+ }{\edef\labeldist{\ctikzvalof{voltage/american label distance}}}
+ \ifpgf@circ@debugv\edef\whichtypeshift{AME}\fi
+ \fi
+ % find the height of the bipole or use a default value
+ \edef\pgf@temp{/tikz/circuitikz/bipoles/\ctikzvalof{bipole/kind}/height}
+ \pgfkeysifdefined{\pgf@temp}
+ {\pgfmathsetmacro{\partheightf}{0.5*\ctikzvalof{bipoles/\ctikzvalof{bipole/kind}/height}}
+ \edef\partheight{\partheightf\pgf@circ@scaled@Rlen}}
+ {\edef\partheight{(.5\pgf@circ@scaled@Rlen)}} %fallback to fixed value
+ \ifpgf@circuit@bipole@isvoltage
+ \pgfmathsetlength{\pgfcirc@labelshift}{(\labeldist-1.2)*\partheight}
+ \else
+ \pgfmathsetlength{\pgfcirc@labelshift}{(\labeldist-1.4)*\partheight}
+ \fi
+ % the value for the european was by default 1.4
+ \pgfsetcornersarced{\pgfpointorigin}% do not use rounded corners!
+ % stop the detection of open if I do not want special treatment
+ \ifpgf@adjust@open@voltage\else\edef\@@open{this-will-nEver-match}\fi
+ % \typeout{KIND\space\@@kind}
+ }%end pgfextra
+
+ \ifpgf@circuit@bipole@isvoltage
+ \pgf@circ@drawvoltagegenerator
+ % add fake cont1 and cont2 anchors for export
+ coordinate (\pgfcirc@a@prefix-Vcont1) at ($(\pgfcirc@a@prefix-Vfrom) !0.5! (\pgfcirc@a@prefix-Vto)$)
+ coordinate (\pgfcirc@a@prefix-Vcont2) at ($(\pgfcirc@a@prefix-Vfrom) !0.5! (\pgfcirc@a@prefix-Vto)$)
+ \else
+ \pgf@circ@drawvoltagegeneric
+ \fi
+ % % debugging
+ % \pgfextra{%
+ % \typeout{LABEL\space KIND:\@@kind\space EU:\the\pgfcirc@eushift\space AL:\the\pgfcirc@alshift\space
+ % DIRECTION:\pgf@circ@bipole@voltage@label@where}
+ % \pgf@circ@debugvtrue}
+
+ % move a bit if requested
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(\pgfcirc@a@prefix-Vlab) ! \pgfcirc@labelshift ! \pgf@circ@bipole@voltage@label@where :(pgfcirc@Vdir)$)
+
+ % check for the case of american AND open
+ \ifpgf@circuit@europeanvoltage
+ \else
+ \ifx\@@kind\@@open
+ % override pgfcirc@Vlab
+ coordinate (\pgfcirc@a@prefix-Vlab) at ($(pgfcirc@Vfrom@flat)!0.5!(pgfcirc@Vto@flat)$)
+ \fi
+ \fi
+
+ \ifpgf@circ@debugv
+ node [odiamondpole, color=blue] at (\pgfcirc@a@prefix-Vlab) {}
+ node [odiamondpole, color=red] at (pgfcirc@Vdir) {}
+ node [overlay, red, font=\tiny, anchor=south east, align=right] at(pgfcirc@Vdir)
+ {\whichtypeshift:\the\pgfcirc@labelshift\\ DIR:\pgf@circ@bipole@voltage@label@where}
+ \fi
+
+ % put the node only if it's not empty
+ \pgf@circ@ifkeyempty{bipole/voltage/label/name}\else
+ node [anchor=\pgf@circ@bipole@voltage@label@anchor, inner sep=2pt,
+ \circuitikzbasekey/bipole voltage style](\ctikzvalof{bipole/name}voltage)
+ at (\pgfcirc@a@prefix-Vlab) {\pgf@circ@finallabels{voltage/label}}
+ \fi
+
+ \ifpgfcirc@v@curved\else
+ % fake Vcont1 and Vcont2 for when they are exported --- in the middle of Vto and Vfrom
+ coordinate (\pgfcirc@a@prefix-Vcont1) at ($(\pgfcirc@a@prefix-Vfrom) !0.5! (\pgfcirc@a@prefix-Vto)$)
+ coordinate (\pgfcirc@a@prefix-Vcont2) at ($(\pgfcirc@a@prefix-Vfrom) !0.5! (\pgfcirc@a@prefix-Vto)$)
+ \fi
+ % revert from and to (and c1 - c2) if needed (simpler than rework the positioning above...)
+ \ifpgf@circuit@bipole@voltage@backward
+ \pgfcirc@swap@coordinates{\pgfcirc@a@prefix-Vfrom}{\pgfcirc@a@prefix-Vto}
+ \pgfcirc@swap@coordinates{\pgfcirc@a@prefix-Vcont1}{\pgfcirc@a@prefix-Vcont2}
+ \fi
+
+}%end drawvoltages
+
+% %>>>
+
+%% these should be arguably moved to every component definition...
+
+% special cases for voltage positions%<<<1
+% the KIND is the node name without SHAPE
+% See the definition above for meaning
+% if bipoles/KIND/voltage/straight label distance is not defined, it uses the height
+% if bipoles/KIND/voltage/additional shift is not defined, it is 0 (extra distance)
+%
+\ctikzset{bipoles/generic/voltage/distance from node/.initial=0.4}
+\ctikzset{bipoles/generic/voltage/bump b/.initial=2}
+%
+\ctikzset{bipoles/ageneric/voltage/distance from node/.initial=.4}
+\ctikzset{bipoles/ageneric/voltage/bump b/.initial=2}
+%
+\ctikzset{bipoles/fullgeneric/voltage/distance from node/.initial=.4}
+\ctikzset{bipoles/fullgeneric/voltage/bump b/.initial=2}
+%
+\ctikzset{bipoles/memristor/voltage/distance from node/.initial=.4}
+\ctikzset{bipoles/memristor/voltage/bump b/.initial=2}
+%
+\ctikzset{bipoles/tline/voltage/bump b/.initial=2.4}
+%
+\ctikzset{bipoles/varistor/voltage/bump b/.initial=2.4}
+\ctikzset{bipoles/varistor/voltage/american label distance/.initial=1.8}
+%
+\ctikzset{bipoles/photoresistor/voltage/bump b/.initial=1.6}
+%
+\ctikzset{bipoles/thermistor/voltage/bump b/.initial=2.4}
+\ctikzset{bipoles/thermistor/voltage/european label distance/.initial=0.8}
+\ctikzset{bipoles/thermistorntc/voltage/bump b/.initial=1.6}
+\ctikzset{bipoles/thermistorntc/voltage/european label distance/.initial=0.8}
+\ctikzset{bipoles/thermistorptc/voltage/bump b/.initial=1.6}
+\ctikzset{bipoles/thermistorptc/voltage/european label distance/.initial=0.8}
+%
+\ctikzset{bipoles/ccapacitor/voltage/bump b/.initial=2.2}
+%
+\ctikzset{bipoles/emptyzzdiode/voltage/bump b/.initial=2.5}
+\ctikzset{bipoles/emptyzzdiode/voltage/european label distance/.initial=1.0}
+\ctikzset{bipoles/fullzzdiode/voltage/bump b/.initial=2.5}
+\ctikzset{bipoles/fullzzdiode/voltage/european label distance/.initial=1.0}
+\ctikzset{bipoles/emptythyristor/voltage/bump b/.initial=2.0}
+\ctikzset{bipoles/emptythyristor/voltage/european label distance/.initial=1.2}
+\ctikzset{bipoles/fullthyristor/voltage/bump b/.initial=2.0}
+\ctikzset{bipoles/fullthyristor/voltage/european label distance/.initial=1.2}
+\ctikzset{bipoles/emptytriac/voltage/bump b/.initial=1.8}
+\ctikzset{bipoles/emptytriac/voltage/european label distance/.initial=0.8}
+\ctikzset{bipoles/fulltriac/voltage/bump b/.initial=1.8}
+\ctikzset{bipoles/fulltriac/voltage/european label distance/.initial=0.8}
+%
+\ctikzset{bipoles/short/voltage/american label distance/.initial=2.8}
+\ctikzset{bipoles/open/voltage/distance from node/.initial=0.3}
+%
+\ctikzset{bipoles/battery/voltage/bump a/.initial=1.4}
+\ctikzset{bipoles/vsourceAM/voltage/american label distance/.initial=1.2}
+\ctikzset{bipoles/cvsourceAM/voltage/american label distance/.initial=1.2}
+%%>>>
+
+% vim: set fdm=marker fmr=%<<<,%>>>:
+%%%---------- close: tex/pgfcircvoltage
+%%%%%%%%%%% Springe nach tex/pgfcirccurrent
+%%%---------- open: tex/pgfcirccurrent.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Current handling
+
+%% styles
+\ctikzset{bipole current style/.style={}}
+\tikzset{bipole current style/.code={
+ \ctikzset{bipole current style/.style={#1}}
+}}
+\tikzset{bipole current append style/.code={
+ \ctikzset{bipole current style/.append style={#1}}
+}}
+
+%% 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 = backward,
+ \circuitikzbasekey/bipole/current/x position = after,
+ \circuitikzbasekey/bipole/current/y position = above
+ }
+}
+
+\ctikzset{i_</.style = {
+ i={#1},
+ \circuitikzbasekey/bipole/current/direction = backward,
+ \circuitikzbasekey/bipole/current/x position = after,
+ \circuitikzbasekey/bipole/current/y position = below
+ }
+}
+
+\ctikzset{i<^/.style = {
+ i={#1},
+ \circuitikzbasekey/bipole/current/direction = backward,
+ \circuitikzbasekey/bipole/current/x position = before,
+ \circuitikzbasekey/bipole/current/y position = above
+ }
+}
+
+\ctikzset{i<_/.style = {
+ i={#1},
+ \circuitikzbasekey/bipole/current/direction = backward,
+ \circuitikzbasekey/bipole/current/x position = before,
+ \circuitikzbasekey/bipole/current/y position = below
+ }
+}
+
+\newif\ifpgfcirc@do@i@symbols\pgfcirc@do@i@symbolstrue
+\ctikzset{no i symbols/.code={\pgfcirc@do@i@symbolsfalse}}
+\ctikzset{i symbols/.code={\pgfcirc@do@i@symbolstrue}}
+
+\ctikzset{i/.code = {
+ \pgfcirc@has@itrue
+ \ifpgf@circuit@bipole@override@source@vif
+ \pgf@circuit@bipole@isvoltagefalse
+ \pgf@circuit@bipole@iscurrentfalse
+ \fi
+ \pgfkeys{\circuitikzbasekey/bipole/current/direction = forward,
+ \circuitikzbasekey/bipole/current/x position = after,
+ \circuitikzbasekey/bipole/current/y position = above }
+ \pgfkeys{/tikz/circuitikz/bipole/current/label/name={#1}}
+ \ctikzsetvalof{bipole/current/label/unit}{}
+ \ifpgf@circ@siunitx
+ \pgf@circ@handleSI{#1}
+ \ifpgf@circ@siunitx@res
+ \edef\pgf@temp{\pgf@circ@handleSI@val}
+ \pgfkeyslet{/tikz/circuitikz/bipole/current/label/name}{\pgf@temp}
+ \edef\pgf@temp{\pgf@circ@handleSI@unit}
+ \pgfkeyslet{/tikz/circuitikz/bipole/current/label/unit}{\pgf@temp}
+ \else
+ \fi
+ \else
+ \fi
+ %reverse current direction for voltage sources
+ \ifpgf@circ@oldvoltagedirection\else
+ \ifpgf@circuit@bipole@isvoltage
+ \ifpgf@circuit@bipole@voltage@backward
+ \pgfkeys{\circuitikzbasekey/bipole/current/direction = forward,
+ \circuitikzbasekey/bipole/current/x position = after,
+ \circuitikzbasekey/bipole/current/y position = below }
+ \else
+ \pgfkeys{\circuitikzbasekey/bipole/current/direction = backward,
+ \circuitikzbasekey/bipole/current/x position = before,
+ \circuitikzbasekey/bipole/current/y position = above }
+ \fi\fi\fi
+ }
+}
+
+\ifpgf@circ@oldvoltagedirection
+ \ctikzset{i</.style = { i={#1}, \circuitikzbasekey/bipole/current/direction = backward } }
+\else
+ \ctikzset{i</.style = { i={#1}, \circuitikzbasekey/bipole/current/direction = backward, \circuitikzbasekey/bipole/current/x position = before } }
+\fi
+\ctikzset{i_/.style = { i={#1}, \circuitikzbasekey/bipole/current/y position = below } }
+\ctikzset{i>/.style = {i={#1}, \circuitikzbasekey/bipole/current/direction = forward } }
+\ctikzset{i^/.style = { i={#1}, \circuitikzbasekey/bipole/current/y position = above } }
+
+%% Output routine
+\def\pgf@circ@drawcurrent{
+ \pgfextra{
+ \edef\pgf@circ@rounded@dir{\pgf@circ@direction}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@rounded@dir\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 >274 \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
+ % export anchor position (if not needed, is always the same macro)
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Ilab-anchor\endcsname{\pgf@circ@dir}
+
+ \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%draw current at a short at middle of the line
+ coordinate (\pgfcirc@a@prefix-Ifrom) at (\tikztostart)
+ coordinate (\pgfcirc@a@prefix-Ito) at (\tikztotarget)
+ \else% normal bipole or source
+ \ifpgf@circuit@bipole@current@before
+ coordinate (\pgfcirc@a@prefix-Ifrom) at (\tikztostart)
+ coordinate (\pgfcirc@a@prefix-Ito) at (pgfcirc@anchorstartnode)
+ \else
+ coordinate (\pgfcirc@a@prefix-Ifrom) at (pgfcirc@anchorendnode)
+ coordinate (\pgfcirc@a@prefix-Ito) at (\tikztotarget)
+ \fi
+ \fi
+ \ifpgf@circuit@bipole@current@backward
+ \pgfextra{
+ \pgfmathsubtract{\pgf@circ@rounded@dir}{180}
+ \edef\pgf@circ@rounded@dir{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ }
+ \fi
+ coordinate (\pgfcirc@a@prefix-Ipos) at ($(\pgfcirc@a@prefix-Ifrom)! \ctikzvalof{current/distance} !(\pgfcirc@a@prefix-Ito)$)
+ % export the current direction
+ \pgfextra{\expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Iarrow-direction\endcsname{\pgf@circ@rounded@dir}}
+ % if the current label is not empty (in which case we have already all the anchors)
+ \pgf@circ@ifkeyempty{bipole/current/label/name}\else
+ % put the arrow node
+ % if we do not want the arrow, just put an empty node (needed to maintain the exact same distances)
+ \ifpgfcirc@do@i@symbols
+ node[currarrow, rotate=\pgf@circ@rounded@dir, anchor=center](Iarrow) at (\pgfcirc@a@prefix-Ipos) {}
+ \else
+ node[currarrow, rotate=\pgf@circ@rounded@dir, anchor=center,
+ circuitikz/phantom@currarrow](Iarrow) at (\pgfcirc@a@prefix-Ipos) {}
+ \fi
+ % put the label
+ node[anchor=\pgf@circ@dir, \circuitikzbasekey/bipole current style]
+ (\ctikzvalof{bipole/name}current)
+ at (Iarrow.\pgf@circ@bipole@current@label@where){\pgf@circ@finallabels{current/label}}
+ \fi % end ifempty
+ \ifpgf@circuit@bipole@current@backward
+ \pgfcirc@swap@coordinates{\pgfcirc@a@prefix-Ifrom}{\pgfcirc@a@prefix-Ito}
+ \fi
+}
+
+%%%---------- close: tex/pgfcirccurrent
+%%%%%%%%%%% Springe nach tex/pgfcircflow
+%%%---------- open: tex/pgfcircflow.tex
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% flow handling
+
+
+%% styles
+\ctikzset{bipole flow style/.style={}}
+\tikzset{bipole flow style/.code={
+ \ctikzset{bipole flow style/.style={#1}}
+}}
+\tikzset{bipole flow append style/.code={
+ \ctikzset{bipole flow style/.append style={#1}}
+}}
+
+%% Options
+\ctikzset{f^>/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = above
+ }
+}
+
+\ctikzset{f_>/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = below
+ }
+}
+
+\ctikzset{f>^/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = before,
+ \circuitikzbasekey/bipole/flow/y position = above
+ }
+}
+
+\ctikzset{f>_/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = before,
+ \circuitikzbasekey/bipole/flow/y position = below
+ }
+}
+
+\ctikzset{f^</.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = backward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = above
+ }
+}
+
+\ctikzset{f_</.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = backward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = below
+ }
+}
+
+\ctikzset{f<^/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = backward,
+ \circuitikzbasekey/bipole/flow/x position = before,
+ \circuitikzbasekey/bipole/flow/y position = above
+ }
+}
+
+\ctikzset{f<_/.style = {
+ f={#1},
+ \circuitikzbasekey/bipole/flow/direction = backward,
+ \circuitikzbasekey/bipole/flow/x position = before,
+ \circuitikzbasekey/bipole/flow/y position = below
+ }
+}
+
+\ctikzset{f</.style = { f={#1}, \circuitikzbasekey/bipole/flow/direction = backward} }
+\ctikzset{f_/.style = { f={#1}, \circuitikzbasekey/bipole/flow/y position = below } }
+\ctikzset{f>/.style = { f={#1}, \circuitikzbasekey/bipole/flow/direction = forward } }
+\ctikzset{f^/.style = { f={#1}, \circuitikzbasekey/bipole/flow/y position = above } }
+
+\newif\ifpgfcirc@do@f@symbols\pgfcirc@do@f@symbolstrue
+\ctikzset{no f symbols/.code={\pgfcirc@do@f@symbolsfalse}}
+\ctikzset{f symbols/.code={\pgfcirc@do@f@symbolstrue}}
+
+\ctikzset{f/.code = {
+ \pgfcirc@has@ftrue
+ \ifpgf@circuit@bipole@override@source@vif
+ \pgf@circuit@bipole@isvoltagefalse
+ \pgf@circuit@bipole@iscurrentfalse
+ \fi
+ \pgfkeys{\circuitikzbasekey/bipole/flow/direction = forward,
+ \circuitikzbasekey/bipole/flow/x position = after,
+ \circuitikzbasekey/bipole/flow/y position = above }
+ \pgfkeys{/tikz/circuitikz/bipole/flow/label/name={#1}}
+ \ctikzsetvalof{bipole/flow/label/unit}{}
+ \ifpgf@circ@siunitx
+ \pgf@circ@handleSI{#1}
+ \ifpgf@circ@siunitx@res
+ \edef\pgf@temp{\pgf@circ@handleSI@val}
+ \pgfkeyslet{/tikz/circuitikz/bipole/flow/label/name}{\pgf@temp}
+ \edef\pgf@temp{\pgf@circ@handleSI@unit}
+ \pgfkeyslet{/tikz/circuitikz/bipole/flow/label/unit}{\pgf@temp}
+ \else
+ \fi
+ \else
+ \fi
+}
+}
+
+%% Output routine
+
+\def\pgf@circ@drawflow{
+ \pgfextra{
+ \edef\pgf@circ@rounded@dir{\pgf@circ@direction}
+ \def\pgfcircmathresult{\expandafter\pgf@circ@stripdecimals\pgf@circ@rounded@dir\pgf@nil}
+
+ \ifnum\pgfcircmathresult >4 \ifnum\pgfcircmathresult <86
+ \ifpgf@circuit@bipole@flow@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@flow@below
+ \def\pgf@circ@dir{west} \else \def\pgf@circ@dir{east}
+ \fi
+ \fi\fi
+ \ifnum\pgfcircmathresult >94 \ifnum\pgfcircmathresult <176
+ \ifpgf@circuit@bipole@flow@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@flow@below
+ \def\pgf@circ@dir{south}\else\def\pgf@circ@dir{north}
+ \fi
+ \fi\fi
+ \ifnum\pgfcircmathresult >184 \ifnum\pgfcircmathresult <266
+ \ifpgf@circuit@bipole@flow@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@flow@below
+ \def\pgf@circ@dir{east}\else \def\pgf@circ@dir{west}
+ \fi
+ \fi\fi
+ \ifnum\pgfcircmathresult >274 \ifnum\pgfcircmathresult <356
+ \ifpgf@circuit@bipole@flow@below
+ \def\pgf@circ@dir{north east}\else\def\pgf@circ@dir{south west}
+ \fi
+ \fi\fi
+ \ifnum\pgfcircmathresult <5
+ \ifpgf@circuit@bipole@flow@below
+ \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south}
+ \fi
+ \fi
+ \ifnum\pgfcircmathresult >355
+ \ifpgf@circuit@bipole@flow@below
+ \def\pgf@circ@dir{north}\else\def\pgf@circ@dir{south}
+ \fi
+ \fi
+
+ \ifpgf@circuit@bipole@flow@below
+ \def\pgf@circ@bipole@flow@label@where{-90}
+ \else
+ \def\pgf@circ@bipole@flow@label@where{+90}
+ \fi
+ % export anchor position (if not needed, is always the same macro)
+ \expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Flab-anchor\endcsname{\pgf@circ@dir}
+ }
+
+ \pgfextra{\def\pgf@temp{short}\edef\pgf@circ@temp{\ctikzvalof{bipole/kind}}}
+ \ifx\pgf@circ@temp\pgf@temp%draw current at a short at middle of the line
+ coordinate (pgfcirc@Ffrom@flat) at (\tikztostart)
+ coordinate (pgfcirc@Fto@flat) at (\tikztotarget)
+ \else% normal bipole or source
+ \ifpgf@circuit@bipole@flow@before
+ coordinate (pgfcirc@Ffrom@flat) at (\tikztostart)
+ coordinate (pgfcirc@Fto@flat) at (pgfcirc@anchorstartnode)
+ \else
+ coordinate (pgfcirc@Ffrom@flat) at (pgfcirc@anchorendnode)
+ coordinate (pgfcirc@Fto@flat) at (\tikztotarget)
+ \fi
+ \fi
+ \pgfextra{
+ \newdimen{\absfshift}
+ \def\flow@offset{\ctikzvalof{flow/offset}\pgf@circ@Rlen}
+ \absfshift=\flow@offset
+ \ifpgf@circuit@bipole@flow@backward
+ \pgfmathsubtract{\pgf@circ@rounded@dir}{180}
+ \edef\pgf@circ@rounded@dir{\expandafter\pgf@circ@stripdecimals\pgfmathresult\pgf@nil}
+ \fi
+ }
+ \ifpgf@circuit@bipole@flow@below
+ coordinate (pgfcirc@Ffrom@up) at ($(pgfcirc@Ffrom@flat) ! \absfshift !-90: (pgfcirc@Fto@flat)$)
+ coordinate (pgfcirc@Fto@up) at ($(pgfcirc@Fto@flat) ! \absfshift !90: (pgfcirc@Ffrom@flat)$)
+ \else
+ coordinate (pgfcirc@Ffrom@up) at ($(pgfcirc@Ffrom@flat) ! \absfshift !90: (pgfcirc@Fto@flat)$)
+ coordinate (pgfcirc@Fto@up) at ($(pgfcirc@Fto@flat) ! \absfshift !-90: (pgfcirc@Ffrom@flat)$)
+ \fi
+ coordinate (\pgfcirc@a@prefix-Fpos) at ($(pgfcirc@Ffrom@up) ! \ctikzvalof{flow/distance} !(pgfcirc@Fto@up)$)
+ \pgfextra{
+ \absfshift=0.25\pgf@circ@Rlen% This is half size of the "flowarrow" shape!
+ }
+ coordinate (\pgfcirc@a@prefix-Ffrom) at ($(\pgfcirc@a@prefix-Fpos)!\absfshift!(pgfcirc@Ffrom@up)$)
+ coordinate (\pgfcirc@a@prefix-Fto) at ($(\pgfcirc@a@prefix-Fpos)!\absfshift!(pgfcirc@Fto@up) $)
+ %
+ % coordinate (\pgfcirc@a@prefix-Fpos) at
+ % ([yshift=\flow@offset]$(\pgfcirc@a@prefix-Ffrom)! \ctikzvalof{flow/distance} !(\pgfcirc@a@prefix-Fto)$)
+ % export the flow direction
+ \pgfextra{\expandafter\xdef\csname pgfcirc@\pgfcirc@a@prefix-Farrow-direction\endcsname{\pgf@circ@rounded@dir}}
+ % if the flow label is not empty (in which case we have already all the anchors)
+ \pgf@circ@ifkeyempty{bipole/flow/label/name}\else
+ % the flow arrow is really a node "flowarrow", not a real arrow
+ \ifpgfcirc@do@f@symbols
+ node[flowarrow, rotate=\pgf@circ@rounded@dir, anchor=center](Farrowpos) at (\pgfcirc@a@prefix-Fpos) {}
+ \else
+ node[flowarrow, rotate=\pgf@circ@rounded@dir, anchor=center,
+ circuitikz/phantom@flowarrow](Farrowpos) at (\pgfcirc@a@prefix-Fpos) {}
+ \fi
+ node[anchor=\pgf@circ@dir, \circuitikzbasekey/bipole flow style]
+ (\ctikzvalof{bipole/name}flow) at (Farrowpos.\pgf@circ@bipole@flow@label@where) {\pgf@circ@finallabels{flow/label}}
+ \fi
+ % adjust from and to before exporting --- it's much more simple like this then rework the algorithm above
+ \ifpgf@circuit@bipole@flow@backward
+ \pgfcirc@swap@coordinates{\pgfcirc@a@prefix-Ffrom}{\pgfcirc@a@prefix-Fto}
+ \fi
+
+}
+
+%%%---------- close: tex/pgfcircflow
+
+% defaults
+
+\setupmodule
+ [current=european,
+ voltage=european,
+ resistor=american,
+ inductor=cute,
+ logic=american,
+ siunitx=true,
+ arrowmos=false]
+
+\processaction
+ [\currentmoduleparameter{voltage}]
+ [european=>\ctikzset{voltage=european},
+ american=>\ctikzset{voltage=american}]
+
+\processaction
+ [\currentmoduleparameter{current}]
+ [european=>\ctikzset{ current=european},
+ american=>\ctikzset{ current=american}]
+
+\processaction
+ [\currentmoduleparameter{label}]
+ [straight=>\ctikzset{label/align = straight},
+ align=>\ctikzset{label/align = rotate},
+ smart=>\ctikzset{label/align = smart}]
+
+\processaction
+ [\currentmoduleparameter{resistor}]
+ [european=>\ctikzset{ resistor=european},
+ american=>\ctikzset{ resistor=american}]
+
+\processaction
+ [\currentmoduleparameter{inductor}]
+ [european=>\ctikzset{ inductor=european},
+ american=>\ctikzset{ inductor=american},
+ cute=>\ctikzset{ inductor=cute}]
+
+\processaction
+ [\currentmoduleparameter{diode}]
+ [full=>\ctikzset{ diode=full},
+ empty=>\ctikzset{ diode=empty}]
+
+\processaction
+ [\currentmoduleparameter{logic}]
+ [european=>\ctikzset{ logic ports=european},
+ american=>\ctikzset{ logic ports=american}]
+
+\processaction
+ [\currentmoduleparameter{siunitx}]
+ [true=>\def\SI#1#2{#1\,#2}
+ \def\ampere{\rm{A}}
+ \def\volt{\rm{V}}
+ \def\ohm{\Omega}
+ \def\siemens{\rm{S}}
+ \def\farad{\rm{F}}
+ \def\henry{\rm{H}}
+ \def\second{\rm{s}}
+ \def\coulomb{\rm{C}}
+ \def\siemens{\rm{S}}
+ \def\radians{\rm{rad}}
+ \def\milli{\rm{m}}
+ \def\micro{\mu}
+ \def\nano{\rm{n}}
+ \def\pico{\rm{p}}
+ \def\kilo{\rm{k}}
+ \def\mega{\rm{M}}
+ \def\giga{\rm{G}}
+ \def\tera{\rm{T}},
+ false=>]
+% \s!default=>\pgf@circ@siunitxtrue,
+
+\processaction
+ [\currentmoduleparameter{arrowmos}]
+ [true=>\pgf@circuit@mos@arrowstrue,
+ false=>\pgf@circuit@mos@arrowsfalse]
+% \s!default=>\pgf@circuit@mos@arrowstrue,
+
+
+\ifpgf@circ@siunitx
+ % nothing! siunitx and xstrings don't work in context
+\fi
+
+
+% Context specific
+
+\ctikzset{tripoles/op amp/font/.initial=\switchtobodyfont[small]}
+
+
+\catcode`\@=\tikzatcode
+\catcode`\|=\tikzbarcode
+\catcode`\!=\tikzexclaimcode
+
+% define the environment
+\long\def\startcircuitikz#1\stopcircuitikz{\starttikzpicture#1\stoptikzpicture}
+
+\protect
+
+\stopmodule
+
+\endinput
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
index 12733bdd1c..00010903bf 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
@@ -1,7 +1,7 @@
-% Copyright 2018-2021 by Romano Giannetti
-% Copyright 2015-2021 by Stefan Lindner
-% Copyright 2013-2021 by Stefan Erhardt
-% Copyright 2007-2021 by Massimo Redaelli
+% Copyright 2018-2022 by Romano Giannetti
+% Copyright 2015-2022 by Stefan Lindner
+% Copyright 2013-2022 by Stefan Erhardt
+% Copyright 2007-2022 by Massimo Redaelli
%
% This file may be distributed and/or modified
%
@@ -10,8 +10,8 @@
%
% See the files gpl-3.0_license.txt and lppl-1-3c_license.txt for more details.
-\def\pgfcircversion{1.4.5}
-\def\pgfcircversiondate{2021/12/06}
+\def\pgfcircversion{1.4.6}
+\def\pgfcircversiondate{2022/02/04}
\writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
\usemodule[tikz]
diff --git a/graphics/pgf/contrib/sankey/sankey.dtx b/graphics/pgf/contrib/sankey/sankey.dtx
index 451472c5b2..0338d1f761 100644
--- a/graphics/pgf/contrib/sankey/sankey.dtx
+++ b/graphics/pgf/contrib/sankey/sankey.dtx
@@ -70,7 +70,7 @@
% \DoNotIndex{\NewDocumentCommand,\NewDocumentEnvironment,\IfBooleanTF}
% \DoNotIndex{\NeedsTeXFormat,\ProvidesPackage,\RequirePackage,\PackageError,\PackageWarning}
% \DoNotIndex{\newtoggle,\toggletrue,\togglefalse,\iftoggle,\ifdefempty,\ifundef,\ifdefstrequal}
-% \DoNotIndex{\ifbool,\ifdef,\ifnumequal,\ifpgfmathcond,\colorlet,\fpeval,\inteval,\newbool}
+% \DoNotIndex{\ifbool,\ifdef,\ifnumequal,\colorlet,\fpeval,\inteval,\newbool}
% \DoNotIndex{\pgfmathsetmacro,\pgfdeclarelayer,\pgfdeclareshape,\pgfkeys,\pgfset,\usetikzlibrary}
% \DoNotIndex{\the,\pgf@x,\pgf@y,\tikz@scan@one@point,\pgfutil@firstofone}
% \DoNotIndex{\pgfsetlayers,\inheritsavedanchors,\inheritanchor,\inheritanchorborder,\anchor,\pgf@process,\northeast,\southwest}
@@ -316,10 +316,10 @@
% path} and its \VAR{draw path}.
% \end{sankeyoption}
%
-% \emph{Fill} and \emph{draw} paths are build in a TikZ scope where the
-% origin is the center of the current Sankey node (its name is accessible
-% via \code{\name}) and the coordinate system is rotated by its
-% orientation.
+% The \VAR{fill path} and the \VAR{draw path} are build in a TikZ scope
+% where the origin is the center of the current Sankey node (its name is
+% accessible via \code{\name}) and the coordinate system is rotated by
+% its orientation.
%
%^^A % ------------------------------------------------------------
% \subsection{The \emph{debug} key}
@@ -1598,7 +1598,7 @@
round-mode=places,
round-precision=1,
add-decimal-zero,
- round-integer-to-decimal,
+ round-pad=true,
}
\begin{sankeydiagram}
\colorlet{energy}{blue!30!cyan!80!black}
@@ -2575,7 +2575,7 @@
%
% \manualparts
%
-% \part{Implementation}
+% \part{Installation \& Implementation}
% \label{implementation}
%^^A % ------------------------------------------------------------
%
@@ -2584,6 +2584,39 @@
% \localtableofcontents
% }
%
+%
+% \changes{v3.0.1}{2022/02/04}{fix options used by the new version of siunitx}
+%
+%^^A % ------------------------------------------------------------
+% \section{Compiling \texttt{sankey}}
+%^^A % ------------------------------------------------------------
+%
+% \changes{v3.0.1}{2022/02/04}{instructions for compiling and installing the
+% package}
+%
+% To produce the \code{sankey} package:
+%
+% \begin{lstlisting}[style=bashsmall]
+% pdflatex sankey.ins # or 'latex sankey.ins'
+% \end{lstlisting}
+%
+% To finish the installation you have to move the
+% \code{tikzlibrarydubins.code.tex} and
+% \code{sankey.sty} files into a directory searched by \LaTeX.
+%
+% To compile the \code{sankey} documentation (the
+% \code{sankey.pdf} file):
+%
+% \begin{lstlisting}[style=bashsmall]
+% pdflatex sankey.dtx
+% makeindex -s gind.ist -o sankey.ind sankey.idx
+% pdflatex sankey.dtx
+% makeindex -s gind.ist -o sankey.ind sankey.idx
+% pdflatex sankey.dtx
+% pdflatex sankey.dtx
+% \end{lstlisting}
+%
+%
%^^A % ------------------------------------------------------------
% \section{The \texttt{sankey.sty} file}
%^^A % ------------------------------------------------------------
@@ -2591,7 +2624,7 @@
% Poorly commented source code...
%
% \changes{v1.0}{2016/03/06}{first version}
-% \changes{v2.0}{2021/01/27}{first public version (on CTAN)}
+% \changes{v2.0}{2021/01/27}{first public version (on \CTAN)}
% \changes{v3.0}{2021/03/14}{better naming rule}
% \changes{v3.0}{2021/03/14}{use .ins and .dtx files}
%
@@ -2603,7 +2636,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[2015/10/01]
-\ProvidesPackage{sankey}[2021/03/14 v3.0 to draw Sankey diagrams]
+\ProvidesPackage{sankey}[2022/02/04 v3.0.1 to draw Sankey diagrams]
% \end{macrocode}
%
% All required packages and TikZ libraries:
@@ -2806,7 +2839,7 @@
%
% The \code{\sankeyset} macro processes
% its parameter as a list of comma separated pairs of the form
-% \emph{key=value} with the default path set to \texttt{/sankey}.
+% \emph{key=value} with \texttt{/sankey} as default path.
%
% \begin{macrocode}
\pgfkeys{/sankey/.is family}
@@ -3977,7 +4010,7 @@
%
% The \code{\sankeyqtytolen} macro converts quantity
% to length using \code{\fpeval} and the ratio determined
-% by \code{\snk@totalqty} and \code{sankeytotallen}.
+% by \code{\snk@totalqty} and \code{\snk@totallen}.
%
% \begin{macrocode}
\def\sankeyqtytolen##1{\fpeval{(##1)/\snk@totalqty*\snk@totallen}}
@@ -4072,34 +4105,54 @@
% \iffalse
%<*tikzlibrarydubins.code.tex>
% \fi
+% \begin{macro}{\tikzlibrarydubins@version}
+% \begin{macro}{\tikzlibrarydubins@date}
+% \begin{macrocode}
+\def\tikzlibrarydubins@version{v3.0.1}
+\def\tikzlibrarydubins@date{2022/02/04}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macrocode}
-\def\tikzlibrarydubins@version{v3.0}
-\def\tikzlibrarydubins@date{2021/03/14}
-
\usetikzlibrary{calc}
\RequirePackage{etoolbox}
\RequirePackage{xfp}
\newbool{dubinspathreverse}
-
+% \end{macrocode}
+%
+% \begin{macro}{\ifpgfmathcond}
+% \begin{macrocode}
\def\ifpgfmathcond#1{%
\pgfmathparse{(#1)?1:0}%
\ifnumequal{\pgfmathresult}{1}%
}
-
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@getxy}
+% \begin{macrocode}
\def\dbp@getxy#1#2#3{%
\tikz@scan@one@point\pgfutil@firstofone(#3)\relax%
\edef#1{\the\pgf@x}%
\edef#2{\the\pgf@y}%
}
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@anglebetween}
+% \begin{macrocode}
\def\dbp@anglebetween#1#2#3{%macro, s, t
\dbp@getxy\dbp@ax\dbp@ay{#2}
\dbp@getxy\dbp@bx\dbp@by{#3}
\pgfmathsetmacro#1{atan2(\dbp@by-\dbp@ay,\dbp@bx-\dbp@ax)}
}
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@distancebetween}
+% \begin{macrocode}
\def\dbp@distancebetween#1#2#3{%macro, s, t
\dbp@getxy\dbp@ax\dbp@ay{#2}
\dbp@getxy\dbp@bx\dbp@by{#3}
@@ -4108,7 +4161,10 @@
+(\dbp@by-\dbp@ay)*(\dbp@by-\dbp@ay)%
)}}%
}
-
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dbp@rsr}
+% \begin{macrocode}
\newcommand\dbp@rsr{% s, sa, t, ta, as, len, at, r
let
\p{tr}=([shift={(\dbp@angb-90:\dbp@radius pt)}]\dbp@b),
@@ -4120,7 +4176,11 @@
-- ([shift={(\p{tr})}]\n3:\dbp@rradius pt)
arc(\n3:\n2:\dbp@rradius pt)
}
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@lsl}
+% \begin{macrocode}
\newcommand\dbp@lsl{% s, sa, t, ta, as, len, at, r
let
\p{tl}=([shift={(\dbp@angb+90:\dbp@radius pt)}]\dbp@b),
@@ -4131,7 +4191,11 @@
-- ([shift={(\p{tl})}]\n4:\dbp@lradius pt)
arc(\n4:\n3:\dbp@lradius pt)
}
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@rsl}
+% \begin{macrocode}
\newcommand\dbp@rsl{% s, sa, t, ta, as, len, at, r
let
\p{tl}=([shift={(\dbp@angb+90:\dbp@radius pt)}]\dbp@b),
@@ -4142,7 +4206,11 @@
-- ([shift={(\p{tl})}]\n4:\dbp@lradius pt)
arc(\n4:\n3:\dbp@lradius pt)
}
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@lsr}
+% \begin{macrocode}
\newcommand\dbp@lsr{% s, sa, t, ta, as, len, at, r
let
\p{tr}=([shift={(\dbp@angb-90:\dbp@radius pt)}]\dbp@b),
@@ -4153,7 +4221,11 @@
-- ([shift={(\p{tr})}]\n4:\dbp@rradius pt)
arc(\n4:\n3:\dbp@rradius pt)
}
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@lrl}
+% \begin{macrocode}
\newcommand\dbp@lrl{% s, sa, t, ta, as, ai, at, r
let
\n1={\dbp@anga-90},\n2={\n1+\dbp@firstangle},
@@ -4163,7 +4235,11 @@
arc(\n2+180:\n2+180-\dbp@midparam:\dbp@rradius pt)
arc(\n4:\n3:\dbp@lradius pt)
}
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@rlr}
+% \begin{macrocode}
\newcommand\dbp@rlr{% s, sa, t, ta, as, ai, at, r
let
\n1={\dbp@anga+90},\n2={\n1-\dbp@firstangle},
@@ -4173,14 +4249,47 @@
arc(\n2+180:\n2+180+\dbp@midparam:\dbp@lradius pt)
arc(\n4:\n3:\dbp@rradius pt)
}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@rev@lsl}
+% \begin{macrocode}
\newcommand\dbp@rev@lsl{\dbp@rsr}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@rev@rsr}
+% \begin{macrocode}
\newcommand\dbp@rev@rsr{\dbp@lsl}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@rev@lsr}
+% \begin{macrocode}
\newcommand\dbp@rev@lsr{\dbp@lsr}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@rev@rsl}
+% \begin{macrocode}
\newcommand\dbp@rev@rsl{\dbp@rsl}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@rev@lrl}
+% \begin{macrocode}
\newcommand\dbp@rev@lrl{\dbp@rlr}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@rev@rlr}
+% \begin{macrocode}
\newcommand\dbp@rev@rlr{\dbp@lrl}
-
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dubinspath}
+% \begin{macrocode}
\newcommand\dubinspath[1]{%
\pgfextra{
\dubinspathset{#1}
@@ -4208,10 +4317,12 @@
}
\csname dbp@\dbp@method\endcsname%
}
-
-
-%% solution
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbp@store}
+% \begin{macro}{\dbp@get}
+% \begin{macrocode}
\def\dbp@store#1#2{%
\expandafter\xdef\csname dbp@store@#1@#2\endcsname%
{\csname dbp@#2\endcsname}%
@@ -4219,7 +4330,11 @@
\def\dbp@get#1#2{%
\csname dbp@store@#1@#2\endcsname%
}
-
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\dbp@setparams}
+% \begin{macrocode}
\def\dbp@setparams#1#2#3#4#5{%
% method, length, fisrt angle, middle param, last angle
\edef\dbp@method{#1}
@@ -4233,13 +4348,19 @@
}
}{}
}
-
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\dbp@updateparams}
+% \begin{macrocode}
\def\dbp@updateparams#1#2#3#4#5{
\ifpgfmathcond{#2<\dbp@length}{
\dbp@setparams{#1}{#2}{#3}{#4}{#5}
}{}
}
-
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
\tikzset{
dubins path/.is family,
dubins path,
@@ -4270,9 +4391,17 @@
middle param/.store in=\dbp@midparam,
reverse/.is if=dubinspathreverse,
}
-
+% \end{macrocode}
+%
+% \begin{macro}{\dubinspathset}
+% \begin{macrocode}
\newcommand\dubinspathset[1]{\tikzset{dubins path,#1}}
-
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\dubinspathcalc}
+% \begin{macrocode}
\newcommand\dubinspathcalc[1]{%
\begingroup
\dubinspathset{#1}
@@ -4428,6 +4557,7 @@
\endgroup
}
% \end{macrocode}
+% \end{macro}
% \iffalse
%</tikzlibrarydubins.code.tex>
% \fi
@@ -4441,7 +4571,7 @@
%
% \iffalse
%<*sankeydocpreamble>
-\usepackage[paper=a4paper,vmargin=1.5cm,left=4.5cm,right=3.5cm]{geometry}
+\usepackage[paper=a4paper,vmargin=1.5cm,left=4.5cm,right=3.5cm,marginparwidth=3.5cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{cmap}
\usepackage[T1]{fontenc}
@@ -4449,6 +4579,7 @@
\usepackage[final,protrusion=true,expansion=true]{microtype}
\usepackage{xcolor}
\PassOptionsToPackage{final,colorlinks,linkcolor=red!60!orange!85!black}{hyperref}
+\usepackage{dtxdescribe}
\usepackage[numbered]{hypdoc}
\usepackage{fancyvrb}
\usepackage[final]{listings}
@@ -4467,7 +4598,7 @@
\embedfile[mimetype=text/plain]{sankey.ins}
\usepackage{sankey}
-\colorlet{bgcode}{yellow!50!gray!5}
+\colorlet{bgcode}{yellow!50!gray!10}
\colorlet{keyword}{blue!50!cyan!50!black}
\colorlet{comment}{red!75!black}
@@ -4524,6 +4655,14 @@
\lstdefinestyle{textscriptsize}{basicstyle=\color{black}\scriptsize\mdseries\ttfamily}
\lstdefinestyle{texttiny}{basicstyle=\color{black}\tiny\mdseries\ttfamily}
+\lstdefinestyle{bash}{
+ language=bash,
+ backgroundcolor=\color{gray!10},
+}
+\lstdefinestyle{bashsmall}{style=bash,style=textsmall}
+\lstdefinestyle{bashfootnotesize}{style=bash,style=footnotesize}
+\lstdefinestyle{bashscriptsize}{style=bash,style=scriptsize}
+
\lstdefinestyle{LaTeX}{
language=[LaTeX]TeX,
moretexcs={
@@ -4595,6 +4734,7 @@
\begingroup
%
\def\keypath{#1}%
+ \ifdefempty{\keypath}{\def\keypath{\sankeykeysprefix}}{}%
\def\key{#2}%
\def\val{#3}%
\def\default{#4}%
@@ -4603,9 +4743,10 @@
% \vspace{.25\baselineskip plus .25\baselineskip minus 0mm}
\parfillskip 0pt plus 1fil%
\leavevmode%
+ \DescribeKey{\key}%
\ttfamily%
- \hspace*{-1cm}%
- \textcolor{red!75!black}{\texttt{\docprefix{\ifdefempty{\keypath}{\sankeykeysprefix/}{\keypath/}}\key}}%
+ %\hspace*{-1cm}%
+ \textcolor{red!75!black}{\texttt{\docprefix{\keypath/}\key}}%
\ifdefempty{\val}{}{=\val}%
\hfill%
\ifdefempty{\default}{\null}{(default:\,\constant{\default})}%
@@ -4619,7 +4760,7 @@
\enditemize%
}
-\newcommand\MACRO{\hspace*{-1cm}}
+\newcommand\MACRO{\hspace*{0cm}}
\newlist{sankeyconstantsdesc}{description}{1}
\setlist[sankeyconstantsdesc]{align=right,labelindent=1.5em,labelsep=.5em,leftmargin=!,font=\normalfont}
@@ -4664,9 +4805,40 @@
\fontencoding\encodingdefault
\fontfamily\ttdefault
\fontseries\mddefault
- \fontshape\shapedefault
- \footnotesize%
+ \fontshape\updefault
+ \footnotesize
+}
+
+\renewcommand*{\DescribeMacro}[2][]{%
+ \@bsphack%
+ \@ifundefined{@captype}{% not float?
+ \leavevmode%
+ \marginpar{%
+ \hbadness=10000%
+ \hfuzz=5em%
+ \raggedleft%
+ \ifblank{#1}{}{{\scriptsize\textsf{[#1]}} }% class
+ \MacroFont\cmd{#2}% name
+ }% marginpar
+ }{}% not float?
+ \begingroup%
+ \DTXD@origwrindex{%
+ \DTXD@macroname{#2}\actualchar\DTXD@verbatimcmd{#2}% name
+ \ifblank{#1}{}{\levelchar[#1]}% class
+ \encapchar usage}%
+ \ifblank{#1}%
+ {}% no class
+ {% class given
+ \begingroup%
+ \DTXD@origwrindex{%
+ #1\actualchar[#1]:\levelchar%
+ \DTXD@macroname{#2}\actualchar\DTXD@verbatimcmd{#2}%
+ \encapchar usage}%
+ }% class given
+ \@esphack%
+ \ignorespaces%
}
+
%</sankeydocpreamble>
% \fi
\endinput
diff --git a/graphics/pgf/contrib/sankey/sankey.pdf b/graphics/pgf/contrib/sankey/sankey.pdf
index f1b0fbf2df..97bf902ff4 100644
--- a/graphics/pgf/contrib/sankey/sankey.pdf
+++ b/graphics/pgf/contrib/sankey/sankey.pdf
Binary files differ
diff --git a/macros/latex/contrib/animate/ChangeLog b/macros/latex/contrib/animate/ChangeLog
index b43af114e4..e2ef9c8a9e 100644
--- a/macros/latex/contrib/animate/ChangeLog
+++ b/macros/latex/contrib/animate/ChangeLog
@@ -1,3 +1,6 @@
+2022-02-04
+ * fix: ocg method: moving back to /OC method (instead of BDC/EMC)
+
2022-01-31
* improvement: optimizing XObject nesting for smaller output files
diff --git a/macros/latex/contrib/animate/animate.pdf b/macros/latex/contrib/animate/animate.pdf
index 7fe63d0830..1046dfa24c 100644
--- a/macros/latex/contrib/animate/animate.pdf
+++ b/macros/latex/contrib/animate/animate.pdf
Binary files differ
diff --git a/macros/latex/contrib/animate/animate.sty b/macros/latex/contrib/animate/animate.sty
index 9a4fed2374..c18e4f3657 100644
--- a/macros/latex/contrib/animate/animate.sty
+++ b/macros/latex/contrib/animate/animate.sty
@@ -13,7 +13,7 @@
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\def\@anim@version{2022/01/31}
+\def\@anim@version{2022/02/04}
\ProvidesPackage{animate}
[\@anim@version\space PDF & SVG animations from files and inline graphics]
@@ -411,12 +411,7 @@
\ifdim\@anim@curdp=\@anim@animdepth\else\def\@anim@needresize{1}\fi%
% resize content to final dimensions, if necessary
\ifnum\@anim@needresize>\z@\relax%
- \setbox#3=\hbox{%
- \raisebox{-\@anim@animdepth}{%
- \resizebox*{\@anim@animwidth}{%
- \@anim@animtotalheight}{\raisebox{\depth}{\box#3}}%
- }%
- }%
+ \setbox#3=\hbox{\resizebox{\@anim@animwidth}{\@anim@animheight}{\box#3}}%
\fi%
\ifthenelse{\equal{#4}{newfile}\OR\equal{#4}{inline}}{%
\@anim@xform{1}{1}{}{}{#3}%
@@ -488,6 +483,11 @@
\if@anim@export%
\setboolean{@anim@singleref}{false}\def\@anim@framexform{}%
\fi%
+ % ... also, for method=ocg, we prefer packing content in an xform, as it allows
+ % higher frame rates
+ \ifnum\@anim@method=\tw@\if@anim@dvisvgm\else%
+ \setboolean{@anim@singleref}{false}\def\@anim@framexform{}%
+ \fi\fi%
\if@anim@singleref\else%
% put frame content in a box if necessary
\setbox\@anim@box=\hbox to \@anim@animwidth{%
@@ -501,13 +501,12 @@
\setbox\@anim@box=\hbox{\rotatebox{90}{\box\@anim@box}}%
\fi%
\fi%
- % convert it to an xform
- \if@anim@export\else%
+ \fi%
+ \ifcase\@anim@method% icon based
+ \if@anim@singleref\else%
\@anim@xform{0}{1}{}{}{\@anim@box}%
\let\@anim@framexform\@anim@lastxform%
\fi%
- \fi%
- \ifcase\@anim@method% icon based
%initial visibility
\ifnum\@anim@poster>\@anim@mtwo\relax% insert poster frame
\ifnum#2=\@anim@poster\relax%
@@ -547,6 +546,10 @@
\fi%
\fi%
%frame insertion
+ \if@anim@singleref\else%
+ \@anim@xform{0}{1}{}{}{\@anim@box}%
+ \let\@anim@framexform\@anim@lastxform%
+ \fi%
\@anim@widget{\@anim@animwidth}{\@anim@animheight}{\@anim@animdepth}{%
/Subtype/Widget%
\@anim@annotflag%
@@ -579,9 +582,21 @@
\fi%
\fi%
%frame insertion
- \ocgbase@oc@bdc{\@anim@curocg}%
- \@anim@refxform{\@anim@framexform}%
- \ocgbase@oc@emc%
+ \if@anim@dvisvgm%
+ \if@anim@singleref\else%
+ \@anim@xform{0}{1}{}{}{\@anim@box}%
+ \let\@anim@framexform\@anim@lastxform%
+ \fi%
+ % `marked content' method for dvisvgm
+ \ocgbase@oc@bdc{\@anim@curocg}%
+ \@anim@refxform{\@anim@framexform}%
+ \ocgbase@oc@emc%
+ \else%
+ % /OC method for PDF output, higher frame rates than
+ % with marked content (BDC/EMC)
+ \@anim@xform{0}{1}{}{/OC \@anim@curocg}{\@anim@box}%
+ \@anim@refxform{\@anim@lastxform}%
+ \fi%
\fi%
\fi%
}
diff --git a/macros/latex/contrib/crefthe/README.md b/macros/latex/contrib/crefthe/README.md
index e8460c7ae9..db578d078f 100644
--- a/macros/latex/contrib/crefthe/README.md
+++ b/macros/latex/contrib/crefthe/README.md
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2021 by Jinwen XU -->
+<!-- Copyright (C) 2021-2022 by Jinwen XU -->
# crefthe - cross referencing with proper definite articles
@@ -28,20 +28,25 @@ which is wrong, as the correct result should be:
## The solution
Thus, it would be better to have a new command `\crefthe[<prep>]{<labels>}`, and to use it like
-```
+```latex
\crefthe[de]{thm1,thm2,prop3}
```
in order to get "*des théorèmes 1 et 2 et de la proposition 3*".
# Usage
-Just load the package with
+Simply load the package with:
```latex
\usepackage{crefthe}
```
> "crefthe" uses "cleveref" internally, thus it should usually be placed at the last of your preamble.
-And then you can use the command `\crefthe` as follows:
+Before everything, you need to define the names, which can be done with `\crefthename`. Its syntax is similar to `\crefname`, but now you can specify the definite articles, for example:
+```latex
+\crefthename{theorem}[le]{théorème}[les]{théorèmes}
+```
+
+Then you can use the command `\crefthe` as follows:
- `\crefthe[<prep>]{<labels>}`
- This will pass the preposition `<prep>` to the definite articles that follows. Its behavior depends on the current language (for example, in Spanish, `<prep>` is passed only to the first definite article, while in French it is passed to everyone).
- `\crefthe-[<prep>]{<labels>}` and `\crefthe+[<prep>]{<labels>}`
@@ -49,11 +54,7 @@ And then you can use the command `\crefthe` as follows:
> There is also a stared version `\crefthe*` for generating the same text but without hyperlinks.
-However, before using it, you should first define the `\crefname`s carefully. The definite article in `\crefname`s needs to be marked manually using `\crefthemark`, for example:
-```latex
-\crefname{theorem}{\crefthemark{le} théorème}{\crefthemark{les} théorèmes}
-```
-
+*For more information, please refer to its documentation.*
# License
diff --git a/macros/latex/contrib/crefthe/crefthe-doc.pdf b/macros/latex/contrib/crefthe/crefthe-doc.pdf
index 10ac58da25..7175c64abc 100644
--- a/macros/latex/contrib/crefthe/crefthe-doc.pdf
+++ b/macros/latex/contrib/crefthe/crefthe-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/crefthe/crefthe-doc.tex b/macros/latex/contrib/crefthe/crefthe-doc.tex
index 736f44876b..39d53e76b0 100644
--- a/macros/latex/contrib/crefthe/crefthe-doc.tex
+++ b/macros/latex/contrib/crefthe/crefthe-doc.tex
@@ -89,8 +89,8 @@
\title{\crefthepackage{} - cross referencing with proper definite articles}
\author{Jinwen XU}
-\thanks{Corresponding to: \texttt{\crefthepackage{} 2022/01/29}}
-\date{January 2022, in Paris}
+\thanks{Corresponding to: \texttt{\crefthepackage{} 2022/02/04}}
+\date{February 2022, in Paris}
\maketitle
@@ -226,15 +226,17 @@ Of course you will have to define the \lstinline|\Crefthename|s separately, for
\crefthepackage{} loads \textsf{cleveref} automatically and pass all the options to it. All its commands, used without optional arguments, degenerate to those in \textsf{cleveref}. For example, \lstinline|\crefthe{...}| is the same as \lstinline|\cref{...}|, and \lstinline|\crefthename| is the same as \lstinline|\crefname| if the definite articles are not specified. That said, you can safely use the command \lstinline|\crefthe| everywhere in your document without causing extra trouble.
+With the option \texttt{overwrite}, user commands in \textsf{cleveref} will be replaced by those offered here, thus you can simply write \lstinline|\cref| for \lstinline|\crefthe| -- and similarly for \lstinline|\Cref|, \lstinline|\crefname| and \lstinline|\Crefname|.
+
\section{For multi-language documents}
-To place hyperlinks at the right place, \lstinline|\crefthename| touches the corresponding \lstinline|\crefformat| internally, which makes it language-dependent. If you are writing multi-language documents, you may like to consider putting \lstinline|\crefthename| inside your language configuration so as to reset it each time you select a new language.
+To place hyperlinks at the right place, \lstinline|\crefthename| touches the corresponding \lstinline|\crefformat| internally, which makes the format language-dependent. If you are writing multi-language documents, you may consider putting \lstinline|\crefthename| inside your language configuration so as to reset it each time you select a new language.
\section{Known issues}
\begin{itemize}
- \item \crefthepackage{} currently only works for French, Italian, Portuguese (European and Brazilian) and Spanish, certainly more would be added to this list.
- \item The current mechanism does not work for German. However, the author has planed to adopt a more refined approach in later versions in order to support the various situations in German.
- \item For now, the automatic case changing mechanism only works properly under Unicode based engines. If you are using pdf\LaTeX{} or typing accented letters with text commands, \lstinline|\Crefthe| will not work as expected.
+ \item \crefthepackage{} currently works for French, Italian, Portuguese (European and Brazilian) and Spanish, certainly more would be added to this list.
+ \item The current mechanism does not work for German. The author plans to adopt a more refined approach in later versions in order to support the various situations in German.
+ \item For now, the automatic case changing mechanism only works properly under Unicode based engines. If you are using pdf\LaTeX{} or typing accented letters with text commands, \lstinline|\Crefthe| may not work as expected.
% \item In case that the initial letter of \meta{prep} is capitalized, \crefthepackage{} cannot yet handle the case changes automatically. However, this should be a rare occurrence.
\item The names of theorem-like environments are not provided --- for the moment you need to define them all by yourself. However, users are encouraged to use the \ProjLib{} toolkit, which already handles everything for you.
\end{itemize}
diff --git a/macros/latex/contrib/crefthe/crefthe.sty b/macros/latex/contrib/crefthe/crefthe.sty
index ad752f87b5..2da1714334 100644
--- a/macros/latex/contrib/crefthe/crefthe.sty
+++ b/macros/latex/contrib/crefthe/crefthe.sty
@@ -10,281 +10,327 @@
%% http://www.latex-project.org/lppl.txt
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
\ProvidesExplPackage
{crefthe}
- {2022/01/29}
- {}
+ {2022/02/04} {}
{Cross referencing with proper definite articles}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{cleveref}}
-\ProcessOptions\relax
+
+\keys_define:nn {crefthe}
+ {
+ , overwrite .bool_set:N = \l__crefthe_overwrite_bool
+ , overwrite .initial:n = { false }
+ , unknown .code:n =
+ {
+ \PassOptionsToPackage { \CurrentOption } {cleveref}
+ }
+ }
+\ProcessKeysOptions{crefthe}
+
\RequirePackage{cleveref}
-\tl_gset:Nn \g_crefthe_prepf_tl {}
-\tl_gset:Nn \g_crefthe_prep_tl {}
-\tl_gset:Nn \g_crefthe_sep_tl {}
-\cs_new:Nn \crefthe_case:n {#1}
-\cs_new:Nn \crefthe_nochange:n {#1}
-\cs_new:Nn \crefthe_atbegindocument:n {#1}
+\cs_set_eq:cc {crefthe_cref_original:n} {cref}
+\cs_set_eq:cc {crefthe_Cref_original:n} {Cref}
+\cs_set_eq:cc {crefthe_crefname_original:n} {crefname}
+\cs_set_eq:cc {crefthe_Crefname_original:n} {Crefname}
-\cs_new:Nn \crefthe_set_status_atbegindocument: {
- \cs_if_eq:NNTF \@onlypreamble \@notprerr {
- \cs_gset_eq:NN \crefthe_atbegindocument:n \crefthe_nochange:n
- }{
- \cs_gset_eq:NN \crefthe_atbegindocument:n \AtBeginDocument
- }
-}
+\bool_if:NT \l__crefthe_overwrite_bool
+ {
+ \hook_gput_next_code:nn {package/crefthe/after}
+ {
+ \cs_set_eq:cc {cref} {crefthe}
+ \cs_set_eq:cc {Cref} {Crefthe}
+ \cs_set_eq:cc {crefname} {crefthename}
+ \cs_set_eq:cc {Crefname} {Crefthename}
+ }
+ }
-\NewDocumentCommand{\crefthe}{st-t+O{}m}{
- \IfBooleanTF{ #2 }{
- \tl_gset:Nn \g_crefthe_prepf_tl { #4 }
- }{
- \IfBooleanTF{ #3 }{
- \tl_gset:Nn \g_crefthe_prep_tl { #4 }
- }{
- \str_case_e:nn { \crefthe_prep_mode:nn } {
- { - } { \tl_gset:Nn \g_crefthe_prepf_tl { #4 } }
- { + } { \tl_gset:Nn \g_crefthe_prep_tl { #4 } }
- }
- }
- }
- \IfBooleanTF{ #1 } { \cref*{#5} } { \cref{#5} }
- \tl_gset:Nn \g_crefthe_prep_tl {}
-}
+\tl_new:N \g__crefthe_prep_once_tl
+\tl_new:N \g__crefthe_prep_each_tl
-\NewDocumentCommand{\Crefthe}{st-t+O{}m}{
- \cs_gset_eq:NN \crefthe_case:n \text_titlecase:n
- \IfBooleanTF{ #2 }{
- \tl_gset:Nn \g_crefthe_prepf_tl { #4 }
- }{
- \IfBooleanTF{ #3 }{
- \tl_gset:Nn \g_crefthe_prep_tl { #4 }
- }{
- \str_case_e:nn { \crefthe_prep_mode:nn } {
- { - } { \tl_gset:Nn \g_crefthe_prepf_tl { #4 } }
- { + } { \tl_gset:Nn \g_crefthe_prep_tl { #4 } }
- }
- }
- }
- \IfBooleanTF{ #1 } { \Cref*{#5} } { \Cref{#5} }
- \tl_gset:Nn \g_crefthe_prep_tl {}
-}
+\tl_new:N \l__crefthe_prep_mode_tl
-\NewDocumentCommand{\crefthename}{mO{}mO{}m}{
- \str_if_eq:eeTF {#2} {} {
- \crefname{#1}{#3}{#5}
- \cs_set:cn {cref_#1_format:nnn} {##2#3~##1##3}
- \cs_set:cn {cref_#1_format_first:nnn} {##2#5~##1##3}
- }{
- \crefname{#1}{\crefthemark{#2} \g_crefthe_sep_tl #3}{\crefthemark{#4} \g_crefthe_sep_tl #5}
- \cs_set:cn {cref_#1_format:nnn} {\crefthemark{#2} \g_crefthe_sep_tl ##2#3~##1##3}
- \cs_set:cn {cref_#1_format_first:nnn} {\crefthemark{#4} \g_crefthe_sep_tl ##2#5~##1##3}
- }
- \crefthe_set_status_atbegindocument:
- \crefthe_atbegindocument:n {
- \cs_set_eq:cc {cref@#1@format} {cref_#1_format:nnn}
- \cs_set_eq:cc {cref@#1@format@first} {cref_#1_format_first:nnn}
- }
-}
+\cs_new:Nn \crefthe_case:n { #1 }
+\cs_new:Nn \crefthe_nochange:n { #1 }
-\NewDocumentCommand{\Crefthename}{mO{}mO{}m}{
- \str_if_eq:eeTF {#2} {} {
- \Crefname{#1}{#3}{#5}
- \cs_set:cn {Cref_#1_format:nnn} {##2#3~##1##3}
- \cs_set:cn {Cref_#1_format_first:nnn} {##2#5~##1##3}
- }{
- \Crefname{#1}{\crefthemark{#2} \g_crefthe_sep_tl #3}{\crefthemark{#4} \g_crefthe_sep_tl #5}
- \cs_set:cn {Cref_#1_format:nnn} {\crefthemark{#2} \g_crefthe_sep_tl ##2#3~##1##3}
- \cs_set:cn {Cref_#1_format_first:nnn} {\crefthemark{#4} \g_crefthe_sep_tl ##2#5~##1##3}
- }
- \crefthe_set_status_atbegindocument:
- \crefthe_atbegindocument:n {
- \cs_set_eq:cc {Cref@#1@format} {Cref_#1_format:nnn}
- \cs_set_eq:cc {Cref@#1@format@first} {Cref_#1_format_first:nnn}
- }
-}
+\NewDocumentCommand \crefthe { s t- t+ O{} m }
+ {
+ \bool_if:nTF { #2 }
+ {
+ \tl_gset:Nn \g__crefthe_prep_once_tl { #4 }
+ }
+ {
+ \bool_if:nTF { #3 }
+ {
+ \tl_gset:Nn \g__crefthe_prep_each_tl { #4 }
+ }
+ {
+ \exp_args:Nx \str_case:nn \l__crefthe_prep_mode_tl
+ {
+ { - } { \tl_gset:Nn \g__crefthe_prep_once_tl { #4 } }
+ { + } { \tl_gset:Nn \g__crefthe_prep_each_tl { #4 } }
+ }
+ }
+ }
+ \bool_if:nTF { #1 } { \crefthe_cref_original:n * { #5 } } { \crefthe_cref_original:n { #5 } }
+ \tl_gset:Nn \g__crefthe_prep_each_tl {}
+ }
-\NewDocumentCommand{\crefthemark}{m}{
- \crefthe_contraction:nn { \crefthe_case:n \g_crefthe_prep_tl }{
- \crefthe_contraction:nn { \crefthe_case:n \g_crefthe_prepf_tl }{#1}
- }
- \tl_gset:Nn \g_crefthe_prepf_tl {}
- \tl_gset:Nx \g_crefthe_prep_tl { \text_lowercase:n \g_crefthe_prep_tl }
- \str_case_e:nnF {\str_tail:n {#1}} {
- {'} { \tl_gset:Nn \g_crefthe_sep_tl {} }
- }
- { \tl_gset:Nn \g_crefthe_sep_tl {~} }
- \cs_gset_eq:NN \crefthe_case:n \crefthe_nochange:n
- % \cs_gset_eq:NN \crefthe_case:n \text_lowercase:n
-}
+\NewDocumentCommand \Crefthe { s t- t+ O{} m }
+ {
+ \cs_gset:Npn \crefthe_case:n ##1 { \text_titlecase:n {##1} }
+ \bool_if:nTF { #2 }
+ {
+ \tl_gset:Nn \g__crefthe_prep_once_tl { #4 }
+ }
+ {
+ \bool_if:nTF { #3 }
+ {
+ \tl_gset:Nn \g__crefthe_prep_each_tl { #4 }
+ }
+ {
+ \exp_args:Nx \str_case:nn \l__crefthe_prep_mode_tl
+ {
+ { - } { \tl_gset:Nn \g__crefthe_prep_once_tl { #4 } }
+ { + } { \tl_gset:Nn \g__crefthe_prep_each_tl { #4 } }
+ }
+ }
+ }
+ \bool_if:nTF { #1 } { \crefthe_Cref_original:n * { #5 } } { \crefthe_Cref_original:n { #5 } }
+ \tl_gset:Nn \g__crefthe_prep_each_tl {}
+ }
+
+\NewDocumentCommand \crefthename { m O{} m O{} m }
+ {
+ \tl_if_blank:eTF { #2 }
+ {
+ \crefthe_crefname_original:n { #1 } { #3 } { #5 }
+ \cs_set:cn { cref_#1_format:nnn } { ##2 #3 ~ ##1 ##3 }
+ \cs_set:cn { cref_#1_format_first:nnn } { ##2 #5 ~ ##1 ##3 }
+ }
+ {
+ \crefthe_crefname_original:n { #1 } { \crefthemark{ #2 } #3 } { \crefthemark{ #4 } #5 }
+ \cs_set:cn { cref_#1_format:nnn } { \crefthemark { #2 } ##2 #3 ~ ##1 ##3 }
+ \cs_set:cn { cref_#1_format_first:nnn } { \crefthemark { #4 } ##2 #5 ~ ##1 ##3 }
+ }
+ \hook_gput_next_code:nn { begindocument }
+ {
+ \cs_set_eq:cc { cref@ #1 @format } { cref_#1_format:nnn }
+ \cs_set_eq:cc { cref@ #1 @format@first } { cref_#1_format_first:nnn }
+ }
+ }
-\cs_set:Npn \crefthe_prep_mode:nn {
- \str_case_e:nn { \languagename }
+\NewDocumentCommand \Crefthename { m O{} m O{} m }
+ {
+ \tl_if_blank:eTF { #2 }
+ {
+ \crefthe_Crefname_original:n { #1 } { #3 } { #5 }
+ \cs_set:cn { Cref_#1_format:nnn } { ##2 #3 ~ ##1 ##3 }
+ \cs_set:cn { Cref_#1_format_first:nnn } { ##2 #5 ~ ##1 ##3 }
+ }
+ {
+ \crefthe_Crefname_original:n { #1 } { \crefthemark{ #2 } #3 }{ \crefthemark{ #4 } #5 }
+ \cs_set:cn { Cref_#1_format:nnn } { \crefthemark { #2 } ##2 #3 ~ ##1 ##3 }
+ \cs_set:cn { Cref_#1_format_first:nnn } { \crefthemark { #4 } ##2 #5 ~ ##1 ##3 }
+ }
+ \hook_gput_next_code:nn { begindocument }
+ {
+ \cs_set_eq:cc { Cref@ #1 @format } { Cref_#1_format:nnn }
+ \cs_set_eq:cc { Cref@ #1 @format@first } { Cref_#1_format_first:nnn }
+ }
+ }
+
+\NewDocumentCommand \crefthemark { m }
+ {
+ \crefthe_contraction:nn { \crefthe_case:n \g__crefthe_prep_each_tl }
+ {
+ \crefthe_contraction:nn { \crefthe_case:n \g__crefthe_prep_once_tl } { #1 }
+ }
+ \tl_gset:Nn \g__crefthe_prep_once_tl {}
+ \tl_gset:Nx \g__crefthe_prep_each_tl { \text_lowercase:n \g__crefthe_prep_each_tl }
+ \str_if_eq:eeF { \str_tail:n { #1 } } { ' } { ~ }
+ \cs_gset:Npn \crefthe_case:n ##1 { \crefthe_nochange:n {##1} }
+ % \cs_gset:Npn \crefthe_case:n ##1 { \text_lowercase:n {##1} }
+ }
+
+\tl_set:Nn \l__crefthe_prep_mode_tl {
+ \str_case_e:nn { \languagename }
{
- {french} { + }
- {italian} { + }
- {spanish} { - }
- {portuguese} { + }
- {brazilian} { + }
+ {french} { + }
+ {italian} { + }
+ {spanish} { - }
+ {portuguese} { + }
+ {brazilian} { + }
}
}
-\cs_set:Npn \crefthe_contraction:nn #1#2 {
- \str_if_eq:eeTF {#1} {} {#2} {
- \str_case_e:nn { \languagename }
- {
- {french}{
- \str_case_e:nnF {#1~\text_lowercase:n{#2}} {
- {à~le} {au}
- {à~les} {aux}
- {de~le} {du}
- {de~les} {des}
- {À~le} {Au}
- {À~les} {Aux}
- {De~le} {Du}
- {De~les} {Des}
- }{#1~\text_lowercase:n{#2}}
- }
- {italian}{
- \str_case_e:nnF {#1~\text_lowercase:n{#2}} {
- {a~il} {al}
- {a~lo} {allo}
- {a~l'} {all'}
- {a~la} {alla}
- {di~il} {del}
- {di~lo} {dello}
- {di~l'} {dell'}
- {di~la} {della}
- {da~il} {dal}
- {da~lo} {dallo}
- {da~l'} {dall'}
- {da~la} {dalla}
- {in~il} {nel}
- {in~lo} {nello}
- {in~l'} {nell'}
- {in~la} {nella}
- {su~il} {sul}
- {su~lo} {sullo}
- {su~l'} {sull'}
- {su~la} {sulla}
- {a~i} {ai}
- {a~gli} {agli}
- {a~le} {alle}
- {di~i} {dei}
- {di~gli} {degli}
- {di~le} {delle}
- {da~i} {dai}
- {da~gli} {dagli}
- {da~le} {dalle}
- {in~i} {nei}
- {in~gli} {negli}
- {in~le} {nelle}
- {su~i} {sui}
- {su~gli} {sugli}
- {su~le} {sulle}
- {A~il} {Al}
- {A~lo} {Allo}
- {A~l'} {All'}
- {A~la} {Alla}
- {Di~il} {Del}
- {Di~lo} {Dello}
- {Di~l'} {Dell'}
- {Di~la} {Della}
- {Da~il} {Dal}
- {Da~lo} {Dallo}
- {Da~l'} {Dall'}
- {Da~la} {Dalla}
- {In~il} {Nel}
- {In~lo} {Nello}
- {In~l'} {Nell'}
- {In~la} {Nella}
- {Su~il} {Sul}
- {Su~lo} {Sullo}
- {Su~l'} {Sull'}
- {Su~la} {Sulla}
- {A~i} {Ai}
- {A~gli} {Agli}
- {A~le} {Alle}
- {Di~i} {Dei}
- {Di~gli} {Degli}
- {Di~le} {Delle}
- {Da~i} {Dai}
- {Da~gli} {Dagli}
- {Da~le} {Dalle}
- {In~i} {Nei}
- {In~gli} {Negli}
- {In~le} {Nelle}
- {Su~i} {Sui}
- {Su~gli} {Sugli}
- {Su~le} {Sulle}
- }{#1~\text_lowercase:n{#2}}
- }
- {portuguese}{
- \str_case_e:nnF {#1~\text_lowercase:n{#2}} {
- {a~o} {ao}
- {a~a} {à}
- {a~os} {aos}
- {a~as} {às}
- {de~o} {do}
- {de~a} {da}
- {de~os} {dos}
- {de~as} {das}
- {em~o} {no}
- {em~a} {na}
- {em~os} {nos}
- {em~as} {nas}
- {A~o} {Ao}
- {A~a} {À}
- {A~os} {Aos}
- {A~as} {Às}
- {De~o} {Do}
- {De~a} {Da}
- {De~os} {Dos}
- {De~as} {Das}
- {Em~o} {No}
- {Em~a} {Na}
- {Em~os} {Nos}
- {Em~as} {Nas}
- }{#1~\text_lowercase:n{#2}}
- }
- {brazilian}{
- \str_case_e:nnF {#1~\text_lowercase:n{#2}} {
- {a~o} {ao}
- {a~a} {à}
- {a~os} {aos}
- {a~as} {às}
- {de~o} {do}
- {de~a} {da}
- {de~os} {dos}
- {de~as} {das}
- {em~o} {no}
- {em~a} {na}
- {em~os} {nos}
- {em~as} {nas}
- {A~o} {Ao}
- {A~a} {À}
- {A~os} {Aos}
- {A~as} {Às}
- {De~o} {Do}
- {De~a} {Da}
- {De~os} {Dos}
- {De~as} {Das}
- {Em~o} {No}
- {Em~a} {Na}
- {Em~os} {Nos}
- {Em~as} {Nas}
- }{#1~\text_lowercase:n{#2}}
- }
- {spanish}{
- \str_case_e:nnF {#1~\text_lowercase:n{#2}} {
- {a~el} {al}
- {de~el} {del}
- {A~el} {Al}
- {De~el} {Del}
- }{#1~\text_lowercase:n{#2}}
- }
- }
- }
-}
+\cs_new:Npn \crefthe_contraction:nn #1#2
+ {
+ \tl_if_blank:eTF { #1 }
+ { #2 }
+ {
+ \tl_if_exist:cTF { crefthe_contraction_rule_ \languagename _tl }
+ {
+ \exp_args:Nnx \str_case_e:nnF { #1~\text_lowercase:n{ #2 } }
+ {
+ \tl_use:c { crefthe_contraction_rule_ \languagename _tl }
+ }
+ { #1~\text_lowercase:n{ #2 } }
+ }
+ { #1 ~ #2 }
+ }
+ }
+
+\tl_gset:Nn \crefthe_contraction_rule_french_tl
+ {
+ { à~le } { au }
+ { à~les } { aux }
+ { de~le } { du }
+ { de~les } { des }
+ { À~le } { Au }
+ { À~les } { Aux }
+ { De~le } { Du }
+ { De~les } { Des }
+ }
+
+\tl_gset:Nn \crefthe_contraction_rule_italian_tl
+ {
+ { a~il } { al }
+ { a~lo } { allo }
+ { a~l' } { all' }
+ { a~la } { alla }
+ { di~il } { del }
+ { di~lo } { dello }
+ { di~l' } { dell' }
+ { di~la } { della }
+ { da~il } { dal }
+ { da~lo } { dallo }
+ { da~l' } { dall' }
+ { da~la } { dalla }
+ { in~il } { nel }
+ { in~lo } { nello }
+ { in~l' } { nell' }
+ { in~la } { nella }
+ { su~il } { sul }
+ { su~lo } { sullo }
+ { su~l' } { sull' }
+ { su~la } { sulla }
+ { a~i } { ai }
+ { a~gli } { agli }
+ { a~le } { alle }
+ { di~i } { dei }
+ { di~gli } { degli }
+ { di~le } { delle }
+ { da~i } { dai }
+ { da~gli } { dagli }
+ { da~le } { dalle }
+ { in~i } { nei }
+ { in~gli } { negli }
+ { in~le } { nelle }
+ { su~i } { sui }
+ { su~gli } { sugli }
+ { su~le } { sulle }
+ { A~il } { Al }
+ { A~lo } { Allo }
+ { A~l' } { All' }
+ { A~la } { Alla }
+ { Di~il } { Del }
+ { Di~lo } { Dello }
+ { Di~l' } { Dell' }
+ { Di~la } { Della }
+ { Da~il } { Dal }
+ { Da~lo } { Dallo }
+ { Da~l' } { Dall' }
+ { Da~la } { Dalla }
+ { In~il } { Nel }
+ { In~lo } { Nello }
+ { In~l' } { Nell' }
+ { In~la } { Nella }
+ { Su~il } { Sul }
+ { Su~lo } { Sullo }
+ { Su~l' } { Sull' }
+ { Su~la } { Sulla }
+ { A~i } { Ai }
+ { A~gli } { Agli }
+ { A~le } { Alle }
+ { Di~i } { Dei }
+ { Di~gli } { Degli }
+ { Di~le } { Delle }
+ { Da~i } { Dai }
+ { Da~gli } { Dagli }
+ { Da~le } { Dalle }
+ { In~i } { Nei }
+ { In~gli } { Negli }
+ { In~le } { Nelle }
+ { Su~i } { Sui }
+ { Su~gli } { Sugli }
+ { Su~le } { Sulle }
+ }
+
+\tl_gset:Nn \crefthe_contraction_rule_spanish_tl
+ {
+ { a~el } { al }
+ { de~el } { del }
+ { A~el } { Al }
+ { De~el } { Del }
+ }
+
+\tl_gset:Nn \crefthe_contraction_rule_portuguese_tl
+ {
+ { a~o } { ao }
+ { a~a } { à }
+ { a~os } { aos }
+ { a~as } { às }
+ { de~o } { do }
+ { de~a } { da }
+ { de~os } { dos }
+ { de~as } { das }
+ { em~o } { no }
+ { em~a } { na }
+ { em~os } { nos }
+ { em~as } { nas }
+ { A~o } { Ao }
+ { A~a } { À }
+ { A~os } { Aos }
+ { A~as } { Às }
+ { De~o } { Do }
+ { De~a } { Da }
+ { De~os } { Dos }
+ { De~as } { Das }
+ { Em~o } { No }
+ { Em~a } { Na }
+ { Em~os } { Nos }
+ { Em~as } { Nas }
+ }
+
+\tl_gset:Nn \crefthe_contraction_rule_brazilian_tl
+ {
+ { a~o } { ao }
+ { a~a } { à }
+ { a~os } { aos }
+ { a~as } { às }
+ { de~o } { do }
+ { de~a } { da }
+ { de~os } { dos }
+ { de~as } { das }
+ { em~o } { no }
+ { em~a } { na }
+ { em~os } { nos }
+ { em~as } { nas }
+ { A~o } { Ao }
+ { A~a } { À }
+ { A~os } { Aos }
+ { A~as } { Às }
+ { De~o } { Do }
+ { De~a } { Da }
+ { De~os } { Dos }
+ { De~as } { Das }
+ { Em~o } { No }
+ { Em~a } { Na }
+ { Em~os } { Nos }
+ { Em~as } { Nas }
+ }
+
\endinput
%%
%% End of file `crefthe.sty'.
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index e1040bbc69..577ee50f49 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/02/03}{1.61}
+\ProvidesExplClass{easybook}{2022/02/04}{1.62}
{Typeset Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -305,7 +305,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/02/03}{1.61}
+\ProvidesExplPackage{easybase}{2022/02/04}{1.62}
{Typeset Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -349,6 +349,8 @@
\eb_seq_map_inline:nn {#1}
{ \AtBeginEnvironment{##1}{#2} }
}
+\cs_new_protected:Npn \eb_at_end_preamble:n
+ { \BeforeBeginEnvironment{document} }
\cs_new_protected:Npn \eb_match_load_package:n #1
{
\regex_match:nnTF { \[ } {#1}
@@ -399,8 +401,6 @@
\seq_map_function:NN
\l_tmpb_seq \eb_match_load_package:n
}
-\cs_new_protected:Npn \eb_at_end_preamble:n
- { \BeforeBeginEnvironment{document} }
\cs_gset_eq:NN \PackageWarning \PackageInfo
\msg_redirect_module:nnn { hooks } { warning } { info }
@@ -836,7 +836,7 @@
{ flush }
{
\tl_set:Nn \l__eb_footnote_value_tl { default }
- \clist_push:Nn \l__eb_footnote_mulchoice_clist {#1}
+ \clist_push:Nn \l__eb_footnote_value_clist {#1}
}
}
{
@@ -868,7 +868,7 @@
\bool_new:N \l__eb_fnpara_bottom_bool
\tl_new:N \l__eb_fnmate_format_tl
\tl_new:N \l__eb_fncust_format_tl
-\clist_new:N \l__eb_footnote_mulchoice_clist
+\clist_new:N \l__eb_footnote_value_clist
\ctex_define:nn { hdrset }
{
fnindent .dim_set:N = \footindent,
@@ -992,7 +992,7 @@
\cs_new_protected:Npn \eb_footnote_direct_default:
{
\noindent
- \clist_if_in:NnT \l__eb_footnote_mulchoice_clist { flush }
+ \clist_if_in:NnT \l__eb_footnote_value_clist { flush }
{ \dim_zero:N \footindent }
\int_case:nn { \dim_sign:V \footindent }
{
@@ -2332,7 +2332,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/02/03}{1.61}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/02/04}{1.62}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index a6a70491a3..175389e7c8 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 2ea2f54526..ccfee80c8c 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -21,8 +21,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK 使用手册,
- version = v1.61,
- date = 2022/02/03,
+ version = v1.62,
+ date = 2022/02/04,
authors = 瞿毅,
info = 排版简体中文学位论文和书籍,
email = q1jx@foxmail.com,
diff --git a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
index 25e411bfee..52e0ee69b9 100644
--- a/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
+++ b/macros/latex/contrib/reledmac/doc-more/page-typesetting-columns.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
index 5508c9dee7..0e13a6a783 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalendnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
index bdc6f89546..0ca6fbf7b4 100644
--- a/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-criticalnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
index 6aa81e85f9..dacdb815cc 100644
--- a/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-sidenotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-tabular.pdf b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
index 1bbeb4fd91..24f9234d3a 100644
--- a/macros/latex/contrib/reledmac/examples/1-tabular.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-tabular.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
index 157ac911ed..0dbfd26819 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses-doublenumbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/1-verses.pdf b/macros/latex/contrib/reledmac/examples/1-verses.pdf
index 46243e854b..4714d36aaa 100644
--- a/macros/latex/contrib/reledmac/examples/1-verses.pdf
+++ b/macros/latex/contrib/reledmac/examples/1-verses.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
index 5c8c304cb9..b2f7d9dbd1 100644
--- a/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-antilabe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
index 130232e15e..f7fe778829 100644
--- a/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-cross_referencing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
index f7d4ebcb3a..a8b2878c6a 100644
--- a/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-footnote_spacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
index 0f534f6f3e..4d774ab937 100644
--- a/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-glossaries.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-indexing.pdf b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
index 16762558c7..e6c2e394ad 100644
--- a/macros/latex/contrib/reledmac/examples/2-indexing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-indexing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
index b6a8ec6d75..8910032e30 100644
--- a/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-lemma_disambigution.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
index 545e48c5cd..71b8ef74fa 100644
--- a/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-line_numbers_in_header.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
index 44261f6be4..4e3bb139ff 100644
--- a/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-linespacing.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
index e452cb8bcd..a1cae283ac 100644
--- a/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-manuscript-apparatus.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
index 37dd2e0a30..9c6aac015c 100644
--- a/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-notes-width.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
index e12f08af62..de9737c957 100644
--- a/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-one_series_per_pstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-performances.pdf b/macros/latex/contrib/reledmac/examples/2-performances.pdf
index ffc140c8e4..5e5f81f926 100644
--- a/macros/latex/contrib/reledmac/examples/2-performances.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-performances.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
index 0795c78465..0c5923f736 100644
--- a/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-reledmac-right-to-left.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
index 55a65d9500..6a5768b2c3 100644
--- a/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-subdivision-number-in-header.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
index 5e2874adb8..890775aa8f 100644
--- a/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
index 987a5f6c15..4888687cb7 100644
--- a/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/2-titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
index 5a0f3385cb..77e54cad8e 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_columns_different_languages.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
index a8c277f77d..aeff29034d 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_mwe.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
index bf1a0e6db3..9b784e226f 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_pages_different_languages_lualatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
index ec05bc76de..37a5e0cbfd 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_same_page_number_in_both_side.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
index 9f72177583..8b011435c7 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted-nomax.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
index 5585d7ce33..004d0254ba 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_advancedshifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
index 513c08d554..562dcc24e5 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_default.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
index 57d0b68005..c00cfc3dc3 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax-shifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
index 6c89b00e4c..093826dca2 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nomax.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
index 3e2bff636a..0cc644e116 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_nosync.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
index ab17873202..3bcff728d7 100644
--- a/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
+++ b/macros/latex/contrib/reledmac/examples/3-reledpar_sync_setting_shifted.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
index 497d6e385d..5c93f1889e 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column-continuous-numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
index 837f77ff7d..9567cce5d6 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_column_mix_with_not_column.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
index 740a7c02c1..6c1a1367f4 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_alignment.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
index a93ae66e92..0a591cbfa6 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_columns_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
index 65a91b1bd2..360c29f86c 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_inside-outside-columns.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
index 08f903586b..29e9d5d4f9 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_one_series_per_pstart.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
index fdc7cfc611..646f208859 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_long_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
index 8a6c262f89..5c849ca877 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_notes_leftpage.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
index 499e7b28ec..6d2d332fec 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_paragraph_separator_between.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
index 0b28dd10f5..a8082e7469 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_pages_titles_in_line_numbering_with_notes.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
index 7c9ae89801..d9a17ed624 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_titles_not_in_line_numbering.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
index 46303da21a..f3cd521397 100644
--- a/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
+++ b/macros/latex/contrib/reledmac/examples/4-reledpar_verse_text_between.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/migration.pdf b/macros/latex/contrib/reledmac/migration.pdf
index da50fc071d..ea2f620516 100644
--- a/macros/latex/contrib/reledmac/migration.pdf
+++ b/macros/latex/contrib/reledmac/migration.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/reledmac.dtx b/macros/latex/contrib/reledmac/reledmac.dtx
index 84f70591be..33fe898c87 100644
--- a/macros/latex/contrib/reledmac/reledmac.dtx
+++ b/macros/latex/contrib/reledmac/reledmac.dtx
@@ -590,6 +590,7 @@
% \changes{v2.38.2}{2021/11/03}{Fix bug when using \protect\cs{applabel} in conjunction with \protect\package{hyperref} package.}
% \changes{v2.38.2}{2021/11/03}{Fix some trouble in indentation in stanza, when switching to some language with \protect\package{polyglossia}.}
% \changes{v2.39.0}{2021/01/11}{Add \protect\cs{Xnotboxingsubline} and \protect\cs{Xendnotboxingsubline} hooks.}
+% \changes{v2.39.1}{2021/02/04}{Fix bug with index in familiar and critical footnotes.}
% Typeset scholarly editions with \LaTeX\thanks{This file (\dtxfilename)
% has version number \fileversion, last revised \filedate.}}
%
@@ -4502,7 +4503,7 @@
% \begin{macrocode}
%<*code>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{reledmac}[2022/01/11 v2.39.0 typesetting critical editions]%
+\ProvidesPackage{reledmac}[2022/02/04 v2.39.1 typesetting critical editions]%
% \end{macrocode}
%
% \subsection{Package options}
@@ -15214,7 +15215,8 @@
% \changes{v1.23.0}{2015/04/29}{Prevent spurious spaces when \protect\cs{Afootnote} and similar commands are followed by spaces (bug added on 1.0.0!).}
% \begin{macrocode}
\global\notbool{parapparatus@}{\expandafter\newcommand\expandafter *}{\expandafter\newcommand}\csname #1footnote\endcsname[2][]{%
- \nottoggle{Xnonote@#1}{%
+ \xdef\@currentseries{#1}%
+ \nottoggle{Xnonote@#1}{%
\advance \edtext@notes by 1%
\if@edtext@secondarg@%
\ifledRcol%
@@ -15383,6 +15385,7 @@
% \begin{macrocode}
\global\expandafter\newcommand\csname footnote#1\endcsname[2][]{%
+ \xdef\@currentseries{#1}%
\nottoggle{nonoteX@#1}{%
\begingroup%
\prepare@prenotesX{#1}%
diff --git a/macros/latex/contrib/reledmac/reledmac.pdf b/macros/latex/contrib/reledmac/reledmac.pdf
index 58db8402ef..39b184defb 100644
--- a/macros/latex/contrib/reledmac/reledmac.pdf
+++ b/macros/latex/contrib/reledmac/reledmac.pdf
Binary files differ
diff --git a/macros/latex/contrib/reledmac/reledpar.pdf b/macros/latex/contrib/reledmac/reledpar.pdf
index 16114f12d1..46cfe195bf 100644
--- a/macros/latex/contrib/reledmac/reledpar.pdf
+++ b/macros/latex/contrib/reledmac/reledpar.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
index 8a218bd89c..ba5c3de075 100644
--- a/macros/latex/contrib/siunitx/CHANGELOG.md
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -7,6 +7,11 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.0.47] - 2022-02-03
+
+### Changed
+- Better handling of `\mathord` in text mode
+
## [v3.0.46] - 2022-02-02
### Fixed
@@ -1698,7 +1703,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Added
- First public testing release (as `si`)
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.46...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.47...HEAD
+[v3.0.47]: https://github.com/josephwright/siunitx/compare/v3.0.46...v3.0.47
[v3.0.46]: https://github.com/josephwright/siunitx/compare/v3.0.45...v3.0.46
[v3.0.45]: https://github.com/josephwright/siunitx/compare/v3.0.44...v3.0.45
[v3.0.44]: https://github.com/josephwright/siunitx/compare/v3.0.43...v3.0.44
diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf
index ecd6faf3e6..d6d131b16c 100644
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx-number.dtx b/macros/latex/contrib/siunitx/siunitx-number.dtx
index a7bd0b7e16..98f52307c2 100644
--- a/macros/latex/contrib/siunitx/siunitx-number.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-number.dtx
@@ -3169,7 +3169,6 @@
% \begin{macro}[rEXP]{\@@_output_comparator:nn}
% \begin{macro}[rEXP]{\@@_output_sign:nnn}
% \begin{macro}[rEXP]{\@@_output_sign:nN}
-% \begin{macro}[rEXP]{\@@_output_sign:N}
% \begin{macro}[rEXP]
% {\@@_output_sign_color:w, \@@_output_sign_brackets:w}
% \begin{macro}[rEXP]{\@@_output_integer:nnn}
@@ -3310,7 +3309,7 @@
{
\bool_if:NTF \l_@@_bracket_negative_bool
{ \@@_output_sign_brackets:w }
- { \@@_output_sign:nN {#1} #2 }
+ { \@@_output_sign:nN {#1} - }
}
{ \@@_output_sign:nN {#1} #2 }
}
@@ -3319,14 +3318,9 @@
\cs_new:Npn \@@_output_sign:nN #1#2
{
\tl_if_blank:nTF {#1}
- { \@@_output_sign:N #2 }
- { \exp_not:n { \mathord {#2} } }
- }
-\cs_new:Npn \@@_output_sign:N #1
- {
- \bool_if:NTF \l_@@_tight_bool
- { \exp_not:n { \mathord {#1} } }
- { \exp_not:n {#1} }
+ { \use:n }
+ { \mathord }
+ { \exp_not:n {#2} }
}
\cs_new:Npn
\@@_output_sign_brackets:w #1 \@@_output_end:
@@ -3481,7 +3475,10 @@
\str_if_eq:VnTF \l_@@_uncert_mode_tl { separate }
{
\exp_not:n {#2}
- \@@_output_sign:N \pm
+ \bool_if:NTF \l_@@_tight_bool
+ { \mathord }
+ { \use:n }
+ { \exp_not:n { \pm } }
\exp_not:n {#2}
\@@_output_uncert_S_aux:nnn
{ \int_eval:n { \tl_count:n {#4} - \tl_count:n {#1} } }
@@ -3617,9 +3614,9 @@
\bool_lazy_and:nnT
{ \l_@@_implicit_plus_bool }
{ ! \str_if_eq_p:nn {#2} { 0 } }
- { \@@_output_sign:N + }
+ { + }
}
- { \@@_output_sign:N #1 }
+ { \exp_not:n {#1} }
\@@_output_digits:nn { integer } {#2}
}
% \end{macrocode}
@@ -3660,7 +3657,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
%
% \subsection{Miscellaneous tools}
%
diff --git a/macros/latex/contrib/siunitx/siunitx-print.dtx b/macros/latex/contrib/siunitx/siunitx-print.dtx
index 8f1e4bb467..10a316da89 100644
--- a/macros/latex/contrib/siunitx/siunitx-print.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-print.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% File: siunitx-print.dtx Copyright (C) 2016-2019,2021 Joseph Wright
+% File: siunitx-print.dtx Copyright (C) 2016-2019,2021,2022 Joseph Wright
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -791,6 +791,7 @@
%
% \begin{macro}{\siunitx_print_text:n}
% \begin{macro}{\@@_text_replace:n, \@@_text_replace_aux:n}
+% \begin{macro}[EXP]{\@@_text_replace_first:N}
% \begin{macro}{\@@_text_replace:N}
% \begin{macro}{\@@_text_replace:NNn}
% \begin{macro}{\@@_text_replace:Nnnn}
@@ -844,28 +845,31 @@
\tl_if_empty:NF \l_siunitx_unit_font_tl
{ \exp_after:wN \cs_set_eq:NN \l_siunitx_unit_font_tl \use:n }
\cs_set:Npn \mathord ##1
- {
- \str_case:nnF {##1}
- {
- { \cdot } { \exp_not:N \textperiodcentered }
- { \pm } { \exp_not:N \textpm }
- { \times } { \exp_not:N \texttimes }
- }
- {##1}
- }
+ { \@@_text_replace_first:N ##1 }
\cs_set:Npn \pm { \: \exp_not:N \textpm \: }
\tl_map_inline:nn
{ \mp \ge \le \gg \ll }
{ \cs_set:Npn ##1 { \exp_not:N \ensuremath { \exp_not:N ##1 } } }
\cs_set:Npn \cdot { \: \exp_not:N \textperiodcentered \: }
\cs_set:Npn \times { \: \exp_not:N \texttimes \: }
- \protected@edef \l_@@_tmp_tl { \l_@@_tmp_tl }
+ \protected@edef \l_@@_tmp_tl
+ { \exp_after:wN \@@_text_replace_first:N \l_@@_tmp_tl }
\@@_text_replace:N \l_@@_tmp_tl
\@@_text_replace_aux:n { \tl_use:N \l_@@_tmp_tl }
}
\group_end:
}
\cs_new_protected:Npn \@@_text_replace_aux:n #1 {#1}
+\cs_new:Npn \@@_text_replace_first:N #1
+ {
+ \str_case:nnF {#1}
+ {
+ { \cdot } { \exp_not:N \textperiodcentered }
+ { \pm } { \exp_not:N \textpm }
+ { \times } { \exp_not:N \texttimes }
+ }
+ {#1}
+ }
\cs_new_protected:Npx \@@_text_replace:N #1
{
\exp_not:N \@@_text_replace:NNn #1
@@ -1022,6 +1026,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \subsection{Standard settings for module options}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index e860a803b3..d1d4e125ab 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -121,7 +121,7 @@
%
% Identify the package and give the over all version information.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2022-02-02} {3.0.46}
+\ProvidesExplPackage {siunitx} {2022-02-03} {3.0.47}
{A comprehensive (SI) units package}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index c4f79568c0..5563799b59 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/macros/luatex/generic/lua-widow-control/README.md b/macros/luatex/generic/lua-widow-control/README.md
index 2486ba110a..07c24e3c59 100644
--- a/macros/luatex/generic/lua-widow-control/README.md
+++ b/macros/luatex/generic/lua-widow-control/README.md
@@ -42,4 +42,4 @@ Lua-widow-control is licensed under the [_Mozilla Public License_, version 2.0](
Please note that a compiled document is absolutely **not** considered to be an "Executable Form" as defined by the MPL. The use of lua-widow-control in a document does not place **any** obligations on the document's author or distributors. The MPL and CC-BY-SA licenses **only** apply to you if you distribute the lua-widow-control source code or documentation.
---
-_v1.1.3 (2022-01-30)_ <!--%%version %%date-->
+_v1.1.4 (2022-02-04)_ <!--%%version %%date-->
diff --git a/macros/luatex/generic/lua-widow-control/lua-widow-control.lua b/macros/luatex/generic/lua-widow-control/lua-widow-control.lua
index 56fa77e991..9a8b2efa78 100644
--- a/macros/luatex/generic/lua-widow-control/lua-widow-control.lua
+++ b/macros/luatex/generic/lua-widow-control/lua-widow-control.lua
@@ -65,8 +65,8 @@ if lwc.context then
elseif lwc.plain or lwc.latex then
luatexbase.provides_module {
name = lwc.name,
- date = "2022/01/30", --%%date
- version = "1.1.3", --%%version
+ date = "2022/02/04", --%%date
+ version = "1.1.4", --%%version
description = [[
This module provides a LuaTeX-based solution to prevent
@@ -195,7 +195,7 @@ function lwc.save_paragraphs(head)
-- Offset the accumulated \\prevdepth
local prevdepth = node.new("glue")
- prevdepth.width = -1 * long_info.prevdepth
+ prevdepth.width = natural_info.prevdepth - long_info.prevdepth
last(long_node).next = prevdepth
table.insert(lwc.paragraphs, {demerits = long_demerits, node = long_node})
diff --git a/macros/luatex/generic/lua-widow-control/lua-widow-control.pdf b/macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
index 2a8f319bbf..5ee7f9995e 100644
--- a/macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
+++ b/macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
Binary files differ
diff --git a/macros/luatex/generic/lua-widow-control/lua-widow-control.sty b/macros/luatex/generic/lua-widow-control/lua-widow-control.sty
index 31d58237f6..81dd969d8d 100644
--- a/macros/luatex/generic/lua-widow-control/lua-widow-control.sty
+++ b/macros/luatex/generic/lua-widow-control/lua-widow-control.sty
@@ -5,7 +5,7 @@
\NeedsTeXFormat{LaTeX2e}[2015/01/01] % Formats built after 2015 include \LuaTeX{}Base
\ProvidesPackage{lua-widow-control}%
- [2022/01/30 v1.1.3] %%version %%date
+ [2022/02/04 v1.1.4] %%version %%date
\clubpenalty=1
\widowpenalty=1
diff --git a/macros/luatex/generic/lua-widow-control/lua-widow-control.tex b/macros/luatex/generic/lua-widow-control/lua-widow-control.tex
index eb2c1a070b..a9b236f966 100644
--- a/macros/luatex/generic/lua-widow-control/lua-widow-control.tex
+++ b/macros/luatex/generic/lua-widow-control/lua-widow-control.tex
@@ -3,7 +3,7 @@
% SPDX-License-Identifier: MPL-2.0+
% SPDX-FileCopyrightText: 2021 Max Chernoff
-\wlog{lua-widow-control v1.1.3} %%version
+\wlog{lua-widow-control v1.1.4} %%version
\input ltluatex % \LuaTeX{}Base
diff --git a/macros/luatex/generic/lua-widow-control/lwc-documentation.tex b/macros/luatex/generic/lua-widow-control/lwc-documentation.tex
index 78ae260794..bf0bf8877b 100644
--- a/macros/luatex/generic/lua-widow-control/lwc-documentation.tex
+++ b/macros/luatex/generic/lua-widow-control/lwc-documentation.tex
@@ -37,7 +37,7 @@
\startdocument[
title=lua-widow-control,
author=Max Chernoff,
- version=1.1.3, %%version
+ version=1.1.4, %%version
github=https://github.com/gucci-on-fleek/lua-widow-control,
ctan=https://www.ctan.org/pkg/lua-widow-control,
]
diff --git a/macros/luatex/generic/lua-widow-control/lwc-sample.tex b/macros/luatex/generic/lua-widow-control/lwc-sample.tex
index 787b91e8dc..fc773ea11e 100644
--- a/macros/luatex/generic/lua-widow-control/lwc-sample.tex
+++ b/macros/luatex/generic/lua-widow-control/lwc-sample.tex
@@ -6,7 +6,7 @@
\startbuffer[demo-text]
\definepapersize[smallpaper][
width=6cm,
- height=9cm
+ height=8.3cm
]\setuppapersize[smallpaper]
\setuplayout[
@@ -23,20 +23,23 @@
\setupbodyfont[9pt]
\setupindenting[yes, 2em]
- \setupalign[tolerant]
\definepalet[layout][grid=middlegray]
\showgrid[nonumber, none, lines]
- \definefontfeature[default][default][expansion=quality]
- \setupalign[hz]
+ \definefontfeature[default][default][expansion=quality,protrusion=quality]
+
+ \usetypescript[modern-base]
+ \setupbodyfont[reset,modern]
+
+ \setupalign[hz,hanging,tolerant]
\starttext
\Lwc/ can remove most widows and orphans from a document, \emph{without} stretching any glue or shortening any pages.
- It does so by automatically lengthening a paragraph on a page where a widow or orphan would otherwise occur. While \TeX{} breaks paragraphs into their natural length, \lwc/ is breaking the paragraph 1~line longer than its natural length. \TeX{}'s paragraph is output to the page, but \lwc/'s paragraph is just stored for later. When a widow or orphan occurs, \lwc/ can take over. It selects the previously-saved paragraph with the least badness; then, it replaces \TeX{}'s paragraph with its saved paragraph. This lengthens the page by 1~line.
+ It does so by automatically lengthening a paragraph on a page where a widow or orphan would otherwise occur. While \TeX{} breaks paragraphs into their natural length, \lwc/ is breaking the paragraph 1~line longer than its natural length. \TeX{}'s paragraph is output to the page, but \lwc/'s paragraph is just stored for later. When a widow or orphan occurs, \lwc/ can take over. It selects the previously-saved paragraph with the least badness; then, it replaces \TeX{}'s paragraph with its saved paragraph. This increases the text block height of the page by 1~line.
- Now, the last line of the current page can be pushed to the top of the next page. This removes the widow or the orphan without creating any additional work for the document's author.
+ Now, the last line of the current page can be pushed to the top of the next page. This removes the widow or the orphan without creating any additional work.
\stoptext
\stopbuffer
\savebuffer[list=demo-text]
diff --git a/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl b/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
index 85b1e340b6..436eb880cb 100644
--- a/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
+++ b/macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
@@ -1,10 +1,10 @@
%D \module
%D [ file=t-lua-widow-control,
-%D version=1.1.3, %%version
+%D version=1.1.4, %%version
%D title=lua-widow-control,
%D subtitle=\ConTeXt module for lua-widow-control,
%D author=Max Chernoff,
-%D date=2022-01-30, %%date
+%D date=2022-02-04, %%date
%D copyright=Max Chernoff,
%D license=MPL-2.0+,
%D url=https://github.com/gucci-on-fleek/lua-widow-control]
diff --git a/macros/xetex/latex/bidi/README b/macros/xetex/latex/bidi/README
index 31aee83dcb..38cfe408c6 100644
--- a/macros/xetex/latex/bidi/README
+++ b/macros/xetex/latex/bidi/README
@@ -1,6 +1,6 @@
___________________
The bidi package
-v36.4
+v36.5
This package provides a convenient interface for typesetting
bidirectional texts in Plain TeX and LaTeX, using XeTeX engine.
@@ -16,7 +16,16 @@ In doing so, please always explain your issue well enough,
and always include a minimal working example showing the
issue.
-Current version release date: 2022/02/01
+You may also have conversations, ask questions and post answers
+without opening issues using the Discussions space:
+
+ <https://github.com/tex-persian/bidi/discussions>
+
+The announcements for the new releases of the package will
+also appear in the Discussions space under the Announcements
+category.
+
+Current version release date: 2022/02/04
___________________________________________
Vafa Khalighi
diff --git a/macros/xetex/latex/bidi/bidi-doc-intro.ltx b/macros/xetex/latex/bidi/bidi-doc-intro.ltx
index 56325099e7..3f62d203da 100644
--- a/macros/xetex/latex/bidi/bidi-doc-intro.ltx
+++ b/macros/xetex/latex/bidi/bidi-doc-intro.ltx
@@ -20,7 +20,7 @@ If you use \textsf{bidi} package to write any input \TeX\ document, and then run
* Copyright (c) 2007--2022 Vafa Khalighi
* Copyright (c) 2018--2020 bidi-tex GitHub Organization
*
-* v36.4, 2022/02/01
+* v36.5, 2022/02/04
*
* License: LaTeX Project Public License, version
* 1.3c or higher (your choice)
@@ -29,6 +29,8 @@ If you use \textsf{bidi} package to write any input \TeX\ document, and then run
*
* Issue tracker: https://github.com/tex-persian/bidi/issues
*
+* Discussions: https://github.com/tex-persian/bidi/discussions
+*
* Support Email: tex-persian@vafa.ac
*
* Primary author of bidi package: Vafa Khalighi.
diff --git a/macros/xetex/latex/bidi/bidi-doc-title.ltx b/macros/xetex/latex/bidi/bidi-doc-title.ltx
index 006da7b9e5..33f5ed8838 100644
--- a/macros/xetex/latex/bidi/bidi-doc-title.ltx
+++ b/macros/xetex/latex/bidi/bidi-doc-title.ltx
@@ -3,7 +3,7 @@
\begin{document}
\title{\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}\\
\LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt]
-\large User documentation for \textcolor{blue!65!black}{version 36.4}}
+\large User documentation for \textcolor{blue!65!black}{version 36.5}}
\author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}\\
\url{tex-persian@vafa.ac}}
\setcounter{page}{0}
@@ -14,7 +14,7 @@
\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}
\Large
-User documentation for \textcolor{blue!65!black}{version 36.4}}
+User documentation for \textcolor{blue!65!black}{version 36.5}}
\vskip 0pt plus 3fill
\textit{\large to my Master, \textbf{Ferdowsi The Great}}
@@ -30,6 +30,18 @@ or ask for any new features, or suggest any improvements, or ask any questions a
\medskip
In doing so, please always explain your issue well enough, and always include
a minimal working example showing the issue.
+
+\bigskip
+You may also have conversations, ask questions and post answers
+without opening issues using the Discussions space:
+
+\medskip
+ \centerline{\url{https://github.com/tex-persian/bidi/discussions}}
+
+\medskip
+The announcements for the new releases of the package will
+also appear in the Discussions space under the Announcements
+category.
\end{minipage}
}}
diff --git a/macros/xetex/latex/bidi/bidi-doc.ltx b/macros/xetex/latex/bidi/bidi-doc.ltx
index a2e1bc59f9..b6dbf1ac38 100644
--- a/macros/xetex/latex/bidi/bidi-doc.ltx
+++ b/macros/xetex/latex/bidi/bidi-doc.ltx
@@ -1,7 +1,7 @@
\documentclass{ltxdoc}
\input{bidi-doc-preamble.ltx}
\hypersetup{%
- pdftitle={User documentation for version 36.4 of the bidi
+ pdftitle={User documentation for version 36.5 of the bidi
package}%
}
\begin{document}
diff --git a/macros/xetex/latex/bidi/bidi-doc.pdf b/macros/xetex/latex/bidi/bidi-doc.pdf
index 4ff70450d0..4cdcfc9a99 100644
--- a/macros/xetex/latex/bidi/bidi-doc.pdf
+++ b/macros/xetex/latex/bidi/bidi-doc.pdf
Binary files differ
diff --git a/macros/xetex/latex/bidi/bidi.dtx b/macros/xetex/latex/bidi/bidi.dtx
index e5a41ef92c..65bc0833cf 100644
--- a/macros/xetex/latex/bidi/bidi.dtx
+++ b/macros/xetex/latex/bidi/bidi.dtx
@@ -5,7 +5,7 @@
%<*readme>
___________________
The bidi package
-v36.4
+v36.5
This package provides a convenient interface for typesetting
bidirectional texts in Plain TeX and LaTeX, using XeTeX engine.
@@ -20,8 +20,17 @@ please use the issue tracker:
In doing so, please always explain your issue well enough,
and always include a minimal working example showing the
issue.
+
+You may also have conversations, ask questions and post answers
+without opening issues using the Discussions space:
+
+ <https://github.com/tex-persian/bidi/discussions>
+
+The announcements for the new releases of the package will
+also appear in the Discussions space under the Announcements
+category.
-Current version release date: 2022/02/01
+Current version release date: 2022/02/04
___________________________________________
Vafa Khalighi
@@ -225,7 +234,7 @@ by Vafa Khalighi.
\documentclass{ltxdoc}
\input{bidi-doc-preamble.ltx}
\hypersetup{%
- pdftitle={Source documentation for version 36.4 of the bidi
+ pdftitle={Source documentation for version 36.5 of the bidi
package}%
}
\EnableCrossrefs
@@ -244,7 +253,7 @@ by Vafa Khalighi.
% \GetFileInfo{\jobname.dtx}
% \title{\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}\\
%\LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt]
-%\large Source documentation for \textcolor{blue!65!black}{version 36.4}}
+%\large Source documentation for \textcolor{blue!65!black}{version 36.5}}
% \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}\\
% \url{tex-persian@vafa.ac}}
%\setcounter{page}{0}
@@ -255,7 +264,7 @@ by Vafa Khalighi.
%\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}
%
%\Large
-%Source documentation for \textcolor{blue!65!black}{version 36.4}}
+%Source documentation for \textcolor{blue!65!black}{version 36.5}}
%
%\vskip 0pt plus 3fill
%\textit{\large to my Master, \textbf{Ferdowsi The Great}}
@@ -271,6 +280,18 @@ by Vafa Khalighi.
%\medskip
%In doing so, please always explain your issue well enough, and always include
%a minimal working example showing the issue.
+%
+%\bigskip
+%You may also have conversations, ask questions and post answers
+%without opening issues using the Discussions space:
+%
+%\medskip
+% \centerline{\url{https://github.com/tex-persian/bidi/discussions}}
+%
+%\medskip
+%The announcements for the new releases of the package will
+%also appear in the Discussions space under the Announcements
+%category.
%\end{minipage}
%}}
%
@@ -1912,8 +1933,8 @@ by Vafa Khalighi.
% \section{File \texttt{bidi.sty}}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\def\bididate{2022/02/01}
-\def\bidi@version{36.4}
+\def\bididate{2022/02/04}
+\def\bidi@version{36.5}
\ProvidesPackage{bidi}[\bididate\space v\bidi@version\space
Bidirectional typesetting in plain TeX and LaTeX]
\edef\@bidi@info{****************************************************^^J%
@@ -1938,6 +1959,8 @@ Bidirectional typesetting in plain TeX and LaTeX]
* ^^J%
* Issue tracker: https://github.com/tex-persian/bidi/issues^^J%
* ^^J%
+* Discussions: https://github.com/tex-persian/bidi/discussions^^J%
+* ^^J%
* Support Email: tex-persian@vafa.ac^^J%
* ^^J%
* Primary author of bidi package: Vafa Khalighi.^^J%
@@ -2001,7 +2024,7 @@ Bidirectional typesetting in plain TeX and LaTeX]
}
\newcommand*{\@bidi@pdfcustomproperties}{%
This is the bidi package, Version \bidi@version,
- Released February 1, 2022.
+ Released February 27, 2022.
}
\@RTLmainfalse
\AtBeginDocument{%
@@ -2244,9 +2267,9 @@ Bidirectional typesetting in plain TeX and LaTeX]
%\fi
% \section{File \texttt{bidi.tex}}
% \begin{macrocode}
-\def\bididate{2022/02/01}
+\def\bididate{2022/02/04}
\catcode`@=11
-\def\bidi@version{36.4}
+\def\bidi@version{36.5}
\let \protect \relax
\newlinechar`\^^J
\edef\@bidi@info{****************************************************^^J%
@@ -2271,6 +2294,8 @@ Bidirectional typesetting in plain TeX and LaTeX]
* ^^J%
* Issue tracker: https://github.com/tex-persian/bidi/issues^^J%
* ^^J%
+* Discussions: https://github.com/tex-persian/bidi/discussions^^J%
+* ^^J%
* Support Email: tex-persian@vafa.ac^^J%
* ^^J%
* Primary author of bidi package: Vafa Khalighi.^^J%
@@ -2348,7 +2373,7 @@ Bidirectional typesetting in plain TeX and LaTeX]
}
\def\@bidi@pdfcustomproperties{%
This is the bidi package, Version \bidi@version,
- Released February 1, 2022.
+ Released February 27, 2022.
}
\def\bidi@pdfm@mark{%
\special{pdf:%
diff --git a/macros/xetex/latex/bidi/bidi.pdf b/macros/xetex/latex/bidi/bidi.pdf
index e7468b4cb3..308ea1c86c 100644
--- a/macros/xetex/latex/bidi/bidi.pdf
+++ b/macros/xetex/latex/bidi/bidi.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian/README b/macros/xetex/latex/xepersian/README
index 07503c065c..6bcea9c873 100644
--- a/macros/xetex/latex/xepersian/README
+++ b/macros/xetex/latex/xepersian/README
@@ -1,6 +1,6 @@
____________________
The XePersian package
-v23.2
+v23.3
The xepersian package provides a convenient interface for
typesetting Persian and English texts in LaTeX, using XeTeX
@@ -16,7 +16,16 @@ please use the issue tracker:
In doing so, please always explain your issue well enough, and always
include a minimal working example showing the issue.
-Current version release date: 2022/02/01
+You may also have conversations, ask questions and post answers
+without opening issues using the Discussions space:
+
+ <https://github.com/tex-persian/xepersian/discussions>
+
+The announcements for the new releases of the package will
+also appear in the Discussions space under the Announcements
+category.
+
+Current version release date: 2022/02/04
___________________________________________
Vafa Khalighi
tex-persian@vafa.ac
diff --git a/macros/xetex/latex/xepersian/xepersian-doc-basics.ltx b/macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
index 9e9ec6cce0..44452ea407 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
@@ -1077,8 +1077,8 @@ However there is more; you can localise any other commands/environments you want
\tablelasttail{\hline}
\begin{supertabular}{lr}
\bicsintabular{خط‌زیرنویس‌خودکار}{autofootnoterule}
-\bicsintabular{اعدادفرمولهاخودکار}{AutoMathsDigits}
-\bicsintabular{اعدادفرمولهالاتین}{DefaultMathsDigits}
+\bicsintabular{اعدادفرمولهاخودکار}{AutoMathDigits}
+\bicsintabular{اعدادفرمولهالاتین}{DefaultMathDigits}
\bicsintabular{تعریف‌قلم‌لاتین}{deflatinfont}
\bicsintabular{تعریف‌قلم‌پارسی}{defpersianfont}
\bicsintabular{کادراچپ}{hboxL}
@@ -1096,7 +1096,7 @@ However there is more; you can localise any other commands/environments you want
\bicsintabular{پانویس‌عنوان}{LTRthanks}
\bicsintabular{روزپارسی}{persianday}
\bicsintabular{قلم‌پارسی}{persianfont}
-\bicsintabular{اعدادفرمولهاپارسی}{PersianMathsDigits}
+\bicsintabular{اعدادفرمولهاپارسی}{PersianMathDigits}
\bicsintabular{ماه‌پارسی}{persianmonth}
\bicsintabular{سال‌پارسی}{persianyear}
\bicsintabular{علامت‌چپ‌نقل‌قول‌پارسی‌}{plq}
diff --git a/macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx b/macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx
index 002d8f380c..0712b5929e 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc-envcs.ltx
@@ -74,7 +74,7 @@
\end{itemize}
\subsection{Things To Know About \Lcs{setmathdigitfont}, \Lcs{setmathsfdigitfont}, and \Lcs{setmathttdigitfont}}
\begin{BDef}
-\Lcs{DefaultMathsDigits}\quad\Lcs{PersianMathsDigits}\quad\Lcs{AutoMathsDigits}
+\Lcs{DefaultMathDigits}\quad\Lcs{PersianMathDigits}\quad\Lcs{AutoMathDigits}
\end{BDef}
\begin{itemize}
\item As we discussed before, \Lcs{setmathdigitfont} will choose the Persian font for digits in math mode. By default, digits in math mode will appear in Persian form.
@@ -82,9 +82,9 @@
If you use \Lcs{setmathdigitfont}, \Lcs{setmathsfdigitfont}, and \Lcs{setmathttdigitfont}, then you should know that:
\begin{itemize}
-\item By default, \Lcs{AutoMathsDigits} is active, which means that in Persian mode, you get Persian digits in math mode and in Latin mode, you get \TeX's default font and digits in math mode.
-\item If you use \Lcs{PersianMathsDigits} anywhere, you will overwrite \XePersian's default behaviour and you will always get Persian digits in math mode.
-\item If you use \Lcs{DefaultMathsDigits} anywhere, again you will overwrite \XePersian's default behaviour and you will always get \TeX's default font and digits in math mode.
+\item By default, \Lcs{AutoMathDigits} is active, which means that in Persian mode, you get Persian digits in math mode and in Latin mode, you get \TeX's default font and digits in math mode.
+\item If you use \Lcs{PersianMathDigits} anywhere, you will overwrite \XePersian's default behaviour and you will always get Persian digits in math mode.
+\item If you use \Lcs{DefaultMathDigits} anywhere, again you will overwrite \XePersian's default behaviour and you will always get \TeX's default font and digits in math mode.
\end{itemize}
\end{itemize}
\end{document} \ No newline at end of file
diff --git a/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx b/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
index 0f4f219472..e6421f36bc 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
@@ -25,7 +25,7 @@ If you use \textsf{\XePersian} package to write any input \TeX\ document, and th
* Copyright (c) 2008--2022 Vafa Khalighi
* Copyright (c) 2018--2020 bidi-tex GitHub Organization
*
-* v23.2, 2022/02/01
+* v23.3, 2022/02/04
*
* License: LaTeX Project Public License, version
* 1.3c or higher (your choice)
@@ -34,6 +34,8 @@ If you use \textsf{\XePersian} package to write any input \TeX\ document, and th
*
* Issue tracker: https://github.com/tex-persian/xepersian/issues
*
+* Discussions: https://github.com/tex-persian/xepersian/discussions
+*
* Support Email: tex-persian@vafa.ac
*
* Primary author of xepersian package: Vafa Khalighi.
diff --git a/macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx b/macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
index 2df22a0ad2..328d53d617 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc-pkgs.ltx
@@ -6,7 +6,7 @@
\subsubsection{Introduction}
\textsf{xepersian-magazine} class allows you to create magazines, newspapers and any other types of papers. The output document has a front page and as many inner pages as desired. Articles appear one after another, telling the type, number of columns, heading, subheading, images, author and so forth. It is possible to change the aspect of (almost) everything therefore it is highly customisable. Commands to add different titles, headings and footers are also provided.
\subsubsection{Usage}
-To create\footnote{For a sample file, please look at \texttt{magazine-sample.tex} in the \textsf{doc} folder} a magazine just load the class as usual\footnote{You also need to load \textsf{graphicx}, \textsf{xunicode} and \textsf{xepersian} packages respectively, after loading the document class and choose fonts for the main text, Latin text and digits in maths formulas. For more detail see \autoref{basics} of the documentation.}, with
+To create\footnote{For a sample file, please look at \texttt{magazine-sample.tex} in the \textsf{doc} folder} a magazine just load the class as usual\footnote{You also need to load \textsf{graphicx}, \textsf{xunicode} and \textsf{xepersian} packages respectively, after loading the document class and choose fonts for the main text, Latin text and digits in math formulas. For more detail see \autoref{basics} of the documentation.}, with
\begin{BDef}
\Lcs{documentclass}\OptArgs\Largb{xepersian-magazine}
\end{BDef}
diff --git a/macros/xetex/latex/xepersian/xepersian-doc-title.ltx b/macros/xetex/latex/xepersian/xepersian-doc-title.ltx
index 51011e39b9..3cfd1346fa 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc-title.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc-title.ltx
@@ -3,7 +3,7 @@
\begin{document}
\title{\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}\\
\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt]
-\large User documentation for \textcolor{blue!65!black}{version 23.2}}
+\large User documentation for \textcolor{blue!65!black}{version 23.3}}
\author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}\\
\url{tex-persian@vafa.ac}}
\setcounter{page}{0}
@@ -14,7 +14,7 @@
\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}
\Large
-User documentation for \textcolor{blue!65!black}{version 23.2}}
+User documentation for \textcolor{blue!65!black}{version 23.3}}
\vskip 0pt plus 3fill
\textit{\large to my Master, \textbf{Ferdowsi The Great}}
@@ -30,6 +30,18 @@ or ask for any new features, or suggest any improvements, or ask any questions a
\medskip
In doing so, please always explain your issue well enough, and always include
a minimal working example showing the issue.
+
+\bigskip
+You may also have conversations, ask questions and post answers
+without opening issues using the Discussions space:
+
+\medskip
+ \centerline{\url{https://github.com/tex-persian/xepersian/discussions}}
+
+\medskip
+The announcements for the new releases of the package will
+also appear in the Discussions space under the Announcements
+category.
\end{minipage}
}}
diff --git a/macros/xetex/latex/xepersian/xepersian-doc.ltx b/macros/xetex/latex/xepersian/xepersian-doc.ltx
index 5cd43a84e7..e1058567db 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc.ltx
@@ -1,7 +1,7 @@
\documentclass{ltxdoc}
\input{xepersian-doc-preamble.ltx}
\hypersetup{%
- pdftitle={User documentation for version 23.2 of the XePersian
+ pdftitle={User documentation for version 23.3 of the XePersian
package}%
}
\begin{document}
diff --git a/macros/xetex/latex/xepersian/xepersian-doc.pdf b/macros/xetex/latex/xepersian/xepersian-doc.pdf
index 1f79bb2306..650074eee7 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc.pdf
+++ b/macros/xetex/latex/xepersian/xepersian-doc.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian/xepersian.dtx b/macros/xetex/latex/xepersian/xepersian.dtx
index fb740c00a5..cef2486b84 100644
--- a/macros/xetex/latex/xepersian/xepersian.dtx
+++ b/macros/xetex/latex/xepersian/xepersian.dtx
@@ -5,7 +5,7 @@
%<*readme>
____________________
The XePersian package
-v23.2
+v23.3
The xepersian package provides a convenient interface for
typesetting Persian and English texts in LaTeX, using XeTeX
@@ -20,9 +20,18 @@ please use the issue tracker:
In doing so, please always explain your issue well enough, and always
include a minimal working example showing the issue.
-
-Current version release date: 2022/02/01
+You may also have conversations, ask questions and post answers
+without opening issues using the Discussions space:
+
+ <https://github.com/tex-persian/xepersian/discussions>
+
+The announcements for the new releases of the package will
+also appear in the Discussions space under the Announcements
+category.
+
+
+Current version release date: 2022/02/04
___________________________________________
Vafa Khalighi
tex-persian@vafa.ac
@@ -117,6 +126,7 @@ by Vafa Khalighi.
}
\usepostamble\mapping@postamble
\generate{\file{persian-tex-text.map}{\from{\jobname.dtx}{persian-tex-text.map}}}
+\generate{\file{persian-tex-text-nonumbers.map}{\from{\jobname.dtx}{persian-tex-text-nonumbers.map}}}
\let\MetaPrefix\DoubleperCent
\usepostamble\org@postamble
\generate{\file{rapport1-xepersian.def}{\from{\jobname.dtx}{table,rapport1-xepersian.def}}}
@@ -133,7 +143,7 @@ by Vafa Khalighi.
\generate{\file{varioref-xepersian.def}{\from{\jobname.dtx}{table,varioref-xepersian.def}}}
\generate{\file{xepersian.sty}{\from{\jobname.dtx}{table,xepersian.sty}}}
\generate{\file{xepersian-magazine.cls}{\from{\jobname.dtx}{table,xepersian-magazine.cls}}}
-\generate{\file{xepersian-mathsdigitspec.sty}{\from{\jobname.dtx}{table,xepersian-mathsdigitspec.sty}}}
+\generate{\file{xepersian-mathdigitspec.sty}{\from{\jobname.dtx}{table,xepersian-mathdigitspec.sty}}}
\generate{\file{xepersian-multiplechoice.sty}{\from{\jobname.dtx}{table,xepersian-multiplechoice.sty}}}
\generate{\file{xepersian-persiancal.sty}{\from{\jobname.dtx}{table,xepersian-persiancal.sty}}}
%</batchfile>
@@ -158,7 +168,7 @@ by Vafa Khalighi.
\documentclass{ltxdoc}
\input{xepersian-doc-preamble.ltx}
\hypersetup{%
- pdftitle={Source documentation for version 23.2 of the XePersian
+ pdftitle={Source documentation for version 23.3 of the XePersian
package}%
}
\EnableCrossrefs
@@ -177,7 +187,7 @@ by Vafa Khalighi.
% \GetFileInfo{\jobname.dtx}
% \title{\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}\\
%\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt]
-%\large Source documentation for \textcolor{blue!65!black}{version 23.2}}
+%\large Source documentation for \textcolor{blue!65!black}{version 23.3}}
% \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}\\
% \url{tex-persian@vafa.ac}}
%\setcounter{page}{0}
@@ -188,7 +198,7 @@ by Vafa Khalighi.
%\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}
%
%\Large
-%Source documentation for \textcolor{blue!65!black}{version 23.2}}
+%Source documentation for \textcolor{blue!65!black}{version 23.3}}
%
%\vskip 0pt plus 3fill
%\textit{\large to my Master, \textbf{Ferdowsi The Great}}
@@ -204,6 +214,18 @@ by Vafa Khalighi.
%\medskip
%In doing so, please always explain your issue well enough, and always include
%a minimal working example showing the issue.
+%
+%\bigskip
+%You may also have conversations, ask questions and post answers
+%without opening issues using the Discussions space:
+%
+%\medskip
+% \centerline{\url{https://github.com/tex-persian/xepersian/discussions}}
+%
+%\medskip
+%The announcements for the new releases of the package will
+%also appear in the Discussions space under the Announcements
+%category.
%\end{minipage}
%}}
%
@@ -224,7 +246,7 @@ by Vafa Khalighi.
%\iffalse
%<*table>
%\fi
-%% \CheckSum{10887}
+%% \CheckSum{10959}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -1512,8 +1534,8 @@ by Vafa Khalighi.
% \begin{macrocode}
\ProvidesFile{xepersian-localise-commands-xepersian.def}[2012/07/25 v0.2 Persian localisation of XePersian commands]
\eqcommand{خط‌زیرنویس‌خودکار}{autofootnoterule}
-\eqcommand{اعدادفرمولهاخودکار}{AutoMathsDigits}
-\eqcommand{اعدادفرمولهالاتین}{DefaultMathsDigits}
+\eqcommand{اعدادفرمولهاخودکار}{AutoMathDigits}
+\eqcommand{اعدادفرمولهالاتین}{DefaultMathDigits}
\eqcommand{معادل@کلید}{keyval@eq@alias@key}
\eqcommand{تعریف‌قلم‌لاتین}{deflatinfont}
\eqcommand{تعریف‌قلم‌پارسی}{defpersianfont}
@@ -1531,7 +1553,7 @@ by Vafa Khalighi.
\eqcommand{پانویس‌عنوان}{LTRthanks}
\eqcommand{روزپارسی}{persianday}
\eqcommand{قلم‌پارسی}{persianfont}
-\eqcommand{اعدادفرمولهاپارسی}{PersianMathsDigits}
+\eqcommand{اعدادفرمولهاپارسی}{PersianMathDigits}
\eqcommand{ماه‌پارسی}{persianmonth}
\eqcommand{سال‌پارسی}{persianyear}
\eqcommand{علامت‌چپ‌نقل‌قول‌پارسی}{plq}
@@ -3091,6 +3113,39 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
% \end{macrocode}
% \iffalse
%</persian-tex-text.map>
+%<*persian-tex-text-nonumbers.map>
+%\fi
+% \section{File \texttt{persian-tex-text-nonumbers.map}}
+% \begin{macrocode}
+LHSName "persian-TeX-text-nonumbers"
+RHSName "Unicode"
+
+pass(Unicode)
+U+002C <> U+060C ; comma ­> arabic comma
+U+003F <> U+061F ; question mark -> arabic qm
+U+003B <> U+061B ; semicolon -> arabic semicolon
+
+; ligatures from Knuth's original CMR fonts
+U+002D U+002D <> U+2013 ; -- -> en dash
+U+002D U+002D U+002D <> U+2014 ; --- -> em dash
+
+U+0027 <> U+2019 ; ' -> right single quote
+U+0027 U+0027 <> U+201D ; '' -> right double quote
+U+0022 > U+201D ; " -> right double quote
+
+U+0060 <> U+2018 ; ` -> left single quote
+U+0060 U+0060 <> U+201C ; `` -> left double quote
+
+U+0021 U+0060 <> U+00A1 ; !` -> inverted exclam
+U+003F U+0060 <> U+00BF ; ?` -> inverted question
+
+; additions supported in T1 encoding
+U+002C U+002C <> U+201E ; ,, -> DOUBLE LOW-9 QUOTATION MARK
+U+003C U+003C <> U+00AB ; << -> LEFT POINTING GUILLEMET
+U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
+% \end{macrocode}
+% \iffalse
+%</persian-tex-text-nonumbers.map>
%<*rapport1-xepersian.def>
%\fi
% \section{File \texttt{rapport1-xepersian.def}}
@@ -3423,13 +3478,13 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
% \section{File \texttt{xepersian.sty}}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\def\xepersian@version{23.2}
-\def\xepersiandate{2022/02/01}
+\def\xepersian@version{23.3}
+\def\xepersiandate{2022/02/04}
\ProvidesPackage{xepersian}[\xepersiandate\space v\xepersian@version\space
Persian typesetting in XeLaTeX]
\RequirePackage{fontspec}
\RequirePackage{xepersian-persiancal}
-\RequirePackage{xepersian-mathsdigitspec}
+\RequirePackage{xepersian-mathdigitspec}
\RequirePackage{bidi}
\edef\@xepersian@info{****************************************************^^J%
* ^^J%
@@ -3451,6 +3506,8 @@ Persian typesetting in XeLaTeX]
* ^^J%
* Issue tracker: https://github.com/tex-persian/xepersian/issues^^J%
* ^^J%
+* Discussions: https://github.com/tex-persian/xepersian/discussions^^J%
+* ^^J%
* Support Email: tex-persian@vafa.ac^^J%
* ^^J%
* Primary author of xepersian package: Vafa Khalighi.^^J%
@@ -3524,6 +3581,21 @@ Persian typesetting in XeLaTeX]
\tl_set:Nn \l__fontspec_mapping_tl { persian-tex-text }
}
}
+
+\keys_define:nn {fontspec-opentype}
+ {
+ Ligatures / PersianTeXNoNumbers .code:n = { \tl_set:Nn \l__fontspec_mapping_tl {persian-tex-text-nonumbers} },
+ Ligatures / PersianTeXNoNumbersOff .code:n = { \tl_clear:N \l__fontspec_mapping_tl },
+ Ligatures / PersianTeXNoNumbersReset .code:n = { \tl_clear:N \l__fontspec_mapping_tl },
+ }
+
+\keys_define:nn {fontspec-aat}
+ {
+ Ligatures / PersianTeXNoNumbers .code:n =
+ {
+ \tl_set:Nn \l__fontspec_mapping_tl { persian-tex-text-nonumbers }
+ }
+ }
\DeclareDocumentCommand \settextfont { O{} m O{} }
{
@@ -3532,7 +3604,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_settextfont:nn
{
- \fontspec_set_family:Nnn \l__xepersian_persianfont_family_tl {Script=Persian,Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \l__xepersian_persianfont_family_tl {Ligatures=PersianTeX,#1} {#2}
\tl_set_eq:NN \rmdefault \l__xepersian_persianfont_family_tl
\use:x { \exp_not:n { \DeclareRobustCommand \persianfont }
{
@@ -3556,7 +3628,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_settextdigitfont:nn
{
- \fontspec_set_family:Nnn \l__xepersian_textdigitfont_family_tl {Script=Persian,Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \l__xepersian_textdigitfont_family_tl {Ligatures=PersianTeX,#1} {#2}
\use:x
{
\exp_not:n { \DeclareRobustCommand \xepersian@textdigitfont }
@@ -3636,7 +3708,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_defpersianfont:NnnN
{
- \fontspec_set_family:cnn { l__xepersian_ \cs_to_str:N #1 _family_tl } {Script=Persian,Ligatures=PersianTeX,#2} {#3}
+ \fontspec_set_family:cnn { l__xepersian_ \cs_to_str:N #1 _family_tl } {Ligatures=PersianTeX,#2} {#3}
\use:x
{
\exp_not:N #4 \exp_not:N #1 {}
@@ -3710,7 +3782,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_setpersiansansfont:nn
{
- \fontspec_set_family:Nnn \l__xepersian_persiansffamily_family_tl {Script=Persian,Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \l__xepersian_persiansffamily_family_tl {Ligatures=PersianTeX,#1} {#2}
\tl_set_eq:NN \persiansfdefault \l__xepersian_persiansffamily_family_tl
\use:x { \exp_not:n { \DeclareRobustCommand \persiansffamily }
{
@@ -3734,7 +3806,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_setpersianmonofont:nn
{
- \fontspec_set_family:Nnn \l__xepersian_persianttfamily_family_tl {Script=Persian,Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \l__xepersian_persianttfamily_family_tl {Ligatures=PersianTeX,#1} {#2}
\tl_set_eq:NN \persianttdefault \l__xepersian_persianttfamily_family_tl
\use:x { \exp_not:n { \DeclareRobustCommand \persianttfamily }
{
@@ -3758,7 +3830,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_setnavarfont:nn
{
- \fontspec_set_family:Nnn \l__xepersian_navarfamily_family_tl {Script=Persian,Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \l__xepersian_navarfamily_family_tl {Ligatures=PersianTeX,#1} {#2}
\tl_set_eq:NN \navardefault \l__xepersian_navarfamily_family_tl
\use:x { \exp_not:n { \DeclareRobustCommand \navarfamily }
{
@@ -3782,7 +3854,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_setpookfont:nn
{
- \fontspec_set_family:Nnn \l__xepersian_pookfamily_family_tl {Script=Persian,Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \l__xepersian_pookfamily_family_tl {Ligatures=PersianTeX,#1} {#2}
\tl_set_eq:NN \pookdefault \l__xepersian_pookfamily_family_tl
\use:x { \exp_not:n { \DeclareRobustCommand \pookfamily }
{
@@ -3806,7 +3878,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_setsayehfont:nn
{
- \fontspec_set_family:Nnn \l__xepersian_sayehfamily_family_tl {Script=Persian,Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \l__xepersian_sayehfamily_family_tl {Ligatures=PersianTeX,#1} {#2}
\tl_set_eq:NN \sayehdefault \l__xepersian_sayehfamily_family_tl
\use:x { \exp_not:n { \DeclareRobustCommand \sayehfamily }
{
@@ -3830,7 +3902,7 @@ Persian typesetting in XeLaTeX]
}
\cs_new:Nn \__xepersian_main_setiranicfont:nn
{
- \fontspec_set_family:Nnn \l__xepersian_iranicfamily_family_tl {Script=Persian,Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \l__xepersian_iranicfamily_family_tl {Ligatures=PersianTeX,#1} {#2}
\tl_set_eq:NN \iranicdefault \l__xepersian_iranicfamily_family_tl
\use:x { \exp_not:n { \DeclareRobustCommand \iranicfamily }
{
@@ -4258,7 +4330,7 @@ Persian typesetting in XeLaTeX]
\newcommand*{\@xepersian@pdfcustomproperties}{%
This is the xepersian package, Version \xepersian@version,
- Released February 1, 2022.
+ Released February 27, 2022.
}
\newcommand\twocolumnstableofcontents{%
@@ -4632,27 +4704,27 @@ number is 999,999,999.}%
\define@choicekey{xepersian.sty}{mathdigits}[\xepersian@tempa\xepersian@tempb]{automatic,default,persian}{%
\ifcase\xepersian@tempb\relax
- \AutoMathsDigits
+ \AutoMathDigits
\or
- \DefaultMathsDigits
+ \DefaultMathDigits
\or
- \PersianMathsDigits
+ \PersianMathDigits
\fi}
\define@choicekey{xepersian.sty}{inlinemathdigits}[\xepersian@tempa\xepersian@tempb]{automatic,default,persian}{%
\ifcase\xepersian@tempb\relax
- \AutoInlineMathsDigits
+ \AutoInlineMathDigits
\or
- \DefaultInlineMathsDigits
+ \DefaultInlineMathDigits
\or
- \PersianInlineMathsDigits
+ \PersianInlineMathDigits
\fi}
\define@choicekey{xepersian.sty}{displaymathdigits}[\xepersian@tempa\xepersian@tempb]{automatic,default,persian}{%
\ifcase\xepersian@tempb\relax
- \AutoDisplayMathsDigits
+ \AutoDisplayMathDigits
\or
- \DefaultDisplayMathsDigits
+ \DefaultDisplayMathDigits
\or
- \PersianDisplayMathsDigits
+ \PersianDisplayMathDigits
\fi}
\define@choicekey{xepersian.sty}{RTLdocument}[\xepersian@tempa\xepersian@tempb]{on,off}[on]{%
\ifcase\xepersian@tempb\relax
@@ -5815,13 +5887,13 @@ indexblock environment may only appear inside frontpage environment.
% \end{macrocode}
% \iffalse
%</xepersian-magazine.cls>
-%<*xepersian-mathsdigitspec.sty>
+%<*xepersian-mathdigitspec.sty>
%\fi
-% \section{File \texttt{xepersian-mathsdigitspec.sty}}
+% \section{File \texttt{xepersian-mathdigitspec.sty}}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{xepersian-mathsdigitspec}
- [2022/02/01 v1.1.8 Unicode Persian maths digits in XeLaTeX]
+\ProvidesPackage{xepersian-mathdigitspec}
+ [2022/02/04 v1.1.9 Unicode Persian math digits in XeLaTeX]
\def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi}
\let\newfam\new@mathgroup
\def\select@group#1#2#3#4{%
@@ -5896,7 +5968,7 @@ indexblock environment may only appear inside frontpage environment.
\tl_remove_once:Nn \@preamblecmds {\do#1}
}
\ExplSyntaxOff
-\newcommand\xepersian@PackageInfo[1]{\PackageInfo{xepersian-mathsdigitspec}{#1}}
+\newcommand\xepersian@PackageInfo[1]{\PackageInfo{xepersian-mathdigitspec}{#1}}
\newcommand\SetMathCode[4]{%
\Umathcode#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax}
\newcommand\SetMathCharDef[4]{%
@@ -5949,11 +6021,11 @@ indexblock environment may only appear inside frontpage environment.
}
}
-\cs_new:Npn \__xepersian_mathsdigitspec_error:nxx { \msg_error:nnxx {xepersian-mathsdigitspec} }
-\cs_new:Nn \__xepersian_mathsdigitspec_msg_new:nnnn
+\cs_new:Npn \__xepersian_mathdigitspec_error:nxx { \msg_error:nnxx {xepersian-mathdigitspec} }
+\cs_new:Nn \__xepersian_mathdigitspec_msg_new:nnnn
{ \msg_new:nnxx {#1} {#2} { \tl_trim_spaces:n {#3} } { \tl_trim_spaces:n {#4} } }
\char_set_catcode_space:n {32}
-\__xepersian_mathsdigitspec_msg_new:nnnn {xepersian-mathsdigitspec} {char-not-exist}
+\__xepersian_mathdigitspec_msg_new:nnnn {xepersian-mathdigitspec} {char-not-exist}
{
The font "#1" does not contain U+#2.
}
@@ -5963,7 +6035,7 @@ indexblock environment may only appear inside frontpage environment.
\char_set_catcode_ignore:n {32}
%\__kernel_primitive:NN \iffontchar \tex_iffontchar:D
-\prg_new_conditional:Nnn \__xepersian_mathsdigitspec_primitive_font_char_if_exist:n {p,TF,T,F}
+\prg_new_conditional:Nnn \__xepersian_mathdigitspec_primitive_font_char_if_exist:n {p,TF,T,F}
{
\tex_iffontchar:D \l_fontspec_font "#1 \scan_stop:
\prg_return_true:
@@ -5972,35 +6044,35 @@ indexblock environment may only appear inside frontpage environment.
\fi:
}
-\clist_new:N \l_xepersian_mathsdigitspec_char_clist
+\clist_new:N \l_xepersian_mathdigitspec_char_clist
-\cs_new:Nn \__xepersian_mathsdigitspec_char_set_not_exist_error:nn
+\cs_new:Nn \__xepersian_mathdigitspec_char_set_not_exist_error:nn
{
- \clist_set:Nn \l_xepersian_mathsdigitspec_char_clist { #1 }
- \clist_map_inline:Nn \l_xepersian_mathsdigitspec_char_clist {
- \__xepersian_mathsdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathsdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
+ \clist_set:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
+ \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
+ \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
}
}
-\cs_new:Nn \__xepersian_mathsdigitspec_char_prepend_not_exist_error:nn
+\cs_new:Nn \__xepersian_mathdigitspec_char_prepend_not_exist_error:nn
{
- \clist_put_left:Nn \l_xepersian_mathsdigitspec_char_clist { #1 }
- \clist_map_inline:Nn \l_xepersian_mathsdigitspec_char_clist {
- \__xepersian_mathsdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathsdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
+ \clist_put_left:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
+ \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
+ \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
}
}
-\cs_new:Nn \__xepersian_mathsdigitspec_char_append_not_exist_error:nn
+\cs_new:Nn \__xepersian_mathdigitspec_char_append_not_exist_error:nn
{
- \clist_put_right:Nn \l_xepersian_mathsdigitspec_char_clist { #1 }
- \clist_map_inline:Nn \l_xepersian_mathsdigitspec_char_clist {
- \__xepersian_mathsdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathsdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
+ \clist_put_right:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
+ \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
+ \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
}
}
-\cs_new:Nn \__xepersian_mathsdigitspec_char_not_exist_error:n
+\cs_new:Nn \__xepersian_mathdigitspec_char_not_exist_error:n
{
- \__xepersian_mathsdigitspec_char_set_not_exist_error:nn {
+ \__xepersian_mathdigitspec_char_set_not_exist_error:nn {
06F0 , 06F1 , 06F2 , 06F3 , 06F4 , 06F5 , 06F6 , 06F7 , 06F8 ,
06F9 , 066A , 066B
} { #1 }
@@ -6015,13 +6087,13 @@ indexblock environment may only appear inside frontpage environment.
\let\glb@currsize\relax
\fontspec_set_family:Nnn \g__xepersian_mathdigitsfamily_tl {Ligatures=PersianTeX,#1} {#2}
\__xepersian_setmathdigitfont_hook:nn {#1} {#2}
- \xepersian@PackageInfo{Defining the default Persian maths digits font as '#2'}
+ \xepersian@PackageInfo{Defining the default Persian math digits font as '#2'}
\DeclareSymbolFont{OPERATORS} {\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl} {m}{n}
\DeclareSymbolFont{new@mathbf@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{bx}{n}
\DeclareSymbolFont{new@mathit@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{it}
\DeclareSymbolFont{new@mathrm@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{n}
- \__xepersian_mathsdigitspec_char_not_exist_error:n { #2 }
- \def\persianmathsdigits{%
+ \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
+ \def\persianmathdigits{%
\SetMathCode{`0}{\mathalpha}{OPERATORS}{`0}
\SetMathCode{`1}{\mathalpha}{OPERATORS}{`1}
\SetMathCode{`2}{\mathalpha}{OPERATORS}{`2}
@@ -6050,7 +6122,7 @@ indexblock environment may only appear inside frontpage environment.
\fontspec_set_family:Nnn \g__xepersian_mathsfdigitfamily_tl {Ligatures=PersianTeX,#1} {#2}
\__xepersian_setmathsfdigitfont_hook:nn {#1} {#2}
\DeclareSymbolFont{new@mathsf@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathsfdigitfamily_tl}{m}{n}
- \__xepersian_mathsdigitspec_char_not_exist_error:n { #2 }
+ \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
\def\persianmathsfdigits{\tl_set_eq:NN \mathsf \new@mathsf}
}
@@ -6065,7 +6137,7 @@ indexblock environment may only appear inside frontpage environment.
\fontspec_set_family:Nnn \g__xepersian_mathttdigitfamily_tl {Ligatures=PersianTeX,#1} {#2}
\__xepersian_setmathttdigitfont_hook:nn {#1} {#2}
\DeclareSymbolFont{new@mathtt@font@digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathttdigitfamily_tl}{m}{n}
- \__xepersian_mathsdigitspec_char_not_exist_error:n { #2 }
+ \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
\def\persianmathttdigits{\tl_set_eq:NN \mathtt \new@mathtt}
}
@@ -6105,47 +6177,78 @@ indexblock environment may only appear inside frontpage environment.
\fi}
\mathcode`.="8000\relax
\def\ZifferLeer{\ifx\decimalseparator\undefined .\else \decimalseparator\fi}
-\def\DefaultInlineMathsDigits{\def\SetInlineMathsDigits{}}
-\def\DefaultDisplayMathsDigits{\def\SetDisplayMathsDigits{}}
-\def\DefaultMathsDigits{%
- \DefaultInlineMathsDigits%
- \DefaultDisplayMathsDigits%
-}
-\def\PersianInlineMathsDigits{\def\SetInlineMathsDigits{%
-\ifx\persianmathsdigits\undefined\else\persianmathsdigits\fi%
+\def\DefaultZifferLeer{.}
+\def\DefaultInlineMathDigits{\def\SetInlineMathDigits{}}
+\def\DefaultDisplayMathDigits{\def\SetDisplayMathDigits{}}
+\def\DefaultMathDigits{%
+ \DefaultInlineMathDigits%
+ \DefaultDisplayMathDigits%
+}
+\def\PersianInlineMathDigits{\def\SetInlineMathDigits{%
+\ifx\persianmathdigits\undefined\else\persianmathdigits\fi%
\ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi%
\ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}}
-\def\PersianDisplayMathsDigits{\def\SetDisplayMathsDigits{%
-\ifx\persianmathsdigits\undefined\else\persianmathsdigits\fi%
+\def\PersianDisplayMathDigits{\def\SetDisplayMathDigits{%
+\ifx\persianmathdigits\undefined\else\persianmathdigits\fi%
\ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi%
\ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}}
-\def\PersianMathsDigits{%
- \PersianInlineMathsDigits%
- \PersianDisplayMathsDigits%
+\def\PersianMathDigits{%
+ \PersianInlineMathDigits%
+ \PersianDisplayMathDigits%
}
-\def\AutoInlineMathsDigits{\def\SetInlineMathsDigits{%
-\ifx\persianmathsdigits\undefined\else\if@nonlatin\persianmathsdigits\fi\fi%
+\def\AutoInlineMathDigits{\def\SetInlineMathDigits{%
+\ifx\persianmathdigits\undefined\else\if@nonlatin\persianmathdigits\fi\fi%
\ifx\persianmathsfdigits\undefined\else\if@nonlatin\persianmathsfdigits\fi\fi%
\ifx\persianmathttdigits\undefined\else\if@nonlatin\persianmathttdigits\fi\fi}}
-\def\AutoDisplayMathsDigits{\def\SetDisplayMathsDigits{%
-\ifx\persianmathsdigits\undefined\else\if@nonlatin\persianmathsdigits\fi\fi%
+\def\AutoDisplayMathDigits{\def\SetDisplayMathDigits{%
+\ifx\persianmathdigits\undefined\else\if@nonlatin\persianmathdigits\fi\fi%
\ifx\persianmathsfdigits\undefined\else\if@nonlatin\persianmathsfdigits\fi\fi%
\ifx\persianmathttdigits\undefined\else\if@nonlatin\persianmathttdigits\fi\fi}}
-\def\AutoMathsDigits{%
- \AutoInlineMathsDigits%
- \AutoDisplayMathsDigits%
+\def\AutoMathDigits{%
+ \AutoInlineMathDigits%
+ \AutoDisplayMathDigits%
}
-\AutoMathsDigits
-\everymath\expandafter{\the\everymath\SetInlineMathsDigits%
- \let\SetDisplayMathsDigits\relax%
+\AutoMathDigits
+\everymath\expandafter{\the\everymath\SetInlineMathDigits%
+ \let\SetDisplayMathDigits\relax%
}
\everydisplay\expandafter{%
- \the\everydisplay\SetDisplayMathsDigits%
- \let\SetInlineMathsDigits\relax%
+ \the\everydisplay\SetDisplayMathDigits%
+ \let\SetInlineMathDigits\relax%
}
+
+\ExplSyntaxOn
+\cs_new_eq:NN \orig_ZifferLeer \ZifferLeer
+
+\NewDocumentCommand \SwitchToDefaultMathDigits { } {
+ \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
+ \SetMathCode{##1}{\mathalpha}{operators}{##1}
+ }
+ \SetMathCode{`\%}{\mathbin}{operators}{`\%}
+ \tl_set_eq:NN \ZifferLeer \DefaultZifferLeer
+ \tl_set_eq:NN \mathbf \orig_mathbf:n
+ \tl_set_eq:NN \mathit \orig_mathit:n
+ \tl_set_eq:NN \mathrm \orig_mathrm:n
+ \tl_set_eq:NN \mathsf \orig_mathsf:n
+ \tl_set_eq:NN \mathtt \orig_mathtt:n
+}
+
+\NewDocumentCommand \SwitchToPersianMathDigits { } {
+ \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
+ \SetMathCode{##1}{\mathalpha}{OPERATORS}{##1}
+ }
+ \SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪}
+ \tl_set_eq:NN \ZifferLeer \orig_ZifferLeer
+ \tl_set_eq:NN \mathbf \new@mathbf
+ \tl_set_eq:NN \mathit \new@mathit
+ \tl_set_eq:NN \mathrm \new@mathrm
+ \tl_set_eq:NN \mathsf \new@mathsf
+ \tl_set_eq:NN \mathtt \new@mathtt
+}
+\ExplSyntaxOff
% \end{macrocode}
% \iffalse
-%</xepersian-mathsdigitspec.sty>
+%</xepersian-mathdigitspec.sty>
%<*xepersian-multiplechoice.sty>
%\fi
% \section{File \texttt{xepersian-multiplechoice.sty}}
diff --git a/macros/xetex/latex/xepersian/xepersian.pdf b/macros/xetex/latex/xepersian/xepersian.pdf
index 3f50a1e4f2..a85b285515 100644
--- a/macros/xetex/latex/xepersian/xepersian.pdf
+++ b/macros/xetex/latex/xepersian/xepersian.pdf
Binary files differ
diff --git a/support/SQLTeX/Makefile.am b/support/SQLTeX/Makefile.am
new file mode 100644
index 0000000000..82bde20e48
--- /dev/null
+++ b/support/SQLTeX/Makefile.am
@@ -0,0 +1,9 @@
+# SQLTeX Automake makefile
+
+AUTOMAKE_OPTIONS = foreign
+SUBDIRS = src man doc
+
+EXTRA_DIST = README.md SQLTeX.exe
+
+.PHONY: all-am
+all-am:
diff --git a/support/SQLTeX/Makefile.in b/support/SQLTeX/Makefile.in
new file mode 100644
index 0000000000..aaec779cb4
--- /dev/null
+++ b/support/SQLTeX/Makefile.in
@@ -0,0 +1,740 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# SQLTeX Automake makefile
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/aclocal/ax_prog_perl_modules.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in install-sh missing
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = foreign
+SUBDIRS = src man doc
+EXTRA_DIST = README.md SQLTeX.exe
+all: all-recursive
+
+.SUFFIXES:
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--refresh check check-am clean clean-cscope clean-generic \
+ cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+ dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
+ distcheck distclean distclean-generic distclean-tags \
+ distcleancheck distdir distuninstallcheck dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+.PHONY: all-am
+all-am:
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/support/SQLTeX/README b/support/SQLTeX/README
deleted file mode 100644
index 543249e0fc..0000000000
--- a/support/SQLTeX/README
+++ /dev/null
@@ -1,91 +0,0 @@
-SQLTeX v2.0
-===========
-
-SQLTeX is a preprocessor to enable the use of SQL statements in LaTeX.
-It is a perl script that reads an input file containing the SQL commands,
-and writes a LaTeX file that can be processed with your LaTeX package.
-
-The SQL commands will be replaced by their values. It's possible to select
-a single field for substitution substitution in your LaTeX document, or to
-be used as input in another SQL command.
-
-When an SQL command returns multiple fields and or rows, the values can only
-be used for substitution in the document.
-
-Installing SQLTeX
------------------
-Before installing SQLTeX, you need to have it. The latest version can always
-be found at http://software.oveas.net/sqltex.
-The download consists of this readme, documentation in LaTeX and HTML format,
-an installation script for Unix (install), the Perl script SQLTeX, the
-default replace- and configuration files, and the Windows executable.
-
-On a Unix system, make sure the file install is executable by issueing
-the command:
- bash$ chmod +x install
-then execute it with:
- bash$ ./install
-
-The script will ask in which directory SQLTeX should be installed. If you are
-logged in as `root', the default will be /usr/local/bin, otherwise the
-current directory.
-Make sure the directory where SQLTeX is installed is in your path.
-
-For other operating systems, there is no install script, you will have to install
-it manually.
-
-On OpenVMS it would be something like:
- $ COPY SQLTEX.PL SYS$SYSTEM:
- $ COPY SQLTEX.CFG SYS$SYSTEM:
- $ COPY SQLTEX_R.DAT SYS$SYSTEM:
- $ SET FILE/PROTECTION=(W:R) SYS$SYSTEM:SQLTEX*.*
-However, on OpenVMS you also need to define the command SQLTEX by setting a symbol,
-either in the LOGIN.COM for all users who need to execute this script, or in some
-group-- or system wide login procedure, with the command:
- $ SQLTEX :== "PERL SYS$SYSTEM:SQLTEX.PL"
-
-For more information, please refer to the LaTeX documentation.
-
-
-Requirements:
--------------
-* Perl (http://perl.org/)
-* Perl-DBI (http://dbi.perl.org/)
-* The DBI driver for your database (see: http://search.cpan.org/search?query=DBD%3A%3A&mode=module)
-
-
-Note for MAC users:
--------------------
-If DBI and the database driver are not yet installed, Xtools needs to be
-installed in advance, since gcc is not available in a standard install
-of Mac OS X.
-
-
-Note for Windows users:
------------------------
-This distribution contains an .EXE file that was generated using PAR::Packer with
-Strawberry Perl.
-The files SQLTeX.EXE, SQLTeX.cfg and SQLTeX-r.dat must be placed manually in the
-directory of your choice, all in the same direcrtory.
-
-
-Thanks to:
-==========
-Ingo Reich for the comment on Mac OS
-Johan W. Klüwer for verifying the SyBase support
-Paolo Cavallini for adding PostgreSQL support
-
-==========================================================================
-The SQL\TeX\ project is available from GitHub:
- https://github.com/oveas/sqltex
-The latest stable release is always available at
- http://oveas.com/freeware/overige/sqltex
-For bugs, questions and comments, please use the issue tracker available at
- https://github.com/oveas/sqltex/issues
-
-This software is subject to the terms of the LaTeX Project Public License;
-see http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
-
-Copyright (c) 2001-2016 - Oscar van Eijk, Oveas Functionality Provider
-==========================================================================
-
diff --git a/support/SQLTeX/README.md b/support/SQLTeX/README.md
new file mode 100644
index 0000000000..b980c7a9a7
--- /dev/null
+++ b/support/SQLTeX/README.md
@@ -0,0 +1,103 @@
+SQLTeX v2.1
+===========
+
+**SQLTeX** is a preprocessor to enable the use of SQL statements in LaTeX. It is a
+perl script that reads an input file containing the SQL commands, and writes a
+LaTeX file that can be processed with your LaTeX package.
+
+The SQL commands will be replaced by their values. It's possible to select a
+single field for substitution substitution in your LaTeX document, or to be
+used as input in another SQL command.
+
+When an SQL command returns multiple fields and or rows, the values can only be
+used for substitution in the document.
+
+Installing SQLTeX
+-----------------
+
+### Linux ###
+
+On a linux system, download the archive and unpack:
+
+ $ tar vxzf sqltex-2.1.tar.gz
+ $ cd sqltex-2.1
+
+Next, install **SQLTeX** with the following commands:
+
+ $ ./configure [options]
+ $ make
+ $ sudo make install
+
+The _`options`_ in `configure` are optional. For an overview of available options
+type:
+
+ $ ./configure --help
+
+
+### Other operating systems ###
+
+
+#### Windows ####
+
+This distribution contains an .EXE file that was generated using `PAR::Packer`
+with Strawberry Perl.
+
+The files `sqltex-2.1\SQLTeX.EXE`, `sqltex-2.1\src\SQLTeX.cfg` and `sqltex-2.1\src\SQLTeX_r.dat` must be placed manually
+in the directory of your choice, all in the same direcrtory.
+
+#### OpenVMS ####
+
+For other operating systems, there is no install script, you will have to install
+it manually.
+
+On OpenVMS it would be something like:
+
+ $ COPY [.SQLTEX-2_1.SRC]SQLTEX.PL SYS$SYSTEM:
+ $ COPY [.SQLTEX-2_1.SRC]SQLTEX.CFG SYS$SYSTEM:
+ $ COPY [.SQLTEX-2_1.SRC]SQLTEX_R.DAT SYS$SYSTEM:
+ $ SET FILE/PROTECTION=(W:R) SYS$SYSTEM:SQLTEX*.*
+
+However, on OpenVMS you also need to define the command SQLTEX by setting a
+symbol, either in the LOGIN.COM for all users who need to execute this script,
+or in some group-- or system wide login procedure, with the command:
+
+ $ SQLTEX :== "PERL SYS$SYSTEM:SQLTEX.PL"
+
+Documentation
+-------------
+Full documentation is in `doc/SQLTeX.pdf`.
+
+On linux, this file will be placed in `/usr/share/doc/sqltex` by `make install`.
+This location can be changed with the _options_ in the `./configure` step.
+
+Requirements
+------------
+* [Perl](http://perl.org/) (>v5.10)
+* [Perl-DBI](http://dbi.perl.org/)
+* [The DBI driver for your database](http://search.cpan.org/search?query=DBD%3A%3A&mode=module)
+* [Getopt::Long](https://metacpan.org/pod/Getopt::Long)
+* [Term::ReadKey](https://metacpan.org/pod/Term::ReadKey)
+
+Note for MAC users
+------------------
+If DBI and the database driver are not yet installed, Xtools needs to be
+installed in advance, since gcc is not available in a standard install of Mac OS X.
+
+
+Credits
+-------
+* **Ingo Reich** for the comment on Mac OS
+* **Johan W. Klüwer** for verifying the SyBase support
+* **Paolo Cavallini** for adding PostgreSQL support
+
+----------
+
+The **SQLTeX** project is available from [GitHub](https://github.com/oveas/sqltex).
+
+For bugs, questions and comments, please use the [issue tracker](https://github.com/oveas/sqltex/issues)
+
+This software is subject to the terms of the LaTeX Project Public License;
+see [http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html](http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html)
+
+Copyright (c) 2001-2022 - Oscar van Eijk, Oveas Functionality Provider
+
diff --git a/support/SQLTeX/SQLTeX.pdf b/support/SQLTeX/SQLTeX.pdf
deleted file mode 100644
index 127dddd413..0000000000
--- a/support/SQLTeX/SQLTeX.pdf
+++ /dev/null
Binary files differ
diff --git a/support/SQLTeX/aclocal.m4 b/support/SQLTeX/aclocal.m4
new file mode 100644
index 0000000000..433d545f67
--- /dev/null
+++ b/support/SQLTeX/aclocal.m4
@@ -0,0 +1,740 @@
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.15'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.15], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.15])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
diff --git a/support/SQLTeX/aclocal/ax_prog_perl_modules.m4 b/support/SQLTeX/aclocal/ax_prog_perl_modules.m4
new file mode 100644
index 0000000000..11a326c930
--- /dev/null
+++ b/support/SQLTeX/aclocal/ax_prog_perl_modules.m4
@@ -0,0 +1,77 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_prog_perl_modules.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_PROG_PERL_MODULES([MODULES], [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+#
+# DESCRIPTION
+#
+# Checks to see if the given perl modules are available. If true the shell
+# commands in ACTION-IF-TRUE are executed. If not the shell commands in
+# ACTION-IF-FALSE are run. Note if $PERL is not set (for example by
+# calling AC_CHECK_PROG, or AC_PATH_PROG), AC_CHECK_PROG(PERL, perl, perl)
+# will be run.
+#
+# MODULES is a space separated list of module names. To check for a
+# minimum version of a module, append the version number to the module
+# name, separated by an equals sign.
+#
+# Example:
+#
+# AX_PROG_PERL_MODULES( Text::Wrap Net::LDAP=1.0.3, ,
+# AC_MSG_WARN(Need some Perl modules)
+#
+# LICENSE
+#
+# Copyright (c) 2009 Dean Povey <povey@wedgetail.com>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 7
+
+AU_ALIAS([AC_PROG_PERL_MODULES], [AX_PROG_PERL_MODULES])
+AC_DEFUN([AX_PROG_PERL_MODULES],[dnl
+
+m4_define([ax_perl_modules])
+m4_foreach([ax_perl_module], m4_split(m4_normalize([$1])),
+ [
+ m4_append([ax_perl_modules],
+ [']m4_bpatsubst(ax_perl_module,=,[ ])[' ])
+ ])
+
+# Make sure we have perl
+if test -z "$PERL"; then
+AC_CHECK_PROG(PERL,perl,perl)
+fi
+
+if test "x$PERL" != x; then
+ ax_perl_modules_failed=0
+ for ax_perl_module in ax_perl_modules; do
+ AC_MSG_CHECKING(for perl module $ax_perl_module)
+
+ # Would be nice to log result here, but can't rely on autoconf internals
+ $PERL -e "use $ax_perl_module; exit" > /dev/null 2>&1
+ if test $? -ne 0; then
+ AC_MSG_RESULT(no);
+ ax_perl_modules_failed=1
+ else
+ AC_MSG_RESULT(ok);
+ fi
+ done
+
+ # Run optional shell commands
+ if test "$ax_perl_modules_failed" = 0; then
+ :
+ $2
+ else
+ :
+ $3
+ fi
+else
+ AC_MSG_WARN(could not find perl)
+fi])dnl
diff --git a/support/SQLTeX/configure b/support/SQLTeX/configure
new file mode 100755
index 0000000000..4b758dc66c
--- /dev/null
+++ b/support/SQLTeX/configure
@@ -0,0 +1,3596 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for SQLTeX 2.1.
+#
+# Report bugs to <support@oveas.com>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and support@oveas.com
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='SQLTeX'
+PACKAGE_TARNAME='sqltex'
+PACKAGE_VERSION='2.1'
+PACKAGE_STRING='SQLTeX 2.1'
+PACKAGE_BUGREPORT='support@oveas.com'
+PACKAGE_URL=''
+
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+PERL
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+runstatedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir runstatedir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures SQLTeX 2.1 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/sqltex]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of SQLTeX 2.1:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+
+Report bugs to <support@oveas.com>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+SQLTeX configure 2.1
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by SQLTeX $as_me 2.1, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+am__api_version='1.15'
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='sqltex'
+ VERSION='2.1'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+# Make sure we have perl
+if test -z "$PERL"; then
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PERL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$PERL"; then
+ ac_cv_prog_PERL="$PERL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_PERL="perl"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+PERL=$ac_cv_prog_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+
+if test "x$PERL" != x; then
+ ax_perl_modules_failed=0
+ for ax_perl_module in 'DBI' 'Getopt::Long' 'Term::ReadKey' ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl module $ax_perl_module" >&5
+$as_echo_n "checking for perl module $ax_perl_module... " >&6; }
+
+ # Would be nice to log result here, but can't rely on autoconf internals
+ $PERL -e "use $ax_perl_module; exit" > /dev/null 2>&1
+ if test $? -ne 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; };
+ ax_perl_modules_failed=1
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; };
+ fi
+ done
+
+ # Run optional shell commands
+ if test "$ax_perl_modules_failed" = 0; then
+ :
+
+ else
+ :
+
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find perl" >&5
+$as_echo "$as_me: WARNING: could not find perl" >&2;}
+fi
+
+# Makefile to be generated in the subdircetories as welll
+ac_config_files="$ac_config_files Makefile src/Makefile doc/Makefile man/Makefile"
+
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by SQLTeX $as_me 2.1, which was
+generated by GNU Autoconf 2.69. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Report bugs to <support@oveas.com>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+SQLTeX config.status 2.1
+configured by $0, generated by GNU Autoconf 2.69,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X " :F $CONFIG_FILES "
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+
+ esac
+
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/support/SQLTeX/configure.ac b/support/SQLTeX/configure.ac
new file mode 100644
index 0000000000..057a159734
--- /dev/null
+++ b/support/SQLTeX/configure.ac
@@ -0,0 +1,28 @@
+# Autoconf configfile for SQLTeX.
+# To create a new distribuition, 3execute the following steps:
+# aclocal
+# autoconf
+# automake --add-missing
+# ./configure
+# make dist
+#
+# To install:
+# ./configure [options]
+# make
+# [sudo] make install
+
+AC_PREREQ([2.69])
+
+# Ensure configure can check for the required perl modules.
+m4_include([aclocal/ax_prog_perl_modules.m4])
+
+AC_INIT([SQLTeX], [2.1], [support@oveas.com])
+
+AM_INIT_AUTOMAKE
+
+AX_PROG_PERL_MODULES(DBI Getopt::Long Term::ReadKey, , )
+
+# Makefile to be generated in the subdircetories as welll
+AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile man/Makefile])
+
+AC_OUTPUT
diff --git a/support/SQLTeX/doc/Makefile.am b/support/SQLTeX/doc/Makefile.am
new file mode 100644
index 0000000000..c100c1012b
--- /dev/null
+++ b/support/SQLTeX/doc/Makefile.am
@@ -0,0 +1,16 @@
+# Automake makefile for the documentation
+
+.PHONY: all
+
+DISTFILES = Makefile.am Makefile.in SQLTeX.pdf SQLTeX.tex
+
+all :
+
+distdir : ${DISTFILES}
+ cp ${DISTFILES} $(distdir)
+
+SQLTeX.pdf: SQLTeX.tex
+ @pdflatex $^
+
+install: SQLTeX.pdf
+ cp $^ ${pdfdir}
diff --git a/support/SQLTeX/doc/Makefile.in b/support/SQLTeX/doc/Makefile.in
new file mode 100644
index 0000000000..0c4a9a76f4
--- /dev/null
+++ b/support/SQLTeX/doc/Makefile.in
@@ -0,0 +1,365 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Automake makefile for the documentation
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = doc
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/aclocal/ax_prog_perl_modules.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+DISTFILES = Makefile.am Makefile.in SQLTeX.pdf SQLTeX.tex
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+ ctags-am distclean distclean-generic distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+.PHONY: all
+
+all :
+
+distdir : ${DISTFILES}
+ cp ${DISTFILES} $(distdir)
+
+SQLTeX.pdf: SQLTeX.tex
+ @pdflatex $^
+
+install: SQLTeX.pdf
+ cp $^ ${pdfdir}
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/support/SQLTeX/doc/SQLTeX.pdf b/support/SQLTeX/doc/SQLTeX.pdf
new file mode 100644
index 0000000000..5b8d934189
--- /dev/null
+++ b/support/SQLTeX/doc/SQLTeX.pdf
Binary files differ
diff --git a/support/SQLTeX/SQLTeX.tex b/support/SQLTeX/doc/SQLTeX.tex
index 4d17cad262..2361476460 100644
--- a/support/SQLTeX/SQLTeX.tex
+++ b/support/SQLTeX/doc/SQLTeX.tex
@@ -8,8 +8,8 @@
,linkcolor=blue
,unicode]{hyperref}
\begin{document}
-\title{SQL\TeX\\v2.0}
-\date{Januari 12, 2016}
+\title{SQL\TeX\\v2.1}
+\date{Jan 21, 2022}
\author{Oscar van Eijk}
\maketitle
\hrulefill
@@ -40,49 +40,100 @@ in the document.
\section{Installing SQL\TeX}
Before installing SQL\TeX, you need to have it. The latest version can always be found at
-\textsf{http://freeware.oveas.com/sqltex}.
+\url{https://github.com/oveas/sqltex}.
The download consists of this do\-cumentation, an installation script for Unix
(\texttt{install}), and the Perl script \texttt{SQLTeX}, and a replace- file (\texttt{SQLTeX\_r.dat}) for manual installation
on non- unix platforms\footnote{on Unix, this file will be generated by the install script}.
+\subsection{Requirements}
+
+SQL\TeX\ requires the following software:
+
+\begin{itemize}
+\item Perl v5.10 or higher (\url{http://perl.org/})
+\item Perl-DBI (\url{http://dbi.perl.org/})
+\item The DBI driver for your database\\(see: \url{http://search.cpan.org/search?query=DBD\%3A\%3A\&mode=module})
+\item Getopt::Long (\url{https://metacpan.org/pod/Getopt::Long})
+\item Term::ReadKey (\url{https://metacpan.org/pod/Term::ReadKey})
+\end{itemize}
+
+\subsection{Installation}
+
+To install SQL\TeX, unpack the archive in a location of your choice and follow the steps below.
+
+\subsubsection{Linux}
+
+Go to the top directory where the archive was unpacked (`\texttt{cd sqltex-2.1}') and execute the following commands:
+
+\vs
+
+\noindent\texttt{\$ ./configure \textit{[options]}\\
+\$ make \\
+\$ \textit{[sudo] }make install}
+
+\vs
+
+In the last command, \texttt{sudo} is only required if the install destination (\texttt{PREFIX}, see below) is outside the own user environment.
+
+\vs
+
+For \texttt{configure}, the following options are user buy SQL\TeX\ (type \texttt{./configure --help} for a full list):
+
+\begin{description}
+\item[\texttt{--prefix=PREFIX}] install architecture-independent files in PREFIX. Default is \texttt{/usr/local}.
+\item[\texttt{--exec-prefix=EPREFIX}] install architecture-dependent files in EPREFIX. Default is \texttt{PREFIX}.
+\end{description}
+
+The directives above are used by the ones below:
+
+\begin{description}
+\item[\texttt{--bindir=DIR}] Location of the SQL\TeX\ script. Default is \texttt{EPREFIX/bin}
+\item[\texttt{--sysconfdir=DIR}] Location of the Configuration- and replacefiles. Default is \texttt{PREFIX/etc}
+\item[\texttt{--datarootdir=DIR}] Data root, used by the directives below. Default is \texttt{PREFIX/share}
+\item[\texttt{--mandir=DIR}] Location of the SQL\TeX\ manpage. Default is \texttt{DATAROOTDIR/man}
+\item[\texttt{--docdir=DIR}] Documentation root, used by \texttt{pdfdir} below. Default is \texttt{DATAROOTDIR/doc/sqltex}
+\item[\texttt{--pdfdir=DIR}] Location of SQL\TeX.pdf. Default is \texttt{DOCDIR}
+\end{description}
+
\vs
-On a Unix system, make sure the file \texttt{install} is executable by issueing
-the command:\\
-\texttt{bash\$ chmod +x install}\\
-then execute it with:\\
-\texttt{bash\$ ./install}
+After installation, the archive and unpack- directory can be removed.
-The script will ask in which directory SQL\TeX\ should be installed. If you are
-logged in as `root', the default will be \texttt{/usr/local/bin}, otherwise the
-current directory.\\
-Make sure the directory where SQL\TeX\ is installed is in your path.
+\subsubsection{Windows}
+
+This distribution contains an \texttt{.EXE} file that was generated using \texttt{PAR::Packer} (\url{https://metacpan.org/pod/PAR::Packer}) with Strawberry Perl (\url{https://strawberryperl.com/}).
\vs
-For other operating systems, there is no install script, you will have to install
-it manually.
+The files \texttt{sqltex-2.1\ensuremath{\backslash}SQLTeX.EXE}, \texttt{sqltex-2.1\ensuremath{\backslash}src\ensuremath{\backslash}SQLTeX.cfg} and \\ \texttt{sqltex-2.1\ensuremath{\backslash}src\ensuremath{\backslash}SQLTeX\_r.dat} must be placed manually in the directory of your choice, all in the same direcrtory.
+
+
+\subsubsection{OpenVMS}
+
+On \textsc{OpenVMS} the files must be copied manually to the destination. All files must reside in the same location:\\
+\texttt{\$ COPY [.SQLTEX-2\_1.SRC]SQLTEX.PL SYS\$SYSTEM:\\
+\$ COPY [.SQLTEX-2\_1.SRC]SQLTEX.CFG SYS\$SYSTEM:\\
+\$ COPY [.SQLTEX-2\_1.SRC]SQLTEX\_R.DAT SYS\$SYSTEM:\\
+\$ SET FILE/PROTECTION=(W:RE) SYS\$SYSTEM:SQLTEX.PL}
+
+\vs
-On \textsc{OpenVMS} it would be something like:\\
-\texttt{\$ COPY SQLTEX.PL SYS\$SYSTEM:\\
-\$ COPY SQLTEX.CFG SYS\$SYSTEM:\\
-\$ COPY SQLTEX\_R.DAT SYS\$SYSTEM:\\
-\$ SET FILE/PROTECTION=(W:R) SYS\$SYSTEM:SQLTEX*.*}\\
-However, on \textsc{OpenVMS} you also need to define the command \texttt{SQLTEX} by setting a symbol,
+Next, define the command \texttt{SQLTEX} by setting a symbol,
either in the \texttt{LOGIN.COM} for all users who need to execute this script, or in some group-- or
system wide login procedure, with the command: \\
\texttt{\$ SQLTEX :== "PERL SYS\$SYSTEM:SQLTEX.PL"}
\subsection{Configuration}\label{config}
-The location where SQL\TeX\ is installed also holds the configuration file \texttt{SQLTeX.cfg}.
-Multiple configuration files can be created, the command line option \texttt{-c} can be used to
+The configuration file \texttt{SQLTeX.cfg} is located in \texttt{/etc} (linux) or the same location where
+SQL\TeX\ is installed (all other operating systems).
+Multiple configuration files can be created, the command line option \texttt{--configfile} can be used to
select the requested configuration.
\vs
\noindent\hspace{-3mm}\textit{\underline{Note:}} If a 1.x version of SQL\TeX\ is installed on your system,
-make sure you saved the configuration section, which was inline in older versions.
+make sure you save the configuration section, which was inline in older versions.
\vs
@@ -101,10 +152,13 @@ If your database driver is not support, look for the function
parameter should be the name of the input file. If this filename has no extension,
SQL\TeX\ looks for one with the default extension.
-\item[stx] An output file can be given explicitly using the `\texttt{-o}' option. When omitted,
+\item[stx] An output file can be given explicitly using the `\texttt{--output}' option. When omitted,
SQL\TeX\ composes an output file name using this string.\\
E.g, if your input file is called \texttt{db-doc.tex}, SQL\TeX\ will produce an
-outputfile with the name \texttt{db-doc\_stx.tex}.
+outputfile with the name \texttt{db-docstx.tex}.
+
+\item[def\_out\_is\_in] By default, when no output file is specified or an output file without (relative) path is given, the output file will be generated in the current directory.\\
+This behaviour changed in version 2.1. In older version, the location of the output file always was the same as the input file location. To revert to the old behaviour, set \texttt{def\_out\_is\_in} to `\texttt{1}'\footnote{ Note the pre-v2.1 implementation also contained a bug: if the output file name contained an absolute or relative path, this path was always taken as relative from the input file location. In the new implementation, \texttt{def\_out\_is\_in} is ignored if the output file name contains a path.}.
\item[rfile\_comment] The comment-sign used in replace files. If this is empty, comments are not allowed in
the replace files.
@@ -120,7 +174,7 @@ All SQL\TeX\ commands start with the same string. By default, this is the string
\texttt{\textbf{sql}}. When user commands are defined that start with the same
string, this can be changed here to prevent conflicts.
-\item[sql\_open] This string is appended to the \texttt{cmd\_prefix}x to
+\item[sql\_open] This string is appended to the \texttt{cmd\_prefix} to
get the complete SQL\TeX\ command for opening a database.\\
With the default configuration this command is ``\texttt{\bs sqldb}''.
@@ -148,11 +202,6 @@ With the default configuration this command is ``\texttt{\bs sqluse}''.
\item[sql\_end] This string is appended to the \texttt{cmd\_prefix} to get the complete SQL\TeX\ command to end a loop context (see section~\ref{loops}).\\
With the default configuration this command is ``\texttt{\bs sqlend}''.
-\item[less\_av \& more\_av] These settings are used to determine how the \textsl{help} output should be displayed. If the command `\texttt{less}' is available on the current system, the output will be parsed through this program. Otherwise the output will be parsed through the program `\texttt{more}' if availeble. Both programs are usually available on Unix system (\texttt{more} is standard on most Unix systems), but ports for other
-operating systems are available as well.\\
-Set the values to ``0'' for the program(s) that is (are) not available, or if you don't want to use it.\\
-If none of these programs is available, the \textsl{help} output is plain echoed to the display.
-
\item[repl\_step] Replacing strings (see section~\ref{replfiles} below) is done two steps, to prevent values from being replaced twice.
This setting---followed by a three-digit integer - ``000'' to ``999''---is used in the first step and replaces values from the first column.
In the second step, values from the second column replace the temporary value. \\
@@ -168,8 +217,8 @@ Normally, this setting should never change, but if the value for \texttt{cmd\_pr
Replace files can be used to substitute values in the output of your SQL commands with a different value. This is especially usefull when the database
contains characters that are special characters in \LaTeX, like the percent sign (`\%'), underscore (`\_') etc.
-When SQL\TeX\ is installed, it comes with a standard file---\texttt{SQLTeX\_r.dat}---which is located in the same directory where SQLTeX is installed,
-with the following replacements:
+When SQL\TeX\ is installed, it comes with a standard file---\texttt{SQLTeX\_r.dat}---which is located in \texttt{/etc} (linux) or the same location where
+SQL\TeX\ is installed (all other operating systems), with the following replacements:
\vspace{3mm}
@@ -203,7 +252,7 @@ the word ``LaTeX'' will be changed, but ``latex'' is untouched.
\vspace{3mm}
Different replace files can be created. To select a different replace file for a certain SQL\TeX\ source, use the commandline option
-`\texttt{-r \textit{filename}}'. To disable the use of replace files, use `\texttt{-rn}'.
+`\texttt{--replacementfile \textit{filename}}'. To disable the use of replace files, use `\texttt{no-replacementfile}'.
\subsubsection{Regular expressions}\label{regexp}
@@ -273,7 +322,7 @@ any---are written to the output:
Above you see the SQL\TeX\ command \texttt{\bs sqldb} was removed. Only the command was removed, not
the \textsl{newline} character at the end of the line, so an empty line will be printed instead.
-The example below shows the output is an SQL\TeX\ command was found on a line with other \LaTeX\
+The example below shows the output if an SQL\TeX\ command was found on a line with other \LaTeX\
directives:
\vs
@@ -294,8 +343,8 @@ the database, the returned value is written instead:
\vs
\begin{minipage}[t]{0.5\textwidth}\textsl{Input file:}\\\texttt{\footnotesize{This invoice has \bs sqlfield\{SELECT COUNT(*) FROM INVOICE\_LINE \\
-WHERE INVOICE\_NR = 12345\} lines.\\
-\hrulefill}}\end{minipage}\hfill\begin{minipage}[t]{0.5\textwidth}\textsl{Output file:}\\\texttt{\footnotesize{This invoice has 4 lines \\
+WHERE INVOICE\_NR = 20190062\} lines.\\
+\hrulefill}}\end{minipage}\hfill\begin{minipage}[t]{0.5\textwidth}\textsl{Output file:}\\\texttt{\footnotesize{This invoice has 3 lines \\
}}\end{minipage}
\subsection{SQL statements}\label{sqlstatements}
@@ -308,13 +357,13 @@ Details about the SQL\TeX\ commands will be described in the next sections.
Let's look at a simple example. Suppose we want to retreive all header information from the database
for a specific invoice. The SQL statement could look something like this: \\
-\texttt{SELECT $\ast$ FROM INVOICE WHERE INVOICE\_NR = 12345;}\\
+\texttt{SELECT $\ast$ FROM INVOICE WHERE NR = 20190062;}\\
To implement this statement in an SQL\TeX\ file, the \texttt{\bs sqlrow} command should be used (see
section~\ref{sqlrow}):
First, it is important to know that SQL statements should \textit{not} contain the ending semicolon (;) in
any of the SQL\TeX\ commands. The command in SQL\TeX\ would be:\\
-\texttt{\bs sqlrow\{SELECT $\ast$ FROM INVOICE WHERE INVOICE\_NR = 12345\}}
+\texttt{\bs sqlrow\{SELECT $\ast$ FROM INVOICE WHERE NR = 20190062\}}
Next, SQL\TeX\ would be useless if you have to change your input file every time you want to generate
the same document for another invoice.
@@ -326,28 +375,49 @@ line (see section~\ref{params}), variables can be defined using the \texttt{\bs
described in section~\ref{vars}.
Given the example above, the invoice number can be passed as a parameter by rewriting the command as: \\
-\texttt{\bs sqlrow\{SELECT $\ast$ FROM INVOICE WHERE INVOICE\_NR = \$PAR1\}} \\
-or as as variable with the code line: \\
-\texttt{\bs sqlrow\{SELECT $\ast$ FROM INVOICE WHERE INVOICE\_NR = \$VAR0\}}
+\texttt{\bs sqlrow\{SELECT $\ast$ FROM INVOICE WHERE NR = \$PAR1\}} \\
+or as a variable with the code line: \\
+\texttt{\bs sqlrow\{SELECT $\ast$ FROM INVOICE WHERE NR = \$VAR0\}}
Note you have to know what datatype is expected by your database. In the example here the datatype is
\textsc{integer}. If the field ``\textsc{invoice\_nr}'' contains a \textsc{varchar} type, the
-\texttt{\$PAR}amater or \texttt{\$VAR}iable should be enclosed by quotes: \\
-\texttt{\bs sqlrow\{SELECT $\ast$ FROM INVOICE WHERE INVOICE\_NR = '\$PAR1'\}}
+\texttt{\$PAR}ameter or \texttt{\$VAR}iable should be enclosed by quotes: \\
+\texttt{\bs sqlrow\{SELECT $\ast$ FROM INVOICE WHERE NR = '\$PAR1'\}}
-\subsection{Opening the database}
+\subsection{Opening the database}\label{opendb}
Before any information can be read from a database, this database should be opened.
This is done with the \texttt{\textbf{\bs sqldb}} command.
-\texttt{\bs sqldb} requires the name of the dabatase. Optionally, a username and password can be given. When
-omitted, SQL\TeX\ assumes no username and password is required to connect to the database (the user that
-executes SQL\TeX\ should have access to the specified database). \\
+\texttt{\bs sqldb} requires the name of the dabatase. Optionally, a username, password and remote database host can be given. \\
The format of the command is:\\
-\texttt{\bs sqldb[username,password]\{database\}}
+\texttt{\bs sqldb[user=\textit{username},passwd=\textit{password},host=\textit{host}]\{database\}}
The command can be used anywhere in your input file, but should occur before the first command that tries to
read data from the database.
+\vs
+
+If the keywords \texttt{user}, \texttt{passwd} and \texttt{host} are omitted, SQL\TeX\ assumes the options are given in
+this order:\\
+\texttt{\bs sqldb[\textit{username},\textit{password},\textit{host}]\{database\}}
+
+Default host is localhost, the default user is the current user.
+
+\subsubsection{Prompt for password and/or username}
+
+If a password is omitted, SQL\TeX\ will try connect to the database without a password, unless the commandline option \texttt{--password} is given (see section \ref{cmdline}).
+
+\vs
+
+Forcing a user to enter a database password when SQL\TeX\ runs can be achieved by specifying \texttt{?} as password:\\
+\texttt{\bs sqldb[user=dbUser,passwd=?]\{database\}}
+
+\vs
+
+When different database users should be able to use the same SQL\TeX\ file, the username can also be a questionmark, forcing SQL\TeX
+to prompt for a username:\\
+\texttt{\bs sqldb[user=?,passwd=?]\{database\}}
+
\subsection{Reading a single field}\label{sqlfield}
When a single field of information is to be read from the database, the command \texttt{\textbf{\bs sqlfield}}
@@ -356,7 +426,7 @@ The SQL command is enclosed by curly braces. Square brackets can optionally be u
Currently, the only supported option is \texttt{setvar} (see section~\ref{vars}).
The full syntax or the \texttt{\bs sqlfield} command is:\\
-\texttt{\bs sqlrow[\textit{options}]\{SELECT \textit{fieldname} FROM \textit{tablename} WHERE \textit{your where-clause}\}} \\
+\texttt{\bs sqlfield[\textit{options}]\{SELECT \textit{fieldname} FROM \textit{tablename} WHERE \textit{your where-clause}\}} \\
By default, the SQL\TeX\ command is replaced with the value returned by the SQL query. This behaviour
can be changed with options.
@@ -386,14 +456,14 @@ This creates a variable that can be used as \texttt{\$VAR0},
\item retrieve the invoice number using the customer number (a command line parameter,
see also section~\ref{params}) and the variable containing the invoice date.
Store this invoice number in \texttt{\$VAR1}: \\
-\texttt{\bs sqlfield[setvar=1]\{SELECT INVOICE\_NR FROM INVOICES \\
+\texttt{\bs sqlfield[setvar=1]\{SELECT NR FROM INVOICES \\
WHERE CUST\_NR = '\$PAR1' AND INVOICE\_DATE = '\$VAR0'\}}
\item use \texttt{\$VAR1} to retrieve all invoice information.
\end{itemize}
\vs
-The SQL queries used here do not display any output in your \LaTeX document.
+The SQL queries used here do not display any output in your \LaTeX\ document.
\subsection{Reading rows of data}\label{sqlrow}
@@ -412,16 +482,16 @@ and ``\texttt{rowsep}'' can be used.
e.g. In a \texttt{tabular} enviroment the fields should be seperated by an amphesand (\texttt{\&}),
perhaps a line should seperate the rows of information. (\texttt{\bs\bs~\bs hline}).
To do this, the options can be used with \texttt{\bs sqlrow} as shown here: \\
-\texttt{\bs sqlrow[fldsep=\&,rowsep=\bs\bs~\bs hline]\{SELECT I.LINE\_NR, A.ARTICLE\_NR,
-A.PRICE, I.AMOUNT, (A.PRICE * I.AMOUNT) FROM ARTICLE A, INVOICE\_LINE I WHERE I.INVOICE\_NR = \$VAR1
-AND I.ARTICLE\_NR = A.ARTICLE\_NR\}}
+\texttt{\bs sqlrow[fldsep=\&,rowsep=\bs\bs~\bs hline]\{SELECT I.NR, A.NR,
+A.PRICE, I.AMOUNT, (A.PRICE * I.AMOUNT) FROM ARTICLE A, INVOICE\_LINE I WHERE I.NR = \$VAR1
+AND I.ARTICLE\_NR = A.NR\}}
\vs
This will produce an output like: \\
-\texttt{1 \& 9712 \& 12 \& 1 \& 12 \bs\bs~\bs hline \\
-2 \& 4768 \& 9.75 \& 3 \& 29.25 \bs\bs~\bs hline \\
-3 \& 4363 \& 1.95 \& 10 \& 19.5 \bs\bs~\bs hline \\
+\texttt{1 \& 9712 \& 12 \& 1 \& 12 \bs\bs~\bs hline
+2 \& 4768 \& 9.75 \& 3 \& 29.25 \bs\bs~\bs hline
+3 \& 4363 \& 1.95 \& 10 \& 19.5 \bs\bs~\bs hline
4 \& 8375 \& 12.5 \& 2 \& 25 \bs\bs~\bs hline}
\subsubsection{Output rows on seperate lines}
@@ -430,17 +500,32 @@ Some \LaTeX\ packages require input on a seperate line. If this output is to be
read from a database, this can be set with the \texttt{rowsep} option using the
fixed text ``\texttt{NEWLINE}''.
+Changing the example from section \ref{sqlrow} above to:\\
+\texttt{\bs sqlrow[fldsep=\&,rowsep=\bs\bs~\bs hline NEWLINE]\{SELECT I.NR, A.NR,
+A.PRICE, I.AMOUNT, (A.PRICE * I.AMOUNT) FROM ARTICLE A, INVOICE\_LINE I WHERE I.NR = \$VAR1
+AND I.ARTICLE\_NR = A.NR\}}
+
+\vs
+
+would procude the following result: \\
+\texttt{1 \& 9712 \& 12 \& 1 \& 12 \bs\bs~\bs hline \\
+2 \& 4768 \& 9.75 \& 3 \& 29.25 \bs\bs~\bs hline \\
+3 \& 4363 \& 1.95 \& 10 \& 19.5 \bs\bs~\bs hline \\
+4 \& 8375 \& 12.5 \& 2 \& 25 \bs\bs~\bs hline}
+
+
+
\subsubsection{Store data in an array}
-The \texttt{\bs sqlrow} command can also be used to store the data in an array. The value returned by the SQL query is not displayed in this case. Instead, an array is created which can be used later the document in a loop context (see section~\ref{loops}).
+The \texttt{\bs sqlrow} command can also be used to store the data in an array. The value returned by the SQL query is not displayed in this case. Instead, an array is created which can be used later in the document in a loop context (see section~\ref{loops}).
Therefore, the option \texttt{\textbf{[setarr=\textit{n}]}} is used, where \textit{n} is an integer between
0 and 9.
\subsection{Loop context}\label{loops}
-In a loop context, an array if filled with data from the database using \texttt{\bs sqlrow}.\\
+In a loop context, an array is filled with data from the database using \texttt{\bs sqlrow}.\\
Later in the document, the data can be used in a textblock that will be written to the outputfile once for every record retrieved.
\vs
@@ -453,19 +538,19 @@ Multiple textblocks can occur in the document, but they can \textit{not} be nest
In the example below, data for unpaid invoices is stored in an array identified with sequence number 0:
-\texttt{\bs sqlrow[setarr=0]\{SELECT I.INVOICE\_NR AS nr\\
+\texttt{\bs sqlrow[setarr=0]\{SELECT I.NR AS nr\\
\hspace*{15mm}, I.DUE\_DATE AS date\\
\hspace*{15mm}, I.TOTAL AS amount\\
\hspace*{15mm}, C.NAME AS customer\\
-\hspace*{15mm}FROM INVOICES I\\
-\hspace*{15mm}LEFT OUTER JOIN CUSTOMERS C\\
-\hspace*{20mm}ON C.CUST\_NR = I.CUST\_NR\\
-\hspace*{15mm}WHERE I.PAY\_DATE = NULL\}}
+\hspace*{15mm}FROM INVOICE I\\
+\hspace*{15mm}LEFT OUTER JOIN CUSTOMER C\\
+\hspace*{20mm}ON C.NR = I.CUST\_NR\\
+\hspace*{15mm}WHERE I.PAY\_DATE IS NULL\}}
\vs
To use this data, a textblock must start with: \texttt{\bs sqlstart\{0\}}\\
-Between this command and the first occurrence of \texttt{\bs sqlend\{\}}, an unlimited amount\footnote{ limited by your computer's memory only} of \LaTeX\ text can be. Within this text, every occurence of \texttt{\bs sqluse\{<\textit{field name}>\}} will be replaced with the matching field from the current row, e.g.:
+Between this command and the first occurrence of \texttt{\bs sqlend\{\}}, an unlimited amount\footnote{ limited by your computer's memory only} of \LaTeX\ text can be written. Within this text, every occurence of \texttt{\bs sqluse\{<\textit{field name}>\}} will be replaced with the matching field from the current row, e.g.:
\noindent\begin{verbatim}
\sqlstart{0}
@@ -488,16 +573,10 @@ as soon as possible.
\subsection{Output multiple documents}\label{multidoc}
-A single input file can be created to generate more output files. This option
-retrieves the first parameter (see section~\ref{params}) from the database
-(ignoring any parameters that where given on the command line!).
+A single input file can be created to generate more output files using the \texttt{--multidoc-numbered} or \texttt{--multidoc-named} commandline option.
-\vs
-
-The input document must contain the command \texttt{\bs sqlsetparams} (in the
-default configuration) without any options. The query that follows can return an
-unlimited number of rows all containing exactly 1 field: \\
-\texttt{\bs sqlsetparams\{SELECT INVOICE\_NR FROM INVOICES WHERE PAY\_DATE = NULL\}}
+The input document must contain the command \texttt{\bs sqlsetparams} without any options. The query that follows can return an unlimited number of rows all containing exactly 1 field: \\
+\texttt{\bs sqlsetparams\{SELECT NR FROM INVOICES WHERE PAY\_DATE = NULL\}}
\vs
@@ -505,36 +584,37 @@ By processing this command, SQL\TeX\ builds a list with all values retrieved and
processes the input file again for each value.\\
In those runs, the queries are executed as described in the previous sections,
using the value as a parameter:\\
-\texttt{\bs sqlrow\{SELECT * FROM INVOICES WHERE INVOICE\_NR = \$PAR1\}}
+\texttt{\bs sqlrow\{SELECT * FROM INVOICES WHERE NR = \$PAR1\}}
\vs
-To enable the multidocument mode, the command line switch \texttt{-m} or \texttt{-M} must be
-given and no parameters are allowed. The switches \texttt{-m} and \texttt{-M} cannot be used together.\\
-Without the \texttt{-m} or \texttt{-M} switch, a parameter can be given and a single output
+The options \texttt{--multidoc-numbered} or \texttt{--multidoc-named} cannot be used together.\\
+Without these options, a parameter can be given and a single output
document will be created, ignoring the \texttt{\bs sqlsetparams} command.
\vs
-With the \texttt{-m} switch, output filenames will be numbered \texttt{\emph{filename}\_1.tex} to \texttt{\emph{filename}\_\emph{n}.tex}.\\
-With the \texttt{-M} switch, output filenames will be numbered \texttt{\emph{filename}\_\emph{parameter}.tex}, where \emph{parameter} is the value taken from the
-database (\texttt{invoice\_nr} in the example above). Note the parameter will not be formatted to be filename-friendly!\\
+With the \texttt{--multidoc-numbered} option, output filenames will be numbered \texttt{\emph{filename}\_1.tex} to \texttt{\emph{filename}\_\emph{n}.tex}.\\
+With the \texttt{--multidoc-named} option, output filenames will be numbered \texttt{\emph{filename}\_\emph{parameter}.tex}, where \emph{parameter} is the value taken from the database (the incoie number \texttt{nr} in the example above). \\
+Note the parameter will not be formatted to be filename-friendly!\\
\subsection{Update database records}
Since version 1.5, SQL\TeX\ supports database updates as well: \\
-\texttt{\bs sqlupdate\{UPDATE INVOICES SET REMINDERS = REMINDERS + 1,
-LAST\_REMINDER = NOW() INVOICE\_NR = \$VAR1\}}
+\texttt{\bs sqlupdate\{UPDATE INVOICE SET REMINDERS = REMINDERS + 1,
+LAST\_REMINDER = NOW() WHERE NR = \$VAR1\}}
+
+This command accepts no options.
\vs
-This command accepts no options.
+By default, the update statements will be ignored. The actually process them, the commandline options \texttt{--updates} must be given!
\section{Process your SQL\TeX\ file}
-To process you SQL\TeX\ file and create a \LaTeX\ file with all information read from
+To process your SQL\TeX\ file and create a \LaTeX\ file with all information read from
the database, call SQL\TeX\ with the parameter(s) and (optional) command\-line options as
-described here:
+described here.
\subsection{Parameters}\label{params}
@@ -552,15 +632,19 @@ parameter `0' cannot be used, since that contains the filename!}, it is replaced
\subsection{Command line options}\label{cmdline}
-SQL\TeX\ accepts the followint command- line options:
+SQL\TeX\ accepts the following command- line options:
\begin{description}
-\item[-c \textit{file}] SQL\TeX\ configuration file. Default is \texttt{SQLTeX.cfg}
+\item[\texttt{--configfile \textit{file}, -c \textit{file}}] SQL\TeX\ configuration file. Default is \texttt{SQLTeX.cfg}
in the same location where SQL\TeX\ is installed.
-\item[-e \textit{string}] add \textit{string} to the output filename:
+\item[\texttt{--file-extension \textit{string}, -E \textit{string}}] replace input file extension in outputfile:
+\texttt{input.tex} will be \texttt{input.\textit{string}}. \\
+For further notes, see option \texttt{--filename-extend} below.
+
+\item[\texttt{--filename-extend \textit{string}, -e \textit{string}}] add \textit{string} to the output filename:
\texttt{input.tex} will be \texttt{input\textit{string}.tex}. This overwrites
-the configuration setting \texttt{stx} \\
+the configuration setting \texttt{stx}. \\
In \textit{string}, the values between curly braces \{\} will be substituted:
\begin{description}
\item[P\textit{n}] parameter \textit{n}
@@ -570,56 +654,55 @@ In \textit{string}, the values between curly braces \{\} will be substituted:
\item[DT] current date and time (\textit{yyyymmddhhmmss})
\item[T] current time (\textit{hhmmss})
\end{description}
-e.g., the command `\texttt{SQLTeX -e \_\{P1\}\_\{W\} my\_file code}'
-will read `\texttt{my\_file.tex}' and write `\texttt{myfile\_code\_Tue.tex}'
-The same command, but with option \texttt{-E} would create the
-outputfile \texttt{myfile.\_code\_Tuesday}
-By default (without \texttt{-e} or \texttt{-E}) the outputfile
-\texttt{myfile\_stx.tex} would have been written.
-The options \texttt{-E} and \texttt{-e} cannot be used together or with \texttt{-o}.
-
-\item[-E \textit{string}] replace input file extension in outputfile:
-\texttt{input.tex} will be \texttt{input.\textit{string}} \\
-For further notes, see option \texttt{-e} above.
-
-\item[-f] force overwrite of existing files. By default, SQL\TeX\ exists with a
+e.g., the command\\
+\hspace*{1em}\texttt{SQLTeX --filename-extend \_\{P1\}\_\{W\} my\_file code}\\
+will read `\texttt{my\_file.tex}' and write `\texttt{myfile\_code\_Tue.tex}'.\\
+The same command, but with option \texttt{---file-extension} would create the outputfile \texttt{my\_file.\_code\_Tue}\\
+The options \texttt{--file-extension} and \texttt{--filename-extend} cannot be used together or with \texttt{--output}.
+
+\item[\texttt{--force, -f}] force overwrite of existing files. By default, SQL\TeX\ exits with a
warning message it the outputfile already exists.
-\item[-h] print this help message and exit.
+\item[\texttt{--help, -h}] print this help message and exit.
-\item[-m] Multidocument mode; create one document for each parameter that is retrieved
-from the database in the input document (see section~\ref{multidoc}). This option cannot be used with \texttt{-o}.
+\item[\texttt{--multidoc-numbered, -m}] Multidocument mode; create one document for each parameter that is retrieved
+from the database in the input document (see section~\ref{multidoc}). This option cannot be used with \texttt{--output}.
-\item[-M] Same as -m, but with the parameter in the filename instead of a serial number (see section~\ref{multidoc}).
+\item[\texttt{--multidoc-named, -M}] Same as \texttt{--multidoc-numbered}, but with the parameter in the filename instead of a serial number (see section~\ref{multidoc}).
-\item[-N] \texttt{NULL} return values allowed. By default SQL\TeX\ exits if a
+\item[\texttt{--null-allowed, -N}] \texttt{NULL} return values allowed. By default SQL\TeX\ exits if a
query returns an empty set.
-\item[-o \textit{file}] specify an output file. Cannot be used with \texttt{-e} or \texttt{-E}.
+\item[\texttt{--output \textit{file}, -o \textit{file}}] specify an output file. Cannot be used with \texttt{--file-extension},
+\texttt{--filename-extend} or the \texttt{--multidoc} options.
-\item[-p \textit{prefix}] prefix used in the SQL\TeX\ file. Default is \texttt{sql} (see also section~\ref{config}
+\item[\texttt{--prefix \textit{prefix}, -p \textit{prefix}}] prefix used in the SQL\TeX\ file. Default is \texttt{sql} (see also section~\ref{config}
on page~\pageref{prefix}. This overwrites the configurarion setting \texttt{cmd\_prefix}.
-\item[-P] prompt for database password. This overwrites the password in the
-input file.
+\item[\texttt{--password \textit{[password]}, -P} \textit{[password]}] database password. The value is optional; if omitted, SQL\TeX\ will prompt for a password. This overwrites the password in the input file.\\
+
+\item[\texttt{--quiet, -q}] run in quiet mode.
-\item[-q] run in quiet mode.
+\item[\texttt{--replacementfile \textit{replace}, -r \textit{replace}}] Specify a file that contains the replace characters (see section~\ref{replfiles}). \\
+Default is \texttt{SQLTeX{\_}r.dat} in the same location where SQL\TeX\ is installed.
-\item[-r \textit{replace}] Specify a file that contains the replace characters (see section~\ref{replfiles}). This is
-a list with two \texttt{TAB}- seperated fields per lione. The first field holds a string that will be replaced in the SQL output
+\item[\texttt{--no-replacementfile, -R}] Do not use a replace file. \texttt{--no-replacementfile} and \texttt{--replacementfile \textit{file}} are handled in the same order as
+they appear on the command line, overwriting each other.\\
+For backwards compatibility, \texttt{-rn} is also still supported.
-\item[-rn] Do not use a replace file. \texttt{-rn} and \texttt{-r \textit{file}} are handled on the same order in which they appear
-on the commandline and overwrite each other.
+\item[\texttt{--use-local-config, -l}] Use the current installation directory as default location for the config- and replacement files in stead of \texttt{/etc}\footnote{ linux only}.
-\item[-s \textit{server}] SQL server to connect to. Default is \texttt{localhost}.
+\item[\texttt{--sqlserver \textit{server}, -s \textit{server}}] SQL server to connect to. Default is \texttt{localhost}.
-\item[-U \textit{user}] database username. This overwrites the username in the
-input file.
+\item[\texttt{--updates, -u}] if the input file contains updates, process them.
-\item[-V] print version number and exit.
+\item[\texttt{--username \textit{user}, -U \textit{user}}] database username. This overwrites the username in the input file.
+
+\item[\texttt{--version, -V}] print version number and exit.
\end{description}
+
\section{SQL\TeX\ errors and warnings}
\noindent\textbf{\texttt{no input file specified}}
@@ -772,27 +855,67 @@ conflict with default SQL\TeX\ commands. Change the SQL\TeX\ command prefix (see
\section{Copyright and disclaimer}
\noindent\hrulefill \\
-The SQL\TeX\ project is available from GitHub: https://github.com/oveas/sqltex\\
-The latest stable release is always available at http://oveas.com/freeware/overige/sqltex\\
-For bugs, questions and comments, please use the issue tracker available at https://github.com/oveas/sqltex/issues
+The SQL\TeX\ project is available from GitHub: \url{https://github.com/oveas/sqltex}\\
+For bugs, questions and comments, please use the issue tracker available at \url{https://github.com/oveas/sqltex/issues}
\vspace{3mm}
-\noindent Copyright\copyright\ 2001-2016 - Oscar van Eijk, Oveas Functionality Provider
+\noindent Copyright\copyright\ 2001-2022 - Oscar van Eijk, Oveas Functionality Provider
\noindent\hrulefill \\
\noindent This software is subject to the terms of the LaTeX Project Public License;
-see http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html.
+see \url{http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html}.
\section{History}
\begin{description}
-\item[v1.3] \textit{released: Mar 16, 2001}\\First public release
-\item[v1.4] \textit{released: May 2, 2002}\\Implemented replace files
-\item[v1.4.1] \textit{released: Feb 15, 2005}\\Fix: removed leading whitespaces added to database results befure replace
-\item[v1.5] \textit{released: Nov 23, 2007}\\Support for multiple databases\\Implemented database updates (\texttt{sqlupdate})\\Implemented multiple output documents (option \texttt{-m})
-\item[v2.0] \textit{released: Jan 12, 2016}\\Fix: Oracle support using ORASID\\Fix: Ensure replacements are handled in the same order as they appear in the replacements file\\Separate configuration file(s)\\Added the options \texttt{-c} and \texttt{-M}\\Support for regular expressions in replace files\\Implemented support for the \LaTeX\ \texttt{\bs input} and \texttt{\bs include} directives\\Implemented loop context\\Skip commentlines\\Project moved from local CVS to GitHub
+\item[v2.1] \textit{released: Jan 21, 2022}
+\begin{itemize}
+\item Fix bug \#2 (\url{https://github.com/oveas/sqltex/issues/2}): standard path management for output files.\\
+See config item \texttt{def\_out\_is\_in} in section \ref{config} to revert to pre v2.1 behaviour.
+\item Fix: help was not displayed on Windows
+\item Implemented '?' as password in \texttt{dbopen}
+\item Implemented '?' as username in \texttt{dbopen}
+\item Implemented long options
+\item Allow overwriting variables in multidocument mode
+\item Added simple automated regression tests
+\item Added a man page for linux users
+\item Rewrote the installation procedure, now using \texttt{autotools} on linux.
+\item On linux, change the default installation directory to \texttt{/usr/bin} and store the configuration- and replacement files is \texttt{/etc}.
+\item Added option \texttt{--use-local-config}.
+\end{itemize}
+
+
+\item[v2.0] \textit{released: Jan 12, 2016}
+\begin{itemize}
+\item Fix: Oracle support using ORASID
+\item Fix: Ensure replacements are handled in the same order as they appear in the replacements file
+\item Separate configuration file(s)
+\item Added the options \texttt{-c} and \texttt{-M}
+\item Support for regular expressions in replace files
+\item Implemented support for the \LaTeX\ \texttt{\bs input} and \texttt{\bs include} directives
+\item Implemented loop context
+\item Skip commentlines
+\item Project moved from local CVS to GitHub
+\end{itemize}
+
+\item[v1.5] \textit{released: Nov 23, 2007}
+\begin{itemize}
+\item Support for multiple databases
+\item Implemented database updates (\texttt{sqlupdate})
+\item Implemented multiple output documents (option \texttt{-m})
+\end{itemize}
+
+\item[v1.4.1] \textit{released: Feb 15, 2005}\\
+Fix: removed leading whitespaces added to database results before replace
+
+\item[v1.4] \textit{released: May 2, 2002}\\
+Implemented replace files
+
+\item[v1.3] \textit{released: Mar 16, 2001}\\
+First public release
+
\end{description}
\end{document}
diff --git a/support/SQLTeX/install b/support/SQLTeX/install
deleted file mode 100755
index 8361a3f215..0000000000
--- a/support/SQLTeX/install
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/sh
-
-SRCF="SQLTeX.pl"
-TMPF="SQLTeX.tmp"
-SQLT="SQLTeX"
-RFIL="SQLTeX_r.dat"
-CFIL="SQLTeX.cfg"
-TAB="\011"
-
-PI=`which perl` || PI=""
-
-## Is Perl installed ?
-if test -z "$PI"
-then
- echo "Perl is either not installed on this system, or not included in your path"
- echo "Please check and correct this error - you need Perl to use SQLTeX"
- exit
-fi
-
-## Does the source file exist ?
-if ! test -f $SRCF
-then
- echo "Error - the file $SRCF does not exist in the current directory"
- exit
-fi
-
-## Where should SQLTeX be installed ?
-CUSR=`whoami`
-if test $CUSR = "root"
-then
- DDIR="/usr/local/bin"
-else
- DDIR=`pwd`
-fi
-while test -z "$IDIR"
-do
- echo -n "Where should SQLTeX be installed [$DDIR] ? "
- read IDIR
- if test -z "$IDIR"
- then
- IDIR="$DDIR"
- fi
- if ! test -d $IDIR
- then
- echo "$IDIR does not exist or is not a directory"
- IDIR=""
- fi
-done
-
-echo "#!$PI -w" > $TMPF
-echo "" >> $TMPF
-cat $SRCF >> $TMPF
-chmod +x $TMPF
-mv $TMPF $IDIR/$SQLT
-
-## Replacement file
-if ! test -e $IDIR/$RFIL
-then
- mv $RFIL $IDIR/$RFIL
-fi
-
-## Configuration file
-if ! test -e $IDIR/$CFIL
-then
- mv $CFIL $IDIR/$CFIL
-fi
-
-echo "Installation complete---type $SQLT -h for help"
-
diff --git a/support/SQLTeX/install-sh b/support/SQLTeX/install-sh
new file mode 100755
index 0000000000..59990a1049
--- /dev/null
+++ b/support/SQLTeX/install-sh
@@ -0,0 +1,508 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2014-09-12.12; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+tab=' '
+nl='
+'
+IFS=" $tab$nl"
+
+# Set DOITPROG to "echo" to test this script.
+
+doit=${DOITPROG-}
+doit_exec=${doit:-exec}
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+is_target_a_directory=possibly
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t)
+ is_target_a_directory=always
+ dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
+
+ -T) is_target_a_directory=never;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+ if test -n "$dst_arg"; then
+ echo "$0: target directory not allowed when installing a directory." >&2
+ exit 1
+ fi
+fi
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call 'install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
+ if test ! -d "$dst_arg"; then
+ echo "$0: $dst_arg: Is not a directory." >&2
+ exit 1
+ fi
+ fi
+fi
+
+if test -z "$dir_arg"; then
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names problematic for 'test' and other utilities.
+ case $src in
+ -* | [=\(\)!]) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+ dst=$dst_arg
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test "$is_target_a_directory" = never; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ dstdir=`dirname "$dst"`
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ # $RANDOM is not portable (e.g. dash); use it when possible to
+ # lower collision chance
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
+ # create the $tmpdir first (and fail if unsuccessful) to make sure
+ # that nobody tries to guess the $tmpdir name.
+ if (umask $mkdir_umask &&
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ oIFS=$IFS
+ IFS=/
+ set -f
+ set fnord $dstdir
+ shift
+ set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ set +f &&
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/support/SQLTeX/man/Makefile.am b/support/SQLTeX/man/Makefile.am
new file mode 100644
index 0000000000..26b80bc375
--- /dev/null
+++ b/support/SQLTeX/man/Makefile.am
@@ -0,0 +1,15 @@
+# Automake makefile for the linux manpage
+
+.PHONY: all distdir
+DISTFILES = Makefile.am Makefile.in SQLTeX.man
+
+all :
+
+SQLTeX.1 : SQLTeX.man
+ cat $^ | sed -e 's#{BINDIR}#$(bindir)#;s#{SYSCONFDIR}#$(sysconfdir)#' > $@
+
+distdir : ${DISTFILES}
+ cp ${DISTFILES} $(distdir)
+
+install: SQLTeX.1
+ cp $^ ${mandir}/man1
diff --git a/support/SQLTeX/man/Makefile.in b/support/SQLTeX/man/Makefile.in
new file mode 100644
index 0000000000..530e2bda19
--- /dev/null
+++ b/support/SQLTeX/man/Makefile.in
@@ -0,0 +1,365 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Automake makefile for the linux manpage
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = man
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/aclocal/ax_prog_perl_modules.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+DISTFILES = Makefile.am Makefile.in SQLTeX.man
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu man/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+ ctags-am distclean distclean-generic distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+.PHONY: all distdir
+
+all :
+
+SQLTeX.1 : SQLTeX.man
+ cat $^ | sed -e 's#{BINDIR}#$(bindir)#;s#{SYSCONFDIR}#$(sysconfdir)#' > $@
+
+distdir : ${DISTFILES}
+ cp ${DISTFILES} $(distdir)
+
+install: SQLTeX.1
+ cp $^ ${mandir}/man1
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/support/SQLTeX/man/SQLTeX.man b/support/SQLTeX/man/SQLTeX.man
new file mode 100644
index 0000000000..d685815e7a
--- /dev/null
+++ b/support/SQLTeX/man/SQLTeX.man
@@ -0,0 +1,154 @@
+.TH SQLTeX 1 "Version 2.2" "LaTeX preprocessor"
+
+.SH NAME
+.B SQLTeX
+- a preprocessor to enable the use of SQL statements in LaTeX documents.
+
+.SH SYNOPSIS
+.B SQLTeX
+.RB <INPUT-FILE>
+.RB [PARAMETERS]
+.RB [OPTIONS]
+
+.SH DESCRIPTION
+.B SQLTeX
+is a preprocessor to enable the use of SQL statements in LaTeX. It is a tool that reads
+an input file containing the SQL commands, and writes a LaTeX file that can be processed with your
+LaTeX package.
+
+The SQL commands will be replaced by their values. It's possible to select a single field for substitution
+substitution in your LaTeX document, or to be used as input in another SQL command.
+
+For a full description, please refer to the PDF documentation.
+
+.SH INPUT-FILE
+.TP
+The input file is required. It is a regular LaTeX file that contains SQLTeX commands for processing. For a detailed description how to create in input files, refer to the SQLTeX documentation.
+
+.SH PARAMETERS
+SQL queries in the input file can contain parameters in the form '$PAR<n>' where <n> is a number between 1 and 9, e.g.:
+
+.TP
+\fB\\sqlrow{SELECT * FROM table WHERE field_s = '$PAR1' AND field_i = $PAR2}\fR
+
+.TP
+These parameters are taken from the commandline.
+
+.SH OPTIONS
+
+.IP "\fB-c|--configfile\fP <file>"
+SQLTeX configuration file.
+
+.IP "\fB-E|--file-extension\fP <string>"
+Replace input file extension in outputfile: 'input.tex' will be 'input.string'.
+For further notes, see option '--filename-extend'
+
+.IP "\fB-N|--null-allowed\fP"
+NULL return values allowed. By default SQLTeX exits if a query returns an empty set
+
+.IP "\fB-P|--password\fP [password]"
+Database password. The value is optional; if omitted, SQLTeX will prompt for a password. This overwrites the password in the input file.
+
+.IP "\fB-U|--username\fP user"
+Database username
+
+.IP "\fB-V|--version\fP"
+Print version number and exit
+
+.IP "\fB-e|--filename-extend\fP <string>"
+Add string to the output filename: 'input.tex' will be 'inputstring.tex'. In 'string', the values between curly braces {} will be substituted:
+.PP
+.RS
+.IP Pn
+parameter n
+.IP M
+current monthname (Mon)
+.IP W
+current weekday (Wdy)
+.IP D
+current date (yyyymmdd)
+.IP DT
+current date and time (yyyymmddhhmmss)
+-IP T
+current time (hhmmss)
+.RE
+
+.in +.7i
+The options '--file-extension' and '--filename-extend' cannot be used together or with '--output'.
+.in
+
+.IP "\fB-f|--force\fP"
+Force overwrite of existing files
+
+.IP "\fB-h|--help\fP"
+Print this help message and exit
+
+.IP "\fB-m|--multidoc-numbered\fP"
+Multidocument mode; create one document for each parameter that is retrieved from the database in the input document (see documentation)
+This option cannot be used with '--output'.
+
+.IP "\fB-M|--multidoc-named\fP"
+Same as -m, but with the parameter in the filename i.s.o. a serial number
+
+.IP "\fB-o|--output\fP <file>"
+Specify an output file. Cannot be used with '--file-extension', '--filename-extend' or the '--multidoc' options.
+
+.IP "\fB-p|--prefix\fP <prefix>"
+Prefix used in the SQLTeX file. Default is 'sql' (see documentation)
+
+.IP "\fB-q|--quiet\fP"
+Run in quiet mode
+
+.IP "\fB-r|--replacementfile\fP <file>"
+Specify a file that contains replace characters. This is a list with two tab- seperated fields per line. The first field holds a string that will be replaced in the SQL output by the second string.
+
+.IP "\fB-R|-rn|--no-replacementfile\fP"
+Do not use a replace file. '--replacementfile' '--no-replacementfile' are handled in the same order as they appear on the command line.
+
+.IP "\fB-l|--use-local-config\fP"
+Use the current installation directory as default location for the config- and replacement files in stead of '{SYSCONFDIR}' (linux only).
+
+.IP "\fB-s|--sqlserver\fP <server>"
+SQL server to connect to. Default is \'localhost\'
+
+.IP "\fB-u|--updates\fP"
+If the input file contains updates, execute them.
+
+.SH FILES
+.TP
+.I
+{SYSCONFDIR}/SQLTeX_r.dat
+.TP
+.I
+{SYSCONFDIR}/SQLTeX.cfg
+.TP
+.I
+{BINDIR}/SQLTeX
+
+.SH EXAMPLES
+.TP
+.BI SQLTeX\ --filename-extend\ _{P1}_{W}\ my_file\ code
+.TP
+Read input file 'my_file.tex' and generate 'myfile_code_Tue.tex' with the processed results.
+
+.TP
+.BI SQLTeX\ --file-extension\ _{P1}_{W}\ my_file\ code
+.TP
+Read input file 'my_file.tex' and generate 'myfile._code_Tue' with the processed results.
+
+.SH EXIT STATUS
+.TP
+.B
+0
+Success
+
+.TP
+.B
+1
+SQLTeX ended with an error, check the last message.
+
+.SH COPYRIGHT
+.PP
+Copyright 2001-2022 Oscar van Eijk, Oveas Functionality Provider. All rights reserved
+https://oveas.com
+
diff --git a/support/SQLTeX/missing b/support/SQLTeX/missing
new file mode 100755
index 0000000000..f62bbae306
--- /dev/null
+++ b/support/SQLTeX/missing
@@ -0,0 +1,215 @@
+#! /bin/sh
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2013-10-28.13; # UTC
+
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+fi
+
+case $1 in
+
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
+
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
+
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/support/SQLTeX/src/Makefile.am b/support/SQLTeX/src/Makefile.am
new file mode 100644
index 0000000000..b8194eeba5
--- /dev/null
+++ b/support/SQLTeX/src/Makefile.am
@@ -0,0 +1,20 @@
+# Automake makefile for the SQLTeX code and configfiles
+
+.PHONY: distdir
+DATAFILES = SQLTeX_r.dat SQLTeX.cfg
+DISTFILES = Makefile.am Makefile.in SQLTeX.pl ${DATAFILES}
+
+PL=$(shell which perl)
+
+all : SQLTeX
+
+distdir : ${DISTFILES}
+ cp $(DISTFILES) $(distdir)
+
+SQLTeX: SQLTeX.pl
+ cat $^ | sed -e 's#{PERLDIR}#!$(PL)#;s#{SYSCONFDIR}#$(sysconfdir)#' > $@
+ @chmod +x $@
+
+install : SQLTeX ${DATAFILES}
+ @cp $< $(bindir)
+ @cp $(DATAFILES) $(sysconfdir)
diff --git a/support/SQLTeX/src/Makefile.in b/support/SQLTeX/src/Makefile.in
new file mode 100644
index 0000000000..234100000c
--- /dev/null
+++ b/support/SQLTeX/src/Makefile.in
@@ -0,0 +1,369 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Automake makefile for the SQLTeX code and configfiles
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = src
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/aclocal/ax_prog_perl_modules.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+DATAFILES = SQLTeX_r.dat SQLTeX.cfg
+DISTFILES = Makefile.am Makefile.in SQLTeX.pl ${DATAFILES}
+PL = $(shell which perl)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+ ctags-am distclean distclean-generic distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+.PHONY: distdir
+
+all : SQLTeX
+
+distdir : ${DISTFILES}
+ cp $(DISTFILES) $(distdir)
+
+SQLTeX: SQLTeX.pl
+ cat $^ | sed -e 's#{PERLDIR}#!$(PL)#;s#{SYSCONFDIR}#$(sysconfdir)#' > $@
+ @chmod +x $@
+
+install : SQLTeX ${DATAFILES}
+ @cp $< $(bindir)
+ @cp $(DATAFILES) $(sysconfdir)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/support/SQLTeX/SQLTeX.cfg b/support/SQLTeX/src/SQLTeX.cfg
index 51e230c88e..0ba20c4ff5 100644
--- a/support/SQLTeX/SQLTeX.cfg
+++ b/support/SQLTeX/src/SQLTeX.cfg
@@ -14,13 +14,21 @@ texex = tex
#
stx = _stx
+# When no output file is specified or output file without (relative) path is given, an output file
+# is generated in the current directory.
+# By setting 'def_out_is_in' to True (1), the output file is generated in the same directory
+# where the input file resides (this was the behaviour up until v2.0).
+# Refer to the documentation for more info.
+#
+def_out_is_in = 0
+
# Comment-sign used in the replace file(s). Leave empty to disable comments
#
rfile_comment = ;
# Indicator of a regular expression in the replace file. The rfile_regexploc setting indicates the
# position of the regular expression and must be part of 'rfile_regexp'
-# Refer to the documentation for more info. (see section~\ref{loops}).
+# Refer to the documentation for more info.
#
rfile_regexploc = ...
rfile_regexp = re(...)
diff --git a/support/SQLTeX/SQLTeX.pl b/support/SQLTeX/src/SQLTeX.pl
index e1adfa0767..e44daede41 100755..100644
--- a/support/SQLTeX/SQLTeX.pl
+++ b/support/SQLTeX/src/SQLTeX.pl
@@ -1,3 +1,5 @@
+#{PERLDIR}
+
################################################################################
#
# SQLTeX - SQL preprocessor for Latex
@@ -11,7 +13,7 @@
# This software is subject to the terms of the LaTeX Project Public License;
# see http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html.
#
-# Copyright: (c) 2001-2016, Oscar van Eijk, Oveas Functionality Provider
+# Copyright: (c) 2001-2022, Oscar van Eijk, Oveas Functionality Provider
# ========== oscar@oveas.com
#
# History:
@@ -21,6 +23,7 @@
# v1.4.1 Feb 15, 2005
# v1.5 Nov 23, 2007
# v2.0 Jan 12, 2016
+# v2.1 Jan 21, 2022
# Refer to the documentation for changes per release
#
# TODO:
@@ -31,7 +34,24 @@
#
use strict;
use DBI;
-use Getopt::Std;
+use Getopt::Long;
+use Term::ReadKey;
+Getopt::Long::Configure ("bundling");
+use feature 'state';
+
+#####
+# Check if we're running on linux
+#
+sub is_linux {
+ return ($^O eq "linux");
+}
+
+#####
+# Check if we're running on windows
+#
+sub is_windows {
+ return ($^O eq "MSWin32");
+}
#####
# Find out if any command-line options have been given
@@ -41,8 +61,28 @@ sub parse_options {
$main::NULLallowed = 0;
- if (!getopts ('c:E:NPU:Ve:fhmMo:p:r:qs:u', \%main::options)) {
- print (&short_help (1));
+ if (!GetOptions('help|h|?' => \$main::options{'h'}
+ , 'configfile|c=s' => \$main::options{'c'}
+ , 'replacementfile|r=s' => \$main::options{'r'}
+ , 'no-replacementfile|R' => \$main::options{'R'}
+ , 'output|o=s' => \$main::options{'o'}
+ , 'filename-extend|e=s' => \$main::options{'e'}
+ , 'file-extension|E=s' => \$main::options{'E'}
+ , 'sqlserver|s=s' => \$main::options{'s'}
+ , 'username|U=s' => \$main::options{'U'}
+ , 'password|P:s' => \$main::options{'P'}
+ , 'null-allowed|N' => \$main::options{'N'}
+ , 'version|V' => \$main::options{'V'}
+ , 'force|f' => \$main::options{'f'}
+ , 'quiet|q' => \$main::options{'q'}
+ , 'multidoc-numbered|m' => \$main::options{'m'}
+ , 'multidoc-named|M' => \$main::options{'M'}
+ , 'prefix|p=s' => \$main::options{'p'}
+ , 'use-local-config|l' => \$main::options{'l'}
+ , 'updates|u' => \$main::options{'u'}
+ )) {
+ print "usage: $main::myself [options] <file[.$main::configuration{'texex'}]> [parameter...]\n"
+ . " type \"$main::myself --help\" for help\n";
exit(1);
}
@@ -67,6 +107,11 @@ sub parse_options {
$optcheck++ if (defined $main::options{'o'});
die ("options \"-m\", \"-M\" and \"-o\" cannot be combined\n") if ($optcheck > 1);
+ $optcheck = 0;
+ $optcheck++ if (defined $main::options{'r'});
+ $optcheck++ if (defined $main::options{'R'});
+ die ("options \"-r\" and \"-R\" cannot be combined\n") if ($optcheck > 1);
+
$main::NULLallowed = 1 if (defined $main::options{'N'});
$main::configuration{'cmd_prefix'} = $main::options{'p'} if (defined $main::options{'p'});
@@ -81,6 +126,10 @@ sub parse_options {
}
}
+ if (defined $main::options{'l'} && !&is_linux) {
+ warn "Option \"-l\" is ignored on $^O";
+ delete $main::options{'l'};
+ }
}
#####
@@ -88,7 +137,7 @@ sub parse_options {
#
sub short_help ($) {
my $onerror = shift;
- my $helptext = "usage: $main::myself [-cENPUVefhmopqs] <file[.$main::configuration{'texex'}]> [parameter...]\n";
+ my $helptext = "usage: $main::myself [options] <file[.$main::configuration{'texex'}]> [parameter...]\n";
$helptext .= " type \"$main::myself -h\" for help\n" if ($onerror);
return ($helptext);
}
@@ -99,54 +148,101 @@ sub short_help ($) {
#
sub print_help {
my $helptext = &short_help (0);
+
$helptext .= " Options:\n";
- $helptext .= " -c file SQLTeX configuration file.\n";
- $helptext .= " Default is \'$main::my_location/SQLTeX.cfg\'.\n";
- $helptext .= " -E string replace input file extension in outputfile:\n";
- $helptext .= " \'input.tex\' will be \'input.string\'\n";
- $helptext .= " For further notes, see option \'-e\' below\n";
- $helptext .= " -N NULL return values allowed. By default SQLTeX\n";
- $helptext .= " exits if a query returns an empty set\n";
- $helptext .= " -P prompt for database password\n";
- $helptext .= " -U user database username\n";
- $helptext .= " -V print version number and exit\n";
- $helptext .= " -e string add string to the output filename:\n";
- $helptext .= " \'input.tex\' will be \"inputstring.tex\"\n";
- $helptext .= " In \'string\', the values between curly braces \{\}\n";
- $helptext .= " will be substituted:\n";
- $helptext .= " Pn parameter n\n";
- $helptext .= " M current monthname (Mon)\n";
- $helptext .= " W current weekday (Wdy)\n";
- $helptext .= " D current date (yyyymmdd)\n";
- $helptext .= " DT current date and time (yyyymmddhhmmss)\n";
- $helptext .= " T current time (hhmmss)\n";
- $helptext .= " e.g., the command \'$main::myself -e _{P1}_{W} my_file code\'\n";
- $helptext .= " will read \'my_file.tex\' and write \'myfile_code_Tue.tex\'\n";
- $helptext .= " The same command, but with option \'-E\' would create the\n";
- $helptext .= " outputfile \'myfile._code_Tuesday\'\n";
- $helptext .= " By default (without \'-e\' or \'-E\') the outputfile\n";
- $helptext .= " \'myfile_stx.tex\' would have been written.\n";
- $helptext .= " The options \'-E\' and \'-e\' cannot be used together or with \'-o\'.\n";
- $helptext .= " -f force overwrite of existing files\n";
- $helptext .= " -h print this help message and exit\n";
- $helptext .= " -m Multidocument mode; create one document for each parameter that is\n";
- $helptext .= " retrieved from the database in the input document (see documentation)\n";
- $helptext .= " This option cannot be used with \'-o\'.\n";
- $helptext .= " -M Same as -m, but with the parameter in the filename i.s.o. a serial number\n";
- $helptext .= " -o file specify an output file. Cannot be used with \'-E\' or \'-e\'\n";
- $helptext .= " This option cannot be used with \'-m\'.\n";
- $helptext .= " -p prefix prefix used in the SQLTeX file. Default is \'sql\'\n";
- $helptext .= " (e.g. \\sqldb[user]{database}), but this can be overwritten\n";
- $helptext .= " if it conflicts with other user-defined commands.\n";
- $helptext .= " -q run in quiet mode\n";
- $helptext .= " -r file specify a file that contains replace characters. This is a list with\n";
- $helptext .= " two tab- seperated fields per line. The first field holds a string\n";
- $helptext .= " that will be replaced in the SQL output by the second string.\n";
- $helptext .= " By default the file \'$main::my_location/SQLTeX_r.dat\' is used.\n";
- $helptext .= " -rn do not use a replace file. -r file and -rn are handled in the same\n";
- $helptext .= " as they where specified on the command line.\n";
- $helptext .= " -s server SQL server to connect to. Default is \'localhost\'\n";
- $helptext .= " -u If the input file contains updates, execute them.\n";
+ $helptext .= " --configfile <file>\n";
+ $helptext .= " -c <file>\n";
+ $helptext .= " SQLTeX configuration file.\n";
+ $helptext .= " Default is \'$main::config_location/SQLTeX.cfg\'.\n";
+ $helptext .= " --file-extension <string>\n";
+ $helptext .= " -E <string>\n";
+ $helptext .= " replace input file extension in outputfile:\n";
+ $helptext .= " \'input.tex\' will be \'input.string\'\n";
+ $helptext .= " For further notes, see option \'--filename-extend\' below\n";
+ $helptext .= " --null-allowed\n";
+ $helptext .= " -N\n";
+ $helptext .= " NULL return values allowed. By default SQLTeX exits if a\n";
+ $helptext .= " query returns an empty set\n";
+ $helptext .= " --password [password]\n";
+ $helptext .= " -P [password]\n";
+ $helptext .= " database password. The value is optional; if omitted, SQLTeX will prompt for\n";
+ $helptext .= " a password. This overwrites the password in the input file.\n";
+ $helptext .= " --username <user>\n";
+ $helptext .= " -U <user>\n";
+ $helptext .= " database username\n";
+ $helptext .= " --version\n";
+ $helptext .= " -V\n";
+ $helptext .= " print version number and exit\n";
+ $helptext .= " --filename-extend <string>\n";
+ $helptext .= " -e <string>\n";
+ $helptext .= " add string to the output filename:\n";
+ $helptext .= " \'input.tex\' will be \'inputstring.tex\'\n";
+ $helptext .= " In \'string\', the values between curly braces \{\}\n";
+ $helptext .= " will be substituted:\n";
+ $helptext .= " Pn parameter n\n";
+ $helptext .= " M current monthname (Mon)\n";
+ $helptext .= " W current weekday (Wdy)\n";
+ $helptext .= " D current date (yyyymmdd)\n";
+ $helptext .= " DT current date and time (yyyymmddhhmmss)\n";
+ $helptext .= " T current time (hhmmss)\n";
+ $helptext .= " e.g., the command \'$main::myself --filename-extend _{P1}_{W} my_file code\'\n";
+ $helptext .= " will read \'my_file.tex\' and write \'myfile_code_Tue.tex\'\n";
+ $helptext .= " The same command, but with option \--file-extension\' would create the\n";
+ $helptext .= " outputfile \'myfile._code_Tue\'\n";
+ $helptext .= " By default the outputfile \'myfile_stx.tex\' would have been written.\n";
+ $helptext .= " The options \'--file-extension\' and \'--filename-extend\' cannot be used\n";
+ $helptext .= " together or with \'--output\'.\n";
+ $helptext .= " --force\n";
+ $helptext .= " -f\n";
+ $helptext .= " force overwrite of existing files\n";
+ $helptext .= " --help\n";
+ $helptext .= " -h\n";
+ $helptext .= " print this help message and exit\n";
+ $helptext .= " --multidoc-numbered\n";
+ $helptext .= " -m\n";
+ $helptext .= " Multidocument mode; create one document for each parameter that is retrieved\n";
+ $helptext .= " from the database in the input document (see documentation)\n";
+ $helptext .= " This option cannot be used with \'--output\'.\n";
+ $helptext .= " --multidoc-named\n";
+ $helptext .= " -M\n";
+ $helptext .= " Same as -m, but with the parameter in the filename i.s.o. a serial number\n";
+ $helptext .= " --output <file>\n";
+ $helptext .= " -o <file>\n";
+ $helptext .= " specify an output file. Cannot be used with \'--file-extension\',\n";
+ $helptext .= " \'--filename-extend\' or the \'--multidoc\' options.\n";
+ $helptext .= " --prefix <prefix>\n";
+ $helptext .= " -p <prefix>\n";
+ $helptext .= " prefix used in the SQLTeX file. Default is \'sql\'\n";
+ $helptext .= " (e.g. \\sqldb[user]{database}), but this can be overwritten if it conflicts\n";
+ $helptext .= " with other user-defined commands.\n";
+ $helptext .= " --quiet\n";
+ $helptext .= " -q\n";
+ $helptext .= " run in quiet mode\n";
+ $helptext .= " --replacementfile <file>\n";
+ $helptext .= " -r <file>\n";
+ $helptext .= " specify a file that contains replace characters. This is a list with two tab- seperated\n";
+ $helptext .= " fields per line. The first field holds a string that will be replaced in the SQL output\n";
+ $helptext .= " by the second string.\n";
+ $helptext .= " By default the file \'$main::config_location/SQLTeX_r.dat\' is used.\n";
+ $helptext .= " --no-replacementfile\n";
+ $helptext .= " -R\n";
+ $helptext .= " do not use a replace file. \'--replacementfile\' \'--no-replacementfile\' are handled\n";
+ $helptext .= " in the same order as they appear on the command line.\n";
+ $helptext .= " For backwards compatibility, -rn is also still supported.\n";
+
+ if (&is_linux) {
+ $helptext .= " --use-local-config\n";
+ $helptext .= " -l\n";
+ $helptext .= " use $main::my_location as default location for the config- and replacement files\n";
+ $helptext .= " in stead of $main::config_location.\n";
+ }
+
+ $helptext .= " --sqlserver <server>\n";
+ $helptext .= " -s <server>\n";
+ $helptext .= " SQL server to connect to. Default is \'localhost\'\n";
+ $helptext .= " --updates\n";
+ $helptext .= " -u\n";
+ $helptext .= " If the input file contains updates, execute them.\n";
$helptext .= "\n file is the input file that should be read. By default,\n";
$helptext .= " $main::myself looks for a file with extension \'.$main::configuration{'texex'}\'.\n";
@@ -154,13 +250,7 @@ sub print_help {
$helptext .= " the string \$PAR[x] somewhere in the statement, where\n";
$helptext .= " \'x\' is the number of the parameter.\n";
- if ($main::configuration{'less_av'}) {
- system ("echo \"$helptext\" | less");
- } elsif ($main::configuration{'more_av'}) {
- system ("echo \"$helptext\" | more");
- } else {
- print $helptext;
- }
+ print $helptext;
}
#####
@@ -187,17 +277,39 @@ sub print_message ($) {
sub get_password ($$) {
my ($usr, $srv) = @_;
+ my $pwd = "";
+
print "Password for $usr\@$srv : ";
- system('stty -echo');
- my $pwd = <STDIN>;
- chomp $pwd;
- system('stty echo');
- print "\n";
+ ReadMode(4);
+ while(ord(my $keyStroke = ReadKey(0)) != 10) {
+ if(ord($keyStroke) == 127 || ord($keyStroke) == 8) { # DEL/Backspace
+ chop($pwd);
+ print "\b \b";
+ } elsif(ord($keyStroke) >= 32) { # Skip control characters
+ $pwd = $pwd . $keyStroke;
+ print '*';
+ }
+ }
+ ReadMode(0);
return $pwd;
}
+#####
+# If we have to prompt for a user. Get it and return it to the caller
+#
+sub get_username ($) {
+ my $srv = shift;
+
+ print "Username at $srv : ";
+
+ my $usr = <STDIN>;
+ chomp $usr;
+ return $usr;
+}
+
+
#######
# Find the file extension for the outputfile
#
@@ -240,6 +352,37 @@ sub file_extension ($) {
}
#####
+# Find the configuration files
+#
+sub get_configfiles {
+ if (defined $main::options{'c'}) {
+ $main::configurationfile = $main::options{'c'};
+ } else {
+ $main::configurationfile = $main::config_location
+ . ($main::config_location eq '' ? '' : '/')
+ . 'SQLTeX.cfg';
+ }
+ if (!-e $main::configurationfile) {
+ die ("Configfile $main::configurationfile does not exist\n");
+ }
+
+ if (defined $main::options{'r'}) {
+ $main::replacefile = $main::options{'r'};
+ } else {
+ $main::replacefile = $main::config_location
+ . ($main::config_location eq '' ? '' : '/')
+ . 'SQLTeX_r.dat'
+ unless (defined $main::options{'R'});
+ }
+ if (defined $main::replacefile && !-e $main::replacefile) {
+ warn ("replace file $main::replacefile does not exist\n") unless ($main::replacefile eq "n");
+ undef $main::replacefile;
+ }
+
+ return;
+}
+
+#####
# Declare the filenames to use in this run.
# If a file has been entered
#
@@ -276,30 +419,16 @@ sub get_filenames {
} else {
$main::outputfile .= "$main::configuration{'stx'}$main::multidoc_id\.$lastext";
}
+ if ($main::configuration{'def_out_is_in'}) {
+ $main::outputfile = $main::path . $main::outputfile;
+ }
} else {
$main::outputfile = $main::options{'o'};
+ if ($main::configuration{'def_out_is_in'} && !($main::outputfile =~ /\//)) {
+ $main::outputfile = $main::path . $main::outputfile;
+ }
}
- if (defined $main::options{'c'}) {
- $main::configurationfile = $main::options{'c'};
- } else {
- $main::configurationfile = "$main::my_location/SQLTeX.cfg";
- }
- if (!-e $main::configurationfile) {
- die ("Configfile $main::configurationfile does not exist\n");
- }
-
- if (defined $main::options{'r'}) {
- $main::replacefile = $main::options{'r'};
- } else {
- $main::replacefile = "$main::my_location/SQLTeX_r.dat";
- }
- if (!-e $main::replacefile) {
- warn ("replace file $main::replacefile does not exist\n") unless ($main::replacefile eq "n");
- undef $main::replacefile;
- }
-
-
return;
}
@@ -308,56 +437,75 @@ sub get_filenames {
#
sub db_connect($$) {
my ($up, $db) = @_;
- my $data_source;
-
- $main::line =~ s/\[?$up\]?\{$db\}//;
-
- my $un = '';
- my $pw = '';
- my $hn = '';
- my @opts = split(',', $up);
- for(my $idx = 0; $idx <= $#opts; $idx++) {
- my $opt = $opts[$idx];
- if ($opt =~ /=/) {
- if ($` eq 'user') {
- $un = $';
- } elsif ($` eq 'passwd') {
- $pw = $';
- } elsif ($` eq 'host') {
- $hn = $';
- }
- } else {
- if ($idx == 0) {
- $un = $opt;
- } elsif ($idx == 1) {
- $pw = $opt;
- } elsif ($idx == 2) {
- $hn = $opt;
+ state $data_source;
+ state $gotInput = 0;
+
+ $main::line =~ s/(\[.*?\])?\{$db\}//;
+
+ state $un = '';
+ state $pw = '';
+ state $hn = '';
+
+ if (!$gotInput) {
+ my @opts = split(',', $up);
+ for(my $idx = 0; $idx <= $#opts; $idx++) {
+ my $opt = $opts[$idx];
+ if ($opt =~ /=/) {
+ if ($` eq 'user') {
+ $un = $';
+ } elsif ($` eq 'passwd') {
+ $pw = $';
+ } elsif ($` eq 'host') {
+ $hn = $';
+ }
+ } else {
+ if ($idx == 0) {
+ $un = $opt;
+ } elsif ($idx == 1) {
+ $pw = $opt;
+ } elsif ($idx == 2) {
+ $hn = $opt;
+ }
}
}
- }
- $un = $main::options{'U'} if (defined $main::options{'U'});
- $pw = &get_password ($un, $main::options{'s'} || 'localhost') if (defined $main::options{'P'});
- $hn = $main::options{'s'} if (defined $main::options{'s'});
+ $un = $main::options{'U'} if (defined $main::options{'U'});
+ $un = &get_username($main::options{'s'} || 'localhost') if ($un eq '?');
- if ($main::configuration{'dbdriver'} eq "Pg") {
- $data_source = "DBI:$main::configuration{'dbdriver'}:dbname=$db";
- $data_source .= ";host=$hn" unless ($hn eq "");
- } elsif ($main::configuration{'dbdriver'} eq "Oracle") {
- $data_source = "DBI:$main::configuration{'dbdriver'}:$db";
- $data_source .= ";host=$hn;sid=$main::configuration{'oracle_sid'}" unless ($hn eq "");
- $data_source .= ";sid=$main::configuration{'oracle_sid'}";
- } elsif ($main::configuration{'dbdriver'} eq "Ingres") {
- $data_source = "DBI:$main::configuration{'dbdriver'}";
- $data_source .= ":$hn" unless ($hn eq "");
- $data_source .= ":$db";
- } elsif ($main::configuration{'dbdriver'} eq "Sybase") {
- $data_source = "DBI:$main::configuration{'dbdriver'}:$db";
- $data_source .= ";server=$hn" unless ($hn eq "");
- } else { # MySQL, mSQL, ...
- $data_source = "DBI:$main::configuration{'dbdriver'}:database=$db";
- $data_source .= ";host=$hn" unless ($hn eq "");
+ my $promptForPwd = 0;
+ if (defined $main::options{'P'}) {
+ if ($main::options{'P'} eq '') {
+ $promptForPwd = 1;
+ } else {
+ $pw = $main::options{'P'}
+ }
+ }
+ if ($pw eq '?') {
+ $promptForPwd = 1;
+ }
+ $pw = &get_password ($un, $main::options{'s'} || 'localhost') if ($promptForPwd);
+ $gotInput = 1;
+
+ $hn = $main::options{'s'} if (defined $main::options{'s'});
+
+ if ($main::configuration{'dbdriver'} eq "Pg") {
+ $data_source = "DBI:$main::configuration{'dbdriver'}:dbname=$db";
+ $data_source .= ";host=$hn" unless ($hn eq "");
+ } elsif ($main::configuration{'dbdriver'} eq "Oracle") {
+ $data_source = "DBI:$main::configuration{'dbdriver'}:$db";
+ $data_source .= ";host=$hn;sid=$main::configuration{'oracle_sid'}" unless ($hn eq "");
+ $data_source .= ";sid=$main::configuration{'oracle_sid'}";
+ } elsif ($main::configuration{'dbdriver'} eq "Ingres") {
+ $data_source = "DBI:$main::configuration{'dbdriver'}";
+ $data_source .= ":$hn" unless ($hn eq "");
+ $data_source .= ":$db";
+ } elsif ($main::configuration{'dbdriver'} eq "Sybase") {
+ $data_source = "DBI:$main::configuration{'dbdriver'}:$db";
+ $data_source .= ";server=$hn" unless ($hn eq "");
+ } else { # MySQL, mSQL, ...
+ $data_source = "DBI:$main::configuration{'dbdriver'}:database=$db";
+ $data_source .= ";host=$hn" unless ($hn eq "");
+ }
}
if (!defined $main::options{'q'}) {
@@ -367,20 +515,11 @@ sub db_connect($$) {
$msg .= " using a password" unless ($pw eq '');
&print_message ($msg);
}
- $main::db_handle = DBI->connect ($data_source, $un, $pw, { RaiseError => 0, PrintError => 1 }) || &just_died (1);
+ $main::db_handle = DBI->connect ($data_source, $un, $pw, { RaiseError => 0, PrintError => 1 }) || &just_died (1); # TODO Proper errorhandling
return;
}
#####
-# Execute the SQL query and return the result in an array
-#
-sub execute_query ($) {
- my $query = shift;
- my (@result, @res);
- return @result;
-}
-
-#####
# Check if the SQL statement contains options
# Supported options are:
# setvar=<i>, where <i> is the list location to store the variable.
@@ -405,15 +544,17 @@ sub check_options ($) {
}
if ($opt =~ /^fldsep=/i) {
$main::fldsep = qq{$'};
- if ($main::fldsep eq 'NEWLINE') {
- $main::fldsep = "\n";
- }
+ $main::fldsep =~ s/NEWLINE/\n/;
+# if ($main::fldsep eq 'NEWLINE') {
+# $main::fldsep = "\n";
+# }
}
if ($opt =~ /^rowsep=/i) {
$main::rowsep = qq{$'};
- if ($main::rowsep eq 'NEWLINE') {
- $main::rowsep = "\n";
- }
+ $main::rowsep =~ s/NEWLINE/\n/;
+# if ($main::rowsep eq 'NEWLINE') {
+# $main::rowsep = "\n";
+# }
}
}
}
@@ -464,7 +605,7 @@ sub sql_row ($$) {
$stat_handle->execute ();
if ($main::setarr) {
- &just_died (7) if (defined $main::arr[$main::arr_no]);
+ &just_died (7) if (defined $main::arr[$main::arr_no] && !$main::multidoc); # TODO Proper errorhandling
@main::arr[$main::arr_no] = ();
while (my $ref = $stat_handle->fetchrow_hashref()) {
foreach my $k (keys %$ref) {
@@ -490,7 +631,7 @@ sub sql_row ($$) {
$stat_handle->finish ();
if ($#return_values < 0) {
- &just_died (4);
+ &just_died (4); # TODO Proper errorhandling
}
$rc = $#return_values + 1;
@@ -524,13 +665,13 @@ sub sql_field ($$) {
$stat_handle->finish ();
if ($#result < 0) {
- &just_died (4);
+ &just_died (4); # TODO Proper errorhandling
} elsif ($#result > 0) {
- &just_died (5);
+ &just_died (5); # TODO Proper errorhandling
} else {
&print_message ("Found 1 value: \"$result[0]\"");
if ($main::setvar) {
- &just_died (7) if (defined $main::var[$main::var_no]);
+ &just_died (7) if (defined $main::var[$main::var_no] && !$main::multidoc); # TODO Proper errorhandling
$main::var[$main::var_no] = $result[0];
return '';
} else {
@@ -548,7 +689,7 @@ sub sql_field ($$) {
#
sub sql_start ($) {
my $arr_no = shift;
- &just_died (11) if (!defined $main::arr[$arr_no]);
+ &just_died (11) if (!defined $main::arr[$arr_no]); # TODO Proper errorhandling
if (@main::current_array) {
@main::current_array = ();
}
@@ -578,6 +719,7 @@ sub sql_end () {
while (($buffered_line =~ /\\$cmdPrefix[a-z]+(\[|\{)/) && !($buffered_line =~ /\\\\$cmdPrefix[a-z]+(\[|\{)/)) {
my $cmdfound = $&;
$cmdfound =~ s/\\//;
+ $cmdfound =~ s/\{/\\\{/;
$buffered_line =~ /\\$cmdfound/;
my $lin1 = $`;
@@ -616,13 +758,13 @@ sub sql_setparams ($$) {
$stat_handle->execute ();
while (@values = $stat_handle->fetchrow_array ()) {
- &just_died (9) if ($#values > 0); # Only one allowed
+ &just_died (9) if ($#values > 0); # Only one allowed TODO Proper errorhandling
push @return_values, @values;
}
$stat_handle->finish ();
if ($#return_values < 0) {
- &just_died (8);
+ &just_died (8); # TODO Proper errorhandling
}
$rc = $#return_values + 1;
@@ -633,9 +775,7 @@ sub sql_setparams ($$) {
#####
-# Select a (list of) single field(s) from the database. This list is used in
-# multidocument mode as the first parameter in all queries.
-# Currently, only 1 parameter per run is supported.
+# Perform an update.
#
sub sql_update ($$) {
my ($options, $query) = @_;
@@ -656,6 +796,7 @@ sub sql_update ($$) {
# Some error handling (mainly cleanup stuff)
# Files will be closed if opened, and if no sql output was written yet,
# the outputfile will be removed.
+# FIXME We need some decent errorhandling
#
sub just_died ($) {
my $step = shift;
@@ -671,7 +812,7 @@ sub just_died ($) {
# $main::db_handle->disconnect();
}
if ($step >= 1 && $step <= 2 && !$Resurect) {
- unlink ("$main::path$main::outputfile");
+ unlink ($main::outputfile);
}
#####
@@ -760,10 +901,10 @@ sub parse_command ($$$) {
while ($statement =~ /\$VAR[0-9]/) {
my $varno = $&;
$varno =~ s/\$VAR//;
- &just_died (6) if (!defined ($main::var[$varno]));
+ &just_died (6) if (!defined ($main::var[$varno])); # TODO Proper errorhandling
$statement =~ s/\$VAR$varno/$main::var[$varno]/g;
}
- &just_died (3) if ($statement =~ /\$PAR/ && ($main::multidoc_cnt > 0) && $main::multidoc);
+ &just_died (3) if ($statement =~ /\$PAR/ && ($main::multidoc_cnt > 0) && $main::multidoc); # TODO Proper errorhandling
$statement =~ s/\{//;
}
@@ -773,7 +914,7 @@ sub parse_command ($$$) {
return 0;
}
- &just_died (2) if (!$main::db_opened);
+ &just_died (2) if (!$main::db_opened); # TODO Proper errorhandling
if ($cmdfound =~ /$main::configuration{'sql_field'}/) {
$main::line = $lin1 . &sql_field($options, $statement) . $lin2;
@@ -794,12 +935,12 @@ sub parse_command ($$$) {
&sql_start($statement);
$main::line = $lin1 . $lin2;
} elsif ($cmdfound =~ /$main::configuration{'sql_use'}/) {
- &just_died (12) if (!@main::current_array);
+ &just_died (12) if (!@main::current_array); # TODO Proper errorhandling
$main::line = $lin1 . "\\" . $main::configuration{'alt_cmd_prefix'} . $main::configuration{'sql_use'} . "{" . $statement . "}" . $lin2; # Restore the line, will be processed later
} elsif ($cmdfound =~ /$main::configuration{'sql_end'}/) {
$main::line = $lin1 . &sql_end() . $lin2;
} else {
- &just_died (10);
+ &just_died (10); # TODO Proper errorhandling
}
return 0;
@@ -811,11 +952,11 @@ sub read_input($$$$) {
$main::fcount++;
$main::lcount[$main::fcount] = 0;
- if (!-e $main::path . $input_file) {
- die "input file $main::path$input_file not found";
+ if (!-e $input_file) {
+ die "input file $input_file not found";
}
- print_message("Processing file $main::path$input_file...");
- open (my $fileIn, "<$main::path$input_file");
+ print_message("Processing file $input_file...");
+ open (my $fileIn, "<$input_file");
while ($main::line = <$fileIn>) {
$main::lcount[$main::fcount]++;
@@ -869,7 +1010,7 @@ sub process_file {
if ($main::multidoc && ($main::multidoc_cnt == 0)) {
$fileOut = -1;
} else {
- open ($fileOut, ">$main::path$main::outputfile");
+ open ($fileOut, ">$main::outputfile");
}
$main::sql_statements = 0;
@@ -890,13 +1031,14 @@ sub process_file {
## Main:
#####
-# Default config values, will be overwritten with SQLTeX.cfg
+# Default config values, can be overwritten with SQLTeX.cfg
#
%main::configuration = (
'dbdriver' => 'mysql'
,'oracle_sid' => 'ORASID'
,'texex' => 'tex'
,'stx' => '_stx'
+ ,'def_out_is_in' => 0
,'rfile_comment' => ';'
,'rfile_regexploc' => '...'
,'rfile_regexp' => 're(...)'
@@ -904,13 +1046,11 @@ sub process_file {
,'sql_open' => 'db'
,'sql_field' => 'field'
,'sql_row' => 'row'
- ,'sql_params' => 'setparams'
- ,'sql_update' => 'update'
- ,'sql_start' => 'start'
- ,'sql_end' => 'end'
- ,'sql_use' => 'use'
- ,'less_av' => 1
- ,'more_av' => 1
+ ,'sql_params' => 'setparams'
+ ,'sql_update' => 'update'
+ ,'sql_start' => 'start'
+ ,'sql_end' => 'end'
+ ,'sql_use' => 'use'
,'repl_step' => 'OSTX'
,'alt_cmd_prefix' => 'processedsqlcommand'
);
@@ -922,6 +1062,12 @@ sub process_file {
my @dir_list = split /\//, $0;
pop @dir_list;
$main::my_location = join '/', @dir_list;
+
+ if (&is_linux) {
+ $main::config_location = '{SYSCONFDIR}';
+ } else {
+ $main::config_location = $main::my_location;
+ }
}
# Check config
@@ -930,20 +1076,18 @@ if ($main::configuration{'alt_cmd_prefix'} =~ /^$main::configuration{'cmd_prefix
die "Configuration item 'alt_cmd_prefix' cannot start with $main::configuration{'cmd_prefix'}";
}
-$main::myself = $ENV{'_'};
-while ($main::myself =~ /\//) { $main::myself = $'; }
+$main::myself = $0;
-$main::version = '2.0';
-$main::rdate = 'Jan 12, 2016';
+$main::version = '2.1';
+$main::rdate = 'Jan 21, 2022';
&parse_options;
-&get_filenames;
-
-if (!$main::multidoc && -e "$main::path$main::outputfile") {
- die ("outputfile $main::path$main::outputfile already exists\n")
- unless (defined $main::options{'f'});
+if (defined $main::options{'l'}) {
+ $main::config_location = $main::my_location;
}
+&get_configfiles;
+
if (defined $main::configurationfile) {
open (CF, "<$main::configurationfile");
while ($main::line = <CF>) {
@@ -960,6 +1104,13 @@ if (defined $main::configurationfile) {
close CF;
}
+&get_filenames;
+
+if (!$main::multidoc && -e "$main::outputfile") {
+ die ("outputfile $main::outputfile already exists\n")
+ unless (defined $main::options{'f'});
+}
+
if (defined $main::replacefile) {
my $repl_cnt = '000';
@main::repl_order = ();
@@ -984,11 +1135,11 @@ do {
&process_file;
$main::restart = 0;
if ($main::sql_statements == 0) {
- unlink ("$main::path$main::outputfile");
+ unlink ("$main::outputfile");
print "no sql statements found in $main::path$main::inputfile\n";
$main::multidoc = 0; # Problem in the input, useless to continue
} else {
- print "$main::sql_statements queries executed - TeX file $main::path$main::outputfile written\n"
+ print "$main::sql_statements queries executed - TeX file $main::outputfile written\n"
unless ($main::multidoc && ($main::multidoc_cnt == 1));
}
} while ($main::multidoc); # Set to false when done
diff --git a/support/SQLTeX/SQLTeX_r.dat b/support/SQLTeX/src/SQLTeX_r.dat
index c4f56bda08..c4f56bda08 100644
--- a/support/SQLTeX/SQLTeX_r.dat
+++ b/support/SQLTeX/src/SQLTeX_r.dat
diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog
index 02e00499db..66b22e95bd 100644
--- a/support/TeX4ht/source/ChangeLog
+++ b/support/TeX4ht/source/ChangeLog
@@ -1,3 +1,9 @@
+2022-02-03 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4.4ht): fixed support for vertical rules in
+ tables.
+ https://tug.org/pipermail/tex4ht/2022q1/003125.html
+
2022-02-02 Michal Hoftich <michal.h21@gmail.com>
* tex4ht-4ht.tex (tasks.4ht),
diff --git a/support/TeX4ht/source/tex4ht-html4.tex b/support/TeX4ht/source/tex4ht-html4.tex
index ed7402d989..999d8887a1 100644
--- a/support/TeX4ht/source/tex4ht-html4.tex
+++ b/support/TeX4ht/source/tex4ht-html4.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-html4.tex 1070 2022-02-02 22:04:53Z karl $
+% $Id: tex4ht-html4.tex 1071 2022-02-03 14:27:43Z michal_h21 $
% Compile 4 times: latex tex4ht-html4
% Copy html4.4ht into the work directory before all but the last compilation.
%
@@ -7625,8 +7625,15 @@ Currently, we either have empty \verb'\VBorder', or one defined to
\gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo }
{\xdef\VBorder{\VBorder\ifnum \NewGroup> 0 </colgroup>\fi}
\HAssign\NewGroup = 0 % \gdef\GROUPS{rules="groups"}}
- \Css{\#TBL-\TableNo\space colgroup{border-left: 1px solid black;border-right:1px solid black;}}
- \Css{\#TBL-\TableNo{border-collapse:collapse;}}}
+ % put vertical border for a column
+ \ifnum\ar:cnt > 0%
+ % in all other cases, we should put right border
+ \Css{\#TBL-\TableNo-\ar:cnt {border-right:1px solid black;}}%
+ \else%
+ % columns are numbered from 1. if \ar:cnt == 0 then it is the left border
+ \Css{\#TBL-\TableNo-1{border-left: 1px solid black;}}%
+ \fi%
+ }
{\Advance:\NewGroup by 1
\ifnum \NewGroup=1 \xdef\VBorder{\VBorder<colgroup
id="TBL-\TableNo-\ar:cnt g">}\fi
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index d25ab33e4b..0d6b7ff0bf 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -50,7 +50,6 @@ $mirrors = {
},
'Korea' => {
'http://ftp.ktug.org/tex-archive/' => 1,
- 'https://cran.asia/tex/' => 1,
'https://ftp.harukasan.org/CTAN/' => 1,
'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
'https://mirror.kakao.com/CTAN/' => 1,
@@ -165,7 +164,6 @@ $mirrors = {
'https://ctan.ijs.si/tex-archive/' => 1,
},
'Spain' => {
- 'https://ctan.javinator9889.com/' => 1,
'https://osl.ugr.es/CTAN/' => 1,
},
'Sweden' => {
@@ -201,8 +199,10 @@ $mirrors = {
'https://ctan.mirrors.hoobly.com/' => 1,
'https://mirror.las.iastate.edu/tex-archive/' => 1,
'https://mirror.math.princeton.edu/pub/CTAN/' => 1,
+ 'https://mirror.mwt.me/ctan/' => 1,
'https://mirrors.concertpass.com/tex-archive/' => 1,
'https://mirrors.mit.edu/CTAN/' => 1,
+ 'https://mirrors.rit.edu/CTAN/' => 1,
},
},
'Oceania' => {
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 2d6646e9e4..a12b1dd752 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/61860
+depend revision/61869
name 00texlive.image
category TLCore
-revision 61846
+revision 61867
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4525,7 +4525,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 61849
+revision 61862
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -35756,7 +35756,7 @@ catalogue-version 2.4
name biber
category Package
-revision 57273
+revision 61867
shortdesc A BibTeX replacement for users of BibLaTeX
longdesc Biber is a BibTeX replacement for users of BibLaTeX. Biber
longdesc supports full UTF-8, can (re)-encode input and output, supports
@@ -35769,14 +35769,14 @@ longdesc from an earlier (now apparently moribund) project called
longdesc "biber".
depend biber.ARCH
containersize 732
-containerchecksum 85c07705dda6e4dac7fb3d3fcafaa156abee84f19ce8652b71787ef5a631ba4519ca35a34c8d0d83f90b8f14c583f83f820add220d0f764c19d1abf4c3b7a3db
-doccontainersize 262140
-doccontainerchecksum 9d86fe6df7fe33221259395aac86729708481ee5222868a455153e7976c91c48a9469a9813bb0decb83c7eba2a3ec408150ec47533f9a41c974587415266f6e2
-docfiles size=66
+containerchecksum 32d7349813eb4c8d66187f77e7ed86b9f1847e2d7e32bce2d2bad53887fe11ead512fe80d9b21ae37889b72a107e6519fb214ba6b8ecfd20544091375904c4c3
+doccontainersize 265584
+doccontainerchecksum 2ec3267dd83db2a2807d9d259b3a01aa6fdfdc9b963e54ddea3de4b8899532ed63f8febe6da9666f5327e31aec7554eef416be48e507513296b77fd1840215f8
+docfiles size=67
texmf-dist/doc/bibtex/biber/biber.pdf details="Manual"
-srccontainersize 930660
-srccontainerchecksum 396398323e6e9ee4df904a827bab9b246e6fbba15033076cbbc3a63e4443641f81c19646a4145c0c0fae38af37f54a5fd2166799685f39183d349c8273d13459
-srcfiles size=290
+srccontainersize 963780
+srccontainerchecksum dc42ed52b198e4b47c09b5d509ba4e382755db1cf6fe51599cf186cf283438bbb52dd4f12bf2ce90801207856f627e3eafebf629c232ac651c9891f994712ebe
+srcfiles size=295
texmf-dist/source/bibtex/biber/Changes
texmf-dist/source/bibtex/biber/README.md
texmf-dist/source/bibtex/biber/biblatex-biber.tar.gz
@@ -35788,105 +35788,87 @@ catalogue-contact-repository https://github.com/plk/biber
catalogue-ctan /biblio/biber
catalogue-license artistic2
catalogue-topics biblio
-catalogue-version 2.16
-
-name biber.amd64-freebsd
-category Package
-revision 57273
-shortdesc amd64-freebsd files of biber
-containersize 22778016
-containerchecksum e60c5b49e68713777afce2ac5ed955d4bc74e610bbd2f030721a1b800c179d083db630f703d8b3940d2d03594cd689c91347461b775ee249cb57bafe632b77e2
-binfiles arch=amd64-freebsd size=7110
- bin/amd64-freebsd/biber
+catalogue-version 2.17
name biber.i386-cygwin
category Package
-revision 57273
+revision 61867
shortdesc i386-cygwin files of biber
-containersize 17180072
-containerchecksum ee2725f6cadcd6158030ad568062aac75f06b6e6a0bd1b519b96d3fd08d38e12c2ee22ed4ab4074c9d02ca2813e315e3fa8de1ca1bf0587addbef703dbcb479a
-binfiles arch=i386-cygwin size=5576
+containersize 17154236
+containerchecksum e4770977d539a08fbcbc46684352655eb7a6fbee33dd86c2467d359c75b9c851e9eb51d88203401d3d51613226ff01f46348fafbb5dbb259ad79d473c7480654
+binfiles arch=i386-cygwin size=5570
bin/i386-cygwin/biber.exe
-name biber.i386-freebsd
-category Package
-revision 57273
-shortdesc i386-freebsd files of biber
-containersize 20865460
-containerchecksum 6df95de8874d1dcb008ff55973a53c7954cc9ce9fdc2c26826f32977dcc45df2628884507ae1c57cb41684c47ab55c58fb05f690dcee471162d16250ff69610d
-binfiles arch=i386-freebsd size=6449
- bin/i386-freebsd/biber
-
name biber.i386-linux
category Package
-revision 57273
+revision 61867
shortdesc i386-linux files of biber
-containersize 20747804
-containerchecksum 4e9660e7e126c0c44f26dc60bc4bf46d185d08b82ab15aa01044fab2a7aedf6f093b9d84d5be7ff04868fb857a8692042e982543fe2070ad29933dd9cb697fff
-binfiles arch=i386-linux size=6428
+containersize 15876208
+containerchecksum 114e50c0b9d85b73fbaacc0956ec1f9bdbd883602b639202e39f668c64b4d3dca4c64bdf6c75315130a429ee508c74301a605ba9e9de550c9314d5ea43e745ce
+binfiles arch=i386-linux size=5096
bin/i386-linux/biber
name biber.universal-darwin
category Package
-revision 57936
+revision 61867
shortdesc universal-darwin files of biber
-containersize 33809312
-containerchecksum a5740339207955934a1eed59e55ae92920ff1f4c4cf3c9c8e0ee311e0633d53f589829372895298c09f3e1f4932e414769eb011c5a8609544a59c0e6bcb462ef
-binfiles arch=universal-darwin size=9829
+containersize 33811544
+containerchecksum 7ecbd76ce253407bd29b0352bbf87266fe43f52aa4112746f49b554045afe4e51005017f2273fcb034d165edfafb12ee953bc59a680f4ef325d97b0a57eed0a0
+binfiles arch=universal-darwin size=9830
bin/universal-darwin/biber
name biber.win32
category Package
-revision 57273
+revision 61867
shortdesc win32 files of biber
-containersize 22825312
-containerchecksum 1b4f61a229a31a3b4bff6c013f682d086d158ca423cb1752b5e3dbdd1cabe6504e25824b3f135e8349702c5b57f072b9ca0f0703e9ecab010d32675b04958666
+containersize 22827756
+containerchecksum 20cdd747b9205ecdbcb071b7251cac670f7b96b0a444585ec9cb3029536ea66b2bf70835feeab64b02a5899667a50886070ab87100addac04b62df04e3852ccc
binfiles arch=win32 size=7288
bin/win32/biber.exe
name biber.x86_64-cygwin
category Package
-revision 57273
+revision 61867
shortdesc x86_64-cygwin files of biber
-containersize 17320996
-containerchecksum da1b9dce9beb8834b0b343032885ce7917f5c0313ac1e2d0848b99e6076ec822be4a199215122993d78a4eb9dec5b0150d227b638f5ae6312963d3b4af4e93af
-binfiles arch=x86_64-cygwin size=5589
+containersize 17285996
+containerchecksum f446f45a2e1864d05ed2bf71dcb5773bd9ee76892dde4c12e74c7711c7f410e0d2bc677ba28b58efb1f5b3c7fbeec059194c075f0afcc28a54c3956d0bec6020
+binfiles arch=x86_64-cygwin size=5582
bin/x86_64-cygwin/biber.exe
name biber.x86_64-darwinlegacy
category Package
-revision 57273
+revision 61867
shortdesc x86_64-darwinlegacy files of biber
-containersize 34908476
-containerchecksum b38f7bac193f7268d6e6534710251677eb9c0ff21d946c93fb55888dfd61c877a4031503a0dfc8e77a8a053573be57e6940f9744ca88d146449abb4d18db179b
-binfiles arch=x86_64-darwinlegacy size=10089
+containersize 34909040
+containerchecksum 33a051e4c7f525530ad2b449b80f44be1a2be622f6256dc871d4870e7ab76bc9d2c98ef2d270cfd6610335645bf0f43209d68f8225d32ddf0bc526852cc252d8
+binfiles arch=x86_64-darwinlegacy size=10090
bin/x86_64-darwinlegacy/biber
name biber.x86_64-linux
category Package
-revision 57273
+revision 61867
shortdesc x86_64-linux files of biber
-containersize 23537584
-containerchecksum 292be9f33f60fed0c1a333a5f6eb69fd9d9adb12733996c56f12c8b4eef1e24c8968504b5a219a27eba5f9db82e81d329a3f46a2ac6843203b1375145b8ec32b
-binfiles arch=x86_64-linux size=7330
+containersize 23540944
+containerchecksum 7a6f433cb88bd3015d70db38fbe077f3c0580a1cd916eec603651cab4ff0f8182058c32a68ebf1385f5fcc59de7f2b4a5af3d5298395dd49dbcb6b5194475c6a
+binfiles arch=x86_64-linux size=7331
bin/x86_64-linux/biber
name biber.x86_64-linuxmusl
category Package
-revision 57273
+revision 61867
shortdesc x86_64-linuxmusl files of biber
-containersize 18684604
-containerchecksum 9b934c5ce392647907ee469873240a7d7d172a8dd5ea639ab8ff09c92872516e1e778b60c5f23c6c4830e7a908dee69d2f529e59c24b95d72cdd0b6846423542
-binfiles arch=x86_64-linuxmusl size=6102
+containersize 18087472
+containerchecksum 17b1accb6e754598cd9651e07675eca0757ea975e16a6ae258e6b20fe878cf30af79d9677f5316848160a7afe42cc8e16778a197600c1cdc363e1d18519f69ae
+binfiles arch=x86_64-linuxmusl size=5818
bin/x86_64-linuxmusl/biber
name biber.x86_64-solaris
category Package
-revision 57273
+revision 61867
shortdesc x86_64-solaris files of biber
-containersize 21923872
-containerchecksum 3731072dbad9236438d836719643f256fbafcfb8d15d4f404a70f70f4f4cc0d3947a5576368c8d8dc558375b2344794e4a830dcfa565269e3c63e01f70a8aea1
-binfiles arch=x86_64-solaris size=7071
+containersize 21927600
+containerchecksum d86b2e7b1dab590fd881e8ca8f8fb9ac3af9decf36cf7f3ae02e5b6fcc7262fd32015bf9e64dbc806c686764406dc755a2d2fb36520aa1808b41c23b943d73cd
+binfiles arch=x86_64-solaris size=7072
bin/x86_64-solaris/biber
name bibexport
@@ -36100,7 +36082,7 @@ catalogue-version 2.0.2
name biblatex
category Package
-revision 57272
+revision 61868
shortdesc Sophisticated Bibliographies in LaTeX
relocated 1
longdesc BibLaTeX is a complete reimplementation of the bibliographic
@@ -36139,11 +36121,11 @@ depend kvoptions
depend logreq
depend pdftexcmds
depend url
-containersize 243000
-containerchecksum 9d8fbb720f69afabb42ff17287ba61760d910b40c4b90923bf46fa0aa9e6eeb188cbf09f533f0916af145a361702387fce95ece74feb3a535d6409a3fb39f684
-doccontainersize 7209940
-doccontainerchecksum c81fd0590e7662c7887274effc3e1e0badf0d0c67fc44f32abf8c8da3426549a1adbf6703fbd530e595a2cfedbc4a5a089c703f3a542ec0416705839ad093bd5
-docfiles size=4887
+containersize 252480
+containerchecksum 69ea7fee07e0dd3432ded2cb12ee68ffb2345a245de421fd3aa340466e382f9dafc17027ef69420870f1467c01cd3a1087a767b177aebb5eb35a39492627cca3
+doccontainersize 7298740
+doccontainerchecksum 21b55961ea6c0289a001e85ba87a9582598e01dc5c0942f4fad624b07b0bde020f1267033100057917547aef853c54fca4a62105405c5359cab7f491a025d55a
+docfiles size=4932
RELOC/doc/latex/biblatex/CHANGES.md details="Release notes for current version" language="en"
RELOC/doc/latex/biblatex/README details="Readme" language="en"
RELOC/doc/latex/biblatex/biber/bltxml/biblatex-examples.bltxml
@@ -36303,7 +36285,7 @@ docfiles size=4887
RELOC/doc/latex/biblatex/examples/97-annotations.tex
RELOC/doc/latex/biblatex/examples/biblatex-examples.bib
RELOC/doc/latex/biblatex/examples/biblatex-examples.bltxml
-runfiles size=593
+runfiles size=622
RELOC/bibtex/bib/biblatex/biblatex/biblatex-examples.bib
RELOC/bibtex/bst/biblatex/biblatex.bst
RELOC/tex/latex/biblatex/bbx/alphabetic-verb.bbx
@@ -36399,6 +36381,7 @@ runfiles size=593
RELOC/tex/latex/biblatex/lbx/latvian.lbx
RELOC/tex/latex/biblatex/lbx/lithuanian.lbx
RELOC/tex/latex/biblatex/lbx/magyar.lbx
+ RELOC/tex/latex/biblatex/lbx/marathi.lbx
RELOC/tex/latex/biblatex/lbx/naustrian.lbx
RELOC/tex/latex/biblatex/lbx/newzealand.lbx
RELOC/tex/latex/biblatex/lbx/ngerman.lbx
@@ -36408,6 +36391,7 @@ runfiles size=593
RELOC/tex/latex/biblatex/lbx/polish.lbx
RELOC/tex/latex/biblatex/lbx/portuges.lbx
RELOC/tex/latex/biblatex/lbx/portuguese.lbx
+ RELOC/tex/latex/biblatex/lbx/romanian.lbx
RELOC/tex/latex/biblatex/lbx/russian.lbx
RELOC/tex/latex/biblatex/lbx/serbian.lbx
RELOC/tex/latex/biblatex/lbx/serbianc.lbx
@@ -36427,7 +36411,7 @@ catalogue-contact-repository https://github.com/plk/biblatex.git
catalogue-ctan /macros/latex/contrib/biblatex
catalogue-license lppl1.3
catalogue-topics biblio biblatex etex
-catalogue-version 3.16
+catalogue-version 3.17
name biblatex-abnt
category Package
@@ -100151,7 +100135,7 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 61854
+revision 61865
shortdesc Typeset Chinese theses or books
relocated 1
longdesc Easybook is based on the book document class of ctexbook to
@@ -100162,16 +100146,16 @@ longdesc China, providing multiple commands and interfaces allows users
longdesc to easily customize the thesis template. Its basic macro
longdesc package easybase can also be used with CTeX and standard
longdesc document classes.
-containersize 16576
-containerchecksum fa03422bb8ae9a50c29c046a405e11a0f711294f8cb75cd6d0fec526ab980307c0ab877bc64ed3cfafeb67489527c51d48a145b5be862dde0c6e24ffb281f09b
-doccontainersize 596280
-doccontainerchecksum 816f13261efb328e92e5758d653c8a37188830c20756bb3d5865292dfa2e645ded46ac48105b9390bebc1ef7fd574888a4a5d6f01bb113d07241dc1a14c45507
+containersize 16592
+containerchecksum c978a334404ea829f97e36963c07384cc8dbeb77d9b66b6fc2c819ee3746fc19367bb150d9eaed968d369b5fa557d05279b713fb49836e00bfbe99fa2b1f29cb
+doccontainersize 597236
+doccontainerchecksum 6d41ab575aae8ca1bda69f38ea2e4fde13b5b05a493339ef433651ebc899a017f08771c2ea0c76f8480c70fea7723b81c6e0cd35db280d60649fb4ac5763f923
docfiles size=162
RELOC/doc/latex/easybook/README.md details="Readme"
RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh"
RELOC/doc/latex/easybook/easybook.tex
srccontainersize 16472
-srccontainerchecksum 7aa28fb5ab96a07935f77a5866b54262d6f8aa70753d9371d4a0fc535311a6f490ba6739f810ae0b79d4c5b619185aa5abf02a03a6cbe9bac73e14c42dfc5ce9
+srccontainerchecksum 844ed24a5b8b9f1640369529cfc692152d3a92378ced6da2b7c7c43928930974a9facaba6ff741dfadc028463835ae41b58e17a1d96a4e5000fc4ad521efe1ca
srcfiles size=20
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
@@ -100184,7 +100168,7 @@ catalogue-contact-repository https://gitee.com/texl3/easybook
catalogue-ctan /macros/latex/contrib/easybook
catalogue-license lppl1.3c
catalogue-topics book-pub class chinese expl3
-catalogue-version 1.60
+catalogue-version 1.61
name easyfig
category Package
@@ -122393,18 +122377,18 @@ catalogue-topics footnote
name fnpct
category Package
-revision 61800
+revision 61866
shortdesc Manage footnote marks' interaction with punctuation
relocated 1
longdesc The package moves footnote marks after following punctuation
longdesc (comma or full stop), and adjusts kerning as appropriate. As a
longdesc side effect, a change to the handling of multiple footnotes is
longdesc provided.
-containersize 9428
-containerchecksum adc928a189a9362d1abfd48a881cc2395f7776f6af0e2c2177cbd0222b3672f199621bcd37c59eb75a83e6dcaeaea779614437d7d2ded0d5503cea85e70a0c54
-doccontainersize 495708
-doccontainerchecksum fda79b98e0171f628c9e6628ab03481fbc4c68deaa4f17e9a2ce0d1189b4c34918ee76d86c26217c4b46f8a2e907ce7d9c8e4c3fbb714cf64d09ba235853563d
-docfiles size=131
+containersize 9700
+containerchecksum c8a1d72d0d2978c268cba7306e780af4b68ee9d68208435616f9d6d3b3bd2364235e18e47a324a9eca9d7bdcb0dbfe8b390f98b180329968ebe78fb6deef79a2
+doccontainersize 516468
+doccontainerchecksum ddef7b9a1eb597751550bc3fb2b145c3eae4e08b6639e8a8026dbed214ea80edc3ec2973b09cbf4f17a36c201c0fdb11154ddf81f4dd0a5829bd9d9cd39786ee
+docfiles size=136
RELOC/doc/latex/fnpct/README details="Readme"
RELOC/doc/latex/fnpct/fnpct-manual.cls
RELOC/doc/latex/fnpct/fnpct-manual.pdf details="Package documentation"
@@ -122416,7 +122400,7 @@ catalogue-contact-repository https://github.com/cgnieder/fnpct/
catalogue-ctan /macros/latex/contrib/fnpct
catalogue-license lppl1.3c
catalogue-topics footnote expl3
-catalogue-version 1.0b
+catalogue-version 1.1
name fnspe
category Package
@@ -135800,7 +135784,7 @@ catalogue-version 0.11
name hamnosys
category Package
-revision 61719
+revision 61864
shortdesc A font for sign languages
relocated 1
longdesc The Hamburg Notation System, HamNoSys for short, is a system
@@ -135808,15 +135792,16 @@ longdesc for the phonetic transcription of signed languages. This
longdesc package makes HamNoSys available in XeLaTeX and LuaLaTeX. The
longdesc package provides a Unicode font for rendering HamNoSys symbols
longdesc as well as three methods for entering them.
-containersize 20688
-containerchecksum 48821ecefdee2f0aa8daa31a79db235dc0c3e50da3ec386b541bd5d40f0169e5c90c53176a60159a693efd3cb498a85ea3ec8390622d8638cc2af45ff691099b
-doccontainersize 179616
-doccontainerchecksum 65f72ed2d4a3ac9711ad4ee4e326eee9fec06611639bbbe6b72b55bc46f362b959d80f96b79036fefa2c9578df180077c3d23681e551d65dd53a0686e918249d
-docfiles size=47
+containersize 20644
+containerchecksum 3cfcc8142c427bc1143e2cc927db49cc2a66cd778009cbc4850da87e055cd6041fb657aa6ed8f668ae6b6237eca20a0194947bbbe00ab674b93845b473386b69
+doccontainersize 186656
+doccontainerchecksum 230194e6d9564ddada0f298c65ef7d62c71b9901a5b316ada7aba0f418308e3217c13878b7a78345b171565a1d73fbebfbf4721b079301356a9614b8e78a0905
+docfiles size=52
+ RELOC/doc/fonts/hamnosys/LICENSE
RELOC/doc/fonts/hamnosys/README.md details="Readme"
RELOC/doc/fonts/hamnosys/hamnosys.pdf details="Package documentation"
-srccontainersize 15812
-srccontainerchecksum c23a3b1528e0768ab1ef8386c9c06ab45930ea092cdece3224ebfa8586615cf0a97ffdf9a39d8245852f6bf5a0a940b5a26551fe5ecb6c9d4d6045533e1c856c
+srccontainersize 15836
+srccontainerchecksum 17bc70e1fbe751fdea7bd29596cd1c80e7d031b9d098610069f206793bf8b6b715f0fd6350c3d7a9acd1baf46907ada3fe53ced506a56f588c44188151c1ac5d
srcfiles size=24
RELOC/source/fonts/hamnosys/hamnosys.dtx
RELOC/source/fonts/hamnosys/hamnosys.ins
@@ -135829,7 +135814,7 @@ catalogue-contact-repository https://github.com/DGS-Korpus/HamNoSys4TeX
catalogue-ctan /fonts/hamnosys
catalogue-license lppl1.3c
catalogue-topics accessible font-ttf
-catalogue-version 1.0.1
+catalogue-version 1.0.2
name handin
category Package
@@ -288954,7 +288939,7 @@ binfiles arch=x86_64-solaris size=1
name tex4ht
category Package
-revision 61860
+revision 61869
shortdesc Convert (La)TeX to HTML/XML
longdesc A converter from TeX and LaTeX to SGML-based formats such as
longdesc (X)HTML, MathML, OpenDocument, and Docbook, providing a
@@ -288975,10 +288960,10 @@ longdesc files from them is nontrivial, and generally done with the
longdesc Makefile in development, from which the TeX4ht package in TeX
longdesc Live is updated.
depend tex4ht.ARCH
-containersize 924444
-containerchecksum dbeef98dcbc796296b54c23f838cd8776a369c3cc3fdd9540dd3ec5874011f0ecff060d3e9cbdc9cd4b09a917da9f33fd0026962281ba66ac2b0332762b2f139
+containersize 924536
+containerchecksum 00566e011842ea0242f81ca0d57261764fc891c428ac66fd6da07b3f5e490ebcff8263af0a0b92cc87e7ee17566ac72af4296e3497187e909cc21841fb7938fa
doccontainersize 136384
-doccontainerchecksum c42415a7a2b7d0d67b3607f420a78faf4f97bd7d8d715a82e6dad70e1e5d5eaf476e2627c44da3e6c927ae868bae660a7b5862b09e7dab0d7dbe7c3bf19f8b4c
+doccontainerchecksum d93de8e1d86f2a287094d24f3f69826a2faf10c853fdfa2877f2c8e4aca7980208a12479df513656e96f30092dbfd1846f97403fcdbe3f350fd17d9d5d0e831e
docfiles size=260
texmf-dist/doc/generic/tex4ht/Makefile
texmf-dist/doc/generic/tex4ht/README details="Readme"
@@ -289050,8 +289035,8 @@ docfiles size=260
texmf-dist/doc/generic/tex4ht/mn56.html
texmf-dist/doc/generic/tex4ht/mn5x.png
texmf-dist/doc/generic/tex4ht/mn6x.png
-srccontainersize 1234668
-srccontainerchecksum 972cb9e5a18d37636c534d446fa19e8162c8be2991a8c556b5b9ae0876674ad7b625a1f6d4c9d7d145a4a1dd8936e7a5a7bc3b6c4f1f7238a1353f308c6053c9
+srccontainersize 1247320
+srccontainerchecksum 8f6487ff18a559ed3bb3970f682f8c22169231f6cb1a242c988eedfb90bbae9cc2a7cf302fb159b50a1cc6db539170d6e1f7efd8bddb19aea669e389585092ff
srcfiles size=3755
texmf-dist/source/generic/tex4ht/ChangeLog
texmf-dist/source/generic/tex4ht/Makefile
@@ -298972,7 +298957,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 61849
+revision 61862
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -298980,10 +298965,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 108412
-containerchecksum 961d943a112fdc82f78a8605a72d779c0b2170d1402b8987a18c9e5d45ca2937bdfbf1f698d835750ef1db161ac83c13db297ef0ce7612de3b27ef14ad16c8c9
+containersize 108392
+containerchecksum 591c4c3797b12ab3071c179acccb4083d9f687e43241eb1c6afdf9999cc94b1164f4a4036df213e4e1174b8de7449880d390373c25b754e593fc1c4874905cd8
doccontainersize 403148
-doccontainerchecksum d284c1f7aff81d2684bbe379effc2ea5990f0de3d29b6a3ab0e5c9ab741ea22cc0becc62c990af48ba5c79730c14d1e26e80649d575699b3f53180e6bf890048
+doccontainerchecksum 13cd4ce264dc74c288bac11c229e083c4a3eee08adfabf3e17b5a8672990c9e282b2c9862707e9825fcc24cd4dbedcd4a0aa119229d7a517f7206252308dc155
docfiles size=501
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index ee39c6695c..718af2a15d 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-370050af48548c765a0a7c88e1f2dd7b texlive.tlpdb
+8e7be02e69ca3552ce4de762f0a69ed1 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index f6705cbbc2..fb3c80964a 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-acce63b4b642eb5fc5ad8dae77401df52e76ec8389be63e1cb5723de1f05488b14e5fa68fa7f1a79a106f6429926b69c0d72350b92593fab8a3fbf69427205e1 texlive.tlpdb
+76f8aa06eae6dcc79699c1729018b1241c0f446a1f37fec0b5d3d22f14fa057166e756e4708e41488b3c6657735bf68db258305ba55f18c1c1e9248e9fc41892 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index b3f4e52c35..c610934869 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJh+yeKAAoJEEzhh34ZQ4xwJ1IIAKqLPhnfNPa15ZeQ2YFGT9KR
-HmaQJgd8jTL1XkwdYqzZlMbNxos48ayibIlS3j67QQkD6brTU+IhZcnRQT6rhsWR
-MkkrGMS9QmncqE5HC0L2d+3azZidcVOs1cC3RfSJT1feK06F0UOJe4X2K8Y36Cmg
-Msew4PJCGmAUlm1ImJdGBY5UyrnIV5ardv9ytbZAc/mT1USw5jgFSZgi8RcR0NyD
-gZbQu5ZR0HA8as6jwpUJkUBi6HTD9Y/2bNWBBHaw2jxbMxWUienfJNtAlPVXmYbE
-l/ny6N2/7Lvnz1KiuQR13R7fwzJxb156VakGxkAvbaZCe1aaJY3Tc8BNXN69e9Q=
-=5wy1
+iQEcBAEBCgAGBQJh/HmIAAoJEEzhh34ZQ4xwW2wH/1KOn9DAgdzVN8OEBrUegx6V
+Kl/75ITHCKBJUBIaWiwHcrXTj2dDIpL9zEI9dZ2U5DyJxBnFWktTrdMhGbUiUHzy
+u0FhKFK5eHoBI7Fq2Bmdl/zR+VR8QcAWknv0qWjhjfR+m9+c90F0wshLHnTxnkbl
+Ao0YMgAVSdryyw6HTOTZcbCLH7g9HcfBGERToO3lSqlkUbU1dQWOKOuZpsiA72db
+g1FiDpnZT9mtnJ0cvouJyy55qCElKd1FQDF6SPJ3pBuP5nneYz0R/Dhx1p/pudDa
+tLa7YeZvaltvcW2DZ5oylV63wu9geu2tQCGlIKI1v0HSL/W4VK/Ka5PZkXae/DA=
+=HBqr
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index c7c56be10c..c23280ed84 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 44dad63e50..6b2d71ffd2 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1643923032
+date=1644009475
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=b26dae3ebaa5d1bb201c802b3e3b6229
+lstdigest=d033055e3d5239c42d10ad0a2524cd77
numpkg=5283
relstate=next
-version=8069
+version=8070
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: pQdHH9mNtN+gR+BFLybikQC1pwuSXEeaMK6kKbAkdcjPiB9bxTDN6tZNQxKNJTdqNnabLRcccFmJMYG01xLq+GxDQu2HR+Jirg4fjStmGl7LhN6m7jaUuyyPY2IfyIfMb1wXe+9HKn57JS5CcxCBxde2TcxxDcVhr+11NsACCz7LEvCmI/Qt72ucZ35ljmhwsp1ETxR7n8s4XOlQ5Y5/K7xedGautoCYaSjd3xRjBdFZDWbL8lgQ6sYsy/wHjq3/+uylE/RJ2l6yxX4IQmwVdKoZwrWuKy0ZyBltMXXSTnOjl0x6r1ixPMA91YgEftqDcE/5bUYXf3p34gM2G3/ijQ==
+;;;; signature/miktex: WYhCaj7wKxU6UjfqyCalTnPTZIxiPmnIDpsJ5VnmVkAY+O7KNE1bM/vL/RK5l9msbLeJiQLWNvA8V7Scq5MqFnY/zyHiuNzuDTXn1C+O7u+iBwDK88gGq1BkJrxk/JJjevHQG0EJb9hjhmEZXoFGu0vZlURv6EcJ5OKTPYiXI5JDw2sJkbL6x1feRRKsAjoKNizLqeHFzDa/kCMiPkfOPD3iay75XmI5aVjOl5JcZOxTkoVsdVYZR40sZTx4ZkQKG9ekD9xno6SXdANRkXVgAuRtz6PgVTAFWugAoH+Uxrh0j1qe6gEW7QNO9qbIyabM/8phzQOk9itY27Kht27BqQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 89f3970cef..a09457ed80 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1643922670
+date=1644009121
lastupd=miktex-mo-bin-2.9 miktex-mo-bin-x64-2.9 miktex-runtime-bin-2.9 miktex-runtime-bin-x64-2.9 miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9
-lstdigest=89b708f62b936095831af635d37547a6
+lstdigest=5e84e208e897dedd3aeae914beee6759
numpkg=5283
relstate=stable
-version=8069
+version=8070
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: Kt3/gCrbDjufI11lgxkX1zmepQ88pGteujqqSIH4mMVnCDBcxbwPhwrWcSd+7PFQ9Np5dIeoeilxfaYbZYk4atnzZ/FbpkWMsXJy54tAA2Yd07ZzagAcR+rZncRfahLbOtlmNiZdw7Hl6djDs3P1SdQrEyjX8hBOtOGbZdb55TMX3cgcZA/ZD5R6O8KprtlkA+gdeyptktpXvvEGsmh5eORgi05n7O0xM36ribKXVmgE69Dlqdqx8bc2THjqdb1d09LLGaoS1Yvgype6yreAdaHGV3FFJwOHabx8i6qZvzLz4txSlqA+gjXk88oLGZxGEir07yjFR4GqlKeYYhKtTQ==
+;;;; signature/miktex: mjM2+m/WWsJk7oJM7jWeBoe5mOU3kC7ikyddIOvtCQuizTsh88ipQzLUbtQthYJ6hI5kBwzAeNxzNFaMDyJkh66z8rw0RG9vP2LZfGE6h9deGzmKla2daP+jw4IWDJuCoeQ3oNbV0y22EIsSVbi76rz0tXpWNaNbYhPwlMWR/Pemde/KOybQ1Bk5r6npyG926mMpoBWeFI+65iv8ryeOgbx2ekpuItlI0Mj8mHCGe/b8sSjJwWm4pqfQwLPI7huFGlXiWAJYvvQ5DKqNW3wJFY1XRdd5fn+0ON2XmBXatQ/8ypEBN6kC3A9/DFRNdKQjB80LoeHp26Wz7+k+gIGcPw==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index c79d6bb212..40837954d2 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2022-02-04-02-02
+2022-02-05-02-02