summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-12-01 03:01:22 +0000
committerNorbert Preining <norbert@preining.info>2022-12-01 03:01:22 +0000
commit77362f5f4b083c21c2044b0c54d228da42804c72 (patch)
tree232ef82c01eeddcc36e279df6e98c1ac6299ea8d
parentcb9bbbf5f4fdb303e5da460ebf17b50811d06a6a (diff)
CTAN sync 202212010301
-rw-r--r--CTAN.sites6
-rw-r--r--FILES.byname1134
-rw-r--r--FILES.byname.gzbin2484408 -> 2484169 bytes
-rw-r--r--FILES.last07days613
-rw-r--r--biblio/ctan-bibdata/ctan.bib26
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3625505 -> 3625236 bytes
-rw-r--r--graphics/circuit_macros/CHANGES2
-rw-r--r--graphics/circuit_macros/Copying2
-rw-r--r--graphics/circuit_macros/INSTALL35
-rw-r--r--graphics/circuit_macros/README33
-rw-r--r--graphics/circuit_macros/darrow.m42
-rw-r--r--graphics/circuit_macros/doc/AmpTable.tex73
-rw-r--r--graphics/circuit_macros/doc/Audio.tex295
-rw-r--r--graphics/circuit_macros/doc/Bip.tex175
-rw-r--r--graphics/circuit_macros/doc/Circuit_macros.bib6
-rw-r--r--graphics/circuit_macros/doc/Circuit_macros.pdfbin1025740 -> 1030606 bytes
-rw-r--r--graphics/circuit_macros/doc/Conn.tex178
-rw-r--r--graphics/circuit_macros/doc/Contact.tex373
-rw-r--r--graphics/circuit_macros/doc/Contacts.tex141
-rw-r--r--graphics/circuit_macros/doc/Demultiplexer.tex148
-rw-r--r--graphics/circuit_macros/doc/Diodes.tex383
-rw-r--r--graphics/circuit_macros/doc/DiodesMan.m44
-rw-r--r--graphics/circuit_macros/doc/Emarrows.tex142
-rw-r--r--graphics/circuit_macros/doc/EmarrowsMan.m430
-rw-r--r--graphics/circuit_macros/doc/Fuses.tex174
-rw-r--r--graphics/circuit_macros/doc/Grounds.tex91
-rw-r--r--graphics/circuit_macros/doc/Headers.tex214
-rw-r--r--graphics/circuit_macros/doc/Jack.tex327
-rw-r--r--graphics/circuit_macros/doc/Logic.tex212
-rw-r--r--graphics/circuit_macros/doc/Multiplexer.tex148
-rw-r--r--graphics/circuit_macros/doc/NLG.tex93
-rw-r--r--graphics/circuit_macros/doc/NPDT.tex121
-rw-r--r--graphics/circuit_macros/doc/Nport.tex116
-rw-r--r--graphics/circuit_macros/doc/Pconn.tex462
-rw-r--r--graphics/circuit_macros/doc/Relay.tex198
-rw-r--r--graphics/circuit_macros/doc/SLDs.tex1208
-rw-r--r--graphics/circuit_macros/doc/ShiftR.tex285
-rw-r--r--graphics/circuit_macros/doc/Sources.tex466
-rw-r--r--graphics/circuit_macros/doc/Switches.tex596
-rw-r--r--graphics/circuit_macros/doc/Tgate.tex117
-rw-r--r--graphics/circuit_macros/doc/Variable.tex306
-rw-r--r--graphics/circuit_macros/doc/Version.tex2
-rw-r--r--graphics/circuit_macros/doc/Xform.tex648
-rw-r--r--graphics/circuit_macros/doc/body.tex36
-rw-r--r--graphics/circuit_macros/doc/defines.tex30
-rw-r--r--graphics/circuit_macros/doc/fet.tex513
-rw-r--r--graphics/circuit_macros/doc/test.tex1
-rw-r--r--graphics/circuit_macros/doc/thyristor.tex561
-rw-r--r--graphics/circuit_macros/doc/ujt.tex81
-rw-r--r--graphics/circuit_macros/dpictools.pic2
-rw-r--r--graphics/circuit_macros/examples/ArrowFn.m43
-rw-r--r--graphics/circuit_macros/examples/Btree.m462
-rw-r--r--graphics/circuit_macros/examples/Chips.m411
-rw-r--r--graphics/circuit_macros/examples/Connectors.m44
-rw-r--r--graphics/circuit_macros/examples/Coxeter.m438
-rw-r--r--graphics/circuit_macros/examples/Crossbar.m453
-rw-r--r--graphics/circuit_macros/examples/Csource.m42
-rw-r--r--graphics/circuit_macros/examples/EEP.m42
-rw-r--r--graphics/circuit_macros/examples/EVplugs.m42
-rw-r--r--graphics/circuit_macros/examples/Emarrows.m428
-rw-r--r--graphics/circuit_macros/examples/Eye.m414
-rw-r--r--graphics/circuit_macros/examples/FlowchartDefs.m42
-rw-r--r--graphics/circuit_macros/examples/Geometry.m4192
-rw-r--r--graphics/circuit_macros/examples/GrayCode.m454
-rw-r--r--graphics/circuit_macros/examples/Heathkit.m46
-rw-r--r--graphics/circuit_macros/examples/Incl.eps.gzbin45323 -> 45323 bytes
-rw-r--r--graphics/circuit_macros/examples/Incleps.m41
-rw-r--r--graphics/circuit_macros/examples/Inductors.m46
-rw-r--r--graphics/circuit_macros/examples/Makefile104
-rw-r--r--graphics/circuit_macros/examples/Pconn.m41
-rw-r--r--graphics/circuit_macros/examples/Planes.m495
-rw-r--r--graphics/circuit_macros/examples/Plate.m45
-rw-r--r--graphics/circuit_macros/examples/README-examples122
-rw-r--r--graphics/circuit_macros/examples/SampleFlow.m42
-rw-r--r--graphics/circuit_macros/examples/Smithchart.m4222
-rw-r--r--graphics/circuit_macros/examples/Stator.m41
-rw-r--r--graphics/circuit_macros/examples/Ttree.m456
-rw-r--r--graphics/circuit_macros/examples/Tubediags.m44
-rw-r--r--graphics/circuit_macros/examples/UNO.m4568
-rw-r--r--graphics/circuit_macros/examples/Wheat.m423
-rw-r--r--graphics/circuit_macros/examples/control.m422
-rw-r--r--graphics/circuit_macros/examples/csc.m42
-rw-r--r--graphics/circuit_macros/examples/debug2.m42
-rw-r--r--graphics/circuit_macros/examples/dpv/ABlogixDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ABlogixSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/AdderDPV.m4 (renamed from graphics/circuit_macros/examples/svg/AdderSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/AlogixDPV.m4 (renamed from graphics/circuit_macros/examples/svg/AlogixSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/AmpTableDPV.m4 (renamed from graphics/circuit_macros/examples/svg/AmpTableSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/AntennasDPV.m4 (renamed from graphics/circuit_macros/examples/svg/AntennasSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ArrestersDPV.m475
-rw-r--r--graphics/circuit_macros/examples/dpv/ArrowFnDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ArrowFnSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/AudioDPV.m4 (renamed from graphics/circuit_macros/examples/svg/AudioSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/AutoencoderDPV.m4 (renamed from graphics/circuit_macros/examples/svg/AutoencoderSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/Banking.m4 (renamed from graphics/circuit_macros/examples/svg/Banking.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/BipDPV.m4 (renamed from graphics/circuit_macros/examples/svg/BipSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/BtreeDPV.m4 (renamed from graphics/circuit_macros/examples/svg/BtreeSVG.m4)4
-rw-r--r--graphics/circuit_macros/examples/dpv/ButtonsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ButtonsSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ByteDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ByteSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ByteDPV.svg150
-rw-r--r--graphics/circuit_macros/examples/dpv/CanLogicDPV.m4 (renamed from graphics/circuit_macros/examples/svg/CanLogicSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/CapacitorsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/CapacitorsSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ChipsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ChipsSVG.m4)4
-rw-r--r--graphics/circuit_macros/examples/dpv/ConnDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ConnSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ConnectorsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ConnectorsSVG.m4)6
-rw-r--r--graphics/circuit_macros/examples/dpv/ConnectorsDPV.pic368
-rw-r--r--graphics/circuit_macros/examples/dpv/ConnectorsDPV.svg853
-rw-r--r--graphics/circuit_macros/examples/dpv/ContactDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ContactSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ContactsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ContactsSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/CountingDPV.m4 (renamed from graphics/circuit_macros/examples/svg/CountingSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/CrowDPV.m4 (renamed from graphics/circuit_macros/examples/svg/CrowSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/CrullerDPV.m4 (renamed from graphics/circuit_macros/examples/svg/CrullerSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/CsourceDPV.m4 (renamed from graphics/circuit_macros/examples/svg/CsourceSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/CsourceDPV.svg1175
-rw-r--r--graphics/circuit_macros/examples/dpv/DPVconfig.m4 (renamed from graphics/circuit_macros/examples/svg/SVGconfig.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/DecoderDPV.m4 (renamed from graphics/circuit_macros/examples/svg/DecoderSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/DemultiplexerDPV.m4 (renamed from graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/DiniDPV.m4 (renamed from graphics/circuit_macros/examples/svg/DiniSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/DiodesDPV.m4 (renamed from graphics/circuit_macros/examples/svg/DiodesSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/DriveDPV.m4 (renamed from graphics/circuit_macros/examples/svg/DriveSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/EEPDPV.m4 (renamed from graphics/circuit_macros/examples/svg/EEPSVG.m4)6
-rw-r--r--graphics/circuit_macros/examples/dpv/EEPDPV.svg662
-rw-r--r--graphics/circuit_macros/examples/dpv/EVplugsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/EVplugsSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/EmarrowsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/EmarrowsSVG.m4)10
-rw-r--r--graphics/circuit_macros/examples/dpv/EscherDPV.m4 (renamed from graphics/circuit_macros/examples/svg/EscherSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/EyeDPV.m4 (renamed from graphics/circuit_macros/examples/svg/EyeSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/FlowDPV.m4 (renamed from graphics/circuit_macros/examples/svg/FlowSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/FlowDPV.svg890
-rw-r--r--graphics/circuit_macros/examples/dpv/FontsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/FontsSVG.m4)6
-rw-r--r--graphics/circuit_macros/examples/dpv/FontsDPV.svg204
-rw-r--r--graphics/circuit_macros/examples/dpv/FourbarDPV.m4 (renamed from graphics/circuit_macros/examples/svg/FourbarSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/FusesDPV.m4 (renamed from graphics/circuit_macros/examples/svg/FusesSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/GeometryDPV.m4 (renamed from graphics/circuit_macros/examples/svg/GeometrySVG.m4)8
-rw-r--r--graphics/circuit_macros/examples/dpv/GrayCodeDPV.m4 (renamed from graphics/circuit_macros/examples/svg/GrayCodeSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/GroundsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/GroundsSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/HeadersDPV.m4 (renamed from graphics/circuit_macros/examples/svg/HeadersSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/HeathkitDPV.m4 (renamed from graphics/circuit_macros/examples/svg/HeathkitSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/HeathkitDPV.svg2010
-rw-r--r--graphics/circuit_macros/examples/dpv/I2LDPV.m4 (renamed from graphics/circuit_macros/examples/svg/I2LSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/Incl.jpg (renamed from graphics/circuit_macros/examples/svg/Incl.jpg)bin21384 -> 21384 bytes
-rw-r--r--graphics/circuit_macros/examples/dpv/InclepsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/InclepsSVG.m4)16
-rw-r--r--graphics/circuit_macros/examples/dpv/InductorsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/InductorsSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/JackDPV.m4 (renamed from graphics/circuit_macros/examples/svg/JackSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/LgateDPV.m4 (renamed from graphics/circuit_macros/examples/svg/LgateSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/LogicDPV.m4 (renamed from graphics/circuit_macros/examples/svg/LogicSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/LoglogDPV.m4 (renamed from graphics/circuit_macros/examples/svg/LoglogSVG.m4)4
-rw-r--r--graphics/circuit_macros/examples/dpv/MCDPV.m4 (renamed from graphics/circuit_macros/examples/svg/MCSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/Makefile166
-rw-r--r--graphics/circuit_macros/examples/dpv/MixerDPV.m4 (renamed from graphics/circuit_macros/examples/svg/MixerSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/MoreTableDPV.m4 (renamed from graphics/circuit_macros/examples/svg/MoreTableSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/MotorControlDPV.m4 (renamed from graphics/circuit_macros/examples/svg/MotorControlSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/MultiplexerDPV.m4 (renamed from graphics/circuit_macros/examples/svg/MultiplexerSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/NLGDPV.m4 (renamed from graphics/circuit_macros/examples/svg/NLGSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/NPDTDPV.m4 (renamed from graphics/circuit_macros/examples/svg/NPDTSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/Np.m4 (renamed from graphics/circuit_macros/examples/svg/Np.m4)3
-rw-r--r--graphics/circuit_macros/examples/dpv/NportDPV.m4 (renamed from graphics/circuit_macros/examples/svg/NportSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/NportDPV.svg192
-rw-r--r--graphics/circuit_macros/examples/dpv/OpampDPV.m4 (renamed from graphics/circuit_macros/examples/svg/OpampSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/OptoisoDPV.m4 (renamed from graphics/circuit_macros/examples/svg/OptoisoSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/PconnDPV.m4 (renamed from graphics/circuit_macros/examples/svg/PconnSVG.m4)3
-rw-r--r--graphics/circuit_macros/examples/dpv/PlateDPV.m4 (renamed from graphics/circuit_macros/examples/svg/PlateSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/PushPullDPV.m4 (renamed from graphics/circuit_macros/examples/svg/PushPullSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/QuantumDPV.m4 (renamed from graphics/circuit_macros/examples/svg/QuantumSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/README_svg13
-rw-r--r--graphics/circuit_macros/examples/dpv/RectifiersDPV.m4 (renamed from graphics/circuit_macros/examples/svg/RectifiersSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/RelayDPV.m4 (renamed from graphics/circuit_macros/examples/svg/RelaySVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ResistorsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ResistorsSVG.m4)4
-rw-r--r--graphics/circuit_macros/examples/dpv/RotboxDPV.m4 (renamed from graphics/circuit_macros/examples/svg/RotboxSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/SQUIDDPV.m4 (renamed from graphics/circuit_macros/examples/svg/SQUIDSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/SchottkyDPV.m4 (renamed from graphics/circuit_macros/examples/svg/SchottkySVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ShiftRDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ShiftRSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/SierpinskiDPV.m4 (renamed from graphics/circuit_macros/examples/svg/SierpinskiSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/SixpoleDPV.m4 (renamed from graphics/circuit_macros/examples/svg/SixpoleSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/SmithchartDPV.m4 (renamed from graphics/circuit_macros/examples/svg/SmithchartSVG.m4)8
-rw-r--r--graphics/circuit_macros/examples/dpv/SourcesDPV.m4 (renamed from graphics/circuit_macros/examples/svg/SourcesSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/SwitchesDPV.m4 (renamed from graphics/circuit_macros/examples/svg/SwitchesSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/TTLnandDPV.m4 (renamed from graphics/circuit_macros/examples/svg/TTLnandSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/TgateDPV.m4 (renamed from graphics/circuit_macros/examples/svg/TgateSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ThreeDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ThreeSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/TimerDPV.m4 (renamed from graphics/circuit_macros/examples/svg/TimerSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/TtreeDPV.m4 (renamed from graphics/circuit_macros/examples/svg/TtreeSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/TubediagsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/TubediagsSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/UNODPV.m4 (renamed from graphics/circuit_macros/examples/svg/UNOSVG.m4)4
-rw-r--r--graphics/circuit_macros/examples/dpv/VariableDPV.m4 (renamed from graphics/circuit_macros/examples/svg/VariableSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/WindingsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/WindingsSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/XORDPV.m4 (renamed from graphics/circuit_macros/examples/svg/XORSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/XformDPV.m4 (renamed from graphics/circuit_macros/examples/svg/XformSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/Xtest.m4 (renamed from graphics/circuit_macros/examples/svg/Xtest.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/controlDPV.m4 (renamed from graphics/circuit_macros/examples/svg/controlSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/controlDPV.svg745
-rw-r--r--graphics/circuit_macros/examples/dpv/cscDPV.m4 (renamed from graphics/circuit_macros/examples/svg/cscSVG.m4)8
-rw-r--r--graphics/circuit_macros/examples/dpv/diamondDPV.m4 (renamed from graphics/circuit_macros/examples/svg/diamondSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex00DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex00SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex01DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex01SVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ex01DPV.svg391
-rw-r--r--graphics/circuit_macros/examples/dpv/ex02DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex02SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex03DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex03SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex04DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex04SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex05DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex05SVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ex06DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex06SVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ex08DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex08SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex09DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex09SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex10DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex10SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex11DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex11SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex12DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex12SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex15DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex15SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex16DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex16SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex17DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex17SVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/ex18DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex18SVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/ex21DPV.m4 (renamed from graphics/circuit_macros/examples/svg/ex21SVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/examplesDPV.htmx (renamed from graphics/circuit_macros/examples/svg/examplesSVG.htmx)380
-rw-r--r--graphics/circuit_macros/examples/dpv/examplesDPVs.html417
-rw-r--r--graphics/circuit_macros/examples/dpv/examplesDPVs.htmx741
-rw-r--r--graphics/circuit_macros/examples/dpv/expDPV.m4 (renamed from graphics/circuit_macros/examples/svg/expSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/fetDPV.m4 (renamed from graphics/circuit_macros/examples/svg/fetSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/graysurfDPV.m4 (renamed from graphics/circuit_macros/examples/svg/graysurfSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/icsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/icsSVG.m4)10
-rw-r--r--graphics/circuit_macros/examples/dpv/keyboardDPV.m4269
-rw-r--r--graphics/circuit_macros/examples/dpv/lcctDPV.m4 (renamed from graphics/circuit_macros/examples/svg/lcctSVG.m4)4
-rw-r--r--graphics/circuit_macros/examples/dpv/local_init.m4 (renamed from graphics/circuit_macros/examples/svg/local_init.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/paletteDPV.m4337
-rw-r--r--graphics/circuit_macros/examples/dpv/paletteDPV.svg2639
-rw-r--r--graphics/circuit_macros/examples/dpv/pwrsupplyDPV.m4 (renamed from graphics/circuit_macros/examples/svg/pwrsupplySVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/quick.m416
-rw-r--r--graphics/circuit_macros/examples/dpv/quick.pic124
-rw-r--r--graphics/circuit_macros/examples/dpv/quick.svg47
-rw-r--r--graphics/circuit_macros/examples/dpv/quick.tex188
-rw-r--r--graphics/circuit_macros/examples/dpv/quick.xsvg47
-rw-r--r--graphics/circuit_macros/examples/dpv/quickDPV.m4 (renamed from graphics/circuit_macros/examples/svg/quickSVG.m4)6
-rw-r--r--graphics/circuit_macros/examples/dpv/quickDPV.svg104
-rw-r--r--graphics/circuit_macros/examples/dpv/randomDPV.m4 (renamed from graphics/circuit_macros/examples/svg/randomSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/recycleDPV.m4 (renamed from graphics/circuit_macros/examples/svg/recycleSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/relaycoilDPV.m4 (renamed from graphics/circuit_macros/examples/svg/relaycoilSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/roseDPV.m4 (renamed from graphics/circuit_macros/examples/svg/roseSVG.m4)7
-rw-r--r--graphics/circuit_macros/examples/dpv/sfgDPV.m4 (renamed from graphics/circuit_macros/examples/svg/sfgSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/shapesDPV.m4 (renamed from graphics/circuit_macros/examples/svg/shapesSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/slddiagsDPV.m4 (renamed from graphics/circuit_macros/examples/svg/slddiagsSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/thyristorDPV.m4 (renamed from graphics/circuit_macros/examples/svg/thyristorSVG.m4)2
-rw-r--r--graphics/circuit_macros/examples/dpv/tstDPV.htmx (renamed from graphics/circuit_macros/examples/svg/tstSVG.htmx)76
-rw-r--r--graphics/circuit_macros/examples/dpv/ujtDPV.m4 (renamed from graphics/circuit_macros/examples/svg/ujtSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/windows.m4 (renamed from graphics/circuit_macros/examples/svg/windows.m4)0
-rw-r--r--graphics/circuit_macros/examples/dpv/wormDPV.m4 (renamed from graphics/circuit_macros/examples/svg/wormSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/ex01.m44
-rw-r--r--graphics/circuit_macros/examples/ex05.m451
-rw-r--r--graphics/circuit_macros/examples/ex17.m42
-rw-r--r--graphics/circuit_macros/examples/examples.pdfbin907801 -> 1897548 bytes
-rw-r--r--graphics/circuit_macros/examples/files.tex128
-rw-r--r--graphics/circuit_macros/examples/keyboard.m4 (renamed from graphics/circuit_macros/examples/svg/keyboardSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/keyboard.pdfbin0 -> 118060 bytes
-rw-r--r--graphics/circuit_macros/examples/keyval.m474
-rw-r--r--graphics/circuit_macros/examples/mf/cct.mf2
-rw-r--r--graphics/circuit_macros/examples/mpost/Makefile56
-rw-r--r--graphics/circuit_macros/examples/mpost/README-mpost2
-rw-r--r--graphics/circuit_macros/examples/mpost/examplesmpost.tex3
-rw-r--r--graphics/circuit_macros/examples/paletteSVG.m4 (renamed from graphics/circuit_macros/examples/svg/paletteSVG.m4)0
-rw-r--r--graphics/circuit_macros/examples/psfrag/Makefile58
-rw-r--r--graphics/circuit_macros/examples/rose.m441
-rw-r--r--graphics/circuit_macros/examples/svg/Makefile148
-rw-r--r--graphics/circuit_macros/examples/venus.m43
-rw-r--r--graphics/circuit_macros/examples/xfig/xfiglib.fig2
-rw-r--r--graphics/circuit_macros/gpic.m42
-rw-r--r--graphics/circuit_macros/lib3D.m42
-rw-r--r--graphics/circuit_macros/libSLD.m42
-rw-r--r--graphics/circuit_macros/libcct.m469
-rw-r--r--graphics/circuit_macros/libgen.m446
-rw-r--r--graphics/circuit_macros/liblog.m42
-rw-r--r--graphics/circuit_macros/mfpic.m42
-rw-r--r--graphics/circuit_macros/mpost.m42
-rw-r--r--graphics/circuit_macros/pgf.m42
-rw-r--r--graphics/circuit_macros/postscript.m42
-rw-r--r--graphics/circuit_macros/psfrag.m42
-rw-r--r--graphics/circuit_macros/pstricks.m42
-rw-r--r--graphics/circuit_macros/svg.m423
-rw-r--r--graphics/circuit_macros/xfig.m42
-rw-r--r--macros/latex/contrib/kdpcover/DEPENDS.txt3
-rw-r--r--macros/latex/contrib/kdpcover/README.md3
-rw-r--r--macros/latex/contrib/kdpcover/kdpcover.dtx65
-rw-r--r--macros/latex/contrib/kdpcover/kdpcover.ins8
-rw-r--r--macros/latex/contrib/kdpcover/kdpcover.pdfbin260022 -> 368603 bytes
-rw-r--r--macros/latex/contrib/kdpcover/yb-book-logo.pdfbin0 -> 5216 bytes
-rw-r--r--macros/latex/contrib/mathfont/README.txt78
-rw-r--r--macros/latex/contrib/mathfont/mathfont_code.dtx1803
-rw-r--r--macros/latex/contrib/mathfont/mathfont_code.pdfbin381683 -> 371018 bytes
-rw-r--r--macros/latex/contrib/mathfont/mathfont_example_cormorant.pdfbin48599 -> 51264 bytes
-rw-r--r--macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdfbin70870 -> 84913 bytes
-rw-r--r--macros/latex/contrib/mathfont/mathfont_example_roboto.pdfbin47734 -> 54246 bytes
-rw-r--r--macros/latex/contrib/mathfont/mathfont_example_typey.pdfbin39136 -> 38746 bytes
-rw-r--r--macros/latex/contrib/mathfont/mathfont_symbol_list.pdfbin185186 -> 232449 bytes
-rw-r--r--macros/latex/contrib/mathfont/mathfont_user_guide.pdfbin114809 -> 115029 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin738301 -> 744621 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex60
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty25
-rw-r--r--macros/latex/required/babel/base/README.md26
-rw-r--r--macros/latex/required/babel/base/babel.dtx249
-rw-r--r--macros/latex/required/babel/base/babel.ins2
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin885304 -> 897584 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
-rw-r--r--macros/luatex/generic/lutabulartools/lutabulartools.lua336
-rw-r--r--macros/luatex/generic/lutabulartools/lutabulartools.pdfbin114054 -> 116020 bytes
-rw-r--r--macros/luatex/generic/lutabulartools/lutabulartools.sty63
-rw-r--r--macros/luatex/generic/lutabulartools/lutabulartools.tex204
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb195
-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.xzbin2430872 -> 2430208 bytes
-rw-r--r--timestamp2
306 files changed, 17578 insertions, 12334 deletions
diff --git a/CTAN.sites b/CTAN.sites
index fc957ce0ee..48eefa1b7b 100644
--- a/CTAN.sites
+++ b/CTAN.sites
@@ -587,12 +587,6 @@ by country):
URL: https://mirror.cse.unsw.edu.au/pub/CTAN/
- mirror.aut.ac.nz (New Zealand)
- URL: ftp://mirror.aut.ac.nz/CTAN/
- URL: http://mirror.aut.ac.nz/CTAN/
- URL: https://mirror.aut.ac.nz/CTAN/
-
-
South America
=============
diff --git a/FILES.byname b/FILES.byname
index 576b34f423..8fa4a5c680 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2035,12 +2035,12 @@
2022/09/23 | 1673 | biblio/citation-style-language/README.md
2022/09/23 | 11958 | biblio/citation-style-language/vancouver.csl
2022/09/23 | 591448 | biblio/citation-style-language.zip
-2022/11/29 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2022/11/30 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2022/11/29 | 2746899 | biblio/ctan-bibdata/ctan.bib
-2022/11/29 | 3625400 | biblio/ctan-bibdata/ctan.pdf
+2022/11/30 | 2746899 | biblio/ctan-bibdata/ctan.bib
+2022/11/30 | 3625505 | biblio/ctan-bibdata/ctan.pdf
2022/10/08 | 1415 | biblio/ctan-bibdata/README
-2022/11/29 | 4018128 | biblio/ctan-bibdata.zip
+2022/11/30 | 4017631 | biblio/ctan-bibdata.zip
2022/02/06 | 3110 | biblio/pbibtex/pbibtex-base/cpp.awk
2022/02/06 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2022/02/06 | 22422 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5414,7 +5414,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/11/29 | 55486 | FILES.last07days
+2022/11/30 | 52459 | 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
@@ -152656,484 +152656,475 @@
2022/10/22 | 1338 | graphics/chemobabel/LICENSE
2022/10/22 | 1726 | graphics/chemobabel/README.md
2022/10/22 | 1325653 | graphics/chemobabel.zip
-2022/10/13 | 1185 | graphics/circuit_macros/boxdims.sty
-2022/10/13 | 13706 | graphics/circuit_macros/CHANGES
-2022/10/13 | 462 | graphics/circuit_macros/Copying
-2022/10/13 | 14279 | graphics/circuit_macros/darrow.m4
-2022/10/13 | 26 | graphics/circuit_macros/doc/ACsymbol.m4
-2022/10/13 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4
-2022/10/13 | 1940 | graphics/circuit_macros/doc/AmpTable.tex
-2022/10/13 | 1230 | graphics/circuit_macros/doc/AntennasMan.m4
-2022/10/13 | 1618 | graphics/circuit_macros/doc/ArrestersMan.m4
-2022/10/13 | 1017 | graphics/circuit_macros/doc/arrowex.m4
-2022/10/13 | 2634 | graphics/circuit_macros/doc/AudioMan.m4
-2022/10/13 | 10164 | graphics/circuit_macros/doc/Audio.tex
-2022/10/13 | 131 | graphics/circuit_macros/doc/Axes.m4
-2022/10/13 | 614 | graphics/circuit_macros/doc/BigResistor.m4
-2022/10/13 | 1619 | graphics/circuit_macros/doc/BipMan.m4
-2022/10/13 | 5545 | graphics/circuit_macros/doc/Bip.tex
-2022/10/13 | 1074 | graphics/circuit_macros/doc/bistableMan.m4
-2022/10/13 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
-2022/10/13 | 130 | graphics/circuit_macros/doc/bitrbody.m4
-2022/10/13 | 50 | graphics/circuit_macros/doc/bitr.m4
-2022/10/13 | 153782 | graphics/circuit_macros/doc/body.tex
-2022/10/13 | 1953 | graphics/circuit_macros/doc/Buffer.m4
-2022/10/13 | 1063 | graphics/circuit_macros/doc/CapacitorsMan.m4
-2022/10/13 | 4312 | graphics/circuit_macros/doc/Circuit_macros.bib
-2022/10/13 | 1025740 | graphics/circuit_macros/doc/Circuit_macros.pdf
-2022/10/13 | 3019 | graphics/circuit_macros/doc/Circuit_macros.tex
-2022/10/13 | 1857 | graphics/circuit_macros/doc/Composite.m4
-2022/10/13 | 1121 | graphics/circuit_macros/doc/ConfigA.m4
-2022/10/13 | 1258 | graphics/circuit_macros/doc/ConfigB.m4
-2022/10/13 | 1292 | graphics/circuit_macros/doc/ConfigC.m4
-2022/10/13 | 2179 | graphics/circuit_macros/doc/ConnMan.m4
-2022/10/13 | 6550 | graphics/circuit_macros/doc/Conn.tex
-2022/10/13 | 3326 | graphics/circuit_macros/doc/ContactMan.m4
-2022/10/13 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4
-2022/10/13 | 6067 | graphics/circuit_macros/doc/Contacts.tex
-2022/10/13 | 13833 | graphics/circuit_macros/doc/Contact.tex
-2022/10/13 | 1995 | graphics/circuit_macros/doc/Corners.m4
-2022/10/13 | 1329 | graphics/circuit_macros/doc/currents.m4
-2022/10/13 | 2389 | graphics/circuit_macros/doc/Dac.m4
-2022/10/13 | 1151 | graphics/circuit_macros/doc/Darlington.m4
-2022/10/13 | 26 | graphics/circuit_macros/doc/DCsymbol.m4
-2022/10/13 | 104970 | graphics/circuit_macros/doc/defines.tex
-2022/10/13 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4
-2022/10/13 | 4817 | graphics/circuit_macros/doc/Demultiplexer.tex
-2022/10/13 | 1790 | graphics/circuit_macros/doc/DiodesMan.m4
-2022/10/13 | 12050 | graphics/circuit_macros/doc/Diodes.tex
-2022/10/13 | 483 | graphics/circuit_macros/doc/eboxdims.m4
-2022/10/13 | 980 | graphics/circuit_macros/doc/EmarrowsMan.m4
-2022/10/13 | 5502 | graphics/circuit_macros/doc/Emarrows.tex
-2022/10/13 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
-2022/10/13 | 5315 | graphics/circuit_macros/doc/fetMan.m4
-2022/10/13 | 16420 | graphics/circuit_macros/doc/fet.tex
-2022/10/13 | 329 | graphics/circuit_macros/doc/FF.m4
-2022/10/13 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
-2022/10/13 | 970 | graphics/circuit_macros/doc/Flowdiag.m4
-2022/10/13 | 999 | graphics/circuit_macros/doc/FusesMan.m4
-2022/10/13 | 4789 | graphics/circuit_macros/doc/Fuses.tex
-2022/10/13 | 831 | graphics/circuit_macros/doc/GroundsMan.m4
-2022/10/13 | 2661 | graphics/circuit_macros/doc/Grounds.tex
-2022/10/13 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4
-2022/10/13 | 7503 | graphics/circuit_macros/doc/Headers.tex
-2022/10/13 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
-2022/10/13 | 1342 | graphics/circuit_macros/doc/InductorsMan.m4
-2022/10/13 | 2362 | graphics/circuit_macros/doc/JackMan.m4
-2022/10/13 | 12006 | graphics/circuit_macros/doc/Jack.tex
-2022/10/13 | 2119 | graphics/circuit_macros/doc/LogicMan.m4
-2022/10/13 | 7533 | graphics/circuit_macros/doc/Logic.tex
-2022/10/13 | 269 | graphics/circuit_macros/doc/Loop.m4
-2022/10/13 | 387 | graphics/circuit_macros/doc/lrarrows.m4
-2022/10/13 | 4969 | graphics/circuit_macros/doc/Makefile
-2022/10/13 | 963 | graphics/circuit_macros/doc/MoreTableMan.m4
-2022/10/13 | 1575 | graphics/circuit_macros/doc/mplex.m4
-2022/10/13 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4
-2022/10/13 | 4964 | graphics/circuit_macros/doc/Multiplexer.tex
-2022/10/13 | 499 | graphics/circuit_macros/doc/NLGMan.m4
-2022/10/13 | 3183 | graphics/circuit_macros/doc/NLG.tex
-2022/10/13 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4
-2022/10/13 | 5137 | graphics/circuit_macros/doc/NPDT.tex
-2022/10/13 | 1040 | graphics/circuit_macros/doc/NportMan.m4
-2022/10/13 | 4666 | graphics/circuit_macros/doc/Nport.tex
-2022/10/13 | 783 | graphics/circuit_macros/doc/Oblique.m4
-2022/10/13 | 137 | graphics/circuit_macros/doc/opampexbody.m4
-2022/10/13 | 56 | graphics/circuit_macros/doc/opampex.m4
-2022/10/13 | 1433 | graphics/circuit_macros/doc/OpampMan.m4
-2022/10/13 | 835 | graphics/circuit_macros/doc/Opto.m4
-2022/10/13 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
-2022/10/13 | 1982 | graphics/circuit_macros/doc/PconnMan.m4
-2022/10/13 | 15033 | graphics/circuit_macros/doc/Pconn.tex
-2022/10/13 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
-2022/10/13 | 774 | graphics/circuit_macros/doc/quick.m4
-2022/10/13 | 2086 | graphics/circuit_macros/doc/relaycoilMan.m4
-2022/10/13 | 1259 | graphics/circuit_macros/doc/RelayMan.m4
-2022/10/13 | 7316 | graphics/circuit_macros/doc/Relay.tex
-2022/10/13 | 1149 | graphics/circuit_macros/doc/ResistorsMan.m4
-2022/10/13 | 369 | graphics/circuit_macros/doc/sampleIC.m4
-2022/10/13 | 404 | graphics/circuit_macros/doc/Series.m4
-2022/10/13 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4
-2022/10/13 | 9425 | graphics/circuit_macros/doc/ShiftR.tex
-2022/10/13 | 421 | graphics/circuit_macros/doc/Sinus.m4
-2022/10/13 | 7464 | graphics/circuit_macros/doc/SLDsMan.m4
-2022/10/13 | 40591 | graphics/circuit_macros/doc/SLDs.tex
-2022/10/13 | 2225 | graphics/circuit_macros/doc/SourcesMan.m4
-2022/10/13 | 15388 | graphics/circuit_macros/doc/Sources.tex
-2022/10/13 | 217 | graphics/circuit_macros/doc/stringdims.m4
-2022/10/13 | 4780 | graphics/circuit_macros/doc/SwitchesMan.m4
-2022/10/13 | 19142 | graphics/circuit_macros/doc/Switches.tex
-2022/10/13 | 1463 | graphics/circuit_macros/doc/Taps.m4
-2022/10/13 | 11 | graphics/circuit_macros/doc/test.tex
-2022/10/13 | 1022 | graphics/circuit_macros/doc/TgateMan.m4
-2022/10/13 | 4178 | graphics/circuit_macros/doc/Tgate.tex
-2022/10/13 | 150 | graphics/circuit_macros/doc/Thermal.m4
-2022/10/13 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4
-2022/10/13 | 20418 | graphics/circuit_macros/doc/thyristor.tex
-2022/10/13 | 535 | graphics/circuit_macros/doc/Tline.m4
-2022/10/13 | 165 | graphics/circuit_macros/doc/tranbody.m4
-2022/10/13 | 660 | graphics/circuit_macros/doc/ujtMan.m4
-2022/10/13 | 2441 | graphics/circuit_macros/doc/ujt.tex
-2022/10/13 | 944 | graphics/circuit_macros/doc/VariableMan.m4
-2022/10/13 | 10401 | graphics/circuit_macros/doc/Variable.tex
-2022/10/13 | 13 | graphics/circuit_macros/doc/Version.tex
-2022/10/13 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4
-2022/10/13 | 449 | graphics/circuit_macros/doc/woodchips.m4
-2022/10/13 | 2912 | graphics/circuit_macros/doc/Workflow.m4
-2022/10/13 | 1526 | graphics/circuit_macros/doc/XformMan.m4
-2022/10/13 | 25849 | graphics/circuit_macros/doc/Xform.tex
-2022/10/13 | 23650 | graphics/circuit_macros/dpictools.pic
-2022/10/13 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
-2022/10/13 | 2402 | graphics/circuit_macros/examples/Adder.m4
-2022/10/13 | 4205 | graphics/circuit_macros/examples/Alogix.m4
-2022/10/13 | 494 | graphics/circuit_macros/examples/AmpTable.m4
-2022/10/13 | 1230 | graphics/circuit_macros/examples/Antennas.m4
-2022/10/13 | 5013 | graphics/circuit_macros/examples/AntiqueClock.m4
-2022/10/13 | 1615 | graphics/circuit_macros/examples/Arresters.m4
-2022/10/13 | 1767 | graphics/circuit_macros/examples/ArrowFn.m4
-2022/10/13 | 6270 | graphics/circuit_macros/examples/ASME_Y14-5.m4
-2022/10/13 | 771 | graphics/circuit_macros/examples/Attention.m4
-2022/10/13 | 2634 | graphics/circuit_macros/examples/Audio.m4
-2022/10/13 | 2517 | graphics/circuit_macros/examples/Autoencoder.m4
-2022/10/13 | 1962 | graphics/circuit_macros/examples/Autologix.m4
-2022/10/13 | 4638 | graphics/circuit_macros/examples/Ball.m4
-2022/10/13 | 1619 | graphics/circuit_macros/examples/Bip.m4
-2022/10/13 | 917 | graphics/circuit_macros/examples/birds.m4
-2022/10/13 | 1075 | graphics/circuit_macros/examples/bistable.m4
-2022/10/13 | 3175 | graphics/circuit_macros/examples/Blogix.m4
-2022/10/13 | 2542 | graphics/circuit_macros/examples/brace.m4
-2022/10/13 | 1024 | graphics/circuit_macros/examples/Btree.m4
-2022/10/13 | 3509 | graphics/circuit_macros/examples/Buttons.m4
-2022/10/13 | 991 | graphics/circuit_macros/examples/Byte.m4
-2022/10/13 | 6371 | graphics/circuit_macros/examples/CanLogic.m4
-2022/10/13 | 1201 | graphics/circuit_macros/examples/Capacitors.m4
-2022/10/13 | 233 | graphics/circuit_macros/examples/Ccurve.m4
-2022/10/13 | 1039 | graphics/circuit_macros/examples/chaos.m4
-2022/10/13 | 1175 | graphics/circuit_macros/examples/Chips.m4
-2022/10/13 | 7670 | graphics/circuit_macros/examples/Chuck.m4
-2022/10/13 | 482 | graphics/circuit_macros/examples/clock.m4
-2022/10/13 | 750 | graphics/circuit_macros/examples/Connectors.m4
-2022/10/13 | 2178 | graphics/circuit_macros/examples/Conn.m4
-2022/10/13 | 27105 | graphics/circuit_macros/examples/Consumption.m4
-2022/10/13 | 3464 | graphics/circuit_macros/examples/Contact.m4
-2022/10/13 | 1585 | graphics/circuit_macros/examples/Contacts.m4
-2022/10/13 | 7069 | graphics/circuit_macros/examples/control.m4
-2022/10/13 | 551 | graphics/circuit_macros/examples/Counting.m4
-2022/10/13 | 1521 | graphics/circuit_macros/examples/Coxeter.m4
-2022/10/13 | 1358 | graphics/circuit_macros/examples/Crossbar.m4
-2022/10/13 | 2562 | graphics/circuit_macros/examples/Crow.m4
-2022/10/13 | 1879 | graphics/circuit_macros/examples/Cruller.m4
-2022/10/13 | 7732 | graphics/circuit_macros/examples/csc.m4
-2022/10/13 | 6003 | graphics/circuit_macros/examples/CSlight.m4
-2022/10/13 | 5890 | graphics/circuit_macros/examples/Csource.m4
-2022/10/13 | 460 | graphics/circuit_macros/examples/debug1.tex
-2022/10/13 | 1959 | graphics/circuit_macros/examples/debug2.m4
-2022/10/13 | 655 | graphics/circuit_macros/examples/Decoder.m4
-2022/10/13 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
-2022/10/13 | 654 | graphics/circuit_macros/examples/diamond.m4
-2022/10/13 | 6854 | graphics/circuit_macros/examples/Dini.m4
-2022/10/13 | 1787 | graphics/circuit_macros/examples/Diodes.m4
-2022/10/13 | 1966 | graphics/circuit_macros/examples/Drive.m4
-2022/10/13 | 4891 | graphics/circuit_macros/examples/EEP.m4
-2022/10/13 | 980 | graphics/circuit_macros/examples/Emarrows.m4
-2022/10/13 | 6282 | graphics/circuit_macros/examples/Escher.m4
-2022/10/13 | 4002 | graphics/circuit_macros/examples/Euro.m4
-2022/10/13 | 10836 | graphics/circuit_macros/examples/EVplugs.m4
-2022/10/13 | 2412 | graphics/circuit_macros/examples/ex00.m4
-2022/10/13 | 2283 | graphics/circuit_macros/examples/ex01.m4
-2022/10/13 | 1100 | graphics/circuit_macros/examples/ex02.m4
-2022/10/13 | 673 | graphics/circuit_macros/examples/ex03.m4
-2022/10/13 | 1654 | graphics/circuit_macros/examples/ex04.m4
-2022/10/13 | 1865 | graphics/circuit_macros/examples/ex05.m4
-2022/10/13 | 1700 | graphics/circuit_macros/examples/ex06.m4
-2022/10/13 | 2556 | graphics/circuit_macros/examples/ex08.m4
-2022/10/13 | 4313 | graphics/circuit_macros/examples/ex09.m4
-2022/10/13 | 1492 | graphics/circuit_macros/examples/ex10.m4
-2022/10/13 | 2361 | graphics/circuit_macros/examples/ex11.m4
-2022/10/13 | 3339 | graphics/circuit_macros/examples/ex12.m4
-2022/10/13 | 1003 | graphics/circuit_macros/examples/ex15.m4
-2022/10/13 | 1865 | graphics/circuit_macros/examples/ex16.m4
-2022/10/13 | 1126 | graphics/circuit_macros/examples/ex17.m4
-2022/10/13 | 865 | graphics/circuit_macros/examples/ex18.m4
-2022/10/13 | 2000 | graphics/circuit_macros/examples/ex21.m4
-2022/10/13 | 907801 | graphics/circuit_macros/examples/examples.pdf
-2022/10/13 | 1766 | graphics/circuit_macros/examples/examples.tex
-2022/10/13 | 8372 | graphics/circuit_macros/examples/exp.m4
-2022/10/13 | 1816 | graphics/circuit_macros/examples/Eye.m4
-2022/10/13 | 5311 | graphics/circuit_macros/examples/fet.m4
-2022/10/13 | 18022 | graphics/circuit_macros/examples/files.tex
-2022/10/13 | 645 | graphics/circuit_macros/examples/Floor.m4
-2022/10/13 | 11270 | graphics/circuit_macros/examples/FlowchartDefs.m4
-2022/10/13 | 4751 | graphics/circuit_macros/examples/Flow.m4
-2022/10/13 | 999 | graphics/circuit_macros/examples/Fuses.m4
-2022/10/13 | 5177 | graphics/circuit_macros/examples/Geometry.m4
-2022/10/13 | 421 | graphics/circuit_macros/examples/GrayCode.m4
-2022/10/13 | 5486 | graphics/circuit_macros/examples/graysurf.m4
-2022/10/13 | 828 | graphics/circuit_macros/examples/Grounds.m4
-2022/10/13 | 1132 | graphics/circuit_macros/examples/Headers.m4
-2022/10/13 | 1458 | graphics/circuit_macros/examples/header.tex
-2022/10/13 | 13330 | graphics/circuit_macros/examples/Heathkit.m4
-2022/10/13 | 2068 | graphics/circuit_macros/examples/I2L.m4
-2022/10/13 | 1668 | graphics/circuit_macros/examples/IC10107.m4
-2022/10/13 | 11440 | graphics/circuit_macros/examples/ics.m4
-2022/10/13 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
-2022/10/13 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
-2022/10/13 | 741 | graphics/circuit_macros/examples/Incleps.m4
-2022/10/13 | 29772 | graphics/circuit_macros/examples/Incl.pdf
-2022/10/13 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
-2022/10/13 | 1392 | graphics/circuit_macros/examples/Inductors.m4
-2022/10/13 | 2571 | graphics/circuit_macros/examples/IntersectingPlanes.m4
-2022/10/13 | 2362 | graphics/circuit_macros/examples/Jack.m4
-2022/10/13 | 2696 | graphics/circuit_macros/examples/keyval.m4
-2022/10/13 | 489 | graphics/circuit_macros/examples/Koch.m4
-2022/10/13 | 7127 | graphics/circuit_macros/examples/lcct.m4
-2022/10/13 | 2119 | graphics/circuit_macros/examples/Logic.m4
-2022/10/13 | 2304 | graphics/circuit_macros/examples/Loglog.m4
-2022/10/13 | 4501 | graphics/circuit_macros/examples/Lyap.m4
-2022/10/13 | 9305 | graphics/circuit_macros/examples/Makefile
-2022/10/13 | 2986 | graphics/circuit_macros/examples/MC.m4
-2022/10/13 | 2846 | graphics/circuit_macros/examples/Metamodel.m4
-2022/10/13 | 95140 | graphics/circuit_macros/examples/mf/cct.mf
-2022/10/13 | 764 | graphics/circuit_macros/examples/mf/cct.tfm
-2022/10/13 | 4615 | graphics/circuit_macros/examples/mf/font.m4
-2022/10/13 | 1529 | graphics/circuit_macros/examples/mf/Makefile
-2022/10/13 | 1076 | graphics/circuit_macros/examples/mf/mftest
-2022/10/13 | 3785 | graphics/circuit_macros/examples/Mixer.m4
-2022/10/13 | 960 | graphics/circuit_macros/examples/MoreTable.m4
-2022/10/13 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
-2022/10/13 | 409 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
-2022/10/13 | 4247 | graphics/circuit_macros/examples/mpost/Makefile
-2022/10/13 | 685 | graphics/circuit_macros/examples/mpost/mptest
-2022/10/13 | 703 | graphics/circuit_macros/examples/mpost/README-mpost
-2022/10/13 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex
-2022/10/13 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
-2022/10/13 | 499 | graphics/circuit_macros/examples/NLG.m4
-2022/10/13 | 1128 | graphics/circuit_macros/examples/NPDT.m4
-2022/10/13 | 1040 | graphics/circuit_macros/examples/Nport.m4
-2022/10/13 | 2792 | graphics/circuit_macros/examples/OpAmpFilter.m4
-2022/10/13 | 1433 | graphics/circuit_macros/examples/Opamp.m4
-2022/10/13 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
-2022/10/13 | 1852 | graphics/circuit_macros/examples/Orbits.m4
-2022/10/13 | 1982 | graphics/circuit_macros/examples/Pconn.m4
-2022/10/13 | 1419 | graphics/circuit_macros/examples/person.m4
-2022/10/13 | 2674 | graphics/circuit_macros/examples/Planes.m4
-2022/10/13 | 6192 | graphics/circuit_macros/examples/Plate.m4
-2022/10/13 | 1174 | graphics/circuit_macros/examples/PPA.m4
-2022/10/13 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
-2022/10/13 | 4683 | graphics/circuit_macros/examples/psfrag/Makefile
-2022/10/13 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
-2022/10/13 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
-2022/10/13 | 3954 | graphics/circuit_macros/examples/PushPull.m4
-2022/10/13 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
-2022/10/13 | 918 | graphics/circuit_macros/examples/Quantum.m4
-2022/10/13 | 774 | graphics/circuit_macros/examples/quick.m4
-2022/10/13 | 3727 | graphics/circuit_macros/examples/random.m4
-2022/10/13 | 2872 | graphics/circuit_macros/examples/README-examples
-2022/10/13 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4
-2022/10/13 | 3825 | graphics/circuit_macros/examples/recycle.m4
-2022/10/13 | 2086 | graphics/circuit_macros/examples/relaycoil.m4
-2022/10/13 | 1259 | graphics/circuit_macros/examples/Relay.m4
-2022/10/13 | 1147 | graphics/circuit_macros/examples/Resistors.m4
-2022/10/13 | 1443 | graphics/circuit_macros/examples/Resolver.m4
-2022/10/13 | 4569 | graphics/circuit_macros/examples/rose.m4
-2022/10/13 | 221 | graphics/circuit_macros/examples/rotate.tex
-2022/10/13 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
-2022/10/13 | 533 | graphics/circuit_macros/examples/Rotbox.m4
-2022/10/13 | 365 | graphics/circuit_macros/examples/rotellipse.m4
-2022/10/13 | 740 | graphics/circuit_macros/examples/SampleFlow.m4
-2022/10/13 | 1778 | graphics/circuit_macros/examples/Schottky.m4
-2022/10/13 | 3991 | graphics/circuit_macros/examples/sfg.m4
-2022/10/13 | 295 | graphics/circuit_macros/examples/ShadeSector.m4
-2022/10/13 | 3749 | graphics/circuit_macros/examples/Shaky.m4
-2022/10/13 | 7708 | graphics/circuit_macros/examples/shapes.m4
-2022/10/13 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
-2022/10/13 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
-2022/10/13 | 419 | graphics/circuit_macros/examples/Sixpole.m4
-2022/10/13 | 370 | graphics/circuit_macros/examples/snake.m4
-2022/10/13 | 2165 | graphics/circuit_macros/examples/Sources.m4
-2022/10/13 | 1906 | graphics/circuit_macros/examples/SPM.m4
-2022/10/13 | 380 | graphics/circuit_macros/examples/SQUID.m4
-2022/10/13 | 953 | graphics/circuit_macros/examples/squiggle.m4
-2022/10/13 | 1783 | graphics/circuit_macros/examples/Stator.m4
-2022/10/13 | 1955 | graphics/circuit_macros/examples/svg/ABlogixSVG.m4
-2022/10/13 | 2528 | graphics/circuit_macros/examples/svg/AdderSVG.m4
-2022/10/13 | 4340 | graphics/circuit_macros/examples/svg/AlogixSVG.m4
-2022/10/13 | 538 | graphics/circuit_macros/examples/svg/AmpTableSVG.m4
-2022/10/13 | 1090 | graphics/circuit_macros/examples/svg/AntennasSVG.m4
-2022/10/13 | 1894 | graphics/circuit_macros/examples/svg/ArrowFnSVG.m4
-2022/10/13 | 2720 | graphics/circuit_macros/examples/svg/AudioSVG.m4
-2022/10/13 | 2989 | graphics/circuit_macros/examples/svg/AutoencoderSVG.m4
-2022/10/13 | 1668 | graphics/circuit_macros/examples/svg/Banking.m4
-2022/10/13 | 1812 | graphics/circuit_macros/examples/svg/BipSVG.m4
-2022/10/13 | 4289 | graphics/circuit_macros/examples/svg/BtreeSVG.m4
-2022/10/13 | 3567 | graphics/circuit_macros/examples/svg/ButtonsSVG.m4
-2022/10/13 | 937 | graphics/circuit_macros/examples/svg/ByteSVG.m4
-2022/10/13 | 6413 | graphics/circuit_macros/examples/svg/CanLogicSVG.m4
-2022/10/13 | 1160 | graphics/circuit_macros/examples/svg/CapacitorsSVG.m4
-2022/10/13 | 1214 | graphics/circuit_macros/examples/svg/ChipsSVG.m4
-2022/10/13 | 715 | graphics/circuit_macros/examples/svg/ConnectorsSVG.m4
-2022/10/13 | 2111 | graphics/circuit_macros/examples/svg/ConnSVG.m4
-2022/10/13 | 1737 | graphics/circuit_macros/examples/svg/ContactsSVG.m4
-2022/10/13 | 3646 | graphics/circuit_macros/examples/svg/ContactSVG.m4
-2022/10/13 | 8006 | graphics/circuit_macros/examples/svg/controlSVG.m4
-2022/10/13 | 793 | graphics/circuit_macros/examples/svg/CountingSVG.m4
-2022/10/13 | 2525 | graphics/circuit_macros/examples/svg/CrowSVG.m4
-2022/10/13 | 1874 | graphics/circuit_macros/examples/svg/CrullerSVG.m4
-2022/10/13 | 7778 | graphics/circuit_macros/examples/svg/cscSVG.m4
-2022/10/13 | 7418 | graphics/circuit_macros/examples/svg/CsourceSVG.m4
-2022/10/13 | 745 | graphics/circuit_macros/examples/svg/DecoderSVG.m4
-2022/10/13 | 1373 | graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4
-2022/10/13 | 609 | graphics/circuit_macros/examples/svg/diamondSVG.m4
-2022/10/13 | 6854 | graphics/circuit_macros/examples/svg/DiniSVG.m4
-2022/10/13 | 1647 | graphics/circuit_macros/examples/svg/DiodesSVG.m4
-2022/10/13 | 1966 | graphics/circuit_macros/examples/svg/DriveSVG.m4
-2022/10/13 | 4763 | graphics/circuit_macros/examples/svg/EEPSVG.m4
-2022/10/13 | 1070 | graphics/circuit_macros/examples/svg/EmarrowsSVG.m4
-2022/10/13 | 6285 | graphics/circuit_macros/examples/svg/EscherSVG.m4
-2022/10/13 | 10871 | graphics/circuit_macros/examples/svg/EVplugsSVG.m4
-2022/10/13 | 2443 | graphics/circuit_macros/examples/svg/ex00SVG.m4
-2022/10/13 | 2629 | graphics/circuit_macros/examples/svg/ex01SVG.m4
-2022/10/13 | 1093 | graphics/circuit_macros/examples/svg/ex02SVG.m4
-2022/10/13 | 855 | graphics/circuit_macros/examples/svg/ex03SVG.m4
-2022/10/13 | 1891 | graphics/circuit_macros/examples/svg/ex04SVG.m4
-2022/10/13 | 3390 | graphics/circuit_macros/examples/svg/ex05SVG.m4
-2022/10/13 | 2018 | graphics/circuit_macros/examples/svg/ex06SVG.m4
-2022/10/13 | 2559 | graphics/circuit_macros/examples/svg/ex08SVG.m4
-2022/10/13 | 4119 | graphics/circuit_macros/examples/svg/ex09SVG.m4
-2022/10/13 | 1699 | graphics/circuit_macros/examples/svg/ex10SVG.m4
-2022/10/13 | 2685 | graphics/circuit_macros/examples/svg/ex11SVG.m4
-2022/10/13 | 3522 | graphics/circuit_macros/examples/svg/ex12SVG.m4
-2022/10/13 | 966 | graphics/circuit_macros/examples/svg/ex15SVG.m4
-2022/10/13 | 1893 | graphics/circuit_macros/examples/svg/ex16SVG.m4
-2022/10/13 | 1204 | graphics/circuit_macros/examples/svg/ex17SVG.m4
-2022/10/13 | 1065 | graphics/circuit_macros/examples/svg/ex18SVG.m4
-2022/10/13 | 1882 | graphics/circuit_macros/examples/svg/ex21SVG.m4
-2022/10/13 | 25135 | graphics/circuit_macros/examples/svg/examplesSVG.htmx
-2022/10/13 | 8517 | graphics/circuit_macros/examples/svg/expSVG.m4
-2022/10/13 | 1700 | graphics/circuit_macros/examples/svg/EyeSVG.m4
-2022/10/13 | 5365 | graphics/circuit_macros/examples/svg/fetSVG.m4
-2022/10/13 | 5171 | graphics/circuit_macros/examples/svg/FlowSVG.m4
-2022/10/13 | 538 | graphics/circuit_macros/examples/svg/FontsSVG.m4
-2022/10/13 | 1996 | graphics/circuit_macros/examples/svg/FourbarSVG.m4
-2022/10/13 | 959 | graphics/circuit_macros/examples/svg/FusesSVG.m4
-2022/10/13 | 5224 | graphics/circuit_macros/examples/svg/GeometrySVG.m4
-2022/10/13 | 1875 | graphics/circuit_macros/examples/svg/GrayCodeSVG.m4
-2022/10/13 | 5469 | graphics/circuit_macros/examples/svg/graysurfSVG.m4
-2022/10/13 | 810 | graphics/circuit_macros/examples/svg/GroundsSVG.m4
-2022/10/13 | 1265 | graphics/circuit_macros/examples/svg/HeadersSVG.m4
-2022/10/13 | 12711 | graphics/circuit_macros/examples/svg/HeathkitSVG.m4
-2022/10/13 | 2171 | graphics/circuit_macros/examples/svg/I2LSVG.m4
-2022/10/13 | 11601 | graphics/circuit_macros/examples/svg/icsSVG.m4
-2022/10/13 | 4003 | graphics/circuit_macros/examples/svg/InclepsSVG.m4
-2022/10/13 | 21384 | graphics/circuit_macros/examples/svg/Incl.jpg
-2022/10/13 | 1343 | graphics/circuit_macros/examples/svg/InductorsSVG.m4
-2022/10/13 | 2051 | graphics/circuit_macros/examples/svg/JackSVG.m4
-2022/10/13 | 10699 | graphics/circuit_macros/examples/svg/keyboardSVG.m4
-2022/10/13 | 7203 | graphics/circuit_macros/examples/svg/lcctSVG.m4
-2022/10/13 | 6216 | graphics/circuit_macros/examples/svg/LgateSVG.m4
-2022/10/13 | 63 | graphics/circuit_macros/examples/svg/local_init.m4
-2022/10/13 | 1931 | graphics/circuit_macros/examples/svg/LogicSVG.m4
-2022/10/13 | 30451 | graphics/circuit_macros/examples/svg/LoglogSVG.m4
-2022/10/13 | 5411 | graphics/circuit_macros/examples/svg/Makefile
-2022/10/13 | 3473 | graphics/circuit_macros/examples/svg/MCSVG.m4
-2022/10/13 | 3489 | graphics/circuit_macros/examples/svg/MixerSVG.m4
-2022/10/13 | 973 | graphics/circuit_macros/examples/svg/MoreTableSVG.m4
-2022/10/13 | 1953 | graphics/circuit_macros/examples/svg/MotorControlSVG.m4
-2022/10/13 | 1403 | graphics/circuit_macros/examples/svg/MultiplexerSVG.m4
-2022/10/13 | 532 | graphics/circuit_macros/examples/svg/NLGSVG.m4
-2022/10/13 | 1157 | graphics/circuit_macros/examples/svg/NPDTSVG.m4
-2022/10/13 | 748 | graphics/circuit_macros/examples/svg/Np.m4
-2022/10/13 | 1238 | graphics/circuit_macros/examples/svg/NportSVG.m4
-2022/10/13 | 1034 | graphics/circuit_macros/examples/svg/OpampSVG.m4
-2022/10/13 | 2551 | graphics/circuit_macros/examples/svg/OptoisoSVG.m4
-2022/10/13 | 10193 | graphics/circuit_macros/examples/svg/paletteSVG.m4
-2022/10/13 | 1766 | graphics/circuit_macros/examples/svg/PconnSVG.m4
-2022/10/13 | 6153 | graphics/circuit_macros/examples/svg/PlateSVG.m4
-2022/10/13 | 3778 | graphics/circuit_macros/examples/svg/PushPullSVG.m4
-2022/10/13 | 2027 | graphics/circuit_macros/examples/svg/pwrsupplySVG.m4
-2022/10/13 | 947 | graphics/circuit_macros/examples/svg/QuantumSVG.m4
-2022/10/13 | 901 | graphics/circuit_macros/examples/svg/quickSVG.m4
-2022/10/13 | 3756 | graphics/circuit_macros/examples/svg/randomSVG.m4
-2022/10/13 | 7546 | graphics/circuit_macros/examples/svg/RectifiersSVG.m4
-2022/10/13 | 3825 | graphics/circuit_macros/examples/svg/recycleSVG.m4
-2022/10/13 | 2069 | graphics/circuit_macros/examples/svg/relaycoilSVG.m4
-2022/10/13 | 1431 | graphics/circuit_macros/examples/svg/RelaySVG.m4
-2022/10/13 | 1188 | graphics/circuit_macros/examples/svg/ResistorsSVG.m4
-2022/10/13 | 5412 | graphics/circuit_macros/examples/svg/roseSVG.m4
-2022/10/13 | 563 | graphics/circuit_macros/examples/svg/RotboxSVG.m4
-2022/10/13 | 1837 | graphics/circuit_macros/examples/svg/SchottkySVG.m4
-2022/10/13 | 4761 | graphics/circuit_macros/examples/svg/sfgSVG.m4
-2022/10/13 | 7494 | graphics/circuit_macros/examples/svg/shapesSVG.m4
-2022/10/13 | 1313 | graphics/circuit_macros/examples/svg/ShiftRSVG.m4
-2022/10/13 | 1331 | graphics/circuit_macros/examples/svg/SierpinskiSVG.m4
-2022/10/13 | 419 | graphics/circuit_macros/examples/svg/SixpoleSVG.m4
-2022/10/13 | 4376 | graphics/circuit_macros/examples/svg/slddiagsSVG.m4
-2022/10/13 | 8807 | graphics/circuit_macros/examples/svg/SmithchartSVG.m4
-2022/10/13 | 1907 | graphics/circuit_macros/examples/svg/SourcesSVG.m4
-2022/10/13 | 417 | graphics/circuit_macros/examples/svg/SQUIDSVG.m4
-2022/10/13 | 1050 | graphics/circuit_macros/examples/svg/SVGconfig.m4
-2022/10/13 | 5132 | graphics/circuit_macros/examples/svg/SwitchesSVG.m4
-2022/10/13 | 1055 | graphics/circuit_macros/examples/svg/TgateSVG.m4
-2022/10/13 | 1444 | graphics/circuit_macros/examples/svg/ThreeSVG.m4
-2022/10/13 | 3310 | graphics/circuit_macros/examples/svg/thyristorSVG.m4
-2022/10/13 | 1612 | graphics/circuit_macros/examples/svg/TimerSVG.m4
-2022/10/13 | 14057 | graphics/circuit_macros/examples/svg/tstSVG.htmx
-2022/10/13 | 1630 | graphics/circuit_macros/examples/svg/TTLnandSVG.m4
-2022/10/13 | 3091 | graphics/circuit_macros/examples/svg/TtreeSVG.m4
-2022/10/13 | 12478 | graphics/circuit_macros/examples/svg/TubediagsSVG.m4
-2022/10/13 | 682 | graphics/circuit_macros/examples/svg/ujtSVG.m4
-2022/10/13 | 24141 | graphics/circuit_macros/examples/svg/UNOSVG.m4
-2022/10/13 | 988 | graphics/circuit_macros/examples/svg/VariableSVG.m4
-2022/10/13 | 2994 | graphics/circuit_macros/examples/svg/WindingsSVG.m4
-2022/10/13 | 353 | graphics/circuit_macros/examples/svg/windows.m4
-2022/10/13 | 3631 | graphics/circuit_macros/examples/svg/wormSVG.m4
-2022/10/13 | 1559 | graphics/circuit_macros/examples/svg/XformSVG.m4
-2022/10/13 | 1985 | graphics/circuit_macros/examples/svg/XORSVG.m4
-2022/10/13 | 1546 | graphics/circuit_macros/examples/svg/Xtest.m4
-2022/10/13 | 4782 | graphics/circuit_macros/examples/Switches.m4
-2022/10/13 | 591 | graphics/circuit_macros/examples/test.m4
-2022/10/13 | 416 | graphics/circuit_macros/examples/testpdf.tex
-2022/10/13 | 1022 | graphics/circuit_macros/examples/Tgate.m4
-2022/10/13 | 1287 | graphics/circuit_macros/examples/Three.m4
-2022/10/13 | 3321 | graphics/circuit_macros/examples/thyristor.m4
-2022/10/13 | 219 | graphics/circuit_macros/examples/tst1.tex
-2022/10/13 | 409 | graphics/circuit_macros/examples/tst.tex
-2022/10/13 | 464 | graphics/circuit_macros/examples/tsttikz.tex
-2022/10/13 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
-2022/10/13 | 2097 | graphics/circuit_macros/examples/Ttree.m4
-2022/10/13 | 9869 | graphics/circuit_macros/examples/tubedefs.m4
-2022/10/13 | 13264 | graphics/circuit_macros/examples/Tubediags.m4
-2022/10/13 | 660 | graphics/circuit_macros/examples/ujt.m4
-2022/10/13 | 932 | graphics/circuit_macros/examples/Variable.m4
-2022/10/13 | 1906 | graphics/circuit_macros/examples/venus.m4
-2022/10/13 | 442 | graphics/circuit_macros/examples/Wheat.m4
-2022/10/13 | 3346 | graphics/circuit_macros/examples/Windings.m4
-2022/10/13 | 353 | graphics/circuit_macros/examples/windows.m4
-2022/10/13 | 2801 | graphics/circuit_macros/examples/worm.m4
-2022/10/13 | 337 | graphics/circuit_macros/examples/xfig/Makefile
-2022/10/13 | 21398 | graphics/circuit_macros/examples/xfig/xfiglib.fig
-2022/10/13 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
-2022/10/13 | 1526 | graphics/circuit_macros/examples/Xform.m4
-2022/10/13 | 1823 | graphics/circuit_macros/examples/XOR.m4
-2022/10/13 | 656 | graphics/circuit_macros/examples/Zcos.m4
-2022/10/13 | 1019 | graphics/circuit_macros/gpic.m4
-2022/10/13 | 4089 | graphics/circuit_macros/INSTALL
-2022/10/13 | 12765 | graphics/circuit_macros/lib3D.m4
-2022/10/13 | 178754 | graphics/circuit_macros/libcct.m4
-2022/10/13 | 91222 | graphics/circuit_macros/libgen.m4
-2022/10/13 | 47825 | graphics/circuit_macros/liblog.m4
-2022/10/13 | 32742 | graphics/circuit_macros/libSLD.m4
-2022/10/13 | 19176 | graphics/circuit_macros/Licence.txt
-2022/10/13 | 1639 | graphics/circuit_macros/Makefile
-2022/10/13 | 1114 | graphics/circuit_macros/mfpic.m4
-2022/10/13 | 1640 | graphics/circuit_macros/mpost.m4
-2022/10/13 | 2085 | graphics/circuit_macros/pgf.m4
-2022/10/13 | 2834 | graphics/circuit_macros/postscript.m4
-2022/10/13 | 706 | graphics/circuit_macros/psfrag.m4
-2022/10/13 | 2099 | graphics/circuit_macros/pstricks.m4
-2022/10/13 | 15857 | graphics/circuit_macros/README
-2022/10/13 | 12756 | graphics/circuit_macros/svg.m4
-2022/10/13 | 1029 | graphics/circuit_macros/xfig.m4
-2022/10/13 | 2671974 | graphics/circuit_macros.zip
+2022/11/28 | 1185 | graphics/circuit_macros/boxdims.sty
+2022/11/28 | 13829 | graphics/circuit_macros/CHANGES
+2022/11/28 | 462 | graphics/circuit_macros/Copying
+2022/11/28 | 14279 | graphics/circuit_macros/darrow.m4
+2022/11/28 | 26 | graphics/circuit_macros/doc/ACsymbol.m4
+2022/11/28 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4
+2022/11/28 | 1230 | graphics/circuit_macros/doc/AntennasMan.m4
+2022/11/28 | 1618 | graphics/circuit_macros/doc/ArrestersMan.m4
+2022/11/28 | 1017 | graphics/circuit_macros/doc/arrowex.m4
+2022/11/28 | 2634 | graphics/circuit_macros/doc/AudioMan.m4
+2022/11/28 | 131 | graphics/circuit_macros/doc/Axes.m4
+2022/11/28 | 614 | graphics/circuit_macros/doc/BigResistor.m4
+2022/11/28 | 1619 | graphics/circuit_macros/doc/BipMan.m4
+2022/11/28 | 1074 | graphics/circuit_macros/doc/bistableMan.m4
+2022/11/28 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
+2022/11/28 | 130 | graphics/circuit_macros/doc/bitrbody.m4
+2022/11/28 | 50 | graphics/circuit_macros/doc/bitr.m4
+2022/11/28 | 154219 | graphics/circuit_macros/doc/body.tex
+2022/11/28 | 1953 | graphics/circuit_macros/doc/Buffer.m4
+2022/11/28 | 1063 | graphics/circuit_macros/doc/CapacitorsMan.m4
+2022/11/28 | 4343 | graphics/circuit_macros/doc/Circuit_macros.bib
+2022/11/28 | 1030606 | graphics/circuit_macros/doc/Circuit_macros.pdf
+2022/11/28 | 3019 | graphics/circuit_macros/doc/Circuit_macros.tex
+2022/11/28 | 1857 | graphics/circuit_macros/doc/Composite.m4
+2022/11/28 | 1121 | graphics/circuit_macros/doc/ConfigA.m4
+2022/11/28 | 1258 | graphics/circuit_macros/doc/ConfigB.m4
+2022/11/28 | 1292 | graphics/circuit_macros/doc/ConfigC.m4
+2022/11/28 | 2179 | graphics/circuit_macros/doc/ConnMan.m4
+2022/11/28 | 3326 | graphics/circuit_macros/doc/ContactMan.m4
+2022/11/28 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4
+2022/11/28 | 1995 | graphics/circuit_macros/doc/Corners.m4
+2022/11/28 | 1329 | graphics/circuit_macros/doc/currents.m4
+2022/11/28 | 2389 | graphics/circuit_macros/doc/Dac.m4
+2022/11/28 | 1151 | graphics/circuit_macros/doc/Darlington.m4
+2022/11/28 | 26 | graphics/circuit_macros/doc/DCsymbol.m4
+2022/11/28 | 105650 | graphics/circuit_macros/doc/defines.tex
+2022/11/28 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4
+2022/11/28 | 1790 | graphics/circuit_macros/doc/DiodesMan.m4
+2022/11/28 | 483 | graphics/circuit_macros/doc/eboxdims.m4
+2022/11/28 | 981 | graphics/circuit_macros/doc/EmarrowsMan.m4
+2022/11/28 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
+2022/11/28 | 5315 | graphics/circuit_macros/doc/fetMan.m4
+2022/11/28 | 329 | graphics/circuit_macros/doc/FF.m4
+2022/11/28 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
+2022/11/28 | 970 | graphics/circuit_macros/doc/Flowdiag.m4
+2022/11/28 | 999 | graphics/circuit_macros/doc/FusesMan.m4
+2022/11/28 | 831 | graphics/circuit_macros/doc/GroundsMan.m4
+2022/11/28 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4
+2022/11/28 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
+2022/11/28 | 1342 | graphics/circuit_macros/doc/InductorsMan.m4
+2022/11/28 | 2362 | graphics/circuit_macros/doc/JackMan.m4
+2022/11/28 | 2119 | graphics/circuit_macros/doc/LogicMan.m4
+2022/11/28 | 269 | graphics/circuit_macros/doc/Loop.m4
+2022/11/28 | 387 | graphics/circuit_macros/doc/lrarrows.m4
+2022/11/28 | 4969 | graphics/circuit_macros/doc/Makefile
+2022/11/28 | 963 | graphics/circuit_macros/doc/MoreTableMan.m4
+2022/11/28 | 1575 | graphics/circuit_macros/doc/mplex.m4
+2022/11/28 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4
+2022/11/28 | 499 | graphics/circuit_macros/doc/NLGMan.m4
+2022/11/28 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4
+2022/11/28 | 1040 | graphics/circuit_macros/doc/NportMan.m4
+2022/11/28 | 783 | graphics/circuit_macros/doc/Oblique.m4
+2022/11/28 | 137 | graphics/circuit_macros/doc/opampexbody.m4
+2022/11/28 | 56 | graphics/circuit_macros/doc/opampex.m4
+2022/11/28 | 1433 | graphics/circuit_macros/doc/OpampMan.m4
+2022/11/28 | 835 | graphics/circuit_macros/doc/Opto.m4
+2022/11/28 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
+2022/11/28 | 1982 | graphics/circuit_macros/doc/PconnMan.m4
+2022/11/28 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
+2022/11/28 | 774 | graphics/circuit_macros/doc/quick.m4
+2022/11/28 | 2086 | graphics/circuit_macros/doc/relaycoilMan.m4
+2022/11/28 | 1259 | graphics/circuit_macros/doc/RelayMan.m4
+2022/11/28 | 1149 | graphics/circuit_macros/doc/ResistorsMan.m4
+2022/11/28 | 369 | graphics/circuit_macros/doc/sampleIC.m4
+2022/11/28 | 404 | graphics/circuit_macros/doc/Series.m4
+2022/11/28 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4
+2022/11/28 | 421 | graphics/circuit_macros/doc/Sinus.m4
+2022/11/28 | 7464 | graphics/circuit_macros/doc/SLDsMan.m4
+2022/11/28 | 2225 | graphics/circuit_macros/doc/SourcesMan.m4
+2022/11/28 | 217 | graphics/circuit_macros/doc/stringdims.m4
+2022/11/28 | 4780 | graphics/circuit_macros/doc/SwitchesMan.m4
+2022/11/28 | 1463 | graphics/circuit_macros/doc/Taps.m4
+2022/11/28 | 1022 | graphics/circuit_macros/doc/TgateMan.m4
+2022/11/28 | 150 | graphics/circuit_macros/doc/Thermal.m4
+2022/11/28 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4
+2022/11/28 | 535 | graphics/circuit_macros/doc/Tline.m4
+2022/11/28 | 165 | graphics/circuit_macros/doc/tranbody.m4
+2022/11/28 | 660 | graphics/circuit_macros/doc/ujtMan.m4
+2022/11/28 | 944 | graphics/circuit_macros/doc/VariableMan.m4
+2022/11/28 | 13 | graphics/circuit_macros/doc/Version.tex
+2022/11/28 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4
+2022/11/28 | 449 | graphics/circuit_macros/doc/woodchips.m4
+2022/11/28 | 2912 | graphics/circuit_macros/doc/Workflow.m4
+2022/11/28 | 1526 | graphics/circuit_macros/doc/XformMan.m4
+2022/11/28 | 23650 | graphics/circuit_macros/dpictools.pic
+2022/11/28 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
+2022/11/28 | 2402 | graphics/circuit_macros/examples/Adder.m4
+2022/11/28 | 4205 | graphics/circuit_macros/examples/Alogix.m4
+2022/11/28 | 494 | graphics/circuit_macros/examples/AmpTable.m4
+2022/11/28 | 1230 | graphics/circuit_macros/examples/Antennas.m4
+2022/11/28 | 5013 | graphics/circuit_macros/examples/AntiqueClock.m4
+2022/11/28 | 1615 | graphics/circuit_macros/examples/Arresters.m4
+2022/11/28 | 1786 | graphics/circuit_macros/examples/ArrowFn.m4
+2022/11/28 | 6270 | graphics/circuit_macros/examples/ASME_Y14-5.m4
+2022/11/28 | 771 | graphics/circuit_macros/examples/Attention.m4
+2022/11/28 | 2634 | graphics/circuit_macros/examples/Audio.m4
+2022/11/28 | 2517 | graphics/circuit_macros/examples/Autoencoder.m4
+2022/11/28 | 1962 | graphics/circuit_macros/examples/Autologix.m4
+2022/11/28 | 4638 | graphics/circuit_macros/examples/Ball.m4
+2022/11/28 | 1619 | graphics/circuit_macros/examples/Bip.m4
+2022/11/28 | 917 | graphics/circuit_macros/examples/birds.m4
+2022/11/28 | 1075 | graphics/circuit_macros/examples/bistable.m4
+2022/11/28 | 3175 | graphics/circuit_macros/examples/Blogix.m4
+2022/11/28 | 2542 | graphics/circuit_macros/examples/brace.m4
+2022/11/28 | 3198 | graphics/circuit_macros/examples/Btree.m4
+2022/11/28 | 3509 | graphics/circuit_macros/examples/Buttons.m4
+2022/11/28 | 991 | graphics/circuit_macros/examples/Byte.m4
+2022/11/28 | 6371 | graphics/circuit_macros/examples/CanLogic.m4
+2022/11/28 | 1201 | graphics/circuit_macros/examples/Capacitors.m4
+2022/11/28 | 233 | graphics/circuit_macros/examples/Ccurve.m4
+2022/11/28 | 1039 | graphics/circuit_macros/examples/chaos.m4
+2022/11/28 | 1222 | graphics/circuit_macros/examples/Chips.m4
+2022/11/28 | 7670 | graphics/circuit_macros/examples/Chuck.m4
+2022/11/28 | 482 | graphics/circuit_macros/examples/clock.m4
+2022/11/28 | 724 | graphics/circuit_macros/examples/Connectors.m4
+2022/11/28 | 2178 | graphics/circuit_macros/examples/Conn.m4
+2022/11/28 | 27105 | graphics/circuit_macros/examples/Consumption.m4
+2022/11/28 | 3464 | graphics/circuit_macros/examples/Contact.m4
+2022/11/28 | 1585 | graphics/circuit_macros/examples/Contacts.m4
+2022/11/28 | 7034 | graphics/circuit_macros/examples/control.m4
+2022/11/28 | 551 | graphics/circuit_macros/examples/Counting.m4
+2022/11/28 | 2562 | graphics/circuit_macros/examples/Crow.m4
+2022/11/28 | 1879 | graphics/circuit_macros/examples/Cruller.m4
+2022/11/28 | 7734 | graphics/circuit_macros/examples/csc.m4
+2022/11/28 | 6003 | graphics/circuit_macros/examples/CSlight.m4
+2022/11/28 | 5889 | graphics/circuit_macros/examples/Csource.m4
+2022/11/28 | 460 | graphics/circuit_macros/examples/debug1.tex
+2022/11/28 | 1959 | graphics/circuit_macros/examples/debug2.m4
+2022/11/28 | 655 | graphics/circuit_macros/examples/Decoder.m4
+2022/11/28 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
+2022/11/28 | 654 | graphics/circuit_macros/examples/diamond.m4
+2022/11/28 | 6854 | graphics/circuit_macros/examples/Dini.m4
+2022/11/28 | 1787 | graphics/circuit_macros/examples/Diodes.m4
+2022/11/28 | 1955 | graphics/circuit_macros/examples/dpv/ABlogixDPV.m4
+2022/11/28 | 2528 | graphics/circuit_macros/examples/dpv/AdderDPV.m4
+2022/11/28 | 4340 | graphics/circuit_macros/examples/dpv/AlogixDPV.m4
+2022/11/28 | 538 | graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
+2022/11/28 | 1090 | graphics/circuit_macros/examples/dpv/AntennasDPV.m4
+2022/11/28 | 1626 | graphics/circuit_macros/examples/dpv/ArrestersDPV.m4
+2022/11/28 | 1894 | graphics/circuit_macros/examples/dpv/ArrowFnDPV.m4
+2022/11/28 | 2720 | graphics/circuit_macros/examples/dpv/AudioDPV.m4
+2022/11/28 | 2989 | graphics/circuit_macros/examples/dpv/AutoencoderDPV.m4
+2022/11/28 | 1668 | graphics/circuit_macros/examples/dpv/Banking.m4
+2022/11/28 | 1812 | graphics/circuit_macros/examples/dpv/BipDPV.m4
+2022/11/28 | 4292 | graphics/circuit_macros/examples/dpv/BtreeDPV.m4
+2022/11/28 | 3567 | graphics/circuit_macros/examples/dpv/ButtonsDPV.m4
+2022/11/28 | 937 | graphics/circuit_macros/examples/dpv/ByteDPV.m4
+2022/11/28 | 7546 | graphics/circuit_macros/examples/dpv/ByteDPV.svg
+2022/11/28 | 6413 | graphics/circuit_macros/examples/dpv/CanLogicDPV.m4
+2022/11/28 | 1160 | graphics/circuit_macros/examples/dpv/CapacitorsDPV.m4
+2022/11/28 | 1214 | graphics/circuit_macros/examples/dpv/ChipsDPV.m4
+2022/11/28 | 2111 | graphics/circuit_macros/examples/dpv/ConnDPV.m4
+2022/11/28 | 715 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.m4
+2022/11/28 | 15366 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.pic
+2022/11/28 | 32750 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.svg
+2022/11/28 | 3646 | graphics/circuit_macros/examples/dpv/ContactDPV.m4
+2022/11/28 | 1737 | graphics/circuit_macros/examples/dpv/ContactsDPV.m4
+2022/11/28 | 8006 | graphics/circuit_macros/examples/dpv/controlDPV.m4
+2022/11/28 | 34203 | graphics/circuit_macros/examples/dpv/controlDPV.svg
+2022/11/28 | 793 | graphics/circuit_macros/examples/dpv/CountingDPV.m4
+2022/11/28 | 2525 | graphics/circuit_macros/examples/dpv/CrowDPV.m4
+2022/11/28 | 1874 | graphics/circuit_macros/examples/dpv/CrullerDPV.m4
+2022/11/28 | 7778 | graphics/circuit_macros/examples/dpv/cscDPV.m4
+2022/11/28 | 7418 | graphics/circuit_macros/examples/dpv/CsourceDPV.m4
+2022/11/28 | 45528 | graphics/circuit_macros/examples/dpv/CsourceDPV.svg
+2022/11/28 | 745 | graphics/circuit_macros/examples/dpv/DecoderDPV.m4
+2022/11/28 | 1373 | graphics/circuit_macros/examples/dpv/DemultiplexerDPV.m4
+2022/11/28 | 609 | graphics/circuit_macros/examples/dpv/diamondDPV.m4
+2022/11/28 | 6854 | graphics/circuit_macros/examples/dpv/DiniDPV.m4
+2022/11/28 | 1647 | graphics/circuit_macros/examples/dpv/DiodesDPV.m4
+2022/11/28 | 1050 | graphics/circuit_macros/examples/dpv/DPVconfig.m4
+2022/11/28 | 1966 | graphics/circuit_macros/examples/dpv/DriveDPV.m4
+2022/11/28 | 4757 | graphics/circuit_macros/examples/dpv/EEPDPV.m4
+2022/11/28 | 28340 | graphics/circuit_macros/examples/dpv/EEPDPV.svg
+2022/11/28 | 1071 | graphics/circuit_macros/examples/dpv/EmarrowsDPV.m4
+2022/11/28 | 6285 | graphics/circuit_macros/examples/dpv/EscherDPV.m4
+2022/11/28 | 10871 | graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
+2022/11/28 | 2443 | graphics/circuit_macros/examples/dpv/ex00DPV.m4
+2022/11/28 | 2629 | graphics/circuit_macros/examples/dpv/ex01DPV.m4
+2022/11/28 | 15560 | graphics/circuit_macros/examples/dpv/ex01DPV.svg
+2022/11/28 | 1093 | graphics/circuit_macros/examples/dpv/ex02DPV.m4
+2022/11/28 | 855 | graphics/circuit_macros/examples/dpv/ex03DPV.m4
+2022/11/28 | 1891 | graphics/circuit_macros/examples/dpv/ex04DPV.m4
+2022/11/28 | 3390 | graphics/circuit_macros/examples/dpv/ex05DPV.m4
+2022/11/28 | 2018 | graphics/circuit_macros/examples/dpv/ex06DPV.m4
+2022/11/28 | 2559 | graphics/circuit_macros/examples/dpv/ex08DPV.m4
+2022/11/28 | 4119 | graphics/circuit_macros/examples/dpv/ex09DPV.m4
+2022/11/28 | 1699 | graphics/circuit_macros/examples/dpv/ex10DPV.m4
+2022/11/28 | 2685 | graphics/circuit_macros/examples/dpv/ex11DPV.m4
+2022/11/28 | 3522 | graphics/circuit_macros/examples/dpv/ex12DPV.m4
+2022/11/28 | 966 | graphics/circuit_macros/examples/dpv/ex15DPV.m4
+2022/11/28 | 1893 | graphics/circuit_macros/examples/dpv/ex16DPV.m4
+2022/11/28 | 1204 | graphics/circuit_macros/examples/dpv/ex17DPV.m4
+2022/11/28 | 1065 | graphics/circuit_macros/examples/dpv/ex18DPV.m4
+2022/11/28 | 1882 | graphics/circuit_macros/examples/dpv/ex21DPV.m4
+2022/11/28 | 24807 | graphics/circuit_macros/examples/dpv/examplesDPV.htmx
+2022/11/28 | 18477 | graphics/circuit_macros/examples/dpv/examplesDPVs.html
+2022/11/28 | 24811 | graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
+2022/11/28 | 8517 | graphics/circuit_macros/examples/dpv/expDPV.m4
+2022/11/28 | 1700 | graphics/circuit_macros/examples/dpv/EyeDPV.m4
+2022/11/28 | 5365 | graphics/circuit_macros/examples/dpv/fetDPV.m4
+2022/11/28 | 5171 | graphics/circuit_macros/examples/dpv/FlowDPV.m4
+2022/11/28 | 33087 | graphics/circuit_macros/examples/dpv/FlowDPV.svg
+2022/11/28 | 555 | graphics/circuit_macros/examples/dpv/FontsDPV.m4
+2022/11/28 | 5546 | graphics/circuit_macros/examples/dpv/FontsDPV.svg
+2022/11/28 | 1996 | graphics/circuit_macros/examples/dpv/FourbarDPV.m4
+2022/11/28 | 959 | graphics/circuit_macros/examples/dpv/FusesDPV.m4
+2022/11/28 | 5228 | graphics/circuit_macros/examples/dpv/GeometryDPV.m4
+2022/11/28 | 1875 | graphics/circuit_macros/examples/dpv/GrayCodeDPV.m4
+2022/11/28 | 5469 | graphics/circuit_macros/examples/dpv/graysurfDPV.m4
+2022/11/28 | 810 | graphics/circuit_macros/examples/dpv/GroundsDPV.m4
+2022/11/28 | 1265 | graphics/circuit_macros/examples/dpv/HeadersDPV.m4
+2022/11/28 | 12711 | graphics/circuit_macros/examples/dpv/HeathkitDPV.m4
+2022/11/28 | 89812 | graphics/circuit_macros/examples/dpv/HeathkitDPV.svg
+2022/11/28 | 2171 | graphics/circuit_macros/examples/dpv/I2LDPV.m4
+2022/11/28 | 11601 | graphics/circuit_macros/examples/dpv/icsDPV.m4
+2022/11/28 | 4292 | graphics/circuit_macros/examples/dpv/InclepsDPV.m4
+2022/11/28 | 21384 | graphics/circuit_macros/examples/dpv/Incl.jpg
+2022/11/28 | 1343 | graphics/circuit_macros/examples/dpv/InductorsDPV.m4
+2022/11/28 | 2051 | graphics/circuit_macros/examples/dpv/JackDPV.m4
+2022/11/28 | 10699 | graphics/circuit_macros/examples/dpv/keyboardDPV.m4
+2022/11/28 | 7203 | graphics/circuit_macros/examples/dpv/lcctDPV.m4
+2022/11/28 | 6216 | graphics/circuit_macros/examples/dpv/LgateDPV.m4
+2022/11/28 | 63 | graphics/circuit_macros/examples/dpv/local_init.m4
+2022/11/28 | 1931 | graphics/circuit_macros/examples/dpv/LogicDPV.m4
+2022/11/28 | 30451 | graphics/circuit_macros/examples/dpv/LoglogDPV.m4
+2022/11/28 | 5992 | graphics/circuit_macros/examples/dpv/Makefile
+2022/11/28 | 3473 | graphics/circuit_macros/examples/dpv/MCDPV.m4
+2022/11/28 | 3489 | graphics/circuit_macros/examples/dpv/MixerDPV.m4
+2022/11/28 | 973 | graphics/circuit_macros/examples/dpv/MoreTableDPV.m4
+2022/11/28 | 1953 | graphics/circuit_macros/examples/dpv/MotorControlDPV.m4
+2022/11/28 | 1403 | graphics/circuit_macros/examples/dpv/MultiplexerDPV.m4
+2022/11/28 | 532 | graphics/circuit_macros/examples/dpv/NLGDPV.m4
+2022/11/28 | 1157 | graphics/circuit_macros/examples/dpv/NPDTDPV.m4
+2022/11/28 | 758 | graphics/circuit_macros/examples/dpv/Np.m4
+2022/11/28 | 1238 | graphics/circuit_macros/examples/dpv/NportDPV.m4
+2022/11/28 | 7404 | graphics/circuit_macros/examples/dpv/NportDPV.svg
+2022/11/28 | 1034 | graphics/circuit_macros/examples/dpv/OpampDPV.m4
+2022/11/28 | 2551 | graphics/circuit_macros/examples/dpv/OptoisoDPV.m4
+2022/11/28 | 10238 | graphics/circuit_macros/examples/dpv/paletteDPV.m4
+2022/11/28 | 113485 | graphics/circuit_macros/examples/dpv/paletteDPV.svg
+2022/11/28 | 1781 | graphics/circuit_macros/examples/dpv/PconnDPV.m4
+2022/11/28 | 6153 | graphics/circuit_macros/examples/dpv/PlateDPV.m4
+2022/11/28 | 3778 | graphics/circuit_macros/examples/dpv/PushPullDPV.m4
+2022/11/28 | 2027 | graphics/circuit_macros/examples/dpv/pwrsupplyDPV.m4
+2022/11/28 | 947 | graphics/circuit_macros/examples/dpv/QuantumDPV.m4
+2022/11/28 | 901 | graphics/circuit_macros/examples/dpv/quickDPV.m4
+2022/11/28 | 4226 | graphics/circuit_macros/examples/dpv/quickDPV.svg
+2022/11/28 | 774 | graphics/circuit_macros/examples/dpv/quick.m4
+2022/11/28 | 6153 | graphics/circuit_macros/examples/dpv/quick.pic
+2022/11/30 | 15247 | graphics/circuit_macros/examples/dpv/quick.svg
+2022/11/28 | 5892 | graphics/circuit_macros/examples/dpv/quick.tex
+2022/11/30 | 15247 | graphics/circuit_macros/examples/dpv/quick.xsvg
+2022/11/28 | 3756 | graphics/circuit_macros/examples/dpv/randomDPV.m4
+2022/11/28 | 609 | graphics/circuit_macros/examples/dpv/README_svg
+2022/11/28 | 7546 | graphics/circuit_macros/examples/dpv/RectifiersDPV.m4
+2022/11/28 | 3825 | graphics/circuit_macros/examples/dpv/recycleDPV.m4
+2022/11/28 | 2069 | graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
+2022/11/28 | 1431 | graphics/circuit_macros/examples/dpv/RelayDPV.m4
+2022/11/28 | 1188 | graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
+2022/11/28 | 5485 | graphics/circuit_macros/examples/dpv/roseDPV.m4
+2022/11/28 | 563 | graphics/circuit_macros/examples/dpv/RotboxDPV.m4
+2022/11/28 | 1837 | graphics/circuit_macros/examples/dpv/SchottkyDPV.m4
+2022/11/28 | 4761 | graphics/circuit_macros/examples/dpv/sfgDPV.m4
+2022/11/28 | 7494 | graphics/circuit_macros/examples/dpv/shapesDPV.m4
+2022/11/28 | 1313 | graphics/circuit_macros/examples/dpv/ShiftRDPV.m4
+2022/11/28 | 1331 | graphics/circuit_macros/examples/dpv/SierpinskiDPV.m4
+2022/11/28 | 419 | graphics/circuit_macros/examples/dpv/SixpoleDPV.m4
+2022/11/28 | 4376 | graphics/circuit_macros/examples/dpv/slddiagsDPV.m4
+2022/11/28 | 8810 | graphics/circuit_macros/examples/dpv/SmithchartDPV.m4
+2022/11/28 | 1907 | graphics/circuit_macros/examples/dpv/SourcesDPV.m4
+2022/11/28 | 417 | graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
+2022/11/28 | 5132 | graphics/circuit_macros/examples/dpv/SwitchesDPV.m4
+2022/11/28 | 1055 | graphics/circuit_macros/examples/dpv/TgateDPV.m4
+2022/11/28 | 1444 | graphics/circuit_macros/examples/dpv/ThreeDPV.m4
+2022/11/28 | 3310 | graphics/circuit_macros/examples/dpv/thyristorDPV.m4
+2022/11/28 | 1612 | graphics/circuit_macros/examples/dpv/TimerDPV.m4
+2022/11/28 | 13505 | graphics/circuit_macros/examples/dpv/tstDPV.htmx
+2022/11/28 | 1630 | graphics/circuit_macros/examples/dpv/TTLnandDPV.m4
+2022/11/28 | 3091 | graphics/circuit_macros/examples/dpv/TtreeDPV.m4
+2022/11/28 | 12478 | graphics/circuit_macros/examples/dpv/TubediagsDPV.m4
+2022/11/28 | 682 | graphics/circuit_macros/examples/dpv/ujtDPV.m4
+2022/11/28 | 24138 | graphics/circuit_macros/examples/dpv/UNODPV.m4
+2022/11/28 | 988 | graphics/circuit_macros/examples/dpv/VariableDPV.m4
+2022/11/28 | 2994 | graphics/circuit_macros/examples/dpv/WindingsDPV.m4
+2022/11/28 | 353 | graphics/circuit_macros/examples/dpv/windows.m4
+2022/11/28 | 3631 | graphics/circuit_macros/examples/dpv/wormDPV.m4
+2022/11/28 | 1559 | graphics/circuit_macros/examples/dpv/XformDPV.m4
+2022/11/28 | 1985 | graphics/circuit_macros/examples/dpv/XORDPV.m4
+2022/11/28 | 1546 | graphics/circuit_macros/examples/dpv/Xtest.m4
+2022/11/28 | 1966 | graphics/circuit_macros/examples/Drive.m4
+2022/11/28 | 4885 | graphics/circuit_macros/examples/EEP.m4
+2022/11/28 | 977 | graphics/circuit_macros/examples/Emarrows.m4
+2022/11/28 | 6282 | graphics/circuit_macros/examples/Escher.m4
+2022/11/28 | 4002 | graphics/circuit_macros/examples/Euro.m4
+2022/11/28 | 10836 | graphics/circuit_macros/examples/EVplugs.m4
+2022/11/28 | 2412 | graphics/circuit_macros/examples/ex00.m4
+2022/11/28 | 2294 | graphics/circuit_macros/examples/ex01.m4
+2022/11/28 | 1100 | graphics/circuit_macros/examples/ex02.m4
+2022/11/28 | 673 | graphics/circuit_macros/examples/ex03.m4
+2022/11/28 | 1654 | graphics/circuit_macros/examples/ex04.m4
+2022/11/28 | 3510 | graphics/circuit_macros/examples/ex05.m4
+2022/11/28 | 1700 | graphics/circuit_macros/examples/ex06.m4
+2022/11/28 | 2556 | graphics/circuit_macros/examples/ex08.m4
+2022/11/28 | 4313 | graphics/circuit_macros/examples/ex09.m4
+2022/11/28 | 1492 | graphics/circuit_macros/examples/ex10.m4
+2022/11/28 | 2361 | graphics/circuit_macros/examples/ex11.m4
+2022/11/28 | 3339 | graphics/circuit_macros/examples/ex12.m4
+2022/11/28 | 1003 | graphics/circuit_macros/examples/ex15.m4
+2022/11/28 | 1865 | graphics/circuit_macros/examples/ex16.m4
+2022/11/28 | 1126 | graphics/circuit_macros/examples/ex17.m4
+2022/11/28 | 865 | graphics/circuit_macros/examples/ex18.m4
+2022/11/28 | 2000 | graphics/circuit_macros/examples/ex21.m4
+2022/11/28 | 1897548 | graphics/circuit_macros/examples/examples.pdf
+2022/11/28 | 1766 | graphics/circuit_macros/examples/examples.tex
+2022/11/28 | 8372 | graphics/circuit_macros/examples/exp.m4
+2022/11/28 | 2086 | graphics/circuit_macros/examples/Eye.m4
+2022/11/28 | 5311 | graphics/circuit_macros/examples/fet.m4
+2022/11/28 | 19397 | graphics/circuit_macros/examples/files.tex
+2022/11/28 | 645 | graphics/circuit_macros/examples/Floor.m4
+2022/11/28 | 11255 | graphics/circuit_macros/examples/FlowchartDefs.m4
+2022/11/28 | 4751 | graphics/circuit_macros/examples/Flow.m4
+2022/11/28 | 999 | graphics/circuit_macros/examples/Fuses.m4
+2022/11/28 | 5093 | graphics/circuit_macros/examples/Geometry.m4
+2022/11/28 | 1818 | graphics/circuit_macros/examples/GrayCode.m4
+2022/11/28 | 5486 | graphics/circuit_macros/examples/graysurf.m4
+2022/11/28 | 828 | graphics/circuit_macros/examples/Grounds.m4
+2022/11/28 | 1132 | graphics/circuit_macros/examples/Headers.m4
+2022/11/28 | 1458 | graphics/circuit_macros/examples/header.tex
+2022/11/28 | 13420 | graphics/circuit_macros/examples/Heathkit.m4
+2022/11/28 | 2068 | graphics/circuit_macros/examples/I2L.m4
+2022/11/28 | 1668 | graphics/circuit_macros/examples/IC10107.m4
+2022/11/28 | 11440 | graphics/circuit_macros/examples/ics.m4
+2022/11/28 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
+2022/11/28 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
+2022/11/28 | 772 | graphics/circuit_macros/examples/Incleps.m4
+2022/11/28 | 29772 | graphics/circuit_macros/examples/Incl.pdf
+2022/11/28 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
+2022/11/28 | 1443 | graphics/circuit_macros/examples/Inductors.m4
+2022/11/28 | 2571 | graphics/circuit_macros/examples/IntersectingPlanes.m4
+2022/11/28 | 2362 | graphics/circuit_macros/examples/Jack.m4
+2022/11/28 | 10699 | graphics/circuit_macros/examples/keyboard.m4
+2022/11/28 | 118060 | graphics/circuit_macros/examples/keyboard.pdf
+2022/11/28 | 489 | graphics/circuit_macros/examples/Koch.m4
+2022/11/28 | 7127 | graphics/circuit_macros/examples/lcct.m4
+2022/11/28 | 2119 | graphics/circuit_macros/examples/Logic.m4
+2022/11/28 | 2304 | graphics/circuit_macros/examples/Loglog.m4
+2022/11/28 | 4501 | graphics/circuit_macros/examples/Lyap.m4
+2022/11/28 | 11170 | graphics/circuit_macros/examples/Makefile
+2022/11/28 | 2986 | graphics/circuit_macros/examples/MC.m4
+2022/11/28 | 2846 | graphics/circuit_macros/examples/Metamodel.m4
+2022/11/28 | 95140 | graphics/circuit_macros/examples/mf/cct.mf
+2022/11/28 | 764 | graphics/circuit_macros/examples/mf/cct.tfm
+2022/11/28 | 4615 | graphics/circuit_macros/examples/mf/font.m4
+2022/11/28 | 1529 | graphics/circuit_macros/examples/mf/Makefile
+2022/11/28 | 1076 | graphics/circuit_macros/examples/mf/mftest
+2022/11/28 | 3785 | graphics/circuit_macros/examples/Mixer.m4
+2022/11/28 | 960 | graphics/circuit_macros/examples/MoreTable.m4
+2022/11/28 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
+2022/11/28 | 497 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
+2022/11/28 | 4361 | graphics/circuit_macros/examples/mpost/Makefile
+2022/11/28 | 685 | graphics/circuit_macros/examples/mpost/mptest
+2022/11/28 | 749 | graphics/circuit_macros/examples/mpost/README-mpost
+2022/11/28 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex
+2022/11/28 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
+2022/11/28 | 499 | graphics/circuit_macros/examples/NLG.m4
+2022/11/28 | 1128 | graphics/circuit_macros/examples/NPDT.m4
+2022/11/28 | 1040 | graphics/circuit_macros/examples/Nport.m4
+2022/11/28 | 2792 | graphics/circuit_macros/examples/OpAmpFilter.m4
+2022/11/28 | 1433 | graphics/circuit_macros/examples/Opamp.m4
+2022/11/28 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
+2022/11/28 | 1852 | graphics/circuit_macros/examples/Orbits.m4
+2022/11/28 | 10193 | graphics/circuit_macros/examples/paletteSVG.m4
+2022/11/28 | 1997 | graphics/circuit_macros/examples/Pconn.m4
+2022/11/28 | 1419 | graphics/circuit_macros/examples/person.m4
+2022/11/28 | 6215 | graphics/circuit_macros/examples/Plate.m4
+2022/11/28 | 1174 | graphics/circuit_macros/examples/PPA.m4
+2022/11/28 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
+2022/11/28 | 4784 | graphics/circuit_macros/examples/psfrag/Makefile
+2022/11/28 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
+2022/11/28 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
+2022/11/28 | 3954 | graphics/circuit_macros/examples/PushPull.m4
+2022/11/28 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
+2022/11/28 | 918 | graphics/circuit_macros/examples/Quantum.m4
+2022/11/28 | 774 | graphics/circuit_macros/examples/quick.m4
+2022/11/28 | 3727 | graphics/circuit_macros/examples/random.m4
+2022/11/28 | 3420 | graphics/circuit_macros/examples/README-examples
+2022/11/28 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4
+2022/11/28 | 3825 | graphics/circuit_macros/examples/recycle.m4
+2022/11/28 | 2086 | graphics/circuit_macros/examples/relaycoil.m4
+2022/11/28 | 1259 | graphics/circuit_macros/examples/Relay.m4
+2022/11/28 | 1147 | graphics/circuit_macros/examples/Resistors.m4
+2022/11/28 | 1443 | graphics/circuit_macros/examples/Resolver.m4
+2022/11/28 | 5485 | graphics/circuit_macros/examples/rose.m4
+2022/11/28 | 221 | graphics/circuit_macros/examples/rotate.tex
+2022/11/28 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
+2022/11/28 | 533 | graphics/circuit_macros/examples/Rotbox.m4
+2022/11/28 | 365 | graphics/circuit_macros/examples/rotellipse.m4
+2022/11/28 | 747 | graphics/circuit_macros/examples/SampleFlow.m4
+2022/11/28 | 1778 | graphics/circuit_macros/examples/Schottky.m4
+2022/11/28 | 3991 | graphics/circuit_macros/examples/sfg.m4
+2022/11/28 | 295 | graphics/circuit_macros/examples/ShadeSector.m4
+2022/11/28 | 3749 | graphics/circuit_macros/examples/Shaky.m4
+2022/11/28 | 7708 | graphics/circuit_macros/examples/shapes.m4
+2022/11/28 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
+2022/11/28 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
+2022/11/28 | 419 | graphics/circuit_macros/examples/Sixpole.m4
+2022/11/28 | 8833 | graphics/circuit_macros/examples/Smithchart.m4
+2022/11/28 | 370 | graphics/circuit_macros/examples/snake.m4
+2022/11/28 | 2165 | graphics/circuit_macros/examples/Sources.m4
+2022/11/28 | 1906 | graphics/circuit_macros/examples/SPM.m4
+2022/11/28 | 380 | graphics/circuit_macros/examples/SQUID.m4
+2022/11/28 | 953 | graphics/circuit_macros/examples/squiggle.m4
+2022/11/28 | 1795 | graphics/circuit_macros/examples/Stator.m4
+2022/11/28 | 4782 | graphics/circuit_macros/examples/Switches.m4
+2022/11/28 | 591 | graphics/circuit_macros/examples/test.m4
+2022/11/28 | 416 | graphics/circuit_macros/examples/testpdf.tex
+2022/11/28 | 1022 | graphics/circuit_macros/examples/Tgate.m4
+2022/11/28 | 1287 | graphics/circuit_macros/examples/Three.m4
+2022/11/28 | 3321 | graphics/circuit_macros/examples/thyristor.m4
+2022/11/28 | 219 | graphics/circuit_macros/examples/tst1.tex
+2022/11/28 | 409 | graphics/circuit_macros/examples/tst.tex
+2022/11/28 | 464 | graphics/circuit_macros/examples/tsttikz.tex
+2022/11/28 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
+2022/11/28 | 9869 | graphics/circuit_macros/examples/tubedefs.m4
+2022/11/28 | 13294 | graphics/circuit_macros/examples/Tubediags.m4
+2022/11/28 | 660 | graphics/circuit_macros/examples/ujt.m4
+2022/11/28 | 23616 | graphics/circuit_macros/examples/UNO.m4
+2022/11/28 | 932 | graphics/circuit_macros/examples/Variable.m4
+2022/11/28 | 1916 | graphics/circuit_macros/examples/venus.m4
+2022/11/28 | 449 | graphics/circuit_macros/examples/Wheat.m4
+2022/11/28 | 3346 | graphics/circuit_macros/examples/Windings.m4
+2022/11/28 | 353 | graphics/circuit_macros/examples/windows.m4
+2022/11/28 | 2801 | graphics/circuit_macros/examples/worm.m4
+2022/11/28 | 337 | graphics/circuit_macros/examples/xfig/Makefile
+2022/11/28 | 21398 | graphics/circuit_macros/examples/xfig/xfiglib.fig
+2022/11/28 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
+2022/11/28 | 1526 | graphics/circuit_macros/examples/Xform.m4
+2022/11/28 | 1823 | graphics/circuit_macros/examples/XOR.m4
+2022/11/28 | 656 | graphics/circuit_macros/examples/Zcos.m4
+2022/11/28 | 1019 | graphics/circuit_macros/gpic.m4
+2022/11/28 | 3794 | graphics/circuit_macros/INSTALL
+2022/11/28 | 12765 | graphics/circuit_macros/lib3D.m4
+2022/11/28 | 179685 | graphics/circuit_macros/libcct.m4
+2022/11/28 | 91701 | graphics/circuit_macros/libgen.m4
+2022/11/28 | 47825 | graphics/circuit_macros/liblog.m4
+2022/11/28 | 32742 | graphics/circuit_macros/libSLD.m4
+2022/11/28 | 19176 | graphics/circuit_macros/Licence.txt
+2022/11/28 | 1639 | graphics/circuit_macros/Makefile
+2022/11/28 | 1114 | graphics/circuit_macros/mfpic.m4
+2022/11/28 | 1640 | graphics/circuit_macros/mpost.m4
+2022/11/28 | 2085 | graphics/circuit_macros/pgf.m4
+2022/11/28 | 2834 | graphics/circuit_macros/postscript.m4
+2022/11/28 | 706 | graphics/circuit_macros/psfrag.m4
+2022/11/28 | 2099 | graphics/circuit_macros/pstricks.m4
+2022/11/28 | 15834 | graphics/circuit_macros/README
+2022/11/28 | 11995 | graphics/circuit_macros/svg.m4
+2022/11/28 | 1029 | graphics/circuit_macros/xfig.m4
+2022/11/30 | 3729888 | graphics/circuit_macros.zip
2018/09/22 | 49163 | graphics/coloremoji/coloremoji.sty
2018/09/22 | 15169 | graphics/coloremoji/emoji_images/hires/1F004.pdf
2018/09/22 | 24318 | graphics/coloremoji/emoji_images/hires/1F0CF.pdf
@@ -190530,7 +190521,7 @@
2022/10/31 | 7339002 | install/macros/latex-dev/required/latex-tools-dev.tds.zip
2022/10/31 | 39020487 | install/macros/latex/latex-base.tds.zip
2020/06/01 | 1578753 | install/macros/latex/required/amscls.tds.zip
-2022/10/23 | 3018925 | install/macros/latex/required/babel-base.tds.zip
+2022/11/30 | 3048340 | install/macros/latex/required/babel-base.tds.zip
2022/06/08 | 2794804 | install/macros/latex/required/latex-amsmath.tds.zip
2022/06/14 | 242625 | install/macros/latex/required/latexbug.tds.zip
2022/06/16 | 1352652 | install/macros/latex/required/latex-cyrillic.tds.zip
@@ -222477,19 +222468,20 @@
2011/07/07 | 92388 | macros/latex/contrib/kdgdocs/pi-orchid.jpg
2011/10/31 | 2700 | macros/latex/contrib/kdgdocs/README
2011/11/02 | 883256 | macros/latex/contrib/kdgdocs.zip
-2022/10/02 | 47687 | macros/latex/contrib/kdpcover/cactus.pdf
-2022/10/02 | 117 | macros/latex/contrib/kdpcover/DEPENDS.txt
-2022/10/02 | 12745 | macros/latex/contrib/kdpcover/kdpcover.dtx
-2022/10/02 | 2648 | macros/latex/contrib/kdpcover/kdpcover.ins
-2022/10/02 | 260022 | macros/latex/contrib/kdpcover/kdpcover.pdf
-2022/10/02 | 7256 | macros/latex/contrib/kdpcover/kdpcover-signature.pdf
-2022/10/02 | 8540 | macros/latex/contrib/kdpcover/kdpcover-vol-1.pdf
-2022/10/02 | 6504 | macros/latex/contrib/kdpcover/kdpcover-vol-2.pdf
-2022/10/02 | 7156 | macros/latex/contrib/kdpcover/kdpcover-vol-3.pdf
-2022/10/02 | 6723 | macros/latex/contrib/kdpcover/kdpcover-vol-4.pdf
-2022/10/02 | 1083 | macros/latex/contrib/kdpcover/LICENSE.txt
-2022/10/02 | 1892 | macros/latex/contrib/kdpcover/README.md
-2022/10/02 | 339763 | macros/latex/contrib/kdpcover.zip
+2022/11/30 | 47687 | macros/latex/contrib/kdpcover/cactus.pdf
+2022/11/30 | 131 | macros/latex/contrib/kdpcover/DEPENDS.txt
+2022/11/30 | 13254 | macros/latex/contrib/kdpcover/kdpcover.dtx
+2022/11/30 | 2632 | macros/latex/contrib/kdpcover/kdpcover.ins
+2022/11/30 | 368603 | macros/latex/contrib/kdpcover/kdpcover.pdf
+2022/11/30 | 7256 | macros/latex/contrib/kdpcover/kdpcover-signature.pdf
+2022/11/30 | 8540 | macros/latex/contrib/kdpcover/kdpcover-vol-1.pdf
+2022/11/30 | 6504 | macros/latex/contrib/kdpcover/kdpcover-vol-2.pdf
+2022/11/30 | 7156 | macros/latex/contrib/kdpcover/kdpcover-vol-3.pdf
+2022/11/30 | 6723 | macros/latex/contrib/kdpcover/kdpcover-vol-4.pdf
+2022/11/30 | 1083 | macros/latex/contrib/kdpcover/LICENSE.txt
+2022/11/30 | 1749 | macros/latex/contrib/kdpcover/README.md
+2022/11/30 | 5216 | macros/latex/contrib/kdpcover/yb-book-logo.pdf
+2022/11/30 | 444437 | macros/latex/contrib/kdpcover.zip
2004/04/14 | 1412 | macros/latex/contrib/kerntest/ChangeLog
2004/04/14 | 169870 | macros/latex/contrib/kerntest/kerntest.dtx
2004/04/12 | 1068 | macros/latex/contrib/kerntest/kerntest.ins
@@ -224391,16 +224383,16 @@
2018/12/30 | 302307 | macros/latex/contrib/mathfixs/mathfixs.pdf
2018/12/30 | 1191 | macros/latex/contrib/mathfixs/README.txt
2018/12/30 | 303875 | macros/latex/contrib/mathfixs.zip
-2021/12/29 | 327250 | macros/latex/contrib/mathfont/mathfont_code.dtx
-2021/12/29 | 381683 | macros/latex/contrib/mathfont/mathfont_code.pdf
-2021/12/29 | 48599 | macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf
-2021/12/29 | 70870 | macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf
-2021/12/29 | 47734 | macros/latex/contrib/mathfont/mathfont_example_roboto.pdf
-2021/12/29 | 39136 | macros/latex/contrib/mathfont/mathfont_example_typey.pdf
-2021/12/29 | 185186 | macros/latex/contrib/mathfont/mathfont_symbol_list.pdf
-2021/12/29 | 114809 | macros/latex/contrib/mathfont/mathfont_user_guide.pdf
-2021/12/29 | 3898 | macros/latex/contrib/mathfont/README.txt
-2021/12/29 | 939011 | macros/latex/contrib/mathfont.zip
+2022/11/30 | 312454 | macros/latex/contrib/mathfont/mathfont_code.dtx
+2022/11/30 | 371018 | macros/latex/contrib/mathfont/mathfont_code.pdf
+2022/11/30 | 51264 | macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf
+2022/11/30 | 84913 | macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf
+2022/11/30 | 54246 | macros/latex/contrib/mathfont/mathfont_example_roboto.pdf
+2022/11/30 | 38746 | macros/latex/contrib/mathfont/mathfont_example_typey.pdf
+2022/11/28 | 232449 | macros/latex/contrib/mathfont/mathfont_symbol_list.pdf
+2022/11/30 | 115029 | macros/latex/contrib/mathfont/mathfont_user_guide.pdf
+2022/11/30 | 4536 | macros/latex/contrib/mathfont/README.txt
+2022/11/30 | 997241 | macros/latex/contrib/mathfont.zip
2016/02/22 | 17992 | macros/latex/contrib/mathpartir/COPYING
2016/02/24 | 38822 | macros/latex/contrib/mathpartir/mathpartir.dtx
2016/02/22 | 2555 | macros/latex/contrib/mathpartir/mathpartir.ins
@@ -228911,8 +228903,8 @@
2022/04/26 | 323 | macros/latex/contrib/proflabo/README.md
2022/04/26 | 9327 | macros/latex/contrib/proflabo/tex/ProfLabo.sty
2022/04/26 | 136164 | macros/latex/contrib/proflabo.zip
-2022/11/20 | 32 | macros/latex/contrib/proflycee/doc/basique.csv
-2022/11/20 | 968 | macros/latex/contrib/proflycee/doc/cap.csv
+2022/11/30 | 32 | macros/latex/contrib/proflycee/doc/basique.csv
+2022/11/30 | 968 | macros/latex/contrib/proflycee/doc/cap.csv
2022/10/14 | 10939 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_a.png
2022/10/14 | 10804 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_b.png
2022/10/14 | 7252 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-probas_c.png
@@ -228925,16 +228917,16 @@
2022/06/28 | 11759 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_c.png
2022/06/28 | 7316 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_d.png
2022/06/28 | 9599 | macros/latex/contrib/proflycee/doc/graphics/pl-doc-stats_e.png
-2022/11/20 | 736 | macros/latex/contrib/proflycee/doc/perroquet.csv
-2022/11/20 | 738301 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
-2022/11/20 | 203476 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+2022/11/30 | 736 | macros/latex/contrib/proflycee/doc/perroquet.csv
+2022/11/30 | 744621 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+2022/11/30 | 205253 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
2022/11/06 | 712614 | macros/latex/contrib/proflycee/doc/ProfLycee-old-doc.pdf
2022/11/06 | 192682 | macros/latex/contrib/proflycee/doc/ProfLycee-old-doc.tex
-2022/11/20 | 529 | macros/latex/contrib/proflycee/doc/testscript.py
+2022/11/30 | 529 | macros/latex/contrib/proflycee/doc/testscript.py
2022/08/10 | 439 | macros/latex/contrib/proflycee/README.md
2022/11/06 | 112967 | macros/latex/contrib/proflycee/tex/ProfLycee-old.sty
-2022/11/20 | 118344 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
-2022/11/21 | 1647382 | macros/latex/contrib/proflycee.zip
+2022/11/30 | 118585 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
+2022/11/30 | 1654117 | macros/latex/contrib/proflycee.zip
1996/02/05 | 1760 | macros/latex/contrib/progkeys/demo/demo.tex
1996/02/05 | 459 | macros/latex/contrib/progkeys/demo/prog1.tex
1996/02/05 | 347 | macros/latex/contrib/progkeys/demo/prog2.tex
@@ -238812,14 +238804,14 @@
2022/06/08 | 454511 | macros/latex/required/amsmath/testmath.pdf
2022/06/08 | 82371 | macros/latex/required/amsmath/testmath.tex
2022/06/08 | 2762704 | macros/latex/required/amsmath.zip
-2022/10/23 | 748005 | macros/latex/required/babel/base/babel.dtx
-2022/10/23 | 7869 | macros/latex/required/babel/base/babel.ins
-2022/10/23 | 885304 | macros/latex/required/babel/base/babel.pdf
-2022/10/23 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
-2022/10/23 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
-2022/10/23 | 839829 | macros/latex/required/babel/base/locale.zip
-2022/10/23 | 2277 | macros/latex/required/babel/base/README.md
-2022/10/23 | 1922922 | macros/latex/required/babel/base.zip
+2022/11/30 | 749792 | macros/latex/required/babel/base/babel.dtx
+2022/11/30 | 7869 | macros/latex/required/babel/base/babel.ins
+2022/11/30 | 897584 | macros/latex/required/babel/base/babel.pdf
+2022/11/30 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
+2022/11/30 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
+2022/11/30 | 848042 | macros/latex/required/babel/base/locale.zip
+2022/11/30 | 2322 | macros/latex/required/babel/base/README.md
+2022/11/30 | 1943672 | macros/latex/required/babel/base.zip
2022/06/16 | 5612 | macros/latex/required/cyrillic/changes.txt
2022/06/16 | 57710 | macros/latex/required/cyrillic/cyinpenc.dtx
2022/06/16 | 215413 | macros/latex/required/cyrillic/cyinpenc.pdf
@@ -239559,12 +239551,12 @@
2021/10/07 | 9854 | macros/luatex/generic/luaxml/luaxml-transform.lua
2021/10/07 | 1155 | macros/luatex/generic/luaxml/README
2021/10/07 | 161975 | macros/luatex/generic/luaxml.zip
-2022/11/27 | 14243 | macros/luatex/generic/lutabulartools/lutabulartools.lua
-2022/11/27 | 114054 | macros/luatex/generic/lutabulartools/lutabulartools.pdf
-2022/11/27 | 9958 | macros/luatex/generic/lutabulartools/lutabulartools.sty
-2022/11/27 | 16744 | macros/luatex/generic/lutabulartools/lutabulartools.tex
-2022/11/27 | 1623 | macros/luatex/generic/lutabulartools/README.md
-2022/11/27 | 100718 | macros/luatex/generic/lutabulartools.zip
+2022/11/29 | 17469 | macros/luatex/generic/lutabulartools/lutabulartools.lua
+2022/11/29 | 116020 | macros/luatex/generic/lutabulartools/lutabulartools.pdf
+2022/11/29 | 10411 | macros/luatex/generic/lutabulartools/lutabulartools.sty
+2022/11/29 | 17092 | macros/luatex/generic/lutabulartools/lutabulartools.tex
+2022/11/29 | 1623 | macros/luatex/generic/lutabulartools/README.md
+2022/11/30 | 103618 | macros/luatex/generic/lutabulartools.zip
2022/03/03 | 13827 | macros/luatex/generic/minim/EUPL-1.2-EN.txt
2022/03/03 | 13827 | macros/luatex/generic/minim-math/EUPL-1.2-EN.txt
2022/03/03 | 11866 | macros/luatex/generic/minim-math/minim-math.doc
@@ -284635,9 +284627,9 @@
2022/01/29 | 293384 | systems/texlive/tlnet/archive/bangorcsthesis.doc.r61770.tar.xz
2022/01/29 | 52348 | systems/texlive/tlnet/archive/bangorcsthesis.r61770.tar.xz
2022/01/29 | 55512 | systems/texlive/tlnet/archive/bangorcsthesis.source.r61770.tar.xz
-2019/02/28 | 185696 | systems/texlive/tlnet/archive/bangorexam.doc.r46626.tar.xz
-2019/02/28 | 49800 | systems/texlive/tlnet/archive/bangorexam.r46626.tar.xz
-2019/02/28 | 49668 | systems/texlive/tlnet/archive/bangorexam.source.r46626.tar.xz
+2022/11/30 | 292956 | systems/texlive/tlnet/archive/bangorexam.doc.r65140.tar.xz
+2022/11/30 | 46816 | systems/texlive/tlnet/archive/bangorexam.r65140.tar.xz
+2022/11/30 | 51340 | systems/texlive/tlnet/archive/bangorexam.source.r65140.tar.xz
2020/06/08 | 15640 | systems/texlive/tlnet/archive/bangtex.doc.r55475.tar.xz
2020/06/08 | 35304 | systems/texlive/tlnet/archive/bangtex.r55475.tar.xz
2019/02/28 | 128040 | systems/texlive/tlnet/archive/bankstatement.doc.r38857.tar.xz
@@ -286401,8 +286393,8 @@
2022/07/29 | 106972 | systems/texlive/tlnet/archive/csassignments.doc.r63992.tar.xz
2022/07/29 | 3884 | systems/texlive/tlnet/archive/csassignments.r63992.tar.xz
2022/07/29 | 8200 | systems/texlive/tlnet/archive/csassignments.source.r63992.tar.xz
-2020/03/20 | 274080 | systems/texlive/tlnet/archive/csbulletin.doc.r54433.tar.xz
-2020/03/20 | 12916 | systems/texlive/tlnet/archive/csbulletin.r54433.tar.xz
+2022/11/30 | 282672 | systems/texlive/tlnet/archive/csbulletin.doc.r65146.tar.xz
+2022/11/30 | 12032 | systems/texlive/tlnet/archive/csbulletin.r65146.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/cslatex.aarch64-linux.r46208.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/cslatex.amd64-freebsd.r16472.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/cslatex.amd64-netbsd.r30191.tar.xz
@@ -287000,9 +286992,9 @@
2019/02/28 | 3156 | systems/texlive/tlnet/archive/docmute.source.r25741.tar.xz
2019/02/28 | 1508 | systems/texlive/tlnet/archive/doc-pictex.doc.r24927.tar.xz
2019/02/28 | 468 | systems/texlive/tlnet/archive/doc-pictex.r24927.tar.xz
-2022/11/22 | 336488 | systems/texlive/tlnet/archive/docshots.doc.r65072.tar.xz
-2022/11/22 | 2740 | systems/texlive/tlnet/archive/docshots.r65072.tar.xz
-2022/11/22 | 7048 | systems/texlive/tlnet/archive/docshots.source.r65072.tar.xz
+2022/11/30 | 336648 | systems/texlive/tlnet/archive/docshots.doc.r65141.tar.xz
+2022/11/30 | 2764 | systems/texlive/tlnet/archive/docshots.r65141.tar.xz
+2022/11/30 | 7108 | systems/texlive/tlnet/archive/docshots.source.r65141.tar.xz
2021/12/31 | 260928 | systems/texlive/tlnet/archive/docsurvey.doc.r61447.tar.xz
2021/12/31 | 548 | systems/texlive/tlnet/archive/docsurvey.r61447.tar.xz
2019/02/28 | 603152 | systems/texlive/tlnet/archive/doctools.doc.r34474.tar.xz
@@ -287674,9 +287666,9 @@
2022/02/08 | 341332 | systems/texlive/tlnet/archive/envlab.doc.r61937.tar.xz
2022/02/08 | 5492 | systems/texlive/tlnet/archive/envlab.r61937.tar.xz
2022/02/08 | 14628 | systems/texlive/tlnet/archive/envlab.source.r61937.tar.xz
-2022/11/29 | 1391340 | systems/texlive/tlnet/archive/eolang.doc.r65131.tar.xz
-2022/11/29 | 6692 | systems/texlive/tlnet/archive/eolang.r65131.tar.xz
-2022/11/29 | 14708 | systems/texlive/tlnet/archive/eolang.source.r65131.tar.xz
+2022/11/30 | 1508756 | systems/texlive/tlnet/archive/eolang.doc.r65142.tar.xz
+2022/11/30 | 6772 | systems/texlive/tlnet/archive/eolang.r65142.tar.xz
+2022/11/30 | 14884 | systems/texlive/tlnet/archive/eolang.source.r65142.tar.xz
2019/02/28 | 266312 | systems/texlive/tlnet/archive/epigrafica.doc.r17210.tar.xz
2019/02/28 | 343668 | systems/texlive/tlnet/archive/epigrafica.r17210.tar.xz
2019/02/28 | 852 | systems/texlive/tlnet/archive/epigram.r20513.tar.xz
@@ -288889,9 +288881,9 @@
2020/11/05 | 110608 | systems/texlive/tlnet/archive/grant.doc.r56852.tar.xz
2020/11/05 | 5228 | systems/texlive/tlnet/archive/grant.r56852.tar.xz
2020/11/05 | 6008 | systems/texlive/tlnet/archive/grant.source.r56852.tar.xz
-2019/02/28 | 2113596 | systems/texlive/tlnet/archive/graph35.doc.r47522.tar.xz
-2019/02/28 | 23260 | systems/texlive/tlnet/archive/graph35.r47522.tar.xz
-2019/02/28 | 13016 | systems/texlive/tlnet/archive/graph35.source.r47522.tar.xz
+2022/11/30 | 2244124 | systems/texlive/tlnet/archive/graph35.doc.r65138.tar.xz
+2022/11/30 | 22316 | systems/texlive/tlnet/archive/graph35.r65138.tar.xz
+2022/11/30 | 13044 | systems/texlive/tlnet/archive/graph35.source.r65138.tar.xz
2019/02/28 | 274736 | systems/texlive/tlnet/archive/graphbox.doc.r46360.tar.xz
2019/02/28 | 1912 | systems/texlive/tlnet/archive/graphbox.r46360.tar.xz
2019/02/28 | 8612 | systems/texlive/tlnet/archive/graphbox.source.r46360.tar.xz
@@ -289923,13 +289915,13 @@
2022/02/27 | 43232 | systems/texlive/tlnet/archive/kpathsea.amd64-freebsd.r62206.tar.xz
2022/02/27 | 38772 | systems/texlive/tlnet/archive/kpathsea.amd64-netbsd.r62220.tar.xz
2022/04/21 | 32388 | systems/texlive/tlnet/archive/kpathsea.armhf-linux.r63092.tar.xz
-2022/11/29 | 1061952 | systems/texlive/tlnet/archive/kpathsea.doc.r65127.tar.xz
+2022/11/30 | 1061960 | systems/texlive/tlnet/archive/kpathsea.doc.r65137.tar.xz
2022/03/01 | 47900 | systems/texlive/tlnet/archive/kpathsea.i386-cygwin.r62282.tar.xz
2022/02/27 | 39432 | systems/texlive/tlnet/archive/kpathsea.i386-freebsd.r62206.tar.xz
2022/02/27 | 43092 | systems/texlive/tlnet/archive/kpathsea.i386-linux.r62210.tar.xz
2022/02/27 | 35528 | systems/texlive/tlnet/archive/kpathsea.i386-netbsd.r62220.tar.xz
2022/02/27 | 41304 | systems/texlive/tlnet/archive/kpathsea.i386-solaris.r62206.tar.xz
-2022/11/29 | 32468 | systems/texlive/tlnet/archive/kpathsea.r65127.tar.xz
+2022/11/30 | 32468 | systems/texlive/tlnet/archive/kpathsea.r65137.tar.xz
2022/02/28 | 83960 | systems/texlive/tlnet/archive/kpathsea.universal-darwin.r62258.tar.xz
2022/02/27 | 487520 | systems/texlive/tlnet/archive/kpathsea.win32.r62199.tar.xz
2022/03/01 | 45928 | systems/texlive/tlnet/archive/kpathsea.x86_64-cygwin.r62279.tar.xz
@@ -293075,9 +293067,9 @@
2020/07/28 | 2536 | systems/texlive/tlnet/archive/pinoutikz.r55966.tar.xz
2019/02/28 | 110192 | systems/texlive/tlnet/archive/pitex.doc.r24731.tar.xz
2019/02/28 | 22664 | systems/texlive/tlnet/archive/pitex.r24731.tar.xz
-2022/11/10 | 475532 | systems/texlive/tlnet/archive/piton.doc.r64979.tar.xz
-2022/11/10 | 8364 | systems/texlive/tlnet/archive/piton.r64979.tar.xz
-2022/11/10 | 24148 | systems/texlive/tlnet/archive/piton.source.r64979.tar.xz
+2022/11/30 | 508976 | systems/texlive/tlnet/archive/piton.doc.r65143.tar.xz
+2022/11/30 | 8988 | systems/texlive/tlnet/archive/piton.r65143.tar.xz
+2022/11/30 | 26444 | systems/texlive/tlnet/archive/piton.source.r65143.tar.xz
2019/02/28 | 317704 | systems/texlive/tlnet/archive/pittetd.doc.r15878.tar.xz
2019/02/28 | 8884 | systems/texlive/tlnet/archive/pittetd.r15878.tar.xz
2019/02/28 | 38588 | systems/texlive/tlnet/archive/pittetd.source.r15878.tar.xz
@@ -293258,9 +293250,9 @@
2021/08/26 | 30572 | systems/texlive/tlnet/archive/polski.source.r60322.tar.xz
2019/02/28 | 1392136 | systems/texlive/tlnet/archive/poltawski.doc.r20075.tar.xz
2019/02/28 | 6817756 | systems/texlive/tlnet/archive/poltawski.r20075.tar.xz
-2022/10/28 | 658144 | systems/texlive/tlnet/archive/polyglossia.doc.r64826.tar.xz
-2022/10/28 | 119992 | systems/texlive/tlnet/archive/polyglossia.r64826.tar.xz
-2022/10/28 | 159364 | systems/texlive/tlnet/archive/polyglossia.source.r64826.tar.xz
+2022/11/30 | 722564 | systems/texlive/tlnet/archive/polyglossia.doc.r65144.tar.xz
+2022/11/30 | 122116 | systems/texlive/tlnet/archive/polyglossia.r65144.tar.xz
+2022/11/30 | 162152 | systems/texlive/tlnet/archive/polyglossia.source.r65144.tar.xz
2019/02/28 | 400020 | systems/texlive/tlnet/archive/polynom.doc.r44832.tar.xz
2019/02/28 | 134132 | systems/texlive/tlnet/archive/polynomial.doc.r15878.tar.xz
2019/02/28 | 2404 | systems/texlive/tlnet/archive/polynomial.r15878.tar.xz
@@ -293649,8 +293641,8 @@
2022/11/22 | 21896 | systems/texlive/tlnet/archive/pstricks-add.r65067.tar.xz
2019/02/28 | 1133128 | systems/texlive/tlnet/archive/pstricks_calcnotes.doc.r34363.tar.xz
2019/02/28 | 512 | systems/texlive/tlnet/archive/pstricks_calcnotes.r34363.tar.xz
-2022/10/24 | 7596068 | systems/texlive/tlnet/archive/pstricks.doc.r64797.tar.xz
-2022/10/24 | 87896 | systems/texlive/tlnet/archive/pstricks.r64797.tar.xz
+2022/11/30 | 11085932 | systems/texlive/tlnet/archive/pstricks.doc.r65139.tar.xz
+2022/11/30 | 87852 | systems/texlive/tlnet/archive/pstricks.r65139.tar.xz
2019/02/28 | 123272 | systems/texlive/tlnet/archive/pstring.doc.r42857.tar.xz
2019/02/28 | 7384 | systems/texlive/tlnet/archive/pstring.r42857.tar.xz
2019/02/28 | 85380 | systems/texlive/tlnet/archive/pst-rputover.doc.r44724.tar.xz
@@ -295484,7 +295476,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2022/11/29 | 423348 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65126.tar.xz
+2022/11/30 | 423352 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65136.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
@@ -295508,7 +295500,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2022/11/29 | 113700 | systems/texlive/tlnet/archive/texlive-scripts.r65126.tar.xz
+2022/11/30 | 113716 | systems/texlive/tlnet/archive/texlive-scripts.r65136.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2022/11/29 | 36264 | systems/texlive/tlnet/archive/texlive-scripts.win32.r65128.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -297357,16 +297349,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
2022/07/17 | 124404 | systems/texlive/tlnet/install-tl
-2022/11/29 | 5834577 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/11/29 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/11/29 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/11/30 | 5834703 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/11/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/11/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/11/29 | 20435488 | systems/texlive/tlnet/install-tl-windows.exe
-2022/11/29 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/11/29 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/11/29 | 25518528 | systems/texlive/tlnet/install-tl.zip
-2022/11/29 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/11/29 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/11/30 | 20435174 | systems/texlive/tlnet/install-tl-windows.exe
+2022/11/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/11/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/11/30 | 25518557 | systems/texlive/tlnet/install-tl.zip
+2022/11/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/11/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2022/04/03 | 1229 | systems/texlive/tlnet/README.md
2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022
2022/02/28 | 7791 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -297376,7 +297368,7 @@
2022/02/28 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/10/09 | 49938 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/11/28 | 7354 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/11/29 | 7457 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/10/13 | 225403 | 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
@@ -297419,12 +297411,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/11/29 | 17877092 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/11/29 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/11/30 | 17877815 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/11/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/11/29 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/11/29 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/11/29 | 2430872 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/11/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/11/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/11/30 | 2430208 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/09/14 | 58922 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2022/10/04 | 42404 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -307516,7 +307508,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2022/11/30 | 186 | timestamp
+2022/12/01 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2022/02/28 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 0893018457..a6a1e3ae4d 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index b797c81550..585dfca656 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,17 +1,104 @@
+2022/11/30 | 997241 | macros/latex/contrib/mathfont.zip
+2022/11/30 | 968 | macros/latex/contrib/proflycee/doc/cap.csv
+2022/11/30 | 8988 | systems/texlive/tlnet/archive/piton.r65143.tar.xz
+2022/11/30 | 897584 | macros/latex/required/babel/base/babel.pdf
+2022/11/30 | 87852 | systems/texlive/tlnet/archive/pstricks.r65139.tar.xz
+2022/11/30 | 8540 | macros/latex/contrib/kdpcover/kdpcover-vol-1.pdf
+2022/11/30 | 84913 | macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf
+2022/11/30 | 848042 | macros/latex/required/babel/base/locale.zip
+2022/11/30 | 7869 | macros/latex/required/babel/base/babel.ins
+2022/11/30 | 749792 | macros/latex/required/babel/base/babel.dtx
+2022/11/30 | 744621 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+2022/11/30 | 736 | macros/latex/contrib/proflycee/doc/perroquet.csv
+2022/11/30 | 7256 | macros/latex/contrib/kdpcover/kdpcover-signature.pdf
+2022/11/30 | 722564 | systems/texlive/tlnet/archive/polyglossia.doc.r65144.tar.xz
+2022/11/30 | 7156 | macros/latex/contrib/kdpcover/kdpcover-vol-3.pdf
+2022/11/30 | 7108 | systems/texlive/tlnet/archive/docshots.source.r65141.tar.xz
+2022/11/30 | 6772 | systems/texlive/tlnet/archive/eolang.r65142.tar.xz
+2022/11/30 | 6723 | macros/latex/contrib/kdpcover/kdpcover-vol-4.pdf
+2022/11/30 | 6504 | macros/latex/contrib/kdpcover/kdpcover-vol-2.pdf
+2022/11/30 | 5834703 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/11/30 | 54246 | macros/latex/contrib/mathfont/mathfont_example_roboto.pdf
+2022/11/30 | 529 | macros/latex/contrib/proflycee/doc/testscript.py
+2022/11/30 | 5216 | macros/latex/contrib/kdpcover/yb-book-logo.pdf
+2022/11/30 | 51340 | systems/texlive/tlnet/archive/bangorexam.source.r65140.tar.xz
+2022/11/30 | 51264 | macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf
+2022/11/30 | 508976 | systems/texlive/tlnet/archive/piton.doc.r65143.tar.xz
+2022/11/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/11/30 | 47687 | macros/latex/contrib/kdpcover/cactus.pdf
+2022/11/30 | 46816 | systems/texlive/tlnet/archive/bangorexam.r65140.tar.xz
+2022/11/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/11/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/11/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/11/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/11/30 | 4536 | macros/latex/contrib/mathfont/README.txt
+2022/11/30 | 444437 | macros/latex/contrib/kdpcover.zip
+2022/11/30 | 423352 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65136.tar.xz
+2022/11/30 | 4017631 | biblio/ctan-bibdata.zip
+2022/11/30 | 38746 | macros/latex/contrib/mathfont/mathfont_example_typey.pdf
+2022/11/30 | 3729888 | graphics/circuit_macros.zip
+2022/11/30 | 371018 | macros/latex/contrib/mathfont/mathfont_code.pdf
+2022/11/30 | 368603 | macros/latex/contrib/kdpcover/kdpcover.pdf
+2022/11/30 | 3625505 | biblio/ctan-bibdata/ctan.pdf
+2022/11/30 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
+2022/11/30 | 336648 | systems/texlive/tlnet/archive/docshots.doc.r65141.tar.xz
+2022/11/30 | 32 | macros/latex/contrib/proflycee/doc/basique.csv
+2022/11/30 | 32468 | systems/texlive/tlnet/archive/kpathsea.r65137.tar.xz
+2022/11/30 | 312454 | macros/latex/contrib/mathfont/mathfont_code.dtx
+2022/11/30 | 3048340 | install/macros/latex/required/babel-base.tds.zip
+2022/11/30 | 292956 | systems/texlive/tlnet/archive/bangorexam.doc.r65140.tar.xz
+2022/11/30 | 282672 | systems/texlive/tlnet/archive/csbulletin.doc.r65146.tar.xz
+2022/11/30 | 2764 | systems/texlive/tlnet/archive/docshots.r65141.tar.xz
+2022/11/30 | 2746899 | biblio/ctan-bibdata/ctan.bib
+2022/11/30 | 26444 | systems/texlive/tlnet/archive/piton.source.r65143.tar.xz
+2022/11/30 | 2632 | macros/latex/contrib/kdpcover/kdpcover.ins
+2022/11/30 | 25518557 | systems/texlive/tlnet/install-tl.zip
+2022/11/30 | 2430208 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/11/30 | 2322 | macros/latex/required/babel/base/README.md
+2022/11/30 | 2244124 | systems/texlive/tlnet/archive/graph35.doc.r65138.tar.xz
+2022/11/30 | 22316 | systems/texlive/tlnet/archive/graph35.r65138.tar.xz
+2022/11/30 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
+2022/11/30 | 205253 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+2022/11/30 | 20435174 | systems/texlive/tlnet/install-tl-windows.exe
+2022/11/30 | 1943672 | macros/latex/required/babel/base.zip
+2022/11/30 | 17877815 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/11/30 | 1749 | macros/latex/contrib/kdpcover/README.md
+2022/11/30 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2022/11/30 | 1654117 | macros/latex/contrib/proflycee.zip
+2022/11/30 | 162152 | systems/texlive/tlnet/archive/polyglossia.source.r65144.tar.xz
+2022/11/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/11/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/11/30 | 15247 | graphics/circuit_macros/examples/dpv/quick.xsvg
+2022/11/30 | 15247 | graphics/circuit_macros/examples/dpv/quick.svg
+2022/11/30 | 1508756 | systems/texlive/tlnet/archive/eolang.doc.r65142.tar.xz
+2022/11/30 | 14884 | systems/texlive/tlnet/archive/eolang.source.r65142.tar.xz
+2022/11/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/11/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/11/30 | 13254 | macros/latex/contrib/kdpcover/kdpcover.dtx
+2022/11/30 | 131 | macros/latex/contrib/kdpcover/DEPENDS.txt
+2022/11/30 | 13044 | systems/texlive/tlnet/archive/graph35.source.r65138.tar.xz
+2022/11/30 | 122116 | systems/texlive/tlnet/archive/polyglossia.r65144.tar.xz
+2022/11/30 | 12032 | systems/texlive/tlnet/archive/csbulletin.r65146.tar.xz
+2022/11/30 | 118585 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
+2022/11/30 | 115029 | macros/latex/contrib/mathfont/mathfont_user_guide.pdf
+2022/11/30 | 113716 | systems/texlive/tlnet/archive/texlive-scripts.r65136.tar.xz
+2022/11/30 | 11085932 | systems/texlive/tlnet/archive/pstricks.doc.r65139.tar.xz
+2022/11/30 | 1083 | macros/latex/contrib/kdpcover/LICENSE.txt
+2022/11/30 | 1061960 | systems/texlive/tlnet/archive/kpathsea.doc.r65137.tar.xz
+2022/11/30 | 103618 | macros/luatex/generic/lutabulartools.zip
2022/11/29 | 974356 | systems/texlive/tlnet/archive/tex4ht.r65134.tar.xz
2022/11/29 | 87796 | systems/texlive/tlnet/archive/lutabulartools.doc.r65133.tar.xz
2022/11/29 | 874 | macros/latex/contrib/csbulletin/tex/csbulobalka.cls
2022/11/29 | 8304 | systems/texlive/tlnet/archive/jlreq.source.r65119.tar.xz
2022/11/29 | 7736 | systems/texlive/tlnet/archive/lutabulartools.r65133.tar.xz
2022/11/29 | 7494 | macros/latex/contrib/bangorexam/README.txt
+2022/11/29 | 7457 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/11/29 | 7273 | macros/latex/contrib/csbulletin/doc/csbulletin.tex
2022/11/29 | 704444 | systems/texlive/tlnet/archive/xduts.doc.r65123.tar.xz
2022/11/29 | 67440 | graphics/graph35/graph35.dtx
-2022/11/29 | 6692 | systems/texlive/tlnet/archive/eolang.r65131.tar.xz
2022/11/29 | 641 | macros/latex/contrib/eolang/eolang.bib
2022/11/29 | 613175 | macros/luatex/latex/piton.zip
2022/11/29 | 592 | graphics/graph35/CHANGELOG.md
-2022/11/29 | 5834577 | systems/texlive/tlnet/install-tl-unx.tar.gz
2022/11/29 | 569782 | macros/unicodetex/latex/polyglossia.zip
2022/11/29 | 545792 | systems/texlive/tlnet/archive/ffcode.doc.r65132.tar.xz
2022/11/29 | 535776 | systems/texlive/tlnet/archive/lt3rawobjects.doc.r65121.tar.xz
@@ -21,47 +108,34 @@
2022/11/29 | 52505 | macros/latex/contrib/eolang/eolang.dtx
2022/11/29 | 521152 | systems/texlive/tlnet/archive/xduts.r65123.tar.xz
2022/11/29 | 4980 | systems/texlive/tlnet/archive/ffcode.source.r65132.tar.xz
-2022/11/29 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/11/29 | 47687 | macros/latex/contrib/eolang/cactus.pdf
-2022/11/29 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/11/29 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/11/29 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/11/29 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2022/11/29 | 425068 | systems/texlive/tlnet/archive/pagecolor.doc.r65120.tar.xz
2022/11/29 | 424 | macros/latex/contrib/csbulletin/doc/example.bib
-2022/11/29 | 423348 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65126.tar.xz
2022/11/29 | 41465 | macros/luatex/latex/piton/piton-french.tex
-2022/11/29 | 4018128 | biblio/ctan-bibdata.zip
2022/11/29 | 38532 | systems/texlive/tlnet/archive/xduts.source.r65123.tar.xz
2022/11/29 | 36264 | systems/texlive/tlnet/archive/texlive-scripts.win32.r65128.tar.xz
-2022/11/29 | 3625400 | biblio/ctan-bibdata/ctan.pdf
2022/11/29 | 358539 | macros/latex/contrib/bangorexam.zip
2022/11/29 | 3528 | systems/texlive/tlnet/archive/lt3rawobjects.r65121.tar.xz
2022/11/29 | 352430 | macros/unicodetex/latex/polyglossia/polyglossia.pdf
2022/11/29 | 344148 | macros/latex/contrib/docshots.zip
2022/11/29 | 340901 | macros/latex/contrib/docshots/docshots.pdf
-2022/11/29 | 32468 | systems/texlive/tlnet/archive/kpathsea.r65127.tar.xz
2022/11/29 | 3121444 | graphics/graph35.zip
2022/11/29 | 3012 | systems/texlive/tlnet/archive/hitex.r65130.tar.xz
2022/11/29 | 298037 | macros/latex/contrib/bangorexam/bangorexam.pdf
2022/11/29 | 297760 | macros/latex/contrib/csbulletin.zip
2022/11/29 | 2816 | systems/texlive/tlnet/archive/pagecolor.r65120.tar.xz
2022/11/29 | 276573 | macros/latex/contrib/csbulletin/doc/csbulletin.pdf
-2022/11/29 | 2746899 | biblio/ctan-bibdata/ctan.bib
2022/11/29 | 263703 | macros/luatex/latex/piton/piton-french.pdf
2022/11/29 | 2634 | macros/latex/contrib/docshots/docshots.ins
2022/11/29 | 2628 | macros/latex/contrib/eolang/eolang.ins
2022/11/29 | 2623172 | systems/texlive/tlnet/archive/hitex.doc.r65130.tar.xz
2022/11/29 | 257106 | macros/latex/contrib/bangorexam/bangorexam.dtx
-2022/11/29 | 25518528 | systems/texlive/tlnet/install-tl.zip
-2022/11/29 | 2430872 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/11/29 | 231693 | graphics/graph35/sources.zip
2022/11/29 | 2294 | graphics/graph35/graph35.ins
2022/11/29 | 218501 | graphics/graph35/graph35-pixelart.sty
2022/11/29 | 2176 | systems/texlive/tlnet/archive/ffcode.r65132.tar.xz
2022/11/29 | 21764 | macros/latex/contrib/docshots/docshots.dtx
2022/11/29 | 21682 | graphics/graph35/graph35-en.tex
-2022/11/29 | 20435488 | systems/texlive/tlnet/install-tl-windows.exe
2022/11/29 | 1942 | macros/unicodetex/latex/polyglossia/README.md
2022/11/29 | 19110 | macros/latex/contrib/csbulletin/doc/LICENSE.txt
2022/11/29 | 19106 | graphics/graph35/LICENSE.txt
@@ -69,20 +143,15 @@
2022/11/29 | 1882060 | macros/latex/contrib/eolang.zip
2022/11/29 | 1869634 | macros/latex/contrib/eolang/eolang.pdf
2022/11/29 | 18029 | macros/latex/contrib/csbulletin/tex/csbulletin.cls
-2022/11/29 | 17877092 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/11/29 | 17469 | macros/luatex/generic/lutabulartools/lutabulartools.lua
2022/11/29 | 17445 | macros/latex/contrib/csbulletin/tex/csbulobalka.sty
-2022/11/29 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2022/11/29 | 17092 | macros/luatex/generic/lutabulartools/lutabulartools.tex
+2022/11/29 | 1623 | macros/luatex/generic/lutabulartools/README.md
2022/11/29 | 159 | macros/latex/contrib/eolang/DEPENDS.txt
-2022/11/29 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/11/29 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2022/11/29 | 1511129 | graphics/graph35/graph35-fr.pdf
-2022/11/29 | 14708 | systems/texlive/tlnet/archive/eolang.source.r65131.tar.xz
2022/11/29 | 1466917 | graphics/graph35/graph35-en.pdf
-2022/11/29 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
2022/11/29 | 1453 | macros/latex/contrib/docshots/README.md
-2022/11/29 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2022/11/29 | 144612 | systems/texlive/tlnet/archive/jlreq.r65119.tar.xz
-2022/11/29 | 1391340 | systems/texlive/tlnet/archive/eolang.doc.r65131.tar.xz
2022/11/29 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r65134.tar.xz
2022/11/29 | 1342 | macros/latex/contrib/eolang/README.md
2022/11/29 | 129 | macros/latex/contrib/docshots/DEPENDS.txt
@@ -92,50 +161,146 @@
2022/11/29 | 1229478 | install/macros/unicodetex/latex/polyglossia.tds.zip
2022/11/29 | 12167 | graphics/graph35/graph35-keys.sty
2022/11/29 | 118608 | macros/luatex/latex/piton/piton.dtx
+2022/11/29 | 116020 | macros/luatex/generic/lutabulartools/lutabulartools.pdf
2022/11/29 | 11472 | systems/texlive/tlnet/archive/pagecolor.source.r65120.tar.xz
-2022/11/29 | 113700 | systems/texlive/tlnet/archive/texlive-scripts.r65126.tar.xz
2022/11/29 | 1126 | macros/latex/contrib/csbulletin/tex/csbulv1.cls
2022/11/29 | 1096 | macros/latex/contrib/csbulletin/doc/example-slovak.tex
2022/11/29 | 10894788 | systems/texlive/tlnet/archive/profcollege.doc.r65122.tar.xz
2022/11/29 | 1087 | macros/latex/contrib/csbulletin/doc/example-czech.tex
2022/11/29 | 1083 | macros/latex/contrib/eolang/LICENSE.txt
2022/11/29 | 1083 | macros/latex/contrib/docshots/LICENSE.txt
-2022/11/29 | 1061952 | systems/texlive/tlnet/archive/kpathsea.doc.r65127.tar.xz
2022/11/29 | 1048 | macros/latex/contrib/csbulletin/doc/example-english.tex
+2022/11/29 | 10411 | macros/luatex/generic/lutabulartools/lutabulartools.sty
2022/11/29 | 1013494 | macros/unicodetex/latex/polyglossia/polyglossia.dtx
2022/11/29 | 10044 | systems/texlive/tlnet/archive/lt3rawobjects.source.r65121.tar.xz
+2022/11/28 | 999 | graphics/circuit_macros/examples/Fuses.m4
+2022/11/28 | 999 | graphics/circuit_macros/doc/FusesMan.m4
+2022/11/28 | 991 | graphics/circuit_macros/examples/Byte.m4
2022/11/28 | 990 | systems/win32/miktex/tm/packages/pr.ini
+2022/11/28 | 988 | graphics/circuit_macros/examples/dpv/VariableDPV.m4
+2022/11/28 | 9869 | graphics/circuit_macros/examples/tubedefs.m4
+2022/11/28 | 981 | graphics/circuit_macros/doc/EmarrowsMan.m4
+2022/11/28 | 977 | graphics/circuit_macros/examples/Emarrows.m4
+2022/11/28 | 973 | graphics/circuit_macros/examples/dpv/MoreTableDPV.m4
+2022/11/28 | 970 | graphics/circuit_macros/doc/Flowdiag.m4
+2022/11/28 | 966 | graphics/circuit_macros/examples/dpv/ex15DPV.m4
+2022/11/28 | 963 | graphics/circuit_macros/doc/MoreTableMan.m4
+2022/11/28 | 960 | graphics/circuit_macros/examples/MoreTable.m4
+2022/11/28 | 959 | graphics/circuit_macros/examples/dpv/FusesDPV.m4
+2022/11/28 | 953 | graphics/circuit_macros/examples/squiggle.m4
+2022/11/28 | 95140 | graphics/circuit_macros/examples/mf/cct.mf
+2022/11/28 | 947 | graphics/circuit_macros/examples/dpv/QuantumDPV.m4
+2022/11/28 | 944 | graphics/circuit_macros/doc/VariableMan.m4
+2022/11/28 | 937 | graphics/circuit_macros/examples/dpv/ByteDPV.m4
+2022/11/28 | 932 | graphics/circuit_macros/examples/Variable.m4
+2022/11/28 | 918 | graphics/circuit_macros/examples/Quantum.m4
+2022/11/28 | 917 | graphics/circuit_macros/examples/birds.m4
+2022/11/28 | 91701 | graphics/circuit_macros/libgen.m4
+2022/11/28 | 901 | graphics/circuit_macros/examples/dpv/quickDPV.m4
+2022/11/28 | 89812 | graphics/circuit_macros/examples/dpv/HeathkitDPV.svg
2022/11/28 | 88394 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/11/28 | 8833 | graphics/circuit_macros/examples/Smithchart.m4
2022/11/28 | 8832 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/11/28 | 8810 | graphics/circuit_macros/examples/dpv/SmithchartDPV.m4
2022/11/28 | 8766904 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
2022/11/28 | 8758 | systems/win32/miktex/tm/packages/jlreq__source.tar.lzma
+2022/11/28 | 865 | graphics/circuit_macros/examples/ex18.m4
+2022/11/28 | 855 | graphics/circuit_macros/examples/dpv/ex03DPV.m4
+2022/11/28 | 8517 | graphics/circuit_macros/examples/dpv/expDPV.m4
2022/11/28 | 8387 | support/TeX4ht/source/mktex4ht-cnf.tex
+2022/11/28 | 8372 | graphics/circuit_macros/examples/exp.m4
+2022/11/28 | 835 | graphics/circuit_macros/doc/Opto.m4
+2022/11/28 | 831 | graphics/circuit_macros/doc/GroundsMan.m4
2022/11/28 | 83018 | systems/win32/miktex/tm/packages/lutabulartools__doc.tar.lzma
+2022/11/28 | 828 | graphics/circuit_macros/examples/Grounds.m4
2022/11/28 | 827710 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2022/11/28 | 8176 | support/TeX4ht/source/tex4ht-mathjax.tex
2022/11/28 | 81293 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/11/28 | 810 | graphics/circuit_macros/examples/dpv/GroundsDPV.m4
2022/11/28 | 8041 | systems/win32/miktex/tm/packages/lutabulartools.tar.lzma
+2022/11/28 | 801 | graphics/circuit_macros/doc/Potentiometers.m4
+2022/11/28 | 8006 | graphics/circuit_macros/examples/dpv/controlDPV.m4
2022/11/28 | 79763 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/11/28 | 793 | graphics/circuit_macros/examples/dpv/CountingDPV.m4
+2022/11/28 | 783 | graphics/circuit_macros/doc/Oblique.m4
+2022/11/28 | 7778 | graphics/circuit_macros/examples/dpv/cscDPV.m4
2022/11/28 | 77656 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/11/28 | 774 | graphics/circuit_macros/examples/quick.m4
+2022/11/28 | 774 | graphics/circuit_macros/examples/dpv/quick.m4
+2022/11/28 | 774 | graphics/circuit_macros/doc/quick.m4
+2022/11/28 | 7734 | graphics/circuit_macros/examples/csc.m4
+2022/11/28 | 772 | graphics/circuit_macros/examples/Incleps.m4
+2022/11/28 | 771 | graphics/circuit_macros/examples/Attention.m4
+2022/11/28 | 7708 | graphics/circuit_macros/examples/shapes.m4
+2022/11/28 | 7670 | graphics/circuit_macros/examples/Chuck.m4
+2022/11/28 | 764 | graphics/circuit_macros/examples/mf/cct.tfm
2022/11/28 | 759354 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/11/28 | 758 | graphics/circuit_macros/examples/dpv/Np.m4
+2022/11/28 | 7546 | graphics/circuit_macros/examples/dpv/RectifiersDPV.m4
+2022/11/28 | 7546 | graphics/circuit_macros/examples/dpv/ByteDPV.svg
2022/11/28 | 751209 | systems/win32/miktex/tm/packages/next/files.csv.lzma
2022/11/28 | 751167 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/11/28 | 749 | graphics/circuit_macros/examples/mpost/README-mpost
+2022/11/28 | 7494 | graphics/circuit_macros/examples/dpv/shapesDPV.m4
+2022/11/28 | 747 | graphics/circuit_macros/examples/SampleFlow.m4
+2022/11/28 | 7464 | graphics/circuit_macros/doc/SLDsMan.m4
+2022/11/28 | 745 | graphics/circuit_macros/examples/dpv/DecoderDPV.m4
2022/11/28 | 74312 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/11/28 | 7418 | graphics/circuit_macros/examples/dpv/CsourceDPV.m4
+2022/11/28 | 7404 | graphics/circuit_macros/examples/dpv/NportDPV.svg
2022/11/28 | 73985 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/11/28 | 7354 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/11/28 | 73338 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
2022/11/28 | 72725 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/11/28 | 724 | graphics/circuit_macros/examples/Connectors.m4
+2022/11/28 | 7203 | graphics/circuit_macros/examples/dpv/lcctDPV.m4
+2022/11/28 | 715 | graphics/circuit_macros/examples/psfrag/examplespsfrag.tex
+2022/11/28 | 715 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.m4
+2022/11/28 | 7127 | graphics/circuit_macros/examples/lcct.m4
2022/11/28 | 71190 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/11/28 | 709 | graphics/circuit_macros/examples/Inclpdf.m4
+2022/11/28 | 706 | graphics/circuit_macros/psfrag.m4
2022/11/28 | 706029 | systems/win32/miktex/tm/packages/xduts__doc.tar.lzma
+2022/11/28 | 7034 | graphics/circuit_macros/examples/control.m4
2022/11/28 | 701978 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/11/28 | 7006 | graphics/circuit_macros/examples/Rectifiers.m4
2022/11/28 | 69224 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/11/28 | 685 | graphics/circuit_macros/examples/mpost/mptest
+2022/11/28 | 6854 | graphics/circuit_macros/examples/dpv/DiniDPV.m4
+2022/11/28 | 6854 | graphics/circuit_macros/examples/Dini.m4
+2022/11/28 | 682 | graphics/circuit_macros/examples/dpv/ujtDPV.m4
+2022/11/28 | 673 | graphics/circuit_macros/examples/ex03.m4
+2022/11/28 | 660 | graphics/circuit_macros/examples/ujt.m4
+2022/11/28 | 660 | graphics/circuit_macros/doc/ujtMan.m4
2022/11/28 | 65884 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/11/28 | 656 | graphics/circuit_macros/examples/Zcos.m4
+2022/11/28 | 655 | graphics/circuit_macros/examples/Decoder.m4
+2022/11/28 | 654 | graphics/circuit_macros/examples/diamond.m4
2022/11/28 | 6472 | systems/win32/miktex/tm/packages/lutabulartools__source.tar.lzma
+2022/11/28 | 645 | graphics/circuit_macros/examples/Floor.m4
2022/11/28 | 64342 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/11/28 | 6413 | graphics/circuit_macros/examples/dpv/CanLogicDPV.m4
+2022/11/28 | 63 | graphics/circuit_macros/examples/dpv/local_init.m4
+2022/11/28 | 6371 | graphics/circuit_macros/examples/CanLogic.m4
2022/11/28 | 636941 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/11/28 | 6285 | graphics/circuit_macros/examples/dpv/EscherDPV.m4
+2022/11/28 | 6282 | graphics/circuit_macros/examples/Escher.m4
2022/11/28 | 62755 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/11/28 | 6270 | graphics/circuit_macros/examples/ASME_Y14-5.m4
+2022/11/28 | 6216 | graphics/circuit_macros/examples/dpv/LgateDPV.m4
+2022/11/28 | 6215 | graphics/circuit_macros/examples/Plate.m4
2022/11/28 | 62049 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/11/28 | 6153 | graphics/circuit_macros/examples/dpv/quick.pic
+2022/11/28 | 6153 | graphics/circuit_macros/examples/dpv/PlateDPV.m4
+2022/11/28 | 614 | graphics/circuit_macros/doc/BigResistor.m4
+2022/11/28 | 609 | graphics/circuit_macros/examples/dpv/README_svg
+2022/11/28 | 609 | graphics/circuit_macros/examples/dpv/diamondDPV.m4
2022/11/28 | 601366 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/11/28 | 6003 | graphics/circuit_macros/examples/CSlight.m4
+2022/11/28 | 5992 | graphics/circuit_macros/examples/dpv/Makefile
+2022/11/28 | 5969 | graphics/circuit_macros/examples/xfig/xfiglib.m4
+2022/11/28 | 591 | graphics/circuit_macros/examples/test.m4
+2022/11/28 | 5892 | graphics/circuit_macros/examples/dpv/quick.tex
+2022/11/28 | 5889 | graphics/circuit_macros/examples/Csource.m4
2022/11/28 | 58790 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2022/11/28 | 57827 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
2022/11/28 | 57429 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
@@ -143,103 +308,472 @@
2022/11/28 | 573402 | macros/latex/contrib/ffcode.zip
2022/11/28 | 57205 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
2022/11/28 | 572055 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/11/28 | 56 | graphics/circuit_macros/doc/opampex.m4
+2022/11/28 | 563 | graphics/circuit_macros/examples/dpv/RotboxDPV.m4
2022/11/28 | 55802 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/11/28 | 555 | graphics/circuit_macros/examples/dpv/FontsDPV.m4
+2022/11/28 | 5546 | graphics/circuit_macros/examples/dpv/FontsDPV.svg
+2022/11/28 | 551 | graphics/circuit_macros/examples/Counting.m4
+2022/11/28 | 5486 | graphics/circuit_macros/examples/graysurf.m4
+2022/11/28 | 5485 | graphics/circuit_macros/examples/rose.m4
+2022/11/28 | 5485 | graphics/circuit_macros/examples/dpv/roseDPV.m4
+2022/11/28 | 5469 | graphics/circuit_macros/examples/dpv/graysurfDPV.m4
+2022/11/28 | 538 | graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
2022/11/28 | 538186 | systems/win32/miktex/tm/packages/lt3rawobjects__doc.tar.lzma
+2022/11/28 | 5365 | graphics/circuit_macros/examples/dpv/fetDPV.m4
+2022/11/28 | 535 | graphics/circuit_macros/doc/Tline.m4
+2022/11/28 | 533 | graphics/circuit_macros/examples/Rotbox.m4
+2022/11/28 | 532 | graphics/circuit_macros/examples/dpv/NLGDPV.m4
+2022/11/28 | 5315 | graphics/circuit_macros/doc/fetMan.m4
+2022/11/28 | 5311 | graphics/circuit_macros/examples/fet.m4
2022/11/28 | 529850 | systems/win32/miktex/tm/packages/jlreq__doc.tar.lzma
2022/11/28 | 529841 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
2022/11/28 | 52726 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
2022/11/28 | 52712 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2022/11/28 | 52518 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/11/28 | 5228 | graphics/circuit_macros/examples/dpv/GeometryDPV.m4
+2022/11/28 | 5171 | graphics/circuit_macros/examples/dpv/FlowDPV.m4
+2022/11/28 | 5132 | graphics/circuit_macros/examples/dpv/SwitchesDPV.m4
+2022/11/28 | 50 | graphics/circuit_macros/doc/bitr.m4
+2022/11/28 | 5093 | graphics/circuit_macros/examples/Geometry.m4
+2022/11/28 | 5013 | graphics/circuit_macros/examples/AntiqueClock.m4
+2022/11/28 | 499 | graphics/circuit_macros/examples/NLG.m4
+2022/11/28 | 499 | graphics/circuit_macros/doc/NLGMan.m4
+2022/11/28 | 497 | graphics/circuit_macros/examples/mpost/examplesmpost.tex
+2022/11/28 | 4969 | graphics/circuit_macros/doc/Makefile
+2022/11/28 | 494 | graphics/circuit_macros/examples/AmpTable.m4
+2022/11/28 | 494 | graphics/circuit_macros/doc/AmpTableMan.m4
+2022/11/28 | 489 | graphics/circuit_macros/examples/Koch.m4
2022/11/28 | 48944 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/11/28 | 4885 | graphics/circuit_macros/examples/EEP.m4
+2022/11/28 | 483 | graphics/circuit_macros/doc/eboxdims.m4
+2022/11/28 | 482 | graphics/circuit_macros/examples/clock.m4
2022/11/28 | 48153 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/11/28 | 4784 | graphics/circuit_macros/examples/psfrag/Makefile
+2022/11/28 | 4782 | graphics/circuit_macros/examples/Switches.m4
+2022/11/28 | 47825 | graphics/circuit_macros/liblog.m4
+2022/11/28 | 4780 | graphics/circuit_macros/doc/SwitchesMan.m4
+2022/11/28 | 4761 | graphics/circuit_macros/examples/dpv/sfgDPV.m4
+2022/11/28 | 4757 | graphics/circuit_macros/examples/dpv/EEPDPV.m4
+2022/11/28 | 4751 | graphics/circuit_macros/examples/Flow.m4
2022/11/28 | 472926 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/11/28 | 464 | graphics/circuit_macros/examples/tsttikz.tex
+2022/11/28 | 4638 | graphics/circuit_macros/examples/Ball.m4
+2022/11/28 | 462 | graphics/circuit_macros/Copying
+2022/11/28 | 4615 | graphics/circuit_macros/examples/mf/font.m4
+2022/11/28 | 460 | graphics/circuit_macros/examples/debug1.tex
2022/11/28 | 45776 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/11/28 | 45528 | graphics/circuit_macros/examples/dpv/CsourceDPV.svg
+2022/11/28 | 45323 | graphics/circuit_macros/examples/Incl.eps.gz
+2022/11/28 | 4501 | graphics/circuit_macros/examples/Lyap.m4
+2022/11/28 | 449 | graphics/circuit_macros/examples/Wheat.m4
+2022/11/28 | 449 | graphics/circuit_macros/doc/woodchips.m4
2022/11/28 | 44041 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2022/11/28 | 43852 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/11/28 | 4376 | graphics/circuit_macros/examples/dpv/slddiagsDPV.m4
2022/11/28 | 43720 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/11/28 | 4361 | graphics/circuit_macros/examples/mpost/Makefile
+2022/11/28 | 4343 | graphics/circuit_macros/doc/Circuit_macros.bib
+2022/11/28 | 4340 | graphics/circuit_macros/examples/dpv/AlogixDPV.m4
+2022/11/28 | 4313 | graphics/circuit_macros/examples/ex09.m4
+2022/11/28 | 4292 | graphics/circuit_macros/examples/dpv/InclepsDPV.m4
+2022/11/28 | 4292 | graphics/circuit_macros/examples/dpv/BtreeDPV.m4
2022/11/28 | 425564 | systems/win32/miktex/tm/packages/pagecolor__doc.tar.lzma
2022/11/28 | 42470 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/11/28 | 4226 | graphics/circuit_macros/examples/dpv/quickDPV.svg
+2022/11/28 | 421 | graphics/circuit_macros/doc/Sinus.m4
+2022/11/28 | 4205 | graphics/circuit_macros/examples/Alogix.m4
+2022/11/28 | 419 | graphics/circuit_macros/examples/Sixpole.m4
+2022/11/28 | 419 | graphics/circuit_macros/examples/dpv/SixpoleDPV.m4
+2022/11/28 | 418 | graphics/circuit_macros/examples/mpost/tstmpost.tex
+2022/11/28 | 417 | graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
2022/11/28 | 41770 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/11/28 | 416 | graphics/circuit_macros/examples/testpdf.tex
+2022/11/28 | 4119 | graphics/circuit_macros/examples/dpv/ex09DPV.m4
2022/11/28 | 40 | macros/latex/contrib/ffcode/DEPENDS.txt
+2022/11/28 | 409 | graphics/circuit_macros/examples/tst.tex
+2022/11/28 | 404 | graphics/circuit_macros/doc/Series.m4
+2022/11/28 | 4002 | graphics/circuit_macros/examples/Euro.m4
+2022/11/28 | 3991 | graphics/circuit_macros/examples/sfg.m4
2022/11/28 | 3963 | graphics/pstricks/base/Changes
+2022/11/28 | 3954 | graphics/circuit_macros/examples/PushPull.m4
2022/11/28 | 394754 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/11/28 | 38980 | systems/win32/miktex/tm/packages/xduts__source.tar.lzma
+2022/11/28 | 387 | graphics/circuit_macros/doc/lrarrows.m4
+2022/11/28 | 3825 | graphics/circuit_macros/examples/recycle.m4
+2022/11/28 | 3825 | graphics/circuit_macros/examples/dpv/recycleDPV.m4
+2022/11/28 | 380 | graphics/circuit_macros/examples/SQUID.m4
+2022/11/28 | 3794 | graphics/circuit_macros/INSTALL
+2022/11/28 | 3785 | graphics/circuit_macros/examples/Mixer.m4
+2022/11/28 | 3778 | graphics/circuit_macros/examples/dpv/PushPullDPV.m4
+2022/11/28 | 3756 | graphics/circuit_macros/examples/dpv/randomDPV.m4
+2022/11/28 | 3749 | graphics/circuit_macros/examples/Shaky.m4
2022/11/28 | 37404 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/11/28 | 3727 | graphics/circuit_macros/examples/random.m4
+2022/11/28 | 371 | graphics/circuit_macros/examples/psfrag/tstpsfrag.tex
+2022/11/28 | 370 | graphics/circuit_macros/examples/snake.m4
2022/11/28 | 37098 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/11/28 | 369 | graphics/circuit_macros/doc/sampleIC.m4
2022/11/28 | 3676 | systems/win32/miktex/tm/packages/lt3rawobjects.tar.lzma
+2022/11/28 | 365 | graphics/circuit_macros/examples/rotellipse.m4
+2022/11/28 | 3646 | graphics/circuit_macros/examples/dpv/ContactDPV.m4
+2022/11/28 | 3631 | graphics/circuit_macros/examples/dpv/wormDPV.m4
+2022/11/28 | 3567 | graphics/circuit_macros/examples/dpv/ButtonsDPV.m4
+2022/11/28 | 353 | graphics/circuit_macros/examples/windows.m4
+2022/11/28 | 353 | graphics/circuit_macros/examples/dpv/windows.m4
2022/11/28 | 35352 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
2022/11/28 | 352499 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/11/28 | 3522 | graphics/circuit_macros/examples/dpv/ex12DPV.m4
2022/11/28 | 35206 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/11/28 | 3510 | graphics/circuit_macros/examples/ex05.m4
+2022/11/28 | 3509 | graphics/circuit_macros/examples/Buttons.m4
+2022/11/28 | 3489 | graphics/circuit_macros/examples/dpv/MixerDPV.m4
+2022/11/28 | 3473 | graphics/circuit_macros/examples/dpv/MCDPV.m4
+2022/11/28 | 3464 | graphics/circuit_macros/examples/Contact.m4
+2022/11/28 | 3420 | graphics/circuit_macros/examples/README-examples
+2022/11/28 | 34203 | graphics/circuit_macros/examples/dpv/controlDPV.svg
+2022/11/28 | 3390 | graphics/circuit_macros/examples/dpv/ex05DPV.m4
2022/11/28 | 33900 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/11/28 | 337 | graphics/circuit_macros/examples/xfig/Makefile
+2022/11/28 | 3346 | graphics/circuit_macros/examples/Windings.m4
+2022/11/28 | 3346 | graphics/circuit_macros/doc/WindingsMan.m4
+2022/11/28 | 3339 | graphics/circuit_macros/examples/ex12.m4
+2022/11/28 | 3326 | graphics/circuit_macros/doc/ContactMan.m4
+2022/11/28 | 3321 | graphics/circuit_macros/examples/thyristor.m4
+2022/11/28 | 3321 | graphics/circuit_macros/doc/thyristorMan.m4
+2022/11/28 | 3310 | graphics/circuit_macros/examples/dpv/thyristorDPV.m4
+2022/11/28 | 33087 | graphics/circuit_macros/examples/dpv/FlowDPV.svg
+2022/11/28 | 32 | graphics/circuit_macros/examples/Incl.eps.bb
+2022/11/28 | 329 | graphics/circuit_macros/doc/FF.m4
+2022/11/28 | 32750 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.svg
+2022/11/28 | 32742 | graphics/circuit_macros/libSLD.m4
2022/11/28 | 327377 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2022/11/28 | 326665 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
2022/11/28 | 32317 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/11/28 | 3198 | graphics/circuit_macros/examples/Btree.m4
+2022/11/28 | 317 | graphics/circuit_macros/examples/psfrag/README-psfrag.txt
+2022/11/28 | 3175 | graphics/circuit_macros/examples/Blogix.m4
2022/11/28 | 31716 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
2022/11/28 | 31600 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/11/28 | 3091 | graphics/circuit_macros/examples/dpv/TtreeDPV.m4
2022/11/28 | 3061 | systems/win32/miktex/tm/packages/pagecolor.tar.lzma
2022/11/28 | 30523 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2022/11/28 | 304869 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2022/11/28 | 304867 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/11/28 | 30451 | graphics/circuit_macros/examples/dpv/LoglogDPV.m4
+2022/11/28 | 3019 | graphics/circuit_macros/doc/Circuit_macros.tex
+2022/11/28 | 2994 | graphics/circuit_macros/examples/dpv/WindingsDPV.m4
+2022/11/28 | 2989 | graphics/circuit_macros/examples/dpv/AutoencoderDPV.m4
+2022/11/28 | 2986 | graphics/circuit_macros/examples/MC.m4
+2022/11/28 | 29772 | graphics/circuit_macros/examples/Incl.pdf
2022/11/28 | 296347 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/11/28 | 295 | graphics/circuit_macros/examples/ShadeSector.m4
+2022/11/28 | 2912 | graphics/circuit_macros/doc/Workflow.m4
2022/11/28 | 28774 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
2022/11/28 | 287141 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/11/28 | 2846 | graphics/circuit_macros/examples/Metamodel.m4
+2022/11/28 | 2834 | graphics/circuit_macros/postscript.m4
+2022/11/28 | 28340 | graphics/circuit_macros/examples/dpv/EEPDPV.svg
2022/11/28 | 2831701 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/11/28 | 2801 | graphics/circuit_macros/examples/worm.m4
+2022/11/28 | 2792 | graphics/circuit_macros/examples/OpAmpFilter.m4
2022/11/28 | 27627 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/11/28 | 2720 | graphics/circuit_macros/examples/dpv/AudioDPV.m4
2022/11/28 | 271331 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/11/28 | 27105 | graphics/circuit_macros/examples/Consumption.m4
+2022/11/28 | 26 | graphics/circuit_macros/doc/DCsymbol.m4
+2022/11/28 | 26 | graphics/circuit_macros/doc/ACsymbol.m4
+2022/11/28 | 269 | graphics/circuit_macros/doc/Loop.m4
+2022/11/28 | 2685 | graphics/circuit_macros/examples/dpv/ex11DPV.m4
+2022/11/28 | 2634 | graphics/circuit_macros/examples/Audio.m4
+2022/11/28 | 2634 | graphics/circuit_macros/doc/AudioMan.m4
+2022/11/28 | 2629 | graphics/circuit_macros/examples/dpv/ex01DPV.m4
2022/11/28 | 2628 | macros/latex/contrib/ffcode/ffcode.ins
+2022/11/28 | 2571 | graphics/circuit_macros/examples/IntersectingPlanes.m4
+2022/11/28 | 2562 | graphics/circuit_macros/examples/Crow.m4
+2022/11/28 | 2559 | graphics/circuit_macros/examples/dpv/ex08DPV.m4
+2022/11/28 | 2556 | graphics/circuit_macros/examples/ex08.m4
+2022/11/28 | 2551 | graphics/circuit_macros/examples/dpv/OptoisoDPV.m4
+2022/11/28 | 2542 | graphics/circuit_macros/examples/brace.m4
+2022/11/28 | 2528 | graphics/circuit_macros/examples/dpv/AdderDPV.m4
+2022/11/28 | 2525 | graphics/circuit_macros/examples/dpv/CrowDPV.m4
2022/11/28 | 25214 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/11/28 | 2517 | graphics/circuit_macros/examples/Autoencoder.m4
+2022/11/28 | 24811 | graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
+2022/11/28 | 24807 | graphics/circuit_macros/examples/dpv/examplesDPV.htmx
2022/11/28 | 247511 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
2022/11/28 | 245747 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/11/28 | 2443 | graphics/circuit_macros/examples/dpv/ex00DPV.m4
+2022/11/28 | 2442 | graphics/circuit_macros/examples/Optoiso.m4
+2022/11/28 | 24138 | graphics/circuit_macros/examples/dpv/UNODPV.m4
+2022/11/28 | 2412 | graphics/circuit_macros/examples/ex00.m4
2022/11/28 | 24115 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
2022/11/28 | 24060 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/11/28 | 2402 | graphics/circuit_macros/examples/Adder.m4
+2022/11/28 | 2389 | graphics/circuit_macros/doc/Dac.m4
+2022/11/28 | 23650 | graphics/circuit_macros/dpictools.pic
+2022/11/28 | 2362 | graphics/circuit_macros/examples/Jack.m4
+2022/11/28 | 2362 | graphics/circuit_macros/doc/JackMan.m4
+2022/11/28 | 2361 | graphics/circuit_macros/examples/ex11.m4
+2022/11/28 | 23616 | graphics/circuit_macros/examples/UNO.m4
+2022/11/28 | 233 | graphics/circuit_macros/examples/Ccurve.m4
+2022/11/28 | 232449 | macros/latex/contrib/mathfont/mathfont_symbol_list.pdf
+2022/11/28 | 2304 | graphics/circuit_macros/examples/Loglog.m4
+2022/11/28 | 2294 | graphics/circuit_macros/examples/ex01.m4
+2022/11/28 | 2225 | graphics/circuit_macros/doc/SourcesMan.m4
+2022/11/28 | 221 | graphics/circuit_macros/examples/rotate.tex
+2022/11/28 | 219 | graphics/circuit_macros/examples/tst1.tex
+2022/11/28 | 217 | graphics/circuit_macros/doc/stringdims.m4
+2022/11/28 | 2179 | graphics/circuit_macros/doc/ConnMan.m4
+2022/11/28 | 2178 | graphics/circuit_macros/examples/Conn.m4
+2022/11/28 | 2171 | graphics/circuit_macros/examples/dpv/I2LDPV.m4
+2022/11/28 | 2165 | graphics/circuit_macros/examples/Sources.m4
+2022/11/28 | 21398 | graphics/circuit_macros/examples/xfig/xfiglib.fig
+2022/11/28 | 21384 | graphics/circuit_macros/examples/dpv/Incl.jpg
2022/11/28 | 213654 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
2022/11/28 | 2136102 | systems/win32/miktex/tm/packages/profcollege__source.tar.lzma
+2022/11/28 | 2119 | graphics/circuit_macros/examples/Logic.m4
+2022/11/28 | 2119 | graphics/circuit_macros/doc/LogicMan.m4
+2022/11/28 | 2111 | graphics/circuit_macros/examples/dpv/ConnDPV.m4
2022/11/28 | 210295 | support/TeX4ht/source/ChangeLog
+2022/11/28 | 2099 | graphics/circuit_macros/pstricks.m4
2022/11/28 | 209043 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/11/28 | 2086 | graphics/circuit_macros/examples/relaycoil.m4
+2022/11/28 | 2086 | graphics/circuit_macros/examples/Eye.m4
+2022/11/28 | 2086 | graphics/circuit_macros/doc/relaycoilMan.m4
+2022/11/28 | 2085 | graphics/circuit_macros/pgf.m4
+2022/11/28 | 2069 | graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
+2022/11/28 | 2068 | graphics/circuit_macros/examples/I2L.m4
+2022/11/28 | 2051 | graphics/circuit_macros/examples/dpv/JackDPV.m4
2022/11/28 | 203573 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/11/28 | 2027 | graphics/circuit_macros/examples/dpv/pwrsupplyDPV.m4
+2022/11/28 | 2018 | graphics/circuit_macros/examples/dpv/ex06DPV.m4
2022/11/28 | 2016752 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/11/28 | 2014 | graphics/circuit_macros/examples/pwrsupply.m4
+2022/11/28 | 2013 | graphics/circuit_macros/doc/HybridPi.m4
+2022/11/28 | 2000 | graphics/circuit_macros/examples/ex21.m4
+2022/11/28 | 1997 | graphics/circuit_macros/examples/Pconn.m4
+2022/11/28 | 1996 | graphics/circuit_macros/examples/dpv/FourbarDPV.m4
+2022/11/28 | 1995 | graphics/circuit_macros/doc/Corners.m4
+2022/11/28 | 1985 | graphics/circuit_macros/examples/dpv/XORDPV.m4
+2022/11/28 | 1982 | graphics/circuit_macros/doc/PconnMan.m4
+2022/11/28 | 1975 | graphics/circuit_macros/doc/FlipFlop.m4
+2022/11/28 | 1966 | graphics/circuit_macros/examples/Drive.m4
+2022/11/28 | 1966 | graphics/circuit_macros/examples/dpv/DriveDPV.m4
2022/11/28 | 196552 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/11/28 | 1962 | graphics/circuit_macros/examples/Autologix.m4
+2022/11/28 | 1959 | graphics/circuit_macros/examples/debug2.m4
+2022/11/28 | 1955 | graphics/circuit_macros/examples/dpv/ABlogixDPV.m4
+2022/11/28 | 1953 | graphics/circuit_macros/examples/dpv/MotorControlDPV.m4
+2022/11/28 | 1953 | graphics/circuit_macros/doc/Buffer.m4
+2022/11/28 | 19397 | graphics/circuit_macros/examples/files.tex
+2022/11/28 | 1931 | graphics/circuit_macros/examples/dpv/LogicDPV.m4
+2022/11/28 | 1922 | graphics/circuit_macros/examples/MotorControl.m4
+2022/11/28 | 19176 | graphics/circuit_macros/Licence.txt
+2022/11/28 | 1916 | graphics/circuit_macros/examples/venus.m4
+2022/11/28 | 1907 | graphics/circuit_macros/examples/dpv/SourcesDPV.m4
+2022/11/28 | 1906 | graphics/circuit_macros/examples/SPM.m4
+2022/11/28 | 1897548 | graphics/circuit_macros/examples/examples.pdf
+2022/11/28 | 1894 | graphics/circuit_macros/examples/dpv/ArrowFnDPV.m4
+2022/11/28 | 1893 | graphics/circuit_macros/examples/dpv/ex16DPV.m4
+2022/11/28 | 1891 | graphics/circuit_macros/examples/dpv/ex04DPV.m4
+2022/11/28 | 1882 | graphics/circuit_macros/examples/dpv/ex21DPV.m4
+2022/11/28 | 1879 | graphics/circuit_macros/examples/Cruller.m4
+2022/11/28 | 1875 | graphics/circuit_macros/examples/dpv/GrayCodeDPV.m4
+2022/11/28 | 1874 | graphics/circuit_macros/examples/dpv/CrullerDPV.m4
+2022/11/28 | 1865 | graphics/circuit_macros/examples/ex16.m4
+2022/11/28 | 1860 | graphics/circuit_macros/doc/bi_trans.m4
+2022/11/28 | 1857 | graphics/circuit_macros/doc/Composite.m4
2022/11/28 | 1854027 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/11/28 | 1852 | graphics/circuit_macros/examples/Orbits.m4
2022/11/28 | 1852684 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2022/11/28 | 18482 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/11/28 | 18477 | graphics/circuit_macros/examples/dpv/examplesDPVs.html
+2022/11/28 | 1837 | graphics/circuit_macros/examples/dpv/SchottkyDPV.m4
2022/11/28 | 18365 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/11/28 | 1823 | graphics/circuit_macros/examples/XOR.m4
+2022/11/28 | 1818 | graphics/circuit_macros/examples/GrayCode.m4
2022/11/28 | 181587 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/11/28 | 1812 | graphics/circuit_macros/examples/dpv/BipDPV.m4
2022/11/28 | 18018 | CTAN.sites
+2022/11/28 | 179685 | graphics/circuit_macros/libcct.m4
+2022/11/28 | 1795 | graphics/circuit_macros/examples/Stator.m4
+2022/11/28 | 1790 | graphics/circuit_macros/doc/DiodesMan.m4
+2022/11/28 | 1787 | graphics/circuit_macros/examples/Diodes.m4
+2022/11/28 | 1786 | graphics/circuit_macros/examples/ArrowFn.m4
+2022/11/28 | 1781 | graphics/circuit_macros/examples/dpv/PconnDPV.m4
+2022/11/28 | 1778 | graphics/circuit_macros/examples/Schottky.m4
+2022/11/28 | 1766 | graphics/circuit_macros/examples/examples.tex
2022/11/28 | 175367 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/11/28 | 1737 | graphics/circuit_macros/examples/dpv/ContactsDPV.m4
2022/11/28 | 173351 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/11/28 | 1730 | graphics/circuit_macros/examples/ABlogix.m4
+2022/11/28 | 1700 | graphics/circuit_macros/examples/ex06.m4
+2022/11/28 | 1700 | graphics/circuit_macros/examples/dpv/EyeDPV.m4
+2022/11/28 | 1699 | graphics/circuit_macros/examples/dpv/ex10DPV.m4
+2022/11/28 | 1668 | graphics/circuit_macros/examples/IC10107.m4
+2022/11/28 | 1668 | graphics/circuit_macros/examples/dpv/Banking.m4
+2022/11/28 | 165 | graphics/circuit_macros/doc/tranbody.m4
+2022/11/28 | 1654 | graphics/circuit_macros/examples/ex04.m4
+2022/11/28 | 1647 | graphics/circuit_macros/examples/dpv/DiodesDPV.m4
+2022/11/28 | 1640 | graphics/circuit_macros/mpost.m4
+2022/11/28 | 1639 | graphics/circuit_macros/Makefile
+2022/11/28 | 1630 | graphics/circuit_macros/examples/dpv/TTLnandDPV.m4
2022/11/28 | 1627447 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/11/28 | 1627199 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/11/28 | 1626 | graphics/circuit_macros/examples/dpv/ArrestersDPV.m4
+2022/11/28 | 1624 | graphics/circuit_macros/doc/ParSeries.m4
+2022/11/28 | 1619 | graphics/circuit_macros/examples/Bip.m4
+2022/11/28 | 1619 | graphics/circuit_macros/doc/BipMan.m4
+2022/11/28 | 1618 | graphics/circuit_macros/doc/ArrestersMan.m4
+2022/11/28 | 1615 | graphics/circuit_macros/examples/Arresters.m4
+2022/11/28 | 1612 | graphics/circuit_macros/examples/dpv/TimerDPV.m4
+2022/11/28 | 1585 | graphics/circuit_macros/examples/Contacts.m4
+2022/11/28 | 1585 | graphics/circuit_macros/doc/ContactsMan.m4
+2022/11/28 | 15834 | graphics/circuit_macros/README
+2022/11/28 | 1575 | graphics/circuit_macros/doc/mplex.m4
+2022/11/28 | 1559 | graphics/circuit_macros/examples/dpv/XformDPV.m4
+2022/11/28 | 1558 | graphics/circuit_macros/examples/TTLnand.m4
2022/11/28 | 155839 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/11/28 | 15560 | graphics/circuit_macros/examples/dpv/ex01DPV.svg
+2022/11/28 | 1546 | graphics/circuit_macros/examples/dpv/Xtest.m4
+2022/11/28 | 154219 | graphics/circuit_macros/doc/body.tex
+2022/11/28 | 15366 | graphics/circuit_macros/examples/dpv/ConnectorsDPV.pic
+2022/11/28 | 1529 | graphics/circuit_macros/examples/mf/Makefile
+2022/11/28 | 1526 | graphics/circuit_macros/examples/Xform.m4
+2022/11/28 | 1526 | graphics/circuit_macros/doc/XformMan.m4
+2022/11/28 | 1525 | graphics/circuit_macros/examples/rotatetext.m4
2022/11/28 | 1515549 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/11/28 | 150 | graphics/circuit_macros/doc/Thermal.m4
+2022/11/28 | 1492 | graphics/circuit_macros/examples/ex10.m4
+2022/11/28 | 1485 | graphics/circuit_macros/examples/Demultiplexer.m4
+2022/11/28 | 1485 | graphics/circuit_macros/doc/DemultiplexerMan.m4
+2022/11/28 | 1463 | graphics/circuit_macros/doc/Taps.m4
+2022/11/28 | 1458 | graphics/circuit_macros/examples/header.tex
2022/11/28 | 1458667 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/11/28 | 1444 | graphics/circuit_macros/examples/dpv/ThreeDPV.m4
2022/11/28 | 14448 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/11/28 | 1443 | graphics/circuit_macros/examples/Resolver.m4
+2022/11/28 | 1443 | graphics/circuit_macros/examples/Inductors.m4
+2022/11/28 | 1433 | graphics/circuit_macros/examples/Opamp.m4
+2022/11/28 | 1433 | graphics/circuit_macros/doc/OpampMan.m4
+2022/11/28 | 1431 | graphics/circuit_macros/examples/dpv/RelayDPV.m4
+2022/11/28 | 14279 | graphics/circuit_macros/darrow.m4
2022/11/28 | 142140 | systems/win32/miktex/tm/packages/jlreq.tar.lzma
+2022/11/28 | 1419 | graphics/circuit_macros/examples/person.m4
2022/11/28 | 140829 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/11/28 | 1406 | graphics/circuit_macros/examples/ShiftR.m4
+2022/11/28 | 1406 | graphics/circuit_macros/doc/ShiftRMan.m4
+2022/11/28 | 1403 | graphics/circuit_macros/examples/dpv/MultiplexerDPV.m4
+2022/11/28 | 1400 | graphics/circuit_macros/examples/Multiplexer.m4
+2022/11/28 | 1400 | graphics/circuit_macros/doc/MultiplexerMan.m4
+2022/11/28 | 13 | graphics/circuit_macros/doc/Version.tex
+2022/11/28 | 13829 | graphics/circuit_macros/CHANGES
+2022/11/28 | 137 | graphics/circuit_macros/doc/opampexbody.m4
2022/11/28 | 1376 | macros/latex/contrib/ffcode/README.md
+2022/11/28 | 1373 | graphics/circuit_macros/examples/dpv/DemultiplexerDPV.m4
2022/11/28 | 136094 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/11/28 | 13505 | graphics/circuit_macros/examples/dpv/tstDPV.htmx
+2022/11/28 | 1343 | graphics/circuit_macros/examples/dpv/InductorsDPV.m4
+2022/11/28 | 1342 | graphics/circuit_macros/doc/InductorsMan.m4
+2022/11/28 | 13420 | graphics/circuit_macros/examples/Heathkit.m4
2022/11/28 | 1337585 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/11/28 | 1331 | graphics/circuit_macros/examples/Sierpinski.m4
+2022/11/28 | 1331 | graphics/circuit_macros/examples/dpv/SierpinskiDPV.m4
+2022/11/28 | 1329 | graphics/circuit_macros/doc/currents.m4
+2022/11/28 | 13294 | graphics/circuit_macros/examples/Tubediags.m4
+2022/11/28 | 131 | graphics/circuit_macros/doc/Axes.m4
+2022/11/28 | 1313 | graphics/circuit_macros/examples/dpv/ShiftRDPV.m4
+2022/11/28 | 130 | graphics/circuit_macros/doc/bitrbody.m4
+2022/11/28 | 1292 | graphics/circuit_macros/doc/ConfigC.m4
+2022/11/28 | 1287 | graphics/circuit_macros/examples/Three.m4
+2022/11/28 | 12765 | graphics/circuit_macros/lib3D.m4
+2022/11/28 | 12711 | graphics/circuit_macros/examples/dpv/HeathkitDPV.m4
2022/11/28 | 1268427 | systems/win32/miktex/tm/packages/profcollege.tar.lzma
+2022/11/28 | 1265 | graphics/circuit_macros/examples/dpv/HeadersDPV.m4
+2022/11/28 | 1259 | graphics/circuit_macros/examples/Relay.m4
+2022/11/28 | 1259 | graphics/circuit_macros/doc/RelayMan.m4
+2022/11/28 | 1258 | graphics/circuit_macros/doc/ConfigB.m4
2022/11/28 | 125396 | graphics/pstricks/base/generic/pstricks.tex
+2022/11/28 | 12478 | graphics/circuit_macros/examples/dpv/TubediagsDPV.m4
2022/11/28 | 124711769 | systems/win32/TLW64/tl-win64.zip
+2022/11/28 | 1238 | graphics/circuit_macros/examples/dpv/NportDPV.m4
+2022/11/28 | 1230 | graphics/circuit_macros/examples/Antennas.m4
+2022/11/28 | 1230 | graphics/circuit_macros/doc/AntennasMan.m4
+2022/11/28 | 1229 | graphics/circuit_macros/doc/fbfilter.m4
+2022/11/28 | 1222 | graphics/circuit_macros/examples/Chips.m4
2022/11/28 | 12188 | macros/latex/contrib/ffcode/ffcode.dtx
+2022/11/28 | 1214 | graphics/circuit_macros/examples/dpv/ChipsDPV.m4
2022/11/28 | 121083 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/11/28 | 1204 | graphics/circuit_macros/examples/dpv/ex17DPV.m4
+2022/11/28 | 1201 | graphics/circuit_macros/examples/Capacitors.m4
+2022/11/28 | 11995 | graphics/circuit_macros/svg.m4
2022/11/28 | 11948 | systems/win32/miktex/tm/packages/pagecolor__source.tar.lzma
+2022/11/28 | 1188 | graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
+2022/11/28 | 1185 | graphics/circuit_macros/boxdims.sty
+2022/11/28 | 118060 | graphics/circuit_macros/examples/keyboard.pdf
+2022/11/28 | 1174 | graphics/circuit_macros/examples/PPA.m4
2022/11/28 | 1167185 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2022/11/28 | 11646312 | graphics/pstricks/base.zip
+2022/11/28 | 1160 | graphics/circuit_macros/examples/dpv/CapacitorsDPV.m4
+2022/11/28 | 11601 | graphics/circuit_macros/examples/dpv/icsDPV.m4
+2022/11/28 | 1157 | graphics/circuit_macros/examples/dpv/NPDTDPV.m4
2022/11/28 | 115779 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/11/28 | 1151 | graphics/circuit_macros/doc/Darlington.m4
2022/11/28 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/11/28 | 1149 | graphics/circuit_macros/doc/ResistorsMan.m4
+2022/11/28 | 1147 | graphics/circuit_macros/examples/Resistors.m4
+2022/11/28 | 11440 | graphics/circuit_macros/examples/ics.m4
2022/11/28 | 1143935 | support/TeX4ht/source/tex4ht-4ht.tex
+2022/11/28 | 113485 | graphics/circuit_macros/examples/dpv/paletteDPV.svg
+2022/11/28 | 1132 | graphics/circuit_macros/examples/Headers.m4
+2022/11/28 | 1132 | graphics/circuit_macros/doc/HeadersMan.m4
2022/11/28 | 113236 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/11/28 | 1128 | graphics/circuit_macros/examples/NPDT.m4
+2022/11/28 | 1128 | graphics/circuit_macros/doc/NPDTMan.m4
+2022/11/28 | 1126 | graphics/circuit_macros/examples/ex17.m4
+2022/11/28 | 11255 | graphics/circuit_macros/examples/FlowchartDefs.m4
+2022/11/28 | 1121 | graphics/circuit_macros/doc/ConfigA.m4
+2022/11/28 | 11170 | graphics/circuit_macros/examples/Makefile
+2022/11/28 | 1114 | graphics/circuit_macros/mfpic.m4
+2022/11/28 | 1100 | graphics/circuit_macros/examples/ex02.m4
2022/11/28 | 109783 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/11/28 | 1093 | graphics/circuit_macros/examples/dpv/ex02DPV.m4
2022/11/28 | 109305 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/11/28 | 1090 | graphics/circuit_macros/examples/dpv/AntennasDPV.m4
+2022/11/28 | 10871 | graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
2022/11/28 | 1083 | macros/latex/contrib/ffcode/LICENSE.txt
+2022/11/28 | 10836 | graphics/circuit_macros/examples/EVplugs.m4
+2022/11/28 | 1076 | graphics/circuit_macros/examples/mf/mftest
+2022/11/28 | 1075 | graphics/circuit_macros/examples/bistable.m4
+2022/11/28 | 1074 | graphics/circuit_macros/doc/bistableMan.m4
+2022/11/28 | 1071 | graphics/circuit_macros/examples/dpv/EmarrowsDPV.m4
+2022/11/28 | 10699 | graphics/circuit_macros/examples/keyboard.m4
+2022/11/28 | 10699 | graphics/circuit_macros/examples/dpv/keyboardDPV.m4
+2022/11/28 | 1065 | graphics/circuit_macros/examples/dpv/ex18DPV.m4
+2022/11/28 | 1063 | graphics/circuit_macros/doc/CapacitorsMan.m4
+2022/11/28 | 105650 | graphics/circuit_macros/doc/defines.tex
+2022/11/28 | 1055 | graphics/circuit_macros/examples/dpv/TgateDPV.m4
2022/11/28 | 105436 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/11/28 | 1050 | graphics/circuit_macros/examples/dpv/DPVconfig.m4
+2022/11/28 | 1040 | graphics/circuit_macros/examples/Nport.m4
+2022/11/28 | 1040 | graphics/circuit_macros/doc/NportMan.m4
+2022/11/28 | 1039 | graphics/circuit_macros/examples/chaos.m4
2022/11/28 | 103873 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2022/11/28 | 103544 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/11/28 | 1034 | graphics/circuit_macros/examples/dpv/OpampDPV.m4
2022/11/28 | 10345 | systems/win32/miktex/tm/packages/lt3rawobjects__source.tar.lzma
+2022/11/28 | 1030606 | graphics/circuit_macros/doc/Circuit_macros.pdf
+2022/11/28 | 1029 | graphics/circuit_macros/xfig.m4
+2022/11/28 | 10238 | graphics/circuit_macros/examples/dpv/paletteDPV.m4
+2022/11/28 | 1022 | graphics/circuit_macros/examples/Tgate.m4
+2022/11/28 | 1022 | graphics/circuit_macros/doc/TgateMan.m4
+2022/11/28 | 1019 | graphics/circuit_macros/gpic.m4
+2022/11/28 | 10193 | graphics/circuit_macros/examples/paletteSVG.m4
+2022/11/28 | 1017 | graphics/circuit_macros/doc/arrowex.m4
2022/11/28 | 101592 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2022/11/28 | 1015692 | graphics/pstricks/base/doc/pst-news22.pdf
-2022/11/27 | 9958 | macros/luatex/generic/lutabulartools/lutabulartools.sty
+2022/11/28 | 1003 | graphics/circuit_macros/examples/ex15.m4
2022/11/27 | 92870 | macros/latex/contrib/pagecolor/pagecolor-example.pdf
2022/11/27 | 9044 | macros/jptex/latex/jlreq/jlreq-trimmarks-ja.md
2022/11/27 | 881135 | macros/xetex/latex/xduts/xdulogo.pdf
@@ -270,20 +804,15 @@
2022/11/27 | 2220 | macros/latex/contrib/lt3rawobjects/lt3rawobjects.ins
2022/11/27 | 21198 | macros/jptex/latex/jlreq/jlreq-helpers.sty
2022/11/27 | 1999208 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/11/27 | 16744 | macros/luatex/generic/lutabulartools/lutabulartools.tex
2022/11/27 | 1628543 | macros/xetex/latex/xduts.zip
-2022/11/27 | 1623 | macros/luatex/generic/lutabulartools/README.md
2022/11/27 | 1512702 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/11/27 | 14243 | macros/luatex/generic/lutabulartools/lutabulartools.lua
2022/11/27 | 13971205 | macros/latex/contrib/profcollege.zip
2022/11/27 | 1305 | macros/latex/contrib/lt3rawobjects/README.md
2022/11/27 | 120615 | macros/jptex/latex/jlreq/jlreq.pdf
2022/11/27 | 11878 | macros/jptex/latex/jlreq/luajfm2pl.lua
-2022/11/27 | 114054 | macros/luatex/generic/lutabulartools/lutabulartools.pdf
2022/11/27 | 1111 | macros/xetex/latex/xduts/xduts.ins
2022/11/27 | 10971100 | install/macros/jptex/latex/jlreq.tds.zip
2022/11/27 | 10466 | macros/jptex/latex/jlreq/jlreq-complements.sty
-2022/11/27 | 100718 | macros/luatex/generic/lutabulartools.zip
2022/11/26 | 9452788 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
2022/11/26 | 883135 | systems/win32/miktex/tm/packages/achemso__doc.tar.lzma
2022/11/26 | 880816 | systems/texlive/tlnet/archive/achemso.doc.r65103.tar.xz
@@ -635,23 +1164,3 @@
2022/11/24 | 1031 | support/bib2gls/examples/baseunits.bib
2022/11/24 | 10118762 | systems/win32/miktex/tm/packages/pstricks-add__doc.tar.lzma
2022/11/24 | 10114 | systems/win32/miktex/tm/packages/luakeys.tar.lzma
-2022/11/23 | 76424 | systems/texlive/tlnet/archive/cweb.doc.r65081.tar.xz
-2022/11/23 | 689 | macros/luatex/latex/luaquotes/README
-2022/11/23 | 57184 | systems/texlive/tlnet/archive/lua-widow-control.source.r65084.tar.xz
-2022/11/23 | 460080 | systems/texlive/tlnet/archive/lwarp.source.r65083.tar.xz
-2022/11/23 | 35177 | macros/luatex/latex/luaquotes/luaquotes-documentation.tex
-2022/11/23 | 3169212 | systems/texlive/tlnet/archive/lwarp.doc.r65083.tar.xz
-2022/11/23 | 2877 | macros/latex209/contrib/picinpar/picinpar-en.tex
-2022/11/23 | 24352 | systems/texlive/tlnet/archive/cweb.r65081.tar.xz
-2022/11/23 | 214587 | macros/latex209/contrib/picinpar/picinpar-en.pdf
-2022/11/23 | 212828 | systems/texlive/tlnet/archive/lwarp.r65083.tar.xz
-2022/11/23 | 2084888 | systems/texlive/tlnet/archive/kpfonts-otf.doc.r65082.tar.xz
-2022/11/23 | 19916 | systems/texlive/tlnet/archive/lua-widow-control.r65084.tar.xz
-2022/11/23 | 175871 | macros/latex209/contrib/picinpar/picinpar-de.pdf
-2022/11/23 | 16615 | macros/latex209/contrib/picinpar/picinpar.sty
-2022/11/23 | 117004 | macros/luatex/latex/luaquotes.zip
-2022/11/23 | 1118500 | systems/texlive/tlnet/archive/lua-widow-control.doc.r65084.tar.xz
-2022/11/23 | 111052 | macros/luatex/latex/luaquotes/luaquotes-documentation.pdf
-2022/11/23 | 10917 | macros/luatex/latex/luaquotes/luaquotes.sty
-2022/11/23 | 1080484 | systems/texlive/tlnet/archive/kpfonts-otf.r65082.tar.xz
-2022/11/23 | 10760 | macros/latex209/contrib/picinpar/picinpar-de.tex
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 5c91bf61f4..4fba57ed6a 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 30-11-2022, 02:01:39
+%% created at 01-12-2022, 02:01:38
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -5042,8 +5042,8 @@
title = {The \texttt{babel} package},
subtitle = {Multilingual support for \LaTeX{}, LuaLaTeX, \XeLaTeX{}, and Plain \TeX{}},
author = {Javier Bezos López and Johannes L. Braams},
- date = {2022-10-23},
- version = {3.82},
+ date = {2022-11-30},
+ version = {3.83},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/required/babel/base},
url = {https://ctan.org/pkg/babel},
@@ -12438,8 +12438,8 @@
title = {The \texttt{circuit-macros} package},
subtitle = {M4 macros for electric circuit diagrams},
author = {Dwight Aplevich},
- date = {2022-10-13},
- version = {10.0},
+ date = {2022-11-30},
+ version = {10.1},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/graphics/circuit_macros},
url = {https://ctan.org/pkg/circuit-macros},
@@ -21822,8 +21822,8 @@
title = {The \texttt{eolang} package},
subtitle = {Formulas and graphs for the EO programming language},
author = {Yegor Bugayenko},
- date = {2022-11-28},
- version = {0.7.1},
+ date = {2022-11-30},
+ version = {0.8.0},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/eolang},
url = {https://ctan.org/pkg/eolang},
@@ -35146,8 +35146,8 @@
title = {The \texttt{kdpcover} package},
subtitle = {Covers for books published by Kindle Direct Publishing},
author = {Yegor Bugayenko},
- date = {2022-10-02},
- version = {0.4.0},
+ date = {2022-11-30},
+ version = {0.5.1},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/kdpcover},
url = {https://ctan.org/pkg/kdpcover},
@@ -42561,8 +42561,8 @@
title = {The \texttt{mathfont} package},
subtitle = {Use TrueType and OpenType fonts in math mode},
author = {Conrad Kosowsky},
- date = {2021-12-31},
- version = {2.0},
+ date = {2022-11-30},
+ version = {2.1},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/mathfont},
url = {https://ctan.org/pkg/mathfont},
@@ -53668,8 +53668,8 @@
title = {The \texttt{ProfLycee} package},
subtitle = {A \LaTeX{} package for French maths teachers in high school},
author = {Cédric Pierquet},
- date = {2022-11-21},
- version = {2.0.5},
+ date = {2022-11-30},
+ version = {2.0.6},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/proflycee},
url = {https://ctan.org/pkg/proflycee},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index 802d65192e..5f6af0a415 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/graphics/circuit_macros/CHANGES b/graphics/circuit_macros/CHANGES
index 49a571e818..1b7b0c5e5f 100644
--- a/graphics/circuit_macros/CHANGES
+++ b/graphics/circuit_macros/CHANGES
@@ -1,5 +1,7 @@
CHANGES
+Version 10.1: Simplified structure and cleanup of the examples directory.
+ New options for em_arrows. Tweaked dot, cross.
Version 10.0: New macros Between_, thyristor_t. Bugfix in inductor(,W).
Tweaked diff_, scr, scs, sus, sbs, tline, svg_font, contact.
Minor edits of the manual. Electric vehicle charging plug examples.
diff --git a/graphics/circuit_macros/Copying b/graphics/circuit_macros/Copying
index 1f70c82402..3cd17dd5b3 100644
--- a/graphics/circuit_macros/Copying
+++ b/graphics/circuit_macros/Copying
@@ -1,4 +1,4 @@
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/INSTALL b/graphics/circuit_macros/INSTALL
index 42b11ff402..1157799c11 100644
--- a/graphics/circuit_macros/INSTALL
+++ b/graphics/circuit_macros/INSTALL
@@ -29,35 +29,34 @@ INSTALLATION:
"make psdefault" to set the default processor to dpic with PSTricks
"make gpicdefault" to restore gpic as the default.
+Installation on a Mac:
+ For a nice outline of how to install on a Mac, go to
+ https://www.hamish.science/2020/06/24/circuitmacros
+
+CUSTOM MACROS:
You might develop your own set of macros that are combinations
or variations of those provided here. You can put them in a file,
mymacros.m4 say, and copy it to the installation directory. Then the
- line include(mymacros.m4) in a diagram source will you make your
- macros available.
+ line include(mymacros.m4) in a diagram source will make your macros
+ available.
+TESTING:
In case of difficulty, go to the examples directory, look at debug1.tex
and debug2.m4, and follow instructions.
-Installation on a Mac:
- For a nice outline of how to install on a Mac, go to
- https://www.hamish.science/2020/06/24/circuitmacros
-
-TESTING:
To test your installation, go to the examples directory (or copy the
files Makefile, tst.tex, and any .m4 sources you might like to test
- to a working directory) and create a test circuit in the
- file test.m4. Copy ex01.m4, for example, or quick.m4 from the doc
- directory into test.m4.
+ from the examples directory to a working directory) and create a test
+ circuit in the file test.m4. Copy ex01.m4 for example, or quick.m4
+ from the doc directory, into test.m4.
On a system with a "make" facility, first check the definitions at
the top of the Makefile, and then type "make tst1" to produce the
file tst.ps. If the source requires processing twice, type "make
- tst" instead. To process one of the example .m4 files in the
- examples directory, simply type "make name.ps" to process name.m4.
- If these tests work to your satisfaction, try typing simply "make" to
- produce examples.ps. To test .pdf files, go to the pgf directory,
- copy name.m4 there, and type either "make name.ps" or "make name.pdf"
- to test the file under pdflatex and TikZ PGF.
+ tst" instead. To process one of the example .m4 files in the examples
+ directory (let's call it name.m4), simply type "make name.pdf" or "make
+ name.ps". If these tests work to your satisfaction, try typing simply
+ "make" to produce examples.pdf.
The .m4 files in the examples directory can serve as models for your
diagrams but keep in mind that some of them contain details that allow
@@ -66,10 +65,6 @@ TESTING:
You might also wish to browse some of the included files that are not
used to make examples.ps.
- A few of the sources in the examples directory are copies of files
- from the doc directory. They are duplicated to provide flexibility
- of directory structure and independency of sources.
-
No "make" facility? You have to test by hand (but see the README file
for diagram production software). Copy a test file as above into
test.m4. Assuming you have dpic installed, type the following:
diff --git a/graphics/circuit_macros/README b/graphics/circuit_macros/README
index 7f20713e40..618fb0c532 100644
--- a/graphics/circuit_macros/README
+++ b/graphics/circuit_macros/README
@@ -1,5 +1,5 @@
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -7,7 +7,7 @@
* whatsoever for these files. *
This is a set of macros for drawing high-quality line diagrams to
- include in LaTeX, web, or similar documents, with support for SVG
+ include in LaTeX, web, or similar documents, with support for svg
(including Inkscape) and other formats. Fundamental electric circuit
elements and basic logic gates based on IEEE and European standards are
included with several tools and examples of other types of diagrams.
@@ -50,7 +50,7 @@ Alternative:
Also possible for some diagrams:
m4 and dpic with output in the following formats:
LaTeX graphics or LaTeX eepic (for simple diagrams), mfpic, xfig,
- MetaPost, SVG, PDF, or Postscript.
+ MetaPost, svg, pdf, or Postscript.
USAGE
First-time users should read the Quick Start section of Circuit_macros.pdf.
@@ -165,21 +165,20 @@ GPIC:
http://doc.cat-v.org/unix/v10/10thEdMan/pic.pdf
SVG output, Inkscape:
- Dpic -v produces svg output. If the result is to be directly
- inserted into html, then as for Postscript output, the diagram
- source file has to be adapted to remove any LaTeX formatting. The
- configuration file svg.m4 contains macros that can assist. To avoid
- this problem at the expense of an extra postprocessing step,
- sophisticated text formatting and font selection can be retained
- by first producing pdf output and then converting to SVG using,
- say, pdf2svg (https://github.com/dawbarton/pdf2svg) or dvisvgm
- (https://www.ctan.org/pkg/dvisvgm).
+ Dpic -v produces svg output. If the result is to be directly inserted
+ into html, then as for Postscript output, the diagram source file has
+ to be adapted to remove any LaTeX formatting. The configuration file
+ svg.m4 contains macros that can assist. At the expense of an extra
+ postprocessing step, sophisticated text formatting and font selection
+ can be retained by first producing pdf output and then converting to
+ svg using, say, dvisvgm (https://www.ctan.org/pkg/dvisvgm) or pdf2svg
+ (https://github.com/dawbarton/pdf2svg).
SVG is the native file format for the Inkscape graphics editor.
Therefore, elements defined by these macros can be output by dpic -v in
svg format for later manipulation by Inkscape. A very basic palette of
- circuit elements for Inkscape is found in examples/svg/paletteSVG.m4.
- In the svg subdirectory, type "make paletteSVG.svg", read the resulting
+ circuit elements for Inkscape is found in examples/paletteSVG.m4.
+ In the examples subdirectory, type "make paletteSVG.svg", read the resulting
file into Inkscape, and then ungroup the elements as desired. You would
probably wish to add to or customize these elements for extensive use.
@@ -190,10 +189,10 @@ EXAMPLES
test the boundaries of the domain of application of dpic with m4
macros. Read the manual Circuit_macros.pdf and view examples.pdf
in the examples directory or make and view the html file in the
- examples/svg directory. For the curious, There are additional source
+ examples/svg directory. For the curious, there are additional source
files in the examples directory that are not shown in examples.pdf.
- For the possibly unstable development version of these macros, try
- http://ece.uwaterloo.ca/~aplevich/Circuit_macros/
+ Try http://ece.uwaterloo.ca/~aplevich/Circuit_macros/
+ for the possibly unstable development version of these macros.
The examples directory Makefile automates the generation of .ps, .eps,
.png, and .pdf files for individual diagrams. Subdirectories of the
diff --git a/graphics/circuit_macros/darrow.m4 b/graphics/circuit_macros/darrow.m4
index c795ab90f7..9ba4fa8688 100644
--- a/graphics/circuit_macros/darrow.m4
+++ b/graphics/circuit_macros/darrow.m4
@@ -1,7 +1,7 @@
divert(-1)
darrow.m4 Macros for double lines and arrows
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/doc/AmpTable.tex b/graphics/circuit_macros/doc/AmpTable.tex
deleted file mode 100644
index 79bbf3bb66..0000000000
--- a/graphics/circuit_macros/doc/AmpTable.tex
+++ /dev/null
@@ -1,73 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0,0)
- --(0.125,0)\dpicstop
-\dpicdraw (0.625,0)
- --(0.125,0.25)
- --(0.125,-0.25)
- --(0.625,0)
- --(0.75,0)\dpicstop
-\draw (0.777674,0) node[right=-2bp]{{\tt amp}};
-\dpicdraw (0,-0.4)
- --(0.225,-0.4)\dpicstop
-\dpicdraw (0.525,-0.4)
- --(0.225,-0.25)
- --(0.225,-0.55)
- --(0.525,-0.4)
- --(0.75,-0.4)\dpicstop
-\draw (0.777674,-0.4) node[right=-2bp]{{\tt amp(,0.3)}};
-\dpicdraw (2,0)
- --(2.229167,0)\dpicstop
-\dpicdraw (2.345833,-0.175)
- --(2.229167,-0.175)
- --(2.229167,0.175)
- --(2.345833,0.175)\dpicstop
-\dpicdraw (2.345833,0.175)
- ..controls (2.442483,0.175) and (2.520833,0.09665)
- ..(2.520833,0)
- ..controls (2.520833,-0.09665) and (2.442483,-0.175)
- ..(2.345833,-0.175)\dpicstop
-\dpicdraw (2.520833,0)
- --(2.75,0)\dpicstop
-\draw (2.777674,0) node[right=-2bp]{{\tt delay}};
-\dpicdraw (2,-0.4)
- --(2.291667,-0.4)\dpicstop
-\dpicdraw (2.358333,-0.5)
- --(2.291667,-0.5)
- --(2.291667,-0.3)
- --(2.358333,-0.3)\dpicstop
-\dpicdraw (2.358333,-0.3)
- ..controls (2.413562,-0.3) and (2.458333,-0.344772)
- ..(2.458333,-0.4)
- ..controls (2.458333,-0.455228) and (2.413562,-0.5)
- ..(2.358333,-0.5)\dpicstop
-\dpicdraw (2.458333,-0.4)
- --(2.75,-0.4)\dpicstop
-\draw (2.777674,-0.4) node[right=-2bp]{{\tt delay(,0.2)}};
-\dpicdraw (4.125,0.25)
- --(4,0.25)
- --(4,-0.25)
- --(4.125,-0.25)\dpicstop
-\dpicdraw (4.625,0)
- --(4.125,0.25)
- --(4.125,-0.25)
- --(4.625,0)
- --(4.75,0)\dpicstop
-\draw (4.777674,0) node[right=-2bp]{{\tt integrator}};
-\dpicdraw (4.075,-0.35)
- --(4,-0.35)
- --(4,-0.65)
- --(4.075,-0.65)\dpicstop
-\dpicdraw (4.375,-0.5)
- --(4.075,-0.35)
- --(4.075,-0.65)
- --(4.375,-0.5)
- --(4.75,-0.5)\dpicstop
-\draw (4.777674,-0.5) node[right=-2bp]{{\tt integrator(,0.3)}};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Audio.tex b/graphics/circuit_macros/doc/Audio.tex
deleted file mode 100644
index 9531f8b0dc..0000000000
--- a/graphics/circuit_macros/doc/Audio.tex
+++ /dev/null
@@ -1,295 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.61348,0.294444)
- --(0.849182,0.461111)
- --(0.849182,-0.205556)
- --(0.61348,-0.038889)\dpicstop
-\dpicdraw (0.61348,0.127778)
- --(0.61348,0.294444)
- --(0.377778,0.294444)
- --(0.377778,-0.038889)
- --(0.61348,-0.038889)
- --(0.61348,0.127778)\dpicstop
-\draw (0.61348,-0.405556) node{\tt speaker};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.308208,0.213219)
- --(0.377778,0.211111)
- --(0.320857,0.251167) --cycle\dpicstop
-\dpicdraw (0.359436,0.217225)
- --(0.227778,0.261111)\dpicstop
-\draw (0.227778,0.261111) node[above left=-2bp]{{\sl In1}};
-\filldraw[line width=0bp](0.311111,0.107778)
- --(0.377778,0.127778)
- --(0.311111,0.147778) --cycle\dpicstop
-\dpicdraw (0.358444,0.127778)
- --(0.227778,0.127778)\dpicstop
-\draw (0.227778,0.127778) node[left=-2bp]{{\sl In2}};
-\filldraw[line width=0bp](0.320857,0.004389)
- --(0.377778,0.044444)
- --(0.308208,0.042336) --cycle\dpicstop
-\dpicdraw (0.359436,0.038331)
- --(0.227778,-0.005556)\dpicstop
-\draw (0.227778,-0.005556) node[below left=-2bp]{{\sl In3}};
-\dpiclw=0.8bp
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.396648,0.351365)
- --(0.436703,0.294444)
- --(0.434595,0.364015) --cycle\dpicstop
-\dpicdraw (0.430589,0.312786)
- --(0.386703,0.444444)\dpicstop
-\draw (0.386703,0.444444) node[above left=-2bp]{{\sl In4}};
-\filldraw[line width=0bp](0.556663,0.364015)
- --(0.554554,0.294444)
- --(0.59461,0.351365) --cycle\dpicstop
-\dpicdraw (0.560668,0.312786)
- --(0.604554,0.444444)\dpicstop
-\draw (0.604554,0.444444) node[above=-2bp]{{\sl In5}};
-\filldraw[line width=0bp](0.434595,-0.108459)
- --(0.436703,-0.038889)
- --(0.396648,-0.09581) --cycle\dpicstop
-\dpicdraw (0.430589,-0.057231)
- --(0.386703,-0.188889)\dpicstop
-\draw (0.386703,-0.188889) node[below left=-2bp]{{\sl In6}};
-\filldraw[line width=0bp](0.59461,-0.09581)
- --(0.554554,-0.038889)
- --(0.556663,-0.108459) --cycle\dpicstop
-\dpicdraw (0.560668,-0.057231)
- --(0.604554,-0.188889)\dpicstop
-\draw (0.604554,-0.188889) node[below=-2bp]{{\sl In7}};
-\filldraw[line width=0bp](0.66905,0.219687)
- --(0.61348,0.177778)
- --(0.682943,0.182177) --cycle\dpicstop
-\dpicdraw (0.63161,0.184493)
- --(0.757545,0.231135)
- ..controls (0.841502,0.26223) and (0.900147,0.311111)
- ..(0.93348,0.377778)
- --(0.98348,0.477778)\dpicstop
-\draw (0.98348,0.477778) node[above=-2bp]{\sl Box};
-\dpiclw=0.8bp
-\dpicdraw (1.469182,0.044444)
- --(1.587033,0.106944)
- --(1.587033,-0.184722)
- --(1.469182,-0.122222)\dpicstop
-\dpicdraw (1.469182,-0.038889)
- --(1.469182,0.127778)
- --(1.23348,0.127778)
- --(1.23348,-0.205556)
- --(1.469182,-0.205556)
- --(1.469182,-0.038889)\dpicstop
-\draw (1.410257,-0.505556) node{\tt speaker(,{,}H)};
-\dpicdraw (2.214811,0.511111)
- --(2.214811,0.636111)
- --(1.964811,0.636111)
- --(1.964811,0.386111)
- --(2.214811,0.386111)
- --(2.214811,0.511111)\dpicstop
-\dpicdraw (2.339811,0.511111) circle (0.049213in)\dpicstop
-\draw (2.214811,0.186111) node{\tt bell};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.895241,0.575719)
- --(1.964811,0.573611)
- --(1.90789,0.613667) --cycle\dpicstop
-\dpicdraw (1.946469,0.579725)
- --(1.814811,0.623611)\dpicstop
-\draw (1.814811,0.623611) node[above left=-2bp]{{\sl In1}};
-\filldraw[line width=0bp](1.898145,0.491111)
- --(1.964811,0.511111)
- --(1.898145,0.531111) --cycle\dpicstop
-\dpicdraw (1.945477,0.511111)
- --(1.814811,0.511111)\dpicstop
-\draw (1.814811,0.511111) node[left=-2bp]{{\sl In2}};
-\filldraw[line width=0bp](1.90789,0.408556)
- --(1.964811,0.448611)
- --(1.895241,0.446503) --cycle\dpicstop
-\dpicdraw (1.946469,0.442497)
- --(1.814811,0.398611)\dpicstop
-\draw (1.814811,0.398611) node[below left=-2bp]{{\sl In3}};
-\dpiclw=0.8bp
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.93619,0.680487)
- --(1.989811,0.636111)
- --(1.969472,0.702675) --cycle\dpicstop
-\dpicdraw (1.979087,0.652198)
- --(1.889811,0.786111)\dpicstop
-\draw (1.889811,0.786111) node[above=-2bp]{\sl Box};
-\filldraw[line width=0bp](2.319811,0.702778)
- --(2.339811,0.636111)
- --(2.359811,0.702778) --cycle\dpicstop
-\dpicdraw (2.339811,0.655445)
- --(2.339811,0.786111)\dpicstop
-\draw (2.339811,0.786111) node[above=-2bp]{\sl Circle};
-\dpiclw=0.8bp
-\dpicdraw (3.492589,0.386111)
- --(3.492589,0.636111)\dpicstop
-\dpicdraw (3.367589,0.511111) circle (0.049213in)\dpicstop
-\draw (3.367589,0.186111) node{\tt microphone};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](3.189766,0.575719)
- --(3.259336,0.573611)
- --(3.202415,0.613667) --cycle\dpicstop
-\dpicdraw (3.240994,0.579725)
- --(3.109336,0.623611)\dpicstop
-\draw (3.109336,0.623611) node[above left=-2bp]{{\sl In1}};
-\filldraw[line width=0bp](3.175922,0.491111)
- --(3.242589,0.511111)
- --(3.175922,0.531111) --cycle\dpicstop
-\dpicdraw (3.223255,0.511111)
- --(3.092589,0.511111)\dpicstop
-\draw (3.092589,0.511111) node[left=-2bp]{{\sl In2}};
-\filldraw[line width=0bp](3.202415,0.408556)
- --(3.259336,0.448611)
- --(3.189766,0.446503) --cycle\dpicstop
-\dpicdraw (3.240994,0.442497)
- --(3.109336,0.398611)\dpicstop
-\draw (3.109336,0.398611) node[below left=-2bp]{{\sl In3}};
-\dpiclw=0.8bp
-\dpiclw=0.4bp
-\filldraw[line width=0bp](3.347589,0.702778)
- --(3.367589,0.636111)
- --(3.387589,0.702778) --cycle\dpicstop
-\dpicdraw (3.367589,0.655445)
- --(3.367589,0.786111)\dpicstop
-\draw (3.367589,0.786111) node[above=-2bp]{\sl Circle};
-\dpiclw=0.8bp
-\dpicdraw (4.520367,0.511111)
- --(4.520367,0.636111)
- --(4.270367,0.636111)
- --(4.270367,0.386111)
- --(4.520367,0.386111)
- --(4.520367,0.511111)\dpicstop
-\dpicdraw (4.520367,0.636111)
- --(4.585072,0.39463)\dpicstop
-\draw (4.427719,0.186111) node{\tt buzzer};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](4.200797,0.575719)
- --(4.270367,0.573611)
- --(4.213446,0.613667) --cycle\dpicstop
-\dpicdraw (4.252025,0.579725)
- --(4.120367,0.623611)\dpicstop
-\draw (4.120367,0.623611) node[above left=-2bp]{{\sl In1}};
-\filldraw[line width=0bp](4.2037,0.491111)
- --(4.270367,0.511111)
- --(4.2037,0.531111) --cycle\dpicstop
-\dpicdraw (4.251033,0.511111)
- --(4.120367,0.511111)\dpicstop
-\draw (4.120367,0.511111) node[left=-2bp]{{\sl In2}};
-\filldraw[line width=0bp](4.213446,0.408556)
- --(4.270367,0.448611)
- --(4.200797,0.446503) --cycle\dpicstop
-\dpicdraw (4.252025,0.442497)
- --(4.120367,0.398611)\dpicstop
-\draw (4.120367,0.398611) node[below left=-2bp]{{\sl In3}};
-\dpiclw=0.8bp
-\dpiclw=0.4bp
-\filldraw[line width=0bp](4.375367,0.702778)
- --(4.395367,0.636111)
- --(4.415367,0.702778) --cycle\dpicstop
-\dpicdraw (4.395367,0.655445)
- --(4.395367,0.786111)\dpicstop
-\draw (4.395367,0.786111) node[above=-2bp]{\sl Box};
-\dpiclw=0.8bp
-\dpicdraw (5.529516,0.386111)
- --(5.529516,0.719444)\dpicstop
-\dpicdraw (5.529516,0.719444)
- ..controls (5.437469,0.719444) and (5.362849,0.644825)
- ..(5.362849,0.552778)
- ..controls (5.362849,0.46073) and (5.437469,0.386111)
- ..(5.529516,0.386111)\dpicstop
-\draw (5.446183,0.186111) node{\tt buzzer(,{,}C)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](5.302811,0.610442)
- --(5.372381,0.608333)
- --(5.31546,0.648389) --cycle\dpicstop
-\dpicdraw (5.354039,0.614447)
- --(5.222381,0.658333)\dpicstop
-\draw (5.222381,0.658333) node[above left=-2bp]{{\sl In1}};
-\filldraw[line width=0bp](5.296183,0.532778)
- --(5.362849,0.552778)
- --(5.296183,0.572778) --cycle\dpicstop
-\dpicdraw (5.343515,0.552778)
- --(5.212849,0.552778)\dpicstop
-\draw (5.212849,0.552778) node[left=-2bp]{{\sl In2}};
-\filldraw[line width=0bp](5.31546,0.457167)
- --(5.372381,0.497222)
- --(5.302811,0.495114) --cycle\dpicstop
-\dpicdraw (5.354039,0.491108)
- --(5.222381,0.447222)\dpicstop
-\draw (5.222381,0.447222) node[below left=-2bp]{{\sl In3}};
-\dpiclw=0.8bp
-\dpiclw=0.4bp
-\filldraw[line width=0bp](5.589341,0.68835)
- --(5.529516,0.652778)
- --(5.599043,0.649544) --cycle\dpicstop
-\dpicdraw (5.548273,0.657467)
- --(5.605561,0.671789)
- ..controls (5.643753,0.681337) and (5.671183,0.711111)
- ..(5.687849,0.761111)
- --(5.712849,0.836111)\dpicstop
-\draw (5.712849,0.836111) node[above=-2bp]{\sl Face};
-\dpiclw=0.8bp
-\dpicdraw (3.065693,-0.216667)
- --(3.065693,-0.091667)
- --(2.899026,-0.091667)
- --(2.899026,-0.341667)
- --(3.065693,-0.341667)
- --(3.065693,-0.216667)\dpicstop
-\dpicdraw[line width=1.6bp](3.076762,-0.383333)
- --(3.076762,-0.05)\dpicstop
-\draw (2.987894,-0.583333) node{\tt earphone};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](2.829456,-0.152058)
- --(2.899026,-0.154167)
- --(2.842105,-0.114111) --cycle\dpicstop
-\dpicdraw (2.880684,-0.148053)
- --(2.749026,-0.104167)\dpicstop
-\draw (2.749026,-0.104167) node[above left=-2bp]{{\sl In1}};
-\filldraw[line width=0bp](2.832359,-0.236667)
- --(2.899026,-0.216667)
- --(2.832359,-0.196667) --cycle\dpicstop
-\dpicdraw (2.879692,-0.216667)
- --(2.749026,-0.216667)\dpicstop
-\draw (2.749026,-0.216667) node[left=-2bp]{{\sl In2}};
-\filldraw[line width=0bp](2.842105,-0.319222)
- --(2.899026,-0.279167)
- --(2.829456,-0.281275) --cycle\dpicstop
-\dpicdraw (2.880684,-0.285281)
- --(2.749026,-0.329167)\dpicstop
-\draw (2.749026,-0.329167) node[below left=-2bp]{{\sl In3}};
-\dpiclw=0.8bp
-\dpiclw=0.4bp
-\filldraw[line width=0bp](2.921077,-0.058668)
- --(2.982359,-0.091667)
- --(2.949361,-0.030384) --cycle\dpicstop
-\dpicdraw (2.968688,-0.077996)
- --(2.832359,0.058333)\dpicstop
-\draw (2.832359,0.058333) node[above=-2bp]{\sl Box};
-\dpiclw=0.8bp
-\dpicdraw (3.85454,-0.283333) circle (0.03937in)\dpicstop
-\dpicdraw (4.35454,-0.283333) circle (0.03937in)\dpicstop
-\dpicdraw (3.87454,-0.185354)
- ..controls (3.960887,0.01734) and (4.248193,0.01734)
- ..(4.33454,-0.185354)\dpicstop
-\draw (4.10454,-0.583333) node{\tt earphone(,{,}C)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](3.793257,-0.250335)
- --(3.85454,-0.283333)
- --(3.821542,-0.222051) --cycle\dpicstop
-\dpicdraw (3.840869,-0.269662)
- --(3.70454,-0.133333)\dpicstop
-\draw (3.70454,-0.133333) node[left=-2bp]{\sl L};
-\filldraw[line width=0bp](4.387538,-0.222051)
- --(4.35454,-0.283333)
- --(4.415823,-0.250335) --cycle\dpicstop
-\dpicdraw (4.368211,-0.269662)
- --(4.50454,-0.133333)\dpicstop
-\draw (4.50454,-0.133333) node[right=-2bp]{\sl R};
-\draw (4.10454,-0.033333) node[above=-2bp]{\sl N};
-\draw (4.10454,-0.283333) node{\sl C};
-\dpiclw=0.8bp
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Bip.tex b/graphics/circuit_macros/doc/Bip.tex
deleted file mode 100644
index d44b0376e6..0000000000
--- a/graphics/circuit_macros/doc/Bip.tex
+++ /dev/null
@@ -1,175 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.1625,0)
- --(0.1625,0.1)
- --(0.158796,0.101667)\dpicstop
-\dpicdraw (0.1625,0.5)
- --(0.1625,0.4)
- --(0.158796,0.398333)\dpicstop
-\dpicdraw (-0.0375,0.15)
- --(-0.0375,0.35)\dpicstop
-\dpicdraw (-0.1625,0.25)
- --(-0.0375,0.25)\dpicstop
-\dpicdraw (0.1625,0.1)
- --(-0.0375,0.19)\dpicstop
-\filldraw[line width=0bp](0.025108,0.131366)
- --(0.1125,0.1225)
- --(0.047906,0.182028) --cycle\dpicstop
-\dpicdraw (0.096479,0.129709)
- --(0.0125,0.1675)\dpicstop
-\dpicdraw (0.1625,0.4)
- --(-0.0375,0.31)\dpicstop
-\dpiclw=0.4bp
-\dpicdraw[dotted](-0.1625,0) rectangle (0.1625,0.5)\dpicstop
-\dpiclw=0.8bp
-\draw (0.1625,-0.05) node[below=-2bp]{\hbox{\sl E}};
-\draw (-0.1625,0.25) node[left=-2bp]{\hbox{\sl B}};
-\draw (0.1625,0.5) node[above=-2bp]{\hbox{\sl C}};
-\draw (0,-0.35) node[below=-2bp]{{\tt bi\_tr(up\_ dimen\_)}};
-\dpicdraw (0.6125,0.05)
- --(0.6125,0.25)\dpicstop
-\dpicdraw (0.7375,0.15)
- --(0.6125,0.15)\dpicstop
-\dpicdraw (0.4125,0)
- --(0.6125,0.09)\dpicstop
-\filldraw[line width=0bp](0.527094,0.082028)
- --(0.4625,0.0225)
- --(0.549892,0.031366) --cycle\dpicstop
-\dpicdraw (0.478521,0.029709)
- --(0.5625,0.0675)\dpicstop
-\dpicdraw (0.4125,0.3)
- --(0.6125,0.21)\dpicstop
-\dpiclw=0.4bp
-\dpicdraw[dotted](0.4125,0) rectangle (0.7375,0.3)\dpicstop
-\dpiclw=0.8bp
-\draw (0.4125,-0.05) node[below=-2bp]{\hbox{\sl E}};
-\draw (0.7375,0.15) node[right=-2bp]{\hbox{\sl B}};
-\draw (0.4125,0.3) node[above=-2bp]{\hbox{\sl C}};
-\draw (0.575,-0.2) node[below=-2bp]{{\tt bi\_tr(,R)}};
-\dpicdraw (1.3625,0.05)
- --(1.3625,0.25)\dpicstop
-\dpicdraw (1.2375,0.15)
- --(1.3625,0.15)\dpicstop
-\dpicdraw (1.5625,0)
- --(1.3625,0.09)\dpicstop
-\filldraw[line width=0bp](1.499892,0.058634)
- --(1.4125,0.0675)
- --(1.477094,0.007972) --cycle\dpicstop
-\dpicdraw (1.5125,0.0225)
- --(1.428521,0.060291)\dpicstop
-\dpicdraw (1.5625,0.3)
- --(1.3625,0.21)\dpicstop
-\dpiclw=0.4bp
-\dpicdraw[dotted](1.2375,0) rectangle (1.5625,0.3)\dpicstop
-\dpiclw=0.8bp
-\draw (1.5625,-0.05) node[below=-2bp]{\hbox{\sl E}};
-\draw (1.2375,0.15) node[left=-2bp]{\hbox{\sl B}};
-\draw (1.5625,0.3) node[above=-2bp]{\hbox{\sl C}};
-\draw (1.4,-0.35) node[below=-2bp]{{\tt bi\_tr(,{,}P)}};
-\dpicdraw (2.2625,0.05)
- --(2.2625,0.25)\dpicstop
-\dpicdraw (2.1375,0.15)
- --(2.2625,0.15)\dpicstop
-\dpicdraw (2.4625,0)
- --(2.2625,0.09)\dpicstop
-\filldraw[line width=0bp](2.325108,0.031366)
- --(2.4125,0.0225)
- --(2.347906,0.082028) --cycle\dpicstop
-\dpicdraw (2.396479,0.029709)
- --(2.3125,0.0675)\dpicstop
-\dpicdraw (2.4625,0.3)
- --(2.2625,0.21)\dpicstop
-\dpicdraw (2.1375,0.15)
- ..controls (2.1375,0.260457) and (2.227043,0.35)
- ..(2.3375,0.35)
- ..controls (2.447957,0.35) and (2.5375,0.260457)
- ..(2.5375,0.15)\dpicstop
-\dpicdraw (2.5375,0.15)
- --(2.5375,0.15)\dpicstop
-\dpicdraw (2.5375,0.15)
- ..controls (2.5375,0.039543) and (2.447957,-0.05)
- ..(2.3375,-0.05)
- ..controls (2.227043,-0.05) and (2.1375,0.039543)
- ..(2.1375,0.15)\dpicstop
-\dpicdraw (2.1375,0.15)
- --(2.1375,0.15)\dpicstop
-\dpiclw=0.4bp
-\dpicdraw[dotted](2.1375,-0.05) rectangle (2.5375,0.35)\dpicstop
-\dpiclw=0.8bp
-\draw (2.4625,-0.05) node[below=-2bp]{\hbox{\sl E}};
-\draw (2.1375,0.15) node[left=-2bp]{\hbox{\sl B}};
-\draw (2.4625,0.3) node[above=-2bp]{\hbox{\sl C}};
-\draw (2.3375,-0.2) node[below=-2bp]{{\tt bi\_tr(,{,},E)}};
-\dpicdraw (2.9125,0.05)
- --(2.9125,0.25)\dpicstop
-\dpicdraw (3.1125,0)
- --(2.9125,0.09)\dpicstop
-\filldraw[line width=0bp](2.975108,0.031366)
- --(3.0625,0.0225)
- --(2.997906,0.082028) --cycle\dpicstop
-\dpicdraw (3.046479,0.029709)
- --(2.9625,0.0675)\dpicstop
-\dpicdraw (3.1125,0.3)
- --(2.9125,0.21)\dpicstop
-\dpicdraw (2.7875,0.15)
- --(2.8775,0.15)\dpicstop
-\dpicdraw (2.8775,0.05)
- --(2.8775,0.25)\dpicstop
-\dpiclw=0.4bp
-\dpicdraw[dotted](2.7875,0) rectangle (3.1125,0.3)\dpicstop
-\dpiclw=0.8bp
-\draw (3.1125,-0.05) node[below=-2bp]{\hbox{\sl E}};
-\draw (2.7875,0.15) node[left=-2bp]{\hbox{\sl G}};
-\draw (3.1125,0.3) node[above=-2bp]{\hbox{\sl C}};
-\draw (2.95,-0.35) node[below=-2bp]{{\tt igbt}};
-\dpicdraw (3.4625,0.15)
- --(3.4625,0.35)\dpicstop
-\dpicdraw (3.6625,0.1)
- --(3.4625,0.19)\dpicstop
-\filldraw[line width=0bp](3.525108,0.131366)
- --(3.6125,0.1225)
- --(3.547906,0.182028) --cycle\dpicstop
-\dpicdraw (3.596479,0.129709)
- --(3.5125,0.1675)\dpicstop
-\dpicdraw (3.6625,0.4)
- --(3.4625,0.31)\dpicstop
-\dpicdraw (3.3525,0.175)
- --(3.4275,0.175)
- --(3.4275,0.325)\dpicstop
-\dpicdraw (3.6625,0)
- --(3.8625,0)\dpicstop
-\dpicdraw (3.6625,0.5)
- --(3.8625,0.5)\dpicstop
-\dpicdraw (3.8625,0)
- --(3.8625,0.213916)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (3.8625,0.213916)
- --(3.820833,0.213916)
- --(3.8625,0.28055)
- --(3.904167,0.213916)
- --(3.8625,0.213916)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (3.908218,0.286084)
- --(3.816782,0.286084)\dpicstop
-\dpicdraw (3.8625,0.286084)
- --(3.8625,0.5)\dpicstop
-\dpicdraw (3.6625,0)
- --(3.6625,0.1)\dpicstop
-\dpicdraw (3.6625,0.5)
- --(3.6625,0.4)\dpicstop
-\dpiclw=0.4bp
-\dpicdraw[dotted](3.3525,0) rectangle (3.913753,0.5)\dpicstop
-\dpiclw=0.8bp
-\draw (3.6625,-0.05) node[below=-2bp]{\hbox{\sl E}};
-\draw (3.3525,0.175) node[left=-2bp]{\hbox{\sl G}};
-\draw (3.6625,0.5) node[above=-2bp]{\hbox{\sl C}};
-\draw (3.633127,-0.2) node[below=-2bp]{{\tt igbt(,{,}LD)}};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Circuit_macros.bib b/graphics/circuit_macros/doc/Circuit_macros.bib
index 696f361fa4..08d6831ba9 100644
--- a/graphics/circuit_macros/doc/Circuit_macros.bib
+++ b/graphics/circuit_macros/doc/Circuit_macros.bib
@@ -1,9 +1,9 @@
-@misc{Aplevich2011,
+@misc{Aplevich2022,
author={Aplevich, J. D.},
title={Drawing with dpic},
-note={In the dpic source distribution.},
-year={2015}}
+note={Dpic source distribution \url{https://gitlab.com/aplevich/dpic}},
+year={2022}}
@book{Bentley88,
author={Bentley, J.},
diff --git a/graphics/circuit_macros/doc/Circuit_macros.pdf b/graphics/circuit_macros/doc/Circuit_macros.pdf
index 6e109a06de..c03b30f49c 100644
--- a/graphics/circuit_macros/doc/Circuit_macros.pdf
+++ b/graphics/circuit_macros/doc/Circuit_macros.pdf
Binary files differ
diff --git a/graphics/circuit_macros/doc/Conn.tex b/graphics/circuit_macros/doc/Conn.tex
deleted file mode 100644
index 23d31e0e2b..0000000000
--- a/graphics/circuit_macros/doc/Conn.tex
+++ /dev/null
@@ -1,178 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-{\sf
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (0.502778,0.324448)
- --(0.377778,0.324448)
- --(0.377778,-0.275552)
- --(0.627778,-0.275552)
- --(0.627778,0.324448)
- --(0.502778,0.324448)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.627778,-0.125552)
- --(0.377778,-0.125552)\dpicstop
-\dpicdraw (0.627778,0.024448)
- --(0.377778,0.024448)\dpicstop
-\dpicdraw (0.627778,0.174448)
- --(0.377778,0.174448)\dpicstop
-\dpicdraw[fill=white](0.502778,-0.200552) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](0.502778,-0.050552) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](0.502778,0.099448) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](0.502778,0.249448) circle (0.007874in)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.311111,-0.220552)
- --(0.377778,-0.200552)
- --(0.311111,-0.180552) --cycle\dpicstop
-\dpicdraw (0.368111,-0.200552)
- --(0.227778,-0.200552)\dpicstop
-\draw (0.227778,-0.200552) node[left=-2bp]{L1};
-\filldraw[line width=0bp](0.311111,0.229448)
- --(0.377778,0.249448)
- --(0.311111,0.269448) --cycle\dpicstop
-\dpicdraw (0.368111,0.249448)
- --(0.227778,0.249448)\dpicstop
-\draw (0.227778,0.249448) node[left=-2bp]{L4};
-\draw (0.077778,0.044448) node{$\vdots$};
-\filldraw[line width=0bp](0.694444,-0.180552)
- --(0.627778,-0.200552)
- --(0.694444,-0.220552) --cycle\dpicstop
-\dpicdraw (0.637445,-0.200552)
- --(0.877778,-0.200552)\dpicstop
-\draw (0.877778,-0.200552) node[right=-2bp]{R1};
-\filldraw[line width=0bp](0.694444,0.269448)
- --(0.627778,0.249448)
- --(0.694444,0.229448) --cycle\dpicstop
-\dpicdraw (0.637445,0.249448)
- --(0.877778,0.249448)\dpicstop
-\draw (0.877778,0.249448) node[right=-2bp]{R4};
-\draw (1.027778,0.044448) node{$\vdots$};
-\filldraw[line width=0bp](0.547154,-0.146931)
- --(0.502778,-0.200552)
- --(0.569342,-0.180213) --cycle\dpicstop
-\dpicdraw (0.510821,-0.195189)
- --(0.652778,-0.100552)\dpicstop
-\draw (0.652778,-0.100552) node[right=-2bp]{T1};
-\filldraw[line width=0bp](0.547154,0.303069)
- --(0.502778,0.249448)
- --(0.569342,0.269787) --cycle\dpicstop
-\dpicdraw (0.510821,0.254811)
- --(0.652778,0.349448)\dpicstop
-\draw (0.652778,0.349448) node[right=-2bp]{T4};
-\draw (0.802778,0.144448) node{$\vdots$};
-\dpiclw=0.8bp
-\draw (0.502778,-0.425552) node(CS1){\tt tstrip(U)};
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (2.327778,-0.000552)
- --(2.327778,0.124448)
- --(1.327778,0.124448)
- --(1.327778,-0.125552)
- --(2.327778,-0.125552)
- --(2.327778,-0.000552)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw[fill=black](1.427778,-0.000552) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](1.627778,-0.000552) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](1.827778,-0.000552) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](2.027778,-0.000552) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](2.227778,-0.000552) circle (0.007874in)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.439703,0.068021)
- --(1.427778,-0.000552)
- --(1.475481,0.050132) --cycle\dpicstop
-\dpicdraw (1.432101,0.008095)
- --(1.527778,0.199448)\dpicstop
-\draw (1.527778,0.199448) node[above=-2bp]{T1};
-\filldraw[line width=0bp](2.239703,0.068021)
- --(2.227778,-0.000552)
- --(2.275481,0.050132) --cycle\dpicstop
-\dpicdraw (2.232101,0.008095)
- --(2.327778,0.199448)\dpicstop
-\draw (2.327778,0.199448) node[above=-2bp]{T5};
-\draw (1.927778,0.199448) node[above=-2bp]{$\cdots$};
-\draw (1.227778,-0.325552) node(CS2){\shortstack{\rlap{\hbox to 2bp{}\tt tstrip(R,5,}\\%
-\rlap{\hbox to 2bp{}\tt $\;\;$DO;wid=1.0;ht=0.25)}}};
-}
-\dpiclw=0.8bp
-\dpicdraw (2.927778,-0.025552) circle (0.03937in)\dpicstop
-\dpicdraw[fill=black](2.927778,-0.025552) circle (0.013123in)\dpicstop
-\draw (2.927778,-0.125552) node[below=-2bp]{\tt ccoax\vphantom{(}};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](2.984346,0.059301)
- --(2.951348,-0.001982)
- --(3.012631,0.031017) --cycle\dpicstop
-\dpicdraw (2.965019,0.01169)
- --(3.051348,0.098018)\dpicstop
-\draw (3.051348,0.098018) node[right=-2bp]{C};
-\filldraw[line width=0bp](3.096351,-0.037477)
- --(3.027778,-0.025552)
- --(3.078462,-0.073255) --cycle\dpicstop
-\dpicdraw (3.045071,-0.034198)
- --(3.127778,-0.075552)\dpicstop
-\draw (3.127778,-0.075552) node[right=-2bp]{S};
-\dpiclw=0.8bp
-\dpicdraw (2.927778,0.274448) circle (0.03937in)\dpicstop
-\dpicdraw[fill=white](2.927778,0.274448) circle (0.013123in)\dpicstop
-\draw (3.027778,0.374448) node[right=-2bp]{\tt ccoax(,F)};
-\dpicdraw (3.740551,-0.225552) circle (0.019685in)\dpicstop
-\dpicdraw (3.415551,-0.225552)
- --(3.690551,-0.225552)\dpicstop
-\draw (3.603051,-0.425552) node{\tt tconn(,O)};
-\dpicdraw (4.090551,-0.225552)
- --(4.465551,-0.225552)\dpicstop
-\dpicdraw (4.382218,-0.142218)
- --(4.465551,-0.225552)
- --(4.382218,-0.308885)\dpicstop
-\draw (4.278051,-0.425552) node{\tt (,>)};
-\dpicdraw (4.765551,-0.225552)
- --(5.078051,-0.225552)\dpicstop
-\dpicdraw (4.994718,-0.142218)
- --(5.078051,-0.225552)
- --(4.994718,-0.308885)\dpicstop
-\dpicdraw (5.057218,-0.142218)
- --(5.140551,-0.225552)
- --(5.057218,-0.308885)\dpicstop
-\draw (4.953051,-0.425552) node{\tt (,>>)};
-\dpicdraw (4.090551,0.274448)
- --(4.382218,0.274448)\dpicstop
-\dpicdraw (4.465551,0.357782)
- --(4.382218,0.274448)
- --(4.465551,0.191115)\dpicstop
-\draw (4.278051,0.074448) node{\tt tconn(,<)};
-\dpicdraw (4.765551,0.274448)
- --(4.994718,0.274448)\dpicstop
-\dpicdraw (5.078051,0.357782)
- --(4.994718,0.274448)
- --(5.078051,0.191115)\dpicstop
-\dpicdraw (5.140551,0.357782)
- --(5.057218,0.274448)
- --(5.140551,0.191115)\dpicstop
-\draw (4.953051,0.074448) node{\tt (,<<)};
-\dpicdraw (5.540551,0.357782)
- --(5.657218,0.357782)
- --(5.740551,0.274448)
- --(5.657218,0.191115)
- --(5.340551,0.191115)
- --(5.340551,0.357782)
- --(5.540551,0.357782)\dpicstop
-\draw (5.498884,0.274448) node{$ V_2$};
-\draw (5.340551,0.191115) node[below right=-2bp]{\tt tbox(V\_2)};
-\dpicdraw (5.540551,-0.225552)
- --(5.423884,-0.225552)
- --(5.340551,-0.142218)
- --(5.423884,-0.058885)
- --(5.657218,-0.058885)
- --(5.740551,-0.142218)
- --(5.657218,-0.225552)
- --(5.540551,-0.225552)\dpicstop
-\draw (5.540551,-0.142218) node{$ V_1$};
-\draw (5.340551,-0.225552) node[below right=-2bp]{\tt tbox(V\_1,{,},<>)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Contact.tex b/graphics/circuit_macros/doc/Contact.tex
deleted file mode 100644
index 1870617cc1..0000000000
--- a/graphics/circuit_macros/doc/Contact.tex
+++ /dev/null
@@ -1,373 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw[fill=white](0.02,0.03125) circle (0.007874in)\dpicstop
-\dpicdraw (0.04,0.03125)
- --(0.27,0.03125)\dpicstop
-\filldraw[line width=0bp](0.186667,0.114583)
- --(0.228333,0.03125)
- --(0.27,0.114583) --cycle\dpicstop
-\dpicdraw (0.228333,0.043673)
- --(0.228333,0.15625)
- --(0.328333,0.15625)\dpicstop
-\filldraw[line width=0bp](0.27,-0.114583)
- --(0.228333,-0.03125)
- --(0.186667,-0.114583) --cycle\dpicstop
-\dpicdraw (0.228333,-0.043673)
- --(0.228333,-0.15625)
- --(0.328333,-0.15625)\dpicstop
-\draw (0.164167,-0.347917) node{\tt contact};
-\draw (0,0.03125) node[left=-2bp]{\sl P};
-\draw (0.328333,-0.15625) node[right=-2bp]{\sl O};
-\draw (0.328333,0.15625) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](0.798333,-0.03125) circle (0.007874in)\dpicstop
-\dpicdraw (0.818333,-0.03125)
- --(1.048333,-0.03125)\dpicstop
-\filldraw[line width=0bp](1.048333,-0.114583)
- --(1.006667,-0.03125)
- --(0.965,-0.114583) --cycle\dpicstop
-\dpicdraw (1.006667,-0.043673)
- --(1.006667,-0.15625)
- --(1.106667,-0.15625)\dpicstop
-\filldraw[line width=0bp](0.965,0.114583)
- --(1.006667,0.03125)
- --(1.048333,0.114583) --cycle\dpicstop
-\dpicdraw (1.006667,0.043673)
- --(1.006667,0.15625)
- --(1.106667,0.15625)\dpicstop
-\draw (0.9425,-0.347917) node{\tt (R)};
-\draw (0.778333,-0.03125) node[left=-2bp]{\sl P};
-\draw (1.106667,0.15625) node[right=-2bp]{\sl O};
-\draw (1.106667,-0.15625) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](1.576667,0.104583) circle (0.007874in)\dpicstop
-\dpicdraw (1.596667,0.104583)
- --(1.826667,0.104583)\dpicstop
-\filldraw[line width=0bp](1.826667,-0.04125)
- --(1.785,0.042083)
- --(1.743333,-0.04125) --cycle\dpicstop
-\dpicdraw (1.785,0.029661)
- --(1.785,-0.082917)
- --(1.885,-0.082917)\dpicstop
-\draw (1.720833,-0.347917) node{\tt (O)};
-\dpicdraw[fill=white](2.355,-0.073333) circle (0.007874in)\dpicstop
-\dpicdraw (2.375,-0.073333)
- --(2.605,-0.073333)\dpicstop
-\filldraw[line width=0bp](2.521667,0.01)
- --(2.563333,-0.073333)
- --(2.605,0.01) --cycle\dpicstop
-\dpicdraw (2.563333,-0.060911)
- --(2.563333,0.051667)
- --(2.663333,0.051667)\dpicstop
-\draw (2.499167,-0.347917) node{\tt (C)};
-\dpicdraw[fill=white](3.133333,0) circle (0.007874in)\dpicstop
-\filldraw[line width=0bp](3.3,0.145833)
- --(3.341667,0.0625)
- --(3.383333,0.145833) --cycle\dpicstop
-\dpicdraw (3.341667,0.074923)
- --(3.341667,0.1875)
- --(3.441667,0.1875)\dpicstop
-\filldraw[line width=0bp](3.383333,-0.145833)
- --(3.341667,-0.0625)
- --(3.3,-0.145833) --cycle\dpicstop
-\dpicdraw (3.341667,-0.074923)
- --(3.341667,-0.1875)
- --(3.441667,-0.1875)\dpicstop
-\dpicdraw (3.153333,0)
- --(3.383333,0)\dpicstop
-\draw (3.2775,-0.379167) node{\tt (P)};
-\draw (3.113333,0) node[left=-2bp]{\sl P};
-\draw (3.441667,-0.1875) node[right=-2bp]{\sl O};
-\draw (3.441667,0.1875) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](3.911667,0) circle (0.007874in)\dpicstop
-\filldraw[line width=0bp](4.161667,-0.145833)
- --(4.12,-0.0625)
- --(4.078333,-0.145833) --cycle\dpicstop
-\dpicdraw (4.12,-0.074923)
- --(4.12,-0.1875)
- --(4.22,-0.1875)\dpicstop
-\filldraw[line width=0bp](4.078333,0.145833)
- --(4.12,0.0625)
- --(4.161667,0.145833) --cycle\dpicstop
-\dpicdraw (4.12,0.074923)
- --(4.12,0.1875)
- --(4.22,0.1875)\dpicstop
-\dpicdraw (3.931667,0)
- --(4.161667,0)\dpicstop
-\draw (4.055833,-0.379167) node{\tt (PR)};
-\draw (3.891667,0) node[left=-2bp]{\sl P};
-\draw (4.22,0.1875) node[right=-2bp]{\sl O};
-\draw (4.22,-0.1875) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](4.69,0) circle (0.007874in)\dpicstop
-\filldraw[line width=0bp](4.856667,0.145833)
- --(4.898333,0.0625)
- --(4.94,0.145833) --cycle\dpicstop
-\dpicdraw (4.898333,0.074923)
- --(4.898333,0.1875)
- --(4.998333,0.1875)\dpicstop
-\filldraw[line width=0bp](4.94,-0.145833)
- --(4.898333,-0.0625)
- --(4.856667,-0.145833) --cycle\dpicstop
-\dpicdraw (4.898333,-0.074923)
- --(4.898333,-0.1875)
- --(4.998333,-0.1875)\dpicstop
-\dpicdraw (4.709157,-0.005747)
- --(4.91749,-0.068247)\dpicstop
-\draw (4.834167,-0.379167) node{\tt (PO)};
-\draw (4.998333,-0.1875) node[right=-2bp]{\sl O};
-\draw (4.998333,0.1875) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](5.468333,0) circle (0.007874in)\dpicstop
-\filldraw[line width=0bp](5.635,0.145833)
- --(5.676667,0.0625)
- --(5.718333,0.145833) --cycle\dpicstop
-\dpicdraw (5.676667,0.074923)
- --(5.676667,0.1875)
- --(5.776667,0.1875)\dpicstop
-\filldraw[line width=0bp](5.718333,-0.145833)
- --(5.676667,-0.0625)
- --(5.635,-0.145833) --cycle\dpicstop
-\dpicdraw (5.676667,-0.074923)
- --(5.676667,-0.1875)
- --(5.776667,-0.1875)\dpicstop
-\dpicdraw (5.48749,0.005747)
- --(5.695823,0.068247)\dpicstop
-\draw (5.6125,-0.379167) node{\tt (PC)};
-\dpicdraw[fill=white](0.02,-0.711528) circle (0.007874in)\dpicstop
-\dpicdraw (0.04,-0.711528)
- --(0.27,-0.711528)\dpicstop
-\dpicdraw[fill=white](0.228333,-0.685972) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](0.228333,-0.814028) circle (0.007874in)\dpicstop
-\draw (0.135,-1.000694) node{\tt (I)};
-\draw (0,-0.711528) node[left=-2bp]{\sl P};
-\draw (0.248333,-0.814028) node[right=-2bp]{\sl O};
-\draw (0.248333,-0.685972) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](0.74,-0.788472) circle (0.007874in)\dpicstop
-\dpicdraw (0.76,-0.788472)
- --(0.99,-0.788472)\dpicstop
-\dpicdraw[fill=white](0.948333,-0.814028) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](0.948333,-0.685972) circle (0.007874in)\dpicstop
-\draw (0.855,-1.000694) node{\tt (RI)};
-\draw (0.72,-0.788472) node[left=-2bp]{\sl P};
-\draw (0.968333,-0.685972) node[right=-2bp]{\sl O};
-\draw (0.968333,-0.814028) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](1.46,-0.69875) circle (0.007874in)\dpicstop
-\dpicdraw (1.48,-0.69875)
- --(1.71,-0.69875)\dpicstop
-\dpicdraw[fill=white](1.668333,-0.80125) circle (0.007874in)\dpicstop
-\draw (1.575,-1.000694) node{\tt (OI)};
-\dpicdraw[fill=white](2.18,-0.762778) circle (0.007874in)\dpicstop
-\dpicdraw (2.2,-0.762778)
- --(2.43,-0.762778)\dpicstop
-\dpicdraw[fill=white](2.388333,-0.737222) circle (0.007874in)\dpicstop
-\draw (2.295,-1.000694) node{\tt (CI)};
-\dpicdraw[fill=white](2.9,-0.75) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.108333,-0.641944) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.108333,-0.858056) circle (0.007874in)\dpicstop
-\dpicdraw (2.92,-0.75)
- --(3.15,-0.75)\dpicstop
-\draw (3.015,-1.000694) node{\tt (PI)};
-\draw (3.128333,-0.858056) node[right=-2bp]{\sl O};
-\draw (3.128333,-0.641944) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](3.62,-0.75) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.828333,-0.641944) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.828333,-0.858056) circle (0.007874in)\dpicstop
-\dpicdraw (3.638651,-0.75722)
- --(3.856211,-0.841444)\dpicstop
-\draw (3.728105,-1.000694) node{\tt (PIO)};
-\dpicdraw[fill=white](4.326211,-0.75) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](4.534544,-0.641944) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](4.534544,-0.858056) circle (0.007874in)\dpicstop
-\dpicdraw (4.344862,-0.74278)
- --(4.562421,-0.658556)\dpicstop
-\draw (4.434316,-1.000694) node{\tt (PIC)};
-\dpicdraw[fill=white](0.02,-1.36875) circle (0.007874in)\dpicstop
-\dpicdraw (0.04,-1.36875)
- --(0.27,-1.36875)\dpicstop
-\dpicdraw (0.228333,-1.382639)
- --(0.228333,-1.299306)\dpicstop
-\dpicdraw (0.228333,-1.500694)
- --(0.228333,-1.417361)\dpicstop
-\draw (0.135,-1.650694) node{\tt (T)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.295,-1.320972)
- --(0.228333,-1.340972)
- --(0.295,-1.360972) --cycle\dpicstop
-\dpicdraw (0.247667,-1.340972)
- --(0.283,-1.340972)
- ..controls (0.306556,-1.340972) and (0.326667,-1.332639)
- ..(0.343333,-1.315972)
- --(0.368333,-1.290972)\dpicstop
-\draw (0.368333,-1.290972) node{$\;\;$\sl C};
-\filldraw[line width=0bp](0.295,-1.439028)
- --(0.228333,-1.459028)
- --(0.295,-1.479028) --cycle\dpicstop
-\dpicdraw (0.247667,-1.459028)
- --(0.283,-1.459028)
- ..controls (0.306556,-1.459028) and (0.326667,-1.467361)
- ..(0.343333,-1.484028)
- --(0.368333,-1.509028)\dpicstop
-\draw (0.368333,-1.509028) node{$\;\;$\sl O};
-\dpiclw=0.8bp
-\dpicdraw[fill=white](0.74,-1.43125) circle (0.007874in)\dpicstop
-\dpicdraw (0.76,-1.43125)
- --(0.99,-1.43125)\dpicstop
-\dpicdraw (0.948333,-1.500694)
- --(0.948333,-1.417361)\dpicstop
-\dpicdraw (0.948333,-1.382639)
- --(0.948333,-1.299306)\dpicstop
-\draw (0.855,-1.650694) node{\tt (RT)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.015,-1.320972)
- --(0.948333,-1.340972)
- --(1.015,-1.360972) --cycle\dpicstop
-\dpicdraw (0.967667,-1.340972)
- --(1.003,-1.340972)
- ..controls (1.026556,-1.340972) and (1.046667,-1.332639)
- ..(1.063333,-1.315972)
- --(1.088333,-1.290972)\dpicstop
-\draw (1.088333,-1.290972) node{$\;\;$\sl O};
-\filldraw[line width=0bp](1.015,-1.439028)
- --(0.948333,-1.459028)
- --(1.015,-1.479028) --cycle\dpicstop
-\dpicdraw (0.967667,-1.459028)
- --(1.003,-1.459028)
- ..controls (1.026556,-1.459028) and (1.046667,-1.467361)
- ..(1.063333,-1.484028)
- --(1.088333,-1.509028)\dpicstop
-\draw (1.088333,-1.509028) node{$\;\;$\sl C};
-\dpiclw=0.8bp
-\dpicdraw[fill=white](1.46,-1.344028) circle (0.007874in)\dpicstop
-\dpicdraw (1.48,-1.344028)
- --(1.71,-1.344028)\dpicstop
-\dpicdraw (1.668333,-1.475972)
- --(1.668333,-1.392639)\dpicstop
-\draw (1.575,-1.650694) node{\tt (OT)};
-\dpicdraw[fill=white](2.18,-1.424722) circle (0.007874in)\dpicstop
-\dpicdraw (2.2,-1.424722)
- --(2.43,-1.424722)\dpicstop
-\dpicdraw (2.388333,-1.438611)
- --(2.388333,-1.355278)\dpicstop
-\draw (2.295,-1.650694) node{\tt (CT)};
-\dpicdraw[fill=white](2.9,-1.4) circle (0.007874in)\dpicstop
-\dpicdraw (3.108333,-1.351389)
- --(3.108333,-1.268056)\dpicstop
-\dpicdraw (3.108333,-1.531944)
- --(3.108333,-1.448611)\dpicstop
-\dpicdraw (2.92,-1.4)
- --(3.15,-1.4)\dpicstop
-\draw (3.015,-1.650694) node{\tt (PT)};
-\dpicdraw[fill=white](3.62,-1.4) circle (0.007874in)\dpicstop
-\dpicdraw (3.828333,-1.351389)
- --(3.828333,-1.268056)\dpicstop
-\dpicdraw (3.828333,-1.531944)
- --(3.828333,-1.448611)\dpicstop
-\dpicdraw (3.639157,-1.405747)
- --(3.84749,-1.468247)\dpicstop
-\draw (3.723745,-1.650694) node{\tt (PTO)};
-\dpicdraw[fill=white](4.31749,-1.4) circle (0.007874in)\dpicstop
-\dpicdraw (4.525823,-1.351389)
- --(4.525823,-1.268056)\dpicstop
-\dpicdraw (4.525823,-1.531944)
- --(4.525823,-1.448611)\dpicstop
-\dpicdraw (4.336646,-1.394253)
- --(4.54498,-1.331753)\dpicstop
-\draw (4.421235,-1.650694) node{\tt (PTC)};
-\dpicdraw[fill=white](0.02,-2.05) circle (0.007874in)\dpicstop
-\dpicdraw (0.04,-2.05)
- --(0.27,-2.05)\dpicstop
-\dpicdraw (0.311667,-1.966667)
- --(0.228333,-1.966667)\dpicstop
-\dpicdraw (0.311667,-2.133333)
- --(0.228333,-2.133333)\dpicstop
-\draw (0.155833,-2.283333) node{\tt (U)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.378333,-1.946667)
- --(0.311667,-1.966667)
- --(0.378333,-1.986667) --cycle\dpicstop
-\dpicdraw (0.331001,-1.966667)
- --(0.366334,-1.966667)
- ..controls (0.389889,-1.966667) and (0.41,-1.958333)
- ..(0.426667,-1.941667)
- --(0.451667,-1.916667)\dpicstop
-\draw (0.451667,-1.916667) node{$\;\;$\sl C};
-\filldraw[line width=0bp](0.378333,-2.113333)
- --(0.311667,-2.133333)
- --(0.378333,-2.153333) --cycle\dpicstop
-\dpicdraw (0.331001,-2.133333)
- --(0.366334,-2.133333)
- ..controls (0.389889,-2.133333) and (0.41,-2.141667)
- ..(0.426667,-2.158333)
- --(0.451667,-2.183333)\dpicstop
-\draw (0.451667,-2.183333) node{$\;\;$\sl O};
-\dpiclw=0.8bp
-\dpicdraw[fill=white](0.781667,-2.05) circle (0.007874in)\dpicstop
-\dpicdraw (0.801667,-2.05)
- --(1.031667,-2.05)\dpicstop
-\dpicdraw (1.073333,-2.133333)
- --(0.99,-2.133333)\dpicstop
-\dpicdraw (1.073333,-1.966667)
- --(0.99,-1.966667)\dpicstop
-\draw (0.9175,-2.283333) node{\tt (RU)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.14,-1.946667)
- --(1.073333,-1.966667)
- --(1.14,-1.986667) --cycle\dpicstop
-\dpicdraw (1.092667,-1.966667)
- --(1.128,-1.966667)
- ..controls (1.151556,-1.966667) and (1.171667,-1.958333)
- ..(1.188333,-1.941667)
- --(1.213333,-1.916667)\dpicstop
-\draw (1.213333,-1.916667) node{$\;\;$\sl O};
-\filldraw[line width=0bp](1.14,-2.113333)
- --(1.073333,-2.133333)
- --(1.14,-2.153333) --cycle\dpicstop
-\dpicdraw (1.092667,-2.133333)
- --(1.128,-2.133333)
- ..controls (1.151556,-2.133333) and (1.171667,-2.141667)
- ..(1.188333,-2.158333)
- --(1.213333,-2.183333)\dpicstop
-\draw (1.213333,-2.183333) node{$\;\;$\sl C};
-\dpiclw=0.8bp
-\dpicdraw[fill=white](1.543333,-2.018333) circle (0.007874in)\dpicstop
-\dpicdraw (1.563333,-2.018333)
- --(1.793333,-2.018333)\dpicstop
-\dpicdraw (1.835,-2.101667)
- --(1.751667,-2.101667)\dpicstop
-\draw (1.679167,-2.283333) node{\tt (OU)};
-\draw (1.835,-2.101667) node[right=-2bp]{\sl O};
-\dpicdraw[fill=white](2.305,-2.081667) circle (0.007874in)\dpicstop
-\dpicdraw (2.325,-2.081667)
- --(2.555,-2.081667)\dpicstop
-\dpicdraw (2.596667,-1.998333)
- --(2.513333,-1.998333)\dpicstop
-\draw (2.440833,-2.283333) node{\tt (CU)};
-\draw (2.596667,-1.998333) node[right=-2bp]{\sl C};
-\dpicdraw[fill=white](3.066667,-2.05) circle (0.007874in)\dpicstop
-\dpicdraw (3.358333,-1.966667)
- --(3.275,-1.966667)\dpicstop
-\dpicdraw (3.358333,-2.133333)
- --(3.275,-2.133333)\dpicstop
-\dpicdraw (3.086667,-2.05)
- --(3.316667,-2.05)\dpicstop
-\draw (3.2025,-2.283333) node{\tt (PU)};
-\dpicdraw[fill=white](3.828333,-2.046552) circle (0.007874in)\dpicstop
-\dpicdraw (4.12,-1.963218)
- --(4.036667,-1.963218)\dpicstop
-\dpicdraw (4.12,-2.129885)
- --(4.036667,-2.129885)\dpicstop
-\dpicdraw (3.847107,-2.053448)
- --(4.073959,-2.136782)\dpicstop
-\draw (3.964167,-2.283333) node{\tt (PUO)};
-\dpicdraw[fill=white](4.59,-2.053448) circle (0.007874in)\dpicstop
-\dpicdraw (4.881667,-1.970115)
- --(4.798333,-1.970115)\dpicstop
-\dpicdraw (4.881667,-2.136782)
- --(4.798333,-2.136782)\dpicstop
-\dpicdraw (4.608773,-2.046552)
- --(4.835625,-1.963218)\dpicstop
-\draw (4.725833,-2.283333) node(S){\tt (PUC)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Contacts.tex b/graphics/circuit_macros/doc/Contacts.tex
deleted file mode 100644
index 2d9d5c5a6d..0000000000
--- a/graphics/circuit_macros/doc/Contacts.tex
+++ /dev/null
@@ -1,141 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw[fill=white](0.02,-0.1875) circle (0.007874in)\dpicstop
-\dpicdraw (0.04,-0.1875)
- --(0.27,-0.1875)\dpicstop
-\filldraw[line width=0bp](0.186667,-0.104167)
- --(0.228333,-0.1875)
- --(0.27,-0.104167) --cycle\dpicstop
-\dpicdraw (0.228333,-0.175077)
- --(0.228333,-0.0625)
- --(0.328333,-0.0625)\dpicstop
-\filldraw[line width=0bp](0.27,-0.333333)
- --(0.228333,-0.25)
- --(0.186667,-0.333333) --cycle\dpicstop
-\dpicdraw (0.228333,-0.262423)
- --(0.228333,-0.375)
- --(0.328333,-0.375)\dpicstop
-\dpicdraw[fill=white](0.02,0.25) circle (0.007874in)\dpicstop
-\dpicdraw (0.04,0.25)
- --(0.27,0.25)\dpicstop
-\filldraw[line width=0bp](0.186667,0.333333)
- --(0.228333,0.25)
- --(0.27,0.333333) --cycle\dpicstop
-\dpicdraw (0.228333,0.262423)
- --(0.228333,0.375)
- --(0.328333,0.375)\dpicstop
-\filldraw[line width=0bp](0.27,0.104167)
- --(0.228333,0.1875)
- --(0.186667,0.104167) --cycle\dpicstop
-\dpicdraw (0.228333,0.175077)
- --(0.228333,0.0625)
- --(0.328333,0.0625)\dpicstop
-\draw (0.164167,-0.583333) node{\tt contacts(2)};
-\draw (0,-0.1875) node[left=-2bp]{\sl P1};
-\draw (0.348333,-0.375) node[right=-2bp]{\sl O1};
-\draw (0.348333,-0.0625) node[right=-2bp]{\sl C1};
-\draw (0,0.25) node[left=-2bp]{\sl P2};
-\draw (0.348333,0.0625) node[right=-2bp]{\sl O2};
-\draw (0.348333,0.375) node[right=-2bp]{\sl C2};
-\dpicdraw[fill=white](1.098333,-0.294167) circle (0.007874in)\dpicstop
-\dpicdraw (1.118333,-0.294167)
- --(1.348333,-0.294167)\dpicstop
-\dpicdraw[fill=white](1.306667,-0.268611) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](1.306667,-0.396667) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](1.098333,-0.041111) circle (0.007874in)\dpicstop
-\dpicdraw (1.118333,-0.041111)
- --(1.348333,-0.041111)\dpicstop
-\dpicdraw[fill=white](1.306667,-0.015556) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](1.306667,-0.143611) circle (0.007874in)\dpicstop
-\draw (1.213333,-0.583333) node{\tt (2,I)};
-\draw (1.078333,-0.294167) node[left=-2bp]{\sl P1};
-\draw (1.326667,-0.396667) node[right=-2bp]{\sl O1};
-\draw (1.326667,-0.268611) node[right=-2bp]{\sl C1};
-\draw (1.078333,-0.041111) node[left=-2bp]{\sl P2};
-\draw (1.326667,-0.143611) node[right=-2bp]{\sl O2};
-\draw (1.326667,-0.015556) node[right=-2bp]{\sl C2};
-\dpicdraw[fill=white](2.118333,-0.294167) circle (0.007874in)\dpicstop
-\dpicdraw (2.138333,-0.294167)
- --(2.368333,-0.294167)\dpicstop
-\dpicdraw[fill=white](2.326667,-0.396667) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](2.118333,-0.066667) circle (0.007874in)\dpicstop
-\dpicdraw (2.138333,-0.066667)
- --(2.368333,-0.066667)\dpicstop
-\dpicdraw[fill=white](2.326667,-0.169167) circle (0.007874in)\dpicstop
-\draw (2.233333,-0.583333) node{\tt (2,IO)};
-\draw (2.098333,-0.294167) node[left=-2bp]{\sl P1};
-\draw (2.346667,-0.396667) node[right=-2bp]{\sl O1};
-\draw (2.098333,-0.066667) node[left=-2bp]{\sl P2};
-\draw (2.346667,-0.169167) node[right=-2bp]{\sl O2};
-\dpicdraw[fill=white](3.138333,-0.288611) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.346667,-0.180556) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.346667,-0.396667) circle (0.007874in)\dpicstop
-\dpicdraw (3.156984,-0.281391)
- --(3.374544,-0.197167)\dpicstop
-\dpicdraw[fill=white](3.138333,0.0525) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.346667,0.160556) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.346667,-0.055556) circle (0.007874in)\dpicstop
-\dpicdraw (3.156984,0.05972)
- --(3.374544,0.143944)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](3.265764,-0.289279)
- --(3.265764,0.151832)\dpicstop
-\draw (3.246439,-0.583333) node{\tt (2,PICD)};
-\draw (3.118333,-0.288611) node[left=-2bp]{\sl P1};
-\draw (3.366667,-0.396667) node[right=-2bp]{\sl O1};
-\draw (3.366667,-0.180556) node[right=-2bp]{\sl C1};
-\draw (3.118333,0.0525) node[left=-2bp]{\sl P2};
-\draw (3.366667,-0.055556) node[right=-2bp]{\sl O2};
-\draw (3.366667,0.160556) node[right=-2bp]{\sl C2};
-\dpicdraw[fill=white](4.144544,-0.284722) circle (0.007874in)\dpicstop
-\dpicdraw (4.352877,-0.236111)
- --(4.352877,-0.152778)\dpicstop
-\dpicdraw (4.352877,-0.416667)
- --(4.352877,-0.333333)\dpicstop
-\dpicdraw (4.1637,-0.278975)
- --(4.372034,-0.216475)\dpicstop
-\dpicdraw[fill=white](4.144544,0.020833) circle (0.007874in)\dpicstop
-\dpicdraw (4.352877,0.069444)
- --(4.352877,0.152778)\dpicstop
-\dpicdraw (4.352877,-0.111111)
- --(4.352877,-0.027778)\dpicstop
-\dpicdraw (4.1637,0.02658)
- --(4.372034,0.08908)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](4.267867,-0.297725)
- --(4.267867,0.10783)\dpicstop
-\draw (4.248289,-0.583333) node{\tt (2,PTCD)};
-\draw (4.124544,-0.284722) node[left=-2bp]{\sl P1};
-\draw (4.372877,-0.375) node[right=-2bp]{\sl O1};
-\draw (4.372877,-0.194444) node[right=-2bp]{\sl C1};
-\draw (4.124544,0.020833) node[left=-2bp]{\sl P2};
-\draw (4.372877,-0.069444) node[right=-2bp]{\sl O2};
-\draw (4.372877,0.111111) node[right=-2bp]{\sl C2};
-\dpicdraw[fill=white](5.142034,-0.333333) circle (0.007874in)\dpicstop
-\dpicdraw (5.4337,-0.25)
- --(5.350367,-0.25)\dpicstop
-\dpicdraw (5.4337,-0.416667)
- --(5.350367,-0.416667)\dpicstop
-\dpicdraw (5.160807,-0.326437)
- --(5.387659,-0.243104)\dpicstop
-\dpicdraw[fill=white](5.142034,-0.041667) circle (0.007874in)\dpicstop
-\dpicdraw (5.4337,0.041667)
- --(5.350367,0.041667)\dpicstop
-\dpicdraw (5.4337,-0.125)
- --(5.350367,-0.125)\dpicstop
-\dpicdraw (5.160807,-0.03477)
- --(5.387659,0.048563)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](5.274233,-0.33477)
- --(5.274233,0.056896)\dpicstop
-\draw (5.277867,-0.583333) node{\tt (2,PUCD)};
-\draw (5.122034,-0.333333) node[left=-2bp]{\sl P1};
-\draw (5.4537,-0.416667) node[right=-2bp]{\sl O1};
-\draw (5.4537,-0.25) node[right=-2bp]{\sl C1};
-\draw (5.122034,-0.041667) node[left=-2bp]{\sl P2};
-\draw (5.4537,-0.125) node[right=-2bp]{\sl O2};
-\draw (5.4537,0.041667) node[right=-2bp]{\sl C2};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Demultiplexer.tex b/graphics/circuit_macros/doc/Demultiplexer.tex
deleted file mode 100644
index e6e5ec9848..0000000000
--- a/graphics/circuit_macros/doc/Demultiplexer.tex
+++ /dev/null
@@ -1,148 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-{\sf
-\dpicdraw (0.2,0.075)
- --(0.2,0.425)
- --(0.6,0.525)
- --(0.6,-0.375)
- --(0.2,-0.275)
- --(0.2,0.075)\dpicstop
-\draw (0.4,0.075) node{\scriptsize DM1};
-\dpicdraw (0.2,0.075)
- --(0,0.075)\dpicstop
-\dpicdraw (0.4,-0.325)
- --(0.4,-0.525)\dpicstop
-\draw (0.6,0.4125) node[left=-2bp]{{\scriptsize 0}};
-\dpicdraw (0.6,0.4125)
- --(0.8,0.4125)\dpicstop
-\draw (0.6,0.1875) node[left=-2bp]{{\scriptsize 1}};
-\dpicdraw (0.6,0.1875)
- --(0.8,0.1875)\dpicstop
-\draw (0.6,-0.0375) node[left=-2bp]{{\scriptsize 2}};
-\dpicdraw (0.6,-0.0375)
- --(0.8,-0.0375)\dpicstop
-\draw (0.6,-0.2625) node[left=-2bp]{{\scriptsize 3}};
-\dpicdraw (0.6,-0.2625)
- --(0.8,-0.2625)\dpicstop
-\draw (0.4,-0.525) node[below=-2bp]{\tt Demux(4,DM1)};
-\draw (0.883333,0.495833) node{\sl Out0};
-\draw (0.883333,-0.345833) node{\sl Out3};
-\draw (0,0.075) node[left=-2bp]{\sl In};
-\draw (0.4,-0.525) node[above right=-2bp]{\sl Sel};
-\dpicdraw (1.8,-0.075)
- --(1.8,-0.425)
- --(1.4,-0.525)
- --(1.4,0.375)
- --(1.8,0.275)
- --(1.8,-0.075)\dpicstop
-\dpicdraw (1.8,-0.075)
- --(2,-0.075)\dpicstop
-\dpicdraw (1.6,0.325)
- --(1.6,0.525)\dpicstop
-\draw (1.4,0.2625) node[right=-2bp]{{\scriptsize 0}};
-\dpicdraw (1.4,0.2625)
- --(1.2,0.2625)\dpicstop
-\draw (1.4,0.0375) node[right=-2bp]{{\scriptsize 1}};
-\dpicdraw (1.4,0.0375)
- --(1.2,0.0375)\dpicstop
-\draw (1.4,-0.1875) node[right=-2bp]{{\scriptsize 2}};
-\dpicdraw (1.4,-0.1875)
- --(1.2,-0.1875)\dpicstop
-\draw (1.4,-0.4125) node[right=-2bp]{{\scriptsize 3}};
-\dpicdraw (1.4,-0.4125)
- --(1.2,-0.4125)\dpicstop
-\draw (1.8,0.15) node[left=-2bp]{{\scriptsize OE}};
-\dpicdraw (1.8,0.15)
- --(2,0.15)\dpicstop
-\draw (1.6,-0.802778) node{\tt left\_; Demux(4,{,}LOE)};
-\draw (1.6,0.525) node[left=-2bp]{\sl Sel};
-\draw (1.116667,0.345833) node{\sl Out0};
-\draw (2,0.15) node[right=-2bp]{\sl OE};
-\draw (2,-0.005556) node[right=-2bp]{\sl In};
-\dpicdraw (2.6,-0.0875)
- --(2.6,0.2625)
- --(3,0.3625)
- --(3,-0.5375)
- --(2.6,-0.4375)
- --(2.6,-0.0875)\dpicstop
-\dpicdraw (2.6,-0.0875)
- --(2.4,-0.0875)\dpicstop
-\dpicdraw (2.7,0.2875)
- --(2.7,0.4875)\dpicstop
-\dpicdraw (2.9,0.3375)
- --(2.9,0.5375)\dpicstop
-\draw (3,0.25) node[left=-2bp]{{\scriptsize 00}};
-\dpicdraw (3,0.25)
- --(3.2,0.25)\dpicstop
-\draw (3,0.025) node[left=-2bp]{{\scriptsize 01}};
-\dpicdraw (3,0.025)
- --(3.2,0.025)\dpicstop
-\draw (3,-0.2) node[left=-2bp]{{\scriptsize 10}};
-\dpicdraw (3,-0.2)
- --(3.2,-0.2)\dpicstop
-\draw (3,-0.425) node[left=-2bp]{{\scriptsize 11}};
-\dpicdraw (3,-0.425)
- --(3.2,-0.425)\dpicstop
-\draw (2.6,-0.3125) node[right=-2bp]{{\scriptsize $\overline{\hbox{OE}}$}};
-\dpicdraw (2.5625,-0.3125) circle (0.014764in)\dpicstop
-\dpicdraw (2.525,-0.3125)
- --(2.4,-0.3125)\dpicstop
-\draw (2.8,-0.5375) node[below=-2bp]{\tt (4,{,}NOEBN2)};
-\draw (2.7,0.4875) node[left=-2bp]{\sl Sel0};
-\draw (2.9,0.5375) node[right=-2bp]{\sl Sel1};
-\draw (3.269444,0.333333) node{\sl Out0};
-\draw (3.269444,-0.341667) node{\sl Out3};
-\draw (2.4,-0.3125) node[left=-2bp]{\sl NOE};
-\draw (2.4,-0.0875) node[above=-2bp]{\sl In};
-\dpicdraw (4.691667,0.2)
- --(5.291667,0.2)
- --(5.391667,-0.2)
- --(3.991667,-0.2)
- --(4.091667,0.2)
- --(4.691667,0.2)\dpicstop
-\dpicdraw (4.691667,0.2)
- --(4.691667,0.4)\dpicstop
-\dpicdraw (4.075,0.133333)
- --(3.875,0.133333)\dpicstop
-\dpicdraw (4.041667,0)
- --(3.841667,0)\dpicstop
-\dpicdraw (4.008333,-0.133333)
- --(3.808333,-0.133333)\dpicstop
-\draw (4.079167,-0.2) node[above=-2bp]{{\scriptsize 0}};
-\dpicdraw (4.079167,-0.2)
- --(4.079167,-0.4)\dpicstop
-\draw (4.254167,-0.2) node[above=-2bp]{{\scriptsize 1}};
-\dpicdraw (4.254167,-0.2)
- --(4.254167,-0.4)\dpicstop
-\draw (4.429167,-0.2) node[above=-2bp]{{\scriptsize 2}};
-\dpicdraw (4.429167,-0.2)
- --(4.429167,-0.4)\dpicstop
-\draw (4.604167,-0.2) node[above=-2bp]{{\scriptsize 3}};
-\dpicdraw (4.604167,-0.2)
- --(4.604167,-0.4)\dpicstop
-\draw (4.779167,-0.2) node[above=-2bp]{{\scriptsize 4}};
-\dpicdraw (4.779167,-0.2)
- --(4.779167,-0.4)\dpicstop
-\draw (4.954167,-0.2) node[above=-2bp]{{\scriptsize 5}};
-\dpicdraw (4.954167,-0.2)
- --(4.954167,-0.4)\dpicstop
-\draw (5.129167,-0.2) node[above=-2bp]{{\scriptsize 6}};
-\dpicdraw (5.129167,-0.2)
- --(5.129167,-0.4)\dpicstop
-\draw (5.304167,-0.2) node[above=-2bp]{{\scriptsize 7}};
-\dpicdraw (5.304167,-0.2)
- --(5.304167,-0.4)\dpicstop
-\draw (4.6,-0.608333) node{\tt down\_; Demux(8,{,}L3,{,}28*L\_unit)};
-\draw (3.875,0.133333) node[left=-2bp]{\sl Sel0};
-\draw (3.808333,-0.133333) node[below left=-2bp]{\sl Sel2};
-\draw (4.079167,-0.4) node[left=-2bp]{\sl Out0};
-\draw (5.304167,-0.4) node[right=-2bp]{\sl Out7};
-\draw (4.691667,0.4) node[left=-2bp]{\sl In};
-}
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Diodes.tex b/graphics/circuit_macros/doc/Diodes.tex
deleted file mode 100644
index a628327c27..0000000000
--- a/graphics/circuit_macros/doc/Diodes.tex
+++ /dev/null
@@ -1,383 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0,0)
- --(0.338916,0)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.338916,0)
- --(0.338916,0.041667)
- --(0.40555,0)
- --(0.338916,-0.041667)
- --(0.338916,0)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.411084,-0.045718)
- --(0.411084,0.045718)\dpicstop
-\dpicdraw (0.411084,0)
- --(0.75,0)\dpicstop
-\draw (0.777674,0) node[right=-2bp]{{\tt diode}};
-\dpicdraw (0,-0.2)
- --(0.338916,-0.2)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.338916,-0.2)
- --(0.338916,-0.158333)
- --(0.40555,-0.2)
- --(0.338916,-0.241667)
- --(0.338916,-0.2)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.390251,-0.227778)
- --(0.390251,-0.245718)
- --(0.411084,-0.245718)
- --(0.411084,-0.154282)
- --(0.431918,-0.154282)
- --(0.431918,-0.172222)\dpicstop
-\dpicdraw (0.411084,-0.2)
- --(0.75,-0.2)\dpicstop
-\draw (0.777674,-0.2) node[right=-2bp]{{\tt diode(,S)}};
-\dpicdraw (0,-0.4)
- --(0.338916,-0.4)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.338916,-0.4)
- --(0.338916,-0.358333)
- --(0.40555,-0.4)
- --(0.338916,-0.441667)
- --(0.338916,-0.4)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.411084,-0.445718)
- --(0.411084,-0.354282)\dpicstop
-\dpicdraw (0.431918,-0.445718)
- --(0.431918,-0.354282)\dpicstop
-\dpicdraw (0.431918,-0.4)
- --(0.75,-0.4)\dpicstop
-\draw (0.777674,-0.4) node[right=-2bp]{{\tt diode(,V)}};
-\dpicdraw (0,-0.6)
- --(0.338916,-0.6)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.338916,-0.6)
- --(0.338916,-0.558333)
- --(0.40555,-0.6)
- --(0.338916,-0.641667)
- --(0.338916,-0.6)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.411084,-0.645718)
- --(0.411084,-0.554282)\dpicstop
-\dpicdraw (0.438862,-0.645718)
- ..controls (0.421179,-0.617804) and (0.421179,-0.582196)
- ..(0.438862,-0.554282)\dpicstop
-\dpicdraw (0.4256,-0.6)
- --(0.431918,-0.6)\dpicstop
-\dpicdraw (0.431918,-0.6)
- --(0.75,-0.6)\dpicstop
-\draw (0.777674,-0.6) node[right=-2bp]{{\tt diode(,v)}};
-\dpicdraw (0,-0.8)
- --(0.338916,-0.8)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.338916,-0.8)
- --(0.338916,-0.758333)
- --(0.40555,-0.8)
- --(0.338916,-0.841667)
- --(0.338916,-0.8)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.397822,-0.754282)
- ..controls (0.415505,-0.782196) and (0.415505,-0.817804)
- ..(0.397822,-0.845718)\dpicstop
-\dpicdraw (0.431918,-0.845718)
- --(0.431918,-0.754282)\dpicstop
-\dpicdraw (0.431918,-0.8)
- --(0.75,-0.8)\dpicstop
-\draw (0.777674,-0.8) node[right=-2bp]{{\tt diode(,w)}};
-\dpicdraw (0,-1)
- --(0.302831,-1)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.302831,-1)
- --(0.302831,-0.958333)
- --(0.369465,-1)
- --(0.302831,-1.041667)
- --(0.302831,-1)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.354167,-1.045718)
- --(0.375,-1.045718)
- --(0.375,-0.954282)
- --(0.395833,-0.954282)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.447169,-1)
- --(0.447169,-0.958333)
- --(0.380535,-1)
- --(0.447169,-1.041667)
- --(0.447169,-1)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.447169,-1)
- --(0.75,-1)\dpicstop
-\draw (0.777674,-1) node[right=-2bp]{{\tt diode(,B)}};
-\dpicdraw (0,-1.2)
- --(0.302831,-1.2)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.302831,-1.2)
- --(0.302831,-1.158333)
- --(0.369465,-1.2)
- --(0.302831,-1.241667)
- --(0.302831,-1.2)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.447169,-1.2)
- --(0.447169,-1.158333)
- --(0.380535,-1.2)
- --(0.447169,-1.241667)
- --(0.447169,-1.2)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.447169,-1.2)
- --(0.75,-1.2)\dpicstop
-\draw (0.777674,-1.2) node[right=-2bp]{{\tt diode(,G)}};
-\dpicdraw (2,0)
- --(2.338916,0)\dpicstop
-\dpicdraw (2.338916,0)
- --(2.338916,0.041667)
- --(2.40555,0)
- --(2.338916,-0.041667)
- --(2.338916,0)\dpicstop
-\dpicdraw (2.411084,-0.045718)
- --(2.411084,0.045718)\dpicstop
-\dpicdraw (2.411084,0)
- --(2.75,0)\dpicstop
-\draw (2.777674,0) node[right=-2bp]{{\tt diode(,K)}};
-\dpicdraw (2,-0.2)
- --(2.338916,-0.2)\dpicstop
-\dpicdraw (2.338916,-0.2)
- --(2.338916,-0.158333)
- --(2.40555,-0.2)
- --(2.338916,-0.241667)
- --(2.338916,-0.2)\dpicstop
-\dpicdraw (2.390251,-0.245718)
- --(2.411084,-0.245718)
- --(2.411084,-0.154282)
- --(2.431918,-0.154282)\dpicstop
-\dpicdraw (2.411084,-0.2)
- --(2.75,-0.2)\dpicstop
-\draw (2.777674,-0.2) node[right=-2bp]{{\tt diode(,ZK)}};
-\dpicdraw (2,-0.4)
- --(2.338916,-0.4)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (2.338916,-0.4)
- --(2.338916,-0.358333)
- --(2.40555,-0.4)
- --(2.338916,-0.441667)
- --(2.338916,-0.4)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (2.411084,-0.445718)
- --(2.411084,-0.354282)\dpicstop
-\dpicdraw (2.390251,-0.445718)
- --(2.431918,-0.445718)\dpicstop
-\dpicdraw (2.390251,-0.354282)
- --(2.431918,-0.354282)\dpicstop
-\dpicdraw (2.411084,-0.4)
- --(2.75,-0.4)\dpicstop
-\draw (2.777674,-0.4) node[right=-2bp]{{\tt diode(,CR)}};
-\dpicdraw (2,-0.6)
- --(2.338916,-0.6)\dpicstop
-\dpicdraw (2.338916,-0.6)
- --(2.338916,-0.558333)
- --(2.40555,-0.6)
- --(2.338916,-0.641667)
- --(2.338916,-0.6)\dpicstop
-\dpicdraw (2.338916,-0.6)
- --(2.411084,-0.6)\dpicstop
-\dpicdraw (2.411084,-0.645718)
- --(2.411084,-0.554282)\dpicstop
-\dpicdraw (2.411084,-0.6)
- --(2.75,-0.6)\dpicstop
-\draw (2.777674,-0.6) node[right=-2bp]{{\tt diode(,L)}};
-\dpicdraw (2,-0.8)
- --(2.338916,-0.8)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (2.338916,-0.8)
- --(2.338916,-0.758333)
- --(2.40555,-0.8)
- --(2.338916,-0.8)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (2.338916,-0.8)
- --(2.338916,-0.841667)\dpicstop
-\dpicdraw (2.411084,-0.8)
- --(2.75,-0.8)\dpicstop
-\draw (2.777674,-0.8) node[right=-2bp]{{\tt diode(,F)}};
-\dpicdraw (2,-1)
- --(2.338916,-1)\dpicstop
-\dpicdraw (2.338916,-1)
- --(2.338916,-0.958333)
- --(2.40555,-1)
- --(2.338916,-1)\dpicstop
-\dpicdraw (2.338916,-1)
- --(2.338916,-1.041667)\dpicstop
-\dpicdraw (2.411084,-1.045718)
- --(2.411084,-0.954282)\dpicstop
-\dpicdraw (2.411084,-1)
- --(2.75,-1)\dpicstop
-\draw (2.777674,-1) node[right=-2bp]{{\tt diode(,Sh)}};
-\dpicdraw (2,-1.2)
- --(2.338916,-1.2)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (2.338916,-1.158333)
- --(2.338916,-1.116667)
- --(2.40555,-1.158333)
- --(2.338916,-1.2)
- --(2.338916,-1.158333)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (2.411084,-1.287385)
- --(2.411084,-1.112615)\dpicstop
-\dpicdraw (2.338916,-1.287385)
- --(2.338916,-1.112615)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (2.411084,-1.241667)
- --(2.411084,-1.2)
- --(2.34445,-1.241667)
- --(2.411084,-1.283333)
- --(2.411084,-1.241667)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (2.411084,-1.2)
- --(2.75,-1.2)\dpicstop
-\draw (2.777674,-1.2) node[right=-2bp]{{\tt diode(,D)}};
-\dpicdraw (4.75,0)
- --(4.411084,0)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.411084,0)
- --(4.411084,-0.041667)
- --(4.34445,0)
- --(4.411084,0.041667)
- --(4.411084,0)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (4.359749,0.045718)
- --(4.338916,0.045718)
- --(4.338916,-0.045718)
- --(4.318082,-0.045718)\dpicstop
-\dpicdraw (4.338916,0)
- --(4,0)\dpicstop
-\dpicdraw (4.375,0) circle (0.068898in)\dpicstop
-\draw (4.777674,0) node[right=-2bp]{{\tt diode(,Z,RE)}};
-\dpicdraw (4,-0.25)
- --(4.338916,-0.25)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.338916,-0.25)
- --(4.338916,-0.208333)
- --(4.40555,-0.25)
- --(4.338916,-0.291667)
- --(4.338916,-0.25)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (4.390251,-0.295718)
- --(4.411084,-0.295718)
- --(4.411084,-0.204282)
- --(4.390251,-0.204282)\dpicstop
-\dpicdraw (4.411084,-0.25)
- --(4.75,-0.25)\dpicstop
-\draw (4.777674,-0.25) node[right=-2bp]{{\tt diode(,T)}};
-\dpicdraw (4,-0.55)
- --(4.338916,-0.55)\dpicstop
-\filldraw[line width=0bp](4.269213,-0.43037)
- --(4.339362,-0.461236)
- --(4.308496,-0.391087) --cycle\dpicstop
-\dpicdraw (4.176728,-0.298602)
- --(4.328524,-0.450398)\dpicstop
-\filldraw[line width=0bp](4.225018,-0.474565)
- --(4.295168,-0.50543)
- --(4.264302,-0.435281) --cycle\dpicstop
-\dpicdraw (4.132533,-0.342796)
- --(4.284329,-0.494592)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.338916,-0.55)
- --(4.338916,-0.508333)
- --(4.40555,-0.55)
- --(4.338916,-0.591667)
- --(4.338916,-0.55)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (4.411084,-0.595718)
- --(4.411084,-0.504282)\dpicstop
-\dpicdraw (4.411084,-0.55)
- --(4.75,-0.55)\dpicstop
-\draw (4.777674,-0.55) node[right=-2bp]{{\tt diode(,P)}};
-\dpicdraw (4,-0.85)
- --(4.338916,-0.85)\dpicstop
-\filldraw[line width=0bp](4.202683,-0.673662)
- --(4.132533,-0.642796)
- --(4.163399,-0.712945) --cycle\dpicstop
-\dpicdraw (4.295168,-0.80543)
- --(4.143372,-0.653634)\dpicstop
-\filldraw[line width=0bp](4.246877,-0.629467)
- --(4.176728,-0.598602)
- --(4.207593,-0.668751) --cycle\dpicstop
-\dpicdraw (4.339362,-0.761236)
- --(4.187566,-0.60944)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.338916,-0.85)
- --(4.338916,-0.808333)
- --(4.40555,-0.85)
- --(4.338916,-0.891667)
- --(4.338916,-0.85)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (4.411084,-0.895718)
- --(4.411084,-0.804282)\dpicstop
-\dpicdraw (4.411084,-0.85)
- --(4.75,-0.85)\dpicstop
-\draw (4.777674,-0.85) node[right=-2bp]{{\tt diode(,LE)}};
-\dpicdraw (4,-1)
- --(4.338916,-1)\dpicstop
-\filldraw[line width=0bp](4.207593,-1.181249)
- --(4.176728,-1.251398)
- --(4.246877,-1.220533) --cycle\dpicstop
-\dpicdraw (4.339362,-1.088764)
- --(4.187566,-1.24056)\dpicstop
-\filldraw[line width=0bp](4.163399,-1.137055)
- --(4.132533,-1.207204)
- --(4.202683,-1.176338) --cycle\dpicstop
-\dpicdraw (4.295168,-1.04457)
- --(4.143372,-1.196366)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.338916,-1)
- --(4.338916,-0.958333)
- --(4.40555,-1)
- --(4.338916,-1.041667)
- --(4.338916,-1)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (4.411084,-1.045718)
- --(4.411084,-0.954282)\dpicstop
-\dpicdraw (4.411084,-1)
- --(4.75,-1)\dpicstop
-\draw (4.777674,-1) node[right=-2bp]{{\tt diode(,LER)}};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/DiodesMan.m4 b/graphics/circuit_macros/doc/DiodesMan.m4
index 33789fa5c7..534fcbc412 100644
--- a/graphics/circuit_macros/doc/DiodesMan.m4
+++ b/graphics/circuit_macros/doc/DiodesMan.m4
@@ -45,9 +45,9 @@ movewid = 2pt__
{ {diode(,Z,RE) ; move ; "`{\tt diode(,Z,RE)}'" ljust}
move down 0.30; right_
{diode(,U) ; move ; "`{\tt diode(,U)}'" ljust}
- move down 0.25; right_
+ move down 0.15; right_
{diode(,T) ; move ; "`{\tt diode(,T)}'" ljust}
- move down 0.20; right_
+ move down 0.30; right_
{diode(,P) ; move ; "`{\tt diode(,P)}'" ljust}
move down 0.30; right_
{diode(,LE) ; move ; "`{\tt diode(,LE)}'" ljust}
diff --git a/graphics/circuit_macros/doc/Emarrows.tex b/graphics/circuit_macros/doc/Emarrows.tex
deleted file mode 100644
index f409b62c3e..0000000000
--- a/graphics/circuit_macros/doc/Emarrows.tex
+++ /dev/null
@@ -1,142 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\filldraw[line width=0bp](0.53583,0.053354)
- --(0.465681,0.08422)
- --(0.496546,0.014071) --cycle\dpicstop
-\dpicdraw (0.628315,-0.078414)
- --(0.476519,0.073382)\dpicstop
-\filldraw[line width=0bp](0.580024,0.097549)
- --(0.509875,0.128414)
- --(0.540741,0.058265) --cycle\dpicstop
-\dpicdraw (0.672509,-0.03422)
- --(0.520713,0.117576)\dpicstop
-\dpicdraw[dotted](0.465681,-0.078414) rectangle (0.672509,0.128414)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.421111,0.086317)
- --(0.487778,0.106317)
- --(0.421111,0.126317) --cycle\dpicstop
-\dpicdraw (0.468444,0.106317)
- --(0.337778,0.106317)\dpicstop
-\draw (0.337778,0.106317) node[left=-2bp]{\sl Head};
-\filldraw[line width=0bp](0.670412,-0.122984)
- --(0.650412,-0.056317)
- --(0.630412,-0.122984) --cycle\dpicstop
-\dpicdraw (0.650412,-0.075651)
- --(0.650412,-0.176317)\dpicstop
-\draw (0.650412,-0.176317) node[below=-2bp]{\sl Tail};
-\draw (0.546998,0.002903) node[below left=-2bp]{\sl A1};
-\draw (0.591192,0.047097) node[above right=-2bp]{\sl A2};
-\dpiclw=0.8bp
-\draw (0.569095,-0.278414) node[below=-2bp]{\tt em\_arrows(N)};
-\filldraw[line width=0bp](1.724278,0.078265)
- --(1.755144,0.148414)
- --(1.684995,0.117549) --cycle\dpicstop
-\dpicdraw (1.592509,-0.01422)
- --(1.744305,0.137576)\dpicstop
-\filldraw[line width=0bp](1.768472,0.034071)
- --(1.799338,0.10422)
- --(1.729189,0.073354) --cycle\dpicstop
-\dpicdraw (1.636704,-0.058414)
- --(1.7885,0.093382)\dpicstop
-\dpicdraw[fill=black](1.592509,-0.01422) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](1.636704,-0.058414) circle (0.007874in)\dpicstop
-\draw (1.685924,-0.078414) node[below=-2bp]{\tt em\_arrows(ND,45)};
-\dpicdraw (2.561973,-0.071092)
- ..controls (2.55221,-0.080855) and (2.53638,-0.080855)
- ..(2.526617,-0.071092)
- ..controls (2.516854,-0.061329) and (2.516854,-0.0455)
- ..(2.526617,-0.035737)\dpicstop
-\dpicdraw (2.526617,-0.035737)
- ..controls (2.550188,-0.012166) and (2.514832,0.023189)
- ..(2.491262,-0.000381)\dpicstop
-\dpicdraw (2.491262,-0.000381)
- ..controls (2.481499,-0.010144) and (2.46567,-0.010144)
- ..(2.455907,-0.000381)
- ..controls (2.446144,0.009382) and (2.446144,0.025211)
- ..(2.455907,0.034974)\dpicstop
-\filldraw[line width=0bp](2.456861,0.073304)
- --(2.399338,0.091543)
- --(2.417577,0.03402) --cycle\dpicstop
-\dpicdraw (2.455907,0.034974)
- --(2.407872,0.083008)\dpicstop
-\dpicdraw (2.606167,-0.026898)
- ..controls (2.582597,-0.050468) and (2.547241,-0.015113)
- ..(2.570812,0.008457)\dpicstop
-\dpicdraw (2.570812,0.008457)
- ..controls (2.580575,0.018221) and (2.580575,0.03405)
- ..(2.570812,0.043813)
- ..controls (2.561048,0.053576) and (2.545219,0.053576)
- ..(2.535456,0.043813)\dpicstop
-\dpicdraw (2.535456,0.043813)
- ..controls (2.525693,0.03405) and (2.509864,0.03405)
- ..(2.500101,0.043813)
- ..controls (2.490338,0.053576) and (2.490338,0.069405)
- ..(2.500101,0.079168)\dpicstop
-\filldraw[line width=0bp](2.501055,0.117498)
- --(2.443532,0.135737)
- --(2.461771,0.078214) --cycle\dpicstop
-\dpicdraw (2.500101,0.079168)
- --(2.452066,0.127203)\dpicstop
-\draw (2.502753,-0.078414) node[below=-2bp]{\tt $\ldots$(I)};
-\dpicdraw (3.368801,-0.058414)
- ..controls (3.359038,-0.068177) and (3.343209,-0.068177)
- ..(3.333446,-0.058414)
- ..controls (3.323683,-0.048651) and (3.323683,-0.032822)
- ..(3.333446,-0.023059)\dpicstop
-\dpicdraw (3.333446,-0.023059)
- ..controls (3.357016,0.000511) and (3.321661,0.035867)
- ..(3.298091,0.012296)\dpicstop
-\dpicdraw (3.298091,0.012296)
- ..controls (3.288328,0.002533) and (3.272499,0.002533)
- ..(3.262735,0.012296)
- ..controls (3.252972,0.022059) and (3.252972,0.037889)
- ..(3.262735,0.047652)\dpicstop
-\filldraw[line width=0bp](3.263689,0.085981)
- --(3.206167,0.10422)
- --(3.224406,0.046698) --cycle\dpicstop
-\dpicdraw (3.262735,0.047652)
- --(3.214701,0.095686)\dpicstop
-\dpicdraw (3.412996,-0.01422)
- ..controls (3.389425,-0.03779) and (3.35407,-0.002435)
- ..(3.37764,0.021135)\dpicstop
-\dpicdraw (3.37764,0.021135)
- ..controls (3.387403,0.030898) and (3.387403,0.046727)
- ..(3.37764,0.05649)
- ..controls (3.367877,0.066254) and (3.352048,0.066254)
- ..(3.342285,0.05649)\dpicstop
-\dpicdraw (3.342285,0.05649)
- ..controls (3.332522,0.046727) and (3.316693,0.046727)
- ..(3.30693,0.05649)
- ..controls (3.297167,0.066254) and (3.297167,0.082083)
- ..(3.30693,0.091846)\dpicstop
-\filldraw[line width=0bp](3.307884,0.130176)
- --(3.250361,0.148414)
- --(3.2686,0.090892) --cycle\dpicstop
-\dpicdraw (3.30693,0.091846)
- --(3.258895,0.13988)\dpicstop
-\dpicdraw[fill=black](3.368801,-0.058414) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](3.412996,-0.01422) circle (0.007874in)\dpicstop
-\draw (3.319581,-0.078414) node[below=-2bp]{\tt $\ldots$(ID)};
-\dpicdraw (4.121384,-0.078414)
- --(4.032996,0.009974)
- --(4.032996,-0.02931)\dpicstop
-\dpicdraw (4.165578,-0.03422)
- --(4.07719,0.054168)
- --(4.07719,0.014884)\dpicstop
-\draw (4.099287,-0.078414) node[below=-2bp]{\tt $\ldots$(E)};
-\dpicdraw (4.853966,-0.058414)
- --(4.765578,0.029974)
- --(4.765578,-0.00931)\dpicstop
-\dpicdraw (4.898161,-0.01422)
- --(4.809772,0.074168)
- --(4.809772,0.034884)\dpicstop
-\dpicdraw[fill=black](4.853966,-0.058414) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](4.898161,-0.01422) circle (0.007874in)\dpicstop
-\draw (4.841869,-0.078414) node[below=-2bp]{\tt $\ldots$(ED)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/EmarrowsMan.m4 b/graphics/circuit_macros/doc/EmarrowsMan.m4
index c4b2131902..eed90cf621 100644
--- a/graphics/circuit_macros/doc/EmarrowsMan.m4
+++ b/graphics/circuit_macros/doc/EmarrowsMan.m4
@@ -1,30 +1,28 @@
.PS
-# `Emarrows.m4'
+# `EmarrowsMan.m4'
cct_init
+
hskip = 0.6
-[
- { em_arrows(N)
- box dotted wid last [].wid ht last [].ht at last [].c
+ { A: em_arrows()
+ box dotted wid A.wid ht A.ht at A.c
thinlines_
- arrow <- left 0.15 from last [].Head; "\sl Head" wid 0.31 rjust
- arrow <- down 0.12 from last [].Tail; "\sl Tail" below
- "\sl A1" rjust below at last [].A1.c
- "\sl A2" ljust above at last [].A2.c
+ arrow <- left 0.15 from A.Head; "\sl Head" wid 0.31 rjust
+ arrow <- right 0.12 from A.Tail; "\sl Tail" ljust
+ arrow <- left 0.15 from 0.6 between A.A1.end and A.A1.start; "\sl A1" rjust
+ arrow <- right 0.15 up 0.07 from A.A2; "\sl A2" ljust
thicklines_
- move down 0.25 from last [].s
- move up 0.2 from last [].n
- "\tt em\_arrows(N)" at last [].s+(0,-0.20) below }
+ move down 0.25 from A.s
+ move up 0.2 from A.n
+ "\tt em\_arrows(N)" at A.s+(0,-4bp__) below }
{ em_arrows(ND,45) with .sw at last [].se+(hskip*1.5,0)
- "\tt em\_arrows(ND,45)" at last [].s below }
+ "\tt $\ldots$(ND,45)" at last [].s below }
{ em_arrows(I) with .sw at last [].se+(hskip,0)
"\tt $\ldots$(I)" at last [].s below }
{ em_arrows(ID) with .sw at last [].se+(hskip,0)
"\tt $\ldots$(ID)" at last [].s below }
{ em_arrows(E) with .sw at last [].se+(hskip,0)
"\tt $\ldots$(E)" at last [].s below }
- { em_arrows(ED) with .sw at last [].se+(hskip,0)
- "\tt $\ldots$(ED)" at last [].s below }
- ]
-#showbox_
+ { A: em_arrows(NT) with .sw at last [].se+(hskip,0)
+ "\tt $\ldots$(NT)" at last [].s below }
.PE
diff --git a/graphics/circuit_macros/doc/Fuses.tex b/graphics/circuit_macros/doc/Fuses.tex
deleted file mode 100644
index f0ae5f2e95..0000000000
--- a/graphics/circuit_macros/doc/Fuses.tex
+++ /dev/null
@@ -1,174 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0,0)
- --(0.275,0)\dpicstop
-\dpicdraw (0.275,-0)
- ..controls (0.275,0.027614) and (0.297386,0.05)
- ..(0.325,0.05)
- ..controls (0.352614,0.05) and (0.375,0.027614)
- ..(0.375,0)\dpicstop
-\dpicdraw (0.375,0)
- ..controls (0.375,-0.027614) and (0.397386,-0.05)
- ..(0.425,-0.05)
- ..controls (0.452614,-0.05) and (0.475,-0.027614)
- ..(0.475,0)\dpicstop
-\dpicdraw (0.475,0)
- --(0.75,0)\dpicstop
-\draw (0.375,-0.2) node{{\tt fuse}};
-\dpicdraw (1,0)
- --(1.275,0)\dpicstop
-\dpicdraw (1.275,-0)
- ..controls (1.275,0.027614) and (1.297386,0.05)
- ..(1.325,0.05)
- ..controls (1.352614,0.05) and (1.375,0.027614)
- ..(1.375,0)\dpicstop
-\dpicdraw[fill=white](1.275,-0) circle (0.007874in)\dpicstop
-\dpicdraw (1.375,0)
- ..controls (1.375,-0.027614) and (1.397386,-0.05)
- ..(1.425,-0.05)
- ..controls (1.452614,-0.05) and (1.475,-0.027614)
- ..(1.475,0)\dpicstop
-\dpicdraw (1.475,0)
- --(1.75,0)\dpicstop
-\dpicdraw[fill=white](1.475,0) circle (0.007874in)\dpicstop
-\draw (1.375,-0.2) node{{\tt fuse(,D)}};
-\dpicdraw (2,0)
- --(2.275,0)\dpicstop
-\dpicdraw (2.475,0)
- --(2.475,0.05)
- --(2.275,0.05)
- --(2.275,-0.05)
- --(2.475,-0.05)
- --(2.475,0)\dpicstop
-\dpicdraw (2.275,0)
- --(2.75,0)\dpicstop
-\draw (2.375,-0.2) node{{\tt fuse(,B)}};
-\dpicdraw (3,0)
- --(3.275,0)\dpicstop
-\dpicdraw (3.475,0)
- --(3.475,0.05)
- --(3.275,0.05)
- --(3.275,-0.05)
- --(3.475,-0.05)
- --(3.475,0)\dpicstop
-\dpicdraw (3.315,-0.05)
- --(3.315,0.05)\dpicstop
-\dpicdraw (3.435,-0.05)
- --(3.435,0.05)\dpicstop
-\dpicdraw (3.475,0)
- --(3.75,0)\dpicstop
-\draw (3.375,-0.2) node{{\tt fuse(,C)}};
-\dpicdraw (4,0)
- --(4.275,0)\dpicstop
-\dpicdraw (4.475,0)
- --(4.475,0.05)
- --(4.275,0.05)
- --(4.275,-0.05)
- --(4.475,-0.05)
- --(4.475,0)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.315,0)
- --(4.315,0.05)
- --(4.275,0.05)
- --(4.275,-0.05)
- --(4.315,-0.05)
- --(4.315,0)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (4.475,0)
- --(4.75,0)\dpicstop
-\draw (4.375,-0.2) node{{\tt fuse(,S)}};
-\dpicdraw (5,0)
- --(5.208333,0)\dpicstop
-\dpicdraw (5.508333,0)
- --(5.508333,0.05)
- --(5.241667,0.05)
- --(5.241667,-0.05)
- --(5.508333,-0.05)
- --(5.508333,0)\dpicstop
-\dpicdraw (5.541667,0)
- --(5.541667,0.083333)
- --(5.208333,0.083333)
- --(5.208333,-0.083333)
- --(5.541667,-0.083333)
- --(5.541667,0)\dpicstop
-\dpicdraw (5.208333,0)
- --(5.75,0)\dpicstop
-\draw (5.375,-0.2) node{{\tt fuse(,HB)}};
-\dpicdraw (0,-0.5)
- --(0.125,-0.5)\dpicstop
-\dpicdraw (0.565,-0.5)
- --(0.565,-0.41)
- --(0.185,-0.41)
- --(0.185,-0.59)
- --(0.565,-0.59)
- --(0.565,-0.5)\dpicstop
-\dpicdraw (0.261,-0.41)
- --(0.261,-0.59)\dpicstop
-\dpicdraw (0.489,-0.41)
- --(0.489,-0.59)\dpicstop
-\dpicdraw (0.625,-0.5)
- --(0.625,-0.35)
- --(0.125,-0.35)
- --(0.125,-0.65)
- --(0.625,-0.65)
- --(0.625,-0.5)\dpicstop
-\dpicdraw (0.625,-0.5)
- --(0.75,-0.5)\dpicstop
-\draw (0.375,-0.75) node{{\tt (,HC,0.5,0.3)}};
-\dpicdraw (1,-0.5)
- --(1.291667,-0.5)\dpicstop
-\dpicdraw (1.276042,-0.46875)
- ..controls (1.325521,-0.402778) and (1.424479,-0.402778)
- ..(1.473958,-0.46875)\dpicstop
-\dpicdraw (1.458333,-0.5)
- --(1.75,-0.5)\dpicstop
-\draw (1.375,-0.75) node{{\tt cbreaker}};
-\dpicdraw (2,-0.5)
- --(2.291667,-0.5)\dpicstop
-\dpicdraw (2.276042,-0.53125)
- ..controls (2.325521,-0.597222) and (2.424479,-0.597222)
- ..(2.473958,-0.53125)\dpicstop
-\dpicdraw (2.458333,-0.5)
- --(2.75,-0.5)\dpicstop
-\draw (2.375,-0.75) node{{\tt cbreaker(,R)}};
-\dpicdraw (3,-0.5)
- --(3.291667,-0.5)\dpicstop
-\dpicdraw (3.276042,-0.46875)
- ..controls (3.325521,-0.402778) and (3.424479,-0.402778)
- ..(3.473958,-0.46875)\dpicstop
-\dpicdraw (3.458333,-0.5)
- --(3.75,-0.5)\dpicstop
-\draw (3.375,-0.75) node{{\tt $\ldots$(,{,}D)}};
-\dpicdraw (4,-0.5)
- --(4.275,-0.5)\dpicstop
-\dpicdraw[line width=0.4bp](4.275,-0.5) circle (0.00109in)\dpicstop
-\dpicdraw (4.275,-0.5)
- ..controls (4.275,-0.46151) and (4.316667,-0.437454)
- ..(4.35,-0.456699)
- ..controls (4.383333,-0.475944) and (4.383333,-0.524056)
- ..(4.35,-0.543301)\dpicstop
-\dpicdraw[line width=0.4bp](4.475,-0.5) circle (0.00109in)\dpicstop
-\dpicdraw (4.475,-0.5)
- ..controls (4.475,-0.53849) and (4.433333,-0.562546)
- ..(4.4,-0.543301)
- ..controls (4.366667,-0.524056) and (4.366667,-0.475944)
- ..(4.4,-0.456699)\dpicstop
-\dpicdraw (4.475,-0.5)
- --(4.75,-0.5)\dpicstop
-\draw (4.375,-0.75) node{{\tt $\ldots$(,{,}T)}};
-\dpicdraw (5,-0.5)
- --(5.325,-0.5)
- --(5.325,-0.45)
- --(5.425,-0.45)
- --(5.425,-0.5)
- --(5.75,-0.5)\dpicstop
-\draw (5.375,-0.75) node{{\tt $\ldots$(,{,}TS)}};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Grounds.tex b/graphics/circuit_macros/doc/Grounds.tex
deleted file mode 100644
index 97ea3b7d9e..0000000000
--- a/graphics/circuit_macros/doc/Grounds.tex
+++ /dev/null
@@ -1,91 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0,0)
- --(0,-0.125)\dpicstop
-\dpicdraw (0.083333,-0.125)
- --(-0.083333,-0.125)\dpicstop
-\dpicdraw (0.055556,-0.15625)
- --(-0.055556,-0.15625)\dpicstop
-\dpicdraw (0.035714,-0.1875)
- --(-0.035714,-0.1875)\dpicstop
-\dpicdraw (0.733333,0)
- --(0.566667,-0)\dpicstop
-\dpicdraw (0.705556,-0.03125)
- --(0.594444,-0.03125)\dpicstop
-\dpicdraw (0.685714,-0.0625)
- --(0.614286,-0.0625)\dpicstop
-\dpicdraw (1.3,0)
- --(1.3,-0.125)\dpicstop
-\dpicdraw (1.341667,-0.1875)
- --(1.383333,-0.125)
- --(1.216667,-0.125)
- --(1.175,-0.1875)\dpicstop
-\dpicdraw (1.3,-0.125)
- --(1.258333,-0.1875)\dpicstop
-\dpicdraw (1.95,0)
- --(1.95,-0.125)\dpicstop
-\dpicdraw[line width=1.6bp](2.005556,-0.125)
- --(1.894444,-0.125)\dpicstop
-\draw (0,-0.5) node{{\tt ground}};
-\draw (0.65,-0.402778) node{{\tt ground(,T)}};
-\draw (1.3,-0.5) node{{\tt (,{,}F)}};
-\draw (1.95,-0.5) node{{\tt (,{,}E)}};
-\dpicdraw (2.6,0)
- --(2.6,-0.125)\dpicstop
-\dpicdraw (2.6,-0.125)
- --(2.683333,-0.125)
- --(2.6,-0.25)
- --(2.516667,-0.125)
- --(2.6,-0.125)\dpicstop
-\dpicdraw (3.25,-0.25)
- --(3.25,-0.125)\dpicstop
-\dpicdraw (3.25,-0.125)
- --(3.166667,-0.125)
- --(3.25,0)
- --(3.333333,-0.125)
- --(3.25,-0.125)\dpicstop
-\dpicdraw (3.9,0)
- --(3.9,-0.125)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (3.9,-0.125)
- --(3.983333,-0.125)
- --(3.9,-0.25)
- --(3.816667,-0.125)
- --(3.9,-0.125)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (4.55,0)
- --(4.55,-0.125)\dpicstop
-\dpicdraw (4.441747,-0.21875)
- ..controls (4.393634,-0.135417) and (4.453775,-0.03125)
- ..(4.55,-0.03125)
- ..controls (4.646225,-0.03125) and (4.706366,-0.135417)
- ..(4.658253,-0.21875)\dpicstop
-\dpicdraw (4.633333,-0.125)
- --(4.466667,-0.125)\dpicstop
-\dpicdraw (4.605556,-0.15625)
- --(4.494444,-0.15625)\dpicstop
-\dpicdraw (4.585714,-0.1875)
- --(4.514286,-0.1875)\dpicstop
-\dpicdraw (5.2,0)
- --(5.2,-0.125)\dpicstop
-\dpicdraw (5.2,-0.15625) circle (0.049213in)\dpicstop
-\dpicdraw (5.283333,-0.125)
- --(5.116667,-0.125)\dpicstop
-\dpicdraw (5.255556,-0.15625)
- --(5.144444,-0.15625)\dpicstop
-\dpicdraw (5.235714,-0.1875)
- --(5.164286,-0.1875)\dpicstop
-\draw (2.6,-0.5) node{{\tt (,{,}S)}};
-\draw (3.25,-0.5) node{{\tt (,{,}S,90)}};
-\draw (3.9,-0.5) node{{\tt (,{,}Q)}};
-\draw (4.55,-0.5) node{{\tt (,{,}L)}};
-\draw (5.2,-0.5) node{{\tt (,{,}P)}};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Headers.tex b/graphics/circuit_macros/doc/Headers.tex
deleted file mode 100644
index c5b11a87ec..0000000000
--- a/graphics/circuit_macros/doc/Headers.tex
+++ /dev/null
@@ -1,214 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.275,0)
- --(0.275,0.15)
- --(0.125,0.15)
- --(0.125,-0.15)
- --(0.275,-0.15)
- --(0.275,0)\dpicstop
-\dpicdraw (0.2,0.075)
- --(0,0.075)\dpicstop
-\fill[fill=white,line width=0bp](0.225,0.075)
- --(0.225,0.1)
- --(0.175,0.1)
- --(0.175,0.05)
- --(0.225,0.05)
- --(0.225,0.075)--cycle
-\dpicstop
-\dpicdraw (0.225,0.075)
- --(0.225,0.1)
- --(0.175,0.1)
- --(0.175,0.05)
- --(0.225,0.05)
- --(0.225,0.075)\dpicstop
-\dpicdraw (0.2,-0.075)
- --(0,-0.075)\dpicstop
-\dpicdraw[fill=white](0.2,-0.075) circle (0.009843in)\dpicstop
-\draw (0,0.075) node[left=-2bp]{\sl P1};
-\draw (0.1375,-0.28837) node{\tt Header};
-\draw (0,-0.075) node[left=-2bp]{\sl P2};
-\dpicdraw (1.464961,-0.09685)
- --(1.464961,0.1)
- --(1.15,0.1)
- --(1.15,-0.293701)
- --(1.464961,-0.293701)
- --(1.464961,-0.09685)\dpicstop
-\dpicdraw (1.225,0.034383)
- --(1.025,0.034383)\dpicstop
-\fill[fill=white,line width=0bp](1.25,0.034383)
- --(1.25,0.059383)
- --(1.2,0.059383)
- --(1.2,0.009383)
- --(1.25,0.009383)
- --(1.25,0.034383)--cycle
-\dpicstop
-\dpicdraw (1.25,0.034383)
- --(1.25,0.059383)
- --(1.2,0.059383)
- --(1.2,0.009383)
- --(1.25,0.009383)
- --(1.25,0.034383)\dpicstop
-\dpicdraw (1.389961,0.034383)
- --(1.589961,0.034383)\dpicstop
-\dpicdraw[fill=white](1.389961,0.034383) circle (0.009843in)\dpicstop
-\dpicdraw (1.225,-0.09685)
- --(1.025,-0.09685)\dpicstop
-\dpicdraw[fill=white](1.225,-0.09685) circle (0.009843in)\dpicstop
-\dpicdraw (1.389961,-0.09685)
- --(1.589961,-0.09685)\dpicstop
-\dpicdraw[fill=white](1.389961,-0.09685) circle (0.009843in)\dpicstop
-\dpicdraw (1.225,-0.228084)
- --(1.025,-0.228084)\dpicstop
-\dpicdraw[fill=white](1.225,-0.228084) circle (0.009843in)\dpicstop
-\dpicdraw (1.389961,-0.228084)
- --(1.589961,-0.228084)\dpicstop
-\dpicdraw[fill=white](1.389961,-0.228084) circle (0.009843in)\dpicstop
-\draw (1.025,0.034383) node[left=-2bp]{\sl P1};
-\draw (1.30748,-0.432071) node{\tt Header(2,3,8mm\_\_,10mm\_\_)};
-\draw (1.589961,0.034383) node[right=-2bp]{\sl P2};
-\draw (1.025,-0.228084) node[left=-2bp]{\sl P5};
-\draw (1.589961,-0.228084) node[right=-2bp]{\sl P6};
-\fill[fill=white!90!black,line width=0bp](2.464961,0.006299)
- --(2.464961,-0.293701)
- --(2.764961,-0.293701)
- --(2.764961,0.306299)
- --(2.464961,0.306299)
- --(2.464961,0.006299)--cycle
-\dpicstop
-\dpicdraw (2.464961,0.006299)
- --(2.464961,-0.293701)
- --(2.764961,-0.293701)
- --(2.764961,0.306299)
- --(2.464961,0.306299)
- --(2.464961,0.006299)\dpicstop
-\dpicdraw (2.689961,-0.218701)
- --(2.889961,-0.218701)\dpicstop
-\fill[fill=white,line width=0bp](2.664961,-0.218701)
- --(2.664961,-0.243701)
- --(2.714961,-0.243701)
- --(2.714961,-0.193701)
- --(2.664961,-0.193701)
- --(2.664961,-0.218701)--cycle
-\dpicstop
-\dpicdraw (2.664961,-0.218701)
- --(2.664961,-0.243701)
- --(2.714961,-0.243701)
- --(2.714961,-0.193701)
- --(2.664961,-0.193701)
- --(2.664961,-0.218701)\dpicstop
-\dpicdraw (2.539961,-0.218701)
- --(2.339961,-0.218701)\dpicstop
-\dpicdraw[fill=white](2.539961,-0.218701) circle (0.009843in)\dpicstop
-\dpicdraw (2.689961,-0.068701)
- --(2.889961,-0.068701)\dpicstop
-\dpicdraw[fill=white](2.689961,-0.068701) circle (0.009843in)\dpicstop
-\dpicdraw (2.539961,-0.068701)
- --(2.339961,-0.068701)\dpicstop
-\dpicdraw[fill=white](2.539961,-0.068701) circle (0.009843in)\dpicstop
-\dpicdraw (2.689961,0.081299)
- --(2.889961,0.081299)\dpicstop
-\dpicdraw[fill=white](2.689961,0.081299) circle (0.009843in)\dpicstop
-\dpicdraw (2.539961,0.081299)
- --(2.339961,0.081299)\dpicstop
-\dpicdraw[fill=white](2.539961,0.081299) circle (0.009843in)\dpicstop
-\dpicdraw (2.689961,0.231299)
- --(2.889961,0.231299)\dpicstop
-\dpicdraw[fill=white](2.689961,0.231299) circle (0.009843in)\dpicstop
-\dpicdraw (2.539961,0.231299)
- --(2.339961,0.231299)\dpicstop
-\dpicdraw[fill=white](2.539961,0.231299) circle (0.009843in)\dpicstop
-\draw (2.889961,-0.218701) node[right=-2bp]{\sl P1};
-\draw (2.614961,-0.570441) node{\tt left\_; Header(2,4,{,},fill\_(0.9))};
-\draw (2.339961,0.231299) node[left=-2bp]{\sl P8};
-\dpicdraw (4.239961,-0.118701)
- --(4.839961,-0.118701)
- --(4.839961,0.181299)
- --(3.639961,0.181299)
- --(3.639961,-0.118701)
- --(4.239961,-0.118701)\dpicstop
-\dpicdraw (4.764961,0.106299)
- --(4.764961,0.306299)\dpicstop
-\fill[fill=white,line width=0bp](4.764961,0.081299)
- --(4.789961,0.081299)
- --(4.789961,0.131299)
- --(4.739961,0.131299)
- --(4.739961,0.081299)
- --(4.764961,0.081299)--cycle
-\dpicstop
-\dpicdraw (4.764961,0.081299)
- --(4.789961,0.081299)
- --(4.789961,0.131299)
- --(4.739961,0.131299)
- --(4.739961,0.081299)
- --(4.764961,0.081299)\dpicstop
-\dpicdraw (4.764961,-0.043701)
- --(4.764961,-0.243701)\dpicstop
-\dpicdraw[fill=white](4.764961,-0.043701) circle (0.009843in)\dpicstop
-\dpicdraw (4.614961,0.106299)
- --(4.614961,0.306299)\dpicstop
-\dpicdraw[fill=white](4.614961,0.106299) circle (0.009843in)\dpicstop
-\dpicdraw (4.614961,-0.043701)
- --(4.614961,-0.243701)\dpicstop
-\dpicdraw[fill=white](4.614961,-0.043701) circle (0.009843in)\dpicstop
-\dpicdraw (4.464961,0.106299)
- --(4.464961,0.306299)\dpicstop
-\dpicdraw[fill=white](4.464961,0.106299) circle (0.009843in)\dpicstop
-\dpicdraw (4.464961,-0.043701)
- --(4.464961,-0.243701)\dpicstop
-\dpicdraw[fill=white](4.464961,-0.043701) circle (0.009843in)\dpicstop
-\dpicdraw (4.314961,0.106299)
- --(4.314961,0.306299)\dpicstop
-\dpicdraw[fill=white](4.314961,0.106299) circle (0.009843in)\dpicstop
-\dpicdraw (4.314961,-0.043701)
- --(4.314961,-0.243701)\dpicstop
-\dpicdraw[fill=white](4.314961,-0.043701) circle (0.009843in)\dpicstop
-\dpicdraw (4.164961,0.106299)
- --(4.164961,0.306299)\dpicstop
-\dpicdraw[fill=white](4.164961,0.106299) circle (0.009843in)\dpicstop
-\dpicdraw (4.164961,-0.043701)
- --(4.164961,-0.243701)\dpicstop
-\dpicdraw[fill=white](4.164961,-0.043701) circle (0.009843in)\dpicstop
-\dpicdraw (4.014961,0.106299)
- --(4.014961,0.306299)\dpicstop
-\dpicdraw[fill=white](4.014961,0.106299) circle (0.009843in)\dpicstop
-\dpicdraw (4.014961,-0.043701)
- --(4.014961,-0.243701)\dpicstop
-\dpicdraw[fill=white](4.014961,-0.043701) circle (0.009843in)\dpicstop
-\dpicdraw (3.864961,0.106299)
- --(3.864961,0.306299)\dpicstop
-\dpicdraw[fill=white](3.864961,0.106299) circle (0.009843in)\dpicstop
-\dpicdraw (3.864961,-0.043701)
- --(3.864961,-0.243701)\dpicstop
-\dpicdraw[fill=white](3.864961,-0.043701) circle (0.009843in)\dpicstop
-\dpicdraw (3.714961,0.106299)
- --(3.714961,0.306299)\dpicstop
-\dpicdraw[fill=white](3.714961,0.106299) circle (0.009843in)\dpicstop
-\dpicdraw (3.714961,-0.043701)
- --(3.714961,-0.243701)\dpicstop
-\dpicdraw[fill=white](3.714961,-0.043701) circle (0.009843in)\dpicstop
-\draw (4.764961,0.306299) node[right=-2bp]{\sl P1};
-\draw (4.764961,-0.243701) node[right=-2bp]{\sl P2};
-\draw (4.239961,-0.382071) node{\tt down\_; Header(2,8)};
-\draw (3.714961,0.306299) node[left=-2bp]{\sl P15};
-\draw (3.714961,-0.243701) node[left=-2bp]{\sl P16};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](4.856627,0.126299)
- --(4.789961,0.106299)
- --(4.856627,0.086299) --cycle\dpicstop
-\dpicdraw (4.809295,0.106299)
- --(4.939961,0.106299)\dpicstop
-\draw (4.939961,0.106299) node[right=-2bp]{\sl PinP1};
-\filldraw[line width=0bp](4.856627,-0.023701)
- --(4.789961,-0.043701)
- --(4.856627,-0.063701) --cycle\dpicstop
-\dpicdraw (4.809295,-0.043701)
- --(4.939961,-0.043701)\dpicstop
-\draw (4.939961,-0.043701) node[right=-2bp]{\sl PinP2};
-\dpiclw=0.8bp
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Jack.tex b/graphics/circuit_macros/doc/Jack.tex
deleted file mode 100644
index 2a9610f47a..0000000000
--- a/graphics/circuit_macros/doc/Jack.tex
+++ /dev/null
@@ -1,327 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.127778,-0.061111)
- --(0.277778,-0.061111)
- --(0.277778,0.005556)
- --(0.477778,0.005556)\dpicstop
-\dpicdraw[fill=white](0.477778,0.005556) circle (0.007874in)\dpicstop
-\dpicdraw (0.127778,0.138889)
- --(0.277778,0.138889)
- --(0.277778,0.072222)
- --(0.427778,0.072222)\dpicstop
-\draw (0.127778,-0.061111) node[left=-2bp]{\sl A};
-\draw (0.127778,0.138889) node[left=-2bp]{\sl B};
-\draw (0.427778,0.072222) node[above right=-2bp]{\sl TB};
-\draw (0.477778,0.005556) node[below right=-2bp]{\sl TA};
-\dpicdraw (0.977778,0.138889)
- --(1.127778,0.138889)
- --(1.127778,0.072222)
- --(1.327778,0.072222)\dpicstop
-\dpicdraw[fill=white](1.327778,0.072222) circle (0.007874in)\dpicstop
-\dpicdraw (0.977778,-0.061111)
- --(1.127778,-0.061111)
- --(1.127778,0.005556)
- --(1.277778,0.005556)\dpicstop
-\draw (0.977778,0.138889) node[left=-2bp]{\sl A};
-\draw (0.977778,-0.061111) node[left=-2bp]{\sl B};
-\dpicdraw (1.827778,-0.061111)
- --(1.977778,-0.061111)
- --(1.977778,0.022222)
- --(2.177778,0.022222)\dpicstop
-\dpicdraw[fill=white](2.177778,0.022222) circle (0.007874in)\dpicstop
-\dpicdraw (1.827778,0.063889)
- --(2.127778,0.063889)\dpicstop
-\dpicdraw (1.827778,0.188889)
- --(1.977778,0.188889)
- --(1.977778,0.105556)
- --(2.127778,0.105556)\dpicstop
-\draw (1.827778,-0.061111) node[left=-2bp]{\sl A};
-\draw (1.827778,0.188889) node[left=-2bp]{\sl B};
-\draw (1.827778,0.063889) node[left=-2bp]{\sl C};
-\dpicdraw (2.827778,-0.061111)
- --(2.677778,-0.061111)
- --(2.677778,0.022222)
- --(2.477778,0.022222)\dpicstop
-\dpicdraw[fill=white](2.477778,0.022222) circle (0.007874in)\dpicstop
-\dpicdraw (2.827778,0.063889)
- --(2.527778,0.063889)\dpicstop
-\dpicdraw (2.827778,0.188889)
- --(2.677778,0.188889)
- --(2.677778,0.105556)
- --(2.527778,0.105556)\dpicstop
-\draw (2.827778,-0.061111) node[right=-2bp]{\sl A};
-\draw (2.827778,0.188889) node[right=-2bp]{\sl B};
-\draw (2.827778,0.063889) node[right=-2bp]{\sl C};
-\draw (0.312778,-0.161111) node[below=-2bp]{\tt plug};
-\draw (1.162778,-0.161111) node[below=-2bp]{\tt plug(,R)};
-\draw (1.912778,-0.161111) node[below=-2bp]{\tt plug(,3)};
-\draw (2.742778,-0.161111) node[below=-2bp]{\tt plug(L,3R)};
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (0.498611,-0.871242)
- --(0.498611,-0.746242)
- --(0.456944,-0.746242)
- --(0.456944,-0.996242)
- --(0.498611,-0.996242)
- --(0.498611,-0.871242)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.427778,-0.758742)
- --(0.396528,-0.789992)
- --(0.365278,-0.758742)
- --(0.127778,-0.758742)\dpicstop
-\dpicdraw[fill=white](0.127778,-0.758742) circle (0.007874in)\dpicstop
-\dpiclw=0.4bp
-\draw (0.127778,-0.758742) node[left=-2bp]{\sl L};
-\filldraw[line width=0bp](0.565278,-0.851242)
- --(0.498611,-0.871242)
- --(0.565278,-0.891242) --cycle\dpicstop
-\dpicdraw (0.517945,-0.871242)
- --(0.598611,-0.871242)\dpicstop
-\draw (0.598611,-0.871242) node[right=-2bp]{\sl F};
-\filldraw[line width=0bp](0.497778,-1.062909)
- --(0.477778,-0.996242)
- --(0.457778,-1.062909) --cycle\dpicstop
-\dpicdraw (0.477778,-1.015576)
- --(0.477778,-1.096242)
- --(0.377778,-1.096242)\dpicstop
-\draw (0.377778,-1.096242) node[left=-2bp]{\sl G};
-\dpiclw=0.8bp
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (1.698611,-0.871242)
- --(1.698611,-0.746242)
- --(1.656944,-0.746242)
- --(1.656944,-0.996242)
- --(1.698611,-0.996242)
- --(1.698611,-0.871242)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (1.627778,-0.758742)
- --(1.596528,-0.789992)
- --(1.565278,-0.758742)
- --(1.327778,-0.758742)\dpicstop
-\dpicdraw[fill=white](1.327778,-0.758742) circle (0.007874in)\dpicstop
-\filldraw[line width=0bp](1.396528,-0.671242)
- --(1.427778,-0.733742)
- --(1.459028,-0.671242) --cycle\dpicstop
-\dpicdraw (1.427778,-0.72132)
- --(1.427778,-0.639992)\dpicstop
-\filldraw[line width=0bp](1.459028,-0.821242)
- --(1.427778,-0.758742)
- --(1.396528,-0.821242) --cycle\dpicstop
-\dpicdraw (1.427778,-0.771165)
- --(1.427778,-0.852492)\dpicstop
-\dpicdraw (1.577778,-0.983742)
- --(1.546528,-0.952492)
- --(1.515278,-0.983742)
- --(1.327778,-0.983742)\dpicstop
-\dpicdraw[fill=white](1.327778,-0.983742) circle (0.007874in)\dpicstop
-\dpiclw=0.4bp
-\draw (1.327778,-0.758742) node[left=-2bp]{\sl L};
-\filldraw[line width=0bp](1.361111,-0.659992)
- --(1.427778,-0.639992)
- --(1.361111,-0.619992) --cycle\dpicstop
-\dpicdraw (1.408444,-0.639992)
- --(1.177778,-0.639992)\dpicstop
-\draw (1.177778,-0.639992) node[left=-2bp]{\sl LM};
-\filldraw[line width=0bp](1.361111,-0.872492)
- --(1.427778,-0.852492)
- --(1.361111,-0.832492) --cycle\dpicstop
-\dpicdraw (1.408444,-0.852492)
- --(1.177778,-0.852492)\dpicstop
-\draw (1.177778,-0.852492) node[left=-2bp]{\sl LB};
-\draw (1.327778,-0.983742) node[left=-2bp]{\sl S};
-\dpiclw=0.8bp
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (2.098611,-0.871242)
- --(2.098611,-0.996242)
- --(2.140278,-0.996242)
- --(2.140278,-0.746242)
- --(2.098611,-0.746242)
- --(2.098611,-0.871242)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (2.169444,-0.758742)
- --(2.200694,-0.789992)
- --(2.231944,-0.758742)
- --(2.469444,-0.758742)\dpicstop
-\dpicdraw[fill=white](2.469444,-0.758742) circle (0.007874in)\dpicstop
-\dpicdraw (2.219444,-0.983742)
- --(2.250694,-0.952492)
- --(2.281944,-0.983742)
- --(2.469444,-0.983742)\dpicstop
-\dpicdraw[fill=white](2.469444,-0.983742) circle (0.007874in)\dpicstop
-\dpiclw=0.4bp
-\draw (2.469444,-0.758742) node[right=-2bp]{\sl L};
-\draw (2.469444,-0.983742) node[right=-2bp]{\sl S};
-\dpiclw=0.8bp
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (3.198611,-0.871242)
- --(3.198611,-0.996242)
- --(3.240278,-0.996242)
- --(3.240278,-0.746242)
- --(3.198611,-0.746242)
- --(3.198611,-0.871242)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (3.269444,-0.758742)
- --(3.300694,-0.789992)
- --(3.331944,-0.758742)
- --(3.569444,-0.758742)\dpicstop
-\dpicdraw[fill=white](3.569444,-0.758742) circle (0.007874in)\dpicstop
-\filldraw[line width=0bp](3.500694,-0.821242)
- --(3.469444,-0.758742)
- --(3.438194,-0.821242) --cycle\dpicstop
-\dpicdraw (3.469444,-0.771165)
- --(3.469444,-0.852492)\dpicstop
-\dpicdraw (3.319444,-0.571242)
- --(3.569444,-0.571242)\dpicstop
-\dpicdraw[fill=white](3.569444,-0.571242) circle (0.007874in)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (3.339028,-0.664992)
- --(3.339028,-0.758742)
- --(3.359861,-0.758742)
- --(3.359861,-0.571242)
- --(3.339028,-0.571242)
- --(3.339028,-0.664992)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\filldraw[line width=0bp](3.438194,-0.483742)
- --(3.469444,-0.546242)
- --(3.500694,-0.483742) --cycle\dpicstop
-\dpicdraw (3.469444,-0.53382)
- --(3.469444,-0.452492)\dpicstop
-\dpicdraw (3.319444,-0.383742)
- --(3.569444,-0.383742)\dpicstop
-\dpicdraw[fill=white](3.569444,-0.383742) circle (0.007874in)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (3.339028,-0.477492)
- --(3.339028,-0.571242)
- --(3.359861,-0.571242)
- --(3.359861,-0.383742)
- --(3.339028,-0.383742)
- --(3.339028,-0.477492)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\filldraw[line width=0bp](3.438194,-0.296242)
- --(3.469444,-0.358742)
- --(3.500694,-0.296242) --cycle\dpicstop
-\dpicdraw (3.469444,-0.34632)
- --(3.469444,-0.264992)\dpicstop
-\dpicdraw (3.319444,-0.983742)
- --(3.350694,-0.952492)
- --(3.381944,-0.983742)
- --(3.569444,-0.983742)\dpicstop
-\dpicdraw[fill=white](3.569444,-0.983742) circle (0.007874in)\dpicstop
-\dpiclw=0.4bp
-\draw (3.569444,-0.571242) node[right=-2bp]{\sl L1};
-\filldraw[line width=0bp](3.536111,-0.432492)
- --(3.469444,-0.452492)
- --(3.536111,-0.472492) --cycle\dpicstop
-\dpicdraw (3.488778,-0.452492)
- --(3.769444,-0.452492)\dpicstop
-\draw (3.769444,-0.452492) node[right=-2bp]{\sl LM1};
-\draw (3.569444,-0.383742) node[right=-2bp]{\sl L2};
-\filldraw[line width=0bp](3.536111,-0.244992)
- --(3.469444,-0.264992)
- --(3.536111,-0.284992) --cycle\dpicstop
-\dpicdraw (3.488778,-0.264992)
- --(3.769444,-0.264992)\dpicstop
-\draw (3.769444,-0.264992) node[right=-2bp]{\sl LM2};
-\draw (3.569444,-0.983742) node[right=-2bp]{\sl S};
-\draw (3.569444,-0.758742) node[right=-2bp]{\sl L};
-\filldraw[line width=0bp](3.536111,-0.832492)
- --(3.469444,-0.852492)
- --(3.536111,-0.872492) --cycle\dpicstop
-\dpicdraw (3.488778,-0.852492)
- --(3.669444,-0.852492)\dpicstop
-\draw (3.669444,-0.852492) node[right=-2bp]{\sl LB};
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (5.148611,-0.871242)
- --(5.148611,-0.746242)
- --(5.106944,-0.746242)
- --(5.106944,-0.996242)
- --(5.148611,-0.996242)
- --(5.148611,-0.871242)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (5.077778,-0.983742)
- --(5.046528,-0.952492)
- --(5.015278,-0.983742)
- --(4.777778,-0.983742)\dpicstop
-\dpicdraw[fill=white](4.777778,-0.983742) circle (0.007874in)\dpicstop
-\filldraw[line width=0bp](4.846528,-0.921242)
- --(4.877778,-0.983742)
- --(4.909028,-0.921242) --cycle\dpicstop
-\dpicdraw (4.877778,-0.97132)
- --(4.877778,-0.889992)\dpicstop
-\dpicdraw (5.027778,-0.758742)
- --(4.996528,-0.789992)
- --(4.965278,-0.758742)
- --(4.777778,-0.758742)\dpicstop
-\dpicdraw[fill=white](4.777778,-0.758742) circle (0.007874in)\dpicstop
-\filldraw[line width=0bp](4.909028,-0.821242)
- --(4.877778,-0.758742)
- --(4.846528,-0.821242) --cycle\dpicstop
-\dpicdraw (4.877778,-0.771165)
- --(4.877778,-0.852492)\dpicstop
-\dpicdraw (4.977778,-0.571242)
- --(4.777778,-0.571242)\dpicstop
-\dpicdraw[fill=white](4.777778,-0.571242) circle (0.007874in)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!100!black]
-\dpicdraw (4.958194,-0.664992)
- --(4.958194,-0.571242)
- --(4.937361,-0.571242)
- --(4.937361,-0.758742)
- --(4.958194,-0.758742)
- --(4.958194,-0.664992)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\filldraw[line width=0bp](4.846528,-0.483742)
- --(4.877778,-0.546242)
- --(4.909028,-0.483742) --cycle\dpicstop
-\dpicdraw (4.877778,-0.53382)
- --(4.877778,-0.452492)\dpicstop
-\draw (4.777778,-0.983742) node[left=-2bp]{\sl L};
-\draw (4.777778,-0.758742) node[left=-2bp]{\sl S};
-\draw (4.777778,-0.571242) node[left=-2bp]{\sl S1};
-\filldraw[line width=0bp](4.811111,-0.472492)
- --(4.877778,-0.452492)
- --(4.811111,-0.432492) --cycle\dpicstop
-\dpicdraw (4.858444,-0.452492)
- --(4.577778,-0.452492)\dpicstop
-\draw (4.577778,-0.452492) node[left=-2bp]{\sl SM1};
-\filldraw[line width=0bp](4.811111,-0.909992)
- --(4.877778,-0.889992)
- --(4.811111,-0.869992) --cycle\dpicstop
-\dpicdraw (4.858444,-0.889992)
- ..controls (4.743111,-0.889992) and (4.577778,-0.914992)
- ..(4.527778,-0.939992)\dpicstop
-\draw (4.527778,-0.939992) node[left=-2bp]{\sl LB};
-\filldraw[line width=0bp](4.811111,-0.872492)
- --(4.877778,-0.852492)
- --(4.811111,-0.832492) --cycle\dpicstop
-\dpicdraw (4.858444,-0.852492)
- ..controls (4.743111,-0.852492) and (4.577778,-0.827492)
- ..(4.527778,-0.802492)\dpicstop
-\draw (4.527778,-0.802492) node[left=-2bp]{\sl SB};
-\dpiclw=0.8bp
-\draw (0.303194,-1.146242) node[below=-2bp]{\tt jack};
-\draw (1.334306,-1.146242) node[below=-2bp]{\tt jack(,LMBS)};
-\draw (2.294028,-1.146242) node[below=-2bp]{\tt ..(L,RLS)};
-\draw (3.394028,-1.146242) node[below=-2bp]{\tt ..(L,RLBLMLMS)};
-\draw (4.953194,-1.146242) node[below=-2bp]{\tt ..(,RSBSMLB)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Logic.tex b/graphics/circuit_macros/doc/Logic.tex
deleted file mode 100644
index fae1a4e3c0..0000000000
--- a/graphics/circuit_macros/doc/Logic.tex
+++ /dev/null
@@ -1,212 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.2,0.45)
- --(0,0.45)
- --(0,0.75)
- --(0.2,0.75)\dpicstop
-\dpicdraw (0.2,0.75)
- ..controls (0.4,0.75) and (0.4,0.45)
- ..(0.2,0.45)\dpicstop
-\draw (0.6,0.6) node[right=-2bp]{{\tt AND\_gate}};
-\dpicdraw (0.122222,0.348911)
- --(0,0.348911)\dpicstop
-\dpicdraw (0.004513,0.351089)
- ..controls (0.050565,0.25571) and (0.050948,0.144606)
- ..(0.005556,0.048911)\dpicstop
-\dpicdraw (0,0.048911)
- --(0.122222,0.048911)\dpicstop
-\dpicdraw (0.122222,0.348911)
- ..controls (0.222661,0.348911) and (0.313857,0.290284)
- ..(0.355556,0.198911)\dpicstop
-\dpicdraw (0.122222,0.048911)
- ..controls (0.222661,0.048911) and (0.313857,0.107537)
- ..(0.355556,0.198911)\dpicstop
-\draw (0.6,0.2) node[right=-2bp]{{\tt OR\_gate}};
-\dpicdraw (0.175,-0.2)
- --(0,-0.3)
- --(0,-0.1)
- --(0.175,-0.2)\dpicstop
-\draw (0.6,-0.2) node[right=-2bp]{{\tt BUFFER\_gate}};
-\dpicdraw (-0,-0.451089)
- ..controls (0.04503,-0.54602) and (0.04503,-0.656159)
- ..(-0,-0.751089)\dpicstop
-\dpicdraw (0.166667,-0.451089)
- --(0.044444,-0.451089)\dpicstop
-\dpicdraw (0.048957,-0.448911)
- ..controls (0.095009,-0.54429) and (0.095392,-0.655394)
- ..(0.05,-0.751089)\dpicstop
-\dpicdraw (0.044444,-0.751089)
- --(0.166667,-0.751089)\dpicstop
-\dpicdraw (0.166667,-0.451089)
- ..controls (0.267105,-0.451089) and (0.358302,-0.509716)
- ..(0.4,-0.601089)\dpicstop
-\dpicdraw (0.166667,-0.751089)
- ..controls (0.267105,-0.751089) and (0.358302,-0.692463)
- ..(0.4,-0.601089)\dpicstop
-\draw (0.6,-0.6) node[right=-2bp]{{\tt XOR\_gate}};
-\dpicdraw (2.13718,0.45)
- --(1.93718,0.45)
- --(1.93718,0.75)
- --(2.13718,0.75)\dpicstop
-\dpicdraw (2.13718,0.75)
- ..controls (2.33718,0.75) and (2.33718,0.45)
- ..(2.13718,0.45)\dpicstop
-\dpicdraw (2.32468,0.6) circle (0.014764in)\dpicstop
-\draw (2.53718,0.6) node[right=-2bp]{{\tt NAND\_gate}};
-\dpicdraw (2.059402,0.348911)
- --(1.93718,0.348911)\dpicstop
-\dpicdraw (1.941693,0.351089)
- ..controls (1.987745,0.25571) and (1.988128,0.144606)
- ..(1.942736,0.048911)\dpicstop
-\dpicdraw (1.93718,0.048911)
- --(2.059402,0.048911)\dpicstop
-\dpicdraw (2.059402,0.348911)
- ..controls (2.159841,0.348911) and (2.251037,0.290284)
- ..(2.292736,0.198911)\dpicstop
-\dpicdraw (2.059402,0.048911)
- ..controls (2.159841,0.048911) and (2.251037,0.107537)
- ..(2.292736,0.198911)\dpicstop
-\dpicdraw (2.330236,0.198911) circle (0.014764in)\dpicstop
-\draw (2.53718,0.2) node[right=-2bp]{{\tt NOR\_gate(3)}};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](2.434402,0.218911)
- --(2.367736,0.198911)
- --(2.434402,0.178911) --cycle\dpicstop
-\dpicdraw (2.387069,0.198911)
- --(2.444069,0.198911)
- ..controls (2.482069,0.198911) and (2.501069,0.223911)
- ..(2.501069,0.273911)
- ..controls (2.501069,0.323911) and (2.509402,0.348911)
- ..(2.526069,0.348911)
- --(2.551069,0.348911)\dpicstop
-\draw (2.551069,0.348911) node[right=-2bp]{{\tt Out}};
-\filldraw[line width=0bp](2.350236,0.132244)
- --(2.330236,0.198911)
- --(2.310236,0.132244) --cycle\dpicstop
-\dpicdraw (2.330236,0.179577)
- --(2.330236,0.122577)
- ..controls (2.330236,0.084577) and (2.369819,0.062799)
- ..(2.448986,0.057244)
- --(2.567736,0.048911)\dpicstop
-\draw (2.567736,0.048911) node[right=-2bp]{{\tt N\_Out}};
-\filldraw[line width=0bp](1.902093,0.263339)
- --(1.961918,0.298911)
- --(1.892391,0.302144) --cycle\dpicstop
-\dpicdraw (1.943161,0.294221)
- --(1.761918,0.248911)\dpicstop
-\draw (1.761918,0.268911) node[left=-2bp]{{\tt In1\/}};
-\filldraw[line width=0bp](1.916682,0.163339)
- --(1.976508,0.198911)
- --(1.906981,0.202144) --cycle\dpicstop
-\dpicdraw (1.957751,0.194221)
- --(1.776508,0.148911)\dpicstop
-\draw (1.776508,0.148911) node[left=-2bp]{{\tt In2\/}};
-\filldraw[line width=0bp](1.902093,0.063339)
- --(1.961918,0.098911)
- --(1.892391,0.102144) --cycle\dpicstop
-\dpicdraw (1.943161,0.094221)
- --(1.761918,0.048911)\dpicstop
-\draw (1.761918,0.028911) node[left=-2bp]{{\tt In3\/}};
-\dpiclw=0.8bp
-\dpicdraw (2.11218,-0.2)
- --(1.93718,-0.3)
- --(1.93718,-0.1)
- --(2.11218,-0.2)\dpicstop
-\dpicdraw (2.14968,-0.2) circle (0.014764in)\dpicstop
-\draw (2.53718,-0.2) node[right=-2bp]{{\tt NOT\_gate}};
-\dpicdraw (1.992998,-0.451089)
- ..controls (2.038027,-0.54602) and (2.038027,-0.656159)
- ..(1.992998,-0.751089)\dpicstop
-\dpicdraw (2.159664,-0.451089)
- --(2.037442,-0.451089)\dpicstop
-\dpicdraw (2.041955,-0.448911)
- ..controls (2.088007,-0.54429) and (2.08839,-0.655394)
- ..(2.042998,-0.751089)\dpicstop
-\dpicdraw (2.037442,-0.751089)
- --(2.159664,-0.751089)\dpicstop
-\dpicdraw (2.159664,-0.451089)
- ..controls (2.260103,-0.451089) and (2.351299,-0.509716)
- ..(2.392998,-0.601089)\dpicstop
-\dpicdraw (2.159664,-0.751089)
- ..controls (2.260103,-0.751089) and (2.351299,-0.692463)
- ..(2.392998,-0.601089)\dpicstop
-\dpicdraw (2.430498,-0.601089) circle (0.014764in)\dpicstop
-\dpicdraw (1.97468,-0.501089) circle (0.014764in)\dpicstop
-\dpicdraw (1.97468,-0.701089) circle (0.014764in)\dpicstop
-\draw (2.53718,-0.6) node[right=-2bp]{{\tt NXOR\_gate(NPN)}};
-\filldraw[line width=0bp](1.834102,-0.501089)
- --(1.93718,-0.501089)
- --(1.846229,-0.452582) --cycle\dpicstop
-\dpicdraw (1.914958,-0.495534)
- --(1.73718,-0.451089)\dpicstop
-\draw (1.73718,-0.431089) node[left=-2bp]{{\tt In1\/}};
-\filldraw[line width=0bp](1.923692,-0.601089)
- --(2.02677,-0.601089)
- --(1.935819,-0.552582) --cycle\dpicstop
-\dpicdraw (2.004548,-0.595534)
- --(1.82677,-0.551089)\dpicstop
-\draw (1.82677,-0.551089) node[left=-2bp]{{\tt In2\/}};
-\filldraw[line width=0bp](1.834102,-0.701089)
- --(1.93718,-0.701089)
- --(1.846229,-0.652582) --cycle\dpicstop
-\dpicdraw (1.914958,-0.695534)
- --(1.73718,-0.651089)\dpicstop
-\draw (1.73718,-0.671089) node[left=-2bp]{{\tt In3\/}};
-\dpicdraw (3.87436,0.6)
- --(3.87436,0.775)
- --(4.22436,0.775)
- --(4.22436,0.425)
- --(3.87436,0.425)
- --(3.87436,0.6)\dpicstop
-\draw (4.04936,0.705815) node{{\scriptsize$ \& $}};
-\draw (4.47436,0.6) node[right=-2bp]{{\tt NAND\_gate(,B)}};
-\dpicdraw (3.87436,0.2)
- --(3.87436,0.375)
- --(4.22436,0.375)
- --(4.22436,0.025)
- --(3.87436,0.025)
- --(3.87436,0.2)\dpicstop
-\draw (4.04936,0.305815) node{{\scriptsize$ \geq 1 $}};
-\dpicdraw (3.83686,0.316667) circle (0.014764in)\dpicstop
-\dpicdraw (3.83686,0.2) circle (0.014764in)\dpicstop
-\dpicdraw (3.83686,0.083333) circle (0.014764in)\dpicstop
-\dpicdraw (4.26186,0.2) circle (0.014764in)\dpicstop
-\draw (4.47436,0.2) node[right=-2bp]{{\tt NOR\_gate(3,NB)}};
-\dpicdraw (3.87436,-0.2)
- --(3.87436,-0.025)
- --(4.22436,-0.025)
- --(4.22436,-0.375)
- --(3.87436,-0.375)
- --(3.87436,-0.2)\dpicstop
-\draw (4.04936,-0.094185) node{{\scriptsize$ =1 $}};
-\dpicdraw (3.83686,-0.2875) circle (0.014764in)\dpicstop
-\dpicdraw (4.26186,-0.2) circle (0.014764in)\dpicstop
-\draw (4.47436,-0.2) node[right=-2bp]{{\tt BOX\_gate(PN,N,{,},=1)}};
-\dpicdraw (3.87436,-0.1125)
- --(3.72436,-0.1125)\dpicstop
-\dpicdraw (3.79936,-0.2875)
- --(3.72436,-0.2875)\dpicstop
-\dpicdraw (4.29936,-0.2)
- --(4.44936,-0.2)\dpicstop
-\dpicdraw (3.87436,-0.6)
- --(3.87436,-0.425)
- --(4.22436,-0.425)
- --(4.22436,-0.775)
- --(3.87436,-0.775)
- --(3.87436,-0.6)\dpicstop
-\draw (4.04936,-0.494185) node{{\scriptsize$ = $}};
-\dpicdraw (4.26186,-0.6) circle (0.014764in)\dpicstop
-\draw (4.47436,-0.6) node[right=-2bp]{{\tt BOX\_gate(PP,N,{,},=)}};
-\dpicdraw (3.87436,-0.5125)
- --(3.72436,-0.5125)\dpicstop
-\dpicdraw (3.87436,-0.6875)
- --(3.72436,-0.6875)\dpicstop
-\dpicdraw (4.29936,-0.6)
- --(4.44936,-0.6)\dpicstop
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Multiplexer.tex b/graphics/circuit_macros/doc/Multiplexer.tex
deleted file mode 100644
index a8a09d6e1c..0000000000
--- a/graphics/circuit_macros/doc/Multiplexer.tex
+++ /dev/null
@@ -1,148 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-{\sf
-\dpicdraw (0.2,0.075)
- --(0.2,0.525)
- --(0.6,0.425)
- --(0.6,-0.275)
- --(0.2,-0.375)
- --(0.2,0.075)\dpicstop
-\draw (0.4,0.075) node{\scriptsize M1};
-\dpicdraw (0.6,0.075)
- --(0.8,0.075)\dpicstop
-\dpicdraw (0.4,-0.325)
- --(0.4,-0.525)\dpicstop
-\draw (0.2,0.4125) node[right=-2bp]{{\scriptsize 0}};
-\dpicdraw (0.2,0.4125)
- --(0,0.4125)\dpicstop
-\draw (0.2,0.1875) node[right=-2bp]{{\scriptsize 1}};
-\dpicdraw (0.2,0.1875)
- --(0,0.1875)\dpicstop
-\draw (0.2,-0.0375) node[right=-2bp]{{\scriptsize 2}};
-\dpicdraw (0.2,-0.0375)
- --(0,-0.0375)\dpicstop
-\draw (0.2,-0.2625) node[right=-2bp]{{\scriptsize 3}};
-\dpicdraw (0.2,-0.2625)
- --(0,-0.2625)\dpicstop
-\draw (0.4,-0.525) node[below=-2bp]{\tt Mux(4,M1)};
-\draw (0,0.4125) node[left=-2bp]{\sl In0};
-\draw (0,0.1875) node[left=-2bp]{\sl In1};
-\draw (0,-0.0375) node[left=-2bp]{\sl In2};
-\draw (0,-0.2625) node[left=-2bp]{\sl In3};
-\draw (0.8,0.075) node[above=-2bp]{\sl Out};
-\draw (0.4,-0.525) node[above right=-2bp]{\sl Sel};
-\dpicdraw (1.5,-0.075)
- --(1.5,-0.525)
- --(1.1,-0.425)
- --(1.1,0.275)
- --(1.5,0.375)
- --(1.5,-0.075)\dpicstop
-\dpicdraw (1.1,-0.075)
- --(0.9,-0.075)\dpicstop
-\dpicdraw (1.3,0.325)
- --(1.3,0.525)\dpicstop
-\draw (1.5,0.285) node[left=-2bp]{{\scriptsize 0}};
-\dpicdraw (1.5,0.285)
- --(1.7,0.285)\dpicstop
-\draw (1.5,0.105) node[left=-2bp]{{\scriptsize 1}};
-\dpicdraw (1.5,0.105)
- --(1.7,0.105)\dpicstop
-\draw (1.5,-0.075) node[left=-2bp]{{\scriptsize 2}};
-\dpicdraw (1.5,-0.075)
- --(1.7,-0.075)\dpicstop
-\draw (1.5,-0.255) node[left=-2bp]{{\scriptsize 3}};
-\dpicdraw (1.5,-0.255)
- --(1.7,-0.255)\dpicstop
-\draw (1.5,-0.435) node[left=-2bp]{{\scriptsize $\overline{\hbox{OE}}$}};
-\dpicdraw (1.5375,-0.435) circle (0.014764in)\dpicstop
-\dpicdraw (1.575,-0.435)
- --(1.7,-0.435)\dpicstop
-\draw (1.3,-0.802778) node{\tt left\_; Mux(4,{,}LNOE)};
-\draw (1.7,0.285) node[above=-2bp]{\sl In0};
-\draw (1.755556,-0.435) node[below=-2bp]{\sl NOE};
-\draw (0.9,-0.075) node[below=-2bp]{\sl Out};
-\draw (1.3,0.525) node[below left=-2bp]{\sl Sel};
-\dpicdraw (2.5,-0.0875)
- --(2.5,0.3625)
- --(2.9,0.2625)
- --(2.9,-0.4375)
- --(2.5,-0.5375)
- --(2.5,-0.0875)\dpicstop
-\dpicdraw (2.9,-0.0875)
- --(3.1,-0.0875)\dpicstop
-\dpicdraw (2.6,0.3375)
- --(2.6,0.5375)\dpicstop
-\dpicdraw (2.8,0.2875)
- --(2.8,0.4875)\dpicstop
-\draw (2.5,0.2725) node[right=-2bp]{{\scriptsize 00}};
-\dpicdraw (2.5,0.2725)
- --(2.3,0.2725)\dpicstop
-\draw (2.5,0.0925) node[right=-2bp]{{\scriptsize 01}};
-\dpicdraw (2.5,0.0925)
- --(2.3,0.0925)\dpicstop
-\draw (2.5,-0.0875) node[right=-2bp]{{\scriptsize 10}};
-\dpicdraw (2.5,-0.0875)
- --(2.3,-0.0875)\dpicstop
-\draw (2.5,-0.2675) node[right=-2bp]{{\scriptsize 11}};
-\dpicdraw (2.5,-0.2675)
- --(2.3,-0.2675)\dpicstop
-\draw (2.5,-0.4475) node[right=-2bp]{{\scriptsize OE}};
-\dpicdraw (2.5,-0.4475)
- --(2.3,-0.4475)\dpicstop
-\draw (2.7,-0.5375) node[below=-2bp]{\tt Mux(4,{,}OEBN2)};
-\draw (2.6,0.5375) node[left=-2bp]{\sl Sel0};
-\draw (2.8,0.4875) node[right=-2bp]{\sl Sel1};
-\draw (2.3,0.2725) node[left=-2bp]{\sl In0};
-\draw (2.3,-0.2675) node[left=-2bp]{\sl In3};
-\draw (2.3,-0.4475) node[left=-2bp]{\sl OE};
-\dpicdraw (4.491667,0.2)
- --(5.191667,0.2)
- --(5.091667,-0.2)
- --(3.891667,-0.2)
- --(3.791667,0.2)
- --(4.491667,0.2)\dpicstop
-\dpicdraw (4.491667,-0.2)
- --(4.491667,-0.4)\dpicstop
-\dpicdraw (3.808333,0.133333)
- --(3.608333,0.133333)\dpicstop
-\dpicdraw (3.841667,0)
- --(3.641667,0)\dpicstop
-\dpicdraw (3.875,-0.133333)
- --(3.675,-0.133333)\dpicstop
-\draw (3.879167,0.2) node[below=-2bp]{{\scriptsize 0}};
-\dpicdraw (3.879167,0.2)
- --(3.879167,0.4)\dpicstop
-\draw (4.054167,0.2) node[below=-2bp]{{\scriptsize 1}};
-\dpicdraw (4.054167,0.2)
- --(4.054167,0.4)\dpicstop
-\draw (4.229167,0.2) node[below=-2bp]{{\scriptsize 2}};
-\dpicdraw (4.229167,0.2)
- --(4.229167,0.4)\dpicstop
-\draw (4.404167,0.2) node[below=-2bp]{{\scriptsize 3}};
-\dpicdraw (4.404167,0.2)
- --(4.404167,0.4)\dpicstop
-\draw (4.579167,0.2) node[below=-2bp]{{\scriptsize 4}};
-\dpicdraw (4.579167,0.2)
- --(4.579167,0.4)\dpicstop
-\draw (4.754167,0.2) node[below=-2bp]{{\scriptsize 5}};
-\dpicdraw (4.754167,0.2)
- --(4.754167,0.4)\dpicstop
-\draw (4.929167,0.2) node[below=-2bp]{{\scriptsize 6}};
-\dpicdraw (4.929167,0.2)
- --(4.929167,0.4)\dpicstop
-\draw (5.104167,0.2) node[below=-2bp]{{\scriptsize 7}};
-\dpicdraw (5.104167,0.2)
- --(5.104167,0.4)\dpicstop
-\draw (4.4,-0.4) node[below=-2bp]{\tt down\_; Mux(8,{,}L3,{,}28*L\_unit)};
-\draw (3.608333,0.133333) node[left=-2bp]{\sl Sel0};
-\draw (3.675,-0.133333) node[below left=-2bp]{\sl Sel2};
-\draw (3.879167,0.4) node[left=-2bp]{\sl In0};
-\draw (5.104167,0.4) node[right=-2bp]{\sl In7};
-}
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/NLG.tex b/graphics/circuit_macros/doc/NLG.tex
deleted file mode 100644
index ba14d3cb04..0000000000
--- a/graphics/circuit_macros/doc/NLG.tex
+++ /dev/null
@@ -1,93 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.145,-0.25) rectangle (0.895,0.25)\dpicstop
-\draw (0.145,0) node[right=-2bp]{${}0$};
-\draw (0.895,0) node[left=-2bp]{$\infty$};
-\dpicdraw (0.145,0.125)
- --(0.02,0.125)\dpicstop
-\dpicdraw[fill=black](0.02,0.125) circle (0.007874in)\dpicstop
-\dpicdraw (0.145,-0.125)
- --(0.02,-0.125)\dpicstop
-\dpicdraw[fill=black](0.02,-0.125) circle (0.007874in)\dpicstop
-\dpicdraw (0.895,0.125)
- --(1.02,0.125)\dpicstop
-\dpicdraw[fill=black](1.02,0.125) circle (0.007874in)\dpicstop
-\dpicdraw (0.895,-0.125)
- --(1.02,-0.125)\dpicstop
-\dpicdraw[fill=black](1.02,-0.125) circle (0.007874in)\dpicstop
-\draw (0.52,-0.291511) node[below=-2bp]{\tt nullor};
-\dpicdraw (1.685,-0.25) rectangle (2.185,0.25)\dpicstop
-\dpicdraw (1.685,0.125)
- --(1.56,0.125)\dpicstop
-\dpicdraw[fill=black](1.56,0.125) circle (0.007874in)\dpicstop
-\dpicdraw (1.685,-0.125)
- --(1.56,-0.125)\dpicstop
-\dpicdraw[fill=black](1.56,-0.125) circle (0.007874in)\dpicstop
-\dpicdraw (2.185,0.125)
- --(2.31,0.125)\dpicstop
-\dpicdraw[fill=black](2.31,0.125) circle (0.007874in)\dpicstop
-\dpicdraw (2.185,-0.125)
- --(2.31,-0.125)\dpicstop
-\dpicdraw[fill=black](2.31,-0.125) circle (0.007874in)\dpicstop
-\dpicdraw (1.685,0.125)
- --(1.81,0.125)
- --(1.81,-0.125)
- --(1.685,-0.125)\dpicstop
-\dpicdraw (1.81,-0.083333)
- ..controls (1.856024,-0.083333) and (1.893333,-0.046024)
- ..(1.893333,0)
- ..controls (1.893333,0.046024) and (1.856024,0.083333)
- ..(1.81,0.083333)\dpicstop
-\dpicdraw (2.185,0.125)
- --(2.06,0.125)
- --(2.06,-0.125)
- --(2.185,-0.125)\dpicstop
-\dpicdraw (2.06,0.083333)
- ..controls (2.013976,0.083333) and (1.976667,0.046024)
- ..(1.976667,0)
- ..controls (1.976667,-0.046024) and (2.013976,-0.083333)
- ..(2.06,-0.083333)\dpicstop
-\draw (1.935,-0.291511) node[below=-2bp]{\tt gyrator};
-\dpicdraw (2.83,0.125)
- --(3.0175,0.125)
- --(3.0175,-0.125)
- --(2.83,-0.125)\dpicstop
-\dpicdraw (3.0175,-0.083333)
- ..controls (3.063524,-0.083333) and (3.100833,-0.046024)
- ..(3.100833,0)
- ..controls (3.100833,0.046024) and (3.063524,0.083333)
- ..(3.0175,0.083333)\dpicstop
-\dpicdraw (3.58,0.125)
- --(3.3925,0.125)
- --(3.3925,-0.125)
- --(3.58,-0.125)\dpicstop
-\dpicdraw (3.3925,0.083333)
- ..controls (3.346476,0.083333) and (3.309167,0.046024)
- ..(3.309167,0)
- ..controls (3.309167,-0.046024) and (3.346476,-0.083333)
- ..(3.3925,-0.083333)\dpicstop
-\draw (3.205,-0.25) node{\tt gyrator(invis,{,}0,N)};
-\dpicdraw (4.705,-0.25)
- --(4.705,-0.125)
- --(4.955,-0.125)
- --(4.955,-0.25)\dpicstop
-\dpicdraw (4.913333,-0.125)
- ..controls (4.913333,-0.078976) and (4.876024,-0.041667)
- ..(4.83,-0.041667)
- ..controls (4.783976,-0.041667) and (4.746667,-0.078976)
- ..(4.746667,-0.125)\dpicstop
-\dpicdraw (4.705,0.25)
- --(4.705,0.125)
- --(4.955,0.125)
- --(4.955,0.25)\dpicstop
-\dpicdraw (4.746667,0.125)
- ..controls (4.746667,0.013889) and (4.913333,0.013889)
- ..(4.913333,0.125)\dpicstop
-\draw (4.83,-0.291511) node[below=-2bp]{\tt gyrator(invis wid boxht,{,}0,NV)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/NPDT.tex b/graphics/circuit_macros/doc/NPDT.tex
deleted file mode 100644
index 3cad25c409..0000000000
--- a/graphics/circuit_macros/doc/NPDT.tex
+++ /dev/null
@@ -1,121 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw[fill=white](0.024,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw (0.224,-0.061976)
- --(0.224,-0.061976)\dpicstop
-\dpicdraw (0.224,-0.061976)
- --(0.374,0.088024)\dpicstop
-\dpicdraw (0.424,-0.061976)
- --(0.424,-0.061976)\dpicstop
-\dpicdraw[fill=white](0.224,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](0.424,-0.061976) circle (0.009449in)\dpicstop
-\draw (0.424,-0.085976) node[below=-2bp]{\sl R};
-\draw (0.224,-0.085976) node[below=-2bp]{\sl T};
-\draw (0.024,-0.085976) node[below=-2bp]{\sl L};
-\draw (0.224,-0.308024) node{\tt NPDT};
-\dpicdraw[fill=white](1.174,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw (1.174,0.138024)
- --(1.174,0.138024)\dpicstop
-\dpicdraw (1.174,0.138024)
- --(1.024,0.288024)\dpicstop
-\dpicdraw (1.174,0.338024)
- --(1.174,0.338024)\dpicstop
-\dpicdraw[fill=white](1.174,0.138024) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](1.174,0.338024) circle (0.009449in)\dpicstop
-\draw (1.198,0.338024) node[right=-2bp]{\sl R};
-\draw (1.198,0.138024) node[right=-2bp]{\sl T};
-\draw (1.198,-0.061976) node[right=-2bp]{\sl L};
-\draw (1.212024,-0.235976) node{\tt up\_; NPDT\strut};
-\dpicdraw[fill=white](1.924,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw (2.124,-0.061976)
- --(2.124,-0.061976)\dpicstop
-\dpicdraw (2.124,-0.061976)
- --(2.274,0.088024)\dpicstop
-\dpicdraw (2.324,-0.061976)
- --(2.324,-0.061976)\dpicstop
-\dpicdraw[fill=white](2.124,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](2.324,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](1.924,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw (2.124,0.238024)
- --(2.124,0.238024)\dpicstop
-\dpicdraw (2.124,0.238024)
- --(2.274,0.388024)\dpicstop
-\dpicdraw (2.324,0.238024)
- --(2.324,0.238024)\dpicstop
-\dpicdraw[fill=white](2.124,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](2.324,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](2.224,-0.001976)
- --(2.224,0.373024)\dpicstop
-\draw (2.348,-0.061976) node[right=-2bp]{\sl R1};
-\draw (1.9,-0.061976) node[left=-2bp]{\sl L1};
-\draw (2.348,0.238024) node[right=-2bp]{\sl R2};
-\draw (1.9,0.238024) node[left=-2bp]{\sl L2};
-\draw (2.124,-0.238024) node{\tt NPDT(2)\strut};
-\dpicdraw[fill=white](3.074,0.538024) circle (0.009449in)\dpicstop
-\dpicdraw (3.274,0.538024)
- --(3.274,0.538024)\dpicstop
-\dpicdraw (3.274,0.538024)
- --(3.424,0.388024)\dpicstop
-\dpicdraw (3.474,0.538024)
- --(3.474,0.538024)\dpicstop
-\dpicdraw[fill=white](3.274,0.538024) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](3.474,0.538024) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](3.074,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw (3.274,0.238024)
- --(3.274,0.238024)\dpicstop
-\dpicdraw (3.274,0.238024)
- --(3.424,0.088024)\dpicstop
-\dpicdraw (3.474,0.238024)
- --(3.474,0.238024)\dpicstop
-\dpicdraw[fill=white](3.274,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](3.474,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](3.074,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw (3.274,-0.061976)
- --(3.274,-0.061976)\dpicstop
-\dpicdraw (3.274,-0.061976)
- --(3.424,-0.211976)\dpicstop
-\dpicdraw (3.474,-0.061976)
- --(3.474,-0.061976)\dpicstop
-\dpicdraw[fill=white](3.274,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](3.474,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](3.374,0.478024)
- --(3.374,-0.196976)\dpicstop
-\draw (3.498,0.538024) node[right=-2bp]{\sl R1};
-\draw (3.05,0.538024) node[left=-2bp]{\sl L1};
-\draw (3.498,0.238024) node[right=-2bp]{\sl R2};
-\draw (3.05,0.238024) node[left=-2bp]{\sl L2};
-\draw (3.498,-0.061976) node[right=-2bp]{\sl R3};
-\draw (3.05,-0.061976) node[left=-2bp]{\sl L3};
-\draw (3.274,-0.211976) node[below=-2bp]{\tt NPDT(3,R)\strut};
-\dpicdraw[fill=white](4.624,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw (4.424,-0.061976)
- --(4.424,-0.061976)\dpicstop
-\dpicdraw (4.424,-0.061976)
- --(4.274,0.088024)\dpicstop
-\dpicdraw (4.224,-0.061976)
- --(4.224,-0.061976)\dpicstop
-\dpicdraw[fill=white](4.424,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](4.224,-0.061976) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](4.624,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw (4.424,0.238024)
- --(4.424,0.238024)\dpicstop
-\dpicdraw (4.424,0.238024)
- --(4.274,0.388024)\dpicstop
-\dpicdraw (4.224,0.238024)
- --(4.224,0.238024)\dpicstop
-\dpicdraw[fill=white](4.424,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw[fill=white](4.224,0.238024) circle (0.009449in)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](4.324,-0.001976)
- --(4.324,0.373024)\dpicstop
-\draw (4.2,-0.061976) node[left=-2bp]{\sl R1};
-\draw (4.648,-0.061976) node[right=-2bp]{\sl L1};
-\draw (4.2,0.238024) node[left=-2bp]{\sl R2};
-\draw (4.648,0.238024) node[right=-2bp]{\sl L2};
-\draw (4.424,-0.238024) node{\tt left\_; NPDT(2,R)\strut};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Nport.tex b/graphics/circuit_macros/doc/Nport.tex
deleted file mode 100644
index e473f19b8d..0000000000
--- a/graphics/circuit_macros/doc/Nport.tex
+++ /dev/null
@@ -1,116 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.145,-0.25) rectangle (0.895,0.25)\dpicstop
-\dpicdraw (0.145,0.125)
- --(0.02,0.125)\dpicstop
-\dpicdraw[fill=black](0.02,0.125) circle (0.007874in)\dpicstop
-\dpicdraw (0.145,-0.125)
- --(0.02,-0.125)\dpicstop
-\dpicdraw[fill=black](0.02,-0.125) circle (0.007874in)\dpicstop
-\dpicdraw (0.895,0.125)
- --(1.02,0.125)\dpicstop
-\dpicdraw[fill=black](1.02,0.125) circle (0.007874in)\dpicstop
-\dpicdraw (0.895,-0.125)
- --(1.02,-0.125)\dpicstop
-\dpicdraw[fill=black](1.02,-0.125) circle (0.007874in)\dpicstop
-\draw (0.02,0.125) node[above left=1bp]{\sl W1a};
-\draw (0.02,-0.125) node[below left=1bp]{\sl W1b};
-\draw (1.02,0.125) node[above right=1bp]{\sl E1a};
-\draw (1.02,-0.125) node[below right=1bp]{\sl E1b};
-\dpicdraw[fill=white!90!black](1.895,-0.5) rectangle (3.895,0.5)\dpicstop
-\draw (2.895,0) node{n-port};
-\dpicdraw (1.895,0.25)
- --(1.77,0.25)\dpicstop
-\dpicdraw[fill=black](1.77,0.25) circle (0.007874in)\dpicstop
-\dpicdraw (1.895,-0.25)
- --(1.77,-0.25)\dpicstop
-\dpicdraw[fill=black](1.77,-0.25) circle (0.007874in)\dpicstop
-\dpicdraw (2.180714,0.5)
- --(2.180714,0.625)\dpicstop
-\dpicdraw[fill=black](2.180714,0.625) circle (0.007874in)\dpicstop
-\dpicdraw (2.752143,0.5)
- --(2.752143,0.625)\dpicstop
-\dpicdraw[fill=black](2.752143,0.625) circle (0.007874in)\dpicstop
-\dpicdraw (3.037857,0.5)
- --(3.037857,0.625)\dpicstop
-\dpicdraw[fill=black](3.037857,0.625) circle (0.007874in)\dpicstop
-\dpicdraw (3.609286,0.5)
- --(3.609286,0.625)\dpicstop
-\dpicdraw[fill=black](3.609286,0.625) circle (0.007874in)\dpicstop
-\dpicdraw (3.895,0.4)
- --(4.02,0.4)\dpicstop
-\dpicdraw[fill=black](4.02,0.4) circle (0.007874in)\dpicstop
-\dpicdraw (3.895,0.2)
- --(4.02,0.2)\dpicstop
-\dpicdraw[fill=black](4.02,0.2) circle (0.007874in)\dpicstop
-\dpicdraw (3.895,0.1)
- --(4.02,0.1)\dpicstop
-\dpicdraw[fill=black](4.02,0.1) circle (0.007874in)\dpicstop
-\dpicdraw (3.895,-0.1)
- --(4.02,-0.1)\dpicstop
-\dpicdraw[fill=black](4.02,-0.1) circle (0.007874in)\dpicstop
-\dpicdraw (3.895,-0.2)
- --(4.02,-0.2)\dpicstop
-\dpicdraw[fill=black](4.02,-0.2) circle (0.007874in)\dpicstop
-\dpicdraw (3.895,-0.4)
- --(4.02,-0.4)\dpicstop
-\dpicdraw[fill=black](4.02,-0.4) circle (0.007874in)\dpicstop
-\dpicdraw (2.048846,-0.5)
- --(2.048846,-0.625)\dpicstop
-\dpicdraw[fill=black](2.048846,-0.625) circle (0.007874in)\dpicstop
-\dpicdraw (2.356538,-0.5)
- --(2.356538,-0.625)\dpicstop
-\dpicdraw[fill=black](2.356538,-0.625) circle (0.007874in)\dpicstop
-\dpicdraw (2.510385,-0.5)
- --(2.510385,-0.625)\dpicstop
-\dpicdraw[fill=black](2.510385,-0.625) circle (0.007874in)\dpicstop
-\dpicdraw (2.818077,-0.5)
- --(2.818077,-0.625)\dpicstop
-\dpicdraw[fill=black](2.818077,-0.625) circle (0.007874in)\dpicstop
-\dpicdraw (2.971923,-0.5)
- --(2.971923,-0.625)\dpicstop
-\dpicdraw[fill=black](2.971923,-0.625) circle (0.007874in)\dpicstop
-\dpicdraw (3.279615,-0.5)
- --(3.279615,-0.625)\dpicstop
-\dpicdraw[fill=black](3.279615,-0.625) circle (0.007874in)\dpicstop
-\dpicdraw (3.433462,-0.5)
- --(3.433462,-0.625)\dpicstop
-\dpicdraw[fill=black](3.433462,-0.625) circle (0.007874in)\dpicstop
-\dpicdraw (3.741154,-0.5)
- --(3.741154,-0.625)\dpicstop
-\dpicdraw[fill=black](3.741154,-0.625) circle (0.007874in)\dpicstop
-\draw (1.77,0.25) node[left=1bp]{\sl W1a};
-\draw (1.77,-0.25) node[left=1bp]{\sl W1b};
-\draw (4.02,0.4) node[right=1bp]{\sl E1a};
-\draw (4.02,-0.4) node[right=1bp]{\sl E3b};
-\draw (2.180714,0.625) node[above=1bp]{\sl N1a};
-\draw (2.752143,0.625) node[above=1bp]{\sl N1b$\;\;$};
-\draw (3.037857,0.625) node[above=1bp]{\sl $\;\;$N2a};
-\draw (3.609286,0.625) node[above=1bp]{\sl N2b};
-\draw (2.048846,-0.625) node[below=1bp]{\sl S1a};
-\draw (3.741154,-0.625) node[below=1bp]{\sl S4b};
-\draw (2.895,-0.725) node{$\cdots$};
-\draw (4.17,0.05) node{$\vdots$};
-\dpicdraw (4.895,-0.166667) rectangle (5.395,0.166667)\dpicstop
-\dpicdraw (4.895,0)
- --(4.77,0)\dpicstop
-\dpicdraw[fill=black](4.77,0) circle (0.007874in)\dpicstop
-\dpicdraw (5.395,0)
- --(5.52,0)\dpicstop
-\dpicdraw[fill=black](5.52,0) circle (0.007874in)\dpicstop
-\dpicdraw (5.145,-0.166667)
- --(5.145,-0.291667)\dpicstop
-\dpicdraw[fill=black](5.145,-0.291667) circle (0.007874in)\dpicstop
-\draw (4.77,0) node[left=1bp]{\sl W1};
-\draw (5.52,0) node[right=1bp]{\sl E1};
-\draw (5.145,-0.291667) node[below=1bp]{\sl S1};
-\draw (0.52,-0.55) node{\tt nport};
-\draw (2.895,-0.895) node{\tt nport(wid 2.0 ht 1 fill\_(0.9) "n-port",1,2,3,4)};
-\draw (5.145,-0.611667) node{\tt nterm};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Pconn.tex b/graphics/circuit_macros/doc/Pconn.tex
deleted file mode 100644
index 0bc608cbd9..0000000000
--- a/graphics/circuit_macros/doc/Pconn.tex
+++ /dev/null
@@ -1,462 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.598611,0.013889)
- --(0.598611,0.263889)
- --(0.098611,0.263889)
- --(0.098611,-0.236111)
- --(0.598611,-0.236111)
- --(0.598611,0.013889)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.469444,0.088889)
- --(0.469444,0.163889)
- --(0.427778,0.163889)
- --(0.427778,0.013889)
- --(0.469444,0.013889)
- --(0.469444,0.088889)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.269444,0.088889)
- --(0.269444,0.151389)
- --(0.227778,0.151389)
- --(0.227778,0.026389)
- --(0.269444,0.026389)
- --(0.269444,0.088889)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\fill[fill=black,line width=0bp](0.390278,-0.111111)
- ..controls (0.390278,-0.088099) and (0.371623,-0.069444)
- ..(0.348611,-0.069444)
- ..controls (0.325599,-0.069444) and (0.306944,-0.088099)
- ..(0.306944,-0.111111)--cycle
-\dpicstop
-\dpicdraw (0.390278,-0.111111)
- ..controls (0.390278,-0.088099) and (0.371623,-0.069444)
- ..(0.348611,-0.069444)
- ..controls (0.325599,-0.069444) and (0.306944,-0.088099)
- ..(0.306944,-0.111111)\dpicstop
-\fill[fill=black,line width=0bp](0.306944,-0.111111)
- --(0.306944,-0.152778)
- --(0.390278,-0.152778)
- --(0.390278,-0.111111)--cycle
-\dpicstop
-\dpicdraw (0.306944,-0.111111)
- --(0.306944,-0.152778)
- --(0.390278,-0.152778)
- --(0.390278,-0.111111)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.161111,0.068889)
- --(0.227778,0.088889)
- --(0.161111,0.108889) --cycle\dpicstop
-\dpicdraw (0.218111,0.088889)
- --(0.027778,0.088889)\dpicstop
-\draw (0.027778,0.088889) node[left=-2bp]{\sl H};
-\dpiclw=0.8bp
-\draw (0.348611,-0.236111) node[below=-2bp]{\tt pconnex(,A)};
-\dpicdraw (1.398611,0.013889)
- --(1.398611,0.263889)
- --(0.898611,0.263889)
- --(0.898611,-0.236111)
- --(1.398611,-0.236111)
- --(1.398611,0.013889)\dpicstop
-\dpicdraw (1.069444,0.088889)
- --(1.069444,0.163889)
- --(1.027778,0.163889)
- --(1.027778,0.013889)
- --(1.069444,0.013889)
- --(1.069444,0.088889)\dpicstop
-\dpicdraw (1.269444,0.088889)
- --(1.269444,0.151389)
- --(1.227778,0.151389)
- --(1.227778,0.026389)
- --(1.269444,0.026389)
- --(1.269444,0.088889)\dpicstop
-\dpicdraw (1.190278,-0.111111)
- ..controls (1.190278,-0.088099) and (1.171623,-0.069444)
- ..(1.148611,-0.069444)
- ..controls (1.125599,-0.069444) and (1.106944,-0.088099)
- ..(1.106944,-0.111111)\dpicstop
-\dpicdraw (1.106944,-0.111111)
- --(1.106944,-0.152778)
- --(1.190278,-0.152778)
- --(1.190278,-0.111111)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.320129,0.136592)
- --(1.269444,0.088889)
- --(1.338017,0.100815) --cycle\dpicstop
-\dpicdraw (1.278091,0.093212)
- --(1.469444,0.188889)\dpicstop
-\draw (1.469444,0.188889) node[right=-2bp]{\sl H};
-\draw (0.748611,0.188889) node{\sl N};
-\filldraw[line width=0bp](0.520518,0.136175)
- --(0.469444,0.088889)
- --(0.538113,0.100252) --cycle\dpicstop
-\dpicdraw (0.673611,0.188889)
- --(0.478126,0.093141)\dpicstop
-\filldraw[line width=0bp](0.95911,0.100252)
- --(1.027778,0.088889)
- --(0.976704,0.136175) --cycle\dpicstop
-\dpicdraw (0.823611,0.188889)
- --(1.019096,0.093141)\dpicstop
-\draw (0.748611,-0.061111) node{\sl G};
-\filldraw[line width=0bp](0.452454,-0.07983)
- --(0.390278,-0.111111)
- --(0.459406,-0.119221) --cycle\dpicstop
-\dpicdraw (0.673611,-0.061111)
- --(0.399798,-0.109431)\dpicstop
-\filldraw[line width=0bp](1.037817,-0.119221)
- --(1.106944,-0.111111)
- --(1.044768,-0.07983) --cycle\dpicstop
-\dpicdraw (0.823611,-0.061111)
- --(1.097425,-0.109431)\dpicstop
-\draw (1.148611,-0.236111) node[below=-2bp]{\tt (,AF)};
-\dpicdraw (1.848611,0.013889) circle (0.098425in)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (1.969444,0.088889)
- --(1.969444,0.163889)
- --(1.927778,0.163889)
- --(1.927778,0.013889)
- --(1.969444,0.013889)
- --(1.969444,0.088889)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (1.769444,0.088889)
- --(1.769444,0.151389)
- --(1.727778,0.151389)
- --(1.727778,0.026389)
- --(1.769444,0.026389)
- --(1.769444,0.088889)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\fill[fill=black,line width=0bp](1.890278,-0.111111)
- ..controls (1.890278,-0.088099) and (1.871623,-0.069444)
- ..(1.848611,-0.069444)
- ..controls (1.825599,-0.069444) and (1.806944,-0.088099)
- ..(1.806944,-0.111111)--cycle
-\dpicstop
-\dpicdraw (1.890278,-0.111111)
- ..controls (1.890278,-0.088099) and (1.871623,-0.069444)
- ..(1.848611,-0.069444)
- ..controls (1.825599,-0.069444) and (1.806944,-0.088099)
- ..(1.806944,-0.111111)\dpicstop
-\fill[fill=black,line width=0bp](1.806944,-0.111111)
- --(1.806944,-0.152778)
- --(1.890278,-0.152778)
- --(1.890278,-0.111111)--cycle
-\dpicstop
-\dpicdraw (1.806944,-0.111111)
- --(1.806944,-0.152778)
- --(1.890278,-0.152778)
- --(1.890278,-0.111111)\dpicstop
-\draw (1.848611,-0.236111) node[below=-2bp]{\tt (,AC)};
-\dpicdraw (2.548611,0.013889) circle (0.098425in)\dpicstop
-\dpicdraw (2.469444,0.088889)
- --(2.469444,0.163889)
- --(2.427778,0.163889)
- --(2.427778,0.013889)
- --(2.469444,0.013889)
- --(2.469444,0.088889)\dpicstop
-\dpicdraw (2.669444,0.088889)
- --(2.669444,0.151389)
- --(2.627778,0.151389)
- --(2.627778,0.026389)
- --(2.669444,0.026389)
- --(2.669444,0.088889)\dpicstop
-\dpicdraw (2.590278,-0.111111)
- ..controls (2.590278,-0.088099) and (2.571623,-0.069444)
- ..(2.548611,-0.069444)
- ..controls (2.525599,-0.069444) and (2.506944,-0.088099)
- ..(2.506944,-0.111111)\dpicstop
-\dpicdraw (2.506944,-0.111111)
- --(2.506944,-0.152778)
- --(2.590278,-0.152778)
- --(2.590278,-0.111111)\dpicstop
-\draw (2.548611,-0.236111) node[below=-2bp]{\tt (,ACF)};
-\dpicdraw (3.298611,-0.136111)
- --(3.298611,0.163889)\dpicstop
-\dpicdraw (3.298611,0.163889)
- ..controls (3.298611,0.246732) and (3.231454,0.313889)
- ..(3.148611,0.313889)
- ..controls (3.065768,0.313889) and (2.998611,0.246732)
- ..(2.998611,0.163889)\dpicstop
-\dpicdraw (2.998611,0.163889)
- --(2.998611,-0.136111)\dpicstop
-\dpicdraw (2.998611,-0.136111)
- ..controls (2.998611,-0.336111) and (3.298611,-0.336111)
- ..(3.298611,-0.136111)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (3.148611,0.163889) circle (0.016404in)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (3.148611,-0.136111) circle (0.016404in)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\draw (3.148611,-0.286111) node[below=-2bp]{\tt (U,D)};
-\dpicdraw (3.798611,-0.136111)
- --(3.798611,0.163889)\dpicstop
-\dpicdraw (3.798611,0.163889)
- ..controls (3.798611,0.246732) and (3.731454,0.313889)
- ..(3.648611,0.313889)
- ..controls (3.565768,0.313889) and (3.498611,0.246732)
- ..(3.498611,0.163889)\dpicstop
-\dpicdraw (3.498611,0.163889)
- --(3.498611,-0.136111)\dpicstop
-\dpicdraw (3.498611,-0.136111)
- ..controls (3.498611,-0.336111) and (3.798611,-0.336111)
- ..(3.798611,-0.136111)\dpicstop
-\dpicdraw (3.648611,0.163889) circle (0.016404in)\dpicstop
-\dpicdraw (3.648611,-0.136111) circle (0.016404in)\dpicstop
-\draw (3.648611,-0.286111) node[below=-2bp]{\tt (U,DF)};
-\dpicdraw (4.248611,0.013889)
- --(4.248611,0.263889)
- --(3.998611,0.263889)
- --(3.998611,-0.236111)
- --(4.248611,-0.236111)
- --(4.248611,0.013889)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.123611,0.159722)
- --(4.061111,0.159722)
- --(4.061111,0.118056)
- --(4.186111,0.118056)
- --(4.186111,0.159722)
- --(4.123611,0.159722)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.123611,-0.090278)
- --(4.061111,-0.090278)
- --(4.061111,-0.131944)
- --(4.186111,-0.131944)
- --(4.186111,-0.090278)
- --(4.123611,-0.090278)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\draw (4.123611,-0.236111) node[below=-2bp]{\tt (U,J)};
-\dpicdraw (4.698611,0.013889)
- --(4.698611,0.263889)
- --(4.448611,0.263889)
- --(4.448611,-0.236111)
- --(4.698611,-0.236111)
- --(4.698611,0.013889)\dpicstop
-\dpicdraw (4.573611,0.159722)
- --(4.511111,0.159722)
- --(4.511111,0.118056)
- --(4.636111,0.118056)
- --(4.636111,0.159722)
- --(4.573611,0.159722)\dpicstop
-\dpicdraw (4.573611,-0.090278)
- --(4.511111,-0.090278)
- --(4.511111,-0.131944)
- --(4.636111,-0.131944)
- --(4.636111,-0.090278)
- --(4.573611,-0.090278)\dpicstop
-\draw (4.573611,-0.236111) node[below=-2bp]{\tt (U,JF)};
-\dpiclw=0.8bp
-\dpicdraw (0.348611,-0.623611)
- --(0.098611,-0.623611)
- --(0.098611,-0.873611)
- --(0.223611,-0.998611)
- --(0.473611,-0.998611)
- --(0.598611,-0.873611)
- --(0.598611,-0.623611)
- --(0.348611,-0.623611)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.469444,-0.736111)
- --(0.469444,-0.673611)
- --(0.427778,-0.673611)
- --(0.427778,-0.798611)
- --(0.469444,-0.798611)
- --(0.469444,-0.736111)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.269444,-0.736111)
- --(0.269444,-0.673611)
- --(0.227778,-0.673611)
- --(0.227778,-0.798611)
- --(0.269444,-0.798611)
- --(0.269444,-0.736111)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.369444,-0.886111)
- --(0.369444,-0.836111)
- --(0.327778,-0.836111)
- --(0.327778,-0.936111)
- --(0.369444,-0.936111)
- --(0.369444,-0.886111)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\draw (0.348611,-0.998611) node[below=-2bp]{\tt (,P)};
-\dpicdraw (1.048611,-0.623611)
- --(0.798611,-0.623611)
- --(0.798611,-0.873611)
- --(0.923611,-0.998611)
- --(1.173611,-0.998611)
- --(1.298611,-0.873611)
- --(1.298611,-0.623611)
- --(1.048611,-0.623611)\dpicstop
-\dpicdraw (0.969444,-0.736111)
- --(0.969444,-0.673611)
- --(0.927778,-0.673611)
- --(0.927778,-0.798611)
- --(0.969444,-0.798611)
- --(0.969444,-0.736111)\dpicstop
-\dpicdraw (1.169444,-0.736111)
- --(1.169444,-0.673611)
- --(1.127778,-0.673611)
- --(1.127778,-0.798611)
- --(1.169444,-0.798611)
- --(1.169444,-0.736111)\dpicstop
-\dpicdraw (1.069444,-0.886111)
- --(1.069444,-0.836111)
- --(1.027778,-0.836111)
- --(1.027778,-0.936111)
- --(1.069444,-0.936111)
- --(1.069444,-0.886111)\dpicstop
-\draw (1.048611,-0.998611) node[below=-2bp]{\tt (,PF)};
-\dpicdraw (1.823611,-0.511111)
- --(2.148611,-0.511111)
- --(2.148611,-0.691111)
- --(1.913611,-1.111111)
- --(1.733611,-1.111111)
- --(1.498611,-0.691111)
- --(1.498611,-0.511111)
- --(1.823611,-0.511111)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (1.719444,-0.661111)
- --(1.719444,-0.629861)
- --(1.594444,-0.629861)
- --(1.594444,-0.692361)
- --(1.719444,-0.692361)
- --(1.719444,-0.661111)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (2.052778,-0.661111)
- --(2.052778,-0.629861)
- --(1.927778,-0.629861)
- --(1.927778,-0.692361)
- --(2.052778,-0.692361)
- --(2.052778,-0.661111)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (1.854861,-0.977778)
- --(1.854861,-0.915278)
- --(1.792361,-0.915278)
- --(1.792361,-1.040278)
- --(1.854861,-1.040278)
- --(1.854861,-0.977778)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\draw (1.823611,-1.111111) node[below=-2bp]{\tt (,G)};
-\dpicdraw (2.673611,-0.511111)
- --(2.998611,-0.511111)
- --(2.998611,-0.691111)
- --(2.763611,-1.111111)
- --(2.583611,-1.111111)
- --(2.348611,-0.691111)
- --(2.348611,-0.511111)
- --(2.673611,-0.511111)\dpicstop
-\dpicdraw (2.569444,-0.661111)
- --(2.569444,-0.629861)
- --(2.444444,-0.629861)
- --(2.444444,-0.692361)
- --(2.569444,-0.692361)
- --(2.569444,-0.661111)\dpicstop
-\dpicdraw (2.902778,-0.661111)
- --(2.902778,-0.629861)
- --(2.777778,-0.629861)
- --(2.777778,-0.692361)
- --(2.902778,-0.692361)
- --(2.902778,-0.661111)\dpicstop
-\dpicdraw (2.704861,-0.977778)
- --(2.704861,-0.915278)
- --(2.642361,-0.915278)
- --(2.642361,-1.040278)
- --(2.704861,-1.040278)
- --(2.704861,-0.977778)\dpicstop
-\draw (2.673611,-1.111111) node[below=-2bp]{\tt (,GF)};
-\dpicdraw (3.523611,-1.111111)
- --(3.198611,-1.111111)
- --(3.198611,-0.931111)
- --(3.433611,-0.511111)
- --(3.613611,-0.511111)
- --(3.848611,-0.931111)
- --(3.848611,-1.111111)
- --(3.523611,-1.111111)\dpicstop
-\dpicdraw (3.627778,-0.961111)
- --(3.627778,-0.992361)
- --(3.752778,-0.992361)
- --(3.752778,-0.929861)
- --(3.627778,-0.929861)
- --(3.627778,-0.961111)\dpicstop
-\dpicdraw (3.294444,-0.961111)
- --(3.294444,-0.992361)
- --(3.419444,-0.992361)
- --(3.419444,-0.929861)
- --(3.294444,-0.929861)
- --(3.294444,-0.961111)\dpicstop
-\dpicdraw (3.492361,-0.644444)
- --(3.492361,-0.706944)
- --(3.554861,-0.706944)
- --(3.554861,-0.581944)
- --(3.492361,-0.581944)
- --(3.492361,-0.644444)\dpicstop
-\draw (3.523611,-1.111111) node[below=-2bp]{\tt (L,GF)};
-\dpicdraw (4.373611,-0.811111) circle (0.127953in)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.269444,-0.661111)
- --(4.269444,-0.629861)
- --(4.144444,-0.629861)
- --(4.144444,-0.692361)
- --(4.269444,-0.692361)
- --(4.269444,-0.661111)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.602778,-0.661111)
- --(4.602778,-0.629861)
- --(4.477778,-0.629861)
- --(4.477778,-0.692361)
- --(4.602778,-0.692361)
- --(4.602778,-0.661111)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (4.404861,-0.977778)
- --(4.404861,-0.915278)
- --(4.342361,-0.915278)
- --(4.342361,-1.040278)
- --(4.404861,-1.040278)
- --(4.404861,-0.977778)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\draw (4.373611,-1.136111) node[below=-2bp]{\tt (,GC)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Relay.tex b/graphics/circuit_macros/doc/Relay.tex
deleted file mode 100644
index fca7a507b0..0000000000
--- a/graphics/circuit_macros/doc/Relay.tex
+++ /dev/null
@@ -1,198 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.291667,-0.227083)
- --(0.291667,-0.102083)
- --(0.166667,-0.102083)
- --(0.166667,-0.352083)
- --(0.291667,-0.352083)
- --(0.291667,-0.227083)\dpicstop
-\dpicdraw (0.166667,-0.227083)
- --(0,-0.227083)\dpicstop
-\dpicdraw (0.291667,-0.227083)
- --(0.458333,-0.227083)\dpicstop
-\dpicdraw[fill=white](0.108333,0.185417) circle (0.007874in)\dpicstop
-\dpicdraw (0.128333,0.185417)
- --(0.358333,0.185417)\dpicstop
-\filldraw[line width=0bp](0.275,0.26875)
- --(0.316667,0.185417)
- --(0.358333,0.26875) --cycle\dpicstop
-\dpicdraw (0.316667,0.197839)
- --(0.316667,0.310417)
- --(0.416667,0.310417)\dpicstop
-\filldraw[line width=0bp](0.358333,0.039583)
- --(0.316667,0.122917)
- --(0.275,0.039583) --cycle\dpicstop
-\dpicdraw (0.316667,0.110494)
- --(0.316667,-0.002083)
- --(0.416667,-0.002083)\dpicstop
-\draw (0,-0.227083) node[left=-2bp]{\sl V1};
-\draw (0.458333,-0.227083) node[right=-2bp]{\sl V2};
-\draw (0.088333,0.185417) node[left=-2bp]{\sl P1};
-\draw (0.416667,-0.002083) node[right=-2bp]{\sl O1};
-\draw (0.416667,0.310417) node[right=-2bp]{\sl C1};
-\draw (0.229167,-0.552083) node(S){\tt relay};
-\dpicdraw (1.391667,-0.227083)
- --(1.391667,-0.102083)
- --(1.266667,-0.102083)
- --(1.266667,-0.352083)
- --(1.391667,-0.352083)
- --(1.391667,-0.227083)\dpicstop
-\dpicdraw (1.266667,-0.227083)
- --(1.1,-0.227083)\dpicstop
-\dpicdraw (1.391667,-0.227083)
- --(1.558333,-0.227083)\dpicstop
-\dpicdraw (1.304167,-0.14375)
- --(1.304167,-0.202083)
- --(1.354167,-0.202083)
- --(1.354167,-0.252083)
- --(1.304167,-0.252083)
- --(1.304167,-0.310417)\dpicstop
-\dpicdraw[fill=white](1.208333,-0.002083) circle (0.007874in)\dpicstop
-\dpicdraw (1.228333,-0.002083)
- --(1.458333,-0.002083)\dpicstop
-\filldraw[line width=0bp](1.375,0.08125)
- --(1.416667,-0.002083)
- --(1.458333,0.08125) --cycle\dpicstop
-\dpicdraw (1.416667,0.010339)
- --(1.416667,0.122917)
- --(1.516667,0.122917)\dpicstop
-\dpicdraw[fill=white](1.208333,0.247917) circle (0.007874in)\dpicstop
-\dpicdraw (1.228333,0.247917)
- --(1.458333,0.247917)\dpicstop
-\filldraw[line width=0bp](1.375,0.33125)
- --(1.416667,0.247917)
- --(1.458333,0.33125) --cycle\dpicstop
-\dpicdraw (1.416667,0.260339)
- --(1.416667,0.372917)
- --(1.516667,0.372917)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](1.343333,-0.052083)
- --(1.343333,0.297917)\dpicstop
-\draw (1.188333,-0.002083) node[left=-2bp]{\sl P1};
-\draw (1.516667,0.122917) node[right=-2bp]{\sl C1};
-\draw (1.188333,0.247917) node[left=-2bp]{\sl P2};
-\draw (1.516667,0.372917) node[right=-2bp]{\sl C2};
-\draw (1.329167,-0.552083) node{\tt (2,CTh)};
-\dpicdraw (2.491667,-0.227083)
- --(2.491667,-0.102083)
- --(2.366667,-0.102083)
- --(2.366667,-0.352083)
- --(2.491667,-0.352083)
- --(2.491667,-0.227083)\dpicstop
-\dpicdraw (2.366667,-0.227083)
- --(2.2,-0.227083)\dpicstop
-\dpicdraw (2.491667,-0.227083)
- --(2.658333,-0.227083)\dpicstop
-\dpicdraw[fill=white](2.308333,0.185417) circle (0.007874in)\dpicstop
-\dpicdraw (2.328333,0.185417)
- --(2.558333,0.185417)\dpicstop
-\filldraw[line width=0bp](2.558333,0.039583)
- --(2.516667,0.122917)
- --(2.475,0.039583) --cycle\dpicstop
-\dpicdraw (2.516667,0.110494)
- --(2.516667,-0.002083)
- --(2.616667,-0.002083)\dpicstop
-\dpicdraw[fill=white](2.308333,0.497917) circle (0.007874in)\dpicstop
-\dpicdraw (2.328333,0.497917)
- --(2.558333,0.497917)\dpicstop
-\filldraw[line width=0bp](2.558333,0.352083)
- --(2.516667,0.435417)
- --(2.475,0.352083) --cycle\dpicstop
-\dpicdraw (2.516667,0.422994)
- --(2.516667,0.310417)
- --(2.616667,0.310417)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](2.443333,0.135417)
- --(2.443333,0.547917)\dpicstop
-\draw (2.288333,0.185417) node[left=-2bp]{\sl P1};
-\draw (2.616667,-0.002083) node[right=-2bp]{\sl O1};
-\draw (2.288333,0.185417) node[left=-2bp]{\sl P1};
-\draw (2.616667,0.310417) node[right=-2bp]{\sl O2};
-\draw (2.429167,-0.552083) node{\tt (2,O)};
-\dpicdraw (3.591667,-0.227083)
- --(3.591667,-0.102083)
- --(3.466667,-0.102083)
- --(3.466667,-0.352083)
- --(3.591667,-0.352083)
- --(3.591667,-0.227083)\dpicstop
-\dpicdraw (3.466667,-0.164583)
- --(3.3,-0.164583)\dpicstop
-\dpicdraw (3.466667,-0.289583)
- --(3.3,-0.289583)\dpicstop
-\dpicdraw[fill=white](3.408333,0.105972) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.616667,0.214028) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.616667,-0.002083) circle (0.007874in)\dpicstop
-\dpicdraw (3.428333,0.105972)
- --(3.658333,0.105972)\dpicstop
-\dpicdraw[fill=white](3.408333,0.447083) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.616667,0.555139) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.616667,0.339028) circle (0.007874in)\dpicstop
-\dpicdraw (3.428333,0.447083)
- --(3.658333,0.447083)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](3.543333,0.055972)
- --(3.543333,0.497083)\dpicstop
-\draw (3.3,-0.164583) node[left=-2bp]{\sl V1};
-\draw (3.3,-0.289583) node[left=-2bp]{\sl V2};
-\draw (3.388333,0.105972) node[left=-2bp]{\sl P1};
-\draw (3.636667,-0.002083) node[right=-2bp]{\sl O1};
-\draw (3.636667,0.186354) node[right=-2bp]{\sl C1};
-\draw (3.388333,0.447083) node[left=-2bp]{\sl P2};
-\draw (3.636667,0.339028) node[right=-2bp]{\sl O2};
-\draw (3.636667,0.527465) node[right=-2bp]{\sl C2};
-\draw (3.479167,-0.552083) node{\tt (2,PIAX)};
-\dpicdraw (4.691667,0.664583)
- --(4.691667,0.789583)
- --(4.566667,0.789583)
- --(4.566667,0.539583)
- --(4.691667,0.539583)
- --(4.691667,0.664583)\dpicstop
-\dpicdraw (4.566667,0.664583)
- --(4.4,0.664583)\dpicstop
-\dpicdraw (4.691667,0.664583)
- --(4.858333,0.664583)\dpicstop
-\dpicdraw[fill=white](4.508333,0.252083) circle (0.007874in)\dpicstop
-\dpicdraw (4.528333,0.252083)
- --(4.758333,0.252083)\dpicstop
-\filldraw[line width=0bp](4.758333,0.16875)
- --(4.716667,0.252083)
- --(4.675,0.16875) --cycle\dpicstop
-\dpicdraw (4.716667,0.239661)
- --(4.716667,0.127083)
- --(4.816667,0.127083)\dpicstop
-\filldraw[line width=0bp](4.675,0.397917)
- --(4.716667,0.314583)
- --(4.758333,0.397917) --cycle\dpicstop
-\dpicdraw (4.716667,0.327006)
- --(4.716667,0.439583)
- --(4.816667,0.439583)\dpicstop
-\dpicdraw[fill=white](4.508333,-0.185417) circle (0.007874in)\dpicstop
-\dpicdraw (4.528333,-0.185417)
- --(4.758333,-0.185417)\dpicstop
-\filldraw[line width=0bp](4.758333,-0.26875)
- --(4.716667,-0.185417)
- --(4.675,-0.26875) --cycle\dpicstop
-\dpicdraw (4.716667,-0.197839)
- --(4.716667,-0.310417)
- --(4.816667,-0.310417)\dpicstop
-\filldraw[line width=0bp](4.675,-0.039583)
- --(4.716667,-0.122917)
- --(4.758333,-0.039583) --cycle\dpicstop
-\dpicdraw (4.716667,-0.110494)
- --(4.716667,0.002083)
- --(4.816667,0.002083)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](4.643333,0.302083)
- --(4.643333,-0.235417)\dpicstop
-\draw (4.4,0.664583) node[left=-2bp]{\sl V1};
-\draw (4.858333,0.664583) node[right=-2bp]{\sl V2};
-\draw (4.488333,0.252083) node[left=-2bp]{\sl P1};
-\draw (4.816667,0.439583) node[right=-2bp]{\sl O1};
-\draw (4.816667,0.127083) node[right=-2bp]{\sl C1};
-\draw (4.488333,-0.185417) node[left=-2bp]{\sl P2};
-\draw (4.816667,0.002083) node[right=-2bp]{\sl O2};
-\draw (4.816667,-0.310417) node[right=-2bp]{\sl C2};
-\draw (4.629167,-0.552083) node{\tt relay(2,R)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/SLDs.tex b/graphics/circuit_macros/doc/SLDs.tex
deleted file mode 100644
index b7e43a7c7c..0000000000
--- a/graphics/circuit_macros/doc/SLDs.tex
+++ /dev/null
@@ -1,1208 +0,0 @@
-% SLDs.m4
-%
-\global\newcommand{\SLDTransformers}{%
-\begin{tikzpicture}[scale=2.54]%
-% dpic version 2021.11.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-{\sf
-\dpicdraw (0.673611,-0.739236)
- --(0.673611,-0.504861)\dpicstop
-\dpicdraw (0.673611,-0.504861)
- --(0.673611,-0.504861)\dpicstop
-\dpicdraw (0.673611,-0.411111)
- --(0.626736,-0.411111)
- --(0.626736,-0.504861)
- --(0.720486,-0.504861)
- --(0.720486,-0.411111)
- --(0.673611,-0.411111)\dpicstop
-\dpicdraw (0.673611,-0.411111)
- --(0.673611,-0.411111)\dpicstop
-\dpicdraw (0.673611,-0.411111)
- --(0.673611,-0.270486)\dpicstop
-\dpicdraw (0.673611,-0.270486)
- --(0.673611,-0.270486)\dpicstop
-\dpicdraw (0.511111,-0.270486)
- --(0.511111,-0.270486)\dpicstop
-\dpicdraw (0.511111,-0.270486)
- --(0.511111,-0.276042)\dpicstop
-\dpicdraw (0.511111,-0.270486)
- ..controls (0.511111,-0.24805) and (0.5293,-0.229861)
- ..(0.551736,-0.229861)
- ..controls (0.574173,-0.229861) and (0.592361,-0.24805)
- ..(0.592361,-0.270486)\dpicstop
-\dpicdraw (0.592361,-0.270486)
- --(0.592361,-0.276042)\dpicstop
-\dpicdraw (0.592361,-0.270486)
- ..controls (0.592361,-0.24805) and (0.61055,-0.229861)
- ..(0.632986,-0.229861)
- ..controls (0.655423,-0.229861) and (0.673611,-0.24805)
- ..(0.673611,-0.270486)\dpicstop
-\dpicdraw (0.673611,-0.270486)
- --(0.673611,-0.276042)\dpicstop
-\dpicdraw (0.673611,-0.270486)
- ..controls (0.673611,-0.24805) and (0.6918,-0.229861)
- ..(0.714236,-0.229861)
- ..controls (0.736673,-0.229861) and (0.754861,-0.24805)
- ..(0.754861,-0.270486)\dpicstop
-\dpicdraw (0.754861,-0.270486)
- --(0.754861,-0.276042)\dpicstop
-\dpicdraw (0.754861,-0.270486)
- ..controls (0.754861,-0.24805) and (0.77305,-0.229861)
- ..(0.795486,-0.229861)
- ..controls (0.817923,-0.229861) and (0.836111,-0.24805)
- ..(0.836111,-0.270486)\dpicstop
-\dpicdraw (0.836111,-0.270486)
- --(0.836111,-0.276042)\dpicstop
-\dpicdraw (0.836111,-0.270486)
- --(0.836111,-0.270486)\dpicstop
-\dpicdraw (0.836111,-0.135069)
- --(0.836111,-0.135069)\dpicstop
-\dpicdraw (0.836111,-0.135069)
- --(0.836111,-0.129514)\dpicstop
-\dpicdraw (0.836111,-0.135069)
- ..controls (0.836111,-0.157506) and (0.817923,-0.175694)
- ..(0.795486,-0.175694)
- ..controls (0.77305,-0.175694) and (0.754861,-0.157506)
- ..(0.754861,-0.135069)\dpicstop
-\dpicdraw (0.754861,-0.135069)
- --(0.754861,-0.129514)\dpicstop
-\dpicdraw (0.754861,-0.135069)
- ..controls (0.754861,-0.189236) and (0.673611,-0.189236)
- ..(0.673611,-0.135069)\dpicstop
-\dpicdraw (0.673611,-0.135069)
- --(0.673611,-0.129514)\dpicstop
-\dpicdraw (0.673611,-0.135069)
- ..controls (0.673611,-0.189236) and (0.592361,-0.189236)
- ..(0.592361,-0.135069)\dpicstop
-\dpicdraw (0.592361,-0.135069)
- --(0.592361,-0.129514)\dpicstop
-\dpicdraw (0.592361,-0.135069)
- ..controls (0.592361,-0.189236) and (0.511111,-0.189236)
- ..(0.511111,-0.135069)\dpicstop
-\dpicdraw (0.511111,-0.135069)
- --(0.511111,-0.129514)\dpicstop
-\dpicdraw (0.511111,-0.135069)
- --(0.511111,-0.135069)\dpicstop
-\dpicdraw (0.673611,-0.135069)
- --(0.673611,-0.135069)\dpicstop
-\dpicdraw (0.673611,-0.135069)
- --(0.673611,0.005556)\dpicstop
-\dpicdraw (0.673611,0.005556)
- --(0.673611,0.005556)\dpicstop
-\dpicdraw (0.673611,0.099306)
- --(0.626736,0.099306)
- --(0.626736,0.005556)
- --(0.720486,0.005556)
- --(0.720486,0.099306)
- --(0.673611,0.099306)\dpicstop
-\dpicdraw (0.673611,0.099306)
- --(0.673611,0.099306)\dpicstop
-\dpicdraw (0.673611,0.099306)
- --(0.673611,0.333681)\dpicstop
-\draw (0.673611,-0.739236) node[below=-2bp]{sl\_transformer(,,C,C)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.565454,0.132304)
- --(0.626736,0.099306)
- --(0.593738,0.160588) --cycle\dpicstop
-\dpicdraw (0.619901,0.106141)
- --(0.460069,0.265972)\dpicstop
-\draw (0.460069,0.265972) node[left=-2bp]{\sl BrO};
-\filldraw[line width=0bp](0.781769,-0.537859)
- --(0.720486,-0.504861)
- --(0.753484,-0.566144) --cycle\dpicstop
-\dpicdraw (0.727322,-0.511697)
- --(0.887153,-0.671528)\dpicstop
-\draw (0.887153,-0.671528) node[right=-2bp]{\sl BrI};
-\dpiclw=0.8bp
-\dpicdraw (1.273611,-0.739236)
- --(1.273611,-0.504861)\dpicstop
-\dpicdraw (1.273611,-0.504861)
- --(1.273611,-0.504861)\dpicstop
-\fill[fill=black,line width=0bp](1.273611,-0.411111)
- --(1.226736,-0.411111)
- --(1.226736,-0.504861)
- --(1.320486,-0.504861)
- --(1.320486,-0.411111)
- --(1.273611,-0.411111)--cycle
-\dpicstop
-\dpicdraw (1.273611,-0.411111)
- --(1.226736,-0.411111)
- --(1.226736,-0.504861)
- --(1.320486,-0.504861)
- --(1.320486,-0.411111)
- --(1.273611,-0.411111)\dpicstop
-\dpicdraw (1.273611,-0.411111)
- --(1.273611,-0.411111)\dpicstop
-\dpicdraw (1.273611,-0.411111)
- --(1.273611,-0.270486)\dpicstop
-\dpicdraw (1.273611,-0.270486)
- --(1.273611,-0.270486)\dpicstop
-\dpicdraw (1.273611,-0.107986) circle (0.063976in)\dpicstop
-\dpicdraw (1.273611,0.135764) circle (0.063976in)\dpicstop
-\dpicdraw (1.273611,0.298264)
- --(1.273611,0.298264)\dpicstop
-\dpicdraw (1.273611,0.298264)
- --(1.273611,0.438889)\dpicstop
-\dpicdraw (1.273611,0.438889)
- --(1.273611,0.438889)\dpicstop
-\fill[fill=black,line width=0bp](1.273611,0.532639)
- --(1.226736,0.532639)
- --(1.226736,0.438889)
- --(1.320486,0.438889)
- --(1.320486,0.532639)
- --(1.273611,0.532639)--cycle
-\dpicstop
-\dpicdraw (1.273611,0.532639)
- --(1.226736,0.532639)
- --(1.226736,0.438889)
- --(1.320486,0.438889)
- --(1.320486,0.532639)
- --(1.273611,0.532639)\dpicstop
-\dpicdraw (1.273611,0.532639)
- --(1.273611,0.532639)\dpicstop
-\dpicdraw (1.273611,0.532639)
- --(1.273611,0.767014)\dpicstop
-\draw (1.273611,-0.739236) node[below=-2bp]{.{.}.(,type=S,O,O)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.763661,-0.06047)
- --(0.754861,-0.129514)
- --(0.800213,-0.076716) --cycle\dpicstop
-\dpicdraw (0.758787,-0.12068)
- --(0.921528,0.245486)\dpicstop
-\draw (0.921528,0.245486) node[above=-2bp]{Body};
-\filldraw[line width=0bp](1.053407,0.052807)
- --(1.111111,0.013889)
- --(1.084359,0.078144) --cycle\dpicstop
-\dpicdraw (0.921528,0.245486)
- --(1.104988,0.021369)\dpicstop
-\filldraw[line width=0bp](1.193738,-0.566144)
- --(1.226736,-0.504861)
- --(1.165454,-0.537859) --cycle\dpicstop
-\dpicdraw (1.219901,-0.511697)
- --(1.126736,-0.604861)\dpicstop
-\dpiclw=0.8bp
-\dpicdraw (2.173611,-0.739236)
- --(2.173611,-0.504861)\dpicstop
-\dpicdraw (2.173611,-0.504861)
- --(2.173611,-0.504861)\dpicstop
-\dpicdraw (2.173611,-0.411111)
- --(2.126736,-0.411111)
- --(2.126736,-0.504861)
- --(2.220486,-0.504861)
- --(2.220486,-0.411111)
- --(2.173611,-0.411111)\dpicstop
-\dpicdraw (2.173611,-0.411111)
- --(2.173611,-0.411111)\dpicstop
-\dpicdraw (2.173611,-0.411111)
- --(2.173611,-0.270486)\dpicstop
-\dpicdraw (2.173611,-0.270486)
- --(2.173611,-0.270486)\dpicstop
-\dpicdraw (2.173611,-0.107986) circle (0.063976in)\dpicstop
-\dpicdraw (2.173611,0.135764) circle (0.063976in)\dpicstop
-\dpicdraw (2.173611,0.298264)
- --(2.173611,0.298264)\dpicstop
-\dpicdraw (2.173611,-0.183042)
- --(2.173611,-0.107986)\dpicstop
-\dpicdraw (2.108611,-0.070458)
- --(2.173611,-0.107986)
- --(2.238611,-0.070458)\dpicstop
-\dpicdraw (2.173611,-0.107986)
- --(2.417361,-0.107986)\dpicstop
-\dpicdraw (2.411806,-0.107986)
- --(2.422917,-0.107986)\dpicstop
-\dpicdraw (2.417361,-0.107986)
- --(2.417361,-0.232986)\dpicstop
-\dpicdraw (2.500694,-0.232986)
- --(2.334028,-0.232986)\dpicstop
-\dpicdraw (2.472917,-0.264236)
- --(2.361806,-0.264236)\dpicstop
-\dpicdraw (2.453075,-0.295486)
- --(2.381647,-0.295486)\dpicstop
-\dpicdraw (2.173611,0.210819)
- --(2.173611,0.135764)\dpicstop
-\dpicdraw (2.238611,0.098236)
- --(2.173611,0.135764)
- --(2.108611,0.098236)\dpicstop
-\dpicdraw (2.173611,0.135764)
- --(2.417361,0.135764)\dpicstop
-\dpicdraw (2.411806,0.135764)
- --(2.422917,0.135764)\dpicstop
-\dpicdraw (2.417361,0.135764)
- --(2.417361,0.010764)\dpicstop
-\dpicdraw (2.500694,0.010764)
- --(2.334028,0.010764)\dpicstop
-\dpicdraw (2.472917,-0.020486)
- --(2.361806,-0.020486)\dpicstop
-\dpicdraw (2.453075,-0.051736)
- --(2.381647,-0.051736)\dpicstop
-\dpicdraw (2.173611,0.298264)
- --(2.173611,0.438889)\dpicstop
-\dpicdraw (2.173611,0.438889)
- --(2.173611,0.438889)\dpicstop
-\dpicdraw (2.173611,0.532639)
- --(2.126736,0.532639)
- --(2.126736,0.438889)
- --(2.220486,0.438889)
- --(2.220486,0.532639)
- --(2.173611,0.532639)\dpicstop
-\dpicdraw (2.173611,0.532639)
- --(2.173611,0.532639)\dpicstop
-\dpicdraw (2.173611,0.532639)
- --(2.173611,0.767014)\dpicstop
-\draw (2.173611,-0.739236) node[below=-2bp]{.{.}.(,,C,C,YN,YN)};
-\dpicdraw (3.073611,-0.739236)
- --(3.073611,-0.504861)\dpicstop
-\dpicdraw (3.073611,-0.504861)
- --(3.073611,-0.504861)\dpicstop
-\dpicdraw (3.073611,-0.411111)
- --(3.026736,-0.411111)
- --(3.026736,-0.504861)
- --(3.120486,-0.504861)
- --(3.120486,-0.411111)
- --(3.073611,-0.411111)\dpicstop
-\dpicdraw (3.073611,-0.411111)
- --(3.073611,-0.411111)\dpicstop
-\dpicdraw (3.073611,-0.411111)
- --(3.073611,-0.270486)\dpicstop
-\dpicdraw (3.073611,-0.270486)
- --(3.073611,-0.270486)\dpicstop
-\dpicdraw (3.073611,-0.107986) circle (0.063976in)\dpicstop
-\dpicdraw (3.073611,0.135764) circle (0.063976in)\dpicstop
-\dpicdraw (3.073611,0.298264)
- --(3.073611,0.298264)\dpicstop
-\dpicdraw (3.073611,-0.078778)
- --(3.138611,-0.078778)
- --(3.073611,-0.191361)
- --(3.008611,-0.078778)
- --(3.073611,-0.078778)\dpicstop
-\dpicdraw (3.073611,0.210819)
- --(3.073611,0.135764)\dpicstop
-\dpicdraw (3.138611,0.098236)
- --(3.073611,0.135764)
- --(3.008611,0.098236)\dpicstop
-\dpicdraw (3.073611,0.298264)
- --(3.073611,0.438889)\dpicstop
-\dpicdraw (3.073611,0.438889)
- --(3.073611,0.438889)\dpicstop
-\fill[fill=black,line width=0bp](3.073611,0.532639)
- --(3.026736,0.532639)
- --(3.026736,0.438889)
- --(3.120486,0.438889)
- --(3.120486,0.532639)
- --(3.073611,0.532639)--cycle
-\dpicstop
-\dpicdraw (3.073611,0.532639)
- --(3.026736,0.532639)
- --(3.026736,0.438889)
- --(3.120486,0.438889)
- --(3.120486,0.532639)
- --(3.073611,0.532639)\dpicstop
-\dpicdraw (3.073611,0.532639)
- --(3.073611,0.532639)\dpicstop
-\dpicdraw (3.073611,0.532639)
- --(3.073611,0.767014)\dpicstop
-\draw (3.073611,-0.739236) node[below=-2bp]{.{.}.(,type=S,C,O,Delta,Y)};
-\dpicdraw (3.973611,-0.739236)
- --(3.973611,-0.648611)\dpicstop
-\dpicdraw (3.973611,-0.486111) circle (0.063976in)\dpicstop
-\dpicdraw (3.973611,-0.242361) circle (0.063976in)\dpicstop
-\dpicdraw (3.973611,-0.079861)
- --(3.973611,0.010764)\dpicstop
-\dpicdraw (3.973611,-0.561167)
- --(3.973611,-0.486111)\dpicstop
-\dpicdraw (3.908611,-0.448583)
- --(3.973611,-0.486111)
- --(4.038611,-0.448583)\dpicstop
-\dpicdraw (3.973611,-0.271569)
- --(3.908611,-0.271569)
- --(3.973611,-0.158986)
- --(4.038611,-0.271569)
- --(3.973611,-0.271569)\dpicstop
-\draw (3.973611,-0.739236) node[below=-2bp]{.{.}.(,type=S,{,},Y,Delta)};
-\dpicdraw (4.873611,-0.739236)
- --(4.873611,-0.504861)\dpicstop
-\dpicdraw (4.873611,-0.504861)
- --(4.873611,-0.504861)\dpicstop
-\dpicdraw (4.873611,-0.411111)
- --(4.826736,-0.411111)
- --(4.826736,-0.504861)
- --(4.920486,-0.504861)
- --(4.920486,-0.411111)
- --(4.873611,-0.411111)\dpicstop
-\dpicdraw (4.873611,-0.411111)
- --(4.873611,-0.411111)\dpicstop
-\dpicdraw (4.873611,-0.411111)
- --(4.873611,-0.270486)\dpicstop
-\dpicdraw (4.873611,-0.270486)
- --(4.873611,-0.270486)\dpicstop
-\dpicdraw[line width=0.4bp](4.873611,-0.270486) circle (0.00109in)\dpicstop
-\dpicdraw (4.873611,0.054514) circle (0.063976in)\dpicstop
-\dpicdraw (4.873611,-0.270486)
- ..controls (4.771315,-0.193764) and (4.711111,-0.073356)
- ..(4.711111,0.054514)\dpicstop
-\dpicdraw (4.873611,0.217014)
- --(4.873611,0.217014)\dpicstop
-\dpicdraw (4.873611,0.217014)
- --(4.873611,0.357639)\dpicstop
-\dpicdraw (4.873611,0.357639)
- --(4.873611,0.357639)\dpicstop
-\dpicdraw (4.873611,0.451389)
- --(4.826736,0.451389)
- --(4.826736,0.357639)
- --(4.920486,0.357639)
- --(4.920486,0.451389)
- --(4.873611,0.451389)\dpicstop
-\dpicdraw (4.873611,0.451389)
- --(4.873611,0.451389)\dpicstop
-\dpicdraw (4.873611,0.451389)
- --(4.873611,0.685764)\dpicstop
-\draw (4.873611,-0.739236) node[below=-2bp]{.{.}.(,type=A,C,C)};
-}%
-\end{tikzpicture}%
-}
-\global\newcommand{\SLDTwoTerms}{%
-\begin{tikzpicture}[scale=2.54]%
-% dpic version 2021.11.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-{\sf
-\dpicdraw (0,0.671523)
- --(0.234375,0.671523)\dpicstop
-\dpicdraw (0.234375,0.671523)
- --(0.234375,0.671523)\dpicstop
-\fill[fill=green,line width=0bp](0.328125,0.671523)
- --(0.328125,0.718398)
- --(0.234375,0.718398)
- --(0.234375,0.624648)
- --(0.328125,0.624648)
- --(0.328125,0.671523)--cycle
-\dpicstop
-\dpicdraw (0.328125,0.671523)
- --(0.328125,0.718398)
- --(0.234375,0.718398)
- --(0.234375,0.624648)
- --(0.328125,0.624648)
- --(0.328125,0.671523)\dpicstop
-\dpicdraw (0.328125,0.671523)
- --(0.328125,0.671523)\dpicstop
-\dpicdraw (0.328125,0.671523)
- --(0.46875,0.671523)\dpicstop
-\dpicdraw (0.46875,0.671523)
- --(0.46875,0.671523)\dpicstop
-\dpicdraw (0.84375,0.671523)
- --(0.84375,0.859023)
- --(0.46875,0.859023)
- --(0.46875,0.484023)
- --(0.84375,0.484023)
- --(0.84375,0.671523)\dpicstop
-\dpicdraw (0.84375,0.671523)
- --(0.84375,0.671523)\dpicstop
-\dpicdraw (0.84375,0.671523)
- --(0.984375,0.671523)\dpicstop
-\dpicdraw (0.984375,0.671523)
- --(0.984375,0.671523)\dpicstop
-\fill[fill=red,line width=0bp](1.078125,0.671523)
- --(1.078125,0.718398)
- --(0.984375,0.718398)
- --(0.984375,0.624648)
- --(1.078125,0.624648)
- --(1.078125,0.671523)--cycle
-\dpicstop
-\dpicdraw (1.078125,0.671523)
- --(1.078125,0.718398)
- --(0.984375,0.718398)
- --(0.984375,0.624648)
- --(1.078125,0.624648)
- --(1.078125,0.671523)\dpicstop
-\dpicdraw (1.078125,0.671523)
- --(1.078125,0.671523)\dpicstop
-\dpicdraw (1.078125,0.671523)
- --(1.3125,0.671523)\dpicstop
-\draw (1.451389,0.671523) node[right=-2bp]{sl\_ttbox(,,box=shaded "green",box=shaded "red")};
-\dpicdraw (0,0.171523)
- --(0.1875,0.171523)\dpicstop
-\dpicdraw (0.5625,0.171523)
- --(0.5625,0.359023)
- --(0.1875,0.359023)
- --(0.1875,-0.015977)
- --(0.5625,-0.015977)
- --(0.5625,0.171523)\dpicstop
-\dpicdraw (0.5625,0.171523)
- --(0.75,0.171523)\dpicstop
-\dpicdraw (0.5625,0.359023)
- --(0.1875,-0.015977)\dpicstop
-\dpicdraw (0.229167,0.265273)
- ..controls (0.23052,0.268098) and (0.232917,0.273065)
- ..(0.234514,0.276354)
- ..controls (0.236111,0.279643) and (0.238748,0.284911)
- ..(0.240397,0.288106)
- ..controls (0.242046,0.291302) and (0.244953,0.296489)
- ..(0.246883,0.299679)
- ..controls (0.248813,0.302868) and (0.251926,0.307403)
- ..(0.253828,0.309795)
- ..controls (0.25573,0.312188) and (0.2588,0.31533)
- ..(0.260677,0.316804)
- ..controls (0.262554,0.318279) and (0.265593,0.31988)
- ..(0.267456,0.320378)
- ..controls (0.26932,0.320875) and (0.272347,0.320875)
- ..(0.27421,0.320378)
- ..controls (0.276074,0.31988) and (0.279112,0.318279)
- ..(0.28099,0.316804)
- ..controls (0.282867,0.31533) and (0.285937,0.312188)
- ..(0.287839,0.309795)
- ..controls (0.289741,0.307403) and (0.292853,0.302868)
- ..(0.294783,0.299679)
- ..controls (0.296713,0.296489) and (0.299869,0.290821)
- ..(0.301823,0.287034)
- ..controls (0.303777,0.283246) and (0.306964,0.276831)
- ..(0.308932,0.272721)
- ..controls (0.310901,0.268611) and (0.314099,0.261934)
- ..(0.316068,0.257824)
- ..controls (0.318036,0.253714) and (0.321223,0.247299)
- ..(0.323177,0.243511)
- ..controls (0.325131,0.239724) and (0.328287,0.234056)
- ..(0.330217,0.230867)
- ..controls (0.332147,0.227677) and (0.335259,0.223142)
- ..(0.337161,0.22075)
- ..controls (0.339063,0.218357) and (0.342133,0.215216)
- ..(0.34401,0.213741)
- ..controls (0.345888,0.212266) and (0.348926,0.210665)
- ..(0.35079,0.210168)
- ..controls (0.352653,0.20967) and (0.35568,0.20967)
- ..(0.357544,0.210168)
- ..controls (0.359407,0.210665) and (0.362446,0.212266)
- ..(0.364323,0.213741)
- ..controls (0.3662,0.215216) and (0.36927,0.218357)
- ..(0.371172,0.22075)
- ..controls (0.373074,0.223142) and (0.376187,0.227677)
- ..(0.378117,0.230867)
- ..controls (0.380047,0.234056) and (0.382954,0.239243)
- ..(0.384603,0.242439)
- ..controls (0.386252,0.245634) and (0.388889,0.250902)
- ..(0.390486,0.254191)
- ..controls (0.392083,0.25748) and (0.39448,0.262447)
- ..(0.395833,0.265273)\dpicstop
-\dpicdraw (0.354167,0.061106)
- --(0.520833,0.061106)\dpicstop
-\dpicdraw (0.354167,0.094439)
- --(0.395833,0.094439)\dpicstop
-\dpicdraw (0.416667,0.094439)
- --(0.458333,0.094439)\dpicstop
-\dpicdraw (0.479167,0.094439)
- --(0.520833,0.094439)\dpicstop
-\dpicdraw (0.888889,0.171523)
- --(1.076389,0.171523)\dpicstop
-\dpicdraw (1.451389,0.171523)
- --(1.451389,0.359023)
- --(1.076389,0.359023)
- --(1.076389,-0.015977)
- --(1.451389,-0.015977)
- --(1.451389,0.171523)\dpicstop
-\dpicdraw (1.451389,0.171523)
- --(1.638889,0.171523)\dpicstop
-\dpicdraw (1.451389,0.359023)
- --(1.076389,-0.015977)\dpicstop
-\dpicdraw (1.118056,0.248606)
- --(1.284722,0.248606)\dpicstop
-\dpicdraw (1.118056,0.281939)
- --(1.159722,0.281939)\dpicstop
-\dpicdraw (1.180556,0.281939)
- --(1.222222,0.281939)\dpicstop
-\dpicdraw (1.243056,0.281939)
- --(1.284722,0.281939)\dpicstop
-\dpicdraw (1.243056,0.077773)
- ..controls (1.244409,0.080598) and (1.246806,0.085565)
- ..(1.248403,0.088854)
- ..controls (1.25,0.092143) and (1.252637,0.097411)
- ..(1.254286,0.100606)
- ..controls (1.255935,0.103802) and (1.258842,0.108989)
- ..(1.260772,0.112179)
- ..controls (1.262702,0.115368) and (1.265815,0.119903)
- ..(1.267717,0.122295)
- ..controls (1.269619,0.124688) and (1.272688,0.12783)
- ..(1.274566,0.129304)
- ..controls (1.276443,0.130779) and (1.279482,0.13238)
- ..(1.281345,0.132878)
- ..controls (1.283209,0.133375) and (1.286236,0.133375)
- ..(1.288099,0.132878)
- ..controls (1.289962,0.13238) and (1.293001,0.130779)
- ..(1.294879,0.129304)
- ..controls (1.296756,0.12783) and (1.299826,0.124688)
- ..(1.301728,0.122295)
- ..controls (1.30363,0.119903) and (1.306742,0.115368)
- ..(1.308672,0.112179)
- ..controls (1.310602,0.108989) and (1.313757,0.103321)
- ..(1.315712,0.099534)
- ..controls (1.317666,0.095746) and (1.320853,0.089331)
- ..(1.322821,0.085221)
- ..controls (1.32479,0.081111) and (1.327988,0.074434)
- ..(1.329956,0.070324)
- ..controls (1.331925,0.066214) and (1.335111,0.059799)
- ..(1.337066,0.056011)
- ..controls (1.33902,0.052224) and (1.342176,0.046556)
- ..(1.344106,0.043367)
- ..controls (1.346036,0.040177) and (1.349148,0.035642)
- ..(1.35105,0.03325)
- ..controls (1.352952,0.030857) and (1.356022,0.027716)
- ..(1.357899,0.026241)
- ..controls (1.359777,0.024766) and (1.362815,0.023165)
- ..(1.364679,0.022668)
- ..controls (1.366542,0.02217) and (1.369569,0.02217)
- ..(1.371432,0.022668)
- ..controls (1.373296,0.023165) and (1.376334,0.024766)
- ..(1.378212,0.026241)
- ..controls (1.380089,0.027716) and (1.383159,0.030857)
- ..(1.385061,0.03325)
- ..controls (1.386963,0.035642) and (1.390075,0.040177)
- ..(1.392005,0.043367)
- ..controls (1.393935,0.046556) and (1.396843,0.051743)
- ..(1.398492,0.054939)
- ..controls (1.400141,0.058134) and (1.402778,0.063402)
- ..(1.404375,0.066691)
- ..controls (1.405972,0.06998) and (1.408369,0.074947)
- ..(1.409722,0.077773)\dpicstop
-\draw (1.777778,0.171523) node[right=-2bp]{sl\_rectifier, sl\_inverter};
-\dpicdraw (0,-0.245144)
- --(0.328125,-0.245144)\dpicstop
-\dpicdraw (0.421875,-0.245144)
- --(0.421875,-0.198269)
- --(0.328125,-0.198269)
- --(0.328125,-0.292019)
- --(0.421875,-0.292019)
- --(0.421875,-0.245144)\dpicstop
-\dpicdraw (0.421875,-0.245144)
- --(0.75,-0.245144)\dpicstop
-\dpicdraw (0.888889,-0.245144)
- --(1.180556,-0.245144)\dpicstop
-\dpicdraw (1.164931,-0.213894)
- ..controls (1.21441,-0.147922) and (1.313368,-0.147922)
- ..(1.362847,-0.213894)\dpicstop
-\dpicdraw (1.347222,-0.245144)
- --(1.638889,-0.245144)\dpicstop
-\dpicdraw (2.105903,-0.245144)
- --(2.230903,-0.245144)\dpicstop
-\dpicdraw (2.324653,-0.245144)
- --(2.324653,-0.198269)
- --(2.230903,-0.198269)
- --(2.230903,-0.292019)
- --(2.324653,-0.292019)
- --(2.324653,-0.245144)\dpicstop
-\dpicdraw (2.324653,-0.245144)
- --(2.449653,-0.245144)\dpicstop
-\dpicdraw (2.105903,-0.245144)
- --(2.043403,-0.245144)\dpicstop
-\dpicdraw (2.105903,-0.307644)
- --(2.043403,-0.245144)
- --(2.105903,-0.182644)\dpicstop
-\dpicdraw (2.043403,-0.307644)
- --(1.980903,-0.245144)
- --(2.043403,-0.182644)\dpicstop
-\dpicdraw (1.980903,-0.245144)
- --(1.777778,-0.245144)\dpicstop
-\dpicdraw (2.449653,-0.245144)
- --(2.512153,-0.245144)\dpicstop
-\dpicdraw (2.449653,-0.182644)
- --(2.512153,-0.245144)
- --(2.449653,-0.307644)\dpicstop
-\dpicdraw (2.512153,-0.182644)
- --(2.574653,-0.245144)
- --(2.512153,-0.307644)\dpicstop
-\dpicdraw (2.574653,-0.245144)
- --(2.777778,-0.245144)\dpicstop
-\draw (2.277778,-0.198269) node[above=-2bp]{D};
-\draw (2.916667,-0.245144) node{\shortstack{\rlap{\hbox to 2bp{}sl\_breaker, sl\_breaker(,type=C)}\\%
-\rlap{\hbox to 2bp{}sl\_breaker(,type=D;name=B3) ; llabel(,"D",{,},B3)}}};
-\dpicdraw (0,-0.745144)
- --(0.234375,-0.745144)\dpicstop
-\dpicdraw (0.234375,-0.745144)
- --(0.234375,-0.745144)\dpicstop
-\dpicdraw (0.328125,-0.745144)
- --(0.328125,-0.698269)
- --(0.234375,-0.698269)
- --(0.234375,-0.792019)
- --(0.328125,-0.792019)
- --(0.328125,-0.745144)\dpicstop
-\dpicdraw (0.328125,-0.745144)
- --(0.328125,-0.745144)\dpicstop
-\dpicdraw (0.328125,-0.745144)
- --(0.46875,-0.745144)\dpicstop
-\dpicdraw (0.46875,-0.745144)
- --(0.579861,-0.745144)
- --(0.579861,-0.856255)\dpicstop
-\dpicdraw[line width=0.4bp](0.579861,-0.856255) circle (0.00109in)\dpicstop
-\dpicdraw (0.579861,-0.856255)
- ..controls (0.480872,-0.856255) and (0.431298,-0.736573)
- ..(0.501294,-0.666577)
- ..controls (0.57129,-0.596581) and (0.690972,-0.646155)
- ..(0.690972,-0.745144)\dpicstop
-\dpicdraw[line width=0.4bp](0.690972,-0.745144) circle (0.00109in)\dpicstop
-\dpicdraw (0.690972,-0.745144)
- --(0.690972,-0.745144)\dpicstop
-\dpicdraw (0.690972,-0.745144)
- --(0.831597,-0.745144)\dpicstop
-\dpicdraw (0.831597,-0.745144)
- --(0.831597,-0.745144)\dpicstop
-\dpicdraw (0.925347,-0.745144)
- --(0.925347,-0.698269)
- --(0.831597,-0.698269)
- --(0.831597,-0.792019)
- --(0.925347,-0.792019)
- --(0.925347,-0.745144)\dpicstop
-\dpicdraw (0.925347,-0.745144)
- --(0.925347,-0.745144)\dpicstop
-\dpicdraw (0.925347,-0.745144)
- --(1.159722,-0.745144)\dpicstop
-\draw (1.298611,-0.745144) node[right=-2bp]{sl\_reactor(,,C,C)};
-\dpicdraw (3,-0.745144)
- --(3.375,-0.745144)\dpicstop
-\dpicdraw (3.3125,-0.682644)
- --(3.375,-0.745144)
- --(3.3125,-0.807644)\dpicstop
-\dpicdraw (3.375,-0.682644)
- --(3.4375,-0.745144)
- --(3.375,-0.807644)\dpicstop
-\dpicdraw (3.4375,-0.745144)
- --(3.75,-0.745144)\dpicstop
-\draw (3.888889,-0.745144) node[right=-2bp]{sl\_drawout};
-}%
-\end{tikzpicture}%
-}
-\global\newcommand{\SLDOneTerms}{%
-\begin{tikzpicture}[scale=2.54]%
-% dpic version 2021.11.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-{\sf
-\dpicdraw (0.2,0.288889) circle (0.07874in)\dpicstop
-\dpicdraw (0.2,0.088889)
- --(0.2,-0.511111)\dpicstop
-\draw (0.2,-0.511111) node[below=-2bp]{sl\_disk};
-\dpicdraw (0.8,-0.511111)
- --(0.8,-0.192361)\dpicstop
-\dpicdraw (0.8,-0.192361)
- --(0.8,-0.192361)\dpicstop
-\dpicdraw (0.8,-0.079861)
- --(0.74375,-0.079861)
- --(0.74375,-0.192361)
- --(0.85625,-0.192361)
- --(0.85625,-0.079861)
- --(0.8,-0.079861)\dpicstop
-\dpicdraw (0.8,-0.079861)
- --(0.8,-0.079861)\dpicstop
-\dpicdraw (0.8,0.088889)
- --(0.8,-0.079861)\dpicstop
-\dpicdraw (0.8,0.488889)
- --(0.6,0.488889)
- --(0.6,0.088889)
- --(1,0.088889)
- --(1,0.488889)
- --(0.8,0.488889)\dpicstop
-\draw (0.8,-0.511111) node[below=-2bp]{sl\_box(,,C)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.917533,-0.169109)
- --(0.85625,-0.136111)
- --(0.889248,-0.197394) --cycle\dpicstop
-\dpicdraw (0.863086,-0.142947)
- --(1.00625,-0.286111)\dpicstop
-\draw (1.00625,-0.286111) node[right=-2bp]{\sl Br};
-\filldraw[line width=0bp](0.402704,0.114469)
- --(0.341421,0.147468)
- --(0.37442,0.086185) --cycle\dpicstop
-\dpicdraw (0.348257,0.140632)
- --(0.491421,-0.002532)\dpicstop
-\draw (0.491421,-0.002532) node[below=-2bp]{\sl Head};
-\filldraw[line width=0bp](0.565263,0.039695)
- --(0.6,0.100009)
- --(0.537799,0.068776) --cycle\dpicstop
-\dpicdraw (0.491421,-0.002532)
- --(0.592972,0.093372)\dpicstop
-\dpiclw=0.8bp
-\dpicdraw (1.4,0.088889)
- --(1.4,-0.511111)\dpicstop
-\dpicdraw (1.4,0.488889)
- --(1.2,0.488889)
- --(1.2,0.088889)
- --(1.6,0.088889)
- --(1.6,0.488889)
- --(1.4,0.488889)\dpicstop
-\dpicdraw (1.4,0.088889)
- --(1.2,0.288889)\dpicstop
-\dpicdraw (1.2,0.288889)
- --(1.4,0.488889)\dpicstop
-\dpicdraw (1.4,0.088889)
- --(1.6,0.288889)\dpicstop
-\dpicdraw (1.6,0.288889)
- --(1.4,0.488889)\dpicstop
-\dpicdraw (1.2,0.088889)
- --(1.6,0.488889)\dpicstop
-\dpicdraw (1.6,0.088889)
- --(1.2,0.488889)\dpicstop
-\draw (1.4,-0.511111) node[below=-2bp]{sl\_grid};
-\dpicdraw (2,-0.511111)
- --(2,-0.192361)\dpicstop
-\dpicdraw (2,-0.192361)
- --(2,-0.192361)\dpicstop
-\fill[fill=black,line width=0bp](2,-0.079861)
- --(1.94375,-0.079861)
- --(1.94375,-0.192361)
- --(2.05625,-0.192361)
- --(2.05625,-0.079861)
- --(2,-0.079861)--cycle
-\dpicstop
-\dpicdraw (2,-0.079861)
- --(1.94375,-0.079861)
- --(1.94375,-0.192361)
- --(2.05625,-0.192361)
- --(2.05625,-0.079861)
- --(2,-0.079861)\dpicstop
-\dpicdraw (2,-0.079861)
- --(2,-0.079861)\dpicstop
-\dpicdraw (2,0.088889)
- --(2,-0.079861)\dpicstop
-\dpicdraw (2,0.088889)
- --(1.904,0.088889)
- --(2,0.358889)
- --(2.096,0.088889)
- --(2,0.088889)\dpicstop
-\draw (2,-0.511111) node[below=-2bp]{sl\_load(,,O)};
-\dpicdraw (2.6,0.088889)
- --(2.6,-0.511111)\dpicstop
-\dpicdraw (2.6,0.538889)
- --(2.375,0.538889)
- --(2.375,0.088889)
- --(2.825,0.088889)
- --(2.825,0.538889)
- --(2.6,0.538889)\dpicstop
-\dpicdraw (2.375,0.448889)
- --(2.825,0.448889)\dpicstop
-\draw (2.6,-0.511111) node[below=-2bp]{sl\_meterbox};
-\dpicdraw (3.2,0.288889) circle (0.07874in)\dpicstop
-\dpicdraw (3.2,0.088889)
- --(3.2,-0.511111)\dpicstop
-\filldraw[line width=0bp](3.30019,0.401009)
- --(3.289805,0.389387)
- ..controls (3.304441,0.383072) and (3.317977,0.374465)
- ..(3.329904,0.363889)
- ..controls (3.326373,0.381145) and (3.31983,0.397644)
- ..(3.310575,0.41263)
- --(3.30019,0.401009)\dpicstop
-\filldraw[line width=0bp](3.09981,0.401009)
- --(3.110195,0.389387)
- ..controls (3.095559,0.383072) and (3.082023,0.374465)
- ..(3.070096,0.363889)
- ..controls (3.073627,0.381145) and (3.08017,0.397644)
- ..(3.089425,0.41263)
- --(3.09981,0.401009)\dpicstop
-\dpicdraw (3.30918,0.391746)
- ..controls (3.249964,0.454603) and (3.150036,0.454603)
- ..(3.09082,0.391746)\dpicstop
-\dpicdraw (3.2,0.438889)
- --(3.2,0.213889)\dpicstop
-\draw (3.2,-0.511111) node[below=-2bp]{sl\_syncmeter};
-\dpicdraw (3.8,0.288889) circle (0.07874in)\dpicstop
-\dpicdraw (3.8,0.088889)
- --(3.8,-0.511111)\dpicstop
-\dpicdraw (3.941421,0.43031)
- --(3.658579,0.147468)\dpicstop
-\dpicdraw (3.658579,0.43031)
- --(3.941421,0.147468)\dpicstop
-\draw (3.8,-0.511111) node[below=-2bp]{sl\_lamp};
-}%
-\end{tikzpicture}%
-}
-\global\newcommand{\SLDGenerators}{%
-\begin{tikzpicture}[scale=2.54]%
-% dpic version 2021.11.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-{\sf
-\dpicdraw (0.2,0.313889) circle (0.07874in)\dpicstop
-\dpicdraw (0.2,0.113889)
- --(0.2,-0.486111)\dpicstop
-\dpicdraw (0.1,0.313889)
- ..controls (0.101633,0.317298) and (0.104524,0.323288)
- ..(0.10645,0.327254)
- ..controls (0.108376,0.331221) and (0.111555,0.337567)
- ..(0.113542,0.341414)
- ..controls (0.115528,0.34526) and (0.119026,0.351491)
- ..(0.121345,0.355316)
- ..controls (0.123665,0.359141) and (0.1274,0.364567)
- ..(0.129679,0.367423)
- ..controls (0.131958,0.370279) and (0.135631,0.374023)
- ..(0.137875,0.375776)
- ..controls (0.140119,0.377529) and (0.143747,0.379432)
- ..(0.145971,0.380021)
- ..controls (0.148194,0.380611) and (0.151806,0.380611)
- ..(0.154029,0.380021)
- ..controls (0.156253,0.379432) and (0.159881,0.377529)
- ..(0.162125,0.375776)
- ..controls (0.164369,0.374023) and (0.168042,0.370279)
- ..(0.170321,0.367423)
- ..controls (0.1726,0.364567) and (0.176335,0.359141)
- ..(0.178655,0.355316)
- ..controls (0.180974,0.351491) and (0.184771,0.344682)
- ..(0.187125,0.340123)
- ..controls (0.18948,0.335564) and (0.193321,0.327833)
- ..(0.195696,0.322875)
- ..controls (0.198071,0.317916) and (0.201929,0.309861)
- ..(0.204304,0.304903)
- ..controls (0.206679,0.299945) and (0.21052,0.292214)
- ..(0.212875,0.287655)
- ..controls (0.215229,0.283096) and (0.219026,0.276286)
- ..(0.221345,0.272462)
- ..controls (0.223665,0.268637) and (0.2274,0.263211)
- ..(0.229679,0.260355)
- ..controls (0.231958,0.257499) and (0.235631,0.253755)
- ..(0.237875,0.252002)
- ..controls (0.240119,0.250249) and (0.243747,0.248346)
- ..(0.245971,0.247757)
- ..controls (0.248194,0.247167) and (0.251806,0.247167)
- ..(0.254029,0.247757)
- ..controls (0.256253,0.248346) and (0.259881,0.250249)
- ..(0.262125,0.252002)
- ..controls (0.264369,0.253755) and (0.268042,0.257499)
- ..(0.270321,0.260355)
- ..controls (0.2726,0.263211) and (0.276335,0.268637)
- ..(0.278655,0.272462)
- ..controls (0.280974,0.276286) and (0.284472,0.282518)
- ..(0.286458,0.286364)
- ..controls (0.288445,0.290211) and (0.291624,0.296557)
- ..(0.29355,0.300523)
- ..controls (0.295476,0.304489) and (0.298367,0.31048)
- ..(0.3,0.313889)\dpicstop
-\draw (0.2,-0.486111) node[below=-2bp]{sl\_generator};
-\dpicdraw (0.92,0.313889) circle (0.07874in)\dpicstop
-\dpicdraw (0.92,0.113889)
- --(0.92,-0.486111)\dpicstop
-\dpicdraw[fill=black,draw=black](0.92,0.313889) circle (0.003937in)\dpicstop
-\fill[fill=black,line width=0bp](0.958641,0.326961)
- ..controls (0.948548,0.320361) and (0.938016,0.315861)
- ..(0.935235,0.316961)
- ..controls (0.932455,0.318062) and (0.929846,0.322431)
- ..(0.929439,0.326671)
- ..controls (0.929031,0.330911) and (0.933085,0.337672)
- ..(0.938448,0.341695)
- ..controls (0.94381,0.345719) and (0.949873,0.349869)
- ..(0.951922,0.350918)
- ..controls (0.95397,0.351967) and (0.956702,0.353539)
- ..(0.957992,0.354412)
- ..controls (0.959283,0.355285) and (0.984674,0.36683)
- ..(1.014418,0.380068)
- ..controls (1.044162,0.393307) and (1.070453,0.404315)
- ..(1.072843,0.404531)
- ..controls (1.075233,0.404747) and (1.076797,0.403238)
- ..(1.076318,0.401177)
- ..controls (1.075839,0.399117) and (1.022884,0.365719)
- ..(0.958641,0.326961) --cycle\dpicstop
-\dpicdraw[line width=0.2bp,draw=black](0.958641,0.326961)
- ..controls (0.948548,0.320361) and (0.938016,0.315861)
- ..(0.935235,0.316961)
- ..controls (0.932455,0.318062) and (0.929846,0.322431)
- ..(0.929439,0.326671)
- ..controls (0.929031,0.330911) and (0.933085,0.337672)
- ..(0.938448,0.341695)
- ..controls (0.94381,0.345719) and (0.949873,0.349869)
- ..(0.951922,0.350918)
- ..controls (0.95397,0.351967) and (0.956702,0.353539)
- ..(0.957992,0.354412)
- ..controls (0.959283,0.355285) and (0.984674,0.36683)
- ..(1.014418,0.380068)
- ..controls (1.044162,0.393307) and (1.070453,0.404315)
- ..(1.072843,0.404531)
- ..controls (1.075233,0.404747) and (1.076797,0.403238)
- ..(1.076318,0.401177)
- ..controls (1.075839,0.399117) and (1.022884,0.365719)
- ..(0.958641,0.326961)\dpicstop
-\fill[fill=black,line width=0bp](0.889359,0.340817)
- ..controls (0.900121,0.335377) and (0.909284,0.328505)
- ..(0.909722,0.325547)
- ..controls (0.910159,0.322589) and (0.907679,0.318145)
- ..(0.904211,0.315672)
- ..controls (0.900743,0.313199) and (0.892861,0.31333)
- ..(0.886695,0.315962)
- ..controls (0.88053,0.318594) and (0.873904,0.32177)
- ..(0.871971,0.323019)
- ..controls (0.870038,0.324268) and (0.867311,0.325848)
- ..(0.86591,0.326529)
- ..controls (0.864509,0.327211) and (0.841814,0.343428)
- ..(0.815478,0.362568)
- ..controls (0.789141,0.381707) and (0.766462,0.398972)
- ..(0.76508,0.400934)
- ..controls (0.763698,0.402896) and (0.764223,0.405004)
- ..(0.766247,0.40562)
- ..controls (0.768271,0.406235) and (0.823671,0.377074)
- ..(0.889359,0.340817) --cycle\dpicstop
-\dpicdraw[line width=0.2bp,draw=black](0.889359,0.340817)
- ..controls (0.900121,0.335377) and (0.909284,0.328505)
- ..(0.909722,0.325547)
- ..controls (0.910159,0.322589) and (0.907679,0.318145)
- ..(0.904211,0.315672)
- ..controls (0.900743,0.313199) and (0.892861,0.31333)
- ..(0.886695,0.315962)
- ..controls (0.88053,0.318594) and (0.873904,0.32177)
- ..(0.871971,0.323019)
- ..controls (0.870038,0.324268) and (0.867311,0.325848)
- ..(0.86591,0.326529)
- ..controls (0.864509,0.327211) and (0.841814,0.343428)
- ..(0.815478,0.362568)
- ..controls (0.789141,0.381707) and (0.766462,0.398972)
- ..(0.76508,0.400934)
- ..controls (0.763698,0.402896) and (0.764223,0.405004)
- ..(0.766247,0.40562)
- ..controls (0.768271,0.406235) and (0.823671,0.377074)
- ..(0.889359,0.340817)\dpicstop
-\fill[fill=black,line width=0bp](0.912,0.273889)
- ..controls (0.911331,0.28593) and (0.9127,0.297301)
- ..(0.915043,0.299159)
- ..controls (0.917386,0.301017) and (0.922474,0.301091)
- ..(0.92635,0.299324)
- ..controls (0.930226,0.297557) and (0.934054,0.290665)
- ..(0.934857,0.28401)
- ..controls (0.93566,0.277354) and (0.936223,0.270028)
- ..(0.936107,0.267729)
- ..controls (0.935992,0.265431) and (0.935988,0.262279)
- ..(0.936098,0.260725)
- ..controls (0.936209,0.259171) and (0.933511,0.231409)
- ..(0.930104,0.199031)
- ..controls (0.926697,0.166653) and (0.923085,0.13838)
- ..(0.922077,0.136202)
- ..controls (0.921069,0.134024) and (0.91898,0.133424)
- ..(0.917435,0.134869)
- ..controls (0.91589,0.136314) and (0.913444,0.198873)
- ..(0.912,0.273889) --cycle\dpicstop
-\dpicdraw[line width=0.2bp,draw=black](0.912,0.273889)
- ..controls (0.911331,0.28593) and (0.9127,0.297301)
- ..(0.915043,0.299159)
- ..controls (0.917386,0.301017) and (0.922474,0.301091)
- ..(0.92635,0.299324)
- ..controls (0.930226,0.297557) and (0.934054,0.290665)
- ..(0.934857,0.28401)
- ..controls (0.93566,0.277354) and (0.936223,0.270028)
- ..(0.936107,0.267729)
- ..controls (0.935992,0.265431) and (0.935988,0.262279)
- ..(0.936098,0.260725)
- ..controls (0.936209,0.259171) and (0.933511,0.231409)
- ..(0.930104,0.199031)
- ..controls (0.926697,0.166653) and (0.923085,0.13838)
- ..(0.922077,0.136202)
- ..controls (0.921069,0.134024) and (0.91898,0.133424)
- ..(0.917435,0.134869)
- ..controls (0.91589,0.136314) and (0.913444,0.198873)
- ..(0.912,0.273889)\dpicstop
-\draw (0.92,-0.486111) node[below=-2bp]{.{.}.(,type=WT)};
-\dpicdraw (1.64,0.313889) circle (0.07874in)\dpicstop
-\dpicdraw (1.64,0.113889)
- --(1.64,-0.486111)\dpicstop
-\dpicdraw (1.64,0.163889)
- --(1.64,0.288889)\dpicstop
-\dpicdraw (1.565,0.288889)
- --(1.715,0.288889)\dpicstop
-\dpicdraw (1.49,0.338889)
- --(1.79,0.338889)\dpicstop
-\dpicdraw (1.64,0.338889)
- --(1.64,0.463889)\dpicstop
-\dpicdraw (1.74,0.360556)
- --(1.74,0.427222)\dpicstop
-\dpicdraw (1.706667,0.393889)
- --(1.773333,0.393889)\dpicstop
-\dpicdraw (1.706667,0.247222)
- --(1.773333,0.247222)\dpicstop
-\draw (1.64,-0.486111) node[below=-2bp]{.{.}.(,type=BS)};
-\dpicdraw (2.36,0.113889)
- --(2.36,-0.486111)\dpicstop
-\dpicdraw (2.36,0.513889)
- --(2.24,0.513889)
- --(2.24,0.113889)
- --(2.48,0.113889)
- --(2.48,0.513889)
- --(2.36,0.513889)\dpicstop
-\dpicdraw (2.27,0.113889)
- --(2.36,0.213889)
- --(2.45,0.113889)\dpicstop
-\draw (2.36,-0.486111) node[below=-2bp]{.{.}.(,type=PV)};
-\dpicdraw (3.08,0.313889) circle (0.07874in)\dpicstop
-\dpicdraw (3.08,0.113889)
- --(3.08,-0.486111)\dpicstop
-\dpicdraw (3.013333,0.313889)
- --(3.022265,0.313889)\dpicstop
-\dpicdraw (3.022265,0.380556)
- --(3.022265,0.447222)
- --(3.1322,0.380556)
- --(3.022265,0.313889)
- --(3.022265,0.380556)\dpicstop
-\dpicdraw (3.137735,0.176504)
- --(3.137735,0.451274)\dpicstop
-\dpicdraw (3.022265,0.176504)
- --(3.022265,0.451274)\dpicstop
-\dpicdraw (3.137735,0.247222)
- --(3.137735,0.313889)
- --(3.0278,0.247222)
- --(3.137735,0.180556)
- --(3.137735,0.247222)\dpicstop
-\dpicdraw (3.137735,0.313889)
- --(3.146667,0.313889)\dpicstop
-\draw (3.08,-0.486111) node[below=-2bp]{.{.}.(,type=StatG)};
-\dpicdraw (3.8,0.313889) circle (0.07874in)\dpicstop
-\draw (3.8,0.313889) node{SG};
-\dpicdraw (3.8,0.113889)
- --(3.8,-0.486111)\dpicstop
-\draw (3.8,-0.486111) node[below=-2bp]{sl\_disk(,text="SG")};
-}%
-\end{tikzpicture}%
-}
-\global\newcommand{\SLDComposite}{%
-\begin{tikzpicture}[scale=2.54]%
-% dpic version 2021.11.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-{\sf
-\dpicdraw (0.02,0.516)
- --(0.610551,0.516)\dpicstop
-\dpicdraw (0.225276,0.5655)
- --(0.225276,0.5655)\dpicstop
-\dpicdraw (0.225276,0.5655)
- --(0.225276,0.559944)\dpicstop
-\dpicdraw (0.225276,0.5655)
- ..controls (0.225276,0.590353) and (0.245423,0.6105)
- ..(0.270276,0.6105)
- ..controls (0.295128,0.6105) and (0.315276,0.590353)
- ..(0.315276,0.5655)\dpicstop
-\dpicdraw (0.315276,0.5655)
- --(0.315276,0.559944)\dpicstop
-\dpicdraw (0.315276,0.5655)
- ..controls (0.315276,0.590353) and (0.335423,0.6105)
- ..(0.360276,0.6105)
- ..controls (0.385128,0.6105) and (0.405276,0.590353)
- ..(0.405276,0.5655)\dpicstop
-\dpicdraw (0.405276,0.5655)
- --(0.405276,0.559944)\dpicstop
-\dpicdraw (0.405276,0.5655)
- --(0.405276,0.5655)\dpicstop
-\dpicdraw (0.225276,0.5655)
- --(0.225276,0.4215)\dpicstop
-\dpicdraw (0.405276,0.5655)
- --(0.405276,0.4215)\dpicstop
-\dpicdraw (0.315276,0.5655)
- --(0.315276,0.4215)\dpicstop
-\draw (0.315276,0.004833) node(CTLt){sl\_ct(type=L)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.203429,0.355415)
- --(0.225276,0.4215)
- --(0.17066,0.378354) --cycle\dpicstop
-\dpicdraw (0.219732,0.413581)
- --(0.128053,0.282611)\dpicstop
-\draw (0.128053,0.282611) node[below left=-2bp]{\sl Tstart};
-\filldraw[line width=0bp](0.459891,0.378354)
- --(0.405276,0.4215)
- --(0.427122,0.355415) --cycle\dpicstop
-\dpicdraw (0.410819,0.413581)
- --(0.502498,0.282611)\dpicstop
-\draw (0.502498,0.282611) node[below right=-2bp]{\sl Tend};
-\filldraw[line width=0bp](0.347962,0.36005)
- --(0.315276,0.4215)
- --(0.308738,0.352206) --cycle\dpicstop
-\dpicdraw (0.317171,0.412021)
- --(0.343053,0.282611)\dpicstop
-\draw (0.343053,0.282611) node[below=-2bp]{\sl Tc};
-\dpiclw=0.8bp
-\dpicdraw (1.810551,0.516)
- --(1.954551,0.516)\dpicstop
-\dpicdraw[line width=0.4bp](1.954551,0.516) circle (0.00109in)\dpicstop
-\dpicdraw (1.954551,0.516)
- ..controls (1.954551,0.622039) and (2.040513,0.708)
- ..(2.146551,0.708)
- ..controls (2.25259,0.708) and (2.338551,0.622039)
- ..(2.338551,0.516)\dpicstop
-\dpicdraw[line width=0.4bp](2.338551,0.516) circle (0.00109in)\dpicstop
-\dpicdraw (2.338551,0.516)
- --(2.482551,0.516)\dpicstop
-\dpicdraw (2.146551,0.516) circle (0.037795in)\dpicstop
-\dpicdraw (2.146551,0.42)
- --(2.146551,0.276)\dpicstop
-\draw (2.146551,0.004833) node{sl\_ct(type=C)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.788705,0.449915)
- --(1.810551,0.516)
- --(1.755936,0.472854) --cycle\dpicstop
-\dpicdraw (1.805008,0.508081)
- --(1.713329,0.377111)\dpicstop
-\draw (1.713329,0.377111) node[below left=-2bp]{\sl Tstart};
-\filldraw[line width=0bp](2.537167,0.472854)
- --(2.482551,0.516)
- --(2.504397,0.449915) --cycle\dpicstop
-\dpicdraw (2.488095,0.508081)
- --(2.579773,0.377111)\dpicstop
-\draw (2.579773,0.377111) node[below right=-2bp]{\sl Tend};
-\draw (2.146551,0.276) node[right=-2bp]{\sl Tc};
-\dpiclw=0.8bp
-\dpicdraw[fill=black](0.14,-0.684) circle (0.009449in)\dpicstop
-\dpicdraw[fill=black](0.74,-0.684) circle (0.009449in)\dpicstop
-\dpicdraw[fill=black](1.34,-0.684) circle (0.009449in)\dpicstop
-\dpicdraw[fill=black](1.94,-0.684) circle (0.009449in)\dpicstop
-\dpicdraw[line width=1.6bp](0.02,-0.684)
- --(2.06,-0.684)\dpicstop
-\draw (2.66,-0.684) node[right=-2bp]{sl\_busbar(right\_ 3{\tt*}dimen\_,4,port=D)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.162659,-0.593961)
- --(0.150733,-0.662534)
- --(0.198436,-0.61185) --cycle\dpicstop
-\dpicdraw (0.155056,-0.653887)
- --(0.229267,-0.505466)\dpicstop
-\draw (0.229267,-0.505466) node[right=-2bp]{\sl P1};
-\filldraw[line width=0bp](0.762659,-0.593961)
- --(0.750733,-0.662534)
- --(0.798436,-0.61185) --cycle\dpicstop
-\dpicdraw (0.755056,-0.653887)
- --(0.829267,-0.505466)\dpicstop
-\draw (0.829267,-0.505466) node[right=-2bp]{\sl P2};
-\filldraw[line width=0bp](1.362659,-0.593961)
- --(1.350733,-0.662534)
- --(1.398436,-0.61185) --cycle\dpicstop
-\dpicdraw (1.355056,-0.653887)
- --(1.429267,-0.505466)\dpicstop
-\draw (1.429267,-0.505466) node[right=-2bp]{\sl P3};
-\filldraw[line width=0bp](1.962659,-0.593961)
- --(1.950733,-0.662534)
- --(1.998436,-0.61185) --cycle\dpicstop
-\dpicdraw (1.955056,-0.653887)
- --(2.029267,-0.505466)\dpicstop
-\draw (2.029267,-0.505466) node[right=-2bp]{\sl P4};
-\filldraw[line width=0bp](2.126667,-0.664)
- --(2.06,-0.684)
- --(2.126667,-0.704) --cycle\dpicstop
-\dpicdraw (2.069667,-0.684)
- --(2.164833,-0.684)
- ..controls (2.228278,-0.684) and (2.276667,-0.650667)
- ..(2.31,-0.584)
- --(2.36,-0.484)\dpicstop
-\draw (2.36,-0.484) node[above right=-2bp]{\sl End};
-\filldraw[line width=0bp](0,-0.617333)
- --(0.02,-0.684)
- --(0.04,-0.617333) --cycle\dpicstop
-\dpicdraw (0.02,-0.674333)
- --(0.02,-0.629167)
- ..controls (0.02,-0.599056) and (0.036667,-0.550667)
- ..(0.07,-0.484)
- --(0.12,-0.384)\dpicstop
-\draw (0.12,-0.384) node[above=-2bp]{\sl Start};
-\dpiclw=0.8bp
-}%
-\end{tikzpicture}%
-}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/ShiftR.tex b/graphics/circuit_macros/doc/ShiftR.tex
deleted file mode 100644
index d6e49ca1bc..0000000000
--- a/graphics/circuit_macros/doc/ShiftR.tex
+++ /dev/null
@@ -1,285 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
- {\sf
-\dpicdraw (0.15,-0.45) rectangle (0.65,0.45)\dpicstop
-\draw (0.15,0.3) node[right=-3bp]{{\scriptsize S}};
-\dpicdraw (0.15,0.3)
- --(0,0.3)\dpicstop
-\dpicdraw (0.15,-0.0375)
- --(0.214952,0)
- --(0.15,0.0375)\dpicstop
-\draw (0.214952,0) node[right=-3bp]{{\scriptsize CK}};
-\dpicdraw (0.1125,0) circle (0.014764in)\dpicstop
-\dpicdraw (0.075,0)
- --(0,0)\dpicstop
-\draw (0.15,-0.3) node[right=-3bp]{{\scriptsize R}};
-\dpicdraw (0.15,-0.3)
- --(0,-0.3)\dpicstop
-\draw (0.4,0.45) node[below=-3bp]{{\scriptsize PR}};
-\dpicdraw (0.4,0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (0.4,0.525)
- --(0.4,0.6)\dpicstop
-\draw (0.65,0.3) node[left=-3bp]{{\scriptsize Q}};
-\dpicdraw (0.65,0.3)
- --(0.8,0.3)\dpicstop
-\draw (0.65,-0.3) node[left=-3bp]{{\scriptsize $\overline{\hbox{Q}}$}};
-\dpicdraw (0.65,-0.3)
- --(0.8,-0.3)\dpicstop
-\draw (0.4,-0.45) node[above=-3bp]{{\scriptsize CLR}};
-\dpicdraw (0.4,-0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (0.4,-0.525)
- --(0.4,-0.6)\dpicstop
-\dpicdraw (0,0.3)
- --(-0.175,0.2)
- --(-0.175,0.4)
- --(0,0.3)\dpicstop
-\dpicdraw (-0.2125,0.3) circle (0.014764in)\dpicstop
-\dpicdraw (-0.25,0.3)
- --(-0.35,0.3)\dpicstop
-\dpicdraw[fill=black](-0.35,0.3) circle (0.007874in)\dpicstop
-\dpicdraw (-0.483333,0.3)
- --(-0.658333,0.2)
- --(-0.658333,0.4)
- --(-0.483333,0.3)\dpicstop
-\dpicdraw (-0.445833,0.3) circle (0.014764in)\dpicstop
-\dpicdraw (-0.85,0.3)
- --(-0.658333,0.3)\dpicstop
-\dpicdraw (-0.408333,0.3)
- --(-0.35,0.3)\dpicstop
-\draw (-0.85,0.3) node(Serial)[left=-3bp]{\scriptsize\shortstack[r]{SERIAL\\ INPUT}};
-\dpicdraw (-0.35,0.3)
- --(-0.35,-0.3)
- --(0,-0.3)\dpicstop
-\dpicdraw (-0.483333,-0.6)
- --(-0.658333,-0.7)
- --(-0.658333,-0.5)
- --(-0.483333,-0.6)\dpicstop
-\dpicdraw (-0.695833,-0.6) circle (0.014764in)\dpicstop
-\dpicdraw (-0.445833,-0.6) circle (0.014764in)\dpicstop
-\dpicdraw (-0.85,-0.6)
- --(-0.733333,-0.6)\dpicstop
-\dpicdraw (-0.408333,-0.6)
- --(-0.35,-0.6)\dpicstop
-\draw (-0.85,-0.6) node[left=-3bp]{$\overline{\hbox{\scriptsize CLEAR}}$};
-\dpicdraw (-0.483333,-0.9)
- --(-0.658333,-1)
- --(-0.658333,-0.8)
- --(-0.483333,-0.9)\dpicstop
-\dpicdraw (-0.445833,-0.9) circle (0.014764in)\dpicstop
-\dpicdraw (-0.85,-0.9)
- --(-0.658333,-0.9)\dpicstop
-\dpicdraw (-0.408333,-0.9)
- --(-0.35,-0.9)\dpicstop
-\draw (-0.85,-0.9) node[left=-3bp]{\scriptsize CLOCK};
-\dpicdraw (0.95,-0.45) rectangle (1.45,0.45)\dpicstop
-\draw (0.95,0.3) node[right=-3bp]{{\scriptsize S}};
-\dpicdraw (0.95,0.3)
- --(0.8,0.3)\dpicstop
-\dpicdraw (0.95,-0.0375)
- --(1.014952,0)
- --(0.95,0.0375)\dpicstop
-\draw (1.014952,0) node[right=-3bp]{{\scriptsize CK}};
-\dpicdraw (0.9125,0) circle (0.014764in)\dpicstop
-\dpicdraw (0.875,0)
- --(0.8,0)\dpicstop
-\draw (0.95,-0.3) node[right=-3bp]{{\scriptsize R}};
-\dpicdraw (0.95,-0.3)
- --(0.8,-0.3)\dpicstop
-\draw (1.2,0.45) node[below=-3bp]{{\scriptsize PR}};
-\dpicdraw (1.2,0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (1.2,0.525)
- --(1.2,0.6)\dpicstop
-\draw (1.45,0.3) node[left=-3bp]{{\scriptsize Q}};
-\dpicdraw (1.45,0.3)
- --(1.6,0.3)\dpicstop
-\draw (1.45,-0.3) node[left=-3bp]{{\scriptsize $\overline{\hbox{Q}}$}};
-\dpicdraw (1.45,-0.3)
- --(1.6,-0.3)\dpicstop
-\draw (1.2,-0.45) node[above=-3bp]{{\scriptsize CLR}};
-\dpicdraw (1.2,-0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (1.2,-0.525)
- --(1.2,-0.6)\dpicstop
-\dpicdraw (1.75,-0.45) rectangle (2.25,0.45)\dpicstop
-\draw (1.75,0.3) node[right=-3bp]{{\scriptsize S}};
-\dpicdraw (1.75,0.3)
- --(1.6,0.3)\dpicstop
-\dpicdraw (1.75,-0.0375)
- --(1.814952,0)
- --(1.75,0.0375)\dpicstop
-\draw (1.814952,0) node[right=-3bp]{{\scriptsize CK}};
-\dpicdraw (1.7125,0) circle (0.014764in)\dpicstop
-\dpicdraw (1.675,0)
- --(1.6,0)\dpicstop
-\draw (1.75,-0.3) node[right=-3bp]{{\scriptsize R}};
-\dpicdraw (1.75,-0.3)
- --(1.6,-0.3)\dpicstop
-\draw (2,0.45) node[below=-3bp]{{\scriptsize PR}};
-\dpicdraw (2,0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (2,0.525)
- --(2,0.6)\dpicstop
-\draw (2.25,0.3) node[left=-3bp]{{\scriptsize Q}};
-\dpicdraw (2.25,0.3)
- --(2.4,0.3)\dpicstop
-\draw (2.25,-0.3) node[left=-3bp]{{\scriptsize $\overline{\hbox{Q}}$}};
-\dpicdraw (2.25,-0.3)
- --(2.4,-0.3)\dpicstop
-\draw (2,-0.45) node[above=-3bp]{{\scriptsize CLR}};
-\dpicdraw (2,-0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (2,-0.525)
- --(2,-0.6)\dpicstop
-\dpicdraw (2.55,-0.45) rectangle (3.05,0.45)\dpicstop
-\draw (2.55,0.3) node[right=-3bp]{{\scriptsize S}};
-\dpicdraw (2.55,0.3)
- --(2.4,0.3)\dpicstop
-\dpicdraw (2.55,-0.0375)
- --(2.614952,0)
- --(2.55,0.0375)\dpicstop
-\draw (2.614952,0) node[right=-3bp]{{\scriptsize CK}};
-\dpicdraw (2.5125,0) circle (0.014764in)\dpicstop
-\dpicdraw (2.475,0)
- --(2.4,0)\dpicstop
-\draw (2.55,-0.3) node[right=-3bp]{{\scriptsize R}};
-\dpicdraw (2.55,-0.3)
- --(2.4,-0.3)\dpicstop
-\draw (2.8,0.45) node[below=-3bp]{{\scriptsize PR}};
-\dpicdraw (2.8,0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (2.8,0.525)
- --(2.8,0.6)\dpicstop
-\draw (3.05,0.3) node[left=-3bp]{{\scriptsize Q}};
-\dpicdraw (3.05,0.3)
- --(3.2,0.3)\dpicstop
-\draw (3.05,-0.3) node[left=-3bp]{{\scriptsize $\overline{\hbox{Q}}$}};
-\dpicdraw (3.05,-0.3)
- --(3.2,-0.3)\dpicstop
-\draw (2.8,-0.45) node[above=-3bp]{{\scriptsize CLR}};
-\dpicdraw (2.8,-0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (2.8,-0.525)
- --(2.8,-0.6)\dpicstop
-\dpicdraw (3.35,-0.45) rectangle (3.85,0.45)\dpicstop
-\draw (3.35,0.3) node[right=-3bp]{{\scriptsize S}};
-\dpicdraw (3.35,0.3)
- --(3.2,0.3)\dpicstop
-\dpicdraw (3.35,-0.0375)
- --(3.414952,0)
- --(3.35,0.0375)\dpicstop
-\draw (3.414952,0) node[right=-3bp]{{\scriptsize CK}};
-\dpicdraw (3.3125,0) circle (0.014764in)\dpicstop
-\dpicdraw (3.275,0)
- --(3.2,0)\dpicstop
-\draw (3.35,-0.3) node[right=-3bp]{{\scriptsize R}};
-\dpicdraw (3.35,-0.3)
- --(3.2,-0.3)\dpicstop
-\draw (3.6,0.45) node[below=-3bp]{{\scriptsize PR}};
-\dpicdraw (3.6,0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (3.6,0.525)
- --(3.6,0.6)\dpicstop
-\draw (3.85,0.3) node[left=-3bp]{{\scriptsize Q}};
-\dpicdraw (3.85,0.3)
- --(4,0.3)\dpicstop
-\draw (3.6,-0.45) node[above=-3bp]{{\scriptsize CLR}};
-\dpicdraw (3.6,-0.4875) circle (0.014764in)\dpicstop
-\dpicdraw (3.6,-0.525)
- --(3.6,-0.6)\dpicstop
-\draw (4,0.3) node[right=-3bp]{\scriptsize OUTPUT};
-\dpicdraw (-0.35,-0.6)
- --(3.6,-0.6)\dpicstop
-\dpicdraw (0,0)
- --(0,-0.9)\dpicstop
-\dpicdraw[fill=black](0,-0.9) circle (0.007874in)\dpicstop
-\dpicdraw (0.25,0.825)
- --(0.25,1.025)
- --(0.55,1.025)
- --(0.55,0.825)\dpicstop
-\dpicdraw (0.55,0.825)
- ..controls (0.55,0.625) and (0.25,0.625)
- ..(0.25,0.825)\dpicstop
-\dpicdraw (0.4,0.6375) circle (0.014764in)\dpicstop
-\dpicdraw (0.325,1.025)
- --(0.325,1.125)\dpicstop
-\dpicdraw (0.475,1.025)
- --(0.475,1.325)\dpicstop
-\draw (0.475,1.325) node[left=-3bp]{\scriptsize PR4};
-\dpicdraw[fill=black](0.325,1.125) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](0.4,-0.6) circle (0.007874in)\dpicstop
-\dpicdraw (0.8,0)
- --(0.8,-0.9)\dpicstop
-\dpicdraw[fill=black](0.8,-0.9) circle (0.007874in)\dpicstop
-\dpicdraw (1.05,0.825)
- --(1.05,1.025)
- --(1.35,1.025)
- --(1.35,0.825)\dpicstop
-\dpicdraw (1.35,0.825)
- ..controls (1.35,0.625) and (1.05,0.625)
- ..(1.05,0.825)\dpicstop
-\dpicdraw (1.2,0.6375) circle (0.014764in)\dpicstop
-\dpicdraw (1.125,1.025)
- --(1.125,1.125)\dpicstop
-\dpicdraw (1.275,1.025)
- --(1.275,1.325)\dpicstop
-\draw (1.275,1.325) node[left=-3bp]{\scriptsize PR3};
-\dpicdraw[fill=black](1.125,1.125) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](1.2,-0.6) circle (0.007874in)\dpicstop
-\dpicdraw (1.6,0)
- --(1.6,-0.9)\dpicstop
-\dpicdraw[fill=black](1.6,-0.9) circle (0.007874in)\dpicstop
-\dpicdraw (1.85,0.825)
- --(1.85,1.025)
- --(2.15,1.025)
- --(2.15,0.825)\dpicstop
-\dpicdraw (2.15,0.825)
- ..controls (2.15,0.625) and (1.85,0.625)
- ..(1.85,0.825)\dpicstop
-\dpicdraw (2,0.6375) circle (0.014764in)\dpicstop
-\dpicdraw (1.925,1.025)
- --(1.925,1.125)\dpicstop
-\dpicdraw (2.075,1.025)
- --(2.075,1.325)\dpicstop
-\draw (2.075,1.325) node[left=-3bp]{\scriptsize PR2};
-\dpicdraw[fill=black](1.925,1.125) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](2,-0.6) circle (0.007874in)\dpicstop
-\dpicdraw (2.4,0)
- --(2.4,-0.9)\dpicstop
-\dpicdraw[fill=black](2.4,-0.9) circle (0.007874in)\dpicstop
-\dpicdraw (2.65,0.825)
- --(2.65,1.025)
- --(2.95,1.025)
- --(2.95,0.825)\dpicstop
-\dpicdraw (2.95,0.825)
- ..controls (2.95,0.625) and (2.65,0.625)
- ..(2.65,0.825)\dpicstop
-\dpicdraw (2.8,0.6375) circle (0.014764in)\dpicstop
-\dpicdraw (2.725,1.025)
- --(2.725,1.125)\dpicstop
-\dpicdraw (2.875,1.025)
- --(2.875,1.325)\dpicstop
-\draw (2.875,1.325) node[left=-3bp]{\scriptsize PR1};
-\dpicdraw[fill=black](2.725,1.125) circle (0.007874in)\dpicstop
-\dpicdraw[fill=black](2.8,-0.6) circle (0.007874in)\dpicstop
-\dpicdraw (3.2,0)
- --(3.2,-0.9)\dpicstop
-\dpicdraw (3.2,-0.9)
- --(-0.35,-0.9)\dpicstop
-\dpicdraw (3.45,0.825)
- --(3.45,1.025)
- --(3.75,1.025)
- --(3.75,0.825)\dpicstop
-\dpicdraw (3.75,0.825)
- ..controls (3.75,0.625) and (3.45,0.625)
- ..(3.45,0.825)\dpicstop
-\dpicdraw (3.6,0.6375) circle (0.014764in)\dpicstop
-\dpicdraw (3.525,1.025)
- --(3.525,1.125)\dpicstop
-\dpicdraw (3.675,1.025)
- --(3.675,1.325)\dpicstop
-\draw (3.675,1.325) node[left=-3bp]{\scriptsize PR0};
-\dpicdraw (3.525,1.125)
- --(-0.85,1.125)\dpicstop
-\draw (-0.85,1.125) node[left=-3bp]{\scriptsize\shortstack[r]{PRESET\\ ENABLE}};
- }
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Sources.tex b/graphics/circuit_macros/doc/Sources.tex
deleted file mode 100644
index 55e57cbaf4..0000000000
--- a/graphics/circuit_macros/doc/Sources.tex
+++ /dev/null
@@ -1,466 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
- {\sf
-\dpicdraw (0,0)
- --(0.25,0)\dpicstop
-\dpicdraw (0.375,0) circle (0.049213in)\dpicstop
-\dpicdraw (0.5,0)
- --(0.75,0)\dpicstop
-\draw (0.777674,0) node[right=-2bp]{source};
-\dpicdraw (0,-0.275)
- --(0.25,-0.275)\dpicstop
-\dpicdraw (0.375,-0.275) circle (0.049213in)\dpicstop
-\filldraw[line width=0bp](0.36875,-0.3)
- --(0.46875,-0.275)
- --(0.36875,-0.25) --cycle\dpicstop
-\dpicdraw (0.28125,-0.275)
- --(0.445844,-0.275)\dpicstop
-\dpicdraw (0.5,-0.275)
- --(0.75,-0.275)\dpicstop
-\draw (0.777674,-0.275) node[right=-2bp]{source(,I)};
-\dpicdraw (0,-0.55)
- --(0.25,-0.55)\dpicstop
-\dpicdraw (0.375,-0.55) circle (0.049213in)\dpicstop
-\dpicdraw (0.375,-0.675)
- --(0.375,-0.425)\dpicstop
-\dpicdraw (0.5,-0.55)
- --(0.75,-0.55)\dpicstop
-\draw (0.777674,-0.55) node[right=-2bp]{source(,i)};
-\dpicdraw (0,-0.825)
- --(0.25,-0.825)\dpicstop
-\dpicdraw (0.375,-0.825) circle (0.049213in)\dpicstop
-\draw (0.3125,-0.825) node{$_-$};
-\draw (0.4375,-0.825) node{$_+$};
-\dpicdraw (0.5,-0.825)
- --(0.75,-0.825)\dpicstop
-\draw (0.777674,-0.825) node[right=-2bp]{source(,V)};
-\dpicdraw (0,-1.1)
- --(0.25,-1.1)\dpicstop
-\dpicdraw (0.375,-1.1) circle (0.049213in)\dpicstop
-\dpicdraw (0.25,-1.1)
- --(0.5,-1.1)\dpicstop
-\dpicdraw (0.5,-1.1)
- --(0.75,-1.1)\dpicstop
-\draw (0.777674,-1.1) node[right=-2bp]{source(,v)};
-\dpicdraw (0,-1.375)
- --(0.25,-1.375)\dpicstop
-\dpicdraw (0.375,-1.375) circle (0.049213in)\dpicstop
-\dpicdraw (0.25,-1.375)
- ..controls (0.319036,-1.375) and (0.375,-1.319036)
- ..(0.375,-1.25)\dpicstop
-\dpicdraw (0.5,-1.375)
- --(0.75,-1.375)\dpicstop
-\draw (0.777674,-1.375) node[right=-2bp]{source(,SC)};
-\dpicdraw (0,-1.65)
- --(0.25,-1.65)\dpicstop
-\dpicdraw (0.375,-1.65) circle (0.049213in)\dpicstop
-\dpicdraw (0.375,-1.65)
- ..controls (0.375,-1.626988) and (0.356345,-1.608333)
- ..(0.333333,-1.608333)
- ..controls (0.310321,-1.608333) and (0.291667,-1.626988)
- ..(0.291667,-1.65)\dpicstop
-\dpicdraw (0.375,-1.65)
- ..controls (0.375,-1.673012) and (0.393655,-1.691667)
- ..(0.416667,-1.691667)
- ..controls (0.439679,-1.691667) and (0.458333,-1.673012)
- ..(0.458333,-1.65)\dpicstop
-\dpicdraw (0.583333,-1.65)
- --(0.833333,-1.65)\dpicstop
-\draw (0.777674,-1.65) node[right=-2bp]{source(,AC)};
-\dpicdraw (0,-1.925)
- --(0.25,-1.925)\dpicstop
-\dpicdraw (0.375,-1.925) circle (0.049213in)\dpicstop
-\dpicdraw (0.286612,-1.836612)
- --(0.463388,-2.013388)\dpicstop
-\dpicdraw (0.286612,-2.013388)
- --(0.463388,-1.836612)\dpicstop
-\dpicdraw (0.5,-1.925)
- --(0.75,-1.925)\dpicstop
-\draw (0.777674,-1.925) node[right=-2bp]{source(,X)};
-\dpicdraw (0,-2.2)
- --(0.25,-2.2)\dpicstop
-\dpicdraw (0.375,-2.2) circle (0.049213in)\dpicstop
-\dpicdraw (0.25,-2.2)
- --(0.3125,-2.2)\dpicstop
-\dpicdraw (0.3125,-2.2625)
- --(0.3125,-2.1375)\dpicstop
-\dpicdraw (0.4375,-2.2625)
- --(0.4375,-2.1375)\dpicstop
-\dpicdraw (0.5,-2.2)
- --(0.4375,-2.2)\dpicstop
-\dpicdraw (0.5,-2.2)
- --(0.75,-2.2)\dpicstop
-\draw (0.777674,-2.2) node[right=-2bp]{source(,F)};
-\dpicdraw (0,-2.475)
- --(0.1875,-2.475)\dpicstop
-\dpicdraw (0.3125,-2.475) circle (0.049213in)\dpicstop
-\dpicdraw (0.4375,-2.475) circle (0.049213in)\dpicstop
-\dpicdraw (0.5625,-2.475)
- --(0.75,-2.475)\dpicstop
-\draw (0.777674,-2.475) node[right=-2bp]{source(,G)};
-\dpicdraw (0,-2.75)
- --(0.1875,-2.75)\dpicstop
-\dpicdraw (0.3125,-2.75) circle (0.049213in)\dpicstop
-\dpicdraw (0.375,-2.858253)
- ..controls (0.458333,-2.906366) and (0.5625,-2.846225)
- ..(0.5625,-2.75)
- ..controls (0.5625,-2.653775) and (0.458333,-2.593634)
- ..(0.375,-2.641747)\dpicstop
-\dpicdraw (0.5625,-2.75)
- --(0.75,-2.75)\dpicstop
-\draw (0.777674,-2.75) node[right=-2bp]{source(,Q)};
-\dpicdraw (2,0)
- --(2.175,0)\dpicstop
-\dpicdraw (2.375,0) circle (0.07874in)\dpicstop
-\dpicdraw (2.575,0)
- --(2.75,0)\dpicstop
-\draw (2.777674,0) node[right=-2bp]{source(,{,}0.4)};
-\dpicdraw (2,-0.35)
- --(2.25,-0.35)\dpicstop
-\dpicdraw (2.375,-0.35) circle (0.049213in)\dpicstop
-\dpicdraw (2.3125,-0.38125)
- --(2.34375,-0.38125)
- --(2.34375,-0.31875)
- --(2.40625,-0.31875)
- --(2.40625,-0.38125)
- --(2.4375,-0.38125)\dpicstop
-\dpicdraw (2.5,-0.35)
- --(2.75,-0.35)\dpicstop
-\draw (2.777674,-0.35) node[right=-2bp]{source(,P)};
-\dpicdraw (2,-0.625)
- --(2.25,-0.625)\dpicstop
-\dpicdraw (2.375,-0.625) circle (0.049213in)\dpicstop
-\dpicdraw (2.3125,-0.625)
- --(2.3125,-0.583333)
- --(2.375,-0.583333)
- --(2.375,-0.666667)
- --(2.4375,-0.666667)
- --(2.4375,-0.625)\dpicstop
-\dpicdraw (2.5,-0.625)
- --(2.75,-0.625)\dpicstop
-\draw (2.777674,-0.625) node[right=-2bp]{source(,U)};
-\dpicdraw (2,-0.9)
- --(2.25,-0.9)\dpicstop
-\dpicdraw (2.375,-0.9) circle (0.049213in)\dpicstop
-\dpicdraw (2.3125,-0.941667)
- --(2.375,-0.941667)
- --(2.375,-0.858333)
- --(2.4375,-0.858333)\dpicstop
-\dpicdraw (2.5,-0.9)
- --(2.75,-0.9)\dpicstop
-\draw (2.777674,-0.9) node[right=-2bp]{source(,H)};
-\dpicdraw (2,-1.175)
- --(2.25,-1.175)\dpicstop
-\dpicdraw (2.375,-1.175) circle (0.049213in)\dpicstop
-\dpicdraw (2.291667,-1.216667)
- --(2.416667,-1.1125)
- --(2.416667,-1.216667)\dpicstop
-\dpicdraw (2.5,-1.175)
- --(2.75,-1.175)\dpicstop
-\draw (2.777674,-1.175) node[right=-2bp]{source(,R)};
-\dpicdraw (2,-1.45)
- --(2.25,-1.45)\dpicstop
-\dpicdraw (2.375,-1.45) circle (0.049213in)\dpicstop
-\dpicdraw (2.291667,-1.45)
- ..controls (2.29302,-1.447174) and (2.295417,-1.442207)
- ..(2.297014,-1.438918)
- ..controls (2.298611,-1.435629) and (2.301248,-1.430362)
- ..(2.302897,-1.427166)
- ..controls (2.304546,-1.423971) and (2.307453,-1.418784)
- ..(2.309383,-1.415594)
- ..controls (2.311313,-1.412404) and (2.314426,-1.40787)
- ..(2.316328,-1.405477)
- ..controls (2.31823,-1.403084) and (2.3213,-1.399943)
- ..(2.323177,-1.398468)
- ..controls (2.325054,-1.396994) and (2.328093,-1.395392)
- ..(2.329956,-1.394895)
- ..controls (2.33182,-1.394398) and (2.334847,-1.394398)
- ..(2.33671,-1.394895)
- ..controls (2.338574,-1.395392) and (2.341612,-1.396994)
- ..(2.34349,-1.398468)
- ..controls (2.345367,-1.399943) and (2.348437,-1.403084)
- ..(2.350339,-1.405477)
- ..controls (2.352241,-1.40787) and (2.355353,-1.412404)
- ..(2.357283,-1.415594)
- ..controls (2.359213,-1.418784) and (2.362369,-1.424451)
- ..(2.364323,-1.428239)
- ..controls (2.366277,-1.432026) and (2.369464,-1.438441)
- ..(2.371432,-1.442551)
- ..controls (2.373401,-1.446661) and (2.376599,-1.453339)
- ..(2.378568,-1.457449)
- ..controls (2.380536,-1.461559) and (2.383723,-1.467974)
- ..(2.385677,-1.471761)
- ..controls (2.387631,-1.475549) and (2.390787,-1.481216)
- ..(2.392717,-1.484406)
- ..controls (2.394647,-1.487596) and (2.397759,-1.49213)
- ..(2.399661,-1.494523)
- ..controls (2.401563,-1.496916) and (2.404633,-1.500057)
- ..(2.40651,-1.501532)
- ..controls (2.408388,-1.503006) and (2.411426,-1.504608)
- ..(2.41329,-1.505105)
- ..controls (2.415153,-1.505602) and (2.41818,-1.505602)
- ..(2.420044,-1.505105)
- ..controls (2.421907,-1.504608) and (2.424946,-1.503006)
- ..(2.426823,-1.501532)
- ..controls (2.4287,-1.500057) and (2.43177,-1.496916)
- ..(2.433672,-1.494523)
- ..controls (2.435574,-1.49213) and (2.438687,-1.487596)
- ..(2.440617,-1.484406)
- ..controls (2.442547,-1.481216) and (2.445454,-1.476029)
- ..(2.447103,-1.472834)
- ..controls (2.448752,-1.469638) and (2.451389,-1.464371)
- ..(2.452986,-1.461082)
- ..controls (2.454583,-1.457793) and (2.45698,-1.452826)
- ..(2.458333,-1.45)\dpicstop
-\dpicdraw (2.583333,-1.45)
- --(2.833333,-1.45)\dpicstop
-\draw (2.777674,-1.45) node[right=-2bp]{source(,S)};
-\dpicdraw (2,-1.725)
- --(2.25,-1.725)\dpicstop
-\dpicdraw (2.375,-1.725) circle (0.049213in)\dpicstop
-\dpicdraw (2.25,-1.725)
- ..controls (2.319036,-1.725) and (2.375,-1.780964)
- ..(2.375,-1.85)\dpicstop
-\dpicdraw (2.5,-1.725)
- --(2.75,-1.725)\dpicstop
-\draw (2.777674,-1.725) node[right=-2bp]{source(,SCr)};
-\dpicdraw (2,-2)
- --(2.25,-2)\dpicstop
-\dpicdraw (2.375,-2) circle (0.049213in)\dpicstop
-\dpicdraw (2.28125,-2.03125)
- --(2.34375,-1.96875)
- --(2.40625,-2.03125)
- --(2.46875,-1.96875)\dpicstop
-\dpicdraw (2.5,-2)
- --(2.75,-2)\dpicstop
-\draw (2.777674,-2) node[right=-2bp]{source(,T)};
-\dpicdraw (2,-2.275)
- --(2.25,-2.275)\dpicstop
-\dpicdraw (2.375,-2.275) circle (0.049213in)\dpicstop
-\dpicdraw (2.25,-2.275)
- --(2.34375,-2.275)\dpicstop
-\dpicdraw[line width=0.4bp](2.34375,-2.275) circle (0.00109in)\dpicstop
-\dpicdraw (2.34375,-2.275)
- --(2.348958,-2.233333)
- ..controls (2.352431,-2.205556) and (2.361111,-2.191667)
- ..(2.375,-2.191667)
- ..controls (2.388889,-2.191667) and (2.397569,-2.205556)
- ..(2.401042,-2.233333)
- --(2.40625,-2.275)\dpicstop
-\dpicdraw[line width=0.4bp](2.40625,-2.275) circle (0.00109in)\dpicstop
-\dpicdraw (2.40625,-2.275)
- --(2.5,-2.275)\dpicstop
-\dpicdraw (2.5,-2.275)
- --(2.75,-2.275)\dpicstop
-\draw (2.777674,-2.275) node[right=-2bp]{source(,L)};
-\dpicdraw (2,-2.55)
- --(2.25,-2.55)\dpicstop
-\dpicdraw (2.375,-2.55) circle (0.049213in)\dpicstop
-\dpicdraw (2.25,-2.55)
- --(2.291667,-2.55)\dpicstop
-\dpicdraw[line width=0.4bp](2.291667,-2.55) circle (0.00109in)\dpicstop
-\dpicdraw (2.291667,-2.55)
- ..controls (2.291667,-2.584518) and (2.319649,-2.6125)
- ..(2.354167,-2.6125)
- ..controls (2.388684,-2.6125) and (2.416667,-2.584518)
- ..(2.416667,-2.55)\dpicstop
-\dpicdraw (2.416667,-2.55)
- ..controls (2.416667,-2.526988) and (2.398012,-2.508333)
- ..(2.375,-2.508333)
- ..controls (2.351988,-2.508333) and (2.333333,-2.526988)
- ..(2.333333,-2.55)\dpicstop
-\dpicdraw (2.333333,-2.55)
- ..controls (2.333333,-2.584518) and (2.361316,-2.6125)
- ..(2.395833,-2.6125)
- ..controls (2.430351,-2.6125) and (2.458333,-2.584518)
- ..(2.458333,-2.55)\dpicstop
-\dpicdraw[line width=0.4bp](2.458333,-2.55) circle (0.00109in)\dpicstop
-\dpicdraw (2.458333,-2.55)
- --(2.5,-2.55)\dpicstop
-\dpicdraw (2.5,-2.55)
- --(2.75,-2.55)\dpicstop
-\draw (2.777674,-2.55) node[right=-2bp]{source(,B)};
-\dpicdraw (2,-2.77)
- --(2.25,-2.77)\dpicstop
-\dpicdraw (2.375,-2.7075)
- ..controls (2.39675,-2.7075) and (2.430875,-2.714063)
- ..(2.45625,-2.723125)
- ..controls (2.481625,-2.732188) and (2.5,-2.751875)
- ..(2.5,-2.77)
- ..controls (2.5,-2.788125) and (2.481625,-2.807813)
- ..(2.45625,-2.816875)
- ..controls (2.430875,-2.825938) and (2.39675,-2.8325)
- ..(2.375,-2.8325)
- ..controls (2.35325,-2.8325) and (2.319125,-2.825938)
- ..(2.29375,-2.816875)
- ..controls (2.268375,-2.807813) and (2.25,-2.788125)
- ..(2.25,-2.77)
- ..controls (2.25,-2.751875) and (2.268375,-2.732188)
- ..(2.29375,-2.723125)
- ..controls (2.319125,-2.714063) and (2.35325,-2.7075)
- ..(2.375,-2.7075)\dpicstop
-\dpicdraw (2.5,-2.77)
- --(2.75,-2.77)\dpicstop
-\draw (2.777674,-2.77) node[right=-2bp]{nullator};
-\dpicdraw (2,-2.935)
- --(2.25,-2.935)\dpicstop
-\dpicdraw (2.375,-2.935)
- --(2.34375,-2.90375)
- ..controls (2.322917,-2.882917) and (2.302083,-2.8725)
- ..(2.28125,-2.8725)
- ..controls (2.260417,-2.8725) and (2.25,-2.893333)
- ..(2.25,-2.935)
- ..controls (2.25,-2.976667) and (2.260417,-2.9975)
- ..(2.28125,-2.9975)
- ..controls (2.302083,-2.9975) and (2.322917,-2.987083)
- ..(2.34375,-2.96625)
- --(2.375,-2.935)\dpicstop
-\dpicdraw (2.375,-2.935)
- --(2.40625,-2.90375)
- ..controls (2.427083,-2.882917) and (2.447917,-2.8725)
- ..(2.46875,-2.8725)
- ..controls (2.489583,-2.8725) and (2.5,-2.893333)
- ..(2.5,-2.935)
- ..controls (2.5,-2.976667) and (2.489583,-2.9975)
- ..(2.46875,-2.9975)
- ..controls (2.447917,-2.9975) and (2.427083,-2.987083)
- ..(2.40625,-2.96625)
- --(2.375,-2.935)\dpicstop
-\dpicdraw (2.5,-2.935)
- --(2.75,-2.935)\dpicstop
-\draw (2.777674,-2.935) node[right=-2bp]{norator};
-\dpicdraw (4,0)
- --(4.25,0)\dpicstop
-\dpicdraw (4.375,0) circle (0.049213in)\dpicstop
-\dpicdraw (4.25,0)
- --(4.3125,0)\dpicstop
-\dpicdraw (4.396376,-0.058731)
- --(4.396376,0.058731)\dpicstop
-\dpicdraw[line width=0.4bp](4.396376,0.058731) circle (0.00109in)\dpicstop
-\dpicdraw (4.396376,0.058731)
- ..controls (4.451208,0.038774) and (4.451208,-0.038774)
- ..(4.396376,-0.058731)\dpicstop
-\dpicdraw[line width=0.4bp](4.396376,-0.058731) circle (0.00109in)\dpicstop
-\dpicdraw (4.353624,0.058731)
- --(4.353624,-0.058731)\dpicstop
-\dpicdraw[line width=0.4bp](4.353624,-0.058731) circle (0.00109in)\dpicstop
-\dpicdraw (4.353624,-0.058731)
- ..controls (4.298792,-0.038774) and (4.298792,0.038774)
- ..(4.353624,0.058731)\dpicstop
-\dpicdraw[line width=0.4bp](4.353624,0.058731) circle (0.00109in)\dpicstop
-\dpicdraw (4.4375,0)
- --(4.5,0)\dpicstop
-\dpicdraw (4.5,0)
- --(4.75,0)\dpicstop
-\draw (4.777674,0) node[right=-2bp]{source(,N)};
-\dpicdraw (4,-0.275)
- --(4.25,-0.275)\dpicstop
-\dpicdraw (4.375,-0.275) circle (0.049213in)\dpicstop
-\draw (4.375,-0.275) node{\rm mA};
-\dpicdraw (4.5,-0.275)
- --(4.75,-0.275)\dpicstop
-\draw (4.777674,-0.275) node[right=-2bp]{source(,"mA")};
-\dpicdraw (4,-0.585)
- --(4.225,-0.585)\dpicstop
-\dpicdraw (4.225,-0.585)
- --(4.375,-0.435)
- --(4.525,-0.585)
- --(4.375,-0.735)
- --(4.225,-0.585)\dpicstop
-\dpicdraw (4.525,-0.585)
- --(4.75,-0.585)\dpicstop
-\draw (4.777674,-0.585) node[right=-2bp]{consource};
-\dpicdraw (4,-0.905)
- --(4.225,-0.905)\dpicstop
-\dpicdraw (4.225,-0.905)
- --(4.375,-0.755)
- --(4.525,-0.905)
- --(4.375,-1.055)
- --(4.225,-0.905)\dpicstop
-\filldraw[line width=0bp](4.3875,-0.93)
- --(4.4875,-0.905)
- --(4.3875,-0.88) --cycle\dpicstop
-\dpicdraw (4.2625,-0.905)
- --(4.464594,-0.905)\dpicstop
-\dpicdraw (4.525,-0.905)
- --(4.75,-0.905)\dpicstop
-\draw (4.777674,-0.905) node[right=-2bp]{consource(,I)};
-\dpicdraw (4,-1.225)
- --(4.225,-1.225)\dpicstop
-\dpicdraw (4.225,-1.225)
- --(4.375,-1.075)
- --(4.525,-1.225)
- --(4.375,-1.375)
- --(4.225,-1.225)\dpicstop
-\dpicdraw (4.375,-1.075)
- --(4.375,-1.375)\dpicstop
-\dpicdraw (4.525,-1.225)
- --(4.75,-1.225)\dpicstop
-\draw (4.777674,-1.225) node[right=-2bp]{consource(,i)};
-\dpicdraw (4,-1.545)
- --(4.25,-1.545)\dpicstop
-\dpicdraw (4.375,-1.545) circle (0.049213in)\dpicstop
-\dpicdraw (4.26275,-1.49)
- ..controls (4.332238,-1.53) and (4.417762,-1.53)
- ..(4.48725,-1.49)\dpicstop
-\dpicdraw (4.5,-1.545)
- --(4.75,-1.545)\dpicstop
-\draw (4.777674,-1.545) node[right=-2bp]{source(,SE)};
-\dpicdraw (4,-1.82)
- --(4.225,-1.82)\dpicstop
-\dpicdraw (4.225,-1.82)
- --(4.375,-1.67)
- --(4.525,-1.82)
- --(4.375,-1.97)
- --(4.225,-1.82)\dpicstop
-\draw (4.3,-1.82) node{$-$};
-\draw (4.45,-1.82) node{$+$};
-\dpicdraw (4.525,-1.82)
- --(4.75,-1.82)\dpicstop
-\draw (4.777674,-1.82) node[right=-2bp]{consource(,V)};
-\dpicdraw (4,-2.14)
- --(4.225,-2.14)\dpicstop
-\dpicdraw (4.225,-2.14)
- --(4.375,-1.99)
- --(4.525,-2.14)
- --(4.375,-2.29)
- --(4.225,-2.14)\dpicstop
-\dpicdraw (4.225,-2.14)
- --(4.525,-2.14)\dpicstop
-\dpicdraw (4.525,-2.14)
- --(4.75,-2.14)\dpicstop
-\draw (4.777674,-2.14) node[right=-2bp]{consource(,v)};
-\dpicdraw (4,-2.44)
- --(4.354167,-2.44)\dpicstop
-\dpicdraw (4.354167,-2.3775)
- --(4.354167,-2.5025)\dpicstop
-\dpicdraw (4.395833,-2.315)
- --(4.395833,-2.565)\dpicstop
-\dpicdraw (4.395833,-2.44)
- --(4.75,-2.44)\dpicstop
-\draw (4.777674,-2.44) node[right=-2bp]{battery};
-\dpicdraw (4.75,-2.715)
- --(4.479167,-2.715)\dpicstop
-\dpicdraw (4.479167,-2.7775)
- --(4.479167,-2.6525)\dpicstop
-\dpicdraw (4.4375,-2.84)
- --(4.4375,-2.59)\dpicstop
-\dpicdraw (4.395833,-2.7775)
- --(4.395833,-2.6525)\dpicstop
-\dpicdraw (4.354167,-2.84)
- --(4.354167,-2.59)\dpicstop
-\dpicdraw (4.3125,-2.7775)
- --(4.3125,-2.6525)\dpicstop
-\dpicdraw (4.270833,-2.84)
- --(4.270833,-2.59)\dpicstop
-\dpicdraw (4.270833,-2.715)
- --(4,-2.715)\dpicstop
-\draw (4.777674,-2.715) node[right=-2bp]{battery(,3,R)};
- }
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Switches.tex b/graphics/circuit_macros/doc/Switches.tex
deleted file mode 100644
index 3f6e0b08e1..0000000000
--- a/graphics/circuit_macros/doc/Switches.tex
+++ /dev/null
@@ -1,596 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0,0)
- --(0.291667,0)\dpicstop
-\dpicdraw (0.291667,0)
- --(0.416667,0.125)\dpicstop
-\dpicdraw (0.458333,0)
- --(0.75,0)\dpicstop
-\draw (0.375,-0.160595) node{\tt ls{}witch};
-\dpicdraw (1,0)
- --(1.291667,0)\dpicstop
-\dpicdraw (1.291667,0)
- --(1.416667,0.125)\dpicstop
-\filldraw[line width=0bp](1.362125,0.086087)
- --(1.349366,0.074969)
- ..controls (1.342662,0.09113) and (1.33416,0.106484)
- ..(1.324019,0.120741)
- ..controls (1.34186,0.114971) and (1.358938,0.107068)
- ..(1.374885,0.097205)
- --(1.362125,0.086087)\dpicstop
-\dpicdraw (1.414768,-0.021706)
- ..controls (1.405742,0.02367) and (1.383411,0.065332)
- ..(1.350622,0.097972)\dpicstop
-\dpicdraw (1.458333,0)
- --(1.75,0)\dpicstop
-\draw (1.375,-0.160595) node{\tt (,,O)};
-\dpicdraw (2,0)
- --(2.291667,0)\dpicstop
-\dpicdraw (2.291667,0)
- --(2.416667,0.125)\dpicstop
-\filldraw[line width=0bp](2.403732,0.018447)
- --(2.387471,0.01371)
- ..controls (2.397462,-0.000674) and (2.405825,-0.016123)
- ..(2.412407,-0.032352)
- ..controls (2.417126,-0.014206) and (2.419673,0.004436)
- ..(2.419994,0.023183)
- --(2.403732,0.018447)\dpicstop
-\dpicdraw (2.407539,0.002327)
- ..controls (2.399025,0.041593) and (2.380658,0.078046)
- ..(2.354167,0.108253)\dpicstop
-\dpicdraw (2.458333,0)
- --(2.75,0)\dpicstop
-\draw (2.375,-0.160595) node{\tt (,,C)};
-\dpicdraw (3,0)
- --(3.291667,0)\dpicstop
-\filldraw[line width=0bp](3.391447,0.074795)
- --(3.416667,0.125)
- --(3.366462,0.09978) --cycle\dpicstop
-\dpicdraw (3.291667,0)
- --(3.404174,0.112507)\dpicstop
-\dpicdraw (3.458333,0)
- --(3.75,0)\dpicstop
-\dpicdraw[fill=white](3.291667,0) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.458333,0) circle (0.007874in)\dpicstop
-\draw (3.375,-0.160595) node{\tt (,,DA)};
-\dpicdraw (4,0)
- --(4.291667,0)\dpicstop
-\dpicdraw (4.291667,0)
- --(4.416667,0.125)\dpicstop
-\filldraw[line width=0bp](4.362125,0.086087)
- --(4.349366,0.074969)
- ..controls (4.342662,0.09113) and (4.33416,0.106484)
- ..(4.324019,0.120741)
- ..controls (4.34186,0.114971) and (4.358938,0.107068)
- ..(4.374885,0.097205)
- --(4.362125,0.086087)\dpicstop
-\dpicdraw (4.414768,-0.021706)
- ..controls (4.405742,0.02367) and (4.383411,0.065332)
- ..(4.350622,0.097972)\dpicstop
-\dpicdraw (4.458333,0)
- --(4.75,0)\dpicstop
-\dpicdraw[fill=white](4.291667,0) circle (0.007874in)\dpicstop
-\draw (4.375,-0.160595) node{\tt (,,dDO)};
-\dpicdraw (5,0)
- --(5.291667,0)\dpicstop
-\dpicdraw (5.291667,0)
- --(5.416667,0.125)\dpicstop
-\filldraw[line width=0bp](5.403732,0.018447)
- --(5.387471,0.01371)
- ..controls (5.397462,-0.000674) and (5.405825,-0.016123)
- ..(5.412407,-0.032352)
- ..controls (5.417126,-0.014206) and (5.419673,0.004436)
- ..(5.419994,0.023183)
- --(5.403732,0.018447)\dpicstop
-\dpicdraw (5.407539,0.002327)
- ..controls (5.399025,0.041593) and (5.380658,0.078046)
- ..(5.354167,0.108253)\dpicstop
-\dpicdraw (5.458333,0)
- --(5.75,0)\dpicstop
-\dpicdraw[fill=white](5.458333,0) circle (0.007874in)\dpicstop
-\draw (5.375,-0.160595) node{\tt (,,uDC)};
-\dpicdraw (0,-0.5)
- --(0.291667,-0.5)\dpicstop
-\dpicdraw (0.291667,-0.5)
- --(0.475789,-0.477745)\dpicstop
-\dpicdraw (0.458333,-0.5)
- --(0.458333,-0.48)\dpicstop
-\dpicdraw (0.458333,-0.5)
- --(0.75,-0.5)\dpicstop
-\draw (0.375,-0.660595) node{\tt (,,K)};
-\dpicdraw (1,-0.5)
- --(1.291667,-0.5)\dpicstop
-\dpicdraw (1.291667,-0.5)
- --(1.475789,-0.477745)\dpicstop
-\dpicdraw (1.458333,-0.5)
- --(1.458333,-0.48)\dpicstop
-\dpicdraw (1.458333,-0.5)
- --(1.75,-0.5)\dpicstop
-\dpicdraw[fill=white](1.291667,-0.5) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](1.458333,-0.5) circle (0.007874in)\dpicstop
-\draw (1.375,-0.660595) node{\tt (,,KD)};
-\dpicdraw (2,-0.5)
- --(2.291667,-0.5)\dpicstop
-\dpicdraw (2.291667,-0.5)
- --(2.475789,-0.477745)\dpicstop
-\dpicdraw (2.458333,-0.5)
- --(2.458333,-0.48)\dpicstop
-\filldraw[line width=0bp](2.362125,-0.413913)
- --(2.349366,-0.425031)
- ..controls (2.342662,-0.40887) and (2.33416,-0.393516)
- ..(2.324019,-0.379259)
- ..controls (2.34186,-0.385029) and (2.358938,-0.392932)
- ..(2.374885,-0.402795)
- --(2.362125,-0.413913)\dpicstop
-\dpicdraw (2.414768,-0.521706)
- ..controls (2.405742,-0.47633) and (2.383411,-0.434668)
- ..(2.350622,-0.402028)\dpicstop
-\dpicdraw (2.458333,-0.5)
- --(2.75,-0.5)\dpicstop
-\dpicdraw[fill=white](2.291667,-0.5) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](2.458333,-0.5) circle (0.007874in)\dpicstop
-\draw (2.375,-0.660595) node{\tt (,,KOD)};
-\dpicdraw (3,-0.5)
- --(3.291667,-0.5)\dpicstop
-\dpicdraw (3.291667,-0.5)
- --(3.475789,-0.477745)\dpicstop
-\dpicdraw (3.458333,-0.5)
- --(3.458333,-0.48)\dpicstop
-\filldraw[line width=0bp](3.402903,-0.501361)
- --(3.386185,-0.503989)
- ..controls (3.394255,-0.519512) and (3.400552,-0.535895)
- ..(3.404955,-0.552827)
- ..controls (3.412003,-0.535452) and (3.416927,-0.517289)
- ..(3.419621,-0.498733)
- --(3.402903,-0.501361)\dpicstop
-\dpicdraw (3.404613,-0.517813)
- ..controls (3.400687,-0.471714) and (3.383125,-0.427828)
- ..(3.354167,-0.391747)\dpicstop
-\dpicdraw (3.458333,-0.5)
- --(3.75,-0.5)\dpicstop
-\dpicdraw[fill=white](3.291667,-0.5) circle (0.007874in)\dpicstop
-\dpicdraw[fill=white](3.458333,-0.5) circle (0.007874in)\dpicstop
-\draw (3.375,-0.660595) node{\tt (,,KCD)};
-\dpicdraw (4,-0.5)
- --(4.257074,-0.5)\dpicstop
-\dpicdraw (4.291667,-0.5) circle (0.013619in)\dpicstop
-\dpicdraw (4.458333,-0.5) circle (0.013619in)\dpicstop
-\dpicdraw (4.257074,-0.413517)
- --(4.492926,-0.413517)\dpicstop
-\dpicdraw (4.375,-0.413517)
- --(4.375,-0.344332)\dpicstop
-\dpicdraw (4.492926,-0.5)
- --(4.75,-0.5)\dpicstop
-\draw (4.375,-0.660595) node{\tt bswitch};
-\dpicdraw (5,-0.5)
- --(5.257074,-0.5)\dpicstop
-\dpicdraw (5.291667,-0.5) circle (0.013619in)\dpicstop
-\dpicdraw (5.458333,-0.5) circle (0.013619in)\dpicstop
-\dpicdraw (5.257074,-0.534593)
- --(5.492926,-0.534593)\dpicstop
-\dpicdraw (5.375,-0.534593)
- --(5.375,-0.396221)\dpicstop
-\dpicdraw (5.492926,-0.5)
- --(5.75,-0.5)\dpicstop
-\draw (5.375,-0.660595) node{\tt (,,C)};
-\dpicdraw (0,-1)
- --(0.291667,-1)\dpicstop
-\dpicdraw (0.458333,-1)
- --(0.75,-1)\dpicstop
-\dpicdraw (0.291667,-1)
- --(0.479167,-0.90625)\dpicstop
-\draw (0.385417,-1.140032) node{\tt ds{}witch(,{},)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.1675,-0.933333)
- --(0.1875,-1)
- --(0.2075,-0.933333) --cycle\dpicstop
-\dpicdraw (0.1875,-0.980666)
- --(0.1875,-0.940333)
- ..controls (0.1875,-0.913444) and (0.170833,-0.891667)
- ..(0.1375,-0.875)
- --(0.0875,-0.85)\dpicstop
-\draw (0.0875,-0.85) node[left=-2bp]{\tt W};
-\filldraw[line width=0bp](0.355,-0.891667)
- --(0.375,-0.958333)
- --(0.395,-0.891667) --cycle\dpicstop
-\dpicdraw (0.375,-0.938999)
- --(0.375,-0.898666)
- ..controls (0.375,-0.871778) and (0.358333,-0.85)
- ..(0.325,-0.833333)
- --(0.275,-0.808333)\dpicstop
-\draw (0.275,-0.808333) node[left=-2bp]{\tt B};
-\dpiclw=0.8bp
-\dpicdraw (1,-1)
- --(1.291667,-1)\dpicstop
-\dpicdraw (1.458333,-1)
- --(1.75,-1)\dpicstop
-\dpicdraw (1.291667,-1)
- --(1.479167,-1.09375)\dpicstop
-\dpicdraw (1.458333,-1)
- --(1.458333,-1.104167)\dpicstop
-\draw (1.385417,-1.195588) node{\tt (,,WdBK)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.355,-0.975)
- --(1.375,-1.041667)
- --(1.395,-0.975) --cycle\dpicstop
-\dpicdraw (1.375,-1.022333)
- --(1.375,-0.982)
- ..controls (1.375,-0.955111) and (1.358333,-0.925)
- ..(1.325,-0.891667)
- --(1.275,-0.841667)\dpicstop
-\draw (1.275,-0.841667) node[left=-2bp]{\tt dB};
-\filldraw[line width=0bp](1.525,-1.021667)
- --(1.458333,-1.041667)
- --(1.525,-1.061667) --cycle\dpicstop
-\dpicdraw (1.477667,-1.041667)
- --(1.518,-1.041667)
- ..controls (1.544889,-1.041667) and (1.566667,-1.016667)
- ..(1.583333,-0.966667)
- --(1.608333,-0.891667)\dpicstop
-\draw (1.608333,-0.891667) node[above=-2bp]{\tt K};
-\dpiclw=0.8bp
-\dpicdraw (2,-1)
- --(2.291667,-1)\dpicstop
-\dpicdraw (2.458333,-1)
- --(2.75,-1)\dpicstop
-\dpicdraw (2.291667,-1)
- --(2.479167,-0.90625)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (2.502459,-0.894604) circle (0.010253in)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw[fill=white](2.291667,-1) circle (0.007874in)\dpicstop
-\dpicdraw (2.458333,-1)
- --(2.458333,-0.895833)\dpicstop
-\draw (2.385417,-1.140032) node{\tt (,,WBmdDK)};
-\dpicdraw (3,-1)
- --(3.291667,-1)\dpicstop
-\dpicdraw (3.458333,-1)
- --(3.75,-1)\dpicstop
-\dpicdraw (3.291667,-1)
- --(3.479167,-0.90625)\dpicstop
-\dpicdraw (3.458333,-1)
- --(3.458333,-0.895833)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (3.401823,-0.915625)
- --(3.390104,-0.892188)
- --(3.343229,-0.915625)
- --(3.366667,-0.9625)
- --(3.413542,-0.939063)
- --(3.401823,-0.915625)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\draw (3.385417,-1.140032) node{\tt (,,WBKTr)};
-\dpicdraw (4,-1)
- --(4.291667,-1)\dpicstop
-\dpicdraw (4.458333,-1)
- --(4.75,-1)\dpicstop
-\dpicdraw (4.291667,-1)
- --(4.479167,-1.09375)\dpicstop
-\dpicdraw (4.35026,-1.029297)
- --(4.39974,-1.10612)
- --(4.420573,-1.064453)\dpicstop
-\draw (4.385417,-1.195588) node{\tt (,,WdBL)};
-\dpicdraw (5,-1)
- --(5.291667,-1)\dpicstop
-\dpicdraw (5.458333,-1)
- --(5.75,-1)\dpicstop
-\dpicdraw (5.291667,-1)
- --(5.479167,-0.90625)\dpicstop
-\dpicdraw (5.458333,-1)
- ..controls (5.458333,-0.944444) and (5.541667,-0.944444)
- ..(5.541667,-1)\dpicstop
-\draw (5.385417,-1.140032) node{\tt (,,WBCo)};
-\dpicdraw (0,-1.5)
- --(0.291667,-1.5)\dpicstop
-\dpicdraw (0.458333,-1.5)
- --(0.75,-1.5)\dpicstop
-\dpicdraw (0.291667,-1.5)
- --(0.479167,-1.40625)\dpicstop
-\dpicdraw (0.458333,-1.5)
- ..controls (0.458333,-1.476988) and (0.476988,-1.458333)
- ..(0.5,-1.458333)
- ..controls (0.523012,-1.458333) and (0.541667,-1.476988)
- ..(0.541667,-1.5)\dpicstop
-\dpicdraw (0.458333,-1.5)
- --(0.458333,-1.395833)\dpicstop
-\draw (0.385417,-1.640032) node{\tt (,,WBKCo)};
-\dpicdraw (1,-1.5)
- --(1.291667,-1.5)\dpicstop
-\dpicdraw (1.458333,-1.5)
- --(1.75,-1.5)\dpicstop
-\dpicdraw (1.291667,-1.5)
- --(1.479167,-1.40625)\dpicstop
-\dpicdraw (1.416667,-1.541667)
- --(1.5,-1.458333)\dpicstop
-\dpicdraw (1.416667,-1.458333)
- --(1.5,-1.541667)\dpicstop
-\draw (1.375,-1.640032) node{\tt (,,WBCb)};
-\dpicdraw (2,-1.5)
- --(2.291667,-1.5)\dpicstop
-\dpicdraw (2.458333,-1.5)
- --(2.75,-1.5)\dpicstop
-\dpicdraw (2.291667,-1.5)
- --(2.479167,-1.40625)\dpicstop
-\dpicdraw (2.458333,-1.458333)
- --(2.458333,-1.541667)\dpicstop
-\draw (2.375,-1.640032) node{\tt (,,WBDI)};
-\dpicdraw (3,-1.5)
- --(3.291667,-1.5)\dpicstop
-\dpicdraw (3.458333,-1.5)
- --(3.75,-1.5)\dpicstop
-\dpicdraw (3.291667,-1.5)
- --(3.479167,-1.40625)\dpicstop
-\dpicdraw[fill=white](3.458333,-1.5) circle (0.012303in)\dpicstop
-\dpicdraw (3.489583,-1.458333)
- --(3.489583,-1.541667)\dpicstop
-\draw (3.375,-1.640032) node{\tt (,,WBSd)};
-\dpicdraw (4,-1.5)
- --(4.291667,-1.5)\dpicstop
-\dpicdraw (4.458333,-1.5)
- --(4.75,-1.5)\dpicstop
-\dpicdraw (4.291667,-1.5)
- --(4.479167,-1.40625)\dpicstop
-\dpicdraw (4.458333,-1.458333)
- --(4.458333,-1.541667)\dpicstop
-\dpicdraw (4.315104,-1.488281)
- --(4.304688,-1.467448)
- --(4.398438,-1.420573)
- --(4.419271,-1.46224)
- --(4.325521,-1.509115)
- --(4.315104,-1.488281)\dpicstop
-\draw (4.375,-1.640032) node{\tt (,,WBFDI)};
-\dpicdraw (5,-1.5)
- --(5.291667,-1.5)\dpicstop
-\dpicdraw (5.458333,-1.5)
- --(5.75,-1.5)\dpicstop
-\dpicdraw (5.291667,-1.5)
- --(5.479167,-1.40625)\dpicstop
-\dpicdraw (5.315104,-1.488281)
- --(5.304688,-1.467448)
- --(5.398438,-1.420573)
- --(5.419271,-1.46224)
- --(5.325521,-1.509115)
- --(5.315104,-1.488281)\dpicstop
-\dpicdraw[fill=white](5.458333,-1.5) circle (0.012303in)\dpicstop
-\dpicdraw (5.489583,-1.458333)
- --(5.489583,-1.541667)\dpicstop
-\draw (5.375,-1.640032) node{\tt (,,WBFSd)};
-\dpicdraw (0,-2.125)
- --(0.291667,-2.125)\dpicstop
-\dpicdraw (0.458333,-2.125)
- --(0.75,-2.125)\dpicstop
-\dpicdraw (0.291667,-2.125)
- --(0.479167,-2.03125)\dpicstop
-\dpicdraw (0.385417,-2.078125)
- --(0.385417,-1.984375)
- --(0.447917,-1.984375)
- --(0.447917,-1.921875)
- --(0.385417,-1.921875)
- --(0.385417,-1.828125)\dpicstop
-\draw (0.380208,-2.26398) node{\tt (,,WBTh)};
-\dpicdraw (1,-2.125)
- --(1.291667,-2.125)\dpicstop
-\dpicdraw (1.458333,-2.125)
- --(1.75,-2.125)\dpicstop
-\dpicdraw (1.291667,-2.125)
- --(1.479167,-2.03125)\dpicstop
-\dpicdraw (1.458333,-2.125)
- --(1.458333,-2.020833)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](1.385417,-2.078125)
- --(1.385417,-1.828125)\dpicstop
-\draw (1.380208,-2.26398) node{\tt (,,WBKC)};
-\dpicdraw (2,-2.125)
- --(2.291667,-2.125)\dpicstop
-\dpicdraw (2.458333,-2.125)
- --(2.75,-2.125)\dpicstop
-\dpicdraw (2.291667,-2.125)
- --(2.479167,-2.03125)\dpicstop
-\dpicdraw[dash pattern=on 0.03125in off 0.03125in](2.385417,-2.078125)
- --(2.385417,-1.984375)\dpicstop
-\dpicdraw (2.385417,-1.984375)
- --(2.322917,-1.953125)
- --(2.385417,-1.921875)\dpicstop
-\dpicdraw[dash pattern=on 0.03125in off 0.03125in](2.385417,-1.921875)
- --(2.385417,-1.828125)\dpicstop
-\draw (2.380208,-2.26398) node{\tt (,,WBM)};
-\dpicdraw (3,-2.125)
- --(3.291667,-2.125)\dpicstop
-\dpicdraw (3.458333,-2.125)
- --(3.75,-2.125)\dpicstop
-\dpicdraw (3.291667,-2.125)
- --(3.479167,-2.03125)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](3.385417,-2.078125)
- --(3.385417,-1.828125)\dpicstop
-\dpicdraw (3.333333,-1.828125)
- --(3.4375,-1.828125)\dpicstop
-\draw (3.380208,-2.26398) node{\tt (,,WBCO)};
-\dpicdraw (4,-2.125)
- --(4.291667,-2.125)\dpicstop
-\dpicdraw (4.458333,-2.125)
- --(4.75,-2.125)\dpicstop
-\dpicdraw (4.291667,-2.125)
- --(4.479167,-2.03125)\dpicstop
-\dpicdraw[dash pattern=on 0.03125in off 0.03125in](4.385417,-2.078125)
- --(4.385417,-1.984375)\dpicstop
-\dpicdraw (4.385417,-1.984375)
- --(4.322917,-1.953125)
- --(4.385417,-1.921875)\dpicstop
-\dpicdraw[dash pattern=on 0.03125in off 0.03125in](4.385417,-1.921875)
- --(4.385417,-1.828125)\dpicstop
-\dpicdraw (4.333333,-1.880208)
- --(4.333333,-1.828125)
- --(4.4375,-1.828125)
- --(4.4375,-1.880208)\dpicstop
-\draw (4.380208,-2.26398) node{\tt (,,WBMP)};
-\dpicdraw (5,-2.125)
- --(5.291667,-2.125)\dpicstop
-\dpicdraw (5.458333,-2.125)
- --(5.75,-2.125)\dpicstop
-\dpicdraw (5.291667,-2.125)
- --(5.458333,-1.968634)\dpicstop
-\dpicdraw (5.458333,-2.125)
- --(5.458333,-2.020833)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](5.375,-2.046817)
- --(5.375,-1.796817)\dpicstop
-\dpicdraw (5.322917,-1.8489)
- --(5.322917,-1.796817)
- --(5.427083,-1.796817)
- --(5.427083,-1.8489)\dpicstop
-\draw (5.375,-2.26398) node{\tt (,,WBoKCP)};
-\dpicdraw (0,-2.75)
- --(0.291667,-2.75)\dpicstop
-\dpicdraw (0.458333,-2.75)
- --(0.75,-2.75)\dpicstop
-\dpicdraw (0.291667,-2.75)
- --(0.479167,-2.65625)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](0.385417,-2.703125)
- --(0.385417,-2.453125)\dpicstop
-\dpicdraw (0.333333,-2.401042)
- --(0.333333,-2.453125)
- --(0.4375,-2.453125)
- --(0.4375,-2.401042)\dpicstop
-\draw (0.380208,-2.88898) node{\tt (,,WBCY)};
-\dpicdraw (1,-2.75)
- --(1.291667,-2.75)\dpicstop
-\dpicdraw (1.458333,-2.75)
- --(1.75,-2.75)\dpicstop
-\dpicdraw (1.291667,-2.75)
- --(1.479167,-2.65625)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](1.385417,-2.703125)
- --(1.385417,-2.453125)\dpicstop
-\dpicdraw (1.333333,-2.505208)
- --(1.333333,-2.453125)
- --(1.4375,-2.453125)
- --(1.4375,-2.401042)\dpicstop
-\draw (1.380208,-2.88898) node{\tt (,,WBCZ)};
-\dpicdraw (2,-2.75)
- --(2.291667,-2.75)\dpicstop
-\dpicdraw (2.458333,-2.75)
- --(2.75,-2.75)\dpicstop
-\dpicdraw (2.291667,-2.75)
- --(2.479167,-2.65625)\dpicstop
-\dpicdraw[dash pattern=on 0.05in off 0.05in](2.385417,-2.703125)
- --(2.385417,-2.453125)\dpicstop
-\dpicdraw (2.333333,-2.453125)
- --(2.4375,-2.453125)\dpicstop
-\dpicdraw (2.4375,-2.453125)
- ..controls (2.413909,-2.413806) and (2.356925,-2.413806)
- ..(2.333333,-2.453125)\dpicstop
-\draw (2.380208,-2.88898) node{\tt (,,WBCE)};
-\dpicdraw (3,-2.75)
- --(3.291667,-2.75)\dpicstop
-\dpicdraw (3.458333,-2.75)
- --(3.75,-2.75)\dpicstop
-\dpicdraw (3.291667,-2.75)
- --(3.479167,-2.65625)\dpicstop
-\dpicdraw (3.369792,-2.710938)
- --(3.369792,-2.460938)\dpicstop
-\dpicdraw (3.401042,-2.695313)
- --(3.401042,-2.463355)\dpicstop
-\dpicdraw (3.447917,-2.430896)
- ..controls (3.415391,-2.469927) and (3.355443,-2.469927)
- ..(3.322917,-2.430896)\dpicstop
-\draw (3.380208,-2.88898) node{\tt (,,WBRH)};
-\dpicdraw (4,-2.75)
- --(4.291667,-2.75)\dpicstop
-\dpicdraw (4.458333,-2.75)
- --(4.75,-2.75)\dpicstop
-\dpicdraw (4.291667,-2.75)
- --(4.479167,-2.65625)\dpicstop
-\dpicdraw (4.369792,-2.710938)
- --(4.369792,-2.460938)\dpicstop
-\dpicdraw (4.401042,-2.695313)
- --(4.401042,-2.463355)\dpicstop
-\dpicdraw (4.447917,-2.493396)
- ..controls (4.415391,-2.454365) and (4.355443,-2.454365)
- ..(4.322917,-2.493396)\dpicstop
-\draw (4.380208,-2.88898) node{\tt (,,WBRdH)};
-\dpicdraw (5,-2.75)
- --(5.291667,-2.75)\dpicstop
-\dpicdraw (5.458333,-2.75)
- --(5.75,-2.75)\dpicstop
-\dpicdraw (5.291667,-2.75)
- --(5.479167,-2.65625)\dpicstop
-\dpicdraw (5.369792,-2.710938)
- --(5.369792,-2.460938)\dpicstop
-\dpicdraw (5.401042,-2.695313)
- --(5.401042,-2.463355)\dpicstop
-\dpicdraw (5.447917,-2.430896)
- ..controls (5.415391,-2.469927) and (5.355443,-2.469927)
- ..(5.322917,-2.430896)\dpicstop
-\dpicdraw (5.447917,-2.493396)
- ..controls (5.415391,-2.454365) and (5.355443,-2.454365)
- ..(5.322917,-2.493396)\dpicstop
-\draw (5.380208,-2.88898) node{\tt (,,WBRHH)};
-\dpicdraw (0,-3.25)
- --(0.291667,-3.25)\dpicstop
-\dpicdraw (0.458333,-3.25)
- --(0.75,-3.25)\dpicstop
-\dpicdraw (0.291667,-3.25)
- --(0.479167,-3.15625)\dpicstop
-\dpicdraw (0.5,-3.225833)
- --(0.458333,-3.25)
- --(0.5,-3.274167)\dpicstop
-\draw (0.385417,-3.390032) node(S){\tt (,,WBMMR)};
-\dpicdraw (1,-3.25)
- --(1.291667,-3.25)\dpicstop
-\dpicdraw (1.458333,-3.25)
- --(1.75,-3.25)\dpicstop
-\dpicdraw (1.291667,-3.25)
- --(1.479167,-3.15625)\dpicstop
-\dpicdraw (1.479167,-3.25)
- --(1.458333,-3.25)
- --(1.5,-3.225833)\dpicstop
-\draw (1.385417,-3.390032) node{\tt (,,WBMM)};
-\dpicdraw (2,-3.25)
- --(2.291667,-3.25)\dpicstop
-\dpicdraw (2.458333,-3.25)
- --(2.75,-3.25)\dpicstop
-\dpicdraw (2.291667,-3.25)
- --(2.479167,-3.15625)\dpicstop
-\dpicdraw (2.479167,-3.25)
- --(2.458333,-3.25)
- --(2.5,-3.274167)\dpicstop
-\draw (2.385417,-3.390032) node{\tt (,,WBMR)};
-\dpicdraw (3,-3.25)
- --(3.291667,-3.25)\dpicstop
-\dpicdraw (3.458333,-3.25)
- --(3.75,-3.25)\dpicstop
-\dpicdraw (3.291667,-3.25)
- --(3.479167,-3.15625)\dpicstop
-\dpicdraw (3.477292,-3.157188)
- --(3.479167,-3.15625)
- --(3.502459,-3.202835)\dpicstop
-\draw (3.385417,-3.390032) node{\tt (,,WBEL)};
-\dpicdraw (4,-3.25)
- --(4.291667,-3.25)\dpicstop
-\dpicdraw (4.458333,-3.25)
- --(4.75,-3.25)\dpicstop
-\dpicdraw (4.291667,-3.25)
- --(4.479167,-3.15625)\dpicstop
-\dpicdraw (4.477292,-3.157188)
- --(4.479167,-3.15625)
- --(4.455874,-3.109665)\dpicstop
-\draw (4.385417,-3.390032) node{\tt (,,WBLE)};
-\dpicdraw (5,-3.25)
- --(5.291667,-3.25)\dpicstop
-\dpicdraw (5.458333,-3.25)
- --(5.75,-3.25)\dpicstop
-\dpicdraw (5.291667,-3.25)
- --(5.458333,-3.093634)\dpicstop
-\dpicdraw (5.456667,-3.095198)
- --(5.458333,-3.093634)
- --(5.493969,-3.131618)\dpicstop
-\dpicdraw (5.458333,-3.25)
- --(5.458333,-3.145833)\dpicstop
-\draw (5.375,-3.390032) node{\tt (,,WBoKEL)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Tgate.tex b/graphics/circuit_macros/doc/Tgate.tex
deleted file mode 100644
index 3dfb1c06b9..0000000000
--- a/graphics/circuit_macros/doc/Tgate.tex
+++ /dev/null
@@ -1,117 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.927778,0.231958)
- --(1.230609,0.231958)\dpicstop
-\dpicdraw (1.230609,0.231958)
- --(1.230609,0.273624)
- --(1.297243,0.231958)
- --(1.230609,0.190291)
- --(1.230609,0.231958)\dpicstop
-\dpicdraw (1.374947,0.231958)
- --(1.374947,0.273624)
- --(1.308313,0.231958)
- --(1.374947,0.190291)
- --(1.374947,0.231958)\dpicstop
-\dpicdraw (1.374947,0.231958)
- --(1.677778,0.231958)\dpicstop
-\dpicdraw[line width=0.4bp](1.302778,0.256014) circle (0.007103in)\dpicstop
-\dpicdraw (1.302778,0.274056)
- --(1.302778,0.340211)\dpicstop
-\dpicdraw (1.302778,0.231958)
- --(1.302778,0.159789)\dpicstop
-\draw (0.927778,0.231958) node[left=-2bp]{$A$};
-\draw (1.677778,0.231958) node[right=-2bp]{$B$};
-\draw (1.302778,0.159789) node[below right=-2bp]{$G$};
-\draw (1.302778,0.340211) node[above right=-2bp]{$Gb$};
-\draw (0.677778,0.231958) node[left=-2bp]{\tt tgate};
-\dpicdraw (0.927778,-0.231958)
- --(1.230609,-0.231958)\dpicstop
-\dpicdraw (1.230609,-0.231958)
- --(1.230609,-0.190291)
- --(1.297243,-0.231958)
- --(1.230609,-0.273624)
- --(1.230609,-0.231958)\dpicstop
-\dpicdraw (1.374947,-0.231958)
- --(1.374947,-0.190291)
- --(1.308313,-0.231958)
- --(1.374947,-0.273624)
- --(1.374947,-0.231958)\dpicstop
-\dpicdraw (1.374947,-0.231958)
- --(1.677778,-0.231958)\dpicstop
-\dpicdraw[line width=0.4bp](1.302778,-0.256014) circle (0.007103in)\dpicstop
-\dpicdraw (1.302778,-0.274056)
- --(1.302778,-0.340211)\dpicstop
-\dpicdraw (1.302778,-0.231958)
- --(1.302778,-0.159789)\dpicstop
-\draw (0.927778,-0.231958) node[left=-2bp]{$A$};
-\draw (1.677778,-0.231958) node[right=-2bp]{$B$};
-\draw (1.302778,-0.159789) node[above right=-2bp]{$G$};
-\draw (1.302778,-0.340211) node[below right=-2bp]{$Gb$};
-\draw (0.677778,-0.231958) node[left=-2bp]{\tt tgate(,L)};
-\dpicdraw (2.177778,0.018042)
- --(2.427778,0.018042)\dpicstop
-\dpicdraw (2.677778,0.018042)
- --(2.677778,0.068042)
- --(2.427778,0.068042)
- --(2.427778,-0.031958)
- --(2.677778,-0.031958)
- --(2.677778,0.018042)\dpicstop
-\dpicdraw (2.677778,0.018042)
- --(2.927778,0.018042)\dpicstop
-\dpicdraw (2.552778,-0.031958)
- --(2.552778,-0.131958)\dpicstop
-\draw (2.177778,0.018042) node[left=-2bp]{$A$};
-\draw (2.927778,0.018042) node[right=-2bp]{$B$};
-\draw (2.552778,-0.131958) node[right=-2bp]{$G$};
-\draw (2.552778,-0.270847) node[below=-2bp]{\tt tgate(,B)};
-\dpicdraw (3.455556,0.284789)
- --(3.747222,0.284789)\dpicstop
-\dpicdraw (3.747222,0.284789)
- --(3.913889,0.368122)
- --(3.913889,0.201456)
- --(3.747222,0.284789)\dpicstop
-\dpicdraw (3.913889,0.284789)
- --(3.747222,0.368122)
- --(3.747222,0.201456)
- --(3.913889,0.284789)\dpicstop
-\dpicdraw[line width=0.4bp](3.830556,0.354233) circle (0.008202in)\dpicstop
-\dpicdraw (3.830556,0.375067)
- --(3.830556,0.451456)\dpicstop
-\dpicdraw (3.830556,0.243122)
- --(3.830556,0.159789)\dpicstop
-\dpicdraw (3.913889,0.284789)
- --(4.205556,0.284789)\dpicstop
-\draw (3.455556,0.284789) node[left=-2bp]{$A$};
-\draw (4.205556,0.284789) node[right=-2bp]{$B$};
-\draw (3.830556,0.159789) node[below left=-2bp]{$G$};
-\draw (3.830556,0.451456) node[left=-2bp]{$Gb$};
-\draw (4.455556,0.284789) node[right=-2bp]{\tt ptrans};
-\dpicdraw (3.455556,-0.173544)
- --(3.747222,-0.173544)\dpicstop
-\dpicdraw (3.747222,-0.173544)
- --(3.913889,-0.090211)
- --(3.913889,-0.256878)
- --(3.747222,-0.173544)\dpicstop
-\dpicdraw (3.913889,-0.173544)
- --(3.747222,-0.090211)
- --(3.747222,-0.256878)
- --(3.913889,-0.173544)\dpicstop
-\dpicdraw[line width=0.4bp](3.830556,-0.242989) circle (0.008202in)\dpicstop
-\dpicdraw (3.830556,-0.263822)
- --(3.830556,-0.340211)\dpicstop
-\dpicdraw (3.830556,-0.131878)
- --(3.830556,-0.048544)\dpicstop
-\dpicdraw (3.913889,-0.173544)
- --(4.205556,-0.173544)\dpicstop
-\draw (3.455556,-0.173544) node[left=-2bp]{$A$};
-\draw (4.205556,-0.173544) node[right=-2bp]{$B$};
-\draw (3.830556,-0.048544) node[above right=-2bp]{$G$};
-\draw (3.830556,-0.340211) node[below right=-2bp]{$Gb$};
-\draw (4.455556,-0.173544) node[right=-2bp]{\tt ptrans(,L)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Variable.tex b/graphics/circuit_macros/doc/Variable.tex
deleted file mode 100644
index 585087d5e0..0000000000
--- a/graphics/circuit_macros/doc/Variable.tex
+++ /dev/null
@@ -1,306 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (-1.01349,0)
- --(-1.01349,-0.225)\dpicstop
-\dpicdraw (-1.096823,-0.225)
- --(-0.930157,-0.225)\dpicstop
-\dpicdraw (-1.096823,-0.275)
- --(-0.930157,-0.275)\dpicstop
-\dpicdraw (-1.01349,-0.275)
- --(-1.01349,-0.5)\dpicstop
-\filldraw[line width=0bp](-0.925102,-0.196967)
- --(-0.872069,-0.108579)
- --(-0.960457,-0.161612) --cycle\dpicstop
-\dpicdraw (-1.154911,-0.391421)
- --(-0.888266,-0.124776)\dpicstop
-\dpicdraw (-0.51349,0)
- --(-0.51349,-0.125)
- --(-0.471823,-0.145833)
- --(-0.555157,-0.1875)
- --(-0.471823,-0.229167)
- --(-0.555157,-0.270833)
- --(-0.471823,-0.3125)
- --(-0.555157,-0.354167)
- --(-0.51349,-0.375)
- --(-0.51349,-0.5)\dpicstop
-\dpicdraw (-0.654911,-0.391421)
- --(-0.372069,-0.108579)\dpicstop
-\dpicdraw (-0.372069,-0.108579)
- --(-0.372069,-0.025245)\dpicstop
-\dpicdraw (-0.01349,0)
- --(-0.01349,-0.225)\dpicstop
-\dpicdraw (-0.07599,-0.225)
- --(0.04901,-0.225)\dpicstop
-\dpicdraw (-0.07599,-0.275)
- ..controls (-0.037315,-0.252671) and (0.010335,-0.252671)
- ..(0.04901,-0.275)\dpicstop
-\dpicdraw (-0.01349,-0.258253)
- --(-0.01349,-0.5)\dpicstop
-\filldraw[line width=0bp](0.074898,-0.196967)
- --(0.127931,-0.108579)
- --(0.039543,-0.161612) --cycle\dpicstop
-\dpicdraw (-0.154911,-0.391421)
- --(0.111734,-0.124776)\dpicstop
-\dpicdraw (0.48651,0)
- --(0.48651,-0.125)\dpicstop
-\dpicdraw (0.48651,-0.125)
- --(0.480955,-0.125)\dpicstop
-\dpicdraw (0.48651,-0.125)
- ..controls (0.503769,-0.125) and (0.51776,-0.138991)
- ..(0.51776,-0.15625)
- ..controls (0.51776,-0.173509) and (0.503769,-0.1875)
- ..(0.48651,-0.1875)\dpicstop
-\dpicdraw (0.48651,-0.1875)
- --(0.480955,-0.1875)\dpicstop
-\dpicdraw (0.48651,-0.1875)
- ..controls (0.503769,-0.1875) and (0.51776,-0.201491)
- ..(0.51776,-0.21875)
- ..controls (0.51776,-0.236009) and (0.503769,-0.25)
- ..(0.48651,-0.25)\dpicstop
-\dpicdraw (0.48651,-0.25)
- --(0.480955,-0.25)\dpicstop
-\dpicdraw (0.48651,-0.25)
- ..controls (0.503769,-0.25) and (0.51776,-0.263991)
- ..(0.51776,-0.28125)
- ..controls (0.51776,-0.298509) and (0.503769,-0.3125)
- ..(0.48651,-0.3125)\dpicstop
-\dpicdraw (0.48651,-0.3125)
- --(0.480955,-0.3125)\dpicstop
-\dpicdraw (0.48651,-0.3125)
- ..controls (0.503769,-0.3125) and (0.51776,-0.326491)
- ..(0.51776,-0.34375)
- ..controls (0.51776,-0.361009) and (0.503769,-0.375)
- ..(0.48651,-0.375)\dpicstop
-\dpicdraw (0.48651,-0.375)
- --(0.480955,-0.375)\dpicstop
-\dpicdraw (0.48651,-0.375)
- --(0.48651,-0.5)\dpicstop
-\filldraw[line width=0bp](0.590523,-0.196967)
- --(0.643556,-0.108579)
- --(0.555168,-0.161612) --cycle\dpicstop
-\dpicdraw (0.360714,-0.391421)
- --(0.627359,-0.124776)\dpicstop
-\dpicdraw (0.98651,0)
- --(0.98651,-0.108266)\dpicstop
-\dpicdraw[line width=0.4bp](0.98651,-0.108266) circle (0.00109in)\dpicstop
-\dpicdraw (0.98651,-0.108266)
- ..controls (1.024082,-0.090746) and (1.065429,-0.123931)
- ..(1.056456,-0.164404)
- ..controls (1.047483,-0.204877) and (0.995986,-0.217478)
- ..(0.969339,-0.185721)\dpicstop
-\dpicdraw[line width=0.4bp](0.969339,-0.185721) circle (0.00109in)\dpicstop
-\dpicdraw (0.969339,-0.185721)
- ..controls (0.999344,-0.149962) and (1.057641,-0.17118)
- ..(1.057641,-0.217861)
- ..controls (1.057641,-0.264541) and (0.999344,-0.285759)
- ..(0.969339,-0.25)\dpicstop
-\dpicdraw[line width=0.4bp](0.969339,-0.25) circle (0.00109in)\dpicstop
-\dpicdraw (0.969339,-0.25)
- ..controls (0.999344,-0.214241) and (1.057641,-0.235459)
- ..(1.057641,-0.282139)
- ..controls (1.057641,-0.32882) and (0.999344,-0.350038)
- ..(0.969339,-0.314279)\dpicstop
-\dpicdraw[line width=0.4bp](0.969339,-0.314279) circle (0.00109in)\dpicstop
-\dpicdraw (0.969339,-0.314279)
- ..controls (0.995986,-0.282522) and (1.047483,-0.295123)
- ..(1.056456,-0.335596)
- ..controls (1.065429,-0.376069) and (1.024082,-0.409254)
- ..(0.98651,-0.391734)\dpicstop
-\dpicdraw[line width=0.4bp](0.98651,-0.391734) circle (0.00109in)\dpicstop
-\dpicdraw (0.98651,-0.391734)
- --(0.98651,-0.5)\dpicstop
-\filldraw[line width=0bp](1.101878,-0.196967)
- --(1.154911,-0.108579)
- --(1.066523,-0.161612) --cycle\dpicstop
-\dpicdraw (0.872069,-0.391421)
- --(1.138714,-0.124776)\dpicstop
-\draw (2.804911,0.520711) node{\tt C};
-\draw (3.554911,0.520711) node{\tt S};
-\draw (1.679911,0.320711) node{\tt A};
-\dpicdraw (1.804911,0.320711)
- --(2.029911,0.320711)\dpicstop
-\dpicdraw (2.029911,0.258211)
- --(2.029911,0.383211)\dpicstop
-\dpicdraw (2.079911,0.258211)
- ..controls (2.057582,0.296886) and (2.057582,0.344536)
- ..(2.079911,0.383211)\dpicstop
-\dpicdraw (2.063164,0.320711)
- --(2.304911,0.320711)\dpicstop
-\filldraw[line width=0bp](2.1433,0.373744)
- --(2.196333,0.462132)
- --(2.107944,0.409099) --cycle\dpicstop
-\dpicdraw (1.91349,0.179289)
- --(2.180136,0.445935)\dpicstop
-\dpicdraw (2.554911,0.320711)
- --(2.779911,0.320711)\dpicstop
-\dpicdraw (2.779911,0.258211)
- --(2.779911,0.383211)\dpicstop
-\dpicdraw (2.829911,0.258211)
- ..controls (2.807582,0.296886) and (2.807582,0.344536)
- ..(2.829911,0.383211)\dpicstop
-\dpicdraw (2.813164,0.320711)
- --(3.054911,0.320711)\dpicstop
-\filldraw[line width=0bp](2.8933,0.373744)
- --(2.946333,0.462132)
- --(2.857944,0.409099) --cycle\dpicstop
-\dpicdraw (2.66349,0.179289)
- --(2.930136,0.445935)\dpicstop
-\dpicdraw (2.996333,0.432132)
- --(3.055258,0.491058)\dpicstop
-\dpicdraw (3.304911,0.320711)
- --(3.529911,0.320711)\dpicstop
-\dpicdraw (3.529911,0.258211)
- --(3.529911,0.383211)\dpicstop
-\dpicdraw (3.579911,0.258211)
- ..controls (3.557582,0.296886) and (3.557582,0.344536)
- ..(3.579911,0.383211)\dpicstop
-\dpicdraw (3.563164,0.320711)
- --(3.804911,0.320711)\dpicstop
-\filldraw[line width=0bp](3.6433,0.373744)
- --(3.696333,0.462132)
- --(3.607944,0.409099) --cycle\dpicstop
-\dpicdraw (3.41349,0.179289)
- --(3.680136,0.445935)\dpicstop
-\dpicdraw (3.746333,0.402132)
- --(3.746333,0.432132)
- --(3.806333,0.432132)
- --(3.806333,0.462132)\dpicstop
-\draw (1.679911,-0.079289) node{\tt P};
-\dpicdraw (1.804911,-0.079289)
- --(2.029911,-0.079289)\dpicstop
-\dpicdraw (2.029911,-0.141789)
- --(2.029911,-0.016789)\dpicstop
-\dpicdraw (2.079911,-0.141789)
- ..controls (2.057582,-0.103114) and (2.057582,-0.055464)
- ..(2.079911,-0.016789)\dpicstop
-\dpicdraw (2.063164,-0.079289)
- --(2.304911,-0.079289)\dpicstop
-\dpicdraw (1.91349,-0.220711)
- --(2.196333,0.062132)\dpicstop
-\dpicdraw (2.16687,0.091595)
- --(2.225795,0.032669)\dpicstop
-\dpicdraw (2.554911,-0.079289)
- --(2.779911,-0.079289)\dpicstop
-\dpicdraw (2.779911,-0.141789)
- --(2.779911,-0.016789)\dpicstop
-\dpicdraw (2.829911,-0.141789)
- ..controls (2.807582,-0.103114) and (2.807582,-0.055464)
- ..(2.829911,-0.016789)\dpicstop
-\dpicdraw (2.813164,-0.079289)
- --(3.054911,-0.079289)\dpicstop
-\dpicdraw (2.66349,-0.220711)
- --(2.946333,0.062132)\dpicstop
-\dpicdraw (2.91687,0.091595)
- --(2.975795,0.032669)\dpicstop
-\dpicdraw (2.996333,0.032132)
- --(3.055258,0.091058)\dpicstop
-\dpicdraw (3.304911,-0.079289)
- --(3.529911,-0.079289)\dpicstop
-\dpicdraw (3.529911,-0.141789)
- --(3.529911,-0.016789)\dpicstop
-\dpicdraw (3.579911,-0.141789)
- ..controls (3.557582,-0.103114) and (3.557582,-0.055464)
- ..(3.579911,-0.016789)\dpicstop
-\dpicdraw (3.563164,-0.079289)
- --(3.804911,-0.079289)\dpicstop
-\dpicdraw (3.41349,-0.220711)
- --(3.696333,0.062132)\dpicstop
-\dpicdraw (3.66687,0.091595)
- --(3.725795,0.032669)\dpicstop
-\dpicdraw (3.746333,0.002132)
- --(3.746333,0.032132)
- --(3.806333,0.032132)
- --(3.806333,0.062132)\dpicstop
-\draw (1.679911,-0.479289) node{\tt L};
-\dpicdraw (1.804911,-0.479289)
- --(2.029911,-0.479289)\dpicstop
-\dpicdraw (2.029911,-0.541789)
- --(2.029911,-0.416789)\dpicstop
-\dpicdraw (2.079911,-0.541789)
- ..controls (2.057582,-0.503114) and (2.057582,-0.455464)
- ..(2.079911,-0.416789)\dpicstop
-\dpicdraw (2.063164,-0.479289)
- --(2.304911,-0.479289)\dpicstop
-\dpicdraw (1.91349,-0.620711)
- --(2.196333,-0.337868)\dpicstop
-\dpicdraw (2.554911,-0.479289)
- --(2.779911,-0.479289)\dpicstop
-\dpicdraw (2.779911,-0.541789)
- --(2.779911,-0.416789)\dpicstop
-\dpicdraw (2.829911,-0.541789)
- ..controls (2.807582,-0.503114) and (2.807582,-0.455464)
- ..(2.829911,-0.416789)\dpicstop
-\dpicdraw (2.813164,-0.479289)
- --(3.054911,-0.479289)\dpicstop
-\dpicdraw (2.66349,-0.620711)
- --(2.946333,-0.337868)\dpicstop
-\dpicdraw (2.996333,-0.367868)
- --(3.055258,-0.308942)\dpicstop
-\dpicdraw (3.304911,-0.479289)
- --(3.529911,-0.479289)\dpicstop
-\dpicdraw (3.529911,-0.541789)
- --(3.529911,-0.416789)\dpicstop
-\dpicdraw (3.579911,-0.541789)
- ..controls (3.557582,-0.503114) and (3.557582,-0.455464)
- ..(3.579911,-0.416789)\dpicstop
-\dpicdraw (3.563164,-0.479289)
- --(3.804911,-0.479289)\dpicstop
-\dpicdraw (3.41349,-0.620711)
- --(3.696333,-0.337868)\dpicstop
-\dpicdraw (3.746333,-0.397868)
- --(3.746333,-0.367868)
- --(3.806333,-0.367868)
- --(3.806333,-0.337868)\dpicstop
-\draw (1.679911,-0.879289) node{\tt N};
-\dpicdraw (1.804911,-0.879289)
- --(2.029911,-0.879289)\dpicstop
-\dpicdraw (2.029911,-0.941789)
- --(2.029911,-0.816789)\dpicstop
-\dpicdraw (2.079911,-0.941789)
- ..controls (2.057582,-0.903114) and (2.057582,-0.855464)
- ..(2.079911,-0.816789)\dpicstop
-\dpicdraw (2.063164,-0.879289)
- --(2.304911,-0.879289)\dpicstop
-\dpicdraw (1.91349,-1.020711)
- --(2.196333,-0.737868)\dpicstop
-\dpicdraw (1.91349,-1.020711)
- --(1.830157,-1.020711)\dpicstop
-\dpicdraw (2.554911,-0.879289)
- --(2.779911,-0.879289)\dpicstop
-\dpicdraw (2.779911,-0.941789)
- --(2.779911,-0.816789)\dpicstop
-\dpicdraw (2.829911,-0.941789)
- ..controls (2.807582,-0.903114) and (2.807582,-0.855464)
- ..(2.829911,-0.816789)\dpicstop
-\dpicdraw (2.813164,-0.879289)
- --(3.054911,-0.879289)\dpicstop
-\dpicdraw (2.66349,-1.020711)
- --(2.946333,-0.737868)\dpicstop
-\dpicdraw (2.66349,-1.020711)
- --(2.580157,-1.020711)\dpicstop
-\dpicdraw (2.996333,-0.767868)
- --(3.055258,-0.708942)\dpicstop
-\dpicdraw (3.304911,-0.879289)
- --(3.529911,-0.879289)\dpicstop
-\dpicdraw (3.529911,-0.941789)
- --(3.529911,-0.816789)\dpicstop
-\dpicdraw (3.579911,-0.941789)
- ..controls (3.557582,-0.903114) and (3.557582,-0.855464)
- ..(3.579911,-0.816789)\dpicstop
-\dpicdraw (3.563164,-0.879289)
- --(3.804911,-0.879289)\dpicstop
-\dpicdraw (3.41349,-1.020711)
- --(3.696333,-0.737868)\dpicstop
-\dpicdraw (3.41349,-1.020711)
- --(3.330157,-1.020711)\dpicstop
-\dpicdraw (3.746333,-0.797868)
- --(3.746333,-0.767868)
- --(3.806333,-0.767868)
- --(3.806333,-0.737868)\dpicstop
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/Version.tex b/graphics/circuit_macros/doc/Version.tex
index c0b5abb2fd..e513216662 100644
--- a/graphics/circuit_macros/doc/Version.tex
+++ b/graphics/circuit_macros/doc/Version.tex
@@ -1 +1 @@
-Version 10.0
+Version 10.1
diff --git a/graphics/circuit_macros/doc/Xform.tex b/graphics/circuit_macros/doc/Xform.tex
deleted file mode 100644
index 6c527c38cc..0000000000
--- a/graphics/circuit_macros/doc/Xform.tex
+++ /dev/null
@@ -1,648 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (-0.104167,-0)
- --(-0.104167,-0.041667)\dpicstop
-\dpicdraw (-0.104167,-0.041667)
- --(-0.109722,-0.041667)\dpicstop
-\dpicdraw (-0.104167,-0.041667)
- ..controls (-0.086908,-0.041667) and (-0.072917,-0.055658)
- ..(-0.072917,-0.072917)
- ..controls (-0.072917,-0.090176) and (-0.086908,-0.104167)
- ..(-0.104167,-0.104167)\dpicstop
-\dpicdraw (-0.104167,-0.104167)
- --(-0.109722,-0.104167)\dpicstop
-\dpicdraw (-0.104167,-0.104167)
- ..controls (-0.086908,-0.104167) and (-0.072917,-0.118158)
- ..(-0.072917,-0.135417)
- ..controls (-0.072917,-0.152676) and (-0.086908,-0.166667)
- ..(-0.104167,-0.166667)\dpicstop
-\dpicdraw (-0.104167,-0.166667)
- --(-0.109722,-0.166667)\dpicstop
-\dpicdraw (-0.104167,-0.166667)
- ..controls (-0.086908,-0.166667) and (-0.072917,-0.180658)
- ..(-0.072917,-0.197917)
- ..controls (-0.072917,-0.215176) and (-0.086908,-0.229167)
- ..(-0.104167,-0.229167)\dpicstop
-\dpicdraw (-0.104167,-0.229167)
- --(-0.109722,-0.229167)\dpicstop
-\dpicdraw (-0.104167,-0.229167)
- ..controls (-0.0625,-0.229167) and (-0.0625,-0.291667)
- ..(-0.104167,-0.291667)\dpicstop
-\dpicdraw (-0.104167,-0.291667)
- --(-0.109722,-0.291667)\dpicstop
-\dpicdraw (-0.104167,-0.291667)
- --(-0.104167,-0.333333)\dpicstop
-\dpicdraw (-0.03125,-0.041667)
- --(-0.03125,-0.291667)\dpicstop
-\dpicdraw (0.03125,-0.041667)
- --(0.03125,-0.291667)\dpicstop
-\dpicdraw (0.104167,-0.333333)
- --(0.104167,-0.291667)\dpicstop
-\dpicdraw (0.104167,-0.291667)
- --(0.109722,-0.291667)\dpicstop
-\dpicdraw (0.104167,-0.291667)
- ..controls (0.0625,-0.291667) and (0.0625,-0.229167)
- ..(0.104167,-0.229167)\dpicstop
-\dpicdraw (0.104167,-0.229167)
- --(0.109722,-0.229167)\dpicstop
-\dpicdraw (0.104167,-0.229167)
- ..controls (0.0625,-0.229167) and (0.0625,-0.166667)
- ..(0.104167,-0.166667)\dpicstop
-\dpicdraw (0.104167,-0.166667)
- --(0.109722,-0.166667)\dpicstop
-\dpicdraw (0.104167,-0.166667)
- ..controls (0.0625,-0.166667) and (0.0625,-0.104167)
- ..(0.104167,-0.104167)\dpicstop
-\dpicdraw (0.104167,-0.104167)
- --(0.109722,-0.104167)\dpicstop
-\dpicdraw (0.104167,-0.104167)
- ..controls (0.0625,-0.104167) and (0.0625,-0.041667)
- ..(0.104167,-0.041667)\dpicstop
-\dpicdraw (0.104167,-0.041667)
- --(0.109722,-0.041667)\dpicstop
-\dpicdraw (0.104167,-0.041667)
- --(0.104167,0)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](-0.183488,0.024269)
- --(-0.116032,0.007119)
- --(-0.162908,0.058569) --cycle\dpicstop
-\dpicdraw (-0.13261,0.017066)
- --(-0.212302,0.064881)\dpicstop
-\draw (-0.212302,0.064881) node[left=-2bp]{\sl P1};
-\filldraw[line width=0bp](-0.162908,-0.391902)
- --(-0.116032,-0.340452)
- --(-0.183488,-0.357602) --cycle\dpicstop
-\dpicdraw (-0.13261,-0.3504)
- --(-0.212302,-0.398214)\dpicstop
-\draw (-0.212302,-0.398214) node[left=-2bp]{\sl P2};
-\filldraw[line width=0bp](-0.18467,-0.186667)
- --(-0.118004,-0.166667)
- --(-0.18467,-0.146667) --cycle\dpicstop
-\dpicdraw (-0.137338,-0.166667)
- --(-0.21033,-0.166667)\dpicstop
-\draw (-0.21033,-0.166667) node[left=-2bp]{\sl TP};
-\filldraw[line width=0bp](0.162908,0.058569)
- --(0.116032,0.007119)
- --(0.183488,0.024269) --cycle\dpicstop
-\dpicdraw (0.13261,0.017066)
- --(0.212302,0.064881)\dpicstop
-\draw (0.212302,0.064881) node[right=-2bp]{\sl S1};
-\filldraw[line width=0bp](0.183488,-0.357602)
- --(0.116032,-0.340452)
- --(0.162908,-0.391902) --cycle\dpicstop
-\dpicdraw (0.13261,-0.3504)
- --(0.212302,-0.398214)\dpicstop
-\draw (0.212302,-0.398214) node[right=-2bp]{\sl S2};
-\filldraw[line width=0bp](0.18467,-0.146667)
- --(0.118004,-0.166667)
- --(0.18467,-0.186667) --cycle\dpicstop
-\dpicdraw (0.137338,-0.166667)
- --(0.21033,-0.166667)\dpicstop
-\draw (0.21033,-0.166667) node[right=-2bp]{\sl TS};
-\draw (0,-0.633333) node{\tt transformer};
-\dpiclw=0.8bp
-\dpicdraw (1.115278,0.133333)
- --(1.115278,-0.104167)\dpicstop
-\dpicdraw (1.115278,-0.104167)
- --(1.109722,-0.104167)\dpicstop
-\dpicdraw (1.115278,-0.104167)
- ..controls (1.132537,-0.104167) and (1.146528,-0.118158)
- ..(1.146528,-0.135417)
- ..controls (1.146528,-0.152676) and (1.132537,-0.166667)
- ..(1.115278,-0.166667)\dpicstop
-\dpicdraw (1.115278,-0.166667)
- --(1.109722,-0.166667)\dpicstop
-\dpicdraw (1.115278,-0.166667)
- ..controls (1.132537,-0.166667) and (1.146528,-0.180658)
- ..(1.146528,-0.197917)
- ..controls (1.146528,-0.215176) and (1.132537,-0.229167)
- ..(1.115278,-0.229167)\dpicstop
-\dpicdraw (1.115278,-0.229167)
- --(1.109722,-0.229167)\dpicstop
-\dpicdraw (1.115278,-0.229167)
- --(1.115278,-0.466667)\dpicstop
-\dpicdraw[dash pattern=on 0.025in off 0.025in](1.188194,0.083333)
- --(1.188194,-0.416667)\dpicstop
-\dpicdraw[dash pattern=on 0.025in off 0.025in](1.250694,0.083333)
- --(1.250694,-0.416667)\dpicstop
-\dpicdraw (1.323611,-0.416667)
- --(1.323611,-0.416667)\dpicstop
-\dpicdraw (1.323611,-0.416667)
- --(1.329167,-0.416667)\dpicstop
-\dpicdraw (1.323611,-0.416667)
- ..controls (1.306352,-0.416667) and (1.292361,-0.402676)
- ..(1.292361,-0.385417)
- ..controls (1.292361,-0.368158) and (1.306352,-0.354167)
- ..(1.323611,-0.354167)\dpicstop
-\dpicdraw (1.323611,-0.354167)
- --(1.329167,-0.354167)\dpicstop
-\dpicdraw (1.323611,-0.354167)
- ..controls (1.306352,-0.354167) and (1.292361,-0.340176)
- ..(1.292361,-0.322917)
- ..controls (1.292361,-0.305658) and (1.306352,-0.291667)
- ..(1.323611,-0.291667)\dpicstop
-\dpicdraw (1.323611,-0.291667)
- --(1.329167,-0.291667)\dpicstop
-\dpicdraw (1.323611,-0.291667)
- ..controls (1.306352,-0.291667) and (1.292361,-0.277676)
- ..(1.292361,-0.260417)
- ..controls (1.292361,-0.243158) and (1.306352,-0.229167)
- ..(1.323611,-0.229167)\dpicstop
-\dpicdraw (1.323611,-0.229167)
- --(1.329167,-0.229167)\dpicstop
-\dpicdraw (1.323611,-0.229167)
- ..controls (1.306352,-0.229167) and (1.292361,-0.215176)
- ..(1.292361,-0.197917)
- ..controls (1.292361,-0.180658) and (1.306352,-0.166667)
- ..(1.323611,-0.166667)\dpicstop
-\dpicdraw (1.323611,-0.166667)
- --(1.329167,-0.166667)\dpicstop
-\dpicdraw (1.323611,-0.166667)
- ..controls (1.306352,-0.166667) and (1.292361,-0.152676)
- ..(1.292361,-0.135417)
- ..controls (1.292361,-0.118158) and (1.306352,-0.104167)
- ..(1.323611,-0.104167)\dpicstop
-\dpicdraw (1.323611,-0.104167)
- --(1.329167,-0.104167)\dpicstop
-\dpicdraw (1.323611,-0.104167)
- ..controls (1.306352,-0.104167) and (1.292361,-0.090176)
- ..(1.292361,-0.072917)
- ..controls (1.292361,-0.055658) and (1.306352,-0.041667)
- ..(1.323611,-0.041667)\dpicstop
-\dpicdraw (1.323611,-0.041667)
- --(1.329167,-0.041667)\dpicstop
-\dpicdraw (1.323611,-0.041667)
- ..controls (1.306352,-0.041667) and (1.292361,-0.027676)
- ..(1.292361,-0.010417)
- ..controls (1.292361,0.006842) and (1.306352,0.020833)
- ..(1.323611,0.020833)\dpicstop
-\dpicdraw (1.323611,0.020833)
- --(1.329167,0.020833)\dpicstop
-\dpicdraw (1.323611,0.020833)
- ..controls (1.306352,0.020833) and (1.292361,0.034824)
- ..(1.292361,0.052083)
- ..controls (1.292361,0.069342) and (1.306352,0.083333)
- ..(1.323611,0.083333)\dpicstop
-\dpicdraw (1.323611,0.083333)
- --(1.329167,0.083333)\dpicstop
-\dpicdraw (1.323611,0.083333)
- --(1.323611,0.083333)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.035957,0.157602)
- --(1.103413,0.140452)
- --(1.056536,0.191902) --cycle\dpicstop
-\dpicdraw (1.086834,0.1504)
- --(1.007143,0.198214)\dpicstop
-\draw (1.007143,0.198214) node[left=-2bp]{\sl P1};
-\filldraw[line width=0bp](1.056536,-0.525235)
- --(1.103413,-0.473786)
- --(1.035957,-0.490936) --cycle\dpicstop
-\dpicdraw (1.086834,-0.483733)
- --(1.007143,-0.531548)\dpicstop
-\draw (1.007143,-0.531548) node[left=-2bp]{\sl P2};
-\filldraw[line width=0bp](1.034774,-0.186667)
- --(1.101441,-0.166667)
- --(1.034774,-0.146667) --cycle\dpicstop
-\dpicdraw (1.082107,-0.166667)
- --(1.009115,-0.166667)\dpicstop
-\draw (1.009115,-0.166667) node[left=-2bp]{\sl TP};
-\filldraw[line width=0bp](1.382353,0.141902)
- --(1.335476,0.090452)
- --(1.402932,0.107602) --cycle\dpicstop
-\dpicdraw (1.352055,0.1004)
- --(1.431746,0.148214)\dpicstop
-\draw (1.431746,0.148214) node[right=-2bp]{\sl S1};
-\filldraw[line width=0bp](1.402932,-0.440936)
- --(1.335476,-0.423786)
- --(1.382353,-0.475235) --cycle\dpicstop
-\dpicdraw (1.352055,-0.433733)
- --(1.431746,-0.481548)\dpicstop
-\draw (1.431746,-0.481548) node[right=-2bp]{\sl S2};
-\filldraw[line width=0bp](1.404115,-0.146667)
- --(1.337448,-0.166667)
- --(1.404115,-0.186667) --cycle\dpicstop
-\dpicdraw (1.356782,-0.166667)
- --(1.429774,-0.166667)\dpicstop
-\draw (1.429774,-0.166667) node[right=-2bp]{\sl TS};
-\draw (1.219444,-0.766667) node{\tt ...(down\_ 0.6,,2,P,8)};
-\dpiclw=0.8bp
-\dpicdraw (2.349105,0.086124)
- --(2.349105,0.086124)\dpicstop
-\dpicdraw[line width=0.4bp](2.349105,0.086124) circle (0.00109in)\dpicstop
-\dpicdraw (2.349105,0.086124)
- ..controls (2.386677,0.103644) and (2.428024,0.07046)
- ..(2.419051,0.029987)
- ..controls (2.410078,-0.010486) and (2.358581,-0.023088)
- ..(2.331934,0.00867)\dpicstop
-\dpicdraw[line width=0.4bp](2.331934,0.00867) circle (0.00109in)\dpicstop
-\dpicdraw (2.331934,0.00867)
- ..controls (2.36194,0.044429) and (2.420236,0.023211)
- ..(2.420236,-0.02347)
- ..controls (2.420236,-0.07015) and (2.36194,-0.091368)
- ..(2.331934,-0.055609)\dpicstop
-\dpicdraw[line width=0.4bp](2.331934,-0.055609) circle (0.00109in)\dpicstop
-\dpicdraw (2.331934,-0.055609)
- ..controls (2.36194,-0.01985) and (2.420236,-0.041068)
- ..(2.420236,-0.087749)
- ..controls (2.420236,-0.134429) and (2.36194,-0.155647)
- ..(2.331934,-0.119888)\dpicstop
-\dpicdraw[line width=0.4bp](2.331934,-0.119888) circle (0.00109in)\dpicstop
-\dpicdraw (2.331934,-0.119888)
- ..controls (2.36194,-0.084129) and (2.420236,-0.105347)
- ..(2.420236,-0.152027)
- ..controls (2.420236,-0.198708) and (2.36194,-0.219926)
- ..(2.331934,-0.184167)\dpicstop
-\dpicdraw[line width=0.4bp](2.331934,-0.184167) circle (0.00109in)\dpicstop
-\dpicdraw (2.331934,-0.184167)
- ..controls (2.36194,-0.148407) and (2.420236,-0.169626)
- ..(2.420236,-0.216306)
- ..controls (2.420236,-0.262987) and (2.36194,-0.284205)
- ..(2.331934,-0.248445)\dpicstop
-\dpicdraw[line width=0.4bp](2.331934,-0.248445) circle (0.00109in)\dpicstop
-\dpicdraw (2.331934,-0.248445)
- ..controls (2.36194,-0.212686) and (2.420236,-0.233904)
- ..(2.420236,-0.280585)
- ..controls (2.420236,-0.327265) and (2.36194,-0.348484)
- ..(2.331934,-0.312724)\dpicstop
-\dpicdraw[line width=0.4bp](2.331934,-0.312724) circle (0.00109in)\dpicstop
-\dpicdraw (2.331934,-0.312724)
- ..controls (2.36194,-0.276965) and (2.420236,-0.298183)
- ..(2.420236,-0.344864)
- ..controls (2.420236,-0.391544) and (2.36194,-0.412762)
- ..(2.331934,-0.377003)\dpicstop
-\dpicdraw[line width=0.4bp](2.331934,-0.377003) circle (0.00109in)\dpicstop
-\dpicdraw (2.331934,-0.377003)
- ..controls (2.358581,-0.345246) and (2.410078,-0.357847)
- ..(2.419051,-0.39832)
- ..controls (2.428024,-0.438794) and (2.386677,-0.471978)
- ..(2.349105,-0.454458)\dpicstop
-\dpicdraw[line width=0.4bp](2.349105,-0.454458) circle (0.00109in)\dpicstop
-\dpicdraw (2.349105,-0.454458)
- --(2.349105,-0.454458)\dpicstop
-\dpicdraw (2.461903,0.090809)
- --(2.461903,-0.459142)\dpicstop
-\dpicdraw (2.524403,0.090809)
- --(2.524403,-0.459142)\dpicstop
-\dpicdraw (2.637201,-0.330585)
- --(2.637201,-0.3259)\dpicstop
-\dpicdraw[line width=0.4bp](2.637201,-0.3259) circle (0.00109in)\dpicstop
-\dpicdraw (2.637201,-0.3259)
- ..controls (2.599629,-0.34342) and (2.558282,-0.310236)
- ..(2.567255,-0.269763)
- ..controls (2.576228,-0.22929) and (2.627724,-0.216688)
- ..(2.654372,-0.248445)\dpicstop
-\dpicdraw[line width=0.4bp](2.654372,-0.248445) circle (0.00109in)\dpicstop
-\dpicdraw (2.654372,-0.248445)
- ..controls (2.624366,-0.284205) and (2.56607,-0.262987)
- ..(2.56607,-0.216306)
- ..controls (2.56607,-0.169626) and (2.624366,-0.148407)
- ..(2.654372,-0.184167)\dpicstop
-\dpicdraw[line width=0.4bp](2.654372,-0.184167) circle (0.00109in)\dpicstop
-\dpicdraw (2.654372,-0.184167)
- ..controls (2.624366,-0.219926) and (2.56607,-0.198708)
- ..(2.56607,-0.152027)
- ..controls (2.56607,-0.105347) and (2.624366,-0.084129)
- ..(2.654372,-0.119888)\dpicstop
-\dpicdraw[line width=0.4bp](2.654372,-0.119888) circle (0.00109in)\dpicstop
-\dpicdraw (2.654372,-0.119888)
- ..controls (2.627724,-0.151645) and (2.576228,-0.139044)
- ..(2.567255,-0.098571)
- ..controls (2.558282,-0.058097) and (2.599629,-0.024913)
- ..(2.637201,-0.042433)\dpicstop
-\dpicdraw[line width=0.4bp](2.637201,-0.042433) circle (0.00109in)\dpicstop
-\dpicdraw (2.637201,-0.042433)
- --(2.637201,-0.037749)\dpicstop
-\dpicdraw[fill=black](2.380355,0.115809) circle (0.003937in)\dpicstop
-\dpicdraw[fill=black](2.605951,-0.355585) circle (0.003937in)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](2.269784,0.110393)
- --(2.33724,0.093243)
- --(2.290364,0.144693) --cycle\dpicstop
-\dpicdraw (2.320662,0.103191)
- --(2.240971,0.151005)\dpicstop
-\draw (2.240971,0.151005) node[left=-2bp]{\sl P1};
-\filldraw[line width=0bp](2.290364,-0.513026)
- --(2.33724,-0.461577)
- --(2.269784,-0.478727) --cycle\dpicstop
-\dpicdraw (2.320662,-0.471524)
- --(2.240971,-0.519339)\dpicstop
-\draw (2.240971,-0.519339) node[left=-2bp]{\sl P2};
-\filldraw[line width=0bp](2.268602,-0.204167)
- --(2.335268,-0.184167)
- --(2.268602,-0.164167) --cycle\dpicstop
-\dpicdraw (2.315934,-0.184167)
- --(2.242942,-0.184167)\dpicstop
-\draw (2.242942,-0.184167) node[left=-2bp]{\sl TP};
-\filldraw[line width=0bp](2.695942,0.02082)
- --(2.649066,-0.030629)
- --(2.716522,-0.01348) --cycle\dpicstop
-\dpicdraw (2.665644,-0.020682)
- --(2.745335,0.027132)\dpicstop
-\draw (2.745335,0.027132) node[right=-2bp]{\sl S1};
-\filldraw[line width=0bp](2.716522,-0.354854)
- --(2.649066,-0.337704)
- --(2.695942,-0.389153) --cycle\dpicstop
-\dpicdraw (2.665644,-0.347651)
- --(2.745335,-0.395466)\dpicstop
-\draw (2.745335,-0.395466) node[right=-2bp]{\sl S2};
-\filldraw[line width=0bp](2.717704,-0.164167)
- --(2.651038,-0.184167)
- --(2.717704,-0.204167) --cycle\dpicstop
-\dpicdraw (2.670371,-0.184167)
- --(2.743364,-0.184167)\dpicstop
-\draw (2.743364,-0.184167) node[right=-2bp]{\sl TS};
-\draw (2.493153,-0.669142) node{\tt ...(,,8,WD12,4)};
-\dpiclw=0.8bp
-\dpicdraw (3.682139,0.103358)
- --(3.682139,0.072108)\dpicstop
-\dpicdraw[line width=0.4bp](3.682139,0.072108) circle (0.00109in)\dpicstop
-\dpicdraw (3.682139,0.072108)
- ..controls (3.716514,0.072108) and (3.744639,0.057483)
- ..(3.744639,0.039608)
- ..controls (3.744639,0.021733) and (3.724952,0.007108)
- ..(3.700889,0.007108)
- ..controls (3.676827,0.007108) and (3.657139,0.013858)
- ..(3.657139,0.022108)
- ..controls (3.657139,0.030358) and (3.676827,0.037108)
- ..(3.700889,0.037108)
- ..controls (3.724952,0.037108) and (3.744639,0.019108)
- ..(3.744639,-0.002892)
- ..controls (3.744639,-0.024892) and (3.724952,-0.042892)
- ..(3.700889,-0.042892)
- ..controls (3.676827,-0.042892) and (3.657139,-0.036142)
- ..(3.657139,-0.027892)
- ..controls (3.657139,-0.019642) and (3.676827,-0.012892)
- ..(3.700889,-0.012892)
- ..controls (3.724952,-0.012892) and (3.744639,-0.030892)
- ..(3.744639,-0.052892)
- ..controls (3.744639,-0.074892) and (3.724952,-0.092892)
- ..(3.700889,-0.092892)
- ..controls (3.676827,-0.092892) and (3.657139,-0.086142)
- ..(3.657139,-0.077892)
- ..controls (3.657139,-0.069642) and (3.676827,-0.062892)
- ..(3.700889,-0.062892)
- ..controls (3.724952,-0.062892) and (3.744639,-0.080892)
- ..(3.744639,-0.102892)
- ..controls (3.744639,-0.124892) and (3.724952,-0.142892)
- ..(3.700889,-0.142892)
- ..controls (3.676827,-0.142892) and (3.657139,-0.136142)
- ..(3.657139,-0.127892)
- ..controls (3.657139,-0.119642) and (3.676827,-0.112892)
- ..(3.700889,-0.112892)
- ..controls (3.724952,-0.112892) and (3.744639,-0.130892)
- ..(3.744639,-0.152892)
- ..controls (3.744639,-0.174892) and (3.724952,-0.192892)
- ..(3.700889,-0.192892)
- ..controls (3.676827,-0.192892) and (3.657139,-0.186142)
- ..(3.657139,-0.177892)
- ..controls (3.657139,-0.169642) and (3.676827,-0.162892)
- ..(3.700889,-0.162892)
- ..controls (3.724952,-0.162892) and (3.744639,-0.180892)
- ..(3.744639,-0.202892)
- ..controls (3.744639,-0.224892) and (3.724952,-0.242892)
- ..(3.700889,-0.242892)
- ..controls (3.676827,-0.242892) and (3.657139,-0.236142)
- ..(3.657139,-0.227892)
- ..controls (3.657139,-0.219642) and (3.676827,-0.212892)
- ..(3.700889,-0.212892)
- ..controls (3.724952,-0.212892) and (3.744639,-0.230892)
- ..(3.744639,-0.252892)
- ..controls (3.744639,-0.274892) and (3.724952,-0.292892)
- ..(3.700889,-0.292892)
- ..controls (3.676827,-0.292892) and (3.657139,-0.286142)
- ..(3.657139,-0.277892)
- ..controls (3.657139,-0.269642) and (3.676827,-0.262892)
- ..(3.700889,-0.262892)
- ..controls (3.724952,-0.262892) and (3.744639,-0.280892)
- ..(3.744639,-0.302892)
- ..controls (3.744639,-0.324892) and (3.724952,-0.342892)
- ..(3.700889,-0.342892)
- ..controls (3.676827,-0.342892) and (3.657139,-0.336142)
- ..(3.657139,-0.327892)
- ..controls (3.657139,-0.319642) and (3.676827,-0.312892)
- ..(3.700889,-0.312892)
- ..controls (3.724952,-0.312892) and (3.744639,-0.330892)
- ..(3.744639,-0.352892)
- ..controls (3.744639,-0.374892) and (3.724952,-0.392892)
- ..(3.700889,-0.392892)
- ..controls (3.676827,-0.392892) and (3.657139,-0.386142)
- ..(3.657139,-0.377892)
- ..controls (3.657139,-0.369642) and (3.676827,-0.362892)
- ..(3.700889,-0.362892)
- ..controls (3.724952,-0.362892) and (3.744639,-0.377517)
- ..(3.744639,-0.395392)
- ..controls (3.744639,-0.413267) and (3.716514,-0.427892)
- ..(3.682139,-0.427892)\dpicstop
-\dpicdraw[line width=0.4bp](3.682139,-0.427892) circle (0.00109in)\dpicstop
-\dpicdraw (3.682139,-0.427892)
- --(3.682139,-0.459142)\dpicstop
-\dpicdraw (3.869639,-0.459142)
- --(3.869639,-0.302892)\dpicstop
-\dpicdraw[line width=0.4bp](3.869639,-0.302892) circle (0.00109in)\dpicstop
-\dpicdraw (3.869639,-0.302892)
- ..controls (3.835264,-0.302892) and (3.807139,-0.288267)
- ..(3.807139,-0.270392)
- ..controls (3.807139,-0.252517) and (3.826827,-0.237892)
- ..(3.850889,-0.237892)
- ..controls (3.874952,-0.237892) and (3.894639,-0.244642)
- ..(3.894639,-0.252892)
- ..controls (3.894639,-0.261142) and (3.874952,-0.267892)
- ..(3.850889,-0.267892)
- ..controls (3.826827,-0.267892) and (3.807139,-0.249892)
- ..(3.807139,-0.227892)
- ..controls (3.807139,-0.205892) and (3.826827,-0.187892)
- ..(3.850889,-0.187892)
- ..controls (3.874952,-0.187892) and (3.894639,-0.194642)
- ..(3.894639,-0.202892)
- ..controls (3.894639,-0.211142) and (3.874952,-0.217892)
- ..(3.850889,-0.217892)
- ..controls (3.826827,-0.217892) and (3.807139,-0.199892)
- ..(3.807139,-0.177892)
- ..controls (3.807139,-0.155892) and (3.826827,-0.137892)
- ..(3.850889,-0.137892)
- ..controls (3.874952,-0.137892) and (3.894639,-0.144642)
- ..(3.894639,-0.152892)
- ..controls (3.894639,-0.161142) and (3.874952,-0.167892)
- ..(3.850889,-0.167892)
- ..controls (3.826827,-0.167892) and (3.807139,-0.149892)
- ..(3.807139,-0.127892)
- ..controls (3.807139,-0.105892) and (3.826827,-0.087892)
- ..(3.850889,-0.087892)
- ..controls (3.874952,-0.087892) and (3.894639,-0.094642)
- ..(3.894639,-0.102892)
- ..controls (3.894639,-0.111142) and (3.874952,-0.117892)
- ..(3.850889,-0.117892)
- ..controls (3.826827,-0.117892) and (3.807139,-0.103267)
- ..(3.807139,-0.085392)
- ..controls (3.807139,-0.067517) and (3.835264,-0.052892)
- ..(3.869639,-0.052892)\dpicstop
-\dpicdraw[line width=0.4bp](3.869639,-0.052892) circle (0.00109in)\dpicstop
-\dpicdraw (3.869639,-0.052892)
- --(3.869639,0.103358)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](3.602818,0.127627)
- --(3.670274,0.110477)
- --(3.623398,0.161926) --cycle\dpicstop
-\dpicdraw (3.653695,0.120424)
- --(3.574004,0.168239)\dpicstop
-\draw (3.574004,0.168239) node[left=-2bp]{\sl P1};
-\filldraw[line width=0bp](3.623398,-0.517711)
- --(3.670274,-0.466261)
- --(3.602818,-0.483411) --cycle\dpicstop
-\dpicdraw (3.653695,-0.476209)
- --(3.574004,-0.524023)\dpicstop
-\draw (3.574004,-0.524023) node[left=-2bp]{\sl P2};
-\filldraw[line width=0bp](3.601636,-0.197892)
- --(3.668302,-0.177892)
- --(3.601636,-0.157892) --cycle\dpicstop
-\dpicdraw (3.648968,-0.177892)
- --(3.575976,-0.177892)\dpicstop
-\draw (3.575976,-0.177892) node[left=-2bp]{\sl TP};
-\filldraw[line width=0bp](3.928381,0.161926)
- --(3.881504,0.110477)
- --(3.94896,0.127627) --cycle\dpicstop
-\dpicdraw (3.898083,0.120424)
- --(3.977774,0.168239)\dpicstop
-\draw (3.977774,0.168239) node[right=-2bp]{\sl S1};
-\filldraw[line width=0bp](3.94896,-0.483411)
- --(3.881504,-0.466261)
- --(3.928381,-0.517711) --cycle\dpicstop
-\dpicdraw (3.898083,-0.476209)
- --(3.977774,-0.524023)\dpicstop
-\draw (3.977774,-0.524023) node[right=-2bp]{\sl S2};
-\filldraw[line width=0bp](3.950143,-0.157892)
- --(3.883476,-0.177892)
- --(3.950143,-0.197892) --cycle\dpicstop
-\dpicdraw (3.90281,-0.177892)
- --(3.975802,-0.177892)\dpicstop
-\draw (3.975802,-0.177892) node[right=-2bp]{\sl TS};
-\draw (3.775889,-0.759142) node{\tt ...(,,9,AL)};
-\dpiclw=0.8bp
-\dpicdraw (5.127971,-0.454458)
- --(5.127971,-0.454458)\dpicstop
-\dpicdraw[line width=0.4bp](5.127971,-0.454458) circle (0.00109in)\dpicstop
-\dpicdraw (5.127971,-0.454458)
- ..controls (5.090399,-0.471978) and (5.049052,-0.438794)
- ..(5.058025,-0.39832)
- ..controls (5.066998,-0.357847) and (5.118495,-0.345246)
- ..(5.145142,-0.377003)\dpicstop
-\dpicdraw[line width=0.4bp](5.145142,-0.377003) circle (0.00109in)\dpicstop
-\dpicdraw (5.145142,-0.377003)
- ..controls (5.115136,-0.412762) and (5.05684,-0.391544)
- ..(5.05684,-0.344864)
- ..controls (5.05684,-0.298183) and (5.115136,-0.276965)
- ..(5.145142,-0.312724)\dpicstop
-\dpicdraw[line width=0.4bp](5.145142,-0.312724) circle (0.00109in)\dpicstop
-\dpicdraw (5.145142,-0.312724)
- ..controls (5.115136,-0.348484) and (5.05684,-0.327265)
- ..(5.05684,-0.280585)
- ..controls (5.05684,-0.233904) and (5.115136,-0.212686)
- ..(5.145142,-0.248445)\dpicstop
-\dpicdraw[line width=0.4bp](5.145142,-0.248445) circle (0.00109in)\dpicstop
-\dpicdraw (5.145142,-0.248445)
- ..controls (5.115136,-0.284205) and (5.05684,-0.262987)
- ..(5.05684,-0.216306)
- ..controls (5.05684,-0.169626) and (5.115136,-0.148407)
- ..(5.145142,-0.184167)\dpicstop
-\dpicdraw[line width=0.4bp](5.145142,-0.184167) circle (0.00109in)\dpicstop
-\dpicdraw (5.145142,-0.184167)
- ..controls (5.115136,-0.219926) and (5.05684,-0.198708)
- ..(5.05684,-0.152027)
- ..controls (5.05684,-0.105347) and (5.115136,-0.084129)
- ..(5.145142,-0.119888)\dpicstop
-\dpicdraw[line width=0.4bp](5.145142,-0.119888) circle (0.00109in)\dpicstop
-\dpicdraw (5.145142,-0.119888)
- ..controls (5.115136,-0.155647) and (5.05684,-0.134429)
- ..(5.05684,-0.087749)
- ..controls (5.05684,-0.041068) and (5.115136,-0.01985)
- ..(5.145142,-0.055609)\dpicstop
-\dpicdraw[line width=0.4bp](5.145142,-0.055609) circle (0.00109in)\dpicstop
-\dpicdraw (5.145142,-0.055609)
- ..controls (5.115136,-0.091368) and (5.05684,-0.07015)
- ..(5.05684,-0.02347)
- ..controls (5.05684,0.023211) and (5.115136,0.044429)
- ..(5.145142,0.00867)\dpicstop
-\dpicdraw[line width=0.4bp](5.145142,0.00867) circle (0.00109in)\dpicstop
-\dpicdraw (5.145142,0.00867)
- ..controls (5.118495,-0.023088) and (5.066998,-0.010486)
- ..(5.058025,0.029987)
- ..controls (5.049052,0.07046) and (5.090399,0.103644)
- ..(5.127971,0.086124)\dpicstop
-\dpicdraw[line width=0.4bp](5.127971,0.086124) circle (0.00109in)\dpicstop
-\dpicdraw (5.127971,0.086124)
- --(5.127971,0.086124)\dpicstop
-\dpicdraw (4.914578,0.086124)
- --(4.914578,-0.042433)\dpicstop
-\dpicdraw[line width=0.4bp](4.914578,-0.042433) circle (0.00109in)\dpicstop
-\dpicdraw (4.914578,-0.042433)
- ..controls (4.95215,-0.024913) and (4.993496,-0.058097)
- ..(4.984524,-0.098571)
- ..controls (4.975551,-0.139044) and (4.924054,-0.151645)
- ..(4.897407,-0.119888)\dpicstop
-\dpicdraw[line width=0.4bp](4.897407,-0.119888) circle (0.00109in)\dpicstop
-\dpicdraw (4.897407,-0.119888)
- ..controls (4.927412,-0.084129) and (4.985709,-0.105347)
- ..(4.985709,-0.152027)
- ..controls (4.985709,-0.198708) and (4.927412,-0.219926)
- ..(4.897407,-0.184167)\dpicstop
-\dpicdraw[line width=0.4bp](4.897407,-0.184167) circle (0.00109in)\dpicstop
-\dpicdraw (4.897407,-0.184167)
- ..controls (4.927412,-0.148407) and (4.985709,-0.169626)
- ..(4.985709,-0.216306)
- ..controls (4.985709,-0.262987) and (4.927412,-0.284205)
- ..(4.897407,-0.248445)\dpicstop
-\dpicdraw[line width=0.4bp](4.897407,-0.248445) circle (0.00109in)\dpicstop
-\dpicdraw (4.897407,-0.248445)
- ..controls (4.924054,-0.216688) and (4.975551,-0.22929)
- ..(4.984524,-0.269763)
- ..controls (4.993496,-0.310236) and (4.95215,-0.34342)
- ..(4.914578,-0.3259)\dpicstop
-\dpicdraw[line width=0.4bp](4.914578,-0.3259) circle (0.00109in)\dpicstop
-\dpicdraw (4.914578,-0.3259)
- --(4.914578,-0.454458)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](5.186712,0.144693)
- --(5.139836,0.093243)
- --(5.207292,0.110393) --cycle\dpicstop
-\dpicdraw (5.156415,0.103191)
- --(5.236106,0.151005)\dpicstop
-\draw (5.236106,0.151005) node[right=-2bp]{\sl P1};
-\filldraw[line width=0bp](5.207292,-0.478727)
- --(5.139836,-0.461577)
- --(5.186712,-0.513026) --cycle\dpicstop
-\dpicdraw (5.156415,-0.471524)
- --(5.236106,-0.519339)\dpicstop
-\draw (5.236106,-0.519339) node[right=-2bp]{\sl P2};
-\filldraw[line width=0bp](5.208474,-0.164167)
- --(5.141808,-0.184167)
- --(5.208474,-0.204167) --cycle\dpicstop
-\dpicdraw (5.161142,-0.184167)
- --(5.234134,-0.184167)\dpicstop
-\draw (5.234134,-0.184167) node[right=-2bp]{\sl TP};
-\filldraw[line width=0bp](4.835257,0.110393)
- --(4.902713,0.093243)
- --(4.855837,0.144693) --cycle\dpicstop
-\dpicdraw (4.886134,0.103191)
- --(4.806443,0.151005)\dpicstop
-\draw (4.806443,0.151005) node[left=-2bp]{\sl S1};
-\filldraw[line width=0bp](4.855837,-0.513026)
- --(4.902713,-0.461577)
- --(4.835257,-0.478727) --cycle\dpicstop
-\dpicdraw (4.886134,-0.471524)
- --(4.806443,-0.519339)\dpicstop
-\draw (4.806443,-0.519339) node[left=-2bp]{\sl S2};
-\filldraw[line width=0bp](4.834074,-0.204167)
- --(4.900741,-0.184167)
- --(4.834074,-0.164167) --cycle\dpicstop
-\dpicdraw (4.881407,-0.184167)
- --(4.808415,-0.184167)\dpicstop
-\draw (4.808415,-0.184167) node[left=-2bp]{\sl TS};
-\draw (5.021274,-0.759142) node{\tt ...(,R,8,AW)};
-\dpiclw=0.8bp
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/body.tex b/graphics/circuit_macros/doc/body.tex
index dc0738769f..934e7813d7 100644
--- a/graphics/circuit_macros/doc/body.tex
+++ b/graphics/circuit_macros/doc/body.tex
@@ -61,19 +61,20 @@ other diagrams in \latex and web documents.
The diagrams are defined in the simple \pic drawing language~\cite{KRpic}
augmented with \Mfour macros~\cite{KRm4}, and are
processed by \Mfour and a \pic processor to
-convert them to \TPGF, \PSTricks, other \latex-compatible code, or \SVG.
-In its basic form, the method has the advantages and disadvantages of
+convert them to \TPGF, \PSTricks, other \latex-compatible code, \SVG,
+or other formats.
+In its basic usage, the method has the advantages and disadvantages of
\tex itself, since it is macro-based and non-WYSIWYG,
with ordinary text input. The book from which the above quotation
is taken correctly points out that the payoff can be in quality of
-diagrams at the price of the time spent in learning how to draw them.
+diagrams at the price of the time spent in drawing them.
A collection of basic components, most based on IEC and IEEE
standards~\cite{IECstd,IEEEstd},
and conventions for their internal
structure are described. Macros such as these are only a starting
point, since it is often convenient to customize elements or to package
-combinations of them for particular drawings,
+combinations of them for particular drawings or contexts,
a process for which \Mfour\ and \pic\ are well suited.
\xection{Using the macros\label{Using:}}
@@ -205,7 +206,7 @@ produce {\sl file}{\tt.ps},
which can be printed or viewed using {\tt gsview}, for example.
For \TPGF,
Invoking PDFlatex on the source produces {\tt .pdf} output directly.
-The essential line is \verb|\input quick| whether or not the figure
+The essential line is \verb|\input quick| whether or not the {\tt figure}
environment is used.
The effect of the \Mfour command above is shown in \FR{ConfigA}.
@@ -255,10 +256,12 @@ The macros can be processed by \latex-specific
project software and by graphic applications such as
Pycirkuit~\cite{Mas2019}.
% Cirkuit~\cite{KDEApps2009}.
-Alternatively when many files are to be processed, a facility such as
-Unix ``make,'' which is also available in PC and Mac versions, can be employed
-to automate the required commands. On systems without such
-facilities, a scripting language can be used.
+Alternatively when many files are to be processed,
+% a facility such as
+Unix ``make,'' which is also available in PC and Mac versions,
+%can be employed to automate the required commands.
+is a simple and powerful tool for automating the required commands.
+On systems without such facilities, a scripting language can be used.
\item
The \Mfour commands illustrated above can be shortened to
@@ -445,8 +448,11 @@ a more complete manual~\cite{Raymond95} can be found in the GNU \groff\
package, and both are available on the web~\cite{KRpic,Raymond95}. Reading
either will give you competence with \pic in an hour or two. Explicit mention
of {\tt *roff} string and font constructs in these manuals should be replaced by
-their equivalents in the \latex context. A man-page language summary is
-appended to the \dpic manual~\cite{Aplevich2011}.
+their equivalents in the \latex context.
+%A man-page language summary is
+%appended to the \dpic manual~\cite{Aplevich2022}.
+The \dpic manual~\cite{Aplevich2022} includes a man-page lanuage
+summary in an appendix.
A web search will yield good discussions of ``little languages'';
for \pic in particular, see Chapter~9 of~\cite{Bentley88}.
@@ -1037,7 +1043,8 @@ and switches with numerous controls in \FR{Switches}.
and other macros.
\begin{figure}[h!t]
\input EmarrowsMan
- \caption{Radiation arrows: {\tt em\_arrows({\sl type, angle, length})}}
+ \caption{Radiation arrows: {\tt em\_arrows({\sl type}|{\sl keys,%
+ angle, length})}}
\label{Emarrows}
\end{figure}
The arrow stems are named {\sl A1}, {\sl A2},
@@ -2531,6 +2538,11 @@ There are at least three kinds of graphical elements to be considered:
{\tt scale} at the beginning of the diagram.
To change default sizes, redefine the appropriate parameters explicitly.
+\item \Dpic\ implements a {\tt scaled} attribute for objects, so you can
+ enclose the entire diagram (or part of it) in {\tt [ ]} brackets, thus:
+ {\tt [} \ldots {\sl drawing commands} {\tt ] scaled} $x$ where $x$ is a
+ scale factor.
+
\item The {\tt .PS} line can be used to scale the entire drawing, regardless
of its interior. Thus, for example, the line {\tt.PS 100/25.4}
scales the entire drawing to a width of 100$\,$mm.
diff --git a/graphics/circuit_macros/doc/defines.tex b/graphics/circuit_macros/doc/defines.tex
index 7ac3cbaed4..c2b800e509 100644
--- a/graphics/circuit_macros/doc/defines.tex
+++ b/graphics/circuit_macros/doc/defines.tex
@@ -442,9 +442,11 @@
{\sl phase} )}
{gen}
{function $a\times\cos(\omega t + \phi)$ }
-\macrodef{cross}{cross}{(at {\sl location})}
+\macrodef{cross}{cross}{(at {\sl location, size}|{\sl keys})}
{gen}
- {plots a small cross}
+ {Plots a small cross. The possible key-value pairs are:
+ {\tt size={\sl expr};},
+ {\tt line={\sl attributes};} }
\macrodef{cross3D}{cross3D}{({\sl x1,y1,z1,x2,y2,z2})}
{3D}
{cross product of two triples}
@@ -693,9 +695,12 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
%\macrodef{dnm\_}{dnm_}{}
% {cct}
% {similar to dna\_}
-\macrodef{dot}{dot}{(at {\sl location},{\sl radius},{\sl fill})}
+\macrodef{dot}{dot}{(at {\sl location},{\sl radius}|{\sl keys},{\sl fill})}
{gen}
- {filled circle (third arg= gray value: 0=black, 1=white)}
+ {Filled circle (third arg= gray value: 0=black, 1=white). The possible
+ key-value pairs are:
+ {\tt rad={\sl expr};} and
+ {\tt circle={\sl attributes};} }
\macrodef{dot3D}{dot3D}{({\sl x1,y1,z1,x2,y2,z2})}
{3D}
{dot product of two triples}
@@ -792,10 +797,15 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{elen\_}{elen_}{}
{cct}
{default element length}
-\macrodef{em\_arrows}{em_arrows}{([N|I|E][D],{\sl angle,length})}
- {cct}
- {radiation arrows, N=nonionizing, I=ionizing, E=simple;
- D=dot\seesect{Twoterminal:}}
+\macrodef{em\_arrows}{em_arrows}{({\sl type}|{\sl keys,angle,length})}
+ {cct}
+ { Radiation arrows: {\sl type} {\tt N|I|E [D|T]}
+ {\tt N}=nonionizing, {\tt I}=ionizing, {\tt E}=simple;
+ {\tt D}=dot on arrow stem; {\tt T}=anchor tail;
+ {\sl keys:} {\tt type=}{\sl chars} as above;
+ {\tt lgth}={\sl expr};
+ {\tt sep}={\sl expr}; arrow separation
+ {\tt angle}={\sl degrees}; absolute direction\seesect{Twoterminal:}}
\macrodef{endshade}{endshade}{}
{gen}
{end gray shading, see {\tt beginshade}}
@@ -1863,7 +1873,9 @@ justification})}
with text label and a size-adjustment parameter }
\macrodef{shade}{shade}{({\sl gray value},{\sl closed line specs})}
{gen}
- {Fill arbitrary closed curve}
+ {Fill arbitrary closed curve. Note: when producing pdf via pdflatex, line
+ thickness changes within this macro must be made via the {\tt linethick}
+ environment variable rather than by the {\tt thickness} line attribute}
\macrodef{shadebox}{shadebox}{(box {\sl attributes, shade width})}
{gen}
{Box with edge shading. Arg2 is in points. See also {\tt shaded} }
diff --git a/graphics/circuit_macros/doc/fet.tex b/graphics/circuit_macros/doc/fet.tex
deleted file mode 100644
index 7fbd593d5a..0000000000
--- a/graphics/circuit_macros/doc/fet.tex
+++ /dev/null
@@ -1,513 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0,-0.175)
- --(0.15,-0.175)
- --(0.15,-0.16393)\dpicstop
-\dpicdraw (0.5,-0.175)
- --(0.35,-0.175)
- --(0.35,-0.16393)\dpicstop
-\dpicdraw (0.35,-0.175)
- --(0.35,0)\dpicstop
-\dpicdraw (0.125,0)
- --(0.375,0)\dpicstop
-\filldraw[line width=0bp](0.122222,0.083333)
- --(0.15,0)
- --(0.177778,0.083333) --cycle\dpicstop
-\dpicdraw (0.15,0.175)
- --(0.15,0.017568)\dpicstop
-\dpicdraw (0.15,-0.175)
- --(0.15,0)\dpicstop
-\dpicdraw (0.25,0) circle (0.07874in)\dpicstop
-\draw (0.875,-0.5) node{{\tt j\_fet(right\_ dimen\_,{,},E)}};
-\draw (0.15,0.175) node[above left=-2bp]{$G$};
-\draw (0,-0.175) node[left=-2bp]{$S$};
-\draw (0.5,-0.175) node[right=-2bp]{$D$};
-\dpicdraw (1.127778,-0.175)
- --(1.127778,0)\dpicstop
-\dpicdraw (0.902778,0)
- --(1.152778,0)\dpicstop
-\dpicdraw (0.927778,0)
- --(0.927778,0.175)\dpicstop
-\filldraw[line width=0bp](0.955556,0.066667)
- --(0.927778,0.15)
- --(0.9,0.066667) --cycle\dpicstop
-\dpicdraw (0.927778,0.066667)
- --(0.927778,0.132432)\dpicstop
-\dpicdraw (0.927778,-0.175)
- --(0.927778,0)\dpicstop
-\draw (1.026389,-0.225) node[below=-2bp]{{\tt j\_fet(,{,}P,)}};
-\draw (0.927778,0.175) node[left=-2bp]{$G$};
-\draw (0.927778,-0.175) node[left=-2bp]{$S$};
-\draw (1.127778,-0.175) node[right=-2bp]{$D$};
-\dpicdraw (1.925,0.175)
- --(1.925,0)\dpicstop
-\filldraw[line width=0bp](1.897222,0.129167)
- --(1.925,0.045833)
- --(1.952778,0.129167) --cycle\dpicstop
-\dpicdraw (1.925,0.129167)
- --(1.925,0.063402)\dpicstop
-\dpicdraw (2.025,0.175)
- --(2.025,0)\dpicstop
-\dpicdraw (1.8,0)
- --(1.875,0)\dpicstop
-\dpicdraw (1.9,0)
- --(1.95,0)\dpicstop
-\dpicdraw (1.975,0)
- --(2.05,0)\dpicstop
-\dpicdraw (2.025,-0.05)
- --(1.825,-0.05)
- --(1.825,-0.175)\dpicstop
-\dpicdraw (1.925,0.16393)
- --(1.925,0.175)
- --(1.825,0.175)
- --(1.825,0.16393)\dpicstop
-\dpicdraw (1.825,0.175)
- --(1.825,0)\dpicstop
-\draw (1.925,-0.225) node[below=-2bp]{{\tt e\_fet(,R,{,})}};
-\draw (1.825,-0.175) node[left=-2bp]{$G$};
-\draw (1.825,0.175) node[left=-2bp]{$S$};
-\draw (2.025,0.175) node[right=-2bp]{$D$};
-\dpicdraw (1.925,-1.175)
- --(1.925,-1)\dpicstop
-\filldraw[line width=0bp](1.897222,-1.045833)
- --(1.925,-1.129167)
- --(1.952778,-1.045833) --cycle\dpicstop
-\dpicdraw (1.925,-1.111598)
- --(1.925,-1.045833)\dpicstop
-\dpicdraw (2.025,-1.175)
- --(2.025,-1)\dpicstop
-\dpicdraw (1.8,-1)
- --(1.875,-1)\dpicstop
-\dpicdraw (1.9,-1)
- --(1.95,-1)\dpicstop
-\dpicdraw (1.975,-1)
- --(2.05,-1)\dpicstop
-\dpicdraw (2.025,-0.95)
- --(1.825,-0.95)
- --(1.825,-0.825)\dpicstop
-\dpicdraw (1.925,-1.16393)
- --(1.925,-1.175)
- --(1.825,-1.175)
- --(1.825,-1.16393)\dpicstop
-\dpicdraw (1.825,-1.175)
- --(1.825,-1)\dpicstop
-\draw (2.025,-1.375) node[below=-2bp]{{\tt e\_fet(,{,}P)}};
-\dpicdraw (2.825,-0.175)
- --(2.825,0)\dpicstop
-\filldraw[line width=0bp](2.852778,-0.129167)
- --(2.825,-0.045833)
- --(2.797222,-0.129167) --cycle\dpicstop
-\dpicdraw (2.825,-0.129167)
- --(2.825,-0.063402)\dpicstop
-\dpicdraw (2.925,-0.175)
- --(2.925,0)\dpicstop
-\dpicdraw (2.7,0)
- --(2.95,0)\dpicstop
-\dpicdraw (2.925,0.05)
- --(2.725,0.05)
- --(2.725,0.175)\dpicstop
-\dpicdraw (2.825,-0.16393)
- --(2.825,-0.175)
- --(2.725,-0.175)
- --(2.725,-0.16393)\dpicstop
-\dpicdraw (2.725,-0.175)
- --(2.725,0)\dpicstop
-\draw (2.825,-0.225) node[below=-2bp]{{\tt d\_fet(,{,},)}};
-\dpicdraw (2.825,-1.175)
- --(2.825,-1)\dpicstop
-\filldraw[line width=0bp](2.797222,-1.045833)
- --(2.825,-1.129167)
- --(2.852778,-1.045833) --cycle\dpicstop
-\dpicdraw (2.825,-1.111598)
- --(2.825,-1.045833)\dpicstop
-\dpicdraw (2.925,-1.175)
- --(2.925,-1)\dpicstop
-\dpicdraw (2.7,-1)
- --(2.95,-1)\dpicstop
-\dpicdraw (2.925,-0.95)
- --(2.725,-0.95)
- --(2.725,-0.825)\dpicstop
-\dpicdraw (2.825,-1.16393)
- --(2.825,-1.175)
- --(2.725,-1.175)
- --(2.725,-1.16393)\dpicstop
-\dpicdraw (2.725,-1.175)
- --(2.725,-1)\dpicstop
-\draw (2.825,-1.225) node[below=-2bp]{{\tt d\_fet(,{,}P)}};
-\dpicdraw (3.827778,-0.1875)
- --(3.827778,-0.0125)\dpicstop
-\dpicdraw (3.602778,-0.0125)
- --(3.852778,-0.0125)\dpicstop
-\dpicdraw (3.627778,-0.1875)
- --(3.627778,-0.0125)\dpicstop
-\filldraw[line width=0bp](3.6,-0.058333)
- --(3.627778,-0.141667)
- --(3.655556,-0.058333) --cycle\dpicstop
-\dpicdraw (3.627778,-0.124098)
- --(3.627778,-0.058333)\dpicstop
-\dpicdraw (3.627778,0.0375)
- --(3.827778,0.0375)\dpicstop
-\dpicdraw (3.727778,0.0375)
- --(3.727778,0.1875)\dpicstop
-\draw (3.726389,-0.2375) node[below=-2bp]{{\tt e\_fet(,{,},S)}};
-\dpicdraw (3.827778,-1.1875)
- --(3.827778,-1.0125)\dpicstop
-\dpicdraw (3.602778,-1.0125)
- --(3.852778,-1.0125)\dpicstop
-\dpicdraw (3.627778,-1.1875)
- --(3.627778,-1.0125)\dpicstop
-\filldraw[line width=0bp](3.655556,-1.141667)
- --(3.627778,-1.058333)
- --(3.6,-1.141667) --cycle\dpicstop
-\dpicdraw (3.627778,-1.141667)
- --(3.627778,-1.075902)\dpicstop
-\dpicdraw (3.627778,-0.9625)
- --(3.827778,-0.9625)\dpicstop
-\dpicdraw (3.727778,-0.9625)
- --(3.727778,-0.8125)\dpicstop
-\draw (3.726389,-1.3875) node[below=-2bp]{{\tt e\_fet(,{,}P,S)}};
-\dpicdraw (4.727778,-0.1875)
- --(4.727778,-0.0125)\dpicstop
-\dpicdraw (4.502778,-0.0125)
- --(4.752778,-0.0125)\dpicstop
-\dpicdraw[line width=1.6bp](4.527778,-0.029104)
- --(4.727778,-0.029104)\dpicstop
-\dpicdraw (4.527778,-0.1875)
- --(4.527778,-0.0125)\dpicstop
-\filldraw[line width=0bp](4.5,-0.058333)
- --(4.527778,-0.141667)
- --(4.555556,-0.058333) --cycle\dpicstop
-\dpicdraw (4.527778,-0.124098)
- --(4.527778,-0.058333)\dpicstop
-\dpicdraw (4.527778,0.0375)
- --(4.727778,0.0375)\dpicstop
-\dpicdraw (4.627778,0.0375)
- --(4.627778,0.1875)\dpicstop
-\draw (4.626389,-0.3875) node[below=-2bp]{{\tt d\_fet(,{,},S)}};
-\dpicdraw (4.727778,-1.1875)
- --(4.727778,-1.0125)\dpicstop
-\dpicdraw (4.502778,-1.0125)
- --(4.752778,-1.0125)\dpicstop
-\dpicdraw[line width=1.6bp](4.527778,-1.029104)
- --(4.727778,-1.029104)\dpicstop
-\dpicdraw (4.527778,-1.1875)
- --(4.527778,-1.0125)\dpicstop
-\filldraw[line width=0bp](4.555556,-1.141667)
- --(4.527778,-1.058333)
- --(4.5,-1.141667) --cycle\dpicstop
-\dpicdraw (4.527778,-1.141667)
- --(4.527778,-1.075902)\dpicstop
-\dpicdraw (4.527778,-0.9625)
- --(4.727778,-0.9625)\dpicstop
-\dpicdraw (4.627778,-0.9625)
- --(4.627778,-0.8125)\dpicstop
-\draw (4.626389,-1.2375) node[below=-2bp]{{\tt d\_fet(,{,}P,S)}};
-\dpicdraw (5.6,-0.1625)
- --(5.6,-0.0375)\dpicstop
-\dpicdraw (5.4,-0.0375)
- --(5.6,-0.0375)\dpicstop
-\dpicdraw (5.4,-0.1625)
- --(5.4,-0.0375)\dpicstop
-\dpicdraw (5.4,0.0125)
- --(5.6,0.0125)\dpicstop
-\dpicdraw (5.5,0.0125)
- --(5.5,0.1625)\dpicstop
-\draw (5.5,-0.2125) node[below=-2bp]{{\tt c\_fet(,{,},)}};
-\dpicdraw (5.6,-1.1625)
- --(5.6,-1.0375)\dpicstop
-\dpicdraw (5.4,-1.0375)
- --(5.6,-1.0375)\dpicstop
-\dpicdraw (5.4,-1.1625)
- --(5.4,-1.0375)\dpicstop
-\dpicdraw (5.4,-0.9875)
- --(5.6,-0.9875)\dpicstop
-\dpicdraw (5.5,-0.954167) circle (0.013123in)\dpicstop
-\dpicdraw (5.5,-0.920833)
- --(5.5,-0.8375)\dpicstop
-\draw (5.5,-1.3625) node[below=-2bp]{{\tt c\_fet(,{,}P)}};
-\dpicdraw (0.473333,-2.127778)
- --(0.473333,-1.917778)\dpicstop
-\dpicdraw (0.203333,-1.917778)
- --(0.503333,-1.917778)\dpicstop
-\filldraw[line width=0bp](0.2,-1.817778)
- --(0.233333,-1.917778)
- --(0.266667,-1.817778) --cycle\dpicstop
-\dpicdraw (0.233333,-1.707778)
- --(0.233333,-1.90021)\dpicstop
-\dpicdraw (0.233333,-2.127778)
- --(0.233333,-1.917778)\dpicstop
-\draw (0.625,-2.227778) node{\tt mosfet(,{,}dGSDF,)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](0.176412,-1.797833)
- --(0.233333,-1.757778)
- --(0.163763,-1.759886) --cycle\dpicstop
-\dpicdraw (0.214992,-1.763892)
- --(0.083333,-1.807778)\dpicstop
-\draw (0.083333,-1.807778) node[left=-2bp]{\tt dG};
-\filldraw[line width=0bp](0.296412,-1.957833)
- --(0.353333,-1.917778)
- --(0.283763,-1.919886) --cycle\dpicstop
-\dpicdraw (0.334992,-1.923892)
- --(0.053333,-2.017778)\dpicstop
-\draw (0.053333,-2.017778) node[left=-2bp]{\tt F};
-\filldraw[line width=0bp](0.176412,-2.117833)
- --(0.233333,-2.077778)
- --(0.163763,-2.079886) --cycle\dpicstop
-\dpicdraw (0.214992,-2.083892)
- --(0.083333,-2.127778)\dpicstop
-\draw (0.083333,-2.127778) node[left=-2bp]{\tt S};
-\filldraw[line width=0bp](0.542903,-2.079886)
- --(0.473333,-2.077778)
- --(0.530254,-2.117833) --cycle\dpicstop
-\dpicdraw (0.491675,-2.083892)
- --(0.623333,-2.127778)\dpicstop
-\draw (0.623333,-2.127778) node[right=-2bp]{\tt D};
-\dpiclw=0.8bp
-\dpicdraw (1.523333,-2.142778)
- --(1.523333,-1.932778)\dpicstop
-\dpicdraw (1.253333,-1.932778)
- --(1.553333,-1.932778)\dpicstop
-\dpicdraw (1.403333,-1.932778)
- --(1.403333,-1.692778)\dpicstop
-\filldraw[line width=0bp](1.436667,-1.852778)
- --(1.403333,-1.752778)
- --(1.37,-1.852778) --cycle\dpicstop
-\dpicdraw (1.403333,-1.852778)
- --(1.403333,-1.770346)\dpicstop
-\dpicdraw (1.283333,-2.142778)
- --(1.283333,-1.932778)\dpicstop
-\draw (1.403333,-2.292778) node[below=-2bp]{\tt $\ldots$(,{,}uHSDF,)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](1.346412,-1.782833)
- --(1.403333,-1.742778)
- --(1.333763,-1.744886) --cycle\dpicstop
-\dpicdraw (1.384992,-1.748892)
- --(1.253333,-1.792778)\dpicstop
-\draw (1.253333,-1.792778) node[left=-2bp]{\tt uH};
-\dpiclw=0.8bp
-\dpicdraw (2.453333,-2.127778)
- --(2.453333,-1.917778)\dpicstop
-\filldraw[line width=0bp](2.486667,-2.072778)
- --(2.453333,-1.972778)
- --(2.42,-2.072778) --cycle\dpicstop
-\dpicdraw (2.453333,-2.072778)
- --(2.453333,-1.990346)\dpicstop
-\dpicdraw (2.573333,-2.127778)
- --(2.573333,-1.917778)\dpicstop
-\dpicdraw (2.303333,-1.917778)
- --(2.393333,-1.917778)\dpicstop
-\dpicdraw (2.423333,-1.917778)
- --(2.483333,-1.917778)\dpicstop
-\dpicdraw (2.513333,-1.917778)
- --(2.603333,-1.917778)\dpicstop
-\dpicdraw (2.573333,-1.857778)
- --(2.333333,-1.857778)
- --(2.333333,-1.707778)\dpicstop
-\dpicdraw (2.453333,-2.116708)
- --(2.453333,-2.127778)
- --(2.333333,-2.127778)
- --(2.333333,-2.116708)\dpicstop
-\dpicdraw (2.333333,-2.127778)
- --(2.333333,-1.917778)\dpicstop
-\draw (2.453333,-2.177778) node[below=-2bp]{\tt $\ldots$(,{,}dMEDSQuB,)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](2.276412,-1.797833)
- --(2.333333,-1.757778)
- --(2.263763,-1.759886) --cycle\dpicstop
-\dpicdraw (2.314992,-1.763892)
- --(2.183333,-1.807778)\dpicstop
-\draw (2.183333,-1.807778) node[left=-2bp]{\tt dM};
-\filldraw[line width=0bp](2.370115,-1.962636)
- --(2.423333,-1.917778)
- --(2.354211,-1.925934) --cycle\dpicstop
-\dpicdraw (2.405593,-1.925465)
- --(2.123333,-2.047778)\dpicstop
-\draw (2.123333,-2.047778) node[left=-2bp]{\tt E};
-\filldraw[line width=0bp](2.342649,-2.175481)
- --(2.393333,-2.127778)
- --(2.324761,-2.139703) --cycle\dpicstop
-\dpicdraw (2.376041,-2.136424)
- --(2.293333,-2.177778)\dpicstop
-\draw (2.293333,-2.177778) node[left=-2bp]{\tt Q};
-\filldraw[line width=0bp](2.522903,-1.954886)
- --(2.453333,-1.952778)
- --(2.510254,-1.992833) --cycle\dpicstop
-\dpicdraw (2.471675,-1.958892)
- --(2.693333,-2.032778)\dpicstop
-\draw (2.693333,-2.032778) node[right=-2bp]{\tt uB};
-\dpiclw=0.8bp
-\dpicdraw (3.503333,-2.127778)
- --(3.503333,-1.917778)\dpicstop
-\filldraw[line width=0bp](3.536667,-2.072778)
- --(3.503333,-1.972778)
- --(3.47,-2.072778) --cycle\dpicstop
-\dpicdraw (3.503333,-2.072778)
- --(3.503333,-1.990346)\dpicstop
-\dpicdraw (3.623333,-2.127778)
- --(3.623333,-1.917778)\dpicstop
-\dpicdraw (3.353333,-1.917778)
- --(3.443333,-1.917778)\dpicstop
-\dpicdraw (3.473333,-1.917778)
- --(3.533333,-1.917778)\dpicstop
-\dpicdraw (3.563333,-1.917778)
- --(3.653333,-1.917778)\dpicstop
-\dpicdraw (3.383333,-1.857778)
- --(3.623333,-1.857778)
- --(3.623333,-1.707778)\dpicstop
-\dpicdraw (3.383333,-2.127778)
- --(3.383333,-1.917778)\dpicstop
-\draw (3.503333,-2.277778) node[below=-2bp]{{\tt $\ldots$(,{,}uMEDSuB)}};
-\draw (3.623333,-1.707778) node[left=-2bp]{$G$};
-\draw (3.383333,-2.127778) node[left=-2bp]{$S$};
-\draw (3.623333,-2.127778) node[right=-2bp]{$D$};
-\draw (3.503333,-2.127778) node[below=-2bp]{$B$};
-\dpicdraw (4.643333,-2.112778)
- --(4.643333,-1.962778)\dpicstop
-\dpicdraw (4.403333,-1.962778)
- --(4.643333,-1.962778)\dpicstop
-\dpicdraw (4.403333,-2.112778)
- --(4.403333,-1.962778)\dpicstop
-\dpicdraw (4.403333,-1.902778)
- --(4.643333,-1.902778)\dpicstop
-\dpicdraw (4.523333,-1.862778) circle (0.015748in)\dpicstop
-\dpicdraw (4.523333,-1.822778)
- --(4.523333,-1.722778)\dpicstop
-\draw (4.523333,-2.162778) node[below=-2bp]{\tt $\ldots$(,{,}ZSDFdT,)};
-\dpiclw=0.4bp
-\filldraw[line width=0bp](4.370335,-2.05406)
- --(4.403333,-1.992778)
- --(4.342051,-2.025776) --cycle\dpicstop
-\dpicdraw (4.389662,-2.006449)
- --(4.323333,-2.072778)\dpicstop
-\draw (4.323333,-2.072778) node[left=-2bp]{\tt Z};
-\filldraw[line width=0bp](4.520367,-2.007933)
- --(4.573333,-1.962778)
- --(4.504258,-1.971321) --cycle\dpicstop
-\dpicdraw (4.323333,-2.072778)
- --(4.555637,-1.970564)\dpicstop
-\filldraw[line width=0bp](4.577324,-2.08485)
- --(4.643333,-2.062778)
- --(4.576074,-2.04487) --cycle\dpicstop
-\dpicdraw (4.323333,-2.072778)
- --(4.624009,-2.063382)\dpicstop
-\filldraw[line width=0bp](4.592903,-1.744886)
- --(4.523333,-1.742778)
- --(4.580254,-1.782833) --cycle\dpicstop
-\dpicdraw (4.541675,-1.748892)
- --(4.763333,-1.822778)\dpicstop
-\draw (4.763333,-1.822778) node[right=-2bp]{\tt dT};
-\dpiclw=0.8bp
-\dpicdraw (5.483333,-1.917778)
- --(5.273333,-1.917778)\dpicstop
-\filldraw[line width=0bp](5.328333,-1.951111)
- --(5.428333,-1.917778)
- --(5.328333,-1.884444) --cycle\dpicstop
-\dpicdraw (5.410765,-1.917778)
- --(5.328333,-1.917778)\dpicstop
-\dpicdraw (5.483333,-1.797778)
- --(5.273333,-1.797778)\dpicstop
-\dpicdraw (5.273333,-2.067778)
- --(5.273333,-1.977778)\dpicstop
-\dpicdraw (5.273333,-1.947778)
- --(5.273333,-1.887778)\dpicstop
-\dpicdraw (5.273333,-1.857778)
- --(5.273333,-1.767778)\dpicstop
-\dpicdraw (5.213333,-1.797778)
- --(5.213333,-2.037778)
- --(5.063333,-2.037778)\dpicstop
-\dpicdraw (5.603333,-1.797778)
- --(5.603333,-1.874477)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (5.603333,-1.874477)
- --(5.653333,-1.874477)
- --(5.603333,-1.955544)
- --(5.553333,-1.874477)
- --(5.603333,-1.874477)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (5.549282,-1.936079)
- --(5.549282,-1.961079)
- --(5.657385,-1.961079)
- --(5.657385,-1.986079)\dpicstop
-\dpicdraw (5.603333,-1.961079)
- --(5.603333,-2.037778)\dpicstop
-\dpicdraw (5.483333,-2.037778)
- --(5.603333,-2.037778)
- --(5.603333,-1.797778)
- --(5.483333,-1.797778)\dpicstop
-\dpicdraw (5.472264,-1.917778)
- --(5.483333,-1.917778)
- --(5.483333,-2.037778)
- --(5.472264,-2.037778)\dpicstop
-\dpicdraw (5.483333,-2.037778)
- --(5.273333,-2.037778)\dpicstop
-\dpicdraw (5.603333,-2.037778)
- --(5.603333,-2.157778)\dpicstop
-\dpicdraw (5.603333,-1.797778)
- --(5.603333,-1.677778)\dpicstop
-\dpicdraw (5.423333,-1.917778) circle (0.11811in)\dpicstop
-\draw (5.393333,-2.367778) node[below=-2bp]{\tt IRF4905};
-\draw (5.063333,-2.037778) node[left=-2bp]{$G$};
-\draw (5.603333,-1.677778) node[above right=-2bp]{$D$};
-\draw (5.603333,-2.157778) node[below right=-2bp]{$S$};
-\dpicdraw (0.2,-1.175)
- --(0.2,-1)\dpicstop
-\filldraw[line width=0bp](0.172222,-1.045833)
- --(0.2,-1.129167)
- --(0.227778,-1.045833) --cycle\dpicstop
-\dpicdraw (0.2,-1.111598)
- --(0.2,-1.045833)\dpicstop
-\dpicdraw (0.3,-1.175)
- --(0.3,-1)\dpicstop
-\dpicdraw (0.075,-1)
- --(0.325,-1)\dpicstop
-\dpicdraw (0.075,-0.843875)
- --(0.075,-0.95)
- --(0.158333,-0.95)\dpicstop
-\dpicdraw (0.241667,-0.804388)
- --(0.241667,-0.95)
- --(0.325,-0.95)\dpicstop
-\dpicdraw (0.2,-1.16393)
- --(0.2,-1.175)
- --(0.1,-1.175)
- --(0.1,-1.16393)\dpicstop
-\dpicdraw (0.1,-1.175)
- --(0.1,-1)\dpicstop
-\dpicdraw (0.2,-1) circle (0.07874in)\dpicstop
-\draw (0.075,-0.843875) node[above left=-2bp]{$G0$};
-\draw (0.241667,-0.804388) node[above right=-2bp]{$G1$};
-\draw (0.725,-1.48) node{\tt mosfet(,{,}dBSDFQM1,E)};
-\dpicdraw (1.025,-1.175)
- --(1.025,-1)\dpicstop
-\filldraw[line width=0bp](0.997222,-1.045833)
- --(1.025,-1.129167)
- --(1.052778,-1.045833) --cycle\dpicstop
-\dpicdraw (1.025,-1.111598)
- --(1.025,-1.045833)\dpicstop
-\dpicdraw (1.125,-1.175)
- --(1.125,-1)\dpicstop
-\dpicdraw (0.9,-1)
- --(1.15,-1)\dpicstop
-\dpicdraw (1.15,-0.8)
- --(1.15,-0.95)
- --(1.066667,-0.95)\dpicstop
-\dpicdraw (0.983333,-0.8)
- --(0.983333,-0.95)
- --(0.9,-0.95)\dpicstop
-\dpicdraw (1.025,-1.16393)
- --(1.025,-1.175)
- --(0.925,-1.175)
- --(0.925,-1.16393)\dpicstop
-\dpicdraw (0.925,-1.175)
- --(0.925,-1)\dpicstop
-\draw (1.15,-0.8) node[above right=-2bp]{$G0$};
-\draw (0.983333,-0.8) node[above left=-2bp]{$G1$};
-\draw (1.025,-1.275) node{\tt ...(,{,}dBSDFQuM1)};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/test.tex b/graphics/circuit_macros/doc/test.tex
deleted file mode 100644
index 44d486d0c5..0000000000
--- a/graphics/circuit_macros/doc/test.tex
+++ /dev/null
@@ -1 +0,0 @@
-\centering
diff --git a/graphics/circuit_macros/doc/thyristor.tex b/graphics/circuit_macros/doc/thyristor.tex
deleted file mode 100644
index 33b2c5261c..0000000000
--- a/graphics/circuit_macros/doc/thyristor.tex
+++ /dev/null
@@ -1,561 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (-2.38478,-0.179985)
- --(-2.38478,-0.3189)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-2.38478,-0.3189)
- --(-2.343113,-0.3189)
- --(-2.38478,-0.385534)
- --(-2.426446,-0.3189)
- --(-2.38478,-0.3189)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-2.430498,-0.391069)
- --(-2.339061,-0.391069)\dpicstop
-\dpicdraw (-2.363946,-0.391069)
- --(-2.32228,-0.463238)\dpicstop
-\dpicdraw (-2.38478,-0.391069)
- --(-2.38478,-0.529985)\dpicstop
-\draw (-2.38478,-0.179985) node[above=-2bp]{\sl A};
-\draw (-2.38478,-0.529985) node[below=-2bp]{\sl K};
-\draw (-2.32228,-0.463238) node[right=-2bp]{\sl G};
-\draw (-2.376389,-0.779985) node{\tt thyristor};
-\dpicdraw (-1.876389,-0.179985)
- --(-1.876389,-0.3189)\dpicstop
-\dpicdraw (-1.876389,-0.3189)
- --(-1.813889,-0.427154)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-1.834722,-0.3189)
- --(-1.793056,-0.3189)
- --(-1.834722,-0.385534)
- --(-1.876389,-0.3189)
- --(-1.834722,-0.3189)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-1.963774,-0.391069)
- --(-1.789004,-0.391069)\dpicstop
-\dpicdraw (-1.963774,-0.3189)
- --(-1.789004,-0.3189)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-1.918056,-0.391069)
- --(-1.876389,-0.391069)
- --(-1.918056,-0.324435)
- --(-1.959722,-0.391069)
- --(-1.918056,-0.391069)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-1.876389,-0.391069)
- --(-1.876389,-0.529985)\dpicstop
-\draw (-1.876389,-0.179985) node[above=-2bp]{\sl T1};
-\draw (-1.876389,-0.529985) node[below=-2bp]{\sl T2};
-\draw (-1.813889,-0.427154) node[below right=-2bp]{\sl G};
-\draw (-1.876389,-0.879985) node{\tt ...(,B)};
-\dpicdraw (-1.376389,-0.179985)
- --(-1.376389,-0.3439)\dpicstop
-\dpicdraw (-1.376389,-0.3439)
- --(-1.438889,-0.452154)\dpicstop
-\dpicdraw (-1.418056,-0.3439)
- --(-1.376389,-0.3439)
- --(-1.418056,-0.410534)
- --(-1.459722,-0.3439)
- --(-1.418056,-0.3439)\dpicstop
-\dpicdraw (-1.463774,-0.416069)
- --(-1.289004,-0.416069)\dpicstop
-\dpicdraw (-1.463774,-0.3439)
- --(-1.289004,-0.3439)\dpicstop
-\dpicdraw (-1.334722,-0.416069)
- --(-1.293056,-0.416069)
- --(-1.334722,-0.349435)
- --(-1.376389,-0.416069)
- --(-1.334722,-0.416069)\dpicstop
-\dpicdraw (-1.376389,-0.416069)
- --(-1.376389,-0.579985)\dpicstop
-\draw (-1.376389,-0.179985) node[above=-2bp]{\sl T1};
-\draw (-1.376389,-0.579985) node[below=-2bp]{\sl T2};
-\draw (-1.438889,-0.452154) node[below left=-2bp]{\sl G};
-\draw (-1.376389,-0.799985) node{\tt ...(,BRK)};
-\dpicdraw (-0.776389,-0.179985)
- --(-0.776389,-0.3189)\dpicstop
-\dpicdraw (-0.776389,-0.3189)
- --(-0.693056,-0.463238)
- --(-0.637945,-0.463238)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-0.734722,-0.3189)
- --(-0.693056,-0.3189)
- --(-0.734722,-0.385534)
- --(-0.776389,-0.3189)
- --(-0.734722,-0.3189)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-0.863774,-0.391069)
- --(-0.689004,-0.391069)\dpicstop
-\dpicdraw (-0.863774,-0.3189)
- --(-0.689004,-0.3189)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-0.818056,-0.391069)
- --(-0.776389,-0.391069)
- --(-0.818056,-0.324435)
- --(-0.859722,-0.391069)
- --(-0.818056,-0.391069)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-0.776389,-0.391069)
- --(-0.776389,-0.529985)\dpicstop
-\dpicdraw (-0.776389,-0.354985) circle (0.068898in)\dpicstop
-\draw (-0.776389,-0.179985) node[above=-2bp]{\sl T1};
-\draw (-0.776389,-0.529985) node[below=-2bp]{\sl T2};
-\draw (-0.637945,-0.463238) node[below right=-2bp]{\sl G};
-\draw (-0.776389,-0.879985) node{\tt ...(,BE)};
-\dpicdraw (-0.28478,-0.179985)
- --(-0.28478,-0.3189)\dpicstop
-\dpicdraw (-0.28478,-0.3189)
- --(-0.243113,-0.3189)
- --(-0.28478,-0.385534)
- --(-0.326446,-0.3189)
- --(-0.28478,-0.3189)\dpicstop
-\dpicdraw (-0.330498,-0.391069)
- --(-0.239061,-0.391069)\dpicstop
-\dpicdraw (-0.263946,-0.391069)
- --(-0.22228,-0.463238)\dpicstop
-\dpicdraw (-0.28478,-0.391069)
- --(-0.28478,-0.529985)\dpicstop
-\draw (-0.28478,-0.179985) node[above=-2bp]{\sl A};
-\draw (-0.28478,-0.529985) node[below=-2bp]{\sl K};
-\draw (-0.22228,-0.463238) node[right=-2bp]{\sl G};
-\draw (-0.276389,-0.879985) node{\tt ...(,A)};
-\dpicdraw (0.21522,-0.179985)
- --(0.21522,-0.3189)\dpicstop
-\dpicdraw (0.21522,-0.3189)
- --(0.256887,-0.3189)
- --(0.21522,-0.385534)
- --(0.21522,-0.3189)\dpicstop
-\dpicdraw (0.21522,-0.3189)
- --(0.173554,-0.3189)\dpicstop
-\dpicdraw (0.169502,-0.391069)
- --(0.260939,-0.391069)\dpicstop
-\dpicdraw (0.236054,-0.391069)
- --(0.27772,-0.463238)\dpicstop
-\dpicdraw (0.21522,-0.391069)
- --(0.21522,-0.529985)\dpicstop
-\draw (0.21522,-0.179985) node[above=-2bp]{\sl A};
-\draw (0.21522,-0.529985) node[below=-2bp]{\sl K};
-\draw (0.27772,-0.463238) node[right=-2bp]{\sl G};
-\draw (0.223611,-0.749985) node{\tt ...(,F)};
-\dpicdraw (0.873611,-0.179985)
- --(0.873611,-0.3189)\dpicstop
-\dpicdraw (0.873611,-0.3189)
- --(0.790278,-0.463238)
- --(0.735167,-0.463238)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.831944,-0.3189)
- --(0.873611,-0.3189)
- --(0.831944,-0.385534)
- --(0.790278,-0.3189)
- --(0.831944,-0.3189)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.786226,-0.391069)
- --(0.960996,-0.391069)\dpicstop
-\dpicdraw (0.786226,-0.3189)
- --(0.960996,-0.3189)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.915278,-0.391069)
- --(0.956944,-0.391069)
- --(0.915278,-0.324435)
- --(0.873611,-0.391069)
- --(0.915278,-0.391069)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.873611,-0.391069)
- --(0.873611,-0.529985)\dpicstop
-\dpicdraw (0.873611,-0.354985) circle (0.068898in)\dpicstop
-\draw (0.873611,-0.179985) node[above=-2bp]{\sl T1};
-\draw (0.873611,-0.529985) node[below=-2bp]{\sl T2};
-\draw (0.735167,-0.463238) node[below left=-2bp]{\sl G};
-\draw (0.873611,-0.879985) node{\tt ...(,BRE)};
-\dpicdraw (1.623611,-0.179985)
- --(1.623611,-0.3189)\dpicstop
-\dpicdraw (1.623611,-0.3189)
- --(1.665278,-0.3189)
- --(1.623611,-0.385534)
- --(1.581944,-0.3189)
- --(1.623611,-0.3189)\dpicstop
-\dpicdraw (1.623611,-0.3189)
- --(1.623611,-0.391069)\dpicstop
-\dpicdraw (1.577893,-0.391069)
- --(1.66933,-0.391069)\dpicstop
-\dpicdraw (1.602778,-0.391069)
- --(1.561111,-0.463238)
- --(1.486111,-0.463238)\dpicstop
-\dpicdraw (1.623611,-0.391069)
- --(1.623611,-0.529985)\dpicstop
-\dpicdraw (1.623611,-0.354985) circle (0.068898in)\dpicstop
-\draw (1.623611,-0.179985) node[above=-2bp]{\sl A};
-\draw (1.623611,-0.529985) node[below=-2bp]{\sl K};
-\draw (1.486111,-0.463238) node[below left=-2bp]{\sl G};
-\draw (1.623611,-0.749985) node{\tt ...(,UARE)};
-\dpicdraw (2.123611,-0.179985)
- --(2.123611,-0.3189)\dpicstop
-\dpicdraw (2.123611,-0.3189)
- --(2.165278,-0.3189)
- --(2.123611,-0.385534)
- --(2.081944,-0.3189)
- --(2.123611,-0.3189)\dpicstop
-\dpicdraw (2.077893,-0.354985)
- --(2.16933,-0.354985)\dpicstop
-\dpicdraw (2.077893,-0.391069)
- --(2.16933,-0.391069)\dpicstop
-\dpicdraw (2.123611,-0.391069)
- --(2.123611,-0.529985)\dpicstop
-\dpiclw=0.4bp
-\filldraw[line width=0bp](2.135537,-0.286412)
- --(2.123611,-0.354985)
- --(2.171314,-0.304301) --cycle\dpicstop
-\dpicdraw (2.223611,-0.254985)
- --(2.198611,-0.254985)
- ..controls (2.181944,-0.254985) and (2.166719,-0.268769)
- ..(2.152934,-0.296338)
- --(2.132257,-0.337692)\dpicstop
-\dpiclw=0.8bp
-\draw (2.123611,-0.179985) node[above=-2bp]{\sl A};
-\draw (2.123611,-0.529985) node[below=-2bp]{\sl K};
-\draw (2.223611,-0.254985) node[right=-2bp]{\sl G};
-\draw (2.123611,-0.879985) node{\tt ...(,AV)};
-\dpicdraw (2.523611,-0.229985)
- --(2.523611,-0.429985)\dpicstop
-\dpicdraw (2.723611,-0.179985)
- --(2.523611,-0.269985)\dpicstop
-\filldraw[line width=0bp](2.638206,-0.187957)
- --(2.573611,-0.247485)
- --(2.661004,-0.238619) --cycle\dpicstop
-\dpicdraw (2.673611,-0.202485)
- --(2.589632,-0.240275)\dpicstop
-\dpicdraw (2.723611,-0.479985)
- --(2.523611,-0.389985)\dpicstop
-\filldraw[line width=0bp](2.586219,-0.448619)
- --(2.673611,-0.457485)
- --(2.609017,-0.397957) --cycle\dpicstop
-\dpicdraw (2.65759,-0.450275)
- --(2.573611,-0.412485)\dpicstop
-\dpicdraw (2.523611,-0.329985)
- --(2.597685,-0.363318)\dpicstop
-\draw (2.723611,-0.179985) node[above right=-2bp]{\sl A};
-\draw (2.723611,-0.479985) node[below right=-2bp]{\sl K};
-\draw (2.597685,-0.363318) node[right=-2bp]{\sl G};
-\draw (2.623611,-0.699985) node{\tt ...(,IEC)};
-\dpicdraw (-2.457639,-1.336073)
- --(-2.457639,-1.474989)\dpicstop
-\dpicdraw (-2.457639,-1.474989)
- --(-2.415972,-1.474989)
- --(-2.457639,-1.541623)
- --(-2.499306,-1.474989)
- --(-2.457639,-1.474989)\dpicstop
-\dpicdraw (-2.457639,-1.474989)
- --(-2.457639,-1.547157)\dpicstop
-\dpicdraw (-2.436806,-1.511073)
- --(-2.34942,-1.511073)\dpicstop
-\dpicdraw (-2.503357,-1.547157)
- --(-2.41192,-1.547157)\dpicstop
-\dpicdraw (-2.457639,-1.547157)
- --(-2.457639,-1.686073)\dpicstop
-\draw (-2.457639,-1.336073) node[above left=-2bp]{\sl A};
-\draw (-2.457639,-1.686073) node[below left=-2bp]{\sl K};
-\draw (-2.34942,-1.511073) node[right=-2bp]{\sl G};
-\draw (-2.426389,-2.036073) node{\tt ...(,UAH)};
-\dpicdraw (-1.867998,-1.336073)
- --(-1.867998,-1.474989)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-1.867998,-1.474989)
- --(-1.826331,-1.474989)
- --(-1.867998,-1.541623)
- --(-1.909665,-1.474989)
- --(-1.867998,-1.474989)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-1.913717,-1.547157)
- --(-1.82228,-1.547157)\dpicstop
-\dpicdraw (-1.888831,-1.474989)
- --(-1.930498,-1.40282)\dpicstop
-\dpicdraw (-1.867998,-1.547157)
- --(-1.867998,-1.686073)\dpicstop
-\draw (-1.867998,-1.336073) node[above=-2bp]{\sl A};
-\draw (-1.867998,-1.686073) node[below=-2bp]{\sl K};
-\draw (-1.930498,-1.40282) node[left=-2bp]{\sl Ga};
-\draw (-1.876389,-1.906073) node{\tt ...(,N)};
-\dpicdraw (-1.326389,-1.336073)
- --(-1.326389,-1.474989)\dpicstop
-\dpicdraw (-1.326389,-1.474989)
- --(-1.284722,-1.474989)
- --(-1.326389,-1.541623)
- --(-1.368056,-1.474989)
- --(-1.326389,-1.474989)\dpicstop
-\dpicdraw (-1.326389,-1.474989)
- --(-1.326389,-1.547157)\dpicstop
-\dpicdraw (-1.372107,-1.547157)
- --(-1.28067,-1.547157)\dpicstop
-\dpicdraw (-1.305556,-1.474989)
- --(-1.263889,-1.40282)
- --(-1.188889,-1.40282)\dpicstop
-\dpicdraw (-1.326389,-1.547157)
- --(-1.326389,-1.686073)\dpicstop
-\dpicdraw (-1.326389,-1.511073) circle (0.068898in)\dpicstop
-\draw (-1.326389,-1.336073) node[above=-2bp]{\sl A};
-\draw (-1.326389,-1.686073) node[below=-2bp]{\sl K};
-\draw (-1.188889,-1.40282) node[above right=-2bp]{\sl Ga};
-\draw (-1.326389,-2.036073) node{\tt ...(,UANRE)};
-\dpicdraw (-0.78478,-1.336073)
- --(-0.78478,-1.474989)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-0.78478,-1.474989)
- --(-0.743113,-1.474989)
- --(-0.78478,-1.541623)
- --(-0.826446,-1.474989)
- --(-0.78478,-1.474989)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-0.830498,-1.547157)
- --(-0.739061,-1.547157)\dpicstop
-\dpicdraw (-0.763946,-1.547157)
- --(-0.72228,-1.619326)\dpicstop
-\dpicdraw (-0.78478,-1.547157)
- --(-0.78478,-1.686073)\dpicstop
-\draw (-0.78478,-1.336073) node[above=-2bp]{\sl A};
-\draw (-0.78478,-1.686073) node[below left=-2bp]{\sl K};
-\draw (-0.72228,-1.619326) node[below right=-2bp]{\sl G};
-\draw (-0.776389,-1.906073) node{\tt ...(,SCR)};
-\dpicdraw (-0.226389,-1.336073)
- --(-0.226389,-1.474989)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-0.226389,-1.474989)
- --(-0.184722,-1.474989)
- --(-0.226389,-1.541623)
- --(-0.268056,-1.474989)
- --(-0.226389,-1.474989)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-0.272107,-1.547157)
- --(-0.18067,-1.547157)\dpicstop
-\dpicdraw (-0.205556,-1.547157)
- --(-0.163889,-1.619326)
- --(-0.088889,-1.619326)\dpicstop
-\dpicdraw (-0.226389,-1.547157)
- --(-0.226389,-1.686073)\dpicstop
-\dpicdraw (-0.226389,-1.511073) circle (0.068898in)\dpicstop
-\draw (-0.226389,-1.336073) node[above=-2bp]{\sl A};
-\draw (-0.226389,-1.686073) node[below=-2bp]{\sl K};
-\draw (-0.088889,-1.619326) node[below right=-2bp]{\sl G};
-\draw (-0.226389,-2.036073) node{\tt ...(SCRE)};
-\dpicdraw (0.423611,-1.336073)
- --(0.423611,-1.474989)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.423611,-1.474989)
- --(0.465278,-1.474989)
- --(0.423611,-1.541623)
- --(0.381944,-1.474989)
- --(0.423611,-1.474989)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.377893,-1.547157)
- --(0.46933,-1.547157)\dpicstop
-\dpicdraw (0.402778,-1.547157)
- --(0.361111,-1.619326)
- --(0.286111,-1.619326)\dpicstop
-\dpicdraw (0.423611,-1.547157)
- --(0.423611,-1.686073)\dpicstop
-\dpicdraw (0.423611,-1.511073) circle (0.068898in)\dpicstop
-\draw (0.423611,-1.336073) node[above=-2bp]{\sl A};
-\draw (0.423611,-1.686073) node[below=-2bp]{\sl K};
-\draw (0.286111,-1.619326) node[below left=-2bp]{\sl G};
-\draw (0.423611,-1.906073) node{\tt ...(SCRRE)};
-\dpicdraw (0.973611,-1.336073)
- --(0.973611,-1.474989)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (0.973611,-1.474989)
- --(1.015278,-1.474989)
- --(0.973611,-1.541623)
- --(0.931944,-1.474989)
- --(0.973611,-1.474989)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (0.927893,-1.547157)
- --(1.01933,-1.547157)\dpicstop
-\dpicdraw (0.952778,-1.474989)
- --(0.911111,-1.40282)\dpicstop
-\dpicdraw (0.994444,-1.547157)
- --(1.036111,-1.619326)\dpicstop
-\dpicdraw (0.973611,-1.547157)
- --(0.973611,-1.686073)\dpicstop
-\draw (0.973611,-1.336073) node[above=-2bp]{\sl A};
-\draw (0.973611,-1.686073) node[below=-2bp]{\sl K};
-\draw (1.036111,-1.619326) node[right=-2bp]{\sl G};
-\draw (0.973611,-2.036073) node{\tt ...(SCS)};
-\draw (0.911111,-1.40282) node[above left=-2bp]{\sl Ga};
-\dpicdraw (1.523611,-1.336073)
- --(1.523611,-1.474989)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (1.523611,-1.474989)
- --(1.565278,-1.474989)
- --(1.523611,-1.541623)
- --(1.481944,-1.474989)
- --(1.523611,-1.474989)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (1.477893,-1.547157)
- --(1.56933,-1.547157)\dpicstop
-\dpicdraw (1.502778,-1.474989)
- --(1.461111,-1.40282)
- --(1.386111,-1.40282)\dpicstop
-\dpicdraw (1.544444,-1.547157)
- --(1.586111,-1.619326)
- --(1.661111,-1.619326)\dpicstop
-\dpicdraw (1.523611,-1.547157)
- --(1.523611,-1.686073)\dpicstop
-\dpicdraw (1.523611,-1.511073) circle (0.068898in)\dpicstop
-\draw (1.523611,-1.336073) node[above=-2bp]{\sl A};
-\draw (1.523611,-1.686073) node[below=-2bp]{\sl K};
-\draw (1.661111,-1.619326) node[below right=-2bp]{\sl G};
-\draw (1.523611,-1.906073) node{\tt ...(SCSE)};
-\draw (1.386111,-1.40282) node[above left=-2bp]{\sl Ga};
-\dpicdraw (2.173611,-1.336073)
- --(2.173611,-1.474989)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (2.173611,-1.474989)
- --(2.215278,-1.474989)
- --(2.173611,-1.541623)
- --(2.173611,-1.474989)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (2.173611,-1.474989)
- --(2.002372,-1.474989)\dpicstop
-\dpicdraw (2.173611,-1.547157)
- --(2.173611,-1.686073)\dpicstop
-\dpicdraw (2.173611,-1.511073) circle (0.068898in)\dpicstop
-\draw (2.173611,-1.336073) node[above=-2bp]{\sl A};
-\draw (2.173611,-1.686073) node[below=-2bp]{\sl K};
-\draw (2.002372,-1.474989) node[left=-2bp]{\sl G};
-\draw (2.173611,-2.036073) node{\tt ...(SUSE)};
-\dpicdraw (2.823611,-1.336073)
- --(2.823611,-1.438904)\dpicstop
-\dpicdraw (2.781944,-1.438904)
- --(2.823611,-1.438904)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (2.823611,-1.438904)
- --(2.865278,-1.438904)
- --(2.823611,-1.583242)
- --(2.781944,-1.583242)
- --(2.823611,-1.438904)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (2.865278,-1.583242)
- --(2.823611,-1.583242)\dpicstop
-\dpicdraw (2.865278,-1.511073)
- --(2.648611,-1.511073)\dpicstop
-\dpicdraw (2.823611,-1.583242)
- --(2.823611,-1.686073)\dpicstop
-\dpicdraw (2.823611,-1.511073) circle (0.068898in)\dpicstop
-\draw (2.823611,-1.336073) node[above=-2bp]{\sl T1};
-\draw (2.823611,-1.686073) node[below=-2bp]{\sl T2};
-\draw (2.648611,-1.511073) node[left=-2bp]{\sl G};
-\draw (2.823611,-1.906073) node{\tt ...(SBSE)};
-\dpicdraw (-2.751389,-2.402454)
- --(-2.412473,-2.402454)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-2.412473,-2.402454)
- --(-2.412473,-2.360788)
- --(-2.345839,-2.402454)
- --(-2.412473,-2.444121)
- --(-2.412473,-2.402454)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-2.340304,-2.448173)
- --(-2.340304,-2.356736)\dpicstop
-\dpicdraw (-2.340304,-2.381621)
- --(-2.268136,-2.339954)\dpicstop
-\dpicdraw (-2.340304,-2.402454)
- --(-2.001389,-2.402454)\dpicstop
-\draw (-2.001389,-2.394064) node[right=-2bp]{\tt scr(,{,}Q)};
-\draw (-2.268136,-2.339954) node[above=-2bp]{\sl Q.G};
-\dpicdraw (-2.751389,-2.802454)
- --(-2.412473,-2.802454)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-2.412473,-2.802454)
- --(-2.412473,-2.760788)
- --(-2.345839,-2.802454)
- --(-2.412473,-2.844121)
- --(-2.412473,-2.802454)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-2.340304,-2.848173)
- --(-2.340304,-2.756736)\dpicstop
-\dpicdraw (-2.412473,-2.823288)
- --(-2.484642,-2.864954)\dpicstop
-\dpicdraw (-2.340304,-2.781621)
- --(-2.268136,-2.739954)\dpicstop
-\dpicdraw (-2.340304,-2.802454)
- --(-2.001389,-2.802454)\dpicstop
-\draw (-2.001389,-2.802454) node[right=-2bp]{\tt scs(,{,}Q2)};
-\draw (-2.268136,-2.739954) node[above=-2bp]{\sl Q2.G};
-\draw (-2.484642,-2.864954) node[below=-2bp]{\sl Q2.Ga};
-\dpicdraw (-0.973611,-2.600574)
- --(-0.634696,-2.600574)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (-0.634696,-2.600574)
- --(-0.634696,-2.642241)
- --(-0.568062,-2.600574)
- --(-0.634696,-2.600574)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (-0.634696,-2.600574)
- --(-0.634696,-2.429335)\dpicstop
-\dpicdraw (-0.562527,-2.600574)
- --(-0.223611,-2.600574)\dpicstop
-\dpicdraw (-0.598611,-2.600574) circle (0.068898in)\dpicstop
-\draw (-0.223611,-2.600574) node[right=-2bp]{\tt sus(,RE,Q3)};
-\draw (-0.634696,-2.429335) node[above=-2bp]{\sl Q3.G};
-\dpicdraw (0.976389,-2.600574)
- --(1.27922,-2.600574)\dpicstop
-\dpicdraw (1.27922,-2.642241)
- --(1.27922,-2.600574)\dpicstop
-\global\let\dpicshdraw=\dpicdraw\global\def\dpicdraw{}
-\global\def\dpicstop{--}
-\dpicshdraw[fill=white!0!black]
-\dpicdraw (1.27922,-2.600574)
- --(1.27922,-2.558907)
- --(1.423558,-2.600574)
- --(1.423558,-2.642241)
- --(1.27922,-2.600574)\dpicstop
-cycle; \global\let\dpicdraw=\dpicshdraw\global\def\dpicstop{;}
-\dpicdraw (1.423558,-2.558907)
- --(1.423558,-2.600574)\dpicstop
-\dpicdraw (1.351389,-2.558907)
- --(1.351389,-2.775574)\dpicstop
-\dpicdraw (1.423558,-2.600574)
- --(1.726389,-2.600574)\dpicstop
-\dpicdraw (1.351389,-2.600574) circle (0.068898in)\dpicstop
-\draw (1.726389,-2.600574) node[right=-2bp]{\tt sbs(,E,Q4)};
-\draw (1.351389,-2.775574) node[below=-2bp]{\sl Q4.G};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/doc/ujt.tex b/graphics/circuit_macros/doc/ujt.tex
deleted file mode 100644
index 46a8566fe6..0000000000
--- a/graphics/circuit_macros/doc/ujt.tex
+++ /dev/null
@@ -1,81 +0,0 @@
-\begin{tikzpicture}[scale=2.54]
-% dpic version 2020.03.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0.9,-0.15)
- --(0.9,0)\dpicstop
-\dpicdraw (0.9,0)
- --(0.725,0)\dpicstop
-\dpicdraw (0.725,-0.025)
- --(0.725,0.225)\dpicstop
-\dpicdraw (0.725,0.2)
- --(0.9,0.2)
- --(0.9,0.35)\dpicstop
-\dpicdraw (0.55,0.2)
- --(0.725,0.1)\dpicstop
-\filldraw[line width=0bp](0.61699,0.129727)
- --(0.703125,0.1125)
- --(0.644553,0.177963) --cycle\dpicstop
-\dpicdraw (0.55,0.2)
- --(0.687872,0.121216)\dpicstop
-\dpicdraw (0.725,0.1) circle (0.07874in)\dpicstop
-\draw (0.9,-0.15) node[right=-2bp]{\sl B1};
-\draw (0.4625,0.25) node{{\sl E}};
-\draw (0.9,0.35) node[right=-2bp]{\sl B2};
-\draw (0.725,-0.3) node{{\tt ujt(up\_ dimen\_,{,},E)}};
-\dpicdraw (2.125,0)
- --(1.95,0)\dpicstop
-\dpicdraw (1.95,-0.025)
- --(1.95,0.225)\dpicstop
-\dpicdraw (1.95,0.2)
- --(2.125,0.2)\dpicstop
-\dpicdraw (1.775,0.2)
- --(1.95,0.1)\dpicstop
-\filldraw[line width=0bp](1.88301,0.170273)
- --(1.796875,0.1875)
- --(1.855447,0.122037) --cycle\dpicstop
-\dpicdraw (1.95,0.1)
- --(1.812128,0.178784)\dpicstop
-\draw (2.125,0) node[below=-2bp]{\sl B1};
-\draw (1.6875,0.25) node{{\sl E}};
-\draw (2.125,0.2) node[above=-2bp]{\sl B2};
-\draw (2.05,-0.175) node[below=-2bp]{{\tt ujt(,{,}P,)}};
-\dpicdraw (2.925,0)
- --(3.1,0)\dpicstop
-\dpicdraw (3.1,-0.025)
- --(3.1,0.225)\dpicstop
-\dpicdraw (3.1,0.2)
- --(2.925,0.2)\dpicstop
-\dpicdraw (3.275,0.2)
- --(3.1,0.1)\dpicstop
-\filldraw[line width=0bp](3.180447,0.177963)
- --(3.121875,0.1125)
- --(3.20801,0.129727) --cycle\dpicstop
-\dpicdraw (3.275,0.2)
- --(3.137128,0.121216)\dpicstop
-\draw (2.925,0) node[below=-2bp]{\sl B1};
-\draw (3.3625,0.25) node{{\sl E}};
-\draw (2.925,0.2) node[above=-2bp]{\sl B2};
-\draw (3.1,-0.175) node[below=-2bp]{{\tt ujt(,R,{,})}};
-\dpicdraw (4.075,0)
- --(4.25,0)\dpicstop
-\dpicdraw (4.25,-0.025)
- --(4.25,0.225)\dpicstop
-\dpicdraw (4.25,0.2)
- --(4.075,0.2)\dpicstop
-\dpicdraw (4.425,0.2)
- --(4.25,0.1)\dpicstop
-\filldraw[line width=0bp](4.344553,0.122037)
- --(4.403125,0.1875)
- --(4.31699,0.170273) --cycle\dpicstop
-\dpicdraw (4.25,0.1)
- --(4.387872,0.178784)\dpicstop
-\draw (4.075,0) node[below=-2bp]{\sl B1};
-\draw (4.5125,0.25) node{{\sl E}};
-\draw (4.075,0.2) node[above=-2bp]{\sl B2};
-\draw (4.25,-0.175) node[below=-2bp]{{\tt ujt(,R,P,)}};
-\end{tikzpicture}
-\vspace*{-0.5\baselineskip}
diff --git a/graphics/circuit_macros/dpictools.pic b/graphics/circuit_macros/dpictools.pic
index f3936bb0db..656c83a6c8 100644
--- a/graphics/circuit_macros/dpictools.pic
+++ b/graphics/circuit_macros/dpictools.pic
@@ -3,7 +3,7 @@
# m4 macro NeedDpicTools or the pic statement copy "HOMELIB_/dpictools.pic"
# when HOMELIB_ is defined or, generically, copy "<path>dpictools.pic"
-# Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under #
+# Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under #
# the LaTeX Project Public Licence in file Licence.txt. The files of #
# this distribution may be redistributed or modified provided that this #
# copyright notice is included and provided that modifications are clearly #
diff --git a/graphics/circuit_macros/examples/ArrowFn.m4 b/graphics/circuit_macros/examples/ArrowFn.m4
index 68c6d9724e..f8ca152722 100644
--- a/graphics/circuit_macros/examples/ArrowFn.m4
+++ b/graphics/circuit_macros/examples/ArrowFn.m4
@@ -2,10 +2,11 @@
# ArrowFn.m4
# https://tex.stackexchange.com/questions/581089/arrow-function-diagrams
gen_init
+textoffset = 3bp__
brad = 0.04
bht = 0.4
bwid = 0.25
-define(`rbox',`box rad brad outlined "Orange"')
+define(`rbox',`box rad brad outlined "orange"')
B1: [
linethick = 1.2
diff --git a/graphics/circuit_macros/examples/Btree.m4 b/graphics/circuit_macros/examples/Btree.m4
index d17a192cc4..44b4265563 100644
--- a/graphics/circuit_macros/examples/Btree.m4
+++ b/graphics/circuit_macros/examples/Btree.m4
@@ -2,6 +2,9 @@
# Btree.m4
# One way to draw a binary tree using pic macros
gen_init
+sinclude(tst.dim)
+s_init(Ttree)
+
circlerad = 0.30
define n { [C: circle fill_(0.9) $1
@@ -29,4 +32,63 @@ define Vega { n("Vega") }
# Build the tree from the root
S: Sirius
+#.PE
+
+#.PS
+## Ttree.m4
+## A binary tree using m4
+#gen_init
+#sinclude(tst.dim)
+#s_init(Ttree)
+
+T: [
+# `Node(no in row, head [location],
+# displacement of top of body (.n) wrt head,
+# body Node 1, body Node 2, ...) '
+define(`Node',`
+ Head`$1': `$2'
+ ifelse(`$3',,,`Body`$1': [
+ Loopover_(`v',`v; define(`m4ct',m4Lx)',shift(shift(shift($@))))
+ ] with .n at Head`$1' + `$3'
+ connect(`$1',m4ct)')')
+
+define(`connect',`Bot: move from Head$1.sw to Head$1.se
+for_(1,`$2',1,
+ `Top: move from Body$1.Head`'m4x.nw to Body$1.Head`'m4x.ne
+ Move: move from Head$1 to Body$1.Head`'m4x
+ if Bot.len*Top.len*Move.len > 0 then {
+ line from Intersect_(Move,Top) to Intersect_(Move,Bot)}')')
+
+ vsep = 0.75
+
+ Node(1,s_box($`h(h(h(x_1,x_2),h(x_3,x_4)),h(h(x_5,x_6),h(x_7,x_8)))'$),
+ (0,-vsep),
+ Node(1,s_box($`h(h(x_1,x_2),h(x_3,x_4))'$),
+ (0,-vsep),
+ Node(1,s_box($`h(x_1,x_2)'$),
+ (0,-vsep),
+ Node(1,s_box($`x_1:=((A,pk_A),h_1)'$)),
+ Node(2,s_box($`x_2:=((B,pk_B),h_2)'$) \
+ with .n at last "".ne+(0.2,-vsep*2/3))),
+ Node(2,s_box($`h(x_3,x_4)'$) with .nw at Head1.ne+(Body1.wid/2+0.1,0),
+ (0,-vsep),
+ Node(1,s_box($`x_3:=((A,pk_A^\prime),h_3)'$)),
+ Node(2,s_box($`x_4:=((D,pk_D),h_4)'$) \
+ with .n at last "".ne+(0.2,-vsep*2/3)))),
+ Node(2,s_box($`h(h(x_5,x_6),h(x_7,x_8))'$) \
+ with .nw at Head1.ne+(Body1.wid/2,0),
+ (0,-vsep),
+ Node(1,s_box($`h(x_5,x_6)'$),
+ (0,-vsep*5/4),
+ Node(1,s_box($`x_5:=((E,pk_E),h_5)'$)),
+ Node(2,s_box($`x_6:=((H,pk_H),h_6)'$) \
+ with .n at last "".ne+(0.2,-vsep*2/3))),
+ Node(2,s_box($`h(x_7,x_8)'$) with .nw at Head1.ne+(Body1.wid/2+0.1,0),
+ (0,-vsep*5/4),
+ Node(1,s_box($`x_7:=((D,pk_D^\prime),h_7)'$)),
+ Node(2,s_box($`x_8:=((K,pk_K),h_8)'$) \
+ with .n at last "".ne+(0.2,-vsep*2/3))),
+ Node(3,s_box($`h(x_9)'$) at 0.5 between Head1 and Head2)))
+ ] with .n at S.s + (1.2,0.5)
+
.PE
diff --git a/graphics/circuit_macros/examples/Chips.m4 b/graphics/circuit_macros/examples/Chips.m4
index f9e98bc076..57f9e29e97 100644
--- a/graphics/circuit_macros/examples/Chips.m4
+++ b/graphics/circuit_macros/examples/Chips.m4
@@ -3,7 +3,7 @@
log_init
include(ics.m4)
- command "{\sf"
+ ifpostscript(,latexcommand({\sf))
Chips: [
ic4017
@@ -31,15 +31,16 @@ DIPs: [
{ arrow <- from DIP0.Pin8 up 0.25 right 0.2 ; `"\sl Pin8"' above ljust }
{ `"\tt DIP(32,direct=R;bodywid=0.5*scale)"' ljust \
- at DIP32.sw - (0,10bp__) }
+ at DIP32.sw + (-10bp__,-10bp__) }
{ arrow <- right 0.2 from DIP32.Pin1; `"\sl Pin1"' ljust }
{ spline <- right 0.2 then right 0.1 up 0.1 from DIP32.Pin32
`"\sl Pin32"' ljust }
- { `"\tt DIP(16,type=Q;pinwid=1bp\_\_)"' at DIP16.sw - (0,10bp__) ljust }
+ { `"\tt DIP(16,type=Q;pinwid=1bp\_\_)"' at DIP16.sw + (0,-10bp__) ljust }
thicklines_
- ] with .nw at last [].sw+(0,-0.3)
+ ] with .nw at last [].sw+(0,-0.2)
+
+ ifpostscript(,latexcommand(}%))
- command "}%"
.PE
diff --git a/graphics/circuit_macros/examples/Connectors.m4 b/graphics/circuit_macros/examples/Connectors.m4
index c9f8cd9019..16a66c2bd0 100644
--- a/graphics/circuit_macros/examples/Connectors.m4
+++ b/graphics/circuit_macros/examples/Connectors.m4
@@ -3,7 +3,7 @@
log_init
include(ics.m4)
- ifelse(ifpgf(T)`'ifpstricks(T)`'ifpsfrag(T),T,`command "{\small\sf"')
+ ifelse(ifpgf(T)`'ifpstricks(T),T,`command "{\small\sf"')
# ArduinoUno
Ar: ArduinoLeonardo #with .sw at last [].se+(0.25,0)
@@ -14,7 +14,7 @@ include(ics.m4)
S: USB_C_Socket with .sw at (HD.e.x+0.25,RPI.s.y)
- ifelse(ifpgf(T)`'ifpstricks(T)`'ifpsfrag(T),T,`command "}"')
+ ifelse(ifpgf(T)`'ifpstricks(T),T,`command "}"')
"{\sf Arduino Leonardo}" at Ar.Connector.s below
"{\sf Raspberry Pi 4 GPIO}" at RPI.GPIO.s below
diff --git a/graphics/circuit_macros/examples/Coxeter.m4 b/graphics/circuit_macros/examples/Coxeter.m4
deleted file mode 100644
index 4d186f9dbe..0000000000
--- a/graphics/circuit_macros/examples/Coxeter.m4
+++ /dev/null
@@ -1,38 +0,0 @@
-.PS
-# Coxeter.m4
-darrow_init
-
- customlinethick = 1.5
-
- linethick = customlinethick
- define(`dotrad_',`(3/2*linethick pt__)')
-
- Orig: (0,0)
- for i=0 to 4 do { P[i]: dot(at (i*linewid,0)) }
- line from Orig to P[4]
- P[-1]: dot(at (Rect_(linewid, 120))); line to Orig
- P[-2]: dot(at (Rect_(linewid,-120))); line to Orig
-
- Pa: dot(at P[4]+(linewid,0)); "$a$" at last [].n above
- arrow from P[4] to Pa chop linewid/4
- Pd: dot(at Pa+(linewid,0)); "$d$" at last [].w rjust
- Pe: dot(at Pd+(linewid,0)); "$e$" at last [].n above
- Pf: dot(at Pe+(linewid,0)); "$f$" at last [].n above
- Pb: dot(at Pd+(Rect_(linewid,120))); "$b$" at last [].w rjust
- Pc: dot(at Pd+(Rect_(linewid,-120))); "$c$" at last [].w rjust
- line from Pb to Pd then to Pc
- line from Pd to Pf
-
- define(`customarc',
- `pushdef(`dfillcolor',`0.7,0.7,0.7') linethick_(0.4); dnl
- Darc(`$1',linewid, (`$2')*dtor_, (`$3')*dtor_,
- thick=linewid/6; wid=linewid*0.3; ht=linewid/6; ends=<->)dnl
- linethick_(customlinethick); popdef(`dfillcolor')')
-
- customarc((linewid,-linewid/3), 25,155); "$d$" at (linewid,linewid*2/3)
- customarc((2*linewid,-linewid/3), 25,155); "$e$" at (2*linewid,linewid*2/3)
- customarc((3*linewid,-linewid/3), 25,155); "$f$" at (3*linewid,linewid*2/3)
- customarc(Orig,130,230); "$a$" at (Rect_(linewid,180))
- customarc(Orig, 10,110); "$b$" at (Rect_(linewid, 60))
- customarc(Orig,-110,-10); "$c$" at (Rect_(linewid,-60))
-.PE
diff --git a/graphics/circuit_macros/examples/Crossbar.m4 b/graphics/circuit_macros/examples/Crossbar.m4
deleted file mode 100644
index b9706657ee..0000000000
--- a/graphics/circuit_macros/examples/Crossbar.m4
+++ /dev/null
@@ -1,53 +0,0 @@
-.PS
-# Crossbar
-gen_init
- circlerad = 0.12
- boxwid = 0.18
- boxht = 0.18
- rathick = 1.5
- rawd = rathick*4 bp__
- raht = rawd*2
- boxdist = boxwid*1.8
-
-define bcoord {($2,-($1))*boxdist}
-define redarrow { arrow ht raht wid rawd thick rathick color "red" }
-
-define cbx {
- thinlines_
- n = $+ - 1
- for i=0 to n do {
- line color "blue" from bcoord(i,0) to bcoord(i,n)
- line color "blue" from bcoord(0,i) to bcoord(n,i)
- C[i]: circle invis at bcoord(i,-1.5)
- }
- for i=0 to n do {
- exec sprintf("col = $%g",i+1)
- redarrow from C[i].e right 1.25*boxwid
- redarrow from C[i].w+(-boxwid,0) right raht
- for j=0 to n do {
- B: box outlined "blue" shaded "yellow" at bcoord(i,j)
- if j==col then {
- line color "blue" from B.s to B.e
- line thick rathick color "red" from C[i].e to B.w \
- then to B.n then to (B.x,C[0].y+(2+j*2/3)*boxht)
- continue to (C[j].x-(2+j*2/3)*boxht,Here.y)
- continue to (Here,C[j]) then to C[j].w
- } \
- else {
- line color "blue" from B.n to B.s
- line color "blue" from B.w to B.e
- }
- }
- }
- thicklines_
- for i=0 to n do {
- circle thick 1.5 outlined "blue" shaded "yellow" at C[i] \
- sprintf("iflatex(\large)%g",i)
- }
- }
-
-ifdpic(`
- cbx(3,6,0,5,2,7,1,4)
-
-',`box wid 1 ht 0.75 "Crossbar.m4" "requires" "dpic"')
-.PE
diff --git a/graphics/circuit_macros/examples/Csource.m4 b/graphics/circuit_macros/examples/Csource.m4
index f2902525c0..b033192dbf 100644
--- a/graphics/circuit_macros/examples/Csource.m4
+++ b/graphics/circuit_macros/examples/Csource.m4
@@ -4,7 +4,7 @@ cct_init
# Set small text size
iflatex(`textoffset = 1bp__; ifpsfrag(`textht = 9bp__',
- `latexcommand({\scriptsize)') ')
+ `latexcommand({\scriptsize)')')
linewid = 0.4 # Reduce element sizes
diff --git a/graphics/circuit_macros/examples/EEP.m4 b/graphics/circuit_macros/examples/EEP.m4
index e4130a83a3..80413ea954 100644
--- a/graphics/circuit_macros/examples/EEP.m4
+++ b/graphics/circuit_macros/examples/EEP.m4
@@ -63,7 +63,7 @@ Pic2: [
text="M";circle=shaded "colorE";diam=dimen_*3/4)
sl_disk(left_ dimen_ from 1/2 between B3.P1 and B3.P2,
text="\scriptsize DER\_A"; circle=shaded "colorF";diam=dimen_*3/4)
-] with .nw at last [].sw + (100bp__,120bp__)
+] with .B1 at Pic1.Bus2.End+(24bp__,0)
Pic3: [
define(`shadedb',shaded "cornflowerblue")
diff --git a/graphics/circuit_macros/examples/EVplugs.m4 b/graphics/circuit_macros/examples/EVplugs.m4
index 5631482bf9..6fefd07048 100644
--- a/graphics/circuit_macros/examples/EVplugs.m4
+++ b/graphics/circuit_macros/examples/EVplugs.m4
@@ -1,5 +1,5 @@
.PS
-# EV_lugs.m4
+# EVplugs.m4
# https://en.wikipedia.org/wiki/CHAdeMO
gen_init
divert(-1)
diff --git a/graphics/circuit_macros/examples/Emarrows.m4 b/graphics/circuit_macros/examples/Emarrows.m4
index c4b2131902..b39268ad72 100644
--- a/graphics/circuit_macros/examples/Emarrows.m4
+++ b/graphics/circuit_macros/examples/Emarrows.m4
@@ -1,30 +1,28 @@
.PS
# `Emarrows.m4'
cct_init
+
hskip = 0.6
-[
- { em_arrows(N)
- box dotted wid last [].wid ht last [].ht at last [].c
+ { A: em_arrows()
+ box dotted wid A.wid ht A.ht at A.c
thinlines_
- arrow <- left 0.15 from last [].Head; "\sl Head" wid 0.31 rjust
- arrow <- down 0.12 from last [].Tail; "\sl Tail" below
- "\sl A1" rjust below at last [].A1.c
- "\sl A2" ljust above at last [].A2.c
+ arrow <- left 0.15 from A.Head; "\sl Head" wid 0.31 rjust
+ arrow <- right 0.12 from A.Tail; "\sl Tail" ljust
+ arrow <- left 0.15 from 0.6 between A.A1.end and A.A1.start; "\sl A1" rjust
+ arrow <- right 0.15 up 0.07 from A.A2; "\sl A2" ljust
thicklines_
- move down 0.25 from last [].s
- move up 0.2 from last [].n
- "\tt em\_arrows(N)" at last [].s+(0,-0.20) below }
+ move down 0.25 from A.s
+ move up 0.2 from A.n
+ "\tt em\_arrows()" at A.s+(0,-4bp__) below }
{ em_arrows(ND,45) with .sw at last [].se+(hskip*1.5,0)
- "\tt em\_arrows(ND,45)" at last [].s below }
+ "\tt $\ldots$(ND,45)" at last [].s below }
{ em_arrows(I) with .sw at last [].se+(hskip,0)
"\tt $\ldots$(I)" at last [].s below }
{ em_arrows(ID) with .sw at last [].se+(hskip,0)
"\tt $\ldots$(ID)" at last [].s below }
{ em_arrows(E) with .sw at last [].se+(hskip,0)
"\tt $\ldots$(E)" at last [].s below }
- { em_arrows(ED) with .sw at last [].se+(hskip,0)
- "\tt $\ldots$(ED)" at last [].s below }
- ]
-#showbox_
+ { A: em_arrows(NT) with .sw at last [].se+(hskip,0)
+ "\tt $\ldots$(NT)" at last [].s below }
.PE
diff --git a/graphics/circuit_macros/examples/Eye.m4 b/graphics/circuit_macros/examples/Eye.m4
index 50a62c389e..1251afca09 100644
--- a/graphics/circuit_macros/examples/Eye.m4
+++ b/graphics/circuit_macros/examples/Eye.m4
@@ -1,11 +1,15 @@
.PS
# Eye.m4
+# https://getpocket.com/explore/item/pillars-of-fire-truly-adventurous?utm_source=pocket-newtab
gen_init
define(`eye',`[ u = `$1'; v = 0.47*u; w = 0.25*u
+# for pdf, linethick in shade must be environment
+ lth = linethick; linethick = 0
shade(1,
- arc thick 0 from (u/2,0) to (-u/2,0) with .c at (0,-u/3)
- arc thick 0 to (u/2,0) with .c at (0,u/3) )
+ arc outlined "red" from (u/2,0) to (-u/2,0) with .c at (0,-u/3)
+ arc to (u/2,0) with .c at (0,u/3) )
+ linethick = lth
circle diam v fill_(0.25) at (0,0)
circle diam w fill_(0) at (0,0)
circle thick 0 diam last circle.diam/2 fill_(1) at last circle.nw
@@ -35,12 +39,14 @@ define(`eye',`[ u = `$1'; v = 0.47*u; w = 0.25*u
for a=0 to 359 by dax do {
T1: (Rect_(d[i]/2,a))
T2: (Rect_(d[i]/2,a-da*2))
+ lth = linethick; linethick = 0
shade(1,
- arc cw thick 0 from T1 to T2 with .c at Bx
+ arc cw from T1 to T2 with .c at Bx
spline 0.55 thick 0 to 0.8 between Bx and T2 \
then to (Rect_(d[i]/4,a+30))
- arc cw thick 0 to (Rect_(d[i]/4,a+32)) with .c at Bx
+ arc cw to (Rect_(d[i]/4,a+32)) with .c at Bx
spline 0.55 thick 0 to 0.8 between Bx and T1 then to T1 )
+ linethick = lth
}
}
C[1]: circle thick 2 diam d[1] at Bx fill_(0.1)
diff --git a/graphics/circuit_macros/examples/FlowchartDefs.m4 b/graphics/circuit_macros/examples/FlowchartDefs.m4
index 2e5c3ade9e..fc3dfca6a0 100644
--- a/graphics/circuit_macros/examples/FlowchartDefs.m4
+++ b/graphics/circuit_macros/examples/FlowchartDefs.m4
@@ -162,7 +162,7 @@ define(`Fkeying',`[ boxwid = fboxwid; boxht = fboxht
`If-then
Ftest( "text", wid expr ht expr, attributes )'
define(`Ftest',`[boxwid = fboxwid*0.8; boxht = fboxht*1.4
- Box: box ifelse(`$2',,,`$2') invis
+ Box: box `$2' invis
N: Box.n; S: Box.s; E: Box.e; W: Box.w
line from 0.5 between last box.n and last box.e to last box.e to last box.s \
to last box.w to last box.n to 0.5 between last box.n and last box.e \
diff --git a/graphics/circuit_macros/examples/Geometry.m4 b/graphics/circuit_macros/examples/Geometry.m4
index b5a59a0f10..3a50622603 100644
--- a/graphics/circuit_macros/examples/Geometry.m4
+++ b/graphics/circuit_macros/examples/Geometry.m4
@@ -2,98 +2,9 @@
# Geometry.m4
# Some constructions from https://tex.stackexchange.com/
gen_init
-
-Fig1: [ ls = 2/3 # local scale
- A: Here; "A" at A above
- B: A+(-1*ls,-3.5*ls); "B" at B below rjust
- C: B+(4.6*ls,0); "C" at C below ljust
- AB: line from A to B
- BC: line from B to C
- CA: line from C to A
-
- perpto(A,BC,L); "L" at L below
- AL: line from A to L; RightAngle(A,L,C)
-
- angleLAC = atan2(C.x-L.x,A.y-L.y)
- S: move from A to (sin(angleLAC/2),-cos(angleLAC/2))
- AW: line from A to Intersect_(S,BC)
- W: Here; "W" at W below rjust
-
- perpto(C,AB,N); "N" at N above rjust
- CN: line from C to N; RightAngle(C,N,B)
-
- perpto(B,CA,M); "M" at M above
- CM: line from B to M; RightAngle(B,M,C)
-
- H: Intersect_(CN,AL); "H" at H +(4bp__,10bp__)
-
- thinlines_
- Equidist3(B,L,N,CC1,c1rad); C1: circle rad c1rad at CC1
- Equidist3(B,W,N,CC2,c2rad); C2: circle rad c2rad at CC2
- Equidist3(B,C,N,CC3,c3rad); C3: circle rad c3rad at CC3
- Equidist3(W,C,M,CC4,c4rad); C4: circle rad c4rad at CC4
- thicklines_
-
- Z: LCintersect(AW,CC2,C2.rad); "Z" at Z+(-5bp__,-5bp__)
- HZ: move from H to Z
- Y: LCintersect(HZ,CC4,C4.rad,R); "Y" at Y above
- X: LCintersect(HZ,CC2,C2.rad); "X" at X above rjust
-
- Loopover_(`P',`dot(at P)',X,Y,Z)
-
- line dashed from X to Y chop -linewid/2
- RightAngle(A,Z,Y)
- ]
-
-Fig2: [ ls = 3/4 # local scale
-# https://tex.stackexchange.com/questions/593272/drawing-complex-geometry
- P: dot(at Here); "P" at P.s below
- N: dot(at P+(3.5*ls,1.5*ls)); "N" at N.se ljust below
- O: dot(at (N,P)); "O" at O.s below
- R: dot(at 1/3 between O and P);"R" at R.s below
- M: dot(at (R,N)); "M" at M.se ljust below
- Q: dot(at (M.x,M.y+distance(M,N)/distance(N,O)*distance(P,O)));"Q" at Q.e ljust
- line from P to Q then to N then to O
- B: line to P chop -0.3
- line from M to N
- Pu: line from R to Q chop 0 chop -0.3
- H: line from P to N chop 0 chop -0.3
- X: dot(at Intersect_(Pu,H)); "X" at X.se ljust below
- thinlines_
- RightAngle(Q,M,N)
- RightAngle(Q,N,H.end)
- RightAngle(N,O,B.start)
- ArcAngle(N,P,Q,0.4); "$\beta$" at last arc.ne above ljust
- ArcAngle(O,P,N,0.5); "$\alpha$" at last arc.start+(5bp__,8bp__)
- ArcAngle(R,Q,N,0.5); "$\alpha$" at last arc.start+(8bp__,-5bp__)
- ] with .w at Fig1.e+(-0.4,0)
-
-Fig3: [
-# https://tex.stackexchange.com/questions/609452/help-drawing-a-more-sophisticated-right-triangle-with-tikz-or-something-else
-gen_init
-
-define(`textsize',`\Large')
- unit = 0.6
- C: Here; { "textsize C" at C rjust below }
- B: C+(4*unit,0); { "textsize B" at B ljust below }
- A: C+(0,3*unit); { "textsize A" at A rjust above }
- H: PerpTo(C,A,B); { "textsize H" at H ljust above }
- line from C to H then to B then to C shaded rgbstring(0.5,0.8,0.9)
-# line from C to H then to B then to C shaded "CornflowerBlue"
- line from C to H then to A then to C shaded rgbstring(0.8,0.9,0.7)
-# line from C to H then to A then to C shaded "SpringGreen"
- ArcAngle(C,A,B,unit*0.4)
- ArcAngle(C,A,B,unit*0.5)
- ArcAngle(A,B,C,unit*0.5,,"textsize $\theta$" rjust)
- ArcAngle(B,C,H,unit*0.5); {"textsize $\theta$" at C+(unit*0.3,unit*0.17) }
- ArcAngle(B,C,A,unit*0.6)
- RightAngle(B,C,A,unit*0.17)
- RightAngle(C,H,A,unit*0.17)
-
- ] with .nw at Fig1.sw+(0.2,-0.3)
-
-Fig4: [
-
+maxpswid = 9
+Scaled: [
+Fig1: [
# FourbarSVG.m4
# https://tex.stackexchange.com/questions/563831/how-to-draw-four-bar-linkage-with-center-of-mass
ls = 1/25.4 # local scale
@@ -129,7 +40,7 @@ define(`pivot',`[
arc dashed from B1 to B2 with .c at B0
A0B1: line thick 1.6 from A0 to B1 chop 2*ls chop 0
- line thick 1.6 from B0 to B1 chop 2*ls chop 0 "$c$" ljust
+ line thick 1.6 from B0 to B1 chop 2*ls chop 0 "c" ljust
circle fill_(1) at B1; "$B_1$" wid 3*ls at B1+(5,0)*ls
A1: circle fill_(1) at LCintersect(A0B1,A0,a,R)
"$A_1$" at A1+(5,0)*ls
@@ -147,8 +58,99 @@ define(`pivot',`[
ArcAngle(B1,B0,B2,8*ls) ->; "$\psi$" at last arc.n+(-3*ls,0) above
ArcAngle(A1,A0,B2,b*0.45) ->; "$\theta$" at last arc.start+(0,4*ls)
line from A0+(3*ls,0) right 8*ls
- ArcAngle(Here,A0,B1,9*ls) ->; "$\theta_0$" at last arc.start+(2,2)*ls
+ ArcAngle(Here,A0,B1,9*ls) ->; "$\theta_0$" \
+ at last arc.start+(2,2)*ls
+ ]
+
+Fig2: [
+# FourbarSVG.m4
+# https://tex.stackexchange.com/questions/609452/help-drawing-a-more-sophisticated-right-triangle-with-tikz-or-something-else
+
+ textkht = 12/72
+ unit = 0.6
+ C: Here; { "$C$" at C rjust below }
+ B: C+(4*unit,0); { "$B$" at B ljust below }
+ A: C+(0,3*unit); { "$A$" at A rjust above }
+ H: PerpTo(C,A,B); { "$H$" at H ljust above }
+ line from C to H then to B then to C shaded rgbstring(0.5,0.8,0.9)
+ line from C to H then to A then to C shaded rgbstring(0.8,0.9,0.7)
+ ArcAngle(C,A,B,unit*0.4)
+ ArcAngle(C,A,B,unit*0.5)
+ ArcAngle(A,B,C,unit*0.5,,"$\theta$" rjust)
+ ArcAngle(B,C,H,unit*0.5); {"$\theta$" at C+(unit*0.3,unit*0.17) }
+ ArcAngle(B,C,A,unit*0.6)
+ RightAngle(B,C,A,unit*0.17)
+ RightAngle(C,H,A,unit*0.17)
+ ] with .nw at Fig1.sw+(0.2,0)
+
+
+Fig3: [ ls = 3/4 # local scale
+# https://tex.stackexchange.com/questions/593272/drawing-complex-geometry
+ P: dot(at Here); "$P$" at P.s below
+ N: dot(at P+(3.5*ls,1.5*ls)); "$N$" at N.se ljust below
+ O: dot(at (N,P)); "$O$" at O.s below
+ R: dot(at 1/3 between O and P);"$R$" at R.s below
+ M: dot(at (R,N)); "$M$" at M.se ljust below
+ Q: dot(at (M.x,M.y+distance(M,N)/distance(N,O)*distance(P,O)));"$Q$" at Q.e ljust
+ line from P to Q then to N then to O
+ B: line to P chop -0.3
+ line from M to N
+ Pu: line from R to Q chop 0 chop -0.3
+ H: line from P to N chop 0 chop -0.3
+ X: dot(at Intersect_(Pu,H)); "$X$" at X.se ljust below
+ thinlines_
+ RightAngle(Q,M,N)
+ RightAngle(Q,N,H.end)
+ RightAngle(N,O,B.start)
+ ArcAngle(N,P,Q,0.4); "$\beta$" at last arc.ne above ljust
+ ArcAngle(O,P,N,0.5); "$\alpha$" at last arc.start+(5bp__,8bp__)
+ ArcAngle(R,Q,N,0.5); "$\alpha$" at last arc.start+(8bp__,-5bp__)
+ ] with .sw at Fig2.e+(-0.2,-0.7)
+
+ifelse(1,1,`
+Fig4: [ ls = 2/3 # local scale
+ A: Here; "$A$" at A above
+ B: A+(-1*ls,-3.5*ls); "$B$" at B below rjust
+ C: B+(4.6*ls,0); "$C$" at C below ljust
+ AB: line from A to B
+ BC: line from B to C
+ CA: line from C to A
+
+ perpto(A,BC,L); "$L$" at L below
+ AL: line from A to L; RightAngle(A,L,C)
+
+ angleLAC = atan2(C.x-L.x,A.y-L.y)
+ S: move from A to (sin(angleLAC/2),-cos(angleLAC/2))
+ AW: line from A to Intersect_(S,BC)
+ W: Here; "$W$" at W below rjust
+
+ perpto(C,AB,N); "$N$" at N above rjust
+ CN: line from C to N; RightAngle(C,N,B)
+
+ perpto(B,CA,M); "$M$" at M above
+ CM: line from B to M; RightAngle(B,M,C)
+
+ H: Intersect_(CN,AL); "$H$" at H +(4bp__,10bp__)
+
+ thinlines_
+ Equidist3(B,L,N,CC1,c1rad); C1: circle rad c1rad at CC1
+ Equidist3(B,W,N,CC2,c2rad); C2: circle rad c2rad at CC2
+ Equidist3(B,C,N,CC3,c3rad); C3: circle rad c3rad at CC3
+ Equidist3(W,C,M,CC4,c4rad); C4: circle rad c4rad at CC4
+ thicklines_
+
+ Z: LCintersect(AW,CC2,C2.rad); "$Z$" at Z+(-5bp__,-5bp__)
+ HZ: move from H to Z
+ Y: LCintersect(HZ,CC4,C4.rad,R); "$Y$" at Y above
+ X: LCintersect(HZ,CC2,C2.rad); "$X$" at X above rjust
+
+ Loopover_(`P',`dot(at P)',X,Y,Z)
+
+ line dashed from X to Y chop -linewid/2
+ RightAngle(A,Z,Y)
+ ] with .sw at (Fig3.e,Fig2.s)
+')
- ] with .nw at Fig3.ne+(0.2,0.2)
+] scaled 0.8
.PE
diff --git a/graphics/circuit_macros/examples/GrayCode.m4 b/graphics/circuit_macros/examples/GrayCode.m4
index 4fc4815cf1..a4a917f449 100644
--- a/graphics/circuit_macros/examples/GrayCode.m4
+++ b/graphics/circuit_macros/examples/GrayCode.m4
@@ -2,6 +2,7 @@
# GrayCode.m4
gen_init
+GrayCode: [
outer = 4
inner = 0.75
nbits = 10
@@ -17,4 +18,57 @@ C: circle diam outer
arcd(C,outer/2-(bit-0.5)*lthk,startang,endang) thick lthk/(1bp__)
}
}
+ ]
+# Crossbar
+Crossbar: [
+ circlerad = 0.12
+ boxwid = 0.18
+ boxht = 0.18
+ rathick = 1.5
+ rawd = rathick*4 bp__
+ raht = rawd*2
+ boxdist = boxwid*1.8
+
+define bcoord {($2,-($1))*boxdist}
+define redarrow { arrow ht raht wid rawd thick rathick color "red" }
+
+define cbx {
+ thinlines_
+ n = $+ - 1
+ for i=0 to n do {
+ line color "blue" from bcoord(i,0) to bcoord(i,n)
+ line color "blue" from bcoord(0,i) to bcoord(n,i)
+ C[i]: circle invis at bcoord(i,-1.5)
+ }
+ for i=0 to n do {
+ exec sprintf("col = $%g",i+1)
+ redarrow from C[i].e right 1.25*boxwid
+ redarrow from C[i].w+(-boxwid,0) right raht
+ for j=0 to n do {
+ B: box outlined "blue" shaded "yellow" at bcoord(i,j)
+ if j==col then {
+ line color "blue" from B.s to B.e
+ line thick rathick color "red" from C[i].e to B.w \
+ then to B.n then to (B.x,C[0].y+(2+j*2/3)*boxht)
+ continue to (C[j].x-(2+j*2/3)*boxht,Here.y)
+ continue to (Here,C[j]) then to C[j].w
+ } \
+ else {
+ line color "blue" from B.n to B.s
+ line color "blue" from B.w to B.e
+ }
+ }
+ }
+ thicklines_
+ for i=0 to n do {
+ circle thick 1.5 outlined "blue" shaded "yellow" at C[i] \
+ sprintf("iflatex(\large)%g",i)
+ }
+ }
+
+ifdpic(`
+ cbx(3,6,0,5,2,7,1,4)
+',`box wid 1 ht 0.75 "Crossbar" "requires" "dpic"')
+
+] with .w at GrayCode.e+(0.2,0)
.PE
diff --git a/graphics/circuit_macros/examples/Heathkit.m4 b/graphics/circuit_macros/examples/Heathkit.m4
index 2cc23290a1..27a241e3e3 100644
--- a/graphics/circuit_macros/examples/Heathkit.m4
+++ b/graphics/circuit_macros/examples/Heathkit.m4
@@ -27,6 +27,7 @@ define(`dimen_',dimen_*4/5)
arrowht = arrowht*2/3
# Grid
+ box invis fill_(1) wid picwid ht picht with .sw at (0,0)
ifdpic(`linethick_(0.4)',`linethick_(0)')
for i=0 to picwid/g do { line color "lightgray" up picht from (i*g,0) }
for i=0 to picwid/g by 10 do { sprintf(tsf(%g),i) at (i*g,0) below }
@@ -103,8 +104,9 @@ define(`socket',`[
rlabel(,tsf(3 A FUSE) rjust tsf(SLOW BLOW))
line to (Here.x,int(Here.y/g)*g-g); dot
Sckt1: socket at Here+(5*g,0)
- line from Sckt1.w to (PL,Sckt1); A: dot; tsf(A) rjust
- line from Sckt1.e right_ lin_leng(last line); B: dot; tsf(B) ljust
+ line from Sckt1.w to (PL,Sckt1); A: dot; tsf(A) at last [].w rjust
+ line from Sckt1.e right_ lin_leng(last line); B: dot
+ tsf(B) at last [].e ljust
Sckt2: socket at (Sckt1,P1+(0,6*g))
line from Sckt2.w to (A,Sckt2); dot
line from Sckt2.e to (B,Sckt2); dot
diff --git a/graphics/circuit_macros/examples/Incl.eps.gz b/graphics/circuit_macros/examples/Incl.eps.gz
index 537be23d4c..80348d43fe 100644
--- a/graphics/circuit_macros/examples/Incl.eps.gz
+++ b/graphics/circuit_macros/examples/Incl.eps.gz
Binary files differ
diff --git a/graphics/circuit_macros/examples/Incleps.m4 b/graphics/circuit_macros/examples/Incleps.m4
index ceb1bc0f0c..7f02f308c1 100644
--- a/graphics/circuit_macros/examples/Incleps.m4
+++ b/graphics/circuit_macros/examples/Incleps.m4
@@ -4,6 +4,7 @@
darrow_init
s_init(Incleps)
sinclude(F_Incleps.dim) # Inserted for the web-page version.
+sinclude(tmp.dim) # for psfrag
sinclude(examples.dim) # Change examples to the name of the main LaTeX file.
define(`backarrow',`darrow(`$1',,,2pt__,6pt__,6pt__,<-|)')
diff --git a/graphics/circuit_macros/examples/Inductors.m4 b/graphics/circuit_macros/examples/Inductors.m4
index d9db4df153..7250eb181e 100644
--- a/graphics/circuit_macros/examples/Inductors.m4
+++ b/graphics/circuit_macros/examples/Inductors.m4
@@ -1,7 +1,7 @@
.PS
-# inductors.m4
+# Inductors.m4
cct_init
-iflatex(command "{\tt")
+ifpostscript(,latexcommand({\tt)) # disable "command" for psfrag
movewid = 2 pt__
hm = 2.05
@@ -44,5 +44,5 @@ vm = 0.4
shielded(`ebox(,,,0)',R) ; move; `"shielded(`ebox(,{,},0)',R)"' ljust }
}
-iflatex(command "}")
+ifpostscript(,latexcommand(}))
.PE
diff --git a/graphics/circuit_macros/examples/Makefile b/graphics/circuit_macros/examples/Makefile
index c582c0b35c..fd8ab4ea49 100644
--- a/graphics/circuit_macros/examples/Makefile
+++ b/graphics/circuit_macros/examples/Makefile
@@ -10,11 +10,14 @@
# Type "make <diag>.png" to make a .png file from <diag>.m4
# Type "make <diag>.tif" to make a .tif file from <diag>.m4
#
-# See also: the svg subdirectory for generating svg directly.
+# See also: dpv subdirectory for creating svg with dpic -v without LaTeX
#
# To test the file test.m4, type "make tst" if boxdims is used, otherwise
# type "make tst1". In either case the file tst.ps is created.
#
+# There are a few extra examples in this directory. Process them one
+# at a time, or type "make extras.pdf"
+#
# To debug a single diagram in a directory other than this examples
# directory, copy this makefile and tst.tex to where you want to work,
# redefine LIBDIR (below) appropriately, and type "make <diag>.xxx"
@@ -54,18 +57,19 @@ PNGOPTS = -quiet -density 400 -scale 25% -alpha Remove
M4 = m4
DOC = examples
-PICS = \
- ABlogix.tex Adder.tex Alogix.tex AmpTable.tex Antennas.tex \
+TEXPICS = \
+ ABlogix.tex Adder.tex Alogix.tex AmpTable.tex Antennas.tex Arresters.tex \
Audio.tex Bip.tex Btree.tex Buttons.tex Byte.tex \
Capacitors.tex CanLogic.tex Chips.tex Conn.tex Connectors.tex \
- Contacts.tex Contact.tex control.tex Crossbar.tex Crow.tex \
+ Contacts.tex Contact.tex control.tex Crow.tex \
csc.tex Csource.tex Decoder.tex \
Demultiplexer.tex diamond.tex Dini.tex Diodes.tex Drive.tex \
EEP.tex Emarrows.tex Escher.tex EVplugs.tex \
ex00.tex ex01.tex ex02.tex ex03.tex ex04.tex ex05.tex ex06.tex ex08.tex \
ex09.tex ex10.tex ex11.tex ex12.tex ex15.tex ex16.tex ex17.tex ex18.tex \
- ex21.tex exp.tex fet.tex Flow.tex Fuses.tex GrayCode.tex graysurf.tex \
- Grounds.tex Headers.tex Heathkit.tex \
+ ex21.tex exp.tex fet.tex Flow.tex Fuses.tex \
+ Geometry.tex GrayCode.tex graysurf.tex Grounds.tex \
+ Headers.tex Heathkit.tex \
I2L.tex Incleps.tex Inductors.tex Jack.tex \
lcct.tex Logic.tex Loglog.tex MC.tex Mixer.tex MoreTable.tex \
MotorControl.tex Multiplexer.tex \
@@ -73,16 +77,15 @@ PICS = \
Pconn.tex Plate.tex PushPull.tex pwrsupply.tex \
Quantum.tex quick.tex \
random.tex Rectifiers.tex recycle.tex relaycoil.tex Relay.tex \
- Resistors.tex rose.tex Rotbox.tex \
+ Resistors.tex Rotbox.tex \
Schottky.tex sfg.tex shapes.tex ShiftR.tex Sierpinski.tex Sixpole.tex \
- Sources.tex SQUID.tex Switches.tex \
- Tgate.tex Three.tex thyristor.tex \
- TTLnand.tex Ttree.tex Tubediags.tex ujt.tex Variable.tex Windings.tex \
- worm.tex Xform.tex XOR.tex
+ Smithchart.tex Sources.tex SQUID.tex Switches.tex \
+ Tgate.tex Three.tex thyristor.tex TTLnand.tex Tubediags.tex \
+ UNO.tex ujt.tex Variable.tex Windings.tex worm.tex Xform.tex XOR.tex
# Files that have to be processed twice:
-BOXDIMS = ex09.tex Crow.tex Incleps.tex Loglog.tex Opamp.tex \
- random.tex Ttree.tex Windings.tex
+BOXDIMS = Btree.tex ex09.tex Crow.tex Incleps.tex Loglog.tex Opamp.tex \
+ random.tex Windings.tex
#########################################################################
@@ -173,20 +176,21 @@ LTXFILE=printf "|documentclass[11pt]{article}\n\
make $*.pdf
convert $(PNGOPTS) $*.pdf $*.png
@if test -f $*.png.0 ; then mv $*.png.0 $*.png ; fi
- rm $*.pdf
+# rm $*.pdf
.m4.gif:
make $*.pdf
convert $(GIFOPTS) $*.pdf $*.gif
- rm $*.pdf
+# rm $*.pdf
.m4.tif:
make $*.pdf
convert $(EPSOPTS) $*.pdf $*.tif
@if test -f $*.tif.0 ; then mv $*.tif.0 $*.tif ; fi
- rm $*.pdf
+# rm $*.pdf
.m4.svg:
make $*.pdf
dvisvgm --pdf $*.pdf $*.svg
- rm $*.pdf
+ chmod 644 $*.svg
+# rm $*.pdf
#########################################################################
@@ -199,9 +203,22 @@ $(DOC).pdf: clean pdfmode $(DOC).tex files.tex header.tex
rm -f $(BOXDIMS) ${BOXDIMS:%.tex=%.pic} $(DOC).pdf
make CONF=pgf.m4 MODE=-g DIMFILE=$(DOC).dim $(BOXDIMS)
pdflatex $(DOC)
+ @printf "\n\n optpdf trims the pdf file\n"
optpdf $(DOC).pdf
-pics: $(PICS)
+rose.pdf: rose.m4
+ m4 pdf.m4 rose.m4 | dpic -d > rose.pdf
+
+paletteDPV.svg: paletteDPV.m4
+ m4 svg.m4 paletteDPV.m4 | dpic -v > paletteDPV.svg
+
+keyboard.svg: keyboard.m4
+ m4 svg.m4 keyboard.m4 | dpic -v > keyboard.svg
+
+keyboard.pdf: keyboard.svg
+ convert keyboard.svg keyboard.pdf
+
+pics: $(TEXPICS) rose.pdf keyboard.pdf
touch pics
$(DOC).ps: psmode $(DOC).dvi
@@ -245,13 +262,50 @@ gpic:
dvips $(DVIPSOPTS) tst -o tst.ps
echopics:
- @echo $(PICS)
+ @echo $(TEXPICS)
+
+XTRASRC=printf "|documentclass[11pt]{article}\n\
+|usepackage[dvipsnames]{xcolor}\n\
+|usepackage{times,boxdims,siunitx,amssymb,tikz,geometry}\n\
+|geometry{margin=0.5cm}\n\
+|begin{document}\n" | $(BS)
+
+extras:
+ ( for file in `ls *.m4` ; do \
+ fbase=`basename $$file .m4` ; \
+ if test "`grep -L $$fbase files.tex`" = "files.tex" ; then \
+ echo $$fbase ; \
+ fi ; \
+ done ) | sed -e '/Ball/d' \
+ -e '/ASME_Y14-5/d' -e '/FlowchartDefs/d' -e '/tubedefs/d' \
+ -e '/debug1/d' -e '/debug2/d' \
+ -e '/paletteSVG/d' \
+ -e '/Consumption/d' -e '/rotatetext/d' -e '/windows/d' \
+ > extras
+
+XBOXDIMS = Chuck
+
+extras.pdf: extras
+ @$(XTRASRC) > extras.tex
+ touch extras.dim
+ -for file in `cat extras` ; do \
+ $(M4) pgf.m4 extras.dim $$file.m4 | $(PIC) -g > $$file.tex ; \
+ printf "\n|input{$$file.tex}\n" | $(BS) >> extras.tex ; \
+ printf "\n $$file.m4\n |pagebreak\n" | $(BS) >> extras.tex ; \
+ done
+ printf "\n|end{document}\n" | $(BS) >> extras.tex
+ pdflatex extras
+ -for file in $(XBOXDIMS) ; do \
+ rm -f $$file.tex ; \
+ $(M4) pgf.m4 extras.dim $$file.m4 | $(PIC) -g > $$file.tex ; \
+ done
+ pdflatex extras
testall:
(cd mf; make)
(cd mpost; make)
(cd psfrag; make)
- (cd svg; make)
+ (cd dpv; make)
(cd xfig; make)
clobber: clean
@@ -270,12 +324,16 @@ clobber: clean
# @if test -f distmakefile ; then make -f distmakefile clobber ; fi
clean:
- @printf "\n examples clean:\n"
+ @printf "\n\n examples clean:\n\n"
+ -if test -f extras ; then \
+ for file in `cat extras` ; do rm -f $$file.pic $$file.tex ; done ; fi
+ rm -f extras extras.*
rm -f core boxdims.tar.gz pics
rm -f *.dvi *.aux *.log *.toc *.blg *.eps *.tif *.epsi eps *-mfpic* *.svg
- rm -f fig*.tex $(PICS) *.roff *.int *.pic gpic.m4 test.tex xxx* *.fig
+ rm -f fig*.tex $(TEXPICS) *.roff *.int *.pic gpic.m4 test.tex xxx* *.fig
+ rm -f rose.pdf
rm -f *.dim *.bak rotate.ps tst.ps *.bbl *-pics.ps
- rm -f *.tfm *[0-9]pk *.png *.1 *.gif
+ rm -f *.tfm *[0-9]pk *.png *.svg *.1 *.gif
rm -f F_* Version.tex *stackdump *.ico ./.[A-Za-z]*
rm -rf distfile distfile.tar.gz mode.tex
@printf "\n"
diff --git a/graphics/circuit_macros/examples/Pconn.m4 b/graphics/circuit_macros/examples/Pconn.m4
index 2543048d00..495f1e1987 100644
--- a/graphics/circuit_macros/examples/Pconn.m4
+++ b/graphics/circuit_macros/examples/Pconn.m4
@@ -19,6 +19,7 @@ P1: [
arrow from G.w to C1.G.e
arrow from G.e to C2.G.w
`"\tt (,AF)"' at last [].s below
+ thicklines_
C03: pconnex(,AC) with .w at C2.e+(0.25,0)
`"\tt (,AC)"' at last [].s below
C3: pconnex(,ACF) with .w at last [].e+(0.2,0)
diff --git a/graphics/circuit_macros/examples/Planes.m4 b/graphics/circuit_macros/examples/Planes.m4
deleted file mode 100644
index b9d0579c69..0000000000
--- a/graphics/circuit_macros/examples/Planes.m4
+++ /dev/null
@@ -1,95 +0,0 @@
-.PS
-# Planes.m4
-threeD_init
-NeedDpicTools
-
-# This 3D diagram is like many others: define the facets, use the normal vectors
-# to determine visibility, sort and plot the facets from back to front.
-
-define(`mark',`"`$1'" at `$1'')
-
-# size parameters
- a = 3/2
- b = 0.4
- d = 1
-# Define intersecting lines in the plane
- A0: -a,-b
- A1: a,-b
- B0: Rot_(A0,120)
- B1: Rot_(A1,120)
- C0: Rot_(A0,240)
- C1: Rot_(A1,240)
-
-# intersections
-define(`lintersect',`intersect_(`$1'0,`$1'1,`$2'0,`$2'1)')
- AB: lintersect(A,B)
- BC: lintersect(B,C)
- CA: lintersect(C,A)
-
-# Store a point as x[i], y[i], z[i]
-define(`mkxyz',`
- x[$1] = $2
- y[$1] = $3
- z[$1] = $4')
-# Recover point coordinates
-define(`xyz',`x[$1], y[$1], z[$1]')
-
-# Facets are rectangles here; store 3 corners
-define(`mkfacet',`
- mkxyz((`$1')*3, 0,`$2'.x,`$2'.y)
- mkxyz((`$1')*3+1, 0,`$3'.x,`$3'.y)
- mkxyz((`$1')*3+2,-d,`$3'.x,`$3'.y)
-')
-# Define the facets
- mkfacet(1,A0,CA) mkfacet(2,CA,A0)
- mkfacet(3,CA,AB) mkfacet(4,AB,CA)
- mkfacet(5,AB,A1) mkfacet(6,A1,AB)
-
- mkfacet(7,B0,AB) mkfacet(8,AB,B0)
- mkfacet(9,AB,BC) mkfacet(10,BC,AB)
- mkfacet(11,BC,B1) mkfacet(12,B1,BC)
-
- mkfacet(13,C0,BC) mkfacet(14,BC,C0)
- mkfacet(15,BC,CA) mkfacet(16,CA,BC)
- mkfacet(17,CA,C1) mkfacet(18,C1,CA)
- nfacets = 18
-
-# View angles azimuth, elevation, rotation (degrees)
- setview( 10, 30, 5)
-
-ifelse(1,1,`
-# # create array of visible facets and sort
- n = 0
- for i=1 to nfacets do {
- mkxyz(-1,
- cross3D(diff3D(xyz(i*3+1),xyz(i*3)),diff3D(xyz(i*3+2),xyz(i*3+1))))
- dx = dot3D(xyz(-1),View3D)
- if dx > 0 then {
- dy[i] = dx/length3D(xyz(-1))
- n +=1
- d[n] = dot3D(sum3D(xyz(i*3),xyz(i*3+2)),View3D)/2
- ix[n] = i
- }
- }
- dpquicksort(d,1,n,ix)
-
-#print sprintf("n=%g",n); for i=1 to n do { print i,ix[i] }
-
-# Recover the 4th corner and draw
-define(`drawfacet',`
- NW_facet: Project(xyz(($1)*3))
- NE_facet: Project(xyz(($1)*3+1))
- SE_facet: Project(xyz(($1)*3+2))
- SW_facet: Project(x[($1)*3+2],y[($1)*3],z[($1)*3])
- shd = 1-($2)^4
- line from SW_facet to SE_facet then to NE_facet \
- then to NW_facet then to SW_facet shaded rgbstring(shd,shd,shd)
-# sprintf("%g",$1) at 0.5 between SW_facet and NE_facet
-# Loopover_(`x',`mark(x);',SW_facet,SE_facet,NE_facet,NW_facet)
- ')
-
-# # draw facets, shading with view cosines
- for i=1 to n do { drawfacet(ix[i],dy[ix[i]]) }
-')
-
-.PE
diff --git a/graphics/circuit_macros/examples/Plate.m4 b/graphics/circuit_macros/examples/Plate.m4
index 3937543d2a..14b6bbfbe3 100644
--- a/graphics/circuit_macros/examples/Plate.m4
+++ b/graphics/circuit_macros/examples/Plate.m4
@@ -8,7 +8,7 @@ cct_init
ifdef(`ASME_Y14-5_',,`include(ASME_Y14-5.m4)')
ifsvg(`svg_font(sans-serif,10bp__)',
`textht = 10bp__*2/3
- iflatex(`command "{\sf\small"')')
+ ifpostscript(,latexcommand({\sf\small))')
# ASME Y14.5 specs:
arrowht = textht*0.8
arrowwid = textht*0.6
@@ -170,5 +170,6 @@ thinlines_
] with .C at Section.Orig+(4.5*scale,0)
-command iflatex(`"}"',ifsvg(`"</g>"'))
+ifpostscript(,latexcommand(}%))
+ifsvg(command "</g>")
.PE
diff --git a/graphics/circuit_macros/examples/README-examples b/graphics/circuit_macros/examples/README-examples
index 1f37cf5f36..bcd3bf3728 100644
--- a/graphics/circuit_macros/examples/README-examples
+++ b/graphics/circuit_macros/examples/README-examples
@@ -1,59 +1,73 @@
-This directory contains examples.tex, source files for the diagrams
-that are imported when examples.tex is LaTeXed, and some other standalone
-diagrams. To generate examples.pdf in a unix-like environment (versions
-of unix, linux, cygwin, djgpp, ...):
+THIS DIRECTORY contains examples.tex, source files for the diagrams
+ that are imported when examples.tex is LaTeXed, some other example
+ diagrams, and a subdirectory for producing SVG files without invoking
+ LaTeX. To generate examples.pdf in a unix-like environment (versions
+ of unix, linux, cygwin, djgpp, ...):
1. Install the libraries as described in the top-level README file.
-2. In this directory, type "make". If your installed dpic is the
- Mingw version included in the dpic distribution, (a) edit the
- file windows.m4 to point to your installation folder, and (b) uncomment
- the CUSTOM=windows.m4 line in the Makefile, or type
- "make CUSTOM=windows.m4".
-
-To test one of the diagrams, say ex01.m4, type one of the following
-(and have a look at the comments at the top of the Makefile):
-"make ex01.ps"
-"make ex01.eps"
-"make ex01.pdf" (uses pdflatex)
-"make ex01.png" (requires Imagemagick convert)
-"make ex01.tif" (requires Imagemagick convert)
-"make ex01.svg" (requires Imagemagick convert, but see the svg folder)
+
+2. Verify that dpic is installed. Some of the examples also work
+ with gpic.
+
+3. In this directory, type "make", but note the following:
+
+ If your installed dpic is the precompiled Mingw version for Windows,
+ (a) edit the file windows.m4 to point to your installation folder,
+ and (b) uncomment the CUSTOM=windows.m4 line in the Makefile, or type
+ "make CUSTOM=windows.m4".
+
+ If you get an error in examples.log, your LaTeX installation might
+ need updating.
IN CASE OF DIFFICULTY: Look at files debug1.tex and debug2.m4, and
-follow the instructions.
-
-To test and debug a single diagram, write it into test.m4. Type
-"make tst" to process the file, creating test.tex, which is imported into
-tst.tex. The diagram source and tst.tex are processed twice in case
-the boxdim macro is being used. If you only need to process once, type
-"make tst1". In both cases the resulting file is tst.ps.
-To use tikz and pdflatex to produce test.pdf, type "make test.pdf" as above.
-
-To test and debug a single diagram in a different directory, copy Makefile
-to where you want to work, adjust the definition of LIBDIR
-in Makefile if environment variable M4PATH has not been defined, and type
-one of the above commands.
-
-By default, the dpic processor is invoked, producing TiKz commands.
-To use PSTricks instead, type "make clean; make examples.ps".
-To process the diagrams using TikZ PGF for processing either by LaTeX or
-PDFlatex, type "make" or "make examplespgf.ps" in the pgf subdirectory.
-
-There are often several methods for producing similar graphical results,
-particularly of text labels. Some of the diagrams in this directory are
-slightly more complicated than required for Tikz or PSTricks in order
-that they will work with other postprocessors. Dpic output that does
-not handle LaTeX labels has to be treated separately as, for example,
-in the svg directory.
-
-To process the diagrams using .eps intermediate files with embedded psfrag
-strings, go into the psfrag directory and read the README file.
-
-To process the diagrams using MetaPost, look in the mpost subdirectory.
-
-The xfig subdirectory contains the file xfig/xfiglib.fig, which contains
-elements in xfig 3.2 format produced by dpic for importing into xfig.
-
-SVG: Look in the svg directory for an experimental configuration file and
-examples. Type "make" in the svg directory to see the examples.
+ follow the instructions.
+
+SINGLE DIAGRAMS: To test one of the diagrams, say ex01.m4, type one of
+ the following (and have a look at the comments at the top of the Makefile):
+ "make ex01.ps"
+ "make ex01.eps"
+ "make ex01.pdf" (uses pdflatex)
+ "make ex01.png" (requires Imagemagick convert)
+ "make ex01.tif" (requires Imagemagick convert)
+ "make ex01.svg" (requires Imagemagick convert, but see the svg folder)
+
+DEBUGGING: To test and debug a single diagram, write it into test.m4. Type
+ "make tst" to process the file, creating test.tex, which is imported into
+ tst.tex. The diagram source and tst.tex are processed twice in case
+ the boxdim macro is being used. If you only need to process once, type
+ "make tst1". In both cases the resulting file is tst.ps.
+ To use tikz and pdflatex to produce test.pdf, type "make test.pdf" as above.
+
+ To test and debug a single diagram in a different directory, copy Makefile
+ to where you want to work, adjust the definition of LIBDIR
+ in Makefile if environment variable M4PATH has not been defined, and type
+ one of the above commands.
+
+TiKz and PSTricks: By default, the dpic processor is invoked, producing
+ TiKz commands. To use PSTricks instead, type "make clean; make
+ examples.ps". To process the diagrams using TikZ PGF for formatting
+ either by LaTeX or PDFlatex, type "make" or "make examplespgf.ps"
+ in the pgf subdirectory.
+
+SVG: Look in the svg directory for examples, and type "make".
+
+ALTERNATIVES: There are often several methods for producing similar
+ graphical results, particularly of text labels. Some of the diagrams
+ in this directory are slightly more complicated than required for Tikz
+ or PSTricks in order for them to work with other postprocessors. Dpic
+ output that does not produce LaTeX labels has to be treated separately
+ as, for example, in the svg directory.
+
+METAPOST: To process the diagrams using MetaPost, look in the mpost
+ subdirectory. To accommodate MetaPost, some of these sources use
+ latexcommand(...) when iflatex(command "...") or, simply, command "..."
+ would do.
+
+PSFRAG: To process the diagrams using .eps intermediate files with embedded
+ psfrag strings, go into the psfrag directory and read the README file.
+ As for METAPOST, some of these sources disable "command" or
+ "latexcommand".
+
+XFIG: The xfig subdirectory contains the file xfig/xfiglib.fig, which contains
+ elements in xfig 3.2 format produced by dpic for importing into xfig.
diff --git a/graphics/circuit_macros/examples/SampleFlow.m4 b/graphics/circuit_macros/examples/SampleFlow.m4
index f8d73ca203..077a0ba6e3 100644
--- a/graphics/circuit_macros/examples/SampleFlow.m4
+++ b/graphics/circuit_macros/examples/SampleFlow.m4
@@ -25,7 +25,7 @@ linethick = 1.2
{"Sample" ljust indent "Checking" ljust }
connect
B3: rbox offset
- {"Dimensionality" ljust indent "Sample Check" ljust }
+ {"Dimensionality" ljust at last box.w "Sample Check" ljust }
connect
B4: rbox offset
{"Sample" ljust indent "Synthesis" ljust "Techniques" ljust }
diff --git a/graphics/circuit_macros/examples/Smithchart.m4 b/graphics/circuit_macros/examples/Smithchart.m4
new file mode 100644
index 0000000000..fc6b5590db
--- /dev/null
+++ b/graphics/circuit_macros/examples/Smithchart.m4
@@ -0,0 +1,222 @@
+.PS
+# Smithchart.m4
+gen_init
+#https://utah.instructure.com/courses/684846
+#https://www.youtube.com/watch?v=RptPsP8hS4g
+#https://www.youtube.com/watch?v=UUk1R01uEoE
+##https://www.youtube.com/watch?v=TsXd6GktlYQ
+
+scalefactor = 6.5/2 # to vary the final chart diameter
+#calefactor = 6.5/2*3/4 # 3/4 scale for svg examples
+# Basic definitions
+define Rac {($1/($1+1),0)*scalefactor} # centre of const ra circle
+define rar {1/abs($1+1)*scalefactor} # radius
+define Xac {(1,1/($1))*scalefactor} # centre of const xa circle
+define xar {1/abs($1)*scalefactor} # radius
+define Rc {CRc[$1*100]} # Rc circle indexed by value
+define Xc {CXc[$1*100]} # Xc circle indexed by value
+define grayline {outlined graystring($1)}
+define arct {arc thick $1}
+
+# `SGamma(ra,xa) chart location of complex value'
+define(`SGamma',`(ifelse(`$2',0,`Rc($1).w',
+ `Cintersect(Rac(`$1'),rar(`$1'),Xac(`$2'),xar(`$2'), dnl
+ ifelse(substr(`$2',0,1),-,R))'))')
+# 1-piece Ra arc
+define(`RaArc1',`ifinstr(`$1',to,for ix=`$1' do,ix=`$1';) {
+ Rc(ix): arct(`$2') grayline(`$2'g) dnl
+ from SGamma(ix,`$3') to SGamma(ix,-(`$3')) with .c at Rac(ix)}')
+# 2-piece Ra arc
+define(`RaArc2',`ifinstr(`$1',to,for ix=`$1' do,ix=`$1';) {
+ Rc(ix): arct(`$2') grayline(`$2'g) dnl
+ from SGamma(ix,`$3') to SGamma(ix,`$4') with .c at Rac(ix)
+ arct(`$2') grayline(`$2'g) dnl
+ from SGamma(ix,-(`$4')) to SGamma(ix,-(`$3')) with .c at Rac(ix)}')
+# Positive and negative Xa arcs
+define(`XaArc2',`ifinstr(`$1',to,for ix=`$1' do,ix=`$1';) {
+ Xc(ix): arct(`$2') grayline(`$2'g) dnl
+ from SGamma(`$3',ix) to SGamma(`$4',ix) with .c at Xac(ix)
+ Xc(-ix): arct(`$2') grayline(`$2'g) dnl
+ cw from SGamma(`$3',-ix) to SGamma(`$4',-ix) with .c at Xac(-ix)}')
+
+define(`Smithchart',`[
+iflatex(s_init(tst))
+ifpostscript(,latexcommand({\tiny))
+ifsvg(svg_font(sans-serif,10bp__)
+ svg_rot_init(SmithchartDPV))
+
+ thk = 1.2 # width of thick lines (pt)
+ thn = 0.4 # thin lines
+ thkg = 0.33 # weight of thick lines
+ thkg =0.5
+ thng = 0.4 # weight of thin lines
+ thng = 0.6
+
+C: circle thick thk rad rar(0) at (0,0)
+ line thick thk grayline(thkg) from C.w to C.e
+
+Rc(50): circle thick thk grayline(thkg) rad rar(50) at Rac(50)
+Loopover_(`term',`RaArc1(patsubst(term,:,`,'))',
+ 20:thn:50,
+ 30 to 40 by 10:thn:50,
+ 20:thk:20,
+ 12 to 18 by 2:thn:20,
+ 10:thn:50,
+ 10:thk:20,
+ 6 to 9:thn:10,
+ 5:thk:10,
+ 2.2 to 4.81 by 0.2:thn:5,
+ 4:thn:20,
+ 4:thk:5,
+ 3:thn:10,
+ 3:thk:5,
+ 2:thn:20,
+ 2:thk:5,
+ 1.1 to 1.91 by 0.2:thn:2,
+ 1.2 to 2.01 by 0.2:thk:2,
+ 1:thn:10,
+ 1:thk:5,
+ 0.2 to 1.81 by 0.2:thn:5,
+ 0.2 to 0.81 by 0.2:thk:2,
+ 0.6 to 0.91 by 0.1:thk:1,
+ 0.55 to 0.951 by 0.1:thn:1,
+ 0.1 to 0.91 by 0.2:thn:2,
+ 0.1 to 0.91 by 0.2:thk:1,
+ 0.22 to 0.481 by 0.02:thn:0.5,
+ 0.01 to 0.191 by 0.01:thn:0.2,
+ 0.05 to 0.151 by 0.1:thk:0.2)
+
+Loopover_(`term',`RaArc2(patsubst(term,:,`,'))',
+ 0.05 to 0.451 by 0.1:thn:1:0.5,
+ 0.02 to 0.181 by 0.02:thn:0.5:0.1)
+
+Xc(50): arct(thk) cw grayline(thkg) from C.e \
+ to SGamma(0,50) with .c at Xac(50)
+Xc(-50): arct(thk) grayline(thkg) from C.e \
+ to SGamma(0,-50) with .c at Xac(-50)
+
+Loopover_(`term',`XaArc2(patsubst(term,:,`,'))',
+ 10 to 20 by 10:thn:0:50,
+ 7 to 9 by 2:thn:0:10,
+ 2 to 18 by 2:thn:0:20,
+ 0.2 to 4.81 by 0.2:thn:0:5,
+ 1.1 to 1.91 by 0.2:thn:0:2,
+ 1 to 4:thn:0:10,
+ 0.1 to 0.91 by 0.2:thn:0:2,
+ 0.22 to 0.481 by 0.02:thn:0:0.5,
+ 0.55 to 0.951 by 0.1:thn:0:1,
+ 10 to 20 by 10:thk:0:20,
+ 5:thk:0:10,
+ 1.2 to 1.81 by 0.2:thk:0:2,
+ 1 to 4:thk:0:5,
+ 0.2 to 0.81 by 0.2:thk:0:2,
+ 0.1 to 0.91 by 0.2:thk:0:1)
+
+Loopover_(`term',`XaArc2(patsubst(term,:,`,'))',
+ 0.05 to 0.451 by 0.1:thn:0.5:1,
+ 0.02 to 0.181 by 0.02:thn:0:0.5,
+ 0.02 to 0.191 by 0.01:thn:0:0.2, dnl 0.02 should be 0.01
+ 0.05 to 0.151 by 0.1:thk:0:0.2)
+dnl these avoid TeX arithmetic overflow:
+ line thick thn grayline(thng) from SGamma(0,0.01) to SGamma(0.2,0.01)
+ line thick thn grayline(thng) from SGamma(0,-0.01) to SGamma(0.2,-0.01)
+ dot(at C,,1,grayline(thkg))
+
+dnl Internal labels start here
+ textht = C.wid/120
+# Horizontal axis
+Loopover_(`t',`box wid textht ht textht*1.5 colored "white" \
+ with .se at Rc(t).w+(-2bp__,2bp__)
+ r_text(90,"t",at Rc(t).w+(-textht/3,textht*1.5))',
+ 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9, 1,1.2,1.4,1.6,1.8, 2,3,4,5,10,20,50)
+# Xc=1 labels
+Loopover_(`tt',
+ `define(`m4ta',patsubst(tt,:.*))define(`m4vl',patsubst(tt,.*:))dnl
+ X: SGamma(m4vl,1)
+ M: move from Rc(m4vl) to X; ax = lin_ang(M)*rtod_-90 #; print ax
+ r_text(m4ta,m4vl,at X+(Rect_(textht*2,ax+30)))
+ Y: X-Rc(m4vl); X: Rc(m4vl)+(Y.x,-Y.y)
+ r_text(-m4ta,m4vl,at X+(Rect_(textht*1.7,-(ax+30)))) ',
+ 10:0.2, 19:0.4, 26:0.6, 32:0.8, 37:1)
+# right-side circumference
+Loopover_(`tt',
+ `define(`m4ta',patsubst(tt,:.*))define(`m4vl',patsubst(tt,.*:))dnl
+ X: Xc(m4vl).start; ax = atan2(X.y,X.x)*rtod_ ; # print round_(ax)
+ r_text(m4ta,m4vl,at X+(Rect_(textht*2,ax-120)))
+ if m4vl>=2 then {
+ r_text(-m4ta,m4vl,at (X.x,-X.y)+(Rect_(textht*1.5,-ax+135))) }\
+ else { r_text(-m4ta,m4vl,at (X.x,-X.y)+(Rect_(textht*2,-ax+150))) } ',
+ 6:20, 11:10, 23:5, 28:4, 37:3, 53:2, 58:1.8, 64:1.6, 71:1.4, 80:1.2, 90:1)
+# left-side circumference
+Loopover_(`tt',
+ `X: Xc(m4Lx*0.1).start; # print round_(atan2(X.y,X.x)*rtod_-180)
+ r_text(-patsubst(tt,:,`,'),at X+(Rect_(textht*1.7,-m4Lx*11+40)))
+ r_text( patsubst(tt,:,`,'),at (X.x,-X.y)+(Rect_(textht*2.1,m4Lx*11-30))) ',
+ 11:0.1, 23:0.2, 33:0.3, 44:0.4, 53:0.5, 62:0.6, 70:0.7, 77:0.8, 84:0.9)
+# Ra=1 labels
+Loopover_(`tt',`X: SGamma(1,m4Lx*0.2)
+ M: move from Rac(1) to X; # print round_(lin_ang(M)*rtod_-180)
+ r_text(-eval(m4Lx*11),ifelse(m4Lx,5,1,0.eval(m4Lx*2)),
+ at X+(Rect_(textht*1.5,-m4Lx*11+40)))
+ r_text( eval(m4Lx*11),ifelse(m4Lx,5,1,0.eval(m4Lx*2)),
+ at (X.x,-X.y)+(Rect_(textht*2,m4Lx*11-30))) ',
+ 11:0.2, 23:0.4, 33:0.6, 44:0.8, 53:1)
+
+ textht *=0.9
+# Wavelength circle and tics
+ wvsep = textht*3/2
+ wltic = C.wid/120
+ circle thick thn grayline(thkg) diam C.diam+wltic/2+wvsep*11 at C
+W: circle thick thn grayline(thkg) diam C.diam+wvsep*8 at C
+ for tc=0 to 249 do {ax = 180-tc/250*360; line thick thn grayline(thkg) \
+ from W+(Rect_(W.rad+wltic/2,ax)) to W+(Rect_(W.rad-wltic/2,ax)) }
+# Wavelength circle labels
+for_(0,49,1,
+ `ifelse(eval(m4x<5),1,,
+ `r_text(eval(90-m4x*180/25),ifelse(m4x,0,0,eval(m4x<10),1,0.0`'m4x,0.`'m4x),
+ at W+(Rect_(W.rad+wltic/2+textht*0.5,180-m4x*180/25)))')
+ ifelse(eval(m4x<47),1,
+ `r_text(eval(90-m4x*180/25),ifelse(m4x,0,0,eval(m4x>40),1,0.0`'eval(50-m4x),
+ 0.`'eval(50-m4x)), at W+(Rect_(W.rad-wltic/2-textht*1.0,180-m4x*180/25)))')')
+
+ circle thick thn grayline(thkg) diam C.diam+wvsep*5 at C
+A: circle thick thn grayline(thkg) diam C.diam+wvsep*2.5 at C
+ for tc=0 to 359 by 2 do {line thick thn grayline(thkg) \
+ from A+(Rect_(A.rad+wltic/2,tc)) to A+(Rect_(A.rad,tc)) }
+for_(20,170,10,
+ `r_text(eval(-90+m4x),m4x,at A+(Rect_(A.rad+textht*0.5,m4x)))
+ r_text(eval( 90-m4x),-m4x,at A+(Rect_(A.rad+textht*1.2,-m4x)))
+ ')
+ r_text(90,180,at A-(A.rad+textht/2,0))
+Loopover_(`rca',
+ `r_text(eval(90-(180-rca/10)),eval(m4Lx*5+5),
+ at A+(Rect_(A.rad-textht*0.7,rca/10)))
+ r_text(eval(-90+(180-rca/10)),eval(-m4Lx*5-5),
+ at A+(Rect_(A.rad-textht*0.7,-rca/10))) ',
+ 195,295,392,490,588,685,782,880,967,1072,
+ 1165,1260,1352,1438,1518,1598,1645)
+
+# Internal labels
+ setrgb(thng,thng,thkg)
+ "RESISTANCE R/Zo OR CONDUCTANCE G/Yo" at C+SGamma(0.5,0)-(0,C.rad/40)
+ Loopover_(`Lttr',`ifelse(Lttr,*,,`r_text(eval(87-m4Lx*86/100),Lttr,
+ at W+(Rect_(W.rad+wltic/2+textht*0.5, 177-m4Lx*0.86))) ')',
+ W,A,V,E,L,E,N,G,T,H,S,*,T,O,W,A,R,D,*,G,E,N,E,R,A,T,O,R)
+ Loopover_(`Lttr',`ifelse(Lttr,*,,`r_text(eval(115-m4Lx*86/100),Lttr,
+ at W+(Rect_(W.rad-wltic/2-textht*1.0, 204-m4Lx*0.86))) ')',
+ W,A,V,E,L,E,N,G,T,H,S,*,T,O,W,A,R,D,*,L,O,A,D)
+ Loopover_(`Lttr',`ifelse(Lttr,*,,`define(`xa','13-m4Lx*86/100`)
+ r_text(eval(xa-90),Lttr,at A+(Rect_(A.rad+textht*0.7, xa))) ')',
+ R,E,F,L,E,C,T,I,O,N,*,C,O,E,F,F,I,C,I,E,N,T,*,A,N,G,L,E)
+ Loopover_(`Lttr',`ifelse(Lttr,*,,`define(`xa','14-m4Lx*86/100`)
+ r_text(eval(xa-90),Lttr,at A+(Rect_(A.rad-textht*0.7, xa))) ')',
+ T,R,A,N,S,M,I,S,S,I,O,N,*,C,O,E,F,F,I,C,I,E,N,T,*,A,N,G,L,E)
+ resetrgb
+
+ifpostscript(,latexcommand(}%))
+ifsvg(command "</g>")
+] ')
+
+Smithchart at (0,0)
+
+.PE
diff --git a/graphics/circuit_macros/examples/Stator.m4 b/graphics/circuit_macros/examples/Stator.m4
index 9141d20bd4..fc74a111e7 100644
--- a/graphics/circuit_macros/examples/Stator.m4
+++ b/graphics/circuit_macros/examples/Stator.m4
@@ -2,6 +2,7 @@
# Stator.m4
# https://tex.stackexchange.com/questions/612620/how-to-paint-inside-a-set-of-lines
gen_init
+scale = 0.5
outerwid = 5/2
innerwid = 3.7/2
diff --git a/graphics/circuit_macros/examples/Ttree.m4 b/graphics/circuit_macros/examples/Ttree.m4
deleted file mode 100644
index 6cf9203b00..0000000000
--- a/graphics/circuit_macros/examples/Ttree.m4
+++ /dev/null
@@ -1,56 +0,0 @@
-.PS
-# Ttree.m4
-# A binary tree using m4
-gen_init
-sinclude(tst.dim)
-s_init(Ttree)
-
-# `Node(no in row, head [location],
-# displacement of top of body (.n) wrt head,
-# body Node 1, body Node 2, ...) '
-define(`Node',`
- Head`$1': `$2'
- ifelse(`$3',,,`Body`$1': [
- Loopover_(`v',`v; define(`m4ct',m4Lx)',shift(shift(shift($@))))
- ] with .n at Head`$1' + `$3'
- connect(`$1',m4ct)')')
-
-define(`connect',`Bot: move from Head$1.sw to Head$1.se
-for_(1,`$2',1,
- `Top: move from Body$1.Head`'m4x.nw to Body$1.Head`'m4x.ne
- Move: move from Head$1 to Body$1.Head`'m4x
- if Bot.len*Top.len*Move.len > 0 then {
- line from Intersect_(Move,Top) to Intersect_(Move,Bot)}')')
-
- vsep = 0.75
-
- Node(1,s_box($`h(h(h(x_1,x_2),h(x_3,x_4)),h(h(x_5,x_6),h(x_7,x_8)))'$),
- (0,-vsep),
- Node(1,s_box($`h(h(x_1,x_2),h(x_3,x_4))'$),
- (0,-vsep),
- Node(1,s_box($`h(x_1,x_2)'$),
- (0,-vsep),
- Node(1,s_box($`x_1:=((A,pk_A),h_1)'$)),
- Node(2,s_box($`x_2:=((B,pk_B),h_2)'$) \
- with .n at last "".ne+(0.2,-vsep*2/3))),
- Node(2,s_box($`h(x_3,x_4)'$) with .nw at Head1.ne+(Body1.wid/2+0.1,0),
- (0,-vsep),
- Node(1,s_box($`x_3:=((A,pk_A^\prime),h_3)'$)),
- Node(2,s_box($`x_4:=((D,pk_D),h_4)'$) \
- with .n at last "".ne+(0.2,-vsep*2/3)))),
- Node(2,s_box($`h(h(x_5,x_6),h(x_7,x_8))'$) \
- with .nw at Head1.ne+(Body1.wid/2,0),
- (0,-vsep),
- Node(1,s_box($`h(x_5,x_6)'$),
- (0,-vsep*5/4),
- Node(1,s_box($`x_5:=((E,pk_E),h_5)'$)),
- Node(2,s_box($`x_6:=((H,pk_H),h_6)'$) \
- with .n at last "".ne+(0.2,-vsep*2/3))),
- Node(2,s_box($`h(x_7,x_8)'$) with .nw at Head1.ne+(Body1.wid/2+0.1,0),
- (0,-vsep*5/4),
- Node(1,s_box($`x_7:=((D,pk_D^\prime),h_7)'$)),
- Node(2,s_box($`x_8:=((K,pk_K),h_8)'$) \
- with .n at last "".ne+(0.2,-vsep*2/3))),
- Node(3,s_box($`h(x_9)'$) at 0.5 between Head1 and Head2)))
-
-.PE
diff --git a/graphics/circuit_macros/examples/Tubediags.m4 b/graphics/circuit_macros/examples/Tubediags.m4
index b49f0ffa8e..eb402755c7 100644
--- a/graphics/circuit_macros/examples/Tubediags.m4
+++ b/graphics/circuit_macros/examples/Tubediags.m4
@@ -4,7 +4,7 @@
cct_init
include(tubedefs.m4)
-iflatex(`latexcommand({\sf)')
+ifpostscript(,iflatex(`latexcommand({\sf)'))
Overall:[
@@ -366,5 +366,5 @@ PO: dot
#showbox_
#print last [].wid,last [].ht
-iflatex(latexcommand(}))
+ifpostscript(,iflatex(latexcommand(})))
.PE
diff --git a/graphics/circuit_macros/examples/UNO.m4 b/graphics/circuit_macros/examples/UNO.m4
new file mode 100644
index 0000000000..02e89ea13a
--- /dev/null
+++ b/graphics/circuit_macros/examples/UNO.m4
@@ -0,0 +1,568 @@
+.PS
+# UNO.m4
+log_init
+include(ics.m4)
+finalscale = 0.72
+textht = 0.1/finalscale
+textoffset = 1.5bp__ * 2
+ifpostscript(,latexcommand({\tiny\sf))
+
+divert(-1)
+
+ `Header([A][1|2], rows, wid, ht,
+ boxspec, pinlen;pinsize)
+ arg1: A= type A; number of columns
+ arg2: pins per column
+ arg3,4: custom wid, ht
+ arg5: eg fill_(0.9)'
+define(`Header',
+`[ define(`m4tp',ifinstr(`$1',A,A))define(`m4Hq',patsubst(`$1',A))dnl
+ define(`m4Hn',`ifelse(m4Hq,,1,m4Hq)')dnl
+ define(`m4Hm',`ifelse(`$2',,2,`$2')')dnl
+ define(`m4Hw',`ifelse(`$3',,`m4Hn*L_unit*3',`($3)')')dnl
+ define(`m4Hh',`ifelse(`$4',,`m4Hm*L_unit*3',`($4)')')dnl
+ ifinstr(`$6',;,
+ `stacksplit_(`m4Jdr',`$6',;)dnl
+ define(`m4Jps',ifelse(m4Jdr,,`L_unit',m4Jdr))popdef(`m4Jdr')dnl
+ define(`m4Jpl',ifelse(m4Jdr,,`lg_plen*L_unit',m4Jdr))popdef(`m4Jdr') ',
+ `define(`m4Jps',L_unit)dnl
+ define(`m4Jpl',`ifelse(`$6',,lg_plen*L_unit,`$6')')')dnl
+ Block: rotbox(m4Hw,m4Hh,`$5')
+ ifelse(`m4tp',A,`pushdef(`L_unit',(linewid/6))')
+ define(`m4Hct',1)dnl
+ for_(1,m4Hm,1,
+ `HeaderPin(Block.NW+vec_(m4Jps*3/2,-(m4x-1/2)*m4Hh/m4Hm),
+ ifinstr(m4tp,A,1,eval(m4Hct-1)),
+ P`'m4Hct, w, (m4Jpl+m4Jps);m4Jps) define(`m4Hct',incr(m4Hct))
+ ifelse(m4Hn, 2, `HeaderPin(Block.NE+vec_(-m4Jps*3/2,-(m4x-1/2)*m4Hh/m4Hm),
+ 1, P`'m4Hct, e, (m4Jpl+m4Jps);m4Hps) define(`m4Hct',incr(m4Hct))') ')
+ ifelse(`m4Hq',A,`popdef(`L_unit')')
+ `$7' ]')
+ `HeaderPin(location, type, Picname, n|e|s|w,
+ [length][;pinsize])
+ arg2: 0= square'
+define(`HeaderPin',`
+ ifinstr(`$5',;,
+ `stacksplit_(`m4Hdr',`$5',;)dnl
+ define(`m4Hps',ifelse(m4Hdr,,`L_unit',m4Hdr))popdef(`m4Hdr')dnl
+ define(`m4Hpl',ifelse(m4Hdr,,`lg_plen*L_unit',m4Hdr))popdef(`m4Hdr') ',
+ `define(`m4Hps',L_unit)dnl
+ define(`m4Hpl',`ifelse(`$5',,lg_plen*L_unit,`$5')')')dnl
+ ifelse(`$1',,,`move to `$1';')
+ ifelse(`$3',,,`$3':) line to ifelse(
+ `$4',n,`rvec_(0,m4Hpl)', `$4',e,`rvec_(m4Hpl,0)',
+ `$4',s,`rvec_(0,-m4Hpl)', `rvec_(-m4Hpl,0)')
+ ifelse(`$3',,,Pin`$3':) ifelse(ifelse(`$2',,0,`$2'),0,
+ `rotbox(m4Hps,m4Hps,fill_(1))',
+ `circle diam m4Hps fill_(1)') at last line.start ')
+
+define(`brdge',`eleminit_(`$1')
+ define(`m4h',ifelse(`$2',,`sourcerad_',`($2)/2'))dnl
+ { line to rvec_(rp_len/2-m4h/2,0)
+ move to rvec_(m4h/2,0)
+ for m4ng=75 to 255 by 180 do {{
+ m4fshade(0, arc cw from rvec_(Rect_(m4h/2,m4ng)) \
+ to rvec_(Rect_(m4h/2,-m4ng)) \
+ with .c at Here ) }}
+ line from rvec_(m4h/2,0) to rvec_(rp_len/2,0) }
+ { [box invis ht_ m4h wid_ m4h] at rvec_(rp_len/2,0) }
+ line to rvec_(rp_len,0) invis ')
+
+define(`ATMEGA16U2',`[
+ Chip: box wid 10*lg_pinsep ht 25*lg_pinsep
+ Loopover_(`x',
+ `Arightpin(patsubst(x,;,`,'))',
+ 6;PD0, 7;PD1, 8;PD2, 9;PD3, 10;PD4, 11;PD5, 12;PD6, 13;PD7,
+ 131;nul,
+ 5;PC2, 26;PC4, 25;PC5, 23;PC6, 22;PC7,
+ 132;nul,
+ 133;nul,
+ 14;PB0, 15;PB1, 16;PB2, 17;PB3, 18;PB4, 19;PB5, 20;PB6, 21;PB7)
+ Loopover_(`x',
+ `Aleftpin(patsubst(x,;,`,'))',
+ 33;PAD,
+ 100;nul,
+ 28;UGND, 29;D$+$, 30;D$-$, 31;UVCC, 27;UCAP,
+ 101;nul, 102;nul,
+ 3;GND, 4;VCC, 103;nul,
+ 104;nul,
+ 32;AVCC,
+ 105;nul, 106;nul,
+ 1;XTAL1,
+ 107;nul,
+ 2;XTAL2(PC0),
+ 108;nul, 109;nul)
+ lg_pin(Pin109+(0,lg_pinsep),RESET,Pin24,wN,24,pinlen)
+ ]')
+define(`Aleftpin',`move to Chip.sw+(0,m4Lx*lg_pinsep)
+ Pin`$1': ifelse(`$2',nul,Here,dnl
+ `line left pinlen "`$1'" above
+ "`$2'" ljust at last line.start')')
+define(`Arightpin',`move to Chip.se+(0,m4Lx*lg_pinsep)
+ Pin`$1': ifelse(`$2',nul,Here,dnl
+ `line right pinlen "`$1'" above
+ "`$2'" rjust at last line.start')')
+
+define(`ATMEGA328P',`[
+ Chip: box wid 10*lg_pinsep ht 23*lg_pinsep
+ Loopover_(`x',
+ `Arightpin(patsubst(x,;,`,'))',
+ 2;PD0, 3;PD1, 4;PD2, 5;PD3, 6;PD4, 11;PD5, 12;PD6, 13;PD7,
+ 100;nul,
+ 23;PC0, 24;PC1, 25;PC2, 26;PC3, 27;PC4, 28;PC5,
+ 101;nul,
+ 14;PB0, 15;PB1, 16;PB2, 17;PB3, 18;PB4, 19;PB5)
+ Loopover_(`x',
+ `Aleftpin(patsubst(x,;,`,'))',
+ 201;nul, 202;nul, 203;nul, 204;nul, 205;nul, 206;nul, 207;nul, 208;nul,
+ 209;nul,
+ 8;GND, 7;VCC,
+ 301;nul,
+ 22;AGND, 20;AVCC, 21;AREF,
+ 302;nul,
+ 9;XTAL1,
+ 303;nul,
+ 10;XTAL2,
+ 304;nul, 305;nul)
+ lg_pin(Pin305+(0,lg_pinsep),RESET,Pin1,wN,1,pinlen)
+ ]')
+
+define(`rswitch',`dswitch(`$1',,WBoDCP)
+ DS: last line.start; DC: last line.c; DE: last line.end
+ DL: DC-vec_(dimen_/6,0); DR: DC+vec_(dimen_/6,0)
+ {{"1" at DL above rjust}; {"3" at DR above ljust}
+ { line from DL to DL-vec_(0,dimen_/6) chop dotrad_ chop 0
+ {"2" below rjust}
+ continue to DS-vec_(0,dimen_/6) then to DS; dot }
+ { line from DR to DR+vec_(0,-dimen_/6) chop dotrad_ chop 0
+ {"4" below ljust}
+ continue to DE+vec_(0,-dimen_/6) then to DE; dot }
+ line from DC+vec_(dimen_/10,-dimen_/6) to DC+vec_(-dimen_/10,-dimen_/6)
+ move to last line.c; line to rvec_(0,-dimen_/3) \
+ then to rvec_(-dimen_/3,-dimen_/3)
+ {"5" below}} ')
+
+divert(0)dnl
+[
+
+ define(`pinlen',`30bp__')
+ define(`lg_pinsep',(1.2*lg_pinsep))
+ del = lg_pinsep
+ define(`pindiam',0.1)
+
+ define(`egnd',`ground(,,E); "GND" at last line.c below')
+
+ U3: ATMEGA16U2
+ `"ATMEGA16U2-MU(R)"' at U3.Chip.s below
+ `"U3"' at U3.Chip.nw ljust above
+ ZU4: ATMEGA328P with .Chip.nw at U3.Chip.sw+(-2.5,-10*del)
+ `"ATMEGA328P-PU"' at ZU4.Chip.s below
+ `"ZU4"' at ZU4.Chip.nw ljust above
+
+ dot(at U3.Pin2.end)
+ R1: resistor(down_ 2*lg_pinsep,,E)
+ rlabel(,"R1" rjust "1M" rjust)
+ dot
+ dot(at R1.start-(2*del,0))
+ xtal(down_ 2*lg_pinsep)
+ rlabel(16,,"MHz"); dot
+ XT2: dot(at last line.start-(2*del,0)); { "XT2" at last [].n above }
+
+ Br1: brdge(left_ from U3.Pin33.end to (XT2,U3.Pin33))
+ rlabel(1,,2); llabel(,"GROUND")
+ BRE: dot
+ line to (Here,U3.Pin28) then to U3.Pin28.end
+ {"UGND" at (Br1,Here) above}
+
+ XT1: dot(at XT2-(del,R1.len)); { "XT1" at last [].n above }
+ line from XT1 to U3.Pin1.end
+ line from U3.Pin2.end to (XT1,XT2)
+ C11: capacitor(left_ 3*del); rlabel(,"C11"); llabel(,"22`'pF")
+ C9: capacitor(from XT1 to (Here,XT1)); {"C9" "22`'pF" at last [].s+(0,-11bp__)}
+ { line to C11.end }
+ dot
+ G1: egnd
+ line from XT1 down_ 3*del; continue to (G1,Here); dot(,,1)
+ {"XT3" at last [].n above}
+ dot(at Here+(0,-3/2*del),,1); {"XT4" at last [].n above}
+ { line to (XT2,Here) then to XT2 chop dotrad_ chop 0 }
+ USBVCC: dot(at Here+(0,-7/2*del),,1)
+ {"USBVCC" at last [].n-(3/2*del,0) above ljust}
+ { line to (Here,U3.Pin31) chop dotrad_ chop 0; continue to U3.Pin31.end }
+ dot(at Here+(2*del,0),,1); {"VUCAP" at last [].e+(0,-5bp__) ljust}
+ line to (Here,U3.Pin27) chop dotrad_ chop 0; dot
+ line from U3.Pin27.end to (G1.x-4.5*del,U3.Pin27.y)
+ C8: capacitor(down_ to (Here,Br1)); llabel("C8",,1`\,'\mu)
+ Bus1: dot
+
+ dot(at U3.Pin33.end)
+ move to U3.Pin3.end; line to (Here,U3.Chip.s)
+ G2: ground(,T,E); {"GND" at last line.c below }
+
+ dot(at U3.Pin32.end)
+ {line to U3.Pin4.end; dot}
+ line left del; ground(,,E,U); {"$+5`\,'$V" at last line.c above}
+
+ line from U3.Pin4.end left_ 2*del
+ capacitor(down_ 3*del); { llabel("C7",,100n) }
+ G3: ground(,T,E); {"GND" at last line.c below }
+
+ line from U3.Pin30.end to (G1.x-2*del,U3.Pin30.y); TD: Here
+ continue to (Here,U3.Pin32)
+ { "RD$-$" above rjust }; continue left_ 1.5*del
+ RN3A: resistor(left_ 3/2*dimen_,,E); rlabel(,"22R RN3A")
+ Dm: line left_ 7*del
+
+USB: [ K: box invis wid dimen_/2 ht 5*lg_pinsep
+ "USB" rjust at K.e
+ line thick 1.5 from K.nw to K.ne then to K.se then to K.sw
+ Loopover_(`x',
+ `Pin`'m4Lx: K.ne-(0,m4Lx/5*K.ht)
+ "x" at Pin`'m4Lx ljust above',
+ 1 XUSB, 2 D$-$, 3 D$+$, 4 UGND)
+ P_1: K.sw; {"P1" at P_1 below rjust}
+ P_2: K.s; {"P2" at P_2 below ljust}
+ ] with .Pin2 at Here; "X2" at USB.ne above rjust
+
+ move to U3.Pin29.end
+ line to (TD.x-del,Here.y); continue to (Here,Dm-(0,lg_pinsep))
+ { "RD$+$" above rjust}
+ continue to (RN3A.start,Here)
+ RN3D: resistor(left_ 3/2*dimen_,,E); llabel(,"22R RN3D")
+ line to USB.Pin3
+
+ dot(at RN3A.end); line to (Here,RN3D)
+ Z2: variable(`resistor(down_ to (Here,U3.Pin27),,E); rlabel("Z2")',NN)
+ dot(at RN3D.end-(2*del,0))
+ Z1: variable(`resistor(to (Here,U3.Pin27),,E); rlabel("Z1")',NN)
+ dot; line to (Z2,Here)
+ move up Z1.len/4 from last line.c; "CG0603MLC-05E" "X 2"
+
+ line down_ del from USB.P_1; continue to (USB.P_2,Here); dot
+ line from USB.P_2 to (USB.P_2,Z1.end) then to Z1.end
+ dot(at (USB.P_2,Here)+(3/2*del,0)); line to (Here,USBVCC)
+ dot(,,1); {"USHIELD" at last [].n+(4bp__,0) above}
+
+ L1: reversed(`inductor',down_ from Z1.end to (Z1,C8.end),W,,)
+ rlabel(,"L1"); llabel("BLM21" ljust); dot
+ { dot(at (Z2,Here)); line to (Here,U3.Pin28); dot(,,1)
+ "UGND" at last [].n above }
+ line from USB.Pin1 to (Z2,USB.Pin1) then up 2*del
+ XUSB: dot(,,1); {"XUSB" at last [].n above}
+ line from (Z1,USB.Pin3) to (Z1,XUSB);
+ DP: dot(,,1); {"D$+$" at last [].n above}
+ dot(at (DP,USB.Pin2)-(2*del,0)); line to (Here,XUSB)
+ DM: dot(,,1); "D$-$" at last [].n above
+ line from USB.Pin4 to (DM,USB.Pin4) then to (DM,BRE) then to BRE
+
+ line from U3.Pin18.end right_ 3.5*del
+ JP2: Header(A2,2,4*del,2*lg_pinsep,,0.2;pindiam) with .P3.end at Here
+ "JP2" at JP2.Block.nw above ljust
+ "2X2M - NM" at JP2.s below
+ "1" at JP2.P3.end above ljust; "3" at JP2.P1.end above ljust
+ "2" at JP2.P4.end above rjust; "4" at JP2.P2.end above rjust
+ line from JP2.P1.end to (JP2.P1.end,U3.Pin19) then to U3.Pin19.end
+ dot(at JP2.P1.end); line up 3.5*del
+ TPPB5: dot(,,1); {"PB5" at last [].e ljust}
+ TPPB4: dot(at TPPB5-(del*3/2,0),,1); {"PB4" at last [].w rjust}
+ line to (Here,JP2.P3); dot
+ line from JP2.P2.end to (JP2.P2.end,TPPB4)
+ TPPB7: dot(,,1); {"PB7" at last [].w rjust}
+ line from JP2.P4.end right del*3/2; continue to (Here,TPPB4)
+ TPPB6: dot(,,1); {"PB6" at last [].n above}
+ line from U3.Pin20.end right del then up del; continue to (TPPB6,Here); dot
+ line from U3.Pin21.end up del; continue to (TPPB7,Here); dot
+
+ ICSP1: Header(A2,3,4*del,2.5*lg_pinsep,,0.2;pindiam) \
+ with .P1.end at (JP2.P1.end,U3.Pin14)
+ "ICSP1" at last [].Block.nw above ljust
+ "3X2 M" at last [].Block.sw below ljust
+ for_(1,5,2,`"m4x" at ICSP1.P`'m4x.end above ljust')
+ for_(2,6,2,`"m4x" at ICSP1.P`'m4x.end above rjust')
+ line from ICSP1.P1.end to (ICSP1.P1.end,U3.Pin17) then to U3.Pin17.end
+ line from ICSP1.P3.end left del; continue to (Here,U3.Pin15) \
+ then to U3.Pin15.end
+
+ dot(at U3.Pin24.end);
+ RN1C: resistor(up_ 5*lg_pinsep,,E); rlabel(,"10K","RN1C"); llabel(5,,3) dot
+ line up_ 2*del; ground(,T,E,U); {"+5 V" at last line.w rjust}
+ dot(at U3.Pin24.end-(del,0));
+ D3: diode(up_ RN1C.len); llabel(,,"D3")
+ line to (TPPB6.x+del,Here.y)
+ continue to (Here,ICSP1.P2.end) then to ICSP1.P2.end
+ line from ICSP1.P5.end down 2*del; continue to (TPPB6.x+2*del,Here.y)
+ TRESET2: Here
+ continue to (Here.x,D3.end.y+del) then to (RN1C.end.x-2.5*del,D3.end.y+del)
+ continue to (Here,U3.Pin24) then to U3.Pin24.end
+ G4: ground(at ICSP1.P6.end,,E); {"GND" at last line.c below }
+ line from ICSP1.P4.end right del then up U3.Pin16.y-ICSP1.P4.y \
+ then to U3.Pin16.end
+ dot(at ICSP1.P1.end); line left_ 2.5*del then down_ 5*del
+ MISO2: dot(,,1); {"MISO2" at last [].s below }
+ dot(at ICSP1.P3.end-(del,0)); line to (Here,MISO2)
+ SCK2: dot(,,1); {"SCK2" at last [].s below ljust }
+ dot(at TRESET2); line to (Here,SCK2)
+ RESET2: dot(,,1); {"RESET2" wid 36bp__ at last [].s below }
+ dot(at ICSP1.P4.end+(del,0)); line to (Here,RESET2)
+ MOSI2: dot(,,1); {"MOSI2" at last [].s-(del,0) below }
+
+ line right_ del from U3.Pin11.end then up_ del*3/2
+ TXLED: reversed(`diode',right_ elen_,LER)
+ rlabel(,"YELLOW"); llabel("TX"); dot
+ {line up_ del; TPTXL: dot(,,1); "TXL" at last [].n above}
+ RN2C: resistor(right_ elen_,,E); llabel(,"1 K RN2C"); rlabel(6,,3); dot
+ line from U3.Pin10.end to (TXLED.start,U3.Pin10)
+ RXLED: reversed(`diode',to (TXLED.end,Here),LER)
+ rlabel(,"YELLOW"); llabel("RX"); dot
+ {line up_ del; dot(,,1); "RXL" at last [].n above}
+ RN2B: resistor(right_ elen_,,E); llabel(,"1 K RN2B"); rlabel(7,,2)
+ line to (Here,TPTXL); ground(,T,E,U); "+5 V" at last line.c above
+
+# ZU4 connections
+ line left_ del*3/2 from ZU4.Pin7.end; dot
+ {line up_ del; G4: ground(,T,E,U); "+5 V" at last line.c above }
+ C6: capacitor(down dimen_); llabel("100n",,"C6"); dot
+ { dot(at ZU4.Pin8.end) }; dot(at (ZU4.Pin8.end,Here))
+ { G4: ground(at Here+(0,-del),,E); {"GND" at last line.c below }
+ line to ZU4.Pin22.end }
+ line left_ Here.x-C6.x + dimen_*5/4
+ C10: capacitor(up_ C6.len); llabel("100n",,"C10"); dot
+ { line to (Here,ZU4.Pin20) then to ZU4.Pin20.end }
+ L2: inductor(right_ to C6.start,W); rlabel(,"L2"); llabel(,"100$`\,'\mu$H")
+
+ line left 2*del from ZU4.Pin9.end; PE: dot
+ R2: resistor(up_ to (Here,ZU4.Pin10),,E); llabel(,"R2"); rlabel(,"1 M"); dot
+ dot(at Here-(del*4.0,0)); { "XTAL2" above ljust }
+ XTAL: xtal(down_ R2.len); llabel("16 MHz"); dot; { "XTAL1" below ljust }
+ pushdef(`dimen_',dimen_/2)
+ capacitor(left_ del from 0.2 between XTAL.start and XTAL.end)
+ capacitor(left_ del from 0.8 between XTAL.start and XTAL.end)
+ popdef(`dimen_')
+ line up XTAL.len*0.6
+ line left del from last line.c then down del
+ G5: ground(,T,E); "GND" at last line.c below
+ line down_ del from XTAL.end; dot(,,1); "XT1" at last [].s below
+ line up del from XTAL.start; dot(,,1); "XT2" at last [].n above
+ line from XTAL.start to ZU4.Pin10.end
+ line from XTAL.end to ZU4.Pin9.end
+ line left 2*del from ZU4.Pin1.end; dot
+ D2: diode(up_ dimen_); rlabel(,"D2")
+ dot(at D2.start-(2.5*del,0))
+ RN1D: resistor(up_ D2.len,,E); rlabel("10 K",,"RN1D"); dot
+ { line to D2.end }
+ line up_ del; ground(,T,E,U); "+5 V" at last line.c above
+
+ line from ZU4.Pin1.end to (RN1D-(1.5*del,0),ZU4.Pin1) then up 7*del
+ continue to (ZU4.Chip.w,Here)+(del,0); BRB: dot
+ { line down_ 2*del; Br2: brdge(right_ dimen_)
+ llabel(1,,2); rlabel(,"RESET\_EN"); line up_ 2*del; dot }
+ line right_ dimen_+del
+ C5: capacitor(right_ dimen_); llabel(,"C5"); rlabel("100n"); dot
+ { RN2D: resistor(down_ dimen_,,E); rlabel(,"1 K"); llabel(,"RN2D")
+ G6: ground(,T,E); "GND" at last line below }
+ { line up_ del; DTR: dot(,,1); "DTR" at last [].e ljust }
+ line from U3.Pin13.end right del/2; continue to (Here,U3.Chip.s) \
+ then left+2*del; continue to (Here,BRB) then to C5.end
+ TP2: Here; continue to C5.end
+
+ line up 3*del from BRB
+ TP1: dot #; line left BRB.x-RN1D.x
+ RESET: rswitch( right_ dimen_ from (USB.e,Here)+(del/2,0))
+ { "RESET" at RESET+(-del*1.7,1.0*del) above }
+ line left del from RESET.start then down del
+ G7: ground(,T,E); "GND" at last line.c below
+
+ ICSP: Header(A2,3,4*del,2.5*lg_pinsep,,0.2;pindiam) \
+ with .Block.sw at ZU4.Pin19.end+(2*del,del*3)
+ "ICSP" at ICSP.Block.nw above ljust
+ "3X2 M" at ICSP.Block.sw below ljust
+ for_(1,5,2,`"m4x" at ICSP.P`'m4x.end above ljust')
+ for_(2,6,2,`"m4x" at ICSP.P`'m4x.end above rjust')
+ dot(at ZU4.Pin19.end); line to (Here,ICSP.P3) then to ICSP.P3.end
+ line from ZU4.Pin18.end right del; dot
+ line to (Here,ICSP.P1) then to ICSP.P1.end
+ move to ICSP.P5.end; line to (ZU4.Pin19.end,Here)-(del,0);
+ continue to (Here,TP1); dot
+ line from ICSP.P2.end up_ del; ground(,T,E,U); "+5 V" at last line.c above
+ line from ICSP.P6.end down_ del; G9: ground(,T,E); "GND" at last line.c below
+ move to ICSP.P4.end; line right_ del then down Here.y - ZU4.Pin17.y; dot
+
+ line right_ from RESET.end to (U3.Chip.e+(12*del,0),TP1)
+ POWER: Header(A1,8,1.5*del,7*lg_pinsep,,0.2;pindiam) with .P3.end at Here
+ "POWER" wid 36bp__ at POWER.Block.nw above ljust
+ "8X1F-H8.5" at POWER.Block.sw below ljust
+ for_(1,8,1,`"m4x" at POWER.P`'m4x.end above ljust')
+ line from POWER.P2.end left del/2 then down POWER.P2.y-POWER.P5.y ; dot
+ line from POWER.P4.end left 2.5*del; "+3V3" above ljust
+ dot(at POWER.P3.end-(del*1.5,0)); line up 2*del
+ dot(,,1); "RESET" at last [].n above
+ line from POWER.P5.end left 3.5*del then up 4*del; ground(,T,E,U)
+ "+5 V" at last line.c above
+ line left del*2 from POWER.P8.end; "VIN" above ljust
+ line left del/2 from POWER.P7.end; dot
+ line from POWER.P6.end to (Here,POWER.P6.end) then to Here+(0,-2.5*del)
+ G10: ground(,T,E); "GND" at last line.c below
+
+ right_
+
+ IOH: Header(A1,10,1.5*del,10*lg_pinsep,,0.2;pindiam) \
+ with .P10.end at ZU4.Pin14.end + (del*15,0)
+ "IOH" at IOH.Block.nw above ljust
+ "10X1F-H8.5" at IOH.Block.se below ljust
+ for_(0,9,1,`
+ { "incr(m4x)" above ljust at IOH.P`'eval(10-m4x).end }
+ move to IOH.P`'eval(10-m4x).start-(pindiam/2+dotrad_/2,0)
+ ifelse(m4x,6,,`dot')
+ move to IOH.P`'eval(10-m4x).end
+ ifelse(eval(m4x<6),1,`line from ZU4.Pin`'eval(14+m4x).end to Here ')
+ ifelse(m4x,6,,` line right del*4; dot(,pindiam/2,1) ')
+ ifelse(eval(m4x<6),1,`"eval(8+m4x)" at last [].e ljust ')')
+ "SCL" at last [].e ljust
+ "SDA" at 3rd last [].e ljust
+ "AREF" at 5th last [].e ljust
+
+ AD: Header(A1,6,1.5*del,6*lg_pinsep,,0.2;pindiam) \
+ with .P6.end at (IOH.P10.end,ZU4.Pin23) #.end + (del*6,0)
+ "AD" at AD.Block.nw above ljust
+ "6X1F-H8.5" at AD.Block.se below ljust
+ for_(0,5,1,`
+ dot(at AD.P`'eval(6-m4x).start-(pindiam/2+dotrad_/2,0))
+ line from ZU4.Pin`'eval(23+m4x).end \
+ to AD.P`'eval(6-m4x).end; {"incr(m4x)" above ljust}
+ line right del*4; dot(,pindiam/2,1)
+ "A`'m4x" at last [].e ljust ')
+
+ IOL: Header(A1,8,1.5*del,8*lg_pinsep,,0.2;pindiam) \
+ with .P8.end at (AD.P1.end,ZU4.Pin2)
+ "IOL" at IOL.Block.nw above ljust
+ "8X1F-H8.5" at IOL.Block.sw ljust below
+ for_(0,7,1,`
+ dot(at IOL.P`'eval(8-m4x).start-(pindiam/2+dotrad_/2,0))
+ line from ZU4.Pin`'eval(ifelse(eval(m4x<5),1,2,6)+m4x).end \
+ to IOL.P`'eval(8-m4x).end; {"incr(m4x)" above ljust}
+ line right del*4; dot(,pindiam/2,1)
+ "m4x" at last [].e ljust ')
+
+ line from ZU4.Pin21.end up RESET.y-ZU4.Pin21.y-del \
+ then right ICSP.P4.end.x-ZU4.Pin21.end.x + 2*del
+ continue to (Here,IOH.P3)+(0,del*3/2); dot
+ { C4: capacitor(down_ 3.0*del); llabel("C4",,"100n")
+ { ground(,T,E); "GND" at last line.e ljust}
+ line from IOH.P4.end to (Here,IOH.P4); dot }
+ line right del*3/2; continue to (Here,IOH.P3) then to IOH.P3.end
+
+ line left del/2 from IOH.P2.end; continue to (Here,AD.P2); dot
+ line left del*3/2 from IOH.P1.end; continue to (Here,AD.P1); dot
+
+ line right_ del*2 from U3.Pin9.end then down_ 3.5*lg_pinsep; dot
+ { line right_ 2*del; dot(,,1); "RX" at last [].e ljust }
+ line to (Here,RESET)-(0,del)
+ RN4B: resistor(down_ dimen_,,E); llabel(7,"RN4B" ljust "1 K" ljust,2)
+ line down_ del then left_ Here.x - IOH.P9.end.x + del*2.5
+ continue to (Here,ZU4.Pin2); dot
+
+ line right_ del from U3.Pin8.end; dot
+ { line right_ 3*del; dot(,,1); "TX" at last [].e ljust }
+ line to (Here,RN4B.start)
+ RN4A: resistor(down_ dimen_,,E); rlabel(8,"RN4A" rjust "1 K" rjust,1)
+ line to (IOH.P9.end,Here)-(del*3.5,0); continue to (Here,ZU4.Pin3); dot
+
+Pwr: [
+ Vin: line right 2*del "VIN" above
+ RN1A: resistor(down_ dimen_*5/4,,E); rlabel(8, "RN1A" rjust "10 K" rjust ,1)
+ CMP: dot
+ RN1B: resistor(down_ dimen_*5/4,,E); rlabel(2, "RN1B" rjust "10 K" rjust ,7)
+ B12: ground(,T,E); "GND" at last line below
+
+ line right_ 2*del from CMP; dot
+ { line up_ 2*del; dot(,,1); "CMP" at last [].n above }
+ line right_ del
+ POA: opamp(,"+" ljust,"-" ljust) with .In1 at Here
+ "U5A" at last [].n; "1" at POA.Out above rjust
+ "3" at POA.In1 rjust above; "2" at POA.In2 rjust above
+ line left_ del from POA.In2 then down_ del; "+3V3" below
+ dot(at POA.Out); {line up_ 2*del; dot(,,1); "GATE" at last [].n above }
+ T1: mosfet(down_ dimen_*1.5,R,dMdPyEDSQdB,) with .G at Here
+ "T1" at T1 + (-dimen_/4,del*5/4)
+ "FDN340P" at T1 + (0,-del*5/4) rjust
+ dot(at T1.S); { line up_ 2*del; ground(,T,E,U); "+5 V" at last line above }
+ ] with .RN1B at (USB.e.x+del,RN1C.y-2*del)
+ dot(at XUSB+(0,-del/2))
+ F1: fuse(right_ to (Pwr.T1.D,Here)); { "500 mA" ljust }
+ { "MF-MSMF050-2" at last [].sw below ljust }
+ line to Pwr.T1.D
+
+ line from Pwr.T1.S right_ 2.5*lg_pinsep
+ { U2:box ht 3*lg_pinsep wid 5*lg_pinsep with .nw at Here+(0,lg_pinsep/2) }
+ {"1" above rjust}; {"IN" ljust}
+ "LP2985-33DBVR" at U2.s below
+ "U2" above ljust at U2.nw
+ "3" above rjust at U2.w; line left del from U2.w then up_ lg_pinsep; dot
+ "ON/$\overline{\hbox{OFF}}$" at U2.w ljust
+ U2P2: U2.w+(0,-lg_pinsep); "2" at U2P2 above rjust; "GND" at U2P2 ljust
+ line from U2P2 left del then down_ del
+ G15: ground(,T,E); "GND" at last line.c below
+ U2P5: (U2.e.x,U2.e.y+lg_pinsep)
+ "OUT" at U2P5 rjust; "5" at U2P5 above ljust
+ line from U2P5 right 2*del "+3V3" below; dot
+ { line up_ del; dot(,,1); "3V3" at last [].n above }
+ C3: capacitor(down_ to(Here,G15)); rlabel(,"C3" rjust "1$`\,'\mu$" rjust)
+ ground(,T,E); "GND" at last line.c below
+ "NC/FB" at (U2.e.x,U2P2.y) rjust
+
+ "SCK" above ljust at Pwr.Vin + (0,4*del)
+ line right_ 3*del
+ U5B: opamp(,"+" ljust, "-" ljust) with .In1 at Here
+ "5" at U5B.In1 above rjust; "6" at U5B.In2 above rjust
+ "U5B" at last [].n; "7" at U5B.Out above rjust
+ line from U5B.In2 left del then down del then right U5B.Out.x-U5B.In1.x+del
+ TD2: dot
+ dot(at U5B.Out); dot(at Here+(0,2*del),,1); "LCMD" at last [].e ljust
+ line down_ from last [].s to TD2
+ RN2A: resistor(right_ dimen_*5/4,,E); llabel(8,"1K",1); rlabel(,"RN2A")
+ dot; {line up_ 2*del; dot(,,1); "LL" at last [].n above }
+ diode(right_ dimen_*5/4,LE); rlabel(,"YELLOW")
+ line down_ dimen_/4; egnd
+
+ X1:box ht 3*lg_pinsep wid 5*lg_pinsep with .w at (U2.x,U5B.y+del)
+ "X1 DC21MMX" at X1.nw below ljust "PWR SUPPLY" at X1.nw ljust
+ X1P1: 1/3 between X1.sw and X1.se; "1" at X1P1 rjust below
+ X1P2: 2/3 between X1.sw and X1.se; "2" at X1P2 rjust below
+ line down_ del from X1P1; dot; { egnd }
+ line right X1.e.x+del - Here.x then up_ X1.e.y-Here.y then to X1.e
+ "3" above ljust at X1.e
+ line from X1P2 down del/2 then right X1.e.x+del*2 - X1P2.x \
+ then up X1.n.y - X1P2.y + del/2; dot
+ { line up_ 2*del; PWRIN: dot(,,1); "PWRIN" at last [].w rjust }
+ D1: diode(right_ dimen_); llabel(,"D1"); rlabel(,"M7"); dot
+ { PC1: capacitor(down_ dimen_,C); llabel(,"PC1" ljust "47$`\,'\mu$" ljust)
+ G16: egnd }
+ { line to (Here,PWRIN); dot(,,1); "VIN" at last [].e ljust }
+ line right 3*del; { "3" above rjust }
+ U1P1: Here
+ U1: box ht 3*lg_pinsep wid 4*lg_pinsep with .nw at Here+(0,lg_pinsep/2)
+ "IN" at U1P1 ljust; "OUT" at (U1.e,U1P1) rjust
+ "1" below rjust at U1.s
+ "U1" at U1.nw + (0,textht*1.5) above ljust "NCP1117ST50T3G" ljust
+ line from U1.s to (U1.s,G16); egnd
+ U1P4: (U1.e,U1P1); U1P2: U1P4+(0,-del)
+ { "4" at U1P4 above ljust }; { "2" at U1P2 above ljust };
+ line right_ 2*del from U1P4; dot;
+ line from U1P2 to (Here,U1P2); dot; { line to (Here,U1P4) }
+ { PC2: capacitor(down_ to (Here,G16),C)
+ llabel(,"PC2" ljust "47$`\,'\mu$" ljust); egnd }
+ line right_ del*3/2 from (Here,U1P4); dot
+ { line to (Here,PWRIN); ground(,T,E,U); "+5V" at last line.c above }
+ line right_ del*3/2; dot; { line to (Here,PC2.start)
+ C2: capacitor(down_ to (Here,G16),C)
+ llabel(,"C2" ljust "100$`\,'\mu$" ljust); egnd }
+ { line to (Here,PWRIN); dot(,,1); "5V" at last [].n above }
+ line right_ del*3/2 then to (Here.x+del*3/2,PWRIN.y); dot(,,1)
+ "5V1" at last [].n above
+
+] scaled finalscale
+#howbox_
+
+
+ifpostscript(,latexcommand(}%))
+.PE
diff --git a/graphics/circuit_macros/examples/Wheat.m4 b/graphics/circuit_macros/examples/Wheat.m4
index a797c81e96..c70fa8fc74 100644
--- a/graphics/circuit_macros/examples/Wheat.m4
+++ b/graphics/circuit_macros/examples/Wheat.m4
@@ -4,17 +4,18 @@ gen_init
boxwid = boxht
-for j = 0 to 7 do {
- for i = 0 to 7 do {
- box fill_((i+j)%2) at (j*boxwid,-i*boxwid)
- x = 2^(j+8*i)
- if (i+j)%2==0 then { command "{\white" } else { command "{\black" }
- if x < 10000 then { sprintf("\Large$%g$",x) at last box } \
- else { y = int(log(x))
- sprintf("{\Large$%g$}$\cdot 10^{%g}$",round_(x/(10^y)),y) \
- at last box }
- command "}"
+[ for j = 0 to 7 do {
+ for i = 0 to 7 do {
+ x = 2^(j+8*i)
+ box fill_((i+j)%2) at (j*boxwid,-i*boxwid)
+ k = ((i+j)%2==0); setrgb(k,k,k)
+ if x < 10000 then { sprintf("\Large$%g$",x) at last box } \
+ else { y = int(log(x))
+ sprintf("{\Large$%g$}$\cdot 10^{%g}$",round_(x/(10^y)),y) at last box }
+ resetrgb
+ }
}
- }
+ ]
+box wid 8*boxwid ht 8*boxwid at last []
.PE
diff --git a/graphics/circuit_macros/examples/control.m4 b/graphics/circuit_macros/examples/control.m4
index db6a5940cc..e42a63edec 100644
--- a/graphics/circuit_macros/examples/control.m4
+++ b/graphics/circuit_macros/examples/control.m4
@@ -22,7 +22,7 @@ S1: circle
arrow right from S2.e "$u(s)$" above
box "$G(s)$"
arrow right ; "$y(s)$" above rjust at Here+(0,2pt__)
- arrow down boxht*3/2 from last arrow.c then left last arrow.c.x-S1.x \
+ arrow down boxht*5/4 from last arrow.c then left last arrow.c.x-S1.x \
then to S1.s
"$-\;$" below rjust
]
@@ -139,13 +139,13 @@ boxht = 0.4
boxwid = boxht
circlerad = boxht*0.4
-define summer { circle
- {line from last circle.nw to last circle.se
- line from last circle.sw to last circle.ne
- "$$1$" at last circle.n below
- "$$2$" at last circle.s above
- "$$3$" at last circle.e rjust
- "$$4$" at last circle.w ljust}
+define summer { [ C: circle
+ line from C.nw to C.se
+ line from C.sw to C.ne
+ "$$1$" at C.n+(0,1bp__) below
+ "$$2$" at C.s-(0,1bp__) above
+ "$$3$" at C.e+(1bp__,0) rjust
+ "$$4$" at C.w-(1bp__,0) ljust ]
}
define doublebox {[box "$$1$"; arrow; box "$$2$"]}
@@ -162,17 +162,17 @@ T: doublebox(H_3,H_4)
Y: Here
arrow
"$S_1$" above
-R1: box "$R_1$" at (T.x,T.y+boxht*3/2)
+R1: box "$R_1$" at (T.x,T.y+boxht*5/4)
arrow from Y to (Y,R1) then to R1.e
arrow from R1.w to (S2,R1) then to S2.n
"$n_1$" ljust at S2.n+(0,boxht/2)
left
-Rf: doublebox(R_2,R_3) at ((S1.x+T.x)/2,T.y-boxht*3/2)
+Rf: doublebox(R_2,R_3) at ((S1.x+T.x)/2,T.y-boxht*5/4)
arrow from T to (T,Rf) then to Rf.e
arrow from Rf.w to (S1,Rf) then to S1.s
"$n_2$" at S1.s+(0,-boxht/2) ljust
] with .nw at Observer.sw + (0,-0.3)
- "(c) A multiblock example" below ljust at Multiblock.sw+(0,-5pt__)
+ "(c) A multiblock example" below ljust at Multiblock.sw+(0,-3pt__)
')
# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #
diff --git a/graphics/circuit_macros/examples/csc.m4 b/graphics/circuit_macros/examples/csc.m4
index fdf4b4404f..2aaf839f0d 100644
--- a/graphics/circuit_macros/examples/csc.m4
+++ b/graphics/circuit_macros/examples/csc.m4
@@ -242,6 +242,6 @@ Face: circle thick 0 fill_(1) rad r3 at C
ifsvg(`command "</g>"')
#.PE
-',` "AntiqueClock.m4 requires PSTricks, Tikz-pgf, or SVG" ')
+',` "AntiqueClock.m4 requires" "PSTricks, Tikz-pgf, or SVG" ')
] with .sw at last [].se+(0.25,0)
.PE
diff --git a/graphics/circuit_macros/examples/debug2.m4 b/graphics/circuit_macros/examples/debug2.m4
index 6b6edf77ba..5dfb4f20f7 100644
--- a/graphics/circuit_macros/examples/debug2.m4
+++ b/graphics/circuit_macros/examples/debug2.m4
@@ -27,7 +27,7 @@
%
% On my Ubuntu machine, boxdims.sty is in
% /usr/local/lib/localtexmf/tex/latex/local/
-% and on my cygwin machine it is in
+% and on my PC with Cygwin it is in
% /cygdrive/d/localtexmf/tex/latex/local/
% but you might choose something like ~/texmf/tex/latex/boxdims/
%
diff --git a/graphics/circuit_macros/examples/svg/ABlogixSVG.m4 b/graphics/circuit_macros/examples/dpv/ABlogixDPV.m4
index d457250cc3..d93cdedc9b 100644
--- a/graphics/circuit_macros/examples/svg/ABlogixSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ABlogixDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `ABlogixSVG.m4'
+# `ABlogixDPV.m4'
log_init(svg_font(sans-serif,10.5bp__))
linewid = 0.4
diff --git a/graphics/circuit_macros/examples/svg/AdderSVG.m4 b/graphics/circuit_macros/examples/dpv/AdderDPV.m4
index 6c0de6b5ed..06b600c239 100644
--- a/graphics/circuit_macros/examples/svg/AdderSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/AdderDPV.m4
@@ -1,5 +1,5 @@
.PS
-# AdderSVG.m4
+# AdderDPV.m4
log_init(svg_font(sans-serif,11bp__))
del = linewid/4
diff --git a/graphics/circuit_macros/examples/svg/AlogixSVG.m4 b/graphics/circuit_macros/examples/dpv/AlogixDPV.m4
index 0336273903..68bcf53ced 100644
--- a/graphics/circuit_macros/examples/svg/AlogixSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/AlogixDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `AlogixSVG.m4'
+# `AlogixDPV.m4'
log_init(svg_font(sans-serif,10.5bp__))
# A modest expression in default form
diff --git a/graphics/circuit_macros/examples/svg/AmpTableSVG.m4 b/graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
index 2850ff5ad7..2850ff5ad7 100644
--- a/graphics/circuit_macros/examples/svg/AmpTableSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/AntennasSVG.m4 b/graphics/circuit_macros/examples/dpv/AntennasDPV.m4
index ed098b3910..ed098b3910 100644
--- a/graphics/circuit_macros/examples/svg/AntennasSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/AntennasDPV.m4
diff --git a/graphics/circuit_macros/examples/dpv/ArrestersDPV.m4 b/graphics/circuit_macros/examples/dpv/ArrestersDPV.m4
new file mode 100644
index 0000000000..f1d368106a
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/ArrestersDPV.m4
@@ -0,0 +1,75 @@
+.PS
+# ArrestersDPV.m4
+cct_init
+
+ sep = 0.2
+
+R1: [
+ arrester
+ {"svg_tt(`arrester')" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,G)
+ {"svg_tt(`arrester(,G)')" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,g)
+ {"svg_tt(...(,g))" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,M)
+ {"svg_tt(...(,M))" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,C)
+ {"svg_tt(...(,C))" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,A)
+ {"svg_tt(...(,A))" at last line.c+(0,-0.2)}
+ ]
+
+R2: [
+ arrester(,H)
+ {"svg_tt(...(,H))" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,HR)
+ {"svg_tt(...(,HR))" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,P)
+ {"svg_tt(...(,P))" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,s)
+ {"svg_tt(...(,s))" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,F)
+ {"svg_tt(...(,F))" at last line.c+(0,-0.2)}
+ move sep
+ arrester(,S)
+ {"svg_tt(...(,S))" at last line.c+(0,-0.2)}
+
+ ] with .nw at R1.sw+(0,-0.2)
+
+ define(`Dlabels',
+ `{ thinlines_
+ arrow <- from A.A up 0.1 left 0.1; "svg_it(A)" rjust
+ arrow <- from A.B up 0.1 right 0.1; "svg_it(B)" ljust
+ arrow <- from A.G up 0.05 right 0.15; "svg_it(G)" ljust
+ thicklines_ }')
+[
+ arrester(,E)
+ {"svg_tt(...(,E))" at last line.c+(0,-0.25)}
+ move sep
+ A: arrester(,DE)
+ {"svg_tt(...(,DE))" at last [].s+(0,-0.1)}
+ Dlabels
+ move sep*3
+ A: arrester(,DS)
+ {"svg_tt(...(,DS))" at last [].s+(0,-0.1)}
+ Dlabels
+ move sep*3
+ A: arrester(,DEL)
+ {"svg_tt(...(,DEL))" at last [].s+(0,-0.1)}
+ Dlabels
+ move sep*3
+ A: arrester(,DSL)
+ {"svg_tt(...(,DSL))" at last [].s+(0,-0.1)}
+ Dlabels
+ ] with .nw at R2.sw+(0,-0.2)
+
+.PE
diff --git a/graphics/circuit_macros/examples/svg/ArrowFnSVG.m4 b/graphics/circuit_macros/examples/dpv/ArrowFnDPV.m4
index b72914b728..d6ceffaa72 100644
--- a/graphics/circuit_macros/examples/svg/ArrowFnSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ArrowFnDPV.m4
@@ -1,5 +1,5 @@
.PS
-# ArrowFnSVG.m4
+# ArrowFnDPV.m4
# https://tex.stackexchange.com/questions/581089/arrow-function-diagrams
gen_init
brad = 0.04
diff --git a/graphics/circuit_macros/examples/svg/AudioSVG.m4 b/graphics/circuit_macros/examples/dpv/AudioDPV.m4
index 709fdf4c25..459e1c422d 100644
--- a/graphics/circuit_macros/examples/svg/AudioSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/AudioDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `AudioSVG.m4'
+# `AudioDPV.m4'
cct_init(svg_font(sans-serif,11bp__,2bp__))
define(`In123',`
diff --git a/graphics/circuit_macros/examples/svg/AutoencoderSVG.m4 b/graphics/circuit_macros/examples/dpv/AutoencoderDPV.m4
index 05921e1bcc..05921e1bcc 100644
--- a/graphics/circuit_macros/examples/svg/AutoencoderSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/AutoencoderDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/Banking.m4 b/graphics/circuit_macros/examples/dpv/Banking.m4
index 630326f867..630326f867 100644
--- a/graphics/circuit_macros/examples/svg/Banking.m4
+++ b/graphics/circuit_macros/examples/dpv/Banking.m4
diff --git a/graphics/circuit_macros/examples/svg/BipSVG.m4 b/graphics/circuit_macros/examples/dpv/BipDPV.m4
index 7dbf38c84a..7dbf38c84a 100644
--- a/graphics/circuit_macros/examples/svg/BipSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/BipDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/BtreeSVG.m4 b/graphics/circuit_macros/examples/dpv/BtreeDPV.m4
index e025572a0a..8621d47cdb 100644
--- a/graphics/circuit_macros/examples/svg/BtreeSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/BtreeDPV.m4
@@ -1,5 +1,5 @@
.PS
-# Btree.m4
+# BtreeDPV.m4
# One way to draw a binary tree using pic macros
gen_init(svg_font(sans-serif,11bp__))
sinclude(tst.dim)
@@ -37,7 +37,7 @@ S: Sirius
command "</g>" # end font
]
Ttree: [
-# TtreeSVG.m4
+# TtreeDPV.m4
svg_font(sans-serif,10bp__)
# `Node(no in row, head [location],
diff --git a/graphics/circuit_macros/examples/svg/ButtonsSVG.m4 b/graphics/circuit_macros/examples/dpv/ButtonsDPV.m4
index 79c9463639..419f2cfaf5 100644
--- a/graphics/circuit_macros/examples/svg/ButtonsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ButtonsDPV.m4
@@ -1,5 +1,5 @@
.PS
-# ButtonsSVG.m4
+# ButtonsDPV.m4
gen_init(svg_font(sans-serif,11bp__))
NeedDpicTools
diff --git a/graphics/circuit_macros/examples/svg/ByteSVG.m4 b/graphics/circuit_macros/examples/dpv/ByteDPV.m4
index ca059487e7..ca059487e7 100644
--- a/graphics/circuit_macros/examples/svg/ByteSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ByteDPV.m4
diff --git a/graphics/circuit_macros/examples/dpv/ByteDPV.svg b/graphics/circuit_macros/examples/dpv/ByteDPV.svg
new file mode 100644
index 0000000000..317f9367f3
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/ByteDPV.svg
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="460" height="215" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="459.2px" height="214.4px"
+ viewBox="0 0 459.2 214.4"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:sans-serif"
+>
+<rect x="121.066667" y="58.133333" width="336" height="19.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="123.733333" y="72.94">B0STDISBL (reset pin is enabled) </text>
+<rect x="121.066667" y="77.333333" width="336" height="19.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="123.733333" y="92.14">WDTON (WDT not always on) </text>
+<rect x="121.066667" y="96.533333" width="336" height="19.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="123.733333" y="111.34">SPIEN (allow serial programming) </text>
+<rect x="121.066667" y="115.733333" width="336" height="19.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="123.733333" y="130.54">CKOPT (full output swing) </text>
+<rect x="121.066667" y="134.933333" width="336" height="19.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="123.733333" y="149.74"
+>EESAVE (don't preserve EEPB0OM over chip erase) </text>
+<rect x="121.066667" y="154.133333" width="336" height="19.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="123.733333" y="168.94">BOOTSZ1 </text>
+<rect x="121.066667" y="173.333333" width="336" height="19.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="123.733333" y="188.14">BOOTSZ0 </text>
+<rect x="121.066667" y="192.533333" width="336" height="19.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="123.733333" y="207.34">BOOTB0ST (boot reset vector at 0x0000) </text>
+<rect x="173.866667" y="0.533333" width="19.2" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="183.466667" y="15.34">1</text>
+<rect x="154.666667" y="0.533333" width="19.2" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="164.266667" y="15.34">0</text>
+<rect x="135.466667" y="0.533333" width="19.2" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="145.066667" y="15.34">0</text>
+<rect x="116.266667" y="0.533333" width="19.2" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="125.866667" y="15.34">1</text>
+<rect x="97.066667" y="0.533333" width="19.2" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="106.666667" y="15.34">0</text>
+<rect x="77.866667" y="0.533333" width="19.2" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="87.466667" y="15.34">0</text>
+<rect x="58.666667" y="0.533333" width="19.2" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="68.266667" y="15.34">1</text>
+<rect x="39.466667" y="0.533333" width="19.2" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="49.066667" y="15.34">1</text>
+<rect x="1.066667" y="0.533333" width="38.4" height="19.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="20.266667" y="15.34">0xc9</text>
+<polygon stroke-width="0" fill="black"
+ points="114.346667,65.333333 121.066667,67.733333
+114.346667,70.133333" />
+<path d="M 183.466667,19.733333
+ C 183.466667,20.533333 183.466667,21.333333 183.466667,22.133333 183.466667,23.733333
+171.466667,30.133333 147.466667,41.333333 123.466667,52.533333
+111.466667,59.733333 111.466667,62.933333 111.466667,66.133333
+112.802381,67.733333 115.47381,67.733333 116.809524,67.733333 118.145238,67.733333
+119.480953,67.733333" />
+<polygon stroke-width="0" fill="black"
+ points="114.346667,84.533333 121.066667,86.933333
+114.346667,89.333333" />
+<path d="M 164.266667,19.733333
+ C 164.266667,20.533333 164.266667,21.333333 164.266667,22.133333 164.266667,23.733333
+153.866667,30.133333 133.066667,41.333333 112.266667,52.533333
+101.866667,62.933333 101.866667,72.533333 101.866667,82.133333
+104.802381,86.933333 110.67381,86.933333 113.609524,86.933333 116.545238,86.933333
+119.480953,86.933333" />
+<polygon stroke-width="0" fill="black"
+ points="114.346667,103.733333 121.066667,106.133333
+114.346667,108.533333" />
+<path d="M 145.066667,19.733333
+ C 145.066667,20.533333 145.066667,21.333333 145.066667,22.133333 145.066667,23.733333
+136.266667,30.133333 118.666667,41.333333 101.066667,52.533333
+92.266667,66.133333 92.266667,82.133333 92.266667,98.133333
+96.802381,106.133333 105.87381,106.133333 110.409524,106.133333 114.945238,106.133333
+119.480953,106.133333" />
+<polygon stroke-width="0" fill="black"
+ points="114.346667,122.933333 121.066667,125.333333
+114.346667,127.733333" />
+<path d="M 125.866667,19.733333
+ C 125.866667,20.533333 125.866667,21.333333 125.866667,22.133333 125.866667,23.733333
+118.666667,30.133333 104.266667,41.333333 89.866667,52.533333
+82.666667,69.333333 82.666667,91.733333 82.666667,114.133333
+88.802381,125.333333 101.07381,125.333333 107.209524,125.333333 113.345238,125.333333
+119.480953,125.333333" />
+<polygon stroke-width="0" fill="black"
+ points="114.346667,142.133333 121.066667,144.533333
+114.346667,146.933333" />
+<path d="M 106.666667,19.733333
+ C 106.666667,20.533333 106.666667,21.333333 106.666667,22.133333 106.666667,23.733333
+101.066667,30.133333 89.866667,41.333333 78.666667,52.533333
+73.066667,72.533333 73.066667,101.333333 73.066667,130.133333
+80.802381,144.533333 96.27381,144.533333 104.009524,144.533333 111.745238,144.533333
+119.480953,144.533333" />
+<polygon stroke-width="0" fill="black"
+ points="114.346667,161.333333 121.066667,163.733333
+114.346667,166.133333" />
+<path d="M 87.466667,19.733333
+ C 87.466667,20.533333 87.466667,21.333333 87.466667,22.133333 87.466667,23.733333
+83.466667,30.133333 75.466667,41.333333 67.466667,52.533333
+63.466667,75.733333 63.466667,110.933333 63.466667,146.133333
+72.802381,163.733333 91.47381,163.733333 100.809524,163.733333 110.145238,163.733333
+119.480953,163.733333" />
+<polygon stroke-width="0" fill="black"
+ points="114.346667,180.533333 121.066667,182.933333
+114.346667,185.333333" />
+<path d="M 68.266667,19.733333
+ C 68.266667,20.533333 68.266667,21.333333 68.266667,22.133333 68.266667,23.733333
+65.866667,30.133333 61.066667,41.333333 56.266667,52.533333
+53.866667,78.933333 53.866667,120.533333 53.866667,162.133333
+64.802381,182.933333 86.67381,182.933333 97.609524,182.933333 108.545238,182.933333
+119.480953,182.933333" />
+<polygon stroke-width="0" fill="black"
+ points="114.346667,199.733333 121.066667,202.133333
+114.346667,204.533333" />
+<path d="M 49.066667,19.733333
+ C 49.066667,20.533333 49.066667,21.333333 49.066667,22.133333 49.066667,23.733333
+48.266667,30.133333 46.666667,41.333333 45.066667,52.533333
+44.266667,82.133333 44.266667,130.133333 44.266667,178.133333
+56.802381,202.133333 81.87381,202.133333 94.409524,202.133333 106.945238,202.133333
+119.480953,202.133333" />
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/CanLogicSVG.m4 b/graphics/circuit_macros/examples/dpv/CanLogicDPV.m4
index b6c1d02e2f..b6c1d02e2f 100644
--- a/graphics/circuit_macros/examples/svg/CanLogicSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/CanLogicDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/CapacitorsSVG.m4 b/graphics/circuit_macros/examples/dpv/CapacitorsDPV.m4
index be6a8edd47..903ede003e 100644
--- a/graphics/circuit_macros/examples/svg/CapacitorsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/CapacitorsDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `CapacitorsSVG.m4'
+# `CapacitorsDPV.m4'
cct_init(svg_font(sans-serif,11pt__))
textwid = 1.5
movewid = 2 pt__
diff --git a/graphics/circuit_macros/examples/svg/ChipsSVG.m4 b/graphics/circuit_macros/examples/dpv/ChipsDPV.m4
index b85ce8d970..477edc5f6c 100644
--- a/graphics/circuit_macros/examples/svg/ChipsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ChipsDPV.m4
@@ -1,7 +1,7 @@
.PS
-# ChipsSVG.m4
+# ChipsDPV.m4
log_init
-include(icsSVG.m4)
+include(icsDPV.m4)
svg_font(sans-serif,8.5bp__)
Chips: [
diff --git a/graphics/circuit_macros/examples/svg/ConnSVG.m4 b/graphics/circuit_macros/examples/dpv/ConnDPV.m4
index 7344baeb23..9500cd8dd0 100644
--- a/graphics/circuit_macros/examples/svg/ConnSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ConnDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `ConnSVG.m4'
+# `ConnDPV.m4'
cct_init(svg_font(sans-serif,10.5bp__))
T:[
diff --git a/graphics/circuit_macros/examples/svg/ConnectorsSVG.m4 b/graphics/circuit_macros/examples/dpv/ConnectorsDPV.m4
index 67f89e5348..4b2a3c9176 100644
--- a/graphics/circuit_macros/examples/svg/ConnectorsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ConnectorsDPV.m4
@@ -1,11 +1,11 @@
.PS
-# ConnectorsSVG.m4
+# ConnectorsDPV.m4
log_init
-include(icsSVG.m4)
+include(icsDPV.m4)
svg_font(sans-serif,8.5bp__)
#vg_rot_init(test)
-svg_rot_init(ConnectorsSVG)
+svg_rot_init(ConnectorsDPV)
# ArduinoUno
# "Arduino Uno Rev 3" at last [].Connector.s below
diff --git a/graphics/circuit_macros/examples/dpv/ConnectorsDPV.pic b/graphics/circuit_macros/examples/dpv/ConnectorsDPV.pic
new file mode 100644
index 0000000000..1fe2aeabfa
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/ConnectorsDPV.pic
@@ -0,0 +1,368 @@
+.PS
+# ConnectorsDPV.m4
+# log_init Version 10.1: SVG m4 macro settings.
+
+ # gen_init Version 10.1: SVG m4 macro settings.
+
+
+ define rpoint__ {
+ rp_wid = last line.end.x-last line.start.x
+ rp_ht = last line.end.y-last line.start.y
+ rp_len = sqrt(abs((rp_wid)^2+(rp_ht)^2)); move to last line.start
+ rp_ang = atan2(rp_ht,rp_wid) }
+
+ rtod_ = 57.295779513082323; dtor_ = 0.017453292519943295
+ twopi_ = 6.2831853071795862; pi_ = (twopi_/2)
+ rp_ang = 0; right
+
+
+ linethick = 0.8
+ arrowwid = 0.05*scale; arrowht = 0.1*scale
+
+
+ # gen_init end
+
+
+# log_init end
+
+
+
+m4thtmp=textht; dptextratio=0.71; m4thtmp=textht; textht=(8.5*(scale/72))*dptextratio;
+command "<g style=\"font-family:sans-serif\"
+>"
+
+
+#vg_rot_init(test)
+
+# svg_rot_init begin
+ if dpicopt > 0 then { copy "/cygdrive/d/Dwight/lib/dpictools.pic" }
+
+
+# Extract from the .svg file the x= y= coordinates
+# that appear after each transform="rotate(.." line
+ retcode = ( sh "awk -e \"/transform=\\"rotate/ { r=1 }; /x=\\".*y=\\"/ { if(r==1){ print; r=0 } }\" ConnectorsDPV.tmp | sed -e \"s/x=\\"\([0-9.]*\)\\" y=\\"\([0-9.]*\)\\".*/\1 \2/\" > ConnectorsDPV.cor" )
+ if retcode != 0 then { print "
+ Awk failure.
+ Awk and sed are required by svg_rot to rotate svg text.
+ " }
+ svgrot_k = 0
+ define svg_rotcoords { if "$1" != "" then { svgrot_k += 1
+ svg_rx[svgrot_k] = $1; svg_ry[svgrot_k] = $2 }
+ }
+ copythru(svg_rotcoords, ConnectorsDPV.cor)
+ sh "rm -f ConnectorsDPV.tmp ConnectorsDPV.cor"
+ svgrot_i = 0
+
+
+# `svg_rot(degrees,"text",[at position])
+# Rotate text degrees ccw
+# Requires svg_rot_init(filename)
+# which uses both awk and sed.
+# The source must be processed twice by m4 and dpic.'
+ define svg_rot { if retcode != 0 then {$2} else {
+ if "$1" != "" then { svg_rang = -($1) } else { svg_rang = -90 }
+ if svgrot_k != 0 then { svgrot_i +=1
+ command sprintf("<g transform=\"rotate(%g %g %g)\">",svg_rang,\
+ svg_rx[svgrot_i]+textht/2*sin((svg_rang)*dtor_),\
+ svg_ry[svgrot_i]+textht/2*(1-cos((svg_rang)*dtor_))) }\
+ else { command sprintf("<g transform=\"rotate(%g)\">",svg_rang) }
+ if "$3"=="" then { $2 } \
+ else { $2 $3 - (sin((svg_rang)*dtor_),(cos((svg_rang)*dtor_)-1))*textht/2 }
+ command "</g>" } }
+
+
+# svg_rot_init end
+
+
+# ArduinoUno
+# "Arduino Uno Rev 3" at last [].Connector.s below
+ Ar: [
+ #
+ Connector: box wid 24*(linewid/10) ht 20*(3*(linewid/10))
+#
+ plen = 2*(linewid/10)
+#
+Pin6: line left plen from Connector.nw-(0,(5+1)*(3*(linewid/10)))
+ { "IOREF" ljust at last line.start }
+Pin7: line left plen from Connector.nw-(0,(5+2)*(3*(linewid/10)))
+ { "RESET" ljust at last line.start }
+Pin8: line left plen from Connector.nw-(0,(5+3)*(3*(linewid/10)))
+ { "<tspan font-style=\"italic\">+</tspan>3V3" ljust at last line.start }
+Pin9: line left plen from Connector.nw-(0,(5+4)*(3*(linewid/10)))
+ { "<tspan font-style=\"italic\">+</tspan>5V" ljust at last line.start }
+Pin10: line left plen from Connector.nw-(0,(5+5)*(3*(linewid/10)))
+ { "GND" ljust at last line.start }
+Pin11: line left plen from Connector.nw-(0,(5+6)*(3*(linewid/10)))
+ { "GND" ljust at last line.start }
+Pin12: line left plen from Connector.nw-(0,(5+7)*(3*(linewid/10)))
+ { "VIN" ljust at last line.start }
+
+Pin14: line left plen from Connector.nw-(0,(5+9)*(3*(linewid/10)))
+ { "A0" ljust at last line.start }
+Pin15: line left plen from Connector.nw-(0,(5+10)*(3*(linewid/10)))
+ { "A1" ljust at last line.start }
+Pin16: line left plen from Connector.nw-(0,(5+11)*(3*(linewid/10)))
+ { "A2" ljust at last line.start }
+Pin17: line left plen from Connector.nw-(0,(5+12)*(3*(linewid/10)))
+ { "A3" ljust at last line.start }
+Pin18: line left plen from Connector.nw-(0,(5+13)*(3*(linewid/10)))
+ { "A4" ljust at last line.start }
+Pin19: line left plen from Connector.nw-(0,(5+14)*(3*(linewid/10)))
+ { "A5" ljust at last line.start }
+
+#
+Pin21: line right plen from Connector.ne-(0,1*(3*(linewid/10)))
+ { "SCL" rjust at last line.start }
+Pin20: line right plen from Connector.ne-(0,2*(3*(linewid/10)))
+ { "SDA" rjust at last line.start }
+Pin19: line right plen from Connector.ne-(0,3*(3*(linewid/10)))
+ { "AREF" rjust at last line.start }
+Pin18: line right plen from Connector.ne-(0,4*(3*(linewid/10)))
+ { "GND" rjust at last line.start }
+Pin17: line right plen from Connector.ne-(0,5*(3*(linewid/10)))
+ { "~D13" rjust at last line.start }
+Pin16: line right plen from Connector.ne-(0,6*(3*(linewid/10)))
+ { "D12" rjust at last line.start }
+Pin15: line right plen from Connector.ne-(0,7*(3*(linewid/10)))
+ { "~D11" rjust at last line.start }
+Pin14: line right plen from Connector.ne-(0,8*(3*(linewid/10)))
+ { "~D10" rjust at last line.start }
+Pin13: line right plen from Connector.ne-(0,9*(3*(linewid/10)))
+ { "~D9" rjust at last line.start }
+Pin12: line right plen from Connector.ne-(0,10*(3*(linewid/10)))
+ { "D8" rjust at last line.start }
+
+Pin10: line right plen from Connector.ne-(0,12*(3*(linewid/10)))
+ { "D7" rjust at last line.start }
+Pin9: line right plen from Connector.ne-(0,13*(3*(linewid/10)))
+ { "~D6" rjust at last line.start }
+Pin8: line right plen from Connector.ne-(0,14*(3*(linewid/10)))
+ { "~D5" rjust at last line.start }
+Pin7: line right plen from Connector.ne-(0,15*(3*(linewid/10)))
+ { "D4" rjust at last line.start }
+Pin6: line right plen from Connector.ne-(0,16*(3*(linewid/10)))
+ { "~D3" rjust at last line.start }
+Pin5: line right plen from Connector.ne-(0,17*(3*(linewid/10)))
+ { "D2" rjust at last line.start }
+Pin4: line right plen from Connector.ne-(0,18*(3*(linewid/10)))
+ { "TX D1" rjust at last line.start }
+Pin3: line right plen from Connector.ne-(0,19*(3*(linewid/10)))
+ { "RX D0" rjust at last line.start }
+
+#
+ ] #with .sw at last [].se+(0.25,0)
+ "Arduino Leonardo" at last [].Connector.s below
+
+ RPI: [
+ #
+ GPIO: box wid 34*(linewid/10) ht 21*(3*(linewid/10))
+ plen = 6*(linewid/10)
+#
+define A_LeftGPIO {
+ exec sprintf("Pin%g: line left plen from GPIO.nw-(0,%g)",\
+ 2*($1)-1,($1)*(3*(linewid/10)))
+ { "$3" ljust at last line.start }
+ "$2" at last line.c above }
+#
+A_LeftGPIO(1,,3V3)
+A_LeftGPIO(2,2,SDA1)
+A_LeftGPIO(3,3,SCL1)
+A_LeftGPIO(4,4,GPIO_GCLK)
+A_LeftGPIO(5,,GND)
+A_LeftGPIO(6,17,GPIO_GEN0)
+A_LeftGPIO(7,27,GPIO_GEN2)
+A_LeftGPIO(8,22,GPIO_GEN3)
+A_LeftGPIO(9,,3V3)
+A_LeftGPIO(10,10,SPI_MOSI)
+A_LeftGPIO(11,9,SPI_MISO)
+A_LeftGPIO(12,11,SPI_SCLK)
+A_LeftGPIO(13,,GND)
+A_LeftGPIO(14,,ID_SD)
+A_LeftGPIO(15,5,)
+A_LeftGPIO(16,6,)
+A_LeftGPIO(17,13,)
+A_LeftGPIO(18,19,)
+A_LeftGPIO(19,26,)
+A_LeftGPIO(20,,GND )
+
+#
+define A_RightGPIO {
+ exec sprintf("Pin%g: line right plen from GPIO.ne-(0,%g)",\
+ 2*($1),($1)*(3*(linewid/10)))
+ { "$3" rjust at last line.start }
+ "$2" at last line.c above }
+#
+A_RightGPIO(1,,5V)
+A_RightGPIO(2,,5V)
+A_RightGPIO(3,,GND)
+A_RightGPIO(4,14,TXD0)
+A_RightGPIO(5,15,RXD0)
+A_RightGPIO(6,18,GPIO_GEN1)
+A_RightGPIO(7,,GND)
+A_RightGPIO(8,23,GPIO_GEN4)
+A_RightGPIO(9,24,GPIO_GEN5)
+A_RightGPIO(10,,GND)
+A_RightGPIO(11,25,GPIO_GEN6)
+A_RightGPIO(12,8,SPI_CEO_N)
+A_RightGPIO(13,7,SPI_CE1_N)
+A_RightGPIO(14,,ID_SC)
+A_RightGPIO(15,,GND)
+A_RightGPIO(16,12,)
+A_RightGPIO(17,,GND)
+A_RightGPIO(18,16,)
+A_RightGPIO(19,20,)
+A_RightGPIO(20,21, )
+
+#
+ ] with .sw at last [].se+(0.25,0)
+ "Raspberry Pi 4 GPIO" at last [].GPIO.s below
+
+ HD: [
+ #
+ Base:[line up 19*(3*(linewid/10))+16*(linewid/10)*2/3/2 then right 16*(linewid/10)*2/3 \
+ then right 16*(linewid/10)/3 down 16*(linewid/10)/3 \
+ then down 19*(3*(linewid/10))+16*(linewid/10)*2/3-2*16*(linewid/10)/3 then down 16*(linewid/10)/3 left 16*(linewid/10)/3 \
+ then left 16*(linewid/10)*2/3 then to Here]
+ plen = 6*(linewid/10)
+#
+ Pin1: line left plen from Base.nw-(0,16*(linewid/10)/3+(1-1/2)*(3*(linewid/10)))
+ {"HPD" ljust at last line.start}
+ "1" at last line.c above
+Pin2: line left plen from Base.nw-(0,16*(linewid/10)/3+(2-1/2)*(3*(linewid/10)))
+ {"UTILITY" ljust at last line.start}
+ "2" at last line.c above
+Pin3: line left plen from Base.nw-(0,16*(linewid/10)/3+(3-1/2)*(3*(linewid/10)))
+ {"D2<tspan font-style=\"italic\">+</tspan>" ljust at last line.start}
+ "3" at last line.c above
+Pin4: line left plen from Base.nw-(0,16*(linewid/10)/3+(4-1/2)*(3*(linewid/10)))
+ {"D2_SH" ljust at last line.start}
+ "4" at last line.c above
+Pin5: line left plen from Base.nw-(0,16*(linewid/10)/3+(5-1/2)*(3*(linewid/10)))
+ {"D2<tspan font-style=\"italic\">-</tspan>" ljust at last line.start}
+ "5" at last line.c above
+Pin6: line left plen from Base.nw-(0,16*(linewid/10)/3+(6-1/2)*(3*(linewid/10)))
+ {"D1<tspan font-style=\"italic\">+</tspan>" ljust at last line.start}
+ "6" at last line.c above
+Pin7: line left plen from Base.nw-(0,16*(linewid/10)/3+(7-1/2)*(3*(linewid/10)))
+ {"D1_SH" ljust at last line.start}
+ "7" at last line.c above
+Pin8: line left plen from Base.nw-(0,16*(linewid/10)/3+(8-1/2)*(3*(linewid/10)))
+ {"D1<tspan font-style=\"italic\">-</tspan>" ljust at last line.start}
+ "8" at last line.c above
+Pin9: line left plen from Base.nw-(0,16*(linewid/10)/3+(9-1/2)*(3*(linewid/10)))
+ {"D0<tspan font-style=\"italic\">+</tspan>" ljust at last line.start}
+ "9" at last line.c above
+Pin10: line left plen from Base.nw-(0,16*(linewid/10)/3+(10-1/2)*(3*(linewid/10)))
+ {"D0_SH" ljust at last line.start}
+ "10" at last line.c above
+Pin11: line left plen from Base.nw-(0,16*(linewid/10)/3+(11-1/2)*(3*(linewid/10)))
+ {"D0<tspan font-style=\"italic\">-</tspan>" ljust at last line.start}
+ "11" at last line.c above
+Pin12: line left plen from Base.nw-(0,16*(linewid/10)/3+(12-1/2)*(3*(linewid/10)))
+ {"CLK<tspan font-style=\"italic\">+</tspan>" ljust at last line.start}
+ "12" at last line.c above
+Pin13: line left plen from Base.nw-(0,16*(linewid/10)/3+(13-1/2)*(3*(linewid/10)))
+ {"CLK_SH" ljust at last line.start}
+ "13" at last line.c above
+Pin14: line left plen from Base.nw-(0,16*(linewid/10)/3+(14-1/2)*(3*(linewid/10)))
+ {"CLK<tspan font-style=\"italic\">-</tspan>" ljust at last line.start}
+ "14" at last line.c above
+Pin15: line left plen from Base.nw-(0,16*(linewid/10)/3+(15-1/2)*(3*(linewid/10)))
+ {"CEC" ljust at last line.start}
+ "15" at last line.c above
+Pin16: line left plen from Base.nw-(0,16*(linewid/10)/3+(16-1/2)*(3*(linewid/10)))
+ {"GND" ljust at last line.start}
+ "16" at last line.c above
+Pin17: line left plen from Base.nw-(0,16*(linewid/10)/3+(17-1/2)*(3*(linewid/10)))
+ {"SCL" ljust at last line.start}
+ "17" at last line.c above
+Pin18: line left plen from Base.nw-(0,16*(linewid/10)/3+(18-1/2)*(3*(linewid/10)))
+ {"SDA" ljust at last line.start}
+ "18" at last line.c above
+Pin19: line left plen from Base.nw-(0,16*(linewid/10)/3+(19-1/2)*(3*(linewid/10)))
+ {"<tspan font-style=\"italic\">+</tspan>5V" ljust at last line.start}
+ "19" at last line.c above
+
+L1: line from Base.nw+(16*(linewid/10)*2/3-(3*(linewid/10)),0) up plen
+ svg_rot(90,"21",at last line.c +(-4*(scale/72),0))
+ svg_rot(90,"SH2",at last line.start + (4*(scale/72),-8*(scale/72)))
+ line from Base.nw+(16*(linewid/10)*2/3-2*(3*(linewid/10)),0) up plen
+ svg_rot(90,"20",at last line.c+(-4*(scale/72),0))
+ svg_rot(90,"SH1",at last line.start + (4*(scale/72),-8*(scale/72)))
+ line from Base.sw+(16*(linewid/10)*2/3-(3*(linewid/10)),0) down plen
+ svg_rot(90,"23",at last line.c+(-4*(scale/72),0))
+ svg_rot(90,"SH4",at last line.start + (4*(scale/72),14*(scale/72)))
+ line from Base.sw+(16*(linewid/10)*2/3-2*(3*(linewid/10)),0) down plen
+ svg_rot(90,"22",at last line.c+(-4*(scale/72),0))
+ svg_rot(90,"SH3",at last line.start + (4*(scale/72),14*(scale/72)))
+#
+ ] with .nw at last [].ne+(0.25,0.5)
+ "Micro" rjust at HD.Base.sw "HDMI" rjust
+
+ S: [
+ #
+ Base: box wid 18*(linewid/10) ht 14*(3*(linewid/10)) rad 5/3*(3*(linewid/10))
+ plen = 6*(linewid/10)
+#
+ B12: line left plen from Base.n-(18*(linewid/10)/2,(1+0.5)*(3*(linewid/10)))
+ {"GND" ljust at last line.start}
+B11: line left plen from Base.n-(18*(linewid/10)/2,(2+0.5)*(3*(linewid/10)))
+ {"RX1<tspan font-style=\"italic\">+</tspan>" ljust at last line.start}
+B10: line left plen from Base.n-(18*(linewid/10)/2,(3+0.5)*(3*(linewid/10)))
+ {"RX1<tspan font-style=\"italic\">-</tspan>" ljust at last line.start}
+B9: line left plen from Base.n-(18*(linewid/10)/2,(4+0.5)*(3*(linewid/10)))
+ {"VBUS" ljust at last line.start}
+B8: line left plen from Base.n-(18*(linewid/10)/2,(5+0.5)*(3*(linewid/10)))
+ {"SBU2" ljust at last line.start}
+B7: line left plen from Base.n-(18*(linewid/10)/2,(6+0.5)*(3*(linewid/10)))
+ {"D<tspan font-style=\"italic\">-</tspan>" ljust at last line.start}
+B6: line left plen from Base.n-(18*(linewid/10)/2,(7+0.5)*(3*(linewid/10)))
+ {"D<tspan font-style=\"italic\">+</tspan>" ljust at last line.start}
+B5: line left plen from Base.n-(18*(linewid/10)/2,(8+0.5)*(3*(linewid/10)))
+ {"CC2" ljust at last line.start}
+B4: line left plen from Base.n-(18*(linewid/10)/2,(9+0.5)*(3*(linewid/10)))
+ {"VBUS" ljust at last line.start}
+B3: line left plen from Base.n-(18*(linewid/10)/2,(10+0.5)*(3*(linewid/10)))
+ {"TX2<tspan font-style=\"italic\">-</tspan>" ljust at last line.start}
+B2: line left plen from Base.n-(18*(linewid/10)/2,(11+0.5)*(3*(linewid/10)))
+ {"TX2<tspan font-style=\"italic\">+</tspan>" ljust at last line.start}
+B1: line left plen from Base.n-(18*(linewid/10)/2,(12+0.5)*(3*(linewid/10)))
+ {"GND" ljust at last line.start}
+
+#
+ A1: line right plen from Base.n+(18*(linewid/10)/2,-(1+0.5)*(3*(linewid/10)))
+ {"GND" rjust at last line.start}
+A2: line right plen from Base.n+(18*(linewid/10)/2,-(2+0.5)*(3*(linewid/10)))
+ {"TX1<tspan font-style=\"italic\">+</tspan>" rjust at last line.start}
+A3: line right plen from Base.n+(18*(linewid/10)/2,-(3+0.5)*(3*(linewid/10)))
+ {"TX1<tspan font-style=\"italic\">-</tspan>" rjust at last line.start}
+A4: line right plen from Base.n+(18*(linewid/10)/2,-(4+0.5)*(3*(linewid/10)))
+ {"VBUS" rjust at last line.start}
+A5: line right plen from Base.n+(18*(linewid/10)/2,-(5+0.5)*(3*(linewid/10)))
+ {"CC1" rjust at last line.start}
+A6: line right plen from Base.n+(18*(linewid/10)/2,-(6+0.5)*(3*(linewid/10)))
+ {"D<tspan font-style=\"italic\">+</tspan>" rjust at last line.start}
+A7: line right plen from Base.n+(18*(linewid/10)/2,-(7+0.5)*(3*(linewid/10)))
+ {"D<tspan font-style=\"italic\">-</tspan>" rjust at last line.start}
+A8: line right plen from Base.n+(18*(linewid/10)/2,-(8+0.5)*(3*(linewid/10)))
+ {"SBU1" rjust at last line.start}
+A9: line right plen from Base.n+(18*(linewid/10)/2,-(9+0.5)*(3*(linewid/10)))
+ {"VBUS" rjust at last line.start}
+A10: line right plen from Base.n+(18*(linewid/10)/2,-(10+0.5)*(3*(linewid/10)))
+ {"RX2<tspan font-style=\"italic\">-</tspan>" rjust at last line.start}
+A11: line right plen from Base.n+(18*(linewid/10)/2,-(11+0.5)*(3*(linewid/10)))
+ {"RX2<tspan font-style=\"italic\">+</tspan>" rjust at last line.start}
+A12: line right plen from Base.n+(18*(linewid/10)/2,-(12+0.5)*(3*(linewid/10)))
+ {"GND" rjust at last line.start}
+
+#
+ ] with .sw at (HD.e.x+0.25,RPI.s.y)
+ "USB-C Socket" at S.Base.s below
+ "B12" at S.B12.end above ljust
+ "B1" at S.B1.end above ljust
+ "A1" at S.A1.end above rjust
+ "A12" at S.A12.end above rjust
+
+ command "</g>"
+
+.PE
diff --git a/graphics/circuit_macros/examples/dpv/ConnectorsDPV.svg b/graphics/circuit_macros/examples/dpv/ConnectorsDPV.svg
new file mode 100644
index 0000000000..4b63a641be
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/ConnectorsDPV.svg
@@ -0,0 +1,853 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="681" height="387" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="680px" height="385.6px"
+ viewBox="0 0 680 385.6"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:sans-serif"
+>
+<rect x="10.666667" y="62.933333" width="115.2" height="288" />
+<line x1="10.666667" y1="149.333333" x2="1.066667" y2="149.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="153.356667">IOREF</text>
+<line x1="10.666667" y1="163.733333" x2="1.066667" y2="163.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="167.756667">RESET</text>
+<line x1="10.666667" y1="178.133333" x2="1.066667" y2="178.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="182.156667"><tspan font-style="italic">+</tspan>3V3</text>
+<line x1="10.666667" y1="192.533333" x2="1.066667" y2="192.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="196.556667"><tspan font-style="italic">+</tspan>5V</text>
+<line x1="10.666667" y1="206.933333" x2="1.066667" y2="206.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="210.956667">GND</text>
+<line x1="10.666667" y1="221.333333" x2="1.066667" y2="221.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="225.356667">GND</text>
+<line x1="10.666667" y1="235.733333" x2="1.066667" y2="235.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="239.756667">VIN</text>
+<line x1="10.666667" y1="264.533333" x2="1.066667" y2="264.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="268.556667">A0</text>
+<line x1="10.666667" y1="278.933333" x2="1.066667" y2="278.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="282.956667">A1</text>
+<line x1="10.666667" y1="293.333333" x2="1.066667" y2="293.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="297.356667">A2</text>
+<line x1="10.666667" y1="307.733333" x2="1.066667" y2="307.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="311.756667">A3</text>
+<line x1="10.666667" y1="322.133333" x2="1.066667" y2="322.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="326.156667">A4</text>
+<line x1="10.666667" y1="336.533333" x2="1.066667" y2="336.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="13.333333" y="340.556667">A5</text>
+<line x1="125.866667" y1="77.333333" x2="135.466667" y2="77.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="81.356667">SCL</text>
+<line x1="125.866667" y1="91.733333" x2="135.466667" y2="91.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="95.756667">SDA</text>
+<line x1="125.866667" y1="106.133333" x2="135.466667" y2="106.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="110.156667">AREF</text>
+<line x1="125.866667" y1="120.533333" x2="135.466667" y2="120.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="124.556667">GND</text>
+<line x1="125.866667" y1="134.933333" x2="135.466667" y2="134.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="138.956667">~D13</text>
+<line x1="125.866667" y1="149.333333" x2="135.466667" y2="149.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="153.356667">D12</text>
+<line x1="125.866667" y1="163.733333" x2="135.466667" y2="163.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="167.756667">~D11</text>
+<line x1="125.866667" y1="178.133333" x2="135.466667" y2="178.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="182.156667">~D10</text>
+<line x1="125.866667" y1="192.533333" x2="135.466667" y2="192.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="196.556667">~D9</text>
+<line x1="125.866667" y1="206.933333" x2="135.466667" y2="206.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="210.956667">D8</text>
+<line x1="125.866667" y1="235.733333" x2="135.466667" y2="235.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="239.756667">D7</text>
+<line x1="125.866667" y1="250.133333" x2="135.466667" y2="250.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="254.156667">~D6</text>
+<line x1="125.866667" y1="264.533333" x2="135.466667" y2="264.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="268.556667">~D5</text>
+<line x1="125.866667" y1="278.933333" x2="135.466667" y2="278.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="282.956667">D4</text>
+<line x1="125.866667" y1="293.333333" x2="135.466667" y2="293.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="297.356667">~D3</text>
+<line x1="125.866667" y1="307.733333" x2="135.466667" y2="307.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="311.756667">D2</text>
+<line x1="125.866667" y1="322.133333" x2="135.466667" y2="322.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="326.156667">TX D1</text>
+<line x1="125.866667" y1="336.533333" x2="135.466667" y2="336.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="123.2" y="340.556667">RX D0</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="68.266667" y="361.646667">Arduino Leonardo</text>
+<rect x="188.266667" y="48.533333" width="163.2" height="302.4" />
+<line x1="188.266667" y1="62.933333" x2="159.466667" y2="62.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="66.956667">3V3</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="60.266667"></text>
+<line x1="188.266667" y1="77.333333" x2="159.466667" y2="77.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="81.356667">SDA1</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="74.666667">2</text>
+<line x1="188.266667" y1="91.733333" x2="159.466667" y2="91.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="95.756667">SCL1</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="89.066667">3</text>
+<line x1="188.266667" y1="106.133333" x2="159.466667" y2="106.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="110.156667">GPIO_GCLK</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="103.466667">4</text>
+<line x1="188.266667" y1="120.533333" x2="159.466667" y2="120.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="124.556667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="117.866667"></text>
+<line x1="188.266667" y1="134.933333" x2="159.466667" y2="134.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="138.956667">GPIO_GEN0</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="132.266667">17</text>
+<line x1="188.266667" y1="149.333333" x2="159.466667" y2="149.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="153.356667">GPIO_GEN2</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="146.666667">27</text>
+<line x1="188.266667" y1="163.733333" x2="159.466667" y2="163.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="167.756667">GPIO_GEN3</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="161.066667">22</text>
+<line x1="188.266667" y1="178.133333" x2="159.466667" y2="178.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="182.156667">3V3</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="175.466667"></text>
+<line x1="188.266667" y1="192.533333" x2="159.466667" y2="192.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="196.556667">SPI_MOSI</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="189.866667">10</text>
+<line x1="188.266667" y1="206.933333" x2="159.466667" y2="206.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="210.956667">SPI_MISO</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="204.266667">9</text>
+<line x1="188.266667" y1="221.333333" x2="159.466667" y2="221.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="225.356667">SPI_SCLK</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="218.666667">11</text>
+<line x1="188.266667" y1="235.733333" x2="159.466667" y2="235.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="239.756667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="233.066667"></text>
+<line x1="188.266667" y1="250.133333" x2="159.466667" y2="250.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="254.156667">ID_SD</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="247.466667"></text>
+<line x1="188.266667" y1="264.533333" x2="159.466667" y2="264.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="268.556667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="261.866667">5</text>
+<line x1="188.266667" y1="278.933333" x2="159.466667" y2="278.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="282.956667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="276.266667">6</text>
+<line x1="188.266667" y1="293.333333" x2="159.466667" y2="293.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="297.356667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="290.666667">13</text>
+<line x1="188.266667" y1="307.733333" x2="159.466667" y2="307.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="311.756667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="305.066667">19</text>
+<line x1="188.266667" y1="322.133333" x2="159.466667" y2="322.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="326.156667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="319.466667">26</text>
+<line x1="188.266667" y1="336.533333" x2="159.466667" y2="336.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="190.933333" y="340.556667">GND </text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="173.866667" y="333.866667"></text>
+<line x1="351.466667" y1="62.933333" x2="380.266667" y2="62.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="66.956667">5V</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="60.266667"></text>
+<line x1="351.466667" y1="77.333333" x2="380.266667" y2="77.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="81.356667">5V</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="74.666667"></text>
+<line x1="351.466667" y1="91.733333" x2="380.266667" y2="91.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="95.756667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="89.066667"></text>
+<line x1="351.466667" y1="106.133333" x2="380.266667" y2="106.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="110.156667">TXD0</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="103.466667">14</text>
+<line x1="351.466667" y1="120.533333" x2="380.266667" y2="120.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="124.556667">RXD0</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="117.866667">15</text>
+<line x1="351.466667" y1="134.933333" x2="380.266667" y2="134.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="138.956667">GPIO_GEN1</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="132.266667">18</text>
+<line x1="351.466667" y1="149.333333" x2="380.266667" y2="149.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="153.356667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="146.666667"></text>
+<line x1="351.466667" y1="163.733333" x2="380.266667" y2="163.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="167.756667">GPIO_GEN4</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="161.066667">23</text>
+<line x1="351.466667" y1="178.133333" x2="380.266667" y2="178.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="182.156667">GPIO_GEN5</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="175.466667">24</text>
+<line x1="351.466667" y1="192.533333" x2="380.266667" y2="192.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="196.556667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="189.866667"></text>
+<line x1="351.466667" y1="206.933333" x2="380.266667" y2="206.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="210.956667">GPIO_GEN6</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="204.266667">25</text>
+<line x1="351.466667" y1="221.333333" x2="380.266667" y2="221.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="225.356667">SPI_CEO_N</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="218.666667">8</text>
+<line x1="351.466667" y1="235.733333" x2="380.266667" y2="235.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="239.756667">SPI_CE1_N</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="233.066667">7</text>
+<line x1="351.466667" y1="250.133333" x2="380.266667" y2="250.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="254.156667">ID_SC</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="247.466667"></text>
+<line x1="351.466667" y1="264.533333" x2="380.266667" y2="264.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="268.556667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="261.866667"></text>
+<line x1="351.466667" y1="278.933333" x2="380.266667" y2="278.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="282.956667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="276.266667">12</text>
+<line x1="351.466667" y1="293.333333" x2="380.266667" y2="293.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="297.356667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="290.666667"></text>
+<line x1="351.466667" y1="307.733333" x2="380.266667" y2="307.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="311.756667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="305.066667">16</text>
+<line x1="351.466667" y1="322.133333" x2="380.266667" y2="322.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="326.156667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="319.466667">20</text>
+<line x1="351.466667" y1="336.533333" x2="380.266667" y2="336.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="348.8" y="340.556667"></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="365.866667" y="333.866667">21</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="269.866667" y="361.646667">Raspberry Pi 4 GPIO</text>
+<polyline points="433.066667,328.533333 433.066667,29.333333
+484.266667,29.333333
+509.866667,54.933333
+509.866667,328.533333
+484.266667,354.133333
+433.066667,354.133333
+433.066667,328.533333" />
+<line x1="433.066667" y1="62.133333" x2="404.266667" y2="62.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="66.156667">HPD</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="59.466667">1</text>
+<line x1="433.066667" y1="76.533333" x2="404.266667" y2="76.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="80.556667">UTILITY</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="73.866667">2</text>
+<line x1="433.066667" y1="90.933333" x2="404.266667" y2="90.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="94.956667">D2<tspan font-style="italic">+</tspan></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="88.266667">3</text>
+<line x1="433.066667" y1="105.333333" x2="404.266667" y2="105.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="109.356667">D2_SH</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="102.666667">4</text>
+<line x1="433.066667" y1="119.733333" x2="404.266667" y2="119.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="123.756667">D2<tspan font-style="italic">-</tspan></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="117.066667">5</text>
+<line x1="433.066667" y1="134.133333" x2="404.266667" y2="134.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="138.156667">D1<tspan font-style="italic">+</tspan></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="131.466667">6</text>
+<line x1="433.066667" y1="148.533333" x2="404.266667" y2="148.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="152.556667">D1_SH</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="145.866667">7</text>
+<line x1="433.066667" y1="162.933333" x2="404.266667" y2="162.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="166.956667">D1<tspan font-style="italic">-</tspan></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="160.266667">8</text>
+<line x1="433.066667" y1="177.333333" x2="404.266667" y2="177.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="181.356667">D0<tspan font-style="italic">+</tspan></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="174.666667">9</text>
+<line x1="433.066667" y1="191.733333" x2="404.266667" y2="191.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="195.756667">D0_SH</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="189.066667">10</text>
+<line x1="433.066667" y1="206.133333" x2="404.266667" y2="206.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="210.156667">D0<tspan font-style="italic">-</tspan></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="203.466667">11</text>
+<line x1="433.066667" y1="220.533333" x2="404.266667" y2="220.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="224.556667">CLK<tspan font-style="italic">+</tspan></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="217.866667">12</text>
+<line x1="433.066667" y1="234.933333" x2="404.266667" y2="234.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="238.956667">CLK_SH</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="232.266667">13</text>
+<line x1="433.066667" y1="249.333333" x2="404.266667" y2="249.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="253.356667">CLK<tspan font-style="italic">-</tspan></text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="246.666667">14</text>
+<line x1="433.066667" y1="263.733333" x2="404.266667" y2="263.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="267.756667">CEC</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="261.066667">15</text>
+<line x1="433.066667" y1="278.133333" x2="404.266667" y2="278.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="282.156667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="275.466667">16</text>
+<line x1="433.066667" y1="292.533333" x2="404.266667" y2="292.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="296.556667">SCL</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="289.866667">17</text>
+<line x1="433.066667" y1="306.933333" x2="404.266667" y2="306.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="310.956667">SDA</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="304.266667">18</text>
+<line x1="433.066667" y1="321.333333" x2="404.266667" y2="321.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="435.733333" y="325.356667"><tspan font-style="italic">+</tspan>5V</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="418.666667" y="318.666667">19</text>
+<line x1="469.866667" y1="29.333333" x2="469.866667" y2="0.533333" />
+<g transform="rotate(-90 468.515 14.9752)">
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="468.556667" y="14.933333">21</text>
+</g>
+<g transform="rotate(-90 479.181 40.0419)">
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="479.223333" y="40">SH2</text>
+</g>
+<line x1="455.466667" y1="29.333333" x2="455.466667" y2="0.533333" />
+<g transform="rotate(-90 454.115 14.9752)">
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="454.156667" y="14.933333">20</text>
+</g>
+<g transform="rotate(-90 464.781 40.0419)">
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="464.823333" y="40">SH1</text>
+</g>
+<line x1="469.866667" y1="354.133333" x2="469.866667" y2="382.933333" />
+<g transform="rotate(-90 468.515 368.575)">
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="468.556667" y="368.533333">23</text>
+</g>
+<g transform="rotate(-90 479.181 335.509)">
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="479.223333" y="335.466667">SH4</text>
+</g>
+<line x1="455.466667" y1="354.133333" x2="455.466667" y2="382.933333" />
+<g transform="rotate(-90 454.115 368.575)">
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="454.156667" y="368.533333">22</text>
+</g>
+<g transform="rotate(-90 464.781 335.509)">
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="464.823333" y="335.466667">SH3</text>
+</g>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="430.4" y="352.49">Micro</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="430.4" y="363.823333">HDMI</text>
+<rect x="562.666667" y="149.333333" rx="24" ry="24" width="86.4" height="201.6" />
+<line x1="562.666667" y1="170.933333" x2="533.866667" y2="170.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="174.956667">GND</text>
+<line x1="562.666667" y1="185.333333" x2="533.866667" y2="185.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="189.356667">RX1<tspan font-style="italic">+</tspan></text>
+<line x1="562.666667" y1="199.733333" x2="533.866667" y2="199.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="203.756667">RX1<tspan font-style="italic">-</tspan></text>
+<line x1="562.666667" y1="214.133333" x2="533.866667" y2="214.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="218.156667">VBUS</text>
+<line x1="562.666667" y1="228.533333" x2="533.866667" y2="228.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="232.556667">SBU2</text>
+<line x1="562.666667" y1="242.933333" x2="533.866667" y2="242.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="246.956667">D<tspan font-style="italic">-</tspan></text>
+<line x1="562.666667" y1="257.333333" x2="533.866667" y2="257.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="261.356667">D<tspan font-style="italic">+</tspan></text>
+<line x1="562.666667" y1="271.733333" x2="533.866667" y2="271.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="275.756667">CC2</text>
+<line x1="562.666667" y1="286.133333" x2="533.866667" y2="286.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="290.156667">VBUS</text>
+<line x1="562.666667" y1="300.533333" x2="533.866667" y2="300.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="304.556667">TX2<tspan font-style="italic">-</tspan></text>
+<line x1="562.666667" y1="314.933333" x2="533.866667" y2="314.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="318.956667">TX2<tspan font-style="italic">+</tspan></text>
+<line x1="562.666667" y1="329.333333" x2="533.866667" y2="329.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="565.333333" y="333.356667">GND</text>
+<line x1="649.066667" y1="170.933333" x2="677.866667" y2="170.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="174.956667">GND</text>
+<line x1="649.066667" y1="185.333333" x2="677.866667" y2="185.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="189.356667">TX1<tspan font-style="italic">+</tspan></text>
+<line x1="649.066667" y1="199.733333" x2="677.866667" y2="199.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="203.756667">TX1<tspan font-style="italic">-</tspan></text>
+<line x1="649.066667" y1="214.133333" x2="677.866667" y2="214.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="218.156667">VBUS</text>
+<line x1="649.066667" y1="228.533333" x2="677.866667" y2="228.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="232.556667">CC1</text>
+<line x1="649.066667" y1="242.933333" x2="677.866667" y2="242.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="246.956667">D<tspan font-style="italic">+</tspan></text>
+<line x1="649.066667" y1="257.333333" x2="677.866667" y2="257.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="261.356667">D<tspan font-style="italic">-</tspan></text>
+<line x1="649.066667" y1="271.733333" x2="677.866667" y2="271.733333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="275.756667">SBU1</text>
+<line x1="649.066667" y1="286.133333" x2="677.866667" y2="286.133333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="290.156667">VBUS</text>
+<line x1="649.066667" y1="300.533333" x2="677.866667" y2="300.533333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="304.556667">RX2<tspan font-style="italic">-</tspan></text>
+<line x1="649.066667" y1="314.933333" x2="677.866667" y2="314.933333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="318.956667">RX2<tspan font-style="italic">+</tspan></text>
+<line x1="649.066667" y1="329.333333" x2="677.866667" y2="329.333333" />
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="646.4" y="333.356667">GND</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ x="605.866667" y="361.646667">USB-C Socket</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="536.533333" y="168.266667">B12</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="536.533333" y="326.666667">B1</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="675.2" y="168.266667">A1</text>
+<text font-size="8.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="675.2" y="326.666667">A12</text>
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/ContactSVG.m4 b/graphics/circuit_macros/examples/dpv/ContactDPV.m4
index 057f702731..d2fb238005 100644
--- a/graphics/circuit_macros/examples/svg/ContactSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ContactDPV.m4
@@ -1,5 +1,5 @@
.PS
-# ContactSVG
+# ContactDPV
cct_init
svg_font(sans-serif,11bp__)
diff --git a/graphics/circuit_macros/examples/svg/ContactsSVG.m4 b/graphics/circuit_macros/examples/dpv/ContactsDPV.m4
index 556ae04a61..c323c04714 100644
--- a/graphics/circuit_macros/examples/svg/ContactsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ContactsDPV.m4
@@ -1,5 +1,5 @@
.PS
-# ContactsSVG.m4
+# ContactsDPV.m4
cct_init
svg_font(sans-serif,10bp__)
diff --git a/graphics/circuit_macros/examples/svg/CountingSVG.m4 b/graphics/circuit_macros/examples/dpv/CountingDPV.m4
index a972ba663f..1abda4f76e 100644
--- a/graphics/circuit_macros/examples/svg/CountingSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/CountingDPV.m4
@@ -1,5 +1,5 @@
.PS
-# CountingSVG.m4
+# CountingDPV.m4
gen_init(svg_font(sans-serif,11bp__))
g = 0.4 # grid size
diff --git a/graphics/circuit_macros/examples/svg/CrowSVG.m4 b/graphics/circuit_macros/examples/dpv/CrowDPV.m4
index 3fe2e8ff72..3b3cb802b0 100644
--- a/graphics/circuit_macros/examples/svg/CrowSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/CrowDPV.m4
@@ -1,5 +1,5 @@
.PS
-# CrowSVG.m4
+# CrowDPV.m4
#`Illustrates shadebox and custom crowfoot line termination'
gen_init(svg_font(sans-serif,11bp__))
diff --git a/graphics/circuit_macros/examples/svg/CrullerSVG.m4 b/graphics/circuit_macros/examples/dpv/CrullerDPV.m4
index 7f8173b52a..db03d7b3c3 100644
--- a/graphics/circuit_macros/examples/svg/CrullerSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/CrullerDPV.m4
@@ -1,5 +1,5 @@
.PS
-# CrullerSVG.m4
+# CrullerDPV.m4
threeD_init
NeedDpicTools
scale = 2.54
diff --git a/graphics/circuit_macros/examples/svg/CsourceSVG.m4 b/graphics/circuit_macros/examples/dpv/CsourceDPV.m4
index c95aaff3d4..c95aaff3d4 100644
--- a/graphics/circuit_macros/examples/svg/CsourceSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/CsourceDPV.m4
diff --git a/graphics/circuit_macros/examples/dpv/CsourceDPV.svg b/graphics/circuit_macros/examples/dpv/CsourceDPV.svg
new file mode 100644
index 0000000000..81aa8f201d
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/CsourceDPV.svg
@@ -0,0 +1,1175 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="797" height="428" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="796.4px" height="426.730667px"
+ viewBox="0 0 796.4 426.730667"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:sans-serif"
+>
+<polyline points="106.666667,4.698667 106.666667,16.698667
+110.666667,18.698667
+102.666667,22.698667
+110.666667,26.698667
+102.666667,30.698667
+110.666667,34.698667
+102.666667,38.698667
+106.666667,40.698667
+106.666667,52.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="112" y="26.616"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="114.666667" y="39.112">150&#937;</text>
+<circle fill="black"
+ cx="106.666667" cy="52.698667" r="1.92" />
+<polyline points="106.666667,52.698667 106.666667,62.298667
+107.022222,62.458667" />
+<polyline points="106.666667,100.698667 106.666667,91.098667
+107.022222,90.938667" />
+<line x1="125.866667" y1="67.098667" x2="125.866667" y2="86.298667" />
+<line x1="137.866667" y1="76.698667" x2="125.866667" y2="76.698667" />
+<line x1="106.666667" y1="62.298667" x2="125.866667" y2="70.938667" />
+<polygon stroke-width="0" fill="black"
+ points="114.8656,63.063959 121.066667,68.778667
+112.676989,67.92754" />
+<line x1="111.466667" y1="64.458667" x2="119.528667" y2="68.086567" />
+<line x1="106.666667" y1="91.098667" x2="125.866667" y2="82.458667" />
+<path d="M 137.866667,76.698667
+ A 19.2 19.2 0 0 1 99.466667,76.698667" />
+<line x1="99.466667" y1="76.698667" x2="99.466667" y2="76.698667" />
+<path d="M 99.466667,76.698667
+ A 19.2 19.2 0 0 1 137.866667,76.698667" />
+<line x1="137.866667" y1="76.698667" x2="137.866667" y2="76.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="100.8" y="74.616"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">13</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="98.133333" y="87.112">2N4236</text>
+<line x1="106.666667" y1="100.698667" x2="106.666667" y2="323.898667" />
+<polyline points="106.666667,371.898667 106.666667,362.298667
+107.022222,362.138667" />
+<polyline points="106.666667,323.898667 106.666667,333.498667
+107.022222,333.658667" />
+<line x1="125.866667" y1="357.498667" x2="125.866667" y2="338.298667" />
+<line x1="137.866667" y1="347.898667" x2="125.866667" y2="347.898667" />
+<line x1="106.666667" y1="362.298667" x2="125.866667" y2="353.658667" />
+<polygon stroke-width="0" fill="black"
+ points="119.856345,359.28754 111.466667,360.138667
+117.667733,354.423959" />
+<line x1="113.004666" y1="359.446567" x2="121.066667" y2="355.818667" />
+<line x1="106.666667" y1="333.498667" x2="125.866667" y2="342.138667" />
+<path d="M 137.866667,347.898667
+ A 19.2 19.2 0 0 0 99.466667,347.898667" />
+<line x1="99.466667" y1="347.898667" x2="99.466667" y2="347.898667" />
+<path d="M 99.466667,347.898667
+ A 19.2 19.2 0 0 0 137.866667,347.898667" />
+<line x1="137.866667" y1="347.898667" x2="137.866667" y2="347.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="100.8" y="345.816"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">14</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="98.133333" y="358.312">2N4239</text>
+<circle fill="black"
+ cx="106.666667" cy="371.898667" r="1.92" />
+<polyline points="106.666667,371.898667 44.266667,371.898667
+44.266667,323.898667" />
+<polyline points="44.266667,323.898667 44.266667,311.898667
+40.266667,309.898667
+48.266667,305.898667
+40.266667,301.898667
+48.266667,297.898667
+40.266667,293.898667
+48.266667,289.898667
+44.266667,287.898667
+44.266667,275.898667" />
+<polygon stroke-width="0" fill="black"
+ points="34.666667,297.498667 44.266667,299.898667
+34.666667,302.298667" />
+<line x1="24.266667" y1="299.898667" x2="42.067677" y2="299.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="49.6" y="297.816"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="52.266667" y="310.312">20k&#937;</text>
+<line x1="24.266667" y1="299.898667" x2="24.266667" y2="311.898667" />
+<line x1="32.266667" y1="311.898667" x2="16.266667" y2="311.898667" />
+<line x1="29.6" y1="314.898667" x2="18.933333" y2="314.898667" />
+<line x1="27.695238" y1="317.898667" x2="20.838095" y2="317.898667" />
+<polyline points="44.266667,275.898667 44.266667,52.698667
+106.666667,52.698667" />
+<circle fill="black"
+ cx="106.666667" cy="172.698667" r="1.92" />
+<line x1="106.666667" y1="172.698667" x2="20.266667" y2="172.698667" />
+<line x1="20.266667" y1="172.698667" x2="44.266667" y2="172.698667" />
+<polygon stroke-width="0" fill="black"
+ points="27.466667,170.298667 37.066667,172.698667
+27.466667,175.098667" />
+<line x1="27.466667" y1="172.698667" x2="34.867677" y2="172.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="32.266667" y="167.632"
+>i<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<circle fill="white"
+ cx="20.266667" cy="172.698667" r="1.92" />
+<circle fill="white"
+ cx="20.266667" cy="220.698667" r="1.92" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="17.6" y="182.476444">+</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="17.6" y="200.864"
+>V<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="17.6" y="219.251556">-</text>
+<line x1="20.266667" y1="222.618667" x2="20.266667" y2="232.698667" />
+<line x1="28.266667" y1="232.698667" x2="12.266667" y2="232.698667" />
+<line x1="25.6" y1="235.698667" x2="14.933333" y2="235.698667" />
+<line x1="23.695238" y1="238.698667" x2="16.838095" y2="238.698667" />
+<polyline points="106.666667,371.898667 106.666667,383.898667
+110.666667,385.898667
+102.666667,389.898667
+110.666667,393.898667
+102.666667,397.898667
+110.666667,401.898667
+102.666667,405.898667
+106.666667,407.898667
+106.666667,419.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="112" y="393.816"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">3</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="114.666667" y="406.312">150&#937;</text>
+<circle fill="black"
+ cx="106.666667" cy="244.698667" r="1.92" />
+<line x1="106.666667" y1="244.698667" x2="130.666667" y2="244.698667" />
+<polyline points="130.666667,232.698667 130.666667,208.698667
+178.666667,232.698667
+130.666667,256.698667
+130.666667,232.698667" />
+<line x1="178.666667" y1="232.698667" x2="190.666667" y2="232.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="135.980075" y="224.030933">-</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="135.980075" y="248.030933">+</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="154.666667" y="236.864"
+><tspan font-style="italic">A<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="176" y="259.162667">Nexus</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="176" y="270.896">SQ-10A</text>
+<polyline points="130.666667,220.698667 118.666667,220.698667
+118.666667,196.698667
+166.666667,196.698667" />
+<circle fill="black"
+ cx="166.666667" cy="196.698667" r="1.92" />
+<polyline points="166.666667,196.698667 166.666667,172.698667
+162.666667,170.698667
+170.666667,166.698667
+162.666667,162.698667
+170.666667,158.698667
+162.666667,154.698667
+170.666667,150.698667
+166.666667,148.698667
+166.666667,124.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="161.333333" y="158.616"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">14</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="158.666667" y="171.112">19k&#937;</text>
+<polyline points="166.666667,124.698667 166.666667,52.698667
+106.666667,52.698667" />
+<line x1="166.666667" y1="196.698667" x2="190.666667" y2="196.698667" />
+<circle fill="black"
+ cx="190.666667" cy="196.698667" r="1.92" />
+<line x1="190.666667" y1="196.698667" x2="190.666667" y2="232.698667" />
+<circle fill="black"
+ cx="190.666667" cy="232.698667" r="1.92" />
+<polyline points="190.666667,232.698667 190.666667,290.298667
+194.666667,292.298667
+186.666667,296.298667
+194.666667,300.298667
+186.666667,304.298667
+194.666667,308.298667
+186.666667,312.298667
+190.666667,314.298667
+190.666667,371.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="196" y="300.216"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">13</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="198.666667" y="312.712">91k&#937;</text>
+<line x1="190.666667" y1="371.898667" x2="106.666667" y2="371.898667" />
+<polyline points="190.666667,196.698667 202.666667,196.698667
+204.666667,192.698667
+208.666667,200.698667
+212.666667,192.698667
+216.666667,200.698667
+220.666667,192.698667
+224.666667,200.698667
+226.666667,196.698667
+238.666667,196.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="201.333333" y="211.696"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">6</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="204" y="224.192">15k&#937;</text>
+<circle fill="black"
+ cx="238.666667" cy="196.698667" r="1.92" />
+<polyline points="238.666667,196.698667 238.666667,220.698667
+250.666667,220.698667" />
+<polyline points="250.666667,232.698667 250.666667,208.698667
+298.666667,232.698667
+250.666667,256.698667
+250.666667,232.698667" />
+<line x1="298.666667" y1="232.698667" x2="310.666667" y2="232.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="255.980075" y="224.030933">-</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="255.980075" y="248.030933">+</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="274.666667" y="236.864"
+><tspan font-style="italic">A<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="296" y="259.162667">Nexus</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="296" y="270.896">SQ-10A</text>
+<line x1="250.666667" y1="244.698667" x2="238.666667" y2="244.698667" />
+<line x1="238.666667" y1="244.698667" x2="238.666667" y2="256.698667" />
+<line x1="246.666667" y1="256.698667" x2="230.666667" y2="256.698667" />
+<line x1="244" y1="259.698667" x2="233.333333" y2="259.698667" />
+<line x1="242.095238" y1="262.698667" x2="235.238095" y2="262.698667" />
+<circle fill="black"
+ cx="310.666667" cy="232.698667" r="1.92" />
+<polyline points="357.466667,275.898667 357.466667,290.298667
+356.403985,290.298667" />
+<polyline points="357.466667,323.898667 357.466667,309.498667
+356.403985,309.498667" />
+<line x1="357.466667" y1="309.498667" x2="340.666667" y2="309.498667" />
+<line x1="340.666667" y1="287.898667" x2="340.666667" y2="311.898667" />
+<line x1="340.666667" y1="299.898667" x2="321.466667" y2="299.898667" />
+<polygon stroke-width="0" fill="black"
+ points="334.266667,302.565333 326.266667,299.898667
+334.266667,297.232" />
+<line x1="334.266667" y1="299.898667" x2="327.953215" y2="299.898667" />
+<line x1="357.466667" y1="290.298667" x2="340.666667" y2="290.298667" />
+<circle cx="340.666667" cy="299.898667" r="19.2" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="313.466667" y="267.568"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">3</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="316.133333" y="280.064">2N5464</text>
+<line x1="357.466667" y1="323.898667" x2="369.466667" y2="323.898667" />
+<polyline points="400.666667,347.898667 400.666667,338.298667
+400.311111,338.138667" />
+<polyline points="400.666667,299.898667 400.666667,309.498667
+400.311111,309.658667" />
+<line x1="381.466667" y1="333.498667" x2="381.466667" y2="314.298667" />
+<line x1="369.466667" y1="323.898667" x2="381.466667" y2="323.898667" />
+<line x1="400.666667" y1="338.298667" x2="381.466667" y2="329.658667" />
+<polygon stroke-width="0" fill="black"
+ points="389.6656,330.423959 395.866667,336.138667
+387.476989,335.28754" />
+<line x1="394.328667" y1="335.446567" x2="386.266667" y2="331.818667" />
+<line x1="400.666667" y1="309.498667" x2="381.466667" y2="318.138667" />
+<path d="M 369.466667,323.898667
+ A 19.2 19.2 0 0 1 407.866667,323.898667" />
+<line x1="407.866667" y1="323.898667" x2="407.866667" y2="323.898667" />
+<path d="M 407.866667,323.898667
+ A 19.2 19.2 0 1 1 369.466667,323.898667" />
+<line x1="369.466667" y1="323.898667" x2="369.466667" y2="323.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="406.533333" y="321.816"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">4</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="409.2" y="334.312">2N4239</text>
+<circle fill="black"
+ cx="400.666667" cy="275.898667" r="1.92" />
+<polyline points="357.466667,275.898667 400.666667,275.898667
+400.666667,299.898667" />
+<polyline points="310.666667,232.698667 310.666667,299.898667
+321.466667,299.898667" />
+<line x1="400.666667" y1="347.898667" x2="400.666667" y2="419.898667" />
+<circle fill="black"
+ cx="400.666667" cy="419.898667" r="1.92" />
+<line x1="400.666667" y1="251.898667" x2="400.666667" y2="260.434565" />
+<polyline stroke-width="0" fill="black"
+ points="400.666667,260.434565
+404.666667,260.434565
+400.666667,266.831427
+396.666667,260.434565
+400.666667,260.434565" />
+<polyline points="400.666667,260.434565 404.666667,260.434565
+400.666667,266.831427
+396.666667,260.434565
+400.666667,260.434565" />
+<line x1="396.277698" y1="267.362768" x2="405.055635" y2="267.362768" />
+<line x1="400.666667" y1="267.362768" x2="400.666667" y2="275.898667" />
+<line x1="400.666667" y1="235.898667" x2="400.666667" y2="244.434565" />
+<polyline stroke-width="0" fill="black"
+ points="400.666667,244.434565
+404.666667,244.434565
+400.666667,250.831427
+396.666667,244.434565
+400.666667,244.434565" />
+<polyline points="400.666667,244.434565 404.666667,244.434565
+400.666667,250.831427
+396.666667,244.434565
+400.666667,244.434565" />
+<line x1="396.277698" y1="251.362768" x2="405.055635" y2="251.362768" />
+<line x1="400.666667" y1="251.362768" x2="400.666667" y2="259.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="393.079691" y="240.330667">OMC-V</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="393.079691" y="252.064"
+><tspan font-style="italic">D<tspan font-size="70%"
+dy="0.66ex" dx="">4</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="393.079691" y="263.797333"
+><tspan font-style="italic">D<tspan font-size="70%"
+dy="0.66ex" dx="">3</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<polyline points="357.466667,100.698667 357.466667,115.098667
+356.403985,115.098667" />
+<polyline points="357.466667,148.698667 357.466667,134.298667
+356.403985,134.298667" />
+<line x1="357.466667" y1="134.298667" x2="340.666667" y2="134.298667" />
+<line x1="340.666667" y1="112.698667" x2="340.666667" y2="136.698667" />
+<polygon stroke-width="0" fill="black"
+ points="332.666667,122.032 340.666667,124.698667
+332.666667,127.365333" />
+<line x1="321.466667" y1="124.698667" x2="338.980119" y2="124.698667" />
+<line x1="357.466667" y1="115.098667" x2="340.666667" y2="115.098667" />
+<circle cx="340.666667" cy="124.698667" r="19.2" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="320.133333" y="151.6144"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="322.8" y="164.1104">2N3819</text>
+<line x1="357.466667" y1="100.698667" x2="369.466667" y2="100.698667" />
+<polyline points="400.666667,76.698667 400.666667,86.298667
+400.311111,86.458667" />
+<polyline points="400.666667,124.698667 400.666667,115.098667
+400.311111,114.938667" />
+<line x1="381.466667" y1="91.098667" x2="381.466667" y2="110.298667" />
+<line x1="369.466667" y1="100.698667" x2="381.466667" y2="100.698667" />
+<line x1="400.666667" y1="86.298667" x2="381.466667" y2="94.938667" />
+<polygon stroke-width="0" fill="black"
+ points="394.656345,91.92754 386.266667,92.778667
+392.467733,87.063959" />
+<line x1="395.866667" y1="88.458667" x2="387.804666" y2="92.086567" />
+<line x1="400.666667" y1="115.098667" x2="381.466667" y2="106.458667" />
+<path d="M 369.466667,100.698667
+ A 19.2 19.2 0 0 0 407.866667,100.698667" />
+<line x1="407.866667" y1="100.698667" x2="407.866667" y2="100.698667" />
+<path d="M 407.866667,100.698667
+ A 19.2 19.2 0 0 0 369.466667,100.698667" />
+<line x1="369.466667" y1="100.698667" x2="369.466667" y2="100.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="407.866667" y="98.616"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="410.533333" y="111.112">2N4236</text>
+<circle fill="black"
+ cx="400.666667" cy="148.698667" r="1.92" />
+<polyline points="357.466667,148.698667 400.666667,148.698667
+400.666667,124.698667" />
+<line x1="400.666667" y1="148.698667" x2="400.666667" y2="157.234565" />
+<polyline stroke-width="0" fill="black"
+ points="400.666667,157.234565
+404.666667,157.234565
+400.666667,163.631427
+396.666667,157.234565
+400.666667,157.234565" />
+<polyline points="400.666667,157.234565 404.666667,157.234565
+400.666667,163.631427
+396.666667,157.234565
+400.666667,157.234565" />
+<line x1="396.277698" y1="164.162768" x2="405.055635" y2="164.162768" />
+<line x1="400.666667" y1="164.162768" x2="400.666667" y2="172.698667" />
+<line x1="400.666667" y1="164.698667" x2="400.666667" y2="173.234565" />
+<polyline stroke-width="0" fill="black"
+ points="400.666667,173.234565
+404.666667,173.234565
+400.666667,179.631427
+396.666667,173.234565
+400.666667,173.234565" />
+<polyline points="400.666667,173.234565 404.666667,173.234565
+400.666667,179.631427
+396.666667,173.234565
+400.666667,173.234565" />
+<line x1="396.277698" y1="180.162768" x2="405.055635" y2="180.162768" />
+<line x1="400.666667" y1="180.162768" x2="400.666667" y2="188.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="393.079691" y="169.130667"
+><tspan font-style="italic">D<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="393.079691" y="180.864"
+><tspan font-style="italic">D<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="393.079691" y="192.597333">OMC-V</text>
+<circle fill="black"
+ cx="400.666667" cy="232.698667" r="1.92" />
+<line x1="400.666667" y1="232.698667" x2="400.666667" y2="188.698667" />
+<polyline points="321.466667,124.698667 310.666667,124.698667
+310.666667,232.698667" />
+<line x1="400.666667" y1="76.698667" x2="400.666667" y2="4.698667" />
+<circle fill="black"
+ cx="400.666667" cy="4.698667" r="1.92" />
+<circle fill="black"
+ cx="448.666667" cy="232.698667" r="1.92" />
+<polyline points="496.666667,275.898667 496.666667,290.298667
+495.603985,290.298667" />
+<polyline points="496.666667,323.898667 496.666667,309.498667
+495.603985,309.498667" />
+<line x1="496.666667" y1="309.498667" x2="479.866667" y2="309.498667" />
+<line x1="479.866667" y1="287.898667" x2="479.866667" y2="311.898667" />
+<line x1="479.866667" y1="299.898667" x2="460.666667" y2="299.898667" />
+<polygon stroke-width="0" fill="black"
+ points="473.466667,302.565333 465.466667,299.898667
+473.466667,297.232" />
+<line x1="473.466667" y1="299.898667" x2="467.153215" y2="299.898667" />
+<line x1="496.666667" y1="290.298667" x2="479.866667" y2="290.298667" />
+<circle cx="479.866667" cy="299.898667" r="19.2" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="452.666667" y="267.568"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">7</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="455.333333" y="280.064">2N5464</text>
+<line x1="496.666667" y1="323.898667" x2="508.666667" y2="323.898667" />
+<polyline points="539.866667,347.898667 539.866667,338.298667
+539.511111,338.138667" />
+<polyline points="539.866667,299.898667 539.866667,309.498667
+539.511111,309.658667" />
+<line x1="520.666667" y1="333.498667" x2="520.666667" y2="314.298667" />
+<line x1="508.666667" y1="323.898667" x2="520.666667" y2="323.898667" />
+<line x1="539.866667" y1="338.298667" x2="520.666667" y2="329.658667" />
+<polygon stroke-width="0" fill="black"
+ points="528.8656,330.423959 535.066667,336.138667
+526.676989,335.28754" />
+<line x1="533.528667" y1="335.446567" x2="525.466667" y2="331.818667" />
+<line x1="539.866667" y1="309.498667" x2="520.666667" y2="318.138667" />
+<path d="M 508.666667,323.898667
+ A 19.2 19.2 0 0 1 547.066667,323.898667" />
+<line x1="547.066667" y1="323.898667" x2="547.066667" y2="323.898667" />
+<path d="M 547.066667,323.898667
+ A 19.2 19.2 0 1 1 508.666667,323.898667" />
+<line x1="508.666667" y1="323.898667" x2="508.666667" y2="323.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="545.733333" y="321.816"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">8</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="548.4" y="334.312">2N4239</text>
+<circle fill="black"
+ cx="539.866667" cy="275.898667" r="1.92" />
+<polyline points="496.666667,275.898667 539.866667,275.898667
+539.866667,299.898667" />
+<circle fill="black"
+ cx="539.866667" cy="347.898667" r="1.92" />
+<line x1="539.866667" y1="347.898667" x2="137.866667" y2="347.898667" />
+<polyline points="496.666667,100.698667 496.666667,115.098667
+495.603985,115.098667" />
+<polyline points="496.666667,148.698667 496.666667,134.298667
+495.603985,134.298667" />
+<line x1="496.666667" y1="134.298667" x2="479.866667" y2="134.298667" />
+<line x1="479.866667" y1="112.698667" x2="479.866667" y2="136.698667" />
+<polygon stroke-width="0" fill="black"
+ points="471.866667,122.032 479.866667,124.698667
+471.866667,127.365333" />
+<line x1="460.666667" y1="124.698667" x2="478.180119" y2="124.698667" />
+<line x1="496.666667" y1="115.098667" x2="479.866667" y2="115.098667" />
+<circle cx="479.866667" cy="124.698667" r="19.2" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="459.333333" y="151.6144"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">5</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="462" y="164.1104">2N3819</text>
+<line x1="496.666667" y1="100.698667" x2="508.666667" y2="100.698667" />
+<polyline points="539.866667,76.698667 539.866667,86.298667
+539.511111,86.458667" />
+<polyline points="539.866667,124.698667 539.866667,115.098667
+539.511111,114.938667" />
+<line x1="520.666667" y1="91.098667" x2="520.666667" y2="110.298667" />
+<line x1="508.666667" y1="100.698667" x2="520.666667" y2="100.698667" />
+<line x1="539.866667" y1="86.298667" x2="520.666667" y2="94.938667" />
+<polygon stroke-width="0" fill="black"
+ points="533.856345,91.92754 525.466667,92.778667
+531.667733,87.063959" />
+<line x1="535.066667" y1="88.458667" x2="527.004666" y2="92.086567" />
+<line x1="539.866667" y1="115.098667" x2="520.666667" y2="106.458667" />
+<path d="M 508.666667,100.698667
+ A 19.2 19.2 0 0 0 547.066667,100.698667" />
+<line x1="547.066667" y1="100.698667" x2="547.066667" y2="100.698667" />
+<path d="M 547.066667,100.698667
+ A 19.2 19.2 0 0 0 508.666667,100.698667" />
+<line x1="508.666667" y1="100.698667" x2="508.666667" y2="100.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="547.066667" y="98.616"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">6</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="549.733333" y="111.112">2N4236</text>
+<circle fill="black"
+ cx="539.866667" cy="148.698667" r="1.92" />
+<polyline points="496.666667,148.698667 539.866667,148.698667
+539.866667,124.698667" />
+<circle fill="black"
+ cx="539.866667" cy="76.698667" r="1.92" />
+<line x1="539.866667" y1="76.698667" x2="137.866667" y2="76.698667" />
+<polyline points="460.666667,299.898667 448.666667,299.898667
+448.666667,124.698667
+460.666667,124.698667" />
+<polyline points="539.866667,148.698667 539.866667,160.698667
+543.866667,162.698667
+535.866667,166.698667
+543.866667,170.698667
+535.866667,174.698667
+543.866667,178.698667
+535.866667,182.698667
+539.866667,184.698667
+539.866667,196.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="534.533333" y="170.616"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">11</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="531.866667" y="183.112">20&#937;</text>
+<line x1="539.866667" y1="275.898667" x2="539.866667" y2="257.762768" />
+<polyline stroke-width="0" fill="black"
+ points="539.866667,257.762768
+535.866667,257.762768
+539.866667,251.365906
+543.866667,257.762768
+539.866667,257.762768" />
+<polyline points="539.866667,257.762768 535.866667,257.762768
+539.866667,251.365906
+543.866667,257.762768
+539.866667,257.762768" />
+<polyline points="544.255635,252.834565 544.255635,250.834565
+535.477698,250.834565
+535.477698,248.834565" />
+<line x1="539.866667" y1="250.834565" x2="539.866667" y2="232.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="533.613024" y="251.48167"
+><tspan font-style="italic">D<tspan font-size="70%"
+dy="0.66ex" dx="">5</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="530.946357" y="263.97767">1N4729</text>
+<line x1="539.866667" y1="232.698667" x2="539.866667" y2="196.698667" />
+<line x1="539.866667" y1="275.898667" x2="568.666667" y2="275.898667" />
+<line x1="568.666667" y1="281.898667" x2="568.666667" y2="269.898667" />
+<path d="M 573.466667,281.898667
+ A 12 12 0 0 1 573.466667,269.898667" />
+<line x1="571.858972" y1="275.898667" x2="602.266667" y2="275.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="571.066667" y="267.232"
+><tspan font-style="italic">C<tspan font-size="70%"
+dy="0.66ex" dx="">4</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="571.066667" y="292.896">0.68&#956;F</text>
+<line x1="539.866667" y1="148.698667" x2="568.666667" y2="148.698667" />
+<line x1="568.666667" y1="154.698667" x2="568.666667" y2="142.698667" />
+<path d="M 573.466667,154.698667
+ A 12 12 0 0 1 573.466667,142.698667" />
+<line x1="571.858972" y1="148.698667" x2="602.266667" y2="148.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="571.066667" y="140.032"
+><tspan font-style="italic">C<tspan font-size="70%"
+dy="0.66ex" dx="">3</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="571.066667" y="165.696">0.68&#956;F</text>
+<circle fill="black"
+ cx="602.266667" cy="148.698667" r="1.92" />
+<circle fill="black"
+ cx="602.266667" cy="196.698667" r="1.92" />
+<line x1="539.866667" y1="196.698667" x2="568.666667" y2="196.698667" />
+<line x1="568.666667" y1="202.698667" x2="568.666667" y2="190.698667" />
+<path d="M 573.466667,202.698667
+ A 12 12 0 0 1 573.466667,190.698667" />
+<line x1="571.858972" y1="196.698667" x2="602.266667" y2="196.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="571.066667" y="188.032"
+><tspan font-style="italic">C<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="571.066667" y="213.696">0.1&#956;F</text>
+<line x1="539.866667" y1="196.698667" x2="238.666667" y2="196.698667" />
+<polyline points="238.666667,196.698667 238.666667,148.698667
+234.666667,146.698667
+242.666667,142.698667
+234.666667,138.698667
+242.666667,134.698667
+234.666667,130.698667
+242.666667,126.698667
+238.666667,124.698667
+238.666667,76.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="244" y="134.616"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">5</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="246.666667" y="147.112">100k&#937;</text>
+<circle fill="black"
+ cx="238.666667" cy="100.698667" r="1.92" />
+<line x1="238.666667" y1="100.698667" x2="214.666667" y2="100.698667" />
+<line x1="214.666667" y1="100.698667" x2="214.666667" y2="122.298667" />
+<line x1="208.666667" y1="122.298667" x2="220.666667" y2="122.298667" />
+<path d="M 208.666667,127.098667
+ A 12 12 0 0 1 220.666667,127.098667" />
+<line x1="214.666667" y1="125.490972" x2="214.666667" y2="148.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="207.333333" y="122.616"
+><tspan font-style="italic">C<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="204.666667" y="135.112">1&#956;F</text>
+<line x1="222.666667" y1="148.698667" x2="206.666667" y2="148.698667" />
+<line x1="220" y1="151.698667" x2="209.333333" y2="151.698667" />
+<line x1="218.095238" y1="154.698667" x2="211.238095" y2="154.698667" />
+<line x1="539.866667" y1="76.698667" x2="539.866667" y2="52.698667" />
+<polyline points="539.866667,52.698667 539.866667,40.698667
+535.866667,38.698667
+543.866667,34.698667
+535.866667,30.698667
+543.866667,26.698667
+535.866667,22.698667
+543.866667,18.698667
+539.866667,16.698667
+539.866667,4.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="545.2" y="26.616"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">9</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="547.866667" y="39.112">910&#937;</text>
+<circle fill="black"
+ cx="539.866667" cy="4.698667" r="1.92" />
+<polyline points="539.866667,347.898667 539.866667,371.898667
+543.866667,373.898667
+535.866667,377.898667
+543.866667,381.898667
+535.866667,385.898667
+543.866667,389.898667
+535.866667,393.898667
+539.866667,395.898667
+539.866667,419.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="545.2" y="381.816"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">10</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="547.866667" y="394.312">910&#937;</text>
+<circle fill="black"
+ cx="539.866667" cy="419.898667" r="1.92" />
+<line x1="238.666667" y1="76.698667" x2="238.666667" y2="52.698667" />
+<polyline points="238.666667,52.698667 262.666667,52.698667
+264.666667,48.698667
+268.666667,56.698667
+272.666667,48.698667
+276.666667,56.698667
+280.666667,48.698667
+284.666667,56.698667
+286.666667,52.698667
+310.666667,52.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="261.333333" y="34.869333"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">4</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="264" y="47.365333">100k&#937;</text>
+<polyline points="310.666667,52.698667 602.266667,52.698667
+602.266667,275.898667" />
+<polyline points="703.066667,275.898667 703.066667,290.298667
+704.129348,290.298667" />
+<polyline points="703.066667,323.898667 703.066667,309.498667
+704.129348,309.498667" />
+<line x1="703.066667" y1="309.498667" x2="719.866667" y2="309.498667" />
+<line x1="719.866667" y1="287.898667" x2="719.866667" y2="311.898667" />
+<line x1="719.866667" y1="299.898667" x2="739.066667" y2="299.898667" />
+<polygon stroke-width="0" fill="black"
+ points="726.266667,297.232 734.266667,299.898667
+726.266667,302.565333" />
+<line x1="726.266667" y1="299.898667" x2="732.580119" y2="299.898667" />
+<line x1="703.066667" y1="290.298667" x2="719.866667" y2="290.298667" />
+<circle cx="719.866667" cy="299.898667" r="19.2" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="706" y="267.568"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">11</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="708.666667" y="280.064">2N5464</text>
+<line x1="703.066667" y1="323.898667" x2="691.066667" y2="323.898667" />
+<polyline points="659.866667,347.898667 659.866667,338.298667
+660.222222,338.138667" />
+<polyline points="659.866667,299.898667 659.866667,309.498667
+660.222222,309.658667" />
+<line x1="679.066667" y1="333.498667" x2="679.066667" y2="314.298667" />
+<line x1="691.066667" y1="323.898667" x2="679.066667" y2="323.898667" />
+<line x1="659.866667" y1="338.298667" x2="679.066667" y2="329.658667" />
+<polygon stroke-width="0" fill="black"
+ points="673.056345,335.28754 664.666667,336.138667
+670.867733,330.423959" />
+<line x1="666.204666" y1="335.446567" x2="674.266667" y2="331.818667" />
+<line x1="659.866667" y1="309.498667" x2="679.066667" y2="318.138667" />
+<path d="M 691.066667,323.898667
+ A 19.2 19.2 0 0 0 652.666667,323.898667" />
+<line x1="652.666667" y1="323.898667" x2="652.666667" y2="323.898667" />
+<path d="M 652.666667,323.898667
+ A 19.2 19.2 0 0 0 691.066667,323.898667" />
+<line x1="691.066667" y1="323.898667" x2="691.066667" y2="323.898667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="654" y="321.816"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">10</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="651.333333" y="334.312">2N4239</text>
+<circle fill="black"
+ cx="659.866667" cy="275.898667" r="1.92" />
+<polyline points="703.066667,275.898667 659.866667,275.898667
+659.866667,299.898667" />
+<line x1="659.866667" y1="347.898667" x2="659.866667" y2="419.898667" />
+<circle fill="black"
+ cx="659.866667" cy="419.898667" r="1.92" />
+<line x1="106.666667" y1="419.898667" x2="683.866667" y2="419.898667" />
+<circle fill="white"
+ cx="683.866667" cy="419.898667" r="1.92" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="688.453333" y="424.064"
+><tspan font-style="italic">-E<tspan font-size="70%"
+dy="0.66ex" dx="">CC</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<line x1="659.866667" y1="275.898667" x2="659.866667" y2="257.762768" />
+<polyline stroke-width="0" fill="black"
+ points="659.866667,257.762768
+655.866667,257.762768
+659.866667,251.365906
+663.866667,257.762768
+659.866667,257.762768" />
+<polyline points="659.866667,257.762768 655.866667,257.762768
+659.866667,251.365906
+663.866667,257.762768
+659.866667,257.762768" />
+<polyline points="664.255635,252.834565 664.255635,250.834565
+655.477698,250.834565
+655.477698,248.834565" />
+<line x1="659.866667" y1="250.834565" x2="659.866667" y2="232.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="653.613024" y="251.48167"
+><tspan font-style="italic">D<tspan font-size="70%"
+dy="0.66ex" dx="">6</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="650.946357" y="263.97767">1N4728</text>
+<polyline points="703.066667,100.698667 703.066667,115.098667
+704.129348,115.098667" />
+<polyline points="703.066667,148.698667 703.066667,134.298667
+704.129348,134.298667" />
+<line x1="703.066667" y1="134.298667" x2="719.866667" y2="134.298667" />
+<line x1="719.866667" y1="112.698667" x2="719.866667" y2="136.698667" />
+<polygon stroke-width="0" fill="black"
+ points="727.866667,127.365333 719.866667,124.698667
+727.866667,122.032" />
+<line x1="739.066667" y1="124.698667" x2="721.553215" y2="124.698667" />
+<line x1="703.066667" y1="115.098667" x2="719.866667" y2="115.098667" />
+<circle cx="719.866667" cy="124.698667" r="19.2" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="704.666667" y="151.6144"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">12</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="707.333333" y="164.1104">2N3819</text>
+<line x1="703.066667" y1="100.698667" x2="691.066667" y2="100.698667" />
+<polyline points="659.866667,76.698667 659.866667,86.298667
+660.222222,86.458667" />
+<polyline points="659.866667,124.698667 659.866667,115.098667
+660.222222,114.938667" />
+<line x1="679.066667" y1="91.098667" x2="679.066667" y2="110.298667" />
+<line x1="691.066667" y1="100.698667" x2="679.066667" y2="100.698667" />
+<line x1="659.866667" y1="86.298667" x2="679.066667" y2="94.938667" />
+<polygon stroke-width="0" fill="black"
+ points="668.0656,87.063959 674.266667,92.778667
+665.876989,91.92754" />
+<line x1="664.666667" y1="88.458667" x2="672.728667" y2="92.086567" />
+<line x1="659.866667" y1="115.098667" x2="679.066667" y2="106.458667" />
+<path d="M 691.066667,100.698667
+ A 19.2 19.2 0 0 1 652.666667,100.698667" />
+<line x1="652.666667" y1="100.698667" x2="652.666667" y2="100.698667" />
+<path d="M 652.666667,100.698667
+ A 19.2 19.2 0 0 1 691.066667,100.698667" />
+<line x1="691.066667" y1="100.698667" x2="691.066667" y2="100.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="652.666667" y="98.616"
+><tspan font-style="italic">Q<tspan font-size="70%"
+dy="0.66ex" dx="">9</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="650" y="111.112">2N4236</text>
+<circle fill="black"
+ cx="659.866667" cy="148.698667" r="1.92" />
+<polyline points="703.066667,148.698667 659.866667,148.698667
+659.866667,124.698667" />
+<line x1="659.866667" y1="76.698667" x2="659.866667" y2="4.698667" />
+<circle fill="black"
+ cx="659.866667" cy="4.698667" r="1.92" />
+<line x1="106.666667" y1="4.698667" x2="683.866667" y2="4.698667" />
+<circle fill="white"
+ cx="683.866667" cy="4.698667" r="1.92" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="688.453333" y="8.864"
+><tspan font-style="italic">E<tspan font-size="70%"
+dy="0.66ex" dx="">CC</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<polyline points="659.866667,148.698667 659.866667,160.698667
+663.866667,162.698667
+655.866667,166.698667
+663.866667,170.698667
+655.866667,174.698667
+663.866667,178.698667
+655.866667,182.698667
+659.866667,184.698667
+659.866667,196.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="654.533333" y="170.616"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">12</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="651.866667" y="183.112">20&#937;</text>
+<circle fill="black"
+ cx="659.866667" cy="196.698667" r="1.92" />
+<line x1="659.866667" y1="196.698667" x2="602.266667" y2="196.698667" />
+<line x1="659.866667" y1="196.698667" x2="659.866667" y2="232.698667" />
+<circle fill="black"
+ cx="751.066667" cy="172.698667" r="1.92" />
+<polyline points="739.066667,124.698667 751.066667,124.698667
+751.066667,299.898667
+739.066667,299.898667" />
+<line x1="775.066667" y1="172.698667" x2="751.066667" y2="172.698667" />
+<polygon stroke-width="0" fill="black"
+ points="767.866667,175.098667 758.266667,172.698667
+767.866667,170.298667" />
+<line x1="767.866667" y1="172.698667" x2="760.465656" y2="172.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ x="763.066667" y="167.632"
+>i<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<circle fill="white"
+ cx="775.066667" cy="172.698667" r="1.92" />
+<circle fill="white"
+ cx="775.066667" cy="220.698667" r="1.92" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="777.733333" y="182.476444">+</text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="777.733333" y="200.864"
+>V<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="777.733333" y="219.251556">-</text>
+<line x1="775.066667" y1="222.618667" x2="775.066667" y2="232.698667" />
+<line x1="783.066667" y1="232.698667" x2="767.066667" y2="232.698667" />
+<line x1="780.4" y1="235.698667" x2="769.733333" y2="235.698667" />
+<line x1="778.495238" y1="238.698667" x2="771.638095" y2="238.698667" />
+<circle fill="black"
+ cx="751.066667" cy="232.698667" r="1.92" />
+<polyline points="751.066667,232.698667 717.466667,232.698667
+715.466667,236.698667
+711.466667,228.698667
+707.466667,236.698667
+703.466667,228.698667
+699.466667,236.698667
+695.466667,228.698667
+693.466667,232.698667
+659.866667,232.698667" />
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="692.133333" y="213.536"
+><tspan font-style="italic">R<tspan font-size="70%"
+dy="0.66ex" dx="">15</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="8.8pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="694.8" y="226.032">200&#937;</text>
+<line x1="659.866667" y1="232.698667" x2="400.666667" y2="232.698667" />
+<circle fill="black"
+ cx="400.666667" cy="232.698667" r="1.92" />
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/SVGconfig.m4 b/graphics/circuit_macros/examples/dpv/DPVconfig.m4
index e8aa1fa3ec..e8aa1fa3ec 100644
--- a/graphics/circuit_macros/examples/svg/SVGconfig.m4
+++ b/graphics/circuit_macros/examples/dpv/DPVconfig.m4
diff --git a/graphics/circuit_macros/examples/svg/DecoderSVG.m4 b/graphics/circuit_macros/examples/dpv/DecoderDPV.m4
index 2f9659ee42..2f9659ee42 100644
--- a/graphics/circuit_macros/examples/svg/DecoderSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/DecoderDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4 b/graphics/circuit_macros/examples/dpv/DemultiplexerDPV.m4
index 37ff8e1431..5284170027 100644
--- a/graphics/circuit_macros/examples/svg/DemultiplexerSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/DemultiplexerDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `DemultiplexerSVG.m4'
+# `DemultiplexerDPV.m4'
log_init(svg_font(sans-serif,11*0.8bp__))
right_
diff --git a/graphics/circuit_macros/examples/svg/DiniSVG.m4 b/graphics/circuit_macros/examples/dpv/DiniDPV.m4
index 1846917a4a..1846917a4a 100644
--- a/graphics/circuit_macros/examples/svg/DiniSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/DiniDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/DiodesSVG.m4 b/graphics/circuit_macros/examples/dpv/DiodesDPV.m4
index 8af6a2e298..8af6a2e298 100644
--- a/graphics/circuit_macros/examples/svg/DiodesSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/DiodesDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/DriveSVG.m4 b/graphics/circuit_macros/examples/dpv/DriveDPV.m4
index 48a7165ff9..48a7165ff9 100644
--- a/graphics/circuit_macros/examples/svg/DriveSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/DriveDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/EEPSVG.m4 b/graphics/circuit_macros/examples/dpv/EEPDPV.m4
index 25a9ff71d9..688ec88f93 100644
--- a/graphics/circuit_macros/examples/svg/EEPSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/EEPDPV.m4
@@ -1,6 +1,6 @@
.PS
-# EEPSVG.m4
-# slddiagsSVG.m4
+# EEPDPV.m4
+# slddiagsDPV.m4
cct_init(svg_font(sans-serif,10bp__))
include(libSLD.m4)
maxpsht = 30
@@ -59,7 +59,7 @@ Pic2: [
text="M";circle=shaded rgbstring(0.2, 0.63, 0.8);diam=dimen_*3/4)
sl_disk(left_ dimen_ from 1/2 between B3.P1 and B3.P2,
text="svg_small(DER_A)"; circle=shaded rgbstring(0.78, 0.36, 0.3);diam=dimen_*3/4)
-] with .nw at last [].sw + (100bp__,120bp__)
+] with .B1 at Pic1.Bus2.End+(24bp__,0)
Pic3: [
define(`shadedb',`shaded rgbstring(0.39,0.50,0.93)')
diff --git a/graphics/circuit_macros/examples/dpv/EEPDPV.svg b/graphics/circuit_macros/examples/dpv/EEPDPV.svg
new file mode 100644
index 0000000000..25ca2367dd
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/EEPDPV.svg
@@ -0,0 +1,662 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="606" height="592" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="605.2px" height="590.666667px"
+ viewBox="0 0 605.2 590.666667"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:sans-serif"
+>
+<circle fill="black"
+ cx="153.466667" cy="84.666667" r="1.92" />
+<line x1="153.466667" y1="84.666667" x2="153.466667" y2="56.666667" />
+<line x1="153.466667" y1="56.666667" x2="141.466667" y2="44.666667" />
+<line x1="153.466667" y1="40.666667" x2="153.466667" y2="12.666667" />
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="153.466667" y="10">Public supply</text>
+<line stroke-width="2.133333"
+ x1="33.466667" y1="84.666667" x2="273.466667" y2="84.666667" />
+<circle fill="black"
+ cx="43.066667" cy="84.666667" r="1.92" />
+<circle fill="black"
+ cx="87.226667" cy="84.666667" r="1.92" />
+<circle fill="black"
+ cx="131.386667" cy="84.666667" r="1.92" />
+<circle fill="black"
+ cx="175.546667" cy="84.666667" r="1.92" />
+<circle fill="black"
+ cx="219.706667" cy="84.666667" r="1.92" />
+<circle fill="black"
+ cx="263.866667" cy="84.666667" r="1.92" />
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="36.133333" y="82"><tspan font-size="66%">20 kV</tspan></text>
+<line x1="43.066667" y1="156.666667" x2="43.066667" y2="128.666667" />
+<line x1="43.066667" y1="128.666667" x2="31.066667" y2="116.666667" />
+<line x1="43.066667" y1="112.666667" x2="43.066667" y2="84.666667" />
+<line x1="87.226667" y1="156.666667" x2="87.226667" y2="128.666667" />
+<line x1="87.226667" y1="128.666667" x2="75.226667" y2="116.666667" />
+<line x1="87.226667" y1="112.666667" x2="87.226667" y2="84.666667" />
+<line x1="131.386667" y1="84.666667" x2="131.386667" y2="93.366667" />
+<circle cx="131.386667" cy="108.966667" r="15.6" />
+<circle cx="131.386667" cy="132.366667" r="15.6" />
+<line x1="131.386667" y1="147.966667" x2="131.386667" y2="156.666667" />
+<polyline points="131.386667,112.292204 125.626667,112.292204
+131.386667,102.315592
+137.146667,112.292204
+131.386667,112.292204" />
+<line x1="131.386667" y1="139.017742" x2="131.386667" y2="132.366667" />
+<polyline points="125.626667,129.041129 131.386667,132.366667
+137.146667,129.041129" />
+<polygon stroke-width="0" fill="black"
+ points="133.786667,163.066667 131.386667,172.666667
+128.986667,163.066667" />
+<line x1="131.386667" y1="156.666667" x2="131.386667" y2="170.467677" />
+<line x1="175.546667" y1="84.666667" x2="175.546667" y2="93.366667" />
+<circle cx="175.546667" cy="108.966667" r="15.6" />
+<circle cx="175.546667" cy="132.366667" r="15.6" />
+<line x1="175.546667" y1="147.966667" x2="175.546667" y2="156.666667" />
+<polyline points="175.546667,112.292204 169.786667,112.292204
+175.546667,102.315592
+181.306667,112.292204
+175.546667,112.292204" />
+<line x1="175.546667" y1="139.017742" x2="175.546667" y2="132.366667" />
+<polyline points="169.786667,129.041129 175.546667,132.366667
+181.306667,129.041129" />
+<polygon stroke-width="0" fill="black"
+ points="177.946667,163.066667 175.546667,172.666667
+173.146667,163.066667" />
+<line x1="175.546667" y1="156.666667" x2="175.546667" y2="170.467677" />
+<line x1="219.706667" y1="84.666667" x2="219.706667" y2="93.366667" />
+<circle cx="219.706667" cy="108.966667" r="15.6" />
+<circle cx="219.706667" cy="132.366667" r="15.6" />
+<line x1="219.706667" y1="147.966667" x2="219.706667" y2="156.666667" />
+<polyline points="219.706667,112.292204 213.946667,112.292204
+219.706667,102.315592
+225.466667,112.292204
+219.706667,112.292204" />
+<line x1="219.706667" y1="139.017742" x2="219.706667" y2="132.366667" />
+<polyline points="213.946667,129.041129 219.706667,132.366667
+225.466667,129.041129" />
+<polygon stroke-width="0" fill="black"
+ points="222.106667,163.066667 219.706667,172.666667
+217.306667,163.066667" />
+<line x1="219.706667" y1="156.666667" x2="219.706667" y2="170.467677" />
+<line x1="263.866667" y1="156.666667" x2="263.866667" y2="128.666667" />
+<line x1="263.866667" y1="128.666667" x2="251.866667" y2="116.666667" />
+<line x1="263.866667" y1="112.666667" x2="263.866667" y2="84.666667" />
+<line stroke-width="2.133333"
+ x1="7.066667" y1="228.666667" x2="79.066667" y2="228.666667" />
+<circle fill="black"
+ cx="16.666667" cy="228.666667" r="1.92" />
+<circle fill="black"
+ cx="43.066667" cy="228.666667" r="1.92" />
+<circle fill="black"
+ cx="69.466667" cy="228.666667" r="1.92" />
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="9.733333" y="226"><tspan font-size="66%">20 kV</tspan></text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="43.066667" y="240.8"><tspan font-size="66%">1.25 MVA</tspan></text>
+<line x1="43.066667" y1="228.666667" x2="43.066667" y2="200.666667" />
+<line x1="43.066667" y1="200.666667" x2="31.066667" y2="188.666667" />
+<line x1="43.066667" y1="184.666667" x2="43.066667" y2="156.666667" />
+<line x1="16.666667" y1="228.666667" x2="16.666667" y2="237.366667" />
+<circle cx="16.666667" cy="252.966667" r="15.6" />
+<circle cx="16.666667" cy="276.366667" r="15.6" />
+<line x1="16.666667" y1="291.966667" x2="16.666667" y2="300.666667" />
+<polyline points="16.666667,256.292204 10.906667,256.292204
+16.666667,246.315592
+22.426667,256.292204
+16.666667,256.292204" />
+<line x1="16.666667" y1="283.017742" x2="16.666667" y2="276.366667" />
+<polyline points="10.906667,273.041129 16.666667,276.366667
+22.426667,273.041129" />
+<line x1="69.466667" y1="300.666667" x2="69.466667" y2="272.666667" />
+<line x1="69.466667" y1="272.666667" x2="57.466667" y2="260.666667" />
+<line x1="69.466667" y1="256.666667" x2="69.466667" y2="228.666667" />
+<line stroke-width="2.133333"
+ x1="111.066667" y1="260.666667" x2="111.066667" y2="196.666667" />
+<line x1="111.066667" y1="228.666667" x2="131.766667" y2="228.666667" />
+<circle fill="lightgray" stroke="none"
+ cx="147.366667" cy="228.666667" r="15.6" />
+<circle fill="lightgray" stroke="none"
+ cx="170.766667" cy="228.666667" r="15.6" />
+<circle cx="147.366667" cy="228.666667" r="15.6" />
+<circle cx="170.766667" cy="228.666667" r="15.6" />
+<line x1="186.366667" y1="228.666667" x2="207.066667" y2="228.666667" />
+<polygon stroke-width="0" fill="black"
+ points="176.037229,208.301991 184.522511,203.210823
+179.431342,211.696104" />
+<line x1="133.610823" y1="254.122511" x2="182.96759" y2="204.765743" />
+<line stroke-width="2.133333"
+ x1="207.066667" y1="260.666667" x2="207.066667" y2="196.666667" />
+<line x1="207.066667" y1="251.066667" x2="183.066667" y2="251.066667" />
+<line x1="183.066667" y1="251.066667" x2="183.066667" y2="260.666667" />
+<line x1="175.066667" y1="260.666667" x2="191.066667" y2="260.666667" />
+<line x1="175.066667" y1="265.466667" x2="191.066667" y2="265.466667" />
+<line x1="183.066667" y1="265.466667" x2="183.066667" y2="275.066667" />
+<line x1="191.066667" y1="275.066667" x2="175.066667" y2="275.066667" />
+<line x1="188.4" y1="278.066667" x2="177.733333" y2="278.066667" />
+<line x1="186.495238" y1="281.066667" x2="179.638095" y2="281.066667" />
+<line x1="207.066667" y1="228.666667" x2="231.066667" y2="228.666667" />
+<line x1="231.066667" y1="228.666667" x2="231.066667" y2="251.066667" />
+<line x1="231.066667" y1="251.066667" x2="231.066667" y2="260.666667" />
+<line x1="223.066667" y1="260.666667" x2="239.066667" y2="260.666667" />
+<line x1="223.066667" y1="265.466667" x2="239.066667" y2="265.466667" />
+<line x1="231.066667" y1="265.466667" x2="231.066667" y2="275.066667" />
+<line x1="239.066667" y1="275.066667" x2="223.066667" y2="275.066667" />
+<line x1="236.4" y1="278.066667" x2="225.733333" y2="278.066667" />
+<line x1="234.495238" y1="281.066667" x2="227.638095" y2="281.066667" />
+<line x1="231.066667" y1="228.666667" x2="255.066667" y2="228.666667" />
+<polyline stroke-width="0" fill="lightgray"
+ points="375.066667,228.666667
+375.066667,223.866667
+255.066667,223.866667
+255.066667,233.466667
+375.066667,233.466667
+375.066667,228.666667" />
+<polyline points="375.066667,228.666667 375.066667,223.866667
+255.066667,223.866667
+255.066667,233.466667
+375.066667,233.466667
+375.066667,228.666667" />
+<line x1="375.066667" y1="228.666667" x2="399.066667" y2="228.666667" />
+<line x1="399.066667" y1="228.666667" x2="399.066667" y2="251.066667" />
+<line x1="399.066667" y1="251.066667" x2="399.066667" y2="260.666667" />
+<line x1="391.066667" y1="260.666667" x2="407.066667" y2="260.666667" />
+<line x1="391.066667" y1="265.466667" x2="407.066667" y2="265.466667" />
+<line x1="399.066667" y1="265.466667" x2="399.066667" y2="275.066667" />
+<line x1="407.066667" y1="275.066667" x2="391.066667" y2="275.066667" />
+<line x1="404.4" y1="278.066667" x2="393.733333" y2="278.066667" />
+<line x1="402.495238" y1="281.066667" x2="395.638095" y2="281.066667" />
+<line x1="399.066667" y1="228.666667" x2="423.066667" y2="228.666667" />
+<line stroke-width="2.133333"
+ x1="423.066667" y1="336.666667" x2="423.066667" y2="120.666667" />
+<line x1="423.066667" y1="327.066667" x2="459.066667" y2="327.066667" />
+<rect fill="rgb(217,166,33)" x="459.066667" y="312.666667" width="144" height="28.8" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="531.066667" y="331.8">Static Load</text>
+<line x1="423.066667" y1="287.706667" x2="459.066667" y2="287.706667" />
+<rect fill="rgb(201,150,145)" x="459.066667" y="273.306667" width="144" height="28.8" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="531.066667" y="292.44">Electronic Load</text>
+<circle fill="rgb(51,204,51)" cx="489.066667" cy="248.346667" r="18" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="489.066667" y="253.08">A/C</text>
+<line x1="471.066667" y1="248.346667" x2="423.066667" y2="248.346667" />
+<circle fill="rgb(54,120,219)" cx="489.066667" cy="208.986667" r="18" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="489.066667" y="213.72">M</text>
+<line x1="471.066667" y1="208.986667" x2="423.066667" y2="208.986667" />
+<circle fill="rgb(51,153,204)" cx="489.066667" cy="169.626667" r="18" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="489.066667" y="174.36">M</text>
+<line x1="471.066667" y1="169.626667" x2="423.066667" y2="169.626667" />
+<circle fill="rgb(51,161,204)" cx="489.066667" cy="130.266667" r="18" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="489.066667" y="135">M</text>
+<line x1="471.066667" y1="130.266667" x2="423.066667" y2="130.266667" />
+<circle fill="rgb(199,92,77)" cx="357.066667" cy="307.386667" r="18" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="357.066667" y="312.12"><tspan font-size="66%">DER_A</tspan></text>
+<line x1="375.066667" y1="307.386667" x2="423.066667" y2="307.386667" />
+<line x1="87.733333" y1="409.6" x2="96.733333" y2="409.6" />
+<line x1="96.733333" y1="409.6" x2="96.733333" y2="409.6" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="87.733333,409.6
+87.733333,414.1
+96.733333,414.1
+96.733333,405.1
+87.733333,405.1
+87.733333,409.6" />
+<polyline points="87.733333,409.6 87.733333,414.1
+96.733333,414.1
+96.733333,405.1
+87.733333,405.1
+87.733333,409.6" />
+<line x1="87.733333" y1="409.6" x2="87.733333" y2="409.6" />
+<circle fill="rgb(99,128,237)" cx="47.733333" cy="409.6" r="16" />
+<line x1="63.733333" y1="409.6" x2="87.733333" y2="409.6" />
+<polyline points="71.733333,432.528203 63.733333,432.528203
+71.733333,418.671797
+79.733333,432.528203
+71.733333,432.528203" />
+<line x1="87.733333" y1="409.6" x2="117.233333" y2="409.6" />
+<line x1="117.233333" y1="394" x2="117.233333" y2="394" />
+<line x1="117.233333" y1="394" x2="116.7" y2="394" />
+<path d="M 117.233333,394
+ A 3.9 3.9 0 0 1 117.233333,401.8" />
+<line x1="117.233333" y1="401.8" x2="116.7" y2="401.8" />
+<path d="M 117.233333,401.8
+ A 3.9 3.9 0 0 1 117.233333,409.6" />
+<line x1="117.233333" y1="409.6" x2="116.7" y2="409.6" />
+<path d="M 117.233333,409.6
+ A 3.9 3.9 0 1 1 117.233333,417.4" />
+<line x1="117.233333" y1="417.4" x2="116.7" y2="417.4" />
+<path d="M 117.233333,417.4
+ A 3.9 3.9 0 1 1 117.233333,425.2" />
+<line x1="117.233333" y1="425.2" x2="116.7" y2="425.2" />
+<line x1="117.233333" y1="425.2" x2="117.233333" y2="425.2" />
+<line x1="130.233333" y1="425.2" x2="130.233333" y2="425.2" />
+<line x1="130.233333" y1="425.2" x2="130.766667" y2="425.2" />
+<path d="M 130.233333,425.2
+ A 3.9 3.9 0 0 1 130.233333,417.4" />
+<line x1="130.233333" y1="417.4" x2="130.766667" y2="417.4" />
+<path d="M 130.233333,417.4
+ A 3.9 3.9 0 0 1 130.233333,409.6" />
+<line x1="130.233333" y1="409.6" x2="130.766667" y2="409.6" />
+<path d="M 130.233333,409.6
+ A 3.9 3.9 0 0 1 130.233333,401.8" />
+<line x1="130.233333" y1="401.8" x2="130.766667" y2="401.8" />
+<path d="M 130.233333,401.8
+ A 3.9 3.9 0 0 1 130.233333,394" />
+<line x1="130.233333" y1="394" x2="130.766667" y2="394" />
+<line x1="130.233333" y1="394" x2="130.233333" y2="394" />
+<line x1="130.233333" y1="409.6" x2="159.733333" y2="409.6" />
+<line stroke-width="2.133333"
+ x1="159.733333" y1="445.6" x2="159.733333" y2="373.6" />
+<line x1="159.733333" y1="383.2" x2="191.233333" y2="383.2" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="200.233333,383.2
+200.233333,378.7
+191.233333,378.7
+191.233333,387.7
+200.233333,387.7
+200.233333,383.2" />
+<polyline points="200.233333,383.2 200.233333,378.7
+191.233333,378.7
+191.233333,387.7
+200.233333,387.7
+200.233333,383.2" />
+<line x1="200.233333" y1="383.2" x2="231.733333" y2="383.2" />
+<line x1="231.733333" y1="383.2" x2="295.733333" y2="383.2" />
+<line x1="159.733333" y1="436" x2="191.233333" y2="436" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="200.233333,436
+200.233333,431.5
+191.233333,431.5
+191.233333,440.5
+200.233333,440.5
+200.233333,436" />
+<polyline points="200.233333,436 200.233333,431.5
+191.233333,431.5
+191.233333,440.5
+200.233333,440.5
+200.233333,436" />
+<line x1="200.233333" y1="436" x2="231.733333" y2="436" />
+<line x1="231.733333" y1="436" x2="231.733333" y2="455.5" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="231.733333,464.5
+236.233333,464.5
+236.233333,455.5
+227.233333,455.5
+227.233333,464.5
+231.733333,464.5" />
+<polyline points="231.733333,464.5 236.233333,464.5
+236.233333,455.5
+227.233333,455.5
+227.233333,464.5
+231.733333,464.5" />
+<line x1="231.733333" y1="464.5" x2="231.733333" y2="484" />
+<line stroke-width="2.133333"
+ x1="207.733333" y1="484" x2="255.733333" y2="484" />
+<line x1="231.733333" y1="484" x2="231.733333" y2="501.5" />
+<line x1="247.333333" y1="501.5" x2="247.333333" y2="501.5" />
+<line x1="247.333333" y1="501.5" x2="247.333333" y2="500.966667" />
+<path d="M 247.333333,501.5
+ A 3.9 3.9 0 0 1 239.533333,501.5" />
+<line x1="239.533333" y1="501.5" x2="239.533333" y2="500.966667" />
+<path d="M 239.533333,501.5
+ A 3.9 3.9 0 1 1 231.733333,501.5" />
+<line x1="231.733333" y1="501.5" x2="231.733333" y2="500.966667" />
+<path d="M 231.733333,501.5
+ A 3.9 3.9 0 0 1 223.933333,501.5" />
+<line x1="223.933333" y1="501.5" x2="223.933333" y2="500.966667" />
+<path d="M 223.933333,501.5
+ A 3.9 3.9 0 1 1 216.133333,501.5" />
+<line x1="216.133333" y1="501.5" x2="216.133333" y2="500.966667" />
+<line x1="216.133333" y1="501.5" x2="216.133333" y2="501.5" />
+<line x1="216.133333" y1="514.5" x2="216.133333" y2="514.5" />
+<line x1="216.133333" y1="514.5" x2="216.133333" y2="515.033333" />
+<path d="M 216.133333,514.5
+ A 3.9 3.9 0 0 1 223.933333,514.5" />
+<line x1="223.933333" y1="514.5" x2="223.933333" y2="515.033333" />
+<path d="M 223.933333,514.5
+ A 3.9 3.9 0 0 1 231.733333,514.5" />
+<line x1="231.733333" y1="514.5" x2="231.733333" y2="515.033333" />
+<path d="M 231.733333,514.5
+ A 3.9 3.9 0 0 1 239.533333,514.5" />
+<line x1="239.533333" y1="514.5" x2="239.533333" y2="515.033333" />
+<path d="M 239.533333,514.5
+ A 3.9 3.9 0 0 1 247.333333,514.5" />
+<line x1="247.333333" y1="514.5" x2="247.333333" y2="515.033333" />
+<line x1="247.333333" y1="514.5" x2="247.333333" y2="514.5" />
+<line x1="231.733333" y1="514.5" x2="231.733333" y2="532" />
+<line x1="231.733333" y1="532" x2="231.733333" y2="523" />
+<line x1="231.733333" y1="523" x2="231.733333" y2="523" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="231.733333,532
+236.233333,532
+236.233333,523
+227.233333,523
+227.233333,532
+231.733333,532" />
+<polyline points="231.733333,532 236.233333,532
+236.233333,523
+227.233333,523
+227.233333,532
+231.733333,532" />
+<line x1="231.733333" y1="532" x2="231.733333" y2="532" />
+<circle fill="rgb(99,128,237)" cx="231.733333" cy="572" r="16" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="231.733333" y="576.733333">SM</text>
+<line x1="231.733333" y1="556" x2="231.733333" y2="532" />
+<line x1="263.066667" y1="577.547005" x2="263.066667" y2="568.309401" />
+<polyline points="255.066667,563.690599 263.066667,568.309401
+271.066667,563.690599" />
+<line x1="263.066667" y1="568.309401" x2="275.066667" y2="568.309401" />
+<line x1="274.533333" y1="568.309401" x2="275.6" y2="568.309401" />
+<line x1="275.066667" y1="568.309401" x2="275.066667" y2="576.309401" />
+<line x1="280.4" y1="576.309401" x2="269.733333" y2="576.309401" />
+<line x1="278.622222" y1="578.309401" x2="271.511111" y2="578.309401" />
+<line x1="277.352381" y1="580.309401" x2="272.780952" y2="580.309401" />
+<line x1="503.733333" y1="409.6" x2="494.733333" y2="409.6" />
+<line x1="494.733333" y1="409.6" x2="494.733333" y2="409.6" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="503.733333,409.6
+503.733333,405.1
+494.733333,405.1
+494.733333,414.1
+503.733333,414.1
+503.733333,409.6" />
+<polyline points="503.733333,409.6 503.733333,405.1
+494.733333,405.1
+494.733333,414.1
+503.733333,414.1
+503.733333,409.6" />
+<line x1="503.733333" y1="409.6" x2="503.733333" y2="409.6" />
+<circle fill="rgb(99,128,237)" cx="543.733333" cy="409.6" r="16" />
+<line x1="527.733333" y1="409.6" x2="503.733333" y2="409.6" />
+<line x1="519.733333" y1="432.528203" x2="519.733333" y2="423.290599" />
+<polyline points="511.733333,418.671797 519.733333,423.290599
+527.733333,418.671797" />
+<line x1="503.733333" y1="409.6" x2="474.233333" y2="409.6" />
+<line x1="474.233333" y1="425.2" x2="474.233333" y2="425.2" />
+<line x1="474.233333" y1="425.2" x2="474.766667" y2="425.2" />
+<path d="M 474.233333,425.2
+ A 3.9 3.9 0 0 1 474.233333,417.4" />
+<line x1="474.233333" y1="417.4" x2="474.766667" y2="417.4" />
+<path d="M 474.233333,417.4
+ A 3.9 3.9 0 1 1 474.233333,409.6" />
+<line x1="474.233333" y1="409.6" x2="474.766667" y2="409.6" />
+<path d="M 474.233333,409.6
+ A 3.9 3.9 0 0 1 474.233333,401.8" />
+<line x1="474.233333" y1="401.8" x2="474.766667" y2="401.8" />
+<path d="M 474.233333,401.8
+ A 3.9 3.9 0 0 1 474.233333,394" />
+<line x1="474.233333" y1="394" x2="474.766667" y2="394" />
+<line x1="474.233333" y1="394" x2="474.233333" y2="394" />
+<line x1="461.233333" y1="394" x2="461.233333" y2="394" />
+<line x1="461.233333" y1="394" x2="460.7" y2="394" />
+<path d="M 461.233333,394
+ A 3.9 3.9 0 0 1 461.233333,401.8" />
+<line x1="461.233333" y1="401.8" x2="460.7" y2="401.8" />
+<path d="M 461.233333,401.8
+ A 3.9 3.9 0 0 1 461.233333,409.6" />
+<line x1="461.233333" y1="409.6" x2="460.7" y2="409.6" />
+<path d="M 461.233333,409.6
+ A 3.9 3.9 0 0 1 461.233333,417.4" />
+<line x1="461.233333" y1="417.4" x2="460.7" y2="417.4" />
+<path d="M 461.233333,417.4
+ A 3.9 3.9 0 1 1 461.233333,425.2" />
+<line x1="461.233333" y1="425.2" x2="460.7" y2="425.2" />
+<line x1="461.233333" y1="425.2" x2="461.233333" y2="425.2" />
+<line x1="461.233333" y1="409.6" x2="431.733333" y2="409.6" />
+<line stroke-width="2.133333"
+ x1="431.733333" y1="445.6" x2="431.733333" y2="373.6" />
+<line x1="431.733333" y1="383.2" x2="400.233333" y2="383.2" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="391.233333,383.2
+391.233333,387.7
+400.233333,387.7
+400.233333,378.7
+391.233333,378.7
+391.233333,383.2" />
+<polyline points="391.233333,383.2 391.233333,387.7
+400.233333,387.7
+400.233333,378.7
+391.233333,378.7
+391.233333,383.2" />
+<line x1="391.233333" y1="383.2" x2="359.733333" y2="383.2" />
+<line x1="359.733333" y1="383.2" x2="295.733333" y2="383.2" />
+<line x1="431.733333" y1="436" x2="400.233333" y2="436" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="391.233333,436
+391.233333,440.5
+400.233333,440.5
+400.233333,431.5
+391.233333,431.5
+391.233333,436" />
+<polyline points="391.233333,436 391.233333,440.5
+400.233333,440.5
+400.233333,431.5
+391.233333,431.5
+391.233333,436" />
+<line x1="391.233333" y1="436" x2="359.733333" y2="436" />
+<line x1="359.733333" y1="436" x2="359.733333" y2="455.5" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="359.733333,464.5
+364.233333,464.5
+364.233333,455.5
+355.233333,455.5
+355.233333,464.5
+359.733333,464.5" />
+<polyline points="359.733333,464.5 364.233333,464.5
+364.233333,455.5
+355.233333,455.5
+355.233333,464.5
+359.733333,464.5" />
+<line x1="359.733333" y1="464.5" x2="359.733333" y2="484" />
+<line stroke-width="2.133333"
+ x1="383.733333" y1="484" x2="335.733333" y2="484" />
+<line x1="359.733333" y1="484" x2="359.733333" y2="501.5" />
+<line x1="375.333333" y1="501.5" x2="375.333333" y2="501.5" />
+<line x1="375.333333" y1="501.5" x2="375.333333" y2="500.966667" />
+<path d="M 375.333333,501.5
+ A 3.9 3.9 0 0 1 367.533333,501.5" />
+<line x1="367.533333" y1="501.5" x2="367.533333" y2="500.966667" />
+<path d="M 367.533333,501.5
+ A 3.9 3.9 0 1 1 359.733333,501.5" />
+<line x1="359.733333" y1="501.5" x2="359.733333" y2="500.966667" />
+<path d="M 359.733333,501.5
+ A 3.9 3.9 0 0 1 351.933333,501.5" />
+<line x1="351.933333" y1="501.5" x2="351.933333" y2="500.966667" />
+<path d="M 351.933333,501.5
+ A 3.9 3.9 0 1 1 344.133333,501.5" />
+<line x1="344.133333" y1="501.5" x2="344.133333" y2="500.966667" />
+<line x1="344.133333" y1="501.5" x2="344.133333" y2="501.5" />
+<line x1="344.133333" y1="514.5" x2="344.133333" y2="514.5" />
+<line x1="344.133333" y1="514.5" x2="344.133333" y2="515.033333" />
+<path d="M 344.133333,514.5
+ A 3.9 3.9 0 0 1 351.933333,514.5" />
+<line x1="351.933333" y1="514.5" x2="351.933333" y2="515.033333" />
+<path d="M 351.933333,514.5
+ A 3.9 3.9 0 0 1 359.733333,514.5" />
+<line x1="359.733333" y1="514.5" x2="359.733333" y2="515.033333" />
+<path d="M 359.733333,514.5
+ A 3.9 3.9 0 0 1 367.533333,514.5" />
+<line x1="367.533333" y1="514.5" x2="367.533333" y2="515.033333" />
+<path d="M 367.533333,514.5
+ A 3.9 3.9 0 0 1 375.333333,514.5" />
+<line x1="375.333333" y1="514.5" x2="375.333333" y2="515.033333" />
+<line x1="375.333333" y1="514.5" x2="375.333333" y2="514.5" />
+<line x1="359.733333" y1="514.5" x2="359.733333" y2="532" />
+<line x1="359.733333" y1="532" x2="359.733333" y2="523" />
+<line x1="359.733333" y1="523" x2="359.733333" y2="523" />
+<polyline stroke-width="0" fill="rgb(99,128,237)"
+ points="359.733333,532
+364.233333,532
+364.233333,523
+355.233333,523
+355.233333,532
+359.733333,532" />
+<polyline points="359.733333,532 364.233333,532
+364.233333,523
+355.233333,523
+355.233333,532
+359.733333,532" />
+<line x1="359.733333" y1="532" x2="359.733333" y2="532" />
+<circle fill="rgb(99,128,237)" cx="359.733333" cy="572" r="16" />
+<text font-size="10pt" stroke-width="0.2pt" fill="black" x="359.733333" y="576.733333">SM</text>
+<line x1="359.733333" y1="556" x2="359.733333" y2="532" />
+<line x1="328.4" y1="577.547005" x2="328.4" y2="568.309401" />
+<polyline points="320.4,563.690599 328.4,568.309401
+336.4,563.690599" />
+<line x1="328.4" y1="568.309401" x2="316.4" y2="568.309401" />
+<line x1="316.933333" y1="568.309401" x2="315.866667" y2="568.309401" />
+<line x1="316.4" y1="568.309401" x2="316.4" y2="576.309401" />
+<line x1="321.733333" y1="576.309401" x2="311.066667" y2="576.309401" />
+<line x1="319.955556" y1="578.309401" x2="312.844444" y2="578.309401" />
+<line x1="318.685714" y1="580.309401" x2="314.114286" y2="580.309401" />
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="159.733333" y="370.933333">Bus 1</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="431.733333" y="370.933333">Bus 2</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="207.733333" y="481.333333">Bus 3</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="383.733333" y="481.333333">Bus 4</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="295.733333" y="380.533333"
+>TL<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 50 km 69 kV</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="210.4" y="418.066667"
+>TL<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 30 km</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="210.4" y="431.4">69 kV</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="338.4" y="418.066667"
+>TL<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 20 km</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="338.4" y="431.4">69 kV</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="1.066667" y="450.333333"
+>G<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 50 MVA</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="1.066667" y="463.666667">13.8 kV</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="543.733333" y="445"
+>G<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 30 MVA</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="543.733333" y="458.333333">13.8 kV</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="121.066667" y="456.6"
+>T<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 50 MVA</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="121.066667" y="469.933333">13.8/69 kV &#916;/Y</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="470.4" y="459.266667"
+>T<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 30 MVA</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ x="470.4" y="472.6">69/13.8 kV Y/&#916; </text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="208.133333" y="506.066667"
+>T<tspan font-size="70%"
+dy="0.66ex" dx="">3</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 50 MVA</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="208.133333" y="519.4">13.8/69 kV Y/&#916; </text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="383.333333" y="506.066667"
+>T<tspan font-size="70%"
+dy="0.66ex" dx="">4</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 20 MVA</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="383.333333" y="519.4">69/6.9 kV Y/&#916; </text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="207.733333" y="570.066667"
+>SM<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 30 MVA</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="207.733333" y="583.4">13.8 kV</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="383.733333" y="570.066667"
+>SM<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan> 20 MVA</text>
+<text font-size="10pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="383.733333" y="583.4">6.9 kV</text>
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/EVplugsSVG.m4 b/graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
index 54530a1bfa..54530a1bfa 100644
--- a/graphics/circuit_macros/examples/svg/EVplugsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/EmarrowsSVG.m4 b/graphics/circuit_macros/examples/dpv/EmarrowsDPV.m4
index 33372ae290..759cf36576 100644
--- a/graphics/circuit_macros/examples/svg/EmarrowsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/EmarrowsDPV.m4
@@ -1,9 +1,9 @@
.PS
-# `Emarrows.m4'
+# `EmarrowsDPV.m4'
cct_init(svg_font(sans-serif,11bp__))
hskip = 0.6
[
- { em_arrows(N)
+ { em_arrows()
box dotted wid last [].wid ht last [].ht at last [].c
thinlines_
arrow <- up 0.12 from last [].Head;`"Head"' above
@@ -13,7 +13,7 @@ cct_init(svg_font(sans-serif,11bp__))
thicklines_
move down 0.25 from last [].s
move up 0.2 from last [].n
- `"em_arrows(N)"' wid 1.0 at last [].s+(0,-0.20) below }
+ `"em_arrows()"' wid 1.0 at last [].s+(0,-0.20) below }
{ em_arrows(ND,45) with .sw at last [].se+(hskip*1.5,0)
`"em_arrows(ND,45)"' at last [].s below }
{ em_arrows(I) with .sw at last [].se+(hskip,0)
@@ -22,8 +22,8 @@ cct_init(svg_font(sans-serif,11bp__))
`"...(ID)"' at last [].s+(0,-2bp__) below }
{ em_arrows(E) with .sw at last [].se+(hskip,0)
`"...(E)"' at last [].s+(0,-2bp__) below }
- { em_arrows(ED) with .sw at last [].se+(hskip,0)
- `"...(ED)"' wid .75 at last [].s+(0,-2bp__) below }
+ { em_arrows(NT) with .sw at last [].se+(hskip,0)
+ `"...(NT)"' wid .75 at last [].s+(0,-2bp__) below }
]
# box wid last [].wid ht last [].ht at last []
diff --git a/graphics/circuit_macros/examples/svg/EscherSVG.m4 b/graphics/circuit_macros/examples/dpv/EscherDPV.m4
index 637f99b29a..09f2fa6498 100644
--- a/graphics/circuit_macros/examples/svg/EscherSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/EscherDPV.m4
@@ -1,5 +1,5 @@
.PS
-# EscherSVG.m4
+# EscherDPV.m4
# https://tex.stackexchange.com/questions/129274/showcase-of-optical-illusions-made-with-tex-latex-luatex-context
threeD_init
[]
diff --git a/graphics/circuit_macros/examples/svg/EyeSVG.m4 b/graphics/circuit_macros/examples/dpv/EyeDPV.m4
index 457abb8081..0f883bf334 100644
--- a/graphics/circuit_macros/examples/svg/EyeSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/EyeDPV.m4
@@ -1,5 +1,5 @@
.PS
-# EyeSVG.m4
+# EyeDPV.m4
gen_init
define(`eye',`[ u = $1; v = 0.47*u; w = 0.25*u
diff --git a/graphics/circuit_macros/examples/svg/FlowSVG.m4 b/graphics/circuit_macros/examples/dpv/FlowDPV.m4
index 05f411cd6a..e3543ae405 100644
--- a/graphics/circuit_macros/examples/svg/FlowSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/FlowDPV.m4
@@ -1,5 +1,5 @@
.PS
-# FlowSVG.m4
+# FlowDPV.m4
gen_init(svg_font(sans-serif,11bp__,2.5bp__))
ifdef(`FlowchartDefs_',,`include(../FlowchartDefs.m4)')
diff --git a/graphics/circuit_macros/examples/dpv/FlowDPV.svg b/graphics/circuit_macros/examples/dpv/FlowDPV.svg
new file mode 100644
index 0000000000..cda3c42bee
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/FlowDPV.svg
@@ -0,0 +1,890 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="640" height="750" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="639.333333px" height="748.546667px"
+ viewBox="0 0 639.333333 748.546667"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:sans-serif"
+>
+<rect fill="rgb(230,204,179)" stroke-width="1.333333"
+ x="10.933333" y="0.666667" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="58.933333" y="23.873333"
+><tspan font-family="Courier">Fbox</tspan></text>
+<polyline stroke-width="0" fill="rgb(230,204,179)"
+ points="68.533333,73.266667
+87.733333,85.866667
+49.333333,111.066667
+10.933333,85.866667
+49.333333,60.666667
+68.533333,73.266667" />
+<polyline stroke-width="1.333333"
+ points="68.533333,73.266667 87.733333,85.866667
+49.333333,111.066667
+10.933333,85.866667
+49.333333,60.666667
+68.533333,73.266667" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="49.333333" y="91.073333"
+><tspan font-family="Courier">Ftest</tspan></text>
+<polyline stroke-width="0" fill="rgb(230,204,179)"
+ points="64.933333,135.066667
+118.933333,135.066667
+106.933333,171.066667
+10.933333,171.066667
+22.933333,135.066667
+64.933333,135.066667" />
+<polyline stroke-width="1.333333"
+ points="64.933333,135.066667 118.933333,135.066667
+106.933333,171.066667
+10.933333,171.066667
+22.933333,135.066667
+64.933333,135.066667" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="64.933333" y="158.273333"
+><tspan font-family="Courier">Fdata</tspan></text>
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="58.933333,195.066667
+97.933333,195.066667
+106.933333,213.066667
+97.933333,231.066667
+19.933333,231.066667
+10.933333,213.066667
+19.933333,195.066667
+58.933333,195.066667" />
+<polyline stroke-width="1.333333"
+ points="58.933333,195.066667 97.933333,195.066667
+106.933333,213.066667
+97.933333,231.066667
+19.933333,231.066667
+10.933333,213.066667
+19.933333,195.066667
+58.933333,195.066667" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="58.933333" y="218.273333"
+><tspan font-family="Courier">Fprep</tspan></text>
+<path stroke-width="1.333333"
+ d="M 103.430524,291.398755
+ A 48 48 0 0 0 103.430524,255.398755" />
+<circle stroke-width="0.666667"
+ cx="103.430524" cy="255.398755" r="0.332088" />
+<line stroke-width="1.333333"
+ x1="103.430524" y1="255.398755" x2="14.436142" y2="255.398755" />
+<circle stroke-width="0.666667"
+ cx="14.436142" cy="255.398755" r="0.332088" />
+<path stroke-width="1.333333"
+ d="M 14.436142,255.398755
+ A 48 48 0 0 0 14.436142,291.398755" />
+<circle stroke-width="0.666667"
+ cx="14.436142" cy="291.398755" r="0.332088" />
+<line stroke-width="1.333333"
+ x1="14.436142" y1="291.398755" x2="103.430524" y2="291.398755" />
+<circle stroke-width="0.666667"
+ cx="103.430524" cy="291.398755" r="0.332088" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="58.933333" y="278.605421"
+><tspan font-family="Courier">Fkeying</tspan></text>
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="58.933333,321.730843
+106.933333,315.730843
+106.933333,357.730843
+10.933333,357.730843
+10.933333,327.730843
+58.933333,321.730843" />
+<polyline stroke-width="1.333333"
+ points="58.933333,321.730843 106.933333,315.730843
+106.933333,357.730843
+10.933333,357.730843
+10.933333,327.730843
+58.933333,321.730843" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="58.933333" y="344.937509"
+><tspan font-family="Courier">Fkeyboard</tspan></text>
+<polyline stroke-width="0" fill="rgb(230,204,179)"
+ points="106.933333,426.730843
+106.933333,381.730843
+10.933333,381.730843
+10.933333,426.730843" />
+<polyline stroke-width="1.333333"
+ points="106.933333,426.730843 106.933333,381.730843
+10.933333,381.730843
+10.933333,426.730843" />
+<path stroke-width="0" fill="rgb(230,204,179)"
+ d="M 10.933333,426.730843
+ A 43.266615 43.266615 0 0 0 58.933333,426.730843" />
+<path stroke-width="1.333333"
+ d="M 10.933333,426.730843
+ A 43.266615 43.266615 0 0 0 58.933333,426.730843" />
+<path stroke-width="0" fill="rgb(255,255,255)"
+ d="M 58.933333,426.730843
+ A 43.266615 43.266615 0 0 1 106.933333,426.730843" />
+<path stroke-width="1.333333"
+ d="M 58.933333,426.730843
+ A 43.266615 43.266615 0 0 1 106.933333,426.730843" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="58.933333" y="404.937509"
+><tspan font-family="Courier">Fdocument</tspan></text>
+<path stroke-width="0" fill="rgb(189,212,230)"
+ d="M 88.933333,493.997458
+ A 18 18 0 0 0 88.933333,457.997458" />
+<path stroke-width="1.333333"
+ d="M 88.933333,493.997458
+ A 18 18 0 0 0 88.933333,457.997458" />
+<polyline stroke-width="0" fill="rgb(189,212,230)"
+ points="88.933333,457.997458
+10.933333,457.997458
+10.933333,493.997458
+88.933333,493.997458" />
+<polyline stroke-width="1.333333"
+ points="88.933333,457.997458 10.933333,457.997458
+10.933333,493.997458
+88.933333,493.997458" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="58.933333" y="481.204125"
+><tspan font-family="Courier">Fdelay</tspan></text>
+<rect fill="rgb(171,224,176)" stroke-width="1.333333"
+ stroke="none"
+ x="28.933333" y="517.997458" width="69" height="36" />
+<polyline stroke-width="0" fill="rgb(171,224,176)"
+ points="10.933333,535.997458
+28.933333,517.997458
+28.933333,553.997458
+10.933333,535.997458" />
+<path stroke-width="0" fill="rgb(171,224,176)"
+ d="M 97.933333,553.997458
+ A 23.430749 23.430749 0 0 0 97.933333,517.997458" />
+<path stroke-width="1.333333"
+ d="M 97.933333,553.997458
+ A 23.430749 23.430749 0 0 0 97.933333,517.997458" />
+<polyline stroke-width="0" fill="rgb(171,224,176)"
+ points="97.933333,517.997458
+28.933333,517.997458" />
+<line stroke-width="1.333333"
+ x1="97.933333" y1="517.997458" x2="28.933333" y2="517.997458" />
+<path stroke-width="0" fill="rgb(171,224,176)"
+ d="M 28.933333,517.997458
+ A 28.460499 28.460499 0 0 0 10.933333,535.997458" />
+<path stroke-width="1.333333"
+ d="M 28.933333,517.997458
+ A 28.460499 28.460499 0 0 0 10.933333,535.997458" />
+<path stroke-width="0" fill="rgb(171,224,176)"
+ d="M 10.933333,535.997458
+ A 28.460499 28.460499 0 0 0 28.933333,553.997458" />
+<path stroke-width="1.333333"
+ d="M 10.933333,535.997458
+ A 28.460499 28.460499 0 0 0 28.933333,553.997458" />
+<polyline stroke-width="0" fill="rgb(171,224,176)"
+ points="28.933333,553.997458
+97.933333,553.997458" />
+<line stroke-width="1.333333"
+ x1="28.933333" y1="553.997458" x2="97.933333" y2="553.997458" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="58.933333" y="541.204125"
+><tspan font-family="Courier">Fdisplay</tspan></text>
+<rect fill="rgb(217,191,217)" stroke-width="1.333333"
+ stroke="none"
+ x="16.582801" y="578.329546" width="90.350532" height="36" />
+<path stroke-width="0" fill="rgb(217,191,217)"
+ d="M 16.582801,578.329546
+ A 31.5 31.5 0 0 0 16.582801,614.329546" />
+<path stroke-width="1.333333"
+ d="M 16.582801,578.329546
+ A 31.5 31.5 0 0 0 16.582801,614.329546" />
+<circle stroke-width="0.666667"
+ cx="16.582801" cy="614.329546" r="0.332088" />
+<line stroke-width="1.333333"
+ x1="16.582801" y1="614.329546" x2="106.933333" y2="614.329546" />
+<circle stroke-width="0.666667"
+ cx="106.933333" cy="614.329546" r="0.332088" />
+<path stroke-width="0" fill="white"
+ d="M 106.933333,614.329546
+ A 31.5 31.5 0 0 1 106.933333,578.329546" />
+<path stroke-width="1.333333"
+ d="M 106.933333,614.329546
+ A 31.5 31.5 0 0 1 106.933333,578.329546" />
+<circle stroke-width="0.666667"
+ cx="106.933333" cy="578.329546" r="0.332088" />
+<polyline stroke-width="0" fill="rgb(217,191,217)"
+ points="106.933333,578.329546
+16.582801,578.329546" />
+<line stroke-width="1.333333"
+ x1="106.933333" y1="578.329546" x2="16.582801" y2="578.329546" />
+<circle stroke-width="0.666667"
+ cx="16.582801" cy="578.329546" r="0.332088" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="58.933333" y="601.536213"
+><tspan font-family="Courier">Fstored</tspan></text>
+<polyline stroke-width="0" fill="rgb(217,191,217)"
+ points="19.933333,638.661634
+10.933333,638.661634
+10.933333,674.661634
+28.933333,674.661634
+46.933333,656.661634
+28.933333,638.661634
+19.933333,638.661634" />
+<polyline stroke-width="1.333333"
+ points="19.933333,638.661634 10.933333,638.661634
+10.933333,674.661634
+28.933333,674.661634
+46.933333,656.661634
+28.933333,638.661634
+19.933333,638.661634" />
+<polyline stroke-width="0" fill="rgb(217,191,217)"
+ points="59.297294,643.933712
+52.933333,650.297673
+78.389177,675.753517
+91.1171,663.025595
+91.1171,637.569751
+65.661255,637.569751
+59.297294,643.933712" />
+<polyline stroke-width="1.333333"
+ points="59.297294,643.933712 52.933333,650.297673
+78.389177,675.753517
+91.1171,663.025595
+91.1171,637.569751
+65.661255,637.569751
+59.297294,643.933712" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="75.207197" y="658.68632">45</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="52.933333" y="634.776418"
+><tspan font-family="Courier">Fconnect</tspan></text>
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="202.133333,27.013333
+221.333333,39.613333
+182.933333,64.813333
+144.533333,39.613333
+182.933333,14.413333
+202.133333,27.013333" />
+<polyline stroke-width="1.333333"
+ points="202.133333,27.013333 221.333333,39.613333
+182.933333,64.813333
+144.533333,39.613333
+182.933333,14.413333
+202.133333,27.013333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="182.933333" y="44.82">Test 1</text>
+<rect fill="rgb(217,191,217)" stroke-width="1.333333"
+ x="245.333333" y="21.613333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="293.333333" y="44.82">Task 1</text>
+<polygon stroke-width="0" fill="black"
+ points="295.733333,64.013333 293.333333,73.613333
+290.933333,64.013333" />
+<line stroke-width="1.333333"
+ x1="293.333333" y1="57.613333" x2="293.333333" y2="70.864596" />
+<rect fill="rgb(217,191,217)" stroke-width="1.333333"
+ x="245.333333" y="73.613333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="293.333333" y="96.82">Task 1.5</text>
+<polygon stroke-width="0" fill="black"
+ points="235.733333,37.213333 245.333333,39.613333
+235.733333,42.013333" />
+<polyline stroke-width="1.333333"
+ points="221.333333,39.613333 233.333333,39.613333
+233.333333,39.613333
+242.584596,39.613333" />
+<polygon stroke-width="0" fill="black"
+ points="185.333333,116.013333 182.933333,125.613333
+180.533333,116.013333" />
+<line stroke-width="1.333333"
+ x1="182.933333" y1="64.813333" x2="182.933333" y2="122.864596" />
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="202.133333,138.213333
+221.333333,150.813333
+182.933333,176.013333
+144.533333,150.813333
+182.933333,125.613333
+202.133333,138.213333" />
+<polyline stroke-width="1.333333"
+ points="202.133333,138.213333 221.333333,150.813333
+182.933333,176.013333
+144.533333,150.813333
+182.933333,125.613333
+202.133333,138.213333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="182.933333" y="156.02">Test 2</text>
+<rect fill="rgb(33,179,171)" stroke-width="1.333333"
+ x="245.333333" y="132.813333" width="115.2" height="54" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="302.933333" y="157.686667">Task 2</text>
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="302.933333" y="172.353333">is bigger</text>
+<polygon stroke-width="0" fill="black"
+ points="235.733333,157.413333 245.333333,159.813333
+235.733333,162.213333" />
+<polyline stroke-width="1.333333"
+ points="221.333333,150.813333 233.333333,150.813333
+233.333333,159.813333
+242.584596,159.813333" />
+<polygon stroke-width="0" fill="black"
+ points="185.333333,193.213333 182.933333,202.813333
+180.533333,193.213333" />
+<line stroke-width="1.333333"
+ x1="182.933333" y1="176.013333" x2="182.933333" y2="200.064596" />
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="202.133333,215.413333
+221.333333,228.013333
+182.933333,253.213333
+144.533333,228.013333
+182.933333,202.813333
+202.133333,215.413333" />
+<polyline stroke-width="1.333333"
+ points="202.133333,215.413333 221.333333,228.013333
+182.933333,253.213333
+144.533333,228.013333
+182.933333,202.813333
+202.133333,215.413333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="182.933333" y="233.22">Test 3</text>
+<rect fill="rgb(207,0,89)" stroke-width="1.333333"
+ x="245.333333" y="210.013333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="293.333333" y="233.22">Task 3</text>
+<polygon stroke-width="0" fill="black"
+ points="235.733333,225.613333 245.333333,228.013333
+235.733333,230.413333" />
+<polyline stroke-width="1.333333"
+ points="221.333333,228.013333 233.333333,228.013333
+233.333333,228.013333
+242.584596,228.013333" />
+<line stroke-width="1.333333"
+ x1="182.933333" y1="253.213333" x2="182.933333" y2="269.213333" />
+<polygon stroke-width="0" fill="black"
+ points="374.933333,89.213333 384.533333,91.613333
+374.933333,94.013333" />
+<line stroke-width="1.333333"
+ x1="341.333333" y1="91.613333" x2="381.784596" y2="91.613333" />
+<polygon stroke-width="0" fill="black"
+ points="374.933333,157.413333 384.533333,159.813333
+374.933333,162.213333" />
+<line stroke-width="1.333333"
+ x1="360.533333" y1="159.813333" x2="381.784596" y2="159.813333" />
+<polygon stroke-width="0" fill="black"
+ points="374.933333,225.613333 384.533333,228.013333
+374.933333,230.413333" />
+<line stroke-width="1.333333"
+ x1="341.333333" y1="228.013333" x2="381.784596" y2="228.013333" />
+<polygon stroke-width="0" fill="black"
+ points="192.533333,271.613333 182.933333,269.213333
+192.533333,266.813333" />
+<polyline stroke-width="1.333333"
+ points="384.533333,91.613333 384.533333,269.213333
+185.68207,269.213333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="179.6" y="11.08"><tspan font-style="italic">.N</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="179.6" y="282.96"><tspan font-style="italic">.S</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="387.866667" y="96.82"><tspan font-style="italic">.E</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="141.2" y="44.82"><tspan font-style="italic">.W</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="265.733333" y="285.36"
+><tspan font-family="Courier">Fcase</tspan></text>
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="468.533333,43.813333
+487.733333,56.413333
+449.333333,81.613333
+410.933333,56.413333
+449.333333,31.213333
+468.533333,43.813333" />
+<polyline stroke-width="1.333333"
+ points="468.533333,43.813333 487.733333,56.413333
+449.333333,81.613333
+410.933333,56.413333
+449.333333,31.213333
+468.533333,43.813333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="449.333333" y="61.62"
+><tspan font-style="italic">i &#60; n</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="502.133333,54.013333 511.733333,56.413333
+502.133333,58.813333" />
+<line stroke-width="1.333333"
+ x1="487.733333" y1="56.413333" x2="508.984596" y2="56.413333" />
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="511.733333" y="38.413333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="559.733333" y="61.62">Task</text>
+<polygon stroke-width="0" fill="black"
+ points="458.933333,19.213333 449.333333,16.813333
+458.933333,14.413333" />
+<polyline stroke-width="1.333333"
+ points="559.733333,38.413333 559.733333,16.813333
+452.08207,16.813333" />
+<polygon stroke-width="0" fill="black"
+ points="451.733333,21.613333 449.333333,31.213333
+446.933333,21.613333" />
+<line stroke-width="1.333333"
+ x1="449.333333" y1="16.813333" x2="449.333333" y2="28.464596" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="491.066667" y="53.08">T</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="446" y="22.02"><tspan font-style="italic">.N</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="446" y="95.36"><tspan font-style="italic">.S</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="611.066667" y="61.62"><tspan font-style="italic">.E</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="407.6" y="61.62"><tspan font-style="italic">.W</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="509.333333" y="95.36"
+><tspan font-family="Courier">Fwhiledo</tspan></text>
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="434.933333" y="129.613333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="482.933333" y="152.82">Task</text>
+<polygon stroke-width="0" fill="black"
+ points="485.333333,172.013333 482.933333,181.613333
+480.533333,172.013333" />
+<line stroke-width="1.333333"
+ x1="482.933333" y1="165.613333" x2="482.933333" y2="178.864596" />
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="502.133333,194.213333
+521.333333,206.813333
+482.933333,232.013333
+444.533333,206.813333
+482.933333,181.613333
+502.133333,194.213333" />
+<polyline stroke-width="1.333333"
+ points="502.133333,194.213333 521.333333,206.813333
+482.933333,232.013333
+444.533333,206.813333
+482.933333,181.613333
+502.133333,194.213333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="482.933333" y="212.02"
+><tspan font-style="italic">n &#62; 5</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="540.533333,150.013333 530.933333,147.613333
+540.533333,145.213333" />
+<polyline stroke-width="1.333333"
+ points="521.333333,206.813333 554.933333,206.813333
+554.933333,147.613333
+533.68207,147.613333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="524.666667" y="203.48">T</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="479.6" y="126.28"><tspan font-style="italic">.N</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="479.6" y="245.76"><tspan font-style="italic">.S</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="558.266667" y="152.82"><tspan font-style="italic">.E</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="431.6" y="152.82"><tspan font-style="italic">.W</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="557.333333" y="236.16"
+><tspan font-family="Courier">Frepeatuntil</tspan></text>
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="521.333333,273.413333
+540.533333,286.013333
+502.133333,311.213333
+463.733333,286.013333
+502.133333,260.813333
+521.333333,273.413333" />
+<polyline stroke-width="1.333333"
+ points="521.333333,273.413333 540.533333,286.013333
+502.133333,311.213333
+463.733333,286.013333
+502.133333,260.813333
+521.333333,273.413333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="502.133333" y="291.22"
+><tspan font-style="italic">A &#60; B</tspan></text>
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="386.933333" y="311.213333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="434.933333" y="334.42">False</text>
+<polygon stroke-width="0" fill="black"
+ points="437.333333,301.613333 434.933333,311.213333
+432.533333,301.613333" />
+<polyline stroke-width="1.333333"
+ points="463.733333,286.013333 434.933333,286.013333
+434.933333,308.464596" />
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="521.333333" y="311.213333" width="96" height="43.2" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="569.333333" y="338.02">True</text>
+<polygon stroke-width="0" fill="black"
+ points="571.733333,301.613333 569.333333,311.213333
+566.933333,301.613333" />
+<polyline stroke-width="1.333333"
+ points="540.533333,286.013333 569.333333,286.013333
+569.333333,308.464596" />
+<polygon stroke-width="0" fill="black"
+ points="437.333333,360.813333 434.933333,370.413333
+432.533333,360.813333" />
+<line stroke-width="1.333333"
+ x1="434.933333" y1="347.213333" x2="434.933333" y2="367.664596" />
+<polygon stroke-width="0" fill="black"
+ points="571.733333,360.813333 569.333333,370.413333
+566.933333,360.813333" />
+<line stroke-width="1.333333"
+ x1="569.333333" y1="354.413333" x2="569.333333" y2="367.664596" />
+<line stroke-width="1.333333"
+ x1="569.333333" y1="370.413333" x2="434.933333" y2="370.413333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="498.8" y="257.48"><tspan font-style="italic">.N</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="498.8" y="384.16"><tspan font-style="italic">.S</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="620.666667" y="338.02"><tspan font-style="italic">.E</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="383.6" y="334.42"><tspan font-style="italic">.W</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="502.133333" y="398.56"
+><tspan font-family="Courier">Fifthenelse</tspan></text>
+<ellipse fill="rgb(173,255,46)" stroke-width="1.333333"
+ cx="164.533333" cy="324.413333" rx="36" ry="24" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="164.533333" y="329.62">Start</text>
+<polygon stroke-width="0" fill="black"
+ points="214.933333,322.013333 224.533333,324.413333
+214.933333,326.813333" />
+<line stroke-width="1.333333"
+ x1="200.533333" y1="324.413333" x2="221.784596" y2="324.413333" />
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="224.533333" y="306.413333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="272.533333" y="329.62">First task</text>
+<polygon stroke-width="0" fill="black"
+ points="274.933333,356.813333 272.533333,366.413333
+270.133333,356.813333" />
+<line stroke-width="1.333333"
+ x1="272.533333" y1="342.413333" x2="272.533333" y2="363.664596" />
+<polyline stroke-width="0" fill="rgb(230,230,230)"
+ points="291.733333,379.013333
+310.933333,391.613333
+272.533333,416.813333
+234.133333,391.613333
+272.533333,366.413333
+291.733333,379.013333" />
+<polyline stroke-width="1.333333"
+ points="291.733333,379.013333 310.933333,391.613333
+272.533333,416.813333
+234.133333,391.613333
+272.533333,366.413333
+291.733333,379.013333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="272.533333" y="396.82">Test 1</text>
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="130.933333" y="416.813333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="178.933333" y="440.02">Task</text>
+<polygon stroke-width="0" fill="black"
+ points="181.333333,459.213333 178.933333,468.813333
+176.533333,459.213333" />
+<line stroke-width="1.333333"
+ x1="178.933333" y1="452.813333" x2="178.933333" y2="466.064596" />
+<polyline stroke-width="0" fill="rgb(217,166,33)"
+ points="198.133333,481.413333
+217.333333,494.013333
+178.933333,519.213333
+140.533333,494.013333
+178.933333,468.813333
+198.133333,481.413333" />
+<polyline stroke-width="1.333333"
+ points="198.133333,481.413333 217.333333,494.013333
+178.933333,519.213333
+140.533333,494.013333
+178.933333,468.813333
+198.133333,481.413333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="178.933333" y="499.22"
+><tspan font-style="italic">i &#8805; 5</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="236.533333,437.213333 226.933333,434.813333
+236.533333,432.413333" />
+<polyline stroke-width="1.333333"
+ points="217.333333,494.013333 250.933333,494.013333
+250.933333,434.813333
+229.68207,434.813333" />
+<polygon stroke-width="0" fill="black"
+ points="181.333333,407.213333 178.933333,416.813333
+176.533333,407.213333" />
+<polyline stroke-width="1.333333"
+ points="234.133333,391.613333 178.933333,391.613333
+178.933333,414.064596" />
+<polyline stroke-width="0" fill="rgb(217,166,33)"
+ points="426.133333,429.413333
+445.333333,442.013333
+406.933333,467.213333
+368.533333,442.013333
+406.933333,416.813333
+426.133333,429.413333" />
+<polyline stroke-width="1.333333"
+ points="426.133333,429.413333 445.333333,442.013333
+406.933333,467.213333
+368.533333,442.013333
+406.933333,416.813333
+426.133333,429.413333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="406.933333" y="447.22"
+><tspan font-style="italic">A &#60; B</tspan></text>
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="291.733333" y="467.213333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="339.733333" y="490.42">Left</text>
+<polygon stroke-width="0" fill="black"
+ points="342.133333,457.613333 339.733333,467.213333
+337.333333,457.613333" />
+<polyline stroke-width="1.333333"
+ points="368.533333,442.013333 339.733333,442.013333
+339.733333,464.464596" />
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="426.133333" y="467.213333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="474.133333" y="490.42">Right</text>
+<polygon stroke-width="0" fill="black"
+ points="476.533333,457.613333 474.133333,467.213333
+471.733333,457.613333" />
+<polyline stroke-width="1.333333"
+ points="445.333333,442.013333 474.133333,442.013333
+474.133333,464.464596" />
+<polygon stroke-width="0" fill="black"
+ points="342.133333,509.613333 339.733333,519.213333
+337.333333,509.613333" />
+<line stroke-width="1.333333"
+ x1="339.733333" y1="503.213333" x2="339.733333" y2="516.464596" />
+<polygon stroke-width="0" fill="black"
+ points="476.533333,509.613333 474.133333,519.213333
+471.733333,509.613333" />
+<line stroke-width="1.333333"
+ x1="474.133333" y1="503.213333" x2="474.133333" y2="516.464596" />
+<line stroke-width="1.333333"
+ x1="474.133333" y1="519.213333" x2="339.733333" y2="519.213333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="448.666667" y="438.68">T</text>
+<polygon stroke-width="0" fill="black"
+ points="409.333333,407.213333 406.933333,416.813333
+404.533333,407.213333" />
+<polyline stroke-width="1.333333"
+ points="310.933333,391.613333 406.933333,391.613333
+406.933333,414.064596" />
+<polygon stroke-width="0" fill="black"
+ points="181.333333,525.613333 178.933333,535.213333
+176.533333,525.613333" />
+<line stroke-width="1.333333"
+ x1="178.933333" y1="519.213333" x2="178.933333" y2="532.464596" />
+<polygon stroke-width="0" fill="black"
+ points="409.333333,525.613333 406.933333,535.213333
+404.533333,525.613333" />
+<line stroke-width="1.333333"
+ x1="406.933333" y1="519.213333" x2="406.933333" y2="532.464596" />
+<line stroke-width="1.333333"
+ x1="406.933333" y1="535.213333" x2="178.933333" y2="535.213333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="314.266667" y="388.28">T</text>
+<polygon stroke-width="0" fill="black"
+ points="274.933333,549.613333 272.533333,559.213333
+270.133333,549.613333" />
+<line stroke-width="1.333333"
+ x1="272.533333" y1="535.213333" x2="272.533333" y2="556.464596" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="285.466667" y="555.88"
+><tspan font-style="italic">Compound statements</tspan></text>
+<ellipse fill="green" stroke-width="1.333333"
+ cx="146.533333" cy="655.213333" rx="18" ry="12" />
+<polygon stroke-width="0" fill="black"
+ points="178.933333,652.813333 188.533333,655.213333
+178.933333,657.613333" />
+<line stroke-width="1.333333"
+ x1="164.533333" y1="655.213333" x2="185.784596" y2="655.213333" />
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="188.533333" y="637.213333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="236.533333" y="660.42">Planejamento</text>
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="356.533333" y="637.213333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="404.533333" y="660.42">Execu&#231;&#227;o</text>
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="524.533333" y="637.213333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="572.533333" y="660.42">Sele&#231;&#227;o</text>
+<polyline stroke-width="0" fill="rgb(173,255,46)"
+ points="356.533333,583.213333
+392.533333,601.213333
+320.533333,637.213333
+248.533333,601.213333
+320.533333,565.213333
+356.533333,583.213333" />
+<polyline stroke-width="1.333333"
+ points="356.533333,583.213333 392.533333,601.213333
+320.533333,637.213333
+248.533333,601.213333
+320.533333,565.213333
+356.533333,583.213333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="320.533333" y="599.086667">Avalia&#231;&#227;o do</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="320.533333" y="613.753333">Planejamento</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="395.866667" y="597.88">Correto</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="245.2" y="597.88">Incompleto</text>
+<polygon stroke-width="0" fill="black"
+ points="318.133333,646.813333 320.533333,637.213333
+322.933333,646.813333" />
+<polyline stroke-width="1.333333"
+ points="284.533333,655.213333 320.533333,655.213333
+320.533333,639.96207" />
+<polygon stroke-width="0" fill="black"
+ points="238.933333,627.613333 236.533333,637.213333
+234.133333,627.613333" />
+<polyline stroke-width="1.333333"
+ points="248.533333,601.213333 236.533333,601.213333
+236.533333,634.464596" />
+<polygon stroke-width="0" fill="black"
+ points="406.933333,627.613333 404.533333,637.213333
+402.133333,627.613333" />
+<polyline stroke-width="1.333333"
+ points="392.533333,601.213333 404.533333,601.213333
+404.533333,634.464596" />
+<polyline stroke-width="0" fill="rgb(173,255,46)"
+ points="524.533333,691.213333
+560.533333,709.213333
+488.533333,745.213333
+416.533333,709.213333
+488.533333,673.213333
+524.533333,691.213333" />
+<polyline stroke-width="1.333333"
+ points="524.533333,691.213333 560.533333,709.213333
+488.533333,745.213333
+416.533333,709.213333
+488.533333,673.213333
+524.533333,691.213333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="488.533333" y="707.086667">Avalia&#231;&#227;o da</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="488.533333" y="721.753333">Execu&#231;&#227;o</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="563.866667" y="722.96">Correto</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="413.2" y="722.96">Incompleto</text>
+<polygon stroke-width="0" fill="black"
+ points="490.933333,663.613333 488.533333,673.213333
+486.133333,663.613333" />
+<polyline stroke-width="1.333333"
+ points="452.533333,655.213333 488.533333,655.213333
+488.533333,670.464596" />
+<polygon stroke-width="0" fill="black"
+ points="402.133333,682.813333 404.533333,673.213333
+406.933333,682.813333" />
+<polyline stroke-width="1.333333"
+ points="416.533333,709.213333 404.533333,709.213333
+404.533333,675.96207" />
+<polygon stroke-width="0" fill="black"
+ points="570.133333,682.813333 572.533333,673.213333
+574.933333,682.813333" />
+<polyline stroke-width="1.333333"
+ points="560.533333,709.213333 572.533333,709.213333
+572.533333,675.96207" />
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="524.533333" y="577.213333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="572.533333" y="600.42">Extra&#231;&#227;o</text>
+<polygon stroke-width="0" fill="black"
+ points="570.133333,622.813333 572.533333,613.213333
+574.933333,622.813333" />
+<line stroke-width="1.333333"
+ x1="572.533333" y1="637.213333" x2="572.533333" y2="615.96207" />
+<polygon stroke-width="0" fill="black"
+ points="570.133333,562.813333 572.533333,553.213333
+574.933333,562.813333" />
+<line stroke-width="1.333333"
+ x1="572.533333" y1="577.213333" x2="572.533333" y2="555.96207" />
+<rect fill="rgb(230,230,230)"
+ stroke-width="1.333333"
+ x="524.533333" y="517.213333" width="96" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="572.533333" y="540.42">Conclus&#227;o</text>
+<polygon stroke-width="0" fill="black"
+ points="570.133333,502.813333 572.533333,493.213333
+574.933333,502.813333" />
+<line stroke-width="1.333333"
+ x1="572.533333" y1="517.213333" x2="572.533333" y2="495.96207" />
+<ellipse fill="red" stroke-width="1.333333"
+ cx="572.533333" cy="481.213333" rx="18" ry="12" />
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/FontsSVG.m4 b/graphics/circuit_macros/examples/dpv/FontsDPV.m4
index 57dcd431a5..157f87ef5c 100644
--- a/graphics/circuit_macros/examples/svg/FontsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/FontsDPV.m4
@@ -1,5 +1,5 @@
.PS
-# FontsSVG.m4
+# FontsDPV.m4
gen_init
textht = 0.2
@@ -8,7 +8,7 @@ define(`ft',`{ svg_font(`$1',`$2',`$3',"`$1'" ljust)
svg_font(`$1',`$2',`$3',"ABCDEFG abcdefg" ljust)}
move down 0.5; right_')
-B: box wid 5.5 ht 7
+B: box wid 5.7 ht 7
move to B.nw+(0.5,-0.5)
ft(Arial)
@@ -27,5 +27,5 @@ B: box wid 5.5 ht 7
ft(Impact)
textht = 0.12
- "These may be viewer-dependent" above ljust at B.sw
+ "Available fonts: these may be viewer-dependent" above ljust at B.sw
.PE
diff --git a/graphics/circuit_macros/examples/dpv/FontsDPV.svg b/graphics/circuit_macros/examples/dpv/FontsDPV.svg
new file mode 100644
index 0000000000..52f9d53f63
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/FontsDPV.svg
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="551" height="676" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="550.4px" height="675.2px"
+ viewBox="0 0 550.4 675.2"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<rect x="1.066667" y="0.533333" width="547.2" height="672" />
+<g style="font-family:Arial"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="58.133333">Arial</text>
+</g>
+<g style="font-family:Arial"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="58.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Helvetica"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="106.133333">Helvetica</text>
+</g>
+<g style="font-family:Helvetica"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="106.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Times"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="154.133333">Times</text>
+</g>
+<g style="font-family:Times"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="154.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Courier"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="202.133333">Courier</text>
+</g>
+<g style="font-family:Courier"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="202.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Cursive"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="250.133333">Cursive</text>
+</g>
+<g style="font-family:Cursive"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="250.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Verdana"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="298.133333">Verdana</text>
+</g>
+<g style="font-family:Verdana"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="298.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Georgia"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="346.133333">Georgia</text>
+</g>
+<g style="font-family:Georgia"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="346.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Palatino"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="394.133333">Palatino</text>
+</g>
+<g style="font-family:Palatino"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="394.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Garamond"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="442.133333">Garamond</text>
+</g>
+<g style="font-family:Garamond"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="442.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Bookman"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="490.133333">Bookman</text>
+</g>
+<g style="font-family:Bookman"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="490.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Trebuchet MS"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="538.133333">Trebuchet MS</text>
+</g>
+<g style="font-family:Trebuchet MS"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="538.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Arial Black"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="586.133333">Arial Black</text>
+</g>
+<g style="font-family:Arial Black"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="586.133333">ABCDEFG abcdefg</text>
+</g>
+<g style="font-family:Impact"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="51.733333" y="634.133333">Impact</text>
+</g>
+<g style="font-family:Impact"
+>
+<text font-size="21.818182pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="634.133333">ABCDEFG abcdefg</text>
+</g>
+<text font-size="13.090909pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="3.733333" y="669.866667"
+>Available fonts: these may be viewer-dependent</text>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/FourbarSVG.m4 b/graphics/circuit_macros/examples/dpv/FourbarDPV.m4
index 376fbe8efe..2dd043a4c7 100644
--- a/graphics/circuit_macros/examples/svg/FourbarSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/FourbarDPV.m4
@@ -1,5 +1,5 @@
.PS
-# FourbarSVG.m4
+# FourbarDPV.m4
# https://tex.stackexchange.com/questions/563831/how-to-draw-four-bar-linkage-with-center-of-mass
gen_init
scale = 25.4
diff --git a/graphics/circuit_macros/examples/svg/FusesSVG.m4 b/graphics/circuit_macros/examples/dpv/FusesDPV.m4
index a421c45b57..f45d0461be 100644
--- a/graphics/circuit_macros/examples/svg/FusesSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/FusesDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `FusesSVG.m4'
+# `FusesDPV.m4'
cct_init(svg_font(sans-serif,11bp__))
movewid = 0.25
diff --git a/graphics/circuit_macros/examples/svg/GeometrySVG.m4 b/graphics/circuit_macros/examples/dpv/GeometryDPV.m4
index 38e748d7e3..18e0cb2fcd 100644
--- a/graphics/circuit_macros/examples/svg/GeometrySVG.m4
+++ b/graphics/circuit_macros/examples/dpv/GeometryDPV.m4
@@ -1,11 +1,11 @@
.PS
-# Geometry.m4
+# GeometryDPV.m4
# Some constructions from https://tex.stackexchange.com/
gen_init
-maxpswid = 9
+maxpswid = 10
Fig1: [
-# FourbarSVG.m4
+# FourbarDPV.m4
# https://tex.stackexchange.com/questions/563831/how-to-draw-four-bar-linkage-with-center-of-mass
ls = 1/25.4 # local scale
@@ -63,7 +63,7 @@ define(`pivot',`[
]
Fig2: [
-# FourbarSVG.m4
+# FourbarDPV.m4
# https://tex.stackexchange.com/questions/609452/help-drawing-a-more-sophisticated-right-triangle-with-tikz-or-something-else
textkht = 12/72
diff --git a/graphics/circuit_macros/examples/svg/GrayCodeSVG.m4 b/graphics/circuit_macros/examples/dpv/GrayCodeDPV.m4
index b878e63d8e..b878e63d8e 100644
--- a/graphics/circuit_macros/examples/svg/GrayCodeSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/GrayCodeDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/GroundsSVG.m4 b/graphics/circuit_macros/examples/dpv/GroundsDPV.m4
index c1a9589f2d..b78cc861ef 100644
--- a/graphics/circuit_macros/examples/svg/GroundsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/GroundsDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `GroundsSVG.m4'
+# `GroundsDPV.m4'
cct_init(svg_font(sans-serif,11bp__))
sep = 0.65
diff --git a/graphics/circuit_macros/examples/svg/HeadersSVG.m4 b/graphics/circuit_macros/examples/dpv/HeadersDPV.m4
index 15e4cda70b..49cf95afe8 100644
--- a/graphics/circuit_macros/examples/svg/HeadersSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/HeadersDPV.m4
@@ -1,5 +1,5 @@
.PS
-# HeadersSVG.m4
+# HeadersDPV.m4
log_init(svg_font(sans-serif,10bp__))
Header
diff --git a/graphics/circuit_macros/examples/svg/HeathkitSVG.m4 b/graphics/circuit_macros/examples/dpv/HeathkitDPV.m4
index fc7ffd2158..0dd7564571 100644
--- a/graphics/circuit_macros/examples/svg/HeathkitSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/HeathkitDPV.m4
@@ -1,6 +1,6 @@
.PS
cct_init(svg_font(Helvetica,7pt__))
-# HeathkitSVG.m4
+# HeathkitDPV.m4
# Landscape
maxpswid = 11
maxpsht = 8.5
diff --git a/graphics/circuit_macros/examples/dpv/HeathkitDPV.svg b/graphics/circuit_macros/examples/dpv/HeathkitDPV.svg
new file mode 100644
index 0000000000..bafdb74ce6
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/HeathkitDPV.svg
@@ -0,0 +1,2010 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="852" height="607" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="851.2px" height="605.991072px"
+ viewBox="0 0 851.2 605.991072"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:Helvetica"
+>
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="594.055829" x2="17.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="25.066667" y1="594.055829" x2="25.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="33.066667" y1="594.055829" x2="33.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="41.066667" y1="594.055829" x2="41.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="49.066667" y1="594.055829" x2="49.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="57.066667" y1="594.055829" x2="57.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="65.066667" y1="594.055829" x2="65.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="73.066667" y1="594.055829" x2="73.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="81.066667" y1="594.055829" x2="81.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="89.066667" y1="594.055829" x2="89.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="97.066667" y1="594.055829" x2="97.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="105.066667" y1="594.055829" x2="105.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="113.066667" y1="594.055829" x2="113.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="121.066667" y1="594.055829" x2="121.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="129.066667" y1="594.055829" x2="129.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="137.066667" y1="594.055829" x2="137.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="145.066667" y1="594.055829" x2="145.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="153.066667" y1="594.055829" x2="153.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="161.066667" y1="594.055829" x2="161.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="169.066667" y1="594.055829" x2="169.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="177.066667" y1="594.055829" x2="177.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="185.066667" y1="594.055829" x2="185.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="193.066667" y1="594.055829" x2="193.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="201.066667" y1="594.055829" x2="201.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="209.066667" y1="594.055829" x2="209.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="217.066667" y1="594.055829" x2="217.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="225.066667" y1="594.055829" x2="225.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="233.066667" y1="594.055829" x2="233.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="241.066667" y1="594.055829" x2="241.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="249.066667" y1="594.055829" x2="249.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="257.066667" y1="594.055829" x2="257.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="265.066667" y1="594.055829" x2="265.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="273.066667" y1="594.055829" x2="273.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="281.066667" y1="594.055829" x2="281.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="289.066667" y1="594.055829" x2="289.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="297.066667" y1="594.055829" x2="297.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="305.066667" y1="594.055829" x2="305.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="313.066667" y1="594.055829" x2="313.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="321.066667" y1="594.055829" x2="321.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="329.066667" y1="594.055829" x2="329.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="337.066667" y1="594.055829" x2="337.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="345.066667" y1="594.055829" x2="345.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="353.066667" y1="594.055829" x2="353.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="361.066667" y1="594.055829" x2="361.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="369.066667" y1="594.055829" x2="369.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="377.066667" y1="594.055829" x2="377.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="385.066667" y1="594.055829" x2="385.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="393.066667" y1="594.055829" x2="393.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="401.066667" y1="594.055829" x2="401.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="409.066667" y1="594.055829" x2="409.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="417.066667" y1="594.055829" x2="417.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="425.066667" y1="594.055829" x2="425.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="433.066667" y1="594.055829" x2="433.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="441.066667" y1="594.055829" x2="441.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="449.066667" y1="594.055829" x2="449.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="457.066667" y1="594.055829" x2="457.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="465.066667" y1="594.055829" x2="465.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="473.066667" y1="594.055829" x2="473.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="481.066667" y1="594.055829" x2="481.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="489.066667" y1="594.055829" x2="489.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="497.066667" y1="594.055829" x2="497.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="505.066667" y1="594.055829" x2="505.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="513.066667" y1="594.055829" x2="513.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="521.066667" y1="594.055829" x2="521.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="529.066667" y1="594.055829" x2="529.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="537.066667" y1="594.055829" x2="537.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="545.066667" y1="594.055829" x2="545.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="553.066667" y1="594.055829" x2="553.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="561.066667" y1="594.055829" x2="561.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="569.066667" y1="594.055829" x2="569.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="577.066667" y1="594.055829" x2="577.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="585.066667" y1="594.055829" x2="585.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="593.066667" y1="594.055829" x2="593.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="601.066667" y1="594.055829" x2="601.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="609.066667" y1="594.055829" x2="609.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="617.066667" y1="594.055829" x2="617.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="625.066667" y1="594.055829" x2="625.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="633.066667" y1="594.055829" x2="633.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="641.066667" y1="594.055829" x2="641.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="649.066667" y1="594.055829" x2="649.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="657.066667" y1="594.055829" x2="657.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="665.066667" y1="594.055829" x2="665.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="673.066667" y1="594.055829" x2="673.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="681.066667" y1="594.055829" x2="681.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="689.066667" y1="594.055829" x2="689.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="697.066667" y1="594.055829" x2="697.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="705.066667" y1="594.055829" x2="705.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="713.066667" y1="594.055829" x2="713.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="721.066667" y1="594.055829" x2="721.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="729.066667" y1="594.055829" x2="729.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="737.066667" y1="594.055829" x2="737.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="745.066667" y1="594.055829" x2="745.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="753.066667" y1="594.055829" x2="753.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="761.066667" y1="594.055829" x2="761.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="769.066667" y1="594.055829" x2="769.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="777.066667" y1="594.055829" x2="777.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="785.066667" y1="594.055829" x2="785.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="793.066667" y1="594.055829" x2="793.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="801.066667" y1="594.055829" x2="801.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="809.066667" y1="594.055829" x2="809.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="817.066667" y1="594.055829" x2="817.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="825.066667" y1="594.055829" x2="825.066667" y2="18.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="833.066667" y1="594.055829" x2="833.066667" y2="18.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="17.066667" y="603.324405">0</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="97.066667" y="603.324405">10</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="177.066667" y="603.324405">20</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="257.066667" y="603.324405">30</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="337.066667" y="603.324405">40</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="417.066667" y="603.324405">50</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="497.066667" y="603.324405">60</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="577.066667" y="603.324405">70</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="657.066667" y="603.324405">80</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="737.066667" y="603.324405">90</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="817.066667" y="603.324405">100</text>
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="594.055829" x2="833.066667" y2="594.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="586.055829" x2="833.066667" y2="586.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="578.055829" x2="833.066667" y2="578.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="570.055829" x2="833.066667" y2="570.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="562.055829" x2="833.066667" y2="562.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="554.055829" x2="833.066667" y2="554.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="546.055829" x2="833.066667" y2="546.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="538.055829" x2="833.066667" y2="538.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="530.055829" x2="833.066667" y2="530.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="522.055829" x2="833.066667" y2="522.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="514.055829" x2="833.066667" y2="514.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="506.055829" x2="833.066667" y2="506.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="498.055829" x2="833.066667" y2="498.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="490.055829" x2="833.066667" y2="490.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="482.055829" x2="833.066667" y2="482.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="474.055829" x2="833.066667" y2="474.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="466.055829" x2="833.066667" y2="466.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="458.055829" x2="833.066667" y2="458.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="450.055829" x2="833.066667" y2="450.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="442.055829" x2="833.066667" y2="442.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="434.055829" x2="833.066667" y2="434.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="426.055829" x2="833.066667" y2="426.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="418.055829" x2="833.066667" y2="418.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="410.055829" x2="833.066667" y2="410.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="402.055829" x2="833.066667" y2="402.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="394.055829" x2="833.066667" y2="394.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="386.055829" x2="833.066667" y2="386.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="378.055829" x2="833.066667" y2="378.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="370.055829" x2="833.066667" y2="370.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="362.055829" x2="833.066667" y2="362.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="354.055829" x2="833.066667" y2="354.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="346.055829" x2="833.066667" y2="346.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="338.055829" x2="833.066667" y2="338.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="330.055829" x2="833.066667" y2="330.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="322.055829" x2="833.066667" y2="322.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="314.055829" x2="833.066667" y2="314.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="306.055829" x2="833.066667" y2="306.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="298.055829" x2="833.066667" y2="298.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="290.055829" x2="833.066667" y2="290.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="282.055829" x2="833.066667" y2="282.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="274.055829" x2="833.066667" y2="274.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="266.055829" x2="833.066667" y2="266.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="258.055829" x2="833.066667" y2="258.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="250.055829" x2="833.066667" y2="250.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="242.055829" x2="833.066667" y2="242.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="234.055829" x2="833.066667" y2="234.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="226.055829" x2="833.066667" y2="226.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="218.055829" x2="833.066667" y2="218.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="210.055829" x2="833.066667" y2="210.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="202.055829" x2="833.066667" y2="202.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="194.055829" x2="833.066667" y2="194.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="186.055829" x2="833.066667" y2="186.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="178.055829" x2="833.066667" y2="178.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="170.055829" x2="833.066667" y2="170.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="162.055829" x2="833.066667" y2="162.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="154.055829" x2="833.066667" y2="154.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="146.055829" x2="833.066667" y2="146.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="138.055829" x2="833.066667" y2="138.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="130.055829" x2="833.066667" y2="130.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="122.055829" x2="833.066667" y2="122.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="114.055829" x2="833.066667" y2="114.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="106.055829" x2="833.066667" y2="106.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="98.055829" x2="833.066667" y2="98.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="90.055829" x2="833.066667" y2="90.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="82.055829" x2="833.066667" y2="82.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="74.055829" x2="833.066667" y2="74.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="66.055829" x2="833.066667" y2="66.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="58.055829" x2="833.066667" y2="58.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="50.055829" x2="833.066667" y2="50.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="42.055829" x2="833.066667" y2="42.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="34.055829" x2="833.066667" y2="34.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="26.055829" x2="833.066667" y2="26.055829" />
+<line stroke-width="0.533333"
+ stroke="lightgray"
+ x1="17.066667" y1="18.055829" x2="833.066667" y2="18.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="14.4" y="597.356784">0</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="14.4" y="517.356784">10</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="14.4" y="437.356784">20</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="14.4" y="357.356784">30</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="14.4" y="277.356784">40</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="14.4" y="197.356784">50</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="14.4" y="117.356784">60</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="14.4" y="37.356784">70</text>
+<path stroke-width="0" stroke="white"
+ fill="white"
+ d="M 17.066667,10.055829
+ C 17.066667,11.389162 17.066667,12.722496 17.066667,14.055829 17.066667,16.722496
+17.066667,37.255829 17.066667,75.655829 17.066667,114.055829
+44.266667,133.255829 98.666667,133.255829 153.066667,133.255829
+180.266667,152.455829 180.266667,190.855829 180.266667,229.255829
+207.466667,248.455829 261.866667,248.455829 316.266667,248.455829
+343.466667,267.655829 343.466667,306.055829 343.466667,344.455829
+370.666667,363.655829 425.066667,363.655829 479.466667,363.655829
+506.666667,382.855829 506.666667,421.255829 506.666667,459.655829
+533.866667,478.855829 588.266667,478.855829 642.666667,478.855829
+669.866667,498.055829 669.866667,536.455829 669.866667,574.855829
+697.066667,594.055829 751.466667,594.055829 805.866667,594.055829
+835.733333,594.055829 841.066667,594.055829 846.4,594.055829
+849.066667,591.389162 849.066667,586.055829 849.066667,580.722496
+849.066667,484.722496 849.066667,298.055829 849.066667,111.389162
+849.066667,16.722496 849.066667,14.055829 849.066667,11.389162
+847.733333,10.055829 845.066667,10.055829 843.733333,10.055829 842.4,10.055829
+841.066667,10.055829" />
+<path stroke="white"
+ d="M 17.066667,10.055829
+ C 17.066667,11.389162 17.066667,12.722496 17.066667,14.055829 17.066667,16.722496
+17.066667,37.255829 17.066667,75.655829 17.066667,114.055829
+44.266667,133.255829 98.666667,133.255829 153.066667,133.255829
+180.266667,152.455829 180.266667,190.855829 180.266667,229.255829
+207.466667,248.455829 261.866667,248.455829 316.266667,248.455829
+343.466667,267.655829 343.466667,306.055829 343.466667,344.455829
+370.666667,363.655829 425.066667,363.655829 479.466667,363.655829
+506.666667,382.855829 506.666667,421.255829 506.666667,459.655829
+533.866667,478.855829 588.266667,478.855829 642.666667,478.855829
+669.866667,498.055829 669.866667,536.455829 669.866667,574.855829
+697.066667,594.055829 751.466667,594.055829 805.866667,594.055829
+835.733333,594.055829 841.066667,594.055829 846.4,594.055829
+849.066667,591.389162 849.066667,586.055829 849.066667,580.722496
+849.066667,484.722496 849.066667,298.055829 849.066667,111.389162
+849.066667,16.722496 849.066667,14.055829 849.066667,11.389162
+847.733333,10.055829 845.066667,10.055829 843.733333,10.055829 842.4,10.055829
+841.066667,10.055829" />
+<line x1="657.066667" y1="418.055829" x2="657.066667" y2="418.055829" />
+<line x1="657.066667" y1="418.055829" x2="656.533333" y2="418.055829" />
+<path d="M 657.066667,418.055829
+ A 4 4 0 0 1 657.066667,426.055829" />
+<line x1="657.066667" y1="426.055829" x2="656.533333" y2="426.055829" />
+<path d="M 657.066667,426.055829
+ A 4 4 0 1 1 657.066667,434.055829" />
+<line x1="657.066667" y1="434.055829" x2="656.533333" y2="434.055829" />
+<path d="M 657.066667,434.055829
+ A 4 4 0 0 1 657.066667,442.055829" />
+<line x1="657.066667" y1="442.055829" x2="656.533333" y2="442.055829" />
+<path d="M 657.066667,442.055829
+ A 4 4 0 0 1 657.066667,450.055829" />
+<line x1="657.066667" y1="450.055829" x2="656.533333" y2="450.055829" />
+<path d="M 657.066667,450.055829
+ A 4 4 0 0 1 657.066667,458.055829" />
+<line x1="657.066667" y1="458.055829" x2="656.533333" y2="458.055829" />
+<path d="M 657.066667,458.055829
+ A 4 4 0 0 1 657.066667,466.055829" />
+<line x1="657.066667" y1="466.055829" x2="656.533333" y2="466.055829" />
+<path d="M 657.066667,466.055829
+ A 4 4 0 0 1 657.066667,474.055829" />
+<line x1="657.066667" y1="474.055829" x2="656.533333" y2="474.055829" />
+<path d="M 657.066667,474.055829
+ A 4 4 0 1 1 657.066667,482.055829" />
+<line x1="657.066667" y1="482.055829" x2="656.533333" y2="482.055829" />
+<path d="M 657.066667,482.055829
+ A 4 4 0 1 1 657.066667,490.055829" />
+<line x1="657.066667" y1="490.055829" x2="656.533333" y2="490.055829" />
+<path d="M 657.066667,490.055829
+ A 4 4 0 1 1 657.066667,498.055829" />
+<line x1="657.066667" y1="498.055829" x2="656.533333" y2="498.055829" />
+<path d="M 657.066667,498.055829
+ A 4 4 0 1 1 657.066667,506.055829" />
+<line x1="657.066667" y1="506.055829" x2="656.533333" y2="506.055829" />
+<path d="M 657.066667,506.055829
+ A 4 4 0 1 1 657.066667,514.055829" />
+<line x1="657.066667" y1="514.055829" x2="656.533333" y2="514.055829" />
+<path d="M 657.066667,514.055829
+ A 4 4 0 0 1 657.066667,522.055829" />
+<line x1="657.066667" y1="522.055829" x2="656.533333" y2="522.055829" />
+<line x1="657.066667" y1="522.055829" x2="657.066667" y2="522.055829" />
+<line x1="657.066667" y1="250.055829" x2="657.066667" y2="250.055829" />
+<line x1="657.066667" y1="250.055829" x2="656.533333" y2="250.055829" />
+<path d="M 657.066667,250.055829
+ A 4 4 0 0 1 657.066667,258.055829" />
+<line x1="657.066667" y1="258.055829" x2="656.533333" y2="258.055829" />
+<path d="M 657.066667,258.055829
+ A 4 4 0 1 1 657.066667,266.055829" />
+<line x1="657.066667" y1="266.055829" x2="656.533333" y2="266.055829" />
+<path d="M 657.066667,266.055829
+ A 4 4 0 0 1 657.066667,274.055829" />
+<line x1="657.066667" y1="274.055829" x2="656.533333" y2="274.055829" />
+<path d="M 657.066667,274.055829
+ A 4 4 0 0 1 657.066667,282.055829" />
+<line x1="657.066667" y1="282.055829" x2="656.533333" y2="282.055829" />
+<path d="M 657.066667,282.055829
+ A 4 4 0 0 1 657.066667,290.055829" />
+<line x1="657.066667" y1="290.055829" x2="656.533333" y2="290.055829" />
+<path d="M 657.066667,290.055829
+ A 4 4 0 0 1 657.066667,298.055829" />
+<line x1="657.066667" y1="298.055829" x2="656.533333" y2="298.055829" />
+<path d="M 657.066667,298.055829
+ A 4 4 0 0 1 657.066667,306.055829" />
+<line x1="657.066667" y1="306.055829" x2="656.533333" y2="306.055829" />
+<path d="M 657.066667,306.055829
+ A 4 4 0 1 1 657.066667,314.055829" />
+<line x1="657.066667" y1="314.055829" x2="656.533333" y2="314.055829" />
+<path d="M 657.066667,314.055829
+ A 4 4 0 1 1 657.066667,322.055829" />
+<line x1="657.066667" y1="322.055829" x2="656.533333" y2="322.055829" />
+<path d="M 657.066667,322.055829
+ A 4 4 0 1 1 657.066667,330.055829" />
+<line x1="657.066667" y1="330.055829" x2="656.533333" y2="330.055829" />
+<line x1="657.066667" y1="330.055829" x2="657.066667" y2="330.055829" />
+<line x1="657.066667" y1="154.055829" x2="657.066667" y2="154.055829" />
+<line x1="657.066667" y1="154.055829" x2="656.533333" y2="154.055829" />
+<path d="M 657.066667,154.055829
+ A 4 4 0 0 1 657.066667,162.055829" />
+<line x1="657.066667" y1="162.055829" x2="656.533333" y2="162.055829" />
+<path d="M 657.066667,162.055829
+ A 4 4 0 1 1 657.066667,170.055829" />
+<line x1="657.066667" y1="170.055829" x2="656.533333" y2="170.055829" />
+<path d="M 657.066667,170.055829
+ A 4 4 0 0 1 657.066667,178.055829" />
+<line x1="657.066667" y1="178.055829" x2="656.533333" y2="178.055829" />
+<path d="M 657.066667,178.055829
+ A 4 4 0 0 1 657.066667,186.055829" />
+<line x1="657.066667" y1="186.055829" x2="656.533333" y2="186.055829" />
+<path d="M 657.066667,186.055829
+ A 4 4 0 0 1 657.066667,194.055829" />
+<line x1="657.066667" y1="194.055829" x2="656.533333" y2="194.055829" />
+<path d="M 657.066667,194.055829
+ A 4 4 0 0 1 657.066667,202.055829" />
+<line x1="657.066667" y1="202.055829" x2="656.533333" y2="202.055829" />
+<path d="M 657.066667,202.055829
+ A 4 4 0 0 1 657.066667,210.055829" />
+<line x1="657.066667" y1="210.055829" x2="656.533333" y2="210.055829" />
+<path d="M 657.066667,210.055829
+ A 4 4 0 1 1 657.066667,218.055829" />
+<line x1="657.066667" y1="218.055829" x2="656.533333" y2="218.055829" />
+<path d="M 657.066667,218.055829
+ A 4 4 0 1 1 657.066667,226.055829" />
+<line x1="657.066667" y1="226.055829" x2="656.533333" y2="226.055829" />
+<path d="M 657.066667,226.055829
+ A 4 4 0 1 1 657.066667,234.055829" />
+<line x1="657.066667" y1="234.055829" x2="656.533333" y2="234.055829" />
+<line x1="663.2" y1="154.055829" x2="663.2" y2="234.055829" />
+<line x1="666.4" y1="154.055829" x2="666.4" y2="234.055829" />
+<line x1="657.066667" y1="234.055829" x2="657.066667" y2="234.055829" />
+<line x1="663.2" y1="234.055829" x2="663.2" y2="522.055829" />
+<line x1="666.4" y1="234.055829" x2="666.4" y2="522.055829" />
+<line stroke-dasharray="5.6,4"
+ x1="669.6" y1="154.055829" x2="669.6" y2="522.055829" />
+<line x1="669.6" y1="522.055829" x2="669.6" y2="534.855829" />
+<line x1="678.133333" y1="534.855829" x2="661.066667" y2="534.855829" />
+<line x1="675.288889" y1="538.055829" x2="663.911111" y2="538.055829" />
+<line x1="673.257143" y1="541.255829" x2="665.942857" y2="541.255829" />
+<line x1="675.733333" y1="266.055829" x2="675.733333" y2="266.055829" />
+<line x1="675.733333" y1="266.055829" x2="676.266667" y2="266.055829" />
+<path d="M 675.733333,266.055829
+ A 4 4 0 0 1 675.733333,258.055829" />
+<line x1="675.733333" y1="258.055829" x2="676.266667" y2="258.055829" />
+<path d="M 675.733333,258.055829
+ A 4 4 0 0 1 675.733333,250.055829" />
+<line x1="675.733333" y1="250.055829" x2="676.266667" y2="250.055829" />
+<path d="M 675.733333,250.055829
+ A 4 4 0 0 1 675.733333,242.055829" />
+<line x1="675.733333" y1="242.055829" x2="676.266667" y2="242.055829" />
+<path d="M 675.733333,242.055829
+ A 4 4 0 0 1 675.733333,234.055829" />
+<line x1="675.733333" y1="234.055829" x2="676.266667" y2="234.055829" />
+<path d="M 675.733333,234.055829
+ A 4 4 0 0 1 675.733333,226.055829" />
+<line x1="675.733333" y1="226.055829" x2="676.266667" y2="226.055829" />
+<line x1="675.733333" y1="226.055829" x2="675.733333" y2="226.055829" />
+<line x1="675.733333" y1="322.055829" x2="675.733333" y2="322.055829" />
+<line x1="675.733333" y1="322.055829" x2="676.266667" y2="322.055829" />
+<path d="M 675.733333,322.055829
+ A 4 4 0 0 1 675.733333,314.055829" />
+<line x1="675.733333" y1="314.055829" x2="676.266667" y2="314.055829" />
+<path d="M 675.733333,314.055829
+ A 4 4 0 0 1 675.733333,306.055829" />
+<line x1="675.733333" y1="306.055829" x2="676.266667" y2="306.055829" />
+<path d="M 675.733333,306.055829
+ A 4 4 0 0 1 675.733333,298.055829" />
+<line x1="675.733333" y1="298.055829" x2="676.266667" y2="298.055829" />
+<path d="M 675.733333,298.055829
+ A 4 4 0 0 1 675.733333,290.055829" />
+<line x1="675.733333" y1="290.055829" x2="676.266667" y2="290.055829" />
+<path d="M 675.733333,290.055829
+ A 4 4 0 0 1 675.733333,282.055829" />
+<line x1="675.733333" y1="282.055829" x2="676.266667" y2="282.055829" />
+<line x1="675.733333" y1="282.055829" x2="675.733333" y2="282.055829" />
+<rect stroke-width="2.666667"
+ stroke-dasharray="5.6,4"
+ x="137.066667" y="98.055829" width="464" height="440" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="345.066667" y="520.707552">POWER SUPPLY</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="345.066667" y="530.006016">CIRCUIT BOARD</text>
+<line stroke-width="2.666667"
+ stroke-dasharray="5.6,4"
+ x1="297.066667" y1="538.055829" x2="297.066667" y2="506.055829" />
+<line stroke-width="2.666667"
+ stroke-dasharray="5.6,4"
+ x1="297.066667" y1="506.055829" x2="393.066667" y2="506.055829" />
+<line stroke-width="2.666667"
+ stroke-dasharray="5.6,4"
+ x1="393.066667" y1="506.055829" x2="393.066667" y2="538.055829" />
+<rect fill="white"
+ x="593.066667" y="514.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="601.066667" y="525.356784">1</text>
+<line x1="609.066667" y1="522.055829" x2="657.066667" y2="522.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="633.066667" y="519.389162">RED</text>
+<rect fill="white"
+ x="593.066667" y="410.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="601.066667" y="421.356784">2</text>
+<line x1="609.066667" y1="418.055829" x2="657.066667" y2="418.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="633.066667" y="415.389162">RED</text>
+<rect fill="white"
+ x="593.066667" y="322.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="601.066667" y="333.356784">3</text>
+<line x1="657.066667" y1="250.055829" x2="625.066667" y2="250.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="641.066667" y="247.389162">GRN</text>
+<line x1="625.066667" y1="250.055829" x2="625.066667" y2="262.855829" />
+<line x1="633.6" y1="262.855829" x2="616.533333" y2="262.855829" />
+<line x1="630.755556" y1="266.055829" x2="619.377778" y2="266.055829" />
+<line x1="628.72381" y1="269.255829" x2="621.409524" y2="269.255829" />
+<line x1="609.066667" y1="330.055829" x2="657.066667" y2="330.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="633.066667" y="327.389162">GRN</text>
+<polygon stroke-width="0" fill="black"
+ points="653.302775,321.112933 649.066667,330.055829
+648.595988,320.171576" />
+<polygon stroke-width="0" fill="black"
+ points="644.830558,258.998725 649.066667,250.055829
+649.537345,259.940082" />
+<path d="M 649.497924,327.899542
+ C 650.092714,324.92559 650.687505,321.951638 651.282295,318.977686 652.471876,313.029781
+651.733333,303.389162 649.066667,290.055829 646.4,276.722496
+645.661457,267.081877 646.851038,261.133972 647.445828,258.16002 648.040619,255.186068
+648.635409,252.212116" />
+<rect fill="white"
+ stroke="none"
+ x="629.066667" y="286.055829" width="24" height="8" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="641.066667" y="293.356784">6 VAC</text>
+<rect fill="white"
+ x="593.066667" y="346.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="601.066667" y="357.356784">4</text>
+<line x1="609.066667" y1="354.055829" x2="633.066667" y2="354.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="621.066667" y="351.389162">BRN</text>
+<polygon stroke-width="0" fill="black"
+ points="635.466667,363.655829 633.066667,370.055829
+630.666667,363.655829" />
+<line x1="633.066667" y1="354.055829" x2="633.066667" y2="368.536895" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="633.066667" y="376.707552">TO DIAL</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="633.066667" y="386.006016">LAMPS</text>
+<rect fill="white"
+ x="593.066667" y="226.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="601.066667" y="237.356784">5</text>
+<line x1="609.066667" y1="234.055829" x2="657.066667" y2="234.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="633.066667" y="231.389162">BLU</text>
+<rect fill="white"
+ x="593.066667" y="146.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="601.066667" y="157.356784">7</text>
+<line x1="609.066667" y1="154.055829" x2="657.066667" y2="154.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="633.066667" y="151.389162">BLU</text>
+<rect fill="white"
+ x="593.066667" y="186.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="601.066667" y="197.356784">6</text>
+<line x1="609.066667" y1="194.055829" x2="657.066667" y2="194.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="633.066667" y="191.389162">BLU-YEL</text>
+<line x1="675.733333" y1="226.055829" x2="737.066667" y2="226.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="706.4" y="235.324405">BLK</text>
+<circle fill="black"
+ cx="737.066667" cy="226.055829" r="2.048" />
+<line x1="675.733333" y1="266.055829" x2="737.066667" y2="266.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="706.4" y="263.389162">BLK-YEL</text>
+<circle fill="black"
+ cx="737.066667" cy="266.055829" r="2.048" />
+<line x1="675.733333" y1="282.055829" x2="737.066667" y2="282.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="706.4" y="291.324405">BLK-GRN</text>
+<circle fill="black"
+ cx="737.066667" cy="282.055829" r="2.048" />
+<line x1="675.733333" y1="322.055829" x2="737.066667" y2="322.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="706.4" y="319.389162">BLK-RED</text>
+<circle fill="black"
+ cx="737.066667" cy="322.055829" r="2.048" />
+<line x1="737.066667" y1="322.055829" x2="745.066667" y2="322.055829" />
+<circle fill="black"
+ cx="745.066667" cy="322.055829" r="2.048" />
+<polyline points="737.066667,266.055829 745.066667,266.055829
+745.066667,330.055829" />
+<line x1="745.066667" y1="330.055829" x2="745.066667" y2="331.815829" />
+<path d="M 745.066667,331.815829
+ A 5.12 5.12 0 0 1 745.066667,342.055829" />
+<circle fill="white"
+ cx="745.066667" cy="331.815829" r="2.048" />
+<path d="M 745.066667,342.055829
+ A 5.12 5.12 0 0 0 745.066667,352.295829" />
+<line x1="745.066667" y1="352.295829" x2="745.066667" y2="354.055829" />
+<circle fill="white"
+ cx="745.066667" cy="352.295829" r="2.048" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="705.066667" y="340.707552">3 A FUSE</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="705.066667" y="350.006016">SLOW BLOW</text>
+<line x1="745.066667" y1="354.055829" x2="745.066667" y2="362.055829" />
+<circle fill="black"
+ cx="745.066667" cy="362.055829" r="2.048" />
+<rect x="768" y="352.455829" width="34.133333" height="19.2" />
+<rect x="774.933333" y="355.655829" width="3.2" height="12.8" />
+<rect x="792" y="355.655829" width="3.2" height="12.8" />
+<line x1="768" y1="362.055829" x2="774.933333" y2="362.055829" />
+<line x1="802.133333" y1="362.055829" x2="795.2" y2="362.055829" />
+<line x1="768" y1="362.055829" x2="745.066667" y2="362.055829" />
+<circle fill="black"
+ cx="745.066667" cy="362.055829" r="2.048" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="742.4" y="365.356784">A</text>
+<line x1="802.133333" y1="362.055829" x2="825.066667" y2="362.055829" />
+<circle fill="black"
+ cx="825.066667" cy="362.055829" r="2.048" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="827.733333" y="365.356784">B</text>
+<rect x="768" y="464.455829" width="34.133333" height="19.2" />
+<rect x="774.933333" y="467.655829" width="3.2" height="12.8" />
+<rect x="792" y="467.655829" width="3.2" height="12.8" />
+<line x1="768" y1="474.055829" x2="774.933333" y2="474.055829" />
+<line x1="802.133333" y1="474.055829" x2="795.2" y2="474.055829" />
+<line x1="768" y1="474.055829" x2="745.066667" y2="474.055829" />
+<circle fill="black"
+ cx="745.066667" cy="474.055829" r="2.048" />
+<line x1="802.133333" y1="474.055829" x2="825.066667" y2="474.055829" />
+<circle fill="black"
+ cx="825.066667" cy="474.055829" r="2.048" />
+<rect x="768" y="496.455829" width="34.133333" height="19.2" />
+<rect x="774.933333" y="499.655829" width="3.2" height="12.8" />
+<rect x="792" y="499.655829" width="3.2" height="12.8" />
+<line x1="768" y1="506.055829" x2="774.933333" y2="506.055829" />
+<line x1="802.133333" y1="506.055829" x2="795.2" y2="506.055829" />
+<line x1="768" y1="506.055829" x2="745.066667" y2="506.055829" />
+<circle fill="black"
+ cx="745.066667" cy="506.055829" r="2.048" />
+<line x1="802.133333" y1="506.055829" x2="825.066667" y2="506.055829" />
+<circle fill="black"
+ cx="825.066667" cy="506.055829" r="2.048" />
+<line x1="768" y1="570.055829" x2="802.133333" y2="570.055829" />
+<path d="M 768,570.055829
+ A 17.066667 17.066667 0 0 1 802.133333,570.055829" />
+<line x1="776.533333" y1="548.989162" x2="776.533333" y2="586.055829" />
+<line x1="793.6" y1="548.989162" x2="793.6" y2="586.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="804.8" y="566.174218">120 VAC</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="804.8" y="575.472683">50/60 Hz</text>
+<circle cx="764.066667" cy="394.055829" r="7" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="764.066667" y="397.356784">1</text>
+<circle cx="778.066667" cy="394.055829" r="7" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="778.066667" y="397.356784">4</text>
+<circle cx="764.066667" cy="415.055829" r="7" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="764.066667" y="418.356784">2</text>
+<circle cx="778.066667" cy="415.055829" r="7" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="778.066667" y="418.356784">5</text>
+<circle cx="764.066667" cy="436.055829" r="7" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="764.066667" y="439.356784">3</text>
+<circle cx="778.066667" cy="436.055829" r="7" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="778.066667" y="439.356784">6</text>
+<line stroke-width="0.533333"
+ x1="785.066667" y1="414.844054" x2="791.854892" y2="408.055829" />
+<line stroke-width="0.533333"
+ x1="785.066667" y1="421.632279" x2="793.066667" y2="413.632279" />
+<line stroke-width="0.533333"
+ x1="785.066667" y1="428.420504" x2="793.066667" y2="420.420504" />
+<line stroke-width="0.533333"
+ x1="785.066667" y1="435.208729" x2="793.066667" y2="427.208729" />
+<line stroke-width="0.533333"
+ x1="785.066667" y1="441.996955" x2="793.066667" y2="433.996955" />
+<line stroke-width="0.533333"
+ x1="790.796017" y1="443.055829" x2="793.066667" y2="440.78518" />
+<line stroke-width="0.533333"
+ x1="785.066667" y1="408.055829" x2="785.066667" y2="408.055829" />
+<rect x="785.066667" y="408.055829" width="8" height="35" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="738.4" y="418.356784">POWER</text>
+<polygon stroke-width="0" fill="black"
+ points="802.666667,410.655829 805.066667,401.055829
+807.466667,410.655829" />
+<line x1="805.066667" y1="429.055829" x2="805.066667" y2="403.254819" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="805.066667" y="398.389162">ON</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="805.066667" y="438.324405">OFF</text>
+<polyline points="757.066667,394.055829 745.066667,394.055829
+745.066667,362.055829" />
+<polyline points="757.066667,415.055829 745.066667,415.055829
+745.066667,548.989162
+776.533333,548.989162" />
+<polyline points="793.6,548.989162 825.066667,548.989162
+825.066667,226.055829
+675.733333,226.055829" />
+<line x1="737.066667" y1="282.055829" x2="825.066667" y2="282.055829" />
+<circle fill="black"
+ cx="825.066667" cy="282.055829" r="2.048" />
+<rect fill="white"
+ x="569.066667" y="530.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="577.066667" y="541.356784">25</text>
+<polyline points="577.066667,546.055829 577.066667,557.255829
+581.333333,559.389162
+572.8,563.655829
+581.333333,567.922496
+572.8,572.189162
+581.333333,576.455829
+572.8,580.722496
+577.066667,582.855829
+577.066667,594.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="561.066667" y="568.707552">R516</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="561.066667" y="578.006016">22</text>
+<line x1="585.6" y1="594.055829" x2="568.533333" y2="594.055829" />
+<line x1="582.755556" y1="597.255829" x2="571.377778" y2="597.255829" />
+<line x1="580.72381" y1="600.455829" x2="573.409524" y2="600.455829" />
+<circle fill="black"
+ cx="577.066667" cy="554.055829" r="2.048" />
+<line x1="577.066667" y1="554.055829" x2="617.066667" y2="554.055829" />
+<line x1="617.066667" y1="586.055829" x2="617.066667" y2="582.855829" />
+<circle cx="617.066667" cy="570.055829" r="12.8" />
+<line x1="617.066667" y1="582.855829" x2="617.066667" y2="578.589162" />
+<circle stroke-width="0.533333"
+ cx="617.066667" cy="578.589162" r="0.26567" />
+<path d="M 617.066667,578.589162
+ A 6.4 6.4 0 0 0 617.066667,565.789162" />
+<path d="M 617.066667,565.789162
+ A 4.266667 4.266667 0 0 0 617.066667,574.322496" />
+<path d="M 617.066667,574.322496
+ A 6.4 6.4 0 0 0 617.066667,561.522496" />
+<circle stroke-width="0.533333"
+ cx="617.066667" cy="561.522496" r="0.26567" />
+<line x1="617.066667" y1="561.522496" x2="617.066667" y2="557.255829" />
+<line x1="617.066667" y1="557.255829" x2="617.066667" y2="554.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="635.733333" y="564.05832">#49</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="635.733333" y="573.356784">HI</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="635.733333" y="582.655248">TEMP</text>
+<line x1="617.066667" y1="586.055829" x2="577.066667" y2="586.055829" />
+<circle fill="black"
+ cx="577.066667" cy="586.055829" r="2.048" />
+<polygon stroke-width="0" fill="black"
+ points="581.978442,550.651196 577.066667,550.055829
+581.680759,548.269729" />
+<line stroke-width="0.533333"
+ x1="578.157671" y1="549.919454" x2="593.066667" y2="548.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="595.733333" y="551.356784">BRN</text>
+<rect fill="white"
+ x="537.066667" y="530.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="545.066667" y="541.356784">24</text>
+<line x1="545.066667" y1="546.055829" x2="545.066667" y2="594.055829" />
+<line x1="553.6" y1="594.055829" x2="536.533333" y2="594.055829" />
+<line x1="550.755556" y1="597.255829" x2="539.377778" y2="597.255829" />
+<line x1="548.72381" y1="600.455829" x2="541.409524" y2="600.455829" />
+<rect fill="white"
+ x="225.066667" y="530.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="233.066667" y="541.356784">23</text>
+<line x1="233.066667" y1="546.055829" x2="233.066667" y2="594.055829" />
+<line x1="241.6" y1="594.055829" x2="224.533333" y2="594.055829" />
+<line x1="238.755556" y1="597.255829" x2="227.377778" y2="597.255829" />
+<line x1="236.72381" y1="600.455829" x2="229.409524" y2="600.455829" />
+<rect fill="white"
+ x="129.066667" y="506.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="517.356784">22</text>
+<polyline points="145.066667,514.055829 164.266667,514.055829
+166.4,509.789162
+170.666667,518.322496
+174.933333,509.789162
+179.2,518.322496
+183.466667,509.789162
+187.733333,518.322496
+189.866667,514.055829
+209.066667,514.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="177.066667" y="507.122496">R514</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="177.066667" y="527.591072">680 K</text>
+<circle fill="black"
+ cx="209.066667" cy="514.055829" r="2.048" />
+<line x1="209.066667" y1="514.055829" x2="209.066667" y2="526.855829" />
+<line x1="217.6" y1="526.855829" x2="200.533333" y2="526.855829" />
+<line x1="214.755556" y1="530.055829" x2="203.377778" y2="530.055829" />
+<line x1="212.72381" y1="533.255829" x2="205.409524" y2="533.255829" />
+<polyline points="209.066667,514.055829 233.066667,514.055829
+233.066667,530.055829" />
+<circle fill="black"
+ cx="545.066667" cy="470.055829" r="2.048" />
+<line x1="545.066667" y1="470.055829" x2="521.679456" y2="446.668618" />
+<polyline stroke-width="0" fill="black"
+ points="521.679456,446.668618
+518.662467,449.685607
+516.829592,441.818755
+524.696445,443.651629
+521.679456,446.668618" />
+<polyline points="521.679456,446.668618 518.662467,449.685607
+516.829592,441.818755
+524.696445,443.651629
+521.679456,446.668618" />
+<line x1="519.745909" y1="438.151009" x2="513.161846" y2="444.735071" />
+<line x1="516.453878" y1="441.44304" x2="493.066667" y2="418.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="521.733333" y="437.16278">D508</text>
+<circle fill="black"
+ cx="493.066667" cy="418.055829" r="2.048" />
+<line x1="493.066667" y1="418.055829" x2="469.679456" y2="441.44304" />
+<polyline stroke-width="0" fill="black"
+ points="469.679456,441.44304
+472.696445,444.460029
+464.829592,446.292903
+466.662467,438.426051
+469.679456,441.44304" />
+<polyline points="469.679456,441.44304 472.696445,444.460029
+464.829592,446.292903
+466.662467,438.426051
+469.679456,441.44304" />
+<line x1="461.161846" y1="443.376587" x2="467.745909" y2="449.960649" />
+<line x1="464.453878" y1="446.668618" x2="441.066667" y2="470.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="464.4" y="437.16278">D506</text>
+<circle fill="black"
+ cx="441.066667" cy="470.055829" r="2.048" />
+<line x1="545.066667" y1="470.055829" x2="521.679456" y2="493.44304" />
+<polyline stroke-width="0" fill="black"
+ points="521.679456,493.44304
+524.696445,496.460029
+516.829592,498.292903
+518.662467,490.426051
+521.679456,493.44304" />
+<polyline points="521.679456,493.44304 524.696445,496.460029
+516.829592,498.292903
+518.662467,490.426051
+521.679456,493.44304" />
+<line x1="513.161846" y1="495.376587" x2="519.745909" y2="501.960649" />
+<line x1="516.453878" y1="498.668618" x2="493.066667" y2="522.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="521.733333" y="509.550788">D509</text>
+<circle fill="black"
+ cx="493.066667" cy="522.055829" r="2.048" />
+<line x1="493.066667" y1="522.055829" x2="469.679456" y2="498.668618" />
+<polyline stroke-width="0" fill="black"
+ points="469.679456,498.668618
+466.662467,501.685607
+464.829592,493.818755
+472.696445,495.651629
+469.679456,498.668618" />
+<polyline points="469.679456,498.668618 466.662467,501.685607
+464.829592,493.818755
+472.696445,495.651629
+469.679456,498.668618" />
+<line x1="467.745909" y1="490.151009" x2="461.161846" y2="496.735071" />
+<line x1="464.453878" y1="493.44304" x2="441.066667" y2="470.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="464.4" y="509.550788">D507</text>
+<line x1="493.066667" y1="418.055829" x2="493.066667" y2="467.495829" />
+<line x1="486.666667" y1="467.495829" x2="499.466667" y2="467.495829" />
+<path d="M 486.666667,472.615829
+ A 12.8 12.8 0 0 1 499.466667,472.615829" />
+<line x1="493.066667" y1="470.900954" x2="493.066667" y2="522.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="495.733333" y="464.829162">C507</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="495.733333" y="481.884405">.22</text>
+<line x1="545.066667" y1="470.055829" x2="545.066667" y2="530.055829" />
+<line x1="493.066667" y1="418.055829" x2="593.066667" y2="418.055829" />
+<line x1="493.066667" y1="522.055829" x2="593.066667" y2="522.055829" />
+<polygon stroke-width="0" fill="black"
+ points="564.898508,512.932398 561.066667,522.055829
+560.154324,512.202524" />
+<polygon stroke-width="0" fill="black"
+ points="557.234826,427.17926 561.066667,418.055829
+561.97901,427.909135" />
+<path d="M 561.401039,519.88241
+ C 562.011977,515.911313 562.622915,511.940216 563.233853,507.96912 564.455729,500.026926
+563.733333,487.389162 561.066667,470.055829 558.4,452.722496
+557.677605,440.084732 558.899481,432.142539 559.510419,428.171442 560.121357,424.200345
+560.732294,420.229248" />
+<rect fill="white"
+ stroke="none"
+ x="553.066667" y="462.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="561.066667" y="468.707552">57</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="561.066667" y="478.006016">VAC</text>
+<rect fill="white"
+ x="129.066667" y="462.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="473.356784">21</text>
+<line x1="145.066667" y1="470.055829" x2="441.066667" y2="470.055829" />
+<rect fill="white"
+ x="129.066667" y="486.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="497.356784">19</text>
+<rect fill="white"
+ x="129.066667" y="438.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="449.356784">20</text>
+<line x1="593.066667" y1="194.055829" x2="577.066667" y2="194.055829" />
+<line x1="577.066667" y1="194.055829" x2="577.066667" y2="206.855829" />
+<line x1="585.6" y1="206.855829" x2="568.533333" y2="206.855829" />
+<line x1="582.755556" y1="210.055829" x2="571.377778" y2="210.055829" />
+<line x1="580.72381" y1="213.255829" x2="573.409524" y2="213.255829" />
+<line x1="593.066667" y1="234.055829" x2="561.066667" y2="234.055829" />
+<circle fill="black"
+ cx="561.066667" cy="234.055829" r="2.048" />
+<line x1="561.066667" y1="234.055829" x2="561.066667" y2="247.495829" />
+<line x1="554.666667" y1="247.495829" x2="567.466667" y2="247.495829" />
+<path d="M 554.666667,252.615829
+ A 12.8 12.8 0 0 1 567.466667,252.615829" />
+<line x1="561.066667" y1="250.900954" x2="561.066667" y2="266.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="563.733333" y="244.829162">C504</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="563.733333" y="261.884405">.22</text>
+<line x1="569.6" y1="266.055829" x2="552.533333" y2="266.055829" />
+<line x1="566.755556" y1="269.255829" x2="555.377778" y2="269.255829" />
+<line x1="564.72381" y1="272.455829" x2="557.409524" y2="272.455829" />
+<line x1="561.066667" y1="234.055829" x2="544.761708" y2="234.055829" />
+<polyline stroke-width="0" fill="black"
+ points="544.761708,234.055829
+544.761708,238.322496
+537.902966,234.055829
+544.761708,229.789162
+544.761708,234.055829" />
+<polyline points="544.761708,234.055829 544.761708,238.322496
+537.902966,234.055829
+544.761708,229.789162
+544.761708,234.055829" />
+<line x1="537.371625" y1="229.400194" x2="537.371625" y2="238.711464" />
+<line x1="537.371625" y1="234.055829" x2="521.066667" y2="234.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="541.066667" y="226.202186">D504</text>
+<circle fill="black"
+ cx="521.066667" cy="234.055829" r="2.048" />
+<line x1="521.066667" y1="234.055829" x2="521.066667" y2="247.495829" />
+<line x1="514.666667" y1="247.495829" x2="527.466667" y2="247.495829" />
+<path d="M 514.666667,252.615829
+ A 12.8 12.8 0 0 1 527.466667,252.615829" />
+<line x1="521.066667" y1="250.900954" x2="521.066667" y2="266.055829" />
+<line stroke-width="0.666667"
+ x1="525.333333" y1="245.362496" x2="525.333333" y2="241.095829" />
+<line stroke-width="0.666667"
+ x1="527.466667" y1="243.229162" x2="523.2" y2="243.229162" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="518.4" y="244.829162">C505</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="512" y="253.356784">100</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="518.4" y="261.884405">75 V</text>
+<line x1="529.6" y1="266.055829" x2="512.533333" y2="266.055829" />
+<line x1="526.755556" y1="269.255829" x2="515.377778" y2="269.255829" />
+<line x1="524.72381" y1="272.455829" x2="517.409524" y2="272.455829" />
+<line x1="521.066667" y1="234.055829" x2="521.066667" y2="154.055829" />
+<circle fill="black"
+ cx="521.066667" cy="154.055829" r="2.048" />
+<line x1="561.066667" y1="154.055829" x2="544.761708" y2="154.055829" />
+<polyline stroke-width="0" fill="black"
+ points="544.761708,154.055829
+544.761708,158.322496
+537.902966,154.055829
+544.761708,149.789162
+544.761708,154.055829" />
+<polyline points="544.761708,154.055829 544.761708,158.322496
+537.902966,154.055829
+544.761708,149.789162
+544.761708,154.055829" />
+<line x1="537.371625" y1="149.400194" x2="537.371625" y2="158.711464" />
+<line x1="537.371625" y1="154.055829" x2="521.066667" y2="154.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="541.066667" y="146.202186">D503</text>
+<line x1="561.066667" y1="154.055829" x2="593.066667" y2="154.055829" />
+<polygon stroke-width="0" fill="black"
+ points="568.409992,224.742281 565.066667,234.055829
+563.633813,224.264663" />
+<polygon stroke-width="0" fill="black"
+ points="561.723342,163.369377 565.066667,154.055829
+566.49952,163.846995" />
+<path d="M 565.285474,231.867753
+ C 565.58234,228.899099 565.879205,225.930445 566.17607,222.961791 566.769801,217.024483
+566.4,207.389162 565.066667,194.055829 563.733333,180.722496
+563.363532,171.087175 563.957263,165.149867 564.254128,162.181213 564.550994,159.21256
+564.847859,156.243906" />
+<rect fill="white"
+ stroke="none"
+ x="541.066667" y="190.055829" width="32" height="8" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="557.066667" y="197.356784">100 VAC</text>
+<line x1="498.297436" y1="338.671214" x2="498.297436" y2="358.363521" />
+<line x1="485.989744" y1="348.517368" x2="498.297436" y2="348.517368" />
+<line x1="517.989744" y1="333.748137" x2="498.297436" y2="342.609675" />
+<polygon stroke-width="0" fill="black"
+ points="511.825311,339.52134 503.220513,340.394291
+509.580581,334.533052" />
+<line x1="513.066667" y1="335.963521" x2="504.758512" y2="339.702191" />
+<line x1="517.989744" y1="363.286598" x2="498.297436" y2="354.42506" />
+<path d="M 485.989744,348.517368
+ A 19.692308 19.692308 0 1 0 525.374359,348.517368" />
+<line x1="525.374359" y1="348.517368" x2="525.374359" y2="348.517368" />
+<path d="M 525.374359,348.517368
+ A 19.692308 19.692308 0 0 0 485.989744,348.517368" />
+<line x1="485.989744" y1="348.517368" x2="485.989744" y2="348.517368" />
+<circle cx="521.066667" cy="330.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="521.066667" y="333.356784">E</text>
+<circle cx="481.066667" cy="348.517368" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="481.066667" y="351.818322">B</text>
+<circle cx="521.066667" cy="366.978906" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="521.066667" y="370.279861">C</text>
+<polyline points="525.989744,366.978906 577.066667,366.978906
+577.066667,530.055829" />
+<line x1="481.066667" y1="353.440444" x2="481.066667" y2="362.055829" />
+<polyline points="481.066667,362.055829 481.066667,369.255829
+485.333333,371.389162
+476.8,375.655829
+485.333333,379.922496
+476.8,384.189162
+485.333333,388.455829
+476.8,392.722496
+481.066667,394.855829
+481.066667,402.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="488" y="380.707552">R513</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="488" y="390.006016">1500</text>
+<line x1="489.6" y1="402.055829" x2="472.533333" y2="402.055829" />
+<line x1="486.755556" y1="405.255829" x2="475.377778" y2="405.255829" />
+<line x1="484.72381" y1="408.455829" x2="477.409524" y2="408.455829" />
+<polyline points="145.066667,494.055829 425.066667,494.055829
+425.066667,314.055829" />
+<polyline points="425.066667,314.055829 432.266667,314.055829
+434.4,309.789162
+438.666667,318.322496
+442.933333,309.789162
+447.2,318.322496
+451.466667,309.789162
+455.733333,318.322496
+457.866667,314.055829
+465.066667,314.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="445.066667" y="307.122496">R511</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="445.066667" y="327.591072">470</text>
+<polyline points="465.066667,314.055829 521.066667,314.055829
+521.066667,325.132752" />
+<polyline points="145.066667,446.055829 441.066667,446.055829
+441.066667,402.055829" />
+<polyline points="441.066667,402.055829 441.066667,394.855829
+436.8,392.722496
+445.333333,388.455829
+436.8,384.189162
+445.333333,379.922496
+436.8,375.655829
+445.333333,371.389162
+441.066667,369.255829
+441.066667,362.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="448" y="376.05832">R512</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="448" y="385.356784">5600</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="448" y="394.655248">1 W</text>
+<polyline points="441.066667,362.055829 441.066667,348.517368
+476.14359,348.517368" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="533.066667" y="292.05832">Q503</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="533.066667" y="301.356784">S2091 HI TEMP</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="533.066667" y="310.655248">CONTROL</text>
+<line x1="561.066667" y1="330.055829" x2="547.223247" y2="330.055829" />
+<polyline stroke-width="0" fill="black"
+ points="547.223247,330.055829
+547.223247,334.322496
+540.364504,330.055829
+547.223247,325.789162
+547.223247,330.055829" />
+<polyline points="547.223247,330.055829 547.223247,334.322496
+540.364504,330.055829
+547.223247,325.789162
+547.223247,330.055829" />
+<line x1="539.833163" y1="325.400194" x2="539.833163" y2="334.711464" />
+<line x1="539.833163" y1="330.055829" x2="525.989744" y2="330.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="543.528205" y="322.202186">D505</text>
+<line x1="561.066667" y1="330.055829" x2="593.066667" y2="330.055829" />
+<polyline points="593.066667,354.055829 577.066667,354.055829
+577.066667,330.055829" />
+<circle fill="black"
+ cx="577.066667" cy="330.055829" r="2.048" />
+<line x1="561.066667" y1="154.055829" x2="481.066667" y2="154.055829" />
+<circle fill="black"
+ cx="481.066667" cy="154.055829" r="2.048" />
+<rect fill="white"
+ x="473.066667" y="90.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="481.066667" y="101.356784">8</text>
+<line x1="481.066667" y1="154.055829" x2="481.066667" y2="106.055829" />
+<polyline points="481.066667,154.055829 481.066667,161.255829
+485.333333,163.389162
+476.8,167.655829
+485.333333,171.922496
+476.8,176.189162
+485.333333,180.455829
+476.8,184.722496
+481.066667,186.855829
+481.066667,194.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="488" y="172.707552">R505</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="488" y="182.006016">12 K</text>
+<circle fill="black"
+ cx="481.066667" cy="194.055829" r="2.048" />
+<line x1="481.066667" y1="194.055829" x2="481.066667" y2="227.495829" />
+<line x1="474.666667" y1="227.495829" x2="487.466667" y2="227.495829" />
+<path d="M 474.666667,232.615829
+ A 12.8 12.8 0 0 1 487.466667,232.615829" />
+<line x1="481.066667" y1="230.900954" x2="481.066667" y2="266.055829" />
+<line stroke-width="0.666667"
+ x1="485.333333" y1="225.362496" x2="485.333333" y2="221.095829" />
+<line stroke-width="0.666667"
+ x1="487.466667" y1="223.229162" x2="483.2" y2="223.229162" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="478.4" y="224.829162">C503</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="472" y="233.356784">100</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="478.4" y="241.884405">70 V</text>
+<line x1="489.6" y1="266.055829" x2="472.533333" y2="266.055829" />
+<line x1="486.755556" y1="269.255829" x2="475.377778" y2="269.255829" />
+<line x1="484.72381" y1="272.455829" x2="477.409524" y2="272.455829" />
+<line x1="415.220513" y1="176.82506" x2="434.912821" y2="176.82506" />
+<line x1="425.066667" y1="189.132752" x2="425.066667" y2="176.82506" />
+<line x1="410.297436" y1="157.132752" x2="419.158974" y2="176.82506" />
+<polygon stroke-width="0" fill="black"
+ points="413.385771,170.660627 412.512821,162.055829
+418.37406,168.415897" />
+<line x1="413.20492" y1="163.593829" x2="416.94359" y2="171.901983" />
+<line x1="439.835897" y1="157.132752" x2="430.974359" y2="176.82506" />
+<path d="M 425.066667,189.132752
+ A 19.692308 19.692308 0 0 0 425.066667,149.748137" />
+<line x1="425.066667" y1="149.748137" x2="425.066667" y2="149.748137" />
+<path d="M 425.066667,149.748137
+ A 19.692308 19.692308 0 0 0 425.066667,189.132752" />
+<line x1="425.066667" y1="189.132752" x2="425.066667" y2="189.132752" />
+<circle cx="406.605128" cy="154.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="406.605128" y="157.356784">E</text>
+<circle cx="425.066667" cy="194.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="425.066667" y="197.356784">B</text>
+<circle cx="443.528205" cy="154.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="443.528205" y="157.356784">C</text>
+<line x1="448.451282" y1="154.055829" x2="481.066667" y2="154.055829" />
+<line x1="429.989744" y1="194.055829" x2="481.066667" y2="194.055829" />
+<polyline points="425.066667,198.978906 425.066667,219.717368
+429.333333,221.850701
+420.8,226.117368
+429.333333,230.384034
+420.8,234.650701
+429.333333,238.917368
+420.8,243.184034
+425.066667,245.317368
+425.066667,266.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="432" y="231.16909">R504</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="432" y="240.467554">51 K</text>
+<line x1="433.6" y1="266.055829" x2="416.533333" y2="266.055829" />
+<line x1="430.755556" y1="269.255829" x2="419.377778" y2="269.255829" />
+<line x1="428.72381" y1="272.455829" x2="421.409524" y2="272.455829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="435.528205" y="119.409088">Q502</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="435.528205" y="128.707552">TA7311</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="435.528205" y="138.006016">REGULATOR</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="435.528205" y="147.30448">CONTROL</text>
+<rect fill="white"
+ x="398.605128" y="90.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="406.605128" y="101.356784">9</text>
+<line x1="406.605128" y1="149.132752" x2="406.605128" y2="106.055829" />
+<rect fill="white"
+ x="345.066667" y="90.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="353.066667" y="101.356784">10</text>
+<polyline points="401.682051,154.055829 390.174359,154.055829
+388.041026,158.322496
+383.774359,149.789162
+379.507692,158.322496
+375.241026,149.789162
+370.974359,158.322496
+366.707692,149.789162
+364.574359,154.055829
+353.066667,154.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="377.374359" y="147.122496">R502</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="377.374359" y="167.591072">150</text>
+<circle fill="black"
+ cx="353.066667" cy="154.055829" r="2.048" />
+<rect fill="white"
+ x="129.066667" y="146.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="157.356784">11</text>
+<rect fill="white"
+ x="129.066667" y="126.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="137.356784">14</text>
+<rect fill="white"
+ x="129.066667" y="166.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="177.356784">12</text>
+<rect fill="white"
+ x="129.066667" y="186.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="197.356784">13</text>
+<polyline points="145.066667,194.055829 161.066667,194.055829
+161.066667,154.055829" />
+<circle fill="black"
+ cx="161.066667" cy="154.055829" r="2.048" />
+<line x1="145.066667" y1="174.055829" x2="161.066667" y2="174.055829" />
+<circle fill="black"
+ cx="161.066667" cy="174.055829" r="2.048" />
+<rect fill="white"
+ x="129.066667" y="210.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="221.356784">15</text>
+<line x1="396.758974" y1="56.82506" x2="416.451282" y2="56.82506" />
+<line x1="406.605128" y1="69.132752" x2="406.605128" y2="56.82506" />
+<line x1="391.835897" y1="37.132752" x2="400.697436" y2="56.82506" />
+<polygon stroke-width="0" fill="black"
+ points="394.924233,50.660627 394.051282,42.055829
+399.912521,48.415897" />
+<line x1="394.743382" y1="43.593829" x2="398.482051" y2="51.901983" />
+<line x1="421.374359" y1="37.132752" x2="412.512821" y2="56.82506" />
+<path d="M 406.605128,69.132752
+ A 19.692308 19.692308 0 0 0 406.605128,29.748137" />
+<line x1="406.605128" y1="29.748137" x2="406.605128" y2="29.748137" />
+<path d="M 406.605128,29.748137
+ A 19.692308 19.692308 0 0 0 406.605128,69.132752" />
+<line x1="406.605128" y1="69.132752" x2="406.605128" y2="69.132752" />
+<circle cx="388.14359" cy="34.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="388.14359" y="37.356784">E</text>
+<circle cx="406.605128" cy="74.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="406.605128" y="77.356784">B</text>
+<circle cx="425.066667" cy="34.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="425.066667" y="37.356784">C</text>
+<line x1="406.605128" y1="78.978906" x2="406.605128" y2="90.055829" />
+<polyline points="429.989744,34.055829 481.066667,34.055829
+481.066667,90.055829" />
+<polyline points="383.220513,34.055829 353.066667,34.055829
+353.066667,90.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="406.605128" y="7.135243">Q501</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="406.605128" y="16.433707">2N3055</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="406.605128" y="25.732171">REGULATOR</text>
+<line x1="145.066667" y1="134.055829" x2="353.066667" y2="134.055829" />
+<circle fill="black"
+ cx="353.066667" cy="134.055829" r="2.048" />
+<rect fill="white"
+ x="129.066667" y="306.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="317.356784">17</text>
+<rect fill="white"
+ x="129.066667" y="282.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="293.356784">16</text>
+<rect fill="white"
+ x="129.066667" y="330.055829" width="16" height="16" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="137.066667" y="341.356784">18</text>
+<polyline points="145.066667,338.055829 161.066667,338.055829
+161.066667,314.055829" />
+<circle fill="black"
+ cx="161.066667" cy="314.055829" r="2.048" />
+<line x1="324.758974" y1="336.82506" x2="344.451282" y2="336.82506" />
+<line x1="334.605128" y1="349.132752" x2="334.605128" y2="336.82506" />
+<line x1="319.835897" y1="317.132752" x2="328.697436" y2="336.82506" />
+<polygon stroke-width="0" fill="black"
+ points="322.924233,330.660627 322.051282,322.055829
+327.912521,328.415897" />
+<line x1="322.743382" y1="323.593829" x2="326.482051" y2="331.901983" />
+<line x1="349.374359" y1="317.132752" x2="340.512821" y2="336.82506" />
+<path d="M 334.605128,349.132752
+ A 19.692308 19.692308 0 0 0 334.605128,309.748137" />
+<line x1="334.605128" y1="309.748137" x2="334.605128" y2="309.748137" />
+<path d="M 334.605128,309.748137
+ A 19.692308 19.692308 0 0 0 334.605128,349.132752" />
+<line x1="334.605128" y1="349.132752" x2="334.605128" y2="349.132752" />
+<circle cx="316.14359" cy="314.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="316.14359" y="317.356784">E</text>
+<circle cx="334.605128" cy="354.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="334.605128" y="357.356784">B</text>
+<circle cx="353.066667" cy="314.055829" r="4.923077" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="353.066667" y="317.356784">C</text>
+<line x1="145.066667" y1="314.055829" x2="311.220513" y2="314.055829" />
+<line x1="334.605128" y1="358.978906" x2="334.605128" y2="362.055829" />
+<polyline points="334.605128,362.055829 334.605128,369.255829
+338.871795,371.389162
+330.338462,375.655829
+338.871795,379.922496
+330.338462,384.189162
+338.871795,388.455829
+330.338462,392.722496
+334.605128,394.855829
+334.605128,402.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="341.538462" y="380.707552">R508</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="341.538462" y="390.006016">680</text>
+<line x1="343.138462" y1="402.055829" x2="326.071795" y2="402.055829" />
+<line x1="340.294017" y1="405.255829" x2="328.916239" y2="405.255829" />
+<line x1="338.262271" y1="408.455829" x2="330.947985" y2="408.455829" />
+<circle fill="black"
+ cx="353.066667" cy="218.055829" r="2.048" />
+<line x1="353.066667" y1="218.055829" x2="353.066667" y2="106.055829" />
+<polyline points="353.066667,218.055829 353.066667,225.255829
+357.333333,227.389162
+348.8,231.655829
+357.333333,235.922496
+348.8,240.189162
+357.333333,244.455829
+348.8,248.722496
+353.066667,250.855829
+353.066667,258.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="360" y="232.05832">225</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="360" y="241.356784">10 W</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="360" y="250.655248">5 %</text>
+<line x1="353.066667" y1="258.055829" x2="353.066667" y2="309.132752" />
+<polyline points="353.066667,218.055829 325.866667,218.055829
+323.733333,222.322496
+319.466667,213.789162
+315.2,222.322496
+310.933333,213.789162
+306.666667,222.322496
+302.4,213.789162
+300.266667,218.055829
+273.066667,218.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="313.066667" y="211.122496">R503</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="313.066667" y="231.591072">290 10 W 5%</text>
+<circle fill="black"
+ cx="273.066667" cy="218.055829" r="2.048" />
+<line x1="273.066667" y1="218.055829" x2="273.066667" y2="354.055829" />
+<polyline points="273.066667,354.055829 288.574359,354.055829
+290.707692,349.789162
+294.974359,358.322496
+299.241026,349.789162
+303.507692,358.322496
+307.774359,349.789162
+312.041026,358.322496
+314.174359,354.055829
+329.682051,354.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="301.374359" y="347.122496">R507</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="301.374359" y="367.591072">100</text>
+<line x1="145.066667" y1="218.055829" x2="273.066667" y2="218.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="381.066667" y="284.05832">Q504</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="381.066667" y="293.356784">40409</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="381.066667" y="302.655248">REGULATOR</text>
+<polyline points="353.066667,154.055829 325.866667,154.055829
+323.733333,158.322496
+319.466667,149.789162
+315.2,158.322496
+310.933333,149.789162
+306.666667,158.322496
+302.4,149.789162
+300.266667,154.055829
+273.066667,154.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="313.066667" y="147.122496">R501</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="313.066667" y="167.591072">390 5W 5%</text>
+<line x1="273.066667" y1="154.055829" x2="145.066667" y2="154.055829" />
+<polyline points="145.066667,290.055829 164.266667,290.055829
+166.4,285.789162
+170.666667,294.322496
+174.933333,285.789162
+179.2,294.322496
+183.466667,285.789162
+187.733333,294.322496
+189.866667,290.055829
+209.066667,290.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="177.066667" y="283.122496">R506</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ x="177.066667" y="303.591072">82</text>
+<line x1="209.066667" y1="290.055829" x2="209.066667" y2="314.055829" />
+<circle fill="black"
+ cx="209.066667" cy="314.055829" r="2.048" />
+<circle fill="black"
+ cx="209.066667" cy="154.055829" r="2.048" />
+<line x1="209.066667" y1="154.055829" x2="209.066667" y2="175.495829" />
+<line x1="202.666667" y1="175.495829" x2="215.466667" y2="175.495829" />
+<path d="M 202.666667,180.615829
+ A 12.8 12.8 0 0 1 215.466667,180.615829" />
+<line x1="209.066667" y1="178.900954" x2="209.066667" y2="202.055829" />
+<line stroke-width="0.666667"
+ x1="204.8" y1="173.362496" x2="204.8" y2="169.095829" />
+<line stroke-width="0.666667"
+ x1="206.933333" y1="171.229162" x2="202.666667" y2="171.229162" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="172.829162">C501</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="187.267552">100</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="196.566016">30 V</text>
+<line x1="217.6" y1="202.055829" x2="200.533333" y2="202.055829" />
+<line x1="214.755556" y1="205.255829" x2="203.377778" y2="205.255829" />
+<line x1="212.72381" y1="208.455829" x2="205.409524" y2="208.455829" />
+<circle fill="black"
+ cx="241.066667" cy="154.055829" r="2.048" />
+<line x1="241.066667" y1="202.055829" x2="241.066667" y2="181.750871" />
+<polyline stroke-width="0" fill="black"
+ points="241.066667,181.750871
+236.8,181.750871
+241.066667,174.892128
+245.333333,181.750871
+241.066667,181.750871" />
+<polyline points="241.066667,181.750871 236.8,181.750871
+241.066667,174.892128
+245.333333,181.750871
+241.066667,181.750871" />
+<polyline points="245.722302,176.494121 245.722302,174.360787
+236.411032,174.360787
+236.411032,172.227454" />
+<line x1="241.066667" y1="174.360787" x2="241.066667" y2="154.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="169.560787">ZD501</text>
+<line x1="249.6" y1="202.055829" x2="232.533333" y2="202.055829" />
+<line x1="246.755556" y1="205.255829" x2="235.377778" y2="205.255829" />
+<line x1="244.72381" y1="208.455829" x2="237.409524" y2="208.455829" />
+<circle fill="black"
+ cx="209.066667" cy="218.055829" r="2.048" />
+<line x1="209.066667" y1="218.055829" x2="209.066667" y2="239.495829" />
+<line x1="202.666667" y1="239.495829" x2="215.466667" y2="239.495829" />
+<path d="M 202.666667,244.615829
+ A 12.8 12.8 0 0 1 215.466667,244.615829" />
+<line x1="209.066667" y1="242.900954" x2="209.066667" y2="266.055829" />
+<line stroke-width="0.666667"
+ x1="204.8" y1="237.362496" x2="204.8" y2="233.095829" />
+<line stroke-width="0.666667"
+ x1="206.933333" y1="235.229162" x2="202.666667" y2="235.229162" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="236.829162">C502</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="251.267552">100</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="260.566016">30 V</text>
+<line x1="217.6" y1="266.055829" x2="200.533333" y2="266.055829" />
+<line x1="214.755556" y1="269.255829" x2="203.377778" y2="269.255829" />
+<line x1="212.72381" y1="272.455829" x2="205.409524" y2="272.455829" />
+<circle fill="black"
+ cx="241.066667" cy="218.055829" r="2.048" />
+<line x1="241.066667" y1="266.055829" x2="241.066667" y2="245.750871" />
+<polyline stroke-width="0" fill="black"
+ points="241.066667,245.750871
+236.8,245.750871
+241.066667,238.892128
+245.333333,245.750871
+241.066667,245.750871" />
+<polyline points="241.066667,245.750871 236.8,245.750871
+241.066667,238.892128
+245.333333,245.750871
+241.066667,245.750871" />
+<polyline points="245.722302,240.494121 245.722302,238.360787
+236.411032,238.360787
+236.411032,236.227454" />
+<line x1="241.066667" y1="238.360787" x2="241.066667" y2="218.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="243.733333" y="233.560787">ZD502</text>
+<line x1="249.6" y1="266.055829" x2="232.533333" y2="266.055829" />
+<line x1="246.755556" y1="269.255829" x2="235.377778" y2="269.255829" />
+<line x1="244.72381" y1="272.455829" x2="237.409524" y2="272.455829" />
+<line x1="209.066667" y1="314.055829" x2="209.066667" y2="354.055829" />
+<line x1="209.066667" y1="354.055829" x2="209.066667" y2="375.495829" />
+<line x1="202.666667" y1="375.495829" x2="215.466667" y2="375.495829" />
+<path d="M 202.666667,380.615829
+ A 12.8 12.8 0 0 1 215.466667,380.615829" />
+<line x1="209.066667" y1="378.900954" x2="209.066667" y2="402.055829" />
+<line stroke-width="0.666667"
+ x1="204.8" y1="373.362496" x2="204.8" y2="369.095829" />
+<line stroke-width="0.666667"
+ x1="206.933333" y1="371.229162" x2="202.666667" y2="371.229162" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="372.829162">C506</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="387.267552">100</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="211.733333" y="396.566016">30 V</text>
+<line x1="217.6" y1="402.055829" x2="200.533333" y2="402.055829" />
+<line x1="214.755556" y1="405.255829" x2="203.377778" y2="405.255829" />
+<line x1="212.72381" y1="408.455829" x2="205.409524" y2="408.455829" />
+<line x1="129.066667" y1="514.055829" x2="105.066667" y2="514.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="117.066667" y="511.389162">GRY</text>
+<line x1="129.066667" y1="494.055829" x2="105.066667" y2="494.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="117.066667" y="491.389162">VIOL</text>
+<rect x="25.066667" y="484.055829" width="80" height="40" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="502.707552">TO SIGNAL</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="512.006016">METER CIRCUIT</text>
+<line x1="129.066667" y1="470.055829" x2="65.066667" y2="470.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="97.066667" y="467.389162">RED TO C508</text>
+<line x1="129.066667" y1="446.055829" x2="65.066667" y2="446.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="97.066667" y="443.389162">VIOL</text>
+<line x1="129.066667" y1="314.055829" x2="105.066667" y2="314.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="117.066667" y="311.389162">RED</text>
+<line x1="129.066667" y1="338.055829" x2="105.066667" y2="338.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="107.733333" y="328.707552">WHT-</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="107.733333" y="338.006016">RED</text>
+<rect x="25.066667" y="306.055829" width="80" height="40" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="324.707552">12.7 V SOURCE</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="334.006016">TO MULTIPLEX</text>
+<line x1="129.066667" y1="290.055829" x2="105.066667" y2="290.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="117.066667" y="287.389162">WHT</text>
+<rect x="25.066667" y="258.055829" width="80" height="40" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="272.05832">12 V SOURCE</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="281.356784">TO FM TUNER</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="290.655248">SOURCE SWITCH</text>
+<line x1="129.066667" y1="218.055829" x2="105.066667" y2="218.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="117.066667" y="215.389162">ORG</text>
+<rect x="25.066667" y="206.055829" width="80" height="24" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="216.707552">15 V SOURCE</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="226.006016">TO FM TUNER</text>
+<line x1="129.066667" y1="194.055829" x2="105.066667" y2="194.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="117.066667" y="191.389162">BLU</text>
+<line x1="129.066667" y1="174.055829" x2="105.066667" y2="174.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="107.733333" y="164.707552">WHT-</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="107.733333" y="174.006016">RED</text>
+<line x1="129.066667" y1="154.055829" x2="105.066667" y2="154.055829" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="117.066667" y="151.389162">RED</text>
+<rect x="25.066667" y="150.055829" width="80" height="48" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="163.409088">27 V SOURCE</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="172.707552">TO CONTROL</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="182.006016">PREAMP AND</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="191.30448">PWR AMPLIFIER</text>
+<line x1="129.066667" y1="134.055829" x2="105.066667" y2="134.055829" />
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="107.733333" y="116.05832">WHT-</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="107.733333" y="125.356784">GRY-</text>
+<text font-size="6.973848pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="107.733333" y="134.655248">GRN</text>
+<rect x="25.066667" y="102.055829" width="80" height="40" />
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="116.05832">50 V SOURCE</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="125.356784">TO PHONO</text>
+<text font-size="6.973848pt" stroke-width="0.2pt" fill="black" x="65.066667" y="134.655248">PREAMP</text>
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/I2LSVG.m4 b/graphics/circuit_macros/examples/dpv/I2LDPV.m4
index 835ecaec53..835ecaec53 100644
--- a/graphics/circuit_macros/examples/svg/I2LSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/I2LDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/Incl.jpg b/graphics/circuit_macros/examples/dpv/Incl.jpg
index 80632b54e9..80632b54e9 100644
--- a/graphics/circuit_macros/examples/svg/Incl.jpg
+++ b/graphics/circuit_macros/examples/dpv/Incl.jpg
Binary files differ
diff --git a/graphics/circuit_macros/examples/svg/InclepsSVG.m4 b/graphics/circuit_macros/examples/dpv/InclepsDPV.m4
index 501329f9d6..78235caa35 100644
--- a/graphics/circuit_macros/examples/svg/InclepsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/InclepsDPV.m4
@@ -1,10 +1,14 @@
.PS
-# InclepsSVG.m4 : Illustrating one way to import and overwrite jpg in svg
+# InclepsDPV.m4 : Illustrating one way to import and overwrite jpg in svg
# A bit messy, but it works. This file has to be processed
# by m4 in the usual way and then twice by dpic, eg
-# m4 svg.m4 SVGconfig.m4 InclepsSVG.m4 > InclepsSVG.pic
-# dpic -v InclepsSVG.pic > InclepsSVG.svg
-# dpic -v InclepsSVG.pic > InclepsSVG.svg
+# m4 svg.m4 DPVconfig.m4 InclepsDPV.m4 > InclepsDPV.pic
+# dpic -v InclepsDPV.pic > InclepsDPV.svg
+# dpic -v InclepsDPV.pic > InclepsDPV.svg
+# The second requirement is that the result has to be inserted
+# into the html document using the object class, e.g.,
+# <object data="file.svg" type="image/svg+xml" class="img"> </object>
+# This is handled by the cfig macro in examples.htmx
# The double processing is needed because svg coordinates are to the right
# and down. We have to store the coordinates of the nw corner and use them
@@ -19,9 +23,9 @@ divert(-1)
Put this (once) before all drawing commands
in the diagram. It opens a [] block for the
total diagram and creates the file
- Unique_name.dim (default SVGinsertTemp.dim).'
+ Unique_name.dim (default DPVinsertTemp.dim).'
define(`svg_init_include',
-`define(`M4IP_uniq',`ifelse(`$1',,SVGinsertTemp,`$1')')dnl
+`define(`M4IP_uniq',`ifelse(`$1',,DPVinsertTemp,`$1')')dnl
M4IP_NW: (0,0); m4IP_nw = 0; m4IP_lth = lthick
sh "touch M4IP_uniq.dim"
copy "M4IP_uniq.dim"
diff --git a/graphics/circuit_macros/examples/svg/InductorsSVG.m4 b/graphics/circuit_macros/examples/dpv/InductorsDPV.m4
index 9c9e1476db..9c9e1476db 100644
--- a/graphics/circuit_macros/examples/svg/InductorsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/InductorsDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/JackSVG.m4 b/graphics/circuit_macros/examples/dpv/JackDPV.m4
index 6af8b6b301..6af8b6b301 100644
--- a/graphics/circuit_macros/examples/svg/JackSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/JackDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/LgateSVG.m4 b/graphics/circuit_macros/examples/dpv/LgateDPV.m4
index 7a8cf06d22..8ddb951b4c 100644
--- a/graphics/circuit_macros/examples/svg/LgateSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/LgateDPV.m4
@@ -1,5 +1,5 @@
divert(-1)
-# LgateSVG.m4
+# LgateDPV.m4
###########################################################################
define(`And',`GenLogGate(AND,$@)')
diff --git a/graphics/circuit_macros/examples/svg/LogicSVG.m4 b/graphics/circuit_macros/examples/dpv/LogicDPV.m4
index ec89a62bb0..ec89a62bb0 100644
--- a/graphics/circuit_macros/examples/svg/LogicSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/LogicDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/LoglogSVG.m4 b/graphics/circuit_macros/examples/dpv/LoglogDPV.m4
index b010b7bd41..86e506e700 100644
--- a/graphics/circuit_macros/examples/svg/LoglogSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/LoglogDPV.m4
@@ -1,5 +1,5 @@
.PS
-# LoglogSVG.m4
+# LoglogDPV.m4
gen_init(svg_font(sans-serif,11bp__))
maxpswid = 12
@@ -89,7 +89,7 @@ Cons: [
svg_font(Helvetica,10pt__)
#vg_rot_init(test)
-svg_rot_init(LoglogSVG)
+svg_rot_init(LoglogDPV)
divert(-1)
`brace(linespec,depth,arm thickness,attributes)
diff --git a/graphics/circuit_macros/examples/svg/MCSVG.m4 b/graphics/circuit_macros/examples/dpv/MCDPV.m4
index 8fcff10ea1..6232d8758e 100644
--- a/graphics/circuit_macros/examples/svg/MCSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/MCDPV.m4
@@ -1,5 +1,5 @@
.PS
-#MCSVG.m4
+#MCDPV.m4
cct_init(svg_font(Times,11bp__))
textoffset = 3bp__
diff --git a/graphics/circuit_macros/examples/dpv/Makefile b/graphics/circuit_macros/examples/dpv/Makefile
new file mode 100644
index 0000000000..ff4933c464
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/Makefile
@@ -0,0 +1,166 @@
+LIBDIR = $$HOME/lib
+M4LIBS = svg.m4 DPVconfig.m4
+M4LIBS = svg.m4
+M4 = m4
+# PDFCONVERT = pdf2svg
+PDFCONVERT = dvisvgm
+
+# To process a single file, copy it to test.m4 and type "make tst"
+# to produce tstDPV.html
+
+DPIC = dpic
+#DPIC = $$HOME/dpic/pascal/p2c/ftp/dpic
+#DPIC = ../dpic/pascal/p2c/ftp/dpic
+#DPIC = ../dpic/bison/dpic
+#DPIC = ../dpic/bi*dev/dpic
+
+# To test the Windows executable. Change these as needed for the operating
+# system. NOTE: cscDPV.m4 and Connectors.m4 use awk and sed which
+# do not work at present with the Windows version.
+# M4LIBS = svg.m4 windows.m4
+# DPIC = ../dpic/bison/distsrc/Windows/dpic
+
+.SUFFIXES: .pic .svg .m4 .xsvg
+.pic.svg:
+ $(DPIC) -v $*.pic > $*.svg
+# grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
+.m4.svg:
+ m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' | $(DPIC) -v > $*.svg
+# m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
+# $(DPIC) -v $*.pic > $*.svg
+.m4.xsvg:
+ touch F_$*.dim
+ $(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
+ $(DPIC) -g $*.pic >> $*.tex
+ echo "\documentclass[crop,tikz,multi=false]{standalone}" > F_$*.tex
+ echo "\usepackage{boxdims,siunitx,amssymb}" >> F_$*.tex
+ echo "\begin{document}" >> F_$*.tex
+ echo "\input $*.tex" >> F_$*.tex
+ echo "\end{document}" >> F_$*.tex
+ pdflatex --quiet F_$*
+ $(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
+ $(DPIC) -g $*.pic >> $*.tex
+ pdflatex --quiet F_$*
+ if test "$(PDFCONVERT)" = "pdf2svg" ; then \
+ pdf2svg F_$*.pdf $*.xsvg && cp $*.xsvg $*.svg ; \
+ else \
+ dvisvgm --pdf F_$*.pdf && mv F_$**.svg $*.svg ; cp $*.svg $*.xsvg ; \
+ fi
+ rm -f F_$**
+
+CCTDPV = \
+ AdderDPV.svg AlogixDPV.svg ABlogixDPV.svg AmpTableDPV.svg AntennasDPV.svg \
+ ArrestersDPV.svg AudioDPV.svg \
+ BipDPV.svg BtreeDPV.svg ByteDPV.svg ButtonsDPV.svg \
+ CanLogicDPV.svg CapacitorsDPV.svg ChipsDPV.svg ConnDPV.svg ConnectorsDPV.svg \
+ ContactDPV.svg ContactsDPV.svg \
+ CrowDPV.svg CsourceDPV.svg \
+ DecoderDPV.svg DemultiplexerDPV.svg DiniDPV.svg DiodesDPV.svg DriveDPV.svg \
+ EEPDPV.svg EmarrowsDPV.svg EscherDPV.svg EVplugsDPV.svg \
+ FlowDPV.svg FontsDPV.svg FusesDPV.svg \
+ GeometryDPV.svg GrayCodeDPV.svg GroundsDPV.svg \
+ HeadersDPV.svg HeathkitDPV.svg \
+ InclepsDPV.svg InductorsDPV.svg I2LDPV.svg JackDPV.svg \
+ LogicDPV.svg LoglogDPV.svg \
+ MCDPV.svg MixerDPV.svg MoreTableDPV.svg MotorControlDPV.svg \
+ MultiplexerDPV.svg \
+ NLGDPV.svg NPDTDPV.svg NportDPV.svg OpampDPV.svg OptoisoDPV.svg \
+ PconnDPV.svg PlateDPV.svg PushPullDPV.svg QuantumDPV.svg \
+ RectifiersDPV.svg RelayDPV.svg ResistorsDPV.svg RotboxDPV.svg\
+ SchottkyDPV.svg ShiftRDPV.svg SierpinskiDPV.svg \
+ SixpoleDPV.svg SourcesDPV.svg SQUIDDPV.svg SwitchesDPV.svg \
+ TTLnandDPV.svg TgateDPV.svg ThreeDPV.svg \
+ TubediagsDPV.svg VariableDPV.svg WindingsDPV.svg XformDPV.svg \
+ controlDPV.svg cscDPV.svg diamondDPV.svg ex00DPV.svg \
+ ex01DPV.svg ex02DPV.svg ex03DPV.svg ex04DPV.svg ex05DPV.svg ex06DPV.svg \
+ ex08DPV.svg ex09DPV.svg ex10DPV.svg ex11DPV.svg ex12DPV.svg \
+ ex15DPV.svg ex16DPV.svg ex17DPV.svg ex18DPV.svg ex21DPV.svg \
+ expDPV.svg fetDPV.svg graysurfDPV.svg keyboardDPV.svg lcctDPV.svg \
+ pwrsupplyDPV.svg quickDPV.svg randomDPV.svg recycleDPV.svg relaycoilDPV.svg \
+ roseDPV.svg sfgDPV.svg shapesDPV.svg SmithchartDPV.svg paletteDPV.svg \
+ thyristorDPV.svg ujtDPV.svg UNODPV.svg wormDPV.svg XORDPV.svg Np.svg
+
+TEXTFREE = \
+ DiniDPV.svg DriveDPV.svg EscherDPV.svg SierpinskiDPV.svg SixpoleDPV.svg \
+ diamondDPV.svg ex02DPV.svg ex15DPV.svg pwrsupplyDPV.svg recycleDPV.svg \
+ roseDPV.svg
+
+CCTDPVs = \
+ ByteDPV.svg ConnectorsDPV.svg controlDPV.svg CsourceDPV.svg \
+ EEPDPV.svg ex01DPV.svg FlowDPV.svg HeathkitDPV.svg \
+ quickDPV.svg NportDPV.svg
+
+examplesDPV.html: examplesDPV.htmx
+ cp ../quick.m4 .
+ make $(CCTDPV) quick.xsvg
+ Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
+ sed -e 's/Version XXX/Version '$$Version'/' examplesDPV.htmx \
+ | m4 > examplesDPV.html
+
+examplesDPVs.html: examplesDPVs.htmx
+ cp ../quick.m4 .
+ make $(CCTDPVs) quick.xsvg
+ Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
+ sed -e 's/Version XXX/Version '$$Version'/' examplesDPVs.htmx \
+ | m4 > examplesDPVs.html
+
+SED = sed -e '/^\%/d'
+TEST = test
+tst:
+ @if test -f test.pic; then printf "\n\nUsage: make clean tst\n\n"; exit 1;fi
+ m4 $(M4LIBS) test.m4 | $(SED) > test.pic
+ $(DPIC) -v $(TEST).pic > $(TEST).svg
+ m4 $(M4LIBS) $(TEST).m4 | $(SED) > $(TEST).pic
+ $(DPIC) -v $(TEST).pic > $(TEST).svg
+# grep '<\!-- width' $(TEST).svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' \
+# > $(TEST).siz
+ make tstDPV.html
+
+test.pic:
+ if test -f test.pic ; then echo "Usage: make clean tst" ; fi
+ m4 $(M4LIBS) test.m4 | $(SED) > test.pic
+ m4 $(M4LIBS) test.m4 | $(SED) > test.pic
+
+tstDPV.html: tstDPV.htmx $(TEST).svg
+ Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
+ sed -e 's/Version XXX/Version '$$Version'/' \
+ -e 's/XXXXX/'$(TEST)'/g' \
+ tstDPV.htmx | m4 > tstDPV.html
+# cp tstDPV.html $(TEST) $$HOME/public_html/svg
+
+echospics:
+ @echo $(CCTDPVs)
+
+# necessary because of rotated text:
+LoglogDPV.svg:
+ m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
+ $(DPIC) -v $*.pic > $*.svg
+ m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
+ $(DPIC) -v $*.pic > $*.svg
+# grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
+
+ConnectorsDPV.svg cscDPV.svg SmithchartDPV.svg test.svg:
+ m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
+ $(DPIC) -v $*.pic > $*.svg
+ m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
+ $(DPIC) -v $*.pic > $*.svg
+# grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
+
+InclepsDPV.svg: InclepsDPV.m4
+ m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
+ $(DPIC) -v $*.pic > $*.svg
+ $(DPIC) -v $*.pic > $*.svg
+
+Incleps.png:
+ (cd ..; make Incleps.png); cp ../Incleps.png .
+
+clean:
+ @printf "\n svg clean:\n"
+ rm -f *.svg *.dim *.ps *log *.siz *.pic Incleps.png examplesDP*.html
+ rm -f tstDPV.html copy_tmp__ quick.m4 quick.xsvg
+ rm -f *.otf xx* *png *.pdf *.css *.xml quick.tex
+ @printf "\n"
+
+clobber: clean
+# (cd dev; make clobber)
+ rm -f test.m4
diff --git a/graphics/circuit_macros/examples/svg/MixerSVG.m4 b/graphics/circuit_macros/examples/dpv/MixerDPV.m4
index 1712e017ed..e4be95909a 100644
--- a/graphics/circuit_macros/examples/svg/MixerSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/MixerDPV.m4
@@ -1,5 +1,5 @@
.PS
-#`MixerSVG.m4
+#`MixerDPV.m4
# Showing VMOS mosfet and custom transformer'
cct_init(svg_font(sans-serif,10.5bp__,1bp__))
diff --git a/graphics/circuit_macros/examples/svg/MoreTableSVG.m4 b/graphics/circuit_macros/examples/dpv/MoreTableDPV.m4
index 5966216c59..833dd21a65 100644
--- a/graphics/circuit_macros/examples/svg/MoreTableSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/MoreTableDPV.m4
@@ -1,5 +1,5 @@
.PS
-# MoreTableSVG.m4
+# MoreTableDPV.m4
cct_init(svg_font(sans-serif,11pt__))
textwid = 1.5
movewid = 2 pt__
diff --git a/graphics/circuit_macros/examples/svg/MotorControlSVG.m4 b/graphics/circuit_macros/examples/dpv/MotorControlDPV.m4
index 7a27d4b4d3..7a27d4b4d3 100644
--- a/graphics/circuit_macros/examples/svg/MotorControlSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/MotorControlDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/MultiplexerSVG.m4 b/graphics/circuit_macros/examples/dpv/MultiplexerDPV.m4
index 1cd5605d6f..ab04ce19a0 100644
--- a/graphics/circuit_macros/examples/svg/MultiplexerSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/MultiplexerDPV.m4
@@ -1,5 +1,5 @@
.PS
-# MultiplexerSVG.m4
+# MultiplexerDPV.m4
log_init
# Font
diff --git a/graphics/circuit_macros/examples/svg/NLGSVG.m4 b/graphics/circuit_macros/examples/dpv/NLGDPV.m4
index 987e2911fb..987e2911fb 100644
--- a/graphics/circuit_macros/examples/svg/NLGSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/NLGDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/NPDTSVG.m4 b/graphics/circuit_macros/examples/dpv/NPDTDPV.m4
index 3702d02550..3702d02550 100644
--- a/graphics/circuit_macros/examples/svg/NPDTSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/NPDTDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/Np.m4 b/graphics/circuit_macros/examples/dpv/Np.m4
index e0ae4fb6bb..1ce8686c4d 100644
--- a/graphics/circuit_macros/examples/svg/Np.m4
+++ b/graphics/circuit_macros/examples/dpv/Np.m4
@@ -1,4 +1,5 @@
.PS
+#npDPV.m4
svg_font(sans-serif,9bp__)
B: box invis wid 6 ht 2
@@ -15,6 +16,6 @@ B: box invis wid 6 ht 2
"Set arg 8 to N to omit the dots on the port pins" ljust \
"Arguments 1 and 9 allow customizations'" ljust
-svgLink(NportSVG.svg,"&lt;- back" ljust at last box.sw above ljust,B)
+svgLink(NportDPV.svg,"&lt;- back" ljust at last box.sw above ljust,B)
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/svg/NportSVG.m4 b/graphics/circuit_macros/examples/dpv/NportDPV.m4
index be0aab19c0..6baa8ef12e 100644
--- a/graphics/circuit_macros/examples/svg/NportSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/NportDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `NportSVG.m4'
+# `NportDPV.m4'
cct_init(svg_font(sans-serif,11bp__))
textoffset = 2bp__
diff --git a/graphics/circuit_macros/examples/dpv/NportDPV.svg b/graphics/circuit_macros/examples/dpv/NportDPV.svg
new file mode 100644
index 0000000000..c6968728c8
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/NportDPV.svg
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="590" height="194" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="589.333333px" height="193.326667px"
+ viewBox="0 0 589.333333 193.326667"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:sans-serif"
+>
+<rect x="49.333333" y="51.533333" width="72" height="48" />
+<line x1="49.333333" y1="63.533333" x2="37.333333" y2="63.533333" />
+<circle fill="black"
+ cx="37.333333" cy="63.533333" r="1.92" />
+<line x1="49.333333" y1="87.533333" x2="37.333333" y2="87.533333" />
+<circle fill="black"
+ cx="37.333333" cy="87.533333" r="1.92" />
+<line x1="121.333333" y1="63.533333" x2="133.333333" y2="63.533333" />
+<circle fill="black"
+ cx="133.333333" cy="63.533333" r="1.92" />
+<line x1="121.333333" y1="87.533333" x2="133.333333" y2="87.533333" />
+<circle fill="black"
+ cx="133.333333" cy="87.533333" r="1.92" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="34.666667" y="60.866667">W1a</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="34.666667" y="100.613333">W1b</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="136" y="60.866667">E1a</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="136" y="100.613333">E1b</text>
+<rect fill="rgb(230,230,230)"
+ x="241.333333" y="27.533333" width="168" height="96" />
+<line x1="241.333333" y1="51.533333" x2="229.333333" y2="51.533333" />
+<circle fill="black"
+ cx="229.333333" cy="51.533333" r="1.92" />
+<line x1="241.333333" y1="99.533333" x2="229.333333" y2="99.533333" />
+<circle fill="black"
+ cx="229.333333" cy="99.533333" r="1.92" />
+<line x1="265.333333" y1="27.533333" x2="265.333333" y2="15.533333" />
+<circle fill="black"
+ cx="265.333333" cy="15.533333" r="1.92" />
+<line x1="313.333333" y1="27.533333" x2="313.333333" y2="15.533333" />
+<circle fill="black"
+ cx="313.333333" cy="15.533333" r="1.92" />
+<line x1="337.333333" y1="27.533333" x2="337.333333" y2="15.533333" />
+<circle fill="black"
+ cx="337.333333" cy="15.533333" r="1.92" />
+<line x1="385.333333" y1="27.533333" x2="385.333333" y2="15.533333" />
+<circle fill="black"
+ cx="385.333333" cy="15.533333" r="1.92" />
+<line x1="409.333333" y1="37.133333" x2="421.333333" y2="37.133333" />
+<circle fill="black"
+ cx="421.333333" cy="37.133333" r="1.92" />
+<line x1="409.333333" y1="56.333333" x2="421.333333" y2="56.333333" />
+<circle fill="black"
+ cx="421.333333" cy="56.333333" r="1.92" />
+<line x1="409.333333" y1="65.933333" x2="421.333333" y2="65.933333" />
+<circle fill="black"
+ cx="421.333333" cy="65.933333" r="1.92" />
+<line x1="409.333333" y1="85.133333" x2="421.333333" y2="85.133333" />
+<circle fill="black"
+ cx="421.333333" cy="85.133333" r="1.92" />
+<line x1="409.333333" y1="94.733333" x2="421.333333" y2="94.733333" />
+<circle fill="black"
+ cx="421.333333" cy="94.733333" r="1.92" />
+<line x1="409.333333" y1="113.933333" x2="421.333333" y2="113.933333" />
+<circle fill="black"
+ cx="421.333333" cy="113.933333" r="1.92" />
+<line x1="254.25641" y1="123.533333" x2="254.25641" y2="135.533333" />
+<circle fill="black"
+ cx="254.25641" cy="135.533333" r="1.92" />
+<line x1="280.102564" y1="123.533333" x2="280.102564" y2="135.533333" />
+<circle fill="black"
+ cx="280.102564" cy="135.533333" r="1.92" />
+<line x1="293.025641" y1="123.533333" x2="293.025641" y2="135.533333" />
+<circle fill="black"
+ cx="293.025641" cy="135.533333" r="1.92" />
+<line x1="318.871795" y1="123.533333" x2="318.871795" y2="135.533333" />
+<circle fill="black"
+ cx="318.871795" cy="135.533333" r="1.92" />
+<line x1="331.794872" y1="123.533333" x2="331.794872" y2="135.533333" />
+<circle fill="black"
+ cx="331.794872" cy="135.533333" r="1.92" />
+<line x1="357.641026" y1="123.533333" x2="357.641026" y2="135.533333" />
+<circle fill="black"
+ cx="357.641026" cy="135.533333" r="1.92" />
+<line x1="370.564103" y1="123.533333" x2="370.564103" y2="135.533333" />
+<circle fill="black"
+ cx="370.564103" cy="135.533333" r="1.92" />
+<line x1="396.410256" y1="123.533333" x2="396.410256" y2="135.533333" />
+<circle fill="black"
+ cx="396.410256" cy="135.533333" r="1.92" />
+<a xlink:href="Np.svg" >
+ <g stroke="rgb(0,0,255)">
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="325.333333" y="80.74">n-port</text>
+</g></a>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="226.666667" y="56.74">W1a</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="226.666667" y="104.74">W1b</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="424" y="42.34">E1a</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="424" y="119.14">E3b</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="265.333333" y="10.946667">N1a</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="313.333333" y="10.946667">N1b </text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="337.333333" y="10.946667"> N2a</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="385.333333" y="10.946667">N2b</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="254.25641" y="150.533333">S1a</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="396.410256" y="150.533333">S4b</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="325.333333" y="150.34">...</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="435.733333" y="75.94">...</text>
+<rect x="505.333333" y="59.533333" width="48" height="32" />
+<line x1="505.333333" y1="75.533333" x2="493.333333" y2="75.533333" />
+<circle fill="black"
+ cx="493.333333" cy="75.533333" r="1.92" />
+<line x1="553.333333" y1="75.533333" x2="565.333333" y2="75.533333" />
+<circle fill="black"
+ cx="565.333333" cy="75.533333" r="1.92" />
+<line x1="529.333333" y1="91.533333" x2="529.333333" y2="103.533333" />
+<circle fill="black"
+ cx="529.333333" cy="103.533333" r="1.92" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="490.666667" y="80.74">W1</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="568" y="80.74">E1</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="529.333333" y="118.533333">S1</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="85.333333" y="133.54">nport</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="230.08" y="171.46"
+>nport(wid 1.5 ht 1.75 fill_(0.9),1,2,3,4)</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="230.08" y="190.66">svgLink(Np.svg,"n-port" at Nport,B)</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="529.333333" y="139.46">nterm</text>
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/OpampSVG.m4 b/graphics/circuit_macros/examples/dpv/OpampDPV.m4
index 7137e428ce..7137e428ce 100644
--- a/graphics/circuit_macros/examples/svg/OpampSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/OpampDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/OptoisoSVG.m4 b/graphics/circuit_macros/examples/dpv/OptoisoDPV.m4
index b99e096c5a..fd212ba963 100644
--- a/graphics/circuit_macros/examples/svg/OptoisoSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/OptoisoDPV.m4
@@ -1,5 +1,5 @@
.PS
-# OptoisoSVG.m4
+# OptoisoDPV.m4
cct_init(svg_font(sans-serif,11bp__,3bp__))
movewid = 0.25
diff --git a/graphics/circuit_macros/examples/svg/PconnSVG.m4 b/graphics/circuit_macros/examples/dpv/PconnDPV.m4
index 7cef1f5619..266cf694c6 100644
--- a/graphics/circuit_macros/examples/svg/PconnSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/PconnDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `PconnSVG.m4'
+# `PconnDPV.m4'
cct_init(svg_font(sans-serif,11bp__))
P1: [
@@ -19,6 +19,7 @@ P1: [
arrow from G.w to C1.G.e
arrow from G.e to C2.G.w
`"(,AF)"' at last [].s below
+ thicklines_
C03: pconnex(,AC) with .w at C2.e+(0.25,0)
`"(,AC)"' at last [].s below
C3: pconnex(,ACF) with .w at last [].e+(0.2,0)
diff --git a/graphics/circuit_macros/examples/svg/PlateSVG.m4 b/graphics/circuit_macros/examples/dpv/PlateDPV.m4
index e54235ebc5..e54235ebc5 100644
--- a/graphics/circuit_macros/examples/svg/PlateSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/PlateDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/PushPullSVG.m4 b/graphics/circuit_macros/examples/dpv/PushPullDPV.m4
index c3610fdaf6..a08847132e 100644
--- a/graphics/circuit_macros/examples/svg/PushPullSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/PushPullDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `PushPullSVG.m4'
+# `PushPullDPV.m4'
cct_init(svg_font(sans-serif,9bp__,1bp__))
linewid = 1.2*linewid
diff --git a/graphics/circuit_macros/examples/svg/QuantumSVG.m4 b/graphics/circuit_macros/examples/dpv/QuantumDPV.m4
index 863c3ac857..7d2de93cbd 100644
--- a/graphics/circuit_macros/examples/svg/QuantumSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/QuantumDPV.m4
@@ -1,5 +1,5 @@
.PS
-# QuantumSVG.m4
+# QuantumDPV.m4
gen_init
boxht = 0.35
diff --git a/graphics/circuit_macros/examples/dpv/README_svg b/graphics/circuit_macros/examples/dpv/README_svg
new file mode 100644
index 0000000000..66f21ee887
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/README_svg
@@ -0,0 +1,13 @@
+
+ Many circuit diagrams do not contain sophisticated text formatting so
+ the sources in this directory might serve as useful examples. Some of
+ the diagrams contain no text at all but do contain many elements and
+ may exceed LaTeX memory.
+
+ Type "make" in this directory to generate examplesDPV.html. The diagram
+ sources have LaTeX formatting replaced by svg macros from configuration
+ file svg.m4 for font manipulation and special characters.
+
+ The source files consist of the .m4 diagram sources and
+ examplesDPV.htmx which is processed through m4 by the Makefile to
+ produce examplesDPV.html.
diff --git a/graphics/circuit_macros/examples/svg/RectifiersSVG.m4 b/graphics/circuit_macros/examples/dpv/RectifiersDPV.m4
index c6473744eb..3b6e79f8a4 100644
--- a/graphics/circuit_macros/examples/svg/RectifiersSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/RectifiersDPV.m4
@@ -1,5 +1,5 @@
.PS
-# RectifiersSVG.m4
+# RectifiersDPV.m4
cct_init(svg_font(Times,11bp__))
tmax = 3.5
diff --git a/graphics/circuit_macros/examples/svg/RelaySVG.m4 b/graphics/circuit_macros/examples/dpv/RelayDPV.m4
index f4b8152a50..3746a20b9f 100644
--- a/graphics/circuit_macros/examples/svg/RelaySVG.m4
+++ b/graphics/circuit_macros/examples/dpv/RelayDPV.m4
@@ -1,5 +1,5 @@
.PS
-# RelaySVG
+# RelayDPV
cct_init
svg_font(sans-serif,10bp__)
diff --git a/graphics/circuit_macros/examples/svg/ResistorsSVG.m4 b/graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
index fe88a79ad3..419371702b 100644
--- a/graphics/circuit_macros/examples/svg/ResistorsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `ResistorsSVG.m4'
+# `ResistorsDPV.m4'
cct_init(svg_font(sans-serif,11pt__))
textwid = 1.5
movewid = 2 pt__
@@ -9,7 +9,7 @@ vm = 0.28
hm = 2.05
vm = 0.28
{
- {resistor ; move ; svgLink(NportSVG.svg,"`resistor'" ljust)}
+ {resistor ; move ; svgLink(NportDPV.svg,"`resistor'" ljust)}
move right_ hm
{resistor(,,Q) ; move ; "`resistor(,,Q) '" ljust}
move right_ hm
diff --git a/graphics/circuit_macros/examples/svg/RotboxSVG.m4 b/graphics/circuit_macros/examples/dpv/RotboxDPV.m4
index cb65d317fc..fba198a669 100644
--- a/graphics/circuit_macros/examples/svg/RotboxSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/RotboxDPV.m4
@@ -1,5 +1,5 @@
.PS
-# RotboxSVG.m4
+# RotboxDPV.m4
gen_init
#nclude(dpictools.pic)
diff --git a/graphics/circuit_macros/examples/svg/SQUIDSVG.m4 b/graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
index 391587e177..a6beabbfe0 100644
--- a/graphics/circuit_macros/examples/svg/SQUIDSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
@@ -1,5 +1,5 @@
.PS
-# SQUIDSVG.m4
+# SQUIDDPV.m4
cct_init(svg_font(sans-serif,11bp__))
down_
diff --git a/graphics/circuit_macros/examples/svg/SchottkySVG.m4 b/graphics/circuit_macros/examples/dpv/SchottkyDPV.m4
index 51e21bc291..4257991773 100644
--- a/graphics/circuit_macros/examples/svg/SchottkySVG.m4
+++ b/graphics/circuit_macros/examples/dpv/SchottkyDPV.m4
@@ -1,5 +1,5 @@
.PS
-# SchottkySVG.m4
+# SchottkyDPV.m4
# 4-input positive NAND: the Schottky option for transistors (TI TTL data book)
cct_init(svg_font(sans-serif,11bp__,1bp__))
diff --git a/graphics/circuit_macros/examples/svg/ShiftRSVG.m4 b/graphics/circuit_macros/examples/dpv/ShiftRDPV.m4
index de8e13843e..de8e13843e 100644
--- a/graphics/circuit_macros/examples/svg/ShiftRSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ShiftRDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/SierpinskiSVG.m4 b/graphics/circuit_macros/examples/dpv/SierpinskiDPV.m4
index 08d7fab111..08d7fab111 100644
--- a/graphics/circuit_macros/examples/svg/SierpinskiSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/SierpinskiDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/SixpoleSVG.m4 b/graphics/circuit_macros/examples/dpv/SixpoleDPV.m4
index 430c045069..430c045069 100644
--- a/graphics/circuit_macros/examples/svg/SixpoleSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/SixpoleDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/SmithchartSVG.m4 b/graphics/circuit_macros/examples/dpv/SmithchartDPV.m4
index 7d80e3e01e..e87dfeec9d 100644
--- a/graphics/circuit_macros/examples/svg/SmithchartSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/SmithchartDPV.m4
@@ -1,5 +1,5 @@
.PS
-# Smithchart.m4
+# SmithchartDPV.m4
gen_init
#https://utah.instructure.com/courses/684846
#https://www.youtube.com/watch?v=RptPsP8hS4g
@@ -7,7 +7,7 @@ gen_init
##https://www.youtube.com/watch?v=TsXd6GktlYQ
scalefactor = 6.5/2 # to vary the final chart diameter
-scalefactor = 6.5/2*3/4 # 3/4 scale for svg examples
+#calefactor = 6.5/2*3/4 # 3/4 scale for svg examples
# Basic definitions
define Rac {($1/($1+1),0)*scalefactor} # centre of const ra circle
define rar {1/abs($1+1)*scalefactor} # radius
@@ -43,9 +43,9 @@ define(`Smithchart',`[
iflatex(s_init(tst)
command "{\tiny")
ifsvg(svg_font(sans-serif,10bp__)
- svg_rot_init(SmithchartSVG))
+ svg_rot_init(SmithchartDPV))
- thk = 1.2 # wicth of thick lines (pt)
+ thk = 1.2 # width of thick lines (pt)
thn = 0.4 # thin lines
thkg = 0.33 # weight of thick lines
thkg =0.5
diff --git a/graphics/circuit_macros/examples/svg/SourcesSVG.m4 b/graphics/circuit_macros/examples/dpv/SourcesDPV.m4
index 2a611fe681..91e2edeba6 100644
--- a/graphics/circuit_macros/examples/svg/SourcesSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/SourcesDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `SourcesSVG.m4'
+# `SourcesDPV.m4'
cct_init(svg_font(sans-serif,11bp__))
textwid = 0.7
movewid = 2pt__
diff --git a/graphics/circuit_macros/examples/svg/SwitchesSVG.m4 b/graphics/circuit_macros/examples/dpv/SwitchesDPV.m4
index 2bccc8cd8f..eb55f57c19 100644
--- a/graphics/circuit_macros/examples/svg/SwitchesSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/SwitchesDPV.m4
@@ -1,5 +1,5 @@
.PS
-# SwitchesSVG.m4
+# SwitchesDPV.m4
cct_init(svg_font(sans-serif,11bp__,2bp__))
textoffset = 3bp__
diff --git a/graphics/circuit_macros/examples/svg/TTLnandSVG.m4 b/graphics/circuit_macros/examples/dpv/TTLnandDPV.m4
index 7b27077866..7b27077866 100644
--- a/graphics/circuit_macros/examples/svg/TTLnandSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/TTLnandDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/TgateSVG.m4 b/graphics/circuit_macros/examples/dpv/TgateDPV.m4
index 3505460639..3505460639 100644
--- a/graphics/circuit_macros/examples/svg/TgateSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/TgateDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ThreeSVG.m4 b/graphics/circuit_macros/examples/dpv/ThreeDPV.m4
index 29a784eead..7f2311d0ea 100644
--- a/graphics/circuit_macros/examples/svg/ThreeSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ThreeDPV.m4
@@ -1,5 +1,5 @@
.PS
-# ThreeSVG.m4: three-phase oscillator
+# ThreeDPV.m4: three-phase oscillator
cct_init(svg_font(sans-serif,11bp__))
define(`section',`[ I: Here
diff --git a/graphics/circuit_macros/examples/svg/TimerSVG.m4 b/graphics/circuit_macros/examples/dpv/TimerDPV.m4
index d1a0c2ffa1..6b36efe490 100644
--- a/graphics/circuit_macros/examples/svg/TimerSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/TimerDPV.m4
@@ -1,5 +1,5 @@
.PS
-# TimerSVG.m4
+# TimerDPV.m4
cct_init(svg_font(sans-serif,10.5bp__))
define(`ic555',`[Chip: box ht boxwid wid boxwid "555"
diff --git a/graphics/circuit_macros/examples/svg/TtreeSVG.m4 b/graphics/circuit_macros/examples/dpv/TtreeDPV.m4
index 2b779191b7..2b779191b7 100644
--- a/graphics/circuit_macros/examples/svg/TtreeSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/TtreeDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/TubediagsSVG.m4 b/graphics/circuit_macros/examples/dpv/TubediagsDPV.m4
index 6409325558..03a7f451f2 100644
--- a/graphics/circuit_macros/examples/svg/TubediagsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/TubediagsDPV.m4
@@ -1,5 +1,5 @@
.PS
-# TubediagsSVG.m4
+# TubediagsDPV.m4
cct_init(svg_font(sans-serif,10bp__,2bp__))
include(../tubedefs.m4)
diff --git a/graphics/circuit_macros/examples/svg/UNOSVG.m4 b/graphics/circuit_macros/examples/dpv/UNODPV.m4
index 8c1ba33248..8cd5bf3898 100644
--- a/graphics/circuit_macros/examples/svg/UNOSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/UNODPV.m4
@@ -1,7 +1,7 @@
.PS
-# UNOSVG.m4
+# UNODPV.m4
log_init
-include(../icsSVG.m4)
+include(icsDPV.m4)
textoffset = 1.5bp__
svg_font(sans-serif,8.5bp__,textoffset)
diff --git a/graphics/circuit_macros/examples/svg/VariableSVG.m4 b/graphics/circuit_macros/examples/dpv/VariableDPV.m4
index ccab653936..fb23355e87 100644
--- a/graphics/circuit_macros/examples/svg/VariableSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/VariableDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `VariableSVG.m4'
+# `VariableDPV.m4'
cct_init
define(`elen_',dimen_); down_
diff --git a/graphics/circuit_macros/examples/svg/WindingsSVG.m4 b/graphics/circuit_macros/examples/dpv/WindingsDPV.m4
index e4faa89b5c..e4faa89b5c 100644
--- a/graphics/circuit_macros/examples/svg/WindingsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/WindingsDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/XORSVG.m4 b/graphics/circuit_macros/examples/dpv/XORDPV.m4
index c0f5613dbd..cf373cb065 100644
--- a/graphics/circuit_macros/examples/svg/XORSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/XORDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `XORSVG.m4'
+# `XORDPV.m4'
# Realizations of the XOR function
log_init
scale = 2.54
diff --git a/graphics/circuit_macros/examples/svg/XformSVG.m4 b/graphics/circuit_macros/examples/dpv/XformDPV.m4
index 8d8805f59b..ff39a8b83e 100644
--- a/graphics/circuit_macros/examples/svg/XformSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/XformDPV.m4
@@ -1,5 +1,5 @@
divert(-1)
-# `XformSVG.m4'
+# `XformDPV.m4'
define(`trlabels',
`{ thinlines_
ifelse(`$1',R,
diff --git a/graphics/circuit_macros/examples/svg/Xtest.m4 b/graphics/circuit_macros/examples/dpv/Xtest.m4
index 6758043816..6758043816 100644
--- a/graphics/circuit_macros/examples/svg/Xtest.m4
+++ b/graphics/circuit_macros/examples/dpv/Xtest.m4
diff --git a/graphics/circuit_macros/examples/svg/controlSVG.m4 b/graphics/circuit_macros/examples/dpv/controlDPV.m4
index 29f80df221..0a7506585d 100644
--- a/graphics/circuit_macros/examples/svg/controlSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/controlDPV.m4
@@ -1,5 +1,5 @@
.PS
-# controlSVG.m4
+# controlDPV.m4
gen_init(svg_font(Times,11bp__))
linewid = linewid*0.8
circlerad = 0.25/2
diff --git a/graphics/circuit_macros/examples/dpv/controlDPV.svg b/graphics/circuit_macros/examples/dpv/controlDPV.svg
new file mode 100644
index 0000000000..bb24d97319
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/controlDPV.svg
@@ -0,0 +1,745 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="512" height="1083" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="510.666667px" height="1081.788427px"
+ viewBox="0 0 510.666667 1081.788427"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:Times"
+>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="3.733333" y="48.266667"><tspan font-style="italic">r(s)</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="29.866667,48.533333 39.466667,50.933333
+29.866667,53.333333" />
+<line x1="1.066667" y1="50.933333" x2="37.267677" y2="50.933333" />
+<circle cx="51.466667" cy="50.933333" r="12" />
+<line x1="63.466667" y1="50.933333" x2="101.866667" y2="50.933333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="82.666667" y="48.266667"><tspan font-style="italic">e(s)</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="130.666667,48.533333 140.266667,50.933333
+130.666667,53.333333" />
+<line x1="101.866667" y1="50.933333" x2="138.067677" y2="50.933333" />
+<rect x="140.266667" y="38.933333" width="36" height="24" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="158.266667" y="55.773333"
+><tspan font-style="italic">K</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">P</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="193.066667,48.533333 202.666667,50.933333
+193.066667,53.333333" />
+<line x1="176.266667" y1="50.933333" x2="200.467677" y2="50.933333" />
+<circle cx="214.666667" cy="50.933333" r="12" />
+<line x1="101.866667" y1="50.933333" x2="101.866667" y2="12.533333" />
+<polygon stroke-width="0" fill="black"
+ points="130.666667,10.133333 140.266667,12.533333
+130.666667,14.933333" />
+<line x1="101.866667" y1="12.533333" x2="138.067677" y2="12.533333" />
+<rect x="140.266667" y="0.533333" width="36" height="24" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="158.266667" y="17.373333"
+><tspan font-style="italic">K</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">D</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan>s</text>
+<line x1="176.266667" y1="12.533333" x2="214.666667" y2="12.533333" />
+<polygon stroke-width="0" fill="black"
+ points="217.066667,29.333333 214.666667,38.933333
+212.266667,29.333333" />
+<line x1="214.666667" y1="12.533333" x2="214.666667" y2="36.734344" />
+<line x1="101.866667" y1="50.933333" x2="101.866667" y2="89.333333" />
+<polygon stroke-width="0" fill="black"
+ points="130.666667,86.933333 140.266667,89.333333
+130.666667,91.733333" />
+<line x1="101.866667" y1="89.333333" x2="138.067677" y2="89.333333" />
+<rect x="140.266667" y="77.333333" width="36" height="24" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="158.266667" y="94.173333"
+><tspan font-style="italic">K</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">I</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan>/s</text>
+<line x1="176.266667" y1="89.333333" x2="214.666667" y2="89.333333" />
+<polygon stroke-width="0" fill="black"
+ points="212.266667,72.533333 214.666667,62.933333
+217.066667,72.533333" />
+<line x1="214.666667" y1="89.333333" x2="214.666667" y2="65.132323" />
+<polygon stroke-width="0" fill="black"
+ points="255.466667,48.533333 265.066667,50.933333
+255.466667,53.333333" />
+<line x1="226.666667" y1="50.933333" x2="262.867677" y2="50.933333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="244.767172" y="48.266667"><tspan font-style="italic">u(s)</tspan></text>
+<rect x="265.066667" y="26.933333" width="72" height="48" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="301.066667" y="55.773333"><tspan font-style="italic">G(s)</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="365.866667,48.533333 375.466667,50.933333
+365.866667,53.333333" />
+<line x1="337.066667" y1="50.933333" x2="373.267677" y2="50.933333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="372.8" y="45.609963"><tspan font-style="italic">y(s)</tspan></text>
+<polyline points="356.266667,50.933333 356.266667,122.933333
+51.466667,122.933333" />
+<polygon stroke-width="0" fill="black"
+ points="49.066667,72.533333 51.466667,62.933333
+53.866667,72.533333" />
+<line x1="51.466667" y1="122.933333" x2="51.466667" y2="65.132323" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="46.133333" y="70.44"><tspan font-style="italic">-</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="3.733333" y="141.92176"
+>(a) <tspan font-style="italic">PID</tspan> control</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="15.733333" y="199.466667"><tspan font-style="italic">r</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="41.866667,199.733333 51.466667,202.133333
+41.866667,204.533333" />
+<line x1="13.066667" y1="202.133333" x2="49.267677" y2="202.133333" />
+<circle fill="rgb(153,153,153)"
+ cx="61.066667" cy="202.133333" r="9.6" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="63.733333" y="224.08"
+>&#8201;<tspan font-style="italic">-</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="51.466667" y="199.466667"><tspan font-style="italic">+</tspan></text>
+<rect fill="rgb(230,230,230)"
+ stroke="none"
+ x="99.466667" y="173.333333" width="297.6" height="115.2" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="102.133333" y="285.866667"><tspan font-style="italic">Plant</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="99.466667,199.733333 109.066667,202.133333
+99.466667,204.533333" />
+<line x1="70.666667" y1="202.133333" x2="106.867677" y2="202.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="92.533333" y="199.466667"><tspan font-style="italic">u</tspan></text>
+<rect fill="rgb(153,153,153)"
+ x="109.066667" y="182.933333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="123.466667" y="206.973333"><tspan font-style="italic">B</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="166.666667,197.466667 176.266667,202.133333
+166.666667,206.8" />
+<line stroke-width="4"
+ x1="137.866667" y1="202.133333" x2="171.692025" y2="202.133333" />
+<circle fill="rgb(153,153,153)"
+ cx="185.866667" cy="202.133333" r="9.6" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="188.533333" y="224.08"
+>&#8201;<tspan font-style="italic">+</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="176.266667" y="196.8">+</text>
+<polygon stroke-width="0" fill="black"
+ points="224.266667,197.466667 233.866667,202.133333
+224.266667,206.8" />
+<line stroke-width="4"
+ x1="195.466667" y1="202.133333" x2="229.292025" y2="202.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="214.666667" y="197.64"><tspan font-style="bold">x</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="214.666667" y="190.133333">.</text>
+<rect fill="rgb(153,153,153)"
+ x="233.866667" y="182.933333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="248.266667" y="206.973333"><tspan font-style="italic">I/s</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="349.066667,197.466667 358.666667,202.133333
+349.066667,206.8" />
+<line stroke-width="4"
+ x1="262.666667" y1="202.133333" x2="354.092025" y2="202.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="310.666667" y="197.64"><tspan font-style="bold">x</tspan></text>
+<rect fill="rgb(153,153,153)"
+ x="358.666667" y="182.933333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="373.066667" y="206.973333"><tspan font-style="italic">C</tspan></text>
+<line stroke-width="4"
+ x1="387.466667" y1="202.133333" x2="425.866667" y2="202.133333" />
+<polygon stroke-width="0" fill="black"
+ points="454.666667,197.466667 464.266667,202.133333
+454.666667,206.8" />
+<line stroke-width="4"
+ x1="425.866667" y1="202.133333" x2="459.692025" y2="202.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="445.066667" y="197.64"><tspan font-style="bold">y</tspan></text>
+<rect fill="rgb(153,153,153)"
+ x="233.866667" y="240.533333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="248.266667" y="264.573333"><tspan font-style="italic">A</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="272.266667,264.4 262.666667,259.733333
+272.266667,255.066667" />
+<polyline stroke-width="4"
+ points="267.241308,259.733333 301.066667,259.733333
+301.066667,202.133333" />
+<polygon stroke-width="0" fill="black"
+ points="181.2,221.333333 185.866667,211.733333
+190.533333,221.333333" />
+<polyline stroke-width="4"
+ points="233.866667,259.733333 185.866667,259.733333
+185.866667,216.307975" />
+<rect fill="rgb(153,153,153)"
+ x="233.866667" y="298.133333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="248.266667" y="322.173333"><tspan font-style="italic">K</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="58.666667,221.333333 61.066667,211.733333
+63.466667,221.333333" />
+<polyline points="233.866667,317.333333 61.066667,317.333333
+61.066667,213.932323" />
+<rect fill="rgb(230,230,230)"
+ stroke="none"
+ x="41.866667" y="346.133333" width="412.8" height="172.8" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="44.533333" y="516.266667"
+><tspan font-style="italic">Observer</tspan></text>
+<rect fill="rgb(153,153,153)"
+ x="233.866667" y="355.733333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="248.266667" y="379.773333"><tspan font-style="italic">I/s</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="224.266667,370.266667 233.866667,374.933333
+224.266667,379.6" />
+<line stroke-width="4"
+ x1="229.292025" y1="374.933333" x2="195.466667" y2="374.933333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="214.666667" y="370.44"><tspan font-style="bold">x</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="214.666667" y="370.44">&#710;</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="214.666667" y="358.093333">.</text>
+<circle fill="rgb(153,153,153)"
+ cx="185.866667" cy="374.933333" r="9.6" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="188.533333" y="396.88"
+>&#8201;<tspan font-style="italic">+</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="176.266667" y="369.6"><tspan font-style="italic">+</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="166.666667,370.266667 176.266667,374.933333
+166.666667,379.6" />
+<line stroke-width="4"
+ x1="171.692025" y1="374.933333" x2="137.866667" y2="374.933333" />
+<circle fill="rgb(153,153,153)"
+ cx="128.266667" cy="374.933333" r="9.6" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="130.933333" y="396.88"
+>&#8201;<tspan font-style="italic">+</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="118.666667" y="369.6"><tspan font-style="italic">+</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="109.066667,370.266667 118.666667,374.933333
+109.066667,379.6" />
+<line stroke-width="4"
+ x1="114.092025" y1="374.933333" x2="80.266667" y2="374.933333" />
+<rect fill="rgb(153,153,153)"
+ x="51.466667" y="355.733333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="65.866667" y="379.773333"><tspan font-style="italic">B</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="41.866667,372.533333 51.466667,374.933333
+41.866667,377.333333" />
+<polyline points="80.266667,202.133333 80.266667,173.333333
+3.466667,173.333333
+3.466667,374.933333
+49.267677,374.933333" />
+<rect fill="rgb(153,153,153)"
+ x="233.866667" y="413.333333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="248.266667" y="437.373333"><tspan font-style="italic">A</tspan></text>
+<line stroke-width="4"
+ x1="262.666667" y1="374.933333" x2="301.066667" y2="374.933333" />
+<polygon stroke-width="0" fill="black"
+ points="272.266667,322 262.666667,317.333333
+272.266667,312.666667" />
+<polygon stroke-width="0" fill="black"
+ points="272.266667,437.2 262.666667,432.533333
+272.266667,427.866667" />
+<polyline stroke-width="4"
+ points="267.241308,317.333333 301.066667,317.333333
+301.066667,432.533333
+267.241308,432.533333" />
+<polygon stroke-width="0" fill="black"
+ points="181.2,394.133333 185.866667,384.533333
+190.533333,394.133333" />
+<polyline stroke-width="4"
+ points="233.866667,432.533333 185.866667,432.533333
+185.866667,389.107975" />
+<rect fill="rgb(153,153,153)"
+ x="358.666667" y="355.733333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="373.066667" y="379.773333"><tspan font-style="italic">C</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="416.266667,370.266667 425.866667,374.933333
+416.266667,379.6" />
+<line stroke-width="4"
+ x1="387.466667" y1="374.933333" x2="421.292025" y2="374.933333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="406.666667" y="370.44"><tspan font-style="bold">y</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="406.666667" y="370.44">&#710;</text>
+<polygon stroke-width="0" fill="black"
+ points="349.066667,370.266667 358.666667,374.933333
+349.066667,379.6" />
+<line stroke-width="4"
+ x1="301.066667" y1="374.933333" x2="354.092025" y2="374.933333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="329.866667" y="370.44"><tspan font-style="italic">x</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="329.866667" y="370.44">&#710;</text>
+<circle fill="rgb(153,153,153)"
+ cx="435.466667" cy="374.933333" r="9.6" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="438.133333" y="362.666667"><tspan font-style="italic">+</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="425.866667" y="369.6"><tspan font-style="italic">-</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="440.133333,355.733333 435.466667,365.333333
+430.8,355.733333" />
+<line stroke-width="4"
+ x1="435.466667" y1="360.758692" x2="435.466667" y2="202.133333" />
+<rect fill="rgb(153,153,153)"
+ x="233.866667" y="470.933333" width="28.8" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="248.266667" y="494.973333"><tspan font-style="italic">L</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="272.266667,494.8 262.666667,490.133333
+272.266667,485.466667" />
+<polyline stroke-width="4"
+ points="435.466667,384.533333 435.466667,490.133333
+267.241308,490.133333" />
+<polygon stroke-width="0" fill="black"
+ points="123.6,394.133333 128.266667,384.533333
+132.933333,394.133333" />
+<polyline stroke-width="4"
+ points="233.866667,490.133333 128.266667,490.133333
+128.266667,389.107975" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="3.733333" y="555.866667"><tspan font-style="italic">r</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="29.866667,556.133333 39.466667,558.533333
+29.866667,560.933333" />
+<line x1="1.066667" y1="558.533333" x2="37.267677" y2="558.533333" />
+<circle cx="51.466667" cy="558.533333" r="12" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="48.8" y="582.88"><tspan font-style="italic">-</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="49.066667,580.133333 51.466667,570.533333
+53.866667,580.133333" />
+<line x1="51.466667" y1="572.732323" x2="51.466667" y2="589.733333" />
+<rect x="33.466667" y="589.733333" width="36" height="24" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="51.466667" y="606.573333"><tspan font-style="italic">K</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="49.066667,623.333333 51.466667,613.733333
+53.866667,623.333333" />
+<line x1="51.466667" y1="615.932323" x2="51.466667" y2="632.933333" />
+<line x1="51.466667" y1="632.933333" x2="89.866667" y2="632.933333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="70.666667" y="630.266667"
+><tspan>&#710;</tspan><tspan dx="-0.9ex"><tspan font-style="bold">x</tspan></tspan></text>
+<rect x="89.866667" y="602.933333" width="192" height="60" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="105.466933" y="636.466533"
+><tspan dx="0.987654ex"> </tspan><tspan dy="-1.2ex"
+dx="0.493827ex"><tspan font-style="italic">d</tspan></tspan><tspan
+dy=" 2.6ex"
+dx="-1.48148ex"><tspan font-style="italic">dt</tspan></tspan><tspan
+dy="-1.4ex" dx="0ex"> </tspan></text>
+<line x1="106.693067" y1="632.933333" x2="119.599733" y2="632.933333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="122.2664" y="636.466533"
+><tspan>&#710;</tspan><tspan dx="-0.9ex"><tspan font-style="bold">x</tspan></tspan> <tspan font-style="italic">= (A-LC)</tspan> <tspan>&#710;</tspan><tspan dx="-0.9ex"><tspan font-style="bold">x</tspan></tspan>
+<tspan font-style="italic">+ Bu + L</tspan><tspan font-style="bold">y</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="92.533333" y="660.266667"
+><tspan font-style="italic">Observer</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="291.466667,620.333333 281.866667,617.933333
+291.466667,615.533333" />
+<line x1="284.065656" y1="617.933333" x2="301.066667" y2="617.933333" />
+<line x1="301.066667" y1="617.933333" x2="301.066667" y2="558.533333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="320.266667" y="555.866667"><tspan font-style="italic">u</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="329.866667,556.133333 339.466667,558.533333
+329.866667,560.933333" />
+<line x1="63.466667" y1="558.533333" x2="337.267677" y2="558.533333" />
+<rect x="339.466667" y="528.533333" width="108" height="60" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="346.666933" y="552.595933"
+><tspan dx="0.987654ex"> </tspan><tspan dy="-1.2ex"
+dx="0.493827ex"><tspan font-style="italic">d</tspan></tspan><tspan
+dy=" 2.6ex"
+dx="-1.48148ex"><tspan font-style="italic">dt</tspan></tspan><tspan
+dy="-1.4ex" dx="0ex"> </tspan></text>
+<line x1="347.893067" y1="549.062733" x2="360.799733" y2="549.062733" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="363.4664" y="552.595933"
+><tspan font-style="bold">x</tspan> <tspan font-style="italic">= A</tspan> <tspan font-style="bold">x</tspan> <tspan font-style="italic">+ Bu</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="366.133067" y="571.955933"
+><tspan font-style="bold">y</tspan> <tspan font-style="italic">= C</tspan> <tspan font-style="bold">x</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="342.133333" y="585.866667"><tspan font-style="italic">Plant</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="476.266667,556.133333 485.866667,558.533333
+476.266667,560.933333" />
+<line x1="447.466667" y1="558.533333" x2="483.667677" y2="558.533333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="483.2" y="553.209963"><tspan font-style="italic">y</tspan></text>
+<line x1="466.666667" y1="558.533333" x2="466.666667" y2="647.933333" />
+<polygon stroke-width="0" fill="black"
+ points="291.466667,650.333333 281.866667,647.933333
+291.466667,645.533333" />
+<line x1="466.666667" y1="647.933333" x2="284.065656" y2="647.933333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="3.733333" y="681.92176"
+>(b) Plant with feedback from a full-order observer</text>
+<polygon stroke-width="0" fill="black"
+ points="29.866667,766.133333 39.466667,768.533333
+29.866667,770.933333" />
+<line x1="1.066667" y1="768.533333" x2="37.267677" y2="768.533333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="19.167172" y="765.866667"
+><tspan font-style="italic">E<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<circle cx="51.466667" cy="768.533333" r="12" />
+<line x1="42.981385" y1="760.048052" x2="59.951948" y2="777.018615" />
+<line x1="42.981385" y1="777.018615" x2="59.951948" y2="760.048052" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="51.466667" y="766.173333"><tspan font-style="italic"></tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="51.466667" y="780.573333"><tspan font-style="italic">-</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="58.666667" y="773.373333"><tspan font-style="italic"></tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="44.266667" y="773.373333"><tspan font-style="italic">+</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="73.066667,766.133333 82.666667,768.533333
+73.066667,770.933333" />
+<line x1="63.466667" y1="768.533333" x2="80.467677" y2="768.533333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="71.967172" y="765.866667">&#949;</text>
+<rect x="82.666667" y="749.333333" width="38.4" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="101.866667" y="773.373333"
+><tspan font-style="italic">H</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="130.666667,766.133333 140.266667,768.533333
+130.666667,770.933333" />
+<line x1="121.066667" y1="768.533333" x2="138.067677" y2="768.533333" />
+<rect x="140.266667" y="749.333333" width="38.4" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="159.466667" y="773.373333"
+><tspan font-style="italic">H</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="188.266667,766.133333 197.866667,768.533333
+188.266667,770.933333" />
+<line x1="178.666667" y1="768.533333" x2="195.667677" y2="768.533333" />
+<circle cx="209.866667" cy="768.533333" r="12" />
+<line x1="201.381385" y1="760.048052" x2="218.351948" y2="777.018615" />
+<line x1="201.381385" y1="777.018615" x2="218.351948" y2="760.048052" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="209.866667" y="766.173333"><tspan font-style="italic">-</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="209.866667" y="780.573333"><tspan font-style="italic"></tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="217.066667" y="773.373333"><tspan font-style="italic"></tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="202.666667" y="773.373333"><tspan font-style="italic">+</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="231.466667,766.133333 241.066667,768.533333
+231.466667,770.933333" />
+<line x1="221.866667" y1="768.533333" x2="238.867677" y2="768.533333" />
+<rect x="241.066667" y="749.333333" width="38.4" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="260.266667" y="773.373333"
+><tspan font-style="italic">H</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">3</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="289.066667,766.133333 298.666667,768.533333
+289.066667,770.933333" />
+<line x1="279.466667" y1="768.533333" x2="296.467677" y2="768.533333" />
+<rect x="298.666667" y="749.333333" width="38.4" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="317.866667" y="773.373333"
+><tspan font-style="italic">H</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">4</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<line x1="337.066667" y1="768.533333" x2="356.266667" y2="768.533333" />
+<polygon stroke-width="0" fill="black"
+ points="365.866667,766.133333 375.466667,768.533333
+365.866667,770.933333" />
+<line x1="356.266667" y1="768.533333" x2="373.267677" y2="768.533333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="375.466667" y="765.866667"
+><tspan font-style="italic">S</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<rect x="269.866667" y="691.733333" width="38.4" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="289.066667" y="715.773333"
+><tspan font-style="italic">R</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="317.866667,713.333333 308.266667,710.933333
+317.866667,708.533333" />
+<polyline points="356.266667,768.533333 356.266667,710.933333
+310.465656,710.933333" />
+<polygon stroke-width="0" fill="black"
+ points="212.266667,746.933333 209.866667,756.533333
+207.466667,746.933333" />
+<polyline points="269.866667,710.933333 209.866667,710.933333
+209.866667,754.334344" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="212.533333" y="742.173333"
+><tspan font-style="italic">n</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<rect x="179.866667" y="806.933333" width="38.4" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="199.066667" y="830.973333"
+><tspan font-style="italic">R</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="170.266667,828.533333 160.666667,826.133333
+170.266667,823.733333" />
+<line x1="179.866667" y1="826.133333" x2="162.865656" y2="826.133333" />
+<rect x="122.266667" y="806.933333" width="38.4" height="38.4" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="141.466667" y="830.973333"
+><tspan font-style="italic">R</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">3</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="227.866667,828.533333 218.266667,826.133333
+227.866667,823.733333" />
+<polyline points="289.066667,768.533333 289.066667,826.133333
+220.465656,826.133333" />
+<polygon stroke-width="0" fill="black"
+ points="49.066667,790.133333 51.466667,780.533333
+53.866667,790.133333" />
+<polyline points="122.266667,826.133333 51.466667,826.133333
+51.466667,782.732323" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="54.133333" y="804.573333"
+><tspan font-style="italic">n</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="3.733333" y="864.32176">(c) A multiblock example</text>
+<rect x="19.066667" y="892.133333" width="64.8" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="51.466667" y="907.64">reference</text>
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="51.466667" y="922.306667"><tspan font-style="italic">R</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="125.466667,907.733333 135.066667,910.133333
+125.466667,912.533333" />
+<line x1="83.866667" y1="910.133333" x2="132.867677" y2="910.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="109.466667" y="904.24"
+><tspan font-style="italic">y</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">c</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan>[ref]</text>
+<rect x="135.066667" y="892.133333" width="64.8" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="167.466667" y="907.64">"inverse"</text>
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="167.466667" y="922.306667">of <tspan font-style="italic">G</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="169.866667,966.533333 167.466667,976.133333
+165.066667,966.533333" />
+<line x1="167.466667" y1="928.133333" x2="167.466667" y2="973.934344" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" text-anchor="start"
+ x="170.133333" y="955.873838"
+><tspan font-style="italic">y</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">m</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan>[ref]</text>
+<circle cx="167.466667" cy="988.133333" r="12" />
+<polygon stroke-width="0" fill="black"
+ points="208.266667,985.733333 217.866667,988.133333
+208.266667,990.533333" />
+<line x1="179.466667" y1="988.133333" x2="215.667677" y2="988.133333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="197.567172" y="985.466667"><tspan font-style="italic">e</tspan></text>
+<rect x="217.866667" y="970.133333" width="64.8" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="250.266667" y="985.64">stabilizer</text>
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="250.266667" y="1000.306667"><tspan font-style="italic">K</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="311.466667,985.733333 321.066667,988.133333
+311.466667,990.533333" />
+<line x1="282.666667" y1="988.133333" x2="318.867677" y2="988.133333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="300.767172" y="985.466667">&#948;u</text>
+<circle cx="333.066667" cy="988.133333" r="12" />
+<line x1="199.866667" y1="910.133333" x2="333.066667" y2="910.133333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="266.466667" y="907.466667"
+><tspan font-style="italic">u</tspan>[ref]</text>
+<polygon stroke-width="0" fill="black"
+ points="335.466667,966.533333 333.066667,976.133333
+330.666667,966.533333" />
+<line x1="333.066667" y1="910.133333" x2="333.066667" y2="973.934344" />
+<polygon stroke-width="0" fill="black"
+ points="373.866667,985.733333 383.466667,988.133333
+373.866667,990.533333" />
+<line x1="345.066667" y1="988.133333" x2="381.267677" y2="988.133333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="363.167172" y="985.466667"><tspan font-style="italic">u</tspan></text>
+<rect x="383.466667" y="970.133333" width="64.8" height="36" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="415.866667" y="985.64">plant</text>
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="415.866667" y="1000.306667"><tspan font-style="italic">G</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="418.266667,960.533333 415.866667,970.133333
+413.466667,960.533333" />
+<line x1="415.866667" y1="967.934344" x2="415.866667" y2="952.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="415.866667" y="949.466667"
+>disturbance <tspan font-style="italic">z</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="477.066667,976.733333 486.666667,979.133333
+477.066667,981.533333" />
+<line x1="448.266667" y1="979.133333" x2="484.467677" y2="979.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="489.333333" y="983.973333"
+><tspan font-style="italic">y</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">c</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="477.066667,994.733333 486.666667,997.133333
+477.066667,999.533333" />
+<line x1="448.266667" y1="997.133333" x2="484.467677" y2="997.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="489.333333" y="1001.973333"
+><tspan font-style="italic">y</tspan><tspan font-size="70%"
+dy="0.66ex" dx="">m</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="165.066667,1009.733333 167.466667,1000.133333
+169.866667,1009.733333" />
+<polyline points="467.466667,997.133333 467.466667,1030.133333
+167.466667,1030.133333
+167.466667,1002.332323" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="164.8" y="1012.48"><tspan font-style="italic">-</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="49.066667,937.733333 51.466667,928.133333
+53.866667,937.733333" />
+<line x1="51.466667" y1="930.332323" x2="51.466667" y2="976.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="51.466667" y="990.573333"
+><tspan font-style="italic">W</tspan> control input</text>
+<polyline stroke-dasharray="5.6,4"
+ points="1.066667,874.133333 354.666667,874.133333
+354.666667,1060.133333" />
+<line stroke-dasharray="5.6,4"
+ x1="354.666667" y1="1060.133333" x2="135.066667" y2="1060.133333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" x="244.866667" y="1057.466667">Controller</text>
+<line stroke-dasharray="5.6,4"
+ x1="135.066667" y1="1060.133333" x2="135.066667" y2="946.133333" />
+<polyline stroke-dasharray="5.6,4"
+ points="135.066667,946.133333 1.066667,946.133333
+1.066667,874.133333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="3.733333" y="1079.12176"
+>(d) Nonlinear feedforward (for performance) and small-signal feedback
+(for stability)</text>
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/cscSVG.m4 b/graphics/circuit_macros/examples/dpv/cscDPV.m4
index 05cf0c70d4..f2e48166e0 100644
--- a/graphics/circuit_macros/examples/svg/cscSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/cscDPV.m4
@@ -1,7 +1,7 @@
.PS
#.PS 3.5
# csc.m4
-# This file includes AntiqueClock and works for PSTricks, Tikz, and SVG
+# This file includes AntiqueClock and works for PSTricks, Tikz, and svg
gen_init
NeedDpicTools
@@ -86,7 +86,7 @@ ifelse(ifpstricks(T)`'ifpgf(T)`'ifsvg(T),T,`
iflatex(`latexcommand({\sf)')
ifsvg(svg_font(font-family="sans-serif" font-stretch="condensed")
# svg_rot_init(test))
- svg_rot_init(cscSVG))
+ svg_rot_init(cscDPV))
# https://tex.stackexchange.com/questions/236923/generate-analog-clock-with-numbered-face-add-seconds-roman-numerals
@@ -194,7 +194,7 @@ Face: circle thick 0 fill_(1) rad r3 at C
circle rad r6 at C
circle rad r7 at C
-# Ad hoc shift of rotated SVG text
+# Ad hoc shift of rotated svg text
ifsvg(`define adj {+(-cosd($`'1)*textht*0.5*sign(180-($`'1)),\
(0.25+0.25*cosd(2*($`'1)))*textht) }',
`define adj {}')
@@ -244,6 +244,6 @@ Face: circle thick 0 fill_(1) rad r3 at C
ifsvg(`command "</g>"')
#.PE
-',` "AntiqueClock.m4 requires PSTricks, Tikz-pgf, or SVG" ')
+',` "AntiqueClock.m4 requires PSTricks, Tikz-pgf, or svg" ')
] with .sw at last [].se+(0.25,0)
.PE
diff --git a/graphics/circuit_macros/examples/svg/diamondSVG.m4 b/graphics/circuit_macros/examples/dpv/diamondDPV.m4
index 3c5e0f5bfe..3c5e0f5bfe 100644
--- a/graphics/circuit_macros/examples/svg/diamondSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/diamondDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex00SVG.m4 b/graphics/circuit_macros/examples/dpv/ex00DPV.m4
index 97c5268725..97c5268725 100644
--- a/graphics/circuit_macros/examples/svg/ex00SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex00DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex01SVG.m4 b/graphics/circuit_macros/examples/dpv/ex01DPV.m4
index dd22dd8494..7b30f1b60f 100644
--- a/graphics/circuit_macros/examples/svg/ex01SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex01DPV.m4
@@ -1,5 +1,5 @@
.PS
-# TimerSVG.m4
+# TimerDPV.m4
cct_init(svg_font(sans-serif,10.5bp__))
define(`ic555',`[Chip: box ht boxwid wid boxwid "555"
diff --git a/graphics/circuit_macros/examples/dpv/ex01DPV.svg b/graphics/circuit_macros/examples/dpv/ex01DPV.svg
new file mode 100644
index 0000000000..52d4f52e46
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/ex01DPV.svg
@@ -0,0 +1,391 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="656" height="152" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="654.776185px" height="151.04px"
+ viewBox="0 0 654.776185 151.04"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:sans-serif"
+>
+<circle fill="black"
+ cx="61.066667" cy="2.453333" r="1.92" />
+<line x1="61.066667" y1="2.453333" x2="61.066667" y2="14.453333" />
+<polyline points="61.066667,38.453333 65.866667,38.453333
+65.866667,14.453333
+56.266667,14.453333
+56.266667,38.453333
+61.066667,38.453333" />
+<line x1="61.066667" y1="38.453333" x2="61.066667" y2="50.453333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="68.533333" y="31.423333"
+><tspan font-style="normal">1 M&#937;</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="66.157835,17.968052 74.643117,12.876883
+69.551948,21.362165" />
+<line x1="47.490216" y1="40.029784" x2="73.088196" y2="14.431804" />
+<line x1="61.066667" y1="50.453333" x2="61.066667" y2="62.453333" />
+<polyline points="61.066667,86.453333 65.866667,86.453333
+65.866667,62.453333
+56.266667,62.453333
+56.266667,86.453333
+61.066667,86.453333" />
+<line x1="61.066667" y1="86.453333" x2="61.066667" y2="98.453333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="68.533333" y="79.423333"
+><tspan font-style="normal">100 k&#937;</tspan></text>
+<line x1="61.066667" y1="98.453333" x2="61.066667" y2="117.653333" />
+<polyline stroke-width="0.533333"
+ points="61.066667,120.653333 65.866667,120.653333
+65.866667,117.653333
+56.266667,117.653333
+56.266667,120.653333
+61.066667,120.653333" />
+<polyline stroke-width="0" fill="black"
+ points="61.066667,124.253333
+65.866667,124.253333
+65.866667,127.253333
+56.266667,127.253333
+56.266667,124.253333
+61.066667,124.253333" />
+<polyline stroke-width="0.533333"
+ points="61.066667,124.253333 65.866667,124.253333
+65.866667,127.253333
+56.266667,127.253333
+56.266667,124.253333
+61.066667,124.253333" />
+<line x1="61.066667" y1="127.253333" x2="61.066667" y2="146.453333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="63.733333" y="114.986667"
+><tspan font-style="normal">220 &#956;F</tspan></text>
+<circle fill="black"
+ cx="61.066667" cy="146.453333" r="1.92" />
+<circle fill="black"
+ cx="125.066667" cy="2.453333" r="1.92" />
+<line x1="125.066667" y1="2.453333" x2="125.066667" y2="14.453333" />
+<polyline points="125.066667,38.453333 129.866667,38.453333
+129.866667,14.453333
+120.266667,14.453333
+120.266667,38.453333
+125.066667,38.453333" />
+<line x1="125.066667" y1="38.453333" x2="125.066667" y2="50.453333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="132.533333" y="31.423333"
+><tspan font-style="normal">33 k&#937;</tspan></text>
+<line x1="125.066667" y1="50.453333" x2="125.066667" y2="98.453333" />
+<line x1="125.066667" y1="98.453333" x2="125.066667" y2="120.053333" />
+<line x1="117.066667" y1="120.053333" x2="133.066667" y2="120.053333" />
+<line x1="117.066667" y1="124.853333" x2="133.066667" y2="124.853333" />
+<line x1="125.066667" y1="124.853333" x2="125.066667" y2="146.453333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="127.733333" y="117.386667"
+><tspan font-style="normal">0.1 &#956;F</tspan></text>
+<circle fill="black"
+ cx="125.066667" cy="146.453333" r="1.92" />
+<rect x="170.4" y="38.453333" width="72" height="72" />
+<text font-size="10.5pt" stroke-width="0.2pt" fill="black" x="206.4" y="79.423333">555</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="173.066667" y="103.423333">7</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="173.066667" y="79.423333">6</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="173.066667" y="55.423333">2</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="194.4" y="51.06">4</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="218.4" y="51.06">8</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="239.733333" y="79.423333">3</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="206.4" y="107.786667">1</text>
+<line x1="194.4" y1="46.09" x2="194.4" y2="2.453333" />
+<circle fill="black"
+ cx="194.4" cy="2.453333" r="1.92" />
+<line x1="218.4" y1="46.09" x2="218.4" y2="2.453333" />
+<circle fill="black"
+ cx="218.4" cy="2.453333" r="1.92" />
+<line x1="206.4" y1="102.816667" x2="206.4" y2="146.453333" />
+<circle fill="black"
+ cx="206.4" cy="146.453333" r="1.92" />
+<line x1="173.066667" y1="50.453333" x2="125.066667" y2="50.453333" />
+<circle fill="black"
+ cx="125.066667" cy="50.453333" r="1.92" />
+<line x1="173.066667" y1="98.453333" x2="128.533333" y2="98.453333" />
+<path d="M 129.066667,98.453333
+ A 4 4 0 0 0 121.066667,98.453333" />
+<line x1="121.6" y1="98.453333" x2="61.066667" y2="98.453333" />
+<circle fill="black"
+ cx="61.066667" cy="98.453333" r="1.92" />
+<polyline points="173.066667,74.453333 149.066667,74.453333
+149.066667,98.453333" />
+<circle fill="black"
+ cx="149.066667" cy="98.453333" r="1.92" />
+<line x1="239.733333" y1="74.453333" x2="271.733333" y2="74.453333" />
+<circle fill="black"
+ cx="271.733333" cy="74.453333" r="1.92" />
+<line x1="271.733333" y1="74.453333" x2="287.733333" y2="74.453333" />
+<line x1="302.818278" y1="85.12" x2="302.818278" y2="53.12" />
+<path d="M 302.818278,53.12
+ A 16 16 0 0 0 302.818278,85.12" />
+<line x1="287.733333" y1="63.786667" x2="271.733333" y2="63.786667" />
+<line x1="271.733333" y1="2.453333" x2="271.733333" y2="29.655898" />
+<polygon stroke-width="0" fill="black"
+ points="284.89058,12.806313 291.624931,9.843199
+288.661817,16.57755" />
+<line x1="276.012013" y1="25.456117" x2="290.584435" y2="10.883695" />
+<polygon stroke-width="0" fill="black"
+ points="289.133221,17.048954 295.867571,14.08584
+292.904457,20.82019" />
+<line x1="280.254654" y1="29.698758" x2="294.827076" y2="15.126335" />
+<polyline stroke-width="0" fill="black"
+ points="271.733333,29.655898
+275.733333,29.655898
+271.733333,36.052761
+267.733333,29.655898
+271.733333,29.655898" />
+<polyline points="271.733333,29.655898 275.733333,29.655898
+271.733333,36.052761
+267.733333,29.655898
+271.733333,29.655898" />
+<line x1="267.344365" y1="36.584102" x2="276.122302" y2="36.584102" />
+<line x1="271.733333" y1="36.584102" x2="271.733333" y2="63.786667" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="295.733333" y="38.09">red</text>
+<line x1="271.733333" y1="74.453333" x2="271.733333" y2="86.453333" />
+<polyline points="271.733333,110.453333 276.533333,110.453333
+276.533333,86.453333
+266.933333,86.453333
+266.933333,110.453333
+271.733333,110.453333" />
+<line x1="271.733333" y1="110.453333" x2="271.733333" y2="122.453333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="279.2" y="103.423333"
+><tspan font-style="normal">470 &#937;</tspan></text>
+<line x1="271.733333" y1="122.453333" x2="271.733333" y2="130.989232" />
+<polygon stroke-width="0" fill="black"
+ points="284.89058,114.139647 291.624931,111.176533
+288.661817,117.910883" />
+<line x1="276.012013" y1="126.78945" x2="290.584435" y2="112.217028" />
+<polygon stroke-width="0" fill="black"
+ points="289.133221,118.382287 295.867571,115.419173
+292.904457,122.153524" />
+<line x1="280.254654" y1="131.032091" x2="294.827076" y2="116.459669" />
+<polyline stroke-width="0" fill="black"
+ points="271.733333,130.989232
+275.733333,130.989232
+271.733333,137.386094
+267.733333,130.989232
+271.733333,130.989232" />
+<polyline points="271.733333,130.989232 275.733333,130.989232
+271.733333,137.386094
+267.733333,130.989232
+271.733333,130.989232" />
+<line x1="267.344365" y1="137.917435" x2="276.122302" y2="137.917435" />
+<line x1="271.733333" y1="137.917435" x2="271.733333" y2="146.453333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="303.733333" y="139.423333">green</text>
+<line x1="271.733333" y1="146.453333" x2="13.066667" y2="146.453333" />
+<line x1="13.066667" y1="146.453333" x2="13.066667" y2="98.453333" />
+<line x1="13.066667" y1="98.453333" x2="13.066667" y2="84.453333" />
+<line x1="7.066667" y1="84.453333" x2="19.066667" y2="84.453333" />
+<line x1="1.066667" y1="80.453333" x2="25.066667" y2="80.453333" />
+<line x1="13.066667" y1="80.453333" x2="13.066667" y2="66.453333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="15.733333" y="77.786667"><tspan font-style="normal">9 V</tspan></text>
+<line x1="13.066667" y1="66.453333" x2="13.066667" y2="42.453333" />
+<line x1="13.066667" y1="42.453333" x2="1.066667" y2="30.453333" />
+<line x1="13.066667" y1="26.453333" x2="13.066667" y2="2.453333" />
+<circle fill="white"
+ cx="13.066667" cy="42.453333" r="1.92" />
+<circle fill="white"
+ cx="13.066667" cy="26.453333" r="1.92" />
+<line x1="13.066667" y1="2.453333" x2="271.733333" y2="2.453333" />
+<line x1="409.333333" y1="148.373333" x2="409.333333" y2="112.373333" />
+<circle cx="409.333333" cy="94.373333" r="18" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="409.333333" y="107.349333">-</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="409.333333" y="89.349333"><tspan font-size="66%">+</tspan></text>
+<line x1="409.333333" y1="76.373333" x2="409.333333" y2="40.373333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="388.666667" y="99.343333"
+>v<tspan font-size="70%"
+dy="0.66ex" dx="">s</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<line x1="409.333333" y1="40.373333" x2="433.333333" y2="40.373333" />
+<line x1="433.333333" y1="40.373333" x2="451.333333" y2="22.373333" />
+<path stroke-width="0" fill="black"
+ d="M 449.470811,37.717006
+ L 447.129207,38.399081
+ A 34.089485 34.089485 0 0 1 450.719998,45.032076
+ A 34.089485 34.089485 0 0 0 451.812415,37.034932
+ L 449.470811,37.717006" />
+<path d="M 450.333622,41.684181
+ A 34.089485 34.089485 0 0 0 442.333333,24.784876" />
+<line x1="457.333333" y1="40.373333" x2="481.333333" y2="40.373333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="445.333333" y="56.105667">t = <tspan font-style="normal">0</tspan></text>
+<polyline points="481.333333,40.373333 499.333333,40.373333
+502.333333,34.373333
+508.333333,46.373333
+514.333333,34.373333
+520.333333,46.373333
+526.333333,34.373333
+532.333333,46.373333
+535.333333,40.373333
+553.333333,40.373333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ x="517.333333" y="31.706667"
+><tspan font-style="normal">47 ohm</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="486.933333,37.973333 496.533333,40.373333
+486.933333,42.773333" />
+<line x1="494.334344" y1="40.373333" x2="486.933333" y2="40.373333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="484.266667" y="33.706667"
+><tspan font-style="italic">i<tspan font-size="70%"
+dy="0.66ex" dx="">R</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<polyline points="553.333333,40.373333 589.333333,40.373333
+589.333333,58.373333" />
+<line x1="625.333333" y1="58.373333" x2="625.333333" y2="73.963705" />
+<circle stroke-width="0.533333"
+ cx="625.333333" cy="73.963705" r="0.26567" />
+<path d="M 625.333333,73.963705
+ A 7.2 7.2 0 1 1 622.860665,85.117192" />
+<circle stroke-width="0.533333"
+ cx="622.860665" cy="85.117192" r="0.26567" />
+<path d="M 622.860665,85.117192
+ A 7.2 7.2 0 1 1 622.860665,94.373333" />
+<circle stroke-width="0.533333"
+ cx="622.860665" cy="94.373333" r="0.26567" />
+<path d="M 622.860665,94.373333
+ A 7.2 7.2 0 1 1 622.860665,103.629475" />
+<circle stroke-width="0.533333"
+ cx="622.860665" cy="103.629475" r="0.26567" />
+<path d="M 622.860665,103.629475
+ A 7.2 7.2 0 1 1 625.333333,114.782962" />
+<circle stroke-width="0.533333"
+ cx="625.333333" cy="114.782962" r="0.26567" />
+<line x1="625.333333" y1="114.782962" x2="625.333333" y2="130.373333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="638.242851" y="99.343333">L</text>
+<polygon stroke-width="0" fill="black"
+ points="627.733333,61.917192 625.333333,71.517192
+622.933333,61.917192" />
+<line x1="625.333333" y1="69.318202" x2="625.333333" y2="61.917192" />
+<line x1="553.333333" y1="58.373333" x2="553.333333" y2="90.773333" />
+<line x1="544.333333" y1="90.773333" x2="562.333333" y2="90.773333" />
+<path d="M 544.333333,97.973333
+ A 18 18 0 0 1 562.333333,97.973333" />
+<line x1="553.333333" y1="95.561791" x2="553.333333" y2="130.373333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="550.666667" y="88.106667">+</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="541.666667" y="99.343333"
+>v<tspan font-size="70%"
+dy="0.66ex" dx="">C</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="550.666667" y="110.58">-</text>
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="556" y="110.58">C</text>
+<line x1="625.866667" y1="58.373333" x2="552.8" y2="58.373333" />
+<line x1="625.866667" y1="130.373333" x2="552.8" y2="130.373333" />
+<line x1="625.333333" y1="58.373333" x2="625.333333" y2="58.373333" />
+<line x1="625.333333" y1="130.373333" x2="625.333333" y2="130.373333" />
+<line x1="553.333333" y1="58.373333" x2="553.333333" y2="58.373333" />
+<line x1="553.333333" y1="130.373333" x2="553.333333" y2="130.373333" />
+<text font-size="10.5pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="630.666667" y="70.98"
+><tspan font-style="italic">i<tspan font-size="70%"
+dy="0.66ex" dx="">L</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<polyline points="589.333333,130.373333 589.333333,148.373333
+409.333333,148.373333" />
+<path stroke-width="0" fill="black"
+ d="M 599.872248,78.914248
+ L 598.753349,80.767553
+ A 18 18 0 0 1 606.127562,85.373333
+ A 18 18 0 0 0 600.991148,77.060943
+ L 599.872248,78.914248" />
+<path d="M 606.127562,103.373333
+ A 18 18 0 1 1 603.502794,81.885629" />
+<text font-size="10.5pt" stroke-width="0.2pt" fill="black" x="590.539105" y="99.343333"
+><tspan font-style="italic">i<tspan font-size="70%"
+dy="0.66ex" dx="">2</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<path stroke-width="0" fill="black"
+ d="M 509.303623,68.971919
+ L 507.672194,70.593306
+ A 36 36 0 0 1 514.921791,76.373333
+ A 36 36 0 0 0 510.935053,67.350532
+ L 509.303623,68.971919" />
+<path d="M 514.921791,112.373333
+ A 36 36 0 1 1 512.508946,72.72551" />
+<text font-size="10.5pt" stroke-width="0.2pt" fill="black" x="483.744876" y="99.343333"
+><tspan font-style="italic">i<tspan font-size="70%"
+dy="0.66ex" dx="">1</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/ex02SVG.m4 b/graphics/circuit_macros/examples/dpv/ex02DPV.m4
index ad2f7324fb..ad2f7324fb 100644
--- a/graphics/circuit_macros/examples/svg/ex02SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex02DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex03SVG.m4 b/graphics/circuit_macros/examples/dpv/ex03DPV.m4
index ef1e6126d2..ef1e6126d2 100644
--- a/graphics/circuit_macros/examples/svg/ex03SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex03DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex04SVG.m4 b/graphics/circuit_macros/examples/dpv/ex04DPV.m4
index 366cf24c05..366cf24c05 100644
--- a/graphics/circuit_macros/examples/svg/ex04SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex04DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex05SVG.m4 b/graphics/circuit_macros/examples/dpv/ex05DPV.m4
index 52284a3e33..e44542dc3d 100644
--- a/graphics/circuit_macros/examples/svg/ex05SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex05DPV.m4
@@ -1,5 +1,5 @@
.PS
-# ex05SVG.m4
+# ex05DPV.m4
darrow_init
Kalman: [
diff --git a/graphics/circuit_macros/examples/svg/ex06SVG.m4 b/graphics/circuit_macros/examples/dpv/ex06DPV.m4
index 9d3df65745..67bbf481bd 100644
--- a/graphics/circuit_macros/examples/svg/ex06SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex06DPV.m4
@@ -1,5 +1,5 @@
.PS
-# ex06SVG.m4
+# ex06DPV.m4
gen_init(svg_font(font-family="Times" font-style="italic",11bp__))
F: box invis wid 1.6i ht 1.8i
diff --git a/graphics/circuit_macros/examples/svg/ex08SVG.m4 b/graphics/circuit_macros/examples/dpv/ex08DPV.m4
index aca3f41069..aca3f41069 100644
--- a/graphics/circuit_macros/examples/svg/ex08SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex08DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex09SVG.m4 b/graphics/circuit_macros/examples/dpv/ex09DPV.m4
index b267c68ea0..b267c68ea0 100644
--- a/graphics/circuit_macros/examples/svg/ex09SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex09DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex10SVG.m4 b/graphics/circuit_macros/examples/dpv/ex10DPV.m4
index 0c707781b3..0c707781b3 100644
--- a/graphics/circuit_macros/examples/svg/ex10SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex10DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex11SVG.m4 b/graphics/circuit_macros/examples/dpv/ex11DPV.m4
index cca63ef176..cca63ef176 100644
--- a/graphics/circuit_macros/examples/svg/ex11SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex11DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex12SVG.m4 b/graphics/circuit_macros/examples/dpv/ex12DPV.m4
index 1dfa749b7a..1dfa749b7a 100644
--- a/graphics/circuit_macros/examples/svg/ex12SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex12DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex15SVG.m4 b/graphics/circuit_macros/examples/dpv/ex15DPV.m4
index ca15109fa9..ca15109fa9 100644
--- a/graphics/circuit_macros/examples/svg/ex15SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex15DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex16SVG.m4 b/graphics/circuit_macros/examples/dpv/ex16DPV.m4
index 70a7d00e28..70a7d00e28 100644
--- a/graphics/circuit_macros/examples/svg/ex16SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex16DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex17SVG.m4 b/graphics/circuit_macros/examples/dpv/ex17DPV.m4
index fbe892f147..d1017e0263 100644
--- a/graphics/circuit_macros/examples/svg/ex17SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex17DPV.m4
@@ -1,5 +1,5 @@
.PS
-# ex17SVG.m4
+# ex17DPV.m4
cct_init(svg_font(sans-serif,11bp__,0bp__))
[
diff --git a/graphics/circuit_macros/examples/svg/ex18SVG.m4 b/graphics/circuit_macros/examples/dpv/ex18DPV.m4
index c14e7c4616..c14e7c4616 100644
--- a/graphics/circuit_macros/examples/svg/ex18SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex18DPV.m4
diff --git a/graphics/circuit_macros/examples/svg/ex21SVG.m4 b/graphics/circuit_macros/examples/dpv/ex21DPV.m4
index b9aa8ac18d..6eef6f091b 100644
--- a/graphics/circuit_macros/examples/svg/ex21SVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ex21DPV.m4
@@ -1,5 +1,5 @@
.PS
-# ex21SVG.m4
+# ex21DPV.m4
log_init(svg_font(sans-serif,11bp__))
dy = 0.2
diff --git a/graphics/circuit_macros/examples/svg/examplesSVG.htmx b/graphics/circuit_macros/examples/dpv/examplesDPV.htmx
index af8a15f840..8d33b9f07e 100644
--- a/graphics/circuit_macros/examples/svg/examplesSVG.htmx
+++ b/graphics/circuit_macros/examples/dpv/examplesDPV.htmx
@@ -21,30 +21,26 @@ flowcharts, picture overlay, ASME Y14.5' >
<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
</HEAD>
-<!-- ---------------------------------------------------------------------
+<!-- m4 macros: ------------------------------------------------------------
define(`ifinstr',`ifelse(`$2',,`$1',index(`$1',`$2'),-1,
`ifinstr(shift(shift(shift($@))))',`$3')')
+define(`m4inx',`define(`m4x',ifdef(`m4x',`incr(m4x)',1))m4x')
define(`m4tt',`<g style="font-family:monospace">')
+ dnl cfig( svg filename, [textfile], [y], [OBJECT] )
define(`cfig',`
<p>
-
-<!--[if lte IE 8]><embed src="$1.svg" sinclude($1.siz)><![endif]-->
-
-<!--[if gte IE 9]>
-<object dx="4" data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img">
- </object> <![endif]-->
-
-<!--[if !IE]><!-->
-<object data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img">
- </object> <![endif]-->
-
-<br><br>
-ifelse(`$2',,,`
-<a href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4:</a>
+ dnl The object type is needed for the overlay
+ dnl example
+ifelse(`$4',OBJECT,
+`<object data="$1.svg" type="image/svg+xml" class="img"></object>',
+`<IMG SRC="$1.svg">')
+ dnl
+ifelse(`$2',,,`<br><br>
+Fig. m4inx (<a
+ href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4</a>):
`$2' changecom(,)&`#'8194;changecom(`#')')
-
</p>
ifinstr(`$3',y,,`<hr>')')
@@ -60,23 +56,26 @@ ifinstr(`$3',y,,`<hr>')')
&#62;
<A HREF="examples.html">Examples</A>
&#62;
-<A HREF="examplesSVG.html">SVG</A>
+<A HREF="examplesDPV.html">dpv</A>
<hr>
<p>
- This file shows diagrams in .svg format;
+ This file shows diagrams in .svg format produced without the use of
+ LaTeX or equivalent.
+<!--
<A HREF="examples.html">png</A>
versions are also available.
The PDF equivalent can be found in examples.pdf of the distribution.
</p>
<p>
-The diagrams shown below have been adapted from the Circuit_macros
+-->
+The diagrams have been adapted from the Circuit_macros
examples in order to test the svg output of dpic. Generating svg line
-art is straightforward, but TeX, LaTeX, and related word
-processors do not produce svg. Either less-sophisticated text formatting
-must be employed or an
+art is straightforward but formatting text is not because TeX, LaTeX,
+and related word processors do not produce svg directly. Either
+less-sophisticated text formatting must be employed for svg or an
<A HREF="https://en.wikibooks.org/wiki/LaTeX/Export_To_Other_Formats">
intermediate format</A>
such as pdf can be
@@ -85,8 +84,8 @@ Two possibilities for the latter are
<A HREF="https://www.ctan.org/pkg/dvisvgm">dvisvgm</A>
and
<A HREF="https://github.com/dawbarton/pdf2svg">pdf2svg</A>.
-Many circuit and similar diagrams intended for the web do not
-require sophisticated labels, however; the examples shown below might
+However, many circuit and similar diagrams intended for the web do not
+require sophisticated labels; the examples shown below might
be representative.
</p>
<p>
@@ -96,40 +95,29 @@ be representative.
<p>
There are other issues:
<ul>
- <li> Embedding .svg files in html documents with the &lt;embed&gt; or
- &lt;object&gt; tag seems to be a perennial issue.
- <li> This file has been tested mainly by using Firefox.
- <li> The Adobe reader apparently requires a line of the form
- <br> &lt;embed src="figure.svg" width="x" height="y" type="image/svg+xml"
- /&gt;
- This means that the html file has to contain dimension
- information for each figure, whereas Firefox can
- determine the figure size
- from the &lt;svg ... object. Currently, dpic includes a comment line
- giving reasonable dimensions in pixels but this has to be insterted into
- the &lt;embed or &lt;object line. A makefile does it easily but
- otherwise this could be tedious.
<li> The default font face is not specified in all of these diagrams but is
inherited from the enclosing document, so the appearance of labels can
differ depending on the browser. Some of these diagrams set the font at
the beginning of the diagram source.
- <li> The &lt;svg tag may require modification
- from the default used for this test. Dpic might be modified to
- allow the generation of custom headers but that has not been done.
+ <!-- <li> The &lt;svg tag may require modification
+ from the default used for this test. -->
+ <!-- Dpic might be modified to
+ allow the generation of custom headers but that has not been done. -->
<li> Diagrams such as these contain text labels
- that have to be treated differently from the LaTeX-compatible versions.
- Apparently there is no direct way to know the bounding box of arbitrary svg
+ that have to be treated differently from the LaTeX-compatible versions;
+ for example,
+ apparently there is no direct way to know the bounding box of arbitrary svg
text.
<!-- text, as discussed
<a href="http://www.aditus.nu/jpgraph/jpg_svg.php" TARGET="_blank">here,</a>
for example. -->
Consequently, text placement is approximate and may require
manual adjustment.
- Rather than patch the original source files for svg production, edited copies
- have been used. The configuration file svg.m4 read by m4
- prior to libcct.m4 contains the following macros defined for svg.
- Others could be defined to exercise some of the media capabilties of svg.
- They are subject to change:
+ <li> Rather than patch the original source files for svg production,
+ edited copies have been used. The configuration file svg.m4 read by
+ m4 prior to libcct.m4 contains the following macros defined for svg.
+ Others could be defined to exercise some of the media capabilties
+ of svg. They are subject to change:
<ul>
<li>
m4tt`'svg_font(</g>font-face,nominal size[:dptextratio],textoffset,
@@ -275,9 +263,9 @@ There are other issues:
but many more could be added and they should be customized for
particular applications. Adjustments may also have to be made to
obtain the proper snap-to actions.
- <li> Link experiments: Click on the resistor or source of quickSVG
+ <li> Link experiments: Click on the resistor or source of quickDPV
to go to external
- files in new windows. Click on "n-port" in NportSVG to replace the diagram
+ files in new windows. Click on "n-port" in NportDPV to replace the diagram
and then "back" to return.
<li> Some of the assumptions used to create this draft may be
na&`#'239;ve.
@@ -293,269 +281,282 @@ There are other issues:
<table>
<tr>
<td width="50%">
-<table><tr>cfig(quickSVG,
- SVG produced by dpic,y)
-<!-- <tr> SVG produced by dpic --> </table>
+<p>
+<IMG SRC="quickDPV.svg">
+<br><br>
+Fig. m4inx (<a href="quickDPV.txt" TYPE="text/plain" TARGET="_blank"
+ alt="quickDPV">quickDPV.m4</a>):
+SVG produced by dpic changecom(,)&`#'8194;changecom(`#')
+</p>
+</td>
<td>
-<table><tr>cfig(quick,
- SVG produced from quick.pdf by dvisvgm,y)
-<!-- <tr> SVG produced from quick.pdf by dvisvgm --> </table>
+<p>
+<IMG SRC="quick.svg">
+<br><br>
+(<a href="quick.txt" TYPE="text/plain" TARGET="_blank"
+ alt="quick">quick.m4</a>):
+SVG produced from quick.pdf by dvisvgm changecom(,)&`#'8194;changecom(`#')
+</p>
+</td>
</table>
<hr>
-cfig(ResistorsSVG,
- Resistors, showing some variations and the ebox)
+cfig(ResistorsDPV,
+ Resistors`,' showing some variations and the ebox)
-cfig(CapacitorsSVG,
+cfig(CapacitorsDPV,
Capacitors)
-cfig(InductorsSVG,
+cfig(InductorsDPV,
Inductors)
-cfig(DiodesSVG,
+cfig(DiodesDPV,
Diodes: appending a m4tt`'K</g> to the second argument draws an open
arrowhead)
-cfig(EmarrowsSVG,
+cfig(EmarrowsDPV,
Radiation arrows)
-cfig(VariableSVG,
+cfig(VariableDPV,
Arrows and marks for showing variability)
-cfig(SourcesSVG,
+cfig(SourcesDPV,
Sources and source-like elements)
-cfig(AmpTableSVG,
+cfig(AmpTableDPV,
Macros m4tt`'amp`,' delay</g>`,' and m4tt`'integrator</g>)
-cfig(FusesSVG,
+cfig(FusesDPV,
Macros m4tt`'fuse</g> and m4tt`'cbreaker</g>)
-cfig(MoreTableSVG,
+cfig(ArrestersDPV,
+ The m4tt`'arrester</g> macro)
+
+cfig(MoreTableDPV,
Additional two-terminal elements)
-cfig(GroundsSVG,
+cfig(GroundsDPV,
Ground symbols)
-cfig(SwitchesSVG,
+cfig(SwitchesDPV,
The switch macros; m4tt`'switch(`,'`,'`,'L|B|D,attribs)</g>
is a wrapper for m4tt`'lswitch</g>`,' m4tt`'bswitch</g>`,'
and m4tt`'dswitch</g>)
-cfig(AntennasSVG,
+cfig(AntennasDPV,
Antenna symbols)
-cfig(OpampSVG,
+cfig(OpampDPV,
The opamp)
-cfig(AudioSVG,
+cfig(AudioDPV,
Audio elements)
-cfig(XformSVG,
+cfig(XformDPV,
Some variations of the transformer element`,' drawing direction down)
-cfig(NPDTSVG,
+cfig(NPDTDPV,
Double throw with the m4tt`'NPDT</g> macro)
-cfig(ContactSVG,
+cfig(ContactDPV,
A non-exhaustive sampling of m4tt`'contact</g> macro variations)
-cfig(ContactsSVG,
+cfig(ContactsDPV,
The m4tt`'contacts</g> macro)
-cfig(relaycoilSVG,
+cfig(relaycoilDPV,
The m4tt`'relaycoil</g> macro)
-cfig(RelaySVG,
+cfig(RelayDPV,
Some variants of m4tt`'relay</g>)
-cfig(JackSVG,
+cfig(JackDPV,
The m4tt`'jack</g> and m4tt`'plug</g> macros)
-cfig(ConnSVG,
+cfig(ConnDPV,
The m4tt`'tstrip`,' ccoax`,' tconn</g>`,' and m4tt`'tbox</g> macros)
-cfig(PconnSVG,
+cfig(PconnDPV,
The m4tt`'pconnex</g> macro)
-cfig(EVplugsSVG,
+cfig(EVplugsDPV,
Electric vehicle charging plug patterns make extensive
use of key=value pairs to set options)
-cfig(HeadersSVG,
+cfig(HeadersDPV,
The m4tt`'Header</g> macro)
-cfig(ConnectorsSVG,
+cfig(ConnectorsDPV,
Some integrated circuits and connectors with simple geometry
and lists of labels)
-cfig(ChipsSVG,
+cfig(ChipsDPV,
IC outlines)
-cfig(fetSVG,
+cfig(fetDPV,
FETs`,' showing programmable components and example customizations)
-cfig(ujtSVG,
+cfig(ujtDPV,
UJT examples)
-cfig(thyristorSVG,
+cfig(thyristorDPV,
Thyristor examples. The thyristor is a 3- or 4-terminal
composite element)
-cfig(BipSVG,
+cfig(BipDPV,
Bipolar transistors (drawing direction: up))
-cfig(TgateSVG,
+cfig(TgateDPV,
The m4tt`'tgate</g> and m4tt`'ptrans</g> elements)
-cfig(NportSVG,
+cfig(NportDPV,
The m4tt`'nport</g> and m4tt`'nterm</g> macros)
-cfig(NLGSVG,
+cfig(NLGDPV,
Some customizations of m4tt`'nport</g>)
-cfig(WindingsSVG,
+cfig(WindingsDPV,
The macro
m4tt`'winding(L|R`,'diam`,'pitch`,'turns`,'core wid`,'core color)</g>)
-cfig(ex01SVG,
+cfig(ex01DPV,
Two simple labeled circuits)
-cfig(ex02SVG,
+cfig(ex02DPV,
Elements at obtuse angles)
-cfig(OptoisoSVG,
+cfig(OptoisoDPV,
Optical isolator: a circuit with right or left orientation)
-cfig(MixerSVG,
+cfig(MixerDPV,
A balanced mixer`,' using m4tt`'mosfet</g> and a custom transformer)
-cfig(PushPullSVG,
+cfig(PushPullDPV,
A push-pull mixer`,' showing FETs with multiple gates)
-cfig(QuantumSVG,
+cfig(QuantumDPV,
A quantum circuit)
-cfig(SQUIDSVG,
+cfig(SQUIDDPV,
Superconducting quantum interface device (drawing direction down))
-cfig(SixpoleSVG,
+cfig(SixpoleDPV,
A six-pole filter)
-cfig(ex18SVG,
+cfig(ex18DPV,
Precision half-wave rectifier and a tunnel diode circuit
(illustrating m4tt`'opamp`,' diode`,' resistor`,' ground`,'</g>
and labels))
-cfig(ex10SVG,
+cfig(ex10DPV,
Non-planar graph and bistable circuit
(illustrating the m4tt`'crossover</g> macro and colored elements))
-cfig(ThreeSVG,
+cfig(ThreeDPV,
Three-phase oscillator)
-cfig(MCSVG,
+cfig(MCDPV,
A three-phase switched AC-AC converter and a DC-DC converter)
-cfig(ex17SVG,
+cfig(ex17DPV,
A repetitive network created by Pic looping and
a skewed circuit used to test the macro m4tt`'parallel_</g>)
-cfig(ex12SVG,
+cfig(ex12DPV,
A CMOS NAND gate`,' a test circuit`,' and an XMOSFET example)
-cfig(pwrsupplySVG,
+cfig(pwrsupplyDPV,
An elementary power supply circuit with colored elements`,'
and a multiple-winding transformer with 3-phase rectifier)
-cfig(TTLnandSVG,
+cfig(TTLnandDPV,
TTL NAND gate illustrating a transistor with multiple emitters)
-cfig(I2LSVG,
+cfig(I2LDPV,
Gate circuit and equivalent embedded components
illustrating multiple collectors)
-cfig(SchottkySVG,
+cfig(SchottkyDPV,
A 4-input NAND circuit illustrating the m4tt`'S</g> (Schottky)
option of m4tt`'bi_trans</g>)
-cfig(ex11SVG,
+cfig(ex11DPV,
Transistor radio audio chain)
-cfig(ex04SVG,
+cfig(ex04DPV,
Labels on non-manhattan elements)
-cfig(CsourceSVG,
+cfig(CsourceDPV,
Realization of a controlled source
(illustrating stacked element labels))
-cfig(DriveSVG,
+cfig(DriveDPV,
Synchronous machine driven by variable-speed drive and rectifier)
-cfig(ex16SVG,
+cfig(ex16DPV,
A rate 1/2 binary convolutional coder and its state diagram)
-cfig(ex03SVG,
+cfig(ex03DPV,
Digital filter)
-cfig(MotorControlSVG,
+cfig(MotorControlDPV,
Motor control connections)
-cfig(RectifiersSVG,
+cfig(RectifiersDPV,
Rectifier circuits and waveforms)
-cfig(HeathkitSVG,
+cfig(HeathkitDPV,
The power supply of a Heathkit AR-15 (Now`,' <i>that</i>
was a receiver!) with custom transformer and other elements`,'
drawn on a grid (partially shown) to aid in placement)
-cfig(lcctSVG,
+cfig(lcctDPV,
A digital circuit of moderate size`,'
redrawn from M. P. Maclenan and G. M. Burns`,'
"An Approach to Drawing Circuit Diagrams for Text Books`,'"
Tugboat (12)1`,' March 1991`,' pp. 66-69)
-cfig(TubediagsSVG,
+cfig(TubediagsDPV,
Electron-tube diagrams: a few bottom-view base diagrams`,'
a generic triode test circuit`,' and a 25-watt audio amplifier adapted
from F. Langford-Smith`,' <i>Radiotron Designers Handbook</i>`,' fourth
edition`,' Harrison`,' NJ: Radio Corporation of America`,' 1952)
-cfig(UNOSVG,
+cfig(UNODPV,
An Arduino UNO circuit adapted and redrawn)
-cfig(sfgSVG,
+cfig(sfgDPV,
Signal-flow graphs)
-cfig(LogicSVG,
+cfig(LogicDPV,
Basic logic gates)
-cfig(ex08SVG,
+cfig(ex08DPV,
General-purpose latch: a small logic circuit)
-cfig(DecoderSVG,
+cfig(DecoderDPV,
Decoder logic`,' constructed using the m4tt`'for_</g> macro)
-cfig(ex21SVG,
+cfig(ex21DPV,
Some flip-flops)
-cfig(MultiplexerSVG,
+cfig(MultiplexerDPV,
Multiplexer)
-cfig(DemultiplexerSVG,
+cfig(DemultiplexerDPV,
Demultiplexer)
-cfig(ShiftRSVG,
+cfig(ShiftRDPV,
A 5-bit shift register drawn using a custom flip-flop)
-cfig(AdderSVG,
+cfig(AdderDPV,
A full adder and a cascade of n-bit adders)
-cfig(CanLogicSVG,
+cfig(CanLogicDPV,
A way of automatically drawing two-layer logic diagrams)
-cfig(AlogixSVG,
+cfig(AlogixDPV,
The m4tt`'Autologix(`'<i>Boolean expression</i>;
<i>Boolean expression</i>... `,' <i>options</i>)</g>
macro automatically draws Boolean expressions in function notation.
@@ -564,7 +565,7 @@ cfig(AlogixSVG,
a custom element at the top`,' and a tree of gates only is shown
on the right.)
-cfig(ABlogixSVG,
+cfig(ABlogixDPV,
The m4tt`'Autologix</g> macro can draw inputs on the left but
the added drawing complexity may require hand tuning with
second-argument options: m4tt`'L</g> puts the inputs on the left`,'
@@ -572,39 +573,47 @@ cfig(ABlogixSVG,
in reverse order`,' and m4tt`'offset=</g>`'<i>value</i> displaces
the array of inputs)
-cfig(XORSVG,
+cfig(XORDPV,
Realizations of the XOR function using m4tt`'Autologix</g>)
-cfig(EEPSVG,
+cfig(ex00DPV,
+ Line diagrams)
+
+cfig(EEPDPV,
Part of a single-line diagram of a power distribution system
using draft elements)
-cfig(paletteSVG,
- A draft palette of a few elements for Inkscape using
- a 1 mm grid)
-
-cfig(ex00SVG,
- Line diagrams)
-
-cfig(controlSVG,
- Control-system block diagrams)
+cfig(ex05DPV,
+ Use of m4tt`'darrow</g> and m4tt`'Darc</g>)
-cfig(GrayCodeSVG,
+cfig(GrayCodeDPV,
Gray code 10-bit encoder disk pattern`,'
and a crossbar switch)
-cfig(ByteSVG,
+cfig(controlDPV,
+ Control-system block diagrams)
+
+cfig(ByteDPV,
Elementary splines)
-cfig(RotboxSVG,
+cfig(RotboxDPV,
The macro
m4tt`'rotbox(<i>wid,ht,type,</i>[r|t=<i>val</i>])</g>
draws a box in the current direction)
-cfig(ex06SVG,
+cfig(ex06DPV,
Crosshatching)
-cfig(ex09SVG,
+cfig(GeometryDPV,
+ Plane geometry examples)
+
+cfig(LoglogDPV,
+ Graphs drawn using the pic language)
+
+cfig(SmithchartDPV,
+ A Smith chart)
+
+cfig(ex09DPV,
Illustrating the macro
m4tt`'dimension_(<i>linespec`,' offset`,' label`,' </i>
H|W|D|<i>blank width</i>`,' <i>tic offset</i>`,' <-|->)</g>.
@@ -621,94 +630,81 @@ cfig(ex09SVG,
specifies the arc to be dimensioned and the second argument is
the outward radial offset of the dimension arrow arc.)
-cfig(PlateSVG,
+cfig(PlateDPV,
Dimensioning with tolerances according to ASME Y14.5)
Use of m4tt`'darrow</g> and m4tt`'Darc</g>)
-cfig(ex05SVG,
- Use of m4tt`'darrow</g> and m4tt`'Darc</g>)
-
-cfig(LoglogSVG,
- Graphs drawn using the pic language)
-
-cfig(GeometrySVG,
- Plane geometry examples)
-
-cfig(randomSVG,
+cfig(randomDPV,
Testing random number generation
using dpic macro
m4tt`'randn(</g><g
style="font-family:italic">array name`,' mean`,' std dev</g>m4tt`')</g>
which calls dpic built-in m4tt`'rand()</g>)
-cfig(expSVG,
+cfig(expDPV,
Test of m4tt`'project</g> and other m4tt`'lib3D</g>
macros`,' showing the projection of a solid onto
the <i>y1`,'z1</i> plane by sighting along the x1 axis.)
-cfig(graysurfSVG,
+cfig(graysurfDPV,
Plotting surfaces using gray scales)
-cfig(shapesSVG,
+cfig(shapesDPV,
Basic shapes)
-cfig(keyboardSVG,
- More objects drawn in relief)
-
-cfig(cscSVG,
+cfig(cscDPV,
Conestoga Sailing Club (illustrating the filling of arbitrary shapes)`,'
and an antique clock face with shading and rotated text)
-cfig(roseSVG,
+cfig(roseDPV,
A window redrawn from a detail of the set design for the musical
<i>Dracula</i>`,' used for testing m4tt`'dpic</g>`,'
and an experimental halftone. This diagram
consumes much LaTeX main memory but can be produced
directly as pdf using m4tt`'dpic -d</g>`,'
- as svg using m4tt`'dpic -g</g>`,'
+ as svg using m4tt`'dpic -v</g>`,'
or as postscript using m4tt`'dpic -r</g>
- since no text formatting is required. The right object
- adjusts the size of dots to produce a halftone effect)
+ since no text formatting is required)
-cfig(diamondSVG,
+cfig(diamondDPV,
Variations on M. Goossens`,' S. Rahtz`,' and F. Mittelbach`,'
<i>The LaTeX Graphics Companion</i>`,' Addison-Wesley 1997`,' pp. 57-58)
-cfig(wormSVG,
+cfig(wormDPV,
An exercise in calculating RGB colours)
-cfig(ButtonsSVG,
+cfig(ButtonsDPV,
Shading in color)
-cfig(DiniSVG,
+cfig(keyboardDPV,
+ More objects drawn in relief)
+
+cfig(DiniDPV,
Dini surface and an icosahedron)
-cfig(SierpinskiSVG,
+cfig(SierpinskiDPV,
The Sierpinski triangle and a Cayley graph:
tests of pic macro recursion)
-cfig(EscherSVG,
+cfig(EscherDPV,
Penrose stairs and an Escher-like object)
-cfig(recycleSVG,
+cfig(recycleDPV,
Modest repetition and partial fill)
-cfig(ex15SVG,
+cfig(ex15DPV,
Simple diagrams that are easily drawn by looping)
-cfig(SmithchartSVG,
- A Smith chart at 3/4 scale)
-
<!--
-#fig(CountingSVG,
+#fig(CountingDPV,
# An example of enumeration)
-->
-cfig(CrowSVG,
+cfig(CrowDPV,
Illustrating m4tt`'shadebox</g> and a custom crowfoot line
termination)
-cfig(FlowSVG,
+cfig(FlowDPV,
A flowchart sampler)
<!-- <p>
More flow-chart examples? Try
@@ -716,13 +712,17 @@ cfig(FlowSVG,
TARGET="_blank">here.</a>
</p> -->
-cfig(BtreeSVG,
+cfig(BtreeDPV,
Trees)
-cfig(InclepsSVG,
- Overlaying a figure with line graphics)
+cfig(InclepsDPV,
+ Overlaying a figure with line graphics,,OBJECT)
+
+cfig(paletteDPV,
+ A draft palette of a few elements for Inkscape using
+ a 1 mm grid)
-cfig(FontsSVG)
+cfig(FontsDPV)
</td>
</tr>
diff --git a/graphics/circuit_macros/examples/dpv/examplesDPVs.html b/graphics/circuit_macros/examples/dpv/examplesDPVs.html
new file mode 100644
index 0000000000..8ce1912911
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/examplesDPVs.html
@@ -0,0 +1,417 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<HTML>
+<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<!--meta http-equiv="Content-Script-Type" content="text/javascript"-->
+<TITLE>SVG Examples: Circuit_macros Version 10.1</TITLE>
+<meta name="keywords" content="HTML"
+content='Circuit elements, basic circuits, logic circuits and other diagrams,
+electric circuits, resistor, capacitor, inductor, diode, sources, amplifier,
+integrator, fuse, switch, antenna, opamp, transformer, relay, contact, jack,
+plug, FET, UJT, thyristor, bipolar transistor, nport, windings, timer,
+optical isolator, rectifier, bistable, oscillator, CMOS, MOSFET, power supply,
+NAND gate, controlled source, synchronous machine, digital circuit, signal-flow
+graph, latch, decoder, flipflop, full adder, logic diagram, crossbar switch,
+dimensioning, control system, graph, RGB colors, recursion, binary tree,
+flowcharts, picture overlay, ASME Y14.5' >
+
+<style type="text/css">
+</style>
+<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
+</HEAD>
+
+<!-- m4 macros: ------------------------------------------------------------
+
+
+
+
+
+
+
+--------------------------------------------------------------------- -->
+
+<BODY>
+<table cellpadding="0" cellspacing="0"
+ width="700px" border="0" align="center" ><tr><td>
+
+<H2>SVG Circuit_macros examples, Version 10.1</H2>
+
+<A HREF="../../index.html">Home</A>
+&#62;
+<A HREF="examples.html">Examples</A>
+&#62;
+<A HREF="examplesDPVs.html">dpv</A>
+
+<hr>
+
+<p>
+ This file shows a few diagrams in .svg format produced without the use of
+ LaTeX or equivalent.
+The diagrams have been adapted from the Circuit_macros
+examples in order to test the svg output of dpic.
+To generate the equivalent for all the examples, go to the
+examples/dpv directory and type "make". Typing "make examplesDPVs.html"
+produces the selection shown here.
+</p>
+<p>
+Generating svg line
+art is straightforward but formatting text is not because TeX, LaTeX,
+and related word processors do not produce svg directly. Either
+less-sophisticated text formatting must be employed for svg or an
+ <A HREF="https://en.wikibooks.org/wiki/LaTeX/Export_To_Other_Formats">
+ intermediate format</A>
+such as pdf can be
+produced, followed by an additional processing step to convert to svg.
+Two possibilities for the latter are
+ <A HREF="https://www.ctan.org/pkg/dvisvgm">dvisvgm --pdf</A>
+and
+ <A HREF="https://github.com/dawbarton/pdf2svg">pdf2svg</A>.
+However, many circuit and similar diagrams intended for the web do not
+require sophisticated labels; the examples shown below might
+be representative. Compare them to those in
+ <A HREF="examples.html" TARGET="_blank">examples.html</A>
+</p>
+<p>
+ Click on the link to view the source of each diagram.
+</p>
+<hr>
+<p>
+There are other issues:
+<ul>
+ <li> The default font face is not specified in all of these diagrams but is
+ inherited from the enclosing document, so the appearance of labels can
+ differ depending on the browser. Some of these diagrams set the font at
+ the beginning of the diagram source.
+ <li> Diagrams such as these contain text labels
+ that have to be treated differently from the LaTeX-compatible versions;
+ for example,
+ apparently there is no direct way to know the bounding box of arbitrary svg
+ text.
+ <!-- text, as discussed
+ <a href="http://www.aditus.nu/jpgraph/jpg_svg.php" TARGET="_blank">here,</a>
+ for example. -->
+ Consequently, text placement is approximate and may require
+ manual adjustment.
+ <li> Rather than patch the original source files for svg production,
+ edited copies have been used. The configuration file svg.m4 read by
+ m4 prior to libcct.m4 contains the following macros defined for svg.
+ Others could be defined to exercise some of the media capabilties
+ of svg. They are subject to change:
+ <ul>
+ <li>
+ <g style="font-family:monospace">svg_font(</g>font-face,nominal size[:dptextratio],textoffset,
+ dpic commands<g style="font-family:monospace">)</g>:
+ Change font face, size, textratio and dpic textoffset parameters.
+ Change font face and dpic <g style="font-family:monospace">textht</g>, <g style="font-family:monospace">dptextratio</g>,
+ and <g style="font-family:monospace">textoffset</g> parameters.
+ If arg4 is blank, the font is changed and
+ requires <g style="font-family:monospace">command "&lt;/g&gt;"</g> to cancel the font change.
+ <br>
+ Note:
+ Nominal height = text height in drawing units; actual height =
+ nominal ht x <g style="font-family:monospace">dptextratio</g>.
+ <br>
+ Examples: <br>
+ <g style="font-family:monospace">svg_font(Times)</g><br>
+ <g style="font-family:monospace">svg_font(Times,14bp__)</g><br>
+ <g style="font-family:monospace">svg_font(sans-serif,14bp__:0.71)</g><br>
+ <g style="font-family:monospace">svg_font(Times,11bp__,1bp__,"text" at A)</g><br>
+ <g style="font-family:monospace">svg_font(font-family="Times")</g><br>
+ <g style="font-family:monospace">svg_font(font-family="Times" font-style="italic")</g><br>
+ <g style="font-family:monospace">svg_font(style="font-family:Times; font-style:italic")</g>
+ <li><g style="font-family:monospace"> svgfontratio(</g>font name<g style="font-family:monospace">)</g>;
+ Reasonable <g style="font-family:monospace">dptextratio</g> value for common fonts, used
+ by <g style="font-family:monospace">svg_font</g>.
+ <li><g style="font-family:monospace"> svg_tspan(</g>text attributes, text<g style="font-family:monospace">)</g>;
+ e.g. <g style="font-family:monospace">svg_tspan(font-style="italic" font-size="75%",XYZ)</g>
+ <li><g style="font-family:monospace"> svg_it(</g>text<g style="font-family:monospace">)</g>: for italics
+ <li><g style="font-family:monospace"> svg_tt(</g>text<g style="font-family:monospace">)</g>: for monospace (courier)
+ <li><g style="font-family:monospace"> svg_sf(</g>text<g style="font-family:monospace">)</g>: sans-serif (Helvetica)
+ <li><g style="font-family:monospace"> svg_norm(</g>text<g style="font-family:monospace">)</g>: for normal text
+ <li><g style="font-family:monospace"> svg_bf(</g>text<g style="font-family:monospace">)</g>: for bold face
+ <li><g style="font-family:monospace"> svg_small(</g>text, percent<g style="font-family:monospace">)</g>:
+ to set a smaller text size, default 66
+ <li><g style="font-family:monospace"> svg_fsize(</g>text, percent<g style="font-family:monospace">)</g>:
+ for setting larger or smaller text size, default 100
+ <li><g style="font-family:monospace"> svg_sub(</g>text, size percent, y displ, x displ<g style="font-family:monospace">)</g>:
+ subscript
+ <li><g style="font-family:monospace"> svg_ul(</g>text<g style="font-family:monospace">)</g>: underlined text
+ <li><g style="font-family:monospace"> svg_ol(</g>text<g style="font-family:monospace">)</g>: overlined text
+ <li><g style="font-family:monospace"> svg_sup(</g>text, size percent, y displ, x displ<g style="font-family:monospace">)</g>:
+ superscript
+ <li><g style="font-family:monospace"> svg_hat(</g>character<g style="font-family:monospace">)</g>: circumflex-accented character
+ <li><g style="font-family:monospace"> svg_frac(</g>numerator[:wid], denominator[:wid]<g style="font-family:monospace">)</g>:
+ basic fraction, wid in drawing units
+ <li><g style="font-family:monospace"> svg_rot(</g>degrees, "text" [at position]<g style="font-family:monospace">)</g>:
+ Rotate text degrees (default 90) ccw.
+ Requires <g style="font-family:monospace">svg_rot_init(</g>filename<g style="font-family:monospace">)</g> and the source
+ must be processed twice.
+ <li><g style="font-family:monospace"> svg_rot_init(</g>filename<g style="font-family:monospace">)</g>:
+ filename is the basename of the output of
+ <g style="font-family:monospace">dpic -v filename.pic > filename.svg<g style="font-family:monospace">
+ <li><g style="font-family:monospace"> svg_symbol(</g>text<g style="font-family:monospace">)</g>: allow quoted pound sign in text,
+ e.g., <g style="font-family:monospace">svg_symbol(10&&#96;&#35;&#39;176;)</g> produces 10&#176;
+ <li><g style="font-family:monospace"> svgLink(</g>URL, drawing object, <g style="font-family:monospace">[B])</g>:
+ link to external file using
+ &lt;a xlink:href=...&gt;...&lt;/a&gt; (default is
+ <g style="font-family:monospace">target="_blank"</g> unless
+ arg 3 = B)
+ <li><g style="font-family:monospace"> svgLinkString</g> as above but for strings attached to objects
+ <li> Greek and other symbols:
+
+<!--
+ Reference:
+ https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
+ and
+ https://www.toptal.com/designers/htmlarrows/math/
+ -->
+<table cellpadding="2" cellspacing="0" width="75%" >
+<tr>
+<td width="10%"> <g style="font-family:monospace"> svg_alpha</g> <td align="left"> &#945;
+<td width="10%"> <g style="font-family:monospace"> svg_beta</g> <td align="left"> &#946;
+<td width="10%"> <g style="font-family:monospace"> svg_Gamma</g> <td align="left"> &#915;
+<td width="10%"> <g style="font-family:monospace"> svg_gamma</g> <td align="left"> &#947;
+<td width="10%"> <g style="font-family:monospace"> svg_Delta</g> <td align="left"> &#916;
+<td width="10%"> <g style="font-family:monospace"> svg_delta</g> <td align="left"> &#948;
+<td width="10%"> <g style="font-family:monospace"> svg_epsilon</g> <td align="left"> &#949;
+<td width="10%"> <g style="font-family:monospace"> svg_zeta</g> <td align="left"> &#950;
+</tr>
+<tr>
+<td width="10%"> <g style="font-family:monospace"> svg_eta</g> <td align="left"> &#951;
+<td width="10%"> <g style="font-family:monospace"> svg_Theta</g> <td align="left"> &#920;
+<td width="10%"> <g style="font-family:monospace"> svg_theta</g> <td align="left"> &#952;
+<td width="10%"> <g style="font-family:monospace"> svg_iota</g> <td align="left"> &#953;
+<td width="10%"> <g style="font-family:monospace"> svg_kappa</g> <td align="left"> &#954;
+<td width="10%"> <g style="font-family:monospace"> svg_Lambda</g> <td align="left"> &#923;
+<td width="10%"> <g style="font-family:monospace"> svg_lambda</g> <td align="left"> &#955;
+<td width="10%"> <g style="font-family:monospace"> svg_mu</g> <td align="left"> &#956;
+</tr>
+<tr>
+<td width="10%"> <g style="font-family:monospace"> svg_nu</g> <td align="left"> &#957;
+<td width="10%"> <g style="font-family:monospace"> svg_Xi</g> <td align="left"> &#926;
+<td width="10%"> <g style="font-family:monospace"> svg_xi</g> <td align="left"> &#958;
+<td width="10%"> <g style="font-family:monospace"> svg_Pi</g> <td align="left"> &#928;
+<td width="10%"> <g style="font-family:monospace"> svg_pi</g> <td align="left"> &#960;
+<td width="10%"> <g style="font-family:monospace"> svg_rho</g> <td align="left"> &#961;
+<td width="10%"> <g style="font-family:monospace"> svg_Sigma</g> <td align="left"> &#931;
+<td width="10%"> <g style="font-family:monospace"> svg_sigma</g> <td align="left"> &#963;
+</tr>
+<tr>
+<td width="10%"> <g style="font-family:monospace"> svg_tau</g> <td align="left"> &#964;
+<td width="10%"> <g style="font-family:monospace"> svg_upsilon</g> <td align="left"> &#965;
+<td width="10%"> <g style="font-family:monospace"> svg_Phi</g> <td align="left"> &#934;
+<td width="10%"> <g style="font-family:monospace"> svg_phi</g> <td align="left"> &#966;
+<td width="10%"> <g style="font-family:monospace"> svg_chi</g> <td align="left"> &#967;
+<td width="10%"> <g style="font-family:monospace"> svg_Psi</g> <td align="left"> &#936;
+<td width="10%"> <g style="font-family:monospace"> svg_psi</g> <td align="left"> &#968;
+<td width="10%"> <g style="font-family:monospace"> svg_Omega</g> <td align="left"> &#937;
+</tr>
+<tr>
+<td width="10%"> <g style="font-family:monospace"> svg_omega</g> <td align="left"> &#969;
+<td width="10%"> <g style="font-family:monospace"> svg_micro</g> <td align="left"> &#956;
+<td width="10%"> <g style="font-family:monospace"> svg_ohm</g> <td align="left"> &#937;
+<td width="10%"> <g style="font-family:monospace"> svg_lt</g> <td align="left"> &#60;
+<td width="10%"> <g style="font-family:monospace"> svg_gt</g> <td align="left"> &#62;
+<td width="10%"> <g style="font-family:monospace"> svg_leq</g> <td align="left"> &#8804;
+<td width="10%"> <g style="font-family:monospace"> svg_geq</g> <td align="left"> &#8805;
+<td width="10%"> <g style="font-family:monospace"> svg_prime</g> <td align="left"> &#8242;
+</tr>
+<tr>
+<td width="10%"> <g style="font-family:monospace"> svg_backsl</g> <td align="left"> &#92;
+<td width="10%"> <g style="font-family:monospace"> svg_pound</g> <td align="left"> &#35;
+<td width="10%"> <g style="font-family:monospace"> svg_comma</g> <td align="left"> &#44;
+<td width="10%"> <g style="font-family:monospace"> svg_lparen</g> <td align="left"> &#40;
+<td width="10%"> <g style="font-family:monospace"> svg_rparen</g> <td align="left"> &#41;
+<td width="10%"> <g style="font-family:monospace"> svg_circ</g> <td align="left"> &#710;
+<td width="10%"> <g style="font-family:monospace"> svg_deg</g> <td align="left"> &#176;
+<td width="10%"> <g style="font-family:monospace"> svg_grave</g> <td align="left"> &#96;
+</tr>
+</table>
+<table cellpadding="2" cellspacing="0" width="75%" >
+<tr>
+<td width="8%"> <g style="font-family:monospace"> svg_emsp</g> <td width="50px" align="left"> |&#8195;|
+<td width="8%"> <g style="font-family:monospace"> svg_ensp</g> <td width="50px" align="left"> |&#8194;|
+<td width="8%"> <g style="font-family:monospace"> svg_thinsp</g> <td width="50px" align="left"> |&#8201;|
+</tr>
+</table>
+
+ </ul>
+ <li> Inkscape: It may be efficient to define elements by macro and to
+ place them using a wysiwyg graphics editor. A draft page intended
+ for Inkscape is included. A reasonable variety of elements is defined
+ but many more could be added and they should be customized for
+ particular applications. Adjustments may also have to be made to
+ obtain the proper snap-to actions.
+ <li> Link experiments: Click on the resistor or source of quickDPV
+ to go to external
+ files in new windows. Click on "n-port" in NportDPV to replace the diagram
+ and then "back" to return.
+ <li> Some of the assumptions used to create this draft may be
+ na&#239;ve.
+ Comments are welcome.
+</ul>
+
+<!--
+<embed pluginspage="http://www.adobe.com/svg/viewer/install/" />
+-->
+
+<hr>
+
+<table>
+<tr>
+<td width="50%">
+<p>
+<IMG SRC="quickDPV.svg">
+<br><br>
+Fig. 1 (<a href="quickDPV.txt" TYPE="text/plain" TARGET="_blank"
+ alt="quickDPV">quickDPV.m4</a>):
+SVG produced by dpic &#8194;
+</p>
+</td>
+<td>
+<p>
+<IMG SRC="quick.svg">
+<br><br>
+(<a href="quick.txt" TYPE="text/plain" TARGET="_blank"
+ alt="quick">quick.m4</a>):
+SVG produced from quick.pdf by dvisvgm &#8194;
+</p>
+</td>
+</table>
+
+<hr>
+
+
+
+<p>
+ <IMG SRC="ConnectorsDPV.svg">
+ <br><br>
+Fig. 2 (<a
+ href="ConnectorsDPV.txt" TYPE="text/plain" TARGET="_blank" alt="ConnectorsDPV">ConnectorsDPV.m4</a>):
+Some integrated circuits and connectors with simple geometry
+ and lists of labels &#8194;
+</p>
+<hr>
+
+
+
+<p>
+ <IMG SRC="NportDPV.svg">
+ <br><br>
+Fig. 3 (<a
+ href="NportDPV.txt" TYPE="text/plain" TARGET="_blank" alt="NportDPV">NportDPV.m4</a>):
+The <g style="font-family:monospace">nport</g> and <g style="font-family:monospace">nterm</g> macros &#8194;
+</p>
+<hr>
+
+
+
+<p>
+ <IMG SRC="ex01DPV.svg">
+ <br><br>
+Fig. 4 (<a
+ href="ex01DPV.txt" TYPE="text/plain" TARGET="_blank" alt="ex01DPV">ex01DPV.m4</a>):
+Two simple labeled circuits &#8194;
+</p>
+<hr>
+
+
+
+<p>
+ <IMG SRC="CsourceDPV.svg">
+ <br><br>
+Fig. 5 (<a
+ href="CsourceDPV.txt" TYPE="text/plain" TARGET="_blank" alt="CsourceDPV">CsourceDPV.m4</a>):
+Realization of a controlled source
+ (illustrating stacked element labels) &#8194;
+</p>
+<hr>
+
+
+
+<p>
+ <IMG SRC="HeathkitDPV.svg">
+ <br><br>
+Fig. 6 (<a
+ href="HeathkitDPV.txt" TYPE="text/plain" TARGET="_blank" alt="HeathkitDPV">HeathkitDPV.m4</a>):
+The power supply of a Heathkit AR-15 (Now, <i>that</i>
+ was a receiver!) with custom transformer and other elements,
+ drawn on a grid (partially shown) to aid in placement &#8194;
+</p>
+<hr>
+
+
+
+<p>
+ <IMG SRC="EEPDPV.svg">
+ <br><br>
+Fig. 7 (<a
+ href="EEPDPV.txt" TYPE="text/plain" TARGET="_blank" alt="EEPDPV">EEPDPV.m4</a>):
+Part of a single-line diagram of a power distribution system
+ using draft elements &#8194;
+</p>
+<hr>
+
+
+
+<p>
+ <IMG SRC="controlDPV.svg">
+ <br><br>
+Fig. 8 (<a
+ href="controlDPV.txt" TYPE="text/plain" TARGET="_blank" alt="controlDPV">controlDPV.m4</a>):
+Control-system block diagrams &#8194;
+</p>
+<hr>
+
+
+<p>
+ <IMG SRC="ByteDPV.svg">
+ <br><br>
+Fig. 9 (<a
+ href="ByteDPV.txt" TYPE="text/plain" TARGET="_blank" alt="ByteDPV">ByteDPV.m4</a>):
+Elementary splines &#8194;
+</p>
+<hr>
+
+
+
+<p>
+ <IMG SRC="FlowDPV.svg">
+ <br><br>
+Fig. 10 (<a
+ href="FlowDPV.txt" TYPE="text/plain" TARGET="_blank" alt="FlowDPV">FlowDPV.m4</a>):
+A flowchart sampler &#8194;
+</p>
+<hr>
+ <!-- <p>
+ More flow-chart examples? Try
+ <a href="https://buraphakit.sourceforge.io/EFI/EFI_2019_S2_W13.shtml"
+ TARGET="_blank">here.</a>
+ </p> -->
+
+
+
+
+<p>
+ <IMG SRC="paletteDPV.svg">
+ <br><br>
+Fig. 11 (<a
+ href="paletteDPV.txt" TYPE="text/plain" TARGET="_blank" alt="paletteDPV">paletteDPV.m4</a>):
+A draft palette of a few elements for Inkscape using
+ a 1 mm grid &#8194;
+</p>
+<hr>
+
+
+<p>
+ <IMG SRC="FontsDPV.svg">
+
+</p>
+<hr>
+
+</td>
+</tr>
+</table>
+</BODY>
+</HTML>
diff --git a/graphics/circuit_macros/examples/dpv/examplesDPVs.htmx b/graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
new file mode 100644
index 0000000000..7ad5f84e9f
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
@@ -0,0 +1,741 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<HTML>
+<HEAD>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<!--meta http-equiv="Content-Script-Type" content="text/javascript"-->
+<TITLE>SVG Examples: Circuit_macros Version XXX</TITLE>
+<meta name="keywords" content="HTML"
+content='Circuit elements, basic circuits, logic circuits and other diagrams,
+electric circuits, resistor, capacitor, inductor, diode, sources, amplifier,
+integrator, fuse, switch, antenna, opamp, transformer, relay, contact, jack,
+plug, FET, UJT, thyristor, bipolar transistor, nport, windings, timer,
+optical isolator, rectifier, bistable, oscillator, CMOS, MOSFET, power supply,
+NAND gate, controlled source, synchronous machine, digital circuit, signal-flow
+graph, latch, decoder, flipflop, full adder, logic diagram, crossbar switch,
+dimensioning, control system, graph, RGB colors, recursion, binary tree,
+flowcharts, picture overlay, ASME Y14.5' >
+
+<style type="text/css">
+</style>
+<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
+</HEAD>
+
+<!-- m4 macros: ------------------------------------------------------------
+define(`ifinstr',`ifelse(`$2',,`$1',index(`$1',`$2'),-1,
+ `ifinstr(shift(shift(shift($@))))',`$3')')
+define(`m4inx',`define(`m4x',ifdef(`m4x',`incr(m4x)',1))m4x')
+
+define(`m4tt',`<g style="font-family:monospace">')
+
+ dnl cfig( svg filename, [textfile], [y], [OBJECT] )
+define(`cfig',`
+<p>
+ dnl The object type is needed for the overlay
+ dnl example
+ifelse(`$4',OBJECT,
+`<object data="$1.svg" type="image/svg+xml" class="img"></object>',
+`<IMG SRC="$1.svg">')
+ dnl
+ifelse(`$2',,,`<br><br>
+Fig. m4inx (<a
+ href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4</a>):
+`$2' changecom(,)&`#'8194;changecom(`#')')
+</p>
+ifinstr(`$3',y,,`<hr>')')
+
+--------------------------------------------------------------------- -->
+
+<BODY>
+<table cellpadding="0" cellspacing="0"
+ width="700px" border="0" align="center" ><tr><td>
+
+<H2>SVG Circuit_macros examples, Version XXX</H2>
+
+<A HREF="../../index.html">Home</A>
+&#62;
+<A HREF="examples.html">Examples</A>
+&#62;
+<A HREF="examplesDPVs.html">dpv</A>
+
+<hr>
+
+<p>
+ This file shows a few diagrams in .svg format produced without the use of
+ LaTeX or equivalent.
+The diagrams have been adapted from the Circuit_macros
+examples in order to test the svg output of dpic.
+To generate the equivalent for all the examples, go to the
+examples/dpv directory and type "make". Typing "make examplesDPVs.html"
+produces the selection shown here.
+</p>
+<p>
+Generating svg line
+art is straightforward but formatting text is not because TeX, LaTeX,
+and related word processors do not produce svg directly. Either
+less-sophisticated text formatting must be employed for svg or an
+ <A HREF="https://en.wikibooks.org/wiki/LaTeX/Export_To_Other_Formats">
+ intermediate format</A>
+such as pdf can be
+produced, followed by an additional processing step to convert to svg.
+Two possibilities for the latter are
+ <A HREF="https://www.ctan.org/pkg/dvisvgm">dvisvgm --pdf</A>
+and
+ <A HREF="https://github.com/dawbarton/pdf2svg">pdf2svg</A>.
+However, many circuit and similar diagrams intended for the web do not
+require sophisticated labels; the examples shown below might
+be representative. Compare them to those in
+ <A HREF="examples.html" TARGET="_blank">examples.html</A>
+</p>
+<p>
+ Click on the link to view the source of each diagram.
+</p>
+<hr>
+<p>
+There are other issues:
+<ul>
+ <li> The default font face is not specified in all of these diagrams but is
+ inherited from the enclosing document, so the appearance of labels can
+ differ depending on the browser. Some of these diagrams set the font at
+ the beginning of the diagram source.
+ <li> Diagrams such as these contain text labels
+ that have to be treated differently from the LaTeX-compatible versions;
+ for example,
+ apparently there is no direct way to know the bounding box of arbitrary svg
+ text.
+ <!-- text, as discussed
+ <a href="http://www.aditus.nu/jpgraph/jpg_svg.php" TARGET="_blank">here,</a>
+ for example. -->
+ Consequently, text placement is approximate and may require
+ manual adjustment.
+ <li> Rather than patch the original source files for svg production,
+ edited copies have been used. The configuration file svg.m4 read by
+ m4 prior to libcct.m4 contains the following macros defined for svg.
+ Others could be defined to exercise some of the media capabilties
+ of svg. They are subject to change:
+ <ul>
+ <li>
+ m4tt`'svg_font(</g>font-face,nominal size[:dptextratio],textoffset,
+ dpic commands`'m4tt)</g>:
+ Change font face, size, textratio and dpic textoffset parameters.
+ Change font face and dpic m4tt`'textht</g>, m4tt`'dptextratio</g>,
+ and m4tt`'textoffset</g> parameters.
+ If arg4 is blank, the font is changed and
+ requires m4tt`'command "&lt;/g&gt;"</g> to cancel the font change.
+ <br>
+ Note:
+ Nominal height = text height in drawing units; actual height =
+ nominal ht x m4tt`'dptextratio</g>.
+ <br>
+ Examples: <br>
+ m4tt`'svg_font(Times)</g><br>
+ m4tt`'svg_font(Times,14bp__)</g><br>
+ m4tt`'svg_font(sans-serif,14bp__:0.71)</g><br>
+ m4tt`'svg_font(Times,11bp__,1bp__,"text" at A)</g><br>
+ m4tt`'svg_font(font-family="Times")</g><br>
+ m4tt`'svg_font(font-family="Times" font-style="italic")</g><br>
+ m4tt`'svg_font(style="font-family:Times; font-style:italic")</g>
+ <li>m4tt svgfontratio(</g>font name`'m4tt)</g>;
+ Reasonable m4tt`'dptextratio</g> value for common fonts, used
+ by m4tt`'svg_font</g>.
+ <li>m4tt svg_tspan(</g>text attributes, text`'m4tt)</g>;
+ e.g. m4tt`'svg_tspan(font-style="italic" font-size="75%",XYZ)</g>
+ <li>m4tt svg_it(</g>text`'m4tt)</g>: for italics
+ <li>m4tt svg_tt(</g>text`'m4tt)</g>: for monospace (courier)
+ <li>m4tt svg_sf(</g>text`'m4tt)</g>: sans-serif (Helvetica)
+ <li>m4tt svg_norm(</g>text`'m4tt)</g>: for normal text
+ <li>m4tt svg_bf(</g>text`'m4tt)</g>: for bold face
+ <li>m4tt svg_small(</g>text, percent`'m4tt)</g>:
+ to set a smaller text size, default 66
+ <li>m4tt svg_fsize(</g>text, percent`'m4tt)</g>:
+ for setting larger or smaller text size, default 100
+ <li>m4tt svg_sub(</g>text, size percent, y displ, x displ`'m4tt)</g>:
+ subscript
+ <li>m4tt svg_ul(</g>text`'m4tt)</g>: underlined text
+ <li>m4tt svg_ol(</g>text`'m4tt)</g>: overlined text
+ <li>m4tt svg_sup(</g>text, size percent, y displ, x displ`'m4tt)</g>:
+ superscript
+ <li>m4tt svg_hat(</g>character`'m4tt)</g>: circumflex-accented character
+ <li>m4tt svg_frac(</g>numerator[:wid], denominator[:wid]`'m4tt)</g>:
+ basic fraction, wid in drawing units
+ <li>m4tt svg_rot(</g>degrees, "text" [at position]`'m4tt)</g>:
+ Rotate text degrees (default 90) ccw.
+ Requires m4tt`'svg_rot_init(</g>filename`'m4tt)</g> and the source
+ must be processed twice.
+ <li>m4tt svg_rot_init(</g>filename`'m4tt)</g>:
+ filename is the basename of the output of
+ m4tt`'dpic -v filename.pic > filename.svg`'m4tt
+ <li>m4tt svg_symbol(</g>text`'m4tt)</g>: allow quoted pound sign in text,
+ e.g., m4tt`'svg_symbol(10&&#96;&#35;&#39;176;)</g> produces 10&#176;
+ <li>m4tt svgLink(</g>URL, drawing object, m4tt[B])</g>:
+ link to external file using
+ &lt;a xlink:href=...&gt;...&lt;/a&gt; (default is
+ m4tt`'target="_blank"</g> unless
+ arg 3 = B)
+ <li>m4tt svgLinkString</g> as above but for strings attached to objects
+ <li> Greek and other symbols:
+
+<!--
+ Reference:
+ https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
+ and
+ https://www.toptal.com/designers/htmlarrows/math/
+ -->
+<table cellpadding="2" cellspacing="0" width="75%" >
+<tr>
+<td width="10%"> m4tt svg_alpha</g> <td align="left"> changecom(,)&`#'945;changecom(`#')
+<td width="10%"> m4tt svg_beta</g> <td align="left"> changecom(,)&`#'946;changecom(`#')
+<td width="10%"> m4tt svg_Gamma</g> <td align="left"> changecom(,)&`#'915;changecom(`#')
+<td width="10%"> m4tt svg_gamma</g> <td align="left"> changecom(,)&`#'947;changecom(`#')
+<td width="10%"> m4tt svg_Delta</g> <td align="left"> changecom(,)&`#'916;changecom(`#')
+<td width="10%"> m4tt svg_delta</g> <td align="left"> changecom(,)&`#'948;changecom(`#')
+<td width="10%"> m4tt svg_epsilon</g> <td align="left"> changecom(,)&`#'949;changecom(`#')
+<td width="10%"> m4tt svg_zeta</g> <td align="left"> changecom(,)&`#'950;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_eta</g> <td align="left"> changecom(,)&`#'951;changecom(`#')
+<td width="10%"> m4tt svg_Theta</g> <td align="left"> changecom(,)&`#'920;changecom(`#')
+<td width="10%"> m4tt svg_theta</g> <td align="left"> changecom(,)&`#'952;changecom(`#')
+<td width="10%"> m4tt svg_iota</g> <td align="left"> changecom(,)&`#'953;changecom(`#')
+<td width="10%"> m4tt svg_kappa</g> <td align="left"> changecom(,)&`#'954;changecom(`#')
+<td width="10%"> m4tt svg_Lambda</g> <td align="left"> changecom(,)&`#'923;changecom(`#')
+<td width="10%"> m4tt svg_lambda</g> <td align="left"> changecom(,)&`#'955;changecom(`#')
+<td width="10%"> m4tt svg_mu</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_nu</g> <td align="left"> changecom(,)&`#'957;changecom(`#')
+<td width="10%"> m4tt svg_Xi</g> <td align="left"> changecom(,)&`#'926;changecom(`#')
+<td width="10%"> m4tt svg_xi</g> <td align="left"> changecom(,)&`#'958;changecom(`#')
+<td width="10%"> m4tt svg_Pi</g> <td align="left"> changecom(,)&`#'928;changecom(`#')
+<td width="10%"> m4tt svg_pi</g> <td align="left"> changecom(,)&`#'960;changecom(`#')
+<td width="10%"> m4tt svg_rho</g> <td align="left"> changecom(,)&`#'961;changecom(`#')
+<td width="10%"> m4tt svg_Sigma</g> <td align="left"> changecom(,)&`#'931;changecom(`#')
+<td width="10%"> m4tt svg_sigma</g> <td align="left"> changecom(,)&`#'963;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_tau</g> <td align="left"> changecom(,)&`#'964;changecom(`#')
+<td width="10%"> m4tt svg_upsilon</g> <td align="left"> changecom(,)&`#'965;changecom(`#')
+<td width="10%"> m4tt svg_Phi</g> <td align="left"> changecom(,)&`#'934;changecom(`#')
+<td width="10%"> m4tt svg_phi</g> <td align="left"> changecom(,)&`#'966;changecom(`#')
+<td width="10%"> m4tt svg_chi</g> <td align="left"> changecom(,)&`#'967;changecom(`#')
+<td width="10%"> m4tt svg_Psi</g> <td align="left"> changecom(,)&`#'936;changecom(`#')
+<td width="10%"> m4tt svg_psi</g> <td align="left"> changecom(,)&`#'968;changecom(`#')
+<td width="10%"> m4tt svg_Omega</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_omega</g> <td align="left"> changecom(,)&`#'969;changecom(`#')
+<td width="10%"> m4tt svg_micro</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
+<td width="10%"> m4tt svg_ohm</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
+<td width="10%"> m4tt svg_lt</g> <td align="left"> changecom(,)&`#'60;changecom(`#')
+<td width="10%"> m4tt svg_gt</g> <td align="left"> changecom(,)&`#'62;changecom(`#')
+<td width="10%"> m4tt svg_leq</g> <td align="left"> changecom(,)&`#'8804;changecom(`#')
+<td width="10%"> m4tt svg_geq</g> <td align="left"> changecom(,)&`#'8805;changecom(`#')
+<td width="10%"> m4tt svg_prime</g> <td align="left"> changecom(,)&`#'8242;changecom(`#')
+</tr>
+<tr>
+<td width="10%"> m4tt svg_backsl</g> <td align="left"> changecom(,)&`#'92;changecom(`#')
+<td width="10%"> m4tt svg_pound</g> <td align="left"> changecom(,)&`#'35;changecom(`#')
+<td width="10%"> m4tt svg_comma</g> <td align="left"> changecom(,)&`#'44;changecom(`#')
+<td width="10%"> m4tt svg_lparen</g> <td align="left"> changecom(,)&`#'40;changecom(`#')
+<td width="10%"> m4tt svg_rparen</g> <td align="left"> changecom(,)&`#'41;changecom(`#')
+<td width="10%"> m4tt svg_circ</g> <td align="left"> changecom(,)&`#'710;changecom(`#')
+<td width="10%"> m4tt svg_deg</g> <td align="left"> changecom(,)&`#'176;changecom(`#')
+<td width="10%"> m4tt svg_grave</g> <td align="left"> changecom(,)&`#'96;changecom(`#')
+</tr>
+</table>
+<table cellpadding="2" cellspacing="0" width="75%" >
+<tr>
+<td width="8%"> m4tt svg_emsp</g> <td width="50px" align="left"> |changecom(,)&`#'8195;changecom(`#')|
+<td width="8%"> m4tt svg_ensp</g> <td width="50px" align="left"> |changecom(,)&`#'8194;changecom(`#')|
+<td width="8%"> m4tt svg_thinsp</g> <td width="50px" align="left"> |changecom(,)&`#'8201;changecom(`#')|
+</tr>
+</table>
+
+ </ul>
+ <li> Inkscape: It may be efficient to define elements by macro and to
+ place them using a wysiwyg graphics editor. A draft page intended
+ for Inkscape is included. A reasonable variety of elements is defined
+ but many more could be added and they should be customized for
+ particular applications. Adjustments may also have to be made to
+ obtain the proper snap-to actions.
+ <li> Link experiments: Click on the resistor or source of quickDPV
+ to go to external
+ files in new windows. Click on "n-port" in NportDPV to replace the diagram
+ and then "back" to return.
+ <li> Some of the assumptions used to create this draft may be
+ na&`#'239;ve.
+ Comments are welcome.
+</ul>
+
+<!--
+<embed pluginspage="http://www.adobe.com/svg/viewer/install/" />
+-->
+
+<hr>
+
+<table>
+<tr>
+<td width="50%">
+<p>
+<IMG SRC="quickDPV.svg">
+<br><br>
+Fig. m4inx (<a href="quickDPV.txt" TYPE="text/plain" TARGET="_blank"
+ alt="quickDPV">quickDPV.m4</a>):
+SVG produced by dpic changecom(,)&`#'8194;changecom(`#')
+</p>
+</td>
+<td>
+<p>
+<IMG SRC="quick.svg">
+<br><br>
+(<a href="quick.txt" TYPE="text/plain" TARGET="_blank"
+ alt="quick">quick.m4</a>):
+SVG produced from quick.pdf by dvisvgm changecom(,)&`#'8194;changecom(`#')
+</p>
+</td>
+</table>
+
+<hr>
+
+ifelse(0,1,`
+cfig(ResistorsDPV,
+ Resistors`,' showing some variations and the ebox)
+
+cfig(CapacitorsDPV,
+ Capacitors)
+
+cfig(InductorsDPV,
+ Inductors)
+
+cfig(DiodesDPV,
+ Diodes: appending a m4tt`'K</g> to the second argument draws an open
+ arrowhead)
+
+cfig(EmarrowsDPV,
+ Radiation arrows)
+
+cfig(VariableDPV,
+ Arrows and marks for showing variability)
+
+cfig(SourcesDPV,
+ Sources and source-like elements)
+
+cfig(AmpTableDPV,
+ Macros m4tt`'amp`,' delay</g>`,' and m4tt`'integrator</g>)
+
+cfig(FusesDPV,
+ Macros m4tt`'fuse</g> and m4tt`'cbreaker</g>)
+
+cfig(MoreTableDPV,
+ Additional two-terminal elements)
+
+cfig(GroundsDPV,
+ Ground symbols)
+
+cfig(SwitchesDPV,
+ The switch macros; m4tt`'switch(`,'`,'`,'L|B|D,attribs)</g>
+ is a wrapper for m4tt`'lswitch</g>`,' m4tt`'bswitch</g>`,'
+ and m4tt`'dswitch</g>)
+
+cfig(AntennasDPV,
+ Antenna symbols)
+
+cfig(OpampDPV,
+ The opamp)
+
+cfig(AudioDPV,
+ Audio elements)
+
+cfig(XformDPV,
+ Some variations of the transformer element`,' drawing direction down)
+
+cfig(NPDTDPV,
+ Double throw with the m4tt`'NPDT</g> macro)
+
+cfig(ContactDPV,
+ A non-exhaustive sampling of m4tt`'contact</g> macro variations)
+
+cfig(ContactsDPV,
+ The m4tt`'contacts</g> macro)
+
+cfig(relaycoilDPV,
+ The m4tt`'relaycoil</g> macro)
+
+cfig(RelayDPV,
+ Some variants of m4tt`'relay</g>)
+
+cfig(JackDPV,
+ The m4tt`'jack</g> and m4tt`'plug</g> macros)
+
+cfig(ConnDPV,
+ The m4tt`'tstrip`,' ccoax`,' tconn</g>`,' and m4tt`'tbox</g> macros)
+
+cfig(PconnDPV,
+ The m4tt`'pconnex</g> macro)
+
+cfig(EVplugsDPV,
+ Electric vehicle charging plug patterns make extensive
+ use of key=value pairs to set options)
+
+cfig(HeadersDPV,
+ The m4tt`'Header</g> macro)
+
+')
+cfig(ConnectorsDPV,
+ Some integrated circuits and connectors with simple geometry
+ and lists of labels)
+
+ifelse(0,1,`
+cfig(ChipsDPV,
+ IC outlines)
+
+cfig(fetDPV,
+ FETs`,' showing programmable components and example customizations)
+
+cfig(ujtDPV,
+ UJT examples)
+
+cfig(thyristorDPV,
+ Thyristor examples. The thyristor is a 3- or 4-terminal
+ composite element)
+
+cfig(BipDPV,
+ Bipolar transistors (drawing direction: up))
+
+cfig(TgateDPV,
+ The m4tt`'tgate</g> and m4tt`'ptrans</g> elements)
+
+')
+cfig(NportDPV,
+ The m4tt`'nport</g> and m4tt`'nterm</g> macros)
+
+ifelse(0,1,`
+cfig(NLGDPV,
+ Some customizations of m4tt`'nport</g>)
+
+cfig(WindingsDPV,
+ The macro
+ m4tt`'winding(L|R`,'diam`,'pitch`,'turns`,'core wid`,'core color)</g>)
+
+')
+cfig(ex01DPV,
+ Two simple labeled circuits)
+
+ifelse(0,1,`
+cfig(ex02DPV,
+ Elements at obtuse angles)
+
+cfig(OptoisoDPV,
+ Optical isolator: a circuit with right or left orientation)
+
+cfig(MixerDPV,
+ A balanced mixer`,' using m4tt`'mosfet</g> and a custom transformer)
+
+cfig(PushPullDPV,
+ A push-pull mixer`,' showing FETs with multiple gates)
+
+cfig(QuantumDPV,
+ A quantum circuit)
+
+cfig(SQUIDDPV,
+ Superconducting quantum interface device (drawing direction down))
+
+cfig(SixpoleDPV,
+ A six-pole filter)
+
+cfig(ex18DPV,
+ Precision half-wave rectifier and a tunnel diode circuit
+ (illustrating m4tt`'opamp`,' diode`,' resistor`,' ground`,'</g>
+ and labels))
+
+cfig(ex10DPV,
+ Non-planar graph and bistable circuit
+ (illustrating the m4tt`'crossover</g> macro and colored elements))
+
+cfig(ThreeDPV,
+ Three-phase oscillator)
+
+cfig(MCDPV,
+ A three-phase switched AC-AC converter and a DC-DC converter)
+
+cfig(ex17DPV,
+ A repetitive network created by Pic looping and
+ a skewed circuit used to test the macro m4tt`'parallel_</g>)
+
+cfig(ex12DPV,
+ A CMOS NAND gate`,' a test circuit`,' and an XMOSFET example)
+
+cfig(pwrsupplyDPV,
+ An elementary power supply circuit with colored elements`,'
+ and a multiple-winding transformer with 3-phase rectifier)
+
+cfig(TTLnandDPV,
+ TTL NAND gate illustrating a transistor with multiple emitters)
+
+cfig(I2LDPV,
+ Gate circuit and equivalent embedded components
+ illustrating multiple collectors)
+
+cfig(SchottkyDPV,
+ A 4-input NAND circuit illustrating the m4tt`'S</g> (Schottky)
+ option of m4tt`'bi_trans</g>)
+
+cfig(ex11DPV,
+ Transistor radio audio chain)
+
+cfig(ex04DPV,
+ Labels on non-manhattan elements)
+
+')
+cfig(CsourceDPV,
+ Realization of a controlled source
+ (illustrating stacked element labels))
+
+ifelse(0,1,`
+cfig(DriveDPV,
+ Synchronous machine driven by variable-speed drive and rectifier)
+
+cfig(ex16DPV,
+ A rate 1/2 binary convolutional coder and its state diagram)
+
+cfig(ex03DPV,
+ Digital filter)
+
+cfig(MotorControlDPV,
+ Motor control connections)
+
+cfig(RectifiersDPV,
+ Rectifier circuits and waveforms)
+
+')
+cfig(HeathkitDPV,
+ The power supply of a Heathkit AR-15 (Now`,' <i>that</i>
+ was a receiver!) with custom transformer and other elements`,'
+ drawn on a grid (partially shown) to aid in placement)
+
+ifelse(0,1,`
+cfig(lcctDPV,
+ A digital circuit of moderate size`,'
+ redrawn from M. P. Maclenan and G. M. Burns`,'
+ "An Approach to Drawing Circuit Diagrams for Text Books`,'"
+ Tugboat (12)1`,' March 1991`,' pp. 66-69)
+
+cfig(TubediagsDPV,
+ Electron-tube diagrams: a few bottom-view base diagrams`,'
+ a generic triode test circuit`,' and a 25-watt audio amplifier adapted
+ from F. Langford-Smith`,' <i>Radiotron Designers Handbook</i>`,' fourth
+ edition`,' Harrison`,' NJ: Radio Corporation of America`,' 1952)
+
+cfig(UNODPV,
+ An Arduino UNO circuit adapted and redrawn)
+
+cfig(sfgDPV,
+ Signal-flow graphs)
+
+cfig(LogicDPV,
+ Basic logic gates)
+
+cfig(ex08DPV,
+ General-purpose latch: a small logic circuit)
+
+cfig(DecoderDPV,
+ Decoder logic`,' constructed using the m4tt`'for_</g> macro)
+
+cfig(ex21DPV,
+ Some flip-flops)
+
+cfig(MultiplexerDPV,
+ Multiplexer)
+
+cfig(DemultiplexerDPV,
+ Demultiplexer)
+
+cfig(ShiftRDPV,
+ A 5-bit shift register drawn using a custom flip-flop)
+
+cfig(AdderDPV,
+ A full adder and a cascade of n-bit adders)
+
+cfig(CanLogicDPV,
+ A way of automatically drawing two-layer logic diagrams)
+
+cfig(AlogixDPV,
+ The m4tt`'Autologix(`'<i>Boolean expression</i>;
+ <i>Boolean expression</i>... `,' <i>options</i>)</g>
+ macro automatically draws Boolean expressions in function notation.
+ The function tree is drawn`,' then a row or column of inputs`,' then
+ the connections. The default result is on the left`,'
+ a custom element at the top`,' and a tree of gates only is shown
+ on the right.)
+
+cfig(ABlogixDPV,
+ The m4tt`'Autologix</g> macro can draw inputs on the left but
+ the added drawing complexity may require hand tuning with
+ second-argument options: m4tt`'L</g> puts the inputs on the left`,'
+ m4tt`'R reverses their order`,' m4tt`'V</g> scans the input arguments
+ in reverse order`,' and m4tt`'offset=</g>`'<i>value</i> displaces
+ the array of inputs)
+
+cfig(XORDPV,
+ Realizations of the XOR function using m4tt`'Autologix</g>)
+
+cfig(ex00DPV,
+ Line diagrams)
+
+')
+cfig(EEPDPV,
+ Part of a single-line diagram of a power distribution system
+ using draft elements)
+
+ifelse(0,1,`
+cfig(ex05DPV,
+ Use of m4tt`'darrow</g> and m4tt`'Darc</g>)
+
+cfig(GrayCodeDPV,
+ Gray code 10-bit encoder disk pattern`,'
+ and a crossbar switch)
+
+')
+cfig(controlDPV,
+ Control-system block diagrams)
+
+cfig(ByteDPV,
+ Elementary splines)
+
+ifelse(0,1,`
+cfig(RotboxDPV,
+ The macro
+ m4tt`'rotbox(<i>wid,ht,type,</i>[r|t=<i>val</i>])</g>
+ draws a box in the current direction)
+
+cfig(ex06DPV,
+ Crosshatching)
+
+cfig(GeometryDPV,
+ Plane geometry examples)
+
+cfig(LoglogDPV,
+ Graphs drawn using the pic language)
+
+cfig(SmithchartDPV,
+ A Smith chart)
+
+cfig(ex09DPV,
+ Illustrating the macro
+ m4tt`'dimension_(<i>linespec`,' offset`,' label`,' </i>
+ H|W|D|<i>blank width</i>`,' <i>tic offset</i>`,' <-|->)</g>.
+ A negative second argument implies an offset to the right of the
+ <i>linespec</i> direction. A <i>label</i> starting with
+ m4tt`'"</g> or
+ m4tt`'sprintf</g> is copied literally. If <i>label</i> is an
+ m4tt`'s_box(...)</g> then setting argument 4 to m4tt`'H</g>`,'
+ m4tt`'W</g>`,'
+ or m4tt`'D</g> tailors the blank width to the m4tt`'s_box</g> height`,'
+ width`,' or diagonal respectively; i.e.`,' m4tt`'W</g> is equivalent to
+ m4tt`'s_wd+textoffset*2</g>.
+ The macro m4tt`'arcdimension_</g> is similar but the first argument
+ specifies the arc to be dimensioned and the second argument is
+ the outward radial offset of the dimension arrow arc.)
+
+cfig(PlateDPV,
+ Dimensioning with tolerances according to ASME Y14.5)
+ Use of m4tt`'darrow</g> and m4tt`'Darc</g>)
+
+cfig(randomDPV,
+ Testing random number generation
+ using dpic macro
+ m4tt`'randn(</g><g
+ style="font-family:italic">array name`,' mean`,' std dev</g>m4tt`')</g>
+ which calls dpic built-in m4tt`'rand()</g>)
+
+cfig(expDPV,
+ Test of m4tt`'project</g> and other m4tt`'lib3D</g>
+ macros`,' showing the projection of a solid onto
+ the <i>y1`,'z1</i> plane by sighting along the x1 axis.)
+
+cfig(graysurfDPV,
+ Plotting surfaces using gray scales)
+
+cfig(shapesDPV,
+ Basic shapes)
+
+cfig(cscDPV,
+ Conestoga Sailing Club (illustrating the filling of arbitrary shapes)`,'
+ and an antique clock face with shading and rotated text)
+
+cfig(roseDPV,
+ A window redrawn from a detail of the set design for the musical
+ <i>Dracula</i>`,' used for testing m4tt`'dpic</g>`,'
+ and an experimental halftone. This diagram
+ consumes much LaTeX main memory but can be produced
+ directly as pdf using m4tt`'dpic -d</g>`,'
+ as svg using m4tt`'dpic -v</g>`,'
+ or as postscript using m4tt`'dpic -r</g>
+ since no text formatting is required)
+
+cfig(diamondDPV,
+ Variations on M. Goossens`,' S. Rahtz`,' and F. Mittelbach`,'
+ <i>The LaTeX Graphics Companion</i>`,' Addison-Wesley 1997`,' pp. 57-58)
+
+cfig(wormDPV,
+ An exercise in calculating RGB colours)
+
+cfig(ButtonsDPV,
+ Shading in color)
+
+cfig(keyboardDPV,
+ More objects drawn in relief)
+
+cfig(DiniDPV,
+ Dini surface and an icosahedron)
+
+cfig(SierpinskiDPV,
+ The Sierpinski triangle and a Cayley graph:
+ tests of pic macro recursion)
+
+cfig(EscherDPV,
+ Penrose stairs and an Escher-like object)
+
+cfig(recycleDPV,
+ Modest repetition and partial fill)
+
+cfig(ex15DPV,
+ Simple diagrams that are easily drawn by looping)
+
+<!--
+#fig(CountingDPV,
+# An example of enumeration)
+-->
+
+cfig(CrowDPV,
+ Illustrating m4tt`'shadebox</g> and a custom crowfoot line
+ termination)
+
+')
+cfig(FlowDPV,
+ A flowchart sampler)
+ <!-- <p>
+ More flow-chart examples? Try
+ <a href="https://buraphakit.sourceforge.io/EFI/EFI_2019_S2_W13.shtml"
+ TARGET="_blank">here.</a>
+ </p> -->
+
+ifelse(0,1,`
+cfig(BtreeDPV,
+ Trees)
+
+cfig(InclepsDPV,
+ Overlaying a figure with line graphics,,OBJECT)
+')
+
+cfig(paletteDPV,
+ A draft palette of a few elements for Inkscape using
+ a 1 mm grid)
+
+cfig(FontsDPV)
+
+</td>
+</tr>
+</table>
+</BODY>
+</HTML>
diff --git a/graphics/circuit_macros/examples/svg/expSVG.m4 b/graphics/circuit_macros/examples/dpv/expDPV.m4
index 4d12688f97..ef3eb1d7b9 100644
--- a/graphics/circuit_macros/examples/svg/expSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/expDPV.m4
@@ -1,5 +1,5 @@
.PS
-# expSVG.m4
+# expDPV.m4
threeD_init
NeedDpicTools
diff --git a/graphics/circuit_macros/examples/svg/fetSVG.m4 b/graphics/circuit_macros/examples/dpv/fetDPV.m4
index 8495eb9e94..333b1a1258 100644
--- a/graphics/circuit_macros/examples/svg/fetSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/fetDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `fetSVG.m4'
+# `fetDPV.m4'
cct_init(svg_font(Times,11bp__))
textht = 0.1
diff --git a/graphics/circuit_macros/examples/svg/graysurfSVG.m4 b/graphics/circuit_macros/examples/dpv/graysurfDPV.m4
index a42709b96e..3e8d84025e 100644
--- a/graphics/circuit_macros/examples/svg/graysurfSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/graysurfDPV.m4
@@ -1,5 +1,5 @@
.PS
-# graysurfSVG.m4
+# graysurfDPV.m4
threeD_init
NeedDpicTools
diff --git a/graphics/circuit_macros/examples/svg/icsSVG.m4 b/graphics/circuit_macros/examples/dpv/icsDPV.m4
index 896e1008eb..e0acaa8661 100644
--- a/graphics/circuit_macros/examples/svg/icsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/icsDPV.m4
@@ -1,6 +1,6 @@
divert(-1)
- Macros defining some integrated circuits and connectors for SVG
+ Macros defining some integrated circuits and connectors for svg
`A sequence of pins along the east or west side of a chip:
lg_pinseq(initial pin no, final pin no,
@@ -246,16 +246,16 @@ define(`HDMI_micro',`[
D0`'svg_it(-), CLK`'svg_it(+), CLK_SH, CLK`'svg_it(-),
CEC, GND, SCL, SDA,svg_it(+)5V)
L1: line from Base.nw+(m4bwid*2/3-lg_pinsep,0) up plen
- svg_rot(90,"21",at last line.c +(-2bp__,0))
+ svg_rot(90,"21",at last line.c +(-4bp__,0))
svg_rot(90,"SH2",at last line.start + (4bp__,-8bp__))
line from Base.nw+(m4bwid*2/3-2*lg_pinsep,0) up plen
- svg_rot(90,"20",at last line.c+(-2bp__,0))
+ svg_rot(90,"20",at last line.c+(-4bp__,0))
svg_rot(90,"SH1",at last line.start + (4bp__,-8bp__))
line from Base.sw+(m4bwid*2/3-lg_pinsep,0) down plen
- svg_rot(90,"23",at last line.c+(-2bp__,0))
+ svg_rot(90,"23",at last line.c+(-4bp__,0))
svg_rot(90,"SH4",at last line.start + (4bp__,14bp__))
line from Base.sw+(m4bwid*2/3-2*lg_pinsep,0) down plen
- svg_rot(90,"22",at last line.c+(-2bp__,0))
+ svg_rot(90,"22",at last line.c+(-4bp__,0))
svg_rot(90,"SH3",at last line.start + (4bp__,14bp__))
#
`$4']')
diff --git a/graphics/circuit_macros/examples/dpv/keyboardDPV.m4 b/graphics/circuit_macros/examples/dpv/keyboardDPV.m4
new file mode 100644
index 0000000000..b4e26d8fe4
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/keyboardDPV.m4
@@ -0,0 +1,269 @@
+.PS
+# keyboardDPV.m4
+ gen_init
+ scale=25.4 # unit is mm
+
+divert(-1)
+
+define(`kbd_u',(11mm__))
+define(`kbdrowsep',`movewid')
+define(`kbdshadewid',`(kbd_u/9)')
+
+ `kbdkey(name|text=chars,keys)
+ chars: string or string string
+ keys: wdth=expr; # base wid
+ hght=expr; # base ht
+ rad=expr; # base rad
+ shadewid=expr; # base shade wid
+ base=attribs; # base attributes
+ top=attribs; # top attributes '
+define(`kbdkey',
+ `pushkeys_(`$2',
+ wdth:kbd_u; hght:kbd_u*14/13+lthick; rad:kbd_u/10;
+ shadewid:kbdshadewid; base:fill_(0.3):N; top:fill_(0.9):N)dnl
+ [ Base: box wid m4wdth ht m4hght rad m4rad m4base
+ Top: box wid m4wdth-2*m4shadewid ht m4hght-m4shadewid-lthick \
+ rad m4rad*(kbd_u-2*m4shadewid)/(kbd_u) with .n \
+ at Base.n-(0,lthick) m4top
+ move to Top.w
+ ifelse(`$1',,,`pushkey_(`$1',text,,N)ifelse(m4text,,
+ `"iflatex(\sf) `$1'" above ljust',
+ `m4text');') `$3'
+ popdef(`m4wdth', `m4hght', `m4shadewid', `m4rad', `m4base', `m4top') dnl
+ popdef(`m4text') ] ')
+
+define(`tsmall',
+ `iflatex(`"{\sf\scriptsize `$1'}"',
+ ifelse(`$3',,")svg_fsize(`$1',ifelse(`$2',,75,`$2'))ifelse(`$3',,"))')
+
+define(`stkbdkey',
+ `iflatex(`command "{\sf\scriptsize"',`m4tmp=textht
+ textht = ifelse(`$1',,0.66*textht,`$1') ')
+ kbdkey(shift($*))
+ iflatex(`command "}%"',`textht = m4tmp')')
+
+ `enterkey(name|text=chars,keys)
+ chars: string or string string
+ keys: wdth=expr; # base wid
+ hght=expr; # base ht
+ bhght=expr; # ht of bottom part
+ rad=expr; # base rad
+ shadewid=expr; # base shade wid
+ base=attribs; # base attributes
+ top=attribs; # top attributes '
+define(`enterkey',
+ `pushkeys_(`$2',
+ wdth:kbd_u*2.26;
+ hght:kbd_u*14/13*2+kbdrowsep+linethick bp__;
+ bhght: kbd_u*14/13;
+ twdth: kbd_u*3/2;
+ rad:kbd_u/10;
+ shadewid:kbdshadewid;
+ base:fill_(0.3):N;
+ top:fill_(0.9):N)dnl
+ [ ltx = lthick; r = m4rad*(kbd_u-2*m4shadewid)/(kbd_u)
+# thick outer
+ linethick = (m4shadewid+r)/(1bp__); lth2 = lthick/2
+ NEx: Here; NE: NEx-(lth2,lth2); SE: NE-(0,m4hght-lth2*3-ltx*3/2)
+ SW: SE-(m4wdth-lthick,0)
+ W: SW+(0,m4bhght-lthick+ltx*3/2); NW: NE-(m4twdth-lthick,0); X: (NW,W)
+ d = 0.3; ro = m4rad-lth2
+ move to W; arcto(X,NW,m4rad+lth2,outlined graystring(d)); Tx:NW
+ Loopover_(`PK',`arcto(Tx,PK,ro,outlined graystring(d));Tx:PK',NE,SE,SW,W,X)
+ linethick = ltx
+# outer outline
+ NE: NEx; SE: NE-(0,m4hght+ltx); SW: SE-(m4wdth,0)
+ W: SW+(0,m4bhght); NW: NE-(m4twdth,0); X: (NW,W)
+ m4enteroutline(m4rad,,m4rad)
+# thick inner
+ linethick = m4shadewid/(1bp__)+linethick; lth2 = lthick/2
+ NE: NEx-(m4shadewid+lth2,lth2+ltx); SE: (NE,SE)+(0,m4shadewid*3/2)
+ SW: SE-(m4wdth-m4shadewid*3,0); W: SW+(0,m4bhght-m4shadewid*2-ltx*3/2);
+ NW: NE-(m4twdth-m4shadewid*3,0); X: (NW,W)
+ c = 0.9; ri = r-lth2
+ move to W; arcto(X,NW,ri+lth2*2,outlined graystring(c)); Tx:NW
+ Loopover_(`PK',`arcto(Tx,PK,ri,outlined graystring(c));Tx:PK',NE,SE,SW,W,X)
+ N: 1/2 between NW and NE
+ line from N to (N,SE) thick (NE.x-NW.x)/(1bp__) outlined graystring(c)
+ SSW: 1/2 between SW and W
+ line from SSW to (SE,SSW) thick (W.y-SW.y)/(1bp__) outlined graystring(c)
+# inner outline
+ NE: NE+(lth2,lth2); SE: SE+(lth2,-lth2); SW: SW-(lth2,lth2)
+ W: W+(-lth2,lth2); NW: NW+(-lth2,lth2); X: (NW,W)
+ linethick = ltx
+ m4enteroutline(ri,,ri+lth2*2)
+ move to (X,(1/2 between SW and W));
+ ifelse(`$1',,,`pushkey_(`$1',text,,N)dnl
+ ifelse(m4text,,`"iflatex(\sf) `$1'" above ljust',`m4text')')
+ popdef(`m4wdth', `m4hght', `m4bhght', `m4twdth', `m4shadewid', `m4rad',
+ `m4base', `m4top', `m4bhght' ) popdef(`m4text')dnl
+ `$3' ] ')
+define(`m4enteroutline',`move to W+(`$1',0); arcto(X,NW,`$3',`$2'); Tx: NW
+ Loopover_(`PP',`arcto(Tx,PP,`$1',`$2'); Tx: PP',NE,SE,SW,W,X)')
+define(`m4enterup',`[ u = ifelse(`$1',,kbd_u*0.3)
+ line right u/4 then up u/2 then right u/6 then up u/2 left u/4+u/6 \
+ then down u/2 left u/4+u/6 then right u/6 then down u/2 then right u/4
+ ]')
+
+define(`kbdsymb',`iflatex("\tt\char`$1'",`dsvg_symb(`$1')')')
+define(`m4kbdarrow',`arrow thick 1.5 ht kbd_u/5 wid kbd_u/5')
+
+divert(0)dnl
+
+define dsvg_symb {"&#$1;"}
+
+maxpswid = 25*kbd_u
+movewid = kbd_u/11
+
+define(`rshift',` at Here+(ifelse(`$1',,`kbd_u/8',`$1'),0) ')
+
+iflatex(`command "{\small\sf"',
+ `ifsvg(svg_font(Arial,kbd_u*16/13/4,0bp__))
+ textht=kbd_u/4 ')
+
+Row2: [
+ textoffset = kbd_u/8
+ Loopover_(`KK',`kbdkey(text=KK); move',
+ kbdsymb(126) ljust kbdsymb(96) ljust,
+ Loopover_(`NN',`kbdsymb(NN) ljust "m4Lx" ljust,',33,64,35,36,37,94,38,42,40)
+ kbdsymb(41) ljust "0" ljust,
+ kbdsymb(95) ljust "-" ljust,
+ kbdsymb(43) ljust "=" ljust,
+ kbdsymb(124) ljust kbdsymb(92) ljust,
+ "" )
+ m4kbdarrow left kbd_u*0.5 at last [].Top
+ ]
+Row1: [
+ kbdkey(tsmall(Esc,,N)); move right_ last [].wid+movewid*2
+ Loopover_(`KK',`kbdkey(KK); move',F1,F2,F3,F4)
+ move right_ last [].wid/2
+ Loopover_(`KK',`kbdkey(KK); move',F5,F6,F7,F8)
+ move right_ Row2.wid-Here.x-4*last [].wid-4*movewid
+ Loopover_(`KK',`kbdkey(KK); move',F9,F10,F11,F12)
+ ] with .sw at Row2.nw+(0,2*kbdrowsep)
+Row3: [
+# Uparrow: kbdkey(,,m4kbdarrow up kbd_u/2 at Top)
+ Tab: kbdkey(text=tsmall(Tab) rshift ljust,wdth=kbd_u*1.6,
+ [ A: m4kbdarrow left kbd_u/2; line thick A.thick up A.wid at A.end
+ A: m4kbdarrow right A.len at A-(0,kbd_u/2)
+ line thick A.thick up A.wid at A.end ] with .w at Top ); move
+ Loopover_(`KK',`KK: kbdkey(KK); move',Q,W,E,R,T,Y,U,I,O,P)
+ textoffset = kbd_u/8
+ kbdkey(text=kbdsymb(123) ljust kbdsymb(91) ljust); move
+ kbdkey(text=kbdsymb(125) ljust kbdsymb(93) ljust); move
+ w = Row2.wid-Here.x
+ R: box invis wid w-movewid ht last [].Base.ht
+ ] with .nw at Row2.sw-(0,kbdrowsep)
+Row4: [
+ Capslock: kbdkey(text=tsmall(Caps Lock) rshift ljust,
+ wdth=Row3.Tab.wid+Row3.Q.wid/3;); move
+ Loopover_(`KK',`KK: kbdkey(KK); move',A,S,D,F,G,H,J,K,L)
+ textoffset = kbd_u/8
+ kbdkey(text=kbdsymb(58) ljust kbdsymb(59) ljust); move
+ kbdkey(text=kbdsymb(34) ljust kbdsymb(39) ljust); move
+ ] with .nw at Row3.sw-(0,kbdrowsep)
+ Enter: enterkey(text=tsmall(Enter),,
+ m4kbdarrow <- from last ""+(kbd_u/2,0) \
+ right kbd_u/2 then up kbd_u/5 ) \
+ with .ne at (Row2.e,Row3.n)-(movewid,0)
+Row5: [
+ ShiftL: kbdkey(text=tsmall(Shift) at 0.4 between Top.w and Top.e,
+ wdth=kbd_u*2.4, m4enterup at 0.15 between Top.w and Top.e); move
+ Loopover_(`KK',`KK: kbdkey(KK); move',Z,X,C,V,B,N,M)
+ textoffset = kbd_u/8
+ kbdkey(text=kbdsymb(60) ljust kbdsymb(44) ljust); move
+ kbdkey(text=kbdsymb(62) ljust kbdsymb(46) ljust); move
+ kbdkey(text=kbdsymb(63) ljust kbdsymb(47) ljust); move
+ v = Row2.wid-Here.x-kbd_u-movewid*2
+ ShiftR: kbdkey(text=tsmall(Shift) at 1/2 between Top.w and Top.e,wdth=v,
+ m4enterup at 0.15 between Top.w and Top.e); move
+ kbdkey(); move
+ ] with .nw at Row4.sw+(0,-kbdrowsep)
+Row6: [
+ w = 22/18*kbd_u
+ CtrlL: kbdkey(text=tsmall(Ctrl) rshift ljust,wdth=w); move
+ kbdkey(,wdth=w); move
+ kbdkey(text=tsmall(Alt) rshift ljust,wdth=w); move
+ s = Row2.wid-(7*w+8*movewid)
+ kbdkey(,wdth=s); move
+ kbdkey(text=tsmall(Alt) rshift ljust,wdth=w); move
+ kbdkey(,wdth=w); move
+ kbdkey(,wdth=w); move
+ CtrlR: kbdkey(text=tsmall(Ctrl) rshift ljust,wdth=w); move
+ ] with .nw at Row5.sw+(0,-kbdrowsep)
+Arrowkeys: [ iflatex(`command "{\sf\scriptsize"',`textht *=0.66')
+Row1:[ textoffset = kbd_u/20
+ kbdkey(text=`"Print" ljust "Screen" ljust "SysRQ" ljust'); move
+ textoffset = kbd_u/12
+ kbdkey(text="Scroll" ljust "Lock" ljust); move
+ kbdkey(text="Pause" ljust "Break" ljust); move
+ ]
+Row2: [ textoffset = kbd_u/12
+ kbdkey(text="Insert" ljust); move
+ kbdkey(text=tsmall(Home) ljust); move
+ kbdkey(text="Page" ljust "Up" ljust); move
+ ] with .nw at Row1.sw-(0,2*kbdrowsep)
+Row3: [ textoffset = kbd_u/12
+ Delete: kbdkey(text="Delete" ljust); move
+ End: kbdkey(text="End" ljust); move
+ kbdkey(text="Page" ljust "Down" ljust); move
+ ] with .nw at Row2.sw+(0,-kbdrowsep)
+Row5: [
+ move right Row3.End.w.x + movewid
+ Uparrow: kbdkey(,,m4kbdarrow up kbd_u/2 at Top)
+ ] with .nw at Row3.sw-(0,Row3.Delete.ht+2*kbdrowsep)
+Row6: [
+ kbdkey(,,m4kbdarrow left kbd_u/2 at Top); move
+ kbdkey(,,m4kbdarrow down kbd_u/2 at Top); move
+ kbdkey(,,m4kbdarrow right kbd_u/2 at Top); move
+ ] with .nw at Row5.sw-(0,kbdrowsep)
+
+ iflatex(`command "}%"',`textht *=(1/0.66)')
+ ] with .nw at Row1.ne+(movewid,0)
+Keypad: [ move down_ Arrowkeys.n.y-Arrowkeys.Row2.e.y; right_
+ textoffset = kbd_u/8
+Row2:[
+ kbdkey(text=tsmall(Num) ljust tsmall(Lock) ljust); move
+ iflatex(`command "{\large"',`textht *=1.5')
+ kbdkey(text=kbdsymb(47) ljust); move
+ kbdkey(text=kbdsymb(42) ljust); move
+ kbdkey(text=kbdsymb(45) ljust); move
+ iflatex(`command "}"')
+ ]
+Row3:[ textoffset = kbd_u/12
+ kbdkey(text="7" ljust tsmall(Home) ljust); move
+ kbdkey(text="8" ljust "" ljust,,m4kbdarrow up_ kbd_u/3 \
+ at 3/4 between Top.ne and Top.sw); move
+ kbdkey(text="9" ljust tsmall(PgUp) ljust); move
+ ] with .nw at Row2.sw+(0,-kbdrowsep)
+Row4:[ textoffset = kbd_u/12
+ kbdkey(text="4" ljust "" ljust,,m4kbdarrow left kbd_u/3 \
+ at 0.7 between Top.ne and Top.sw); move
+ kbdkey(text="5" ljust "" ljust); move
+ Six: kbdkey(text="6" ljust "" ljust,,m4kbdarrow right kbd_u/3 \
+ at 0.7 between Top.ne and Top.sw); move
+ ] with .nw at Row3.sw+(0,-kbdrowsep)
+Row5:[ textoffset = kbd_u/12
+ kbdkey(text="1" ljust tsmall(End) ljust); move
+ kbdkey(text="2" ljust "" ljust,,m4kbdarrow down kbd_u/3 \
+ at 0.7 between Top.ne and Top.sw); move
+ kbdkey(text="3" ljust tsmall(PgDn) ljust); move
+ ] with .nw at Row4.sw+(0,-kbdrowsep)
+Row6:[ textoffset = kbd_u/12
+ kbdkey(text="0" ljust tsmall(Ins) ljust,
+ wdth=Row4.wid-Row4.Six.wid-2*movewid); move
+ kbdkey(text=kbdsymb(46) ljust tsmall(Del) ljust); move
+ ] with .nw at Row5.sw+(0,-kbdrowsep)
+Col4: [ textoffset = kbd_u/12
+ iflatex(`command "{\large"',`textht *=1.5')
+ kbdkey(text="+" ljust,hght=Row3.n.y-Row4.s.y); move
+ iflatex(`command "}"',`textht /=1.5')
+ kbdkey(text=tsmall(Enter) ljust,hght=Row5.n.y-Row6.s.y) \
+ with .nw at last [].sw - (0,kbdrowsep)
+ ] with .ne at (Row2.e,Row3.n)
+
+ ] with .nw at Arrowkeys.ne+(movewid,0)
+
+iflatex(`command "}%"',
+ifsvg(`command "</g>"'))
+.PE
diff --git a/graphics/circuit_macros/examples/svg/lcctSVG.m4 b/graphics/circuit_macros/examples/dpv/lcctDPV.m4
index ba25e60172..f1112aef0f 100644
--- a/graphics/circuit_macros/examples/svg/lcctSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/lcctDPV.m4
@@ -1,8 +1,8 @@
.PS
-# lcctSVG.m4
+# lcctDPV.m4
maxpswid = 10
log_init(svg_font(sans-serif,11bp__,2bp__))
-include(icsSVG.m4)
+include(icsDPV.m4)
textht = textht * 0.9
diff --git a/graphics/circuit_macros/examples/svg/local_init.m4 b/graphics/circuit_macros/examples/dpv/local_init.m4
index bf2dbda597..bf2dbda597 100644
--- a/graphics/circuit_macros/examples/svg/local_init.m4
+++ b/graphics/circuit_macros/examples/dpv/local_init.m4
diff --git a/graphics/circuit_macros/examples/dpv/paletteDPV.m4 b/graphics/circuit_macros/examples/dpv/paletteDPV.m4
new file mode 100644
index 0000000000..6554df36ee
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/paletteDPV.m4
@@ -0,0 +1,337 @@
+.PS
+# This is the source for a prototype svg library of electric circuit
+# elements. Each element is a compound svg object with corners on grid points.
+#
+# Processing svg.m4 and this file thought dpic -v gives
+# output that can be read into Inkscape.
+#
+define(`SIdefaults',`
+ scale = 25.4
+ arcrad = 5
+ arrowht = 2.5
+ arrowwid = arrowht/2
+ boxht = 12
+ boxrad = 0
+ boxwid = 20
+ circlerad = 5
+ dashwid = 1.5
+ ellipseht = 12
+ ellipsewid = 16
+ lineht = 12
+ linewid = 12
+ moveht = 12
+ movewid = 12
+ textht = ifsvg(3,0)
+ textoffset = 1
+ textwid = 0
+')
+
+log_init(svg_font(sans-serif,11bp__))
+SIdefaults
+
+ # Assume dpic scale is in mm
+gunit = 1 # Inkscape grid dimension
+divert(-1)
+define(`elen_',`(10*gunit)') # default 2-terminal element length
+define(`dimen_',`(10*gunit)')# reference dimension for element bodies
+define(`L_unit',`(2*gunit)') # logic gate grid size
+define(`N_diam',1) # L_unit size of `not' circles
+
+ # grid round and chop
+define(`g_round',`(int((`$1')/gunit+100000.5 )-100000)*gunit')
+define(`g_chop', `(int((`$1')/gunit+100000.9999)-100000)*gunit')
+ # snap to grid
+define(`g_snap',`(g_round((`$1').x),g_round((`$1').y))')
+
+# Box containing an element. The element must be in a box that is
+# intersected by a horizontal or vertical line from entry to exit.
+define(`Gridbox',`[ command "<g>"
+ S: Here; `$1'; F: Here
+ if S.y == F.y then {
+ move from (max(S.x,F.x),F.y+g_chop(last[].n.y-F.y)) \
+ to (min(S.x,F.x),F.y-g_chop(F.y-last[].s.y)) } \
+ else {
+ move from (F.x+g_chop(last[].e.x-F.x),max(S.y,F.y)) \
+ to (F.x-g_chop(F.x-last[].w.x),min(S.y,F.y)) }
+ command "</g>" ] ')
+
+# Place compound object corners at grid intersections
+define(`Below',
+ `with .n at g_snap(ifelse(`$1',,`last []',`$1').s) \
+ - (0,ifelse(`$2',,1,`$2')*gunit)')
+define(`Right',
+ `with .w at g_snap(ifelse(`$1',,`last []',`$1').e)+(2*gunit,0)')
+
+# for debug
+define(`prpos',`print (`$1').x/gunit,(`$1').y/gunit')
+divert(0)dnl
+
+[
+
+rpoint_(down_ elen_)
+A:Gridbox( resistor )
+ Gridbox( resistor(down_ dimen_*1/2) ) Right
+ Gridbox( resistor(,,E) ) Right
+ Gridbox( resistor(,,Q) ) Right
+ Gridbox( resistor(,,H) ) Right
+ Gridbox( resistor(,,N) ) Right
+ Gridbox( inductor(,W) ) Right
+ Gridbox( inductor(,W,,M) ) Right
+ Gridbox( inductor(,L) ) Right
+ Gridbox( inductor ) Right
+ Gridbox( inductor(,,,M) ) Right
+ Gridbox( capacitor ) Right
+ Gridbox( capacitor(,C) ) Right
+ Gridbox( capacitor(,P) ) Right
+ Gridbox( capacitor(,E) ) Right
+ Gridbox( capacitor(,K) ) Right
+ Gridbox( diode ) Right
+ Gridbox( diode(,K) ) Right
+ Gridbox( diode(,Z) ) Right
+ Gridbox( diode(,S) ) Right
+ Gridbox( diode(,L) ) Right
+ Gridbox( diode(,V) ) Right
+ Gridbox( diode(,v) ) Right
+ Gridbox( diode(,T) ) Right
+ Gridbox( diode(,CR) ) Right
+ Gridbox( diode(,D) ) Right
+ Gridbox( diode(,B) ) Right
+ Gridbox( diode(,LE) ) Right
+ Gridbox( [circle diam dimen_*0.7] ) Right
+ Gridbox( xtal ) Right
+ dot(at g_snap(last [].e+(2*gunit,0)))
+
+A:Gridbox( source ) Below(A)
+ Gridbox( source(,I) ) Right
+ Gridbox( source(,i) ) Right
+ Gridbox( source(,V) ) Right
+ Gridbox( source(,v) ) Right
+ Gridbox( source(,AC) ) Right
+ Gridbox( source(,S) ) Right
+ Gridbox( source(,X) ) Right
+ Gridbox( source(,F) ) Right
+ Gridbox( source(,P) ) Right
+ Gridbox( source(,U) ) Right
+ Gridbox( source(,R) ) Right
+ Gridbox( source(,T) ) Right
+ Gridbox( source(,L) ) Right
+ Gridbox( nullator ) Right
+ Gridbox( norator ) Right
+ Gridbox( consource ) Right
+ Gridbox( consource(,I) ) Right
+ Gridbox( consource(,i) ) Right
+ Gridbox( consource(,V) ) Right
+ Gridbox( consource(,v) ) Right
+ Gridbox( source(,Q) ) Right
+ Gridbox( source(,G) ) Right
+
+A:Gridbox( battery(up_ elen_) ) Below(A)
+ Gridbox( battery(up_ elen_,3) ) Right
+ Gridbox( ttmotor ) Right
+ Gridbox( memristor ) Right
+ Gridbox( tline ) Right
+ Gridbox( fuse ) Right
+ Gridbox( fuse(,D) ) Right
+ Gridbox( fuse(,B) ) Right
+ Gridbox( fuse(,C) ) Right
+ Gridbox( fuse(,S) ) Right
+ Gridbox( fuse(,HB) ) Right
+ Gridbox( fuse(,HC) ) Right
+ Gridbox( cbreaker ) Right
+ Gridbox( cbreaker(,,D) ) Right
+ Gridbox([variable(`[]',A)]) Right
+ Gridbox([variable(`[]',P)]) Right
+ Gridbox([variable(`[]',L)]) Right
+ Gridbox([variable(`[]',N)]) Right
+ Gridbox([variable(`[]',uN)]) Right
+ Gridbox([line to Here+(Rect_(dimen_/6,45))]) Right
+ Gridbox([line up dimen_*0.06 then right dimen_*0.12 \
+ then up dimen_*0.06]) Right
+ Gridbox([em_arrows]) Right
+ Gridbox([em_arrows(N)]) Right
+ Gridbox([em_arrows(ND)]) Right
+ Gridbox([em_arrows(I)]) Right
+ Gridbox([em_arrows(ID)]) Right
+ Gridbox([em_arrows(E)]) Right
+ Gridbox([em_arrows(ED)]) Right
+
+A:Gridbox( [right_; ground] ) Below(A)
+ Gridbox( [right_; ground(,T)] ) Right
+ Gridbox( [right_; ground(,,F)] ) Right
+ Gridbox( [right_; ground(,,E)] ) Right
+ Gridbox( [right_; ground(,,S)] ) Right
+ Gridbox( [right_; ground(,,L)] ) Right
+ Gridbox( [right_; ground(,,P)] ) Right
+ Gridbox( transformer(right_ 6*gunit,L) ) Right
+ Gridbox( transformer(right_ 8*gunit,,2,8) ) Right
+ Gridbox( transformer(,,8,W,4) ) Right
+ Gridbox( transformer(,,9,AL) ) Right
+ Gridbox( transformer(,R,8,AW) ) Right
+
+ rpoint_(right_)
+A:Gridbox( switch ) Below(A)
+ Gridbox( switch(,,O) ) Right
+ Gridbox( switch(,,D) ) Right
+ Gridbox( switch(,,OD) ) Right
+ Gridbox( switch(,,C) ) Right
+ Gridbox( switch(,,B) ) Right
+ Gridbox( switch(,C,B) ) Right
+ Gridbox( dswitch ) Right
+ Gridbox( dswitch(,,WBK) ) Right
+ Gridbox( dswitch(,,WBuD) ) Right
+ Gridbox( dswitch(,,WBF) ) Right
+ Gridbox( dswitch(,,WBKF) ) Right
+ Gridbox( dswitch(,,WBL) ) Right
+ Gridbox( dswitch(,,WBKL) ) Right
+
+A:Gridbox( dswitch(,,WBT) ) Below(A,3)
+ Gridbox( dswitch(,,WdBKC) ) Right
+ Gridbox( dswitch(,,WBM) ) Right
+ Gridbox( dswitch(,,WBCO) ) Right
+ Gridbox( dswitch(,,WBCMP) ) Right
+ Gridbox( dswitch(,,WBCY) ) Right
+ Gridbox( dswitch(,,WBCZ) ) Right
+ Gridbox( dswitch(,,WBCE) ) Right
+ Gridbox( dswitch(,,WBRH) ) Right
+ Gridbox( dswitch(,,WBRdH) ) Right
+ Gridbox( dswitch(,,WBRHH) ) Right
+
+A:Gridbox( dswitch(,,WBMMR) ) Below(A,6)
+ Gridbox( dswitch(,,WBMM) ) Right
+ Gridbox( dswitch(,,WBMR) ) Right
+ Gridbox( dswitch(,,WBEL) ) Right
+ Gridbox( dswitch(,,WBLE) ) Right
+ Gridbox( dswitch(,,WBKEL) ) Right
+ Gridbox( antenna ) Right # Below(A)
+ Gridbox( antenna(,,L) ) Right
+ Gridbox( antenna(,,T) ) Right
+ Gridbox( antenna(,,S) ) Right
+ Gridbox( antenna(,,D) ) Right
+ Gridbox( antenna(,,P) ) Right
+ Gridbox( antenna(,,F) ) Right
+
+A:Gridbox( amp(right_ elen_*10/8) ) Below(A)
+ Gridbox( integrator ) Right
+ Gridbox( delay ) Right
+ Gridbox( opamp ) Right
+ Gridbox( opamp(,,,,T) ) Right
+ Gridbox( amp(,dimen_/2) ) Right
+ Gridbox( integrator(,dimen_/2) ) Right
+ Gridbox( delay(,delay_rad_) ) Right
+ Gridbox( opamp(,,,dimen_*2/3) ) Right
+ Gridbox( opamp(,,,dimen_*2/3,T) ) Right
+
+right_
+A:Gridbox( relay(2) ) Below(A)
+ Gridbox( relay(2,O) ) Right
+ Gridbox( relay(2,C) ) Right
+ Gridbox( relay ) Right
+ Gridbox( contact ) Right
+ Gridbox( contact(O) ) Right
+ Gridbox( contact(C) ) Right
+
+up_
+A:Gridbox( [circle rad 29/10*gunit] ) Below(A)
+ Gridbox( bi_tr ) Right
+ Gridbox( bi_tr(,R) ) Right
+ Gridbox( bi_tr(,,P) ) Right
+ Gridbox( bi_tr(,R,P) ) Right
+
+ Gridbox( j_fet ) Right
+ Gridbox( j_fet(,R) ) Right
+ Gridbox( j_fet(,,P,) ) Right
+ Gridbox( j_fet(,R,P,) ) Right
+ Gridbox( e_fet(,,,) ) Right
+ Gridbox( e_fet(,R,,) ) Right
+
+ Gridbox( e_fet(,,P,) ) Right
+ Gridbox( e_fet(,R,P,) ) Right
+ Gridbox( d_fet(,,,) ) Right
+ Gridbox( d_fet(,R,,) ) Right
+ Gridbox( d_fet(,,P,) ) Right
+ Gridbox( d_fet(,R,P,) ) Right
+
+A:Gridbox( igbt ) Below(A)
+ Gridbox( ujt ) Right
+ Gridbox( ujt(,,P) ) Right
+rpoint_(down_)
+ Gridbox( thyristor ) Right
+ Gridbox( thyristor(,B) ) Right
+ Gridbox( thyristor(,BG) ) Right
+ Gridbox( thyristor(,A) ) Right
+ Gridbox( thyristor(,C) ) Right
+rpoint_(up_)
+ Gridbox( j_fet ) Right
+ Gridbox( e_fet ) Right
+ Gridbox( e_fet(,,,S) ) Right
+ Gridbox( e_fet(,,P) ) Right
+ Gridbox( e_fet(,,P,S) ) Right
+ Gridbox( d_fet ) Right
+ Gridbox( d_fet(,,,S) ) Right
+ Gridbox( d_fet(,,P,) ) Right
+ Gridbox( d_fet(,,P,S) ) Right
+ Gridbox( j_fet ) Right
+ Gridbox( j_fet(,,P) ) Right
+ Gridbox( mosfet(,,uHSDF) ) Right
+
+rpoint_(right_)
+A:Gridbox( tgate ) Below(A,3)
+ Gridbox( tgate(,B) ) Right
+ Gridbox( ptrans ) Right
+
+A:Gridbox( AND_gate ) Below(A,3)
+ Gridbox( OR_gate ) Right
+ Gridbox( NAND_gate ) Right
+ Gridbox( NOR_gate ) Right
+ Gridbox( XOR_gate ) Right
+ Gridbox( NXOR_gate ) Right
+ Gridbox( BUFFER_gate ) Right
+ Gridbox( NOT_gate ) Right
+
+# input lines for OR-like gates.
+define(`OR_inlgth',`(-sqrt(OR_rad^2-G_hht^2)+sqrt(OR_rad^2-`$1'^2))*L_unit')
+
+ Gridbox( [ {move right_ gunit}
+ {move from last move-svec_(0,G_hht) to last move+svec_(0,G_hht)}
+ {line right_ OR_inlgth(0)}
+ {line right_ OR_inlgth(2) from Here+svec_(0,2)}
+ {line same from Here-svec_(0,2)}
+ {line right_ OR_inlgth(1) from Here+svec_(0,1)}
+ {line same from Here-svec_(0,1)}] ) Right
+ Gridbox( [ {move right_ gunit}
+ {move from last move-svec_(0,G_hht) to last move+svec_(0,G_hht)}
+ {line right_ OR_inlgth(0)}
+ {line right_ OR_inlgth(2) from Here+svec_(0,2)}
+ {line same from Here-svec_(0,2)}] ) Right
+ Gridbox( [ {move right_ gunit}
+ {move from last move-svec_(0,G_hht) to last move+svec_(0,G_hht)}
+ {line right_ OR_inlgth(2) from Here+svec_(0,2)}
+ {line same from Here-svec_(0,2)}] ) Right
+ Gridbox( [ {move right_ gunit}
+ {move from last move-svec_(0,G_hht) to last move+svec_(0,G_hht)}
+ {line right_ OR_inlgth(0)}] ) Right
+
+right_
+A:Gridbox( speaker ) Below(A)
+ Gridbox( speaker(,,H) ) Right
+ Gridbox( bell ) Right
+ Gridbox( microphone ) Right
+ Gridbox( buzzer ) Right
+ Gridbox( buzzer(,,C) ) Right
+ Gridbox( earphone ) Right
+ Gridbox( earphone(,,C) ) Right
+ Gridbox( nport ) Right
+ Gridbox( nterm ) Right
+
+A:Gridbox( FlipFlop(D) ) Below(A)
+ Gridbox( FlipFlop(T) ) Right
+ Gridbox( FlipFlop(RS)) Right
+ Gridbox( FlipFlop(JK)) Right
+
+ ] with .nw at (0,0)
+
+#"A draft palette of a few elements for Inkscape using a 1 mm grid" \
+# ljust below at last [].sw
+
+ command "</g>" # end font
+.PE
diff --git a/graphics/circuit_macros/examples/dpv/paletteDPV.svg b/graphics/circuit_macros/examples/dpv/paletteDPV.svg
new file mode 100644
index 0000000000..51ccb1bc2c
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/paletteDPV.svg
@@ -0,0 +1,2639 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="768" height="715" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="766.664567px" height="713.751181px"
+ viewBox="0 0 766.664567 713.751181"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<g style="font-family:sans-serif"
+>
+<g>
+<polyline points="76.657218,0.533333 76.657218,9.982152
+79.806824,11.556955
+73.507612,14.706562
+79.806824,17.856168
+73.507612,21.005774
+79.806824,24.155381
+73.507612,27.304987
+76.657218,28.87979
+76.657218,38.328609" />
+</g>
+<g>
+<polyline points="91.775328,9.982152 91.775328,9.982152
+94.924934,11.556955
+88.625722,14.706562
+94.924934,17.856168
+88.625722,21.005774
+94.924934,24.155381
+88.625722,27.304987
+91.775328,28.87979
+91.775328,28.87979" />
+</g>
+<g>
+<line x1="106.893438" y1="0.533333" x2="106.893438" y2="9.982152" />
+<polyline points="106.893438,28.87979 110.672966,28.87979
+110.672966,9.982152
+103.113911,9.982152
+103.113911,28.87979
+106.893438,28.87979" />
+<line x1="106.893438" y1="28.87979" x2="106.893438" y2="38.328609" />
+</g>
+<g>
+<polyline points="118.232021,0.533333 118.232021,9.982152
+124.531234,13.131759
+118.232021,16.281365
+124.531234,19.430971
+118.232021,22.580577
+124.531234,25.730184
+118.232021,28.87979
+118.232021,28.87979
+118.232021,38.328609" />
+</g>
+<g>
+<polyline points="137.129659,0.533333 137.129659,9.982152
+141.539108,9.982152
+141.539108,13.76168
+137.129659,13.76168
+137.129659,17.541207
+141.539108,17.541207
+141.539108,21.320735
+137.129659,21.320735
+137.129659,25.100262
+141.539108,25.100262
+141.539108,28.87979
+137.129659,28.87979
+137.129659,28.87979
+137.129659,38.328609" />
+</g>
+<g>
+<polyline points="152.247769,0.533333 152.247769,9.982152
+155.397375,11.556955
+149.098163,14.706562
+155.397375,17.856168
+149.098163,21.005774
+155.397375,24.155381
+149.098163,27.304987
+152.247769,28.87979
+152.247769,38.328609" />
+</g>
+<g>
+<line x1="167.365879" y1="0.533333" x2="167.365879" y2="8.717255" />
+<circle stroke-width="0.533333"
+ cx="167.365879" cy="8.717255" r="0.26567" />
+<path d="M 167.365879,8.717255
+ A 3.779528 3.779528 0 1 1 166.067891,14.572104" />
+<circle stroke-width="0.533333"
+ cx="166.067891" cy="14.572104" r="0.26567" />
+<path d="M 166.067891,14.572104
+ A 3.779528 3.779528 0 1 1 166.067891,19.430971" />
+<circle stroke-width="0.533333"
+ cx="166.067891" cy="19.430971" r="0.26567" />
+<path d="M 166.067891,19.430971
+ A 3.779528 3.779528 0 1 1 166.067891,24.289838" />
+<circle stroke-width="0.533333"
+ cx="166.067891" cy="24.289838" r="0.26567" />
+<path d="M 166.067891,24.289838
+ A 3.779528 3.779528 0 1 1 167.365879,30.144687" />
+<circle stroke-width="0.533333"
+ cx="167.365879" cy="30.144687" r="0.26567" />
+<line x1="167.365879" y1="30.144687" x2="167.365879" y2="38.328609" />
+</g>
+<g>
+<line x1="186.263517" y1="0.533333" x2="186.263517" y2="8.717255" />
+<circle stroke-width="0.533333"
+ cx="186.263517" cy="8.717255" r="0.26567" />
+<path d="M 186.263517,8.717255
+ A 3.779528 3.779528 0 1 1 184.965528,14.572104" />
+<circle stroke-width="0.533333"
+ cx="184.965528" cy="14.572104" r="0.26567" />
+<path d="M 184.965528,14.572104
+ A 3.779528 3.779528 0 1 1 184.965528,19.430971" />
+<circle stroke-width="0.533333"
+ cx="184.965528" cy="19.430971" r="0.26567" />
+<path d="M 184.965528,19.430971
+ A 3.779528 3.779528 0 1 1 184.965528,24.289838" />
+<circle stroke-width="0.533333"
+ cx="184.965528" cy="24.289838" r="0.26567" />
+<path d="M 184.965528,24.289838
+ A 3.779528 3.779528 0 1 1 186.263517,30.144687" />
+<circle stroke-width="0.533333"
+ cx="186.263517" cy="30.144687" r="0.26567" />
+<line x1="193.215145" y1="8.717255" x2="193.215145" y2="30.144687" />
+<line x1="195.57735" y1="8.717255" x2="195.57735" y2="30.144687" />
+<line x1="186.263517" y1="30.144687" x2="186.263517" y2="38.328609" />
+</g>
+<g>
+<line x1="208.940682" y1="0.533333" x2="208.940682" y2="9.982152" />
+<circle stroke-width="0.533333"
+ cx="208.940682" cy="9.982152" r="0.26567" />
+<path d="M 208.940682,9.982152
+ C 211.539108,9.982152 213.665092,11.087664 213.665092,12.438845 213.665092,13.790026 212.176903,14.895538 210.358005,14.895538 208.539108,14.895538 207.050919,14.385302 207.050919,13.76168 207.050919,13.138058 208.539108,12.627822 210.358005,12.627822 212.176903,12.627822 213.665092,13.988451 213.665092,15.651444 213.665092,17.314436 212.176903,18.675066 210.358005,18.675066 208.539108,18.675066 207.050919,18.164829 207.050919,17.541207 207.050919,16.917585 208.539108,16.407349 210.358005,16.407349 212.176903,16.407349 213.665092,17.767979 213.665092,19.430971 213.665092,21.093963 212.176903,22.454593 210.358005,22.454593 208.539108,22.454593 207.050919,21.944357 207.050919,21.320735 207.050919,20.697113 208.539108,20.186877 210.358005,20.186877 212.176903,20.186877 213.665092,21.547507 213.665092,23.210499 213.665092,24.873491 212.176903,26.234121 210.358005,26.234121 208.539108,26.234121 207.050919,25.723885 207.050919,25.100262 207.050919,24.47664 208.539108,23.966404 210.358005,23.966404 212.176903,23.966404 213.665092,25.071916 213.665092,26.423097 213.665092,27.774278 211.539108,28.87979 208.940682,28.87979" />
+<circle stroke-width="0.533333"
+ cx="208.940682" cy="28.87979" r="0.26567" />
+<line x1="208.940682" y1="28.87979" x2="208.940682" y2="38.328609" />
+</g>
+<g>
+<line x1="227.83832" y1="0.533333" x2="227.83832" y2="9.982152" />
+<line x1="227.83832" y1="9.982152" x2="227.304987" y2="9.982152" />
+<path d="M 227.83832,9.982152
+ A 2.362205 2.362205 0 0 1 227.83832,14.706562" />
+<line x1="227.83832" y1="14.706562" x2="227.304987" y2="14.706562" />
+<path d="M 227.83832,14.706562
+ A 2.362205 2.362205 0 0 1 227.83832,19.430971" />
+<line x1="227.83832" y1="19.430971" x2="227.304987" y2="19.430971" />
+<path d="M 227.83832,19.430971
+ A 2.362205 2.362205 0 1 1 227.83832,24.155381" />
+<line x1="227.83832" y1="24.155381" x2="227.304987" y2="24.155381" />
+<path d="M 227.83832,24.155381
+ A 2.362205 2.362205 0 1 1 227.83832,28.87979" />
+<line x1="227.83832" y1="28.87979" x2="227.304987" y2="28.87979" />
+<line x1="227.83832" y1="28.87979" x2="227.83832" y2="38.328609" />
+</g>
+<g>
+<line x1="242.95643" y1="0.533333" x2="242.95643" y2="9.982152" />
+<line x1="242.95643" y1="9.982152" x2="242.423097" y2="9.982152" />
+<path d="M 242.95643,9.982152
+ A 2.362205 2.362205 0 0 1 242.95643,14.706562" />
+<line x1="242.95643" y1="14.706562" x2="242.423097" y2="14.706562" />
+<path d="M 242.95643,14.706562
+ A 2.362205 2.362205 0 0 1 242.95643,19.430971" />
+<line x1="242.95643" y1="19.430971" x2="242.423097" y2="19.430971" />
+<path d="M 242.95643,19.430971
+ A 2.362205 2.362205 0 1 1 242.95643,24.155381" />
+<line x1="242.95643" y1="24.155381" x2="242.423097" y2="24.155381" />
+<path d="M 242.95643,24.155381
+ A 2.362205 2.362205 0 1 1 242.95643,28.87979" />
+<line x1="242.95643" y1="28.87979" x2="242.423097" y2="28.87979" />
+<line x1="246.893438" y1="9.982152" x2="246.893438" y2="28.87979" />
+<line x1="249.255643" y1="9.982152" x2="249.255643" y2="28.87979" />
+<line x1="242.95643" y1="28.87979" x2="242.95643" y2="38.328609" />
+</g>
+<g>
+<line x1="265.633596" y1="0.533333" x2="265.633596" y2="17.541207" />
+<line x1="259.334383" y1="17.541207" x2="271.932808" y2="17.541207" />
+<line x1="259.334383" y1="21.320735" x2="271.932808" y2="21.320735" />
+<line x1="265.633596" y1="21.320735" x2="265.633596" y2="38.328609" />
+</g>
+<g>
+<line x1="288.310761" y1="0.533333" x2="288.310761" y2="17.541207" />
+<line x1="283.586352" y1="17.541207" x2="293.035171" y2="17.541207" />
+<path d="M 283.586352,21.320735
+ A 9.448819 9.448819 0 0 1 293.035171,21.320735" />
+<line x1="288.310761" y1="20.054833" x2="288.310761" y2="38.328609" />
+</g>
+<g>
+<line x1="310.987927" y1="0.533333" x2="310.987927" y2="17.541207" />
+<polyline points="306.263517,21.320735 306.263517,17.541207
+315.712336,17.541207
+315.712336,21.320735" />
+<line x1="307.444619" y1="20.060892" x2="314.531234" y2="20.060892" />
+<line x1="310.987927" y1="20.060892" x2="310.987927" y2="38.328609" />
+</g>
+<g>
+<line x1="329.885564" y1="0.533333" x2="329.885564" y2="15.651444" />
+<polyline stroke-width="0.533333"
+ points="329.885564,18.013648 333.665092,18.013648
+333.665092,15.651444
+326.106037,15.651444
+326.106037,18.013648
+329.885564,18.013648" />
+<polyline stroke-width="0" fill="black"
+ points="329.885564,20.848294
+333.665092,20.848294
+333.665092,23.210499
+326.106037,23.210499
+326.106037,20.848294
+329.885564,20.848294" />
+<polyline stroke-width="0.533333"
+ points="329.885564,20.848294 333.665092,20.848294
+333.665092,23.210499
+326.106037,23.210499
+326.106037,20.848294
+329.885564,20.848294" />
+<line x1="329.885564" y1="23.210499" x2="329.885564" y2="38.328609" />
+</g>
+<g>
+<line x1="345.003675" y1="0.533333" x2="345.003675" y2="15.651444" />
+<polyline stroke-width="0" fill="black"
+ points="345.003675,18.013648
+348.783202,18.013648
+348.783202,15.651444
+341.224147,15.651444
+341.224147,18.013648
+345.003675,18.013648" />
+<polyline points="345.003675,18.013648 348.783202,18.013648
+348.783202,15.651444
+341.224147,15.651444
+341.224147,18.013648
+345.003675,18.013648" />
+<polyline stroke-width="0" fill="black"
+ points="345.003675,20.848294
+348.783202,20.848294
+348.783202,23.210499
+341.224147,23.210499
+341.224147,20.848294
+345.003675,20.848294" />
+<polyline points="345.003675,20.848294 348.783202,20.848294
+348.783202,23.210499
+341.224147,23.210499
+341.224147,20.848294
+345.003675,20.848294" />
+<line x1="345.003675" y1="23.210499" x2="345.003675" y2="38.328609" />
+</g>
+<g>
+<line x1="363.901312" y1="0.533333" x2="363.901312" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="363.901312,16.703332
+367.050919,16.703332
+363.901312,21.627269
+360.751706,16.703332
+363.901312,16.703332" />
+<polyline points="363.901312,16.703332 367.050919,16.703332
+363.901312,21.627269
+360.751706,16.703332
+363.901312,16.703332" />
+<line x1="360.362738" y1="22.15861" x2="367.439887" y2="22.15861" />
+<line x1="363.901312" y1="22.15861" x2="363.901312" y2="38.328609" />
+</g>
+<g>
+<line x1="386.578478" y1="0.533333" x2="386.578478" y2="16.703332" />
+<polyline points="386.578478,16.703332 389.728084,16.703332
+386.578478,21.627269
+383.428871,16.703332
+386.578478,16.703332" />
+<line x1="383.039903" y1="22.15861" x2="390.117052" y2="22.15861" />
+<line x1="386.578478" y1="22.15861" x2="386.578478" y2="38.328609" />
+</g>
+<g>
+<line x1="409.255643" y1="0.533333" x2="409.255643" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="409.255643,16.703332
+412.405249,16.703332
+409.255643,21.627269
+406.106037,16.703332
+409.255643,16.703332" />
+<polyline points="409.255643,16.703332 412.405249,16.703332
+409.255643,21.627269
+406.106037,16.703332
+409.255643,16.703332" />
+<polyline points="405.717068,20.583807 405.717068,22.15861
+412.794218,22.15861
+412.794218,23.733413" />
+<line x1="409.255643" y1="22.15861" x2="409.255643" y2="38.328609" />
+</g>
+<g>
+<line x1="431.932808" y1="0.533333" x2="431.932808" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="431.932808,16.703332
+435.082415,16.703332
+431.932808,21.627269
+428.783202,16.703332
+431.932808,16.703332" />
+<polyline points="431.932808,16.703332 435.082415,16.703332
+431.932808,21.627269
+428.783202,16.703332
+431.932808,16.703332" />
+<polyline points="429.833071,20.583807 428.394234,20.583807
+428.394234,22.15861
+435.471383,22.15861
+435.471383,23.733413
+434.032546,23.733413" />
+<line x1="431.932808" y1="22.15861" x2="431.932808" y2="38.328609" />
+</g>
+<g>
+<line x1="454.609974" y1="0.533333" x2="454.609974" y2="16.703332" />
+<polyline points="454.609974,16.703332 457.75958,16.703332
+454.609974,21.627269
+451.460367,16.703332
+454.609974,16.703332" />
+<line x1="454.609974" y1="16.703332" x2="454.609974" y2="22.15861" />
+<line x1="451.071399" y1="22.15861" x2="458.148549" y2="22.15861" />
+<line x1="454.609974" y1="22.15861" x2="454.609974" y2="38.328609" />
+</g>
+<g>
+<line x1="477.287139" y1="0.533333" x2="477.287139" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="477.287139,16.703332
+480.436745,16.703332
+477.287139,21.627269
+474.137533,16.703332
+477.287139,16.703332" />
+<polyline points="477.287139,16.703332 480.436745,16.703332
+477.287139,21.627269
+474.137533,16.703332
+477.287139,16.703332" />
+<line x1="473.748564" y1="22.15861" x2="480.825714" y2="22.15861" />
+<line x1="473.748564" y1="23.733413" x2="480.825714" y2="23.733413" />
+<line x1="477.287139" y1="23.733413" x2="477.287139" y2="38.328609" />
+</g>
+<g>
+<line x1="499.964304" y1="0.533333" x2="499.964304" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="499.964304,16.703332
+503.113911,16.703332
+499.964304,21.627269
+496.814698,16.703332
+499.964304,16.703332" />
+<polyline points="499.964304,16.703332 503.113911,16.703332
+499.964304,21.627269
+496.814698,16.703332
+499.964304,16.703332" />
+<line x1="496.42573" y1="22.15861" x2="503.502879" y2="22.15861" />
+<path d="M 496.42573,24.258348
+ A 6.502428 6.502428 0 0 1 503.502879,24.258348" />
+<line x1="499.964304" y1="23.211198" x2="499.964304" y2="23.733413" />
+<line x1="499.964304" y1="23.733413" x2="499.964304" y2="38.328609" />
+</g>
+<g>
+<line x1="522.64147" y1="0.533333" x2="522.64147" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="522.64147,16.703332
+525.791076,16.703332
+522.64147,21.627269
+519.491864,16.703332
+522.64147,16.703332" />
+<polyline points="522.64147,16.703332 525.791076,16.703332
+522.64147,21.627269
+519.491864,16.703332
+522.64147,16.703332" />
+<polyline points="519.102895,20.583807 519.102895,22.15861
+526.180045,22.15861
+526.180045,20.583807" />
+<line x1="522.64147" y1="22.15861" x2="522.64147" y2="38.328609" />
+</g>
+<g>
+<line x1="545.318635" y1="0.533333" x2="545.318635" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="545.318635,16.703332
+548.468241,16.703332
+545.318635,21.627269
+542.169029,16.703332
+545.318635,16.703332" />
+<polyline points="545.318635,16.703332 548.468241,16.703332
+545.318635,21.627269
+542.169029,16.703332
+545.318635,16.703332" />
+<line x1="541.78006" y1="22.15861" x2="548.85721" y2="22.15861" />
+<line x1="541.78006" y1="20.583807" x2="541.78006" y2="23.733413" />
+<line x1="548.85721" y1="20.583807" x2="548.85721" y2="23.733413" />
+<line x1="545.318635" y1="22.15861" x2="545.318635" y2="38.328609" />
+</g>
+<g>
+<line x1="567.995801" y1="0.533333" x2="567.995801" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="571.145407,16.703332
+574.295013,16.703332
+571.145407,21.627269
+567.995801,16.703332
+571.145407,16.703332" />
+<polyline points="571.145407,16.703332 574.295013,16.703332
+571.145407,21.627269
+567.995801,16.703332
+571.145407,16.703332" />
+<line x1="561.307619" y1="22.15861" x2="574.683982" y2="22.15861" />
+<line x1="561.307619" y1="16.703332" x2="574.683982" y2="16.703332" />
+<polyline stroke-width="0" fill="black"
+ points="564.846194,22.15861
+567.995801,22.15861
+564.846194,17.234673
+561.696588,22.15861
+564.846194,22.15861" />
+<polyline points="564.846194,22.15861 567.995801,22.15861
+564.846194,17.234673
+561.696588,22.15861
+564.846194,22.15861" />
+<line x1="567.995801" y1="22.15861" x2="567.995801" y2="38.328609" />
+</g>
+<g>
+<line x1="590.672966" y1="0.533333" x2="590.672966" y2="13.975693" />
+<polyline stroke-width="0" fill="black"
+ points="590.672966,13.975693
+593.822572,13.975693
+590.672966,18.89963
+587.52336,13.975693
+590.672966,13.975693" />
+<polyline points="590.672966,13.975693 593.822572,13.975693
+590.672966,18.89963
+587.52336,13.975693
+590.672966,13.975693" />
+<polyline points="587.134391,17.856168 587.134391,19.430971
+594.211541,19.430971
+594.211541,21.005774" />
+<polyline stroke-width="0" fill="black"
+ points="590.672966,24.886249
+593.822572,24.886249
+590.672966,19.962312
+587.52336,24.886249
+590.672966,24.886249" />
+<polyline points="590.672966,24.886249 593.822572,24.886249
+590.672966,19.962312
+587.52336,24.886249
+590.672966,24.886249" />
+<line x1="590.672966" y1="24.886249" x2="590.672966" y2="38.328609" />
+</g>
+<g>
+<line x1="613.350131" y1="0.533333" x2="613.350131" y2="16.703332" />
+<polygon stroke-width="0" fill="black"
+ points="623.710168,3.435942 629.012806,1.102782
+626.679646,6.40542" />
+<line x1="616.71917" y1="13.396418" x2="627.972311" y2="2.143277" />
+<polygon stroke-width="0" fill="black"
+ points="627.05083,6.776604 632.353468,4.443444
+630.020308,9.746082" />
+<line x1="620.059832" y1="16.73708" x2="631.312973" y2="5.483939" />
+<polyline stroke-width="0" fill="black"
+ points="613.350131,16.703332
+616.499738,16.703332
+613.350131,21.627269
+610.200525,16.703332
+613.350131,16.703332" />
+<polyline points="613.350131,16.703332 616.499738,16.703332
+613.350131,21.627269
+610.200525,16.703332
+613.350131,16.703332" />
+<line x1="609.811556" y1="22.15861" x2="616.888706" y2="22.15861" />
+<line x1="613.350131" y1="22.15861" x2="613.350131" y2="38.328609" />
+</g>
+<g>
+<circle cx="654.924934" cy="19.430971" r="13.228346" />
+</g>
+<g>
+<line x1="685.161155" y1="0.533333" x2="685.161155" y2="16.911286" />
+<line x1="682.011549" y1="16.911286" x2="688.310761" y2="16.911286" />
+<polyline points="685.161155,14.706562 689.885564,14.706562
+689.885564,24.155381
+680.436745,24.155381
+680.436745,14.706562
+685.161155,14.706562" />
+<line x1="682.011549" y1="21.950656" x2="688.310761" y2="21.950656" />
+<line x1="685.161155" y1="21.950656" x2="685.161155" y2="38.328609" />
+</g>
+<circle fill="black"
+ cx="700.279265" cy="19.430971" r="1.511811" />
+<g>
+<line x1="76.657218" y1="42.108136" x2="76.657218" y2="51.556955" />
+<circle cx="76.657218" cy="61.005774" r="9.448819" />
+<line x1="76.657218" y1="70.454593" x2="76.657218" y2="79.903412" />
+</g>
+<g>
+<line x1="106.893438" y1="42.108136" x2="106.893438" y2="51.556955" />
+<circle cx="106.893438" cy="61.005774" r="9.448819" />
+<polygon stroke-width="0" fill="black"
+ points="109.255643,58.64357 106.893438,68.092388
+104.531234,58.64357" />
+<line x1="106.893438" y1="53.91916" x2="106.893438" y2="65.893399" />
+<line x1="106.893438" y1="70.454593" x2="106.893438" y2="79.903412" />
+</g>
+<g>
+<line x1="137.129659" y1="42.108136" x2="137.129659" y2="51.556955" />
+<circle cx="137.129659" cy="61.005774" r="9.448819" />
+<line x1="127.68084" y1="61.005774" x2="146.578478" y2="61.005774" />
+<line x1="137.129659" y1="70.454593" x2="137.129659" y2="79.903412" />
+</g>
+<g>
+<line x1="167.365879" y1="42.108136" x2="167.365879" y2="51.556955" />
+<circle cx="167.365879" cy="61.005774" r="9.448819" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="167.365879" y="60.816798">-</text>
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="167.365879" y="70.265617"><tspan font-size="66%">+</tspan></text>
+<line x1="167.365879" y1="70.454593" x2="167.365879" y2="79.903412" />
+</g>
+<g>
+<line x1="197.6021" y1="42.108136" x2="197.6021" y2="51.556955" />
+<circle cx="197.6021" cy="61.005774" r="9.448819" />
+<line x1="197.6021" y1="51.556955" x2="197.6021" y2="70.454593" />
+<line x1="197.6021" y1="70.454593" x2="197.6021" y2="79.903412" />
+</g>
+<g>
+<line x1="227.83832" y1="42.108136" x2="227.83832" y2="51.556955" />
+<circle cx="227.83832" cy="61.005774" r="9.448819" />
+<path d="M 227.83832,61.005774
+ A 3.319977 3.319977 0 0 0 221.539108,61.005774" />
+<path d="M 227.83832,61.005774
+ A 3.319977 3.319977 0 0 0 234.137533,61.005774" />
+<line x1="227.83832" y1="70.454593" x2="227.83832" y2="79.903412" />
+</g>
+<g>
+<line x1="258.074541" y1="42.108136" x2="258.074541" y2="51.556955" />
+<circle cx="258.074541" cy="61.005774" r="9.448819" />
+<path d="M 251.775328,61.005774
+ C 251.902222,60.873593 252.125763,60.643252 252.274064,60.491867 252.422366,60.340482 252.662034,60.106921 252.808781,59.970776 252.955528,59.834631 253.201024,59.631077 253.3565,59.516633 253.511975,59.40219 253.747259,59.253116 253.881434,59.18404 254.015609,59.114964 254.218606,59.030815 254.334334,58.996297 254.450062,58.96178 254.629424,58.925463 254.734501,58.915271 254.839579,58.90508 255.010289,58.90508 255.115367,58.915271 255.220445,58.925463 255.399807,58.96178 255.515535,58.996297 255.631263,59.030815 255.83426,59.114964 255.968435,59.18404 256.10261,59.253116 256.337894,59.40219 256.493369,59.516633 256.648845,59.631077 256.916416,59.855111 257.090338,60.016468 257.26426,60.177825 257.555467,60.465072 257.740039,60.657335 257.924612,60.849598 258.22447,61.16195 258.409042,61.354213 258.593615,61.546477 258.884821,61.833724 259.058744,61.995081 259.232666,62.156438 259.500237,62.380472 259.655712,62.494915 259.811188,62.609359 260.046472,62.758433 260.180647,62.827508 260.314822,62.896584 260.517819,62.980734 260.633547,63.015251 260.749275,63.049769 260.928636,63.086086 261.033714,63.096277 261.138792,63.106468 261.309502,63.106468 261.41458,63.096277 261.519658,63.086086 261.699019,63.049769 261.814747,63.015251 261.930475,62.980734 262.133472,62.896584 262.267647,62.827508 262.401822,62.758433 262.637106,62.609359 262.792582,62.494915 262.948057,62.380472 263.193553,62.176918 263.3403,62.040773 263.487047,61.904627 263.726716,61.671066 263.875017,61.519681 264.023318,61.368297 264.24686,61.137955 264.373753,61.005774" />
+<line x1="258.074541" y1="70.454593" x2="258.074541" y2="79.903412" />
+</g>
+<g>
+<line x1="288.310761" y1="42.108136" x2="288.310761" y2="51.556955" />
+<circle cx="288.310761" cy="61.005774" r="9.448819" />
+<line x1="294.992085" y1="54.32445" x2="281.629437" y2="67.687098" />
+<line x1="281.629437" y1="54.32445" x2="294.992085" y2="67.687098" />
+<line x1="288.310761" y1="70.454593" x2="288.310761" y2="79.903412" />
+</g>
+<g>
+<line x1="318.546982" y1="42.108136" x2="318.546982" y2="51.556955" />
+<circle cx="318.546982" cy="61.005774" r="9.448819" />
+<line x1="318.546982" y1="51.556955" x2="318.546982" y2="56.281365" />
+<line x1="313.822572" y1="56.281365" x2="323.271391" y2="56.281365" />
+<line x1="313.822572" y1="65.730184" x2="323.271391" y2="65.730184" />
+<line x1="318.546982" y1="70.454593" x2="318.546982" y2="65.730184" />
+<line x1="318.546982" y1="70.454593" x2="318.546982" y2="79.903412" />
+</g>
+<g>
+<line x1="348.783202" y1="42.108136" x2="348.783202" y2="51.556955" />
+<circle cx="348.783202" cy="61.005774" r="9.448819" />
+<polyline points="344.058793,63.367979 346.420997,63.367979
+346.420997,58.64357
+351.145407,58.64357
+351.145407,63.367979
+353.507612,63.367979" />
+<line x1="348.783202" y1="70.454593" x2="348.783202" y2="79.903412" />
+</g>
+<g>
+<line x1="379.019423" y1="42.108136" x2="379.019423" y2="51.556955" />
+<circle cx="379.019423" cy="61.005774" r="9.448819" />
+<polyline points="374.295013,61.005774 374.295013,57.856168
+379.019423,57.856168
+379.019423,64.155381
+383.743832,64.155381
+383.743832,61.005774" />
+<line x1="379.019423" y1="70.454593" x2="379.019423" y2="79.903412" />
+</g>
+<g>
+<line x1="409.255643" y1="42.108136" x2="409.255643" y2="51.556955" />
+<circle cx="409.255643" cy="61.005774" r="9.448819" />
+<polyline points="402.95643,64.155381 412.405249,56.281365
+412.405249,64.155381" />
+<line x1="409.255643" y1="70.454593" x2="409.255643" y2="79.903412" />
+</g>
+<g>
+<line x1="439.491864" y1="42.108136" x2="439.491864" y2="51.556955" />
+<circle cx="439.491864" cy="61.005774" r="9.448819" />
+<polyline points="432.405249,63.367979 437.129659,58.64357
+441.854068,63.367979
+446.578478,58.64357" />
+<line x1="439.491864" y1="70.454593" x2="439.491864" y2="79.903412" />
+</g>
+<g>
+<line x1="469.728084" y1="42.108136" x2="469.728084" y2="51.556955" />
+<circle cx="469.728084" cy="61.005774" r="9.448819" />
+<line x1="469.728084" y1="51.556955" x2="469.728084" y2="58.64357" />
+<circle stroke-width="0.533333"
+ cx="469.728084" cy="58.64357" r="0.26567" />
+<path d="M 469.728084,58.64357
+ C 470.777953,58.774803 471.827822,58.906037 472.87769,59.03727 474.977428,59.299738
+476.027297,59.955906 476.027297,61.005774 476.027297,62.055643
+474.977428,62.711811 472.87769,62.974278 471.827822,63.105512 470.777953,63.236745
+469.728084,63.367979" />
+<circle stroke-width="0.533333"
+ cx="469.728084" cy="63.367979" r="0.26567" />
+<line x1="469.728084" y1="63.367979" x2="469.728084" y2="70.454593" />
+<line x1="469.728084" y1="70.454593" x2="469.728084" y2="79.903412" />
+</g>
+<g>
+<line x1="496.184777" y1="42.108136" x2="496.184777" y2="51.556955" />
+<path d="M 500.909186,61.005774
+ C 500.909186,62.649869 500.413123,65.229396 499.728084,67.147507 499.043045,69.065617 497.554856,70.454593 496.184777,70.454593 494.814698,70.454593 493.326509,69.065617 492.64147,67.147507 491.95643,65.229396 491.460367,62.649869 491.460367,61.005774 491.460367,59.36168 491.95643,56.782152 492.64147,54.864042 493.326509,52.945932 494.814698,51.556955 496.184777,51.556955 497.554856,51.556955 499.043045,52.945932 499.728084,54.864042 500.413123,56.782152 500.909186,59.36168 500.909186,61.005774" />
+<line x1="496.184777" y1="70.454593" x2="496.184777" y2="79.903412" />
+</g>
+<g>
+<line x1="518.861942" y1="42.108136" x2="518.861942" y2="51.556955" />
+<path d="M 518.861942,61.005774
+ C 519.649344,60.218373 520.436745,59.430971 521.224147,58.64357 522.79895,57.068766
+523.586352,55.493963 523.586352,53.91916 523.586352,52.344357
+522.011549,51.556955 518.861942,51.556955 515.712336,51.556955
+514.137533,52.344357 514.137533,53.91916 514.137533,55.493963
+514.924934,57.068766 516.499738,58.64357 517.287139,59.430971 518.074541,60.218373
+518.861942,61.005774" />
+<path d="M 518.861942,61.005774
+ C 519.649344,61.793176 520.436745,62.580577 521.224147,63.367979 522.79895,64.942782
+523.586352,66.517585 523.586352,68.092388 523.586352,69.667192
+522.011549,70.454593 518.861942,70.454593 515.712336,70.454593
+514.137533,69.667192 514.137533,68.092388 514.137533,66.517585
+514.924934,64.942782 516.499738,63.367979 517.287139,62.580577 518.074541,61.793176
+518.861942,61.005774" />
+<line x1="518.861942" y1="70.454593" x2="518.861942" y2="79.903412" />
+</g>
+<g>
+<line x1="545.318635" y1="42.108136" x2="545.318635" y2="49.667192" />
+<polyline points="545.318635,49.667192 556.657218,61.005774
+545.318635,72.344357
+533.980052,61.005774
+545.318635,49.667192" />
+<line x1="545.318635" y1="72.344357" x2="545.318635" y2="79.903412" />
+</g>
+<g>
+<line x1="575.554856" y1="42.108136" x2="575.554856" y2="49.667192" />
+<polyline points="575.554856,49.667192 586.893438,61.005774
+575.554856,72.344357
+564.216273,61.005774
+575.554856,49.667192" />
+<polygon stroke-width="0" fill="black"
+ points="577.91706,60.060892 575.554856,69.509711
+573.192651,60.060892" />
+<line x1="575.554856" y1="52.501837" x2="575.554856" y2="67.310722" />
+<line x1="575.554856" y1="72.344357" x2="575.554856" y2="79.903412" />
+</g>
+<g>
+<line x1="605.791076" y1="42.108136" x2="605.791076" y2="49.667192" />
+<polyline points="605.791076,49.667192 617.129659,61.005774
+605.791076,72.344357
+594.452493,61.005774
+605.791076,49.667192" />
+<line x1="617.129659" y1="61.005774" x2="594.452493" y2="61.005774" />
+<line x1="605.791076" y1="72.344357" x2="605.791076" y2="79.903412" />
+</g>
+<g>
+<line x1="636.027297" y1="42.108136" x2="636.027297" y2="49.667192" />
+<polyline points="636.027297,49.667192 647.365879,61.005774
+636.027297,72.344357
+624.688714,61.005774
+636.027297,49.667192" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="636.027297" y="59.871916">-</text>
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="636.027297" y="71.210499">+</text>
+<line x1="636.027297" y1="72.344357" x2="636.027297" y2="79.903412" />
+</g>
+<g>
+<line x1="666.263517" y1="42.108136" x2="666.263517" y2="49.667192" />
+<polyline points="666.263517,49.667192 677.6021,61.005774
+666.263517,72.344357
+654.924934,61.005774
+666.263517,49.667192" />
+<line x1="666.263517" y1="49.667192" x2="666.263517" y2="72.344357" />
+<line x1="666.263517" y1="72.344357" x2="666.263517" y2="79.903412" />
+</g>
+<g>
+<line x1="696.499738" y1="42.108136" x2="696.499738" y2="44.470341" />
+<circle cx="696.499738" cy="53.91916" r="9.448819" />
+<path d="M 690.249931,61.005774
+ A 9.448819 9.448819 0 1 0 702.749544,61.005774" />
+<line x1="696.499738" y1="77.541207" x2="696.499738" y2="79.903412" />
+</g>
+<g>
+<line x1="726.735958" y1="42.108136" x2="726.735958" y2="44.470341" />
+<circle cx="726.735958" cy="53.91916" r="9.448819" />
+<circle cx="726.735958" cy="68.092388" r="9.448819" />
+<line x1="726.735958" y1="77.541207" x2="726.735958" y2="79.903412" />
+</g>
+<g>
+<line x1="76.657218" y1="121.478215" x2="76.657218" y2="104.155381" />
+<line x1="71.932808" y1="104.155381" x2="81.381627" y2="104.155381" />
+<line x1="67.208399" y1="101.005774" x2="86.106037" y2="101.005774" />
+<line x1="76.657218" y1="101.005774" x2="76.657218" y2="83.68294" />
+</g>
+<g>
+<line x1="106.893438" y1="121.478215" x2="106.893438" y2="110.454593" />
+<line x1="102.169029" y1="110.454593" x2="111.617848" y2="110.454593" />
+<line x1="97.444619" y1="107.304987" x2="116.342257" y2="107.304987" />
+<line x1="102.169029" y1="104.155381" x2="111.617848" y2="104.155381" />
+<line x1="97.444619" y1="101.005774" x2="116.342257" y2="101.005774" />
+<line x1="102.169029" y1="97.856168" x2="111.617848" y2="97.856168" />
+<line x1="97.444619" y1="94.706562" x2="116.342257" y2="94.706562" />
+<line x1="106.893438" y1="94.706562" x2="106.893438" y2="83.68294" />
+</g>
+<g>
+<line x1="137.129659" y1="83.68294" x2="137.129659" y2="90.769554" />
+<polyline points="139.491864,93.431798 139.491864,90.769554
+134.767454,90.769554
+134.767454,93.431798" />
+<circle cx="137.129659" cy="102.580577" r="9.448819" />
+<polyline points="139.491864,111.729357 139.491864,114.391601
+134.767454,114.391601
+134.767454,111.729357" />
+<line x1="137.129659" y1="114.391601" x2="137.129659" y2="121.478215" />
+</g>
+<g>
+<line x1="159.806824" y1="83.210499" x2="159.806824" y2="92.659318" />
+<polyline points="159.806824,111.556955 163.586352,111.556955
+163.586352,92.659318
+156.027297,92.659318
+156.027297,111.556955
+159.806824,111.556955" />
+<polyline points="159.806824,92.659318 159.806824,95.68294
+161.696588,95.68294
+161.696588,98.706562
+157.91706,98.706562
+157.91706,101.730184
+161.696588,101.730184
+161.696588,104.753806
+159.806824,104.753806
+159.806824,107.777428" />
+<polyline stroke-width="0" fill="black"
+ points="159.806824,112.501837
+163.586352,112.501837
+163.586352,107.777428
+156.027297,107.777428
+156.027297,112.501837
+159.806824,112.501837" />
+<polyline points="159.806824,112.501837 163.586352,112.501837
+163.586352,107.777428
+156.027297,107.777428
+156.027297,112.501837
+159.806824,112.501837" />
+<line x1="159.806824" y1="112.501837" x2="159.806824" y2="121.950656" />
+</g>
+<g>
+<line x1="174.924934" y1="116.753806" x2="174.924934" y2="121.478215" />
+<line x1="174.924934" y1="83.68294" x2="174.924934" y2="89.982152" />
+<circle stroke-width="0.533333"
+ cx="174.924934" cy="89.982152" r="0.26567" />
+<line x1="171.775328" y1="89.982152" x2="171.775328" y2="115.179003" />
+<path d="M 171.775328,115.179003
+ C 171.775328,116.048766 173.185407,116.753806 174.924934,116.753806 176.664462,116.753806 178.074541,116.048766 178.074541,115.179003" />
+<line x1="178.074541" y1="115.179003" x2="178.074541" y2="89.982152" />
+<path d="M 178.074541,89.982152
+ C 178.074541,89.112388 176.664462,88.407349 174.924934,88.407349 173.185407,88.407349 171.775328,89.112388 171.775328,89.982152 171.775328,90.851916 173.185407,91.556955 174.924934,91.556955 176.664462,91.556955 178.074541,90.851916 178.074541,89.982152" />
+</g>
+<g>
+<line x1="190.043045" y1="83.68294" x2="190.043045" y2="95.021522" />
+<path d="M 190.043045,95.021522
+ A 3.779528 3.779528 0 0 1 190.043045,102.580577" />
+<path d="M 190.043045,102.580577
+ A 3.779528 3.779528 0 1 0 190.043045,110.139633" />
+<line x1="190.043045" y1="110.139633" x2="190.043045" y2="121.478215" />
+</g>
+<g>
+<line x1="205.161155" y1="83.68294" x2="205.161155" y2="95.021522" />
+<path d="M 205.161155,95.021522
+ A 3.779528 3.779528 0 0 1 205.161155,102.580577" />
+<circle fill="white"
+ cx="205.161155" cy="95.021522" r="1.511811" />
+<path d="M 205.161155,102.580577
+ A 3.779528 3.779528 0 1 0 205.161155,110.139633" />
+<line x1="205.161155" y1="110.139633" x2="205.161155" y2="121.478215" />
+<circle fill="white"
+ cx="205.161155" cy="110.139633" r="1.511811" />
+</g>
+<g>
+<line x1="220.279265" y1="83.68294" x2="220.279265" y2="95.021522" />
+<polyline points="220.279265,110.139633 224.058793,110.139633
+224.058793,95.021522
+216.499738,95.021522
+216.499738,110.139633
+220.279265,110.139633" />
+<line x1="220.279265" y1="95.021522" x2="220.279265" y2="121.478215" />
+</g>
+<g>
+<line x1="235.397375" y1="83.68294" x2="235.397375" y2="95.021522" />
+<polyline points="235.397375,110.139633 239.176903,110.139633
+239.176903,95.021522
+231.617848,95.021522
+231.617848,110.139633
+235.397375,110.139633" />
+<line x1="231.617848" y1="98.045144" x2="239.176903" y2="98.045144" />
+<line x1="231.617848" y1="107.11601" x2="239.176903" y2="107.11601" />
+<line x1="235.397375" y1="110.139633" x2="235.397375" y2="121.478215" />
+</g>
+<g>
+<line x1="250.515486" y1="83.68294" x2="250.515486" y2="95.021522" />
+<polyline points="250.515486,110.139633 254.295013,110.139633
+254.295013,95.021522
+246.735958,95.021522
+246.735958,110.139633
+250.515486,110.139633" />
+<polyline stroke-width="0" fill="black"
+ points="250.515486,98.045144
+254.295013,98.045144
+254.295013,95.021522
+246.735958,95.021522
+246.735958,98.045144
+250.515486,98.045144" />
+<polyline points="250.515486,98.045144 254.295013,98.045144
+254.295013,95.021522
+246.735958,95.021522
+246.735958,98.045144
+250.515486,98.045144" />
+<line x1="250.515486" y1="110.139633" x2="250.515486" y2="121.478215" />
+</g>
+<g>
+<line x1="269.413123" y1="83.68294" x2="269.413123" y2="89.982152" />
+<polyline points="269.413123,112.659318 273.192651,112.659318
+273.192651,92.501837
+265.633596,92.501837
+265.633596,112.659318
+269.413123,112.659318" />
+<polyline points="269.413123,115.179003 275.712336,115.179003
+275.712336,89.982152
+263.113911,89.982152
+263.113911,115.179003
+269.413123,115.179003" />
+<line x1="269.413123" y1="89.982152" x2="269.413123" y2="121.478215" />
+</g>
+<g>
+<line x1="292.090289" y1="83.68294" x2="292.090289" y2="89.982152" />
+<polyline points="292.090289,112.659318 295.869816,112.659318
+295.869816,92.501837
+288.310761,92.501837
+288.310761,112.659318
+292.090289,112.659318" />
+<line x1="295.869816" y1="96.533333" x2="288.310761" y2="96.533333" />
+<line x1="295.869816" y1="108.627822" x2="288.310761" y2="108.627822" />
+<polyline points="292.090289,115.179003 298.389501,115.179003
+298.389501,89.982152
+285.791076,89.982152
+285.791076,115.179003
+292.090289,115.179003" />
+<line x1="292.090289" y1="115.179003" x2="292.090289" y2="121.478215" />
+</g>
+<g>
+<line x1="307.208399" y1="83.68294" x2="307.208399" y2="96.281365" />
+<path d="M 309.570604,95.100262
+ A 9.350394 9.350394 0 0 1 309.570604,110.060892" />
+<line x1="307.208399" y1="108.87979" x2="307.208399" y2="121.478215" />
+</g>
+<g>
+<line x1="326.106037" y1="83.68294" x2="326.106037" y2="96.281365" />
+<circle fill="white"
+ cx="326.106037" cy="96.281365" r="1.511811" />
+<path d="M 329.980052,95.100262
+ A 9.350394 9.350394 0 0 1 329.980052,110.060892" />
+<line x1="326.106037" y1="108.87979" x2="326.106037" y2="121.478215" />
+<circle fill="white"
+ cx="326.106037" cy="108.87979" r="1.511811" />
+</g>
+<g>
+<polygon stroke-width="0" fill="black"
+ points="358.680721,96.901452 367.032375,91.890459
+362.021383,100.242114" />
+<line x1="345.652139" y1="113.270696" x2="365.477455" y2="93.44538" />
+</g>
+<g>
+<line x1="378.832721" y1="114.105861" x2="400.212958" y2="92.725625" />
+<line x1="398.542627" y1="91.055294" x2="401.883289" y2="94.395956" />
+</g>
+<g>
+<line x1="413.683635" y1="113.270696" x2="435.063872" y2="91.890459" />
+</g>
+<g>
+<polyline points="471.441824,91.890459 450.061588,113.270696
+445.337178,113.270696" />
+</g>
+<g>
+<polyline points="481.715131,115.6329 503.095368,94.252664
+503.095368,89.528254" />
+</g>
+<g>
+<line x1="512.855307" y1="104.807685" x2="517.309523" y2="100.353469" />
+</g>
+<g>
+<polyline points="527.932808,104.848294 527.932808,102.580577
+532.468241,102.580577
+532.468241,100.312861" />
+</g>
+<g>
+<polygon stroke-width="0" fill="black"
+ points="547.393702,103.406728 545.060541,98.10409
+550.363179,100.437251" />
+<line x1="557.354177" y1="110.397726" x2="546.101037" y2="99.144586" />
+<polygon stroke-width="0" fill="black"
+ points="550.734364,100.066066 548.401203,94.763428
+553.703841,97.096589" />
+<line x1="560.694839" y1="107.057064" x2="549.441699" y2="95.803924" />
+</g>
+<g>
+<polygon stroke-width="0" fill="black"
+ points="577.629923,103.406728 575.296762,98.10409
+580.5994,100.437251" />
+<line x1="587.590398" y1="110.397726" x2="576.337257" y2="99.144586" />
+<polygon stroke-width="0" fill="black"
+ points="580.970584,100.066066 578.637424,94.763428
+583.940062,97.096589" />
+<line x1="590.93106" y1="107.057064" x2="579.677919" y2="95.803924" />
+</g>
+<g>
+<polygon stroke-width="0" fill="black"
+ points="607.110237,102.650823 604.777077,97.348185
+610.079715,99.681346" />
+<line x1="617.070713" y1="109.641821" x2="605.817572" y2="98.38868" />
+<polygon stroke-width="0" fill="black"
+ points="610.450899,99.310161 608.117739,94.007523
+613.420377,96.340684" />
+<line x1="620.411375" y1="106.301159" x2="609.158234" y2="95.048018" />
+<circle fill="black"
+ cx="617.070713" cy="109.641821" r="1.511811" />
+<circle fill="black"
+ cx="620.411375" cy="106.301159" r="1.511811" />
+</g>
+<g>
+<path d="M 648.062839,110.090227
+ A 2.099738 2.099738 0 0 1 645.093361,107.12075" />
+<path d="M 645.093361,107.12075
+ A 2.099738 2.099738 0 0 0 642.123884,104.151272" />
+<path d="M 642.123884,104.151272
+ A 2.099738 2.099738 0 1 1 639.154407,101.181795" />
+<circle stroke-width="0.533333"
+ cx="639.154407" cy="101.181795" r="0.26567" />
+<polygon stroke-width="0" fill="black"
+ points="637.147889,102.144754 635.769203,97.796591
+640.117366,99.175277" />
+<line x1="639.154407" y1="101.181795" x2="636.588472" y2="98.61586" />
+<path d="M 651.403501,106.749565
+ A 2.099738 2.099738 0 0 1 648.434023,103.780088" />
+<path d="M 648.434023,103.780088
+ A 2.099738 2.099738 0 1 0 645.464546,100.81061" />
+<path d="M 645.464546,100.81061
+ A 2.099738 2.099738 0 0 1 642.495069,97.841133" />
+<circle stroke-width="0.533333"
+ cx="642.495069" cy="97.841133" r="0.26567" />
+<polygon stroke-width="0" fill="black"
+ points="640.488551,98.804092 639.109865,94.455929
+643.458028,95.834615" />
+<line x1="642.495069" y1="97.841133" x2="639.929134" y2="95.275198" />
+</g>
+<g>
+<path d="M 677.543154,109.641821
+ A 2.099738 2.099738 0 0 1 674.573676,106.672344" />
+<path d="M 674.573676,106.672344
+ A 2.099738 2.099738 0 0 0 671.604199,103.702866" />
+<path d="M 671.604199,103.702866
+ A 2.099738 2.099738 0 1 1 668.634722,100.733389" />
+<circle stroke-width="0.533333"
+ cx="668.634722" cy="100.733389" r="0.26567" />
+<polygon stroke-width="0" fill="black"
+ points="666.628204,101.696348 665.249518,97.348185
+669.597681,98.726871" />
+<line x1="668.634722" y1="100.733389" x2="666.068787" y2="98.167454" />
+<path d="M 680.883816,106.301159
+ A 2.099738 2.099738 0 0 1 677.914338,103.331682" />
+<path d="M 677.914338,103.331682
+ A 2.099738 2.099738 0 1 0 674.944861,100.362204" />
+<path d="M 674.944861,100.362204
+ A 2.099738 2.099738 0 0 1 671.975384,97.392727" />
+<circle stroke-width="0.533333"
+ cx="671.975384" cy="97.392727" r="0.26567" />
+<polygon stroke-width="0" fill="black"
+ points="669.968866,98.355686 668.59018,94.007523
+672.938343,95.386209" />
+<line x1="671.975384" y1="97.392727" x2="669.409449" y2="94.826792" />
+<circle fill="black"
+ cx="677.543154" cy="109.641821" r="1.511811" />
+<circle fill="black"
+ cx="680.883816" cy="106.301159" r="1.511811" />
+</g>
+<g>
+<polyline points="701.949596,107.59157 695.268272,100.910246
+695.268272,103.879724" />
+<polyline points="705.290258,104.250908 698.608934,97.569584
+698.608934,100.539062" />
+</g>
+<g>
+<polyline points="723.870856,106.835665 717.189532,100.154341
+717.189532,103.123818" />
+<polyline points="727.211518,103.495003 720.530194,96.813679
+720.530194,99.783156" />
+<circle fill="black"
+ cx="723.870856" cy="106.835665" r="1.511811" />
+<circle fill="black"
+ cx="727.211518" cy="103.495003" r="1.511811" />
+</g>
+<g>
+<line x1="76.657218" y1="125.257743" x2="76.657218" y2="134.706562" />
+<line x1="82.95643" y1="134.706562" x2="70.358005" y2="134.706562" />
+<line x1="80.856693" y1="137.068766" x2="72.457743" y2="137.068766" />
+<line x1="79.35688" y1="139.430971" x2="73.957555" y2="139.430971" />
+</g>
+<g>
+<line x1="105.633596" y1="130.454593" x2="93.035171" y2="130.454593" />
+<line x1="103.533858" y1="132.816798" x2="95.134908" y2="132.816798" />
+<line x1="102.034046" y1="135.179003" x2="96.634721" y2="135.179003" />
+</g>
+<g>
+<line x1="127.365879" y1="125.730184" x2="127.365879" y2="135.179003" />
+<polyline points="130.515486,139.903412 133.665092,135.179003
+121.066667,135.179003
+117.91706,139.903412" />
+<line x1="127.365879" y1="135.179003" x2="124.216273" y2="139.903412" />
+</g>
+<g>
+<line x1="152.247769" y1="128.092388" x2="152.247769" y2="137.541207" />
+<line stroke-width="2.133333"
+ x1="156.447244" y1="137.541207" x2="148.048294" y2="137.541207" />
+</g>
+<g>
+<line x1="174.924934" y1="123.367979" x2="174.924934" y2="132.816798" />
+<polyline points="174.924934,132.816798 181.224147,132.816798
+174.924934,142.265617
+168.625722,132.816798
+174.924934,132.816798" />
+</g>
+<g>
+<line x1="201.381627" y1="124.549081" x2="201.381627" y2="133.9979" />
+<path d="M 193.19871,141.084514
+ A 9.448819 9.448819 0 1 1 209.564544,141.084514" />
+<line x1="207.68084" y1="133.9979" x2="195.082415" y2="133.9979" />
+<line x1="205.581102" y1="136.360105" x2="197.182152" y2="136.360105" />
+<line x1="204.08129" y1="138.72231" x2="198.681965" y2="138.72231" />
+</g>
+<g>
+<line x1="231.617848" y1="122.186877" x2="231.617848" y2="131.635696" />
+<circle cx="231.617848" cy="133.9979" r="9.448819" />
+<line x1="237.91706" y1="131.635696" x2="225.318635" y2="131.635696" />
+<line x1="235.817323" y1="133.9979" x2="227.418373" y2="133.9979" />
+<line x1="234.31751" y1="136.360105" x2="228.918185" y2="136.360105" />
+</g>
+<g>
+<line x1="250.515486" y1="140.690814" x2="252.405249" y2="140.690814" />
+<line x1="252.405249" y1="140.690814" x2="252.405249" y2="141.224147" />
+<path d="M 252.405249,140.690814
+ A 2.362205 2.362205 0 0 1 257.129659,140.690814" />
+<line x1="257.129659" y1="140.690814" x2="257.129659" y2="141.224147" />
+<path d="M 257.129659,140.690814
+ A 2.362205 2.362205 0 0 1 261.854068,140.690814" />
+<line x1="261.854068" y1="140.690814" x2="261.854068" y2="141.224147" />
+<path d="M 261.854068,140.690814
+ A 2.362205 2.362205 0 1 1 266.578478,140.690814" />
+<line x1="266.578478" y1="140.690814" x2="266.578478" y2="141.224147" />
+<path d="M 266.578478,140.690814
+ A 2.362205 2.362205 0 1 1 271.302887,140.690814" />
+<line x1="271.302887" y1="140.690814" x2="271.302887" y2="141.224147" />
+<line x1="271.302887" y1="140.690814" x2="273.192651" y2="140.690814" />
+<line x1="252.405249" y1="135.179003" x2="271.302887" y2="135.179003" />
+<line x1="252.405249" y1="130.454593" x2="271.302887" y2="130.454593" />
+<line x1="273.192651" y1="124.942782" x2="271.302887" y2="124.942782" />
+<line x1="271.302887" y1="124.942782" x2="271.302887" y2="124.409449" />
+<path d="M 271.302887,124.942782
+ A 2.362205 2.362205 0 0 1 266.578478,124.942782" />
+<line x1="266.578478" y1="124.942782" x2="266.578478" y2="124.409449" />
+<path d="M 266.578478,124.942782
+ A 2.362205 2.362205 0 0 1 261.854068,124.942782" />
+<line x1="261.854068" y1="124.942782" x2="261.854068" y2="124.409449" />
+<path d="M 261.854068,124.942782
+ A 2.362205 2.362205 0 0 1 257.129659,124.942782" />
+<line x1="257.129659" y1="124.942782" x2="257.129659" y2="124.409449" />
+<path d="M 257.129659,124.942782
+ A 2.362205 2.362205 0 0 1 252.405249,124.942782" />
+<line x1="252.405249" y1="124.942782" x2="252.405249" y2="124.409449" />
+<line x1="252.405249" y1="124.942782" x2="250.515486" y2="124.942782" />
+</g>
+<g>
+<line x1="280.751706" y1="140.690814" x2="291.145407" y2="140.690814" />
+<line x1="291.145407" y1="140.690814" x2="291.145407" y2="141.224147" />
+<path d="M 291.145407,140.690814
+ A 2.362205 2.362205 0 0 1 295.869816,140.690814" />
+<line x1="295.869816" y1="140.690814" x2="295.869816" y2="141.224147" />
+<path d="M 295.869816,140.690814
+ A 2.362205 2.362205 0 0 1 300.594226,140.690814" />
+<line x1="300.594226" y1="140.690814" x2="300.594226" y2="141.224147" />
+<line x1="300.594226" y1="140.690814" x2="310.987927" y2="140.690814" />
+<line x1="286.420997" y1="135.179003" x2="305.318635" y2="135.179003" />
+<line x1="286.420997" y1="130.454593" x2="305.318635" y2="130.454593" />
+<line x1="310.987927" y1="124.942782" x2="305.318635" y2="124.942782" />
+<line x1="305.318635" y1="124.942782" x2="305.318635" y2="124.409449" />
+<path d="M 305.318635,124.942782
+ A 2.362205 2.362205 0 0 1 300.594226,124.942782" />
+<line x1="300.594226" y1="124.942782" x2="300.594226" y2="124.409449" />
+<path d="M 300.594226,124.942782
+ A 2.362205 2.362205 0 0 1 295.869816,124.942782" />
+<line x1="295.869816" y1="124.942782" x2="295.869816" y2="124.409449" />
+<path d="M 295.869816,124.942782
+ A 2.362205 2.362205 0 0 1 291.145407,124.942782" />
+<line x1="291.145407" y1="124.942782" x2="291.145407" y2="124.409449" />
+<path d="M 291.145407,124.942782
+ A 2.362205 2.362205 0 0 1 286.420997,124.942782" />
+<line x1="286.420997" y1="124.942782" x2="286.420997" y2="124.409449" />
+<line x1="286.420997" y1="124.942782" x2="280.751706" y2="124.942782" />
+</g>
+<g>
+<line x1="320.792697" y1="143.705434" x2="320.792697" y2="143.705434" />
+<circle stroke-width="0.533333"
+ cx="320.792697" cy="143.705434" r="0.26567" />
+<path d="M 320.792697,143.705434
+ A 3.779528 3.779528 0 1 1 326.647546,145.003423" />
+<circle stroke-width="0.533333"
+ cx="326.647546" cy="145.003423" r="0.26567" />
+<path d="M 326.647546,145.003423
+ A 3.779528 3.779528 0 1 1 331.506413,145.003423" />
+<circle stroke-width="0.533333"
+ cx="331.506413" cy="145.003423" r="0.26567" />
+<path d="M 331.506413,145.003423
+ A 3.779528 3.779528 0 1 1 336.36528,145.003423" />
+<circle stroke-width="0.533333"
+ cx="336.36528" cy="145.003423" r="0.26567" />
+<path d="M 336.36528,145.003423
+ A 3.779528 3.779528 0 1 1 341.224147,145.003423" />
+<circle stroke-width="0.533333"
+ cx="341.224147" cy="145.003423" r="0.26567" />
+<path d="M 341.224147,145.003423
+ A 3.779528 3.779528 0 1 1 346.083014,145.003423" />
+<circle stroke-width="0.533333"
+ cx="346.083014" cy="145.003423" r="0.26567" />
+<path d="M 346.083014,145.003423
+ A 3.779528 3.779528 0 1 1 350.941881,145.003423" />
+<circle stroke-width="0.533333"
+ cx="350.941881" cy="145.003423" r="0.26567" />
+<path d="M 350.941881,145.003423
+ A 3.779528 3.779528 0 1 1 355.800748,145.003423" />
+<circle stroke-width="0.533333"
+ cx="355.800748" cy="145.003423" r="0.26567" />
+<path d="M 355.800748,145.003423
+ A 3.779528 3.779528 0 1 1 361.655597,143.705434" />
+<circle stroke-width="0.533333"
+ cx="361.655597" cy="143.705434" r="0.26567" />
+<line x1="361.655597" y1="143.705434" x2="361.655597" y2="143.705434" />
+<line x1="320.792697" y1="135.179003" x2="361.655597" y2="135.179003" />
+<line x1="320.792697" y1="130.454593" x2="361.655597" y2="130.454593" />
+<line x1="352.291975" y1="121.928162" x2="351.937863" y2="121.928162" />
+<circle stroke-width="0.533333"
+ cx="351.937863" cy="121.928162" r="0.26567" />
+<path d="M 351.937863,121.928162
+ A 3.779528 3.779528 0 1 1 346.083014,120.630173" />
+<circle stroke-width="0.533333"
+ cx="346.083014" cy="120.630173" r="0.26567" />
+<path d="M 346.083014,120.630173
+ A 3.779528 3.779528 0 1 1 341.224147,120.630173" />
+<circle stroke-width="0.533333"
+ cx="341.224147" cy="120.630173" r="0.26567" />
+<path d="M 341.224147,120.630173
+ A 3.779528 3.779528 0 1 1 336.36528,120.630173" />
+<circle stroke-width="0.533333"
+ cx="336.36528" cy="120.630173" r="0.26567" />
+<path d="M 336.36528,120.630173
+ A 3.779528 3.779528 0 1 1 330.510431,121.928162" />
+<circle stroke-width="0.533333"
+ cx="330.510431" cy="121.928162" r="0.26567" />
+<line x1="330.510431" y1="121.928162" x2="330.156319" y2="121.928162" />
+</g>
+<g>
+<line x1="372.87769" y1="139.903412" x2="375.239895" y2="139.903412" />
+<circle stroke-width="0.533333"
+ cx="375.239895" cy="139.903412" r="0.26567" />
+<path d="M 375.239895,139.903412
+ C 375.239895,137.304987 376.345407,135.179003 377.696588,135.179003 379.047769,135.179003 380.153281,136.667192 380.153281,138.486089 380.153281,140.304987 379.643045,141.793176 379.019423,141.793176 378.395801,141.793176 377.885564,140.304987 377.885564,138.486089 377.885564,136.667192 379.246194,135.179003 380.909186,135.179003 382.572178,135.179003 383.932808,136.667192 383.932808,138.486089 383.932808,140.304987 383.422572,141.793176 382.79895,141.793176 382.175328,141.793176 381.665092,140.304987 381.665092,138.486089 381.665092,136.667192 383.025722,135.179003 384.688714,135.179003 386.351706,135.179003 387.712336,136.667192 387.712336,138.486089 387.712336,140.304987 387.2021,141.793176 386.578478,141.793176 385.954856,141.793176 385.444619,140.304987 385.444619,138.486089 385.444619,136.667192 386.805249,135.179003 388.468241,135.179003 390.131234,135.179003 391.491864,136.667192 391.491864,138.486089 391.491864,140.304987 390.981627,141.793176 390.358005,141.793176 389.734383,141.793176 389.224147,140.304987 389.224147,138.486089 389.224147,136.667192 390.584777,135.179003 392.247769,135.179003 393.910761,135.179003 395.271391,136.667192 395.271391,138.486089 395.271391,140.304987 394.761155,141.793176 394.137533,141.793176 393.513911,141.793176 393.003675,140.304987 393.003675,138.486089 393.003675,136.667192 394.364304,135.179003 396.027297,135.179003 397.690289,135.179003 399.050919,136.667192 399.050919,138.486089 399.050919,140.304987 398.540682,141.793176 397.91706,141.793176 397.293438,141.793176 396.783202,140.304987 396.783202,138.486089 396.783202,136.667192 398.143832,135.179003 399.806824,135.179003 401.469816,135.179003 402.830446,136.667192 402.830446,138.486089 402.830446,140.304987 402.32021,141.793176 401.696588,141.793176 401.072966,141.793176 400.56273,140.304987 400.56273,138.486089 400.56273,136.667192 401.92336,135.179003 403.586352,135.179003 405.249344,135.179003 406.609974,136.667192 406.609974,138.486089 406.609974,140.304987 406.099738,141.793176 405.476115,141.793176 404.852493,141.793176 404.342257,140.304987 404.342257,138.486089 404.342257,136.667192 405.702887,135.179003 407.365879,135.179003 409.028871,135.179003 410.389501,136.667192 410.389501,138.486089 410.389501,140.304987 409.879265,141.793176 409.255643,141.793176 408.632021,141.793176 408.121785,140.304987 408.121785,138.486089 408.121785,136.667192 409.227297,135.179003 410.578478,135.179003 411.929659,135.179003 413.035171,137.304987 413.035171,139.903412" />
+<circle stroke-width="0.533333"
+ cx="413.035171" cy="139.903412" r="0.26567" />
+<line x1="413.035171" y1="139.903412" x2="415.397375" y2="139.903412" />
+<line x1="415.397375" y1="125.730184" x2="403.586352" y2="125.730184" />
+<circle stroke-width="0.533333"
+ cx="403.586352" cy="125.730184" r="0.26567" />
+<path d="M 403.586352,125.730184
+ C 403.586352,128.328609 402.48084,130.454593 401.129659,130.454593 399.778478,130.454593 398.672966,128.966404 398.672966,127.147507 398.672966,125.328609 399.183202,123.84042 399.806824,123.84042 400.430446,123.84042 400.940682,125.328609 400.940682,127.147507 400.940682,128.966404 399.580052,130.454593 397.91706,130.454593 396.254068,130.454593 394.893438,128.966404 394.893438,127.147507 394.893438,125.328609 395.403675,123.84042 396.027297,123.84042 396.650919,123.84042 397.161155,125.328609 397.161155,127.147507 397.161155,128.966404 395.800525,130.454593 394.137533,130.454593 392.474541,130.454593 391.113911,128.966404 391.113911,127.147507 391.113911,125.328609 391.624147,123.84042 392.247769,123.84042 392.871391,123.84042 393.381627,125.328609 393.381627,127.147507 393.381627,128.966404 392.020997,130.454593 390.358005,130.454593 388.695013,130.454593 387.334383,128.966404 387.334383,127.147507 387.334383,125.328609 387.844619,123.84042 388.468241,123.84042 389.091864,123.84042 389.6021,125.328609 389.6021,127.147507 389.6021,128.966404 388.496588,130.454593 387.145407,130.454593 385.794226,130.454593 384.688714,128.328609 384.688714,125.730184" />
+<circle stroke-width="0.533333"
+ cx="384.688714" cy="125.730184" r="0.26567" />
+<line x1="384.688714" y1="125.730184" x2="372.87769" y2="125.730184" />
+</g>
+<g>
+<line x1="467.482368" y1="124.751561" x2="467.482368" y2="124.751561" />
+<circle stroke-width="0.533333"
+ cx="467.482368" cy="124.751561" r="0.26567" />
+<path d="M 467.482368,124.751561
+ A 3.779528 3.779528 0 1 1 461.62752,123.453572" />
+<circle stroke-width="0.533333"
+ cx="461.62752" cy="123.453572" r="0.26567" />
+<path d="M 461.62752,123.453572
+ A 3.779528 3.779528 0 1 1 456.768653,123.453572" />
+<circle stroke-width="0.533333"
+ cx="456.768653" cy="123.453572" r="0.26567" />
+<path d="M 456.768653,123.453572
+ A 3.779528 3.779528 0 1 1 451.909786,123.453572" />
+<circle stroke-width="0.533333"
+ cx="451.909786" cy="123.453572" r="0.26567" />
+<path d="M 451.909786,123.453572
+ A 3.779528 3.779528 0 1 1 447.050919,123.453572" />
+<circle stroke-width="0.533333"
+ cx="447.050919" cy="123.453572" r="0.26567" />
+<path d="M 447.050919,123.453572
+ A 3.779528 3.779528 0 1 1 442.192052,123.453572" />
+<circle stroke-width="0.533333"
+ cx="442.192052" cy="123.453572" r="0.26567" />
+<path d="M 442.192052,123.453572
+ A 3.779528 3.779528 0 1 1 437.333185,123.453572" />
+<circle stroke-width="0.533333"
+ cx="437.333185" cy="123.453572" r="0.26567" />
+<path d="M 437.333185,123.453572
+ A 3.779528 3.779528 0 1 1 432.474318,123.453572" />
+<circle stroke-width="0.533333"
+ cx="432.474318" cy="123.453572" r="0.26567" />
+<path d="M 432.474318,123.453572
+ A 3.779528 3.779528 0 1 1 426.619469,124.751561" />
+<circle stroke-width="0.533333"
+ cx="426.619469" cy="124.751561" r="0.26567" />
+<line x1="426.619469" y1="124.751561" x2="426.619469" y2="124.751561" />
+<line x1="426.619469" y1="140.882035" x2="436.337203" y2="140.882035" />
+<circle stroke-width="0.533333"
+ cx="436.337203" cy="140.882035" r="0.26567" />
+<path d="M 436.337203,140.882035
+ A 3.779528 3.779528 0 1 1 442.192052,142.180024" />
+<circle stroke-width="0.533333"
+ cx="442.192052" cy="142.180024" r="0.26567" />
+<path d="M 442.192052,142.180024
+ A 3.779528 3.779528 0 1 1 447.050919,142.180024" />
+<circle stroke-width="0.533333"
+ cx="447.050919" cy="142.180024" r="0.26567" />
+<path d="M 447.050919,142.180024
+ A 3.779528 3.779528 0 1 1 451.909786,142.180024" />
+<circle stroke-width="0.533333"
+ cx="451.909786" cy="142.180024" r="0.26567" />
+<path d="M 451.909786,142.180024
+ A 3.779528 3.779528 0 1 1 457.764634,140.882035" />
+<circle stroke-width="0.533333"
+ cx="457.764634" cy="140.882035" r="0.26567" />
+<line x1="457.764634" y1="140.882035" x2="467.482368" y2="140.882035" />
+</g>
+<g>
+<line x1="57.75958" y1="155.493963" x2="70.358005" y2="155.493963" />
+<line x1="70.358005" y1="155.493963" x2="79.806824" y2="146.045144" />
+<line x1="82.95643" y1="155.493963" x2="95.554856" y2="155.493963" />
+</g>
+<g>
+<line x1="103.113911" y1="155.493963" x2="115.712336" y2="155.493963" />
+<line x1="115.712336" y1="155.493963" x2="125.161155" y2="146.045144" />
+<path stroke-width="0" fill="black"
+ d="M 121.038343,148.986605
+ L 120.07383,149.827001
+ A 17.612747 17.612747 0 0 0 118.15787,146.367105
+ A 17.612747 17.612747 0 0 1 122.002855,148.146209
+ L 121.038343,148.986605" />
+<path d="M 125.017606,157.134733
+ A 17.612747 17.612747 0 0 0 120.663154,148.600606" />
+<line x1="128.310761" y1="155.493963" x2="140.909186" y2="155.493963" />
+</g>
+<g>
+<line x1="148.468241" y1="155.493963" x2="161.066667" y2="155.493963" />
+<line x1="161.066667" y1="155.493963" x2="170.515486" y2="146.045144" />
+<line x1="173.665092" y1="155.493963" x2="186.263517" y2="155.493963" />
+<circle fill="white"
+ cx="161.066667" cy="155.493963" r="1.511811" />
+<circle fill="white"
+ cx="173.665092" cy="155.493963" r="1.511811" />
+</g>
+<g>
+<line x1="193.822572" y1="155.493963" x2="206.420997" y2="155.493963" />
+<line x1="206.420997" y1="155.493963" x2="215.869816" y2="146.045144" />
+<path stroke-width="0" fill="black"
+ d="M 211.747004,148.986605
+ L 210.782491,149.827001
+ A 17.612747 17.612747 0 0 0 208.866532,146.367105
+ A 17.612747 17.612747 0 0 1 212.711517,148.146209
+ L 211.747004,148.986605" />
+<path d="M 215.726267,157.134733
+ A 17.612747 17.612747 0 0 0 211.371816,148.600606" />
+<line x1="219.019423" y1="155.493963" x2="231.617848" y2="155.493963" />
+<circle fill="white"
+ cx="206.420997" cy="155.493963" r="1.511811" />
+<circle fill="white"
+ cx="219.019423" cy="155.493963" r="1.511811" />
+</g>
+<g>
+<line x1="239.176903" y1="155.493963" x2="251.775328" y2="155.493963" />
+<line x1="251.775328" y1="155.493963" x2="261.224147" y2="146.045144" />
+<path stroke-width="0" fill="black"
+ d="M 260.246445,154.099566
+ L 259.017256,154.45761
+ A 17.894743 17.894743 0 0 1 260.902186,157.939498
+ A 17.894743 17.894743 0 0 0 261.475633,153.741522
+ L 260.246445,154.099566" />
+<path d="M 260.36947,154.625363
+ A 17.894743 17.894743 0 0 0 256.499738,147.311046" />
+<line x1="264.373753" y1="155.493963" x2="276.972178" y2="155.493963" />
+</g>
+<g>
+<line x1="284.531234" y1="155.493963" x2="297.129659" y2="155.493963" />
+<line x1="297.129659" y1="155.493963" x2="306.578478" y2="146.045144" />
+<line x1="309.728084" y1="155.493963" x2="322.326509" y2="155.493963" />
+</g>
+<g>
+<line x1="329.885564" y1="155.493963" x2="342.48399" y2="155.493963" />
+<line x1="342.48399" y1="155.493963" x2="351.932808" y2="146.045144" />
+<line x1="355.082415" y1="155.493963" x2="367.68084" y2="155.493963" />
+</g>
+<g>
+<line x1="400.436745" y1="155.493963" x2="413.035171" y2="155.493963" />
+<line x1="375.239895" y1="155.493963" x2="387.83832" y2="155.493963" />
+<line x1="387.83832" y1="155.493963" x2="402.011549" y2="148.407349" />
+</g>
+<g>
+<line x1="445.791076" y1="157.383727" x2="458.389501" y2="157.383727" />
+<line x1="420.594226" y1="157.383727" x2="433.192651" y2="157.383727" />
+<line x1="433.192651" y1="157.383727" x2="447.365879" y2="150.297113" />
+<line x1="445.791076" y1="157.383727" x2="445.791076" y2="149.509711" />
+</g>
+<g>
+<line x1="491.145407" y1="153.604199" x2="503.743832" y2="153.604199" />
+<line x1="465.948556" y1="153.604199" x2="478.546982" y2="153.604199" />
+<line x1="478.546982" y1="153.604199" x2="492.72021" y2="146.517585" />
+<circle fill="white"
+ cx="491.145407" cy="153.604199" r="1.511811" />
+</g>
+<g>
+<line x1="536.499738" y1="153.604199" x2="549.098163" y2="153.604199" />
+<line x1="511.302887" y1="153.604199" x2="523.901312" y2="153.604199" />
+<line x1="523.901312" y1="153.604199" x2="538.074541" y2="146.517585" />
+<polyline points="525.672966,152.718373 524.885564,151.14357
+531.972178,147.600262
+533.546982,150.749869
+526.460367,154.293176
+525.672966,152.718373" />
+</g>
+<g>
+<line x1="581.854068" y1="155.493963" x2="594.452493" y2="155.493963" />
+<line x1="556.657218" y1="155.493963" x2="569.255643" y2="155.493963" />
+<line x1="569.255643" y1="155.493963" x2="583.428871" y2="148.407349" />
+<line x1="581.854068" y1="155.493963" x2="581.854068" y2="147.619948" />
+<polyline points="571.027297,154.608136 570.239895,153.033333
+577.326509,149.490026
+578.901312,152.639633
+571.814698,156.18294
+571.027297,154.608136" />
+</g>
+<g>
+<line x1="627.208399" y1="157.383727" x2="639.806824" y2="157.383727" />
+<line x1="602.011549" y1="157.383727" x2="614.609974" y2="157.383727" />
+<line x1="614.609974" y1="157.383727" x2="628.783202" y2="150.297113" />
+<polyline points="619.039108,155.16916 622.779265,149.362073
+624.354068,152.51168" />
+</g>
+<g>
+<line x1="672.56273" y1="157.383727" x2="685.161155" y2="157.383727" />
+<line x1="647.365879" y1="157.383727" x2="659.964304" y2="157.383727" />
+<line x1="659.964304" y1="157.383727" x2="674.137533" y2="150.297113" />
+<line x1="672.56273" y1="157.383727" x2="672.56273" y2="149.509711" />
+<polyline points="664.393438,155.16916 668.133596,149.362073
+669.708399,152.51168" />
+</g>
+<g>
+<line x1="82.95643" y1="178.171129" x2="95.554856" y2="178.171129" />
+<line x1="57.75958" y1="178.171129" x2="70.358005" y2="178.171129" />
+<line x1="70.358005" y1="178.171129" x2="84.531234" y2="171.084514" />
+</g>
+<g>
+<line x1="128.310761" y1="178.171129" x2="140.909186" y2="178.171129" />
+<line x1="103.113911" y1="178.171129" x2="115.712336" y2="178.171129" />
+<line x1="115.712336" y1="178.171129" x2="129.885564" y2="185.257743" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="122.79895" y1="181.714436" x2="122.79895" y2="162.816798" />
+<line x1="128.310761" y1="178.171129" x2="128.310761" y2="186.045144" />
+</g>
+<g>
+<line x1="173.665092" y1="185.730184" x2="186.263517" y2="185.730184" />
+<line x1="148.468241" y1="185.730184" x2="161.066667" y2="185.730184" />
+<line x1="161.066667" y1="185.730184" x2="175.239895" y2="178.64357" />
+<line stroke-dasharray="2.755906,1.968504"
+ x1="168.153281" y1="182.186877" x2="168.153281" y2="175.100262" />
+<polyline points="168.153281,175.100262 163.428871,172.738058
+168.153281,170.375853" />
+<line stroke-dasharray="2.755906,1.968504"
+ x1="168.153281" y1="170.375853" x2="168.153281" y2="163.289239" />
+</g>
+<g>
+<line x1="219.019423" y1="185.730184" x2="231.617848" y2="185.730184" />
+<line x1="193.822572" y1="185.730184" x2="206.420997" y2="185.730184" />
+<line x1="206.420997" y1="185.730184" x2="220.594226" y2="178.64357" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="213.507612" y1="182.186877" x2="213.507612" y2="163.289239" />
+<line x1="209.570604" y1="163.289239" x2="217.444619" y2="163.289239" />
+</g>
+<g>
+<line x1="264.373753" y1="185.730184" x2="276.972178" y2="185.730184" />
+<line x1="239.176903" y1="185.730184" x2="251.775328" y2="185.730184" />
+<line x1="251.775328" y1="185.730184" x2="265.948556" y2="178.64357" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="258.861942" y1="182.186877" x2="258.861942" y2="163.289239" />
+<line stroke-dasharray="2.755906,1.968504"
+ x1="258.861942" y1="182.186877" x2="258.861942" y2="175.100262" />
+<polyline points="258.861942,175.100262 254.137533,172.738058
+258.861942,170.375853" />
+<line stroke-dasharray="2.755906,1.968504"
+ x1="258.861942" y1="170.375853" x2="258.861942" y2="163.289239" />
+<polyline points="254.924934,167.226247 254.924934,163.289239
+262.79895,163.289239
+262.79895,167.226247" />
+</g>
+<g>
+<line x1="309.728084" y1="187.619948" x2="322.326509" y2="187.619948" />
+<line x1="284.531234" y1="187.619948" x2="297.129659" y2="187.619948" />
+<line x1="297.129659" y1="187.619948" x2="311.302887" y2="180.533333" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="304.216273" y1="184.07664" x2="304.216273" y2="165.179003" />
+<polyline points="300.279265,161.241995 300.279265,165.179003
+308.153281,165.179003
+308.153281,161.241995" />
+</g>
+<g>
+<line x1="355.082415" y1="187.619948" x2="367.68084" y2="187.619948" />
+<line x1="329.885564" y1="187.619948" x2="342.48399" y2="187.619948" />
+<line x1="342.48399" y1="187.619948" x2="356.657218" y2="180.533333" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="349.570604" y1="184.07664" x2="349.570604" y2="165.179003" />
+<polyline points="345.633596,169.11601 345.633596,165.179003
+353.507612,165.179003
+353.507612,161.241995" />
+</g>
+<g>
+<line x1="400.436745" y1="187.619948" x2="413.035171" y2="187.619948" />
+<line x1="375.239895" y1="187.619948" x2="387.83832" y2="187.619948" />
+<line x1="387.83832" y1="187.619948" x2="402.011549" y2="180.533333" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="394.924934" y1="184.07664" x2="394.924934" y2="165.179003" />
+<line x1="390.987927" y1="165.179003" x2="398.861942" y2="165.179003" />
+<path d="M 398.861942,165.179003
+ A 4.591301 4.591301 0 0 0 390.987927,165.179003" />
+</g>
+<g>
+<line x1="445.791076" y1="187.619948" x2="458.389501" y2="187.619948" />
+<line x1="420.594226" y1="187.619948" x2="433.192651" y2="187.619948" />
+<line x1="433.192651" y1="187.619948" x2="447.365879" y2="180.533333" />
+<line x1="439.098163" y1="184.667192" x2="439.098163" y2="165.769554" />
+<line x1="441.460367" y1="183.486089" x2="441.460367" y2="165.952271" />
+<path d="M 445.003675,163.498708
+ A 6.149803 6.149803 0 0 1 435.554856,163.498708" />
+</g>
+<g>
+<line x1="491.145407" y1="185.730184" x2="503.743832" y2="185.730184" />
+<line x1="465.948556" y1="185.730184" x2="478.546982" y2="185.730184" />
+<line x1="478.546982" y1="185.730184" x2="492.72021" y2="178.64357" />
+<line x1="484.452493" y1="182.777428" x2="484.452493" y2="163.87979" />
+<line x1="486.814698" y1="181.596325" x2="486.814698" y2="164.062507" />
+<path d="M 490.358005,166.333353
+ A 6.149803 6.149803 0 0 0 480.909186,166.333353" />
+</g>
+<g>
+<line x1="536.499738" y1="187.619948" x2="549.098163" y2="187.619948" />
+<line x1="511.302887" y1="187.619948" x2="523.901312" y2="187.619948" />
+<line x1="523.901312" y1="187.619948" x2="538.074541" y2="180.533333" />
+<line x1="529.806824" y1="184.667192" x2="529.806824" y2="165.769554" />
+<line x1="532.169029" y1="183.486089" x2="532.169029" y2="165.952271" />
+<path d="M 535.712336,163.498708
+ A 6.149803 6.149803 0 0 1 526.263517,163.498708" />
+<path d="M 535.712336,168.223117
+ A 6.149803 6.149803 0 0 0 526.263517,168.223117" />
+</g>
+<g>
+<line x1="82.95643" y1="208.407349" x2="95.554856" y2="208.407349" />
+<line x1="57.75958" y1="208.407349" x2="70.358005" y2="208.407349" />
+<line x1="70.358005" y1="208.407349" x2="84.531234" y2="201.320735" />
+<polyline points="86.106037,206.580577 82.95643,208.407349
+86.106037,210.234121" />
+</g>
+<g>
+<line x1="128.310761" y1="208.407349" x2="140.909186" y2="208.407349" />
+<line x1="103.113911" y1="208.407349" x2="115.712336" y2="208.407349" />
+<line x1="115.712336" y1="208.407349" x2="129.885564" y2="201.320735" />
+<polyline points="129.885564,208.407349 128.310761,208.407349
+131.460367,206.580577" />
+</g>
+<g>
+<line x1="173.665092" y1="206.517585" x2="186.263517" y2="206.517585" />
+<line x1="148.468241" y1="206.517585" x2="161.066667" y2="206.517585" />
+<line x1="161.066667" y1="206.517585" x2="175.239895" y2="199.430971" />
+<polyline points="175.239895,206.517585 173.665092,206.517585
+176.814698,208.344357" />
+</g>
+<g>
+<line x1="219.019423" y1="208.407349" x2="231.617848" y2="208.407349" />
+<line x1="193.822572" y1="208.407349" x2="206.420997" y2="208.407349" />
+<line x1="206.420997" y1="208.407349" x2="220.594226" y2="201.320735" />
+<polyline points="220.452493,201.391601 220.594226,201.320735
+222.354909,204.842102" />
+</g>
+<g>
+<line x1="264.373753" y1="210.297113" x2="276.972178" y2="210.297113" />
+<line x1="239.176903" y1="210.297113" x2="251.775328" y2="210.297113" />
+<line x1="251.775328" y1="210.297113" x2="265.948556" y2="203.210499" />
+<polyline points="265.806824,203.281365 265.948556,203.210499
+264.187873,199.689132" />
+</g>
+<g>
+<line x1="309.728084" y1="210.297113" x2="322.326509" y2="210.297113" />
+<line x1="284.531234" y1="210.297113" x2="297.129659" y2="210.297113" />
+<line x1="297.129659" y1="210.297113" x2="311.302887" y2="203.210499" />
+<polyline points="311.161155,203.281365 311.302887,203.210499
+313.063571,206.731866" />
+<line x1="309.728084" y1="210.297113" x2="309.728084" y2="202.423097" />
+</g>
+<g>
+<polyline points="329.885564,195.493963 338.068482,209.667192
+346.251399,195.493963" />
+<line x1="338.068482" y1="195.493963" x2="338.068482" y2="215.966404" />
+</g>
+<g>
+<polyline points="358.861942,217.856168 358.861942,211.556955
+352.56273,211.556955
+352.56273,195.808924
+368.310761,195.808924
+368.310761,208.407349
+355.712336,208.407349
+355.712336,192.659318
+371.460367,192.659318
+371.460367,211.556955
+365.161155,211.556955
+365.161155,217.856168" />
+</g>
+<g>
+<polyline points="387.20234,209.667192 379.019423,195.493963
+395.385257,195.493963
+387.20234,209.667192" />
+<line x1="387.20234" y1="195.493963" x2="387.20234" y2="215.966404" />
+</g>
+<g>
+<polyline points="412.72021,221.635696 412.72021,215.336483
+401.696588,204.312861
+415.869816,190.139633
+430.043045,204.312861
+419.019423,215.336483
+419.019423,221.635696" />
+</g>
+<g>
+<polyline points="445.791076,214.07664 445.791076,195.179003
+439.491864,195.179003" />
+<polyline points="452.090289,214.07664 452.090289,195.179003
+458.389501,195.179003" />
+</g>
+<g>
+<line x1="478.546982" y1="208.407349" x2="478.546982" y2="206.307612" />
+<line x1="484.846194" y1="206.307612" x2="472.247769" y2="206.307612" />
+<line x1="491.145407" y1="203.158005" x2="465.948556" y2="203.158005" />
+</g>
+<g>
+<polyline points="499.964304,195.493963 499.964304,209.667192
+516.330139,209.667192
+516.330139,195.493963" />
+<line x1="508.147222" y1="195.493963" x2="508.147222" y2="215.966404" />
+</g>
+<g>
+<line x1="53.035171" y1="234.864042" x2="57.75958" y2="234.864042" />
+<polyline points="95.554856,234.864042 57.75958,215.966404
+57.75958,253.76168
+95.554856,234.864042
+100.279265,234.864042" />
+</g>
+<g>
+<polyline points="116.342257,215.966404 106.893438,215.966404
+106.893438,253.76168
+116.342257,253.76168" />
+<polyline points="154.137533,234.864042 116.342257,215.966404
+116.342257,253.76168
+154.137533,234.864042
+154.137533,234.864042" />
+</g>
+<g>
+<line x1="163.586352" y1="234.864042" x2="171.460367" y2="234.864042" />
+<polyline points="180.279265,248.092388 171.460367,248.092388
+171.460367,221.635696
+180.279265,221.635696" />
+<path d="M 180.279265,221.635696
+ A 13.228346 13.228346 0 0 1 180.279265,248.092388" />
+<line x1="193.507612" y1="234.864042" x2="201.381627" y2="234.864042" />
+</g>
+<g>
+<polyline points="208.940682,234.864042 208.940682,215.966404
+246.735958,234.864042
+208.940682,253.76168
+208.940682,234.864042" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="214.25409" y="229.950656">-</text>
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="214.25409" y="248.848294">+</text>
+</g>
+<g>
+<polyline points="254.295013,234.864042 254.295013,215.966404
+282.64147,230.139633
+282.64147,239.588451
+254.295013,253.76168
+254.295013,234.864042" />
+<line x1="282.64147" y1="234.864042" x2="292.090289" y2="234.864042" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="259.608421" y="229.950656">-</text>
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="259.608421" y="248.848294">+</text>
+</g>
+<g>
+<line x1="299.649344" y1="234.864042" x2="309.098163" y2="234.864042" />
+<polyline points="327.995801,234.864042 309.098163,225.415223
+309.098163,244.312861
+327.995801,234.864042
+337.444619,234.864042" />
+</g>
+<g>
+<polyline points="349.728084,225.415223 345.003675,225.415223
+345.003675,244.312861
+349.728084,244.312861" />
+<polyline points="368.625722,234.864042 349.728084,225.415223
+349.728084,244.312861
+368.625722,234.864042
+382.79895,234.864042" />
+</g>
+<g>
+<line x1="390.358005" y1="234.864042" x2="403.743832" y2="234.864042" />
+<polyline points="408.153281,241.478215 403.743832,241.478215
+403.743832,228.249869
+408.153281,228.249869" />
+<path d="M 408.153281,228.249869
+ A 6.614173 6.614173 0 0 1 408.153281,241.478215" />
+<line x1="414.767454" y1="234.864042" x2="428.153281" y2="234.864042" />
+</g>
+<g>
+<polyline points="435.712336,235.11601 435.712336,222.517585
+460.909186,235.11601
+435.712336,247.714436
+435.712336,235.11601" />
+<line x1="460.909186" y1="235.11601" x2="467.208399" y2="235.11601" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="441.025744" y="233.352231">-</text>
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="441.025744" y="245.950656">+</text>
+</g>
+<g>
+<polyline points="473.507612,235.11601 473.507612,222.517585
+492.405249,231.966404
+492.405249,238.265617
+473.507612,247.714436
+473.507612,235.11601" />
+<line x1="492.405249" y1="235.11601" x2="498.704462" y2="235.11601" />
+<line x1="498.704462" y1="235.11601" x2="505.003675" y2="235.11601" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="478.82102" y="233.352231">-</text>
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="478.82102" y="245.950656">+</text>
+</g>
+<g>
+<polyline points="81.381627,336.596325 81.381627,327.147507
+71.932808,327.147507
+71.932808,346.045144
+81.381627,346.045144
+81.381627,336.596325" />
+<line x1="71.932808" y1="336.596325" x2="59.334383" y2="336.596325" />
+<line x1="81.381627" y1="336.596325" x2="93.980052" y2="336.596325" />
+<circle fill="white"
+ cx="67.52336" cy="305.415223" r="1.511811" />
+<line x1="69.035171" y1="305.415223" x2="86.420997" y2="305.415223" />
+<polygon stroke-width="0" fill="black"
+ points="86.420997,299.11601 83.271391,305.415223
+80.121785,299.11601" />
+<polyline points="83.271391,304.222654 83.271391,295.966404
+90.830446,295.966404" />
+<polygon stroke-width="0" fill="black"
+ points="80.121785,316.438845 83.271391,310.139633
+86.420997,316.438845" />
+<polyline points="83.271391,311.332202 83.271391,319.588451
+90.830446,319.588451" />
+<circle fill="white"
+ cx="67.52336" cy="272.344357" r="1.511811" />
+<line x1="69.035171" y1="272.344357" x2="86.420997" y2="272.344357" />
+<polygon stroke-width="0" fill="black"
+ points="86.420997,266.045144 83.271391,272.344357
+80.121785,266.045144" />
+<polyline points="83.271391,271.151787 83.271391,262.895538
+90.830446,262.895538" />
+<polygon stroke-width="0" fill="black"
+ points="80.121785,283.367979 83.271391,277.068766
+86.420997,283.367979" />
+<polyline points="83.271391,278.261336 83.271391,286.517585
+90.830446,286.517585" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="77.728084" y1="309.194751" x2="77.728084" y2="268.564829" />
+</g>
+<g>
+<polyline points="125.161155,327.462467 125.161155,318.013648
+115.712336,318.013648
+115.712336,336.911286
+125.161155,336.911286
+125.161155,327.462467" />
+<line x1="115.712336" y1="327.462467" x2="103.113911" y2="327.462467" />
+<line x1="125.161155" y1="327.462467" x2="137.75958" y2="327.462467" />
+<circle fill="white"
+ cx="111.302887" cy="296.281365" r="1.511811" />
+<line x1="112.814698" y1="296.281365" x2="130.200525" y2="296.281365" />
+<polygon stroke-width="0" fill="black"
+ points="123.901312,307.304987 127.050919,301.005774
+130.200525,307.304987" />
+<polyline points="127.050919,302.198344 127.050919,310.454593
+134.609974,310.454593" />
+<circle fill="white"
+ cx="111.302887" cy="272.659318" r="1.511811" />
+<line x1="112.814698" y1="272.659318" x2="130.200525" y2="272.659318" />
+<polygon stroke-width="0" fill="black"
+ points="123.901312,283.68294 127.050919,277.383727
+130.200525,283.68294" />
+<polyline points="127.050919,278.576297 127.050919,286.832546
+134.609974,286.832546" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="121.507612" y1="300.060892" x2="121.507612" y2="268.87979" />
+</g>
+<g>
+<polyline points="166.735958,322.423097 166.735958,312.974278
+157.287139,312.974278
+157.287139,331.871916
+166.735958,331.871916
+166.735958,322.423097" />
+<line x1="157.287139" y1="322.423097" x2="144.688714" y2="322.423097" />
+<line x1="166.735958" y1="322.423097" x2="179.334383" y2="322.423097" />
+<circle fill="white"
+ cx="152.87769" cy="305.415223" r="1.511811" />
+<line x1="154.389501" y1="305.415223" x2="171.775328" y2="305.415223" />
+<polygon stroke-width="0" fill="black"
+ points="171.775328,299.11601 168.625722,305.415223
+165.476115,299.11601" />
+<polyline points="168.625722,304.222654 168.625722,295.966404
+176.184777,295.966404" />
+<circle fill="white"
+ cx="152.87769" cy="286.517585" r="1.511811" />
+<line x1="154.389501" y1="286.517585" x2="171.775328" y2="286.517585" />
+<polygon stroke-width="0" fill="black"
+ points="171.775328,280.218373 168.625722,286.517585
+165.476115,280.218373" />
+<polyline points="168.625722,285.325016 168.625722,277.068766
+176.184777,277.068766" />
+<line stroke-dasharray="6.614173,4.724409"
+ x1="163.082415" y1="309.194751" x2="163.082415" y2="282.738058" />
+</g>
+<g>
+<polyline points="208.310761,320.060892 208.310761,310.612073
+198.861942,310.612073
+198.861942,329.509711
+208.310761,329.509711
+208.310761,320.060892" />
+<line x1="198.861942" y1="320.060892" x2="186.263517" y2="320.060892" />
+<line x1="208.310761" y1="320.060892" x2="220.909186" y2="320.060892" />
+<circle fill="white"
+ cx="194.452493" cy="288.87979" r="1.511811" />
+<line x1="195.964304" y1="288.87979" x2="213.350131" y2="288.87979" />
+<polygon stroke-width="0" fill="black"
+ points="213.350131,282.580577 210.200525,288.87979
+207.050919,282.580577" />
+<polyline points="210.200525,287.68722 210.200525,279.430971
+217.75958,279.430971" />
+<polygon stroke-width="0" fill="black"
+ points="207.050919,299.903412 210.200525,293.604199
+213.350131,299.903412" />
+<polyline points="210.200525,294.796769 210.200525,303.053018
+217.75958,303.053018" />
+</g>
+<g>
+<circle fill="white"
+ cx="229.350131" cy="300.533333" r="1.511811" />
+<line x1="230.861942" y1="300.533333" x2="248.247769" y2="300.533333" />
+<polygon stroke-width="0" fill="black"
+ points="248.247769,294.234121 245.098163,300.533333
+241.948556,294.234121" />
+<polyline points="245.098163,299.340764 245.098163,291.084514
+252.657218,291.084514" />
+<polygon stroke-width="0" fill="black"
+ points="241.948556,311.556955 245.098163,305.257743
+248.247769,311.556955" />
+<polyline points="245.098163,306.450312 245.098163,314.706562
+252.657218,314.706562" />
+</g>
+<g>
+<circle fill="white"
+ cx="263.365879" cy="294.990026" r="1.511811" />
+<line x1="264.87769" y1="294.990026" x2="282.263517" y2="294.990026" />
+<polygon stroke-width="0" fill="black"
+ points="275.964304,306.013648 279.113911,299.714436
+282.263517,306.013648" />
+<polyline points="279.113911,300.907005 279.113911,309.163255
+286.672966,309.163255" />
+</g>
+<g>
+<circle fill="white"
+ cx="297.381627" cy="308.438845" r="1.511811" />
+<line x1="298.893438" y1="308.438845" x2="316.279265" y2="308.438845" />
+<polygon stroke-width="0" fill="black"
+ points="316.279265,302.139633 313.129659,308.438845
+309.980052,302.139633" />
+<polyline points="313.129659,307.246276 313.129659,298.990026
+320.688714,298.990026" />
+</g>
+<g>
+<circle cx="76.657218" cy="362.990026" r="10.96063" />
+</g>
+<g>
+<line x1="107.83832" y1="370.927034" x2="107.83832" y2="355.808924" />
+<line x1="98.389501" y1="363.367979" x2="107.83832" y2="363.367979" />
+<line x1="122.95643" y1="374.706562" x2="107.83832" y2="367.903412" />
+<polygon stroke-width="0" fill="black"
+ points="114.294174,368.506004 119.176903,373.005774
+112.570857,372.335596" />
+<line x1="117.638903" y1="372.313675" x2="111.617848" y2="369.604199" />
+<line x1="122.95643" y1="352.029396" x2="107.83832" y2="358.832546" />
+</g>
+<g>
+<line x1="151.302887" y1="370.927034" x2="151.302887" y2="355.808924" />
+<line x1="160.751706" y1="363.367979" x2="151.302887" y2="363.367979" />
+<line x1="136.184777" y1="374.706562" x2="151.302887" y2="367.903412" />
+<polygon stroke-width="0" fill="black"
+ points="146.57035,372.335596 139.964304,373.005774
+144.847034,368.506004" />
+<line x1="141.502304" y1="372.313675" x2="147.52336" y2="369.604199" />
+<line x1="136.184777" y1="352.029396" x2="151.302887" y2="358.832546" />
+</g>
+<g>
+<line x1="183.428871" y1="370.927034" x2="183.428871" y2="355.808924" />
+<line x1="173.980052" y1="363.367979" x2="183.428871" y2="363.367979" />
+<line x1="198.546982" y1="374.706562" x2="183.428871" y2="367.903412" />
+<polygon stroke-width="0" fill="black"
+ points="192.091128,374.10397 187.208399,369.604199
+193.814444,370.274378" />
+<line x1="194.767454" y1="373.005774" x2="188.746398" y2="370.296299" />
+<line x1="198.546982" y1="352.029396" x2="183.428871" y2="358.832546" />
+</g>
+<g>
+<line x1="226.893438" y1="370.927034" x2="226.893438" y2="355.808924" />
+<line x1="236.342257" y1="363.367979" x2="226.893438" y2="363.367979" />
+<line x1="211.775328" y1="374.706562" x2="226.893438" y2="367.903412" />
+<polygon stroke-width="0" fill="black"
+ points="216.507865,370.274378 223.113911,369.604199
+218.231181,374.10397" />
+<line x1="215.554856" y1="373.005774" x2="221.575911" y2="370.296299" />
+<line x1="211.775328" y1="352.029396" x2="226.893438" y2="358.832546" />
+</g>
+<g>
+<line x1="275.082415" y1="355.703937" x2="261.854068" y2="355.703937" />
+<line x1="261.854068" y1="372.711811" x2="261.854068" y2="353.814173" />
+<polygon stroke-width="0" fill="black"
+ points="255.554856,368.72231 261.854068,370.822047
+255.554856,372.921785" />
+<line x1="248.625722" y1="370.822047" x2="260.16752" y2="370.822047" />
+<line x1="275.082415" y1="370.822047" x2="261.854068" y2="370.822047" />
+</g>
+<g>
+<line x1="286.420997" y1="355.703937" x2="299.649344" y2="355.703937" />
+<line x1="299.649344" y1="372.711811" x2="299.649344" y2="353.814173" />
+<polygon stroke-width="0" fill="black"
+ points="305.948556,372.921785 299.649344,370.822047
+305.948556,368.72231" />
+<line x1="312.87769" y1="370.822047" x2="301.335892" y2="370.822047" />
+<line x1="286.420997" y1="370.822047" x2="299.649344" y2="370.822047" />
+</g>
+<g>
+<line x1="350.672966" y1="355.703937" x2="337.444619" y2="355.703937" />
+<line x1="337.444619" y1="372.711811" x2="337.444619" y2="353.814173" />
+<line x1="337.444619" y1="370.822047" x2="324.216273" y2="370.822047" />
+<polygon stroke-width="0" fill="black"
+ points="332.405249,372.921785 326.106037,370.822047
+332.405249,368.72231" />
+<line x1="332.405249" y1="370.822047" x2="327.792585" y2="370.822047" />
+<line x1="350.672966" y1="370.822047" x2="337.444619" y2="370.822047" />
+</g>
+<g>
+<line x1="362.011549" y1="355.703937" x2="375.239895" y2="355.703937" />
+<line x1="375.239895" y1="372.711811" x2="375.239895" y2="353.814173" />
+<line x1="375.239895" y1="370.822047" x2="388.468241" y2="370.822047" />
+<polygon stroke-width="0" fill="black"
+ points="380.279265,368.72231 386.578478,370.822047
+380.279265,372.921785" />
+<line x1="380.279265" y1="370.822047" x2="384.89193" y2="370.822047" />
+<line x1="362.011549" y1="370.822047" x2="375.239895" y2="370.822047" />
+</g>
+<g>
+<line x1="426.263517" y1="363.367979" x2="413.035171" y2="363.367979" />
+<polygon stroke-width="0" fill="black"
+ points="422.79895,365.467717 416.499738,363.367979
+422.79895,361.268241" />
+<line x1="422.79895" y1="363.367979" x2="418.186286" y2="363.367979" />
+<line x1="426.263517" y1="355.808924" x2="413.035171" y2="355.808924" />
+<line x1="413.035171" y1="372.816798" x2="413.035171" y2="367.147507" />
+<line x1="413.035171" y1="365.257743" x2="413.035171" y2="361.478215" />
+<line x1="413.035171" y1="359.588451" x2="413.035171" y2="353.91916" />
+<polyline points="409.255643,355.808924 409.255643,370.927034
+399.806824,370.927034" />
+<polyline points="425.200835,363.367979 426.263517,363.367979
+426.263517,370.927034
+425.200835,370.927034" />
+<line x1="426.263517" y1="370.927034" x2="413.035171" y2="370.927034" />
+</g>
+<g>
+<line x1="437.6021" y1="363.367979" x2="450.830446" y2="363.367979" />
+<polygon stroke-width="0" fill="black"
+ points="441.066667,361.268241 447.365879,363.367979
+441.066667,365.467717" />
+<line x1="441.066667" y1="363.367979" x2="445.679331" y2="363.367979" />
+<line x1="437.6021" y1="355.808924" x2="450.830446" y2="355.808924" />
+<line x1="450.830446" y1="372.816798" x2="450.830446" y2="367.147507" />
+<line x1="450.830446" y1="365.257743" x2="450.830446" y2="361.478215" />
+<line x1="450.830446" y1="359.588451" x2="450.830446" y2="353.91916" />
+<polyline points="454.609974,355.808924 454.609974,370.927034
+464.058793,370.927034" />
+<polyline points="438.664781,363.367979 437.6021,363.367979
+437.6021,370.927034
+438.664781,370.927034" />
+<line x1="437.6021" y1="370.927034" x2="450.830446" y2="370.927034" />
+</g>
+<g>
+<line x1="501.854068" y1="363.367979" x2="488.625722" y2="363.367979" />
+<polygon stroke-width="0" fill="black"
+ points="492.090289,361.268241 498.389501,363.367979
+492.090289,365.467717" />
+<line x1="496.702953" y1="363.367979" x2="492.090289" y2="363.367979" />
+<line x1="501.854068" y1="355.808924" x2="488.625722" y2="355.808924" />
+<line x1="488.625722" y1="372.816798" x2="488.625722" y2="367.147507" />
+<line x1="488.625722" y1="365.257743" x2="488.625722" y2="361.478215" />
+<line x1="488.625722" y1="359.588451" x2="488.625722" y2="353.91916" />
+<polyline points="484.846194,355.808924 484.846194,370.927034
+475.397375,370.927034" />
+<polyline points="500.791387,363.367979 501.854068,363.367979
+501.854068,370.927034
+500.791387,370.927034" />
+<line x1="501.854068" y1="370.927034" x2="488.625722" y2="370.927034" />
+</g>
+<g>
+<line x1="513.192651" y1="363.367979" x2="526.420997" y2="363.367979" />
+<polygon stroke-width="0" fill="black"
+ points="522.95643,365.467717 516.657218,363.367979
+522.95643,361.268241" />
+<line x1="518.343766" y1="363.367979" x2="522.95643" y2="363.367979" />
+<line x1="513.192651" y1="355.808924" x2="526.420997" y2="355.808924" />
+<line x1="526.420997" y1="372.816798" x2="526.420997" y2="367.147507" />
+<line x1="526.420997" y1="365.257743" x2="526.420997" y2="361.478215" />
+<line x1="526.420997" y1="359.588451" x2="526.420997" y2="353.91916" />
+<polyline points="530.200525,355.808924 530.200525,370.927034
+539.649344,370.927034" />
+<polyline points="514.255333,363.367979 513.192651,363.367979
+513.192651,370.927034
+514.255333,370.927034" />
+<line x1="513.192651" y1="370.927034" x2="526.420997" y2="370.927034" />
+</g>
+<g>
+<line x1="577.444619" y1="363.367979" x2="564.216273" y2="363.367979" />
+<polygon stroke-width="0" fill="black"
+ points="573.980052,365.467717 567.68084,363.367979
+573.980052,361.268241" />
+<line x1="573.980052" y1="363.367979" x2="569.367388" y2="363.367979" />
+<line x1="577.444619" y1="355.808924" x2="564.216273" y2="355.808924" />
+<line x1="564.216273" y1="372.816798" x2="564.216273" y2="353.91916" />
+<polyline points="560.436745,355.808924 560.436745,370.927034
+550.987927,370.927034" />
+<polyline points="576.381938,363.367979 577.444619,363.367979
+577.444619,370.927034
+576.381938,370.927034" />
+<line x1="577.444619" y1="370.927034" x2="564.216273" y2="370.927034" />
+</g>
+<g>
+<line x1="588.783202" y1="363.367979" x2="602.011549" y2="363.367979" />
+<polygon stroke-width="0" fill="black"
+ points="592.247769,361.268241 598.546982,363.367979
+592.247769,365.467717" />
+<line x1="592.247769" y1="363.367979" x2="596.860434" y2="363.367979" />
+<line x1="588.783202" y1="355.808924" x2="602.011549" y2="355.808924" />
+<line x1="602.011549" y1="372.816798" x2="602.011549" y2="353.91916" />
+<polyline points="605.791076,355.808924 605.791076,370.927034
+615.239895,370.927034" />
+<polyline points="589.845884,363.367979 588.783202,363.367979
+588.783202,370.927034
+589.845884,370.927034" />
+<line x1="588.783202" y1="370.927034" x2="602.011549" y2="370.927034" />
+</g>
+<g>
+<line x1="653.035171" y1="363.367979" x2="639.806824" y2="363.367979" />
+<polygon stroke-width="0" fill="black"
+ points="643.271391,361.268241 649.570604,363.367979
+643.271391,365.467717" />
+<line x1="647.884056" y1="363.367979" x2="643.271391" y2="363.367979" />
+<line x1="653.035171" y1="355.808924" x2="639.806824" y2="355.808924" />
+<line x1="639.806824" y1="372.816798" x2="639.806824" y2="353.91916" />
+<polyline points="636.027297,355.808924 636.027297,370.927034
+626.578478,370.927034" />
+<polyline points="651.972489,363.367979 653.035171,363.367979
+653.035171,370.927034
+651.972489,370.927034" />
+<line x1="653.035171" y1="370.927034" x2="639.806824" y2="370.927034" />
+</g>
+<g>
+<line x1="664.373753" y1="363.367979" x2="677.6021" y2="363.367979" />
+<polygon stroke-width="0" fill="black"
+ points="674.137533,365.467717 667.83832,363.367979
+674.137533,361.268241" />
+<line x1="669.524868" y1="363.367979" x2="674.137533" y2="363.367979" />
+<line x1="664.373753" y1="355.808924" x2="677.6021" y2="355.808924" />
+<line x1="677.6021" y1="372.816798" x2="677.6021" y2="353.91916" />
+<polyline points="681.381627,355.808924 681.381627,370.927034
+690.830446,370.927034" />
+<polyline points="665.436435,363.367979 664.373753,363.367979
+664.373753,370.927034
+665.436435,370.927034" />
+<line x1="664.373753" y1="370.927034" x2="677.6021" y2="370.927034" />
+</g>
+<g>
+<line x1="73.822572" y1="397.383727" x2="73.822572" y2="382.265617" />
+<line x1="88.940682" y1="401.163255" x2="73.822572" y2="394.360105" />
+<polygon stroke-width="0" fill="black"
+ points="80.278426,394.962697 85.161155,399.462467
+78.555109,398.792289" />
+<line x1="83.623155" y1="398.770367" x2="77.6021" y2="396.060892" />
+<line x1="88.940682" y1="378.486089" x2="73.822572" y2="385.289239" />
+<line x1="64.373753" y1="389.824672" x2="71.176903" y2="389.824672" />
+<line x1="71.176903" y1="397.383727" x2="71.176903" y2="382.265617" />
+</g>
+<g>
+<line x1="127.68084" y1="397.383727" x2="114.452493" y2="397.383727" />
+<line x1="114.452493" y1="399.273491" x2="114.452493" y2="380.375853" />
+<line x1="114.452493" y1="382.265617" x2="127.68084" y2="382.265617" />
+<line x1="101.224147" y1="382.265617" x2="114.452493" y2="389.824672" />
+<polygon stroke-width="0" fill="black"
+ points="108.371464,383.931423 112.79895,388.87979
+106.28794,387.577588" />
+<line x1="101.224147" y1="382.265617" x2="111.334616" y2="388.043028" />
+</g>
+<g>
+<line x1="165.476115" y1="397.383727" x2="152.247769" y2="397.383727" />
+<line x1="152.247769" y1="399.273491" x2="152.247769" y2="380.375853" />
+<line x1="152.247769" y1="382.265617" x2="165.476115" y2="382.265617" />
+<line x1="139.019423" y1="382.265617" x2="152.247769" y2="389.824672" />
+<polygon stroke-width="0" fill="black"
+ points="145.100452,388.158866 140.672966,383.210499
+147.183976,384.512701" />
+<line x1="152.247769" y1="389.824672" x2="142.1373" y2="384.047261" />
+</g>
+<g>
+<line x1="181.891072" y1="376.596325" x2="181.891072" y2="387.097033" />
+<polyline stroke-width="0" fill="black"
+ points="181.891072,387.097033
+185.040678,387.097033
+181.891072,392.02097
+178.741466,387.097033
+181.891072,387.097033" />
+<polyline points="181.891072,387.097033 185.040678,387.097033
+181.891072,392.02097
+178.741466,387.097033
+181.891072,387.097033" />
+<line x1="178.352497" y1="392.552311" x2="185.429647" y2="392.552311" />
+<line x1="183.465875" y1="392.552311" x2="186.615482" y2="398.007589" />
+<line x1="181.891072" y1="392.552311" x2="181.891072" y2="403.053018" />
+</g>
+<g>
+<line x1="205.161155" y1="376.596325" x2="205.161155" y2="387.097033" />
+<line x1="205.161155" y1="387.097033" x2="209.885564" y2="395.27995" />
+<polyline stroke-width="0" fill="black"
+ points="208.310761,387.097033
+211.460367,387.097033
+208.310761,392.02097
+205.161155,387.097033
+208.310761,387.097033" />
+<polyline points="208.310761,387.097033 211.460367,387.097033
+208.310761,392.02097
+205.161155,387.097033
+208.310761,387.097033" />
+<line x1="198.472974" y1="392.552311" x2="211.849336" y2="392.552311" />
+<line x1="198.472974" y1="387.097033" x2="211.849336" y2="387.097033" />
+<polyline stroke-width="0" fill="black"
+ points="202.011549,392.552311
+205.161155,392.552311
+202.011549,387.628374
+198.861942,392.552311
+202.011549,392.552311" />
+<polyline points="202.011549,392.552311 205.161155,392.552311
+202.011549,387.628374
+198.861942,392.552311
+202.011549,392.552311" />
+<line x1="205.161155" y1="392.552311" x2="205.161155" y2="403.053018" />
+</g>
+<g>
+<line x1="227.83832" y1="376.596325" x2="227.83832" y2="387.097033" />
+<line x1="227.83832" y1="387.097033" x2="232.56273" y2="395.27995" />
+<polyline stroke-width="0" fill="black"
+ points="230.987927,387.097033
+234.137533,387.097033
+230.987927,392.02097
+227.83832,387.097033
+230.987927,387.097033" />
+<polyline points="230.987927,387.097033 234.137533,387.097033
+230.987927,392.02097
+227.83832,387.097033
+230.987927,387.097033" />
+<line x1="221.150139" y1="392.552311" x2="234.526501" y2="392.552311" />
+<line x1="221.150139" y1="387.097033" x2="234.526501" y2="387.097033" />
+<polyline stroke-width="0" fill="black"
+ points="224.688714,392.552311
+227.83832,392.552311
+224.688714,387.628374
+221.539108,392.552311
+224.688714,392.552311" />
+<polyline points="224.688714,392.552311 227.83832,392.552311
+224.688714,387.628374
+221.539108,392.552311
+224.688714,392.552311" />
+<line x1="227.83832" y1="392.552311" x2="227.83832" y2="403.053018" />
+</g>
+<g>
+<line x1="249.922568" y1="376.596325" x2="249.922568" y2="387.097033" />
+<polyline points="249.922568,387.097033 253.072175,387.097033
+249.922568,392.02097
+246.772962,387.097033
+249.922568,387.097033" />
+<line x1="246.383993" y1="392.552311" x2="253.461143" y2="392.552311" />
+<line x1="251.497371" y1="392.552311" x2="254.646978" y2="398.007589" />
+<line x1="249.922568" y1="392.552311" x2="249.922568" y2="403.053018" />
+</g>
+<g>
+<line x1="272.599734" y1="376.596325" x2="272.599734" y2="387.097033" />
+<polyline stroke-width="0" fill="black"
+ points="272.599734,387.097033
+275.74934,387.097033
+272.599734,392.02097
+269.450127,387.097033
+272.599734,387.097033" />
+<polyline points="272.599734,387.097033 275.74934,387.097033
+272.599734,392.02097
+269.450127,387.097033
+272.599734,387.097033" />
+<line x1="269.061159" y1="392.552311" x2="276.138308" y2="392.552311" />
+<line x1="274.174537" y1="392.552311" x2="277.324143" y2="398.007589" />
+<line x1="272.599734" y1="392.552311" x2="272.599734" y2="403.053018" />
+</g>
+<g>
+<line x1="316.657218" y1="382.16063" x2="303.428871" y2="382.16063" />
+<line x1="303.428871" y1="399.168504" x2="303.428871" y2="380.270866" />
+<polygon stroke-width="0" fill="black"
+ points="297.129659,395.179003 303.428871,397.27874
+297.129659,399.378478" />
+<line x1="290.200525" y1="397.27874" x2="301.742323" y2="397.27874" />
+<line x1="316.657218" y1="397.27874" x2="303.428871" y2="397.27874" />
+</g>
+<g>
+<line x1="354.452493" y1="389.824672" x2="341.224147" y2="389.824672" />
+<polygon stroke-width="0" fill="black"
+ points="350.987927,391.924409 344.688714,389.824672
+350.987927,387.724934" />
+<line x1="350.987927" y1="389.824672" x2="346.375262" y2="389.824672" />
+<line x1="354.452493" y1="382.265617" x2="341.224147" y2="382.265617" />
+<line x1="341.224147" y1="399.273491" x2="341.224147" y2="393.604199" />
+<line x1="341.224147" y1="391.714436" x2="341.224147" y2="387.934908" />
+<line x1="341.224147" y1="386.045144" x2="341.224147" y2="380.375853" />
+<polyline points="337.444619,382.265617 337.444619,397.383727
+327.995801,397.383727" />
+<polyline points="353.389812,389.824672 354.452493,389.824672
+354.452493,397.383727
+353.389812,397.383727" />
+<line x1="354.452493" y1="397.383727" x2="341.224147" y2="397.383727" />
+</g>
+<g>
+<line x1="393.192651" y1="382.16063" x2="379.964304" y2="382.16063" />
+<line x1="379.964304" y1="399.168504" x2="379.964304" y2="380.270866" />
+<line x1="393.192651" y1="397.27874" x2="379.964304" y2="397.27874" />
+<polygon stroke-width="0" fill="black"
+ points="383.428871,395.179003 389.728084,397.27874
+383.428871,399.378478" />
+<line x1="388.041536" y1="397.27874" x2="383.428871" y2="397.27874" />
+<line x1="376.184777" y1="397.27874" x2="376.184777" y2="382.16063" />
+<line x1="376.184777" y1="389.719685" x2="364.846194" y2="389.719685" />
+</g>
+<g>
+<line x1="430.043045" y1="389.824672" x2="416.814698" y2="389.824672" />
+<polygon stroke-width="0" fill="black"
+ points="420.279265,387.724934 426.578478,389.824672
+420.279265,391.924409" />
+<line x1="424.89193" y1="389.824672" x2="420.279265" y2="389.824672" />
+<line x1="430.043045" y1="382.265617" x2="416.814698" y2="382.265617" />
+<line x1="416.814698" y1="399.273491" x2="416.814698" y2="393.604199" />
+<line x1="416.814698" y1="391.714436" x2="416.814698" y2="387.934908" />
+<line x1="416.814698" y1="386.045144" x2="416.814698" y2="380.375853" />
+<polyline points="413.035171,382.265617 413.035171,397.383727
+403.586352,397.383727" />
+<polyline points="428.980363,389.824672 430.043045,389.824672
+430.043045,397.383727
+428.980363,397.383727" />
+<line x1="430.043045" y1="397.383727" x2="416.814698" y2="397.383727" />
+</g>
+<g>
+<line x1="468.783202" y1="382.16063" x2="455.554856" y2="382.16063" />
+<line x1="455.554856" y1="399.168504" x2="455.554856" y2="380.270866" />
+<line x1="468.783202" y1="397.27874" x2="455.554856" y2="397.27874" />
+<polygon stroke-width="0" fill="black"
+ points="465.318635,399.378478 459.019423,397.27874
+465.318635,395.179003" />
+<line x1="465.318635" y1="397.27874" x2="460.705971" y2="397.27874" />
+<line x1="451.775328" y1="397.27874" x2="451.775328" y2="382.16063" />
+<line x1="451.775328" y1="389.719685" x2="440.436745" y2="389.719685" />
+</g>
+<g>
+<line x1="505.633596" y1="389.824672" x2="492.405249" y2="389.824672" />
+<polygon stroke-width="0" fill="black"
+ points="502.169029,391.924409 495.869816,389.824672
+502.169029,387.724934" />
+<line x1="502.169029" y1="389.824672" x2="497.556364" y2="389.824672" />
+<line x1="505.633596" y1="382.265617" x2="492.405249" y2="382.265617" />
+<line x1="492.405249" y1="399.273491" x2="492.405249" y2="380.375853" />
+<polyline points="488.625722,382.265617 488.625722,397.383727
+479.176903,397.383727" />
+<polyline points="504.570914,389.824672 505.633596,389.824672
+505.633596,397.383727
+504.570914,397.383727" />
+<line x1="505.633596" y1="397.383727" x2="492.405249" y2="397.383727" />
+</g>
+<g>
+<line x1="544.373753" y1="382.16063" x2="531.145407" y2="382.16063" />
+<line x1="531.145407" y1="399.168504" x2="531.145407" y2="380.270866" />
+<line stroke-width="2.133333"
+ x1="532.739429" y1="397.27874" x2="532.739429" y2="382.16063" />
+<line x1="544.373753" y1="397.27874" x2="531.145407" y2="397.27874" />
+<polygon stroke-width="0" fill="black"
+ points="534.609974,395.179003 540.909186,397.27874
+534.609974,399.378478" />
+<line x1="539.222638" y1="397.27874" x2="534.609974" y2="397.27874" />
+<line x1="527.365879" y1="397.27874" x2="527.365879" y2="382.16063" />
+<line x1="527.365879" y1="389.719685" x2="516.027297" y2="389.719685" />
+</g>
+<g>
+<line x1="581.224147" y1="389.824672" x2="567.995801" y2="389.824672" />
+<polygon stroke-width="0" fill="black"
+ points="571.460367,387.724934 577.75958,389.824672
+571.460367,391.924409" />
+<line x1="576.073032" y1="389.824672" x2="571.460367" y2="389.824672" />
+<line x1="581.224147" y1="382.265617" x2="567.995801" y2="382.265617" />
+<line x1="567.995801" y1="399.273491" x2="567.995801" y2="380.375853" />
+<polyline points="564.216273,382.265617 564.216273,397.383727
+554.767454,397.383727" />
+<polyline points="580.161465,389.824672 581.224147,389.824672
+581.224147,397.383727
+580.161465,397.383727" />
+<line x1="581.224147" y1="397.383727" x2="567.995801" y2="397.383727" />
+</g>
+<g>
+<line x1="619.964304" y1="382.16063" x2="606.735958" y2="382.16063" />
+<line x1="606.735958" y1="399.168504" x2="606.735958" y2="380.270866" />
+<line stroke-width="2.133333"
+ x1="608.32998" y1="397.27874" x2="608.32998" y2="382.16063" />
+<line x1="619.964304" y1="397.27874" x2="606.735958" y2="397.27874" />
+<polygon stroke-width="0" fill="black"
+ points="616.499738,399.378478 610.200525,397.27874
+616.499738,395.179003" />
+<line x1="616.499738" y1="397.27874" x2="611.887073" y2="397.27874" />
+<line x1="602.95643" y1="397.27874" x2="602.95643" y2="382.16063" />
+<line x1="602.95643" y1="389.719685" x2="591.617848" y2="389.719685" />
+</g>
+<g>
+<line x1="656.814698" y1="382.16063" x2="643.586352" y2="382.16063" />
+<line x1="643.586352" y1="399.168504" x2="643.586352" y2="380.270866" />
+<polygon stroke-width="0" fill="black"
+ points="637.287139,395.179003 643.586352,397.27874
+637.287139,399.378478" />
+<line x1="630.358005" y1="397.27874" x2="641.899804" y2="397.27874" />
+<line x1="656.814698" y1="397.27874" x2="643.586352" y2="397.27874" />
+</g>
+<g>
+<line x1="694.609974" y1="382.16063" x2="681.381627" y2="382.16063" />
+<line x1="681.381627" y1="399.168504" x2="681.381627" y2="380.270866" />
+<line x1="681.381627" y1="397.27874" x2="668.153281" y2="397.27874" />
+<polygon stroke-width="0" fill="black"
+ points="676.342257,399.378478 670.043045,397.27874
+676.342257,395.179003" />
+<line x1="676.342257" y1="397.27874" x2="671.729593" y2="397.27874" />
+<line x1="694.609974" y1="397.27874" x2="681.381627" y2="397.27874" />
+</g>
+<g>
+<line x1="733.350131" y1="382.265617" x2="720.121785" y2="382.265617" />
+<line x1="720.121785" y1="399.273491" x2="720.121785" y2="380.375853" />
+<line x1="720.121785" y1="389.824672" x2="705.003675" y2="389.824672" />
+<polygon stroke-width="0" fill="black"
+ points="715.082415,391.924409 708.783202,389.824672
+715.082415,387.724934" />
+<line x1="715.082415" y1="389.824672" x2="710.46975" y2="389.824672" />
+<line x1="733.350131" y1="397.383727" x2="720.121785" y2="397.383727" />
+</g>
+<g>
+<line x1="57.75958" y1="421.424712" x2="71.20194" y2="421.424712" />
+<polyline points="71.20194,421.424712 71.20194,418.275106
+76.125877,421.424712
+71.20194,424.574318
+71.20194,421.424712" />
+<polyline points="82.112496,421.424712 82.112496,418.275106
+77.188559,421.424712
+82.112496,424.574318
+82.112496,421.424712" />
+<line x1="82.112496" y1="421.424712" x2="95.554856" y2="421.424712" />
+<circle stroke-width="1.874452"
+ cx="76.657218" cy="419.606286" r="1.36382" />
+<line x1="76.657218" y1="418.242466" x2="76.657218" y2="413.241795" />
+<line x1="76.657218" y1="421.424712" x2="76.657218" y2="426.87999" />
+</g>
+<g>
+<line x1="103.113911" y1="416.281365" x2="112.56273" y2="416.281365" />
+<polyline points="131.460367,416.281365 131.460367,412.501837
+112.56273,412.501837
+112.56273,420.060892
+131.460367,420.060892
+131.460367,416.281365" />
+<line x1="131.460367" y1="416.281365" x2="140.909186" y2="416.281365" />
+<line x1="122.011549" y1="420.060892" x2="122.011549" y2="427.619948" />
+</g>
+<g>
+<line x1="148.468241" y1="421.635696" x2="161.066667" y2="421.635696" />
+<polyline points="161.066667,421.635696 173.665092,415.336483
+173.665092,427.934908
+161.066667,421.635696" />
+<polyline points="173.665092,421.635696 161.066667,415.336483
+161.066667,427.934908
+173.665092,421.635696" />
+<circle stroke-width="1.874452"
+ cx="167.365879" cy="416.386352" r="1.574803" />
+<line x1="167.365879" y1="414.811549" x2="167.365879" y2="409.03727" />
+<line x1="167.365879" y1="424.785302" x2="167.365879" y2="431.084514" />
+<line x1="173.665092" y1="421.635696" x2="186.263517" y2="421.635696" />
+</g>
+<g>
+<polyline points="80.436745,484.312861 50.200525,484.312861
+50.200525,438.95853
+80.436745,438.95853" />
+<path d="M 80.436745,438.95853
+ A 22.677165 22.677165 0 0 1 80.436745,484.312861" />
+</g>
+<g>
+<line x1="128.844094" y1="439.062628" x2="110.672966" y2="439.062628" />
+<path d="M 111.106986,438.854432
+ A 52.913386 52.913386 0 0 1 111.206299,484.416959" />
+<line x1="110.672966" y1="484.416959" x2="128.844094" y2="484.416959" />
+<path d="M 128.844094,439.062628
+ A 38.775153 38.775153 0 0 1 164.119685,461.739794" />
+<path d="M 128.844094,484.416959
+ A 38.775153 38.775153 0 0 0 164.119685,461.739794" />
+</g>
+<g>
+<polyline points="201.381627,484.312861 171.145407,484.312861
+171.145407,438.95853
+201.381627,438.95853" />
+<path d="M 201.381627,438.95853
+ A 22.677165 22.677165 0 0 1 201.381627,484.312861" />
+<circle cx="227.83832" cy="461.635696" r="3.779528" />
+</g>
+<g>
+<line x1="257.348031" y1="439.062628" x2="239.176903" y2="439.062628" />
+<path d="M 239.610923,438.854432
+ A 52.913386 52.913386 0 0 1 239.710236,484.416959" />
+<line x1="239.176903" y1="484.416959" x2="257.348031" y2="484.416959" />
+<path d="M 257.348031,439.062628
+ A 38.775153 38.775153 0 0 1 292.623622,461.739794" />
+<path d="M 257.348031,484.416959
+ A 38.775153 38.775153 0 0 0 292.623622,461.739794" />
+<circle cx="296.40315" cy="461.739794" r="3.779528" />
+</g>
+<g>
+<path d="M 307.208399,439.062628
+ A 52.913386 52.913386 0 0 1 307.208399,484.416959" />
+<line x1="332.405249" y1="439.062628" x2="314.234121" y2="439.062628" />
+<path d="M 314.668141,438.854432
+ A 52.913386 52.913386 0 0 1 314.767454,484.416959" />
+<line x1="314.234121" y1="484.416959" x2="332.405249" y2="484.416959" />
+<path d="M 332.405249,439.062628
+ A 38.775153 38.775153 0 0 1 367.68084,461.739794" />
+<path d="M 332.405249,484.416959
+ A 38.775153 38.775153 0 0 0 367.68084,461.739794" />
+</g>
+<g>
+<path d="M 375.239895,439.062628
+ A 52.913386 52.913386 0 0 1 375.239895,484.416959" />
+<line x1="400.436745" y1="439.062628" x2="382.265617" y2="439.062628" />
+<path d="M 382.699637,438.854432
+ A 52.913386 52.913386 0 0 1 382.79895,484.416959" />
+<line x1="382.265617" y1="484.416959" x2="400.436745" y2="484.416959" />
+<path d="M 400.436745,439.062628
+ A 38.775153 38.775153 0 0 1 435.712336,461.739794" />
+<path d="M 400.436745,484.416959
+ A 38.775153 38.775153 0 0 0 435.712336,461.739794" />
+<circle cx="439.491864" cy="461.739794" r="3.779528" />
+</g>
+<g>
+<polyline points="477.287139,461.635696 450.830446,476.753806
+450.830446,446.517585
+477.287139,461.635696" />
+</g>
+<g>
+<polyline points="511.302887,461.635696 484.846194,476.753806
+484.846194,446.517585
+511.302887,461.635696" />
+<circle cx="515.082415" cy="461.635696" r="3.779528" />
+</g>
+<g>
+<line x1="526.420997" y1="461.635696" x2="531.526721" y2="461.635696" />
+<line x1="526.420997" y1="446.517585" x2="529.321018" y2="446.517585" />
+<line x1="526.420997" y1="476.753806" x2="529.321018" y2="476.753806" />
+<line x1="526.420997" y1="454.07664" x2="530.984005" y2="454.07664" />
+<line x1="526.420997" y1="469.194751" x2="530.984005" y2="469.194751" />
+</g>
+<g>
+<line x1="537.75958" y1="461.635696" x2="542.865304" y2="461.635696" />
+<line x1="537.75958" y1="446.517585" x2="540.659601" y2="446.517585" />
+<line x1="537.75958" y1="476.753806" x2="540.659601" y2="476.753806" />
+</g>
+<g>
+<line x1="549.098163" y1="446.517585" x2="551.998184" y2="446.517585" />
+<line x1="549.098163" y1="476.753806" x2="551.998184" y2="476.753806" />
+</g>
+<g>
+<line x1="560.436745" y1="461.635696" x2="565.542469" y2="461.635696" />
+</g>
+<g>
+<polyline points="76.657218,501.950656 94.474082,489.352231
+94.474082,539.745932
+76.657218,527.147507" />
+<polyline points="76.657218,514.549081 76.657218,501.950656
+58.840354,501.950656
+58.840354,527.147507
+76.657218,527.147507
+76.657218,514.549081" />
+</g>
+<g>
+<polyline points="120.930775,508.249869 129.839206,503.525459
+129.839206,525.572703
+120.930775,520.848294" />
+<polyline points="120.930775,514.549081 120.930775,501.950656
+103.113911,501.950656
+103.113911,527.147507
+120.930775,527.147507
+120.930775,514.549081" />
+</g>
+<g>
+<polyline points="156.027297,514.549081 156.027297,505.100262
+137.129659,505.100262
+137.129659,523.9979
+156.027297,523.9979
+156.027297,514.549081" />
+<circle cx="165.476115" cy="514.549081" r="9.448819" />
+</g>
+<g>
+<line x1="201.381627" y1="523.9979" x2="201.381627" y2="505.100262" />
+<circle cx="191.932808" cy="514.549081" r="9.448819" />
+</g>
+<g>
+<polyline points="227.83832,514.549081 227.83832,505.100262
+208.940682,505.100262
+208.940682,523.9979
+227.83832,523.9979
+227.83832,514.549081" />
+<line x1="227.83832" y1="505.100262" x2="232.729389" y2="523.353979" />
+</g>
+<g>
+<line x1="251.775328" y1="527.147507" x2="251.775328" y2="501.950656" />
+<path d="M 251.775328,501.950656
+ A 12.598425 12.598425 0 0 0 251.775328,527.147507" />
+</g>
+<g>
+<polyline points="270.672966,514.549081 270.672966,505.100262
+258.074541,505.100262
+258.074541,523.9979
+270.672966,523.9979
+270.672966,514.549081" />
+<line stroke-width="2.133333"
+ x1="271.735647" y1="527.147507" x2="271.735647" y2="501.950656" />
+</g>
+<g>
+<circle cx="288.310761" cy="520.218373" r="7.559055" />
+<circle cx="326.106037" cy="520.218373" r="7.559055" />
+<path d="M 289.822572,512.812042
+ A 18.897638 18.897638 0 0 1 324.594226,512.812042" />
+</g>
+<g>
+<rect x="352.184777" y="491.871916" width="75.590551" height="45.354331" />
+<line x1="352.184777" y1="503.210499" x2="342.735958" y2="503.210499" />
+<circle fill="black"
+ cx="342.735958" cy="503.210499" r="1.511811" />
+<line x1="352.184777" y1="525.887664" x2="342.735958" y2="525.887664" />
+<circle fill="black"
+ cx="342.735958" cy="525.887664" r="1.511811" />
+<line x1="427.775328" y1="503.210499" x2="437.224147" y2="503.210499" />
+<circle fill="black"
+ cx="437.224147" cy="503.210499" r="1.511811" />
+<line x1="427.775328" y1="525.887664" x2="437.224147" y2="525.887664" />
+<circle fill="black"
+ cx="437.224147" cy="525.887664" r="1.511811" />
+</g>
+<g>
+<rect x="458.011549" y="496.470341" width="37.795276" height="25.19685" />
+<line x1="458.011549" y1="509.068766" x2="448.56273" y2="509.068766" />
+<circle fill="black"
+ cx="448.56273" cy="509.068766" r="1.511811" />
+<line x1="495.806824" y1="509.068766" x2="505.255643" y2="509.068766" />
+<circle fill="black"
+ cx="505.255643" cy="509.068766" r="1.511811" />
+<line x1="476.909186" y1="521.667192" x2="476.909186" y2="531.11601" />
+<circle fill="black"
+ cx="476.909186" cy="531.11601" r="1.511811" />
+</g>
+<g>
+<rect x="31.302887" y="544.785302" width="90.708661" height="136.062992" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="35.082415" y="584.470341"><tspan font-size="75%">D</tspan></text>
+<line x1="31.302887" y1="578.80105" x2="1.066667" y2="578.80105" />
+<polyline points="31.302887,650.612073 37.849221,646.832546
+31.302887,643.053018" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="41.628748" y="652.501837"><tspan font-size="75%">CK</tspan></text>
+<line x1="31.302887" y1="646.832546" x2="1.066667" y2="646.832546" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="118.232021" y="584.470341"><tspan font-size="75%">Q</tspan></text>
+<line x1="122.011549" y1="578.80105" x2="152.247769" y2="578.80105" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="118.232021" y="652.501837"
+><tspan font-size="75%"><tspan text-decoration="overline">Q</tspan></tspan></text>
+<line x1="122.011549" y1="646.832546" x2="152.247769" y2="646.832546" />
+</g>
+<g>
+<rect x="190.043045" y="544.785302" width="90.708661" height="136.062992" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="193.822572" y="584.470341"><tspan font-size="75%">T</tspan></text>
+<line x1="190.043045" y1="578.80105" x2="159.806824" y2="578.80105" />
+<polyline points="190.043045,650.612073 196.589378,646.832546
+190.043045,643.053018" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="200.368906" y="652.501837"><tspan font-size="75%">CK</tspan></text>
+<line x1="190.043045" y1="646.832546" x2="159.806824" y2="646.832546" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="276.972178" y="584.470341"><tspan font-size="75%">Q</tspan></text>
+<line x1="280.751706" y1="578.80105" x2="310.987927" y2="578.80105" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="276.972178" y="652.501837"
+><tspan font-size="75%"><tspan text-decoration="overline">Q</tspan></tspan></text>
+<line x1="280.751706" y1="646.832546" x2="310.987927" y2="646.832546" />
+</g>
+<g>
+<rect x="348.783202" y="544.785302" width="90.708661" height="136.062992" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="352.56273" y="584.470341"><tspan font-size="75%">R</tspan></text>
+<line x1="348.783202" y1="578.80105" x2="318.546982" y2="578.80105" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="352.56273" y="652.501837"><tspan font-size="75%">S</tspan></text>
+<line x1="348.783202" y1="646.832546" x2="318.546982" y2="646.832546" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="435.712336" y="584.470341"><tspan font-size="75%">Q</tspan></text>
+<line x1="439.491864" y1="578.80105" x2="469.728084" y2="578.80105" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="435.712336" y="652.501837"
+><tspan font-size="75%"><tspan text-decoration="overline">Q</tspan></tspan></text>
+<line x1="439.491864" y1="646.832546" x2="469.728084" y2="646.832546" />
+</g>
+<g>
+<rect x="507.52336" y="544.785302" width="90.708661" height="136.062992" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="511.302887" y="573.131759"><tspan font-size="75%">J</tspan></text>
+<line x1="507.52336" y1="567.462467" x2="477.287139" y2="567.462467" />
+<polyline points="507.52336,616.596325 514.069693,612.816798
+507.52336,609.03727" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="517.849221" y="618.486089"><tspan font-size="75%">CK</tspan></text>
+<circle cx="503.743832" cy="612.816798" r="3.779528" />
+<line x1="499.964304" y1="612.816798" x2="477.287139" y2="612.816798" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="511.302887" y="663.84042"><tspan font-size="75%">K</tspan></text>
+<line x1="507.52336" y1="658.171129" x2="477.287139" y2="658.171129" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="552.87769" y="559.903412"><tspan font-size="75%">CLR</tspan></text>
+<circle cx="552.87769" cy="541.005774" r="3.779528" />
+<line x1="552.87769" y1="537.226247" x2="552.87769" y2="514.549081" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="594.452493" y="584.470341"><tspan font-size="75%">Q</tspan></text>
+<line x1="598.232021" y1="578.80105" x2="628.468241" y2="578.80105" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="594.452493" y="652.501837"
+><tspan font-size="75%"><tspan text-decoration="overline">Q</tspan></tspan></text>
+<line x1="598.232021" y1="646.832546" x2="628.468241" y2="646.832546" />
+<text font-size="11.977376pt" stroke-width="0.266667"
+ fill="black"
+ x="552.87769" y="677.068766"><tspan font-size="75%">PR</tspan></text>
+<circle cx="552.87769" cy="684.627822" r="3.779528" />
+<line x1="552.87769" y1="688.407349" x2="552.87769" y2="711.084514" />
+</g>
+</g>
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/pwrsupplySVG.m4 b/graphics/circuit_macros/examples/dpv/pwrsupplyDPV.m4
index 37c7524070..37c7524070 100644
--- a/graphics/circuit_macros/examples/svg/pwrsupplySVG.m4
+++ b/graphics/circuit_macros/examples/dpv/pwrsupplyDPV.m4
diff --git a/graphics/circuit_macros/examples/dpv/quick.m4 b/graphics/circuit_macros/examples/dpv/quick.m4
new file mode 100644
index 0000000000..7de2399601
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/quick.m4
@@ -0,0 +1,16 @@
+.PS # Pic input begins with .PS
+cct_init # Read in macro definitions and set defaults
+elen = 0.75 # Variables are allowed; default units are inches
+Origin: Here # Position names are capitalized
+ source(up_ elen); llabel(-,v_s,+)
+ resistor(right_ elen); rlabel(,R,)
+ dot
+ { # Save the current position and direction
+ capacitor(down_ to (Here,Origin)) #(Here,Origin) = (Here.x,Origin.y)
+ rlabel(+,v,-); llabel(,C,)
+ dot
+ } # Restore position and direction
+ line right_ elen*2/3
+ inductor(down_ Here.y-Origin.y); rlabel(,L,); b_current(i)
+ line to Origin
+.PE # Pic input ends
diff --git a/graphics/circuit_macros/examples/dpv/quick.pic b/graphics/circuit_macros/examples/dpv/quick.pic
new file mode 100644
index 0000000000..1f06d07e48
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/quick.pic
@@ -0,0 +1,124 @@
+.PS # Pic input begins with .PS
+# cct_init Version 10.1: TikZ PGF m4 macro settings.
+
+ # gen_init Version 10.1: TikZ PGF m4 macro settings.
+
+
+ define rpoint__ {
+ rp_wid = last line.end.x-last line.start.x
+ rp_ht = last line.end.y-last line.start.y
+ rp_len = sqrt(abs((rp_wid)^2+(rp_ht)^2)); move to last line.start
+ rp_ang = atan2(rp_ht,rp_wid) }
+
+ rtod_ = 57.295779513082323; dtor_ = 0.017453292519943295
+ twopi_ = 6.2831853071795862; pi_ = (twopi_/2)
+ rp_ang = 0; right
+
+
+ linethick = 0.8
+ arrowwid = 0.05*scale; arrowht = 0.1*scale
+
+
+ # gen_init end
+
+
+
+# cct_init end
+ # Read in macro definitions and set defaults
+elen = 0.75 # Variables are allowed; default units are inches
+Origin: Here # Position names are capitalized
+ line invis up elen
+ rpoint__
+
+
+ { line to Here+(((rp_len/2-(0.25*linewid))*(cos(rp_ang))),((rp_len/2-(0.25*linewid))*(sin(rp_ang))))
+ move to Here+((((0.25*linewid))*(cos(rp_ang))),(((0.25*linewid))*(sin(rp_ang))))
+ { Src_C: circle rad (0.25*linewid) at Here }
+
+ line from Here+((((0.25*linewid))*(cos(rp_ang))),(((0.25*linewid))*(sin(rp_ang)))) \
+ to Here+(((rp_len/2)*(cos(rp_ang))),((rp_len/2)*(sin(rp_ang))))}
+ {[box invis wid (0.25*linewid)*2 ht (0.25*linewid)*2] at Here+(((rp_len/2)*(cos(rp_ang))),((rp_len/2)*(sin(rp_ang))))}
+ line to Here+(((rp_len)*(cos(rp_ang))),((rp_len)*(sin(rp_ang)))) invis ; {"$ -$" \
+ at last [].s rjust below }; {"$ v_s$" \
+ at last [].w rjust }; {"$ +$" \
+ at last [].n rjust above };
+ line invis right elen
+ rpoint__
+
+
+ if linewid/6/4*6*2 > rp_len then { line invis to Here+(((linewid/6/4*6*2)*(cos(rp_ang))),((linewid/6/4*6*2)*(sin(rp_ang))))
+ rpoint__
+
+ }
+ M4_xyO: last line.c
+ { line from last line.start to M4_xyO+(((((linewid/6/4)*(-6)))*(cos(rp_ang))),((((linewid/6/4)*(-6)))*(sin(rp_ang))))\
+ then to M4_xyO+((((((linewid/6/4)*(-5)))*(cos(rp_ang)))+((((linewid/6/4)*((2))))*((-sin(rp_ang))))),(((((linewid/6/4)*(-5)))*(sin(rp_ang)))+((((linewid/6/4)*((2))))*(cos(rp_ang))))) \
+ then to M4_xyO+((((((linewid/6/4)*(-3)))*(cos(rp_ang)))+((((linewid/6/4)*((-2))))*((-sin(rp_ang))))),(((((linewid/6/4)*(-3)))*(sin(rp_ang)))+((((linewid/6/4)*((-2))))*(cos(rp_ang))))) \
+then to M4_xyO+(((((-(linewid/6/4)))*(cos(rp_ang)))+((((linewid/6/4)*((2))))*((-sin(rp_ang))))),((((-(linewid/6/4)))*(sin(rp_ang)))+((((linewid/6/4)*((2))))*(cos(rp_ang))))) \
+ then to M4_xyO+((((linewid/6/4)*(cos(rp_ang)))+((((linewid/6/4)*((-2))))*((-sin(rp_ang))))),(((linewid/6/4)*(sin(rp_ang)))+((((linewid/6/4)*((-2))))*(cos(rp_ang))))) \
+then to M4_xyO+((((((linewid/6/4)*(3)))*(cos(rp_ang)))+((((linewid/6/4)*((2))))*((-sin(rp_ang))))),(((((linewid/6/4)*(3)))*(sin(rp_ang)))+((((linewid/6/4)*((2))))*(cos(rp_ang))))) \
+ then to M4_xyO+((((((linewid/6/4)*(5)))*(cos(rp_ang)))+((((linewid/6/4)*((-2))))*((-sin(rp_ang))))),(((((linewid/6/4)*(5)))*(sin(rp_ang)))+((((linewid/6/4)*((-2))))*(cos(rp_ang))))) \
+ then to M4_xyO+(((((linewid/6/4)*(6)))*(cos(rp_ang))),((((linewid/6/4)*(6)))*(sin(rp_ang)))) \
+ then to last line.end
+ [box invis ht linewid/6/4*2*2 wid linewid/6/4*6*2] at 2nd last line.c
+ }
+
+
+
+#
+ line invis from 2nd last line.start to 2nd last line.end ; {"$ R$" \
+ at last [].s below };
+ [ circle rad (0.04*linewid) fill 0 ] at Here
+ move to last []
+ { # Save the current position and direction
+ line invis down to (Here,Origin)
+ rpoint__
+
+
+ { line to Here+(((rp_len/2-linewid/3*0.3/2)*(cos(rp_ang))),((rp_len/2-linewid/3*0.3/2)*(sin(rp_ang))))
+ {line from Here+(((-linewid/3/2)*((-sin(rp_ang)))),((-linewid/3/2)*(cos(rp_ang)))) \
+ to Here+(((linewid/3/2)*((-sin(rp_ang)))),((linewid/3/2)*(cos(rp_ang))))}
+
+ move to Here+(((linewid/3*0.3)*(cos(rp_ang))),((linewid/3*0.3)*(sin(rp_ang))))
+ {line from Here+(((-linewid/3/2)*((-sin(rp_ang)))),((-linewid/3/2)*(cos(rp_ang)))) \
+ to Here+(((linewid/3/2)*((-sin(rp_ang)))),((linewid/3/2)*(cos(rp_ang))))}
+ line to Here+(((rp_len/2-linewid/3*0.3/2)*(cos(rp_ang))),((rp_len/2-linewid/3*0.3/2)*(sin(rp_ang))))
+
+
+
+
+
+
+
+ }
+
+ {[box invis wid linewid/3 ht linewid/3*0.3 ] at Here+(((rp_len/2)*(cos(rp_ang))),((rp_len/2)*(sin(rp_ang))))}
+ line to Here+(((rp_len)*(cos(rp_ang))),((rp_len)*(sin(rp_ang)))) invis #(Here,Origin) = (Here.x,Origin.y)
+ {"$ +$" \
+ at last [].n rjust above }; {"$ v$" \
+ at last [].l rjust }; {"$ -$" \
+ at last [].s rjust below }; ; {"$ C$" \
+ at last [].e ljust };
+ [ circle rad (0.04*linewid) fill 0 ] at Here
+ move to last []
+ } # Restore position and direction
+ line right elen*2/3
+ line invis down Here.y-Origin.y
+ rpoint__
+
+
+ { line to Here+((((rp_len-4*linewid/16*2)/2)*(cos(rp_ang))),(((rp_len-4*linewid/16*2)/2)*(sin(rp_ang))))
+ {M4coil: [ S: Here;
+ {line to Here+(((-(linethick *(scale/72)/2))*((-sin(rp_ang)))),((-(linethick *(scale/72)/2))*(cos(rp_ang))))};
+ for m4i=1 to 4 do {
+ arc cw from Here to Here+(((linewid/16*2)*(cos(rp_ang))),((linewid/16*2)*(sin(rp_ang)))) with .c at Here+(((linewid/16)*(cos(rp_ang))),((linewid/16)*(sin(rp_ang))))
+ {line to Here+(((-(linethick *(scale/72)/2))*((-sin(rp_ang)))),((-(linethick *(scale/72)/2))*(cos(rp_ang))))} } ] with .S at Here }
+
+ line from Here+(((4*linewid/16*2)*(cos(rp_ang))),((4*linewid/16*2)*(sin(rp_ang)))) to Here+((((rp_len+4*linewid/16*2)/2)*(cos(rp_ang))),(((rp_len+4*linewid/16*2)/2)*(sin(rp_ang)))) }
+ line to Here+(((rp_len)*(cos(rp_ang))),((rp_len)*(sin(rp_ang)))) invis ; {"$ L$" \
+ at last [].l rjust }; ;
+ { move to last line.start+(((((rp_len-last [].ht)/2*2/3+arrowht/3))*(cos(rp_ang))),((((rp_len-last [].ht)/2*2/3+arrowht/3))*(sin(rp_ang))))
+ arrow <- to Here+(((-arrowht)*(cos(rp_ang))),((-arrowht)*(sin(rp_ang)))) "$ i$" \
+ ljust}
+ line to Origin
+.PE # Pic input ends
diff --git a/graphics/circuit_macros/examples/dpv/quick.svg b/graphics/circuit_macros/examples/dpv/quick.svg
new file mode 100644
index 0000000000..b07cccbda8
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/quick.svg
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.9.1 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='121.2pt' height='59.24pt' viewBox='0 -59.24 121.2 59.24'>
+<g id='page1'>
+<g transform='matrix(1 0 0 -1 0 0)'>
+<path d='M22.929688 1.839844V19.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M31.92578 28.8398C31.92578 33.8125 27.89844 37.8398 22.929688 37.8398C17.95703 37.8398 13.92969 33.8125 13.92969 28.8398C13.92969 23.8711 17.95703 19.8398 22.929688 19.8398C27.89844 19.8398 31.92578 23.8711 31.92578 28.8398Z' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M22.929688 37.8398V55.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M20.2234 14.79893C20.39277 14.79893 20.57215 14.79893 20.57215 14.99831C20.57215 15.19737 20.39277 15.19737 20.2234 15.19737H14.83434C14.66496 15.19737 14.485898 15.19737 14.485898 14.99831C14.485898 14.79893 14.66496 14.79893 14.83434 14.79893H20.2234Z'/>
+<path d='M7.98188 31.14761C7.98188 31.68543 7.72282 31.8448 7.54344 31.8448C7.29438 31.8448 7.05532 31.58574 7.05532 31.36668C7.05532 31.2373 7.10532 31.1773 7.21469 31.06793C7.42407 30.86855 7.55344 30.6098 7.55344 30.25105C7.55344 29.83261 6.94594 27.551676 5.78032 27.551676C5.27251 27.551676 5.04344 27.900113 5.04344 28.418238C5.04344 28.97605 5.31219 29.70324 5.62094 30.53011C5.69063 30.69918 5.74063 30.83886 5.74063 31.02793C5.74063 31.47636 5.42188 31.8448 4.92376 31.8448C3.987506 31.8448 3.608756 30.40043 3.608756 30.31074C3.608756 30.21136 3.708444 30.21136 3.728444 30.21136C3.828131 30.21136 3.838131 30.23105 3.887819 30.39043C4.176569 31.39668 4.60501 31.62574 4.89376 31.62574C4.97344 31.62574 5.14282 31.62574 5.14282 31.30699C5.14282 31.05793 5.04344 30.78886 4.97344 30.6098C4.53532 29.45418 4.40563 28.99605 4.40563 28.56761C4.40563 27.491676 5.28251 27.332301 5.74063 27.332301C7.41407 27.332301 7.98188 30.62949 7.98188 31.14761Z'/>
+<path d='M11.15622 28.57052C10.97497 28.52865 10.86309 28.3824 10.86309 28.24271C10.86309 28.0824 11.00278 28.01959 11.09341 28.01959C11.16309 28.01959 11.42809 28.06146 11.42809 28.41709C11.42809 28.87052 10.92591 29.02396 10.50059 29.02396C9.41247 29.02396 9.21716 28.22177 9.21716 28.00552C9.21716 27.74771 9.36372 27.58021 9.46122 27.49646C9.64247 27.35709 9.76809 27.32896 10.24934 27.24552C10.39591 27.2174 10.84247 27.13365 10.84247 26.784899C10.84247 26.666462 10.76559 26.401462 10.47278 26.227087C10.20059 26.073649 9.85872 26.073649 9.77528 26.073649C9.49622 26.073649 9.098719 26.136462 8.938094 26.366462C9.16841 26.394274 9.32184 26.568649 9.32184 26.763962C9.32184 26.938337 9.19622 27.02209 9.049656 27.02209C8.847469 27.02209 8.645281 26.861774 8.645281 26.554899C8.645281 26.136462 9.091531 25.878337 9.76809 25.878337C11.05153 25.878337 11.28872 26.757087 11.28872 27.02927C11.28872 27.67084 10.58434 27.79646 10.32622 27.84521C10.26341 27.85927 10.08903 27.88709 10.04716 27.90115C9.78903 27.9499 9.66341 28.09646 9.66341 28.2499C9.66341 28.41021 9.78903 28.59865 9.94247 28.69615C10.13091 28.8149 10.37497 28.82865 10.49372 28.82865C10.63997 28.82865 11.00278 28.80771 11.15622 28.57052Z'/>
+<path d='M17.73309 42.48097H20.51246C20.65184 42.48097 20.84121 42.48097 20.84121 42.68034C20.84121 42.8794 20.65184 42.8794 20.51246 42.8794H17.73309V45.66878C17.73309 45.80815 17.73309 45.99753 17.53402 45.99753C17.33465 45.99753 17.33465 45.80815 17.33465 45.66878V42.8794H14.545586C14.406211 42.8794 14.216836 42.8794 14.216836 42.68034C14.216836 42.48097 14.406211 42.48097 14.545586 42.48097H17.33465V39.691903C17.33465 39.552528 17.33465 39.363153 17.53402 39.363153C17.73309 39.363153 17.73309 39.552528 17.73309 39.691903V42.48097Z'/>
+<path d='M22.929688 55.8398H40.9297L42.4297 58.8398L45.4297 52.8398L48.4297 58.8398L51.4297 52.8398L54.4297 58.8398L57.4297 52.8398L58.9297 55.8398H76.9297' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M49.84228 50.62824C49.90228 50.86731 49.93197 50.96699 50.12134 50.99668C50.21103 51.00668 50.52978 51.00668 50.72884 51.00668C51.43634 51.00668 52.54197 51.00668 52.54197 50.02043C52.54197 49.68199 52.38259 48.99449 51.99416 48.60606C51.73509 48.34699 51.20697 48.02824 50.31072 48.02824H49.19509L49.84228 50.62824ZM51.27697 47.89887C52.28291 48.11793 53.46822 48.81512 53.46822 49.82137C53.46822 50.67793 52.57166 51.31543 51.26697 51.31543H48.42791C48.22884 51.31543 48.13916 51.31543 48.13916 51.11637C48.13916 51.00668 48.22884 51.00668 48.41791 51.00668C48.43791 51.00668 48.62728 51.00668 48.79634 50.98668C48.97572 50.96699 49.06541 50.95699 49.06541 50.82731C49.06541 50.78762 49.05541 50.75762 49.02572 50.63824L47.69072 45.288869C47.59134 44.900432 47.57134 44.820744 46.784469 44.820744C46.605094 44.820744 46.515407 44.820744 46.515407 44.621682C46.515407 44.511994 46.634782 44.511994 46.654782 44.511994C46.933844 44.511994 47.63103 44.541994 47.91009 44.541994C48.18884 44.541994 48.89603 44.511994 49.17509 44.511994C49.25478 44.511994 49.37416 44.511994 49.37416 44.711369C49.37416 44.820744 49.28447 44.820744 49.09541 44.820744C48.72666 44.820744 48.44791 44.820744 48.44791 45.000119C48.44791 45.059807 48.46791 45.109807 48.47759 45.169494L49.13509 47.80918H50.32072C51.22697 47.80918 51.40634 47.25137 51.40634 46.90262C51.40634 46.75324 51.32666 46.44449 51.26697 46.21543C51.19728 45.93637 51.10759 45.56793 51.10759 45.368557C51.10759 44.292932 52.30291 44.292932 52.43228 44.292932C53.27916 44.292932 53.62759 45.298869 53.62759 45.438244C53.62759 45.55793 53.51822 45.55793 53.50822 45.55793C53.41853 45.55793 53.39853 45.488244 53.37853 45.418557C53.12978 44.681369 52.70134 44.511994 52.47228 44.511994C52.14353 44.511994 52.07384 44.731057 52.07384 45.119494C52.07384 45.428557 52.13353 45.93637 52.17322 46.25512C52.19322 46.39481 52.21322 46.58387 52.21322 46.72324C52.21322 47.49043 51.54572 47.79918 51.27697 47.89887Z'/>
+<path d='M78.3672 55.8398C78.3672 56.6367 77.7227 57.2812 76.9297 57.2812C76.1328 57.2812 75.4883 56.6367 75.4883 55.8398C75.4883 55.0469 76.1328 54.4023 76.9297 54.4023C77.7227 54.4023 78.3672 55.0469 78.3672 55.8398Z'/>
+<path d='M78.3672 55.8398C78.3672 56.6367 77.7227 57.2812 76.9297 57.2812C76.1328 57.2812 75.4883 56.6367 75.4883 55.8398C75.4883 55.0469 76.1328 54.4023 76.9297 54.4023C77.7227 54.4023 78.3672 55.0469 78.3672 55.8398Z' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M76.9297 55.8398V30.6406' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M70.9297 30.6406H82.9297' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M70.9297 27.0391H82.9297' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M76.9297 27.0391V1.839844' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M71.73309 35.27992H74.51246C74.65184 35.27992 74.84121 35.27992 74.84121 35.4793C74.84121 35.67836 74.65184 35.67836 74.51246 35.67836H71.73309V38.46774C71.73309 38.60711 71.73309 38.79649 71.53402 38.79649C71.33465 38.79649 71.33465 38.60711 71.33465 38.46774V35.67836H68.545586C68.406211 35.67836 68.216836 35.67836 68.216836 35.4793C68.216836 35.27992 68.406211 35.27992 68.545586 35.27992H71.33465V32.490861C71.33465 32.351486 71.33465 32.162111 71.53402 32.162111C71.73309 32.162111 71.73309 32.351486 71.73309 32.490861V35.27992Z'/>
+<path d='M68.88389 30.40063C68.88389 30.93844 68.62483 31.09782 68.44545 31.09782C68.19639 31.09782 67.95733 30.83876 67.95733 30.61969C67.95733 30.49032 68.00733 30.43032 68.1167 30.32094C68.32608 30.12157 68.45545 29.86282 68.45545 29.50407C68.45545 29.08563 67.84795 26.804694 66.68233 26.804694C66.17451 26.804694 65.94545 27.153131 65.94545 27.671256C65.94545 28.22907 66.2142 28.95626 66.52295 29.78313C66.59264 29.95219 66.64264 30.09188 66.64264 30.28094C66.64264 30.72938 66.32389 31.09782 65.82576 31.09782C64.889513 31.09782 64.510763 29.65344 64.510763 29.56376C64.510763 29.46438 64.610451 29.46438 64.630451 29.46438C64.730138 29.46438 64.740138 29.48407 64.789826 29.64344C65.078576 30.64969 65.50701 30.87876 65.79576 30.87876C65.87545 30.87876 66.04483 30.87876 66.04483 30.56001C66.04483 30.31094 65.94545 30.04188 65.87545 29.86282C65.43733 28.70719 65.30764 28.24907 65.30764 27.82063C65.30764 26.744694 66.18451 26.585319 66.64264 26.585319C68.31608 26.585319 68.88389 29.88251 68.88389 30.40063Z'/>
+<path d='M74.2234 21.99998C74.39277 21.99998 74.57215 21.99998 74.57215 22.19935C74.57215 22.39841 74.39277 22.39841 74.2234 22.39841H68.83434C68.66496 22.39841 68.485898 22.39841 68.485898 22.19935C68.485898 21.99998 68.66496 21.99998 68.83434 21.99998H74.2234Z'/>
+<path d='M92.01759 32.35915C92.01759 32.38884 91.99759 32.45884 91.9079 32.45884C91.8779 32.45884 91.86822 32.44884 91.75853 32.33915L91.06134 31.57228C90.97165 31.71165 90.51322 32.45884 89.40759 32.45884C87.18634 32.45884 84.945091 30.25728 84.945091 27.94634C84.945091 26.302592 86.1204 25.216967 87.64447 25.216967C88.51103 25.216967 89.26822 25.615405 89.79603 26.07353C90.72259 26.8904 90.89197 27.79697 90.89197 27.82666C90.89197 27.92634 90.79228 27.92634 90.77228 27.92634C90.71259 27.92634 90.6629 27.90634 90.6429 27.82666C90.55322 27.5379 90.32415 26.83072 89.63665 26.252905C88.94947 25.695092 88.32197 25.525717 87.80384 25.525717C86.90728 25.525717 85.85165 26.04353 85.85165 27.59759C85.85165 28.1654 86.06072 29.77915 87.05665 30.94447C87.66447 31.65197 88.60072 32.14978 89.48728 32.14978C90.50353 32.14978 91.09103 31.38291 91.09103 30.22728C91.09103 29.82884 91.06134 29.81884 91.06134 29.71947C91.06134 29.61978 91.17072 29.61978 91.21072 29.61978C91.34009 29.61978 91.34009 29.63978 91.39009 29.81884L92.01759 32.35915Z'/>
+<path d='M78.3672 1.839844C78.3672 2.636719 77.7227 3.28125 76.9297 3.28125C76.1328 3.28125 75.4883 2.636719 75.4883 1.839844C75.4883 1.042969 76.1328 .39844 76.9297 .39844C77.7227 .39844 78.3672 1.042969 78.3672 1.839844Z'/>
+<path d='M78.3672 1.839844C78.3672 2.636719 77.7227 3.28125 76.9297 3.28125C76.1328 3.28125 75.4883 2.636719 75.4883 1.839844C75.4883 1.042969 76.1328 .39844 76.9297 .39844C77.7227 .39844 78.3672 1.042969 78.3672 1.839844Z' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M76.9297 55.8398H112.9297' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 55.8398V37.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 37.8398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 37.8398C113.7344 37.8398 114.4766 37.4102 114.8789 36.7148C115.2773 36.0195 115.2773 35.1602 114.8789 34.4648C114.4766 33.7695 113.7344 33.3398 112.9297 33.3398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 33.3398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 33.3398C113.7344 33.3398 114.4766 32.9102 114.8789 32.2148C115.2773 31.5195 115.2773 30.6602 114.8789 29.9648C114.4766 29.2695 113.7344 28.8398 112.9297 28.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 28.8398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 28.8398C113.7344 28.8398 114.4766 28.4102 114.8789 27.7148C115.2773 27.0195 115.2773 26.1602 114.8789 25.4648C114.4766 24.7695 113.7344 24.3398 112.9297 24.3398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 24.3398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 24.3398C113.7344 24.3398 114.4766 23.9102 114.8789 23.2148C115.2773 22.5195 115.2773 21.6602 114.8789 20.9648C114.4766 20.2695 113.7344 19.8398 112.9297 19.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 19.8398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 19.8398V1.839844' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M107.9536 31.46259C108.04297 31.82103 108.07297 31.93072 109.00922 31.93072C109.30828 31.93072 109.38797 31.93072 109.38797 32.12009C109.38797 32.23947 109.27828 32.23947 109.2286 32.23947C108.89985 32.23947 108.08297 32.20978 107.75422 32.20978C107.45547 32.20978 106.72828 32.23947 106.42953 32.23947C106.35953 32.23947 106.24016 32.23947 106.24016 32.0404C106.24016 31.93072 106.32985 31.93072 106.51891 31.93072C106.53891 31.93072 106.72828 31.93072 106.89766 31.91072C107.07703 31.89103 107.16641 31.88103 107.16641 31.75134C107.16641 31.71165 107.15672 31.68166 107.12672 31.56228L105.79203 26.212905C105.69235 25.824467 105.67235 25.74478 104.885471 25.74478C104.716096 25.74478 104.616409 25.74478 104.616409 25.545717C104.616409 25.43603 104.706096 25.43603 104.885471 25.43603H109.49735C109.73641 25.43603 109.74641 25.43603 109.80641 25.605405L110.59328 27.75697C110.63297 27.86666 110.63297 27.88634 110.63297 27.89634C110.63297 27.93634 110.60328 28.00603 110.5136 28.00603C110.42391 28.00603 110.41391 27.95634 110.34422 27.79697C110.00547 26.8804 109.56703 25.74478 107.84391 25.74478H106.90766C106.76797 25.74478 106.74828 25.74478 106.68828 25.75478C106.58891 25.76478 106.55891 25.77478 106.55891 25.854467C106.55891 25.884155 106.55891 25.904155 106.6086 26.08353L107.9536 31.46259Z'/>
+<path d='M111.1289 48.6406L112.9297 41.4414L114.7266 48.6406Z'/>
+<path d='M111.1289 48.6406L112.9297 41.4414L114.7266 48.6406Z' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10'/>
+<path d='M112.9297 43.0898V48.6406' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M117.27603 48.80461C117.27603 49.00398 117.13634 49.16336 116.90728 49.16336C116.63853 49.16336 116.36947 48.90429 116.36947 48.63555C116.36947 48.44617 116.50884 48.27679 116.7479 48.27679C116.97697 48.27679 117.27603 48.50586 117.27603 48.80461ZM116.51884 45.05929C116.63853 45.34836 116.63853 45.36805 116.7379 45.63711C116.81759 45.83617 116.86759 45.97586 116.86759 46.16492C116.86759 46.61336 116.54884 46.98179 116.05072 46.98179C115.114466 46.98179 114.735716 45.53742 114.735716 45.44773C114.735716 45.34836 114.835404 45.34836 114.855404 45.34836C114.955091 45.34836 114.965091 45.36805 115.014779 45.52742C115.283841 46.46398 115.68228 46.76273 116.02072 46.76273C116.1004 46.76273 116.26978 46.76273 116.26978 46.44398C116.26978 46.23461 116.20009 46.02555 116.1604 45.92586C116.08072 45.66711 115.63228 44.51148 115.4729 44.08305C115.373216 43.82398 115.243841 43.495545 115.243841 43.28617C115.243841 42.818045 115.58259 42.469295 116.06072 42.469295C116.99697 42.469295 117.36572 43.91367 117.36572 44.00336C117.36572 44.10304 117.27603 44.10304 117.24603 44.10304C117.14634 44.10304 117.14634 44.07305 117.09665 43.92367C116.91728 43.29617 116.58853 42.68867 116.08072 42.68867C115.91134 42.68867 115.84165 42.788045 115.84165 43.01742C115.84165 43.26617 115.90134 43.405858 116.1304 44.01336L116.51884 45.05929Z'/>
+<path d='M112.9297 1.839844H22.929688' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+</g>
+</g>
+</svg>
diff --git a/graphics/circuit_macros/examples/dpv/quick.tex b/graphics/circuit_macros/examples/dpv/quick.tex
new file mode 100644
index 0000000000..e59bd8597f
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/quick.tex
@@ -0,0 +1,188 @@
+\begin{tikzpicture}[scale=2.54]%
+% dpic version 2022.12.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,0)
+ --(0,0.25)\dpicstop
+\dpicdraw (0,0.375) circle (0.049213in)\dpicstop
+\dpicdraw (0,0.5)
+ --(0,0.75)\dpicstop
+\draw (0,0.25) node[below left=-2bp]{$ -$};
+\draw (-0.125,0.375) node[left=-2bp]{$ v_s$};
+\draw (0,0.5) node[above left=-2bp]{$ +$};
+\dpicdraw (0,0.75)
+ --(0.25,0.75)
+ --(0.270833,0.791667)
+ --(0.3125,0.708333)
+ --(0.354167,0.791667)
+ --(0.395833,0.708333)
+ --(0.4375,0.791667)
+ --(0.479167,0.708333)
+ --(0.5,0.75)
+ --(0.75,0.75)\dpicstop
+\draw (0.375,0.708333) node[below=-2bp]{$ R$};
+\dpicdraw[fill=black](0.75,0.75) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.75)
+ --(0.75,0.4)\dpicstop
+\dpicdraw (0.666667,0.4)
+ --(0.833333,0.4)\dpicstop
+\dpicdraw (0.666667,0.35)
+ --(0.833333,0.35)\dpicstop
+\dpicdraw (0.75,0.35)
+ --(0.75,0)\dpicstop
+\draw (0.75,0.4) node[above left=-2bp]{$ +$};
+\draw (0.666667,0.375) node[left=-2bp]{$ v$};
+\draw (0.75,0.35) node[below left=-2bp]{$ -$};
+\draw (0.833333,0.375) node[right=-2bp]{$ C$};
+\dpicdraw[fill=black](0.75,0) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.75)
+ --(1.25,0.75)\dpicstop
+\dpicdraw (1.25,0.75)
+ --(1.25,0.5)\dpicstop
+\dpicdraw (1.25,0.5)
+ --(1.244444,0.5)\dpicstop
+\dpicdraw (1.25,0.5)
+ ..controls (1.261165,0.5) and (1.271481,0.494044)
+ ..(1.277063,0.484375)
+ ..controls (1.282646,0.474706) and (1.282646,0.462794)
+ ..(1.277063,0.453125)
+ ..controls (1.271481,0.443456) and (1.261165,0.4375)
+ ..(1.25,0.4375)\dpicstop
+\dpicdraw (1.25,0.4375)
+ --(1.244444,0.4375)\dpicstop
+\dpicdraw (1.25,0.4375)
+ ..controls (1.261165,0.4375) and (1.271481,0.431544)
+ ..(1.277063,0.421875)
+ ..controls (1.282646,0.412206) and (1.282646,0.400294)
+ ..(1.277063,0.390625)
+ ..controls (1.271481,0.380956) and (1.261165,0.375)
+ ..(1.25,0.375)\dpicstop
+\dpicdraw (1.25,0.375)
+ --(1.244444,0.375)\dpicstop
+\dpicdraw (1.25,0.375)
+ ..controls (1.261165,0.375) and (1.271481,0.369044)
+ ..(1.277063,0.359375)
+ ..controls (1.282646,0.349706) and (1.282646,0.337794)
+ ..(1.277063,0.328125)
+ ..controls (1.271481,0.318456) and (1.261165,0.3125)
+ ..(1.25,0.3125)\dpicstop
+\dpicdraw (1.25,0.3125)
+ --(1.244444,0.3125)\dpicstop
+\dpicdraw (1.25,0.3125)
+ ..controls (1.261165,0.3125) and (1.271481,0.306544)
+ ..(1.277063,0.296875)
+ ..controls (1.282646,0.287206) and (1.282646,0.275294)
+ ..(1.277063,0.265625)
+ ..controls (1.271481,0.255956) and (1.261165,0.25)
+ ..(1.25,0.25)\dpicstop
+\dpicdraw (1.25,0.25)
+ --(1.244444,0.25)\dpicstop
+\dpicdraw (1.25,0.25)
+ --(1.25,0)\dpicstop
+\draw (1.244444,0.375) node[left=-2bp]{$ L$};
+\filldraw[line width=0bp](1.225,0.65)
+ --(1.25,0.55)
+ --(1.275,0.65) --cycle\dpicstop
+\dpicdraw (1.25,0.572906)
+ --(1.25,0.65)\dpicstop
+\draw (1.25,0.611453) node[right=-2bp]{$ i$};
+\dpicdraw (1.25,0)
+ --(0,0)\dpicstop
+\end{tikzpicture}%
+\begin{tikzpicture}[scale=2.54]%
+% dpic version 2022.12.01 option -g for TikZ and PGF 1.01
+\ifx\dpiclw\undefined\newdimen\dpiclw\fi
+\global\def\dpicdraw{\draw[line width=\dpiclw]}
+\global\def\dpicstop{;}
+\dpiclw=0.8bp
+\dpiclw=0.8bp
+\dpicdraw (0,0)
+ --(0,0.25)\dpicstop
+\dpicdraw (0,0.375) circle (0.049213in)\dpicstop
+\dpicdraw (0,0.5)
+ --(0,0.75)\dpicstop
+\draw (0,0.25) node[below left=-2bp]{$ -$};
+\draw (-0.125,0.375) node[left=-2bp]{$ v_s$};
+\draw (0,0.5) node[above left=-2bp]{$ +$};
+\dpicdraw (0,0.75)
+ --(0.25,0.75)
+ --(0.270833,0.791667)
+ --(0.3125,0.708333)
+ --(0.354167,0.791667)
+ --(0.395833,0.708333)
+ --(0.4375,0.791667)
+ --(0.479167,0.708333)
+ --(0.5,0.75)
+ --(0.75,0.75)\dpicstop
+\draw (0.375,0.708333) node[below=-2bp]{$ R$};
+\dpicdraw[fill=black](0.75,0.75) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.75)
+ --(0.75,0.4)\dpicstop
+\dpicdraw (0.666667,0.4)
+ --(0.833333,0.4)\dpicstop
+\dpicdraw (0.666667,0.35)
+ --(0.833333,0.35)\dpicstop
+\dpicdraw (0.75,0.35)
+ --(0.75,0)\dpicstop
+\draw (0.75,0.4) node[above left=-2bp]{$ +$};
+\draw (0.666667,0.375) node[left=-2bp]{$ v$};
+\draw (0.75,0.35) node[below left=-2bp]{$ -$};
+\draw (0.833333,0.375) node[right=-2bp]{$ C$};
+\dpicdraw[fill=black](0.75,0) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.75)
+ --(1.25,0.75)\dpicstop
+\dpicdraw (1.25,0.75)
+ --(1.25,0.5)\dpicstop
+\dpicdraw (1.25,0.5)
+ --(1.244444,0.5)\dpicstop
+\dpicdraw (1.25,0.5)
+ ..controls (1.261165,0.5) and (1.271481,0.494044)
+ ..(1.277063,0.484375)
+ ..controls (1.282646,0.474706) and (1.282646,0.462794)
+ ..(1.277063,0.453125)
+ ..controls (1.271481,0.443456) and (1.261165,0.4375)
+ ..(1.25,0.4375)\dpicstop
+\dpicdraw (1.25,0.4375)
+ --(1.244444,0.4375)\dpicstop
+\dpicdraw (1.25,0.4375)
+ ..controls (1.261165,0.4375) and (1.271481,0.431544)
+ ..(1.277063,0.421875)
+ ..controls (1.282646,0.412206) and (1.282646,0.400294)
+ ..(1.277063,0.390625)
+ ..controls (1.271481,0.380956) and (1.261165,0.375)
+ ..(1.25,0.375)\dpicstop
+\dpicdraw (1.25,0.375)
+ --(1.244444,0.375)\dpicstop
+\dpicdraw (1.25,0.375)
+ ..controls (1.261165,0.375) and (1.271481,0.369044)
+ ..(1.277063,0.359375)
+ ..controls (1.282646,0.349706) and (1.282646,0.337794)
+ ..(1.277063,0.328125)
+ ..controls (1.271481,0.318456) and (1.261165,0.3125)
+ ..(1.25,0.3125)\dpicstop
+\dpicdraw (1.25,0.3125)
+ --(1.244444,0.3125)\dpicstop
+\dpicdraw (1.25,0.3125)
+ ..controls (1.261165,0.3125) and (1.271481,0.306544)
+ ..(1.277063,0.296875)
+ ..controls (1.282646,0.287206) and (1.282646,0.275294)
+ ..(1.277063,0.265625)
+ ..controls (1.271481,0.255956) and (1.261165,0.25)
+ ..(1.25,0.25)\dpicstop
+\dpicdraw (1.25,0.25)
+ --(1.244444,0.25)\dpicstop
+\dpicdraw (1.25,0.25)
+ --(1.25,0)\dpicstop
+\draw (1.244444,0.375) node[left=-2bp]{$ L$};
+\filldraw[line width=0bp](1.225,0.65)
+ --(1.25,0.55)
+ --(1.275,0.65) --cycle\dpicstop
+\dpicdraw (1.25,0.572906)
+ --(1.25,0.65)\dpicstop
+\draw (1.25,0.611453) node[right=-2bp]{$ i$};
+\dpicdraw (1.25,0)
+ --(0,0)\dpicstop
+\end{tikzpicture}%
diff --git a/graphics/circuit_macros/examples/dpv/quick.xsvg b/graphics/circuit_macros/examples/dpv/quick.xsvg
new file mode 100644
index 0000000000..b07cccbda8
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/quick.xsvg
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.9.1 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='121.2pt' height='59.24pt' viewBox='0 -59.24 121.2 59.24'>
+<g id='page1'>
+<g transform='matrix(1 0 0 -1 0 0)'>
+<path d='M22.929688 1.839844V19.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M31.92578 28.8398C31.92578 33.8125 27.89844 37.8398 22.929688 37.8398C17.95703 37.8398 13.92969 33.8125 13.92969 28.8398C13.92969 23.8711 17.95703 19.8398 22.929688 19.8398C27.89844 19.8398 31.92578 23.8711 31.92578 28.8398Z' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M22.929688 37.8398V55.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M20.2234 14.79893C20.39277 14.79893 20.57215 14.79893 20.57215 14.99831C20.57215 15.19737 20.39277 15.19737 20.2234 15.19737H14.83434C14.66496 15.19737 14.485898 15.19737 14.485898 14.99831C14.485898 14.79893 14.66496 14.79893 14.83434 14.79893H20.2234Z'/>
+<path d='M7.98188 31.14761C7.98188 31.68543 7.72282 31.8448 7.54344 31.8448C7.29438 31.8448 7.05532 31.58574 7.05532 31.36668C7.05532 31.2373 7.10532 31.1773 7.21469 31.06793C7.42407 30.86855 7.55344 30.6098 7.55344 30.25105C7.55344 29.83261 6.94594 27.551676 5.78032 27.551676C5.27251 27.551676 5.04344 27.900113 5.04344 28.418238C5.04344 28.97605 5.31219 29.70324 5.62094 30.53011C5.69063 30.69918 5.74063 30.83886 5.74063 31.02793C5.74063 31.47636 5.42188 31.8448 4.92376 31.8448C3.987506 31.8448 3.608756 30.40043 3.608756 30.31074C3.608756 30.21136 3.708444 30.21136 3.728444 30.21136C3.828131 30.21136 3.838131 30.23105 3.887819 30.39043C4.176569 31.39668 4.60501 31.62574 4.89376 31.62574C4.97344 31.62574 5.14282 31.62574 5.14282 31.30699C5.14282 31.05793 5.04344 30.78886 4.97344 30.6098C4.53532 29.45418 4.40563 28.99605 4.40563 28.56761C4.40563 27.491676 5.28251 27.332301 5.74063 27.332301C7.41407 27.332301 7.98188 30.62949 7.98188 31.14761Z'/>
+<path d='M11.15622 28.57052C10.97497 28.52865 10.86309 28.3824 10.86309 28.24271C10.86309 28.0824 11.00278 28.01959 11.09341 28.01959C11.16309 28.01959 11.42809 28.06146 11.42809 28.41709C11.42809 28.87052 10.92591 29.02396 10.50059 29.02396C9.41247 29.02396 9.21716 28.22177 9.21716 28.00552C9.21716 27.74771 9.36372 27.58021 9.46122 27.49646C9.64247 27.35709 9.76809 27.32896 10.24934 27.24552C10.39591 27.2174 10.84247 27.13365 10.84247 26.784899C10.84247 26.666462 10.76559 26.401462 10.47278 26.227087C10.20059 26.073649 9.85872 26.073649 9.77528 26.073649C9.49622 26.073649 9.098719 26.136462 8.938094 26.366462C9.16841 26.394274 9.32184 26.568649 9.32184 26.763962C9.32184 26.938337 9.19622 27.02209 9.049656 27.02209C8.847469 27.02209 8.645281 26.861774 8.645281 26.554899C8.645281 26.136462 9.091531 25.878337 9.76809 25.878337C11.05153 25.878337 11.28872 26.757087 11.28872 27.02927C11.28872 27.67084 10.58434 27.79646 10.32622 27.84521C10.26341 27.85927 10.08903 27.88709 10.04716 27.90115C9.78903 27.9499 9.66341 28.09646 9.66341 28.2499C9.66341 28.41021 9.78903 28.59865 9.94247 28.69615C10.13091 28.8149 10.37497 28.82865 10.49372 28.82865C10.63997 28.82865 11.00278 28.80771 11.15622 28.57052Z'/>
+<path d='M17.73309 42.48097H20.51246C20.65184 42.48097 20.84121 42.48097 20.84121 42.68034C20.84121 42.8794 20.65184 42.8794 20.51246 42.8794H17.73309V45.66878C17.73309 45.80815 17.73309 45.99753 17.53402 45.99753C17.33465 45.99753 17.33465 45.80815 17.33465 45.66878V42.8794H14.545586C14.406211 42.8794 14.216836 42.8794 14.216836 42.68034C14.216836 42.48097 14.406211 42.48097 14.545586 42.48097H17.33465V39.691903C17.33465 39.552528 17.33465 39.363153 17.53402 39.363153C17.73309 39.363153 17.73309 39.552528 17.73309 39.691903V42.48097Z'/>
+<path d='M22.929688 55.8398H40.9297L42.4297 58.8398L45.4297 52.8398L48.4297 58.8398L51.4297 52.8398L54.4297 58.8398L57.4297 52.8398L58.9297 55.8398H76.9297' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M49.84228 50.62824C49.90228 50.86731 49.93197 50.96699 50.12134 50.99668C50.21103 51.00668 50.52978 51.00668 50.72884 51.00668C51.43634 51.00668 52.54197 51.00668 52.54197 50.02043C52.54197 49.68199 52.38259 48.99449 51.99416 48.60606C51.73509 48.34699 51.20697 48.02824 50.31072 48.02824H49.19509L49.84228 50.62824ZM51.27697 47.89887C52.28291 48.11793 53.46822 48.81512 53.46822 49.82137C53.46822 50.67793 52.57166 51.31543 51.26697 51.31543H48.42791C48.22884 51.31543 48.13916 51.31543 48.13916 51.11637C48.13916 51.00668 48.22884 51.00668 48.41791 51.00668C48.43791 51.00668 48.62728 51.00668 48.79634 50.98668C48.97572 50.96699 49.06541 50.95699 49.06541 50.82731C49.06541 50.78762 49.05541 50.75762 49.02572 50.63824L47.69072 45.288869C47.59134 44.900432 47.57134 44.820744 46.784469 44.820744C46.605094 44.820744 46.515407 44.820744 46.515407 44.621682C46.515407 44.511994 46.634782 44.511994 46.654782 44.511994C46.933844 44.511994 47.63103 44.541994 47.91009 44.541994C48.18884 44.541994 48.89603 44.511994 49.17509 44.511994C49.25478 44.511994 49.37416 44.511994 49.37416 44.711369C49.37416 44.820744 49.28447 44.820744 49.09541 44.820744C48.72666 44.820744 48.44791 44.820744 48.44791 45.000119C48.44791 45.059807 48.46791 45.109807 48.47759 45.169494L49.13509 47.80918H50.32072C51.22697 47.80918 51.40634 47.25137 51.40634 46.90262C51.40634 46.75324 51.32666 46.44449 51.26697 46.21543C51.19728 45.93637 51.10759 45.56793 51.10759 45.368557C51.10759 44.292932 52.30291 44.292932 52.43228 44.292932C53.27916 44.292932 53.62759 45.298869 53.62759 45.438244C53.62759 45.55793 53.51822 45.55793 53.50822 45.55793C53.41853 45.55793 53.39853 45.488244 53.37853 45.418557C53.12978 44.681369 52.70134 44.511994 52.47228 44.511994C52.14353 44.511994 52.07384 44.731057 52.07384 45.119494C52.07384 45.428557 52.13353 45.93637 52.17322 46.25512C52.19322 46.39481 52.21322 46.58387 52.21322 46.72324C52.21322 47.49043 51.54572 47.79918 51.27697 47.89887Z'/>
+<path d='M78.3672 55.8398C78.3672 56.6367 77.7227 57.2812 76.9297 57.2812C76.1328 57.2812 75.4883 56.6367 75.4883 55.8398C75.4883 55.0469 76.1328 54.4023 76.9297 54.4023C77.7227 54.4023 78.3672 55.0469 78.3672 55.8398Z'/>
+<path d='M78.3672 55.8398C78.3672 56.6367 77.7227 57.2812 76.9297 57.2812C76.1328 57.2812 75.4883 56.6367 75.4883 55.8398C75.4883 55.0469 76.1328 54.4023 76.9297 54.4023C77.7227 54.4023 78.3672 55.0469 78.3672 55.8398Z' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M76.9297 55.8398V30.6406' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M70.9297 30.6406H82.9297' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M70.9297 27.0391H82.9297' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M76.9297 27.0391V1.839844' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M71.73309 35.27992H74.51246C74.65184 35.27992 74.84121 35.27992 74.84121 35.4793C74.84121 35.67836 74.65184 35.67836 74.51246 35.67836H71.73309V38.46774C71.73309 38.60711 71.73309 38.79649 71.53402 38.79649C71.33465 38.79649 71.33465 38.60711 71.33465 38.46774V35.67836H68.545586C68.406211 35.67836 68.216836 35.67836 68.216836 35.4793C68.216836 35.27992 68.406211 35.27992 68.545586 35.27992H71.33465V32.490861C71.33465 32.351486 71.33465 32.162111 71.53402 32.162111C71.73309 32.162111 71.73309 32.351486 71.73309 32.490861V35.27992Z'/>
+<path d='M68.88389 30.40063C68.88389 30.93844 68.62483 31.09782 68.44545 31.09782C68.19639 31.09782 67.95733 30.83876 67.95733 30.61969C67.95733 30.49032 68.00733 30.43032 68.1167 30.32094C68.32608 30.12157 68.45545 29.86282 68.45545 29.50407C68.45545 29.08563 67.84795 26.804694 66.68233 26.804694C66.17451 26.804694 65.94545 27.153131 65.94545 27.671256C65.94545 28.22907 66.2142 28.95626 66.52295 29.78313C66.59264 29.95219 66.64264 30.09188 66.64264 30.28094C66.64264 30.72938 66.32389 31.09782 65.82576 31.09782C64.889513 31.09782 64.510763 29.65344 64.510763 29.56376C64.510763 29.46438 64.610451 29.46438 64.630451 29.46438C64.730138 29.46438 64.740138 29.48407 64.789826 29.64344C65.078576 30.64969 65.50701 30.87876 65.79576 30.87876C65.87545 30.87876 66.04483 30.87876 66.04483 30.56001C66.04483 30.31094 65.94545 30.04188 65.87545 29.86282C65.43733 28.70719 65.30764 28.24907 65.30764 27.82063C65.30764 26.744694 66.18451 26.585319 66.64264 26.585319C68.31608 26.585319 68.88389 29.88251 68.88389 30.40063Z'/>
+<path d='M74.2234 21.99998C74.39277 21.99998 74.57215 21.99998 74.57215 22.19935C74.57215 22.39841 74.39277 22.39841 74.2234 22.39841H68.83434C68.66496 22.39841 68.485898 22.39841 68.485898 22.19935C68.485898 21.99998 68.66496 21.99998 68.83434 21.99998H74.2234Z'/>
+<path d='M92.01759 32.35915C92.01759 32.38884 91.99759 32.45884 91.9079 32.45884C91.8779 32.45884 91.86822 32.44884 91.75853 32.33915L91.06134 31.57228C90.97165 31.71165 90.51322 32.45884 89.40759 32.45884C87.18634 32.45884 84.945091 30.25728 84.945091 27.94634C84.945091 26.302592 86.1204 25.216967 87.64447 25.216967C88.51103 25.216967 89.26822 25.615405 89.79603 26.07353C90.72259 26.8904 90.89197 27.79697 90.89197 27.82666C90.89197 27.92634 90.79228 27.92634 90.77228 27.92634C90.71259 27.92634 90.6629 27.90634 90.6429 27.82666C90.55322 27.5379 90.32415 26.83072 89.63665 26.252905C88.94947 25.695092 88.32197 25.525717 87.80384 25.525717C86.90728 25.525717 85.85165 26.04353 85.85165 27.59759C85.85165 28.1654 86.06072 29.77915 87.05665 30.94447C87.66447 31.65197 88.60072 32.14978 89.48728 32.14978C90.50353 32.14978 91.09103 31.38291 91.09103 30.22728C91.09103 29.82884 91.06134 29.81884 91.06134 29.71947C91.06134 29.61978 91.17072 29.61978 91.21072 29.61978C91.34009 29.61978 91.34009 29.63978 91.39009 29.81884L92.01759 32.35915Z'/>
+<path d='M78.3672 1.839844C78.3672 2.636719 77.7227 3.28125 76.9297 3.28125C76.1328 3.28125 75.4883 2.636719 75.4883 1.839844C75.4883 1.042969 76.1328 .39844 76.9297 .39844C77.7227 .39844 78.3672 1.042969 78.3672 1.839844Z'/>
+<path d='M78.3672 1.839844C78.3672 2.636719 77.7227 3.28125 76.9297 3.28125C76.1328 3.28125 75.4883 2.636719 75.4883 1.839844C75.4883 1.042969 76.1328 .39844 76.9297 .39844C77.7227 .39844 78.3672 1.042969 78.3672 1.839844Z' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M76.9297 55.8398H112.9297' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 55.8398V37.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 37.8398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 37.8398C113.7344 37.8398 114.4766 37.4102 114.8789 36.7148C115.2773 36.0195 115.2773 35.1602 114.8789 34.4648C114.4766 33.7695 113.7344 33.3398 112.9297 33.3398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 33.3398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 33.3398C113.7344 33.3398 114.4766 32.9102 114.8789 32.2148C115.2773 31.5195 115.2773 30.6602 114.8789 29.9648C114.4766 29.2695 113.7344 28.8398 112.9297 28.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 28.8398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 28.8398C113.7344 28.8398 114.4766 28.4102 114.8789 27.7148C115.2773 27.0195 115.2773 26.1602 114.8789 25.4648C114.4766 24.7695 113.7344 24.3398 112.9297 24.3398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 24.3398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 24.3398C113.7344 24.3398 114.4766 23.9102 114.8789 23.2148C115.2773 22.5195 115.2773 21.6602 114.8789 20.9648C114.4766 20.2695 113.7344 19.8398 112.9297 19.8398' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 19.8398H112.5273' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M112.9297 19.8398V1.839844' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M107.9536 31.46259C108.04297 31.82103 108.07297 31.93072 109.00922 31.93072C109.30828 31.93072 109.38797 31.93072 109.38797 32.12009C109.38797 32.23947 109.27828 32.23947 109.2286 32.23947C108.89985 32.23947 108.08297 32.20978 107.75422 32.20978C107.45547 32.20978 106.72828 32.23947 106.42953 32.23947C106.35953 32.23947 106.24016 32.23947 106.24016 32.0404C106.24016 31.93072 106.32985 31.93072 106.51891 31.93072C106.53891 31.93072 106.72828 31.93072 106.89766 31.91072C107.07703 31.89103 107.16641 31.88103 107.16641 31.75134C107.16641 31.71165 107.15672 31.68166 107.12672 31.56228L105.79203 26.212905C105.69235 25.824467 105.67235 25.74478 104.885471 25.74478C104.716096 25.74478 104.616409 25.74478 104.616409 25.545717C104.616409 25.43603 104.706096 25.43603 104.885471 25.43603H109.49735C109.73641 25.43603 109.74641 25.43603 109.80641 25.605405L110.59328 27.75697C110.63297 27.86666 110.63297 27.88634 110.63297 27.89634C110.63297 27.93634 110.60328 28.00603 110.5136 28.00603C110.42391 28.00603 110.41391 27.95634 110.34422 27.79697C110.00547 26.8804 109.56703 25.74478 107.84391 25.74478H106.90766C106.76797 25.74478 106.74828 25.74478 106.68828 25.75478C106.58891 25.76478 106.55891 25.77478 106.55891 25.854467C106.55891 25.884155 106.55891 25.904155 106.6086 26.08353L107.9536 31.46259Z'/>
+<path d='M111.1289 48.6406L112.9297 41.4414L114.7266 48.6406Z'/>
+<path d='M111.1289 48.6406L112.9297 41.4414L114.7266 48.6406Z' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10'/>
+<path d='M112.9297 43.0898V48.6406' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+<path d='M117.27603 48.80461C117.27603 49.00398 117.13634 49.16336 116.90728 49.16336C116.63853 49.16336 116.36947 48.90429 116.36947 48.63555C116.36947 48.44617 116.50884 48.27679 116.7479 48.27679C116.97697 48.27679 117.27603 48.50586 117.27603 48.80461ZM116.51884 45.05929C116.63853 45.34836 116.63853 45.36805 116.7379 45.63711C116.81759 45.83617 116.86759 45.97586 116.86759 46.16492C116.86759 46.61336 116.54884 46.98179 116.05072 46.98179C115.114466 46.98179 114.735716 45.53742 114.735716 45.44773C114.735716 45.34836 114.835404 45.34836 114.855404 45.34836C114.955091 45.34836 114.965091 45.36805 115.014779 45.52742C115.283841 46.46398 115.68228 46.76273 116.02072 46.76273C116.1004 46.76273 116.26978 46.76273 116.26978 46.44398C116.26978 46.23461 116.20009 46.02555 116.1604 45.92586C116.08072 45.66711 115.63228 44.51148 115.4729 44.08305C115.373216 43.82398 115.243841 43.495545 115.243841 43.28617C115.243841 42.818045 115.58259 42.469295 116.06072 42.469295C116.99697 42.469295 117.36572 43.91367 117.36572 44.00336C117.36572 44.10304 117.27603 44.10304 117.24603 44.10304C117.14634 44.10304 117.14634 44.07305 117.09665 43.92367C116.91728 43.29617 116.58853 42.68867 116.08072 42.68867C115.91134 42.68867 115.84165 42.788045 115.84165 43.01742C115.84165 43.26617 115.90134 43.405858 116.1304 44.01336L116.51884 45.05929Z'/>
+<path d='M112.9297 1.839844H22.929688' stroke='#000' fill='none' stroke-width='.8' stroke-miterlimit='10'/>
+</g>
+</g>
+</svg>
diff --git a/graphics/circuit_macros/examples/svg/quickSVG.m4 b/graphics/circuit_macros/examples/dpv/quickDPV.m4
index c4ddb20122..65a181f214 100644
--- a/graphics/circuit_macros/examples/svg/quickSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/quickDPV.m4
@@ -1,13 +1,13 @@
.PS # Pic input begins with .PS
-# quickSVG.m4
+# quickDPV.m4
cct_init # Set defaults
elen = 0.75 # Variables are allowed; default units are inches
move right 0.4
Origin: Here # Position names are capitalized
- svgLink(SourcesSVG.svg,source(up_ elen))
+ svgLink(SourcesDPV.svg,source(up_ elen))
llabel(-,svg_it(v`'svg_sub(s)),+)
- svgLink(ResistorsSVG.svg,resistor(right_ elen)); rlabel(,svg_it(R),)
+ svgLink(ResistorsDPV.svg,resistor(right_ elen)); rlabel(,svg_it(R),)
dot
{ # Save current position and direction
capacitor(down_ to (Here,Origin)) #(Here,Origin) = (Here.x,Origin.y)
diff --git a/graphics/circuit_macros/examples/dpv/quickDPV.svg b/graphics/circuit_macros/examples/dpv/quickDPV.svg
new file mode 100644
index 0000000000..c648e2d998
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/quickDPV.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Creator: dpic version 2022.12.01 option -v for SVG 1.1 -->
+<!-- width="182" height="82" -->
+<svg
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ xml:space="preserve"
+ style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision;
+ image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
+ width="180.8px" height="81.12px"
+ viewBox="0 0 180.8 81.12"
+ font-size="11pt" text-anchor="middle"
+ stroke="black" stroke-miterlimit="10" stroke-width="1.066667" fill="none">
+<g>
+<a xlink:href="SourcesDPV.svg" target="_blank">
+ <g stroke="rgb(0,0,255)">
+<line x1="39.466667" y1="76.533333" x2="39.466667" y2="52.533333" />
+<circle cx="39.466667" cy="40.533333" r="12" />
+<line x1="39.466667" y1="28.533333" x2="39.466667" y2="4.533333" />
+</g></a>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="36.8" y="64.88">-</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="24.8" y="45.373333"
+><tspan font-style="italic">v<tspan font-size="70%"
+dy="0.66ex" dx="">s</tspan><tspan
+font-size="70%" dy="-0.66ex"
+dx="-0.5ex"> </tspan></tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="36.8" y="25.866667">+</text>
+<a xlink:href="ResistorsDPV.svg" target="_blank">
+ <g stroke="rgb(0,0,255)">
+<polyline points="39.466667,4.533333 63.466667,4.533333
+65.466667,0.533333
+69.466667,8.533333
+73.466667,0.533333
+77.466667,8.533333
+81.466667,0.533333
+85.466667,8.533333
+87.466667,4.533333
+111.466667,4.533333" />
+</g></a>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ x="75.466667" y="20.88"><tspan font-style="italic">R</tspan></text>
+<circle fill="black"
+ cx="111.466667" cy="4.533333" r="1.92" />
+<line x1="111.466667" y1="4.533333" x2="111.466667" y2="38.133333" />
+<line x1="103.466667" y1="38.133333" x2="119.466667" y2="38.133333" />
+<line x1="103.466667" y1="42.933333" x2="119.466667" y2="42.933333" />
+<line x1="111.466667" y1="42.933333" x2="111.466667" y2="76.533333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="108.8" y="35.466667">+</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="100.8" y="45.373333"><tspan font-style="italic">v</tspan></text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="108.8" y="55.28">-</text>
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="start"
+ x="122.133333" y="45.373333"><tspan font-style="italic">C</tspan></text>
+<circle fill="black"
+ cx="111.466667" cy="76.533333" r="1.92" />
+<line x1="111.466667" y1="4.533333" x2="159.466667" y2="4.533333" />
+<line x1="159.466667" y1="4.533333" x2="159.466667" y2="28.533333" />
+<line x1="159.466667" y1="28.533333" x2="158.933333" y2="28.533333" />
+<path d="M 159.466667,28.533333
+ A 3 3 0 1 1 159.466667,34.533333" />
+<line x1="159.466667" y1="34.533333" x2="158.933333" y2="34.533333" />
+<path d="M 159.466667,34.533333
+ A 3 3 0 1 1 159.466667,40.533333" />
+<line x1="159.466667" y1="40.533333" x2="158.933333" y2="40.533333" />
+<path d="M 159.466667,40.533333
+ A 3 3 0 0 1 159.466667,46.533333" />
+<line x1="159.466667" y1="46.533333" x2="158.933333" y2="46.533333" />
+<path d="M 159.466667,46.533333
+ A 3 3 0 1 1 159.466667,52.533333" />
+<line x1="159.466667" y1="52.533333" x2="158.933333" y2="52.533333" />
+<line x1="159.466667" y1="52.533333" x2="159.466667" y2="76.533333" />
+<text font-size="11pt" stroke-width="0.266667"
+ fill="black"
+ text-anchor="end"
+ x="156.266667" y="45.373333"><tspan font-style="italic">L</tspan></text>
+<polygon stroke-width="0" fill="black"
+ points="161.866667,14.133333 159.466667,23.733333
+157.066667,14.133333" />
+<line x1="159.466667" y1="21.534344" x2="159.466667" y2="14.133333" />
+<text font-size="11pt" stroke-width="0.2pt" fill="black" text-anchor="start"
+ x="162.133333" y="22.673838"><tspan font-style="italic">i</tspan></text>
+<line x1="159.466667" y1="76.533333" x2="39.466667" y2="76.533333" />
+</g></svg>
diff --git a/graphics/circuit_macros/examples/svg/randomSVG.m4 b/graphics/circuit_macros/examples/dpv/randomDPV.m4
index 4ca2056d68..314f6c9e51 100644
--- a/graphics/circuit_macros/examples/svg/randomSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/randomDPV.m4
@@ -1,5 +1,5 @@
.PS
-# randomSVG.m4
+# randomDPV.m4
gen_init(svg_font(sans-serif,9bp__))
NeedDpicTools
diff --git a/graphics/circuit_macros/examples/svg/recycleSVG.m4 b/graphics/circuit_macros/examples/dpv/recycleDPV.m4
index 135f31414e..135f31414e 100644
--- a/graphics/circuit_macros/examples/svg/recycleSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/recycleDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/relaycoilSVG.m4 b/graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
index fc2bc2738f..fc2bc2738f 100644
--- a/graphics/circuit_macros/examples/svg/relaycoilSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/roseSVG.m4 b/graphics/circuit_macros/examples/dpv/roseDPV.m4
index 32c5dfdbc5..76a2655270 100644
--- a/graphics/circuit_macros/examples/svg/roseSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/roseDPV.m4
@@ -1,9 +1,9 @@
.PS
-# roseSVG.m4
+# rose.m4
gen_init
ifelse(
ifpstricks(T)`'ifmpost(T)`'ifpostscript(T)`'ifpdf(T)`'ifpgf(T)`'ifsvg(T),,
-`This diagram is for PSTricks, postscript, PDF, MetaPost, or SVG',
+`This diagram is for PSTricks, postscript, PDF, MetaPost, or svg',
`
scale = 1.25
@@ -132,7 +132,7 @@ C: (0,0)
Halftone: [
#.PS
-# SpiralHalftoneSVG.m4
+# SpiralHalftoneDPV.m4
# https://tex.stackexchange.com/questions/584455/how-to-draw-this-spiral-made-of-circles-in-latex
# gen_init
@@ -142,6 +142,7 @@ Halftone: [
holerad = 1*skale
outerrad = 4.25*skale
+ { circle thick 0.8 rad outerrad+2bp__ at Here outlined rgbstring(r,g,b) }
define grcirc {circle diam $1 colored rgbstring(r,g,b)}
diff --git a/graphics/circuit_macros/examples/svg/sfgSVG.m4 b/graphics/circuit_macros/examples/dpv/sfgDPV.m4
index 666f311ca4..4e32981619 100644
--- a/graphics/circuit_macros/examples/svg/sfgSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/sfgDPV.m4
@@ -1,5 +1,5 @@
.PS
-# sfgSVG.m4
+# sfgDPV.m4
gen_init(svg_font(Times,11bp__))
sfg_init( 1.2 ) # scale default size by 1.2
diff --git a/graphics/circuit_macros/examples/svg/shapesSVG.m4 b/graphics/circuit_macros/examples/dpv/shapesDPV.m4
index 3deae68c60..d7c5df27ef 100644
--- a/graphics/circuit_macros/examples/svg/shapesSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/shapesDPV.m4
@@ -1,5 +1,5 @@
.PS
-# shapesSVG.m4
+# shapesDPV.m4
threeD_init
divert(-1)
diff --git a/graphics/circuit_macros/examples/svg/slddiagsSVG.m4 b/graphics/circuit_macros/examples/dpv/slddiagsDPV.m4
index ce213358d0..3f05c84d5b 100644
--- a/graphics/circuit_macros/examples/svg/slddiagsSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/slddiagsDPV.m4
@@ -1,5 +1,5 @@
.PS
-# slddiagsSVG.m4
+# slddiagsDPV.m4
cct_init(svg_font(sans-serif,10bp__))
include(libSLD.m4)
diff --git a/graphics/circuit_macros/examples/svg/thyristorSVG.m4 b/graphics/circuit_macros/examples/dpv/thyristorDPV.m4
index 1301786a4c..450112c042 100644
--- a/graphics/circuit_macros/examples/svg/thyristorSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/thyristorDPV.m4
@@ -1,5 +1,5 @@
.PS
-# `thyristorSVG.m4'
+# `thyristorDPV.m4'
cct_init(svg_font(sans-serif,11bp__,1.5bp__))
define labels { {
diff --git a/graphics/circuit_macros/examples/svg/tstSVG.htmx b/graphics/circuit_macros/examples/dpv/tstDPV.htmx
index ccb14e00b8..64d1753399 100644
--- a/graphics/circuit_macros/examples/svg/tstSVG.htmx
+++ b/graphics/circuit_macros/examples/dpv/tstDPV.htmx
@@ -21,30 +21,24 @@ flowcharts, picture overlay, ASME Y14.5' >
<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
</HEAD>
-<!-- ---------------------------------------------------------------------
+<!-- m4 macros: ------------------------------------------------------------
define(`ifinstr',`ifelse(`$2',,`$1',index(`$1',`$2'),-1,
`ifinstr(shift(shift(shift($@))))',`$3')')
define(`m4tt',`<g style="font-family:monospace">')
+ dnl cfig( svg filename, [textfile], [y], [OBJECT] )
define(`cfig',`
<p>
-
-<!--[if lte IE 8]><embed src="$1.svg" sinclude($1.siz)><![endif]-->
-
-<!--[if gte IE 9]>
-<object dx="4" data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img">
- </object> <![endif]-->
-
-<!--[if !IE]><!-->
-<object data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img">
- </object> <![endif]-->
-
-<br><br>
-ifelse(`$2',,,`
+ dnl The object type is needed for the overlay
+ dnl example
+ifelse(`$4',OBJECT,
+`<object data="$1.svg" type="image/svg+xml" class="img"></object>',
+`<IMG SRC="$1.svg">')
+ dnl
+ifelse(`$2',,,`<br><br>
<a href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4:</a>
`$2' changecom(,)&`#'8194;changecom(`#')')
-
</p>
ifinstr(`$3',y,,`<hr>')')
@@ -55,21 +49,31 @@ ifinstr(`$3',y,,`<hr>')')
width="700px" border="0" align="center" ><tr><td>
<H2>SVG Circuit_macros examples, Version XXX</H2>
+
+<A HREF="../../index.html">Home</A>
+&#62;
+<A HREF="examples.html">Examples</A>
+&#62;
+<A HREF="examplesDPV.html">SVG</A>
+
<hr>
<p>
- This file shows diagrams in .svg format;
+ This file shows diagrams in .svg format produced without the use of
+ LaTeX or equivalent.
+<!--
<A HREF="examples.html">png</A>
versions are also available.
The PDF equivalent can be found in examples.pdf of the distribution.
</p>
<p>
-The diagrams shown below have been adapted from the Circuit_macros
+-->
+The diagrams have been adapted from the Circuit_macros
examples in order to test the svg output of dpic. Generating svg line
-art is straightforward, but TeX, LaTeX, and related word
-processors do not produce svg. Either less-sophisticated text formatting
-must be employed or an
+art is straightforward but formatting text is not because TeX, LaTeX,
+and related word processors do not produce svg directly. Either
+less-sophisticated text formatting must be employed for svg or an
<A HREF="https://en.wikibooks.org/wiki/LaTeX/Export_To_Other_Formats">
intermediate format</A>
such as pdf can be
@@ -77,11 +81,9 @@ produced, followed by an additional processing step to convert to svg.
Two possibilities for the latter are
<A HREF="https://www.ctan.org/pkg/dvisvgm">dvisvgm</A>
and
- <A HREF="https://github.com/dawbarton/pdf2svg">pdf2svg</A> although
-there may be font-related issues for some diagrams.
-<br>
-Many circuit and similar diagrams intended for the web do not
-require sophisticated labels, however; the examples shown below might
+ <A HREF="https://github.com/dawbarton/pdf2svg">pdf2svg</A>.
+However, many circuit and similar diagrams intended for the web do not
+require sophisticated labels; the examples shown below might
be representative.
</p>
<p>
@@ -89,28 +91,16 @@ be representative.
</p>
<hr>
<p>
-There are a number of other issues:
+There are other issues:
<ul>
- <li> Embedding .svg files in html documents with the &lt;embed&gt; or
- &lt;object&gt; tag seems to be a perennial issue.
- <li> This file has been tested mainly by using Firefox.
- <li> The Adobe reader apparently requires a line of the form
- <br> &lt;embed src="figure.svg" width="x" height="y" type="image/svg+xml"
- /&gt;
- This means that the html file has to contain dimension
- information for each figure, whereas Firefox can
- determine the figure size
- from the &lt;svg ... object. Currently, dpic includes a comment line
- giving reasonable dimensions in pixels but this has to be insterted into
- the &lt;embed or &lt;object line. A makefile does it easily but
- otherwise this could be tedious.
<li> The default font face is not specified in all of these diagrams but is
inherited from the enclosing document, so the appearance of labels can
differ depending on the browser. Some of these diagrams set the font at
the beginning of the diagram source.
<li> The &lt;svg tag may require modification
- from the default used for this test. Dpic might be modified to
- allow the generation of custom headers but that has not been done.
+ from the default used for this test.
+ <!-- Dpic might be modified to
+ allow the generation of custom headers but that has not been done. -->
<li> Diagrams such as these contain text labels
that have to be treated differently from the LaTeX-compatible versions.
Apparently there is no direct way to know the bounding box of arbitrary svg
@@ -270,9 +260,9 @@ There are a number of other issues:
but many more could be added and they should be customized for
particular applications. Adjustments may also have to be made to
obtain the proper snap-to actions.
- <li> Link experiments: Click on the resistor or source of quickSVG
+ <li> Link experiments: Click on the resistor or source of quickDPV
to go to external
- files in new windows. Click on "n-port" in NportSVG to replace the diagram
+ files in new windows. Click on "n-port" in NportDPV to replace the diagram
and then "back" to return.
<li> Some of the assumptions used to create this draft may be
na&`#'239;ve.
diff --git a/graphics/circuit_macros/examples/svg/ujtSVG.m4 b/graphics/circuit_macros/examples/dpv/ujtDPV.m4
index 2672d38989..2672d38989 100644
--- a/graphics/circuit_macros/examples/svg/ujtSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/ujtDPV.m4
diff --git a/graphics/circuit_macros/examples/svg/windows.m4 b/graphics/circuit_macros/examples/dpv/windows.m4
index bc4527f36e..bc4527f36e 100644
--- a/graphics/circuit_macros/examples/svg/windows.m4
+++ b/graphics/circuit_macros/examples/dpv/windows.m4
diff --git a/graphics/circuit_macros/examples/svg/wormSVG.m4 b/graphics/circuit_macros/examples/dpv/wormDPV.m4
index 79ac53f772..79ac53f772 100644
--- a/graphics/circuit_macros/examples/svg/wormSVG.m4
+++ b/graphics/circuit_macros/examples/dpv/wormDPV.m4
diff --git a/graphics/circuit_macros/examples/ex01.m4 b/graphics/circuit_macros/examples/ex01.m4
index a566c4c2dd..b505028bba 100644
--- a/graphics/circuit_macros/examples/ex01.m4
+++ b/graphics/circuit_macros/examples/ex01.m4
@@ -1,7 +1,7 @@
.PS
# Timer.m4
cct_init
-iflatex(`latexcommand({\small\sf)')
+ ifpostscript(,latexcommand({\small\sf))
define(`ic555',`[Chip: box ht boxwid wid boxwid "555"
P7: "7" ljust at 1/6<Chip.sw,Chip.nw>
@@ -70,5 +70,5 @@ Ex01: [
] with .sw at Timer.se+(0.5,0)
-iflatex(`latexcommand(}%)')
+ ifpostscript(,latexcommand(}%))
.PE
diff --git a/graphics/circuit_macros/examples/ex05.m4 b/graphics/circuit_macros/examples/ex05.m4
index dbdacdab90..748a48ebe9 100644
--- a/graphics/circuit_macros/examples/ex05.m4
+++ b/graphics/circuit_macros/examples/ex05.m4
@@ -1,7 +1,9 @@
.PS
# ex05.m4
darrow_init
+ifelse(ifpstricks(T)`'ifpgf(T)`'ifsvg(T)`'ifmpost(T),T,`
+Kalman: [
fillval = 0.8 # environmental variable
dx = boxht/5 # diagram parameters wrt scaled env variables
@@ -11,9 +13,9 @@ darrow_init
# Replacement for \bar, see
# https://tex.stackexchange.com/questions/22100/the-bar-and-overline-commands
-command "\newcommand{\ols}[1]{%
+latexcommand(\newcommand{\ols}[1]{%
\mskip.5\thinmuskip\overline{\mskip-.5\thinmuskip {#1} \mskip-.5\thinmuskip}%
-\mskip.5\thinmuskip} % overline short "
+\mskip.5\thinmuskip})
COb: box fill_ "C$\ols{\mbox{O}}$"
CO:box fill_ with .nw at last box.se+(dx,-dx) "CO"
@@ -67,5 +69,48 @@ TU: dtee(R)
circle at Sum
circle at Dum
-
+ ]
+Coxeter: [
+# Coxeter.m4
+
+ customlinethick = 1.5
+
+ linethick = customlinethick
+ define(`dotrad_',`(3/2*linethick pt__)')
+
+ Orig: (0,0)
+ for i=0 to 4 do { P[i]: dot(at (i*linewid,0)) }
+ line from Orig to P[4]
+ P[-1]: dot(at (Rect_(linewid, 120))); line to Orig
+ P[-2]: dot(at (Rect_(linewid,-120))); line to Orig
+
+ Pa: dot(at P[4]+(linewid,0)); "$a$" at last [].n above
+ arrow from P[4] to Pa chop linewid/4
+ Pd: dot(at P[0]+(0,-2*linewid)); "$d$" at last [].w rjust
+ Pe: dot(at Pd+(linewid,0)); "$e$" at last [].n above
+ Pf: dot(at Pe+(linewid,0)); "$f$" at last [].n above
+ Pb: dot(at Pd+(Rect_(linewid,120))); "$b$" at last [].w rjust
+ Pc: dot(at Pd+(Rect_(linewid,-120))); "$c$" at last [].w rjust
+ line from Pb to Pd then to Pc
+ line from Pd to Pf
+
+ define(`customarc',
+ `pushdef(`dfillcolor',`0.7,0.7,0.7') linethick_(0.4); dnl
+ Darc(`$1',linewid, (`$2')*dtor_, (`$3')*dtor_,
+ thick=linewid/6; wid=linewid*0.3; ht=linewid/6; ends=<->)dnl
+ linethick_(customlinethick); popdef(`dfillcolor')')
+
+ customarc((linewid,-linewid/3), 25,155)
+ "$d$" at (linewid,linewid*2/3)
+ customarc((2*linewid,-linewid/3), 25,155)
+ "$e$" at (2*linewid,linewid*2/3)
+ customarc((3*linewid,-linewid/3), 25,155)
+ "$f$" at (3*linewid,linewid*2/3)
+ customarc(Orig,130,230); "$a$" at (Rect_(linewid,180))
+ customarc(Orig, 10,110); "$b$" at (Rect_(linewid, 60))
+ customarc(Orig,-110,-10); "$c$" at (Rect_(linewid,-60))
+
+ ] with .sw at Kalman.se+(15bp__,0)
+
+',` "This diagram requires LaTex" ')
.PE
diff --git a/graphics/circuit_macros/examples/ex17.m4 b/graphics/circuit_macros/examples/ex17.m4
index a0cd527986..a304d7359b 100644
--- a/graphics/circuit_macros/examples/ex17.m4
+++ b/graphics/circuit_macros/examples/ex17.m4
@@ -32,7 +32,7 @@ define(`elen_',linewid) # shorter default length
parallel_(Sep=1.75*dimen_;
parallel_(
`capacitor(,C); rlabel(,,C_2)',
- `resistor; llabel(,R_2)' ),
+ `resistor; rlabel(,R_2)' ),
parallel_(
`resistor; rlabel(,R_1); move to rvec_(-dimen_/5,0)
inductor(,W); rlabel(,L_1)',
diff --git a/graphics/circuit_macros/examples/examples.pdf b/graphics/circuit_macros/examples/examples.pdf
index 184aa8a400..a567ad9081 100644
--- a/graphics/circuit_macros/examples/examples.pdf
+++ b/graphics/circuit_macros/examples/examples.pdf
Binary files differ
diff --git a/graphics/circuit_macros/examples/files.tex b/graphics/circuit_macros/examples/files.tex
index 22c3a5c5fd..4a90ac0332 100644
--- a/graphics/circuit_macros/examples/files.tex
+++ b/graphics/circuit_macros/examples/files.tex
@@ -62,6 +62,12 @@
}
\bfig{
+ \centerline{\getpic{Arresters}}
+ \caption{The {\tt arrester} macro
+ \src{Arresters.m4}.}
+ }
+
+\bfig{
\centerline{\getpic{MoreTable}}
\caption{Additional two-terminal elements
\src{MoreTable.m4}.}
@@ -152,12 +158,12 @@
\src{Pconn.m4}.}
}
-\bfig{
+\ifmpost\else\ifpostscript\else\bfig{
\centerline{\getpic{EVplugs}}
\caption{Electric vehicle charging plug patterns make extensive
use of {\sl key=value} pairs to set options
\src{EVplugs.m4}.}
- }
+ }\fi\fi
\bfig{
\centerline{\getpic{Headers}}
@@ -412,6 +418,12 @@
\end{sidewaysfigure} %}% \end{landscape}
\bfig{
+ \centerline{\getpic{UNO}}
+ \caption{An Arduino UNO circuit adapted and redrawn
+ \src{UNO.m4}.}
+ }
+
+\bfig{
\centerline{\getpic{Tubediags}}
\caption{Electron-tube diagrams: a few bottom-view base diagrams,
a generic triode test circuit, and a 25-watt audio amplifier adapted
@@ -515,28 +527,28 @@
\src{ex00.m4}.}
}
-\bfig{
+\ifmpost\else\ifpostscript\else\bfig{
\centerline{\getpic{EEP}}
\caption{A test of experimental single-line diagram macros
\src{EEP.m4}.}
- }
+ }\fi\fi
-\bfig{
- \centerline{\getpic{control}}
- \caption{Control-system block diagrams
- \src{control.m4}.}
- }
+\ifpostscript\else\bfig{
+ \centerline{\getpic{ex05}}
+ \caption{Use of {\tt darrow} and {\tt Darc}
+ \src{ex05.m4}.}
+ }\fi
\bfig{
\centerline{\getpic{GrayCode}}
- \caption{Gray code 10-bit encoder disk pattern
+ \caption{Gray code 10-bit encoder disk pattern and a crossbar switch
\src{GrayCode.m4}.}
}
\bfig{
- \centerline{\getpic{Crossbar}}
- \caption{A crossbar switch
- \src{Crossbar.m4}.}
+ \centerline{\getpic{control}}
+ \caption{Control-system block diagrams
+ \src{control.m4}.}
}
\bfig{
@@ -560,6 +572,24 @@
}
\bfig{
+ \centerline{\getpic{Geometry}}
+ \caption{Some geometrical constructions
+ \src{Geometry.m4}.}
+ }
+
+\bfig{
+ \centerline{\getpic{Loglog}}
+ \caption{A graph drawn using the pic language
+ \src{Loglog.m4}.}
+ }
+
+\ifmpost\else\bfig{
+ \centerline{\getpic{Smithchart}}
+ \caption{A Smith chart
+ \src{Smithlchart.m4}.}
+ }\fi
+
+\bfig{
\centerline{\getpic{ex09}}
\caption{Illustrating the macro
{\tt dimension\_(}{\sl linespec}, {\sl offset}, {\sl label},
@@ -584,19 +614,6 @@
}
\bfig{
- \centerline{\getpic{ex05}}
- \caption{The Kalman canonical decomposition of a dynamical system:
- use of {\tt darrow}
- \src{ex05.m4}.}
- }
-
-\bfig{
- \centerline{\getpic{Loglog}}
- \caption{A graph drawn using the pic language
- \src{Loglog.m4}.}
- }
-
-\bfig{
\centerline{\getpic{random}}
\caption{Testing random number generation using
dpic macro {\tt randn(}{\sl array name, n, mean, std dev}{\tt)}
@@ -631,17 +648,28 @@
\src{csc.m4}.}
}
-\bfig{
- \centerline{\getpic{rose}}
- \caption{Redrawn from a detail of the set design for the musical
- {\it Dracula,} used for testing {\tt dpic}. This diagram
- consumes much \LaTeX\ main memory but can be produced
- directly as pdf using \hbox{\tt dpic -d},
- as svg using \hbox{\tt dpic -v},
- or as postscript using \hbox{\tt dpic -r}
- since no text formatting is required
+\ifpostscript\bfig{% For psfrag
+ \includegraphics[width=\textwidth]{rose.eps} %\centerline{\getpic{rose}}
+ \caption{The left object, used for testing {\tt dipic,} is redrawn from
+ a detail of the set design for the musical {\it Dracula.} This
+ consumes much \LaTeX\ main memory but can be produced directly
+ as pdf using \hbox{\tt dpic -d}, as svg using \hbox{\tt dpic -v},
+ or as postscript using \hbox{\tt dpic -r} since no text formatting
+ is required. The right object adjusts the size of dots to produce
+ a halftone effect
\src{rose.m4}.}
- }
+ }\else%
+\ifmpost\else\bfig{%
+ \includegraphics[width=\textwidth]{rose.pdf} %\centerline{\getpic{rose}}
+ \caption{The left object, used for testing {\tt dipic,} is redrawn from
+ a detail of the set design for the musical {\it Dracula.} This
+ consumes much \LaTeX\ main memory but can be produced directly
+ as pdf using \hbox{\tt dpic -d}, as svg using \hbox{\tt dpic -v},
+ or as postscript using \hbox{\tt dpic -r} since no text formatting
+ is required. The right object adjusts the size of dots to produce
+ a halftone effect
+ \src{rose.m4}.}
+ }\fi\fi
\bfig{
\centerline{\getpic{diamond}}
@@ -662,12 +690,18 @@
\src{Buttons.m4}.}
}
+\ifmpost\else\ifpostscript\else\bfig{% Exclude mpost and psfrag
+ \includegraphics[scale=0.7]{keyboard.pdf} %\centerline{\getpic{keyboard}}
+ \caption{This diagram has been produced as svg with dpic -v
+ (then converted to pdf for inclusion in examples.pdf)
+ \src{keyboard.m4}.}
+ }\fi\fi
+
\bfig{
\centerline{\getpic{Dini}}
\caption{Dini surface and an icosahedron
\src{Dini.m4}.}
}
-\clearpage
\bfig{
\centerline{\getpic{Sierpinski}}
@@ -708,17 +742,11 @@
\bfig{
\centerline{\getpic{Btree}}
- \caption{A binary tree
+ \caption{Trees
\src{Btree.m4}.}
}
\ifmpost\else% Tex capacity exceeded at this point under metapost
-\bfig{
- \centerline{\getpic{Ttree}}
- \caption{Another tree
- \src{Ttree.m4}.}
- }
-
% Overlaying a figure with line graphics depends on the postprocessor:
\ifpst% PSTricks
\bfig{%
@@ -744,18 +772,18 @@
\bfig{%
\centerline{\boxdims{InclA}{%ignore%
\includegraphics[width=3in]{../Incl}}%
- \hspace*{-3in}\includegraphics{Inclpdf}}%
+ \hspace*{-3in}\includegraphics{Incleps}}%
\caption{Overlaying a figure with line graphics %ignore%
- \src{Inclpdf.m4}.}
+ \src{Incleps.m4}.}
}
\else\ifpostscript% Postscript with psfrag (.eps.gz not allowed)
-\bfig{%
+ifpostscript(,\bfig{%
\centerline{\boxdims{InclA}{%ignore%
\includegraphics[width=3in]{Incl.eps}}%
- \hspace*{-3in}\includegraphics{Inclpdf.eps}}%
+ \hspace*{-3in}\includegraphics{Incleps.eps}}%
\caption{Overlaying a figure with line graphics %ignore%
- \src{Inclpdf.m4}.}
- }
+ \src{Incleps.m4}.}
+ })
\fi\fi\fi\fi\fi
\fi % ifmpost
diff --git a/graphics/circuit_macros/examples/svg/keyboardSVG.m4 b/graphics/circuit_macros/examples/keyboard.m4
index 7966a7aa3b..7966a7aa3b 100644
--- a/graphics/circuit_macros/examples/svg/keyboardSVG.m4
+++ b/graphics/circuit_macros/examples/keyboard.m4
diff --git a/graphics/circuit_macros/examples/keyboard.pdf b/graphics/circuit_macros/examples/keyboard.pdf
new file mode 100644
index 0000000000..94548b033a
--- /dev/null
+++ b/graphics/circuit_macros/examples/keyboard.pdf
Binary files differ
diff --git a/graphics/circuit_macros/examples/keyval.m4 b/graphics/circuit_macros/examples/keyval.m4
deleted file mode 100644
index dc81fd123f..0000000000
--- a/graphics/circuit_macros/examples/keyval.m4
+++ /dev/null
@@ -1,74 +0,0 @@
-.PS
-# keyval.m4
-cct_init
-
-#An experiment in defining macro options as key1=val1;key2=val2; ...
-# `resistor( linespec,
-# cycles=n;type=E|Q|H;side=L|R)
-# chars : E=ebox
-# Q=offset
-# H=squared (default 3 cycles)
-# R=to right of drawing direction'
-define(`xesistor',
-`print "`$0'($@)" ;
- setkey_(`$2',cycles,4,N)dnl
- setkey_(`$2',type,N,N)dnl
- setkey_(`$2',side,R,N)dnl
- print "cycles:m4cycles"
- print "type:m4type"
- print "side:m4side"
-ifelse(
- m4type,E,
- `ebox(`$1',shift(shift(shift($@))))',
- `eleminit_(`$1')
- ifelse(m4type,N,
- `define(`m4n',`eval((m4cycles)*2)')dnl
- define(`m4h',`dimen_/24')dnl
- define(`m4v',2)dnl
- if m4h*m4n*2 > rp_len then { eleminit_(to rvec_(m4h*m4n*2,0)) }
- tr_xy_init(last line.c, m4h, ifelse(m4side,R,-))dnl
- { line from last line.start to tr_xy(-m4n,0)\
- for_(2,m4n,2,
- `then to tr_xy(eval(2*m4x-3-m4n), m4v) \
- then to tr_xy(eval(2*m4x-1-m4n),-m4v) \')dnl
- then to tr_xy(m4n, 0) then to last line.end
- [box invis ht_ m4h*m4v*2 wid_ m4h*m4n*2] at 2nd last line.c
- }',
- m4type,Q,
- `define(`m4n',`eval(2*(m4cycles))')dnl
- define(`m4h',`dimen_/24')dnl
- define(`m4v',2)dnl
- if m4h*m4n*2 > rp_len then { eleminit_(to rvec_(m4h*m4n*2,0)) }
- tr_xy_init(last line.c, m4h, ifelse(m4side,R,-))dnl
- { line from last line.start to tr_xy(-m4n,0)\
- for_(2,m4n,2,
- `then to tr_xy(eval(2*m4x-2-m4n), m4v*2) \
- then to tr_xy(eval(2*m4x-m4n),0) \')dnl
- then to tr_xy(m4n, 0) then to last line.end
- [box invis ht_ m4h*m4v*2 wid_ m4h*m4n*2] at 2nd last line.c + ta_xy(0,m4v)
- }',
- m4type,H,
- `define(`m4n',`ifelse(`$2',,5,`eval(2*$2-1)')')dnl
- define(`m4h',`dimen_/20')dnl
- define(`m4v',7/3)dnl
- if m4h*m4n*2 > rp_len then { eleminit_(to rvec_(m4h*m4n*2,0)) }
- tr_xy_init(last line.c, m4h, ifelse(m4side,R,-))dnl
- { line from last line.start to tr_xy(-m4n,0)\
- for_(-m4n,m4n,2,
- `ifelse(eval(((m4x+m4n)/2)%2),0,
- `then to tr_xy(m4x,m4v) then to tr_xy(eval(m4x+2),m4v) \',
- `then to tr_xy(m4x,0) \
- ifelse(m4x,m4n,,`then to tr_xy(eval(m4x+2),0)')\')')dnl
- then to tr_xy(m4n, 0) then to last line.end
- [box invis ht_ m4h*m4v wid_ m4h*m4n*2] at 2nd last line.c+(0,m4h*m4v/2)
- }')
- line invis from 2nd last line.start to 2nd last line.end ')
-
- popdef(`m4cycles')dnl
- popdef(`m4type')dnl
- popdef(`m4side')dnl
-')
-
- xesistor(,type=E;cycles=5;)
- xesistor(,type=Q;cycles=3;side=L)
-.PE
diff --git a/graphics/circuit_macros/examples/mf/cct.mf b/graphics/circuit_macros/examples/mf/cct.mf
index 6e6fa4f73e..e134c95c63 100644
--- a/graphics/circuit_macros/examples/mf/cct.mf
+++ b/graphics/circuit_macros/examples/mf/cct.mf
@@ -1,5 +1,5 @@
% cct.mf, generated by Mfpic, v1.10 2012/12/03,
-% from TeX source "font" on 2022/10/13 at 18:50
+% from TeX source "font" on 2022/11/28 at 18:39
numeric mfpicversion; mfpicversion := 110;
if unknown mode: mode := localfont; fi
if unknown mag: mag := 1000/1000; fi
diff --git a/graphics/circuit_macros/examples/mpost/Makefile b/graphics/circuit_macros/examples/mpost/Makefile
index 18bb0ad576..bef3268c06 100644
--- a/graphics/circuit_macros/examples/mpost/Makefile
+++ b/graphics/circuit_macros/examples/mpost/Makefile
@@ -19,28 +19,37 @@ MKDIM=printf '=boxdimfile{$(DIMFILE)}\n'
#---------------------------------------------
DOC = examplesmpost
-FIGS = Adder.1 Alogix.1 ABlogix.1 Antennas.1 AmpTable.1 Audio.1 \
- AntiqueClock.1 \
- Bip.1 Btree.1 Byte.1 Buttons.1 \
- Connectors.1 Contact.1 Contacts.1 \
- Counting.1 Crossbar.1 Crow.1 Csource.1 CanLogic.1 CctTable.1 Conn.1 \
- Decoder.1 Demultiplexer.1 Dini.1 Diodes.1 Drive.1 \
- Emarrows.1 Flow.1 Fuses.1 \
- GrayCode.1 Grounds.1 Headers.1 Heathkit.1 I2L.1 Inclpdf.1 Jack.1 \
- Lyap.1 Logic.1 Loglog.1 MC.1 Mixer.1 MotorControl.1 Multiplexer.1 \
- NLG.1 NPDT.1 Nport.1 \
- Opamp.1 Optoiso.1 Pconn.1 PushPull.1 Quantum.1 \
- Rectifiers.1 Relay.1 relaycoil.1 Rotbox.1 \
- Schottky.1 Sierpinski.1 ShiftR.1 Sixpole.1 Sources.1 SQUID.1 Switches.1 \
- Tgate.1 Three.1 Timer.1 TTLnand.1 Ttree.1 Tubediags.1 \
- Variable.1 Windings.1 Xform.1 \
- control.1 csc.1 diamond.1 ex00.1 ex01.1 ex02.1 \
- ex03.1 ex04.1 ex05.1 ex06.1 ex08.1 ex09.1 ex10.1 \
- ex11.1 ex12.1 ex15.1 ex16.1 ex17.1 ex18.1 ex21.1 exp.1 \
- fet.1 graysurf.1 lcct.1 pwrsupply.1 quick.1 \
- random.1 recycle.1 rose.1 shapes.1 thyristor.1 sfg.1 ujt.1 worm.1 XOR.1
-
-BOXDIMS = ex09 Crow Inclpdf Loglog Opamp Ttree Windings
+
+FIGS = \
+ ABlogix.1 Adder.1 Alogix.1 AmpTable.1 Antennas.1 Arresters.1 \
+ Audio.1 Bip.1 Btree.1 Buttons.1 Byte.1 \
+ Capacitors.1 CanLogic.1 Chips.1 Conn.1 Connectors.1 \
+ Contacts.1 Contact.1 control.1 Crow.1 \
+ csc.1 Csource.1 Decoder.1 \
+ Demultiplexer.1 diamond.1 Dini.1 Diodes.1 Drive.1 \
+ Emarrows.1 Escher.1 \
+ ex00.1 ex01.1 ex02.1 ex03.1 ex04.1 ex05.1 ex06.1 ex08.1 \
+ ex09.1 ex10.1 ex11.1 ex12.1 ex15.1 ex16.1 ex17.1 ex18.1 \
+ ex21.1 exp.1 fet.1 Flow.1 Fuses.1 \
+ Geometry.1 GrayCode.1 graysurf.1 Grounds.1 \
+ Headers.1 Heathkit.1 \
+ I2L.1 Inclpdf.1 Inductors.1 Jack.1 \
+ lcct.1 Logic.1 Loglog.1 MC.1 Mixer.1 MoreTable.1 \
+ MotorControl.1 Multiplexer.1 \
+ NLG.1 NPDT.1 Nport.1 Opamp.1 Optoiso.1 \
+ Pconn.1 Plate.1 PushPull.1 pwrsupply.1 \
+ Quantum.1 quick.1 \
+ random.1 Rectifiers.1 recycle.1 relaycoil.1 Relay.1 \
+ Resistors.1 Rotbox.1 \
+ Schottky.1 sfg.1 shapes.1 ShiftR.1 Sierpinski.1 Sixpole.1 \
+ Smithchart.1 Sources.1 SQUID.1 Switches.1 \
+ Tgate.1 Three.1 thyristor.1 TTLnand.1 Tubediags.1 \
+ UNO.1 ujt.1 Variable.1 Windings.1 worm.1 Xform.1 XOR.1
+
+REMOVED = \
+ EEP.1 EVplugs.1
+
+BOXDIMS = ex09 Crow Inclpdf Loglog Opamp Btree Windings
# It is advisable to do `make clean' between test examples.
#---------------------------------------------
@@ -79,6 +88,7 @@ DIMFILE = tmp.dim
dpic -s $(DOC).pic >> $*.mp
@printf 'end\n' >> $*.mp
$(MPOST) $*.mp
+ chmod 644 $*.*
$(DOC).ps: $(DOC).dvi
$(DVIPS) $(DOC) -o
@@ -123,7 +133,7 @@ tst1: test.1 tstmpost.tex
dvips tstmpost
clean:
- rm -f stamp-* $(FIGS) *.pic
+ rm -f stamp-* $(FIGS) *.pic mp*.tex
-if /usr/bin/test -f exlinks ; then \
ls -l *.m4 *.bb *.gz | grep '\->' | \
sed -e 's/^.* \([^ ][^ ]*\) ->.*$$/rm -f \1/' | sh; fi
diff --git a/graphics/circuit_macros/examples/mpost/README-mpost b/graphics/circuit_macros/examples/mpost/README-mpost
index 53d0263f27..32dd40c195 100644
--- a/graphics/circuit_macros/examples/mpost/README-mpost
+++ b/graphics/circuit_macros/examples/mpost/README-mpost
@@ -1,6 +1,6 @@
THIS DIRECTORY contains a Makefile and test files for the MetaPost
-output of dpic.
+output of dpic, resulting in a .dvi file and then a .ps file.
1. On a Unix-like system, typing "make" processes the examples file
and the diagrams it includes to produce examplesmpost.ps. Each diagram is
diff --git a/graphics/circuit_macros/examples/mpost/examplesmpost.tex b/graphics/circuit_macros/examples/mpost/examplesmpost.tex
index 45baa6b325..57d64639f5 100644
--- a/graphics/circuit_macros/examples/mpost/examplesmpost.tex
+++ b/graphics/circuit_macros/examples/mpost/examplesmpost.tex
@@ -18,4 +18,7 @@
The source files have been processed with m4, dpic -s, and MetaPost to
produce this file.
+ At present ``File file.1 not found'' warnings are given even if the file
+ is found.
+
\input ../files.tex
diff --git a/graphics/circuit_macros/examples/svg/paletteSVG.m4 b/graphics/circuit_macros/examples/paletteSVG.m4
index 4c5a40f038..4c5a40f038 100644
--- a/graphics/circuit_macros/examples/svg/paletteSVG.m4
+++ b/graphics/circuit_macros/examples/paletteSVG.m4
diff --git a/graphics/circuit_macros/examples/psfrag/Makefile b/graphics/circuit_macros/examples/psfrag/Makefile
index e79d5bee4d..65f7dd9141 100644
--- a/graphics/circuit_macros/examples/psfrag/Makefile
+++ b/graphics/circuit_macros/examples/psfrag/Makefile
@@ -20,38 +20,37 @@ M4 = m4
#---------------------------------------------
DOC = examplespsfrag
-FIGS = Adder.eps Alogix.eps ABlogix.eps Antennas.eps Audio.eps AmpTable.eps \
- AntiqueClock.eps \
- Bip.eps Btree.eps Byte.eps Buttons.eps \
- CanLogic.eps CctTable.eps Conn.eps Connectors.eps \
- Counting.eps Crossbar.eps Crow.eps \
- Decoder.eps Demultiplexer.eps Dini.eps Diodes.eps Drive.eps \
- Contact.eps Contacts.eps \
- Csource.eps \
- Emarrows.eps Flow.eps Fuses.eps \
- GrayCode.eps Grounds.eps Headers.eps Heathkit.eps Jack.eps \
- I2L.eps Inclpdf.eps \
- Lyap.eps Logic.eps Loglog.eps \
- MC.eps Mixer.eps MotorControl.eps Multiplexer.eps \
- NLG.eps NPDT.eps Nport.eps \
- Opamp.eps Optoiso.eps Pconn.eps PushPull.eps Quantum.eps \
- Rectifiers.eps Relay.eps Rotbox.eps \
- Schottky.eps Sierpinski.eps ShiftR.eps Sixpole.eps Sources.eps SQUID.eps \
- Switches.eps \
- Tgate.eps Three.eps Timer.eps TTLnand.eps Ttree.eps Tubediags.eps \
- Windings.eps Variable.eps Xform.eps XOR.eps \
- control.eps csc.eps diamond.eps \
- ex00.eps ex01.eps ex02.eps ex03.eps ex04.eps \
- ex05.eps ex06.eps ex08.eps ex09.eps ex10.eps ex11.eps ex12.eps \
- ex15.eps ex16.eps ex17.eps ex18.eps ex21.eps exp.eps \
- fet.eps graysurf.eps lcct.eps pwrsupply.eps quick.eps \
- random.eps recycle.eps relaycoil.eps rose.eps sfg.eps shapes.eps \
- thyristor.eps ujt.eps worm.eps
+FIGS = \
+ ABlogix.eps Adder.eps Alogix.eps AmpTable.eps Antennas.eps Arresters.eps \
+ Audio.eps Bip.eps Btree.eps Buttons.eps Byte.eps \
+ Capacitors.eps CanLogic.eps Chips.eps Conn.eps Connectors.eps \
+ Contacts.eps Contact.eps control.eps Crow.eps \
+ csc.eps Csource.eps Decoder.eps \
+ Demultiplexer.eps diamond.eps Dini.eps Diodes.eps Drive.eps \
+ EEP.eps Emarrows.eps Escher.eps EVplugs.eps \
+ ex00.eps ex01.eps ex02.eps ex03.eps ex04.eps ex05.eps ex06.eps ex08.eps \
+ ex09.eps ex10.eps ex11.eps ex12.eps ex15.eps ex16.eps ex17.eps ex18.eps \
+ ex21.eps exp.eps fet.eps Flow.eps Fuses.eps \
+ Geometry.eps GrayCode.eps graysurf.eps Grounds.eps \
+ Headers.eps Heathkit.eps \
+ I2L.eps Incleps.eps Inductors.eps Jack.eps \
+ lcct.eps Logic.eps Loglog.eps MC.eps Mixer.eps MoreTable.eps \
+ MotorControl.eps Multiplexer.eps \
+ NLG.eps NPDT.eps Nport.eps Opamp.eps Optoiso.eps \
+ Pconn.eps Plate.eps PushPull.eps pwrsupply.eps \
+ Quantum.eps quick.eps \
+ random.eps Rectifiers.eps recycle.eps relaycoil.eps Relay.eps \
+ Resistors.eps Rotbox.eps \
+ Schottky.eps sfg.eps shapes.eps ShiftR.eps Sierpinski.eps Sixpole.eps \
+ Smithchart.eps Sources.eps SQUID.eps Switches.eps \
+ Tgate.eps Three.eps thyristor.eps TTLnand.eps Tubediags.eps \
+ UNO.eps ujt.eps Variable.eps Windings.eps worm.eps Xform.eps XOR.eps \
+ rose.eps
LOCALFIGS = ex21
# Files using boxdims macros:
-BOXDIMS = ex09 Crow Inclpdf Loglog TTLnand Opamp Ttree Windings
+BOXDIMS = ex09 Crow Incleps Loglog TTLnand Opamp Btree Windings
# It is advisable to do `make clean' between test examples.
#---------------------------------------------
@@ -131,7 +130,7 @@ test.pic: test.m4 testlinks
$(M4) $(M4MACROS) tstpsfrag.dim test.m4 > test.pic
testlinks:
- for file in ics.m4 FlowchartDefs.m4 ; do ln -s ../$$file ; done
+ -for file in ics.m4 FlowchartDefs.m4 ; do ln -s ../$$file ; done
touch testlinks
clean:
@@ -143,6 +142,7 @@ clean:
-if /usr/bin/test -f testlinks ; then \
ls -l *.m4 | grep '\->' | \
sed -e 's/^.* \([^ ][^ ]*\) ->.*$$/rm -f \1/' | sh; rm -f testlinks ; fi
+ rm -f FlowchartDefs.m4 ics.m4
for file in $(LOCALFIGS); do rm -f $${file}.m4 ; done
rm -f *.log *.ps *.aux *.mp *.[0-9] *.[0-9][0-9] *.mpx *.eps *.dim *.pic
rm -f core log mpxerr* *links figs.* *.dim dims F_test.* setdim.tex
diff --git a/graphics/circuit_macros/examples/rose.m4 b/graphics/circuit_macros/examples/rose.m4
index b088b3afd4..5e12511ca1 100644
--- a/graphics/circuit_macros/examples/rose.m4
+++ b/graphics/circuit_macros/examples/rose.m4
@@ -1,11 +1,13 @@
.PS
# rose.m4
gen_init
-ifelse(rgbstring(1,1,1),"",
+ifelse(
+ifpstricks(T)`'ifmpost(T)`'ifpostscript(T)`'ifpdf(T)`'ifpgf(T)`'ifsvg(T),,
`This diagram is for PSTricks, postscript, PDF, MetaPost, or SVG',
`
-scale = 1.2
+scale = 1.25
+Rose: [
define(`gold_',`1,0.84,0')
define(`rose',`point_(`$2'); CC: (vec_(`$1',0)); rrad = `$3'
@@ -126,5 +128,40 @@ C: (0,0)
box wid tmp ht tmp at C
] with .sw at 1,1
+] # Rose
+
+Halftone: [
+#.PS
+# SpiralHalftoneSVG.m4
+# https://tex.stackexchange.com/questions/584455/how-to-draw-this-spiral-made-of-circles-in-latex
+# gen_init
+
+ r = 133/255; g = 196/255; b = 100/255
+ skale = 2/3*scale
+ skale = 2.49/4.25
+
+ holerad = 1*skale
+ outerrad = 4.25*skale
+ { circle thick 0.8 rad outerrad+2bp__ at Here outlined rgbstring(r,g,b) }
+
+ define grcirc {circle diam $1 colored rgbstring(r,g,b)}
+
+ npts = 200
+ outercdiam = (outerrad/npts)*twopi_
+ angoffset = -5*pi_/4
+ da = twopi_/npts*10/3
+ radc = outerrad
+ for x = 0 to 1 do {
+ cdiam = outercdiam*radc/outerrad
+ for i=0 to npts-1 do { ang = i/npts*twopi_
+ grcirc(cdiam*abs(ang-pi_)/pi_) at rect_(radc,ang+angoffset) }
+ angoffset += da
+ radc -= cdiam*2/3
+ if radc < holerad then { x = 1 } else { x = 0 }
+ }
+
+#.PE
+ ] with .sw at Rose.se+(0.2,0)
+
')
.PE
diff --git a/graphics/circuit_macros/examples/svg/Makefile b/graphics/circuit_macros/examples/svg/Makefile
deleted file mode 100644
index 0d68dcac3b..0000000000
--- a/graphics/circuit_macros/examples/svg/Makefile
+++ /dev/null
@@ -1,148 +0,0 @@
-LIBDIR = $$HOME/lib
-M4LIBS = svg.m4 SVGconfig.m4
-M4LIBS = svg.m4
-M4 = m4
-# PDFCONVERT = pdf2svg
-PDFCONVERT = dvisvgm
-
-# To process a single file, copy it to test.m4 and type "make tst"
-# to produce tstSVG.html
-
-DPIC = dpic
-#DPIC = $$HOME/dpic/pascal/p2c/ftp/dpic
-#DPIC = ../../../dpic/pascal/p2c/ftp/dpic
-#DPIC = ../../../dpic/bison/dpic
-#DPIC = ../../../dpic/bi*dev/dpic
-
-# To test the Windows executable. Change these as needed for the operating
-# system. NOTE: cscSVG.m4 and Connectors.m4 use awk and sed which
-# do not work at present with the Windows version.
-# M4LIBS = svg.m4 windows.m4
-# DPIC = ../../../dpic/bison/distsrc/Windows/dpic
-
-.SUFFIXES: .pic .svg .m4 .xsvg
-.pic.svg:
- $(DPIC) -v $*.pic > $*.svg
- grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
-.m4.svg:
- m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
- $(DPIC) -v $*.pic > $*.svg
- grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
-.m4.xsvg:
- touch F_$*.dim
- $(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
- $(DPIC) -g $*.pic >> $*.tex
- echo "\documentclass[crop,tikz,multi=false]{standalone}" > F_$*.tex
- echo "\usepackage{boxdims,siunitx,amssymb}" >> F_$*.tex
- echo "\begin{document}" >> F_$*.tex
- echo "\input $*.tex" >> F_$*.tex
- echo "\end{document}" >> F_$*.tex
- pdflatex --quiet F_$*
- $(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
- $(DPIC) -g $*.pic >> $*.tex
- pdflatex --quiet F_$*
- if test "$(PDFCONVERT)" = "pdf2svg" ; then \
- pdf2svg F_$*.pdf $*.xsvg && cp $*.xsvg $*.svg ; \
- else \
- dvisvgm --pdf F_$*.pdf && mv F_$**.svg $*.svg ; cp $*.svg $*.xsvg ; \
- fi
- rm -f F_$**
-
-CCTSVG = \
- AdderSVG.svg AlogixSVG.svg ABlogixSVG.svg AmpTableSVG.svg AntennasSVG.svg \
- AudioSVG.svg \
- BipSVG.svg BtreeSVG.svg ByteSVG.svg ButtonsSVG.svg \
- CanLogicSVG.svg CapacitorsSVG.svg ChipsSVG.svg ConnSVG.svg ConnectorsSVG.svg \
- ContactSVG.svg ContactsSVG.svg \
- CrowSVG.svg CsourceSVG.svg \
- DecoderSVG.svg DemultiplexerSVG.svg DiniSVG.svg DiodesSVG.svg DriveSVG.svg \
- EEPSVG.svg EmarrowsSVG.svg EscherSVG.svg EVplugsSVG.svg \
- FlowSVG.svg FontsSVG.svg FusesSVG.svg \
- GeometrySVG.svg GrayCodeSVG.svg GroundsSVG.svg \
- HeadersSVG.svg HeathkitSVG.svg \
- InclepsSVG.svg InductorsSVG.svg I2LSVG.svg JackSVG.svg \
- LogicSVG.svg LoglogSVG.svg \
- MCSVG.svg MixerSVG.svg MoreTableSVG.svg MotorControlSVG.svg \
- MultiplexerSVG.svg \
- NLGSVG.svg NPDTSVG.svg NportSVG.svg OpampSVG.svg OptoisoSVG.svg \
- PconnSVG.svg PlateSVG.svg PushPullSVG.svg QuantumSVG.svg \
- RectifiersSVG.svg RelaySVG.svg ResistorsSVG.svg RotboxSVG.svg\
- SchottkySVG.svg ShiftRSVG.svg SierpinskiSVG.svg \
- SixpoleSVG.svg SourcesSVG.svg SQUIDSVG.svg SwitchesSVG.svg \
- TTLnandSVG.svg TgateSVG.svg ThreeSVG.svg \
- TubediagsSVG.svg VariableSVG.svg WindingsSVG.svg XformSVG.svg \
- controlSVG.svg cscSVG.svg diamondSVG.svg ex00SVG.svg \
- ex01SVG.svg ex02SVG.svg ex03SVG.svg ex04SVG.svg ex05SVG.svg ex06SVG.svg \
- ex08SVG.svg ex09SVG.svg ex10SVG.svg ex11SVG.svg ex12SVG.svg \
- ex15SVG.svg ex16SVG.svg ex17SVG.svg ex18SVG.svg ex21SVG.svg \
- expSVG.svg fetSVG.svg graysurfSVG.svg keyboardSVG.svg lcctSVG.svg \
- pwrsupplySVG.svg quickSVG.svg randomSVG.svg recycleSVG.svg relaycoilSVG.svg \
- roseSVG.svg sfgSVG.svg shapesSVG.svg SmithchartSVG.svg paletteSVG.svg \
- thyristorSVG.svg ujtSVG.svg UNOSVG.svg wormSVG.svg XORSVG.svg Np.svg
-
-examplesSVG.html: examplesSVG.htmx
- cp ../quick.m4 .
- make $(CCTSVG) quick.xsvg
- Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
- sed -e 's/Version XXX/Version '$$Version'/' examplesSVG.htmx \
- | m4 > examplesSVG.html
-
-SED = sed -e '/^\%/d'
-TEST = test
-tst:
- @if test -f test.pic; then printf "\n\nUsage: make clean tst\n\n"; exit 1;fi
- m4 $(M4LIBS) test.m4 | $(SED) > test.pic
- $(DPIC) -v $(TEST).pic > $(TEST).svg
- m4 $(M4LIBS) $(TEST).m4 | $(SED) > $(TEST).pic
- $(DPIC) -v $(TEST).pic > $(TEST).svg
- grep '<\!-- width' $(TEST).svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' \
- > $(TEST).siz
- make tstSVG.html
-
-test.pic:
- if test -f test.pic ; then echo "Usage: make clean tst" ; fi
- m4 $(M4LIBS) test.m4 | $(SED) > test.pic
- m4 $(M4LIBS) test.m4 | $(SED) > test.pic
-
-tstSVG.html: tstSVG.htmx $(TEST).svg
- Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
- sed -e 's/Version XXX/Version '$$Version'/' \
- -e 's/XXXXX/'$(TEST)'/g' \
- tstSVG.htmx | m4 > tstSVG.html
-# cp tstSVG.html $(TEST) $$HOME/public_html/svg
-
-xst: Incleps.png
-
-# necessary because of rotated text:
-LoglogSVG.svg:
- m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
- $(DPIC) -v $*.pic > $*.svg
- m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
- $(DPIC) -v $*.pic > $*.svg
- grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
-
-ConnectorsSVG.svg cscSVG.svg SmithchartSVG.svg test.svg:
- m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
- $(DPIC) -v $*.pic > $*.svg
- m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
- $(DPIC) -v $*.pic > $*.svg
- grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
-
-InclepsSVG.svg: InclepsSVG.m4
- m4 $(M4LIBS) $*.m4 | sed -e '/^\%/d' > $*.pic
- $(DPIC) -v $*.pic > $*.svg
- $(DPIC) -v $*.pic > $*.svg
-
-Incleps.png:
- (cd ..; make Incleps.png); cp ../Incleps.png .
-
-clean:
- @printf "\n svg clean:\n"
- rm -f *.svg *.dim *.ps *log *.siz *.pic examplesSVG.html Incleps.png
- rm -f tstSVG.html copy_tmp__ quick.m4 quick.xsvg
- rm -f *.otf xx* *png *.pdf *.css *.xml quick.tex
- @printf "\n"
-
-clobber: clean
- (cd dev; make clobber)
- rm -f test.m4
diff --git a/graphics/circuit_macros/examples/venus.m4 b/graphics/circuit_macros/examples/venus.m4
index 8494638258..676cd98143 100644
--- a/graphics/circuit_macros/examples/venus.m4
+++ b/graphics/circuit_macros/examples/venus.m4
@@ -68,6 +68,7 @@ AA:[
BB:[
venus(outerrate=8;innerrate=17;increment=2;innerlength=3.5;changephase=60,T)
- ] with .nw at AA.sw+(0,-0.5)
+ ] at AA
+# ] with .nw at AA.sw+(0,-0.5)
.PE
diff --git a/graphics/circuit_macros/examples/xfig/xfiglib.fig b/graphics/circuit_macros/examples/xfig/xfiglib.fig
index 06a50cdd6d..ce3f289160 100644
--- a/graphics/circuit_macros/examples/xfig/xfiglib.fig
+++ b/graphics/circuit_macros/examples/xfig/xfiglib.fig
@@ -6,7 +6,7 @@ Letter
100.00
Single
-2
-# dpic version 2021.11.01 option -x for Fig 3.2
+# dpic version 2022.12.01 option -x for Fig 3.2
1200 2
6 0 0 3975 5025
6 0 0 3975 5025
diff --git a/graphics/circuit_macros/gpic.m4 b/graphics/circuit_macros/gpic.m4
index 66905f7308..818f37c305 100644
--- a/graphics/circuit_macros/gpic.m4
+++ b/graphics/circuit_macros/gpic.m4
@@ -1,7 +1,7 @@
divert(-1)
gpic.m4 Initialization for gpic.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/lib3D.m4 b/graphics/circuit_macros/lib3D.m4
index 7d813f6e27..6b27b92816 100644
--- a/graphics/circuit_macros/lib3D.m4
+++ b/graphics/circuit_macros/lib3D.m4
@@ -3,7 +3,7 @@ lib3D.m4 Macros for rotation, projection, and other
operations on argument triples representing
3D vectors or colors.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/libSLD.m4 b/graphics/circuit_macros/libSLD.m4
index 75ca43cdce..ff1c01cb96 100644
--- a/graphics/circuit_macros/libSLD.m4
+++ b/graphics/circuit_macros/libSLD.m4
@@ -2,7 +2,7 @@ divert(-1)
libSLD.m4 Draft macros for single-line diagram elements
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/libcct.m4 b/graphics/circuit_macros/libcct.m4
index 5ce00640ac..3a3e1f398a 100644
--- a/graphics/circuit_macros/libcct.m4
+++ b/graphics/circuit_macros/libcct.m4
@@ -1,7 +1,7 @@
divert(-1)
libcct.m4
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -1977,36 +1977,51 @@ define(`m4gen_d',`{dnl
`line from 0.5 between M4_s and M4_e to M4_e \
chop m4dh ifelse(m4a,,/2,m4a,d,/2+m4dv/4) chop 0')
')dnl
- `em_arrows( type,degrees,length)
- type=[N|I|E][D] N=nonionizing, I=ionizing,
- E=simple; D=dot on arrow stem
- degrees = absolute arrow direction'
-define(`em_arrows',`[ define(`m4dnm_',`ifelse($1,,N,$1)')dnl
+ `em_arrows( type|keys,angle,length )
+ type=N|I|E [D|T]
+ N=nonionizing, I=ionizing, E=simple;
+ D=dot on arrow stem; T=anchor tail
+ keys: type=chars as above;
+ lgth=expr;
+ sep=expr; arrow separation
+ angle=degrees; absolute direction'
+define(`em_arrows',`[
+ pushkeys_(`$1',`type:m4nul:N; angle:ifelse(`$2',,135,`($2)')*dtor_')dnl
+ ifelse(m4type,m4nul,
+ `popdef(`m4type')pushdef(`m4type',`ifelse(`$1',,N,`$1')')')dnl
arrowhead = em_arrowhead
- define(`m4_len',
- `ifelse(`$3',,`dimen_*ifinstr(`$1',E,0.25,0.46)',`($3)')')
- ang = ifelse(`$2',,135,`($2)')*dtor_
- sc_draw(`m4dnm_',N,
- `{ A1: arrow m4c_l to rrot_(m4_len,0,ang) wid em_arrowwid ht em_arrowht }
- move to rrot_(0,-em_arrowwid*9/8,ang)
- { A2: arrow m4c_l to rrot_(m4_len,0,ang) wid em_arrowwid ht em_arrowht } ')
- sc_draw(`m4dnm_',I,`m4_rad_arr(A1)
- move to rrot_(0,-em_arrowwid*9/8,ang); m4_rad_arr(A2)')
- sc_draw(`m4dnm_',E,
- `{ A1: line to rrot_(m4_len,0,ang) \
- then to rrot_(m4_len-dimen_/18,dimen_/18,ang) }
- move to rrot_(0,-dimen_/8,ang)
- { A2: line to rrot_(m4_len,0,ang) \
- then to rrot_(m4_len-dimen_/18,dimen_/18,ang) }')
- sc_draw(`m4dnm_',D,`dot(at A1.start); dot(at A2.start)')
+ sc_draw(`m4type',N,
+ `pushkeys_(`$1',lgth:ifelse(`$3',,dimen_*0.46,`$3'); sep:em_arrowwid*9/8)dnl
+ { A1: arrow m4c_l to rrot_(m4lgth,0,m4angle) wid em_arrowwid ht em_arrowht}
+ move to rrot_(0,-m4sep,m4angle)
+ { A2: arrow m4c_l to rrot_(m4lgth,0,m4angle) wid em_arrowwid ht em_arrowht}')
+ sc_draw(`m4type',I,
+ `pushkeys_(`$1',lgth:ifelse(`$3',,dimen_*0.46,`$3'); sep:em_arrowwid*9/8)dnl
+ m4em_serp(A1)
+ move to rrot_(0,-m4sep,m4angle); m4em_serp(A2)')
+ sc_draw(`m4type',E,
+ `pushkeys_(`$1',lgth:ifelse(`$3',,dimen_*0.25,`$3'); sep:dimen_/8)dnl
+ { A1: line to rrot_(m4lgth,0,m4angle) \
+ then to rrot_(m4lgth-dimen_/18,dimen_/18,m4angle) }
+ move to rrot_(0,-m4sep,m4angle)
+ { A2: line to rrot_(m4lgth,0,m4angle) \
+ then to rrot_(m4lgth-dimen_/18,dimen_/18,m4angle) }')
+ sc_draw(`m4type',D,`dot(at A1.start); dot(at A2.start)')
+ sc_draw(`m4type',T,`m4em_anchor(A1.start); m4em_anchor(A2.start)')
Tail: 0.5 between A1.start and A2.start
Head: 0.5 between A1.end and A2.end
- `$4']')
-define(`m4_rad_arr',`{{`$1': line invis to rrot_(m4_len,0,ang)}
- for_(1,3,1,
- `arc ifelse(m4x,2,c)cw to rrot_(dimen_/10,0,ang) \
- with .c at rrot_(dimen_/20,0,ang)')
+ `$4' popdef(`m4typ',`m4type',`m4angle',`m4lgth',`m4sep') ]')
+define(`m4em_serp',`{{`$1': line invis to rrot_(m4lgth,0,m4angle)}
+ for i=1 to (m4lgth-em_arrowht*3/4)/(em_arrowwid) do {
+ if i%2 then {define m4cw {cw}} else {define m4cw {ccw}}
+ arc m4cw to rrot_(em_arrowwid,0,m4angle) \
+ with .c at rrot_((em_arrowwid)/2,0,m4angle) }; round
arrow m4c_l to `$1'.end wid em_arrowwid ht em_arrowht*3/4 }')
+define(`m4em_anchor',`{ move to `$1'
+ {arc cw to rrot_(0,em_arrowwid/2,m4angle) \
+ with .c at rrot_(0,em_arrowwid/4,m4angle)}
+ {arc to rrot_(0,-arrowwid/2,m4angle) \
+ with .c at rrot_(0,-arrowwid/4,m4angle)}}')
`thyristor(linespec,
[SCR|SCS|SUS|SBS|IEC][chars])
diff --git a/graphics/circuit_macros/libgen.m4 b/graphics/circuit_macros/libgen.m4
index c066b7527b..6846782197 100644
--- a/graphics/circuit_macros/libgen.m4
+++ b/graphics/circuit_macros/libgen.m4
@@ -2,7 +2,7 @@ divert(-1)
libgen.m4 Base macros for dpic and gpic diagrams
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -181,10 +181,12 @@ define(`SIdefaults',
')
`Conditionally add mpost code for latex command'
-define(`latexcommand',`command "ifmpost(verbatimtex) `$1' ifmpost(etex)"')
+define(`latexcommand',
+ `iflatex(command `"ifmpost(verbatimtex) patsubst(`$1',^"\|"$) ifmpost(etex)"',
+ `$2')')
define(`m4announceprocessor',`dnl Do not change the format of the next line:
-`#' `$1' Version 10.0: ifelse(m4picprocessor,gpic,`Gpic',
+`#' `$1' Version 10.1: ifelse(m4picprocessor,gpic,`Gpic',
m4postprocessor,pstricks,`PSTricks',
m4postprocessor,pgf,`TikZ PGF',
m4postprocessor,mfpic,`Mfpic',
@@ -943,21 +945,31 @@ define(`f_box',`box ifelse(`$2',,
`invis fill_(1) s_box($1)',
`$1 s_box(shift($@))')')
- `dot(at location,radius,fill)'
+ `dot(at location,radius|keys,fill)
+ keys: rad=expr;
+ circle=attributes; '
define(`dotrad_',(0.02*scale))
-define(`dot',`[define(`m4ft',`ifelse(`$3',,0,(`$3'))')dnl
- ifgpic(`circle rad ifelse(`$2',,`dotrad_',`$2') fill_(m4ft)',
- `ifdef(`r_',`rgbfill(r_+(1-r_)*m4ft, g_+(1-g_)*m4ft, b_+(1-b_)*m4ft,
- circle rad ifelse(`$2',,`dotrad_',`$2'))',
- `circle rad ifelse(`$2',,`dotrad_',`$2') fill_(m4ft)')') dnl
- `$4'] with .c ifelse(`$1',,`at Here',`$1')
- move to last [].c')
- `cross(at location,size); assumes that a
- cross always has manhattan directions'
-define(`cross',`define(`crosswd_',`ifelse(`$2',,`(0.05*scale)',(`$2')/2)')dnl
- [{line from Here+(0,neg_(crosswd_)) to Here+(0,crosswd_)}
- line from Here+(neg_(crosswd_),0) to Here+(crosswd_,0)
- `$3'] with .c ifelse(`$1',,`at Here',`$1'); move to last [].c')
+define(`dot',`[ define(`m4ft',`ifelse(`$3',,0,(`$3'))')dnl
+ pushkeys_(`$2',rad:m4nul:N;circle:fill_(m4ft):N)dnl
+ ifelse(m4rad,m4nul,`popdef(`m4rad')pushdef(`m4rad',
+ `ifinstr(`$2',=,`dotrad_',`ifelse(`$2',,`dotrad_',(`$2'))')')')dnl
+ ifdef(`r_',`rgbfill(r_+(1-r_)*m4ft, g_+(1-g_)*m4ft, b_+(1-b_)*m4ft,
+ circle rad m4rad )',
+ `circle rad m4rad m4circle') dnl
+ `$4' popdef(`m4rad',`m4circle')] ifelse(`$1',,`at Here',`$1')
+ move to last []')
+ `cross(at location,size|keys); assumes that a
+ cross always has manhattan directions
+ keys: size=expr;
+ line=attributes; (line attributes) '
+define(`cross',`[
+ pushkeys_(`$2',size:m4nul:N;line::N)dnl
+ ifelse(m4size,m4nul,`popdef(`m4size')pushdef(`m4size',
+ `ifinstr(`$2',=,(0.05*scale),ifelse(`$2',,(0.05*scale),(`$2')))')')dnl
+ line from (0,-m4size/2) to (0,m4size/2) m4line
+ line from (-m4size/2,0) to (m4size/2,0) m4line
+ `$3' popdef(`m4size',`m4line') ] ifelse(`$1',,`at Here',`$1')
+ move to last []')
`boxcoord(name,xfraction,yfraction)
internal position in a named planar object'
diff --git a/graphics/circuit_macros/liblog.m4 b/graphics/circuit_macros/liblog.m4
index 560ec993a2..d25ba888e7 100644
--- a/graphics/circuit_macros/liblog.m4
+++ b/graphics/circuit_macros/liblog.m4
@@ -1,7 +1,7 @@
divert(-1)
liblog.m4 Logic gates
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/mfpic.m4 b/graphics/circuit_macros/mfpic.m4
index 000e142962..0b54325003 100644
--- a/graphics/circuit_macros/mfpic.m4
+++ b/graphics/circuit_macros/mfpic.m4
@@ -1,7 +1,7 @@
divert(-1)
mfpic.m4 Initialization for mfpic.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/mpost.m4 b/graphics/circuit_macros/mpost.m4
index d812116b63..8afea451bc 100644
--- a/graphics/circuit_macros/mpost.m4
+++ b/graphics/circuit_macros/mpost.m4
@@ -1,7 +1,7 @@
divert(-1)
mpost.m4 Initialization for metapost.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pgf.m4 b/graphics/circuit_macros/pgf.m4
index 0739b80694..20d2cc6a62 100644
--- a/graphics/circuit_macros/pgf.m4
+++ b/graphics/circuit_macros/pgf.m4
@@ -1,7 +1,7 @@
divert(-1)
pgf.m4 Initialization for Tikz-pgf.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/postscript.m4 b/graphics/circuit_macros/postscript.m4
index 19f0a0dbed..e150f62095 100644
--- a/graphics/circuit_macros/postscript.m4
+++ b/graphics/circuit_macros/postscript.m4
@@ -1,7 +1,7 @@
divert(-1)
postscript.m4 Initialization for Postscript output.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/psfrag.m4 b/graphics/circuit_macros/psfrag.m4
index d69f34564e..d35847525e 100644
--- a/graphics/circuit_macros/psfrag.m4
+++ b/graphics/circuit_macros/psfrag.m4
@@ -2,7 +2,7 @@ divert(-1)
psfrag.m4 Initialization for dpic -f processing:
Postscript with psfrag strings
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pstricks.m4 b/graphics/circuit_macros/pstricks.m4
index fd7ba7fbd4..906714005e 100644
--- a/graphics/circuit_macros/pstricks.m4
+++ b/graphics/circuit_macros/pstricks.m4
@@ -1,7 +1,7 @@
divert(-1)
pstricks.m4 Initialization for PSTricks.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/svg.m4 b/graphics/circuit_macros/svg.m4
index 5eb5bebfc6..63dca4a8ce 100644
--- a/graphics/circuit_macros/svg.m4
+++ b/graphics/circuit_macros/svg.m4
@@ -1,7 +1,7 @@
divert(-1)
- svg.m4 Initialization for SVG output.
+ svg.m4 Initialization for svg output.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -277,25 +277,6 @@ define(`svg_rot_init',`
`# svg_rot'_init end
')
-ifelse(0,1,`
-# ifdef(`svg_rot_',,`
-## `svg_rot(degrees,"text" [at position])
-## Rotate text degrees ccw
-## Requires svg_rot_init(filename)
-## which uses both awk and sed.
-## The source must be processed twice by m4 and dpic.'
-# define svg_rot { if retcode != 0 then {$`'2} else {
-# if "$`'1" != "" then { svg_rang = -($`'1) } else { svg_rang = -90 }
-# if svgrot_k != 0 then { svgrot_i +=1
-# command sprintf("<g transform=\"rotate(%g %g %g)\">",svg_rang,\
-# svg_rx[svgrot_i],svg_ry[svgrot_i]) }\
-# else { command sprintf("<g transform=\"rotate(%g)\">",svg_rang) }
-#$`'2
-# command "</g>" } }
-# define(`svg_rot_')
-# ')
-')
-
# ---------------------------------------------------------------------------#
define(`thinlines_',`linethick = 0.4
diff --git a/graphics/circuit_macros/xfig.m4 b/graphics/circuit_macros/xfig.m4
index 222058db9a..6c56dc1fbf 100644
--- a/graphics/circuit_macros/xfig.m4
+++ b/graphics/circuit_macros/xfig.m4
@@ -1,7 +1,7 @@
divert(-1)
xfig.m4 Initialization for xfig.
-* Circuit_macros Version 10.0, copyright (c) 2022 J. D. Aplevich under *
+* Circuit_macros Version 10.1, copyright (c) 2022 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/macros/latex/contrib/kdpcover/DEPENDS.txt b/macros/latex/contrib/kdpcover/DEPENDS.txt
index c4c670d01b..e07680365e 100644
--- a/macros/latex/contrib/kdpcover/DEPENDS.txt
+++ b/macros/latex/contrib/kdpcover/DEPENDS.txt
@@ -6,4 +6,5 @@ hard microtype
hard xcolor
hard setspace
hard geometry
-hard textpos \ No newline at end of file
+hard textpos
+hard etoolbox \ No newline at end of file
diff --git a/macros/latex/contrib/kdpcover/README.md b/macros/latex/contrib/kdpcover/README.md
index a50e85a40a..6563185c6e 100644
--- a/macros/latex/contrib/kdpcover/README.md
+++ b/macros/latex/contrib/kdpcover/README.md
@@ -26,9 +26,6 @@ and then use in the preamble:
\end{document}
```
-The full example and all commands are available in the
-[`kdpcover.tex`](https://github.com/yegor256/kdpcover/blob/master/kdpcover.tex) file.
-
If you want to contribute yourself, make a fork, then create a branch,
then run `make` in the root directory.
It should compile everything without errors. If not, submit an issue and wait.
diff --git a/macros/latex/contrib/kdpcover/kdpcover.dtx b/macros/latex/contrib/kdpcover/kdpcover.dtx
index 0d3fc2b2b0..da1ab39d4d 100644
--- a/macros/latex/contrib/kdpcover/kdpcover.dtx
+++ b/macros/latex/contrib/kdpcover/kdpcover.dtx
@@ -50,13 +50,16 @@
%<class>\NeedsTeXFormat{LaTeX2e}
%<class>\ProvidesClass{kdpcover}
%<*class>
-[02.10.2022 0.4.0 Cover for Kindle Direct Publishing books]
+[2022.11.30 0.5.1 Cover for Kindle Direct Publishing books]
%</class>
%<*driver>
\documentclass{ltxdoc}
\usepackage[tt=false, type1=true]{libertine}
+\usepackage{microtype}
+\AddToHook{env/verbatim/begin}{\microtypesetup{protrusion=false}}
\usepackage{href-ul}
-\raggedbottom
+\usepackage[dtx,margin=0,small]{docshots}
+\usepackage{graphicx}
\PageIndex
\EnableCrossrefs
\CodelineIndex
@@ -69,7 +72,7 @@
%</driver>
% \fi
-% \title{|kdpcover|: \LaTeX{} Package \\ for Amazon Book Covers\thanks{The sources are in GitHub at \href{https://github.com/yegor256/kdpcover}{yegor256/kdpcover}}}
+% \title{\includegraphics[width=0.75in]{yb-book-logo.pdf} \\ |kdpcover|: \LaTeX{} Package \\ for Amazon Book Covers\thanks{The sources are in GitHub at \href{https://github.com/yegor256/kdpcover}{yegor256/kdpcover}}}
% \author{Yegor Bugayenko \\ \texttt{yegor256@gmail.com}}
% \date{\filedate, \fileversion}
%
@@ -78,29 +81,26 @@
% \section{Introduction}
%
+% \changes{v0.5.0}{2022/11/29}{The \texttt{docshots} package is used to render the documentation.}
% This class will render you a book cover, suitable for Kindle Direct Publishing (KDP).
% I use it for \href{https://amzn.to/2WMTXWF}{all my books}.
% This is how you make your \LaTeX{} document look like:
-%\iffalse
-%<*verb>
-%\fi
-\begin{verbatim}
-\documentclass[pages=200,6x9]{kdpcover}
-\begin{document}
-\putSpine{kdpcover, a LaTeX class for KDP books}
-\putVolume{1}
-\putVersion{0.4.0}
-\putPrice{\$0.00}
-\putCopyright{\the\year}{Yegor Bugayenko}
-\putTitle{kdpcover}
-\putAuthor{Yegor Bugayenko}
-\putTLDR{This book will tell you an interesting story!}
-\putPicture{cactus.pdf}
-\end{document}
-\end{verbatim}
-%\iffalse
-%</verb>
-%\fi
+% \docshotPrerequisite{cactus.pdf}
+% \begin{docshot}
+% \documentclass[pages=200,6x9]{kdpcover}
+% \begin{document}
+% \putSpine{kdpcover, a LaTeX class for KDP books}
+% \putVolume{1}
+% \putVersion{0.5.1}
+% \putPrice{\$0.00}
+% \putCopyright{\the\year}{Yegor Bugayenko}
+% \putTitle{kdpcover}
+% \putAuthor{Yegor Bugayenko}
+% \putTLDR{This book will tell you
+% an interesting story!}
+% \putPicture{cactus.pdf}
+% \end{document}
+% \end{docshot}
% The problem this class solves is the necessity to change the size of the
% cover PDF according to the number of pages in the book --- the bigger the book,
@@ -143,7 +143,7 @@
%\fi
% \end{macro}
-% \begin{macro}{9x6}
+% \begin{macro}{6x9}
% With this option you can set the size of the page to 6x9 inches.
% You can also set your own size like this:
%\iffalse
@@ -208,7 +208,7 @@
% name of the author.
% \end{macro}
-% \begin{macro}{\putCopyright}
+% \begin{macro}{\putTitle}
% This one prints the title of the book
% \end{macro}
@@ -221,7 +221,7 @@
% of the entire book.
% \end{macro}
-% \begin{macro}{\putTLDR}
+% \begin{macro}{\putPicture}
% This one prints the front picture. You can use |cactus.pdf|.
% \end{macro}
@@ -236,7 +236,13 @@
% \changes{v0.2.0}{2021/07/14}{Initial version}
-% First, we define a few internal commands:
+% First, we load our parent class:
+% \changes{v0.5.0}{2022/11/29}{The base class is now \texttt{article}.}
+% \begin{macrocode}
+\LoadClass{article}
+% \end{macrocode}
+
+% Then, we define a few internal commands:
% \begin{macrocode}
\makeatletter
\newcommand*\kdp@pages{100}
@@ -436,8 +442,9 @@
\newcommand\putVersion[1]{%
\begin{textblock}{4}[0,1](10,14)%
#1
- \quad
- \iexec{git log -n 1 --pretty='format:\%ad' --date='format:\%e-\%b-\%Y'}
+ \IfFileExists{.git}
+ {\quad\iexec{git log -n 1 --pretty='format:\%ad' --date='format:\%e-\%b-\%Y'}}
+ {}
\end{textblock}%
}
% \end{macrocode}
diff --git a/macros/latex/contrib/kdpcover/kdpcover.ins b/macros/latex/contrib/kdpcover/kdpcover.ins
index e5b5eccbd5..64a5d01106 100644
--- a/macros/latex/contrib/kdpcover/kdpcover.ins
+++ b/macros/latex/contrib/kdpcover/kdpcover.ins
@@ -48,8 +48,8 @@ SOFTWARE.
\endpreamble
\generate{\file{kdpcover.cls}{\from{kdpcover.dtx}{class}}}
\obeyspaces
-\Msg{*** To finish the installation you have to move the ".cls"}
-\Msg{*** file into a directory searched by TeX. To produce the}
-\Msg{*** documentation run the file ".dtx" through LaTeX. If any}
-\Msg{*** questions, submit a new GitHub issue.}
+\Msg{To finish the installation you have to move the ".cls"}
+\Msg{file into a directory searched by TeX. To produce the}
+\Msg{documentation run the file ".dtx" through LaTeX. If any}
+\Msg{questions, submit a new GitHub issue.}
\endbatchfile
diff --git a/macros/latex/contrib/kdpcover/kdpcover.pdf b/macros/latex/contrib/kdpcover/kdpcover.pdf
index a59838ee2a..6280c2cb4e 100644
--- a/macros/latex/contrib/kdpcover/kdpcover.pdf
+++ b/macros/latex/contrib/kdpcover/kdpcover.pdf
Binary files differ
diff --git a/macros/latex/contrib/kdpcover/yb-book-logo.pdf b/macros/latex/contrib/kdpcover/yb-book-logo.pdf
new file mode 100644
index 0000000000..5d49cb9daa
--- /dev/null
+++ b/macros/latex/contrib/kdpcover/yb-book-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathfont/README.txt b/macros/latex/contrib/mathfont/README.txt
index b5a8f78c16..9cffe034ce 100644
--- a/macros/latex/contrib/mathfont/README.txt
+++ b/macros/latex/contrib/mathfont/README.txt
@@ -1,6 +1,6 @@
-LaTeX package mathfont version 2.0 installation information.
+LaTeX package mathfont version 2.1 installation information.
-This file is README.txt from version 2.0 of the free and
+This file is README.txt from version 2.1 of the free and
open-source LaTeX package "mathfont," to be used with the
XeTeX or LuaTeX engines. The package is designed to adapt
text fonts for use in math mode, and if you typeset your
@@ -27,21 +27,22 @@ items:
To install mathfont automatically, update your TeXLive or
MacTeX distribution or use a package manager such as tlmgr.
To install mathfont manually, run mathfont_code.dtx through
-LaTeX and move the derived file mathfont.sty to a directory
-searchable by TeX.
+LaTeX. Doing so will create the file mathfont.sty, and you
+should then move mathfont.sty into a directory searchable
+by TeX.
-Copyright 2018-2021 by Conrad Kosowsky
+Copyright 2018-2022 by Conrad Kosowsky
-This file may be distributed and modified under the terms
-of the LaTeX Public Project License, version 1.3c or any
-later version. The most recent version of this license is
-available online at
+This Work may be used, distributed, and modified under the
+terms of the LaTeX Public Project License, version 1.3c or
+any later version. The most recent version of this license
+is available online at
https://www.latex-project.org/lppl/.
This Work has the LPPL status "maintained," and the current
-maintainer is the package author, Conrad Kosowsky. He can
-be reached at kosowsky.latex@gmail.com. The Work consists
+maintainer is the package author, Conrad Kosowsky. He can
+be reached at kosowsky.latex@gmail.com. The Work consists
of the following items:
(1) the base file:
@@ -73,29 +74,42 @@ of the following items:
(5) all other files created through the configuration
process
+ and
+
(6) the associated README.txt file
-THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS
-OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES
-OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE
-COST FOR ANY REPAIR OR CORRECTION.
-
-BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE
-TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR
-DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU
-AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER
-APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS
-BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-See also the "No Warranty" section of the LaTeX Project
-Public License. In releasing the package author from
-liability, you also release from liability any third
-parties who distribute the software under the terms
-of the LaTeX Project Public License. Derivative works
-based on this package may come with their own license or
-terms of use, and the package author is not responsible
-for any third-party software.
+PLEASE KNOW THAT THIS FREE SOFTWARE IS PROVIDED WITHOUT
+ANY WARRANTY. SPECIFICALLY, THE "NO WARRANTY" SECTION OF
+THE LATEX PROJECT PUBLIC LICENSE STATES THE FOLLOWING:
+
+THERE IS NO WARRANTY FOR THE WORK. EXCEPT WHEN OTHERWISE
+STATED IN WRITING, THE COPYRIGHT HOLDER PROVIDES THE WORK
+`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. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+OF THE WORK IS WITH YOU. SHOULD THE WORK PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
+CORRECTION.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
+TO IN WRITING WILL THE COPYRIGHT HOLDER, OR ANY AUTHOR
+NAMED IN THE COMPONENTS OF THE WORK, OR ANY OTHER PARTY
+WHO MAY DISTRIBUTE AND/OR MODIFY THE WORK AS PERMITTED
+ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+OF ANY USE OF THE WORK OR OUT OF INABILITY TO USE THE WORK
+(INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA, DATA BEING
+RENDERED INACCURATE, OR LOSSES SUSTAINED BY ANYONE AS A
+RESULT OF ANY FAILURE OF THE WORK TO OPERATE WITH ANY
+OTHER PROGRAMS), EVEN IF THE COPYRIGHT HOLDER OR SAID
+AUTHOR OR SAID OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+For more information, see the LaTeX Project Public License.
+Derivative works based on this package may come with their
+own license or terms of use, and the package author is not
+responsible for any third-party software.
The Work does not include any fonts, and the installation
does not contain any font files. The fonts Bona Nova,
diff --git a/macros/latex/contrib/mathfont/mathfont_code.dtx b/macros/latex/contrib/mathfont/mathfont_code.dtx
index 4c2ec76877..cb579ee77c 100644
--- a/macros/latex/contrib/mathfont/mathfont_code.dtx
+++ b/macros/latex/contrib/mathfont/mathfont_code.dtx
@@ -1,7 +1,7 @@
% \iffalse ---!!! FIRST META-COMMENT !!!---
%
%
-% This file is mathfont_code.dtx from version 2.0 of the
+% This file is mathfont_code.dtx from version 2.1 of the
% free and open-source LaTeX package "mathfont," to be
% used with the XeTeX or LuaTeX engines. Running LaTeX on
% mathfont_code.dtx will produce the following files:
@@ -18,7 +18,9 @@
%
% (4) the stand-alone derived files mathfont_doc_patch.tex,
% mathfont_equations.tex, and mathfont_heading.tex,
-% which are used to produce documentation; and
+% which are used to produce documentation;
+%
+% and
%
% (5) a number of other derived files.
%
@@ -31,22 +33,22 @@
% \iffalse ---!!! SECOND META-COMMENT !!!---
%
%
-% This file is from version 2.0 of the free and open-source
+% This file is from version 2.1 of the free and open-source
% LaTeX package "mathfont," to be used with the XeTeX or
% LuaTeX engines. (As of version 2.0, LuaTeX is recommended.)
%
-% Copyright 2018-2021 by Conrad Kosowsky
+% Copyright 2018-2022 by Conrad Kosowsky
%
-% This file may be distributed and modified under the terms
-% of the LaTeX Public Project License, version 1.3c or any
-% later version. The most recent version of this license is
-% available online at
+% This Work may be used, distributed, and modified under the
+% terms of the LaTeX Public Project License, version 1.3c or
+% any later version. The most recent version of this license
+% is available online at
%
% https://www.latex-project.org/lppl/.
%
% This Work has the LPPL status "maintained," and the current
-% maintainer is the package author, Conrad Kosowsky. He can
-% be reached at kosowsky.latex@gmail.com. The Work consists
+% maintainer is the package author, Conrad Kosowsky. He can
+% be reached at kosowsky.latex@gmail.com. The Work consists
% of the following items:
%
% (1) the base file:
@@ -78,37 +80,50 @@
% (5) all other files created through the configuration
% process
%
+% and
+%
% (6) the associated README.txt file
%
-% THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS
-% OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES
-% OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-% IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE
-% COST FOR ANY REPAIR OR CORRECTION.
+% PLEASE KNOW THAT THIS FREE SOFTWARE IS PROVIDED WITHOUT
+% ANY WARRANTY. SPECIFICALLY, THE "NO WARRANTY" SECTION OF
+% THE LATEX PROJECT PUBLIC LICENSE STATES THE FOLLOWING:
+%
+% THERE IS NO WARRANTY FOR THE WORK. EXCEPT WHEN OTHERWISE
+% STATED IN WRITING, THE COPYRIGHT HOLDER PROVIDES THE WORK
+% `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. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+% OF THE WORK IS WITH YOU. SHOULD THE WORK PROVE DEFECTIVE,
+% YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
+% CORRECTION.
%
-% BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE
-% TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR
-% DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU
-% AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER
-% APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS
-% BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+% IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
+% TO IN WRITING WILL THE COPYRIGHT HOLDER, OR ANY AUTHOR
+% NAMED IN THE COMPONENTS OF THE WORK, OR ANY OTHER PARTY
+% WHO MAY DISTRIBUTE AND/OR MODIFY THE WORK AS PERMITTED
+% ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+% SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+% OF ANY USE OF THE WORK OR OUT OF INABILITY TO USE THE WORK
+% (INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA, DATA BEING
+% RENDERED INACCURATE, OR LOSSES SUSTAINED BY ANYONE AS A
+% RESULT OF ANY FAILURE OF THE WORK TO OPERATE WITH ANY
+% OTHER PROGRAMS), EVEN IF THE COPYRIGHT HOLDER OR SAID
+% AUTHOR OR SAID OTHER PARTY HAS BEEN ADVISED OF THE
+% POSSIBILITY OF SUCH DAMAGES.
%
-% See also the "No Warranty" section of the LaTeX Project
-% Public License. In releasing the package author from
-% liability, you also release from liability any third
-% parties who distribute the software under the terms
-% of the LaTeX Project Public License. Derivative works
-% based on this package may come with their own license or
-% terms of use, and the package author is not responsible
-% for any third-party software.
+% For more information, see the Latex Project Public License.
+% Derivative works based on this package may come with their
+% own license or terms of use, and the package author is not
+% responsible for any third-party software.
%
% The Work does not include any fonts, and the installation
-% does not contain any font files. The fonts Bona Nova,
-% Cormorant, Crimson, Kelvinch, Overpass, STIXGeneral, and
-% Typey McTypeface have released under the SIL Open Font
-% License and are used pursuant to that license. The font
-% Roboto has been released under the Apache License and is
-% used pursuant to that license.
+% does not contain any font files. The fonts Bona Nova,
+% Cormorant, Crimson, Kelvinch, Overpass, STIXGeneral, and
+% Typey McTypeface have been released under the SIL Open
+% Font License and are used pursuant to that license. The
+% font Roboto has been released under the Apache License
+% and is used pursuant to that license.
%
% Happy TeXing!
%
@@ -117,7 +132,7 @@
% \iffalse
%
% The installation and driver files are incorporated into
-% mathfont_code.dtx, so we do not need to generate them
+% mathfont_code.dtx, so we do not need to generate them
% separately. The <batchfile> and <driver> tags are for
% reference.
%
@@ -128,16 +143,16 @@
\askforoverwritefalse
\preamble
-This file is from version 2.0 of the free and open-source
+This file is from version 2.1 of the free and open-source
LaTeX package "mathfont," to be used with the XeTeX or
LuaTeX engines. (As of version 2.0, LuaTeX is recommended.)
-Copyright 2018-2021 by Conrad Kosowsky
+Copyright 2018-2022 by Conrad Kosowsky
-This file may be distributed and modified under the terms
-of the LaTeX Public Project License, version 1.3c or any
-later version. The most recent version of this license is
-available online at
+This Work may be used, distributed, and modified under the
+terms of the LaTeX Public Project License, version 1.3c or
+any later version. The most recent version of this license
+is available online at
https://www.latex-project.org/lppl/.
@@ -145,29 +160,40 @@ This Work has the LPPL status "maintained," and the current
maintainer is the package author, Conrad Kosowsky. He can
be reached at kosowsky.latex@gmail.com.
-THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY EXPRESS
-OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES
-OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-IF THE SOFTWARE IS DEFECTIVE, YOU AGREE TO ASSUME THE
-COST FOR ANY REPAIR OR CORRECTION.
-
-BY USING OR DISTRIBUTING THIS SOFTWARE, YOU AGREE
-TO RELEASE THE PACKAGE AUTHOR FROM ANY LIABILITY FOR
-DAMAGES ARISING OUT OF YOUR USE OF THE SOFTWARE. YOU
-AGREE TO DO SO TO THE MAXIMUM EXTENT ALLOWED UNDER
-APPLICABLE LAW AND EVEN IF THE PACKAGE AUTHOR HAS
-BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-See also the "No Warranty" section of the LaTeX Project
-Public License. In releasing the package author from
-liability, you also release from liability any third
-parties who distribute the software under the terms
-of the LaTeX Project Public License. Derivative works
-based on this package may come with their own license or
-terms of use, and the package author is not responsible
-for any third-party software.
-
-For more information, see the mathfont_code.dtx.
+PLEASE KNOW THAT THIS FREE SOFTWARE IS PROVIDED WITHOUT
+ANY WARRANTY. SPECIFICALLY, THE "NO WARRANTY" SECTION OF
+THE LATEX PROJECT PUBLIC LICENSE STATES THE FOLLOWING:
+
+THERE IS NO WARRANTY FOR THE WORK. EXCEPT WHEN OTHERWISE
+STATED IN WRITING, THE COPYRIGHT HOLDER PROVIDES THE WORK
+`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. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
+OF THE WORK IS WITH YOU. SHOULD THE WORK PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR
+CORRECTION.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED
+TO IN WRITING WILL THE COPYRIGHT HOLDER, OR ANY AUTHOR
+NAMED IN THE COMPONENTS OF THE WORK, OR ANY OTHER PARTY
+WHO MAY DISTRIBUTE AND/OR MODIFY THE WORK AS PERMITTED
+ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
+SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+OF ANY USE OF THE WORK OR OUT OF INABILITY TO USE THE WORK
+(INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA, DATA BEING
+RENDERED INACCURATE, OR LOSSES SUSTAINED BY ANYONE AS A
+RESULT OF ANY FAILURE OF THE WORK TO OPERATE WITH ANY
+OTHER PROGRAMS), EVEN IF THE COPYRIGHT HOLDER OR SAID
+AUTHOR OR SAID OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+For more information, see the LaTeX Project Public License.
+Derivative works based on this package may come with their
+own license or terms of use, and the package author is not
+responsible for any third-party software.
+
+For more information, see mathfont_code.dtx.
Happy TeXing!
@@ -210,6 +236,8 @@ Happy TeXing!
\c@topnumber\@ne
\columnsep=20pt
\MacroIndent=1.32em
+\AtBeginDocument{%
+ \baselineskip=\the\baselineskip plus 0.3pt minus 0.3pt\relax}
\let\index@prologue\relax
\EnableCrossrefs\CodelineIndex
\begin{document}
@@ -242,12 +270,12 @@ Happy TeXing!
% \fi
%
%
-% \CheckSum{6965}
+% \CheckSum{6609}
% \init@checksum
%
%
% \makeatother\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
+% {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
% Digits \0\1\2\3\4\5\6\7\8\9
% Exclamation \! Double quote \" Hash (number) \#
@@ -293,13 +321,20 @@ Happy TeXing!
% \M@Decl@reF@milytrue,\M@Decl@reF@milyfalse,\itdefault,\shapedefault,%
% \mddefault,\bfdefault,\E@sterEggDecl@redtrue,\detokenize,\@ifnextchar,%
% \@next,\@suboptionpresenttrue,\@suboptionpresentfalse,\@break@tfor,%
-% \M@adjust@fonttrue,\M@adjust@fontfalse,\M@fromCharmFiletrue,\M@fromCharmFilefalse,%
-% \M@arg@goodtrue,\M@arg@goodfalse,\M@Noluaotfloadtrue,\M@Noluaotfloadfalse,%
-% \M@XeTeXLuaTeXtrue,\ifcsname,\ifdefined,\TU,\",\@@DeclareSymbolFont,%
-% \@@set@mathaccent,\@@set@mathchar,\@@set@mathsymbol,\@expandedtwoargs,%
-% \@spaces,\@tempswatrue,\@tempswafalse,\@iftempswa,\@tempbase,\@tempfeatures,
-% \copy,\e@mathgroup@top,\endlinechar,\everyeof,\globaldefs,\m@th,\newbox,\newread,%
-% \newmuskip,\number,\setmainfont,\zap@space,\setbox,\clap,\hss,\ht,\wd,\dp,\raise}
+% \M@adjust@fonttrue,\M@adjust@fontfalse,\M@fromCharmFiletrue,%
+% \M@fromCharmFilefalse,\M@arg@goodtrue,\M@arg@goodfalse,\M@Noluaotfloadtrue,%
+% \M@Noluaotfloadfalse,\M@XeTeXLuaTeXtrue,\ifcsname,\ifdefined,\TU,\",%
+% \@@DeclareSymbolFont,\@@set@mathaccent,\@@set@mathchar,\@@set@mathsymbol,%
+% \@expandedtwoargs,\@spaces,\@tempswatrue,\@tempswafalse,\@iftempswa,%
+% \@tempbase,\@tempfeatures,\copy,\e@mathgroup@top,\endlinechar,\everyeof,%
+% \globaldefs,\m@th,\newbox,\newread,\newmuskip,\number,\setmainfont,%
+% \zap@space,\setbox,\clap,\hss,\ht,\wd,\dp,\raise,\M@arrows@font,%
+% \M@delimiters@font,\M@extbigops@font,\M@extsymbols@font,\M@symbols@font,%
+% \M@greekupper@font,\M@greeklower@font,\M@agreekupper@font,%
+% \M@agreeklower@font,\M@bigops@font,\M@upper@font,\M@lower@font,%
+% \M@radical@font,\M@diacritics@font,\M@cyrillicupper@font,%
+% \M@cyrilliclower@font,\M@hebrew@font,\Umathcode,\EasterEggUpdate,%
+% \@firstofone,\if@arg@good,\M@f@ntn@me,\M@f@ntn@meb@se,\dimen@}
% \DoNotIndex{\cyrA,\cyrBe,\cyrVe,\cyrGhe,\cyrDe,%
% \cyrIe,\cyrZhe,\cyrZe,\cyrI,\cyrKa,\cyrEl,%
% \cyrEm,\cyrEn,\cyrO,\cyrPe,\cyrEr,\cyrEs,%
@@ -312,53 +347,6 @@ Happy TeXing!
% \cyrha,\cyrtse,\cyrche,\cyrsha,\cyrshcha,%
% \cyrhard,\cyryeru,\cyrsoft,\cyre,\cyryu,%
% \cyrya,\cyrvari}
-% \DoNotIndex{\M@bb@A,\M@bb@B,\M@bb@C,\M@bb@D,\M@bb@E,%
-% \M@bb@F,\M@bb@G,\M@bb@H,\M@bb@I,\M@bb@J,\M@bb@K,%
-% \M@bb@L,\M@bb@M,\M@bb@N,\M@bb@O,\M@bb@P,\M@bb@Q,%
-% \M@bb@R,\M@bb@S,\M@bb@T,\M@bb@U,\M@bb@V,\M@bb@W,%
-% \M@bb@X,\M@bb@Y,\M@bb@Z,\M@bb@a,\M@bb@b,\M@bb@c,%
-% \M@bb@d,\M@bb@e,\M@bb@f,\M@bb@g,\M@bb@h,\M@bb@i,%
-% \M@bb@j,\M@bb@k,\M@bb@l,\M@bb@m,\M@bb@n,\M@bb@o,%
-% \M@bb@p,\M@bb@q,\M@bb@r,\M@bb@s,\M@bb@t,\M@bb@u,%
-% \M@bb@v,\M@bb@w,\M@bb@x,\M@bb@y,\M@bb@z}
-% \DoNotIndex{\M@cal@A,\M@cal@B,\M@cal@C,\M@cal@D,\M@cal@E,%
-% \M@cal@F,\M@cal@G,\M@cal@H,\M@cal@I,\M@cal@J,\M@cal@K,%
-% \M@cal@L,\M@cal@M,\M@cal@N,\M@cal@O,\M@cal@P,\M@cal@Q,%
-% \M@cal@R,\M@cal@S,\M@cal@T,\M@cal@U,\M@cal@V,\M@cal@W,%
-% \M@cal@X,\M@cal@Y,\M@cal@Z,\M@cal@a,\M@cal@b,\M@cal@c,%
-% \M@cal@d,\M@cal@e,\M@cal@f,\M@cal@g,\M@cal@h,\M@cal@i,%
-% \M@cal@j,\M@cal@k,\M@cal@l,\M@cal@m,\M@cal@n,\M@cal@o,%
-% \M@cal@p,\M@cal@q,\M@cal@r,\M@cal@s,\M@cal@t,\M@cal@u,%
-% \M@cal@v,\M@cal@w,\M@cal@x,\M@cal@y,\M@cal@z}
-% \DoNotIndex{\M@frak@A,\M@frak@B,\M@frak@C,\M@frak@D,\M@frak@E,%
-% \M@frak@F,\M@frak@G,\M@frak@H,\M@frak@I,\M@frak@J,\M@frak@K,%
-% \M@frak@L,\M@frak@M,\M@frak@N,\M@frak@O,\M@frak@P,\M@frak@Q,%
-% \M@frak@R,\M@frak@S,\M@frak@T,\M@frak@U,\M@frak@V,\M@frak@W,%
-% \M@frak@X,\M@frak@Y,\M@frak@Z,\M@frak@a,\M@frak@b,\M@frak@c,%
-% \M@frak@d,\M@frak@e,\M@frak@f,\M@frak@g,\M@frak@h,\M@frak@i,%
-% \M@frak@j,\M@frak@k,\M@frak@l,\M@frak@m,\M@frak@n,\M@frak@o,%
-% \M@frak@p,\M@frak@q,\M@frak@r,\M@frak@s,\M@frak@t,\M@frak@u,%
-% \M@frak@v,\M@frak@w,\M@frak@x,\M@frak@y,\M@frak@z}
-% \DoNotIndex{\M@bcal@A,\M@bcal@B,\M@bcal@C,\M@bcal@D,\M@bcal@E,%
-% \M@bcal@F\M@bcal@G,\M@bcal@H,\M@bcal@I,\M@bcal@J,\M@bcal@K,%
-% \M@bcal@L\M@bcal@M,\M@bcal@N,\M@bcal@O,\M@bcal@P,\M@bcal@Q,%
-% \M@bcal@R,\M@bcal@S,\M@bcal@T,\M@bcal@U,\M@bcal@V,\M@bcal@W,%
-% \M@bcal@X,\M@bcal@Y,\M@bcal@Z,\M@bcal@a,\M@bcal@b,\M@bcal@c,%
-% \M@bcal@d,\M@bcal@e,\M@bcal@f,\M@bcal@g,\M@bcal@h,\M@bcal@i,%
-% \M@bcal@j,\M@bcal@k,\M@bcal@l,\M@bcal@m,\M@bcal@n,\M@bcal@o,%
-% \M@bcal@p,\M@bcal@q,\M@bcal@r,\M@bcal@s,\M@bcal@t,\M@bcal@u,%
-% \M@bcal@v,\M@bcal@w,\M@bcal@x,\M@bcal@y,\M@bcal@z}
-% \DoNotIndex{\M@bfrak@A,\M@bfrak@B,\M@bfrak@C,\M@bfrak@D,%
-% \M@bfrak@E,\M@bfrak@F,\M@bfrak@G,\M@bfrak@H,\M@bfrak@I,%
-% \M@bfrak@J,\M@bfrak@K,\M@bfrak@L,\M@bfrak@M,\M@bfrak@N,%
-% \M@bfrak@O,\M@bfrak@P,\M@bfrak@Q,\M@bfrak@R,\M@bfrak@S,%
-% \M@bfrak@T,\M@bfrak@U,\M@bfrak@V,\M@bfrak@W,\M@bfrak@X,%
-% \M@bfrak@Y,\M@bfrak@Z,\M@bfrak@a,\M@bfrak@b,\M@bfrak@c,%
-% \M@bfrak@d,\M@bfrak@e,\M@bfrak@f,\M@bfrak@g,\M@bfrak@h,%
-% \M@bfrak@i,\M@bfrak@j,\M@bfrak@k,\M@bfrak@l,\M@bfrak@m,%
-% \M@bfrak@n,\M@bfrak@o,\M@bfrak@p,\M@bfrak@q,\M@bfrak@r,%
-% \M@bfrak@s,\M@bfrak@t,\M@bfrak@u,\M@bfrak@v,\M@bfrak@w,%
-% \M@bfrak@x,\M@bfrak@y,\M@bfrak@z}
%
%
% \DoNotIndexMain{\@@set@mathchar,\@@set@mathsymbol,%
@@ -384,14 +372,14 @@ Happy TeXing!
% \@frakshape,\@bcalshape,\@bfrakshape}
%
%
-% \noindent This file documents the code for the \textsf{mathfont} package. It is not a user guide! If you are looking for instructions on how to use \textsf{mathfont} in your document, see |mathfont_user_guide.pdf|, which is included with the \textsf{mathfont} installation and is available on \textsc{ctan}. See also the other |pdf| documentation files for \textsf{mathfont}. Section~1 of this document begins with the implementation basics, including package declaration and package options. Section~2 deals with errors and messaging, and section~3 provides package default settings. Section~4 contains the optional-argument parser for |\mathfont|, and section~5 contains the fontloader. Section 6 documents the code for the |\mathfont| command itself. In section~7, the package initializes the commands for letterlike symbols, and section~8 contains the code for local font changes. Section~9 contains miscellaneous material. Sections~10--12 contain the Lua code to modify font objects at loading, and section~13 lists the unicode hex values used in symbol declaration. Version history and code index appear at the end of the document.
+% \noindent This file documents the code for the \textsf{mathfont} package. It is not a user guide! If you are looking for instructions on how to use \textsf{mathfont} in your document, see |mathfont_user_guide.pdf|, which is included with the \textsf{mathfont} installation and is available on \textsc{ctan}. See also the other |pdf| documentation files for \textsf{mathfont}. Section~1 of this document begins with the implementation basics, including package declaration and package options. Section~2 deals with errors and messaging, and section~3 provides package default settings. Section~4 contains fontloader, and section~5 contains the optional-argument parser for |\mathfont|. Section 6 documents the code for the |\mathfont| command itself. Section~7 contains the code for local font changes. Section~8 contains miscellaneous material. Sections~9--11 contain the Lua code to modify font objects at loading, and section~12 lists the unicode hex values used in symbol declaration. Version history and code index appear at the end of the document.
%
% \section{Implementation Basics}
%
% First and foremost, the package needs to declare itself.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{mathfont}[2021/12/28 v. 2.0 Package mathfont]
+\ProvidesPackage{mathfont}[2022/11/30 v. 2.1 Package mathfont]
% \end{macrocode}
% We specify conditionals that we will use later in handling options and setup.
% \begin{macrocode}
@@ -401,7 +389,7 @@ Happy TeXing!
\newif\ifM@font@loaded % load mathfont with font specified?
\newif\ifE@sterEggDecl@red % already did easter egg?
% \end{macrocode}
-% We disable the eighteen user-level commands. If \textsf{mathfont} runs normally, it will overwrite these ``bad'' definitions later, but if it throws one of its two fatal errors, it will |\endinput| while the user-level commands are error messages. That way the commands don't do anything in the user's document, and the user gets information on why not. The bad definitions gobble their original arguments to avoid a ``missing |\begin{document}|'' error.\indexpage{invalid command error}
+% We disable the twenty user-level commands. If \textsf{mathfont} runs normally, it will overwrite these ``bad'' definitions later, but if it throws one of its two fatal errors, it will |\endinput| while the user-level commands are error messages. That way the commands don't do anything in the user's document, and the user gets information on why not. The bad definitions gobble their original arguments to avoid a ``missing |\begin{document}|'' error.\indexpage{invalid command}
% \begin{macrocode}
\long\def\@gobbletwo@brackets[#1]#2{}
\def\M@NoMathfontError#1{\PackageError{mathfont}
@@ -410,25 +398,33 @@ Happy TeXing!
{Your command was ignored. I couldn't\MessageBreak
load mathfont, so I never defined this\MessageBreak
control sequence.}}
-\def\mathfont{\M@NoMathfontError\mathfont
+\protected\def\mathfont{\M@NoMathfontError\mathfont
+ \@ifnextchar[\@gobbletwo@brackets\@gobble}
+\protected\def\setfont{\M@NoMathfontError\setfont\@gobble}
+\protected\def\mathconstantsfont{\M@NoMathfontError\mathconstantsfont
\@ifnextchar[\@gobbletwo@brackets\@gobble}
-\def\mathconstantsfont{\M@NoMathfontError\mathconstantsfont\@gobble}
-\def\setfont{\M@NoMathfontError\setfont\@gobble}
-\def\newmathrm{\M@NoMathfontError\newmathrm\@gobbletwo}
-\def\newmathit{\M@NoMathfontError\newmathit\@gobbletwo}
-\def\newmathbf{\M@NoMathfontError\newmathbf\@gobbletwo}
-\def\newmathbfit{\M@NoMathfontError\newmathbf\@gobbletwo}
-\def\newmathsc{\M@NoMathfontError\newmathsc\@gobbletwo}
-\def\newmathscit{\M@NoMathfontError\newmathscit\@gobbletwo}
-\def\newmathbfsc{\M@NoMathfontError\newmathbfsc\@gobbletwo}
-\def\newmathbfscit{\M@NoMathfontError\newmathbfscit\@gobbletwo}
-\def\newmathfontcommand{\M@NoMathfontError\newmathfontcommand\@gobblefour}
-\def\RuleThicknessFactor{\M@NoMathfontError\RuleThicknessFactor\@gobble}
-\def\IntegralItalicFactor{\M@NoMathfontError\IntegralItalicFactor\@gobble}
-\def\SurdVerticalFactor{\M@NoMathfontError\SurdVerticalFactor\@gobble}
-\def\SurdHorizontalFactor{\M@NoMathfontError\SurdHorizontalFactor\@gobble}
-\def\CharmLine{\M@NoMathfontError\CharmLine\@gobble}
-\def\CharmFile{\M@NoMathfontError\CharmFile\@gobble}
+\protected\def\newmathrm{\M@NoMathfontError\newmathrm\@gobbletwo}
+\protected\def\newmathit{\M@NoMathfontError\newmathit\@gobbletwo}
+\protected\def\newmathbf{\M@NoMathfontError\newmathbf\@gobbletwo}
+\protected\def\newmathbfit{\M@NoMathfontError\newmathbf\@gobbletwo}
+\protected\def\newmathbold{\M@NoMathfontError\newmathbold\@gobbletwo}
+\protected\def\newmathboldit{\M@NoMathfontError\newmathbold\@gobbletwo}
+\protected\def\newmathsc{\M@NoMathfontError\newmathsc\@gobbletwo}
+\protected\def\newmathscit{\M@NoMathfontError\newmathscit\@gobbletwo}
+\protected\def\newmathbfsc{\M@NoMathfontError\newmathbfsc\@gobbletwo}
+\protected\def\newmathbfscit{\M@NoMathfontError\newmathbfscit\@gobbletwo}
+\protected\def\newmathfontcommand{\M@NoMathfontError\newmathfontcommand
+ \@gobblefour}
+\protected\def\RuleThicknessFactor{\M@NoMathfontError\RuleThicknessFactor
+ \@gobble}
+\protected\def\IntegralItalicFactor{\M@NoMathfontError\IntegralItalicFactor
+ \@gobble}
+\protected\def\SurdVerticalFactor{\M@NoMathfontError\SurdVerticalFactor
+ \@gobble}
+\protected\def\SurdHorizontalFactor{\M@NoMathfontError\SurdHorizontalFactor
+ \@gobble}
+\protected\def\CharmLine{\M@NoMathfontError\CharmLine\@gobble}
+\protected\def\CharmFile{\M@NoMathfontError\CharmFile\@gobble}
% \end{macrocode}
% Check that the engine is \XeTeX\ or Lua\TeX. If yes, set |\ifM@XeTeXLuaTeX| to true. (Otherwise the conditional will be false by default.)
% \begin{macrocode}
@@ -439,7 +435,7 @@ Happy TeXing!
\M@XeTeXLuaTeXtrue
\fi
% \end{macrocode}
-% The package can raise two fatal errors: one if the engine is not \XeTeX\ or Lua\TeX (and cannot load OpenType fonts) and one if \TeX\ cannot find the \textsf{luaotfload} package. In this case, the package will stop loading, so we want a particularly conspicuous error message.
+% The package can raise two fatal errors: one if the engine is not \XeTeX\ or Lua\TeX\ (and cannot load OpenType fonts) and one if \TeX\ cannot find the \textsf{luaotfload} package. In this case, the package will stop loading, so we want a particularly conspicuous error message.
%
% The error message itself is organized as follows. For each message, we check the appropriate conditional to determine if we need to raise the error. If yes, we change |+| to active and define it to be equal to a space character. We use |+| to print multiple spaces inside the error message, and we put the catcode change inside a group to keep it local.\indexpage{catcode changes} We define a |\GenericError| inside a macro and then call the macro for a cleaner error message. The |\@gobbletwo| eats the extra period and return that \LaTeX\ adds to the error message. Notice that we |\endgroup| immediately after issuing the error\textemdash this is because we need |\M@NoFontspecError| to both tokenize its definition and then evaluate while |+| has catcode 13. Otherwise, \TeX\ will issue an |\inaccessible| error. However, we want |\AtBeginDocument| and |\endinput| outside the group. The |\expandafter| means that we expand the final |\fi| before |\endinput|, which balances the original conditional.\indexpage{unable to load}\indexpage{missing xetex or luatex=missing \XeTeX\ or Lua\TeX}
% \begin{macrocode}
@@ -471,7 +467,7 @@ Happy TeXing!
with one of those two engines.^^J}}
\M@XeTeXLuaTeXError
\endgroup
- \AtEndOfPackage{\typeout{Package mathfont failed to load\on@line.}}
+ \AtEndOfPackage{\typeout{:: mathfont :: Failed to load\on@line.}}
\expandafter\endinput % we should \endinput with a balanced conditional
\fi
% \end{macrocode}
@@ -489,7 +485,7 @@ Happy TeXing!
work with XeTeX}
\fi
% \end{macrocode}
-% If the engine is Lua\TeX, we absolutely must have \textsf{luaotfload} because Lua\TeX\ needs this package to load OpenType fonts. Before anything else, \TeX\ should check whether it can find |luaotfload.sty| and stop reading in \textsf{mathfont} if it cannot. Same command structure as before. Newer \LaTeX\ installations try to load \textsf{luaotfload} as part of the format, but it never hurts to double check.\indexpage{could not load}\indexpage{cannot not find the file luaotfloadsty=cannot find the file \texttt{luaotfload}}
+% If the engine is Lua\TeX, we absolutely must have \textsf{luaotfload} because Lua\TeX\ needs this package to load OpenType fonts. Before anything else, \TeX\ should check whether it can find |luaotfload.sty| and stop reading in \textsf{mathfont} if it cannot. Same command structure as before. Newer \LaTeX\ installations try to load \textsf{luaotfload} as part of the format, but it never hurts to double check.\indexpage{unable to load}\indexpage{cannot not find the file luaotfloadsty=cannot find the file \texttt{luaotfload}}
% \begin{macrocode}
\ifM@Noluaotfload % false by default; true if LuaTeX AND no luaotfload.sty
\begingroup
@@ -523,11 +519,11 @@ Happy TeXing!
XeLaTeX.^^J}}
\M@NoluaotfloadError
\endgroup
- \AtEndOfPackage{\typeout{Package mathfont failed to load\on@line.}}
+ \AtEndOfPackage{\typeout{:: mathfont :: Failed to load\on@line.}}
\expandafter\endinput % we should \endinput with a balanced conditional
\fi
% \end{macrocode}
-% Some package options are now deprecated, specifically |packages|, |operators|, and |no-operators|. In the case of these options, the command |\M@Optiondeprecated| issues an error and tells the user the appropriate alternative.\indexpage{deprecated} We check for \textsf{atveryend} to use with the easter egg.
+% Some package options are now deprecated, specifically |packages|, |operators|, and |no-|\penalty0|operators|. In the case of these options, the command |\M@Optiondeprecated| issues an error and tells the user the appropriate alternative.\indexpage{deprecated} We check for \textsf{atveryend} to use with the easter egg.
% \begin{macrocode}
\def\M@Optiondeprecated#1#2{\PackageError{mathfont}
{Option "#1" deprecated}
@@ -574,7 +570,7 @@ Happy TeXing!
happy day! Clap your hands,^^J%
and be glad your hovercraft^^J%
isn't full of eels!^^J}
- \def\E@sterEggUpd@te{Got it :) }
+ \def\E@sterEggUpd@te{Got it :)\@gobble}
\EasterEggUpdate}
\fi}% my easter egg :)
% \end{macrocode}
@@ -583,7 +579,7 @@ Happy TeXing!
\DeclareOption{adjust}{\M@adjust@fonttrue}
\DeclareOption{no-adjust}{\M@adjust@fontfalse}
% \end{macrocode}
-% Interpret an unknown option as a font name and save it for loading. In this case, the package sets |\ifM@font@loaded| to true and stores the font name in |\M@font@load|.\?\ifM@font@loaded
+% Interpret an unknown option as a font name and save it for loading. In this case, the package sets |\ifM@font@loaded| to true and stores the font name in |\M@font@load|.
% \begin{macrocode}
\DeclareOption*{\M@font@loadedtrue\edef\M@font@load{\CurrentOption}}
\ProcessOptions*
@@ -620,31 +616,30 @@ Happy TeXing!
%
% \section{Errors and Messaging}
%
-% Some error and informational messages. Table~1 lists all macros defined in this section along with a brief description of their use. We begin with general informational messages.\indexpage{log file=\texttt{log} file}\indexpage{Package mathfont Info}\indexpage{I already set the font}
+% Some error and informational messages. Table~1 lists all macros defined in this section along with a brief description of their use. We begin with general informational messages.\indexpage{Package mathfont Info}
%
% \begin{figure}[b]
% \def\vrb#1{\texttt{\string#1}}
-% \centerline{\bfseries Table 1: Different Warnings and Errors and Their Uses\strut}
+% \centerline{\bfseries Table 1: Various Messages and Errors and Their Uses\strut}
% \begin{tabularx}\textwidth{lX}
% \toprule
% Command & Use\\\midrule
-% \vrb\M@CommandInitializeInfo & Initialize alphanumeric font-change commands\\
-% \vrb\M@FontChangeInfo & NFSS font information\\
-% \vrb\M@NewFontCommandInfo & Initialize local font-change commands\\\midrule
-% \vrb\M@CharacterArgWarning & Bad characters for alphanumeric font changes\\
+% \vrb\M@FontChangeInfo & Use a symbol font for some characters\\
+% \vrb\M@NewFontCommandInfo & Declare new alphanumeric font-change command\\
+% \vrb\M@SymbolFontInfo & Declare new symbol font\\\midrule
% \vrb\M@CharsSetWarning & Warning when calling \vrb\mathfont\ multiple times for same keyword\\
-% \vrb\M@CSArgWarning & Bad characters for alphanumeric font changes\\
-% \vrb\M@DeprecatedWarning & Warning for certain deprecated macros\\
-% \vrb\M@DoubleArgWarning & Bad characters for alphanumeric font changes\\
-% \vrb\M@NesgedArgWarning & Bad characters for alphanumeric font changes\\\midrule
-% \vrb\M@DoubleArgError & Bad argument provided to be font-change macro\\
-% \vrb\M@HModeError & Alphanumeric font-change command used outside math mode\\
-% \vrb\M@InternalsRestoredError & Called by \vrb\mathfont\ after restoring kernel\\
+% \vrb\M@InternalsRestoredError & User called \vrb\mathfont\ after restoring kernel\\
% \vrb\M@InvalidOptionError & Bad option for \vrb\mathfont\\
% \vrb\M@InvalidSupoptionError & Bad suboption for \vrb\mathfont\\
-% \vrb\M@MissingControlSequenceError & No macro provided to be font-change command\\
% \vrb\M@MissingOptionError & Missing an option for \vrb\mathfont\\
-% \vrb\M@MissingSuboptionError & Missing suboption for \vrb\mathfont\\
+% \vrb\M@MissingSuboptionError & Missing suboption for \vrb\mathfont\\\midrule
+% \vrb\M@BadMathConstantsFontError & Argument not previously fed to \vrb\mathfont\\
+% \vrb\M@BadMathConstantsFontTypeError & Argument not ``upright'' or ``italic''\\
+% \vrb\M@LuaTeXOnlyWarning & User called \vrb\mathcontsantsfont\ in \XeTeX\\\midrule
+% \vrb\M@DeprecatedWarning & Warning for certain deprecated macros\\
+% \vrb\M@DoubleArgError & Gave multiple tokens to be the font-change macro\\
+% \vrb\M@HModeError & Font-change command used outside math mode\\
+% \vrb\M@MissingControlSequenceError & No macro provided to be font-change command\\
% \vrb\M@NoFontspecFamilyError & Improper option \texttt{fontspec} for \vrb\mathfont\\
% \vrb\M@NoFontspecError & Option \texttt{fontspec} for \vrb\mathfont\ declared without having loaded \textsf{fontspec}\\\midrule
% \vrb\M@BadIntegerError & Font metric adjustment value was not an integer\\
@@ -656,17 +651,16 @@ Happy TeXing!
% \end{figure}
%
% \begin{macrocode}
-\def\M@FontChangeInfo#1#2#3#4#5{\wlog{Package mathfont Info:
- Setting #1 chars to #2!^^J%
- NFSS Family Name: #3^^J%
- Series/Shape Info: #4^^J%
- Symbol Font Name: #5^^J}}
-\def\M@CommandInitializeInfo#1{\wlog{Package mathfont Info: Initializing
- \noexpand#1 font-change command on line \the\inputlineno.}}
-\def\M@NewFontCommandInfo#1#2#3#4#5{\wlog{Package mathfont Info: Creating
- math-alphabet command^^J%
- \string#1 using #2 on line \the\inputlineno!^^J%
- NFSS Family Name: #3^^J%
+\def\M@SymbolFontInfo#1#2#3#4{\wlog{^^JPackage mathfont Info:
+ Declaring new symbol font from #1!^^J%
+ NFSS Family Name: \space#2^^J%
+ Series/Shape Info: #3^^J%
+ Symbol Font Name: \space#4^^J}}
+\def\M@FontChangeInfo#1#2{\wlog{Package mathfont Info:
+ Setting #1 chars to #2!}}
+\def\M@NewFontCommandInfo#1#2#3#4#5{\wlog{^^JPackage mathfont Info:
+ Creating \string#1 using #2!^^J%
+ NFSS Family Name: \space#3^^J%
Series/Shape Info: #4/#5^^J}}
\def\M@CharsSetWarning#1{\PackageWarning{mathfont}
{I already set the font for\MessageBreak
@@ -674,30 +668,9 @@ Happy TeXing!
this option for \string\mathfont\space
on line \the\inputlineno\@gobble}}
% \end{macrocode}
+% \indexpage{I already set the font}
% Warnings for the |\mathbb|, etc.\ commands.
-% \indexpage{Im ignoring the multiple characters=I'm ignoring the multiple characters}
-% \indexpage{Im ingoring the nested argument=I'm ignoring the nested argument}
-% \indexpage{Im ignoring the unexpandable=I'm ignoring the unexpandable}
-% \begin{macrocode}
-\def\M@DoubleArgWarning#1#2{\PackageWarning{mathfont}
- {I'm ignoring the multiple characters\MessageBreak
- "#2" that are grouped together in\MessageBreak
- the argument of your \string#1\space command\MessageBreak}}
-\def\M@NestedArgWarning#1#2{\PackageWarning{mathfont}
- {I'm ignoring the nested argument\MessageBreak
- "#2" from your \string#1\MessageBreak
- command}}
-\def\M@CSArgWarning#1#2{\PackageWarning{mathfont}
- {I'm ignoring the unexpandable control\MessageBreak
- sequence \string#2\space that appears in the\MessageBreak
- argument of your \string#1\space command\MessageBreak}}
-\def\M@CharacterArgWarning#1#2{\PackageWarning{mathfont}
- {I'm ignoring the "#2" in the\MessageBreak
- argument of your \string#1\MessageBreak
- command because it isn't a\MessageBreak
- letter or digit}}
-% \end{macrocode}
-% Warning for deprecated commands.\indexpage{Your command is deprecated}
+% Warning for deprecated commands.\indexpage{deprecated}
% \begin{macrocode}
\def\M@DeprecatedWarning#1#2{\PackageWarning{mathfont}
{Your \string#1\space command on\MessageBreak
@@ -705,11 +678,12 @@ Happy TeXing!
replaced it with \string#2\@gobble}}
% \end{macrocode}
% Error messages associated with |\mathfont|.
-% \indexpage{Invalid option for mathfont=Invalid Option for \texttt{\char`\\mathfont}}
-% \indexpage{Invalid suboption for mathfont=Invalid Suboption for \texttt{\char`\\mathfont}}
-% \indexpage{Missing option for mathfont=Missing Option for \texttt{\char`\\mathfont}}
-% \indexpage{Missing suboption for mathfont=Missing Suboption for \texttt{\char`\\mathfont}}
-% \indexpage{No previous font}\indexpage{Missing package fontspec=Missing package \texttt{fontspec}}
+% \indexpage{invalid option for mathfont=Invalid Option for \texttt{\char`\\mathfont}}
+% \indexpage{invalid suboption for mathfont=Invalid Suboption for \texttt{\char`\\mathfont}}
+% \indexpage{missing option for mathfont=Missing Option for \texttt{\char`\\mathfont}}
+% \indexpage{missing suboption for mathfont=Missing Suboption for \texttt{\char`\\mathfont}}
+% \indexpage{Internal commands restored}
+% \indexpage{no previous font}\indexpage{missing package fontspec=Missing package \texttt{fontspec}}
% \begin{macrocode}
\def\M@InvalidOptionError#1{\PackageError{mathfont}
{Invalid^^Joption "#1" for \string\mathfont\on@line}
@@ -774,6 +748,26 @@ Happy TeXing!
to get messed up. To resolve this error, load\MessageBreak
fontspec before calling \string\mathfont.^^J}}
% \end{macrocode}
+% Error messages for |\mathconstantsfont|.
+% \indexpage{Invalid font specifier}
+% \indexpage{your mathconstants on line=Your \texttt{\char`\\mathconstants} on line}
+% \begin{macrocode}
+\def\M@BadMathConstantsFontError#1{\PackageError{mathfont}
+ {Invalid font specifier for \string\mathconstantsfont:\MessageBreak"#1"}
+ {Your command was ignored--I can't parse your argument.\MessageBreak
+ Please make sure to use text that you have previously\MessageBreak
+ fed to \string\mathfont\space for the argument of
+ \string\mathconstantsfont.^^J}}
+\def\M@BadMathConstantsFontTypeError#1{\PackageError{mathfont}
+ {Invalid font specifier for \string\mathconstantsfont:\MessageBreak"#1"}
+ {The optional argument of \string\mathconstantsfont\MessageBreak
+ should be "upright" or "italic." Right now,\MessageBreak
+ it's neither.^^J}}
+\def\M@LuaTeXOnlyWarning{\PackageWarning{mathfont}
+ {Your \string\mathconstantsfont\space
+ on line \the\inputlineno\space is\MessageBreak
+ for LuaTeX only, and I'm ignoring it\@gobble}}
+% \end{macrocode}
% Error messages for the |\newmathrm|, etc.\ commands.
% \indexpage{Missing control sequence}
% \indexpage{Multiple characters in argument}
@@ -795,13 +789,12 @@ Happy TeXing!
a single character instead.^^J}}
\def\M@HModeError#1{\PackageError{mathfont}
{Missing \string$ inserted\MessageBreak
- inserted\on@line. Command\MessageBreak
- \string#1\space is for math mode only\MessageBreak}
+ on input line line \the\inputlineno}
{I generated an error because
you used \string#1\space outside of\MessageBreak
- math mode. I've inserted a \string$
- just before your \string#1, so\MessageBreak
- we should be all good now.^^J}}
+ math mode. I inserted a \string$
+ before your \string#1, so we\MessageBreak
+ should be all good now.^^J}}
% \end{macrocode}
% We need error messages related to Lua-based font adjustments.
% \indexpage{Forbidden charm info}
@@ -847,11 +840,17 @@ Happy TeXing!
% We do not want \textsf{fontspec} making changes to mathematics. If the user has loaded the package, we set |\g__fontspec_math_bool| to false. Otherwise, we pass the |no-math| option to the package in case the user loads it later.
% \begin{macrocode}
\@ifpackageloaded{fontspec}
- {\csname bool_set_false:N\expandafter\endcsname
+ {\wlog{Package mathfont Info: Package fontspec detected.}
+ \wlog{Package mathfont Info: Setting \string\g__fontspec_math_bool
+ to false.}
+ \csname bool_set_false:N\expandafter\endcsname
\csname g__fontspec_math_bool\endcsname}
- {\PassOptionsToPackage{no-math}{fontspec}}
+ {\wlog{Package mathfont Info: Package fontspec not detected.}
+ \wlog{Package mathfont Info: Will pass no-math option to fontspec
+ if it gets loaded.}
+ \PassOptionsToPackage{no-math}{fontspec}}
% \end{macrocode}
-% We save four macros from the \LaTeX\ kernel so we can change their definitions. To adapt the symbol declaration macros for use with unicode fonts, we reverse the conversion to hexadecimal in |\count0| and change the |\math|\dots\ primitive to |\Umath|. Unlike the traditional primitives, the |\Umath| primitives accept decimal input with a |+| sign.\indexpage{LaTeX kernel=\LaTeX\ kernel}
+% We save four macros from the \LaTeX\ kernel so we can change their definitions. To adapt the symbol declaration macros for use with unicode fonts, we reverse the conversion to hexadecimal in |\count0| and change the |\math| primitive to |\Umath|. Whereas the traditional primitives accept hexadecimal input, |\Umath| primitives accept decimal input with a |+| sign.\indexpage{LaTeX kernel=\LaTeX\ kernel}
% \begin{macrocode}
\let\@@set@mathchar\set@mathchar
\let\@@set@mathsymbol\set@mathsymbol
@@ -901,7 +900,7 @@ Happy TeXing!
\ifdefined\directlua
\expandafter\@tempa\expandafter{\scantextokens\expandafter{\M@DecSymDef}}
% \end{macrocode}
-% Unfortunately, while |\scantextokens| is straightforward, |\scantokens| is a menace. The problem is that when it expands, the primitive inserts an end-of-file token (because |\scantokens| mimics writing to a file and |\input|ing what it just wrote) after the retokenized code, and this is why |\scantokens| often produces an error about prematurely ending a file. The easiest way to make the command useable is to put a |\noexpand| before the end-of-file token with |\everyeof|, and at the same time, this needs to happen inside an |\edef| so that \TeX\ handles the |\noexpand| as it is first seeing the end-of-file token. In order to prevent the |\edef| from also expanding our retokenized definition of |\DeclareSymbolFont|, we put the definition inside an |\unexpanded|.
+% Unfortunately, while |\scantextokens| is straightforward, |\scantokens| is a menace. The problem is that when it expands, the primitive inserts an end-of-file token (because |\scantokens| mimics writing to a file and |\input|ing what it just wrote) after the retokenized code, and this is why |\scantokens| can produce an end-of-file error. The easiest way to make the command useable is to put a |\noexpand| before the end-of-file token with |\everyeof|, and at the same time, this needs to happen inside an |\edef| so that \TeX\ handles the |\noexpand| as it is first seeing the end-of-file token. In order to prevent the |\edef| from also expanding our retokenized definition of |\DeclareSymbolFont|, we put the definition inside an |\unexpanded|.
% \begin{macrocode}
\else
\begingroup
@@ -915,13 +914,11 @@ Happy TeXing!
\expandafter\endgroup
\expandafter\@tempa\expandafter{\M@retokenize}
\fi
-\@onlypreamble\@@DeclareSymbolFont
% \end{macrocode}
-% We need to keep track of the number of times we have loaded fonts, and the count |\M@count| fulfills this role. We use |\M@errcode| in the alphanumeric commands, and the other counts come up in Lua-based font adjustments. The |\M@toks| object will record a message that displays in the |log| file when the user calls |\mathfont|. The |\newread| is for Lua-based font adjustments.
+% We need to keep track of the number of times we have loaded fonts, and |\M@count| fulfills this role. The |\M@toks| object will record a message that displays in the |log| file when the user calls |\mathfont|. The |\newread| is for Lua-based font adjustments.
% \begin{macrocode}
\newbox\surdbox
\newcount\M@count
-\newcount\M@errcode
\newcount\M@rule@thickness@factor
\newcount\M@integral@italic@factor
\newcount\M@surd@vertical@factor
@@ -936,7 +933,7 @@ Happy TeXing!
\M@surd@vertical@factor\@m
\radicandoffset=3mu\relax
% \end{macrocode}
-% We create necessary booleans and the default math font shapes.
+% Necessary booleans and default math font shapes.
% \begin{macrocode}
\newif\ifM@upper
\newif\ifM@lower
@@ -966,6 +963,7 @@ Happy TeXing!
\newif\if@suboptionpresent
\newif\ifM@arg@good
\newif\ifM@Decl@reF@mily
+\newif\ifM@Decl@reF@milyB@se
\newif\ifM@fromCharmFile
% \end{macrocode}
% Default shapes.
@@ -996,9 +994,14 @@ Happy TeXing!
\def\M@bcalshape{upright} % bold caligraphic
\def\M@bfrakshape{upright} % bold fraktur
% \end{macrocode}
-% We use |\M@normalkeys| and |\M@letterlikekeys| for error checking, and |\M@defaultkeys| stores the character classes that |\mathfont| acts on by default.
+% The |\M@keys| list stores all the possible keyword options, and |\M@defaultkeys| stores the character classes that |\mathfont| acts on by default.
% \indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}}
% \begin{macrocode}
+\def\M@keys{upper,lower,diacritics,greekupper,%
+ greeklower,agreekupper,agreeklower,cyrillicupper,%
+ cyrilliclower,hebrew,digits,operator,delimiters,%
+ radical,bigops,extbigops,symbols,extsymbols,arrows,%
+ bb,cal,frak,bcal,bfrak}
\def\M@defaultkeys{upper,lower,diacritics,greekupper,%
greeklower,digits,operator,symbols}
% \end{macrocode}
@@ -1007,24 +1010,181 @@ Happy TeXing!
\ifM@adjust@font
\edef\M@defaultkeys{\M@defaultkeys,delimiters,radical,bigops}
\fi
-\def\M@normalkeys{upper,lower,diacritics,greekupper,%
- greeklower,agreekupper,agreeklower,cyrillicupper,%
- cyrilliclower,hebrew,digits,operator,delimiters,%
- radical,bigops,extbigops,symbols,extsymbols,arrows}
-\def\M@letterlikekeys{bb,cal,frak,bcal,bfrak}
% \end{macrocode}
-% Default OpenType features to use for loading fonts. If using Lua\TeX, we need to add |mode=base| to the list of default features; otherwise \textsf{luaotfload} will load fonts with |node| mode, which prevents OpenType features for math mode.
+% Default OpenType features for loading fonts.
% \begin{macrocode}
-\def\M@default@otf@features{script=latin;language=DFLT;%
+\def\M@otf@features{script=latin;language=DFLT;%
tlig=true;liga=true;smcp=false;lnum=true}
-\def\M@default@otf@features@sc{script=latin;language=DFLT;%
+\def\M@otf@features@sc{script=latin;language=DFLT;%
tlig=true;liga=true;smcp=true;lnum=true}
-\ifdefined\directlua
- \edef\M@default@otf@features{mode=base;\M@default@otf@features}
- \edef\M@default@otf@features@sc{mode=base;\M@default@otf@features@sc}
-\fi
% \end{macrocode}
-% Using |base| mode limits access to certain OpenType features for the font as a whole, but it allows us to use OpenType features in math mode, which I think is a worthwhile trade. In future versions of \textsf{mathfont}, I may implement a dual fontloader that loads the same font twice in both |base| and |node| modes. Then we could use the |base| mode for math and the |node| mode for text.
+%
+% \section{Fontloader}
+%
+% We come to the fontloader. The main font-loading macro is |\M@newfont|, and it is basically a wrapper around code we would expect to see in a typical |fd| file. Advanced users: please do not call |\M@newfont| directly because it may change without warning. Instead call |\mathfont| with the |empty| keyword and extract the \textsc{nfss} family name from |\M@f@ntn@me| or |\M@f@ntn@meb@se|. Our general approach is to feed the mandatory argument of |\mathfont| to |\M@newfont|, check if we have reason to believe that the font corresponds to a entry already in the \textsc{nfss}, and declare the font family and font shapes as necessary. If \textsf{fontspec} is loaded, we pass the entire argument to \textsf{fontspec}. If not, \textsf{mathfont} handles the font declaration internally. When \textsf{mathfont} declares a font family in the \textsc{nfss}, it does so twice, once using the information provided (which typically results in a font in node mode) and once using the information provided with |mode=base| (which results in a font in base mode). The first declaration uses the entire mandatory argument of |\mathfont| with spaces removed as the family name, and the second declaration uses this name with |-base| tacked onto the end. However the font gets loaded, we store the \textsc{nfss} family names in |\M@f@ntn@me| and |\M@f@nt@n@me@base|.
+%
+%
+% We use |\M@split@colon| and |\M@strip@colon| for parsing the argument of |\mathfont|. If the user calls |\mathfont{|\meta{name}|:|\meta{features}|}|, we store the name in |\@tempbase| and the features in |\@tempfeatures|. If the user specifies a name only, then |\@tempfeatures| will be empty. Syntactically, we use |\M@strip@colon| to remove a final |:| the same way we removed a final |=| when we parsed the optional argument in the previous section.
+% \?\@tempfeatures\?\@tempbase
+% \begin{macrocode}
+\def\M@split@colon#1:#2\@nil{%
+ \def\@tempbase{#1}
+ \def\@tempfeatures{#2}}
+\def\M@strip@colon#1:{#1}
+% \end{macrocode}
+% The macro |\M@fill@nfss@shapes| accepts two arguments and does the actual work of ensuring that the \textsc{nfss} contains the appropriate series and shapes. The first argument should the name of a font family in the \textsc{nfss}, and the second should be a list of OpenType features. We check whether combinations of bold series and italic shape exist for that font in the \textsc{nfss}, and if not, we add them with |\DeclareFontShape|.
+% \begin{macrocode}
+\def\M@fill@nfss@shapes#1#2{%
+% \end{macrocode}
+% Upright shape.
+% \begin{macrocode}
+ \ifcsname TU/#1/\mddefault/\shapedefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\mddefault}{\shapedefault}
+ {<->"\@tempbase:\M@otf@features;#2"}{}
+ \fi
+% \end{macrocode}
+% Italic shape.
+% \begin{macrocode}
+ \ifcsname TU/#1/\mddefault/\itdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\mddefault}{\itdefault}
+ {<->"\@tempbase/I:\M@otf@features;#2"}{}
+ \fi
+% \end{macrocode}
+% Bold series with upright shape.
+% \begin{macrocode}
+ \ifcsname TU/#1/\bfdefault/\shapedefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\bfdefault}{\shapedefault}
+ {<->"\@tempbase/B:\M@otf@features;#2"}{}
+ \fi
+% \end{macrocode}
+% Bold series with italic shape.
+% \begin{macrocode}
+ \ifcsname TU/#1/\bfdefault/\itdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\bfdefault}{\itdefault}
+ {<->"\@tempbase/BI:\M@otf@features;#2"}{}
+ \fi
+% \end{macrocode}
+% Now do the same thing for the small caps variants. I make no promises that this will work. If a small caps font faces is separate from the main font file, \TeX\ won't be able to find it automatically. In that case, you will have to write your own |fd| file or |\DeclareFontShape| commands.
+% \begin{macrocode}
+ \ifcsname TU/#1/\mddefault/\scdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault}
+ {<->"\@tempbase:\M@otf@features@sc;#2"}{}
+ \fi
+ \ifcsname TU/#1/\mddefault/\scdefault\itdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault\itdefault}
+ {<->"\@tempbase/I:\M@otf@features@sc;#2"}{}
+ \fi
+ \ifcsname TU/#1/\bfdefault/\scdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault}
+ {<->"\@tempbase/B:\M@otf@features@sc;#2"}{}
+ \fi
+ \ifcsname TU/#1/\bfdefault/\scdefault\itdefault\endcsname
+ \else
+ \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault\itdefault}
+ {<->"\@tempbase/BI:\M@otf@features@sc;#2"}{}
+ \fi}
+% \end{macrocode}
+% The main font-loading macro. This macro takes a single argument, which should have the form \meta{font name}|:|\meta{optional features}, and \textsf{mathfont} handles the information in one of three ways if all goes well: interface with \textsf{fontspec}, possibly declare a few extra shapes for a font already in the \textsc{nfss}, or declare and load the whole font. At a minimum, \textsf{mathfont} ensures that we have access to medium upright, medium italic, bold upright, and bold italic fonts after calling |\M@newfont|. If \textsf{mathfont} decides to declare a font itself, it will also try to load small caps versions. We begin by splitting the argument into |\@tempbase| and |\@tempfeatures|.
+% \begin{macrocode}
+\def\M@newfont#1{%
+ \edef\@tempa{#1}
+ \expandafter\M@split@colon\@tempa:\@nil
+ \def\@tempb{fontspec}
+% \end{macrocode}
+% If the argument is ``|fontspec|,'' we want to use the last font loaded by \textsf{fontspec}, which is stored in |\l_fontspec_family_tl|. If this macro is not empty, we store its contents in |\M@f@ntn@me| and skip loading entirely because \textsf{fontspec} already took care of it. We issue an error if |\l_fontspec_family_tl| is empty or if the user has not loaded \textsf{fontspec}. If we use \textsf{fontspec} to laod the font, we don't get a separate font in base mode.
+% \begin{macrocode}
+ \ifx\@tempa\@tempb
+ \@ifpackageloaded{fontspec}{%
+ \expandafter\ifx\csname l_fontspec_family_tl\endcsname\@empty
+ \M@NoFontspecFamilyError
+ \else
+ \expandafter
+ \let\expandafter\M@f@ntn@me\csname l_fontspec_family_tl\encsname
+ \def\@tempbase{\M@f@ntn@me\space(from fontspec)}
+ \let\M@f@ntn@meb@se\M@f@ntn@me % no separate font in base mode
+ \fi}{\M@NoFontspecError}
+% \end{macrocode}
+% If the argument is something other than ``|fontspec|,'' we need to parse it. If the user loaded \textsf{fontspec}, we pass the entire argument to |\fontspec_set_family:Nnn| for loading and store the \textsc{nfss} family name in |\M@f@ntn@me|. For Lua\TeX, this is not recommended\textemdash\textsf{fontspec} is designed to work with text, not math, fonts and typically loads fonts in |node| mode, which makes their OpenType features unusable in math mode.
+% \begin{macrocode}
+ \else
+ \@ifpackageloaded{fontspec}
+ {\csname fontspec_set_family:Nnn\endcsname\M@f@ntn@me{}{\@tempa}
+ % no separate font in base mode
+ \let\M@f@ntn@meb@se\M@f@ntn@me}
+% \end{macrocode}
+% If the user has not loaded \textsf{fontspec}, we split the argument into a name and features using |\M@split@colon|. The name goes in |\@tempbase|, and the features go in |\@tempfeatures|. We store the OpenType features for loading in base mode inside |\@basefeatures|. If we are typesetting in Lua\TeX, |\@basefeatures| will be the same as |\@tempfeatures| except with |mode=base| at the end, and if we are using \XeTeX, it will be exactly the same.
+% \begin{macrocode}
+ {\M@Decl@reF@milytrue
+ \M@Decl@reF@milyB@setrue
+ \ifx\@tempfeatures\@empty
+ \ifdefined\directlua
+ \edef\@basefeatures{mode=base}
+ \else
+ \let\@basefeatures\@tempfeatures
+ \fi
+ \else
+ \edef\@tempfeatures{\expandafter\M@strip@colon\@tempfeatures}
+ \ifdefined\directlua
+ \edef\@basefeatures{\@tempfeatures;mode=base}
+ \else
+ \let\@basefeatures\@tempfeatures
+ \fi
+ \fi
+% \end{macrocode}
+% We remove the spaces from |#1| and store it in |\@tempa| and from the human-readable font name contained in |#1| and store it in |\@tempb|. We check whether either already exists as a family name in the \textsc{nfss}, and if we do, we call |\M@fill@nfss@shapes| to ensure that we have declared all the shapes. In this case, we set |\ifM@Decl@reF@mily| to false and break out of the |\@tfor| loop.
+% \begin{macrocode}
+ \edef@nospace\@tempa{\@tempa}
+ \edef@nospace\@tempb{\@tempbase}
+ \M@Decl@reF@milytrue
+ \@tfor\@i:=\@tempa\@tempb\@tempbase\do{%
+ \ifcsname TU+\@i\endcsname
+ \expandafter\let\expandafter\M@f@ntn@me\@i
+ \M@Decl@reF@milyfalse
+ \M@fill@nfss@shapes\M@f@ntn@me\@tempfeatures
+ \@break@tfor
+ \fi}
+% \end{macrocode}
+% If |\M@newfont| didn't find anything in the \textsc{nfss}, we need to load the font. The name for the font family will be |#1| with spaces removed, which we previously stored in |\@tempa|.
+% \indexpage{log file=\texttt{log} file}
+% \begin{macrocode}
+ \ifM@Decl@reF@mily
+ \let\M@f@ntn@me\@tempa
+ \wlog{Package mathfont Info: Adding \M@f@ntn@me\space to the nfss!}
+ \DeclareFontFamily{TU}{\M@f@ntn@me}{}
+% \end{macrocode}
+% Now load the four most common font faces with |\M@fill@nfss@shapes|.
+% \begin{macrocode}
+ \M@fill@nfss@shapes\M@f@ntn@me\@tempfeatures
+ \fi
+% \end{macrocode}
+% At this point, there is an entry for the font in the \textsc{nfss}, and we stored the family name in |\M@f@ntn@me|. Now we check if the \textsc{nfss} contains a base-mode version with the family name ending in |-base|.
+% \begin{macrocode}
+ \ifdefined\directlua
+ \edef\M@f@ntn@meb@se{\M@f@ntn@me-base}
+ \else
+ \let\M@f@ntn@meb@se\M@f@ntn@me
+ \fi
+ \ifcsname TU+\M@f@ntn@meb@se\endcsname\else
+ \wlog{Package mathfont Info: Adding \M@f@ntn@meb@se\space
+ to the nfss!}
+ \DeclareFontFamily{TU}{\M@f@ntn@meb@se}{}
+ \fi
+ \M@fill@nfss@shapes\M@f@ntn@meb@se\@basefeatures}
+ \fi}
+% \end{macrocode}
+% Finally, the font-loading commands should appear only in the preamble.
+% \begin{macrocode}
+\@onlypreamble\M@fill@nfss@shapes
+\@onlypreamble\M@newfont
+% \end{macrocode}
+% At this point, the font information is stored in the \textsc{nfss}, but nothing has been loaded. For text fonts, that happens during a call to |\selectfont|, and for math fonts, that happens the first time entering math mode. I've played with the idea of forcing some fonts to load now, but I'm hesitant to change \LaTeX's standard font-loading behavior. I may address this issue further in future versions of \textsf{mathfont}.
%
%
%
@@ -1034,22 +1194,17 @@ Happy TeXing!
% \begin{macrocode}
\def\M@check@option@valid#1{%
\let\@temperror\M@InvalidOptionError % error by default
- \@for\@j:=\M@normalkeys\do{%
- \ifx\@j#1
- \let\@temperror\@gobble % eliminate error
- \@optionpresenttrue % set switch to true
- \fi}
-% \end{macrocode}
-% We have to initialize the blackboard, calligraphic, and fraktur commands separately because these characters don't use the same encoding slots as the regular letters and digits and are produced differently from regular characters.\indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}}
-% \begin{macrocode}
- \@for\@j:=\M@letterlikekeys\do{%
+ \@for\@j:=\M@keys\do{%
\ifx\@j#1
- \expandafter\M@CommandInitializeInfo\csname math#1\endcsname
- \csname define@#1\endcsname % initialize command
\let\@temperror\@gobble % eliminate error
\@optionpresenttrue % set switch to true
\fi}
- \@temperror{#1}}
+ \def\@j{empty} % if option is "empty," we do nothing
+ \ifx\@j#1
+ \let\@temperror\@gobble
+ \@optionpresentfalse
+ \fi
+ \@temperror{#1}}
% \end{macrocode}
% Do the same thing for the suboption.
% \indexpage{suboption roman=suboption \texttt{roman}}%
@@ -1119,191 +1274,35 @@ Happy TeXing!
% \end{macrocode}
% Perhaps something that sets spaces to |\catcode9| and then retokenizes |#2| would be better, but I don't think it matters very much.
%
-% \section{Fontloader}
-%
-% We come to the fontloader. The main font-loading macro is |\M@newfont|, and it is basically a wrapper around code we would expect to see in a typical |fd| file. Advanced users: please do not call |\M@newfont| directly because I may change it without warning! Instead, please use |\mathfont[]| and extract the \textsc{nfss} family name from |\M@f@ntn@me|. Our general approach is to feed the mandatory argument of |\mathfont| to |\M@newfont|, check if we have reason to believe that the font corresponds to a entry already in the \textsc{nfss}, and declare the font family and font shapes as necessary. First, |\M@newfont| checks if \textsf{fontspec} is loaded, and if yes, we pass the entire mandatory argument of |\mathfont| to \textsf{fontspec}. If not, \textsf{mathfont} handles the font declaration internally. When \textsf{mathfont} declares a font family in the \textsc{nfss}, it uses the entire mandatory argument of |\mathfont| with spaces removed as the family name, and regardless of whether \textsf{mathfont} |\M@newfont| feeds the font name to \textsf{fontspec}, finds it already in the \textsc{nfss}, or performs the entire font declaration, we store the \textsc{nfss} family name in |\M@f@ntn@me|. This allows for easy access later and is how you should access the \textsc{nfss} information if you call |\mathfont[]|.
-%
-%
-% We use |\M@split@colon| and |\M@strip@colon| for parsing the argument of |\mathfont|. If the user calls |\mathfont{|\meta{name}|:|\meta{features}|}|, we store the name in |\@tempbase| and the features in |\@tempfeatures|. If the user specifies a name only, then |\@tempfeatures| will be empty. Syntactically, we use |\M@strip@colon| to remove a final |:| the same way we removed a final |=| when we parsed the optional argument in the previous section.
-% \?\@tempfeatures\?\@tempbase
-% \begin{macrocode}
-\def\M@split@colon#1:#2\@nil{%
- \def\@tempbase{#1}
- \def\@tempfeatures{#2}}
-\def\M@strip@colon#1:{#1}
-% \end{macrocode}
-% The macro |\M@check@in@nfss| accepts a single argument and checks whether that argument is the name of a font family in the \textsc{nfss}, i.e.\ whether |\TU+|\meta{argument} is defined. If yes, we set |\M@f@ntn@me| to |#1| and for the four basic shapes, check that the \textsc{nfss} contains those shapes. If not, call |\DeclareFontShape|. We assume that |\@tempbase| is the human-readable name of the font and feed that directly to \textsf{luaotfload} or \XeTeX. By default, we enable the OpenType features |tlig| and |liga|, but the user can override these settings by manually declaring them to be false.
-% \begin{macrocode}
-\def\M@check@in@nfss#1{%
- \ifcsname TU+#1\endcsname
- \let\M@f@ntn@me#1
-% \end{macrocode}
-% Upright shape.
-% \begin{macrocode}
- \ifcsname TU/#1/\mddefault/\shapedefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\mddefault}{\shapedefault}
- {<->"\@tempbase:\M@default@otf@features;\@tempfeatures"}{}
- \fi
-% \end{macrocode}
-% Italic shape.
-% \begin{macrocode}
- \ifcsname TU/#1/\mddefault/\itdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\mddefault}{\itdefault}
- {<->"\@tempbase/I:\M@default@otf@features;\@tempfeatures"}{}
- \fi
-% \end{macrocode}
-% Bold series with upright shape.
-% \begin{macrocode}
- \ifcsname TU/#1/\bfdefault/\shapedefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\bfdefault}{\shapedefault}
- {<->"\@tempbase/B:\M@default@otf@features;\@tempfeatures"}{}
- \fi
-% \end{macrocode}
-% Bold series with italic shape.
-% \begin{macrocode}
- \ifcsname TU/#1/\bfdefault/\itdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\bfdefault}{\itdefault}
- {<->"\@tempbase/BI:\M@default@otf@features;\@tempfeatures"}{}
- \fi
-% \end{macrocode}
-% Now do the same thing for the small caps variants. I make no promises that this will work. If a small caps font faces is separate from the main font file, \TeX\ won't be able to find it automatically. In that case, you will have to write your own |fd| file or font-loading commands.
-% \begin{macrocode}
- \ifcsname TU/#1/\mddefault/\scdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault}
- {<->"\@tempbase:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\mddefault/\scdefault\itdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\mddefault}{\scdefault\itdefault}
- {<->"\@tempbase/I:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\bfdefault/\scdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault}
- {<->"\@tempbase/B:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi
- \ifcsname TU/#1/\bfdefault/\scdefault\itdefault\endcsname
- \else
- \DeclareFontShape{TU}{#1}{\bfdefault}{\scdefault\itdefault}
- {<->"\@tempbase/BI:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi
-% \end{macrocode}
-% Finally, set the boolean to false and break out of the |\@tfor| loop from |\M@newfont|.
-% \begin{macrocode}
- \M@Decl@reF@milyfalse
- \@break@tfor
- \fi}
-% \end{macrocode}
-% The main font-loading macro. This macro takes a single argument, which should have the form \meta{font name}|:|\meta{optional features}, and \textsf{mathfont} handles the information in one of three ways if all goes well: interface with \textsf{fontspec}, possibly declare a few extra shapes for a font already in the \textsc{nfss}, or declare and load the whole font. At a minimum, \textsf{mathfont} ensures that we have access to medium upright, medium italic, bold upright, and bold italic fonts after calling |\M@newfont|. If \textsf{mathfont} decides to declare a font itself, it will also try to load small caps versions. We begin by splitting the argument into |\@tempbase| and |\@tempfeatures|.
-% \begin{macrocode}
-\def\M@newfont#1{%
- \edef\@tempa{#1}
- \expandafter\M@split@colon\@tempa:\@nil
- \def\@tempb{fontspec}
-% \end{macrocode}
-% If the argument is ``|fontspec|,'' we want to use the last font loaded by \textsf{fontspec}, which is stored in |\l_fontspec_family_tl|. If this macro is not empty, we store its contents in |\M@f@ntn@me| and skip loading entirely because \textsf{fontspec} already took care of it. We issue an error if |\l_fontspec_family_tl| is empty or if the user has not loaded \textsf{fontspec}.
-% \begin{macrocode}
- \ifx\@tempa\@tempb
- \@ifpackageloaded{fontspec}{%
- \expandafter\ifx\csname l_fontspec_family_tl\endcsname\@empty
- \M@NoFontspecFamilyError
- \else
- \expandafter
- \let\expandafter\M@f@ntn@me\csname l_fontspec_family_tl\encsname
- \def\@tempbase{\M@f@ntn@me\space(from fontspec)}
- \fi}{\M@NoFontspecError}
-% \end{macrocode}
-% If the argument is something other than ``|fontspec|,'' we need to parse it. If the user loaded \textsf{fontspec}, we pass the entire argument to |\fontspec_set_family:Nnn| for loading and store the \textsc{nfss} family name in |\M@f@ntn@me|. For Lua\TeX, this is not recommended\textemdash\textsf{fontspec} is designed to work with text, not math, fonts and typically loads fonts in |node| mode, which makes their OpenType features unusable in math mode.
-% \begin{macrocode}
- \else
- \@ifpackageloaded{fontspec}
- {\csname fontspec_set_family:Nnn\endcsname\M@f@ntn@me{}{\@tempa}}
-% \end{macrocode}
-% If the user has not loaded \textsf{fontspec}, we split the argument into a name and features using |\M@split@colon|. The name goes in |\@tempbase|, and the features go in |\@tempfeatures|. The boolean |\ifM@Decl@reF@mily| keeps track of whether we need to manually declare a font family and shapes in the \textsc{nfss}. By default, we set it to true, and if \textsf{mathfont} finds a match to |#1| in the \textsc{nfss} already, |\M@check@in@nfss| will set it to false.
-% \begin{macrocode}
- {\M@Decl@reF@milytrue
- \ifx\@tempfeatures\@empty\else
- \edef\@tempfeatures{\expandafter\M@strip@colon\@tempfeatures}
- \fi
-% \end{macrocode}
-% We remove the spaces from |#1| and from the human-readable font name contained in |#1| and check whether either already exists as a family name in the \textsc{nfss}.
-% \begin{macrocode}
- \edef@nospace\@tempa{\@tempa}
- \edef@nospace\@tempb{\@tempbase}
- \@tfor\@i:=\@tempa\@tempb\@tempbase\do{\expandafter\M@check@in@nfss\@i}
-% \end{macrocode}
-% If |\M@newfont| didn't find anything in the \textsc{nfss}, we need to load the font. We declare the font family in the \textsc{nfss} to have the name given by |#1| with spaces removed.
-% \indexpage{log file=\texttt{log} file}
-% \begin{macrocode}
- \ifM@Decl@reF@mily
- \wlog{^^JPackage mathfont Info:
- Adding the font family \@tempa\space to the nfss.}
- \DeclareFontFamily{TU}{\@tempa}{}
- \let\M@f@ntn@me\@tempa
-% \end{macrocode}
-% Now load the four most common font faces. We are relying on the ``|/I|,'' etc.\ feature of \XeTeX\ and \textsf{luaotfolad} to correctly find the bold, italic, and bold italic fonts corresponding to the family named |\@tempbase|.
-% \begin{macrocode}
- \DeclareFontShape{TU}{\@tempa}{\mddefault}{\shapedefault}
- {<->"\@tempbase:\M@default@otf@features;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\mddefault}{\itdefault}
- {<->"\@tempbase/I:\M@default@otf@features;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\bfdefault}{\shapedefault}
- {<->"\@tempbase/B:\M@default@otf@features;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\bfdefault}{\itdefault}
- {<->"\@tempbase/BI:\M@default@otf@features;\@tempfeatures"}{}
-% \end{macrocode}
-% Attempt to load small caps. The font may or may not have a small caps feature, but we will request it anyway. See the portion of |\M@check@in@nfss| for disclaimers on loading small caps fonts.
-% \begin{macrocode}
- \DeclareFontShape{TU}{\@tempa}{\mddefault}{\scdefault}
- {<->"\@tempbase:\M@default@otf@features@sc;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\mddefault}{\scdefault\itdefault}
- {<->"\@tempbase/I:\M@default@otf@features@sc;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\bfdefault}{\scdefault}
- {<->"\@tempbase/B:\M@default@otf@features@sc;\@tempfeatures"}{}
- \DeclareFontShape{TU}{\@tempa}{\bfdefault}{\scdefault\itdefault}
- {<->"\@tempbase/BI:\M@default@otf@features@sc;\@tempfeatures"}{}
- \fi}
- \fi}
-% \end{macrocode}
-% Finally, both font-loading commands should appear only in the preamble.
-% \begin{macrocode}
-\@onlypreamble\M@check@in@nfss
-\@onlypreamble\M@newfont
-% \end{macrocode}
-% At this point, the font information is stored in the \textsc{nfss}, but nothing has been loaded. I've played with the idea of loading certain fonts now to check whether they have been defined correctly, but I'm hesitant to force loading in a way that isn't systematic and could change \LaTeX's standard font-loading behavior. This issue may be addressed in future versions of \textsf{mathfont}.
-%
%
% \section{Default Font Changes}
%
% This section documents default math font changes. The user-level font-changing command is |\mathfont|, and it feeds the font information to |\@mathfont|, the internal command that does the actual font changing. This macro is basically a wrapper around |\DeclareSymbolFont| and a bunch of calls to |\DeclareMathSymbol|, and when the user calls |\@mathfont|, the command declares the user's font in the \textsc{nfss} with |\M@newfont| and loops through the optional argument. On each iteration, |\@mathfont| validates the option and suboption, calls |\DeclareSymbolFont| if necessary, and sets the math codes with |\M@|\meta{keyword}|@set|.
% \indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}}
% \begin{macrocode}
-\protected\def\mathfont{\@ifnextchar[{\m@thf@nt}{\@mathfont[\M@defaultkeys]}}
-\def\m@thf@nt[#1]{\@mathfont[#1]}
+\protected\def\mathfont{\@ifnextchar[{\@mathfont}{\@mathfont[\M@defaultkeys]}}
% \end{macrocode}
-% The internal default-font-changing command.
+% The internal font-changing command.
% \begin{macrocode}
\def\@mathfont[#1]#2{%
\ifx\set@mathchar\@@set@mathchar
\M@InternalsRestoredError
% \end{macrocode}
-% If the kernel commands have not been reset, we can do fun stuff. As of version 2.0, I'm removing the documentation for |\restoremathinternals| in the user guide, but the code is going to stay in for backwards compatibility.
+% If the kernel commands have not been reset, we can do fun stuff. As of version 2.0, I'm removing the documentation for |\restoremathinternals| in the user guide, but the code will stay in for backwards compatibility.
% \begin{macrocode}
\else
\M@toks{}
% \end{macrocode}
-% We immediately call |\M@newfont| on the mandatory argument of |\mathfont|. We store the \textsc{nfss} family name in |\M@fontfamily@|\meta{argument}. If we need a new value of |\M@count|, we store it in |\M@fontid@|\meta{\textsc{nfss} family name}. We will not need a new value of |\M@count| if the user asks for the same \textsc{nfss} font family twice. Throughout the definition of |\mathfont|, |\@tempa| stores the value of |\M@count| that corresponds to the current font.
+% We immediately call |\M@newfont| on the mandatory argument of |\mathfont|. We store the \textsc{nfss} family name in |\M@fontfamily@|\meta{argument} and |M@fontfamily@base@|\meta{argument}. If we need a new value of |\M@count|, we store it in |\M@fontid@|\meta{\textsc{nfss} family name}. We will not need a new value of |\M@count| if the user asks for the same \textsc{nfss} font family twice. Throughout the definition of |\mathfont|, |\@tempa| stores the value of |\M@count| that corresponds to the current font.
% \indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}}
% \begin{macrocode}
\M@newfont{#2}
\expandafter\edef\csname M@fontfamily@#2\endcsname{\M@f@ntn@me}
+ \expandafter\edef\csname M@fontfamily@base@#2\endcsname{\M@f@ntn@meb@se}
\ifcsname M@fontid@\M@f@ntn@me\endcsname\else % need new \M@count value?
\expandafter\edef\csname M@fontid@\M@f@ntn@me\endcsname{\the\M@count}
+ \expandafter\let\csname M@fontid@\M@f@ntn@meb@se\expandafter\endcsname
+ \csname M@fontid@\M@f@ntn@me\endcsname
\advance\M@count\@ne
\fi
\edef\@tempa{\csname M@fontid@\M@f@ntn@me\endcsname}
@@ -1315,7 +1314,7 @@ Happy TeXing!
\if@optionpresent
% \end{macrocode}
% If the user calls |\mathfont| and tries multiple times to set the font for a certain class of characters, \textsf{mathfont} will issue a warning, and the package will not adjust the font for those characters. Notice the particularly awkward syntax with the |\csname|-|\endcsname| pairs. Without this construct, \TeX\ won't realize that |\csname if@\@tempa\endcsname| matches the eventual |\fi|, and the |\@for| loop will break. (\TeX\ does not have a smart if-parser!)
-% \indexpage{parse conditionals}
+% \indexpage{I already set the font}
% \indexpage{if-parser}
% \indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}}
% \begin{macrocode}
@@ -1353,16 +1352,17 @@ Happy TeXing!
% At this point we have the information we need to declare the symbol font: the \textsc{nfss} family (|\M@f@ntn@me|), series (|\mddefault|), and shape (|\@tempb|) information. The symbol font name will be |M|\meta{suboption}\meta{value of {\fontshape\shapedefault\fontfamily\ttdefault\selectfont\string\M@count}}. We check if the symbol font we need for the current set of characters is defined, and if not, we define it using this information.
% \begin{macrocode}
\ifcsname symM\@tempc\@tempa\endcsname\else
+ \M@SymbolFontInfo{\@tempbase}{\M@f@ntn@meb@se}
+ {\mddefault/\@tempb}{M\@tempc\@tempa}
\DeclareSymbolFont
- {M\@tempc\@tempa}{TU}{\M@f@ntn@me}{\mddefault}{\@tempb}
+ {M\@tempc\@tempa}{TU}{\M@f@ntn@meb@se}{\mddefault}{\@tempb}
\fi
% \end{macrocode}
% We store the new font information so we can write it to the |log| file |\AtBeginDocument| and send an informational message to the user.\indexpage{log file=\texttt{log} file}
% \begin{macrocode}
\expandafter
\edef\csname M@\@temp@opt @fontinfo\endcsname{\@tempbase}
- \M@FontChangeInfo{\@temp@opt}{\@tempbase}{\M@f@ntn@me}
- {\mddefault/\@tempb}{M\@tempc\@tempa}
+ \M@FontChangeInfo{\@temp@opt}{\@tempbase}
% \end{macrocode}
% And now the magic happens!
% \indexpage{keyword options=keyword options for \texttt{\char`\\mathfont}}
@@ -1405,9 +1405,10 @@ Happy TeXing!
\wlog{The \string\mathfont\space command on line \the\inputlineno\space
did not change the font for any characters!}
\else
+ \wlog{}
\typeout{:: mathfont :: Using font \@tempbase\space
on line \the\inputlineno.}
- \wlog{Character classes changed:\the\M@toks^^J}
+ \wlog{Character classes changed:\the\M@toks}
\fi
\fi}
\@onlypreamble\mathfont
@@ -1423,195 +1424,80 @@ Happy TeXing!
\let\rmdefault\M@f@ntn@me}
\@onlypreamble\setfont
% \end{macrocode}
-% We come to the tricky problem of making sure to use the correct MathConstants table. Lua\TeX\ automatically initializes all math parameters based on the most recent |\textfont|, etc.\ assignment, so we want to tell \LaTeX\ to reassign whatever default font we're using to the correct math family whenever we load new math fonts. This is possible, but the implementation is super hacky. When \LaTeX\ enters math mode, it checks whether it needs to redo any math family assignments, typically because of a change in font size, and if so, it calls |\getanddefine@fonts| repeatedly to append |\textfont|, etc.\ assignments onto the macro |\math@fonts|. Usually |\math@fonts| is empty because this process always happens inside a group, so we can hook into the code by defining |\math@code| to be |\aftergroup|\meta{extra code}. In this case, the \textit{extra code} will be another call to |\getanddefine@fonts|. The macro |\mathconstantsfont| handles choosing the font for setting math parameters in Lua\TeX. It checks if the argument was previously fed to |\mathfont| by seeing whether |\M@fontfamily@|\meta{|\string#1|} is equal to |\relax|. If yes, |#1| was never an argument of |\mathfont|, and we raise an error.
+% The macro |\mathconstantsfont| handles choosing the font for setting math parameters in Lua\TeX. It issues a warning if called in \XeTeX. First, it checks if the argument was previously fed to |\mathfont| by seeing whether |\M@fontfamily@|\meta{|\string#1|} is equal to |\relax|. If yes, |#1| was never an argument of |\mathfont|, and we raise an error.
% \begin{macrocode}
-\ifM@adjust@font
- \protected\def\mathconstantsfont#1{%
- \edef\@tempa{\csname M@fontfamily@#1\endcsname}
- \ifx\@tempa\relax
- \PackageError{mathfont}{Invalid font specifier}
- {Your command was ignored--I can't parse your argument.\MessageBreak
- Please make sure to use text that you have previously\MessageBreak
- fed to \string\mathfont\space for the argument of
- \string\mathconstantsfont.^^J}
+\ifdefined\directlua
+ \let\M@SetMathConstants\relax
+ \protected\def\mathconstantsfont{\@ifnextchar[{\@mathconstantsfont}
+ {\@mathconstantsfont[upright]}}
+ \def\@mathconstantsfont[#1]#2{%
+ \edef\@tempa{\csname M@fontfamily@base@#2\endcsname}
+ \def\@tempb{\relax}
+ \ifx\@tempa\@tempb
+ \M@BadMathConstantsFontError{#2}
\else
% \end{macrocode}
-% We initialize |\M@SetMathConstants| to be |\relax|, so we define it the first time the user calls |\mathconstantsfont|. The command calls |\getanddefine@fonts| inside a group and uses as arguments the upright face of the font corresponding to |#1|. Then we call |\math@fonts|, and to avoid an infinite loop, we gobble the |\aftergroup||\M@SetMathConstants| macros that \textsf{mathfont} has inserted at the start of |\math@fonts|. Setting |\globaldefs| to 1 makes the |\textfont|, etc.\ assignments from |\getanddefine@fonts| global when we call |\math@fonts|.
-% \indexpage{LaTeX kernel=\LaTeX\ kernel}
+% Some error checking. If |#1| isn't ``upright'' or ``italic,'' we should raise an error. If the |\@tempa| font doesn't correspond to a symbol font, we declare it. Before defining |\M@SetMathConstants| if necessary, we store the \textsc{nfss} family name in |\m@th@const@nts@font|.
% \begin{macrocode}
- \ifx\M@SetMathConstants\relax
- \protected\def\M@SetMathConstants{%
- \begingroup
- \escapechar\m@ne
- \expandafter\getanddefine@fonts
- \csname symMupright\csname M@fontid@\m@th@const@nts@font\endcsname
- \expandafter\endcsname % expands to \symMupright<id>
- \csname TU/\m@th@const@nts@font/\seriesdefault/\shapedefault
- \endcsname % expands to \TU/<nfss family name>/m/n
- \globaldefs\@ne
- \expandafter\@gobbletwo\math@fonts % gobble to avoid infinite loop
- \endgroup}
+ \def\@tempb{#1}
+ \def\@tempc{upright}
+ \ifx\@tempb\@tempc
+ \let\@tempc\shapedefault
+ \else
+ \def\@tempc{italic}
+ \ifx\@tempb\@tempc
+ \let\@tempc\itdefault
+ \else
+ \M@BadMathConstantsFontTypeError{#2}
+ \fi
+ \fi
+ \ifcsname symM#1\csname M@fontid@\@tempa\endcsname\endcsname\else
+ \DeclareSymbolFont{M#1\csname M@fontid@\@tempa\endcsname}
+ {TU}{\@tempa}{\mddefault}{\@tempc}
\fi
-% \end{macrocode}
-% After initializing |\M@SetMathConstants| if necessary, we store the \textsc{nfss} family name in |\m@th@const@nts@font|.
-% \begin{macrocode}
\let\m@th@const@nts@font\@tempa
- \fi}
- \let\M@SetMathConstants\relax
+% \end{macrocode}
+% We come to the tricky problem of making sure to use the correct MathConstants table. Lua\TeX\ automatically initializes all math parameters based on the most recent |\textfont|, etc.\ assignment, so we want to tell \LaTeX\ to reassign whatever default font we're using to the correct math family whenever we load new math fonts. This is possible, but the implementation is super hacky. When \LaTeX\ enters math mode, it checks whether it needs to redo any math family assignments, typically because of a change in font size, and if so, it calls |\getanddefine@fonts| repeatedly to append |\textfont|, etc.\ assignments onto the macro |\math@fonts|. Usually |\math@fonts| is empty because this process always happens inside a group, so we can hook into the code by defining |\math@font| to be |\aftergroup|\meta{extra code}. In this case, the \textit{extra code} will be another call to |\getanddefine@fonts|.
+%
+% We initialize |\M@SetMathConstants| to be |\relax|, so we define it the first time the user calls |\mathconstantsfont|. The command calls |\getanddefine@fonts| inside a group and uses as arguments the upright face of the font corresponding to |#1|. Then we call |\math@fonts|, and to avoid an infinite loop, we gobble the |\aftergroup||\M@SetMathConstants| macros that \textsf{mathfont} has inserted at the start of |\math@fonts|. Setting |\globaldefs| to 1 makes the |\textfont|, etc.\ assignments from |\getanddefine@fonts| global when we call |\math@fonts|.\indexpage{LaTeX kernel=\LaTeX\ kernel}^^A
+% \begin{macrocode}
+ \protected\def\M@SetMathConstants{%
+ \begingroup
+ \escapechar\m@ne
+ \expandafter\getanddefine@fonts
+ \csname symM#1\csname M@fontid@\m@th@const@nts@font\endcsname
+ \expandafter
+ \endcsname % expands to \symMupright<id>
+ \csname TU/\m@th@const@nts@font/\seriesdefault/\@tempc
+ \endcsname % expands to \TU/<nfss family name>/m/<shape>
+ \globaldefs\@ne
+ \expandafter\@gobbletwo\math@fonts % gobble to avoid infinite loop
+ \endgroup}
+ \fi}
\def\math@fonts{\aftergroup\M@SetMathConstants}
- \@onlypreamble\mathconstantsfont
+\else
+ \protected\def\mathconstantsfont{\M@LuaTeXOnlyWarning
+ \@ifnextchar[\@gobbletwo@brackets\@gobble}
\fi
+\@onlypreamble\mathconstantsfont
% \end{macrocode}
% If the user has not enabled Lua font adjustments, then |\mathconstantsfont| will generate an error message and gobble its argument. This definition happens later in |mathfont.sty| when we define other Lua-related macros such as |\IntegralItalicFactor| to do the same thing absent font adjustments.
%
%
%
-% \section{Letterlike Symbols}
-%
-% This section documents the implementation of the |\math|\meta{keyword} commands for blackboard bold, caligraphic, and fraktur characters. These commands work differently from other local font-changing commands. Unlike with the macros in the next section, we can't just change the |\fam| number because in unicode, the letterlike characters have different encoding slots from the regular Latin letters, so we need to somehow get different math codes as well as a different font. Future versions of \textsf{mathfont} will change the math codes of letters directly. For now though, we keep the old implementation where each |\math|\meta{keyword} macro inserts each token from its argument into an appropriate |\csname||\endcsname| construction. The first thing we have to do is check if \TeX\ is in math mode using |\M@check@mode|, and the argument of |\M@check@mode| should be one of the macros |\@math|\meta{keyword}. If yes, we call |#1|, and if no, we issue a ``missing |$|'' error.
-% \begin{macrocode}
-\def\M@check@mode#1{%
- \let\@tempa#1%
- \ifmmode
- \expandafter\@tempa
- \else
-% \end{macrocode}
-% Temporarily set the escape character code to $-1$ so we can gobble the |@| in |\@math|\meta{keyword} without worrying about the escape character. We need to do this for error messaging purposes, so |\M@HModeError| displays the user-level command that caused the error. Finally, the package adds the missing |$| to enter math mode before calling |#1|.
-% \indexpage{Missing \$ inserted=Missing \texttt\$ inserted}
-% \begin{macrocode}
- \bgroup
- \escapechar\m@ne
- \expandafter
- \egroup
- \expandafter\M@HModeError\csname\expandafter\@gobble\string#1\endcsname
- \expandafter$\expandafter\@tempa
- \fi}
-% \end{macrocode}
-% The |\M@process@tokens| macro turns the letters into letterlike symbols. The first argument should be the user's original argument of |\math|\meta{keyword}, and the second argument will be the keyword-option for |\mathfont| corresponding to this set of letterlike symbols. The macro loops through |#1| with |\@tfor| and calls |\M@check@token|, which sets the count variable |\M@errcode| as part of validating the token, on each |\@k|. If |\M@errcode| is 0, the \textit{token} is valid, and \TeX\ calls |\M@|\meta{keyword}|@|\meta{token} to typeset the letterlike character. If |\M@errcode| is anything else, |\M@check@token| will issue an error.
-% \begin{macrocode}
-\def\M@process@tokens#1#2{%
- \edef\@tempa{#1}%
- \expandafter\@tfor\expandafter\@k\expandafter:\expandafter=\@tempa\do{%
- \expandafter\M@check@token\expandafter{\@k}%
-% \end{macrocode}
-% Now that |\M@check@token| has set |\M@errcode|, we either typeset |\@k| or raise an error.
-% \begin{macrocode}
- \ifcase\M@errcode
- \csname M@#2@\@k\endcsname
- \or\expandafter\M@NestedArgWarning\csname math#2\endcsname{\@k}%
- \or\expandafter\M@CSArgWarning\csname math#2\endcsname{\@k}%
- \or\expandafter\M@CharacterArgWarning\csname math#2\endcsname{\@k}%
- \or\expandafter\M@DoubleArgWarning\csname math#2\endcsname{\@k}%
- \fi}}
-% \end{macrocode}
-% We check for errors with |\M@check@token|. The argument |#1| is the argument to be checked, and we are expecting |#1| to be a single letter or digit. Checking happens in five steps: (1) verify \TeX\ cannot split the contents of |#1| (which in |\M@process@tokens| is |\@k|) into multiple arguments; (2) verify that the argument does not begin with a character of catcode 1, i.e.\ |{|; (3) verify that the token is not a control sequence; (4) check whether the character is a letter; and (5) if the argument does not have catcode 11, check that it's a number. If any of these checks fail, \textsf{mathfont} sets |\M@errcode| to the corresponding error code and skips the remaining steps.\indexpage{multiple characters warning}\indexpage{error checking}
-% \begin{macrocode}
-\def\M@check@token#1{%
- \M@errcode\z@
- \expandafter\ifx\expandafter\@nnil\@gobble#1\@nnil% good
-% \end{macrocode}
-% Checking for a nested argument involves what I think of as catcode jujitsu and inevitably feels super hacky. We use |\ifcat\bgroup| to check whether the first token of |#1| has catcode 1, and we take care to avoid unbalanced braces because |\ifcat| will eat the first token in the |#1| argument when it expands. If the comparison succeeds, the first token had catcode 1, and we are now missing a |{|. We place one before |\ifcat|, and we |\@gobble| the argument to prevent \TeX\ from typesetting it. The extra left brace balances the final right brace in |#1|, and both tokens delimit the argument of |\@gobble|. If the comparison fails, \TeX\ eliminates everything in the first branch, and we need to balance the |{| from before |\ifcat|. Thus we add a right brace immediately after |\else|, and the argument of |\@gobble| ends up being empty.%
-% \indexpage{nested argument warning}
-% \begin{macrocode}
- \expandafter\@gobble\expandafter{\ifcat\bgroup#1% bad
- \M@errcode\@ne
- \else}%
-% \end{macrocode}
-% Check whether |#1| is a control sequence.\indexpage{control sequence warning}
-% \begin{macrocode}
- \ifcat\relax\noexpand#1% bad
- \M@errcode\tw@
- \else
-% \end{macrocode}
-% Check that |#1| is a letter.
-% \begin{macrocode}
- \ifnum\catcode`#1=11\relax% good
- \else
-% \end{macrocode}
-% Finally, check that |#1| is a digit.
-% \begin{macrocode}
- \if 0#1% good
- \else
- \if 1#1% good
- \else
- \if 2#1% good
- \else
- \if 3#1% good
- \else
- \if 4#1% good
- \else
- \if 5#1% good
- \else
- \if 6#1% good
- \else
- \if 7#1% good
- \else
- \if 8#1% good
- \else
- \if 9#1% good
- \else
- \M@errcode\thr@@
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \else% matches the original \ifx\@nnil, etc.
- \M@errcode=4\relax
- \fi}
-% \end{macrocode}
-% Now initialize the five commands. The |\define@|\meta{keyword} initializes each user-level macro |\math|\meta{keyword}, which checks the mode and calls |\@math|\meta{keyword}. The |@| versions actually do the work by calling |\M@process@tokens| on the user's input. We start with the blackboard-bold font-changing command.\indexpage{keywordbb=keyword \texttt{bb}}
-% \begin{macrocode}
-\def\define@bb{%
- \protected\def\mathbb{\M@check@mode\@mathbb}%
- \def\@mathbb##1{\M@process@tokens{##1}{bb}}}
-% \end{macrocode}
-% Calligraphic characters.\indexpage{keywordcal=keyword \texttt{cal}}
-% \begin{macrocode}
-\def\define@cal{%
- \protected\def\mathcal{\M@check@mode\@mathcal}%
- \def\@mathcal##1{\M@process@tokens{##1}{cal}}}
-% \end{macrocode}
-% Fraktur characters.\indexpage{keywordfrak=keyword \texttt{frak}}
-% \begin{macrocode}
-\def\define@frak{%
- \protected\def\mathfrak{\M@check@mode\@mathfrak}%
- \def\@mathfrak##1{\M@process@tokens{##1}{frak}}}
-% \end{macrocode}
-% Bold calligraphic characters.\indexpage{keywordbcal=keyword \texttt{bcal}}
-% \begin{macrocode}
-\def\define@bcal{%
- \protected\def\mathbcal{\M@check@mode\@mathbcal}%
- \def\@mathbcal##1{\M@process@tokens{##1}{bcal}}}
-% \end{macrocode}
-% Bold fraktur characters.\indexpage{keywordbfrak=keyword \texttt{bfrak}}
-% \begin{macrocode}
-\def\define@bfrak{%
- \protected\def\mathbfrak{\M@check@mode\@mathbfrak}%
- \def\@mathbfrak##1{\M@process@tokens{##1}{bfrak}}}
-% \end{macrocode}
-%
% \section{Local Font Changes}\indexpage{local font changes}
%
% This section deals with local font changes. The |\newmathfontcommand| creates macros that change the font for math alphabet characters and is basically a wrapper around |\DeclareMathAlphabet|. First we code |\M@check@csarg|, which accepts two arguments. The |#1| argument is the user-level command that called |\M@check@csarg|, which we use for error messaging, and |#2| should be a single control sequence. The way |\M@check@csarg| scans the following tokens is a bit tricky: (1) check the length of the argument using |\M@check@arglength|; and (2) check that the argument is a control sequence. If the user specifies an argument of the form |{..}|, i.e.\ extra text inside braces, the |\ifcat| will catch it and issue an error. If |\M@check@csarg| likes the input, it sets |\ifM@good@arg| to true, and otherwise, it sets |\ifM@arg@good| to false.
% \begin{macrocode}
\def\M@check@csarg#1#2{%
- \expandafter\ifx\expandafter\@nnil\@gobble#2\@nnil% good
- \ifcat\relax\noexpand#2% good
+ \expandafter\ifx\expandafter\@nnil\@gobble#2\@nnil % good
+ \ifcat\relax\noexpand#2 % good
\M@arg@goodtrue
- \else
+ \else % if #2 not a control sequence
\M@MissingControlSequenceError#1{#2}
\M@arg@goodfalse
\fi
- \else
+ \else % if #2 is multiple tokens
\M@DoubleArgError#1{#2}
\M@arg@goodfalse
\fi}
@@ -1622,8 +1508,8 @@ Happy TeXing!
\M@check@csarg\newmathfontcommand{#1}
\ifM@arg@good
\M@newfont{#2}
- \M@NewFontCommandInfo{#1}{\@tempbase}{\M@f@ntn@me}{#3}{#4}
- \DeclareMathAlphabet{#1}{TU}{\M@f@ntn@me}{#3}{#4}
+ \M@NewFontCommandInfo{#1}{\@tempbase}{\M@f@ntn@meb@se}{#3}{#4}
+ \DeclareMathAlphabet{#1}{TU}{\M@f@ntn@meb@se}{#3}{#4}
\fi}
\@onlypreamble\newmathfontcommand
% \end{macrocode}
@@ -1670,11 +1556,9 @@ Happy TeXing!
% We provide |\newmathbold| and |\newmathboldit| for backwards compatibility but issue a warning.
% \begin{macrocode}
\protected\def\newmathbold{%
- \M@DeprecatedWarning\newmathbold\newmathbf
- \newmathbf}
+ \M@DeprecatedWarning\newmathbold\newmathbf\newmathbf}
\protected\def\newmathboldit{%
- \M@DeprecatedWarning\newmathboldit\newmathbfit
- \newmathbfit}
+ \M@DeprecatedWarning\newmathboldit\newmathbfit\newmathbfit}
% \end{macrocode}
%
% \section{Miscellaneous Material}
@@ -1715,7 +1599,7 @@ Happy TeXing!
% \end{macrocode}
% Define |\RuleThicknessFactor|.
% \begin{macrocode}
- \def\RuleThicknessFactor#1{%
+ \protected\def\RuleThicknessFactor#1{%
\M@check@int{#1}
\ifM@arg@good
\global\M@rule@thickness@factor=#1\relax
@@ -1725,7 +1609,7 @@ Happy TeXing!
% \end{macrocode}
% Define |\IntegralItalicFactor|.
% \begin{macrocode}
- \def\IntegralItalicFactor#1{%
+ \protected\def\IntegralItalicFactor#1{%
\M@check@int{#1}
\ifM@arg@good
\global\M@integral@italic@factor=#1\relax
@@ -1735,7 +1619,7 @@ Happy TeXing!
% \end{macrocode}
% Define |\SurdHorizontalFactor|.
% \begin{macrocode}
- \def\SurdHorizontalFactor#1{%
+ \protected\def\SurdHorizontalFactor#1{%
\M@check@int{#1}
\ifM@arg@good
\global\M@surd@horizontal@factor=#1\relax
@@ -1745,7 +1629,7 @@ Happy TeXing!
% \end{macrocode}
% Define |\SurdVerticalFactor|.
% \begin{macrocode}
- \def\SurdVerticalFactor#1{%
+ \protected\def\SurdVerticalFactor#1{%
\M@check@int{#1}
\ifM@arg@good
\global\M@surd@vertical@factor=#1\relax
@@ -1759,7 +1643,7 @@ Happy TeXing!
\@tfor\@i:=\RuleThicknessFactor\IntegralItalicFactor\SurdHorizontalFactor
\SurdVerticalFactor\CharmLine\CharmFile\mathconstantsfont
\do{%
- \expandafter\edef\@i{\noexpand\M@NoFontAdjustError
+ \protected\expandafter\edef\@i{\noexpand\M@NoFontAdjustError
\expandafter\noexpand\@i
\noexpand\@gobble}}
\fi
@@ -1774,6 +1658,7 @@ Happy TeXing!
\@onlypreamble\CharmFile
% \end{macrocode}
% Provide the command to reset the kernel. I am not sure that we need this macro, but it will stay in the package for backwards compatibility.
+% \indexpage{Internal commands restored}
% \begin{macrocode}
\def\restoremathinternals{%
\ifx\set@mathchar\@@set@mathchar
@@ -1830,30 +1715,7 @@ Happy TeXing!
\fi
\fi
% \end{macrocode}
-% Warn the user about a possible cosmetic issue arising from a clash with the |align| environment from \textsf{amsmath}. Inside a group, we use |\@tempswa| to check whether the user declared one of the letterlike symbol keywords. If yes, we test whether the user loaded \textsf{amsmath} and if so issue a warning.\indexpage{amsmath=\textsf{amsmath}}
-% \begin{macrocode}
-\AtBeginDocument{%
- \bgroup\@tempswafalse
- \ifM@bb
- \@tempswatrue
- \else\ifM@cal
- \@tempswatrue
- \else\ifM@frak
- \@tempawatrue
- \else\ifM@bfrak
- \@tempswatrue
- \fi
- \fi
- \fi
- \fi
- \expandafter\egroup\if@tempswa
- \@ifpackageloaded{amsmath}{\PackageWarningNoLine{mathfont}
- {\MessageBreak Package amsmath detected. Some warning\MessageBreak
- messages for letterlike characters may be\MessageBreak
- duplicated inside the align environment}}{}
- \fi}
-% \end{macrocode}
-% Write to the |log| file |\AtBeginDocument| all font changes carried out by \textsf{mathfont}. The command |\keyword@info@begindocument| accepts two arguments. One is a keyword-argument from |\mathfont|, and the other is a number of spaces. The spaces make the messages line up with each other in the log file.\indexpage{log file=\texttt{log} file}
+% Write to the |log| file |\AtBeginDocument| all font changes carried out by \textsf{mathfont}. The command |\keyword@info@begindocument| accepts two arguments and is what acutally prints the informational message after the preamble. One argument is a keyword-argument from |\mathfont|, and the other is a number of spaces. The spaces make the messages line up with each other in the log file.\indexpage{log file=\texttt{log} file}
% \begin{macrocode}
\def\keyword@info@begindocument#1:#2\@nil{%
\expandafter\ifx % next line is two cs to be compared
@@ -1868,7 +1730,7 @@ Happy TeXing!
% Now print the messages.
% \begin{macrocode}
\AtBeginDocument{%
- \def\@tempa{% <---- everything should be 13 characters long plus :
+ \def\@tempa{% <-- everything should be 14 characters long
upper:\@spaces\@spaces,%
lower:\@spaces\@spaces,%
diacritics:\space\space\space,%
@@ -1893,7 +1755,7 @@ Happy TeXing!
frak:\@spaces\@spaces\space,%
bcal:\@spaces\@spaces\space,%
bfrak:\@spaces\@spaces}
- \wlog{^^JPackage mathfont Info: List of changes made in the preamble---}
+ \wlog{^^JPackage mathfont Info: List of changes made in the preamble.}
\@for\@i:=\@tempa\do{%
\expandafter\keyword@info@begindocument\@i\@nil}
\wlog{}}
@@ -1940,7 +1802,7 @@ Happy TeXing!
%
%
%
-% The next three sections implement Lua-based font adjustments and apply only if the user has enabled font adjustment. Most of the implementation happens through Lua code, but we need some \TeX\ code in case the user wants to adjust character metric information. Here is a rough outline of what needs to happen in the next three sections:
+% The next three sections implement Lua-based font adjustments and apply only if the user has enabled font adjustment. Most of the implementation happens through Lua code, but we need some \TeX\ code in case the user wants to adjust character metric information. Here is a rough outline of what happens in the next three sections:
% \begin{enumerate}\itemsep\z@
% \item Initialize a Lua table that contains new metrics for certain characters specific to math mode, such as letters with wider bounding boxes and large operator symbols.
% \item Provide an interface for the user to change this metric information.
@@ -2353,7 +2215,7 @@ end
%
%
% \begin{figure}[t]
-% \centerline{\bfseries Table 3: Callbacks Created by \textsf{mathfont}\strut}
+% \centerline{\bfseries Table 4: Callbacks Created by \textsf{mathfont}\strut}
% \begin{tabularx}\textwidth{lXl}\toprule
% Callback Name & Called? & Default Behavior\\\midrule
% |"mathfont.inspect_font"| & Always & none\\\midrule
@@ -2369,7 +2231,7 @@ end
%
%
%
-% This section contains the Lua functions that actually modify the font during loading. The three functions |set_nomath_true|, |math_constants|, and |apply_charm_info| do most of the heavy lifting, and we set them as the default behavior for three callbacks. In total, \textsf{mathfont} defines six different callbacks and calls them inside the function |adjust_font|---see table~3 for a list. Each callback accepts a fontdata object as an argument and returns nothing. You can use these callbacks to change \textsf{mathfont}'s default modifications or to modify a fontdata object before or after \textsf{mathfont} looks at it. Be aware that if you add a function to any of the |disable_nomath|, |add_math_constants|, or |fix_character_metrics| callbacks, Lua\TeX\ will not call the default |mathfont| function associated with the callback anymore. In other words, do not mess with these three callbacks unless you are duplicating the functionality of the corresponding ``Default Behavior'' function from table~3.
+% This section contains the Lua functions that actually modify the font during loading. The three functions |set_nomath_true|, |math_constants|, and |apply_charm_info| do most of the heavy lifting, and we set them as the default behavior for three callbacks. In total, \textsf{mathfont} defines six different callbacks and calls them inside the function |adjust_font|---see table~4 for a list. Each callback accepts a fontdata object as an argument and returns nothing. You can use these callbacks to change \textsf{mathfont}'s default modifications or to modify a fontdata object before or after \textsf{mathfont} looks at it. Be aware that if you add a function to any of the |disable_nomath|, |add_math_constants|, or |fix_character_metrics| callbacks, Lua\TeX\ will not call the default |mathfont| function associated with the callback anymore. In other words, do not mess with these three callbacks unless you are duplicating the functionality of the corresponding ``Default Behavior'' function from table~4.
%
% We begin with the functions that modify character subtables in the font table, and in all cases, we return a new character table (or set of character tables in the case of type |e|) that we insert into the font object. For types |a| and |e|, we code the table from scratch, and for type |u|, we add information to the character tables that already exist in the font object. The three functions for assembling character tables take three arguments. The |index| argument is the unicode index of the base character that the function is modifying. The |charm_data| argument is the subtable in |mathfont| of charm information that corresponds to |index|, and the |fontdata| argument is a font object. We will pull information from |charm_data| and |fontdata| to assemble the new table.
%
@@ -2686,7 +2548,7 @@ end
function mathfont.math_constants(fontdata)
fontdata.MathConstants = fontdata.MathConstants or {}
% \end{macrocode}
-% First evaluate the dimensions from the font object that we will use in determining other math parameter values. The |A_height| is the height of the capital ``A'' character, and the |y_depth| is the depth of the minuscule ``y'' character. Both will be 0 if the font does not have the correct character.
+% First evaluate the dimensions from the font object that we will use in determining other math parameter values. The |A_height| is the height of the capital ``A'' character, and the |y_depth| is the depth of the lower-case ``y'' character. Both will be 0 if the font does not have the correct character.
% \begin{macrocode}
local size = fontdata.size or 0
local ex = fontdata.parameters.x_height or 0
@@ -3113,7 +2975,7 @@ mathfont:new_type_a(122, 1044505, {100, 50, -100, 0}) % z
mathfont:new_type_a(305, 1044506, {100, 100, -150, 0}) % \imath
mathfont:new_type_a(567, 1044507, {700, 50, -150, 0}) % \jmath
% \end{macrocode}
-% Capital Latin letters will fill unicode slots U+FF020 through U+FF039.
+% Upper-case Latin letters will fill unicode slots U+FF020 through U+FF039.
% \begin{macrocode}
mathfont:new_type_a(65, 1044512, {50, 0, 150, 0}) % A
mathfont:new_type_a(66, 1044513, {50, 0, 0, 0}) % B
@@ -3175,7 +3037,7 @@ mathfont:new_type_u(1009, {-50, 0}) % \varrho
mathfont:new_type_u(962, {-50, 0}) % \varsigma
mathfont:new_type_u(966, {0, 0}) % \varphi
% \end{macrocode}
-% Capital Greek characters. Same as previously.
+% Upper-case Greek characters. Same as previously.
% \begin{macrocode}
mathfont:new_type_u(913, {0, 0}) % \Alpha
mathfont:new_type_u(914, {0, 0}) % \Beta
@@ -3719,7 +3581,7 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
\def\M@operator@set{%
\ifM@adjust@font
\edef\M@operator@num{\number\csname symM\M@operatorshape\@tempa\endcsname}
- \def\M@default@latin@operator{%
+ \protected\edef\M@operator@mathcodes{%
\Umathcode`A=7+\M@operator@num+`A\relax
\Umathcode`B=7+\M@operator@num+`B\relax
\Umathcode`C=7+\M@operator@num+`C\relax
@@ -3775,13 +3637,13 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
\Umathchardef\imath=7+\M@operator@num+1044506\relax
\Umathchardef\jmath=7+\M@operator@num+1044500\relax}
\else
- \let\M@default@latin@operator\@empty
+ \let\M@operator@mathcodes\@empty
\fi
% \end{macrocode}
% Then we change the |\operator@font| definition and if necessary change the math codes.
% \begin{macrocode}
\xdef\operator@font{\noexpand\mathgroup
- \csname symM\M@operatorshape\@tempa\endcsname\M@default@latin@operator}}
+ \csname symM\M@operatorshape\@tempa\endcsname\M@operator@mathcodes}}
% \end{macrocode}
% Set delimiters.\indexpage{keyworddelimiters=keyword \texttt{delimiters}}
% \begin{macrocode}
@@ -4346,311 +4208,352 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
\DeclareMathSymbol{\lcirclearrow}{\mathrel}{\M@arrows@font}{"27F2}
\DeclareMathSymbol{\rcirclearrow}{\mathrel}{\M@arrows@font}{"27F3}}
% \end{macrocode}
-% Set blackboard bold letters and numbers.\indexpage{keywordbb=keyword \texttt{bb}}
+% Set blackboard bold letters and numbers. The alphanumeric keywords work a bit differently from the other font-setting commands. We define |\mathbb| here, which takes a single argument and is essentially a wrapper around |\M@bb@mathcodes|. That command changes the |\Umathcode|s of letters to the unicode hex values of corresponding blackboard-bold characters, and throughout, |\M@bb@num| stores the family number of the sumbol font for the |bb| character class. In the definition of |\mathbb|, we use |\begingroup| and |\endgroup| to avoid creating unexpected atoms. The other alphanumeric keywords work similarly.\indexpage{keywordbb=keyword \texttt{bb}}
% \begin{macrocode}
\def\M@bb@set{%
- \edef\M@bb@font{M\M@bbshape\@tempa}
- \DeclareMathSymbol{\M@bb@A}{\mathord}{\M@bb@font}{"1D538}
- \DeclareMathSymbol{\M@bb@B}{\mathord}{\M@bb@font}{"1D539}
- \DeclareMathSymbol{\M@bb@C}{\mathord}{\M@bb@font}{"2102}
- \DeclareMathSymbol{\M@bb@D}{\mathord}{\M@bb@font}{"1D53B}
- \DeclareMathSymbol{\M@bb@E}{\mathord}{\M@bb@font}{"1D53C}
- \DeclareMathSymbol{\M@bb@F}{\mathord}{\M@bb@font}{"1D53D}
- \DeclareMathSymbol{\M@bb@G}{\mathord}{\M@bb@font}{"1D53E}
- \DeclareMathSymbol{\M@bb@H}{\mathord}{\M@bb@font}{"210D}
- \DeclareMathSymbol{\M@bb@I}{\mathord}{\M@bb@font}{"1D540}
- \DeclareMathSymbol{\M@bb@J}{\mathord}{\M@bb@font}{"1D541}
- \DeclareMathSymbol{\M@bb@K}{\mathord}{\M@bb@font}{"1D542}
- \DeclareMathSymbol{\M@bb@L}{\mathord}{\M@bb@font}{"1D543}
- \DeclareMathSymbol{\M@bb@M}{\mathord}{\M@bb@font}{"1D544}
- \DeclareMathSymbol{\M@bb@N}{\mathord}{\M@bb@font}{"2115}
- \DeclareMathSymbol{\M@bb@O}{\mathord}{\M@bb@font}{"1D546}
- \DeclareMathSymbol{\M@bb@P}{\mathord}{\M@bb@font}{"2119}
- \DeclareMathSymbol{\M@bb@Q}{\mathord}{\M@bb@font}{"211A}
- \DeclareMathSymbol{\M@bb@R}{\mathord}{\M@bb@font}{"211D}
- \DeclareMathSymbol{\M@bb@S}{\mathord}{\M@bb@font}{"1D54A}
- \DeclareMathSymbol{\M@bb@T}{\mathord}{\M@bb@font}{"1D54B}
- \DeclareMathSymbol{\M@bb@U}{\mathord}{\M@bb@font}{"1D54C}
- \DeclareMathSymbol{\M@bb@V}{\mathord}{\M@bb@font}{"1D54D}
- \DeclareMathSymbol{\M@bb@W}{\mathord}{\M@bb@font}{"1D54E}
- \DeclareMathSymbol{\M@bb@X}{\mathord}{\M@bb@font}{"1D54F}
- \DeclareMathSymbol{\M@bb@Y}{\mathord}{\M@bb@font}{"1D550}
- \DeclareMathSymbol{\M@bb@Z}{\mathord}{\M@bb@font}{"2124}
- \DeclareMathSymbol{\M@bb@a}{\mathord}{\M@bb@font}{"1D552}
- \DeclareMathSymbol{\M@bb@b}{\mathord}{\M@bb@font}{"1D553}
- \DeclareMathSymbol{\M@bb@c}{\mathord}{\M@bb@font}{"1D554}
- \DeclareMathSymbol{\M@bb@d}{\mathord}{\M@bb@font}{"1D555}
- \DeclareMathSymbol{\M@bb@e}{\mathord}{\M@bb@font}{"1D556}
- \DeclareMathSymbol{\M@bb@f}{\mathord}{\M@bb@font}{"1D557}
- \DeclareMathSymbol{\M@bb@g}{\mathord}{\M@bb@font}{"1D558}
- \DeclareMathSymbol{\M@bb@h}{\mathord}{\M@bb@font}{"1D559}
- \DeclareMathSymbol{\M@bb@i}{\mathord}{\M@bb@font}{"1D55A}
- \DeclareMathSymbol{\M@bb@j}{\mathord}{\M@bb@font}{"1D55B}
- \DeclareMathSymbol{\M@bb@k}{\mathord}{\M@bb@font}{"1D55C}
- \DeclareMathSymbol{\M@bb@l}{\mathord}{\M@bb@font}{"1D55D}
- \DeclareMathSymbol{\M@bb@m}{\mathord}{\M@bb@font}{"1D55E}
- \DeclareMathSymbol{\M@bb@n}{\mathord}{\M@bb@font}{"1D55F}
- \DeclareMathSymbol{\M@bb@o}{\mathord}{\M@bb@font}{"1D560}
- \DeclareMathSymbol{\M@bb@p}{\mathord}{\M@bb@font}{"1D561}
- \DeclareMathSymbol{\M@bb@q}{\mathord}{\M@bb@font}{"1D562}
- \DeclareMathSymbol{\M@bb@r}{\mathord}{\M@bb@font}{"1D563}
- \DeclareMathSymbol{\M@bb@s}{\mathord}{\M@bb@font}{"1D564}
- \DeclareMathSymbol{\M@bb@t}{\mathord}{\M@bb@font}{"1D565}
- \DeclareMathSymbol{\M@bb@u}{\mathord}{\M@bb@font}{"1D566}
- \DeclareMathSymbol{\M@bb@v}{\mathord}{\M@bb@font}{"1D567}
- \DeclareMathSymbol{\M@bb@w}{\mathord}{\M@bb@font}{"1D568}
- \DeclareMathSymbol{\M@bb@x}{\mathord}{\M@bb@font}{"1D569}
- \DeclareMathSymbol{\M@bb@y}{\mathord}{\M@bb@font}{"1D56A}
- \DeclareMathSymbol{\M@bb@z}{\mathord}{\M@bb@font}{"1D56B}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@0\endcsname}{\mathord}{\M@bb@font}{"1D7D8}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@1\endcsname}{\mathord}{\M@bb@font}{"1D7D9}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@2\endcsname}{\mathord}{\M@bb@font}{"1D7DA}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@3\endcsname}{\mathord}{\M@bb@font}{"1D7DB}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@4\endcsname}{\mathord}{\M@bb@font}{"1D7DC}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@5\endcsname}{\mathord}{\M@bb@font}{"1D7DD}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@6\endcsname}{\mathord}{\M@bb@font}{"1D7DE}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@7\endcsname}{\mathord}{\M@bb@font}{"1D7DF}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@8\endcsname}{\mathord}{\M@bb@font}{"1D7E0}
- \expandafter\DeclareMathSymbol\expandafter
- {\csname M@bb@9\endcsname}{\mathord}{\M@bb@font}{"1D7E1}}
+ \protected\def\mathbb##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathbb
+ $%
+ \fi
+ \begingroup
+ \M@bb@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@bb@num{\number\csname symM\M@bbshape\@tempa\endcsname}
+ \protected\edef\M@bb@mathcodes{%
+ \Umathcode`A=0+\M@bb@num"1D538\relax
+ \Umathcode`B=0+\M@bb@num"1D539\relax
+ \Umathcode`C=0+\M@bb@num"2102\relax
+ \Umathcode`D=0+\M@bb@num"1D53B\relax
+ \Umathcode`E=0+\M@bb@num"1D53C\relax
+ \Umathcode`F=0+\M@bb@num"1D53D\relax
+ \Umathcode`G=0+\M@bb@num"1D53E\relax
+ \Umathcode`H=0+\M@bb@num"210D\relax
+ \Umathcode`I=0+\M@bb@num"1D540\relax
+ \Umathcode`J=0+\M@bb@num"1D541\relax
+ \Umathcode`K=0+\M@bb@num"1D542\relax
+ \Umathcode`L=0+\M@bb@num"1D543\relax
+ \Umathcode`M=0+\M@bb@num"1D544\relax
+ \Umathcode`N=0+\M@bb@num"2115\relax
+ \Umathcode`O=0+\M@bb@num"1D546\relax
+ \Umathcode`P=0+\M@bb@num"2119\relax
+ \Umathcode`Q=0+\M@bb@num"211A\relax
+ \Umathcode`R=0+\M@bb@num"211D\relax
+ \Umathcode`S=0+\M@bb@num"1D54A\relax
+ \Umathcode`T=0+\M@bb@num"1D54B\relax
+ \Umathcode`U=0+\M@bb@num"1D54C\relax
+ \Umathcode`V=0+\M@bb@num"1D54D\relax
+ \Umathcode`W=0+\M@bb@num"1D54E\relax
+ \Umathcode`X=0+\M@bb@num"1D54F\relax
+ \Umathcode`Y=0+\M@bb@num"1D550\relax
+ \Umathcode`Z=0+\M@bb@num"2124\relax
+ \Umathcode`a=0+\M@bb@num"1D552\relax
+ \Umathcode`b=0+\M@bb@num"1D553\relax
+ \Umathcode`c=0+\M@bb@num"1D554\relax
+ \Umathcode`d=0+\M@bb@num"1D555\relax
+ \Umathcode`e=0+\M@bb@num"1D556\relax
+ \Umathcode`f=0+\M@bb@num"1D557\relax
+ \Umathcode`g=0+\M@bb@num"1D558\relax
+ \Umathcode`h=0+\M@bb@num"1D559\relax
+ \Umathcode`i=0+\M@bb@num"1D55A\relax
+ \Umathcode`j=0+\M@bb@num"1D55B\relax
+ \Umathcode`k=0+\M@bb@num"1D55C\relax
+ \Umathcode`l=0+\M@bb@num"1D55D\relax
+ \Umathcode`m=0+\M@bb@num"1D55E\relax
+ \Umathcode`n=0+\M@bb@num"1D55F\relax
+ \Umathcode`o=0+\M@bb@num"1D560\relax
+ \Umathcode`p=0+\M@bb@num"1D561\relax
+ \Umathcode`q=0+\M@bb@num"1D562\relax
+ \Umathcode`r=0+\M@bb@num"1D563\relax
+ \Umathcode`s=0+\M@bb@num"1D564\relax
+ \Umathcode`t=0+\M@bb@num"1D565\relax
+ \Umathcode`u=0+\M@bb@num"1D566\relax
+ \Umathcode`v=0+\M@bb@num"1D567\relax
+ \Umathcode`w=0+\M@bb@num"1D568\relax
+ \Umathcode`x=0+\M@bb@num"1D569\relax
+ \Umathcode`y=0+\M@bb@num"1D56A\relax
+ \Umathcode`z=0+\M@bb@num"1D56B\relax
+ \Umathcode`0=0+\M@bb@num"1D7D8\relax
+ \Umathcode`1=0+\M@bb@num"1D7D9\relax
+ \Umathcode`2=0+\M@bb@num"1D7DA\relax
+ \Umathcode`3=0+\M@bb@num"1D7DB\relax
+ \Umathcode`4=0+\M@bb@num"1D7DC\relax
+ \Umathcode`5=0+\M@bb@num"1D7DD\relax
+ \Umathcode`6=0+\M@bb@num"1D7DE\relax
+ \Umathcode`7=0+\M@bb@num"1D7DF\relax
+ \Umathcode`8=0+\M@bb@num"1D7E0\relax
+ \Umathcode`9=0+\M@bb@num"1D7E1\relax}}
% \end{macrocode}
% Set caligraphic letters.\indexpage{keywordcal=keyword \texttt{cal}}
% \begin{macrocode}
\def\M@cal@set{%
- \edef\M@cal@font{M\M@calshape\@tempa}
- \DeclareMathSymbol{\M@cal@A}{\mathord}{\M@cal@font}{"1D49C}
- \DeclareMathSymbol{\M@cal@B}{\mathord}{\M@cal@font}{"212C}
- \DeclareMathSymbol{\M@cal@C}{\mathord}{\M@cal@font}{"1D49E}
- \DeclareMathSymbol{\M@cal@D}{\mathord}{\M@cal@font}{"1D49F}
- \DeclareMathSymbol{\M@cal@E}{\mathord}{\M@cal@font}{"2130}
- \DeclareMathSymbol{\M@cal@F}{\mathord}{\M@cal@font}{"2131}
- \DeclareMathSymbol{\M@cal@G}{\mathord}{\M@cal@font}{"1D4A2}
- \DeclareMathSymbol{\M@cal@H}{\mathord}{\M@cal@font}{"210B}
- \DeclareMathSymbol{\M@cal@I}{\mathord}{\M@cal@font}{"2110}
- \DeclareMathSymbol{\M@cal@J}{\mathord}{\M@cal@font}{"1D4A5}
- \DeclareMathSymbol{\M@cal@K}{\mathord}{\M@cal@font}{"1D4A6}
- \DeclareMathSymbol{\M@cal@L}{\mathord}{\M@cal@font}{"2112}
- \DeclareMathSymbol{\M@cal@M}{\mathord}{\M@cal@font}{"2133}
- \DeclareMathSymbol{\M@cal@N}{\mathord}{\M@cal@font}{"1D4A9}
- \DeclareMathSymbol{\M@cal@O}{\mathord}{\M@cal@font}{"1D4AA}
- \DeclareMathSymbol{\M@cal@P}{\mathord}{\M@cal@font}{"1D4AB}
- \DeclareMathSymbol{\M@cal@Q}{\mathord}{\M@cal@font}{"1D4AC}
- \DeclareMathSymbol{\M@cal@R}{\mathord}{\M@cal@font}{"211B}
- \DeclareMathSymbol{\M@cal@S}{\mathord}{\M@cal@font}{"1D4AE}
- \DeclareMathSymbol{\M@cal@T}{\mathord}{\M@cal@font}{"1D4AF}
- \DeclareMathSymbol{\M@cal@U}{\mathord}{\M@cal@font}{"1D4B0}
- \DeclareMathSymbol{\M@cal@V}{\mathord}{\M@cal@font}{"1D4B1}
- \DeclareMathSymbol{\M@cal@W}{\mathord}{\M@cal@font}{"1D4B2}
- \DeclareMathSymbol{\M@cal@X}{\mathord}{\M@cal@font}{"1D4B3}
- \DeclareMathSymbol{\M@cal@Y}{\mathord}{\M@cal@font}{"1D4B4}
- \DeclareMathSymbol{\M@cal@Z}{\mathord}{\M@cal@font}{"1D4B5}
- \DeclareMathSymbol{\M@cal@a}{\mathord}{\M@cal@font}{"1D4B6}
- \DeclareMathSymbol{\M@cal@b}{\mathord}{\M@cal@font}{"1D4B7}
- \DeclareMathSymbol{\M@cal@c}{\mathord}{\M@cal@font}{"1D4B8}
- \DeclareMathSymbol{\M@cal@d}{\mathord}{\M@cal@font}{"1D4B9}
- \DeclareMathSymbol{\M@cal@e}{\mathord}{\M@cal@font}{"212F}
- \DeclareMathSymbol{\M@cal@f}{\mathord}{\M@cal@font}{"1D4BB}
- \DeclareMathSymbol{\M@cal@g}{\mathord}{\M@cal@font}{"210A}
- \DeclareMathSymbol{\M@cal@h}{\mathord}{\M@cal@font}{"1D4BD}
- \DeclareMathSymbol{\M@cal@i}{\mathord}{\M@cal@font}{"1D4BE}
- \DeclareMathSymbol{\M@cal@j}{\mathord}{\M@cal@font}{"1D4BF}
- \DeclareMathSymbol{\M@cal@k}{\mathord}{\M@cal@font}{"1D4C0}
- \DeclareMathSymbol{\M@cal@l}{\mathord}{\M@cal@font}{"1D4C1}
- \DeclareMathSymbol{\M@cal@m}{\mathord}{\M@cal@font}{"1D4C2}
- \DeclareMathSymbol{\M@cal@n}{\mathord}{\M@cal@font}{"1D4C3}
- \DeclareMathSymbol{\M@cal@o}{\mathord}{\M@cal@font}{"2134}
- \DeclareMathSymbol{\M@cal@p}{\mathord}{\M@cal@font}{"1D4C5}
- \DeclareMathSymbol{\M@cal@q}{\mathord}{\M@cal@font}{"1D4C6}
- \DeclareMathSymbol{\M@cal@r}{\mathord}{\M@cal@font}{"1D4C7}
- \DeclareMathSymbol{\M@cal@s}{\mathord}{\M@cal@font}{"1D4C8}
- \DeclareMathSymbol{\M@cal@t}{\mathord}{\M@cal@font}{"1D4C9}
- \DeclareMathSymbol{\M@cal@u}{\mathord}{\M@cal@font}{"1D4CA}
- \DeclareMathSymbol{\M@cal@v}{\mathord}{\M@cal@font}{"1D4CB}
- \DeclareMathSymbol{\M@cal@w}{\mathord}{\M@cal@font}{"1D4CC}
- \DeclareMathSymbol{\M@cal@x}{\mathord}{\M@cal@font}{"1D4CD}
- \DeclareMathSymbol{\M@cal@y}{\mathord}{\M@cal@font}{"1D4CE}
- \DeclareMathSymbol{\M@cal@z}{\mathord}{\M@cal@font}{"1D4CF}}
+ \protected\def\mathcal##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathcal
+ $%
+ \fi
+ \begingroup
+ \M@cal@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@cal@num{\number\csname symM\M@calshape\@tempa\endcsname}
+ \protected\edef\M@cal@mathcodes{%
+ \Umathcode`A=0+\M@cal@num"1D49C\relax
+ \Umathcode`B=0+\M@cal@num"212C\relax
+ \Umathcode`C=0+\M@cal@num"1D49E\relax
+ \Umathcode`D=0+\M@cal@num"1D49F\relax
+ \Umathcode`E=0+\M@cal@num"2130\relax
+ \Umathcode`F=0+\M@cal@num"2131\relax
+ \Umathcode`G=0+\M@cal@num"1D4A2\relax
+ \Umathcode`H=0+\M@cal@num"210B\relax
+ \Umathcode`I=0+\M@cal@num"2110\relax
+ \Umathcode`J=0+\M@cal@num"1D4A5\relax
+ \Umathcode`K=0+\M@cal@num"1D4A6\relax
+ \Umathcode`L=0+\M@cal@num"2112\relax
+ \Umathcode`M=0+\M@cal@num"2133\relax
+ \Umathcode`N=0+\M@cal@num"1D4A9\relax
+ \Umathcode`O=0+\M@cal@num"1D4AA\relax
+ \Umathcode`P=0+\M@cal@num"1D4AB\relax
+ \Umathcode`Q=0+\M@cal@num"1D4AC\relax
+ \Umathcode`R=0+\M@cal@num"211B\relax
+ \Umathcode`S=0+\M@cal@num"1D4AE\relax
+ \Umathcode`T=0+\M@cal@num"1D4AF\relax
+ \Umathcode`U=0+\M@cal@num"1D4B0\relax
+ \Umathcode`V=0+\M@cal@num"1D4B1\relax
+ \Umathcode`W=0+\M@cal@num"1D4B2\relax
+ \Umathcode`X=0+\M@cal@num"1D4B3\relax
+ \Umathcode`Y=0+\M@cal@num"1D4B4\relax
+ \Umathcode`Z=0+\M@cal@num"1D4B5\relax
+ \Umathcode`a=0+\M@cal@num"1D4B6\relax
+ \Umathcode`b=0+\M@cal@num"1D4B7\relax
+ \Umathcode`c=0+\M@cal@num"1D4B8\relax
+ \Umathcode`d=0+\M@cal@num"1D4B9\relax
+ \Umathcode`e=0+\M@cal@num"212F\relax
+ \Umathcode`f=0+\M@cal@num"1D4BB\relax
+ \Umathcode`g=0+\M@cal@num"210A\relax
+ \Umathcode`h=0+\M@cal@num"1D4BD\relax
+ \Umathcode`i=0+\M@cal@num"1D4BE\relax
+ \Umathcode`j=0+\M@cal@num"1D4BF\relax
+ \Umathcode`k=0+\M@cal@num"1D4C0\relax
+ \Umathcode`l=0+\M@cal@num"1D4C1\relax
+ \Umathcode`m=0+\M@cal@num"1D4C2\relax
+ \Umathcode`n=0+\M@cal@num"1D4C3\relax
+ \Umathcode`o=0+\M@cal@num"2134\relax
+ \Umathcode`p=0+\M@cal@num"1D4C5\relax
+ \Umathcode`q=0+\M@cal@num"1D4C6\relax
+ \Umathcode`r=0+\M@cal@num"1D4C7\relax
+ \Umathcode`s=0+\M@cal@num"1D4C8\relax
+ \Umathcode`t=0+\M@cal@num"1D4C9\relax
+ \Umathcode`u=0+\M@cal@num"1D4CA\relax
+ \Umathcode`v=0+\M@cal@num"1D4CB\relax
+ \Umathcode`w=0+\M@cal@num"1D4CC\relax
+ \Umathcode`x=0+\M@cal@num"1D4CD\relax
+ \Umathcode`y=0+\M@cal@num"1D4CE\relax
+ \Umathcode`z=0+\M@cal@num"1D4CF\relax}}
% \end{macrocode}
% Set fraktur letters.\indexpage{keywordfrak=keyword \texttt{frak}}
% \begin{macrocode}
\def\M@frak@set{%
- \edef\M@frak@font{M\M@frakshape\@tempa}
- \DeclareMathSymbol{\M@frak@A}{\mathord}{\M@frak@font}{"1D504}
- \DeclareMathSymbol{\M@frak@B}{\mathord}{\M@frak@font}{"1D505}
- \DeclareMathSymbol{\M@frak@C}{\mathord}{\M@frak@font}{"212D}
- \DeclareMathSymbol{\M@frak@D}{\mathord}{\M@frak@font}{"1D507}
- \DeclareMathSymbol{\M@frak@E}{\mathord}{\M@frak@font}{"1D508}
- \DeclareMathSymbol{\M@frak@F}{\mathord}{\M@frak@font}{"1D509}
- \DeclareMathSymbol{\M@frak@G}{\mathord}{\M@frak@font}{"1D50A}
- \DeclareMathSymbol{\M@frak@H}{\mathord}{\M@frak@font}{"210C}
- \DeclareMathSymbol{\M@frak@I}{\mathord}{\M@frak@font}{"2111}
- \DeclareMathSymbol{\M@frak@J}{\mathord}{\M@frak@font}{"1D50D}
- \DeclareMathSymbol{\M@frak@K}{\mathord}{\M@frak@font}{"1D50E}
- \DeclareMathSymbol{\M@frak@L}{\mathord}{\M@frak@font}{"1D50F}
- \DeclareMathSymbol{\M@frak@M}{\mathord}{\M@frak@font}{"1D510}
- \DeclareMathSymbol{\M@frak@N}{\mathord}{\M@frak@font}{"1D511}
- \DeclareMathSymbol{\M@frak@O}{\mathord}{\M@frak@font}{"1D512}
- \DeclareMathSymbol{\M@frak@P}{\mathord}{\M@frak@font}{"1D513}
- \DeclareMathSymbol{\M@frak@Q}{\mathord}{\M@frak@font}{"1D514}
- \DeclareMathSymbol{\M@frak@R}{\mathord}{\M@frak@font}{"211C}
- \DeclareMathSymbol{\M@frak@S}{\mathord}{\M@frak@font}{"1D516}
- \DeclareMathSymbol{\M@frak@T}{\mathord}{\M@frak@font}{"1D517}
- \DeclareMathSymbol{\M@frak@U}{\mathord}{\M@frak@font}{"1D518}
- \DeclareMathSymbol{\M@frak@V}{\mathord}{\M@frak@font}{"1D519}
- \DeclareMathSymbol{\M@frak@W}{\mathord}{\M@frak@font}{"1D51A}
- \DeclareMathSymbol{\M@frak@X}{\mathord}{\M@frak@font}{"1D51B}
- \DeclareMathSymbol{\M@frak@Y}{\mathord}{\M@frak@font}{"1D51C}
- \DeclareMathSymbol{\M@frak@Z}{\mathord}{\M@frak@font}{"2128}
- \DeclareMathSymbol{\M@frak@a}{\mathord}{\M@frak@font}{"1D51E}
- \DeclareMathSymbol{\M@frak@b}{\mathord}{\M@frak@font}{"1D51F}
- \DeclareMathSymbol{\M@frak@c}{\mathord}{\M@frak@font}{"1D520}
- \DeclareMathSymbol{\M@frak@d}{\mathord}{\M@frak@font}{"1D521}
- \DeclareMathSymbol{\M@frak@e}{\mathord}{\M@frak@font}{"1D522}
- \DeclareMathSymbol{\M@frak@f}{\mathord}{\M@frak@font}{"1D523}
- \DeclareMathSymbol{\M@frak@g}{\mathord}{\M@frak@font}{"1D524}
- \DeclareMathSymbol{\M@frak@h}{\mathord}{\M@frak@font}{"1D525}
- \DeclareMathSymbol{\M@frak@i}{\mathord}{\M@frak@font}{"1D526}
- \DeclareMathSymbol{\M@frak@j}{\mathord}{\M@frak@font}{"1D527}
- \DeclareMathSymbol{\M@frak@k}{\mathord}{\M@frak@font}{"1D528}
- \DeclareMathSymbol{\M@frak@l}{\mathord}{\M@frak@font}{"1D529}
- \DeclareMathSymbol{\M@frak@m}{\mathord}{\M@frak@font}{"1D52A}
- \DeclareMathSymbol{\M@frak@n}{\mathord}{\M@frak@font}{"1D52B}
- \DeclareMathSymbol{\M@frak@o}{\mathord}{\M@frak@font}{"1D52C}
- \DeclareMathSymbol{\M@frak@p}{\mathord}{\M@frak@font}{"1D52D}
- \DeclareMathSymbol{\M@frak@q}{\mathord}{\M@frak@font}{"1D52E}
- \DeclareMathSymbol{\M@frak@r}{\mathord}{\M@frak@font}{"1D52F}
- \DeclareMathSymbol{\M@frak@s}{\mathord}{\M@frak@font}{"1D530}
- \DeclareMathSymbol{\M@frak@t}{\mathord}{\M@frak@font}{"1D531}
- \DeclareMathSymbol{\M@frak@u}{\mathord}{\M@frak@font}{"1D532}
- \DeclareMathSymbol{\M@frak@v}{\mathord}{\M@frak@font}{"1D533}
- \DeclareMathSymbol{\M@frak@w}{\mathord}{\M@frak@font}{"1D534}
- \DeclareMathSymbol{\M@frak@x}{\mathord}{\M@frak@font}{"1D535}
- \DeclareMathSymbol{\M@frak@y}{\mathord}{\M@frak@font}{"1D536}
- \DeclareMathSymbol{\M@frak@z}{\mathord}{\M@frak@font}{"1D537}}
+ \protected\def\mathfrak##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathfrak
+ $%
+ \fi
+ \begingroup
+ \M@frak@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@frak@num{\number\csname symM\M@frakshape\@tempa\endcsname}
+ \protected\edef\M@frak@mathcodes{%
+ \Umathcode`A=0+\M@frak@num"1D504\relax
+ \Umathcode`B=0+\M@frak@num"1D505\relax
+ \Umathcode`C=0+\M@frak@num"212D\relax
+ \Umathcode`D=0+\M@frak@num"1D507\relax
+ \Umathcode`E=0+\M@frak@num"1D508\relax
+ \Umathcode`F=0+\M@frak@num"1D509\relax
+ \Umathcode`G=0+\M@frak@num"1D50A\relax
+ \Umathcode`H=0+\M@frak@num"210C\relax
+ \Umathcode`I=0+\M@frak@num"2111\relax
+ \Umathcode`J=0+\M@frak@num"1D50D\relax
+ \Umathcode`K=0+\M@frak@num"1D50E\relax
+ \Umathcode`L=0+\M@frak@num"1D50F\relax
+ \Umathcode`M=0+\M@frak@num"1D510\relax
+ \Umathcode`N=0+\M@frak@num"1D511\relax
+ \Umathcode`O=0+\M@frak@num"1D512\relax
+ \Umathcode`P=0+\M@frak@num"1D513\relax
+ \Umathcode`Q=0+\M@frak@num"1D514\relax
+ \Umathcode`R=0+\M@frak@num"211C\relax
+ \Umathcode`S=0+\M@frak@num"1D516\relax
+ \Umathcode`T=0+\M@frak@num"1D517\relax
+ \Umathcode`U=0+\M@frak@num"1D518\relax
+ \Umathcode`V=0+\M@frak@num"1D519\relax
+ \Umathcode`W=0+\M@frak@num"1D51A\relax
+ \Umathcode`X=0+\M@frak@num"1D51B\relax
+ \Umathcode`Y=0+\M@frak@num"1D51C\relax
+ \Umathcode`Z=0+\M@frak@num"2128\relax
+ \Umathcode`a=0+\M@frak@num"1D51E\relax
+ \Umathcode`b=0+\M@frak@num"1D51F\relax
+ \Umathcode`c=0+\M@frak@num"1D520\relax
+ \Umathcode`d=0+\M@frak@num"1D521\relax
+ \Umathcode`e=0+\M@frak@num"1D522\relax
+ \Umathcode`f=0+\M@frak@num"1D523\relax
+ \Umathcode`g=0+\M@frak@num"1D524\relax
+ \Umathcode`h=0+\M@frak@num"1D525\relax
+ \Umathcode`i=0+\M@frak@num"1D526\relax
+ \Umathcode`j=0+\M@frak@num"1D527\relax
+ \Umathcode`k=0+\M@frak@num"1D528\relax
+ \Umathcode`l=0+\M@frak@num"1D529\relax
+ \Umathcode`m=0+\M@frak@num"1D52A\relax
+ \Umathcode`n=0+\M@frak@num"1D52B\relax
+ \Umathcode`o=0+\M@frak@num"1D52C\relax
+ \Umathcode`p=0+\M@frak@num"1D52D\relax
+ \Umathcode`q=0+\M@frak@num"1D52E\relax
+ \Umathcode`r=0+\M@frak@num"1D52F\relax
+ \Umathcode`s=0+\M@frak@num"1D530\relax
+ \Umathcode`t=0+\M@frak@num"1D531\relax
+ \Umathcode`u=0+\M@frak@num"1D532\relax
+ \Umathcode`v=0+\M@frak@num"1D533\relax
+ \Umathcode`w=0+\M@frak@num"1D534\relax
+ \Umathcode`x=0+\M@frak@num"1D535\relax
+ \Umathcode`y=0+\M@frak@num"1D536\relax
+ \Umathcode`z=0+\M@frak@num"1D537\relax}}
% \end{macrocode}
% Set bold caligraphic letters.\indexpage{keywordbcal=keyword \texttt{bcal}}
% \begin{macrocode}
\def\M@bcal@set{%
- \edef\M@bcal@font{M\M@bcalshape\@tempa}
- \DeclareMathSymbol{\M@bcal@A}{\mathord}{\M@bcal@font}{"1D4D0}
- \DeclareMathSymbol{\M@bcal@B}{\mathord}{\M@bcal@font}{"1D4D1}
- \DeclareMathSymbol{\M@bcal@C}{\mathord}{\M@bcal@font}{"1D4D2}
- \DeclareMathSymbol{\M@bcal@D}{\mathord}{\M@bcal@font}{"1D4D3}
- \DeclareMathSymbol{\M@bcal@E}{\mathord}{\M@bcal@font}{"1D4D4}
- \DeclareMathSymbol{\M@bcal@F}{\mathord}{\M@bcal@font}{"1D4D5}
- \DeclareMathSymbol{\M@bcal@G}{\mathord}{\M@bcal@font}{"1D4D6}
- \DeclareMathSymbol{\M@bcal@H}{\mathord}{\M@bcal@font}{"1D4D7}
- \DeclareMathSymbol{\M@bcal@I}{\mathord}{\M@bcal@font}{"1D4D8}
- \DeclareMathSymbol{\M@bcal@J}{\mathord}{\M@bcal@font}{"1D4D9}
- \DeclareMathSymbol{\M@bcal@K}{\mathord}{\M@bcal@font}{"1D4DA}
- \DeclareMathSymbol{\M@bcal@L}{\mathord}{\M@bcal@font}{"1D4DB}
- \DeclareMathSymbol{\M@bcal@M}{\mathord}{\M@bcal@font}{"1D4DC}
- \DeclareMathSymbol{\M@bcal@N}{\mathord}{\M@bcal@font}{"1D4DD}
- \DeclareMathSymbol{\M@bcal@O}{\mathord}{\M@bcal@font}{"1D4DE}
- \DeclareMathSymbol{\M@bcal@P}{\mathord}{\M@bcal@font}{"1D4DF}
- \DeclareMathSymbol{\M@bcal@Q}{\mathord}{\M@bcal@font}{"1D4E0}
- \DeclareMathSymbol{\M@bcal@R}{\mathord}{\M@bcal@font}{"1D4E1}
- \DeclareMathSymbol{\M@bcal@S}{\mathord}{\M@bcal@font}{"1D4E2}
- \DeclareMathSymbol{\M@bcal@T}{\mathord}{\M@bcal@font}{"1D4E3}
- \DeclareMathSymbol{\M@bcal@U}{\mathord}{\M@bcal@font}{"1D4E4}
- \DeclareMathSymbol{\M@bcal@V}{\mathord}{\M@bcal@font}{"1D4E5}
- \DeclareMathSymbol{\M@bcal@W}{\mathord}{\M@bcal@font}{"1D4E6}
- \DeclareMathSymbol{\M@bcal@X}{\mathord}{\M@bcal@font}{"1D4E7}
- \DeclareMathSymbol{\M@bcal@Y}{\mathord}{\M@bcal@font}{"1D4E8}
- \DeclareMathSymbol{\M@bcal@Z}{\mathord}{\M@bcal@font}{"1D4E9}
- \DeclareMathSymbol{\M@bcal@a}{\mathord}{\M@bcal@font}{"1D4EA}
- \DeclareMathSymbol{\M@bcal@b}{\mathord}{\M@bcal@font}{"1D4EB}
- \DeclareMathSymbol{\M@bcal@c}{\mathord}{\M@bcal@font}{"1D4EC}
- \DeclareMathSymbol{\M@bcal@d}{\mathord}{\M@bcal@font}{"1D4ED}
- \DeclareMathSymbol{\M@bcal@e}{\mathord}{\M@bcal@font}{"1D4EE}
- \DeclareMathSymbol{\M@bcal@f}{\mathord}{\M@bcal@font}{"1D4EF}
- \DeclareMathSymbol{\M@bcal@g}{\mathord}{\M@bcal@font}{"1D4F0}
- \DeclareMathSymbol{\M@bcal@h}{\mathord}{\M@bcal@font}{"1D4F1}
- \DeclareMathSymbol{\M@bcal@i}{\mathord}{\M@bcal@font}{"1D4F2}
- \DeclareMathSymbol{\M@bcal@j}{\mathord}{\M@bcal@font}{"1D4F3}
- \DeclareMathSymbol{\M@bcal@k}{\mathord}{\M@bcal@font}{"1D4F4}
- \DeclareMathSymbol{\M@bcal@l}{\mathord}{\M@bcal@font}{"1D4F5}
- \DeclareMathSymbol{\M@bcal@m}{\mathord}{\M@bcal@font}{"1D4F6}
- \DeclareMathSymbol{\M@bcal@n}{\mathord}{\M@bcal@font}{"1D4F7}
- \DeclareMathSymbol{\M@bcal@o}{\mathord}{\M@bcal@font}{"1D4F8}
- \DeclareMathSymbol{\M@bcal@p}{\mathord}{\M@bcal@font}{"1D4F9}
- \DeclareMathSymbol{\M@bcal@q}{\mathord}{\M@bcal@font}{"1D4FA}
- \DeclareMathSymbol{\M@bcal@r}{\mathord}{\M@bcal@font}{"1D4FB}
- \DeclareMathSymbol{\M@bcal@s}{\mathord}{\M@bcal@font}{"1D4FC}
- \DeclareMathSymbol{\M@bcal@t}{\mathord}{\M@bcal@font}{"1D4FD}
- \DeclareMathSymbol{\M@bcal@u}{\mathord}{\M@bcal@font}{"1D4FE}
- \DeclareMathSymbol{\M@bcal@v}{\mathord}{\M@bcal@font}{"1D4FF}
- \DeclareMathSymbol{\M@bcal@w}{\mathord}{\M@bcal@font}{"1D500}
- \DeclareMathSymbol{\M@bcal@x}{\mathord}{\M@bcal@font}{"1D501}
- \DeclareMathSymbol{\M@bcal@y}{\mathord}{\M@bcal@font}{"1D502}
- \DeclareMathSymbol{\M@bcal@z}{\mathord}{\M@bcal@font}{"1D503}}
+ \protected\def\mathbcal##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathbcal
+ $%
+ \fi
+ \begingroup
+ \M@bcal@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@bcal@num{\number\csname symM\M@bcalshape\@tempa\endcsname}
+ \protected\edef\M@bcal@mathcodes{%
+ \Umathcode`A=0+\M@bcal@num"1D4D0\relax
+ \Umathcode`B=0+\M@bcal@num"1D4D1\relax
+ \Umathcode`C=0+\M@bcal@num"1D4D2\relax
+ \Umathcode`D=0+\M@bcal@num"1D4D3\relax
+ \Umathcode`E=0+\M@bcal@num"1D4D4\relax
+ \Umathcode`F=0+\M@bcal@num"1D4D5\relax
+ \Umathcode`G=0+\M@bcal@num"1D4D6\relax
+ \Umathcode`H=0+\M@bcal@num"1D4D7\relax
+ \Umathcode`I=0+\M@bcal@num"1D4D8\relax
+ \Umathcode`J=0+\M@bcal@num"1D4D9\relax
+ \Umathcode`K=0+\M@bcal@num"1D4DA\relax
+ \Umathcode`L=0+\M@bcal@num"1D4DB\relax
+ \Umathcode`M=0+\M@bcal@num"1D4DC\relax
+ \Umathcode`N=0+\M@bcal@num"1D4DD\relax
+ \Umathcode`O=0+\M@bcal@num"1D4DE\relax
+ \Umathcode`P=0+\M@bcal@num"1D4DF\relax
+ \Umathcode`Q=0+\M@bcal@num"1D4E0\relax
+ \Umathcode`R=0+\M@bcal@num"1D4E1\relax
+ \Umathcode`S=0+\M@bcal@num"1D4E2\relax
+ \Umathcode`T=0+\M@bcal@num"1D4E3\relax
+ \Umathcode`U=0+\M@bcal@num"1D4E4\relax
+ \Umathcode`V=0+\M@bcal@num"1D4E5\relax
+ \Umathcode`W=0+\M@bcal@num"1D4E6\relax
+ \Umathcode`X=0+\M@bcal@num"1D4E7\relax
+ \Umathcode`Y=0+\M@bcal@num"1D4E8\relax
+ \Umathcode`Z=0+\M@bcal@num"1D4E9\relax
+ \Umathcode`a=0+\M@bcal@num"1D4EA\relax
+ \Umathcode`b=0+\M@bcal@num"1D4EB\relax
+ \Umathcode`c=0+\M@bcal@num"1D4EC\relax
+ \Umathcode`d=0+\M@bcal@num"1D4ED\relax
+ \Umathcode`e=0+\M@bcal@num"1D4EE\relax
+ \Umathcode`f=0+\M@bcal@num"1D4EF\relax
+ \Umathcode`g=0+\M@bcal@num"1D4F0\relax
+ \Umathcode`h=0+\M@bcal@num"1D4F1\relax
+ \Umathcode`i=0+\M@bcal@num"1D4F2\relax
+ \Umathcode`j=0+\M@bcal@num"1D4F3\relax
+ \Umathcode`k=0+\M@bcal@num"1D4F4\relax
+ \Umathcode`l=0+\M@bcal@num"1D4F5\relax
+ \Umathcode`m=0+\M@bcal@num"1D4F6\relax
+ \Umathcode`n=0+\M@bcal@num"1D4F7\relax
+ \Umathcode`o=0+\M@bcal@num"1D4F8\relax
+ \Umathcode`p=0+\M@bcal@num"1D4F9\relax
+ \Umathcode`q=0+\M@bcal@num"1D4FA\relax
+ \Umathcode`r=0+\M@bcal@num"1D4FB\relax
+ \Umathcode`s=0+\M@bcal@num"1D4FC\relax
+ \Umathcode`t=0+\M@bcal@num"1D4FD\relax
+ \Umathcode`u=0+\M@bcal@num"1D4FE\relax
+ \Umathcode`v=0+\M@bcal@num"1D4FF\relax
+ \Umathcode`w=0+\M@bcal@num"1D500\relax
+ \Umathcode`x=0+\M@bcal@num"1D501\relax
+ \Umathcode`y=0+\M@bcal@num"1D502\relax
+ \Umathcode`z=0+\M@bcal@num"1D503\relax}}
% \end{macrocode}
% Set bold fraktur letters.\indexpage{keywordbfrak=keyword \texttt{bfrak}}
% \begin{macrocode}
\def\M@bfrak@set{%
- \edef\M@bfrak@font{M\M@bfrakshape\@tempa}
- \DeclareMathSymbol{\M@bfrak@A}{\mathord}{\M@bfrak@font}{"1D56C}
- \DeclareMathSymbol{\M@bfrak@B}{\mathord}{\M@bfrak@font}{"1D56D}
- \DeclareMathSymbol{\M@bfrak@C}{\mathord}{\M@bfrak@font}{"1D56E}
- \DeclareMathSymbol{\M@bfrak@D}{\mathord}{\M@bfrak@font}{"1D56F}
- \DeclareMathSymbol{\M@bfrak@E}{\mathord}{\M@bfrak@font}{"1D570}
- \DeclareMathSymbol{\M@bfrak@F}{\mathord}{\M@bfrak@font}{"1D571}
- \DeclareMathSymbol{\M@bfrak@G}{\mathord}{\M@bfrak@font}{"1D572}
- \DeclareMathSymbol{\M@bfrak@H}{\mathord}{\M@bfrak@font}{"1D573}
- \DeclareMathSymbol{\M@bfrak@I}{\mathord}{\M@bfrak@font}{"1D574}
- \DeclareMathSymbol{\M@bfrak@J}{\mathord}{\M@bfrak@font}{"1D575}
- \DeclareMathSymbol{\M@bfrak@K}{\mathord}{\M@bfrak@font}{"1D576}
- \DeclareMathSymbol{\M@bfrak@L}{\mathord}{\M@bfrak@font}{"1D577}
- \DeclareMathSymbol{\M@bfrak@M}{\mathord}{\M@bfrak@font}{"1D578}
- \DeclareMathSymbol{\M@bfrak@N}{\mathord}{\M@bfrak@font}{"1D579}
- \DeclareMathSymbol{\M@bfrak@O}{\mathord}{\M@bfrak@font}{"1D57A}
- \DeclareMathSymbol{\M@bfrak@P}{\mathord}{\M@bfrak@font}{"1D57B}
- \DeclareMathSymbol{\M@bfrak@Q}{\mathord}{\M@bfrak@font}{"1D57C}
- \DeclareMathSymbol{\M@bfrak@R}{\mathord}{\M@bfrak@font}{"1D57D}
- \DeclareMathSymbol{\M@bfrak@S}{\mathord}{\M@bfrak@font}{"1D57E}
- \DeclareMathSymbol{\M@bfrak@T}{\mathord}{\M@bfrak@font}{"1D57F}
- \DeclareMathSymbol{\M@bfrak@U}{\mathord}{\M@bfrak@font}{"1D580}
- \DeclareMathSymbol{\M@bfrak@V}{\mathord}{\M@bfrak@font}{"1D581}
- \DeclareMathSymbol{\M@bfrak@W}{\mathord}{\M@bfrak@font}{"1D582}
- \DeclareMathSymbol{\M@bfrak@X}{\mathord}{\M@bfrak@font}{"1D583}
- \DeclareMathSymbol{\M@bfrak@Y}{\mathord}{\M@bfrak@font}{"1D584}
- \DeclareMathSymbol{\M@bfrak@Z}{\mathord}{\M@bfrak@font}{"1D585}
- \DeclareMathSymbol{\M@bfrak@a}{\mathord}{\M@bfrak@font}{"1D586}
- \DeclareMathSymbol{\M@bfrak@b}{\mathord}{\M@bfrak@font}{"1D587}
- \DeclareMathSymbol{\M@bfrak@c}{\mathord}{\M@bfrak@font}{"1D588}
- \DeclareMathSymbol{\M@bfrak@d}{\mathord}{\M@bfrak@font}{"1D589}
- \DeclareMathSymbol{\M@bfrak@e}{\mathord}{\M@bfrak@font}{"1D58A}
- \DeclareMathSymbol{\M@bfrak@f}{\mathord}{\M@bfrak@font}{"1D58B}
- \DeclareMathSymbol{\M@bfrak@g}{\mathord}{\M@bfrak@font}{"1D58C}
- \DeclareMathSymbol{\M@bfrak@h}{\mathord}{\M@bfrak@font}{"1D58D}
- \DeclareMathSymbol{\M@bfrak@i}{\mathord}{\M@bfrak@font}{"1D58E}
- \DeclareMathSymbol{\M@bfrak@j}{\mathord}{\M@bfrak@font}{"1D58F}
- \DeclareMathSymbol{\M@bfrak@k}{\mathord}{\M@bfrak@font}{"1D590}
- \DeclareMathSymbol{\M@bfrak@l}{\mathord}{\M@bfrak@font}{"1D591}
- \DeclareMathSymbol{\M@bfrak@m}{\mathord}{\M@bfrak@font}{"1D592}
- \DeclareMathSymbol{\M@bfrak@n}{\mathord}{\M@bfrak@font}{"1D593}
- \DeclareMathSymbol{\M@bfrak@o}{\mathord}{\M@bfrak@font}{"1D594}
- \DeclareMathSymbol{\M@bfrak@p}{\mathord}{\M@bfrak@font}{"1D595}
- \DeclareMathSymbol{\M@bfrak@q}{\mathord}{\M@bfrak@font}{"1D596}
- \DeclareMathSymbol{\M@bfrak@r}{\mathord}{\M@bfrak@font}{"1D597}
- \DeclareMathSymbol{\M@bfrak@s}{\mathord}{\M@bfrak@font}{"1D598}
- \DeclareMathSymbol{\M@bfrak@t}{\mathord}{\M@bfrak@font}{"1D599}
- \DeclareMathSymbol{\M@bfrak@u}{\mathord}{\M@bfrak@font}{"1D59A}
- \DeclareMathSymbol{\M@bfrak@v}{\mathord}{\M@bfrak@font}{"1D59B}
- \DeclareMathSymbol{\M@bfrak@w}{\mathord}{\M@bfrak@font}{"1D59C}
- \DeclareMathSymbol{\M@bfrak@x}{\mathord}{\M@bfrak@font}{"1D59D}
- \DeclareMathSymbol{\M@bfrak@y}{\mathord}{\M@bfrak@font}{"1D59E}
- \DeclareMathSymbol{\M@bfrak@z}{\mathord}{\M@bfrak@font}{"1D59F}}
-% \end{macrocode}
+ \protected\def\mathbfrak##1{\relax
+ \ifmmode\else
+ \M@HModeError\mathbfrak
+ $%
+ \fi
+ \begingroup
+ \M@bfrak@mathcodes
+ ##1%
+ \endgroup}
+ \edef\M@bfrak@num{\number\csname symM\M@bfrakshape\@tempa\endcsname}
+ \protected\edef\M@bfrak@mathcodes{%
+ \Umathcode`A=0+\M@bfrak@num"1D56C\relax
+ \Umathcode`B=0+\M@bfrak@num"1D56D\relax
+ \Umathcode`C=0+\M@bfrak@num"1D56E\relax
+ \Umathcode`D=0+\M@bfrak@num"1D56F\relax
+ \Umathcode`E=0+\M@bfrak@num"1D570\relax
+ \Umathcode`F=0+\M@bfrak@num"1D571\relax
+ \Umathcode`G=0+\M@bfrak@num"1D572\relax
+ \Umathcode`H=0+\M@bfrak@num"1D573\relax
+ \Umathcode`I=0+\M@bfrak@num"1D574\relax
+ \Umathcode`J=0+\M@bfrak@num"1D575\relax
+ \Umathcode`K=0+\M@bfrak@num"1D576\relax
+ \Umathcode`L=0+\M@bfrak@num"1D577\relax
+ \Umathcode`M=0+\M@bfrak@num"1D578\relax
+ \Umathcode`N=0+\M@bfrak@num"1D579\relax
+ \Umathcode`O=0+\M@bfrak@num"1D57A\relax
+ \Umathcode`P=0+\M@bfrak@num"1D57B\relax
+ \Umathcode`Q=0+\M@bfrak@num"1D57C\relax
+ \Umathcode`R=0+\M@bfrak@num"1D57D\relax
+ \Umathcode`S=0+\M@bfrak@num"1D57E\relax
+ \Umathcode`T=0+\M@bfrak@num"1D57F\relax
+ \Umathcode`U=0+\M@bfrak@num"1D580\relax
+ \Umathcode`V=0+\M@bfrak@num"1D581\relax
+ \Umathcode`W=0+\M@bfrak@num"1D582\relax
+ \Umathcode`X=0+\M@bfrak@num"1D583\relax
+ \Umathcode`Y=0+\M@bfrak@num"1D584\relax
+ \Umathcode`Z=0+\M@bfrak@num"1D585\relax
+ \Umathcode`a=0+\M@bfrak@num"1D586\relax
+ \Umathcode`b=0+\M@bfrak@num"1D587\relax
+ \Umathcode`c=0+\M@bfrak@num"1D588\relax
+ \Umathcode`d=0+\M@bfrak@num"1D589\relax
+ \Umathcode`e=0+\M@bfrak@num"1D58A\relax
+ \Umathcode`f=0+\M@bfrak@num"1D58B\relax
+ \Umathcode`g=0+\M@bfrak@num"1D58C\relax
+ \Umathcode`h=0+\M@bfrak@num"1D58D\relax
+ \Umathcode`i=0+\M@bfrak@num"1D58E\relax
+ \Umathcode`j=0+\M@bfrak@num"1D58F\relax
+ \Umathcode`k=0+\M@bfrak@num"1D590\relax
+ \Umathcode`l=0+\M@bfrak@num"1D591\relax
+ \Umathcode`m=0+\M@bfrak@num"1D592\relax
+ \Umathcode`n=0+\M@bfrak@num"1D593\relax
+ \Umathcode`o=0+\M@bfrak@num"1D594\relax
+ \Umathcode`p=0+\M@bfrak@num"1D595\relax
+ \Umathcode`q=0+\M@bfrak@num"1D596\relax
+ \Umathcode`r=0+\M@bfrak@num"1D597\relax
+ \Umathcode`s=0+\M@bfrak@num"1D598\relax
+ \Umathcode`t=0+\M@bfrak@num"1D599\relax
+ \Umathcode`u=0+\M@bfrak@num"1D59A\relax
+ \Umathcode`v=0+\M@bfrak@num"1D59B\relax
+ \Umathcode`w=0+\M@bfrak@num"1D59C\relax
+ \Umathcode`x=0+\M@bfrak@num"1D59D\relax
+ \Umathcode`y=0+\M@bfrak@num"1D59E\relax
+ \Umathcode`z=0+\M@bfrak@num"1D59F\relax}}
+% \end{macrocode}
+% And that's everything!
%
% \vfill\eject
%
@@ -4728,7 +4631,7 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
% \advance\dimen@ by -2\fboxrule
% \advance\dimen@ by -2\fboxsep
% \fbox{\vbox{\hsize\dimen@
-% \textbf{Big Change:} Font adjustments for Lua\TeX: new glyph boundaries for Latin letters in math mode, resizable delimiters, actual big operators, MathConstants table based on font metrics}}
+% \strut\textbf{Big Change:} Font adjustments for Lua\TeX: new glyph boundaries for Latin letters in math mode, resizable delimiters, actual big operators, MathConstants table based on font metrics.\vphantom{y}}}
% \par\smallskip}
% \item added |\CharmLine| and |\CharmFile|
% \item added |\mathconstantsfont|
@@ -4755,6 +4658,11 @@ mathfont:add_extensible_variants(smash, int_glyphs, int_scale)
% \item |\setfont| now sets |\mathrm|, etc.
% \item added |\newmathsc|, other math alphabet commands for small caps
%
+% \version{2.1}{December 2022\strut}
+% \item |\mathbb|, etc.\ commands change |\Umathcode|s of letters instead of |\M@|\meta{bb,etc.}|@|\meta{letter} commands
+% \item removed warnings about non-letter contents of |\mathbb|, etc.
+% \item fonts loaded twice, once with default settings (for text) and once in base mode (for math)
+% \item |mathconstantsfont| accepts ``upright'' or ``italic'' as optional argument
%
% \egroup
% \end{multicols*}
@@ -4855,7 +4763,7 @@ and \textsf{mathfont} sets the default font face for every character in those ke
\begin{code}
|\mathfont[lower=upright, upper=upright]{Times New Roman}|
\end{code}
-changes all Latin letters to upright Times New Roman. Know that once \textsf{mathfont} has set the default font for a keyword in Table~1, it will ignore any future instructions to do so and prints a warning to the terminal instead.
+changes all Latin letters to upright Times New Roman. Once \textsf{mathfont} has set the default font for a keyword in Table~1, it will ignore any future instructions to do so and prints a warning to the terminal instead.
\begin{figure}[t]
@@ -4876,14 +4784,14 @@ Command & Series & Shape\\\midrule
\end{figure}
-If you want to change the font for your entire document at once, you should use |\setfont| instead of |\mathfont|. This command accepts a single mandatory argument:
+If you want to change the font for both text and math, you should use |\setfont| instead of |\mathfont|. This command accepts a single mandatory argument:
\begin{code}
|\setfont{|\meta{font name}|}|.
\end{code}
It calls |\mathfont| without an optional argument---i.e.\ for the default keywords---on your \meta{font name} and sets your document's default text font to be the \meta{font name}. The command also defines the eight commands in Table~\ref{SetFont} using the \meta{font name} and the |\new| macros in the next section. Both |\mathfont| and |\setfont| should appear in the preamble only.
-To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags. For example adding ``|onum=true|'' tells \TeX\ to load your font with oldstyle numbering, assuming that feature is present in the font.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} Whenever you declare any font setting, such as calling |\mathfont|, the package uses its own fontloader unless you have loaded \textsf{fontspec}. In that case, \textsf{mathfont} feeds your argument directly to \textsf{fontspec}, and if you previously set any font with \textsf{fontspec}, you can say |\mathfont{fontspec}| to call |\mathfont| with the most recent font used by \textsf{fontspec}. I don't recommend using \textsf{fontspec} indirectly like this unless you know what you're doing because Lua\TeX's default font-loading settings are optimized for text fonts, and you may not see any OpenType font features in math mode as a result.\footnote{The default \textsf{luaotfload} (and \textsf{fontspec}) setting is |mode=node|, but \textsf{mathfont} uses |mode=base|. The |node| setting allows users to enable more OpenType font features in text but prevents any OpenType features from showing up in math mode. On the other hand, |base| supports fewer OpenType features but enables them in math mode. This point may seem technical, but it can be very relevant. For example, Cormorant, used in one of the \textsf{mathfont} example pdf files, uses oldstyle numbers by default but includes lining numbers as a separate OpenType feature. (Oldstyle numbers can work well in text, but lining numbers are a much better default for math.) Loading Cormorant with |mode=node| means that the numbers in math mode will be oldstyle, even if you say |lnum=true|, so |base| mode is necessary here. Like I said, fonts are complicated.}
+To select OpenType features, you should put a colon after the font name and follow it with appropriate OpenType tags. For example adding ``|onum=true|'' tells \TeX\ to load your font with oldstyle numbering, assuming that feature is present in the font.\footnote{By default, \textsf{mathfont} enables standard ligatures, traditional \TeX\ ligatures, and lining numbers. The package sets |smcp| to |true| or |false| depending on whether it is attempting to load a small-caps font. For the full list of OpenType features, see \link{https://docs.microsoft.com/en-us/typography/opentype/spec/featurelist}.} Whenever you select a font, \textsf{mathfont} first checks whether you previously loaded \textsf{fontspec}, and if so, the package feeds your entire \meta{font name} argument to \textsf{fontspec}. (You can also say ``|fontspec|'' as the \meta{font name} to select the most recent font used by \textsf{fontspec}.) If you have not loaded \textsf{fontspec}, the package uses its own fontloader. I recommend letting \textsf{mathfont} handle font-loading because when using Lua\TeX, \textsf{mathfont} takes care to load fonts in such a way that full OpenType features are accessible in text and limited OpenType features are accessible in math. While it is also possible to do this in \textsf{fontspec}, it takes some doing.\footnote{The \textsf{luaotfload} package supports two main modes for loading fonts: |node| mode is the default setting, and it supports full OpenType features in text but no OpenType features in math. The |base| mode supports limited OpenType features, but the features will work for both text and math. When \textsf{mathfont} loads a font, it does so twice, once in |node| mode, which is primarily for setting the text font with \vrb\setfont, and once in |base| mode, which is for the package's other font declarations. This way you will be able to use OpenType features throughout your document.}
The last five keywords in Table~\ref{Keywords} are a bit different. If you call |\mathfont| on a \meta{keyword} from the last five rows in Table~\ref{Keywords}, the package defines the macro
@@ -4894,7 +4802,7 @@ to typeset them. For example,
\begin{code}
|\mathfont[bb]{STIXGeneral}|
\end{code}
-sets STIXGeneral as the font for bold calligraphic characters and defines |\mathbb| to access them. The argument of |\mathbb| should contain only digits and Latin letters, and for the other four keywords, the argument of |\math|\meta{keyword} should contain only Latin letters. \TeX\ will ignore and issue a warning in response to any other characters in the argument of these macros.
+sets STIXGeneral as the font for bold calligraphic characters and defines |\mathbb| to access them. These are not for use with any double-struck, caligraphic, or fraktur font. Rather, they access Unicode's math alphanumeric symbols block. If you want to use a font where the regular letters appear double-struck, caligraphic, or fraktur, consider the font-changing control sequences in the next section.
\section{Local Font Changes}
@@ -4933,12 +4841,22 @@ Together these eight commands will provide users with tools for most local font
\begin{code}
|\newmathfontcommand{|\meta{control sequence}|}{|\meta{font name}|}{|\meta{series}|}{|\meta{shape}|}|,
\end{code}
-where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name with |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. The series and shape values will then correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from Table~\ref{MathAlpha} as well as |\newmathfontcommand| should appear in the preamble only.
+where the \meta{control sequence} in the first argument again becomes the macro that changes characters to the \meta{font name}. You are welcome to use a system font name with |\newmathfontcommand|, but the intention behind this command is that you can use an \textsc{nfss} family name for the \meta{font name}. Then the series and shape values can correspond to more obscure font faces from the \textsc{nfss} family that you would be otherwise unable to access. The commands from Table~\ref{MathAlpha} as well as |\newmathfontcommand| should appear in the preamble only.
+
+
+\section{Default Math Parameters}
+
+Lua\TeX\ uses the MathConstants table from the most recent font assigned for use in math mode, and this means that in a document with multiple math fonts, the choice of MathConstants table can depend on the order of font declaration and be unpredictable. To avoid potential problems from using the wrong MathConstants table, \textsf{mathfont} provides the command
+\begin{code}
+|\mathconstantsfont[|\meta{shape}|]{|\meta{prev arg}|}|,
+\end{code}
+where \meta{shape} is an optional argument that can be ``|upright|'' (default) or ``|italic|,'' and \meta{prev arg} should be any argument that you have previously fed to |\mathfont|. When you call |\mathconstantsfont|, \textsf{mathfont} forces Lua\TeX\ to always use the MathConstants table from the font that corresponded to that instance of |\mathfont| in the specified \meta{shape}. You don't need to set the MathConstants table when you use |\setfont| because the package calls |\mathconstantsfont| automatically when you use |\setfont|. This command will not work in \XeTeX\ and should appear only in the preamble.
+
\section{Lua Font Adjustments}
-\begin{figure}[b]
+\begin{figure}[t]
\labelfig{Charm}
\centerline{\bfseries Table \the\fig: Number of Integers Required in \vrb\CharmLine\strut}
\global\advance\fig by 1\relax
@@ -4959,14 +4877,7 @@ The \textsf{mathfont} package provides six user-level commands to change positio
\end{itemize}
Writing an asterisk tells \textsf{mathfont} to use whatever value it has saved in memory, either the default value or the value from the most recent call to |\CharmLine| or |\CharmFile|. If you specify too few charm values, \textsf{mathfont} will raise an error, but if you provide too many, \textsf{mathfont} will silently ignore the extras.
-For most applications, you can probably ignore charm information altogether, but if you find bounding boxes or accent placement to be off slightly or if you want to change the scaling for a delimiter or big operator, you should try calling |\CharmLine| with different values to see what works. As is typical with decimal inputs in \TeX, \textsf{mathfont} divides your inputs by 1000 before computing with them. Positive integers mean ``increase,'' and negative integers mean ``decrease.'' For a given character, the scale is usually the glyph width. For example,
-\begin{code}
-|\CharmLine{97, 200, -200, *, 50}|
-\end{code}
-tells \textsf{mathfont} to take the lower-case ``a'' (unicode encoding value of 97), increase the bounding box on the left side by 20\% of the glyph width, decrease the bounding box on the right side by 20\% of the glyph width, do nothing to the top accent, and shift the bottom accent right by 5\% of the glyph width. There is no general formula for what charm values to use for a given font! Rather, you will need to make a design choice based on what looks best, and if you regularly use a particular font, consider making a custom set of charm values uploading it to \textsc{ctan}. Additionally, if you store your charm information in a file, you can read it in with |\CharmFile|. The argument of this command should be a file name, and \textsf{mathfont} reads the file and feeds each line individually to |\CharmLine|.
-
-
-\begin{figure}[tb]
+\begin{figure}[b]
\labelfig{Factors}
\centerline{\bfseries Table \the\fig: Commands to Adjust Individual Characters\strut}
\global\advance\fig by 1\relax
@@ -4980,6 +4891,13 @@ Command & Default Value & What It Does\\\midrule
\end{figure}
+For most applications, you can probably ignore charm information altogether, but if you find bounding boxes or accent placement to be off slightly or if you want to change the scaling for a delimiter or big operator, you should try calling |\CharmLine| with different values to see what works. As is typical with decimal inputs in \TeX, \textsf{mathfont} divides your inputs by 1000 before computing with them. Positive integers mean ``increase,'' and negative integers mean ``decrease.'' For a given character, the scale is usually the glyph width. For example,
+\begin{code}
+|\CharmLine{97, 200, -200, *, 50}|
+\end{code}
+tells \textsf{mathfont} to take the lower-case ``a'' (unicode encoding value of 97), increase the bounding box on the left side by 20\% of the glyph width, decrease the bounding box on the right side by 20\% of the glyph width, do nothing to the top accent, and shift the bottom accent right by 5\% of the glyph width. There is no general formula for what charm values to use for a given font! Rather, you will need to make a design choice based on what looks best, and if you regularly use a particular font, consider making a custom set of charm values uploading it to \textsc{ctan}. Additionally, if you store your charm information in a file, you can read it in with |\CharmFile|. The argument of this command should be a file name, and \textsf{mathfont} reads the file and feeds each line individually to |\CharmLine|.
+
+
The commands in Table~\ref{Factors} adjust other aspects of the font as indicated. Each command accepts a single integer as an argument, and \textsf{mathfont} once again divides the input by 1000. With each of these macros, \textsf{mathfont} multiplies the quotient by some default length, so values greater than or less than 1000 mean ``scale up'' or ``scale down'' respectively. For example,
\begin{code}
|\RuleThicknessFactor{2000}|
@@ -5005,15 +4923,6 @@ Callback Name & What It Does By Default\\\midrule
Finally, advanced users who want to interact with the font adjustment process directly should use the six callbacks in Table~\ref{Callbacks}. When Lua\TeX\ loads a font, \textsf{mathfont} (1) always calls |mathfont.inspect_font| and (2) calls the other five callbacks in the order that they appear in Table~\ref{Callbacks} if the font object contains |nomath=true|. Functions added to these callbacks should accept a font object as a single argument and return nothing. Further, please be careful when loading functions in the |disable_nomath|, |add_math_constants|, and |fix_character_metrics| callbacks. If you add a function there, Lua\TeX\ will not carry out the default behvaior associated with the callback, so do not mess with these three callbacks unless you are duplicating the default behavior of the callback or you really know what you're doing. Otherwise, you risk breaking the package. See |mathfont_code.pdf| for more information.
-\section{Default Math Parameters}
-
-Lua\TeX\ uses the MathConstants table from the most recent font assigned for use in math mode, and this means that in a document with multiple math fonts, the choice of MathConstants table can depend on the order of font declaration and be unpredictable. To avoid potential problems from using the wrong MathConstants table, \textsf{mathfont} provides the command
-\begin{code}
-|\mathconstantsfont{|\meta{prev arg}|}|,
-\end{code}
-where \meta{prev arg} should be any argument that you have previously fed to |\mathfont|. When you call |\mathconstantsfont|, \textsf{mathfont} forces Lua\TeX\ to always use the MathConstants table from the font that corresponded to that instance of |\mathfont|. You don't need to worry about MathConstants when you use |\setfont| because the package calls |\mathconstantsfont| automatically when you use |\setfont|. This command should appear in the preamble only.
-
-
\end{document}
%</user>
@@ -5028,7 +4937,7 @@ where \meta{prev arg} should be any argument that you have previously fed to |\m
\usepackage{mathfont}
\mathfont[agreeklower=upright,agreekupper]{Crimson}
\mathfont[hebrew]{Coelacanth}
-\mathfont[\M@normalkeys,\M@letterlikekeys]{STIXGeneral}
+\mathfont[\M@keys]{STIXGeneral}
\usepackage{shortvrb,doc}
\MakeShortVerb{|}
\raggedcolumns
@@ -5956,9 +5865,9 @@ t'=\left(t-\frac{vx}{c^2}\right)\frac1{\sqrt{1-\frac{v^2}{c^2}}}
\usepackage{mathfont}
\DeclareFontFamily{TU}{Cormorant}{}
\DeclareFontShape{TU}{Cormorant}{m}{n}
- {<->"Cormorant Medium:\M@default@otf@features;-liga"}{}
+ {<->"Cormorant Medium:\M@otf@features;-liga"}{}
\DeclareFontShape{TU}{Cormorant}{m}{it}
- {<->"Cormorant Medium Italic:\M@default@otf@features"}{}
+ {<->"Cormorant Medium Italic:\M@otf@features"}{}
\mathfont[greeklower=upright,greekupper]{Crimson}
\mathfont[diacritics]{Bona Nova}
\setfont{Cormorant}
@@ -5976,7 +5885,7 @@ t'=\left(t-\frac{vx}{c^2}\right)\frac1{\sqrt{1-\frac{v^2}{c^2}}}
\input mathfont_heading.tex
-This is Cormorant with Crimson for Greek characters and Bona Nova for diacritics. Testing. Testing. Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing!
+This is Cormorant with Crimson for Greek characters and Bona Nova for diacritics. ``Testing. Testing.'' Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing!
\input{mathfont_equations.tex}
@@ -6007,7 +5916,7 @@ This is Cormorant with Crimson for Greek characters and Bona Nova for diacritics
\input mathfont_heading.tex
-This is Kelvinch with Crimson for the radical signs. Testing. Testing. Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing!
+This is Kelvinch with Crimson for the radical signs. ``Testing. Testing.'' Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing!
\input{mathfont_equations.tex}
@@ -6041,7 +5950,7 @@ This is Kelvinch with Crimson for the radical signs. Testing. Testing. Brown fox
\input mathfont_heading.tex
-This is Roboto with Overpass for the radical signs and STIXGeneral for the tensor product. Testing. Testing. Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing!
+This is Roboto with Overpass for the radical signs and STIXGeneral for the tensor product. ``Testing. Testing.'' Brown foxes quickly jump over dazzling does and harts. This document shows an example of mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing!
\input{mathfont_equations.tex}
@@ -6060,13 +5969,13 @@ This is Roboto with Overpass for the radical signs and STIXGeneral for the tenso
\mathfont[radical]{Crimson}
\DeclareFontFamily{TU}{Typey}{}
\DeclareFontShape{TU}{Typey}{m}{n}
- {<->"Typey McTypeface:\M@default@otf@features"}{}
+ {<->"Typey McTypeface:\M@otf@features"}{}
\DeclareFontShape{TU}{Typey}{m}{it}
- {<->"Typey McTypeface/I:\M@default@otf@features"}{}
+ {<->"Typey McTypeface/I:\M@otf@features"}{}
\DeclareFontShape{TU}{Typey}{b}{n}
- {<->"Typey McTypeface:\M@default@otf@features;embolden=6"}{}
+ {<->"Typey McTypeface:\M@otf@features;embolden=6"}{}
\DeclareFontShape{TU}{Typey}{b}{it}
- {<->"Typey McTypeface/I:\M@default@otf@features;embolden=6"}{}
+ {<->"Typey McTypeface/I:\M@otf@features;embolden=6"}{}
\setfont{Typey}
\mathfont[]{STIXGeneral}
\DeclareSymbolFont{Mroman2}{TU}{STIXGeneral}{m}{n}
@@ -6084,7 +5993,7 @@ This is Roboto with Overpass for the radical signs and STIXGeneral for the tenso
\input mathfont_heading.tex
-This is Typey McTypeface with Crimson for the radical signs and STIXGeneral for the tensor product. Testing. Testing. Brown foxes quickly jump over dazzling does and harts. This document shows mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing!
+This is Typey McTypeface with Crimson for the radical signs and STIXGeneral for the tensor product. ``Testing. Testing.'' Brown foxes quickly jump over dazzling does and harts. This document shows mathfont in action. Unfortunately, there are many more equations in the world than I have space for here. Nevertheless, I hope I hit some of the highlights. Happy \TeX ing!
\let\bullet\cdot
\input{mathfont_equations.tex}
@@ -6094,8 +6003,8 @@ This is Typey McTypeface with Crimson for the radical signs and STIXGeneral for
%<*heading>
% package date and edition
-\def\packagedate{December 2021}
-\def\packageversion{2.0}
+\def\packagedate{November 2022}
+\def\packageversion{2.1}
% header and footer commands
diff --git a/macros/latex/contrib/mathfont/mathfont_code.pdf b/macros/latex/contrib/mathfont/mathfont_code.pdf
index 2872bf268f..bc13cf288a 100644
--- a/macros/latex/contrib/mathfont/mathfont_code.pdf
+++ b/macros/latex/contrib/mathfont/mathfont_code.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf b/macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf
index 5c86d9e601..fd96765a92 100644
--- a/macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf
+++ b/macros/latex/contrib/mathfont/mathfont_example_cormorant.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf b/macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf
index 43e7a1009f..971da39b76 100644
--- a/macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf
+++ b/macros/latex/contrib/mathfont/mathfont_example_kelvinch.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathfont/mathfont_example_roboto.pdf b/macros/latex/contrib/mathfont/mathfont_example_roboto.pdf
index 66ec5982b5..80c4022a38 100644
--- a/macros/latex/contrib/mathfont/mathfont_example_roboto.pdf
+++ b/macros/latex/contrib/mathfont/mathfont_example_roboto.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathfont/mathfont_example_typey.pdf b/macros/latex/contrib/mathfont/mathfont_example_typey.pdf
index 364d67688a..efc1846e4e 100644
--- a/macros/latex/contrib/mathfont/mathfont_example_typey.pdf
+++ b/macros/latex/contrib/mathfont/mathfont_example_typey.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathfont/mathfont_symbol_list.pdf b/macros/latex/contrib/mathfont/mathfont_symbol_list.pdf
index e870ea3f89..53981a25a3 100644
--- a/macros/latex/contrib/mathfont/mathfont_symbol_list.pdf
+++ b/macros/latex/contrib/mathfont/mathfont_symbol_list.pdf
Binary files differ
diff --git a/macros/latex/contrib/mathfont/mathfont_user_guide.pdf b/macros/latex/contrib/mathfont/mathfont_user_guide.pdf
index 9327d64bc2..1a94d2b93f 100644
--- a/macros/latex/contrib/mathfont/mathfont_user_guide.pdf
+++ b/macros/latex/contrib/mathfont/mathfont_user_guide.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index d3d0cb3baa..8c656653b0 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
index c4bc9a4016..a084d8c5e0 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -62,8 +62,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\PLversion{2.0.5}
-\def\PLdate{20 Novembre 2022}
+\def\PLversion{2.0.6}
+\def\PLdate{30 Novembre 2022}
\tcbset{vignettes/.style={%
nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -2271,6 +2271,58 @@ Le \textsf{cartouche} peut être \og cliquable \fg{} grâce à \ctex{href}.
\newpage
+\section{Présentation de code \LaTeX}\label{prescode}
+
+\subsection{Introduction}
+
+\begin{codeidee}
+\cmaj{2.0.6} L'idée est de proposer un environnement pour présenter du code \LaTeX. Ce n'est pas forcément lié à l'enseignement en Lycée mais pourquoi pas !
+
+\smallskip
+
+Il s'agir d'un environnement créé en \ctex{tcolorbox}, et utilisant la présentation \textit{basique} de code via \ctex{listings}.
+\end{codeidee}
+
+\subsection{Commandes}
+
+\begin{codetex}[listing only]
+\begin{PresentationCode}[<Couleur>]{<options tcbox>}
+...
+\end{PresentationCode}
+\end{codetex}
+
+\begin{codecles}
+Peu de personnalisations pour ces commandes :
+
+\begin{itemize}
+ \item le premier argument, optionnel, permet de préciser la \textit{couleur} de la présentation ;\hfill{}défaut \Cle{ForestGreen}
+ \item le second, mandataire, correspond aux éventuelles options liées à la \ctex{tcolorbox}.
+\end{itemize}
+\end{codecles}
+
+\begin{codeinfo}
+Il est à noter que, même dans le cas d'option vide pour la \ctex{tcolorbox}, les \ctex{\{\}} sont nécessaires.
+
+\smallskip
+
+On peut par exemple utiliser l'option \Cle{listing only} pour ne présenter \textit{que} le code source.
+\end{codeinfo}
+
+\begin{codetex}[]
+\begin{PresentationCode}{}
+\xdef\ValAleaA{\fpeval{randint(1,100)}}
+\xdef\ValAleaB{\fpeval{randint(1,100)}}
+
+Avec $A=\ValAleaA$ et $B=\ValAleaB$, on a $A\times B=\inteval{\ValAleaA * \ValAleaB}$
+\end{PresentationCode}
+
+\begin{PresentationCode}[DarkBlue]{}
+On peut faire beaucoup de choses avec \LaTeX{} !
+\end{PresentationCode}
+\end{codetex}
+
+\pagebreak
+
\part{Outils pour la géométrie}
\section{Pavé droit \og simple \fg}\label{pave}
@@ -5417,6 +5469,10 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
\part{Historique}
+{\small \bverb|v 2.0.6|~:~~~~Changement de taille de la police des codes Python (page \pageref{pythonsimple})
+
+{\small \bverb| |~:~~~~Ajout d'un environnement pour présenter du code \LaTeX{} (page \pageref{prescode})
+
{\small \bverb|v 2.0.5|~:~~~~Correction d'un bug avec les calculs de suites récurrentes (page \pageref{calcrecurr})
{\small \bverb|v 2.0.4|~:~~~~Ajout d'une commande pour une présentation de solution par TVI (page \pageref{solutiontvi})
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index 8802424614..fbd1a83b54 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,8 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2022/11/20 2.0.5 Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2022/11/30 2.0.6 Aide pour l'utilisation de LaTeX en lycee]
+% 2.0.6 Quelques modifications sur les codes python (taille police et marges)...
% 2.0.5 Correction d'un bug avec les calculs en valeurx exactes avec les suites récurrentes...
% 2.0.4 Ajout d'une commande pour présenter un balayage (TVI) + calculs suites récurrentes
% 2.0.3Correction d'un bug avec les arbres 3x3
@@ -61,10 +62,11 @@
\ProcessOptions\relax
%------Packages utiles
+\RequirePackage{mathtools}
+%\RequirePackage{amssymb}
\RequirePackage[table,svgnames]{xcolor}%Gestion des couleurs
\RequirePackage{tikz}
\RequirePackage{tkz-tab}
-\RequirePackage{mathtools}
\RequirePackage{pgf,pgffor}
\RequirePackage{ifthen}
\RequirePackage{xparse}
@@ -85,7 +87,7 @@
reset-text-series = false, reset-text-shape = false,%
text-family-to-math = true, text-series-to-math = true,%
output-decimal-marker={,},%
- group-minimum-digits=4%
+% group-minimum-digits=4%
}%
\RequirePackage{fontawesome5}
\if@csvii
@@ -138,7 +140,7 @@
fonttitle=\color{#1!90!black}\itshape\ttfamily\footnotesize,%
listing options={%
style=tcblatex,basicstyle=\footnotesize\ttfamily,%
- keywordstyle=\bfseries\color{Blue},tabsize=4,%
+ keywordstyle=\bfseries\color{Blue},tabsize=2,%
},%
#2
}
@@ -472,14 +474,14 @@
\tcbset{pytmintedno/.style={%
listing engine=minted,minted style=colorful,
minted language=python,listing only,
- minted options={tabsize=4,fontsize=\small,autogobble},
+ minted options={tabsize=4,fontsize=\footnotesize,autogobble},
}
}
\tcbset{pytminted/.style={%
listing engine=minted,minted style=colorful,
minted language=python,listing only,
- minted options={tabsize=4,fontsize=\small,autogobble,xleftmargin=16pt,linenos,numbersep=10pt},
+ minted options={tabsize=4,fontsize=\footnotesize,autogobble,xleftmargin=16pt,linenos,numbersep=10pt},
}
}
@@ -521,8 +523,8 @@
commentstyle = \color{gray}\itshape,
stringstyle = \color{red!75},
numberstyle = \scriptsize\ttfamily\color{Green},
- aboveskip = 4pt,
- belowskip = 1pt,
+ aboveskip = 0pt,
+ belowskip = 0pt,
tabsize = 4,
showstringspaces = false,
columns = fullflexible,
@@ -545,8 +547,8 @@
commentstyle = \color{gray}\itshape,
stringstyle = \color{red!75},
numberstyle = \scriptsize\ttfamily\color{Green},
- aboveskip = 4pt,
- belowskip = 1pt,
+ aboveskip = 0pt,
+ belowskip = 0pt,
tabsize = 4,
showstringspaces = false,
columns = fullflexible,
@@ -621,7 +623,7 @@
\ifboolKV[envpiton]{Lignes}%si lignes=true
{\PitonOptions{left-margin=auto,line-numbers}}%
{\PitonOptions{}}%
- \begin{tcolorbox}[stylepythontex,leftupper=8pt,colframe=Green,colback=ForestGreen!5,width=\CODPITlargeur,fontlower=\small,\CODPITalign]
+ \begin{tcolorbox}[stylepythontex,leftupper=8pt,colframe=Green,colback=ForestGreen!5,width=\CODPITlargeur,fontupper=\footnotesize,fontlower=\footnotesize,\CODPITalign]
}%
{%
\end{tcolorbox}%
@@ -1178,6 +1180,7 @@
\draw ({-0.707*\PLcerclerayon},0) node[above=2pt,PLval] {$-\tfrac{\sqrt{2}}{2}$} ;
\draw (0,{0.707*\PLcerclerayon}) node[right=2pt,PLval] {$\tfrac{\sqrt{2}}{2}$} ;
\draw (0,{-0.707*\PLcerclerayon}) node[right=2pt,PLval] {$-\tfrac{\sqrt{2}}{2}$} ;
+ %\draw[\PLcerclethick] (0,0) circle[radius=\PLcerclerayon] ; %on retrace par dessus ?
}%
{}
%valeurs remarquables en dernier
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index c431f70b1e..d3e4b75425 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,4 +1,4 @@
-## Babel 3.82
+## Babel 3.83
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -8,9 +8,9 @@ is a set of ini files for about 250 languages.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.82 are described in:
+Changes in version 3.83 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-3.82.html
+https://latex3.github.io/babel/news/whats-new-in-babel-3.83.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -46,17 +46,17 @@ respective authors.
### Summary of latest changes
```
-3.82 2022-10-23
- * Predefined transforms can be activated after the first
- \babelprovide (lua).
- * Tibetan for XeTeX.
- * More updates to the CLDR 41: Albanian, Kinyarwanda, Maltese,
- Odia, Ossetic, Pashto, Polish, Portuguese, Punjabi, Romanian,
- Romansh, Russian, Sakha, Sinhala, Slovak, Slovenian, Somali.
+3.83 2022-11-30
+ * Improved Punjabi, thanks to Arvinder Singh (@punjab).
+ * Compatibility with 'lscape', thanks to Salim Bou (@seloumi).
+ * New locale files: Kaingang, Nheengatu, Sardinian.
+ * Better handling of `leqno` with `amsmath`.
* Fixes:
- - \MakeXXXcase: a (hopefully) better hack for #189 (see
- also #193).
- - Thai (with xetex): #182 wasn’t quite fixed.
+ - Wrong date format for Australian in babel-en-AU.ini (#195)
+ - Option handling was broken with braces (#198)
+ - Stray punctuation with tikz lead to lua error (#197)
+ - Hungarian as a secondary language reordered some captions
+ (#203).
```
### Previous changes
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 44ed19a8f2..792605685a 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2022/10/23 v3.82 The Babel package]
+\ProvidesFile{babel.dtx}[2022/11/30 v3.83 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -1502,23 +1502,22 @@ captions):
\def\hascapl{\textsuperscript{l}}
\begin{multicols}{2}
-
\tag{af} Afrikaans\hascapu\hascapl
\tag{agq} Aghem
\tag{ak} Akan
\tag{am} Amharic\hascapu\hascapl
-\tag{ar} Arabic\hascapu\hascapl
-\tag{ar-DZ} Arabic\hascapu\hascapl
-\tag{ar-EG} Arabic\hascapu\hascapl
-\tag{ar-IQ} Arabic\hascapu\hascapl
-\tag{ar-JO} Arabic\hascapu\hascapl
-\tag{ar-LB} Arabic\hascapu\hascapl
-\tag{ar-MA} Arabic\hascapu\hascapl
-\tag{ar-PS} Arabic\hascapu\hascapl
-\tag{ar-SA} Arabic\hascapu\hascapl
-\tag{ar-SY} Arabic\hascapu\hascapl
-\tag{ar-TN} Arabic\hascapu\hascapl
-\tag{as} Assamese
+\tag{ar-DZ} Arabic\hascapu
+\tag{ar-EG} Arabic\hascapu
+\tag{ar-IQ} Arabic\hascapu
+\tag{ar-JO} Arabic\hascapu
+\tag{ar-LB} Arabic\hascapu
+\tag{ar-MA} Arabic\hascapu
+\tag{ar-PS} Arabic\hascapu
+\tag{ar-SA} Arabic\hascapu
+\tag{ar-SY} Arabic\hascapu
+\tag{ar-TN} Arabic\hascapu
+\tag{ar} Arabic\hascapu
+\tag{as} Assamese\hascapu
\tag{asa} Asu
\tag{ast} Asturian\hascapu\hascapl
\tag{az-Cyrl} Azerbaijani
@@ -1530,8 +1529,9 @@ captions):
\tag{bez} Bena
\tag{bg} Bulgarian\hascapu\hascapl
\tag{bm} Bambara
-\tag{bn} Bangla\hascapu\hascapl
+\tag{bn} Bangla\hascapu
\tag{bo} Tibetan\hascapu
+\tag{br} Breton\hascapu\hascapl
\tag{brx} Bodo
\tag{bs-Cyrl} Bosnian
\tag{bs-Latn} Bosnian\hascapu\hascapl
@@ -1540,16 +1540,24 @@ captions):
\tag{ce} Chechen
\tag{cgg} Chiga
\tag{chr} Cherokee
-\tag{ckb} Central Kurdish
+\tag{ckb-Arab} Central Kurdish\hascapu
+\tag{ckb-Latn} Central Kurdish\hascapu
+\tag{ckb} Central Kurdish\hascapu
\tag{cop} Coptic
\tag{cs} Czech\hascapu\hascapl
-\tag{cu} Church Slavic
-\tag{cu-Cyrs} Church Slavic
+\tag{cu-Cyrs} Church Slavic\hascapu
\tag{cu-Glag} Church Slavic
+\tag{cu} Church Slavic\hascapu
\tag{cy} Welsh\hascapu\hascapl
\tag{da} Danish\hascapu\hascapl
\tag{dav} Taita
-\tag{de-AT} German\hascapu\hascapl
+\tag{de-1901} German\hascapu\hascapl
+\tag{de-1996} German\hascapu\hascapl
+\tag{de-AT-1901} Austrian German\hascapu\hascapl
+\tag{de-AT-1996} Austrian German\hascapu\hascapl
+\tag{de-AT} Austrian German\hascapu\hascapl
+\tag{de-CH-1901} Swiss High German\hascapu\hascapl
+\tag{de-CH-1996} Swiss High German\hascapu\hascapl
\tag{de-CH} Swiss High German\hascapu\hascapl
\tag{de} German\hascapu\hascapl
\tag{dje} Zarma
@@ -1559,30 +1567,30 @@ captions):
\tag{dz} Dzongkha
\tag{ebu} Embu
\tag{ee} Ewe
-\tag{el} Greek\hascapu\hascapl
\tag{el-polyton} Polytonic Greek\hascapu\hascapl
-\tag{en-AU} English\hascapu\hascapl
-\tag{en-CA} English\hascapu\hascapl
-\tag{en-GB} English\hascapu\hascapl
+\tag{el} Greek\hascapu\hascapl
+\tag{en-AU} Australian English\hascapu\hascapl
+\tag{en-CA} Canadian English\hascapu\hascapl
+\tag{en-GB} British English\hascapu\hascapl
\tag{en-NZ} English\hascapu\hascapl
-\tag{en-US} English\hascapu\hascapl
+\tag{en-US} American English\hascapu\hascapl
\tag{en} English\hascapu\hascapl
\tag{eo} Esperanto\hascapu\hascapl
-\tag{es-MX} Spanish\hascapu\hascapl
+\tag{es-MX} Mexican Spanish\hascapu\hascapl
\tag{es} Spanish\hascapu\hascapl
\tag{et} Estonian\hascapu\hascapl
-\tag{eu} Basque\hascapu\hascapl
+\tag{eu} Basque\hascapu\hascapl\hascapl
\tag{ewo} Ewondo
-\tag{fa} Persian\hascapu\hascapl
+\tag{fa} Persian\hascapu
\tag{ff} Fulah
\tag{fi} Finnish\hascapu\hascapl
\tag{fil} Filipino
\tag{fo} Faroese
-\tag{fr} French\hascapu\hascapl
\tag{fr-BE} French\hascapu\hascapl
-\tag{fr-CA} French\hascapu\hascapl
-\tag{fr-CH} French\hascapu\hascapl
+\tag{fr-CA} Canadian French\hascapu\hascapl
+\tag{fr-CH} Swiss French\hascapu\hascapl
\tag{fr-LU} French\hascapu\hascapl
+\tag{fr} French\hascapu\hascapl
\tag{fur} Friulian\hascapu\hascapl
\tag{fy} Western Frisian
\tag{ga} Irish\hascapu\hascapl
@@ -1594,15 +1602,15 @@ captions):
\tag{guz} Gusii
\tag{gv} Manx
\tag{ha-GH} Hausa
-\tag{ha-NE} Hausa\hascapl
-\tag{ha} Hausa
+\tag{ha-NE} Hausa
+\tag{ha} Hausa\hascapu\hascapl
\tag{haw} Hawaiian
\tag{he} Hebrew\hascapu\hascapl
\tag{hi} Hindi\hascapu
\tag{hr} Croatian\hascapu\hascapl
\tag{hsb} Upper Sorbian\hascapu\hascapl
-\tag{hu} Hungarian\hascapu\hascapl
-\tag{hy} Armenian\hascapu
+\tag{hu} Hungarian\hascapu\hascapl\hascapl\hascapl
+\tag{hy} Armenian\hascapu\hascapl
\tag{ia} Interlingua\hascapu\hascapl
\tag{id} Indonesian\hascapu\hascapl
\tag{ig} Igbo
@@ -1612,20 +1620,24 @@ captions):
\tag{ja} Japanese\hascapu
\tag{jgo} Ngomba
\tag{jmc} Machame
-\tag{ka} Georgian\hascapu\hascapl
+\tag{ka} Georgian\hascapu
\tag{kab} Kabyle
\tag{kam} Kamba
\tag{kde} Makonde
\tag{kea} Kabuverdianu
+\tag{kgp} Kaingang
\tag{khq} Koyra Chiini
\tag{ki} Kikuyu
\tag{kk} Kazakh
\tag{kkj} Kako
\tag{kl} Kalaallisut
\tag{kln} Kalenjin
-\tag{km} Khmer
-\tag{kmr} Northern Kurdish\hascapu
-\tag{kn} Kannada\hascapu\hascapl
+\tag{km} Khmer\hascapu
+\tag{kmr-Arab} Northern Kurdish\hascapu
+\tag{kmr-Latn} Northern Kurdish\hascapu\hascapl
+\tag{kmr} Northern Kurdish\hascapu\hascapl
+\tag{kn} Kannada\hascapu
+\tag{ko-Hani} Korean\hascapu
\tag{ko} Korean\hascapu
\tag{kok} Konkani
\tag{ks} Kashmiri
@@ -1634,14 +1646,18 @@ captions):
\tag{ksh} Colognian
\tag{kw} Cornish
\tag{ky} Kyrgyz
+\tag{la-x-classic} Classic Latin\hascapu\hascapl
+\tag{la-x-ecclesia} Ecclesiastic Latin\hascapu\hascapl
+\tag{la-x-medieval} Medieval Latin\hascapu\hascapl
+\tag{la} Latin\hascapu\hascapl
\tag{lag} Langi
\tag{lb} Luxembourgish\hascapu\hascapl
\tag{lg} Ganda
\tag{lkt} Lakota
\tag{ln} Lingala
-\tag{lo} Lao\hascapu\hascapl
+\tag{lo} Lao\hascapu
\tag{lrc} Northern Luri
-\tag{lt} Lithuanian\hascapu\hascapl
+\tag{lt} Lithuanian\hascapu\hascapl\hascapl\hascapl
\tag{lu} Luba-Katanga
\tag{luo} Luo
\tag{luy} Luyia
@@ -1653,11 +1669,11 @@ captions):
\tag{mgh} Makhuwa-Meetto
\tag{mgo} Metaʼ
\tag{mk} Macedonian\hascapu\hascapl
-\tag{ml} Malayalam\hascapu\hascapl
+\tag{ml} Malayalam\hascapu
\tag{mn} Mongolian
-\tag{mr} Marathi\hascapu\hascapl
-\tag{ms-BN} Malay\hascapl
-\tag{ms-SG} Malay\hascapl
+\tag{mr} Marathi\hascapu
+\tag{ms-BN} Malay
+\tag{ms-SG} Malay
\tag{ms} Malay\hascapu\hascapl
\tag{mt} Maltese
\tag{mua} Mundang
@@ -1671,26 +1687,27 @@ captions):
\tag{nmg} Kwasio
\tag{nn} Norwegian Nynorsk\hascapu\hascapl
\tag{nnh} Ngiemboon
-\tag{no} Norwegian
+\tag{no} Norwegian\hascapu\hascapl
\tag{nus} Nuer
\tag{nyn} Nyankole
+\tag{oc} Occitan\hascapu\hascapl
\tag{om} Oromo
\tag{or} Odia
\tag{os} Ossetic
\tag{pa-Arab} Punjabi
-\tag{pa-Guru} Punjabi
-\tag{pa} Punjabi
+\tag{pa-Guru} Punjabi\hascapu
+\tag{pa} Punjabi\hascapu
\tag{pl} Polish\hascapu\hascapl
\tag{pms} Piedmontese\hascapu\hascapl
\tag{ps} Pashto
-\tag{pt-BR} Portuguese\hascapu\hascapl
-\tag{pt-PT} Portuguese\hascapu\hascapl
+\tag{pt-BR} Brazilian Portuguese\hascapu\hascapl
+\tag{pt-PT} European Portuguese\hascapu\hascapl
\tag{pt} Portuguese\hascapu\hascapl
\tag{qu} Quechua
\tag{rm} Romansh\hascapu\hascapl
\tag{rn} Rundi
-\tag{ro} Romanian\hascapu\hascapl
\tag{ro-MD} Moldavian\hascapu\hascapl
+\tag{ro} Romanian\hascapu\hascapl
\tag{rof} Rombo
\tag{ru} Russian\hascapu\hascapl
\tag{rw} Kinyarwanda
@@ -1705,6 +1722,7 @@ captions):
\tag{sah} Sakha
\tag{saq} Samburu
\tag{sbp} Sangu
+\tag{sc} Sardinian
\tag{se} Northern Sami\hascapu\hascapl
\tag{seh} Sena
\tag{ses} Koyraboro Senni
@@ -1712,7 +1730,7 @@ captions):
\tag{shi-Latn} Tachelhit
\tag{shi-Tfng} Tachelhit
\tag{shi} Tachelhit
-\tag{si} Sinhala
+\tag{si} Sinhala\hascapu
\tag{sk} Slovak\hascapu\hascapl
\tag{sl} Slovenian\hascapu\hascapl
\tag{smn} Inari Sami
@@ -1730,8 +1748,9 @@ captions):
\tag{sr} Serbian\hascapu\hascapl
\tag{sv} Swedish\hascapu\hascapl
\tag{sw} Swahili
+\tag{syr} Syriac
\tag{ta} Tamil\hascapu
-\tag{te} Telugu\hascapu\hascapl
+\tag{te} Telugu\hascapu
\tag{teo} Teso
\tag{th} Thai\hascapu\hascapl
\tag{ti} Tigrinya
@@ -1740,9 +1759,9 @@ captions):
\tag{tr} Turkish\hascapu\hascapl
\tag{twq} Tasawaq
\tag{tzm} Central Atlas Tamazight
-\tag{ug} Uyghur
+\tag{ug} Uyghur\hascapu
\tag{uk} Ukrainian\hascapu\hascapl
-\tag{ur} Urdu\hascapu\hascapl
+\tag{ur} Urdu\hascapu
\tag{uz-Arab} Uzbek
\tag{uz-Cyrl} Uzbek
\tag{uz-Latn} Uzbek
@@ -1757,14 +1776,15 @@ captions):
\tag{yav} Yangben
\tag{yi} Yiddish
\tag{yo} Yoruba
+\tag{yrl} Nheengatu
\tag{yue} Cantonese
\tag{zgh} Standard Moroccan Tamazight
-\tag{zh-Hans-HK} Chinese\hascapu
-\tag{zh-Hans-MO} Chinese\hascapu
-\tag{zh-Hans-SG} Chinese\hascapu
+\tag{zh-Hans-HK} Chinese
+\tag{zh-Hans-MO} Chinese
+\tag{zh-Hans-SG} Chinese
\tag{zh-Hans} Chinese\hascapu
-\tag{zh-Hant-HK} Chinese\hascapu
-\tag{zh-Hant-MO} Chinese\hascapu
+\tag{zh-Hant-HK} Chinese
+\tag{zh-Hant-MO} Chinese
\tag{zh-Hant} Chinese\hascapu
\tag{zh} Chinese\hascapu
\tag{zu} Zulu
@@ -1787,7 +1807,7 @@ by |\babelprovide| with a valueless |import|.
\let\\\par
\begin{multicols}{2}
-
+afrikaans\\
aghem\\
akan\\
albanian\\
@@ -2120,8 +2140,6 @@ yiddish\\
yoruba\\
zarma\\
zulu
-afrikaans\\
-
\end{multicols}
\endgroup
\hrule
@@ -2609,7 +2627,9 @@ locale (as set with |\babelfont|). Characters can be added or modified with
\New{3.81} Option |letters| restricts the ‘actions’ to letters, in the
\TeX{} sense (i.~e., with catcode 11). Digits and punctuation are then
-considered part of current locale (as set by a selector).
+considered part of current locale (as set by a selector). This option
+is useful when the main script in non-Latin and there is a secondary
+one whose script is Latin.
\begin{note}
An alternative approach with \luatex{} and Harfbuzz is the font
@@ -2618,6 +2638,21 @@ considered part of current locale (as set by a selector).
cases it can be enough.
\end{note}
+\begin{note}
+ \newcommand\artxt[1]{{%
+ \fontspec[Script=Arabic]{FreeSerif}\textdir TRT #1}}
+ There is no general rule to set the font for a punctuation mark,
+ because it is a semantic decision and not a typographical one.
+ Consider the following sentence: “\artxt{یک}, \artxt{دو}, and
+ \artxt{سه} are Persian numbers”. In this case the punctuation font
+ must be the English one, even if the commas are surrounded by
+ non-Latin letters. Quotation marks, parenthesis, etc., are even more
+ complex. Several criteria are possible, like the main language (the
+ default in \babel), the first letter in the paragraph, or the
+ surrounding letters, among others, but even so manual switching can
+ be still necessary.
+\end{note}
+
\Describe{intraspace=}{\meta{base} \meta{shrink} \meta{stretch}}
Sets the interword space for the writing system of the language, in em
units (so, |0 .1 0| is |0em plus .1em|). Like |\spaceskip|, the em unit
@@ -5153,8 +5188,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.82>>
-%<<date=2022/10/23>>
+%<<version=3.83>>
+%<<date=2022/11/30>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -8690,49 +8725,26 @@ help from Bernd Raichle, for which I am grateful.
{\bbl@tolower\@empty}{\bbl@toupper\@empty}}%
\gdef\bbl@tolower{\csname\languagename @bbl@lc\endcsname}%
\gdef\bbl@toupper{\csname\languagename @bbl@uc\endcsname}}}
-% A temporary hack:
-\ifx\BabelCaseHack\@undefined
-\AtBeginDocument{%
- \bbl@xin@{\string\@uclclist}%
- {\bbl@carg\meaning{MakeUppercase }}%
- \ifin@\else
- \chardef\bbl@ulflag\z@
- \bbl@ncarg\let\bbl@newuc{MakeUppercase }%
- \protected\@namedef{MakeUppercase }#1{{%
- \chardef\bbl@ulflag\@ne
- \ifx\bbl@uclc\@undefined
- \bbl@newuc{#1}%
- \else
- \bbl@ifunset{\languagename @bbl@uclc}%
- {\bbl@newuc{#1}}%
- {\def\reserved@a##1##2{\let##1##2\reserved@a}%
- \bbl@uclc\reserved@a\reserved@b{\reserved@b\@gobble}%
- \protected@edef\reserved@a{\bbl@newuc{#1}}% Pre-expand
- \reserved@a}%
- \fi}}%
- \bbl@ncarg\let\bbl@newlc{MakeLowercase }%
- \protected\@namedef{MakeLowercase }#1{{%
- \chardef\bbl@ulflag\tw@
- \ifx\bbl@uclc\@undefined
- \bbl@newlc{#1}%
- \else
- \bbl@ifunset{\languagename @bbl@uclc}%
- {\bbl@newlc{#1}}%
- {\def\reserved@a##1##2{\let##2##1\reserved@a}%
- \bbl@uclc\reserved@a\reserved@b{\reserved@b\@gobble}%
- \protected@edef\reserved@a{\bbl@newlc{#1}}% Pre-expand
- \reserved@a}%
- \fi}}%
- \def\bbl@cased{%
- \ifcase\bbl@ulflag
- \expandafter\@firstofone
- \or
- \expandafter\MakeUppercase
- \or
- \expandafter\MakeLowercase
- \fi}%
- \fi}
-\fi
+% A temporary hack, for testing purposes:
+\def\BabelRestoreCase{%
+ \DeclareRobustCommand{\MakeUppercase}[1]{{%
+ \def\reserved@a####1####2{\let####1####2\reserved@a}%
+ \def\i{I}\def\j{J}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \let\UTF@two@octets@noexpand\@empty
+ \let\UTF@three@octets@noexpand\@empty
+ \let\UTF@four@octets@noexpand\@empty
+ \protected@edef\reserved@a{\uppercase{##1}}%
+ \reserved@a
+ }}%
+ \DeclareRobustCommand{\MakeLowercase}[1]{{%
+ \def\reserved@a####1####2{\let####2####1\reserved@a}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \let\UTF@two@octets@noexpand\@empty
+ \let\UTF@three@octets@noexpand\@empty
+ \let\UTF@four@octets@noexpand\@empty
+ \protected@edef\reserved@a{\lowercase{##1}}%
+ \reserved@a}}}
% \end{macrocode}
%
% \begin{macrocode}
@@ -10658,8 +10670,11 @@ help from Bernd Raichle, for which I am grateful.
\fi
\bbl@xin@{,\bbl@tempa,}{,figure,table,}%
\ifin@
- \toks@\expandafter{\bbl@toreplace}%
- \bbl@exp{\gdef\<fnum@\bbl@tempa>{\the\toks@}}%
+ \global\bbl@csarg\let{\bbl@tempa fmt@#2}\bbl@toreplace
+ \bbl@exp{\gdef\<fnum@\bbl@tempa>{%
+ \\\bbl@ifunset{bbl@\bbl@tempa fmt@\\\languagename}%
+ {\[fnum@\bbl@tempa]}%
+ {\\\@nameuse{bbl@\bbl@tempa fmt@\\\languagename}}}}%
\fi}
\def\bbl@ini@captions@aux#1#2{%
\bbl@trim@def\bbl@tempa{#1}%
@@ -12451,8 +12466,12 @@ help from Bernd Raichle, for which I am grateful.
\ifx\bbl@opt@main\@nnil
\edef\bbl@tempa{\@classoptionslist,\bbl@language@opts}
\let\bbl@tempc\@empty
+ \edef\bbl@templ{,\bbl@loaded,}
+ \edef\bbl@templ{\expandafter\strip@prefix\meaning\bbl@templ}
\bbl@for\bbl@tempb\bbl@tempa{%
- \bbl@xin@{,\bbl@tempb,}{,\bbl@loaded,}%
+ \edef\bbl@tempd{,\bbl@tempb,}%
+ \edef\bbl@tempd{\expandafter\strip@prefix\meaning\bbl@tempd}%
+ \bbl@xin@{\bbl@tempd}{\bbl@templ}%
\ifin@\edef\bbl@tempc{\bbl@tempb}\fi}
\def\bbl@tempa#1,#2\@nnil{\def\bbl@tempb{#1}}
\expandafter\bbl@tempa\bbl@loaded,\@nnil
@@ -14817,6 +14836,9 @@ end
\expandafter\bbl@sreplace\csname] \endcsname{$$}{\eqno\kern.001pt$$}%
\else % amstex
\ifx\bbl@noamsmath\@undefined
+ \bbl@exp{% Hack to hide maybe undefined conditionals:
+ \chardef\bbl@eqnpos=0%
+ \<iftagsleft@>1\<else>\<if@fleqn>2\<fi>\<fi>\relax}%
\ifnum\bbl@eqnpos=\@ne
\let\bbl@ams@lap\hbox
\else
@@ -14960,6 +14982,9 @@ end
"Babel.picture_dir")
}%
\AtBeginDocument{%
+ \def\LS@rot{%
+ \setbox\@outputbox\vbox{%
+ \hbox dir TLT{\rotatebox{90}{\box\@outputbox}}}}%
\long\def\put(#1,#2)#3{%
\@killglue
% Try:
@@ -22300,7 +22325,7 @@ function Babel.bidi(head, ispar, hdir)
if Babel.mirroring_enabled and item.id == GLYPH
and temp == 'r' and characters[item.char] then
local font_mode = ''
- if font.fonts[item.font].properties then
+ if item.font > 0 and font.fonts[item.font].properties then
font_mode = font.fonts[item.font].properties.mode
end
if font_mode ~= 'harf' and font_mode ~= 'plug' then
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index 5128ec755d..dddb4bc51f 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2022/10/23}
+\def\filedate{2022/11/30}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index 161bd23b21..57211aa2fd 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index 2ad2e626b7..e84432d1ba 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2022/10/23 v3.82]
+\ProvidesFile{bbcompat.dtx}[2022/11/30 v3.83]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/macros/luatex/generic/lutabulartools/lutabulartools.lua b/macros/luatex/generic/lutabulartools/lutabulartools.lua
index 23ef965482..719f89873e 100644
--- a/macros/luatex/generic/lutabulartools/lutabulartools.lua
+++ b/macros/luatex/generic/lutabulartools/lutabulartools.lua
@@ -1,5 +1,5 @@
--% Kale Ewasiuk (kalekje@gmail.com)
---% 2022-11-27
+--% 2022-11-29
--% Copyright (C) 2021-2022 Kale Ewasiuk
--%
--% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -30,31 +30,33 @@ if (__PL_EXTRAS__ == nil) or (__PENLIGHT__ == nil) then
end
local T = pl.tablex
-local ltt = {}
+local lutabt = {}
-ltt.tablelevel = 0
+lutabt.tablelevel = 0
-ltt.debug = false
+lutabt.debug = false
-ltt.auto_topbot = false
+lutabt.auto_topbot = false
+lutabt.auto_topbot_old = false
-ltt.auto_crules = {} -- {{span,trim}, } appearance is like this, 'range|trim', -- auto_rules created by MC
-ltt.auto_midrules = {}
+lutabt.auto_crules = {} -- {{span,trim}, } appearance is like this, 'range|trim', -- auto_rules created by MC
+lutabt.auto_midrules = {}
-ltt.col_spec1 = {} -- column spec if one column wide (since makcell nests a tabular, preserve col_spec below)
-ltt.col_spec = {} -- tab column spec if above 1
-ltt.col = '' -- current column spec, single char, only applies to tabular with more than 1 column
-ltt.col_num = 1 -- current column number
-ltt.row_num = 0 -- current row number
+lutabt.col_spec1 = {} -- column spec if one column wide (since makcell nests a tabular, preserve col_spec below)
+lutabt.col_spec = {} -- tab column spec if above 1
+lutabt.col = '' -- current column spec, single char, only applies to tabular with more than 1 column
+lutabt.col_num = 1 -- current column number
+lutabt.row_num = 0 -- current row number
+lutabt.actlvl = 1 -- 'active' level on which to apply midrules, normally 1
-ltt.col_ver_repl = {
+lutabt.col_ver_repl = {
m = 'm',
M = 'm',
b = 'b',
}
-ltt.col_hor_repl = { -- horizontal cell alignment that multicolumn should use if () or [hori] not passed to func
+lutabt.col_hor_repl = { -- horizontal cell alignment that multicolumn should use if () or [hori] not passed to func
l = 'l',
c = 'c',
r = 'r',
@@ -70,11 +72,11 @@ ltt.col_hor_repl = { -- horizontal cell alignment that multicolumn should use if
}
-- allow user to place their own replacements in for a table, say if they define a column that expands to multiple
-ltt.col_replaces = {
+lutabt.col_replaces = {
--x = 'lll'
}
-ltt.SI_cols = {'S', 'N', 'Q', 'L', 'R'}
+lutabt.SI_cols = {'S', 'N', 'Q', 'L', 'R'}
@@ -83,24 +85,33 @@ ltt.SI_cols = {'S', 'N', 'Q', 'L', 'R'}
-----
-function ltt.debugtalk(s, ss)
+function lutabt.debugtalk(s, ss)
ss = ss or ''
- if ltt.debug then
+ if lutabt.debug then
pl.tex.help_wrt(s, ss..' (lutabulartools)')
end
end
+function __lutabt__debugprtall()
+ --pl.help_wrt(pl.tablex.filter({ lutabt }, function(v) return type(v) ~= 'function' end), '(lutabulartools state)')
+ pl.help_wrt(lutabt, '(lutabulartools state)')
+end
+
-function ltt.set_tabular(sett)
+function lutabt.set_tabular(sett)
sett = luakeys.parse(sett)
local trim = ''
for k, v in pairs(sett) do
if k == 'tbrule' then
- ltt.auto_topbot = v
+ lutabt.auto_topbot = v
elseif k == 'nopad' then
if pl.hasval(v) then trim = '@{}' end -- set to trim
tex.print('\\newcolumntype{\\lttltrim}{'..trim..'}')
tex.print('\\newcolumntype{\\lttrtrim}{'..trim..'}')
+ elseif k =='rowsep' then
+ tex.print('\\gdef\\arraystretch{'..v..'}')
+ elseif k =='colsep' then
+ tex.print('\\global\\setlength{\\tabcolsep}{'..(v*6)..'pt'..'}')
end
end
end
@@ -110,13 +121,13 @@ end
----- tabular utility funcs
-----
-function ltt.reset_rows()
- if ltt.tablelevel == 1 then
- ltt.row_num = 0
+function lutabt.reset_rows()
+ if lutabt.isactlevel() then
+ lutabt.row_num = 0
end
end
-function ltt.set_col_num()
+function lutabt.set_col_num()
-- register current column info (column number and specification)
local nest
for i = tex.nest.ptr, 1, -1 do
@@ -131,16 +142,16 @@ function ltt.set_col_num()
for _, sub in node.traverse_id(node.id'unset', nest.head) do
col = col + sub + 1
end
- ltt.col_num = col
+ lutabt.col_num = col
else
- ltt.col_num = 1
+ lutabt.col_num = 1
end
- ltt.col = ltt.col_spec[ltt.col_num]
- ltt.debugtalk('col_num='..ltt.col_num..'; col_spec='..ltt.col,'set_col_num')
+ lutabt.col = lutabt.col_spec[lutabt.col_num]
+ lutabt.debugtalk('col_num='..lutabt.col_num..'; col_spec='..lutabt.col,'set_col_num')
end
-function ltt.set_col_spec(zz)
+function lutabt.set_col_spec(zz)
-- contents of string 'zz'
-- register the table column specification
zz = zz:gsub ( "%*%s-{(%d-)}%s-(%b{})" , -- expand expressions such as "*{5}{l}" to "lllll"
@@ -148,15 +159,15 @@ function ltt.set_col_spec(zz)
zz = zz:gsub ( "%b{}" , "" ) -- omit all stuff in curly braces and square
zz = zz:gsub ( "%b[]" , "" )
zz = zz:gsub ( "[@!|><%s%*\']" , "" ) -- some more characters to ignore
- zz = zz:gsub('%a', ltt.col_replaces) -- sub extra column
+ zz = zz:gsub('%a', lutabt.col_replaces) -- sub extra column
_col_spec = zz:totable() -- requires pl extras
--help_wrt(_col_spec, 'helpme')
if #_col_spec > 1 then
- ltt.col_spec = _col_spec
+ lutabt.col_spec = _col_spec
else
- ltt.col_spec1 = _col_spec
+ lutabt.col_spec1 = _col_spec
end
- ltt.debugtalk(ltt.col_spec,'set_col_spec')
+ lutabt.debugtalk(lutabt.col_spec,'set_col_spec')
end
@@ -171,23 +182,26 @@ end
----- magic cell and helpers
-----
-function ltt.MagicCell(s0,spec,mcspec,pre,content,trim)
+function lutabt.MagicCell(s0,spec,mcspec,pre,content,trim)
+ -- todo delete trim!!!
--
- ltt.set_col_num() -- register current column number and column spec
+ lutabt.set_col_num() -- register current column number and column spec
local STR = ''
pl.tex.reset_bkt_cnt()
- local v, h, r, c, mrowsym, skipmakecell = ltt.parse_MagicCell_spec(spec) -- get v/h align, number rows/columns
+ local spec, iscmidrule, trim = lutabt.check_MC_cmidrule(spec) -- check for cmidrule and clean spec
+
+ local v, h, r, c, mrowsym, skipmakecell = lutabt.parse_MagicCell_spec(spec) -- get v/h align, number rows/columns
local mcspec = mcspec or ''
- h, mcspec, c = ltt.get_HColSpec(h, mcspec, c) -- infer horizontal alignment, num columns
+ h, mcspec, c = lutabt.get_HColSpec(h, mcspec, c) -- infer horizontal alignment, num columns
- ltt.debugtalk(pl.List{v, h, r, c, mcspec}:join'; ','v, h, r, c, mcspec')
+ lutabt.debugtalk(pl.List{v, h, r, c, mcspec}:join'; ','v, h, r, c, mcspec')
--help_wrt(_CurTabColAbv,'current column')
- if s0 == pl.tex._xTrue or (pl.List(ltt.SI_cols):contains(ltt.col) -- special columns for SI
+ if s0 == pl.tex._xTrue or (pl.List(lutabt.SI_cols):contains(lutabt.col) -- special columns for SI
and c == '') then -- multicolumn cannot have {} around it
STR = STR .. '{' -- multirow and makcell must have {} around it S column is used
pl.tex.add_bkt_cnt()
@@ -217,17 +231,30 @@ function ltt.MagicCell(s0,spec,mcspec,pre,content,trim)
STR = STR..content..pl.tex.close_bkt_cnt()
--Troubleshooting
--help_wrt(STR..' <<< magic cell string')
- ltt.debugtalk(STR,'MagicCell')
+ lutabt.debugtalk(STR,'MagicCell')
tex.sprint(STR)--tex print the STR
- local en
- if c == '' then en = ltt.col_num else en = ltt.col_num + c -1 end
- ltt.add_auto_crule(ltt.col_num, en, trim)
+ if iscmidrule then
+ local en
+ if c == '' then en = lutabt.col_num else en = lutabt.col_num + c -1 end
+ lutabt.add_auto_crule(lutabt.col_num, en, trim)
+ end
end
+function lutabt.check_MC_cmidrule(spec)
+ local iscmidrule = false
+ local trim = ''
+ local st, en = spec:find('_')
+ if st ~= nil then
+ trim = spec:sub(st+1, #spec)
+ spec = spec:sub(1,st-1)
+ iscmidrule = true
+ end
+ return spec, iscmidrule, trim
+end
-function ltt.parse_MagicCell_spec(spec)
+function lutabt.parse_MagicCell_spec(spec)
local mrowsym = '*' -- * = natural width, = will match p{2cm} for example
local skipmakecell = false
if string.find(spec, '=') then
@@ -238,7 +265,7 @@ function ltt.parse_MagicCell_spec(spec)
spec = spec:lower():gsub('%s','') -- take lower case and remove space
local vh, rc = spec:gextract('%a') -- extract characters
- local v = vh:gfirst({'t', 'm', 'b'}) or ltt.col_ver_repl[ltt.col] or 't'
+ local v = vh:gfirst({'t', 'm', 'b'}) or lutabt.col_ver_repl[lutabt.col] or 't'
local h = vh:gfirst({'l', 'c', 'r'}) or ''
v = v:gsub('m', 'c')
@@ -252,27 +279,27 @@ function ltt.parse_MagicCell_spec(spec)
end
-function ltt.get_HColSpec(h, mcspec, c) -- take horizontal alignment
+function lutabt.get_HColSpec(h, mcspec, c) -- take horizontal alignment
-- c is num columns, h is horizontal alginment,
--Assumes _TabColNum was calculated previosly
if c == '+' then -- fill row to end
- c = tostring(#ltt.col_spec - ltt.col_num + 1)
+ c = tostring(#lutabt.col_spec - lutabt.col_num + 1)
end
if h == '' then -- if horizontal not provided, use declared column
- h = ltt.col_hor_repl[ltt.col] or 'l'
+ h = lutabt.col_hor_repl[lutabt.col] or 'l'
end
if c ~= '' then -- only make new mcspec if column nums > 0
if mcspec == '' then -- and if no mcspec was passed
mcspec = h
- if ltt.col_num == 1 then -- if first column, auto detect padding
+ if lutabt.col_num == 1 then -- if first column, auto detect padding
mcspec = '@{}'..mcspec
end
- if (ltt.col_num + tonumber(c) - 1) == #ltt.col_spec then -- if end on last column
+ if (lutabt.col_num + tonumber(c) - 1) == #lutabt.col_spec then -- if end on last column
mcspec = mcspec..'@{}'
end
else -- if mcspec if given, extract the alignment
- ltt.set_col_spec(mcspec)
- h = ltt.col_spec1[1] -- get 1 character column spec from mcspec and override h
+ lutabt.set_col_spec(mcspec)
+ h = lutabt.col_spec1[1] -- get 1 character column spec from mcspec and override h
end
end
return h, mcspec, c
@@ -280,52 +307,54 @@ end
-----
------ autorules (with \MC() or auto top bot
+----- autorules (with \MC() or auto top bot or midrule X, performed after \\
-----
-function ltt.add_auto_midrules(rows)
- ltt.auto_midrules = rows:split(',')
+function lutabt.add_auto_midrules(rows)
+ lutabt.auto_midrules = rows:split(',')
end
-function ltt.add_auto_crule(st,en,trim)
+function lutabt.add_auto_crule(st,en,trim)
if trim ~= 'x' then
- ltt.auto_crules[#ltt.auto_crules + 1] = {math.floor(st)..'-'..math.floor(en), trim} -- append here
+ lutabt.auto_crules[#lutabt.auto_crules + 1] = {math.floor(st)..'-'..math.floor(en), trim} -- append here
-- {{span 1-2, trim}, ..}
end
end
+function lutabt.isactlevel()
+ lutabt.tablelevel = tonumber(lutabt.tablelevel)
+ lutabt.actlvl = tonumber(lutabt.actlvl)
+ return lutabt.actlvl == lutabt.tablelevel
+end
-function ltt.process_auto_rules()
- if ltt.tablelevel == 1 then
- ltt.row_num = ltt.row_num + 1
- end
- if ltt.auto_crules ~= {} then
- if ltt.tablelevel == 1 then
- for _, v in ipairs(ltt.auto_crules) do
- --pl.help_wrt(ltt.auto_crules, 'fuck')
- ltt.make1cmidrule('', v[2], v[1], 'cmidrule')
+
+function lutabt.process_auto_rules()
+ if lutabt.isactlevel() then
+ lutabt.row_num = lutabt.row_num + 1
+ if lutabt.auto_crules ~= {} then
+ for _, v in ipairs(lutabt.auto_crules) do
+ lutabt.make1cmidrule('', v[2], v[1], 'cmidrule')
end
- for i, v in ipairs(ltt.auto_midrules) do
- --pl.help_wrt(ltt.auto_midrules, 'fuck')
- --pl.help_wrt(v, 'fuck')
- pl.help_wrt(ltt.row_num, 'fuck')
- if tonumber(v) == ltt.row_num then
- _ = table.remove(ltt.auto_midrules,i)
- --pl.help_wrt(v, 'removed!')
+ for i, v in ipairs(lutabt.auto_midrules) do
+ if tonumber(v) == lutabt.row_num then
+ _ = table.remove(lutabt.auto_midrules,i)
tex.print('\\midrule ')
end
end
end
+ if lutabt.mrX.settings.on then
+ lutabt.mrX.midruleX()
+ end
end
- ltt.auto_crules = {}
+ lutabt.auto_crules = {}
end
-function ltt.process_auto_topbot_rule(rule)
- if ltt.tablelevel == 1 then
- if ltt.auto_topbot then
+function lutabt.process_auto_topbot_rule(rule)
+ if lutabt.isactlevel() then
+ if lutabt.auto_topbot then
tex.print('\\'..rule..'rule ')
end
end
@@ -337,31 +366,24 @@ end
-----
------ midrule and midruleX stuff
+----- extra midrule
-----
-ltt.mrX = {}
-ltt.mrX.defaults = {step=5, rule='midrule', reset=false, resetnum=0, cntr=0}
-ltt.mrX.settings = T.copy(ltt.mrX.defaults)
-ltt.mrX.cntr = 0
-ltt.mrX.pgcntr = 0
-
-
-function ltt.get_midrule_col(s)
+function lutabt.get_midrule_col(s)
if string.find(s, '+') then
s = s:gsub('+', '')
if (s == '') or (s == '0') then
s = 1
end
- s = tostring(#ltt.col_spec - tonumber(s) + 1) -- use number of tabular columns above 0,
+ s = tostring(#lutabt.col_spec - tonumber(s) + 1) -- use number of tabular columns above 0,
end
return s
end
-function ltt.make1cmidrule(s, r, c, cmd) -- s=square r=round c=curly
+function lutabt.make1cmidrule(s, r, c, cmd) -- s=square r=round c=curly
cmd = '\\'..cmd
if s ~= '' then
cmd = cmd..'['..s..']'
@@ -376,61 +398,86 @@ function ltt.make1cmidrule(s, r, c, cmd) -- s=square r=round c=curly
if t[2] == nil then
t[2] = t[1]
end
- c = ltt.get_midrule_col(t[1])..'-'..ltt.get_midrule_col(t[2])
+ c = lutabt.get_midrule_col(t[1])..'-'..lutabt.get_midrule_col(t[2])
cmd = cmd..'{'..c..'}'
- ltt.debugtalk(cmd,'make1cmidrule')
+ lutabt.debugtalk(cmd,'make1cmidrule')
tex.print(cmd)
end
-function ltt.makecmidrules(s, r, c, cmd)
+function lutabt.makecmidrules(s, r, c, cmd)
for k, c1 in pairs(string.split(c, ',')) do
r1, c2 = c1:gextract('%a')
if r1 == '' then -- if nothing passed in with the column
r1 = r -- set to the global value passed in round brackets
end
- ltt.make1cmidrule(s, r1:strip(), c2:strip(), cmd)
+ lutabt.make1cmidrule(s, r1:strip(), c2:strip(), cmd)
end
end
+-----
+----- midruleX
+-----
+
+lutabt.mrX = {}
+lutabt.mrX.resets = {long=false, longhead=0, cntr=0, head=nil, longx=false, on=true} -- settings that reset when \setmidruleX used
+lutabt.mrX.resets['head*'] = nil
+lutabt.mrX.settings = T.update(T.copy(lutabt.mrX.resets), {pgcntr=0, step=5, rule='midrule'}) -- current settings, not overwritten with each call
+
+
+function lutabt.mrX.reset_midruleX(n)
+ lutabt.mrX.settings.cntr = tonumber(n)
+end
+
+function lutabt.mrX.off()
+ if lutabt.isactlevel() then
+ lutabt.mrX.settings.on = false
+ end
+end
-function ltt.mrX.set_midruleX(new_sett, def)
- def = def or ''
- local curr_sett = {}
- if def == pl.tex._xTrue then -- default flag, if true, reset all non-used keys to default
- curr_sett = ltt.mrX.defaults
+function lutabt.mrX.set_midruleX(new_sett, def)
+ lutabt.mrX.settings = T.update(lutabt.mrX.settings, T.union(lutabt.mrX.resets, luakeys.parse(new_sett)))
+ lutabt.debugtalk(lutabt.mrX.settings, 'new midruleX settings')
+ if lutabt.mrX.settings.head ~= nil then
+ lutabt.mrX.settings.cntr = -1*tonumber(lutabt.mrX.settings.head)
+ elseif lutabt.mrX.settings['head*'] ~= nil then
+ lutabt.mrX.settings.cntr = -1*tonumber(lutabt.mrX.settings['head*'])
+ lutabt.auto_midrules[#lutabt.auto_midrules + 1] = lutabt.mrX.settings['head*']
+ lutabt.mrX.settings['head*'] = nil -- for some reason need to do this to clear head*
+ end
+ if lutabt.mrX.settings.longx then -- longtable X messes with the tablelevel settings, hack to fix, use longx keyword
+ lutabt.actlvl = 3
+ lutabt.mrX.settings.long = true
else
- curr_sett = ltt.mrX.settings
+ lutabt.actlvl = 1
end
- new_sett = luakeys.parse(new_sett)
- ltt.mrX.settings = T.union(curr_sett, new_sett)
- ltt.debugtalk(ltt.mrX.settings, 'new midruleX settings')
- ltt.mrX.cntr = curr_sett.cntr
end
-function ltt.mrX.midruleX(n)
+
+function lutabt.mrX.midruleX(n)
n = n or '' -- todo placeholder for noalign ?
- local s = ltt.mrX.settings
+ lutabt.debugtalk(lutabt.mrX.settings, 'midruleX here')
+ local s = lutabt.mrX.settings
local rule = s.rule
- if pl.hasval(s.reset) and ltt.mrX.add_label_and_check_page_change() then ltt.mrX.cntr = s.resetnum end
- ltt.mrX.cntr = ltt.mrX.cntr + 1
- if ltt.mrX.cntr == s.step then
+ if pl.hasval(s.long) and lutabt.mrX.add_label_and_check_page_change() then lutabt.mrX.settings.cntr = -1*s.longhead end -- reset to number on page change
+ lutabt.mrX.settings.cntr = lutabt.mrX.settings.cntr + 1
+ if lutabt.mrX.settings.cntr == s.step then
if not rule:startswith('\\') then rule = '\\'..rule end -- todo consider allowing \gmidrule syntax, possible issue with expansion
- ltt.debugtalk(rule, 'apply midruleX')
+ lutabt.debugtalk(rule, 'apply midruleX')
tex.sprint(rule)
- ltt.mrX.cntr = 0
+ lutabt.mrX.settings.cntr = 0
end
end
-function ltt.mrX.add_label_and_check_page_change()
- ltt.mrX.pgcntr = ltt.mrX.pgcntr + 1
- tex.print('\\noalign{\\label{ltt@tabular@row@'..ltt.mrX.pgcntr..'}}')
- local rcurr = pl.tex.get_ref_info('ltt@tabular@row@'..ltt.mrX.pgcntr)
- local rprev = pl.tex.get_ref_info('ltt@tabular@row@'..ltt.mrX.pgcntr-1)
- --local rcurrc, _, _ = pl.tex.get_ref_info_all_cref('ltt@tabular@row@'..ltt.mrX.pgcntr)
- ltt.debugtalk('curr: '..rcurr[2]..' prev: '..rprev[2]..' row: '..ltt.mrX.pgcntr, 'check midruleX page change')
- ltt.debugtalk(rcurr, 'miduleX current reference info for row: '..ltt.mrX.pgcntr)
- --ltt.debugtalk(rcurrc, 'miduleX current cleveref cref info')
+function lutabt.mrX.add_label_and_check_page_change()
+ lutabt.mrX.settings.pgcntr = lutabt.mrX.settings.pgcntr + 1
+ tex.print('\\noalign{\\label{ltt@tabular@row@'..lutabt.mrX.settings.pgcntr..'}}')
+ local rcurr = pl.tex.get_ref_info('ltt@tabular@row@'..lutabt.mrX.settings.pgcntr)
+ local rprev = pl.tex.get_ref_info('ltt@tabular@row@'..lutabt.mrX.settings.pgcntr-1)
+ --local rcurrc, _, _ = pl.tex.get_ref_info_all_cref('ltt@tabular@row@'..lutabt.mrX.settings.pgcntr)
+ lutabt.debugtalk('curr: '..rcurr[2]..' prev: '..rprev[2]..' row: '..lutabt.mrX.settings.pgcntr, 'check midruleX page change')
+ lutabt.debugtalk(rcurr, 'miduleX current reference info for row: '..lutabt.mrX.settings.pgcntr)
+ --lutabt.debugtalk(rcurrc, 'miduleX current cleveref cref info')
if rcurr[2] ~= rprev[2] then -- pg no is second element
return true
end
@@ -438,18 +485,28 @@ function ltt.mrX.add_label_and_check_page_change()
end
+return lutabt -- lutabulartools
+
+
+
+--http://ctan.mirror.rafal.ca/macros/latex/contrib/multirow/multirow.pdf
+--http://ctan.mirror.colo-serv.net/macros/latex/contrib/makecell/makecell.pdf
+-- https://tex.stackexchange.com/questions/331716/newline-in-multirow-environment
+
+
+
--
---ltt.tabular_row_pages_cntr = 0
---function ltt.reset_midruleX_on_newpage(n)
+--lutabt.tabular_row_pages_cntr = 0
+--function lutabt.reset_midruleX_on_newpage(n)
-- local n = n or 0
--- ltt.tabular_row_pages_cntr = ltt.tabular_row_pages_cntr + 1
--- tex.print('\\noalign{\\label{tabular@row@'..ltt.tabular_row_pages_cntr..'}}')
--- if ltt.get_ref_page('tabular@row@'..ltt.tabular_row_pages_cntr) -
--- ltt.get_ref_page('tabular@row@'..(ltt.tabular_row_pages_cntr-1)) == 1 then
+-- lutabt.tabular_row_pages_cntr = lutabt.tabular_row_pages_cntr + 1
+-- tex.print('\\noalign{\\label{tabular@row@'..lutabt.tabular_row_pages_cntr..'}}')
+-- if lutabt.get_ref_page('tabular@row@'..lutabt.tabular_row_pages_cntr) -
+-- lutabt.get_ref_page('tabular@row@'..(lutabt.tabular_row_pages_cntr-1)) == 1 then
-- tex.print('\\setcounter{midruleX}{'..n..'}')
-- end
--end
@@ -457,14 +514,29 @@ end
--help_wrt('TEST COL ')
--for _, s in ipairs{ 'll', '*{6}{s}', 'l*{6}{l}', 'lll', 'll[]', 'll[]*{6}{l}', '*{6}{l}', 'y*{6}{sq}x', } do
--- ltt. set_col_spec(s)
--- help_wrt(ltt.col_spec,s)
+-- lutabt. set_col_spec(s)
+-- help_wrt(lutabt.col_spec,s)
--end
-return ltt -- lutabulartools
-
-
---http://ctan.mirror.rafal.ca/macros/latex/contrib/multirow/multirow.pdf
---http://ctan.mirror.colo-serv.net/macros/latex/contrib/makecell/makecell.pdf
--- https://tex.stackexchange.com/questions/331716/newline-in-multirow-environment
+-- todo move mrX mechanim to avoid @{}
+--function lutabt.mrX.set_midruleX(new_sett, def)
+-- def = def or ''
+-- local curr_sett = {}
+-- if def == pl.tex._xTrue then -- default flag, if true, reset all non-used keys to default
+-- curr_sett = lutabt.mrX.defaults
+-- else
+-- curr_sett = lutabt.mrX.settings
+-- end
+-- new_sett = luakeys.parse(new_sett)
+-- lutabt.mrX.settings = T.union(curr_sett, new_sett)
+--
+-- lutabt.debugtalk(lutabt.mrX.settings, 'new midruleX settings')
+-- lutabt.mrX.settings.cntr = tonumber(curr_sett.cntr) -- todo this needs to be a settings var
+-- if new_sett.cntr ~= nil then -- todo fix the counter
+-- lutabt.mrX.settings.cntr = tonumber(new_sett.cntr)
+-- end
+-- if new_sett.head ~= nil then -- todo fix the counter
+-- lutabt.mrX.settings.cntr = -1*tonumber(new_sett.head)
+-- end
+--end
diff --git a/macros/luatex/generic/lutabulartools/lutabulartools.pdf b/macros/luatex/generic/lutabulartools/lutabulartools.pdf
index c915ba6291..74c3446796 100644
--- a/macros/luatex/generic/lutabulartools/lutabulartools.pdf
+++ b/macros/luatex/generic/lutabulartools/lutabulartools.pdf
Binary files differ
diff --git a/macros/luatex/generic/lutabulartools/lutabulartools.sty b/macros/luatex/generic/lutabulartools/lutabulartools.sty
index 1d2522b099..4ca3752578 100644
--- a/macros/luatex/generic/lutabulartools/lutabulartools.sty
+++ b/macros/luatex/generic/lutabulartools/lutabulartools.sty
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2022-11-27
+% 2022-11-29
% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -23,7 +23,7 @@
% OR OTHER DEALINGS IN THE SOFTWARE.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lutabulartools}[2022-11-27]
+\ProvidesPackage{lutabulartools}[2022-11-29]
\RequirePackage{booktabs}
\RequirePackage{multirow}
@@ -39,6 +39,7 @@
\newcommand{\lttdebugON}{\luadirect{lutabt.debug = true}}
\newcommand{\lttdebugOFF}{\luadirect{lutabt.debug = true}}
+\newcommand{\lttdebugprt}{\luadirect{__lutabt__debugprtall()}}
\newcolumntype{\lttltrim}{}
\newcolumntype{\lttrtrim}{}
@@ -46,15 +47,38 @@
%%% midrule every X rows
-\def\midruleX{\aftergroup\aftergroup\aftergroup\midruleX@aux}
-\def\midruleX@aux{\luadirect{lutabt.mrX.midruleX('')}} % todo argument for vadjust or noalign??
-\NewDocumentCommand{\setmidruleX}{s O{N} m}{%
+% NO LONGER NEEDED %%% this was used for @{\midruleX} in colspec, but I made a better way
+%\def\midruleX{\aftergroup\aftergroup\aftergroup\midruleX@aux}
+%\def\midruleX@aux{\luadirect{lutabt.mrX.midruleX('')}} %
+%%%
+
+\NewDocumentCommand{\midruleX}{s O{N} m}{%
\MakeluastringCommands[N]{#2}%
\luadirect{lutabt.mrX.set_midruleX(\plluastringA{#3}, \luastring{#1})}%
}
-\NewDocumentCommand{\midruleXreset}{O{0}}{\luadirect{lutabt.mrX.cntr = tonumber(\luastring{#1})}}
-\NewCommandCopy\resetmidruleX\midruleXreset
+\NewDocumentCommand{\resetmidruleX}{O{0}}{\luadirect{lutabt.mrX.reset_midruleX(\luastring{#1})}}
+
+
+\NewDocumentCommand{\settabular}{s m}{\luadirect{lutabt.set_tabular(\luastring{#2})}} %
+
+\def\ltt@resetrownum{\luadirect{lutabt.reset_rows()}}
+\def\ltt@resetrownumhard{\luadirect{lutabt.row_num = 0}}
+\def\ltt@autotoprule{\luadirect{lutabt.process_auto_topbot_rule('top')}}
+\def\ltt@autobotrule{\luadirect{lutabt.process_auto_topbot_rule('bottom')}}
+\def\ltt@storeautotbandfalse{\luadirect{
+ lutabt.auto_topbot_old = lutabt.auto_topbot
+ lutabt.auto_topbot = false}}
+\def\ltt@restoreautotb{\luadirect{lutabt.auto_topbot = lutabt.auto_topbot_old}}
+\def\ltt@inctablelevel{\luadirect{lutabt.tablelevel = lutabt.tablelevel + 1}}
+\def\ltt@dectablelevel{\luadirect{lutabt.tablelevel = lutabt.tablelevel - 1}}
+\def\ltt@midruleXoff{\luadirect{lutabt.mrX.off()}}
+\def\ltt@actlevelreset{\luadirect{lutabt.actlvl = 1}}
+
+\apptocmd{\@arraycr}{\luadirect{lutabt.process_auto_rules()}}{}{}
+
+
+\NewDocumentCommand{\midrulesat}{m}{\luadirect{lutabt.add_auto_midrules(\luastring{#1})}}
%%%%
@@ -138,16 +162,11 @@
-\NewDocumentCommand{\midrulesat}{m}{\luadirect{lutabt.add_auto_midrules(\luastring{#1})}}
+\apptocmd{\LTXtable}{\ltt@actlevelreset\ltt@resetrownumhard\luadirect{lutabt.tablelevel=0}}{}{}
-\NewDocumentCommand{\settabular}{s m}{\luadirect{lutabt.set_tabular(\luastring{#2})}} % make kv interface for auto
-
-\def\ltt@resetrownum{\luadirect{lutabt.reset_rows()}}
-\def\ltt@autotoprule{\luadirect{lutabt.process_auto_topbot_rule('top')}}
-\def\ltt@autobotrule{\luadirect{lutabt.process_auto_topbot_rule('bottom')}}
\let\oldtabular\tabular
\let\oldendtabular\endtabular
@@ -155,9 +174,7 @@
\luadirect{lutabt.set_col_spec(\luastringN{#2})}%
\oldtabular[#1]{\lttltrim#2\lttrtrim}\ltt@inctablelevel\ltt@resetrownum\ltt@autotoprule%
}
-\def\endtabular{\ltt@autobotrule\ltt@dectablelevel\oldendtabular}
-
-
+\def\endtabular{\ltt@autobotrule\ltt@midruleXoff\ltt@dectablelevel\oldendtabular}
\expandafter\let\expandafter\oldtabulars\csname tabular*\endcsname
@@ -166,27 +183,21 @@
\luadirect{lutabt.set_col_spec(\luastringN{#3})}%
\begin{oldtabulars}{#1}[#2]{\lttltrim#3\lttrtrim}\ltt@inctablelevel\ltt@resetrownum\ltt@autotoprule%
}{%
- \ltt@autobotrule\ltt@dectablelevel\end{oldtabulars}%
+ \ltt@autobotrule\ltt@midruleXoff\ltt@dectablelevel\end{oldtabulars}%
}
%%% NOTE tabularx uses tabular*, NO NEED TO CHANGE TABULARX!
+
\let\oldlongtable\longtable
\RenewExpandableDocumentCommand{\longtable}{ O{l} m }{%
- \luadirect{lutabt.auto_topbot_old = lutabt.auto_topbot
- lutabt.auto_topbot = false}%
+ \ltt@storeautotbandfalse%
\luadirect{lutabt.set_col_spec(\luastringN{#2})}%
\oldlongtable[#1]{\lttltrim#2\lttrtrim}\ltt@inctablelevel\ltt@resetrownum%
}
\let\oldendlongtable\endlongtable
-\def\endlongtable{\luadirect{lutabt.auto_topbot = lutabt.auto_topbot_old}
- \ltt@dectablelevel\oldendlongtable}% restore status of auto topbot rule
-
-\apptocmd{\@arraycr}{\luadirect{lutabt.process_auto_rules()}}{}{}
+\def\endlongtable{\ltt@restoreautotb\ltt@midruleXoff\ltt@dectablelevel\oldendlongtable}% restore status of auto topbot rule
-\def\ltt@inctablelevel{\luadirect{lutabt.tablelevel = lutabt.tablelevel + 1}}
-\def\ltt@dectablelevel{\luadirect{lutabt.tablelevel = lutabt.tablelevel - 1}}
-
%s0,spec,mcspec,pre,content
% Magic Cell
\NewExpandableDocumentCommand{\MC}{ s O{} O{} D<>{} D(){x} m }{%
diff --git a/macros/luatex/generic/lutabulartools/lutabulartools.tex b/macros/luatex/generic/lutabulartools/lutabulartools.tex
index 7af9cbc4a6..25acf21e25 100644
--- a/macros/luatex/generic/lutabulartools/lutabulartools.tex
+++ b/macros/luatex/generic/lutabulartools/lutabulartools.tex
@@ -1,5 +1,5 @@
% Kale Ewasiuk (kalekje@gmail.com)
-% 2022-11-27
+% 2022-11-29
% Copyright (C) 2021-2022 Kale Ewasiuk
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -86,12 +86,13 @@
% todo: can improve naming... set col spec to a table instead of a string
-
\maketitle
-lutabulartools is a package that contains a few useful Lua\LaTeX-based macros to help with tables.
-This package redefines the {\ttfamily tabular} and {\ttfamily tabular*} environments.
-The following packages are loaded if not already, so if you have specific settings for these packages, load this package after:
+\cmd{lutabulartools} is a package that contains a few useful Lua\LaTeX-based macros to help with tables.
+A global \cmd{lua} variable \cmd{lutabt} is created.
+This package redefines the {\ttfamily tabular} and {\ttfamily tabular*} environments as well as \cmd{\@arraycr} to add functionarlity.
+The following packages are loaded by this one,
+so if you have specific settings for these packages, load the \cmd{lutabulartools} package after:
\texttt{
{booktabs},
{multirow},
@@ -101,19 +102,21 @@ The following packages are loaded if not already, so if you have specific settin
{xcolor},
{colortbl},
{luacode},
-{penlight}
-}.
+{penlight}}.
-\section{settabular}
+\section{\texttt{\textbackslash settabular}}
A key-val interface in the \cmd{\settabular{}} command is used to set some tabular settings.
\cmd{nopad} automatically adds \cmd{@{}} on each end of the column spec.\\
-\cmd{tbrule} automatically adds \cmd{\toprule} as the first thing in the environment, and \cmd{\bottomrule} as the last.
-Note that automatic rule adding is disabled in \cmd{longtable}.
-\begin{LTXexample}
-\settabular{nopad,tbrule} % or
-\settabular{nopad=false,tbrule=false}
-\end{LTXexample}
+\cmd{tbrule} automatically adds \cmd{\toprule} as the first thing in the \cmd{tabular(*|x)} environment, and \cmd{\bottomrule} as the last.
+Note that this automatic top/bottom rule adding is disabled in \cmd{longtable}.
+\cmd{row/colsep} tweaks the row spacing with \cmd{arraystretch}
+or adjusts the \cmd{tabcolsep} length (an integer must be used, the result is multiplied by 6pt). For example:
+\begin{verbatim}
+\settabular{nopad,tbrule,rowsep=2,colsep=2} % or
+\settabular{nopad=false,tbrule=false} % to set the switches to off
+\end{verbatim}
+
\section{Debugging}
You can toggle log output debugging with \cmd{\lttdebugON} and \cmd{\lttdebugOFF}.
@@ -124,6 +127,9 @@ msg2
^^^^^
\end{verbatim}
+\cmd{\lttdebugprt} can be used pretty-print the \cmd{lutabt} module and its attributes---useful for checking the
+``state'' of the package.
+
\section{\texttt{\textbackslash MC} -- Magic Cell}
\texttt{\textbackslash MC} (magic cell) combines the facilities of
\cmd{\multirow} and \cmd{\multicolumn} from the \texttt{multirow} package, and \cmd{\makcell} from the titular package.
@@ -131,7 +137,7 @@ With the help of LuaLaTeX, it takes an easy-to-use cell specification and employ
\cmd{\MC} will not work properly if your table is only 1 column wide (you probably don't need \cmd{MC} in that case anyway...).
Here is the usage:
-\texttt{\textbackslash MC * [cell spec] [override multicol] <cell format> (add cmidrule) \{contents\} }
+\texttt{\textbackslash MC * [cell spec] [override multicol] <cell format> \{contents\} }
\llcmd{*}This will wrap the entire command in \{\}. This is necessary for \texttt{siunitx} single-column width columns.
However, the \cmd{\MC} command attempts to detect this automatically.
@@ -162,24 +168,19 @@ Examples:\\
\cmd{\MC[+,2]}, if placed in the first column, occupies the entire row and is two rows tall.\\
\cmd{\MC[+,2]}, if placed in the second column, occupies the second column to the end of the table and is two rows tall.\\
In any of these examples, you can place the alignment letters anywhere.
-So, \cmd{\MC[l1,2b]} and \cmd{\MC[1,2 lb]} are both left-bottom aligned (spaces are ignored).
-
+So, \cmd{\MC[l1,2b]} and \cmd{\MC[1,2 lb]} are both left-bottom aligned (spaces are ignored).\\
+Put an \cmd{_} as the last thing to add a \cmd{cmidrule} under, followed by a trim spec (the thing that goes in \cmd{()})
+\cmd{\MC[+c_l]} will add a \cmd{cmidrule} underneath the cell (which fills until the end of the table), with the left side trimmed.
\llcmd{[override mc]}%
You may want to adjust the column specification of a multicolumn cell,\\
\texttt{[@\{\}c@\{\}]} for example to remove padding between the cell.
-\llcmd{(cmidrule)} will add a cmidrule at end of row. \cmd{()} to add without trim or \cmd{(lr)} to trim.
-
\llcmd{<cell format>}%
You can place formatting like \cmd{\bfseries} here.
-\subsection{midrulesat}
-If you'd rather specify the location of midrules outside the table, use \cmd{\midrulesat{1,2,3}}: a midrule will be
-placed on rows 1, 2, and 3, for the next table only.
-
-\subsection{Defaults}\label{s.def}
+\subsection{\texttt{\textbackslash MC} Defaults}\label{s.def}
The \cmd{tabular[*]} environment is re-defined to use Lua pattern matching
to parse the column specification of the table. This is done to determine how many columns there are,
and what the current column type is, even if specifications like \cmd{r@{.}l*{3}{r}} are used.
@@ -189,18 +190,20 @@ You can also specify default horizontal and vertical alignments (ie if alignment
for an arbitrary column by \cmd{\setMChordef{?}{l|r|c}} and\\
\cmd{\setMChordef{?}{t|m|b}}, where \cmd{?} is the column.
To add a column that should be surrounded by brackets for \cmd{siunitx} purposes, do so with \cmd{\addMCsicol{?}}.
-S is included by default.
+\cmd{S} is included by default.
+
+\section{\texttt{\textbackslash midrulesat}}
+If you'd rather specify the location of midrules outside the table, use \cmd{\midrulesat{1,2,3}}: a midrule will be
+placed on rows 1, 2, and 3, for the next table only.
-\subsection{Examples}
+\section{Examples}
\let\nl\\
-
Change the settings for the rest of the doc.
-
\begin{LTXexample}
\settabular{nopad,tbrule}
\end{LTXexample}
@@ -214,14 +217,12 @@ Change the settings for the rest of the doc.
\begin{tabular}{ l l l }
\MC[+m]<\itshape>{A Decent
Example}\\\midrule
- & \MC[2m](r){Heading} \\
+ & \MC[2m_]{Heading} \\
\MC[b,-2]{Multi\\Line} & A & B \\\midrule
end & & \\
\end{tabular}
\end{LTXexample}
-
-
\subsubsection{A small example}
\begin{LTXexample}
\midrulesat{1,2,3}
@@ -238,9 +239,9 @@ d \\
\begin{LTXexample}
\begin{tabular}{ l l l }\midrule
- \MC(){A} & \MC[mc2,2]{Lttrs} \\
- \MC(r){B} & \\ \cmidrule{2-3}
- \MC(r){1} & \MC(r){A} & \MC(r){B} \\ % todo must fix
+ \MC[_]{A} & \MC[mc2,2]{Lttrs} \\
+ \MC[_r]{B} & \\ \cmidrule{2-3}
+ \MC[_r]{1} & \MC[_r]{A} & \MC[_r]{B} \\
\\
\end{tabular}
\end{LTXexample}
@@ -296,35 +297,6 @@ doesn't play particularly well with the middle aligned \cmd{\MC}
-
-
-%%% https://tex.stackexchange.com/questions/287346/width-of-column-after-multicolumn-header
-
-%\textbackslash MC[<spec>]{<contents}
-
-
-%\subsubsection{And another one}
-%
-%\begin{LTXexample}
-%\setMChordef{l}{r}
-%\setMCverdef{l}{b}
-%% change deflt alignment ^
-%\newcolumntype{e}{ll}
-%\setMCrepl{e}{ll}
-%% e -> l l ^
-%\begin{tabular}{l l l e}\toprule
-%aaaaa & bbb & ccc & eee & fff\\
-%\MC{aaaaa}\\
-%\MC{a}\\\midrule
-%\MC{a\\bbbbb} & x\\\midrule
-%\makecell[br]{a\\b} & x\\\midrule
-%\MC[+]{--- ---}\\
-%\end{tabular}
-%\end{LTXexample}
-%% WHY ISNT THIS RIGHT?
-
-
-
\newpage
@@ -347,65 +319,58 @@ Here's an example:
\begin{LTXexample}
\begin{tabular}{c c c c c c}
- 1 & 2 & 3 & 4 & 5 & 6\\
+ a & 2 & 3 & 4 & 5 & 6\\
\cmidrule{+1} % rule on last column
- 1 & 2 & 3 & 4 & 5 & 6\\
+ b & 2 & 3 & 4 & 5 & 6\\
\cmidrules{1,3-+3,+} % rule on first col, third to third last col, and last col
- 1 & 2 & 3 & 4 & 5 & 6\\
+ c & 2 & 3 & 4 & 5 & 6\\
\cmidrules{1,3-+3rl,+} % same as above, but trim middle
- 1 & 2 & 3 & 4 & 5 & 6\\
+ d & 2 & 3 & 4 & 5 & 6\\
\cmidrules(l){1,r3-+3,+1}% trim left for all, but only trim right for middle rule
- 1 & 2 & 3 & 4 & 5 & 6\\
+ e & 2 & 3 & 4 & 5 & 6\\
\gcmidrule{+1} % rule on last column
- 1 & 2 & 3 & 4 & 5 & 6\\
+ f & 2 & 3 & 4 & 5 & 6\\
\gcmidrules{1,3-+3,+} % rule on first col, third to third last col, and last col
- 1 & 2 & 3 & 4 & 5 & 6\\
+ g & 2 & 3 & 4 & 5 & 6\\
\gcmidrules{1,3-+3rl,+} % same as above, but trim middle
- 1 & 2 & 3 & 4 & 5 & 6\\
+ h & 2 & 3 & 4 & 5 & 6\\
\gcmidrules(l){1,r3-+3,+1}% trim left for all, but only trim right for middle rule
\end{tabular}
\end{LTXexample}
-\subsection{Midrule every X\textsuperscript{th} row}
+\section{\texttt{\textbackslash midruleX} - Midrule every X\textsuperscript{th} row}
-\llcmd{\midruleX}%
With this command, you can place a rule
-every X rows.
-To use, place \cmd{@{\midruleX}} at the end of the tabular column spec, eg. \cmd{\begin{tabular}{ll@{\midruleX}}..}.
+every X rows for the next table made (place command outside of table).
You can configure the step size and what kind of midrule you prefer with the following key-val syntax, with default values below:\\
-\cmd{\setmidruleX{step=5,rule=midrule,reset=false,resetnum=0,cntr=0}}\\
+\cmd{\midruleX{step=5,rule=midrule,cntr=0,head=0,long=false,longhead=0}}\\
\cmd{step} is the number of rows (X) before applying the rule set by \cmd{rule}. \\
-Concering \cmd{longtable}s: If \cmd{reset} is set to \cmd{true},
+Concering \cmd{longtable}s: If \cmd{long} is set to \cmd{true} (or the key is present),
\cmd{\midruleX} will also add a unique \cmd{\label{}} on each row, and if the row starts on a newpage,
-resets the row counter to \cmd{resetnum}, to ensure you have the same X number of rows after the header of each page of a \cmd{longtable}.\\
-The starred version of first reverts the settings to default, then loads your inputted settings, which the non-starred
-version only overwrites the settings specified. \cmd{\setmidruleX*{}} will restore to default.
-Use optional parameter \cmd{\setmidruleX*[o|n|f]{}}
+resets the row counter to -1*\cmd{longhead}, to ensure you have the same X number of rows after the header of each page of a \cmd{longtable}.\\
+Use optional parameter \cmd{\midruleX*[o|n|f]{}}
to control expansion of the key-val settings (\cmd{[n]} for not expanded is default).
-Before you want counting to begin, you should
-apply \cmd{\resetmidruleX} to avoid header rows being counted.
-Use \cmd{\noalign{\resetmiduleX}} if you need place a rule on the same line the reset takes place, or in a cell before \cmd{\\}.
-Note that \cmd{\resetmidruleX} resets the row counter to 0, and is in effect, a short-cut for \cmd{\setmidruleX{}} or \cmd{\setmidruleX{cntr=0}}
+Before you want counting to begin, or anywhere in the table, you could
+apply \cmd{\resetmidruleX[cntr]} (\cmd{cnter} is incremented each row) to avoid header
+rows being counted and set the row \cmd{cntr} to an arbitrary value.
+If you want to skip the first \cmd{x} rows with \cmd{\midruleX}, set \cmd{head=x} (which is equivalent to \cmd{cntr=-x}).
+If you want to add a \cmd{midrule} under row \cmd{x}, use \cmd{head*=x} instead.
+Note: Use \cmd{\noalign{\resetmiduleX}} if you need place a rule on the same line the reset takes place (ie. in a cell before \cmd{\\}).
-%
-%\begin{tabular}{l@{\luadirect{tex.print('\\midrule')}}}
-% Hello \\
-%\end{tabular}
-%
+\subsection{\texttt{\textbackslash midruleX} examples}
+
\begin{LTXexample}
-\setmidruleX{step=3,rule=gmidrule}
-\begin{tabular}{rclc@{\midruleX}}
+\midruleX{step=3,rule=gmidrule,head*=1}
+\begin{tabular}{rclc}
% ^^^ inject midruleX
Num & . & . & . \\
-\midrule\resetmidruleX
-% reset so header dont count
1 & & & \\
2 & & & \\
3 & & & \\
-4 & & & \\
+4 & \MC[2,2]{Hi\\world} \\
5 & & & \\
6 & & & \\
7 & & & \\
@@ -419,21 +384,17 @@ Num & . & . & . \\
\end{tabular}
\end{LTXexample}
-%}
-
-%
-
\pagebreak
Here's an example with long table. Notice the gray rules reliably appear 3 rows after each header.
\begin{verbatim}
-\setmidruleX{reset=true,resetnum=0,rule="\gcmidrules{1r,2-}"}
+\midruleX{long=true,step=3,rule="\gcmidrules{1r,2-}"}
\def\tblhead{\toprule No & Name & Place & other\\\midrule}
\def\tblcontinued{\MC[+l]{Continued...}\\}
-\def\tblcontinues\MC[+r]{...Continues}\\}
-\begin{longtable}{rclc@{\midruleX}}
+\def\tblcontinues{\MC[+r]{...Continues}\\}
+\begin{longtable}{rclc}
\tblhead\endfirsthead
- \tblcontinued\head\endhead % all the lines above this will be repeated on every page
+ \tblcontinued\tblhead\endhead % all the lines above this will be repeated on every page
\tblcontinues\endfoot
\bottomrule End.\endlastfoot
\resetmidruleX
@@ -448,29 +409,29 @@ Here's an example with long table. Notice the gray rules reliably appear 3 rows
9 & & & \\
10 & & & \\
11 & & & \\
-12 & & & \\
+12 & \MC[2,-2](){Hi\\world} \\
13 & & & \\
14 & & & \\
15 & & & \\\newpage
-16 & & & \\
+16 & \MC[2,2]{Hi\\world} \\
17 & & & \\
18 & & & \\\resetmidruleX
19 & & & \\
\end{longtable}
\end{verbatim}
-\setmidruleX{reset=true,resetnum=0,rule="\gcmidrules{1r,2-}"}
+\midruleX{long=true,rule="\gcmidrules{1r,2-}"}
\def\tblhead{\toprule No & Name & Place & other\\\midrule}
\def\tblcontinued{\MC[+l]{Continued...}\\}
\def\tblcontinues{\MC[+r]{...Continues}\\}
-\begin{longtable}{rclc@{\midruleX}}
+\begin{longtable}{rclc}
\tblhead\endfirsthead
\tblcontinued\tblhead\endhead % all the lines above this will be repeated on every page
\tblcontinues\endfoot
\bottomrule End.\endlastfoot
\resetmidruleX
1 & & & \\
-2 & & & \\
+2 & \MC[_]{hi} & & \\
3 & & & \\
4 & & & \\
5 & & & \\
@@ -480,18 +441,41 @@ Here's an example with long table. Notice the gray rules reliably appear 3 rows
9 & & & \\
10 & & & \\
11 & & & \\
-12 & & & \\
+12 & \MC[2,-2_]{Hi\\world} \\
13 & & & \\
14 & & & \\
15 & & & \\\newpage
-16 & & & \\
+16 & \MC[2,-2_]{Hi\\world} \\
17 & & & \\
18 & & & \\\resetmidruleX
19 & & & \\
\end{longtable}
+%\begin{tabular}{ll}
+% a \\
+% b \\
+% v \\
+% d \\
+% r \\
+%\end{tabular}
+
+Long table X example
\LTXtable{\linewidth}{ltxexample}
+%\luadirect{pl.help_wrt(lutabt.actlvl, 'actlevel')}
+%\luadirect{pl.help_wrt(lutabt.row_num, 'row')}
+%\lttdebugprt
+
+%\settabular{tbrule} % glitch with LTX
+%\midrulesat{1,2,3}
+%\begin{tabular}{ll}
+% a \\
+% b \\
+% c \\
+% d \\
+% e \\
+%\end{tabular}
+
\end{document}
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index adb844f356..8e7c79d810 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -5,6 +5,7 @@ $mirrors = {
},
'South Africa' => {
'http://ftp.sun.ac.za/ftp/CTAN/' => 1,
+ 'https://mirror.ufs.ac.za/ctan/' => 1,
},
},
'Asia' => {
@@ -92,6 +93,7 @@ $mirrors = {
},
'Germany' => {
'ftp://ftp.fu-berlin.de/tex/CTAN/' => 1,
+ 'http://mirror.funkfreundelandshut.de/latex/' => 1,
'http://sendinnsky.selfhost.co/tex-archive/' => 1,
'http://vesta.informatik.rwth-aachen.de/ftp/pub/mirror/ctan/' => 1,
'https://ctan.joethei.xyz/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 4f6c4825b7..64cac4ee14 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/2022
-depend revision/65134
+depend revision/65146
name 00texlive.image
category TLCore
-revision 65130
+revision 65145
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
@@ -4671,7 +4671,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 65126
+revision 65136
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
@@ -30923,22 +30923,22 @@ catalogue-version 1.5.5
name bangorexam
category Package
-revision 46626
+revision 65140
shortdesc Typeset an examination at Bangor University
relocated 1
longdesc The package allows typesetting of Bangor Univesity's exam
longdesc style. It currently supports a standard A/B choice, A-only
longdesc compulsory and 'n' from 'm' exam styles. Marks are totalled and
longdesc checked automatically.
-containersize 49800
-containerchecksum 9da594fb6d8dec3727dc5e437923c225aff392250c42566972a6998a4709e1853e6b7399ce64e8cbb7408a422631ee61229cc97001343ac8acee7d5c0fd20847
-doccontainersize 185696
-doccontainerchecksum 576b991d414d9a8b481dd2d76a4ba74af9db70ae720d9b81f16cb2cfd887d8a09c2bd601bf7711ec77073909aa61470f2cdd7573457ea2ed25f9e316417da9ac
-docfiles size=47
+containersize 46816
+containerchecksum df88d8051803726d508906be7dace3ef15f455fd00c1603aa16e9298af75e9f38d306ef6fb319b713e21dcb337eb93fa44a2baba2aa15f79076e6ef55d38100f
+doccontainersize 292956
+doccontainerchecksum b8db60eec0ef7a57e0d0991f70ae7d1d7f87391797521e03baa916848a8be827a97496de8af8f2f95194ccedd923288f471116e677371b99f75f0309283ff50f
+docfiles size=75
RELOC/doc/latex/bangorexam/README.txt details="Readme"
RELOC/doc/latex/bangorexam/bangorexam.pdf details="Package documentation"
-srccontainersize 49668
-srccontainerchecksum 22732c47f60e2145ba850a60afc15cc926e57ff27a9234d84cf647ae83c8b783cd8023bb419f576dbba1f5e49de95416f98639440d6001525eac3cbd4fe8ab41
+srccontainersize 51340
+srccontainerchecksum 639dffd548f6937a01b24e5946e58cfce47609257e6964bd51d441d2ae3435f16d86015f50003b2c3757b8101a50375d02ce68be19e85c6f8adc7c35338aba18
srcfiles size=64
RELOC/source/latex/bangorexam/bangorexam.dtx
RELOC/source/latex/bangorexam/bangorexam.ins
@@ -30947,7 +30947,7 @@ runfiles size=60
catalogue-ctan /macros/latex/contrib/bangorexam
catalogue-license lppl1.3
catalogue-topics exam class
-catalogue-version 1.4.0
+catalogue-version 1.5.0
name bangtex
category Package
@@ -86141,24 +86141,27 @@ catalogue-version 1.0.2
name csbulletin
category Package
-revision 54433
+revision 65146
shortdesc LaTeX class for articles submitted to the CSTUG Bulletin (Zpravodaj)
relocated 1
longdesc The package provides the class for articles for the CSTUG
longdesc Bulletin (Zpravodaj Ceskoslovenskeho sdruzeni uzivatelu TeXu).
longdesc You can see the structure of a document by looking at the
longdesc source file of the manual.
-containersize 12916
-containerchecksum 7b1f41ce8c9cecd8cce3aa1458a029a558b3a70dbcf8e5fb53e192db5d4b56ffdca3e323fa54d7960e141d6e1e32ca52b8824b3c326c94def8b32ad42d0dfee0
-doccontainersize 274080
-doccontainerchecksum 4299308a6408a826f139bbca785cbb139f94ff10e67c80c597e0e7cbfd3bb6ff4889865a04922e4cbe23cf0d3d6f1c1ccc5cfe4d5c2dfee4c747ba18873d6190
-docfiles size=73
+containersize 12032
+containerchecksum e882c884fcbaf15d7b96e4e6c77b4a355fc486b099ffde218e6e72d8d075d4e30e22b5c32dac1cf55f770385e6cc9006d115639fde7b71b9a436a854dc6155a4
+doccontainersize 282672
+doccontainerchecksum 44390c69dd48f6d27c7b24d9ba815ce75baffbc6d3ab116ba24e3e44f8dd8473c0aa1540b08b8fe4dd6b0cfdc6b5232af975fa6aafbe0d944151e07627af37d6
+docfiles size=80
RELOC/doc/latex/csbulletin/LICENSE.txt
RELOC/doc/latex/csbulletin/README details="Readme"
- RELOC/doc/latex/csbulletin/csbulletin.pdf details="Package manual"
+ RELOC/doc/latex/csbulletin/csbulletin.pdf details="Package manual" language="cs"
RELOC/doc/latex/csbulletin/csbulletin.tex
-runfiles size=13
- RELOC/tex/latex/csbulletin/csbulacronym.sty
+ RELOC/doc/latex/csbulletin/example-czech.tex
+ RELOC/doc/latex/csbulletin/example-english.tex
+ RELOC/doc/latex/csbulletin/example-slovak.tex
+ RELOC/doc/latex/csbulletin/example.bib
+runfiles size=12
RELOC/tex/latex/csbulletin/csbulletin.cls
RELOC/tex/latex/csbulletin/csbulobalka.cls
RELOC/tex/latex/csbulletin/csbulobalka.sty
@@ -94789,7 +94792,7 @@ catalogue-version 1.4
name docshots
category Package
-revision 65072
+revision 65141
shortdesc TeX samples next to their PDF Snapshots
relocated 1
longdesc This LaTeX package helps you show TeX code next to the
@@ -94800,17 +94803,17 @@ depend iexec
depend pdfcrop
depend pgf
depend pgf-blur
-containersize 2740
-containerchecksum 292e0c6b8ca5194946efbc87a9ffbab0b904019280c5de6eb916b406b06519b8a7fe7a703746a2353635473a058d70429490bb508d0d0bf54bf20414a9ca6751
-doccontainersize 336488
-doccontainerchecksum 1b92854243054c255f9fca26efe4abd4b8dfb5e2e65713fa58fbfcdb6de52d833da9025660ecccf338327aef501d2ac9e2f534c8d7d26f9546f56986cfc915ee
+containersize 2764
+containerchecksum 1d4ce9b3bd39d12bc4fc2630c3f9116e7030d623700e951fa99e5bd25fcb2965765d5bf32a709eb9ea2ebd39382ef1ef33205ddd24c6cd5e9b75136de0ff18c2
+doccontainersize 336648
+doccontainerchecksum 7ab3122caf188621a0f5045b9d8dff1361b6577c6e80d6f6bf20a9e81703e7060936162356e4c34c44bea6f8611ae8819eafd8abf745a28346ce3d8b065596f8
docfiles size=87
RELOC/doc/latex/docshots/DEPENDS.txt
RELOC/doc/latex/docshots/LICENSE.txt
RELOC/doc/latex/docshots/README.md details="Readme"
RELOC/doc/latex/docshots/docshots.pdf details="Package documentation"
-srccontainersize 7048
-srccontainerchecksum 411023cb4fea5ba8cee8f26023def944da61cc465b563ff7f543aacc69e80314e477b553dcb1f83d110651f86a3560a4c5b62ece0bcaf177905534d10ab87ccb
+srccontainersize 7108
+srccontainerchecksum 1913dbf266953cd42e9a840e140b00fc785f12f610d0e5c84f70a1eb3bef06b8a4cd5c612c682a8c6ab2fb8ff355fe416cbbe70ef366e123f13419bcaaa1abbc
srcfiles size=7
RELOC/source/latex/docshots/docshots.dtx
RELOC/source/latex/docshots/docshots.ins
@@ -94820,7 +94823,7 @@ catalogue-contact-repository https://github.com/yegor256/docshots
catalogue-ctan /macros/latex/contrib/docshots
catalogue-license mit
catalogue-topics doc-supp
-catalogue-version 0.3.1
+catalogue-version 0.4.0
name docsurvey
category Package
@@ -109873,7 +109876,7 @@ catalogue-version 1.2
name eolang
category Package
-revision 65131
+revision 65142
shortdesc Formulas and graphs for the EO programming language
relocated 1
longdesc This LaTeX package helps you write [?] -calculus formulas and
@@ -109885,19 +109888,19 @@ depend iexec
depend pgf
depend pgfopts
depend stmaryrd
-containersize 6692
-containerchecksum 522770cd5baaf5ad5fe1feccab2b81cf0ac4d9e3051ed3cc654452f41eabeebb44b8601344486c4666d05038f6e536a185345d93833da09fb1553d87e0b1cc2f
-doccontainersize 1391340
-doccontainerchecksum 3a241cee356e18c3f5552b9883ed6c96d3073418a9c44c65146f4975f9eb9f70ab608f31b99fb059cf16df00eb7cc37dfa13c8d4f77ab19d5b6adcdf10139e81
-docfiles size=443
+containersize 6772
+containerchecksum c8231ba5724dae24c3dd880c0317d46b3d39d22ed0bdbdfece288897ec97724ea49aa736963c9f123154f5cbc1b97414674fbcec967459c0654b96c7c7d18a53
+doccontainersize 1508756
+doccontainerchecksum b89765a06def85ffb0053a000c8aad1193f6924a4a9706af9fe6764070cc936bb0aad60abd5905689395aae2ca99091bb613afc0491e4a7c5d1a062742fd7079
+docfiles size=473
RELOC/doc/latex/eolang/DEPENDS.txt
RELOC/doc/latex/eolang/LICENSE.txt
RELOC/doc/latex/eolang/README.md details="Readme"
RELOC/doc/latex/eolang/cactus.pdf
RELOC/doc/latex/eolang/eolang.bib
RELOC/doc/latex/eolang/eolang.pdf details="Package documentation"
-srccontainersize 14708
-srccontainerchecksum ec14b2cbb26d45d32159ca2cac01734fc94d61bd68e6bd3c4f397d40fda3f4bb840d5cf7f3c6352a47d8ca0e5f89bea2da17051856bd1d4dcadfb62fe03b00e5
+srccontainersize 14884
+srccontainerchecksum 1fb6050a8267e7655963d73a7a9c03c858d57ac61b6c0c69007af9a8b2170412bdaee1c57e0cd0ba3e7268297d183e0d6bb0641db563496cd91155c1720d360e
srcfiles size=14
RELOC/source/latex/eolang/eolang.dtx
RELOC/source/latex/eolang/eolang.ins
@@ -137851,26 +137854,28 @@ catalogue-version 0.0.5
name graph35
category Package
-revision 47522
+revision 65138
shortdesc Draw keys and screen items of several Casio calculators
relocated 1
longdesc This package defines commands to draw the Casio Graph 35 /
longdesc fx-9750GII calculator (and other models). It can draw the whole
longdesc calculator, or parts of it (individual keys, part of the
longdesc screen, etc.). It was written to typeset documents instructing
-longdesc stundents how to use their calculator.
-containersize 23260
-containerchecksum c9e2cb847614a7c21259b7b4e28ea1134d900049ca55da63990ac1f2c733e3b567bfae48de46b1e4b6b8faa9b4e0d4f9202bb00327ff33a899380dc3496214f1
-doccontainersize 2113596
-doccontainerchecksum 21a04b52c476b78142239e3db4165267b51ba596c2c7a95b175f323cf1e78b0bdcd324f55f817cfd8b2b6b7434200b060b51165e3468ee009d295eed752d1e88
-docfiles size=734
+longdesc students how to use their calculator.
+containersize 22316
+containerchecksum c1846cf4e04e62641adb6b9a5cf9cdb6552fe8480ae167cdea44b8cd7959745ab54b269d083d927120240129572bc7c492b73ba1126e2afdce80192c0cf8e218
+doccontainersize 2244124
+doccontainerchecksum f32a46b9fd564e45f4988a565aa331bf4971a0b2a5057a5cbb65fddd762060a7e7dc86925e8df3d7a931d881466efdcb3ea936b950181573dd7630d9c129adc8
+docfiles size=798
RELOC/doc/latex/graph35/CHANGELOG.md
RELOC/doc/latex/graph35/LICENSE.txt
RELOC/doc/latex/graph35/README.md details="Readme"
- RELOC/doc/latex/graph35/graph35-en.pdf details="Package documentation in English"
- RELOC/doc/latex/graph35/graph35-fr.pdf details="Package documentation in French"
-srccontainersize 13016
-srccontainerchecksum 4c2f073a22fea162e1c3347a74c60f680d5d2088143fd1e6634d4bf2884131c6c8a8c267531a04db705acf2bf2f756607d8164cf81659259f92ba600c7b22427
+ RELOC/doc/latex/graph35/graph35-en.pdf details="Package documentation (English)"
+ RELOC/doc/latex/graph35/graph35-en.tex
+ RELOC/doc/latex/graph35/graph35-fr.pdf details="Package documentation (French)" language="fr"
+ RELOC/doc/latex/graph35/sources.zip
+srccontainersize 13044
+srccontainerchecksum 685e0307a44705b0272ff8f2a61d90768a05fcea33cc913e8645f1d5a4768078133a645fe73b0571d87ba0000b4b13810190eacf60bc552dbb6c43bd46f06406
srcfiles size=18
RELOC/source/latex/graph35/graph35.dtx
RELOC/source/latex/graph35/graph35.ins
@@ -137879,13 +137884,11 @@ runfiles size=66
RELOC/tex/latex/graph35/graph35-pixelart.sty
RELOC/tex/latex/graph35/graph35.sty
catalogue-contact-bugs https://framagit.org/spalax/graph35/issues
-catalogue-contact-home https://framagit.org/spalax/graph35
catalogue-contact-repository https://framagit.org/spalax/graph35
-catalogue-contact-support https://framagit.org/spalax/graph35/issues
catalogue-ctan /graphics/graph35
catalogue-license lppl1.3
-catalogue-topics graphics teaching
-catalogue-version 0.1.1
+catalogue-topics graphics teaching maths
+catalogue-version 0.1.3
name graphbox
category Package
@@ -166822,7 +166825,7 @@ binfiles arch=x86_64-solaris size=3
name kpathsea
category TLCore
-revision 65127
+revision 65137
shortdesc Path searching library for TeX-related files
longdesc Kpathsea is a library and utility programs which provide path
longdesc searching facilities for TeX file types, including the
@@ -166832,9 +166835,9 @@ longdesc distributed separately, but rather is released and maintained
longdesc as part of the TeX Live sources.
depend kpathsea.ARCH
containersize 32468
-containerchecksum ee728cdfbaa9fc5b85d890281f777bf0a5d16d9c5963f98708b5b53cc83fc5c7ea7ac47372d3d8b855ed6dfd0f54bb06ef607fb7a83c6a975343f6d964946dbf
-doccontainersize 1061952
-doccontainerchecksum 61c6ffc3c5969e595331bc65533e9c451d8974e0069054136f812b617b1464a1d64352b2d0208c090d2f21f5128d9102ee2b17a437508151fe490f21372bdbd9
+containerchecksum b927fa3ed461217daa6d3dd2c58789069ebc77c61355d1dc5d7d9108d6910d7f8ca5d68fe5dd7a1901899021c7cc0bdb5d3fddbc6ea50da1beae51222a9472c8
+doccontainersize 1061960
+doccontainerchecksum 9bf4903973827b87920f0c7a77a3ea0c4ecc8b877700075eb2dc1553608549872493f61813456d0fe9633c2c2736f2d75378a871e18381ba893b4c64e540faca
docfiles size=544
texmf-dist/doc/info/dir
texmf-dist/doc/info/kpathsea.info
@@ -248672,32 +248675,32 @@ catalogue-topics doc-supp
name piton
category Package
-revision 64979
+revision 65143
shortdesc Typeset Python listings with LPEG
relocated 1
longdesc This package uses the Lua library LPEG to typeset and highlight
longdesc Python listings.
-containersize 8364
-containerchecksum 0963e74587c9ace24bdb087c64c0d59c100d32f6a51e6bdca1c9efd84f07412ad2297e9af7a16ccbdd6cb50f79ba59a29e336a3c65d5606e86ef2040afbc347f
-doccontainersize 475532
-doccontainerchecksum 4c4fb7953f2cc0d228d98b2c4a97af83c4d1b880e656cd8a67b165b8cf46f1dfe4becfe79028518666f93cec043c567dd3cc61c9e7e76933b90981e3a6fb54d5
-docfiles size=192
+containersize 8988
+containerchecksum da83c35df29919fd8297fe7aa1039094157c33f3fef2dc3109875f50b6e0a78d415adf7737d5edbd91c0b94a80017cc625a9de6c0c0d873cded8b070c0af2966
+doccontainersize 508976
+doccontainerchecksum cd8b3b8adc41b66eb511bc5099d6f36321c33950ee89e270c0ec5f9bc90f74a6cc413d247c9823669d459493741b6f7ae512dd5df6a3573af38925d8571bb790
+docfiles size=207
RELOC/doc/lualatex/piton/README.md details="Readme"
RELOC/doc/lualatex/piton/piton-french.pdf details="Package documentation (French)" language="fr"
RELOC/doc/lualatex/piton/piton-french.tex
RELOC/doc/lualatex/piton/piton.pdf details="Package documentation (English)"
-srccontainersize 24148
-srccontainerchecksum b941046be6d197767256f2fded20e0c3693b8034e1c95f50a8a6922c1b3298b546f1f32d05d62613ab072981db813f4af11dd73934ea3465cc57c6b5f53b929f
-srcfiles size=28
+srccontainersize 26444
+srccontainerchecksum 32c7b8afd14cdfe8d317c56821122f1a1f8de2ec6947b7b44d6402db42b81e04a46d049a76f26002fa1e52bfda1caa3123ae9bc7204a3c0073790ea626a58354
+srcfiles size=30
RELOC/source/lualatex/piton/piton.dtx
RELOC/source/lualatex/piton/piton.ins
-runfiles size=10
+runfiles size=11
RELOC/tex/lualatex/piton/piton.sty
catalogue-also codehigh
catalogue-ctan /macros/luatex/latex/piton
catalogue-license lppl1.3
catalogue-topics listing synt-hlt luatex
-catalogue-version 0.95
+catalogue-version 0.99
name pittetd
category Package
@@ -254154,7 +254157,7 @@ catalogue-version 1.101
name polyglossia
category Package
-revision 64826
+revision 65144
shortdesc An alternative to babel for XeLaTeX and LuaLaTeX
relocated 1
longdesc This package provides a complete Babel replacement for users of
@@ -254166,14 +254169,18 @@ depend fontspec
depend iftex
depend makecmds
depend xkeyval
-containersize 119992
-containerchecksum 1c162fded34af7bfb913b6fda66880d3fa17575c1aefc715685ba0d33711b6ff3ac3e63e0b33c30c280c020e0573daca3ce53d1052370be13103f190a9cfa7e7
-doccontainersize 658144
-doccontainerchecksum 9acbd743b57989d4a35f84612ecd8147cfda97c241cd115e624778f24f7f1c8c0c69eb76fc40743fcf8db7898f34bdd4e0364537a38597646bdad908f2603d8b
-docfiles size=211
+containersize 122116
+containerchecksum 65d91b180f748592c2eb7a98232b7b438c762a56100294995454e54d7759ef00076d63d90660fcded3d0ee5aa03d1a4b328ff3706db1926be2546140325e8e96
+doccontainersize 722564
+doccontainerchecksum 88867dbf5e218720a13e0ffeaf0ecc3784adbf5097c99cfc193f35be1c99c82c459e0e27b1e1d72cee1020549bc6131b8da03a47beef42f59d53b4fd4fe036c4
+docfiles size=231
RELOC/doc/latex/polyglossia/README.md details="Readme"
RELOC/doc/latex/polyglossia/example-arabic.pdf
RELOC/doc/latex/polyglossia/example-arabic.tex
+ RELOC/doc/latex/polyglossia/example-chinese.pdf
+ RELOC/doc/latex/polyglossia/example-chinese.tex
+ RELOC/doc/latex/polyglossia/example-japanese.pdf
+ RELOC/doc/latex/polyglossia/example-japanese.tex
RELOC/doc/latex/polyglossia/example-korean.pdf
RELOC/doc/latex/polyglossia/example-korean.tex
RELOC/doc/latex/polyglossia/example-thai.pdf
@@ -254184,11 +254191,11 @@ docfiles size=211
RELOC/doc/latex/polyglossia/polyglossia.tex
RELOC/doc/latex/polyglossia/test-welsh.pdf
RELOC/doc/latex/polyglossia/test-welsh.tex
-srccontainersize 159364
-srccontainerchecksum dd6bb3e8f49c4353174d7c9c7649c1751d35870912c74cdf86049e12f690b770d530459178f5a59a2f13d1502a5f6c9e1a57b48d34fe0d2c16d793ee0500863b
-srcfiles size=243
+srccontainersize 162152
+srccontainerchecksum e037d2a8c0bebf37a8ed3dcdae764dd2cda3d780379ba70a67eb46447936816e8c43122d691bdf58122fcc7a96f2bcf3d6710d71bf5bb378cf0418efd40ae37f
+srcfiles size=248
RELOC/source/latex/polyglossia/polyglossia.dtx
-runfiles size=376
+runfiles size=386
RELOC/fonts/misc/xetex/fontmapping/polyglossia/arabicdigits.map
RELOC/fonts/misc/xetex/fontmapping/polyglossia/arabicdigits.tec
RELOC/fonts/misc/xetex/fontmapping/polyglossia/bengalidigits.map
@@ -254197,6 +254204,8 @@ runfiles size=376
RELOC/fonts/misc/xetex/fontmapping/polyglossia/devanagaridigits.tec
RELOC/fonts/misc/xetex/fontmapping/polyglossia/farsidigits.map
RELOC/fonts/misc/xetex/fontmapping/polyglossia/farsidigits.tec
+ RELOC/fonts/misc/xetex/fontmapping/polyglossia/gurmukhidigits.map
+ RELOC/fonts/misc/xetex/fontmapping/polyglossia/gurmukhidigits.tec
RELOC/fonts/misc/xetex/fontmapping/polyglossia/thaidigits.map
RELOC/fonts/misc/xetex/fontmapping/polyglossia/thaidigits.tec
RELOC/tex/latex/polyglossia/arabicnumbers.sty
@@ -254256,6 +254265,7 @@ runfiles size=376
RELOC/tex/latex/polyglossia/gloss-canadian.ldf
RELOC/tex/latex/polyglossia/gloss-canadien.ldf
RELOC/tex/latex/polyglossia/gloss-catalan.ldf
+ RELOC/tex/latex/polyglossia/gloss-chinese.ldf
RELOC/tex/latex/polyglossia/gloss-ckb-Arab.ldf
RELOC/tex/latex/polyglossia/gloss-ckb-Latn.ldf
RELOC/tex/latex/polyglossia/gloss-ckb.ldf
@@ -254402,12 +254412,14 @@ runfiles size=376
RELOC/tex/latex/polyglossia/gloss-nswissgerman.ldf
RELOC/tex/latex/polyglossia/gloss-nynorsk.ldf
RELOC/tex/latex/polyglossia/gloss-occitan.ldf
+ RELOC/tex/latex/polyglossia/gloss-pa.ldf
RELOC/tex/latex/polyglossia/gloss-persian.ldf
RELOC/tex/latex/polyglossia/gloss-piedmontese.ldf
RELOC/tex/latex/polyglossia/gloss-polish.ldf
RELOC/tex/latex/polyglossia/gloss-polutonikogreek.ldf
RELOC/tex/latex/polyglossia/gloss-portuges.ldf
RELOC/tex/latex/polyglossia/gloss-portuguese.ldf
+ RELOC/tex/latex/polyglossia/gloss-punjabi.ldf
RELOC/tex/latex/polyglossia/gloss-romanian.ldf
RELOC/tex/latex/polyglossia/gloss-romansh.ldf
RELOC/tex/latex/polyglossia/gloss-russian.ldf
@@ -254440,6 +254452,9 @@ runfiles size=376
RELOC/tex/latex/polyglossia/gloss-uyghur.ldf
RELOC/tex/latex/polyglossia/gloss-vietnamese.ldf
RELOC/tex/latex/polyglossia/gloss-welsh.ldf
+ RELOC/tex/latex/polyglossia/gloss-zh-CN.ldf
+ RELOC/tex/latex/polyglossia/gloss-zh-TW.ldf
+ RELOC/tex/latex/polyglossia/gurmukhidigits.sty
RELOC/tex/latex/polyglossia/hebrewcal.sty
RELOC/tex/latex/polyglossia/hijrical.sty
RELOC/tex/latex/polyglossia/nkonumbers.sty
@@ -254459,7 +254474,7 @@ catalogue-contact-repository https://github.com/reutenauer/polyglossia
catalogue-ctan /macros/unicodetex/latex/polyglossia
catalogue-license mit lppl1.3 cc0
catalogue-topics multilingual use-xetex use-luatex
-catalogue-version 1.58
+catalogue-version 1.59
name polynom
category Package
@@ -261292,7 +261307,7 @@ catalogue-version 1.5e
name pstricks
category Package
-revision 64797
+revision 65139
catalogue pstricks-base
shortdesc PostScript macros for TeX
relocated 1
@@ -261312,11 +261327,11 @@ longdesc pdftricks package, to generate a PDF inclusion from a PSTricks
longdesc diagram. PSTricks macros can also generate PDF output when the
longdesc document is processed XeTeX, without the need for other
longdesc supporting packages.
-containersize 87896
-containerchecksum 36d5ec1cec97a0047d6c14c092479d3431708000a63f381deedf783da1d1946e351d2d8f2d558407e68428b4d910a8d32e4c426734a590167026c29009c945c5
-doccontainersize 7596068
-doccontainerchecksum 158609d5c00b10b38b16e280e1c21dfba245801c12101ae7934d90ed95f6d9b2bd335886accdf9faa319696df3fdadd98728c9daee69b9f5a624c3ef0ae8a9d5
-docfiles size=2316
+containersize 87852
+containerchecksum 2ab02858fc3972b8d64f0707c2adaced15e5e348c450107f73d373f135a6a2185641aa0da3139c88e1557b369321375129d1190b2b33d9edb0c9321867733ba2
+doccontainersize 11085932
+doccontainerchecksum 068c100195b53f9810e3c580a6f08303952679a005b26e35ed2936631f690b0bed8edb4a242c605f8fcfb8cd968c28991e6dfa666e79cf88ea7676042143dfc6
+docfiles size=3181
RELOC/doc/generic/pstricks/PSTricks.bib
RELOC/doc/generic/pstricks/README details="Readme"
RELOC/doc/generic/pstricks/ctandir.sty
@@ -261405,7 +261420,7 @@ catalogue-contact-support https://tug.org/mailman/listinfo/pstricks
catalogue-ctan /graphics/pstricks/base
catalogue-license lppl1.3
catalogue-topics graphics-in-tex colour pstricks dvips-special xetex
-catalogue-version 3.17
+catalogue-version 3.18
name pstricks-add
category Package
@@ -310773,7 +310788,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 65126
+revision 65136
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.
@@ -310781,10 +310796,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 113700
-containerchecksum 58a60c2f5cbbd4cbea5eb281ed6361dbd01d846f535b64424338a6cadc0b388ce290f197bbc50d3d5655879ced0a0f90149d1b12dbda41669c44f8dbb1c15bc1
-doccontainersize 423348
-doccontainerchecksum f5a63feff9af61c754de611ec42719960eb31aaaa80319aa92f64073515ab0ff2ec9377be02cee2e65a4b08fd3b959aa313669d9f87d710178a6e1cc57a05e55
+containersize 113716
+containerchecksum 8d94f963920b372ad9a0aab7638dd9dee3b15750f5f63e577e434be8740657f6a56bd5c8e0f8ad73ec6600f72c7ffd2df9b7f16a96487fea700d5be7ea23e8d2
+doccontainersize 423352
+doccontainerchecksum 8885a71f052fd0bd3f596779834c2a33449951c5002ba7f491639bdb11caca1ddc23b780d9b9dd37eb169cb9b5d7ec7e6d441d389e6625ddda7f48675c8a9710
docfiles size=532
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 61e39bcd8c..3ba6f819e3 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-4fe623fbc3192e0369cfd58140d579fb texlive.tlpdb
+7f73b3e83062a7f5587b931f0ca47122 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 2603aeeb58..be5004ca32 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-3ad8ff484e83a52963f5b0dbf415428a93efb5b651f90df756941be11587f669ce928c27b2b610a0e13e1241a959ef80e5e5490a7b1332a374da6273573c187e texlive.tlpdb
+cbae0ff4b7748cdcd3bc76171cf7be4efba9df4e311d005d4f597e16a06f026029644edb8cb27f4484a265509f23d48b240e269ddbcd8568886b9742764f181b texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 45f7065e2a..244883e76d 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-----
-iQEcBAEBCgAGBQJjhVf/AAoJEEzhh34ZQ4xwB2QH/0pQkydy1l97yDEYxRBNgeF1
-6bdx+1kicy3dq5VooMYF3l2x9YgU0YJQsUd8wnXu8RZ6cbqBAj55poFli76UU0Mw
-bvDiNCqY2+axKwm0DiHJQbNexzNJvxKl2KKNXarsZPXKCm6n9n+njFlFH1tIEX5J
-QTCU+TbJ7O3cy2IAqodlYTUiqfXfaCKf6Uq7JMhhvTqriqP1yCIYg2tqoQ8GxyKM
-k5BGEeWYPLcYHtYjRCj7ste/76meTlJrdyC0bDj+DNeAtSBpRhSLW/oEvh4rZMyL
-YjJnEStXJs1uoHg6+u2egQUCkP5Zx4WZ+IvkW9g5iSW+AwBCU+V5W2dINR8uCQ0=
-=BhaC
+iQEcBAEBCgAGBQJjhqmwAAoJEEzhh34ZQ4xwPqcH/1foy9Il1pTsMMaULTxYQUQR
+yZL0z9CDDBWwKlPLESkTn309n1wPVKS5NRx05DZDAeWpoMsCPc8sIsc7wEib9CUy
+73bqcXKchT69hPYTqynbtoyCcXg5VAPqOTbIT7Vwq/Fxfn158lS2KKv+5oK5Tfs1
+GN5Sf+bZew1RrnKgu/6xfDNvCuDEMWPdwEtDcp44wf2HDnUIq/cuMsjPTMh+Tckq
+8MZpPEPos/8m/XcjjhCeRFjHiMfGqD6tQ0WvpQV/OaEwKR2ZJceVYVkzea5tYDhv
+yU06URxuudW66OWp78JvHfcwEK+UlEpta5faIP7RW63BcQYHIFYxC2vXQKo+tyg=
+=hcBv
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index f65af46859..ac83fb7638 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index 05457fd6dd..401fb82d95 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-11-30-02-02
+2022-12-01-02-02